Freedom251 › Multi-System Emulators
retroemu

What retroemu is
retroemu runs classic console games from a terminal, using Node.js and libretro cores compiled to WebAssembly. It supports more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, N64, and PlayStation. It can also run WASM `.wasm` and `.wasc` cartridges and JavaScript `.jsgame` and `.jsg` games. Output can go to a terminal, an SDL window, or both; terminal display uses truecolor ANSI rendering. SDL2 supports more than 2,100 controllers and provides direct audio output. SRAM saves load and save automatically, and libretro save states can be saved or loaded with F5 and F7.
For remote play, a host can share a game with a player or spectator. The guest does not need a ROM or core; video, audio, and controller data travel peer to peer over WebRTC. The package also provides a programmatic API for loading games and controlling emulation, saves, input, and video. Frontend applications can launch it through an IPC channel and control it using JSON-RPC. Installation uses `npm install -g retroemu`; it requires Node.js 22 or later and a truecolor terminal. retroemu is free and MIT-licensed. PC Engine CD and ColecoVision require user-supplied BIOS dumps.
Who it suits
retroemu suits people who want to run classic console games through a terminal or SDL window, and developers who want a programmatic API or JSON-RPC control. Remote play supports sharing with a player or spectator, while users of PC Engine CD or ColecoVision need their own BIOS dumps.
What it does well
- Supports more than 25 systems through libretro cores.
- Runs WASM cartridges and JavaScript games.
- Offers terminal, SDL window, or combined video output.
- Automatically loads and saves SRAM.
- Remote guests need no ROM or core.
- MIT-licensed and free to install.
What to know first
- Requires Node.js 22 or later.
- Terminal output requires a truecolor terminal.
- PC Engine CD and ColecoVision require user-supplied BIOS dumps.
Limits
PC Engine CD and ColecoVision require user-supplied BIOS dumps. The README says most other listed systems do not require one.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free | MIT-licensed software; install with npm | Free |
As github.com lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Open https://github.com/monteslu/retroemu.
- Install Node.js 22 or later.
- Use a truecolor terminal for terminal video output.
- Install retroemu with `npm install -g retroemu`.
- Load a supported game or cartridge.
Verdict
Choose retroemu if you want a free, MIT-licensed way to run classic games in a terminal or SDL window, with save handling and remote play. Look elsewhere if you cannot meet its Node.js and terminal requirements, or do not have the BIOS dumps needed for PC Engine CD or ColecoVision.
Questions
How much does retroemu cost?
It is free, and the repository states that it is licensed under MIT.
Which platforms does it support?
The listed platforms are API, Linux, macOS, and Windows.
What does it need to run?
It requires Node.js 22 or later. Terminal output requires a truecolor terminal.
Which systems require a BIOS dump?
PC Engine CD and ColecoVision require BIOS dumps supplied by the user. The README says most other listed systems do not.
Does retroemu support remote play?
Yes. A host can share with a player or spectator; the guest needs no ROM or core, and video, audio, and controller data travel peer to peer over WebRTC.
How do I install it?
The listed installation command is `npm install -g retroemu`.
Facts from retroemu's own pages
- BIOS limit
- PC Engine CD and ColecoVision require users to provide their own BIOS dumps because the README says no free replacement exists. · github.com, 11 Oct 2026
- Controllers and audio
- The README says SDL2 supports more than 2,100 controllers with automatic mapping and provides direct SDL2 audio output. · github.com, 11 Oct 2026
- Display requirement
- Terminal output requires a truecolor terminal; the README names iTerm2, Kitty, Alacritty, Windows Terminal, and GNOME Terminal as examples. · github.com, 11 Oct 2026
- Install and runtime requirement
- The README gives `npm install -g retroemu` as the installation command and requires Node.js 22 or later. · github.com, 11 Oct 2026
- Integration
- Frontend applications can launch retroemu with an IPC channel and control it through JSON-RPC. · github.com, 11 Oct 2026
- Integrations
- The project uses libretro cores and SDL2, and documents WebRTC remote play using node-datachannel and hsync for signaling. · github.com, 5 Oct 2026
- License
- The repository lists the project license as MIT. · github.com, 11 Oct 2026
- Limits
- PC Engine CD and ColecoVision require BIOS dumps supplied by the user; the README says most other listed systems do not require one. · github.com, 5 Oct 2026
- Native game formats
- It can also run WASM wasmcart games and JavaScript jsgame games through its rendering pipeline. · github.com, 11 Oct 2026
- Programmatic use
- The package exposes a programmatic API for loading games and controlling emulation, saves, input, and video. · github.com, 5 Oct 2026
- Purpose
- retroemu runs classic console games in a terminal using libretro cores compiled to WebAssembly. · github.com, 11 Oct 2026
- 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. · github.com, 11 Oct 2026
- Remote play signaling
- The README says the signaling server brokers the WebRTC handshake and then leaves the loop, seeing about 3 KB of data. · github.com, 5 Oct 2026
- 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. · github.com, 5 Oct 2026
- Saves
- Battery-backed SRAM is saved automatically on quit, and save states can be saved or loaded with F5 and F7. · github.com, 11 Oct 2026
- Security
- The README describes jsgame games as running in a sandboxed realm. · github.com, 11 Oct 2026
- Supported systems
- The README describes support for more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, and others. · github.com, 5 Oct 2026
- Systems
- The README lists support for more than 25 systems, including NES, SNES, Game Boy, Genesis, Atari, N64, and PlayStation. · github.com, 11 Oct 2026
- Video
- Video can render as ANSI art in the terminal, in an SDL window, or in both at once. · github.com, 11 Oct 2026
- What it does
- retroemu runs retro console games in a terminal with Node.js using libretro cores compiled to WebAssembly. · github.com, 5 Oct 2026
Where retroemu stands on Freedom251
- Multi-System Emulators#34 of 54