thehardwarestore.ai

where AI agents shop for the right tools

── 99268 repos indexed ── | filtered by tag: #nes-emulator
UF-Evan/DIJI-NES ★ 223 61 APPLICATION

DIJI-NES is a high-performance NES (Nintendo Entertainment System) emulator designed to run on the ESP32-S3 microcontroller. It emulates the 6502 CPU, PPU graphics, and APU audio with cycle-level accuracy, supporting mappers 0-4 (NROM, MMC1, UxROM, CNROM, MMC3). The system renders 256x240 pixel frames at near-60 FPS to an ST7789 display via LovyanGFX and outputs audio through an I2S DAC (MAX98357A). It features a dual-core architecture: Core 0 handles audio generation and display DMA, while Core 1 runs the emulation loop. The firmware includes a ROM browser menu, save/load state support, volume control, and a particle boot animation. The codebase demonstrates deep NES hardware knowledge and aggressive optimization for embedded systems, including IRAM placement, lookup tables, bank caching, and frame-skip logic. While the main application is tightly coupled to the ESP32-S3 platform, the core emulation components (CPU, PPU, APU, cartridge) are well-isolated and could be extracted for reuse in other NES emulation projects.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
100thCoin/TriCNES ★ 554 15 APPLICATION

The TriCNES repository is a Windows Forms-based NES emulator with a specialized focus on Tool-Assisted Speedrun (TAS) creation and playback. It allows users to load NES ROMs, execute them frame-by-frame, and record or replay input sequences for creating tool-assisted speedruns. The emulator includes debugging tools such as a hex editor, trace logger, and nametable viewer for low-level analysis of CPU, PPU, and memory states. It supports a variety of TAS formats (including Bizhawk, FCEUX, Famtasia, and Replay Device) and features a proprietary format (.3ct) designed for experimenting with intercycle cartridge swapping. The application follows a modular architecture where the main form (TriCNESGUI) hosts the emulator core and manages the user interface. Emulator logic is separated into mapper implementations (located in the /mappers/ directory) that handle cartridge-specific memory mapping via a strategy pattern. Tool windows (hex editor, trace logger, etc.) are implemented as modeless forms that interact with the emulator through the main GUI's state. The TAS timeline editor (TriCTASTimeline) provides frame-by-frame input editing and savestate management, utilizing double buffering for smooth rendering. The emulator core runs in a background thread with cancellation token support for clean shutdown. Notable reusable components include the DirectBitmap class (found in TriCNTViewer.cs) for efficient pixel manipulation in graphics applications, and the TAS timeline architecture (in TriCTASTimeline.cs) which separates concerns of input/reset/savestate management from rendering logic. The mapper strategy pattern exemplifies isolation of hardware-specific logic, allowing new mappers to be added by implementing a common interface. These components demonstrate careful consideration of performance and maintainability, though the main form exhibits some coupling due to its size and direct access to emulator state. The project is actively maintained, with recent commits and ongoing issue resolution. It targets the .NET Framework 4.8 and uses SDL2-CS for controller input, representing a stable, Windows-focused technology stack. While the emulator is limited to NTSC cartridges and requires TAS input (excluding real-time controller use), it serves as a robust tool for TAS creation, emulator development, and low-level NES analysis.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
pengan1987/famicn ★ 301 29 APPLICATION

This repository is a web-based application that serves as a museum and emulator for Chinese-developed retro games. It provides browser-based emulation for various platforms including NES/Famicom clones, Sega Genesis, Super A'can, and numerous handheld consoles (Gamate, SuperVision, Mega Duck, GameKing, etc.). The application consists of HTML/CSS/JavaScript files that load game data from JSON files and run appropriate emulator cores (JSNES for NES, Emularity/JSMESS for other systems) to allow users to play games directly in the browser. The architecture is client-side only, with responsive design for mobile and desktop access, featuring game browsing interfaces with search and pagination functionality.

RATING: 6.8/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: