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.
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 wrapper provides:
- Full ARM64 register access (X0-X30, SP, PC)
- 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
- 8MB emulated RAM with bounds-checked access
- 32-bit and 64-bit load/store operations with little-endian byte ordering
- Direct memory read/write primitives for testing
- Built-in GUI based on
egui - Provides:
- Real-time test result display with pass/fail indicators
- Execution timing statistics
- Clean, responsive interface
Starting Unicorn Instruction Tests...
Base address: 0x0000000000001000
Breakpoint address: 0x0000000000002000
Warming up Unicorn emulator...
JIT warmup completed in 199.4µs
Running test: NOP
Running test: ADD X1, X1, #2
Running test: SUB X2, X2, #1
Running test: ADD X0, X0, X1
Running test: MOV X3, X4
Running test: B +8
Running test: RET
Running test: Atomic ADD Test
Running test: Memory Access Pattern (3 instructions)
Running test: Multiple Arithmetic Ops (3 instructions)
📊 Test Summary:
Total tests: 10
Passed: 10 ✅
Failed: 0 ❌
Total time: 18.7ms
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 Mozilla Public License 2.0.
See LICENSE for details.
Warning
oboromi is not affiliated with Nintendo. This project does not contain any copyrighted firmware or ROMs.