Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
VGSOURCES
Get listed

ArduinoPATCH 2026.09.05

Run Your Favorite 8-Bit Games on an ESP32: The Best Builds in 2026

By VGSources Team 10 min read

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Yes—an ESP32 can run many classic 8-bit systems at or near their original speed. The best choice depends on the console you want to emulate and the kind of machine you want to build: a composite-video TV console, a small TFT tabletop system, or a complete ESP32-S3 handheld.

For a current NES project, Anemoia-ESP32 is the most practical starting point. It supports TFT and composite output, microSD game loading, save states, audio, and NTSC-speed emulation without requiring PSRAM. For a TV-based multi-system project, ESP_8_BIT remains distinctive, supporting Atari 8-bit computers, NES, and Sega Master System.

As an Amazon Associate I earn from qualifying purchases.

What “8-bit games” means here

The ESP32 itself is a 32-bit microcontroller. “8-bit” describes the older consoles and computers being emulated, including the NES, Game Boy, Atari 8-bit family, and Sega Master System—not the processor inside the ESP32.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Emulation is only one part of the project. A usable console also needs a display, controls, storage, audio, power, and an enclosure if you are building a handheld. A bare development board connected to USB is a development platform, not a finished game system.

#1 Best Overall
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (3PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Which ESP32 emulator project should you choose?

Project Best for Hardware and output ROM loading Main limitation
Anemoia-ESP32 NES on a TFT or television Dual-core ESP32; TFT or composite microSD card NES mapper and display limitations
ESP_8_BIT A simple TV-connected console Original ESP32; composite video and analog audio Project-specific flash/filesystem arrangements Less convenient than a modern handheld interface
NESpresso32 A reproducible NES demo ESP32 with PlatformIO ROMs compiled into firmware Changing games requires rebuilding and reflashing
ESP-BOX-EMU A multi-system ESP32-S3 handheld ESP32-S3-BOX or BOX-3 with custom hardware microSD card Requires a more involved handheld build
Retro-Go Supported prebuilt handheld hardware Device-specific ESP32 hardware Hardware-dependent Compatibility depends on the exact device

What each platform can realistically run

Target system Suitable projects Practical expectation
NES Anemoia-ESP32, ESP_8_BIT, NESpresso32, ESP-BOX-EMU The safest target; many games run at full speed, but cartridge mapper support still matters.
Game Boy ESP32 Gameboy, Retro-Go, ESP-BOX-EMU Generally practical, particularly on ESP32-S3 handheld hardware.
Game Boy Color ESP-BOX-EMU, Retro-Go Practical on compatible boards and firmware, but more demanding than the original Game Boy.
Atari 8-bit ESP_8_BIT A good fit for a television project with keyboard or joystick input.
Master System/Game Gear ESP_8_BIT, ESP-BOX-EMU Practical on suitable firmware.
Genesis/Mega Drive ESP-BOX-EMU on ESP32-S3 Possible with a dual-core implementation; do not assume an ordinary original ESP32 will handle it equally well.
MSX ESP-BOX-EMU Supported by that project, not by every ESP32 emulator.
SNES Retro-Go Listed as supported, but performance may be slow; support does not imply full speed.
Doom ESP-BOX-EMU and other ports A useful ESP32-S3 demonstration, but Doom is not an 8-bit system.

The recommended beginner build: Anemoia-ESP32

Choose Anemoia if NES is your priority and you want to select games from a microSD card rather than compile each ROM into the firmware. Its documented minimum requirements are a dual-core ESP32 and at least 1 MB of flash. PSRAM is not required.

Parts you need

  • A dual-core ESP32 development board with at least 1 MB of flash.
  • A supported TFT display, such as an ST7789 or ILI9341, or a composite-capable display/CRT.
  • For a game library, a microSD module and FAT32-formatted card.
  • Buttons, a joystick, or another controller supported by the chosen firmware.
  • An appropriate audio circuit, amplifier, or board-specific audio hardware.
  • A data-capable USB cable.

For a handheld, add a protected Li-ion/LiPo battery system, charging and protection hardware, power regulation, and an enclosure. USB power is safer and simpler for a bench or tabletop build.

Fastest installation: the web flasher

  1. Open the Anemoia Web Flash page.
  2. Connect the ESP32 to the computer over USB.
  3. Select the board’s serial port.
  4. Start the flash operation.
  5. Reboot the board when the page or project instructs you to do so.

The web flasher requires a Chromium-based browser with WebSerial support. The project documentation says Firefox is not supported. Web flashing is convenient, but it does not replace the hardware work: you still need a display, controls, storage, and audio.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build Anemoia from source

Clone the repository:

git clone https://github.com/Shim06/Anemoia-ESP32.git
  1. Install Arduino IDE.
  2. Open File → Preferences.
  3. Add this ESP32 board-manager URL:
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  4. Open Tools → Board → Boards Manager.
  5. Install ESP32 board support version 3.2.1.
  6. Install SdFat and TFT_eSPI through Tools → Manage Libraries.
  7. Copy the correct User_Setup.h from the repository’s User_Setups directory into the local TFT_eSPI library directory.
  8. Select the correct ESP32 board and serial port.
  9. Compile and upload the sketch.

Do not automatically substitute the newest board-support package. Anemoia specifically documents version 3.2.1 and warns that other versions may deliver worse performance.

Configure the TFT

For an ILI9341 display, enable the correct driver in User_Setup.h:

// #define ST7789_DRIVER
#define ILI9341_DRIVER

The project recommends reducing ILI9341 SPI to 40 MHz because 80 MHz can cause display reliability problems. An ST7789 using an 80 MHz-capable SPI connection can avoid frame skipping in the documented configuration. An ILI9341 path at 40 MHz uses one frame skip because the display link becomes the bottleneck.

Rank #2
ELEGOO 3PCS ESP-32 Dev Boards, ESP-WROOM-32, USB-C, WiFi Bluetooth 4.2 | Low-power IoT Applications, Smart Devices, Automation, Wireless Communication, GPIO Headers, Simplifying Development
  • Dual-Core Performance Up to 240 MHz: Run sensor processing, wireless communication, automation logic and connected-device tasks on a 32-bit dual-core ESP32 platform designed for responsive embedded and IoT projects
  • Built-in Wi-Fi and Bluetooth 4.2: Connect to 2.4 GHz Wi-Fi networks or use Bluetooth Classic and BLE for wireless sensors, smart devices, remote controls, home automation and other connected projects
  • Flexible Power-Saving Modes: ESP32 power-management features support dynamic clock scaling and low-power operating modes, helping developers reduce energy use in compatible sensing, monitoring and connected-device applications, suitable for battery-powered Internet of Things (IoT) devices.
  • USB-C Programming with CP2102: Connect through USB-C for power, sketch uploads and serial monitoring, while GPIO, UART, SPI and I2C interfaces support sensors, displays, motor drivers and other modules (USB-C cable not included)
  • Over-the-Air Update Support: Configure OTA functionality through a compatible ESP-32 software framework to update deployed firmware over Wi-Fi without reconnecting the board by USB for every revision

That distinction matters: the emulator can keep up internally while a slow SPI panel updates less frequently. Confirm the display driver, CS, DC, RST, MOSI, SCLK, power, ground, orientation, and backlight wiring before debugging the emulator.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Put games on the microSD card

  1. Format the card as FAT32.
  2. Copy valid .nes files into the card’s root directory.
  3. Insert the card into the module.
  4. Power on the ESP32.
  5. Select a game from the file menu.

Use homebrew games, public-domain software, official re-releases, or ROM dumps you have a legal right to use under the law where you live. Laws concerning copying and personal backups vary by jurisdiction. The emulator projects do not provide copyrighted commercial ROM libraries.

NES compatibility: mapper support matters

An NES emulator supporting the NES system does not automatically support every NES cartridge. Anemoia documents support for mappers 0, 1, 2, 3, 4, and 69, and estimates that these cover about 79% of the NES catalogue. That is the project’s estimate, not a universal compatibility guarantee.

Before blaming the hardware, look up a game’s iNES Mapper number in NesCartDB. A supported mapper still does not guarantee perfect behavior: unusual cartridge hardware, timing quirks, bad dumps, and emulator-specific bugs can cause failures.

Anemoia reports approximately 60.10 FPS for titles including Super Mario Bros., Contra, The Legend of Zelda, Mega Man 2, Castlevania, and Metroid, and approximately 59.57 FPS for Kirby’s Adventure. Its NTSC target is approximately 60.098 FPS. These are project-reported figures, not independent measurements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The emulator batches PPU work by rendering a complete horizontal line rather than reproducing every original hardware operation dot by dot. That is faster but less accurate than cycle-level emulation. Most games are unaffected, while software relying on unusual mid-scanline behavior may not behave identically to original hardware.

Rank #3
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE | Development Board, USB-C Dual Core Microcontroller Support AP/STA/AP+STA, CP2102 Chip, WiFi, Bluetooth, 200+ parts for IoT
  • Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
  • Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
  • Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
  • Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
  • Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.

The original TV-console route: ESP_8_BIT

ESP_8_BIT is the right choice when the goal is a simple television-based retro machine rather than a polished handheld. It supports Atari 8-bit computer software, NES, and Sega Master System, with composite video and analog audio from an ESP32.

The documented basic signal circuit uses:

  • GPIO 25 for composite video.
  • GPIO 18 for audio.
  • A 1 kΩ resistor in the audio path.
  • A 10 nF capacitor to ground.

Follow the project’s schematic, use a common ground, and treat these as signal-level circuits. An ESP32 GPIO should not be assumed to drive a normal speaker directly; audio may need the project’s specified analog arrangement or an external amplifier.

ESP_8_BIT supports Bluetooth Classic/EDR keyboards, WiiMotes and WiiMote peripherals, IR keyboards and joysticks, and other supported IR devices. Bluetooth support is not interchangeable across ESP32 families: original ESP32 Bluetooth Classic capability does not mean an ESP32-S2, ESP32-S3, or ESP32-C3 board supports the same controllers.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The project also documents a mechanism for handling cartridges larger than available RAM by copying them into a filesystem area and memory-mapping a partition. This is not unlimited ROM support; flash layout, cartridge format, emulator implementation, and build settings remain constraints.

For a complete handheld: ESP-BOX-EMU

ESP-BOX-EMU is a more ambitious ESP32-S3 route. It targets the ESP32-S3-BOX or BOX-3 and documents support for NES, Game Boy and Game Boy Color, Master System and Game Gear, Genesis/Mega Drive, MSX 1/2, and a full-speed Doom port.

Its handheld-oriented features include microSD loading, automatic emulator selection by ROM extension, audio, up to five save-state slots per game, box art, USB-C mass-storage access, a 1,000 mAh LiPo battery, haptic feedback, and an LVGL interface.

Rank #4
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (1 PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos;ESP32 is a safe, reliable, and scalable to a variety of applications
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • 1PCS 30Pin ESP32 Development Board 2.4GHz WiFi Dual Cores Microcontroller Integrated with Antenna RF Low Noise Amplifiers Filters

This is not a firmware download that turns any ESP32 into a handheld. The physical controls, battery, enclosure, microSD arrangement, and custom add-on board still need to be sourced or fabricated. Its Genesis implementation divides work across the ESP32-S3’s two cores, so that result should not be generalized to every ESP32 model.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Two other useful routes

NESpresso32

NESpresso32 is a clean NES-only PlatformIO workflow. It converts selected .nes files into generated C/C++ files during the build, then compiles them into the firmware.

git clone https://github.com/Danilop95/NESpresso32
cd ESP32/NESpresso32
cp ~/Downloads/mygame.nes roms/
pio run -t upload

The example documentation reports a 2,000 KB total ROM limit in its build output. This approach is reproducible and convenient for a fixed demo, but changing the game library means rebuilding and reflashing. To view serial output:

pio device monitor

If uploading stops at Connecting........_____, hold the ESP32’s BOOT button while PlatformIO attempts to connect.

Retro-Go

Retro-Go offers broader retro firmware, including NES, Game Boy, Game Boy Color, Game & Watch, and other systems. Its officially supported hardware is device-specific, so check the supported-device documentation before buying a board or assuming a generic ESP32 handheld will work.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choosing the board and display

Choice Advantages Trade-offs
Original ESP32 Good fit for ESP_8_BIT, composite video, and Bluetooth Classic controllers Older platform; fewer assumptions should be made about modern handheld firmware
ESP32-S3 Dual-core 32-bit Xtensa LX7 processor at up to 240 MHz; suited to multi-core handheld projects Project compatibility is board-specific, and Bluetooth behavior differs from the original ESP32
Composite television Authentic retro feel and simple display hardware Analog wiring, limited portability, and possible television/region compatibility issues
ST7789 TFT Good choice for a handheld; documented 80 MHz path can avoid frame skipping in Anemoia Still requires separate controls, storage, audio, and power
ILI9341 TFT Common and inexpensive Anemoia recommends 40 MHz SPI, with one frame skip in the documented configuration
ESP32-S3-BOX display Integrated screen, buttons, speaker, USB-C, and expansion ecosystem More expensive and tied to a specific platform

Espressif’s page lists the ESP32-S3-DevKitC-1-N8R8 at a sample reference price of $15 and the ESP32-S3-BOX-3 at $49 as seen in August 2026. These are reference prices, not guaranteed retailer checkout prices; shipping, taxes, regional availability, and stock can change.

Best Value
HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA for Arduino IDE
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Ultra-Low power consumption, works perfectly with the Arduino IDE
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Controls, audio, and power

Physical GPIO buttons are the simplest choice for a dedicated handheld, but their pin assignments must match the selected firmware. Bluetooth Classic is useful for an original-ESP32 TV console, while WiiMotes and IR controllers make particular sense with ESP_8_BIT. Do not assume that a generic USB gamepad will work unless the board and firmware document the required USB host or device support.

Audio depends on the project. Composite projects may use the documented analog output circuit; TFT builds may use an external amplifier, DAC, I2S audio, or board-specific hardware. Missing or distorted sound can result from incorrect wiring, poor grounding, power noise, or an unsuitable speaker connection.

Use USB power for an initial build. A handheld requires a protected battery, charger, protection circuitry, power switch, and regulation suitable for the board and display. Do not add an unprotected Li-ion cell simply because the ESP32 itself runs from a low voltage.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting

The board will not flash

  1. Try another USB cable that supports data.
  2. Confirm that the expected serial port appears.
  3. Check the selected board.
  4. Hold BOOT while beginning the upload if automatic reset fails.
  5. Use the documented ESP32 board-support version—Anemoia specifies 3.2.1.
  6. Erase the flash and retry if stale partitions or firmware are interfering.

The display is blank or corrupted

  • Confirm the correct User_Setup.h and display driver.
  • Check CS, DC, RST, MOSI, SCLK, power, ground, and backlight wiring.
  • Reduce an ILI9341 configuration to 40 MHz SPI.
  • Check display voltage and orientation settings.
  • Run a simple TFT library example before testing the emulator.

A game will not boot

  • Check that it is a valid .nes file.
  • Look up its iNES mapper in NesCartDB.
  • Try a known-good homebrew or commonly supported title.
  • Test the ROM in a desktop emulator.
  • Consider a bad dump, unsupported cartridge hardware, or an emulator-specific compatibility issue.

The microSD card is not detected

  • Format it as FAT32 rather than exFAT.
  • Place the files in the location expected by the project—Anemoia documents the root directory.
  • Check the module’s voltage, ground, chip-select, and SPI wiring.
  • Try a reliable, smaller card if the board or firmware has capacity limitations.

Games run slowly or stutter

  • Check whether the display interface is the bottleneck.
  • Use the documented board-support version and target hardware.
  • Prefer a faster supported display configuration.
  • Test with audio disabled if the project offers that option.
  • Remember that different ESP32 families do not have identical performance or peripheral support.

A controller will not pair

Verify the controller’s protocol and the ESP32 family. ESP_8_BIT’s Bluetooth Classic and IR support is not a guarantee that the same device works with an ESP32-S3, S2, or C3 project. A wired GPIO controller is often the simplest fallback.

Which build is right for you?

  1. Choose ESP_8_BIT for the lowest-complexity TV console, composite output, Atari 8-bit support, or Bluetooth/IR input.
  2. Choose Anemoia-ESP32 for the best documented custom NES build with TFT output, microSD loading, save states, and no PSRAM requirement.
  3. Choose NESpresso32 if you prefer PlatformIO and a fixed set of NES ROMs compiled into the firmware.
  4. Choose ESP-BOX-EMU if you want a serious ESP32-S3 multi-system handheld and are prepared to build the supporting hardware.
  5. Choose Retro-Go only after confirming that your exact handheld board is officially supported.

For a custom build, an ESP32-S3 development board plus a supported TFT, buttons, microSD module, and audio hardware offers the most flexible foundation. For the cheapest experiment, an original ESP32 with ESP_8_BIT and an existing television and controller is more appropriate. Avoid buying a random “ESP32 game console” unless its exact firmware, display driver, controls, storage, and source documentation are known.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

ArduinoDIY handheldemulationESP32NESretro gaming

Leave a reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.