NES Emulator

Play NES in a browser

This is a Nintendo Entertainment System (NES) emulator implemented in vanilla JavaScript. Thus, it is possible to play NES games in a browser. You can use the emulator online by clicking on the website link below. Also, the source code includes a server.js file that you can download and execute to create a local web server for the emulator.

The Nintendo MMC1 Mapper

The Nintendo MMC1 Mapper

The Nintendo MMC1 is a mapper ASIC used in Nintendo's SxROM, NES-EVENT and 2ME circuit boards. Unlike almost all other mappers, the MMC1 is configured through a serial port in order to...


Read More
Architecture Overview

Architecture Overview

The Nintendo Entertainment System has the following components: 2A03 CPU based on the MOS Technology 6502 8-bit microproce...


Read More
The Nintendo MMC3 Mapper

The Nintendo MMC3 Mapper

The Nintendo MMC3 is a mapper ASIC used in Nintendo's TxROM Game Pak boards. Most common TxROM boards, along with the NES-HKROM board (which uses the Nintendo MMC6), are assigned....


Read More

What comes next?

The NES emulator is an ongoing project. There is still a lot of work to be done. More mappers are to be implemented so that even more games can be played on the emulator. The codebase will be refactored to achieve a passing result on a greater amount of test roms. The Audio Processing Unit (APU) will be improved to enhance the sound quality. Support for saving game state is another bullet point on the wish list.