EVERYTHING XIAOMI
Get listed

retroemu

retroemu runs classic console games in a terminal using Node.js and libretro cores compiled to WebAssembly.

Place
#21 of 54
Score
6.6
retroemu's website

What retroemu is

retroemu runs classic console games in a terminal using Node.js and libretro cores compiled to WebAssembly. Its README describes support for more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, N64, and PlayStation; it can also run WASM carts and JavaScript games. Video output can appear in a terminal, an SDL window, or both, with truecolor ANSI rendering in the terminal. SDL2 supports more than 2,100 controllers and provides direct audio output. SRAM saves load and save automatically, while libretro save states use F5 and F7. Remote play lets a host share a game with a player or spectator; the guest needs no ROM or core, and video, audio, and controller data travel peer to peer over WebRTC. A programmatic API supports loading games and controlling emulation, saves, input, and video. retroemu is free and MIT-licensed. Installation uses `npm install -g retroemu`; it requires Node.js 22 or later and a truecolor terminal. PC Engine CD and ColecoVision require user-provided BIOS dumps.

Good

  • Supports more than 25 systems.
  • Offers terminal, SDL window, or combined video output.
  • Remote play shares video, audio, and controller data peer to peer.
  • SRAM saves load and save automatically.

Watch out

  • Requires Node.js 22 or later.
  • Terminal output requires a truecolor terminal.
  • PC Engine CD and ColecoVision need user-supplied BIOS dumps.

Who it suits

retroemu suits users who want to run retro games through a terminal or SDL window, and developers who need a programmatic emulation API. It requires Node.js 22 or later and a truecolor terminal.

Verdict

retroemu combines terminal-based emulation with SDL output, save handling, and remote play. Check its Node.js and display requirements, along with BIOS needs for two systems, before installing.

Plans and prices

From retroemu's own pricing page, checked 11 Oct 2001.

All about pricing
PlanPriceWhat it gives you
FreeFreeMIT-licensed software; install with npm

The facts

Each one read from retroemu's own pages, with the date it was checked.

Where it runs

BIOS limit
PC Engine CD and ColecoVision require users to provide their own BIOS dumps because the README says no free replacement exists.checked 11 Oct 2001

What it does

Controllers and audio
The README says SDL2 supports more than 2,100 controllers with automatic mapping and provides direct SDL2 audio output.checked 11 Oct 2001
Display requirement
Terminal output requires a truecolor terminal; the README names iTerm2, Kitty, Alacritty, Windows Terminal, and GNOME Terminal as examples.checked 11 Oct 2001
Install and runtime requirement
The README gives `npm install -g retroemu` as the installation command and requires Node.js 22 or later.checked 11 Oct 2001
Integration
Frontend applications can launch retroemu with an IPC channel and control it through JSON-RPC.checked 11 Oct 2001
Integrations
The project uses libretro cores and SDL2, and documents WebRTC remote play using node-datachannel and hsync for signaling.checked 5 Oct 2001
License
The repository lists the project license as MIT.checked 11 Oct 2001
Limits
PC Engine CD and ColecoVision require BIOS dumps supplied by the user; the README says most other listed systems do not require one.checked 5 Oct 2001
Native game formats
It can also run WASM wasmcart games and JavaScript jsgame games through its rendering pipeline.checked 11 Oct 2001
Programmatic use
The package exposes a programmatic API for loading games and controlling emulation, saves, input, and video.checked 5 Oct 2001
Purpose
retroemu runs classic console games in a terminal using libretro cores compiled to WebAssembly.checked 11 Oct 2001
Remote play
Remote play lets a host share a game with a joining player or spectator, with video, audio, and controller input sent peer-to-peer over WebRTC.checked 11 Oct 2001
Remote play signaling
The README says the signaling server brokers the WebRTC handshake and then leaves the loop, seeing about 3 KB of data.checked 5 Oct 2001
Requirements and installation
The README requires Node.js 22 or later and a truecolor terminal, and gives `npm install -g retroemu` as the installation command.checked 5 Oct 2001
Saves
Battery-backed SRAM is saved automatically on quit, and save states can be saved or loaded with F5 and F7.checked 11 Oct 2001
Security
The README describes jsgame games as running in a sandboxed realm.checked 11 Oct 2001
Supported systems
The README describes support for more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, and others.checked 5 Oct 2001
Systems
The README lists support for more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, N64, and PlayStation.checked 11 Oct 2001
Video
Video can render as ANSI art in the terminal, in an SDL window, or in both at once.checked 11 Oct 2001
What it does
retroemu runs retro console games in a terminal with Node.js using libretro cores compiled to WebAssembly.checked 5 Oct 2001

Alternatives to retroemu

All alternatives
  1. 1

    Virtual Jaguar

    Free planOpen sourceAndroidiOSWebAPI
    8.1Free plan
  2. 2Foxol logo

    Foxol

    Free planAndroidiOSWebLinux
    8.0From €3.33 a month
  3. 3

    SkyEmu

    Free planOpen sourceAndroidiOSWebLinux
    8.0Free plan
  4. 4

    Flycast

    Free planOpen sourceAndroidLinuxmacOSSelf-hosted
    7.6Free plan
  5. 5

    RetroArch

    Free planAndroidiOSWebLinux
    7.6Free plan
  6. 6

    ares

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.5Free plan