Use TurboWarp to run at any reasonable speed: https://turbowarp.org/650322979 forkphorus is preferred for NSF playback: https://forkphorus.github.io/?webgl&fps=250&limits#650322979 Run in a Firefox or Chromium based browser. Safari is not fast enough. Accepted formats: iNES (.nes), NSF (.nsf) To import files, convert to hex—Uncheck both settings: http://tomeko.net/online_tools/file_to_hex.php Piracy is discouraged, use legally obtained ROMs! Supported mappers: 0, 1, 2, 3, 4, 7, 11, 24, 26, 34, 69, 206. Supports VRC6 and 5B expansion audio Default controls (can be remapped in settings): D-pad: arrow keys, A: z, B: x, Start: enter, Select: c Hotkeys (can't be remapped): Import ROM: i, Pause: p, Reset: q+r
This is an emulator for the Nintendo Entertainment System (NES), known as the Family Computer (Famicom) in Japan, the home video game console from the 1980s, written entirely in Scratch. It can load NES cartridge ROM files (.nes) and also functions as an NSF player, accepting files in NES Sound Format (.nsf). This project's main inspiration was prior emulators made in Scratch including gbc.sb2 by @DCPU-16, rrgbc by @52525rr, and Cool NES emulator by @GenericHeroGuy. It would not have been possible without online resources like the NESdev Wiki and the NESdev and Emudev online communities, which provided a wealth of hardware knowledge and emulation know-how. The preloaded ROM is Lan Master, a game created and released into the public domain by Shiru in 2011. The set of colors used by the emulator's PPU was generated with Persune's NES palette generator "Pally" using presets found on the NESdev wiki. I've forgotten exactly which presets, though. The backdrop is a higher resolution recreation of Scratch's built-in backdrop, "Nebula", which is a cropped version of a Hubble Space Telescope image of the Bubble Nebula, or NGC 7635, captured by NASA, ESA, and the Hubble Heritage Team. DPCM stand-in sample "Drum Bass2" is from the Scratch asset library. "Meow DPCM" is a version of the "Meow" sound effect from the Scratch asset library that I converted to DPCM form. Thumbnail shows the first level of Super Mario Bros. 3 All Scratch code, as well as all other project assets including audio channel waveforms, GUI elements, and the GUI's font are by me, Changelog: 2025-09-22 / 1.1.1: - Removed variables and lists which were incorrectly copied to the thumbnail sprite - Fixed 5B volumes not updating when the system is paused or resumed - Fixed regression made in v1.1.0 in which the feature to enable the VRC6 IRQ after IRQ acknowledgement was accidentally removed - The frame can now be redrawn multiple times before a new frame is generated without corrupting rendering state - The frame is now redrawn upon adjusting display settings while the system is paused - The frame is now redrawn if a stage size change is detected - Added "Force Redraw Every Frame" option to graphics settings 2025-06-02 / 1.1.0: - Implemented mapper 69 (FME-7/5A/5B) - Partially implemented 5B expansion audio; features originally unused are not implemented - Implemented DMC functionality (including DMC DMA and IRQ) for greater compatibility. Note that actual DMC output has not been made audible. 2025-04-17 / 1.0.2: - Fixed a bug in which the PPU enters an infinite loop and freezes the emulator if it skips scanline 0, dot 0 and reaches VBlank in the same call. 2025-04-14 / 1.0.1: - Added GUI transparency setting - A minimum 8 KB of PRG RAM will now be assigned to the cartridge if the ROM header indicates the presence of battery-backed memory - Fixed some issues with menu items showing up when they're not needed 2025-03-04 / 1.0.0: Release