https://sd2snes.de/files/misc/1chip-dac ... %20fix.ips
The "glitch" occurs because the game changes the brightness DAC value from 0 (to be precise: forced blanking + brightness 0) to the desired brightness mid-screen. The brightness DAC doesn't have enough time to adapt.
The "fix" is to patch it so when it turns on forced blanking during VBlank it doesn't reset the brightness to 0 but retains whatever brightness was set previously by game logic and just sets the forced blanking bit in addition. This way the brightness DAC doesn't have to adapt to any brightness change at the time the screen is turned back on during active display. The forced blanking bit doesn't affect the brightness DAC but just makes the PPU output black pixels.
This works fine for me during the stage select and fights but there might be other occurrences to cover. It's just a POC Would be nice if anybody else could test it. I took a little bit of free ROM space to store the extra code so it might interfere with other patches.
Old:
Code: Select all
C001A9 LDA #$80
C001AB STA $2100
Code: Select all
C001A9 JSR $C119
C001AC NOP
C001AD NOP
...
C0C119 LDA #$80
C0C11B ORA $C3 <-- variable for brightness in WRAM
C0C11D STA $2100
C0C120 RTS