summaryrefslogtreecommitdiff
path: root/engine/HoF_room_pc.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/HoF_room_pc.asm')
-rwxr-xr-xengine/HoF_room_pc.asm206
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: