oboromi is a modular and work-in-progress emulator foundation for the Nintendo Switch 2. It's built in Rust and focuses on correctness, clarity, and traceability rather than performance at this stage. It currently emulates an 8-core ARM64 CPU with 12GB of shared memory.
Important
oboromi is not (yet) a full Switch 2 emulator. It does not run any Nintendo firmware or games.
oboromi uses Unicorn Engine for ARM64 instruction emulation. The UnicornCPU and CpuManager provide:
- 8-Core CPU Architecture: Orchestrated via
CpuManagerwith shared memory access. - Full ARM64 register access (X0-X30, SP, PC) per core.
- Memory mapping with permission control
- Breakpoint handling via
BRKinstructions - Safe Rust interface with proper error handling
- Reliable test framework using breakpoints and
run()for stable execution - 10/10 instruction tests passing covering core ARM64 operations:
- NOP, ADD (immediate/register), SUB (immediate)
- MOV (register), RET, B (branch)
- Multi-instruction sequences and memory access patterns
- Fast execution
- 12GB Combined Emulated RAM (Lazily allocated)
- 32-bit and 64-bit load/store operations with little-endian byte ordering
- Direct memory read/write primitives for testing
- SM86 Instruction Decoding: Implementation of NVIDIA SM86 shader instruction decoding (128-bit instructions).
- SPIR-V Generation: translating decoded instructions (like
al2p) into SPIR-V intermediate representation. - Foundation for future compute and graphics shader translation.
- Built-in GUI based on
egui - Provides:
- Real-time test result display with pass/fail indicators
- Execution timing statistics
- Clean, responsive interface
git clone https://github.com/0xNikilite/oboromi
cd oboromi
# Build and run (requires CMake and Ninja)
cargo runThe build system will automatically:
- Compile the Unicorn Engine C++ bindings
- Link required libraries
- Launch the GUI with integrated test suite
- Rust (latest stable)
- CMake (3.16+)
- Ninja build system
- C++ compiler: MSVC (Windows), Clang (macOS/Linux)
Pull requests are welcome! Feel free to fork the repo, open issues, or suggest improvements.
This project is licensed under the GNU General Public License v3.
See LICENSE for details.
Warning
oboromi is not affiliated with Nintendo. This project does not contain any copyrighted firmware or ROMs.
