Skip to main content

Emulators — tests and speed

What runs on the board, which game it was checked with, and how fast it goes. Every figure was measured on the v4.9.0 first article, from the BUSY:x% FPS:t (S:s R:r) line rg_system prints once a second on the USB console (t = emulated frames a second, s = skipped, r = drawn) or from an emulator's own profile line.

How to read it. Full speed means the game runs at its machine's own rate (60, 50 for PAL, or the engine's rate for the PC ports). Not every emulated frame is drawn: most cores draw one in two at full speed, which is still smooth on this screen. Busy is how much of the main core the emulator takes.

At a glance (2026-10-14)​

Game speed only (emulated frames a second against the machine's own rate); the drawn frames and the details are in the tables below.

At full speed (60 fps, 50 for PAL machines, or the engine's own rate): NES, Game Boy, Game Boy Color, Master System, Game Gear, SG-1000, ColecoVision, PC Engine, SNES (SNESticle, every cartridge chip), Mega Drive, Atari 2600, Atari 5200, MSX 1/2, Neo Geo Pocket, Commodore 64, Virtual Boy (50 Hz), the 8-bit arcade boards (Pac-Man, 1942...), Blood Bros., DOOM, Wolfenstein 3D, OpenTyrian, OutRun (Cannonball), Arcade 3D Racing.

Not yet at full speed, in the order the work goes (user's priority):

SystemWhere it standsGap to full speed
Game Boy AdvanceSonic Advance 59.6; Mario Kart, F-Zero, V-Rally 3, GT Advance 3 59-60; in 2 min of play: NFS Underground 52, Crash Nitro Kart 56, DOOM 39-40 (2026-10-14)the 3D games: NFS 52, Crash 56, DOOM 40 of 60
Capcom CPS1in 2 min of fighting: Final Fight median 60, Street Fighter II median 52-53, Knights of the Round median 52 (2026-10-14)SF2 and Knights in a fight
Neo GeoMetal Slug 58, Metal Slug 2 and KOF '95 52-552-8 fps
Sega System 16Golden Axe 54, Alien Syndrome 58, Wonder Boy III 572-6 fps
Other 68000 arcade boardsAero Fighters 47-57up to 13 fps
Atari 780058-591-2 fps
Atari Lynx56-60up to 4 fps
SNES SuperFXStar Fox 48-49, 7-8 drawn; Doom (SuperFX 2) 39, 7 drawn11-21 fps; Snes9x draws Star Fox at 12

Consoles and handhelds​

SystemApp (core)Checked withSpeed on the boardDate
NESretro-core (nofrendo)Super Mario Bros., Owlia✅ 60 fps, busy 36–39 %, 55–60 drawn2026-10-03
Game Boyretro-core (gnuboy)Tetris✅ 60 fps, busy 34 %2026-09-27
Game Boy Colorretro-core (gnuboy)Space Invaders, ucity✅ 60 fps, busy 35–53 %2026-09-27
Master Systemretro-core (smsplus)Sonic, Silver Valley✅ 60 fps, busy 35 %2026-09-27
Game Gearretro-core (smsplus)Shinobi II and 5 more✅ 60 fps, busy 31–41 %2026-10-03
SG-1000retro-core (smsplus)GP World✅ 60 fps, busy 33 %2026-09-27
ColecoVisionretro-core (smsplus)Pac-Man✅ 60 fps, busy 31 %2026-09-27
PC Engineretro-core (pce-go)Street Fighter II' CE, OutRun✅ 60 fps, busy 33–43 %2026-10-03
SNESsnesticle-go (SNESticle)SMW, Zelda, Super Metroid, SMAS, DKC, Mega Man X✅ 60 fps, 42–60 drawn2026-10-18
SNES chipssnesticle-go (SNESticle)Mario Kart (DSP-1), Mega Man X2/X3 (Cx4), SF Alpha 2 (S-DD1), Tengai Makyou Zero and Daikaijuu II (SPC7110), Metal Combat (OBC1), Kirby Super Star and Super Mario RPG (SA-1), F1 ROC II (ST010), Top Gear 3000 (DSP-4)✅ 60 fps; drawn: MK 49, MMX2 59, MMX3 31, SFA2 60, Tengai 53, Daikaijuu 59, Metal Combat 60, Kirby 29, SMRPG 17, F1 ROC II 35, Top Gear 142026-10-18
SNES SuperFXsnesticle-go (SNESticle)Star Fox, Doom (SuperFX 2)🟡 Star Fox 48–49 fps, 8 drawn; Doom 39, 7 drawn2026-10-18
Atari Lynxretro-core (handy)5 PD demos✅ 56–60 fps2026-10-03
Mega DrivegwenesisSonic, Miniplanets✅ 60 fps, 30 drawn, busy 85 %2026-10-03
Game Boy Advancegbsp (gpSP + Xtensa dynarec)Sonic Advance, Metal Slug Advance, TMNT, Mario Kart, NFS Underground🟡 Sonic 59.6, Mario Kart / F-Zero / V-Rally 3 / GT Advance 3 59-60; NFS Underground 52, Crash Nitro Kart 56, DOOM 39-40 in play (per-block code invalidation, assembly loads and stores, the hottest translated code in internal RAM)2026-10-14
Atari 2600retro-extra (Stella)Halo 2600, Donkey Kong, Asteroids✅ 60 fps (50 PAL), busy 30–68 %2026-10-03
Neo Geo Pocketretro-extra (RACE)Metal Slug 1st Mission and 7 more✅ 60 fps, all 60 drawn on quiet screens, 45–61 in Metal Slug's fights (was ~29)2026-10-09
Atari 5200retro-home (Atari800 via MCUME)Galaxian, Pole Position, Space Invaders✅ 60 fps, busy 33 %2026-10-08
Atari 7800retro-home (ProSystem)Donkey Kong🟡 58–59 of 60 fps (was 42)2026-10-09
Commodore 64retro-home (Teensy64 + reSID)Ghostbusters (.d64)✅ 50 fps PAL (busy 70 %), 60 fps NTSC (busy 73–79 %)2026-10-10
MSX 1 / MSX 2fmsx (fMSX)Nemesis, Metal Gear 2✅ 60 fps, busy 21–26 %2026-10-07
Virtual Boyretro-extra (Beetle VB + V810 recompiler)Wario Land, Galactic Pinball, V-Tetris✅ full speed (50.3 Hz); 55–57 fps with Speed max2026-10-13

SNES: SNESticle​

The SNES runs on SNESticle, a MIT-licensed core (snesticle-go, an app on the card) that replaced Snes9x as the default. It is much faster than the previous emulator and runs every cartridge chip: SuperFX/SuperFX 2, SA-1, DSP-1 to DSP-4, Cx4, S-DD1, SPC7110, OBC1, S-RTC, ST010/ST011. Snes9x showed a black screen on Kirby Super Star, Super Mario RPG and Doom, and garbled F1 ROC II and Street Fighter Alpha 2; SNESticle runs them all.

Where the speed comes from: interpreters dispatched through jump tables and kept in internal RAM; line compositing and colour blending on the second core; exact skipping of the games' wait loops (CPU, SA-1 and NEC DSP); a predecoded NEC DSP; a cached S-DD1 decoder; a frameskip that measures each frame's work. Every change is gated by bit-identical output on 164 test ROMs and the chip games on a PC build of the same core.

GameChipSnes9x (fps / drawn)SNESticle (fps / drawn)
Super Mario World, Zelda, SMAS, Super Metroid—60 / 3060 / 59–60
Donkey Kong Country, Mega Man X—60 / 3060 / 42 · 60 / 55
Super Mario KartDSP-160 / 1060 / 49
Mega Man X2, X3Cx450 / 25 · 60 / 2060 / 59 · 60 / 31
Street Fighter Alpha 2S-DD1stripes60 / 60
Tengai Makyou Zero, Daikaijuu IISPC7110stuck on the check screen · 60 / 3060 / 53 · 60 / 59
Metal CombatOBC150 / 2560 / 60
Kirby Super Star, Super Mario RPGSA-1black screen60 / 29 · 60 / 17
F1 ROC IIST01059 / 29, garbled60 / 35
Top Gear 3000DSP-450 / 2560 / 14
DoomSuperFX 2black screen39 / 7
Star FoxSuperFX60 / 1249 / 8

Drawn counts frames sent whole or in part (a partial update sends only the changed lines of a complete frame).

Arcade​

BoardAppChecked withSpeed on the boardDate
8-bit boards (Z80, 6502...)mame-go (MAME 0.37b5)Pac-Man, 1942, Robby Roto✅ 60 fps2026-09-27
68000 boardsmame-goBlood Bros., Aero Fighters✅ Blood Bros. 60; 🟡 Aero Fighters 47–572026-09-28
Neo Geomame-goMetal Slug, Metal Slug 2, KOF95🟡 Metal Slug 58 game fps; Metal Slug 2 and KOF95 52–552026-10-06
Capcom CPS1mame-goFinal Fight, Street Fighter II CE, Knights of the Round🟡 Final Fight median 60, SF2 median 52-53, Knights median 52 in 2 min of fighting (layers in 16-line bands, 16-bit games too since 2026-10-14; the flash tile cache grew to 4.25 MB so that SF2 converts its frames on the second core again, 47 → 53; tiles hidden under opaque tiles of later layers are skipped when that pays, Knights 49 → 52)2026-10-14
Sega System 16mame-goGolden Axe, Alien Syndrome, Wonder Boy III🟡 54, 58, 572026-10-06

PC games and native ports​

GameAppSpeed on the boardDate
DOOM (Freedoom)prboom-go✅ 35 fps, the engine's rate2026-09-27
Wolfenstein 3D (shareware)wolf3d-go✅ 62 fps, busy 34 %2026-09-27
OpenTyrianopentyrian-go✅ 36 fps (engine rate 35), busy 30 %2026-09-27
OutRun (Cannonball)sdapp, from the SD card✅ 30 fps, the engine's rate2026-10-04
Music (MP3 player)media-go, sdapp✅ 32 kHz output, no dropouts at 128 kbps: Music and Books2026-10-16
Books (EPUB/TXT reader)ebook-go, sdapp✅ read upright, cover and pictures: Music and Books2026-10-16
Arcade 3D Racingretro-extra✅ 47–64 fps2026-10-04
Duke Nukem 3D, Quake—out of the flash since 2026-10-05 (were 48–53 and 34–41 fps)
Super Mario 64, Mario Kart 64—out of the flash since 2026-10-07: Nintendo 64 through native ports

The check every release gets​

Before a build is recorded as a release, one game per launcher tab is started from the console and checked on the webcam; then SELECT, START, A, START and RIGHT are pressed and the game must react. The last such check (22 tabs plus the four home systems) is in Firmware → Current build.

The tools: scripts/emu_check.py starts each core's test game and averages the stats line; scripts/snes_bench.py resumes the seven SNES scenes from save states; scripts/mamebench/ runs the arcade benchmarks (MAMEBENCH, MAMEPROF); a webcam (scripts/board_cam.py) checks the picture.

Buttons​

The handheld has a D-pad, A, B, X, Y, START, SELECT, L, R, MENU and OPTION. MENU opens retro-go's game menu (save, load, quit), OPTION its options. The consoles use their own pad on the same buttons; the systems with more keys:

SystemMapping
ArcadeB / A / Y / X / L / R = buttons 1–6, SELECT coin, START start
Atari 7800A (and X) button 1, B button 2, START console Reset, SELECT Select, Y Pause, L / R flip the difficulty switches
Atari 5200A fire, B side button, START, SELECT alone Pause; keypad X 1, Y 2, L *, R #; SELECT held + X, Y, A, B 3–6, + UP, RIGHT, DOWN, LEFT 7, 8, 9, 0, + L Reset
Commodore 64D-pad + A or B joystick in port 2 (L swaps to port 1), START SPACE, SELECT RUN/STOP, X F1, Y F3, R RETURN; options menu: Type key for any other key
MSXA / B fire, X SPACE, Y RETURN, L F1, R ESC, SELECT on-screen keyboard, START fMSX's menu

System files on the card​

No ROM is kept in any repository; the emulator that misses a required file says which one and where.

SystemFile
Atari 5200/retro-go/bios/5200.romrequired
Atari 7800/retro-go/bios/7800 BIOS (U).rom or (E).romoptional
Commodore 64/retro-go/bios/c64/kernal.rom, basic.rom, chargen.romrequired
MSX/retro-go/bios/msx/MSX.ROMrequired
MSX 2MSX2.ROM + MSX2EXT.ROM of the same versionMSX2 games (C-BIOS's MSX2.ROM with a real MSX2EXT.ROM gives a black screen; without them fMSX starts as an MSX1)
NES FDS, GB, GBC/retro-go/bios/fds_bios.bin, gb_bios.bin, gbc_bios.binoptional
Neo Geoneogeo.zip in the Neo Geo games folderrequired
SNES DSP-4 (Top Gear 3000)/retro-go/bios/dsp4.rom (8192 bytes: program then data, little-endian)required by that game
SNES ST010 (F1 ROC II)/retro-go/bios/st010.rom (53248 bytes)required by that game
SNES DSP-2/DSP-3/ST011dsp2.rom, dsp3.rom, st011.rom in /retro-go/bios/required by those games
SNES Cx4 (Mega Man X2/X3)/retro-go/bios/cx4.data.rom (3072 bytes)optional: only the 3D parts need it

Limits worth knowing​

  • Commodore 64, PAL or NTSC: the machine is a PAL C64 (50 Hz) unless the file name carries (USA), (NTSC), [NTSC], (U), (Japan) or (Canada), which start an NTSC C64 (6567R8 VIC-II, 263 lines, 60 Hz); Options → Emulator options → Video forces either. A PAL game on NTSC runs about 20 % fast, as on the real machines. Save states record the standard and load only on the same one; states from before 2026-10-10 do not load.
  • Commodore 64: no 1541 drive. A game is loaded from its .prg, or the first program of a .d64, and started by itself; games that load more parts from the disk stop after the first, and saving to disk does not work.
  • Atari 5200: cartridges of 8, 16 and 32 KB (nearly all); not the bank-switched ones of 64 KB and more.
  • SNES: games start in SNESticle (the SNES tab's New game); Snes9x is kept only as a fallback when the SNESticle app is missing from the card. SNESticle saves its own states (saves/snest), so Snes9x states do not carry over. Star Fox is the one game where Snes9x still draws more frames (12 against 8). ST010, DSP-2/3/4 and ST011 games need the chip's firmware on the card (below).
  • Amiga: not available. The only microcontroller Amiga emulator (MCUME's UAE) needs a 600 MHz Teensy 4.1; this chip runs at 240 MHz.
  • Open defects by emulator: Remediation — Emulators.