Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DIRECTOR: Transition fixes and palette cycling effects #4241

Closed
wants to merge 22 commits into from

Conversation

moralrecordings
Copy link
Contributor

@moralrecordings moralrecordings commented Aug 28, 2022

No description provided.

@moralrecordings moralrecordings changed the title [WIP] DIRECTOR: Palette cycling effects [WIP] DIRECTOR: Transition fixes and palette cycling effects Aug 28, 2022
@moralrecordings moralrecordings marked this pull request as draft Aug 28, 2022
@mistydemeo
Copy link
Contributor

mistydemeo commented Aug 28, 2022

It looks like this has introduced a regression in Alice (1991/1992) and Over-Ring-Under. In both games, the Invictus logo at the start freezes on a palette cycling animation around the Invictus pyramid and the player has to click to start the proper logo animation.

@moralrecordings moralrecordings force-pushed the fixes branch 2 times, most recently from 5cfcf5b to b599e82 Compare Aug 30, 2022
@moralrecordings moralrecordings force-pushed the fixes branch 3 times, most recently from da51ea8 to 44deee8 Compare Sep 5, 2022
@moralrecordings moralrecordings changed the title [WIP] DIRECTOR: Transition fixes and palette cycling effects DIRECTOR: Transition fixes and palette cycling effects Sep 5, 2022
@moralrecordings moralrecordings marked this pull request as ready for review Sep 5, 2022
@moralrecordings moralrecordings force-pushed the fixes branch 2 times, most recently from 7a8756d to 48def13 Compare Sep 6, 2022
Previously it was possible for a Lingo script to stop a score sound channel,
then call updateStage, which would immediately start it again. To fix
this, updateStage() will now only update puppet sounds.

Fixes the sound playback when going from the map to the exit screen in
Chop Suey.
Fixes transitions in Lost Mind of Dr. Brain demo.
- Transitions now appear in the debug log, including parameters and
  timing.
- Most transitions would calculate a fixed number of steps, then work
  backwards to figure out the framerate required to fit the duration.
  This approach didn't work for shorter durations, as the delay required
  for the number of steps would drag out the duration. This has been
  fixed by introducing a floor to the number of steps, so that the
  framerate is no higher than 60fps.
- Multi-pass transitions were previously calling stepTransition() on
  every blit; this would effectively redraw the entire screen ~96 times
  a step and blow out the draw time to ~44 seconds. stepTransition() is
  now called once per step.
- Blind transitions now cover the full range.
- kTransDissolveBoxySquares and kTransDissolveBoxyRects were swapped.
- kTransDissolveBoxyRects now adjusts for the viewport aspect ratio.
This is going to be the basis for the palette-cycling effects.
Fixes parts not hiding after being selected on the face
selection screen in Eastern Mind.
Fixes various blue rectangles in Eastern Mind and Total Distortion.
Blit operations in Director expect that the "white" and "black" color
indexes are at 255 and 0, respectively. Fetching these values from
the window manager is not reliable when the palette has multiple
indexes sharing a color (e.g. blackPalette and whitePalette), which will
mean the applyColor flag is incorrectly set to true when foreColor and
backColor are the correct values.

Fixes fade from white when entering the door to the Land of Desire in
Eastern Mind.
Switching to a new movie should force a switch to the default palette if
required, and not assume the palette in use is correct.

Fixes the palette tinting after being reincarnated in Eastern Mind.
Fixes the scene transitions in the Spaceship Warlock trailer.
Fixes regression introduced in 0c09bba

Fixes resource detection in Total Distortion.
Fixes Invictus logo animation in Alice: An Interactive Museum.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants