LakeSnes: picture brightness is a global shared by every machine and not saved in savestates #47
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
LakeSnes keeps the current brightness of the picture in a file-level global,
bright_nowinthird_party/lakesnes/snes/ppu.c(set by everyINIDISPwrite, read by the pixel output). Two consequences, found while writing the video service (#33):rom.ports, the ROM oracle next to the port. Whichever core wroteINIDISPlast decides the brightness of the pixels the others produce. Not seen to break a test so far (shadow writes on the clone happen in vblank and the original writes the same value just after), but picture comparisons between cores in one process are not trustworthy while a fade runs.ff6_debug_state_loadthe picture keeps the brightness of the machine that ran last until the game writesINIDISPagain.Proposed fix (local LakeSnes patch, listed in its README, bump
HW_EMULATOR_REVISION): compute the factor fromppu->brightnessat pixel output (or keep it inPpu). Movies may need regeneration if picture hashes change after a load.