mirror of
https://github.com/0xNikilite/oboromi.git
synced 2026-01-31 01:15:22 +01:00
37bf22b8532a8ce47677cbcb8953f981e9b1babf
(◕‿◕) Join our Discord here 🢰
oboromi
a proof-of-concept Nintendo Switch 2 emulator written in Rust
Overview
oboromi is a modular and work-in-progress emulator for the upcoming Nintendo Switch 2. It's built in Rust and focuses on correctness, clarity, and traceability rather than performance at this stage. The current implementation includes a functioning CPU core, a memory management unit (MMU) with basic paging, and a custom memory subsystem.
Important
oboromi is not yet playable and does not emulate any commercial firmware or games.
Features
AArch64 CPU Core
- Clean interpreter with structured instruction decoding
- Implemented instructions:
- Arithmetic:
ADD,SUB,ADDI,SUBI - Bitwise:
AND,ORR,EOR,MVN - Comparison & logic:
CMP,TST - Branching:
B,RET - Memory:
LDR,STR - Others:
NOP,MOV
- Arithmetic:
- Fully handles NZCV flags (condition codes)
- Optional instruction tracing with feature flag
trace
Memory Management Unit (MMU)
- Virtual to physical address translation via simple page table
- 4 KiB paging with TLB support (64 entries)
- Page faults and access violations are logged
- Mapping utility functions for identity and custom regions
Memory Subsystem
- Custom memory backend with:
- Region registration
- Bounds-checked access
- Load/store abstraction for 32-bit and 64-bit values
- Endianness-aware access
Testing & Examples
- Functional testing via
main.rs, gated behind a button in the GUI - Examples to demonstrate step-by-step usage (
examples/coming soon)
GUI (via eframe)
- Built-in GUI based on
egui - Always included and launched by default
- Provides:
- Partial memory viewer
- Manual test runner (button-controlled)
How to Run
git clone https://github.com/0xNikilite/oboromi
cd oboromi
cargo run
Contributing
Pull requests are welcome! Feel free to fork the repo, open issues, or suggest improvements.
📜 License
This project is licensed under the Mozilla Public License 2.0.
See LICENSE for details.
Useful Links
Warning
oboromi is not affiliated with Nintendo. This project does not contain or support any copyrighted firmware, BIOS, or ROMs.
Description
⚠️ ARCHIVED: Original GitHub repository no longer exists. Preserved as backup on 2026-01-31T05:25:22.048Z
Languages
Rust
100%