NES Emulator + 6502 Studio
github.com
Spec sheet
- Purpose
- NES Emulator + 6502 Studio is a C++ Nintendo Entertainment System emulator compiled to WebAssembly with a browser debugger called NES Studio.Read 9 Oct 2026 · github.com
- Intended users
- The project describes its headless library, Python environment and live-agent workflow as suitable for scripting, training agents, development and research.Read 4 Oct 2026 · github.com
- License
- The repository states that the software is licensed under GPL v3.Read 9 Oct 2026 · github.com
- Maker
- The GitHub profile identifies the maker as Maxwell Knight, a fullstack engineer based in Israel.Read 9 Oct 2026 · github.com
- Agent and Python tools
- The project provides a C-ABI shared library, a Python package with a Gymnasium-style Super Mario Bros environment, and an optional Gymnasium adapter for stable-baselines3.Read 9 Oct 2026 · github.com
- Agent integration
- NES Studio can replay .nesmovie recordings and can show live agent play through a Python streaming server; the live-agent button is hidden in production builds unless a backend URL is configured.Read 4 Oct 2026 · github.com
- Build requirements
- The README recommends Docker, or lists a C++17 compiler, CMake 3.14 or newer, and GoogleTest for a native build.Read 9 Oct 2026 · github.com
- Cartridge support
- The emulator supports NROM, MMC1, UxROM, CNROM and MMC3 mappers.Read 4 Oct 2026 · github.com
- CPU
- The 6502 core implements all 151 official opcodes and documented illegal opcodes, and the README says it passes nestest and blargg instruction tests.Read 9 Oct 2026 · github.com
- Debugger
- NES Studio includes stepping, running, breakpoints, live disassembly, a memory editor, CPU and PPU state displays, pattern, nametable and OAM viewers, and full-screen Play mode.Read 9 Oct 2026 · github.com
- Game compatibility
- The README describes Super Mario Bros. as fully playable through level 1-1 and Super Mario Bros. 3 as booting with its attract demo playing.Read 9 Oct 2026 · github.com
- Graphics and sound
- The PPU supports backgrounds, sprites, OAM and DMA, scrolling, sprite-0 hit, and four mirroring modes; the APU has pulse, triangle, and noise channels wired to WebAudio.Read 9 Oct 2026 · github.com
- Headless and deterministic use
- A C-ABI shared library exposes independent NES instances with deterministic stepping, and the project includes a Python package with a Gymnasium-style Super Mario Bros environment.Read 4 Oct 2026 · github.com
- Known limitation
- The PPU renders a whole scanline at a time, so the ppu_vbl_nmi dot-timing conformance ROM is not yet passing.Read 9 Oct 2026 · github.com
- Live agent feature
- Live agent streaming requires a Python server on the user's machine, and the Spawn Agent button is hidden in production builds unless a backend URL is configured.Read 9 Oct 2026 · github.com
- Mapper support
- The emulator supports NROM, MMC1, UxROM, CNROM, and MMC3 with scanline IRQ.Read 9 Oct 2026 · github.com
- Security and support
- The opened project page provides no security or compliance claims and no dedicated support terms.Read 4 Oct 2026 · github.com
- Setup
- The project documents Docker and front-end setup using pnpm and Node 20+, plus a native build requiring a C++17 compiler, CMake 3.14+ and GoogleTest.Read 4 Oct 2026 · github.com
- Testing
- The project reports 32 native gtest tests and 211 web Vitest tests, with conformance test ROMs fetched on demand and run in CI.Read 4 Oct 2026 · github.com
Where Specifiction places it
- NES Emulators#18 of 267.1