Initial commit: NES emulator with GTK4 desktop frontend
Some checks failed
CI / rust (push) Has been cancelled

Full NES emulation: CPU, PPU, APU, 47 mappers, iNES/NES 2.0 parsing.
GTK4 desktop client with HeaderBar, pixel-perfect Cairo rendering,
drag-and-drop ROM loading, and keyboard shortcuts.
187 tests covering core emulation, mappers, and runtime.
This commit is contained in:
2026-03-13 11:48:45 +03:00
commit bdf23de8db
143 changed files with 18501 additions and 0 deletions

42
Cargo.toml Normal file
View File

@@ -0,0 +1,42 @@
[package]
name = "nesemu"
version = "0.1.0"
edition = "2024"
description = "Core NES/Famicom emulation library in Rust"
readme = "README.md"
license = "MIT OR Apache-2.0"
documentation = "https://docs.rs/nesemu"
keywords = ["nes", "emulator", "famicom", "gamedev"]
categories = ["emulators", "games"]
rust-version = "1.85"
[workspace]
members = [
".",
"crates/nesemu-adapter-api",
"crates/nesemu-adapter-headless",
"crates/nesemu-desktop",
]
default-members = ["."]
resolver = "2"
[dependencies]
nesemu-adapter-api = { path = "crates/nesemu-adapter-api", optional = true }
nesemu-adapter-headless = { path = "crates/nesemu-adapter-headless", optional = true }
[features]
default = []
adapter-api = ["dep:nesemu-adapter-api"]
adapter-headless = ["adapter-api", "dep:nesemu-adapter-headless"]
[lints.rust]
unsafe_code = "forbid"
unreachable_pub = "warn"
[lints.clippy]
pedantic = { level = "allow", priority = -1 }
wildcard_imports = "allow"
match_same_arms = "allow"
module_name_repetitions = "allow"
too_many_lines = "allow"
needless_pass_by_value = "allow"