summaryrefslogtreecommitdiff
path: root/src/engine/bank1.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/bank1.asm')
-rwxr-xr-xsrc/engine/bank1.asm251
1 files changed, 251 insertions, 0 deletions
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
new file mode 100755
index 0000000..c29a4c4
--- /dev/null
+++ b/src/engine/bank1.asm
@@ -0,0 +1,251 @@
+Func_4000: ; 4000 (1:4000)
+ di
+ ld sp, $e000
+ call ResetSerial
+ call EnableInt_VBlank
+ call EnableInt_Timer
+ call EnableExtRAM
+ ld a, [$a006]
+ ld [$ce47], a
+ ld a, [$a009]
+ ld [$ccf2], a
+ call DisableExtRAM
+ ld a, $1
+ ld [$cd0d], a
+ ei
+ farcall Func_1a6cc
+ ld a, [$ff90]
+ cp $3
+ jr z, .asm_4035
+ farcall Func_126d1
+ jr Func_4000
+.asm_4035
+ call Func_405a
+ call Func_04a2
+ ld hl, $00a2
+ call Func_2af0
+ jr c, .asm_404d
+ call EnableExtRAM
+ xor a
+ ld [$a000], a
+ call DisableExtRAM
+.asm_404d
+ jp Reset
+
+Func_4050: ; 4050 (1:4050)
+ farcall Func_1996e
+ ld a, $1
+ ld [$cd0d], a
+ ret
+
+Func_405a: ; 405a (1:405a)
+INCBIN "baserom.gbc",$405a,$406f - $405a
+
+Func_406f: ; 406f (1:406f)
+INCBIN "baserom.gbc",$406f,$409f - $406f
+
+; this function begins the duel after the opponent's
+; graphics, name and deck have been introduced
+Duel_Start: ; 409f (1:409f)
+ ld a, $c2
+ ld [$ff97], a
+ ld a, $0
+ ld [$c2f1], a
+ ld a, [$cc19]
+ ld [wOpponentDeck], a
+ call $6793
+ call Func_1c72
+ call Duel_LoadDecks
+ call Func_1c72
+ jr .asm_40ca
+
+ ld a, MUSIC_DUELTHEME1
+ ld [wDuelTheme], a
+ ld hl, $cc16
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [wIsPracticeDuel], a
+
+.asm_40ca
+ ld hl, [sp+$0]
+ ld a, l
+ ld [$cbe5], a
+ ld a, h
+ ld [$cbe6], a
+ xor a
+ ld [$cbc6], a
+ call $420b
+ ld a, [$cc18]
+ ld [$cc08], a
+ call $70aa
+ ld a, [wDuelTheme]
+ call PlaySong
+ call $4b60
+ ret c
+
+; the loop returns here after every turn switch
+.mainDuelLoop
+ xor a
+ ld [$cbc6], a
+ call $35e6
+ call $54c8
+ call $4225
+ call $0f58
+ ld a, [$cc07]
+ or a
+ jr nz, .asm_4136
+ call $35fa
+ call $6baf
+ call $3b31
+ call $0f58
+ ld a, [$cc07]
+ or a
+ jr nz, .asm_4136
+ ld hl, $cc06
+ inc [hl]
+ ld a, [$cc09]
+ cp $80
+ jr z, .asm_4126
+.asm_4121
+ call Func_1c72
+ jr .mainDuelLoop
+
+.asm_4126
+ ld a, [wIsPracticeDuel]
+ or a
+ jr z, .asm_4121
+ ld a, [hl]
+ cp $f
+ jr c, .asm_4121
+ xor a
+ ld [$d0c3], a
+ ret
+
+.asm_4136
+ call $5990
+ call Func_04a2
+ ld a, $3
+ call $2167
+ ld hl, $0076
+ call Func_2aab
+ call Func_04a2
+ ld a, [$ff97]
+ push af
+ ld a, $c2
+ ld [$ff97], a
+ call $4a97
+ call $4ad6
+ pop af
+ ld [$ff97], a
+ call $3b21
+ ld a, [$cc07]
+ cp $1
+ jr z, .asm_4171
+ cp $2
+ jr z, .asm_4184
+ ld a, $5f
+ ld c, $1a
+ ld hl, $0077
+ jr .asm_4196
+
+.asm_4171
+ ld a, [$ff97]
+ cp $c2
+ jr nz, .asm_418a
+.asm_4177
+ xor a
+ ld [$d0c3], a
+ ld a, $5d
+ ld c, $18
+ ld hl, $0078
+ jr .asm_4196
+
+.asm_4184
+ ld a, [$ff97]
+ cp $c2
+ jr nz, .asm_4177
+
+.asm_418a
+ ld a, $1
+ ld [$d0c3], a
+ ld a, $5e
+ ld c, $19
+ ld hl, $0079
+
+.asm_4196
+ call $3b6a
+ ld a, c
+ call PlaySong
+ ld a, $c3
+ ld [$ff97], a
+ call Func_2a59
+ call EnableLCD
+.asm_41a7
+ call Func_053f
+ call Func_378a
+ or a
+ jr nz, .asm_41a7
+ ld a, [$cc07]
+ cp $3
+ jr z, .asm_41c8
+ call Func_39fc
+ call $2aae
+ call $3b31
+ call ResetSerial
+ ld a, $c2
+ ld [$ff97], a
+ ret
+
+.asm_41c8
+ call $2aae
+ call $3b31
+ ld a, [wDuelTheme]
+ call PlaySong
+ ld hl, $007a
+ call Func_2aab
+ ld a, $1
+ ld [$cc08], a
+ call $70aa
+ ld a, [$cc09]
+ cp $1
+ jr z, .asm_41f3
+ ld a, $c2
+ ld [$ff97], a
+ call $4b60
+ jp $40ee
+
+.asm_41f3
+ call $0f58
+ ld h, $c2
+ ld a, [wSerialOp]
+ cp $29
+ jr z, .asm_4201
+ ld h, $c3
+
+.asm_4201
+ ld a, h
+ ld [$ff97], a
+ call $4b60
+ jp nc, $40ee
+ ret
+; 0x420b
+
+INCBIN "baserom.gbc",$420b,$5aeb - $420b
+
+Func_5aeb: ; 5aeb (1:5aeb)
+INCBIN "baserom.gbc",$5aeb,$6785 - $5aeb
+
+Func_6785: ; 6785 (1:6785)
+INCBIN "baserom.gbc",$6785,$7354 - $6785
+
+BuildVersion: ; 7354 (1:7354)
+ db "VER 12/20 09:36",TX_END
+
+INCBIN "baserom.gbc",$7364,$7571 - $7364
+
+Func_7571: ; 7571 (1:7571)
+INCBIN "baserom.gbc",$7571,$758f - $7571
+
+Func_758f: ; 758f (1:758f)
+INCBIN "baserom.gbc",$758f,$8000 - $758f