mirror of
https://github.com/0xNikilite/oboromi.git
synced 2026-01-31 01:15:22 +01:00
eda824803ef648bd2f8a1b674f47e9f348c20601
(◕‿◕) Join our Discord here 🢰
oboromi
a proof-of-concept Nintendo Switch 2 emulator written in Rust
[!WARNING] oboromi is not yet a playable emulator. Right now it’s a skeleton of CPU+MMU cores and a test harness, designed to grow into a full emulator as hardware/software details (and reverse‑engineering) become available.
🚀 What’s in the box today
-
CPU Core
- Implements a subset of ARM64/AArch64 (15+ instructions: NOP, ADDI/SUBI, ADD/SUB, AND/ORR/EOR, CMP/TST, LDR/STR, B, RET)
- Full NZCV flag handling
- Optional
tracefeature for disassembly and PC‐tagged logs
-
Virtual Memory + MMU
- 4 KiB pages with identity mapping
- Simple page table + TLB (64 entries)
- All memory reads/writes go through the MMU
-
Memory Subsystem
- Bounds‐checked reads/writes
- 32‑bit and 64‑bit little‑endian helpers
-
Test Harness
main.rsruns 12 quick integration tests (CPU instructions + MMU)cargo testcovers unit tests for CPU + Memory
🧪 Try it
git clone https://github.com/0xNikilite/oboromi
cd oboromi
cargo run --features trace # see each instruction disassembled
# or simply:
cargo run
🤝 Contributing
We’re actively looking for collaborators in these areas:
- ARM64/AArch64 Architecture & CPU Implementation
- Memory Management & Virtualization
-
Graphics & GPU Backends
Experience with low‑level graphics APIs (Vulkan, Metal, DirectX) and shader pipeline emulation. -
Firmware & Hardware Reverse Engineering
Skills in extracting, analyzing, and documenting proprietary firmware, SoC internals, and board‑level schematics. -
Rust Systems Programming
Passion for zero‑unsafe, high‑performance Rust code.
📜 License
This project is licensed under MPL‑2.0. See LICENSE.
Description
⚠️ ARCHIVED: Original GitHub repository no longer exists. Preserved as backup on 2026-01-31T05:25:22.048Z
Languages
Rust
100%