they say the code should be so verbose that you won't need comments. indeed comments that restate the same thing that the code is doing are considered sloppy, because code will change and comments will become outdated. but if a comment is describing the logic of decision making or some unintuitive quirk, they're perfectly fine. so in a few places I go crazy with comments because the decision made there took a long time and a lot of changes, so it kinda summarizes the best result. that's it, no elaborate description of the change itself here... because I put it into that comment instead XD
* Add starting .git-blame-ignore-revs
This could be used for ignoring giant whitespace changes in git blames.
With this we could commit to doing giant tab/space + newline normalization in .cs files without blame noise.
* Add more entries
---------
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Should fix the bug mentioned in #4184. See 1f6ead6354, #2324, #2371 and 98498f9d50 for more confusion. This change might break any or all of the above.
note on using PALETTE_SIZE as offset. normally it's `256 colors * 3 bytes per color = 768`, but in our headless mode it's 256. upstream does `SDL_SetPaletteColors(screen->format->palette, playpal_data->colours + 256 * pal, 0, 256);` when palette is updated, so clearly it means offsetting by 256 colors=bytes. but PALETTE_SIZE I used as my offset is not for stuff upstream uses it for. just something better than a magic number.
* new callback system with callback return values
If the lua callback returns a value, the core will update the addr with it. Otherwise, the old value sent by the core will be used unmodified
* update MemoryCallbackDelegate return value to uint?
* throw NotSupportedException for GBA memory callbacks
* docs: return value of MemoryCallbackDelegate and CallMemoryCallbacks
just like mame we're hashing the wad files, concating them, hashing that, and the result goes to movie header. for singular IWADs loaded on their own just the actual hash is used instead, to make it clear to users.
printing hashes of all files to header might be cool, but I'm not sure it's warranted - usually there's only 1 PWAD
Breakpoint hits don't actually pause execution, so it's necessary to immediately update the disassember view as the core will continue executing after. This isn't great design but whatever