NES EMULATOR
breaknes
Breaknes — a gate-level NES / Famicom / Dendy emulator that reconstructs chip logic (6502, APU, PPU, MMC1) from real-die reverse engineering and runs cartridges described as PCB JSON rather than hard-coded mapper behaviour.

WHY IT MATTERS
Why this emulator matters
Breaknes is built at the gate level: instead of emulating chips by observed behaviour, the project duplicates the logic circuits reconstructed from die decaps and schematics in C++. That makes it a research-focused, high-insight emulator useful to developers, hardware researchers, and anyone studying how the original silicon behaved.
BEST FOR
Notable strengths
Gate-level chip simulation (M6502Core, APUSim, PPUSim), cartridge PCBs expressed as JSON (CartPcb), two front-ends (a managed WinForms GUI and an SDL2 port), extensive developer tools (debuggers, PPU/APU replayers, unit tests) and a nescartdb-derived cartridge identification database.
The people behind breaknes
History and status
Breaknes is the emulator component of the breaks chip-reversing project maintained at the emu-russia organisation on GitHub. The repository contains a long commit history and active work: the codebase includes a managed GUI (Breaknes), an SDL2 port (BreaknesSDL), a native core (BreaksCore), gate-level simulators for the 6502, APU and PPU, a mapper (MMC1), cartridge database conversion tools, and multiple utilities. The project is described as WIP in its documentation; releases are published in the GitHub releases section and source is actively available for cloning and building. The project is research- and developer-oriented rather than a packaged consumer emulator with guaranteed game-by-game compatibility.
What breaknes supports
- Nintendo Entertainment System (NES) / Famicom / Dendy
- Windows (managed WinForms GUI; native builds)
- Linux (SDL2 port)
- x86/x64 platforms supported by provided build toolchains
Download and availability
OFFICIAL DOWNLOADS
Get breaknes
Official source and binary releases are published on the project's GitHub releases page. For most users the recommended path is to download a released bundle from Releases or to clone the repository and build locally.
Get breaknes ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗breaknes setup guide
Setup note: Breaknes is developer-oriented. The project provides two front-ends and a native core. Below are practical steps to obtain, build, and run Breaknes from source using the repository's documented instructions.
- 1) Get the source: Clone the official repository: git clone https://github.com/emu-russia/breaknes.git. Inspect the top-level README, docs/ and Breaknes/ folder to choose the front-end you want (Breaknes managed GUI or BreaknesSDL).
- 2) Windows (managed GUI) — prerequisites: The README documents a Windows build using Visual Studio. Install a supported Visual Studio version (the README references Visual Studio 2026 in its build note) and ensure the .NET runtime for the managed GUI is available (README mentions .NET 6.0 Desktop Runtime). Open Breaknes.sln in Visual Studio and build the solution. Expect WinForms-managed GUI projects and native C++ components to be built together.
- 3) Windows / Linux (SDL2 port) — prerequisites: For the SDL2 front-end use Breaknes/BreaknesSDL. Install development dependencies (SDL2 development libraries, a C++ toolchain, CMake). On Linux: create a build directory, run cmake .., then make. On Windows you can configure the SDL2 variant with CMake or build with Visual Studio if toolchain is configured for SDL2.
- 4) Typical build steps (Linux / SDL2): From the repository root: mkdir build && cd build; cmake ..; make. The README shows running the built executable with a ROM: ./breaknes bomber.nes. Build outputs are located under the build folder; run the SDL2 executable for a cross-platform native runtime.
- 5) Cartridge/ROM handling: Breaknes represents cartridge PCBs as JSON documents and identifies ROMs by CRC32 against a nescartdb-derived JSON database included in Nescartdb/. The emulator expects PRG/CHR ROM dumps matching entries in its database for some of its cartridge wiring logic. Do not expect included commercial game ROMs or BIOS files — obtain any game files legally yourself and ensure they match the expected dump formats.
- 6) Tools and debugging: The repository contains many developer tools: BreaksDebug GUI for inspecting internal signals, Breakasm (6502 assembler), PPUPlayer/APUPlayer for register dump replays, unit tests and scripts for regdump conversion. These are inside Tools/, UnitTest/, and Wiki/ — build and run them as needed for reverse-engineering tasks or signal-level inspection.
- 7) Platform notes and expectations: Breaknes is research-focused and WIP. Expect the build to require up-to-date development toolchains and potential manual fixes for library paths. The SDL2 front-end provides the most straightforward cross-platform path (Linux and Windows). The managed WinForms front-end is Windows-specific. Performance and game compatibility are secondary to gate-level accuracy in many parts of the project.
- 8) Where to get releases: Binary bundles and utilities (including an SDL2 'Lite' variant mentioned in recent release notes) are available from the project's GitHub Releases page. If you prefer prebuilt artifacts, download from Releases rather than building from source.
Software reminder: Breaknes does not include commercial game ROMs, firmware or copyrighted BIOS/keys. Obtain ROMs legally and ensure you comply with local laws.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for breaknes as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
