michael-fadely / sadx-dc-lighting

Sonic Adventure 1 palette lighting for SADX PC.
MIT License
39 stars 3 forks source link

Daytime transition in Sonic's story #40

Closed PiKeyAr closed 5 years ago

PiKeyAr commented 7 years ago

This is just a minor aesthetic thing, but it would be nice if the transition to night when Sonic gets his first upgrade in the sewers was delayed by a few frames so that you don't see the lighting change as you approach the door.

I don't know how exactly you're handling palette application in this case, but I was thinking if something like the following could be done:

  1. Time of day never really changes without also changing stage/act number, so an additional check may help fix that. So if a call to change time of day/palettes is received when the player is in Station Square, wait until the act number has changed (and has actually loaded) before replacing palettes?
  2. Disable palette loading during the fade-out transition and wait until it's over instead?
VanillaCold commented 6 years ago

I agree, it looks really weird when Sonic goes through the door and suddenly the game changes the .PAL file in one frame before the screen fades to black.

PiKeyAr commented 5 years ago

The call to change the time of day in that scene is at 0x6304B6. I added a workaround in my mod to delay the setting of the time of day until after the act ID has changed. While not a universal solution, it works for me and the issue doesn't bother me anymore. Perhaps this can be closed?

michael-fadely commented 5 years ago

Does this happen in any other instances throughout the game? It might be that we ought to find a better location to hook pallet loading for time of day changes. That said, I like the idea that one could potentially change the time of day mid-gameplay via mod and have the correct pallets automatically loaded.

PiKeyAr commented 5 years ago

I think it's the only time in the entire game where the immediate palette switch is noticeable.

PiKeyAr commented 5 years ago

Here's an idea: keep the immediate palette switch possible, but make it fade from one set of palettes to another instead of abruptly switching between them, possibly with the fade timer configurable via the API. If the default fade timer is something around 10 seconds, it won't even be noticeable in the problematic cutscene.