diff options
Diffstat (limited to 'engine/HoF_room_pc.asm')
-rwxr-xr-x | engine/HoF_room_pc.asm | 206 |
1 files changed, 109 insertions, 97 deletions
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index ae4ecb0d..e00fc57d 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -1,45 +1,45 @@ HallOfFamePC: ; 7405c (1d:405c) callba AnimateHallOfFame call ClearScreen - ld c, $64 + ld c, 100 call DelayFrames call DisableLCD ld hl, vFont ld bc, $800 / 2 - call Func_74171 + call ZeroMemory ld hl, vChars2 + $600 ld bc, $200 / 2 - call Func_74171 + call ZeroMemory ld hl, vChars2 + $7e0 ld bc, $10 ld a, $ff call FillMemory - ld hl, wTileMap - call Func_7417b - hlCoord 0, 14 - call Func_7417b + coord hl, 0, 0 + call FillFourRowsWithBlack + coord hl, 0, 14 + call FillFourRowsWithBlack ld a, $c0 - ld [rBGP], a ; $ff47 + ld [rBGP], a call EnableLCD ld a, $ff call PlaySoundWaitForCurrent ld c, BANK(Music_Credits) ld a, MUSIC_CREDITS call PlayMusic - ld c, $80 + ld c, 128 call DelayFrames xor a - ld [wWhichTrade], a ; wWhichTrade - ld [wTrainerEngageDistance], a + ld [wUnusedCD3D], a ; not read + ld [wNumCreditsMonsDisplayed], a jp Credits -Func_740ba: ; 740ba (1d:40ba) - ld hl, DataTable_74160 ; $4160 - ld b, $4 +FadeInCreditsText: ; 740ba (1d:40ba) + ld hl, HoFGBPalettes + ld b, 4 .asm_740bf ld a, [hli] - ld [rBGP], a ; $ff47 - ld c, $5 + ld [rBGP], a + ld c, 5 call DelayFrames dec b jr nz, .asm_740bf @@ -52,7 +52,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call FillMiddleOfScreenWithWhite ; display the next monster from CreditsMons - ld hl,wTrainerEngageDistance + ld hl,wNumCreditsMonsDisplayed ld c,[hl] ; how many monsters have we displayed so far? inc [hl] ld b,0 @@ -61,132 +61,143 @@ DisplayCreditsMon: ; 740cb (1d:40cb) ld a,[hl] ld [wcf91],a ld [wd0b5],a - hlCoord 8, 6 + coord hl, 8, 6 call GetMonHeader call LoadFrontSpriteByMonIndex ld hl,vBGMap0 + $c - call Func_74164 + call CreditsCopyTileMapToVRAM xor a ld [H_AUTOBGTRANSFERENABLED],a call LoadScreenTilesFromBuffer1 ld hl,vBGMap0 - call Func_74164 + call CreditsCopyTileMapToVRAM ld a,$A7 - ld [$FF4B],a + ld [rWX],a ld hl,vBGMap1 - call Func_74164 + call CreditsCopyTileMapToVRAM call FillMiddleOfScreenWithWhite - ld a,$FC - ld [$FF47],a + ld a,%11111100 ; make the mon a black silhouette + ld [rBGP],a + +; scroll the mon left by one tile 7 times ld bc,7 -.next - call Func_74140 +.scrollLoop1 + call ScrollCreditsMonLeft dec c - jr nz,.next - ld c,$14 -.next2 - call Func_74140 - ld a,[$FF4B] + jr nz,.scrollLoop1 + +; scroll the mon left by one tile 20 times +; This time, we have to move the window left too in order to hide the text that +; is wrapping around to the right side of the screen. + ld c,20 +.scrollLoop2 + call ScrollCreditsMonLeft + ld a,[rWX] sub 8 - ld [$FF4B],a + ld [rWX],a dec c - jr nz,.next2 + jr nz,.scrollLoop2 + xor a ld [hWY],a - ld a,$C0 - ld [$FF47],a + ld a,%11000000 + ld [rBGP],a ret INCLUDE "data/credit_mons.asm" -Func_74140: ; 74140 (1d:4140) +ScrollCreditsMonLeft: ; 74140 (1d:4140) ld h, b ld l, $20 - call Func_74152 + call ScrollCreditsMonLeft_SetSCX ld h, $0 ld l, $70 - call Func_74152 + call ScrollCreditsMonLeft_SetSCX ld a, b add $8 ld b, a ret -Func_74152: ; 74152 (1d:4152) - ld a, [$ff44] +ScrollCreditsMonLeft_SetSCX: ; 74152 (1d:4152) + ld a, [rLY] cp l - jr nz, Func_74152 + jr nz, ScrollCreditsMonLeft_SetSCX ld a, h - ld [rSCX], a ; $ff43 -.asm_7415a - ld a, [$ff44] + ld [rSCX], a +.loop + ld a, [rLY] cp h - jr z, .asm_7415a + jr z, .loop ret -DataTable_74160: ; 74160 (1d:4160) - db $C0,$D0,$E0,$F0 +HoFGBPalettes: ; 74160 (1d:4160) + db %11000000 + db %11010000 + db %11100000 + db %11110000 -Func_74164: ; 74164 (1d:4164) +CreditsCopyTileMapToVRAM: ; 74164 (1d:4164) ld a, l - ld [H_AUTOBGTRANSFERDEST], a ; $ffbc + ld [H_AUTOBGTRANSFERDEST], a ld a, h - ld [$ffbd], a - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERDEST + 1], a + ld a, 1 + ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 -Func_74171: ; 74171 (1d:4171) - ld [hl], $0 +ZeroMemory: ; 74171 (1d:4171) +; zero bc bytes at hl + ld [hl], 0 inc hl inc hl dec bc ld a, b or c - jr nz, Func_74171 + jr nz, ZeroMemory ret -Func_7417b: ; 7417b (1d:417b) - ld bc, $50 +FillFourRowsWithBlack: ; 7417b (1d:417b) + ld bc, SCREEN_WIDTH * 4 ld a, $7e jp FillMemory FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) - hlCoord 0, 4 - ld bc, $c8 ; 10 rows of 20 tiles each - ld a, $7f ; blank white tile + coord hl, 0, 4 + ld bc, SCREEN_WIDTH * 10 + ld a, " " jp FillMemory Credits: ; 7418e (1d:418e) - ld de, CreditsOrder ; $4243 + ld de, CreditsOrder push de -.asm_74192 +.nextCreditsScreen pop de - hlCoord 9, 6 + coord hl, 9, 6 push hl call FillMiddleOfScreenWithWhite pop hl -.asm_7419b +.nextCreditsCommand ld a, [de] inc de push de cp $ff - jr z, .asm_741d5 + jr z, .fadeInTextAndShowMon cp $fe - jr z, .asm_741dc + jr z, .showTextAndShowMon cp $fd - jr z, .asm_741e6 + jr z, .fadeInText cp $fc - jr z, .asm_741ed + jr z, .showText cp $fb - jr z, .asm_741f4 + jr z, .showCopyrightText cp $fa jr z, .showTheEnd push hl push hl - ld hl, CreditsTextPointers ; $42c3 + ld hl, CreditsTextPointers add a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld e, [hl] inc hl @@ -199,51 +210,51 @@ Credits: ; 7418e (1d:418e) add hl, bc call PlaceString pop hl - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 add hl, bc pop de - jr .asm_7419b -.asm_741d5 - call Func_740ba - ld c, $5a - jr .asm_741de -.asm_741dc - ld c, $6e -.asm_741de + jr .nextCreditsCommand +.fadeInTextAndShowMon + call FadeInCreditsText + ld c, 90 + jr .next1 +.showTextAndShowMon + ld c, 110 +.next1 call DelayFrames call DisplayCreditsMon - jr .asm_74192 -.asm_741e6 - call Func_740ba - ld c, $78 - jr .asm_741ef -.asm_741ed - ld c, $8c -.asm_741ef + jr .nextCreditsScreen +.fadeInText + call FadeInCreditsText + ld c, 120 + jr .next2 +.showText + ld c, 140 +.next2 call DelayFrames - jr .asm_74192 -.asm_741f4 + jr .nextCreditsScreen +.showCopyrightText push de callba LoadCopyrightTiles pop de pop de - jr .asm_7419b + jr .nextCreditsCommand .showTheEnd - ld c, $10 + ld c, 16 call DelayFrames call FillMiddleOfScreenWithWhite pop de ld de, TheEndGfx ld hl, vChars2 + $600 - ld bc, (BANK(TheEndGfx) << 8) + $0a + lb bc, BANK(TheEndGfx), (TheEndGfxEnd - TheEndGfx) / $10 call CopyVideoData - hlCoord 4, 8 + coord hl, 4, 8 ld de, TheEndTextString call PlaceString - hlCoord 4, 9 + coord hl, 4, 9 inc de call PlaceString - jp Func_740ba + jp FadeInCreditsText TheEndTextString: ; 74229 (1d:4229) ; "T H E E N D" @@ -254,5 +265,6 @@ INCLUDE "data/credits_order.asm" INCLUDE "text/credits_text.asm" -TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue) +TheEndGfx: ; 7473e (1d:473e) (7473f on blue) INCBIN "gfx/theend.interleave.2bpp" +TheEndGfxEnd: |