mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-19 04:06:10 +02:00
CLOSES #644, CLOSES #703, CLOSES #726, CLOSES #737, CLOSES #750, CLOSES #752, CLOSES #764, CLOSES #765, CLOSES #768, CLOSES #773, CLOSES #774, CLOSES #775, CLOSES #777, CLOSES #780, CLOSES #782
This commit is contained in:
+21
-6
@@ -9,8 +9,9 @@
|
||||
-- CRED_TEXT_MON text appears at once, hold 110, mon wipe
|
||||
-- CRED_TEXT_FADE fade in, hold 120, next screen replaces the text
|
||||
-- CRED_TEXT text appears at once, hold 140
|
||||
-- The mon wipe is DisplayCreditsMon: the middle band scrolls left 8px per
|
||||
-- frame for 27 frames (ScrollCreditsMonLeft x7 then x20) while the next
|
||||
-- The mon wipe is DisplayCreditsMon: three CreditsCopyTileMapToVRAM copies
|
||||
-- (9 frames of Delay3, text still up), then the middle band scrolls left 8px
|
||||
-- per frame for 27 frames (ScrollCreditsMonLeft x7 then x20) while the next
|
||||
-- CreditsMons entry crosses right-to-left as a black silhouette
|
||||
-- (BGP %11111100), leaving the band blank; BGP is left at %11000000, which
|
||||
-- is why every post-wipe screen is a FADE variant. CRED_COPYRIGHT
|
||||
@@ -52,6 +53,14 @@ local HOLD_FADE = 120
|
||||
local HOLD_TEXT = 140
|
||||
|
||||
local WIPE_FRAMES = 27 -- ScrollCreditsMonLeft: 7 + 20 calls, 8px/frame
|
||||
-- DisplayCreditsMon runs three CreditsCopyTileMapToVRAM calls (vBGMap0+$c,
|
||||
-- vBGMap0, vBGMap1) before the first scroll, and each one ends in `jp Delay3`
|
||||
-- (home/palettes.asm), so the credits text sits still for 9 more frames on
|
||||
-- every mon screen. Dropping them ran the 15 mon screens 135 frames short and
|
||||
-- brought THE END up 2.2s early against a credits theme whose length is fixed
|
||||
-- by the ROM program (Music_Credits is 5880 frames and does not loop), which
|
||||
-- is what made the song look like it overran the roll (#703).
|
||||
local MON_PREP_FRAMES = 9
|
||||
|
||||
-- LoadCopyrightTiles (engine/movie/title.asm CopyrightTextString): tile
|
||||
-- sequences into the extracted title/copyright.png strip (tiles $60-$72:
|
||||
@@ -204,12 +213,17 @@ function Credits:update(dt)
|
||||
self.timer = self.screen.mon and HOLD_FADE_MON or HOLD_FADE
|
||||
elseif self.phase == "hold" then
|
||||
if self.screen.mon then
|
||||
self.phase = "wipe"
|
||||
self.timer = WIPE_FRAMES
|
||||
self.monImg, self.monTint = self:monSprite(self.screen.mon)
|
||||
-- the text stays up through DisplayCreditsMon's VRAM copies; the
|
||||
-- silhouette only starts moving once ScrollCreditsMonLeft does
|
||||
self.phase = "mon_prep"
|
||||
self.timer = MON_PREP_FRAMES
|
||||
else
|
||||
self:nextScreen()
|
||||
end
|
||||
elseif self.phase == "mon_prep" then
|
||||
self.phase = "wipe"
|
||||
self.timer = WIPE_FRAMES
|
||||
self.monImg, self.monTint = self:monSprite(self.screen.mon)
|
||||
elseif self.phase == "wipe" then
|
||||
self.monImg = nil
|
||||
self:nextScreen()
|
||||
@@ -313,7 +327,8 @@ function Credits:draw()
|
||||
love.graphics.rectangle("fill", 0, 0, 160, 32)
|
||||
love.graphics.rectangle("fill", 0, 112, 160, 32)
|
||||
love.graphics.setColor(1, 1, 1, 1)
|
||||
if self.phase == "fade" or self.phase == "hold" then
|
||||
if self.phase == "fade" or self.phase == "hold"
|
||||
or self.phase == "mon_prep" then
|
||||
self:drawPage(self.screen, 0, self.shade)
|
||||
elseif self.phase == "wipe" then
|
||||
-- ScrollCreditsMonLeft: the middle band scrolls left 8px/frame while
|
||||
|
||||
Reference in New Issue
Block a user