PaletteLatch, SpriteOverflowIndex and OpenBus were missing which could potentially cause issues with rewind, movies, etc.
Reordered the serialization calls to match the order of the members (and make it simpler to compare in the future)
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format"
* fix ui format warnings
The SMS core's emu and console versions of ProcessEndOfFrame were called in the wrong order. The console version updates input and was being called first, while the emu version is what sleeps between frames. Fixing this causes input to be updated after the sleep, improving latency by approximately one frame.
Thanks to Sour for noticing this mistake.
+ Fixed VRAM read to wait until next available CPU access slot
+ Fixed NMI triggering on the wrong scanline on SMS
+ Fixed NMI issues on ColecoVision
+ Fixed random ram option not working properly on SG-1000
+ Added "Mem access" tab to tilemap viewer to see fetch patterns