NES EMULATOR
StepFC
StepFC is an open-source, step-by-step NES (Famicom) emulator project and tutorial that walks through building a working NES emulator in incremental steps. The repository contains source for a finished emulator alongside many intermediate "step" folders that demonstrate how subsystems are implemented.

WHY IT MATTERS
Why StepFC exists
StepFC is structured as both a learning resource and a usable emulator: the author documents implementation in progressive steps (Step0 through StepF) so readers can follow how CPU, PPU, APU, mapper, input and other subsystems are implemented and integrated into a working NES/Famicom emulator.
BEST FOR
What it's best for
Learning how NES emulation is implemented (CPU instruction implementation, PPU background and sprite rendering, basic APU, mapper handling, save states and TAS recording). The finished emulator in the repo can be built from source to run NES ROMs on supported platforms.
The people behind StepFC
Project & repository notes
The repository is published on GitHub (dustpg/StepFC). The README and folder layout present a tutorial-style approach: many step folders (step0, step1, … stepf) document incremental development from ROM loading to mappers, audio and further features. The project contains both MIT-licensed "StepX" instructional steps and a GPLv2-licensed "StepFC" finished emulator binary/source as described in the README. The repository includes a Visual Studio solution and CodeLite project files to aid building on different compilers and platforms. The repository shows active source files and commit history on GitHub; no formal GitHub releases are present in the Releases page.
What StepFC supports
- Nintendo Entertainment System (Famicom / NES)
- Basic mappers referenced (mapper1/2/3/4 mentioned in the documentation)
- Famicom Disk System referenced as a future/advanced topic in the project notes (FDS BIOS noted as planned)
- PC (Windows build files provided; CodeLite/Makefile suggest possible builds on other platforms)
Download and availability
OFFICIAL DOWNLOADS
Get StepFC
The project source and any distributed binaries are on the project's GitHub repository. The repository does not contain formal GitHub Releases (the Releases page reports "There aren’t any releases here"). To obtain source or check for any attached binaries, clone the repository or check its Code and Tags on GitHub.
Get StepFC ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗StepFC setup guide
Setup note: This guide describes how to obtain and build StepFC from the repository and the practical steps to run the emulator. It focuses on the repository's documented build targets (Visual Studio / CodeLite / Makefile) and on practical runtime notes derived from the repository contents. The project does not ship commercial game ROMs, BIOS or other proprietary firmware — you must provide your own legally obtained ROM files.
- 1) Get the source: Clone the GitHub repository (https://github.com/dustpg/StepFC) to your machine. The repository contains a StepFC.sln Visual Studio solution, a CodeLite workspace and a Makefile; it also contains many incremental step folders (step0..stepf) that document development stages.
- 2) Choose a build environment: The README notes project files for Visual Studio 2017 and CodeLite. For a straightforward Windows build use Visual Studio 2017 or later and open StepFC.sln. For other platforms try the included Makefile and CodeLite workspace, but you may need to adjust include paths and link libraries (the repository uses C/C++ sources and common build idioms).
- 3) Install prerequisites: Install a C/C++ toolchain appropriate for the chosen environment: Visual Studio (with Windows SDK) for the .sln, or gcc/clang and make for the Makefile path. Install any SDL or other libraries if the code references them (check source files for #include lines and the Makefile for linked libraries). The repository README and project files are the authoritative place to identify required third-party libraries.
- 4) Build the project: Open StepFC.sln in Visual Studio and build the StepFC target (or use make with the provided Makefile). The repository contains project settings intended to work on the stated compilers; if build errors occur, inspect the project files and any referenced headers/libraries and install or adapt them for your environment.
- 5) Runtime files and ROMs: The emulator expects NES/Famicom ROM files provided by the user. The repository documents mapper support (Mapper1/2/3/4 are explicitly mentioned in the step list) but does not claim coverage of every mapper. Provide legally obtained .nes ROM files. Do not expect proprietary BIOS/firmware to be included in the repo; for Famicom Disk System support the README lists FDS BIOS as an advanced topic (not bundled).
- 6) Configuration, input and audio: The step list and source include steps for input and basic audio. Configuration options (display scaling, input mapping, save state location, audio sample rate) are found in the code and may be exposed via command-line or configuration files implemented in the project — review the source and README for exact knobs. The project documents an audio step that moves from basic timing toward higher fidelity mixing; runtime behavior will depend on which step/branch you build and the platform audio backend used.
- 7) Testing and debugging: Use the step-by-step folders as a learning and debugging aid: earlier steps focus on single subsystems (e.g., instruction implementation, PPU background render) that can be built or run independently for verification. If you need known test ROMs (nestest or other NES test suites) obtain them separately and use them to verify CPU, PPU and mapper correctness.
- 8) No official release binaries — packaging yourself: The repository's Releases page indicates no published releases. If you need a binary, build it locally or check the repository's Tags/commits for any prebuilt artifacts committed into the code tree (exercise caution and review any included binaries). For broader distribution, package executables per platform and include clear instructions and license notices (the finished emulator is listed as GPLv2 in the README).
Software reminder: StepFC provides source code only; you must supply your own NES ROM files, and the repository does not include proprietary BIOS or commercial game data. Review the repository license files (MIT for StepX instructional steps; GPLv2 for the finished StepFC emulator, as noted in README) before redistributing binaries.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for StepFC as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation