Giter VIP home page Giter VIP logo

neslig's Introduction

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

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) 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 than mapper 0
  • 8x16 sprites
  • ALU
  • Cycle-accuracy
  • Multiple controllers

neslig's People

Contributors

toblu302 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.