A Semi Cycle Accurate NES Emulator
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
QT is needed to run YaNES
Boost libraries are only required to run the tests.
The microprocessor and picture proccessing unit by itself does not require any external libraries, however
YaNES does require a C++14 compiler
Qt can either be installed through Qt's website installer located here or by installing by the command line.
Installing through command line:
sudo apt install qtbase5-dev qtdeclarative5-dev
sudo apt install qt5-default qttools5-dev-tools
sudo apt install qtmultimedia5-dev
Depending on the installation, Qmake will need to be configured this is done by:
export QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
YaNES makes use of Boost.Test and Boost.Program_Options
sudo apt install libboost-dev
sudo apt install libboost-program-options-dev
Either download and unzip this repository via the top right or by cloning the repository first:
git clone https://github.com/Grandduchy/YaNES
cd YaNES
Use Qmake and Make to create the executable
qmake
make
Depending on the configuration, add executable permissions to the executable app, and run
chmod +x app
./app
Refer to YaNES/test/README.md
- Joshua Challenger - Complete Project - Grandduchy
This project is licensed under the MIT License - see the LICENSE file for details
A ton of sources were used to create this project
Below are the main ones used.
- https://wiki.nesdev.com/ *
- http://nesdev.com/NESDoc.pdf
- http://6502.org/tutorials/6502opcodes.html
- https://www.pagetable.com/?p=410
- http://www.dustmop.io/blog/2015/04/28/nes-graphics-part-1/
- https://github.com/fogleman/nes
- https://wiki.nesdev.com/w/index.php/Emulator_tests
- https://taywee.github.io/NerdyNights/nerdynights/backgrounds.html
- https://github.com/OneLoneCoder/olcNES
- https://gridbugs.org/zelda-screen-transitions-are-undefined-behaviour/