QuickerNES, a modern version of quickNES
Go to file
Sergio Martin dba28a6b98 Minor changes 2024-01-14 08:11:26 +01:00
extern Adding benchmark and starting to fix warnings 2024-01-13 13:28:32 +01:00
overlay Adding tests and moving code around 2024-01-10 19:48:57 +01:00
source Minor changes 2024-01-14 08:11:26 +01:00
tests Reverting changes back to 0c8318e26e since some of those commits did something that affected performance 2024-01-13 18:42:59 +01:00
.gitignore Adding third party tools, meson scripts, starting with the player 2024-01-09 20:12:22 +01:00
.gitmodules Adding SHA1 calculation 2024-01-11 21:35:21 +01:00
LICENSE Adding initial version 2024-01-08 20:11:49 +01:00
README.md Minor changes 2024-01-14 08:11:26 +01:00
meson.build Minor changes 2024-01-14 08:11:26 +01:00
meson_options.txt Starting to add tests 2024-01-11 20:23:32 +01:00

README.md

quickerNES

quickerNES is an attempt to modernizing and improving the performance of quickNES, the fastest NES emulator in the interwebs (as far as I know). The goals for this project are, in order of importance:

  • Improve overall emulation performance even more
  • Modernize the code base with best programming practices, including CI tests, benchmarks, and coverage analysis
  • Add support for more mappers, controllers, and features supported by other emulators
  • Improve accuracy, if possible

The main aim is to improve the performance of skip (non-rendering, no-audio) frame advances for brute force botting. (See: JaffarPlus). However, if this work might help with homebrew emulation and other people having more fun, then much better!

Changes

  • Optimizations made in the CPU emulation core
  • Minimize compiled code size to reduce pressure on L1i cache
  • Sound is no longer emulated during skip frames

Credits

  • quickNES was originally by Shay Green (a.k.a. Blaarg) under the GNU GPLv2 license. The source code is still located here
  • The code was later improved and maintained by Christopher Snowhill (a.k.a. kode54)
  • I could trace further contributions (e.g., new mappers) by retrowertz, CaH4e3, some adaptations from the FCEUX emulator (see mapper021)
  • The latest version of the code is maintained by Libretro's community here
  • For the interactive player, this project uses a modified version of HeadlessQuickNES (HQN) by Drew (Binder News)
  • We use some of the NES test rom set made by multiple authors and gathered by Christopher Pow et al.
  • We also use some movies from the (TASVideos)[tasvideos.org] website for testing. These movies are copied into this repository with authorization under the Creative Commons Attribution 2.0 license.

All base code for this project was found under open source licenses, which I preserved in their corresponding files/folders. Any non-credited work is unintentional and shall be immediately rectfied.