oboromi logo

License Discord

(◕‿◕)  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
  • 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
  • 4KiB 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.



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
Readme 7.3 MiB
Languages
Rust 100%