https://nostalgist.js.org/ Skip to content [logo]Nostialgist.js Search Cancel GitHub Select theme[Auto ] Star Nostalgist.js on GitHub if you like it! Takes you a few seconds, means a lot for me. Nostalgist.js Nostalgist.js logo nostalgist.js.org badgeGitHub badgeNPM badge --------------------------------------------------------------------- Nostalgist.js is a JavaScript library that allows you to run emulators of retro consoles like NES and Sega Genesis, within web browsers. Getting StartedAPI reference --------------------------------------------------------------------- A Quick Glance Nostalgist.js is a JavaScript library that allows you to run emulators of retro consoles like NES and Sega Genesis, within web browsers. console demo Open the DevTools of your browser(maybe Ctrl + Shift + J on Windows/ Linux and [?] + [?] + J on macOS), then type this code and press Enter, an NES emulator will appear in your browser like above (though it's not Super Mario Bros. )! await Nostalgist.nes('flappybird.nes') Controls: D-Pad: | | - - Start: Enter Select: Shift B: Z A: X Features Launch Launch a retro game with RetroArch emulator in a browser import { Nostalgist } from 'nostalgist' await Nostalgist.launch({ core: 'fceumm', rom: 'flappybird.nes', }) Related API: launch Save & Load Save the state of the game, then load it later import { Nostalgist } from 'nostalgist' const nostalgist = await Nostalgist.nes('flappybird.nes') const { state } = await nostalgist.saveState() nostalgist.loadState(state) Related API: saveState, loadState Customize Customize any RetroArch config before launching import { Nostalgist } from 'nostalgist' const nostalgist = await Nostalgist.launch({ core: 'fceumm', rom: 'flappybird.nes', retroarchConfig: { rewind_enable: true, }, retroarchCoreConfig: { fceumm_turbo_enable: 'Both', }, }) Related API: launch#retroarchconfig Hack Access low level APIs of Emscripten import { Nostalgist } from 'nostalgist' const rom = 'https://example.com/zelda.sfc' const nostalgist = await Nostalgist.snes(rom) const FS = nostalgist.getEmscriptenFS() FS.readdir('/home/web_user/retroarch/userdata/saves/Snes9x/zelda.srm') Related API: getEmscriptenFS Here is a simple live example. Motivation Nostalgist.js is built on top of RetroArch Emscripten builds. Although there is an official RetroArch's web player, and some third-party ones like webretro, it's still not that easy to launch RetroArch in a browser programmatically. The purpose of Nostalgist.js is to simplify the process of launching an emulator to play a game, via RetroArch, in browsers. Given a ROM and a core, the game should be launched without any additional configuration. Getting Started Caveat Nostalgist.js DO NOT privide any pirated content, like copyrighted ROM files or BIOS files. Edit page