8000 GitHub - toblu302/neslig: A NES emulator written in C++
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

toblu302/neslig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NESlig

A NTSC NES emulator written in C++. It was done as an educational project, and is not very usable compared to many other emulators.

Compiling and running

Use

mkdir build; cd build; cmake ..; make

to compile the emulator, and run

NESlig [path to iNes file]

to run the emulator.

Dependencies

  • SDL2

Controllers

  • Start: Enter
  • Select: Space
  • A: z
  • B: x
  • D-pad: arrow keys

What does it do

You can play a handful of games on it (Super Mario Bros, Mario Bros, Balloon Fight, and Donkey Kong have been tested), assuming the game uses mapper 0 (NROM) or mapper 2 (UNROM) and does not have 8x16 sprites. Check out this list to find out which mapper a game uses.

Accuracy

The emulator is not very accurate, as it emulates on a per-instruction basis instead of per-clock-cycle. It works by first emulating the CPU for a single instruction, and then running the PPU for three times as many clock cycles as the CPU used. The functionality of the CPU instructions have been verified by running blargg's test roms, and are probably the most accurate part of the emulator. The emulator also doesn't emulate every hardware quirk or edge case in the PPU, such as the sprite overflow bug (or even the expected behavior) and the open bus behavior.

Future features (TODOs)

  • More mappers
  • 8x16 sprites
  • ALU
  • Cycle-accuracy
  • Multiple controllers

About

A NES emulator written in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0