NES Emulator + 6502 Studio
NES Emulator + 6502 Studio is a free, GPL v3 NES emulator written in C++ and compiled to WebAssembly for browser use.
What NES Emulator + 6502 Studio is
NES Emulator + 6502 Studio is a free, GPL v3 NES emulator written in C++ and compiled to WebAssembly for browser use. NES Studio adds a browser debugger with stepping, running, breakpoints, live disassembly, memory editing, CPU and PPU state views, pattern, nametable and OAM viewers, and full-screen Play mode. Its 6502 core implements all 151 official opcodes plus documented illegal opcodes; the project reports passing nestest and blargg instr_test and matching the nestest golden log cycle for cycle. The PPU handles backgrounds, sprites, DMA, scrolling, and four mirroring modes. WebAudio supplies two pulse channels, triangle, and noise. Cartridge mappers include NROM, MMC1, UxROM, CNROM, and MMC3. The project reports Super Mario Bros. 1-1 fully playable and Super Mario Bros. 3 reaching its attract demo. A C-ABI library offers deterministic stepping, while Python tools provide a Gymnasium-style Mario environment and optional agent streaming.
Good
- Free and GPL v3 licensed
- Browser debugger with detailed inspection tools
- Supports five listed cartridge mappers
- Deterministic C-ABI stepping
- Python Gymnasium-style Mario environment
Watch out
- PPU renders one scanline at a time
- Live-agent streaming requires a local Python server
- Native builds require C++17 and CMake
Who it suits
It suits developers, researchers, and agent-training projects needing an NES emulator, debugger, deterministic headless instances, or Python tooling. Browser users can run NES Studio, while native builds use C++ and CMake.
Verdict
NES Emulator + 6502 Studio combines playable NES emulation with extensive debugging and automation interfaces. Its scanline-based PPU timing remains a stated accuracy limitation.
The facts
Each one read from NES Emulator + 6502 Studio's own pages, with the date it was checked.
What it does
- 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.checked 9 Oct 2026
- 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.checked 4 Oct 2026
- Build requirements
- The README recommends Docker, or lists a C++17 compiler, CMake 3.14 or newer, and GoogleTest for a native build.checked 9 Oct 2026
- Cartridge support
- The emulator supports NROM, MMC1, UxROM, CNROM and MMC3 mappers.checked 4 Oct 2026
- CPU
- The 6502 core implements all 151 official opcodes and documented illegal opcodes, and the README says it passes nestest and blargg instruction tests.checked 9 Oct 2026
- 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.checked 9 Oct 2026
- 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.checked 9 Oct 2026
- 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.checked 9 Oct 2026
- 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.checked 4 Oct 2026
- Intended users
- The project describes its headless library, Python environment and live-agent workflow as suitable for scripting, training agents, development and research.checked 4 Oct 2026
- Known limitation
- The PPU renders a whole scanline at a time, so the ppu_vbl_nmi dot-timing conformance ROM is not yet passing.checked 9 Oct 2026
- License
- The repository states that the software is licensed under GPL v3.checked 9 Oct 2026
- 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.checked 9 Oct 2026
- Purpose
- NES Emulator + 6502 Studio is a C++ Nintendo Entertainment System emulator compiled to WebAssembly with a browser debugger called NES Studio.checked 9 Oct 2026
- Security and support
- The opened project page provides no security or compliance claims and no dedicated support terms.checked 4 Oct 2026
- 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.checked 4 Oct 2026
- Testing
- The project reports 32 native gtest tests and 211 web Vitest tests, with conformance test ROMs fetched on demand and run in CI.checked 4 Oct 2026
The company
- Maker
- The GitHub profile identifies the maker as Maxwell Knight, a fullstack engineer based in Israel.checked 9 Oct 2026
Where it runs
- Mapper support
- The emulator supports NROM, MMC1, UxROM, CNROM, and MMC3 with scanline IRQ.checked 9 Oct 2026
