Rust reimplementation of the xenia Xbox 360 emulator targeting reverse- engineering and preservation, initially scoped to Project Sylpheed. Includes: - XEX2 loader (LZX decompression, AES decryption, PE parsing) - XISO / XGD2 disc image VFS - PPC interpreter with 200+ opcodes and VMX128 decoding - Static analyzer: functions, cross-references, labels, asm + SQLite output - HLE kernel covering the xboxkrnl/xam subset used by Sylpheed init - Debugger with in-memory and SQLite-backed execution tracing - `xenia-rs` CLI with extract/dis/exec commands that produce cumulative, superset SQLite databases and opt-in instruction/import/branch traces Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
32 lines
660 B
Rust
32 lines
660 B
Rust
pub mod access;
|
|
pub mod heap;
|
|
pub mod mmio;
|
|
pub mod page_table;
|
|
|
|
mod platform;
|
|
|
|
use thiserror::Error;
|
|
|
|
pub use access::MemoryAccess;
|
|
pub use heap::{GuestMemory, HeapType};
|
|
pub use mmio::MmioRegion;
|
|
pub use page_table::PageEntry;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum MemoryError {
|
|
#[error("Failed to allocate guest address space: {0}")]
|
|
AllocationFailed(String),
|
|
|
|
#[error("Invalid guest address: {0:#010x}")]
|
|
InvalidAddress(u32),
|
|
|
|
#[error("MMIO access at {0:#010x}")]
|
|
MmioAccess(u32),
|
|
|
|
#[error("Protection violation at {0:#010x}")]
|
|
ProtectionViolation(u32),
|
|
|
|
#[error("Out of memory in heap {0:?}")]
|
|
OutOfMemory(HeapType),
|
|
}
|