summaryrefslogtreecommitdiff
path: root/engine/HoF_room_pc.asm
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-22 18:13:20 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-22 18:13:20 -0400
commit15427f532085846ab6b51719be687951a094cb6c (patch)
treeedea9b189e91641a12dd521756894df84aeeace7 /engine/HoF_room_pc.asm
parentea3ba4cde3706b7c77efb705555ec0c86321cbe2 (diff)
Pull a lot of engine out of main.asm
Diffstat (limited to 'engine/HoF_room_pc.asm')
-rwxr-xr-xengine/HoF_room_pc.asm263
1 files changed, 263 insertions, 0 deletions
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm
new file mode 100755
index 00000000..aa9a9882
--- /dev/null
+++ b/engine/HoF_room_pc.asm
@@ -0,0 +1,263 @@
+HallOfFameComputer: ; 7405c (1d:405c)
+ callba AnimateHallOfFame
+ call ClearScreen
+ ld c, $64
+ call DelayFrames
+ call DisableLCD
+ ld hl, $8800
+ ld bc, $400
+ call Func_74171
+ ld hl, $9600
+ ld bc, $100
+ call Func_74171
+ ld hl, $97e0
+ ld bc, $10
+ ld a, $ff
+ call FillMemory
+ ld hl, wTileMap
+ call Func_7417b
+ FuncCoord 0, 14 ; $c4b8
+ ld hl, Coord
+ call Func_7417b
+ ld a, $c0
+ ld [rBGP], a ; $ff47
+ call EnableLCD
+ ld a, $ff
+ call PlaySoundWaitForCurrent
+ ld c, BANK(Music_Credits)
+ ld a, MUSIC_CREDITS
+ call PlayMusic
+ ld c, $80
+ call DelayFrames
+ xor a
+ ld [wWhichTrade], a ; $cd3d
+ ld [$cd3e], a
+ jp Credits
+
+Func_740ba: ; 740ba (1d:40ba)
+ ld hl, DataTable_74160 ; $4160
+ ld b, $4
+.asm_740bf
+ ld a, [hli]
+ ld [rBGP], a ; $ff47
+ ld c, $5
+ call DelayFrames
+ dec b
+ jr nz, .asm_740bf
+ ret
+
+DisplayCreditsMon: ; 740cb (1d:40cb)
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED],a
+ call SaveScreenTilesToBuffer1
+ call FillMiddleOfScreenWithWhite
+
+ ; display the next monster from CreditsMons
+ ld hl,$CD3E
+ ld c,[hl] ; how many monsters have we displayed so far?
+ inc [hl]
+ ld b,0
+ ld hl,CreditsMons
+ add hl,bc ; go that far in the list of monsters and get the next one
+ ld a,[hl]
+ ld [$CF91],a
+ ld [$D0B5],a
+ FuncCoord 8, 6 ; $c420
+ ld hl,Coord
+ call GetMonHeader
+ call LoadFrontSpriteByMonIndex
+ ld hl,$980C
+ call Func_74164
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED],a
+ call LoadScreenTilesFromBuffer1
+ ld hl,$9800
+ call Func_74164
+ ld a,$A7
+ ld [$FF4B],a
+ ld hl,$9C00
+ call Func_74164
+ call FillMiddleOfScreenWithWhite
+ ld a,$FC
+ ld [$FF47],a
+ ld bc,7
+.next
+ call Func_74140
+ dec c
+ jr nz,.next
+ ld c,$14
+.next2
+ call Func_74140
+ ld a,[$FF4B]
+ sub 8
+ ld [$FF4B],a
+ dec c
+ jr nz,.next2
+ xor a
+ ld [$FFB0],a
+ ld a,$C0
+ ld [$FF47],a
+ ret
+
+INCLUDE "data/credit_mons.asm"
+
+Func_74140: ; 74140 (1d:4140)
+ ld h, b
+ ld l, $20
+ call Func_74152
+ ld h, $0
+ ld l, $70
+ call Func_74152
+ ld a, b
+ add $8
+ ld b, a
+ ret
+
+Func_74152: ; 74152 (1d:4152)
+ ld a, [$ff44]
+ cp l
+ jr nz, Func_74152
+ ld a, h
+ ld [rSCX], a ; $ff43
+.asm_7415a
+ ld a, [$ff44]
+ cp h
+ jr z, .asm_7415a
+ ret
+
+DataTable_74160: ; 74160 (1d:4160)
+ db $C0,$D0,$E0,$F0
+
+Func_74164: ; 74164 (1d:4164)
+ ld a, l
+ ld [H_AUTOBGTRANSFERDEST], a ; $ffbc
+ ld a, h
+ ld [$ffbd], a
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ jp Delay3
+
+Func_74171: ; 74171 (1d:4171)
+ ld [hl], $0
+ inc hl
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, Func_74171
+ ret
+
+Func_7417b: ; 7417b (1d:417b)
+ ld bc, $50
+ ld a, $7e
+ jp FillMemory
+
+FillMiddleOfScreenWithWhite: ; 74183 (1d:4183)
+ FuncCoord 0, 4 ; $c3f0
+ ld hl, Coord
+ ld bc, $c8 ; 10 rows of 20 tiles each
+ ld a, $7f ; blank white tile
+ jp FillMemory
+
+Credits: ; 7418e (1d:418e)
+ ld de, CreditsOrder ; $4243
+ push de
+.asm_74192
+ pop de
+ FuncCoord 9, 6 ; $c421
+ ld hl, Coord
+ push hl
+ call FillMiddleOfScreenWithWhite
+ pop hl
+.asm_7419b
+ ld a, [de]
+ inc de
+ push de
+ cp $ff
+ jr z, .asm_741d5
+ cp $fe
+ jr z, .asm_741dc
+ cp $fd
+ jr z, .asm_741e6
+ cp $fc
+ jr z, .asm_741ed
+ cp $fb
+ jr z, .asm_741f4
+ cp $fa
+ jr z, .showTheEnd
+ push hl
+ push hl
+ ld hl, CreditsTextPointers ; $42c3
+ add a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $ff
+ pop hl
+ add hl, bc
+ call PlaceString
+ pop hl
+ ld bc, $28
+ 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
+ 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
+ call DelayFrames
+ jr .asm_74192
+.asm_741f4
+ push de
+ callba LoadCopyrightTiles
+ pop de
+ pop de
+ jr .asm_7419b
+.showTheEnd
+ ld c, $10
+ call DelayFrames
+ call FillMiddleOfScreenWithWhite
+ pop de
+ ld de, TheEndGfx
+ ld hl, $9600
+ ld bc, (BANK(TheEndGfx) << 8) + $0a
+ call CopyVideoData
+ FuncCoord 4, 8 ; $c444
+ ld hl, Coord
+ ld de, UnnamedText_74229 ; $4229
+ call PlaceString
+ FuncCoord 4, 9 ; $c458
+ ld hl, Coord
+ inc de
+ call PlaceString
+ jp Func_740ba
+
+UnnamedText_74229: ; 74229 (1d:4229)
+ db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@"
+ db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@"
+
+INCLUDE "data/credits_order.asm"
+
+INCLUDE "text/credits_text.asm"
+
+TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue)
+ INCBIN "gfx/theend.w40.interleave.2bpp"