
Over the past coupe of months I've been slowly working on a new C++ version of NESHawk, and I'm finally starting to see some results. The above screenshot is from the Castlevania III TAS I console verified a while ago working in the new core. The movie file that goes with it doesn't actually sync in any existing BizHawk version, and since I deleted my old research builds a while ago, it was actually orphaned with nothing that could run it. I had tried a C++ port some years ago, but it was limited and wasn't really in a workable state. This new version incorporates what I learned from GBAHawk development, so is much better organized. All the basics work like controller selection, audio, and save states, as well as other tools like hex editor and PPU viewer.
A lot of things are also removed to simplify the process, like PAL, FDS, famicom and unisystem specific code, and cheats, but I consider this purely for my own console verification work so it really only needs to replicate my personal NES.
The goal is to completely reorganize everything so that all operations are internally consistent and consist with NESDev documentation. I already fixed the ppu core, which was off by 1 in both cycle and scanline definition. I have read and write execution on the cpu side almost fixed, but the existing code is quite messy and it is a painstaking process.
Once the groundwork is done I can hopefully finally fix Batman as well as OneHundredthCoin's tests and a few other outstanding issues.