awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
bfirsh avatar

bfirsh/jsnes

0
View on GitHub↗
6,397 Stars·851 Forks·JavaScript·Apache-2.0·4 Aufrufejsnes.org↗

Jsnes

jsnes is a JavaScript-based NES emulator that runs classic NES games in the browser or in Node.js. It provides cycle-accurate CPU emulation, frame-buffer-based video rendering, and sample-buffer audio synthesis, along with a ROM cartridge mapper abstraction for broad game compatibility.

The emulator exposes a programmable core with a simple API for controlling emulation state, capturing screenshots, and managing save data. It supports keyboard control remapping at runtime, with settings persisted to localStorage, and offers state serialization for save and restore operations. Battery-backed SRAM changes are handled through a callback-driven persistence mechanism.

The project covers browser-based NES emulation with automatic canvas rendering and input handling, as well as headless emulation in Node.js for custom rendering pipelines. It also provides programmatic control over emulator state, including pause, resume, reset, and ROM reloading.

Features

  • Retro Game Emulation - Boots and runs classic NES games inside a web page with canvas rendering, audio, and input handling.
  • JavaScript Emulator Cores - Provides a JavaScript-based NES emulator with cycle-accurate CPU, PPU, and audio emulation for browser and Node.js.
  • Emulator Mapper Abstractions - Implements a pluggable mapper interface for broad NES cartridge compatibility.
  • Emulator SRAM Callbacks - Provides a callback mechanism for persisting battery-backed SRAM changes to external storage.
  • Save State Managers - Serializes complete emulator state into JSON for save and restore operations.
  • Emulation State Scripting - Provides a scripting interface for pausing, resuming, resetting, and reloading emulator state.
  • Web-Based Emulators - Runs classic NES games inside a web page with automatic canvas rendering, audio, and input handling.
  • Sample-Based Buffer Callbacks - Produces raw PCM audio samples from APU state through a sample-buffer-based pipeline.
  • Game Controller Remappers - Ships runtime keyboard remapping for NES controller buttons with localStorage persistence.
  • Emulation Session Control - Provides a simple interface for pausing, resuming, resetting, and reloading emulator state.
  • Programmable Emulator APIs - Exposes a simple API for controlling emulation state, capturing screenshots, and managing save data.
  • Cycle-Accurate Emulators - Implements cycle-accurate emulation of the 6502 CPU for precise NES hardware timing.
  • Emulator Frame Buffers - Generates complete 256x240 pixel frame buffers from PPU state for canvas drawing or external processing.
  • Keyboard Input Mapping - Translates browser keyboard events into NES controller button states via a configurable mapping table.
  • Node.js Emulation Cores - Runs NES CPU and PPU cycles programmatically in Node.js for custom rendering pipelines.
  • Game Keyboard Controls - Rebinds NES controller buttons to different keyboard keys at runtime with localStorage persistence.
  • Battery-Backed SRAM Persistence - Writes battery-backed SRAM changes to a callback for external save data storage.
  • Node.js Emulation Cores - Runs NES CPU and PPU cycles programmatically in Node.js for custom rendering pipelines.

Star-Verlauf

Star-Verlauf für bfirsh/jsnesStar-Verlauf für bfirsh/jsnes

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht bfirsh/jsnes?

jsnes is a JavaScript-based NES emulator that runs classic NES games in the browser or in Node.js. It provides cycle-accurate CPU emulation, frame-buffer-based video rendering, and sample-buffer audio synthesis, along with a ROM cartridge mapper abstraction for broad game compatibility.

Was sind die Hauptfunktionen von bfirsh/jsnes?

Die Hauptfunktionen von bfirsh/jsnes sind: Retro Game Emulation, JavaScript Emulator Cores, Emulator Mapper Abstractions, Emulator SRAM Callbacks, Save State Managers, Emulation State Scripting, Web-Based Emulators, Sample-Based Buffer Callbacks.

Welche Open-Source-Alternativen gibt es zu bfirsh/jsnes?

Open-Source-Alternativen zu bfirsh/jsnes sind unter anderem: baekalfen/pyboy — PyBoy is a programmable Game Boy emulator and hardware simulation framework written in Python. It functions as an… mgba-emu/mgba — mGBA is a high-accuracy Game Boy Advance emulator and hardware-level debugger designed to run handheld console ROMs on… amhndu/simplenes — SimpleNES is a C++ application that simulates original Nintendo Entertainment System hardware to run legacy games on… rileytestut/delta. mamedev/mame — MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and… melonds-emu/melonds — melonDS is an open-source emulator that runs original Nintendo DS and DSi games on modern operating systems with…

Open-Source-Alternativen zu Jsnes

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Jsnes.
  • baekalfen/pyboyAvatar von Baekalfen

    Baekalfen/PyBoy

    5,159Auf GitHub ansehen↗

    PyBoy is a programmable Game Boy emulator and hardware simulation framework written in Python. It functions as an emulation engine that allows users to execute original handheld software while providing a programmatic interface to control, probe, and automate game execution. The project is specifically designed as a reinforcement learning environment, exposing emulator states and controls to facilitate the training of machine learning agents. It distinguishes itself by providing tools for game area mapping and the extraction of simplified 2D screen representations and collision maps to suppor

    Pythoncythonemulatorgameboy
    Auf GitHub ansehen↗5,159
  • mgba-emu/mgbaAvatar von mgba-emu

    mgba-emu/mgba

    6,798Auf GitHub ansehen↗

    mGBA is a high-accuracy Game Boy Advance emulator and hardware-level debugger designed to run handheld console ROMs on modern computers. It serves as a scriptable emulation environment that allows for the execution of portable hardware software and the simulation of associated peripherals. The project distinguishes itself through its focus on technical analysis, providing a suite of tools for retro game debugging and game logic inspection. It includes a host-client debug protocol that enables external debugger connectivity via TCP socket communication and an event-driven scripting engine for

    Cemulatorgame-boygame-boy-advance
    Auf GitHub ansehen↗6,798
  • amhndu/simplenesAvatar von amhndu

    amhndu/SimpleNES

    5,087Auf GitHub ansehen↗

    SimpleNES is a C++ application that simulates original Nintendo Entertainment System hardware to run legacy games on modern computers. It functions as a hardware simulator and retro gaming emulator designed to execute classic game ROMs by recreating the original console environment through software. The system implements a software version of the 6502 CPU and picture processing unit to render retro game video and audio. It recreates 8-bit console architecture to ensure the execution of original game ROMs. The project covers low-level hardware simulation, including cycle-accurate CPU emulatio

    C++c-plus-plusemulatornes-emulator
    Auf GitHub ansehen↗5,087
  • rileytestut/deltaAvatar von rileytestut

    rileytestut/Delta

    5,827Auf GitHub ansehen↗
    Swift
    Auf GitHub ansehen↗5,827
  • Alle 30 Alternativen zu Jsnes anzeigen→