Skip to content
StepFC

StepFC

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.

nesPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

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 ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

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. 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. 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. 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. 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. 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. 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. 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. 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.