Skip to content

JorenJoestar/HydraNes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HydraNes

Simple C++ NES emulator, dependant only on Glew and ImGUI.

Disclaimer

This emulator is the most barebone possible emulator, mostly a labor of love and curiosity. Almost no feature present - it is mostly for programmers who wants to understand the internals of the NES emulation. The code was written with difference of months between check-ins, most of the time at night, thus quality if poor. All the NES related code is the nes.h/.cpp pair of files. APU is using the amazing Blargg's code. ImGUI is used as interface and Glew to use OpenGL code. Window loop is handmade.

Build

Built and tested only on Windows, Visual Studio 2015 and 2017. Depends on:

  • Glew 1.13
  • Glm 0.98
  • ImGui (included)

Define the environment variable LIB_PATH pointing to the parent folder that contains both libraries. Just open the solution under project, build and launch. The roms should be in the folder 'Bin'.

Compatibility

  • NTSC only roms.
  • NROM (Mapper 000)
  • MMC1 / SxROM (Mapper 001)
  • 0UxROM (Mapper 002)
  • CNROM (Mapper 003)
  • MMC3 (Mapper 004)

Usage

Run the emulator, click on the windows menu (upper left). Double-click on cartridge and start the game.

Keys are:

  • up/down/left/right arrows
  • enter=start
  • shift=select
  • z=a
  • x=b

TODO

  • Support for more mappers
  • Gamepad support
  • Configuration load/save
  • Console load/save state
  • Pal versions!!!
  • Memory management

References and credits

About

Simple C++ NES emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published