Giter VIP home page Giter VIP logo

nes_emu's People

Contributors

kevinjmiller96 avatar pricea810 avatar tevinter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

kevinjmiller96

nes_emu's Issues

Cartridge Support

Due to the way the NES handles games, each cartridge can have custom hardware, requiring code to handle each new hardware layout. Currently we have coded mappers 0 to 3, with only 0 and 1 having been tested in any capacity. Any cartridge layout which is not currently handled will error out. Thankfully, NesDev gives us details on various hardware layouts, found here.

Current listing of supported hardware layouts can be found here.

Exception Handling

Various classes, primarily Cartridge and the Mappers, can potentially throw exceptions. In order to keep the program from exiting prematurely, we need to catch these exceptions, and handle them within the contexts they can happen.

Currently exceptions can be thrown during: cartridge loading, mapper selection, and when the CPU tries to access non-existent parts of the mapper through the cartridge.

Add appveyor.yml

We need to add an appveyor.yml file in the repo root directory for ci.appveyor to handle submodules when building.

Add Controller Support

NES controller emulation is currently hard coded at 1 controller and hard coded to specific key binds. We need to implement a second controller, and allow both to be either keyboard or joypad. If possible, use a configuration file to read what key maps to what input.

Mapper001 Windowing

According to the instr_test_v5 suit, all tests should store the results at 0x6000, but results end up being output at 0x0700. Testing with official_only.nes and all_instrs.nes, both of which use Mapper001, output to the same section.

This is most likely a bug in how the windowing is performed.

Direct link to test suit: instr_test_v5

mapper001_output

Background Tiles

Currently, the PPU_Implementation branch can draw foreground sprites perfectly fine, however, the background sprites are not, as seen here:

PPU_Impl_Image

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.