diff options
author | Andrew Martinek <andrewrmartinek@gmail.com> | 2016-06-09 01:45:03 -0400 |
---|---|---|
committer | Andrew Martinek <andrewrmartinek@gmail.com> | 2016-06-09 01:45:03 -0400 |
commit | 3d06cd73dfc0ade96fa8f8d416e643fa6c1cc087 (patch) | |
tree | bdbed3bd6991f651001cfbce066b562da4cbbfeb /src | |
parent | 31861490418b0cc28853257100d4549549b81254 (diff) |
disassembled overworld interaction code and a lot of relevant routines. Also ripped a data table and a couple pointer tables.
Diffstat (limited to 'src')
-rwxr-xr-x | src/data/unknownNPCData.asm | 1513 | ||||
-rwxr-xr-x | src/engine/bank1.asm | 18 | ||||
-rwxr-xr-x | src/engine/bank2.asm | 290 | ||||
-rwxr-xr-x | src/engine/bank20.asm | 83 | ||||
-rwxr-xr-x | src/engine/bank3.asm | 1550 | ||||
-rwxr-xr-x | src/engine/bank4.asm | 404 | ||||
-rwxr-xr-x | src/engine/bank7.asm | 263 | ||||
-rwxr-xr-x | src/engine/home.asm | 174 |
8 files changed, 4245 insertions, 50 deletions
diff --git a/src/data/unknownNPCData.asm b/src/data/unknownNPCData.asm new file mode 100755 index 0000000..6994cea --- /dev/null +++ b/src/data/unknownNPCData.asm @@ -0,0 +1,1513 @@ +; When you press the a button in front of something it will find a data entry somewhere on this list
+; it will then jump to the pointer in the data item. All jumps lead to an RST20 operation.
+PointerTable_118f5:
+ dw Data_119dd
+ dw Data_119dd
+ dw Data_119ea
+ dw Data_11a11
+ dw Data_11a1e
+ dw Data_119dd
+ dw Data_119dd
+ dw Data_11a2b
+ dw Data_11a38
+ dw Data_11a45
+ dw Data_11a52
+ dw Data_11a5f
+ dw Data_11a6c
+ dw Data_11a79
+ dw Data_11a86
+ dw Data_11a93
+ dw Data_11aa0
+ dw Data_11aad
+ dw Data_11aba
+ dw Data_11ac7
+ dw Data_11ad4
+ dw Data_11ae1
+ dw Data_11aee
+ dw Data_11afb
+ dw Data_11b08
+ dw Data_11b15
+ dw Data_11b22
+ dw Data_11b2f
+ dw Data_11b3c
+ dw Data_11b49
+ dw Data_11b56
+ dw Data_11b63
+ dw Data_11b70
+ dw Data_11b7d
+ dw Data_11b8a
+ dw Data_11b97
+ dw Data_11ba4
+ dw Data_11bb1
+ dw Data_11bbe
+ dw Data_11bcb
+ dw Data_11bd8
+ dw Data_11be5
+ dw Data_11bf2
+ dw Data_11bff
+ dw Data_11c0c
+ dw Data_11c19
+ dw Data_11c26
+ dw Data_11c40
+ dw Data_11c4d
+ dw Data_11c5a
+ dw Data_11c67
+ dw Data_11c74
+ dw Data_11c81
+ dw Data_11c8e
+ dw Data_11c9b
+ dw Data_11ca8
+ dw Data_11cb5
+ dw Data_11cc2
+ dw Data_11ccf
+ dw Data_11cdc
+ dw Data_11ce9
+ dw Data_11cf6
+ dw Data_11d03
+ dw Data_11d10
+ dw Data_11d1d
+ dw Data_11d2a
+ dw Data_11d37
+ dw Data_11d44
+ dw Data_11d51
+ dw Data_11d5e
+ dw Data_11d6b
+ dw Data_11d78
+ dw Data_11d85
+ dw Data_11d92
+ dw Data_11d9f
+ dw Data_11dac
+ dw Data_11db9
+ dw Data_11dc6
+ dw Data_11dd3
+ dw Data_11de0
+ dw Data_11ded
+ dw Data_11dfa
+ dw Data_11e07
+ dw Data_11e14
+ dw Data_11e21
+ dw Data_11e2e
+ dw Data_11e3b
+ dw Data_11e48
+ dw Data_11e55
+ dw Data_11e62
+ dw Data_11e6f
+ dw Data_11e7c
+ dw Data_11e89
+ dw Data_11e96
+ dw Data_11ea3
+ dw Data_11eb0
+ dw Data_11ebd
+ dw Data_11eca
+ dw Data_11ed7
+ dw Data_11ee4
+ dw Data_11ef1
+ dw Data_11efe
+ dw Data_11f0b
+ dw Data_11f18
+ dw Data_11f1f
+ dw Data_11f26
+ dw Data_11f2d
+ dw Data_11f34
+ dw Data_11f3b
+ dw Data_11f42
+ dw Data_11f49
+ dw Data_11f49
+ dw Data_11c33
+ dw Data_119f7
+ dw Data_11a04
+ dw Data_11f49
+Data_119dd:
+ db $01
+ db $02
+ db $00
+ db $26
+ db $00
+ dw $5727 ; Pointer to NPC Data
+ db $ac
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_119ea:
+ db $02
+ db $01
+ db $04
+ db $0e
+ db $00
+ dw $5c4b ; Pointer to NPC Data
+ db $ad
+ db $03
+ db $02
+ db $1a
+ db $0f
+ db $16
+Data_119f7:
+ db $71
+ db $01
+ db $04
+ db $0e
+ db $00
+ dw $5c4b ; Pointer to NPC Data
+ db $ad
+ db $03
+ db $02
+ db $1a
+ db $0f
+ db $16
+Data_11a04:
+ db $72
+ db $01
+ db $04
+ db $0e
+ db $00
+ dw $5c4b ; Pointer to NPC Data
+ db $ad
+ db $03
+ db $02
+ db $1a
+ db $0f
+ db $16
+Data_11a11:
+ db $03
+ db $03
+ db $04
+ db $22
+ db $00
+ dw $5b4a ; Pointer to NPC Data
+ db $ae
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a1e:
+ db $04
+ db $04
+ db $00
+ db $0e
+ db $00
+ dw $5d0d ; Pointer to NPC Data
+ db $af
+ db $03
+ db $04
+ db $34
+ db $10
+ db $15
+Data_11a2b:
+ db $07
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $561d ; Pointer to NPC Data
+ db $b1
+ db $03
+ db $03
+ db $02
+ db $02
+ db $15
+Data_11a38:
+ db $08
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $5583 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a45:
+ db $09
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $55ca ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a52:
+ db $0a
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $55d5 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a5f:
+ db $0b
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $55e0 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a6c:
+ db $0c
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $55f9 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a79:
+ db $0d
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $58bb ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a86:
+ db $0e
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $5c64 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11a93:
+ db $0f
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $5ed1 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11aa0:
+ db $10
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $609e ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11aad:
+ db $11
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $6369 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11aba:
+ db $12
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $6566 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ac7:
+ db $13
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $684c ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ad4:
+ db $14
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $6b53 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ae1:
+ db $15
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $6d45 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11aee:
+ db $16
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $7025 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11afb:
+ db $17
+ db $15
+ db $00
+ db $26
+ db $00
+ dw $5ef2 ; Pointer to NPC Data
+ db $b4
+ db $03
+ db $1d
+ db $1c
+ db $03
+ db $15
+Data_11b08:
+ db $18
+ db $15
+ db $00
+ db $26
+ db $00
+ dw $6573 ; Pointer to NPC Data
+ db $b5
+ db $03
+ db $1e
+ db $1d
+ db $03
+ db $15
+Data_11b15:
+ db $19
+ db $1f
+ db $04
+ db $1a
+ db $00
+ dw $6d96 ; Pointer to NPC Data
+ db $b6
+ db $03
+ db $27
+ db $1e
+ db $03
+ db $15
+Data_11b22:
+ db $1a
+ db $0a
+ db $00
+ db $0e
+ db $00
+ dw $5dc3 ; Pointer to NPC Data
+ db $b7
+ db $03
+ db $0a
+ db $10
+ db $03
+ db $16
+Data_11b2f:
+ db $1b
+ db $15
+ db $00
+ db $16
+ db $00
+ dw $5f39 ; Pointer to NPC Data
+ db $b8
+ db $03
+ db $1a
+ db $21
+ db $03
+ db $15
+Data_11b3c:
+ db $1c
+ db $11
+ db $00
+ db $26
+ db $00
+ dw $5ff0 ; Pointer to NPC Data
+ db $b9
+ db $03
+ db $1b
+ db $1f
+ db $03
+ db $15
+Data_11b49:
+ db $1d
+ db $1a
+ db $00
+ db $16
+ db $00
+ dw $6017 ; Pointer to NPC Data
+ db $ba
+ db $03
+ db $1c
+ db $20
+ db $03
+ db $15
+Data_11b56:
+ db $1e
+ db $0b
+ db $04
+ db $1e
+ db $00
+ dw $603e ; Pointer to NPC Data
+ db $bb
+ db $03
+ db $0b
+ db $11
+ db $03
+ db $16
+Data_11b63:
+ db $1f
+ db $20
+ db $00
+ db $0e
+ db $00
+ dw $6177 ; Pointer to NPC Data
+ db $bc
+ db $03
+ db $24
+ db $22
+ db $03
+ db $15
+Data_11b70:
+ db $20
+ db $20
+ db $00
+ db $16
+ db $00
+ dw $619e ; Pointer to NPC Data
+ db $bd
+ db $03
+ db $25
+ db $23
+ db $03
+ db $15
+Data_11b7d:
+ db $21
+ db $16
+ db $00
+ db $26
+ db $00
+ dw $621c ; Pointer to NPC Data
+ db $be
+ db $03
+ db $17
+ db $24
+ db $03
+ db $15
+Data_11b8a:
+ db $22
+ db $08
+ db $08
+ db $2e
+ db $10
+ dw $6304 ; Pointer to NPC Data
+ db $bf
+ db $03
+ db $08
+ db $12
+ db $03
+ db $16
+Data_11b97:
+ db $23
+ db $1c
+ db $04
+ db $0e
+ db $00
+ dw $6408 ; Pointer to NPC Data
+ db $c0
+ db $03
+ db $26
+ db $25
+ db $03
+ db $15
+Data_11ba4:
+ db $24
+ db $17
+ db $04
+ db $1e
+ db $00
+ dw $642f ; Pointer to NPC Data
+ db $c1
+ db $03
+ db $18
+ db $26
+ db $03
+ db $15
+Data_11bb1:
+ db $25
+ db $17
+ db $04
+ db $1e
+ db $00
+ dw $6456 ; Pointer to NPC Data
+ db $c2
+ db $03
+ db $19
+ db $27
+ db $03
+ db $15
+Data_11bbe:
+ db $26
+ db $09
+ db $00
+ db $16
+ db $00
+ dw $64ad ; Pointer to NPC Data
+ db $c3
+ db $03
+ db $09
+ db $13
+ db $03
+ db $16
+Data_11bcb:
+ db $27
+ db $1c
+ db $04
+ db $0e
+ db $00
+ dw $65d2 ; Pointer to NPC Data
+ db $c4
+ db $03
+ db $21
+ db $28
+ db $03
+ db $15
+Data_11bd8:
+ db $28
+ db $1e
+ db $00
+ db $1e
+ db $00
+ dw $6701 ; Pointer to NPC Data
+ db $c5
+ db $03
+ db $22
+ db $29
+ db $03
+ db $15
+Data_11be5:
+ db $29
+ db $1d
+ db $04
+ db $22
+ db $00
+ dw $6745 ; Pointer to NPC Data
+ db $c6
+ db $03
+ db $23
+ db $2a
+ db $03
+ db $15
+Data_11bf2:
+ db $2a
+ db $05
+ db $00
+ db $1a
+ db $00
+ dw $679e ; Pointer to NPC Data
+ db $c7
+ db $03
+ db $05
+ db $14
+ db $03
+ db $16
+Data_11bff:
+ db $2b
+ db $11
+ db $04
+ db $16
+ db $00
+ dw $6980 ; Pointer to NPC Data
+ db $c8
+ db $03
+ db $20
+ db $2b
+ db $03
+ db $15
+Data_11c0c:
+ db $2c
+ db $12
+ db $04
+ db $1a
+ db $00
+ dw $6a60 ; Pointer to NPC Data
+ db $c9
+ db $03
+ db $1f
+ db $2c
+ db $03
+ db $15
+Data_11c19:
+ db $2d
+ db $1c
+ db $04
+ db $0e
+ db $00
+ dw $6aa2 ; Pointer to NPC Data
+ db $ca
+ db $03
+ db $28
+ db $2d
+ db $03
+ db $15
+Data_11c26:
+ db $2e
+ db $0c
+ db $00
+ db $12
+ db $00
+ dw $6adf ; Pointer to NPC Data
+ db $cb
+ db $03
+ db $0c
+ db $15
+ db $03
+ db $16
+Data_11c33:
+ db $70
+ db $0c
+ db $03
+ db $15
+ db $10
+ dw $6adf ; Pointer to NPC Data
+ db $cb
+ db $03
+ db $0c
+ db $15
+ db $03
+ db $16
+Data_11c40:
+ db $2f
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $6cdb ; Pointer to NPC Data
+ db $cc
+ db $03
+ db $11
+ db $2e
+ db $03
+ db $15
+Data_11c4d:
+ db $30
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $6c11 ; Pointer to NPC Data
+ db $cd
+ db $03
+ db $12
+ db $2f
+ db $03
+ db $15
+Data_11c5a:
+ db $31
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $6c42 ; Pointer to NPC Data
+ db $ce
+ db $03
+ db $13
+ db $30
+ db $03
+ db $15
+Data_11c67:
+ db $32
+ db $06
+ db $00
+ db $0e
+ db $00
+ dw $6c67 ; Pointer to NPC Data
+ db $cf
+ db $03
+ db $06
+ db $16
+ db $03
+ db $16
+Data_11c74:
+ db $33
+ db $12
+ db $04
+ db $1a
+ db $00
+ dw $6eb3 ; Pointer to NPC Data
+ db $d0
+ db $03
+ db $14
+ db $31
+ db $03
+ db $15
+Data_11c81:
+ db $34
+ db $13
+ db $00
+ db $22
+ db $00
+ dw $6ed8 ; Pointer to NPC Data
+ db $d1
+ db $03
+ db $15
+ db $32
+ db $03
+ db $15
+Data_11c8e:
+ db $35
+ db $11
+ db $04
+ db $16
+ db $00
+ dw $6efd ; Pointer to NPC Data
+ db $d2
+ db $03
+ db $16
+ db $33
+ db $03
+ db $15
+Data_11c9b:
+ db $36
+ db $07
+ db $04
+ db $1e
+ db $00
+ dw $6f22 ; Pointer to NPC Data
+ db $d3
+ db $03
+ db $07
+ db $17
+ db $03
+ db $16
+Data_11ca8:
+ db $37
+ db $0d
+ db $00
+ db $12
+ db $00
+ dw $771f ; Pointer to NPC Data
+ db $d4
+ db $03
+ db $0d
+ db $0c
+ db $04
+ db $17
+Data_11cb5:
+ db $38
+ db $0e
+ db $00
+ db $2a
+ db $00
+ dw $772a ; Pointer to NPC Data
+ db $d5
+ db $03
+ db $0e
+ db $0d
+ db $04
+ db $17
+Data_11cc2:
+ db $39
+ db $0f
+ db $00
+ db $26
+ db $00
+ dw $7735 ; Pointer to NPC Data
+ db $d6
+ db $03
+ db $0f
+ db $0e
+ db $04
+ db $17
+Data_11ccf:
+ db $3a
+ db $10
+ db $00
+ db $0e
+ db $00
+ dw $7740 ; Pointer to NPC Data
+ db $d7
+ db $03
+ db $10
+ db $0f
+ db $04
+ db $17
+Data_11cdc:
+ db $3b
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $4c3e ; Pointer to NPC Data
+ db $b0
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ce9:
+ db $3c
+ db $21
+ db $0a
+ db $30
+ db $00
+ dw $4c3e ; Pointer to NPC Data
+ db $b0
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11cf6:
+ db $3d
+ db $1a
+ db $00
+ db $16
+ db $00
+ dw $5c76 ; Pointer to NPC Data
+ db $d8
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d03:
+ db $3e
+ db $23
+ db $04
+ db $1e
+ db $00
+ dw $5f83 ; Pointer to NPC Data
+ db $d9
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d10:
+ db $3f
+ db $19
+ db $00
+ db $1a
+ db $00
+ dw $5fc0 ; Pointer to NPC Data
+ db $da
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d1d:
+ db $40
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $60cf ; Pointer to NPC Data
+ db $db
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d2a:
+ db $41
+ db $1e
+ db $00
+ db $1e
+ db $00
+ dw $6111 ; Pointer to NPC Data
+ db $dc
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d37:
+ db $42
+ db $19
+ db $00
+ db $1a
+ db $00
+ dw $639a ; Pointer to NPC Data
+ db $da
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d44:
+ db $43
+ db $1e
+ db $00
+ db $1e
+ db $00
+ dw $661f ; Pointer to NPC Data
+ db $dc
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d51:
+ db $44
+ db $1b
+ db $00
+ db $22
+ db $00
+ dw $69a5 ; Pointer to NPC Data
+ db $dd
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d5e:
+ db $45
+ db $12
+ db $04
+ db $1a
+ db $00
+ dw $6b84 ; Pointer to NPC Data
+ db $de
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d6b:
+ db $46
+ db $11
+ db $04
+ db $16
+ db $00
+ dw $6e2c ; Pointer to NPC Data
+ db $de
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d78:
+ db $47
+ db $19
+ db $00
+ db $1a
+ db $00
+ dw $6de8 ; Pointer to NPC Data
+ db $da
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d85:
+ db $48
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $7295 ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d92:
+ db $49
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $726c ; Pointer to NPC Data
+ db $b3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11d9f:
+ db $4a
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $7352 ; Pointer to NPC Data
+ db $df
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11dac:
+ db $4b
+ db $13
+ db $00
+ db $22
+ db $00
+ dw $5d82 ; Pointer to NPC Data
+ db $e0
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11db9:
+ db $4c
+ db $14
+ db $00
+ db $16
+ db $00
+ dw $5d8d ; Pointer to NPC Data
+ db $e1
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11dc6:
+ db $4d
+ db $24
+ db $00
+ db $16
+ db $00
+ dw $5d9f ; Pointer to NPC Data
+ db $e5
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11dd3:
+ db $4e
+ db $1d
+ db $04
+ db $22
+ db $00
+ dw $5fd2 ; Pointer to NPC Data
+ db $dc
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11de0:
+ db $4f
+ db $1a
+ db $00
+ db $16
+ db $00
+ dw $6137 ; Pointer to NPC Data
+ db $d8
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ded:
+ db $50
+ db $1b
+ db $00
+ db $22
+ db $00
+ dw $613b ; Pointer to NPC Data
+ db $dd
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11dfa:
+ db $51
+ db $1d
+ db $04
+ db $22
+ db $00
+ dw $63d9 ; Pointer to NPC Data
+ db $dc
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e07:
+ db $52
+ db $17
+ db $04
+ db $1e
+ db $00
+ dw $63dd ; Pointer to NPC Data
+ db $e2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e14:
+ db $53
+ db $24
+ db $00
+ db $16
+ db $00
+ dw $66d8 ; Pointer to NPC Data
+ db $e5
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e21:
+ db $54
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $66e3 ; Pointer to NPC Data
+ db $db
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e2e:
+ db $55
+ db $12
+ db $04
+ db $1a
+ db $00
+ dw $6850 ; Pointer to NPC Data
+ db $de
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e3b:
+ db $56
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $6a30 ; Pointer to NPC Data
+ db $db
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e48:
+ db $57
+ db $19
+ db $00
+ db $1a
+ db $00
+ dw $6a3b ; Pointer to NPC Data
+ db $da
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e55:
+ db $58
+ db $1a
+ db $00
+ db $16
+ db $00
+ dw $6bc1 ; Pointer to NPC Data
+ db $d8
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e62:
+ db $59
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $6bc5 ; Pointer to NPC Data
+ db $e0
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e6f:
+ db $5a
+ db $13
+ db $00
+ db $22
+ db $00
+ dw $6bed ; Pointer to NPC Data
+ db $e0
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e7c:
+ db $5b
+ db $23
+ db $04
+ db $1e
+ db $00
+ dw $4c3e ; Pointer to NPC Data
+ db $d9
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e89:
+ db $5c
+ db $15
+ db $00
+ db $26
+ db $00
+ dw $6e88 ; Pointer to NPC Data
+ db $e4
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11e96:
+ db $5d
+ db $1b
+ db $00
+ db $22
+ db $00
+ dw $709c ; Pointer to NPC Data
+ db $dd
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ea3:
+ db $5e
+ db $22
+ db $00
+ db $16
+ db $00
+ dw $70a0 ; Pointer to NPC Data
+ db $db
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11eb0:
+ db $5f
+ db $15
+ db $00
+ db $26
+ db $00
+ dw $70a4 ; Pointer to NPC Data
+ db $e3
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ebd:
+ db $60
+ db $17
+ db $04
+ db $1e
+ db $00
+ dw $70a8 ; Pointer to NPC Data
+ db $e2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11eca:
+ db $61
+ db $1f
+ db $04
+ db $1a
+ db $00
+ dw $70ac ; Pointer to NPC Data
+ db $dc
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ed7:
+ db $62
+ db $19
+ db $00
+ db $1a
+ db $00
+ dw $70b0 ; Pointer to NPC Data
+ db $da
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11ee4:
+ db $63
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $58dd ; Pointer to NPC Data
+ db $e7
+ db $03
+ db $29
+ db $09
+ db $02
+ db $15
+Data_11ef1:
+ db $64
+ db $1a
+ db $00
+ db $16
+ db $00
+ dw $7283 ; Pointer to NPC Data
+ db $e6
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11efe:
+ db $65
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $58c6 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11f0b:
+ db $66
+ db $18
+ db $00
+ db $0e
+ db $00
+ dw $58d1 ; Pointer to NPC Data
+ db $b2
+ db $03
+ db $00
+ db $00
+ db $00
+ db $00
+Data_11f18:
+ db $67
+ db $26
+ db $3a
+ db $3a
+ db $10
+ dw $4c3e ; Pointer to NPC Data
+Data_11f1f:
+ db $68
+ db $27
+ db $3b
+ db $41
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f26:
+ db $69
+ db $27
+ db $3c
+ db $42
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f2d:
+ db $6a
+ db $27
+ db $3d
+ db $43
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f34:
+ db $6b
+ db $27
+ db $3e
+ db $44
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f3b:
+ db $6c
+ db $27
+ db $3f
+ db $45
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f42:
+ db $6d
+ db $27
+ db $40
+ db $46
+ db $50
+ dw $4c3e ; Pointer to NPC Data
+Data_11f49:
+ db $00
+ db $00
+ db $00
+ db $1e
+ db $00
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 94172c5..d9a5870 100755 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -1350,7 +1350,21 @@ BuildVersion: ; 7354 (1:7354) INCBIN "baserom.gbc",$7364,$7571 - $7364 Func_7571: ; 7571 (1:7571) -INCBIN "baserom.gbc",$7571,$758f - $7571 +INCBIN "baserom.gbc",$7571,$7576 - $7571 + +Func_7576: ; 7576 (1:7576) + farcallx $6, $591f + ret +; 0x757b + +INCBIN "baserom.gbc",$757b,$758f - $757b Func_758f: ; 758f (1:758f) -INCBIN "baserom.gbc",$758f,$8000 - $758f +INCBIN "baserom.gbc",$758f,$7594 - $758f + +Func_7594: ; 7594 (1:7594) + farcallx $6, $661f + ret +; 0x7599 + +INCBIN "baserom.gbc",$7599,$8000 - $7599
\ No newline at end of file diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 48d39cc..a721a74 100755 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -783,4 +783,292 @@ Unknown_a77e: ; a77e (2:677e) INCBIN "baserom.gbc",$a77e,$b177 - $a77e Func_b177: ; b177 (2:7177) -INCBIN "baserom.gbc",$b177,$c000 - $b177 +INCBIN "baserom.gbc",$b177,$b19d - $b177 + +Func_b19d: ; b19d (2:719d) + xor a + ld [$cea1], a + ld de, CheckForCGB + ld hl, $d0a2 + ld [hl], e + inc hl + ld [hl], d + call $7379 + ld a, $3c + ld [$d0a5], a + xor a +.asm_b1b3 + ld hl, $76fb + call $5a6d + call $7704 + call $7545 + ld hl, $0224 + call DrawWideTextBox_PrintText + ld de, $0224 + call $7285 + call $729f + jr c, .asm_b1b3 + cp $ff + ret z + ld b, a + ld a, [$cea1] + add b + ld [$d088], a + call Func_905a + call DrawWideTextBox + ld hl, $7274 + call Func_2c08 + call DoFrame + call Func_9065 + jp nc, $71e7 + cp $ff + jr nz, .asm_b1fa + ld a, [$d086] + jp $71b3 + +.asm_b1fa + ld a, [wceb0] + sla a + ld hl, wceaf + add [hl] + or a + jr nz, .asm_b22c + call $735b + jr nc, .asm_b216 + call $7592 + ld a, [$d086] + jp c, $71b3 + jr .asm_b25e + +.asm_b216 + ld hl, $0272 + call Func_2af0 + ld a, [$d086] + jr c, .asm_b1b3 + call $7592 + ld a, [$d086] + jp c, $71b3 + jr .asm_b25e + +.asm_b22c + cp $1 + jr nz, .asm_b24c + call $735b + jr c, .asm_b240 + call $76ca + ld a, [$d086] + jp c, $71b3 + jr .asm_b25e + +.asm_b240 + ld hl, WaitForVBlank + call DrawWideTextBox_WaitForInput + ld a, [$d086] + jp $71b3 + +.asm_b24c + cp $2 + jr nz, .asm_b273 + call $735b + jr c, .asm_b240 + call $77c6 + ld a, [$d086] + jp nc, $71b3 + +.asm_b25e + ld a, [$d087] + ld [$cea1], a + call $7379 + call $7704 + call $7545 + ld a, [$d086] + jp $71b3 + +.asm_b273 + ret +; 0xb274 + +INCBIN "baserom.gbc",$b274,$ba04 - $b274 + +Func_ba04: ; ba04 (2:7a04) + ld a, [wd0a9] + ld hl, $7b83 + sla a + ld c, a + ld b, $0 + add hl, bc + ld de, $d0a2 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + xor a + ld [$cea1], a + call $7b97 + ld a, $5 + ld [$d0a5], a + xor a + ld hl, $7b6e + call InitializeCursorParameters + ld hl, $0224 + call DrawWideTextBox_PrintText + ld a, $5 + ld [$cea9], a + ld hl, $73fe + ld d, h + ld a, l + ld hl, $cece + ld [hli], a + ld [hl], d +.asm_ba40 + call DoFrame + call MenuCursorAcceptInput + jr c, .asm_baa3 + ld a, [$ff8f] + and $c0 + jr z, .asm_ba4e + +.asm_ba4e + ld a, [$ff8f] + and $8 + jr z, .asm_ba40 + ld a, [$cea1] + ld [$d087], a + ld b, a + ld a, [wCurMenuItem] + ld [$d086], a + add b + ld c, a + inc a + or $80 + ld [wceb1], a + sla c + ld b, $0 + ld hl, $d00d + add hl, bc + call $7653 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld bc, $0018 + add hl, bc + ld d, h + ld e, l + ld a, [hl] + pop hl + call $7644 + or a + jr z, .asm_ba40 + ld a, $1 + call Func_90fb + call $7653 + call Func_8e1f + call $7644 + ld a, [$d087] + ld [$cea1], a + call $7b97 + ld a, [$d086] + jp $7a25 + +.asm_baa3 + call Func_270b + ld a, [$cea1] + ld [$d087], a + ld a, [wCurMenuItem] + ld [$d086], a + ld a, [$ffb1] + cp $ff + jp z, $7b0d + ld [$d088], a + call Func_905a + xor a + ld [$ce5e], a + call DrawWideTextBox + ld hl, $7b76 + call Func_2c08 + call DoFrame + call $46ac + jp nc, $7acc + cp $ff + jr nz, .asm_badf + ld a, [$d086] + jp $7a25 + +.asm_badf + ld a, [wceb0] + sla a + ld hl, wceaf + add [hl] + or a + jr nz, .asm_bb09 + call $7653 + call $77c6 + call $7644 + ld a, [$d086] + jp nc, $7a25 + ld a, [$d087] + ld [$cea1], a + call $7b97 + ld a, [$d086] + jp $7a25 + +.asm_bb09 + cp $1 + jr nz, .asm_bb12 + xor a + ld [$d0a4], a + ret + +.asm_bb12 + ld a, [$cea1] + ld [$d087], a + ld b, a + ld a, [wCurMenuItem] + ld [$d086], a + add b + ld c, a + ld [wceb1], a + sla c + ld b, $0 + ld hl, $d00d + add hl, bc + push hl + ld hl, $d0aa + add hl, bc + ld bc, $cfda + ld a, [hli] + ld [bc], a + inc bc + ld a, [hl] + ld [bc], a + pop hl + call $7653 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld bc, $0018 + add hl, bc + ld d, h + ld e, l + ld a, [hl] + pop hl + call $7644 + or a + jp z, $7a40 + ld a, $1 + call Func_90fb + call $7653 + xor a + call $6dfe + call $7644 + ld a, [$d087] + ld [$cea1], a + call $7b97 + ld a, [$d086] + jp $7a25 +; 0xbb6e + +INCBIN "baserom.gbc",$bb6e,$c000 - $bb6e diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 453cf61..17f8afc 100755 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -124,7 +124,88 @@ Func_804d8: ; 804d8 (20:44d8) INCBIN "baserom.gbc",$804d8,$80b7a - $804d8 Func_80b7a: ; 80b7a (20:4b7a) -INCBIN "baserom.gbc",$80b7a,$80e5a - $80b7a +INCBIN "baserom.gbc",$80b7a,$80ba4 - $80b7a + +Func_80ba4: ; 80ba4 (20:4ba4) + push af + xor a + ld [$d292], a + pop af + push hl + push bc + push de + ld c, a + ld a, [wd131] + push af + ld a, [$d23d] + push af + ld a, [$d12f] + push af + ld a, [$d130] + push af + ld a, [$d23a] + push af + ld a, [$d23b] + push af + ld b, $0 + ld hl, wd323 + add hl, bc + ld a, $1 + ld [hl], a + ld a, c + add a + ld c, a + ld b, $0 + ld hl, $4c21 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld b, [hl] + inc hl + ld c, [hl] + inc hl + ld a, [wConsole] + cp $2 + jr nz, .asm_80be7 + inc hl + +.asm_80be7 + ld a, [hl] + ld [wd131], a + push bc + farcallx $20, $4082 + pop bc + srl b + ld a, c + rrca + and $f + swap a + add b + ld c, a + ld b, $0 + ld hl, wBoosterViableCardList + add hl, bc + farcallx $3, $438f + pop af + ld [$d23b], a + pop af + ld [$d23a], a + pop af + ld [$d130], a + pop af + ld [$d12f], a + pop af + ld [$d23d], a + pop af + ld [wd131], a + pop de + pop bc + pop hl + ret +; 0x80c21 + +INCBIN "baserom.gbc",$80c21,$80e5a - $80c21 Unknown_80e5a: ; 80e5a (20:4e5a) INCBIN "baserom.gbc",$80e5a,$80e5d - $80e5a diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index feb7c05..5d1c31f 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -379,9 +379,11 @@ Func_c2a3: ; c2a3 (3:42a3) pop bc pop hl ret -; 0xc2d4 -INCBIN "baserom.gbc",$c2d4,$c2db - $c2d4 +Func_c2d4: ; c2d4 (3:42d4) + xor a + ld [wd10f], a + ld [wd110], a Func_c2db: ; c2db (3:42db) push hl @@ -624,9 +626,17 @@ Func_c510: ; c510 (3:4510) and START call nz, Func_c74d ret -; 0xc53d -INCBIN "baserom.gbc",$c53d,$c554 - $c53d +Func_c53d: ; c53d (3:453d) + ld a, [wd336] + ld [wd4cf], a + ld a, [wd335] + bit 0, a + call nz, $4687 + ld a, [wd335] + bit 1, a + call nz, Func_c6dc + ret Func_c554: ; c554 (3:4554) ld a, [wd336] @@ -703,6 +713,7 @@ Func_c5ac: ; c5ac (3:45ac) Func_c5cb: ; c5cb (3:45cb) call Func_c5d5 +Func_c5ce: ; c5ce (3:45ce) ld [wd334], a call Func_c5e9 ret @@ -743,9 +754,16 @@ Func_c5fe: ; c5fe (3:45fe) call Func_c619 pop bc ret -; 0xc607 -INCBIN "baserom.gbc",$c607,$c619 - $c607 +Func_c607: ; c607 (3:4607) + push bc + ld a, [wd336] + ld [wd4cf], a + ld a, [$d339] + call $4656 + call Func_c619 + pop bc + ret Func_c619: ; c619 (3:4619) push hl @@ -1062,7 +1080,7 @@ PC_c7ea: ; c7ea (3:47ea) call Func_c135 call DoFrameIfLCDEnabled text_hl TurnedPCOffText - call $4891 + call Func_c891 call Func_c111 xor a ld [wd112], a @@ -1070,7 +1088,115 @@ PC_c7ea: ; c7ea (3:47ea) ret ; 0xc846 -INCBIN "baserom.gbc",$c846,$c935 - $c846 +INCBIN "baserom.gbc",$c846,$c891 - $c846 + +Func_c891: ; c891 (3:4891) + push hl + ld a, [wd0c1] + bit 0, a + jr z, .asm_c8a1 + ld hl, $d3b9 + ld a, [hli] + or [hl] + call nz, Func_c135 + +.asm_c8a1 + xor a + ld hl, $d3b9 + ld [hli], a + ld [hl], a + pop hl + ld a, $1 + call Func_c29b + call Func_c241 + call $4915 + call DoFrameIfLCDEnabled + call Func_2c73 + ret + +Func_c8ba: ; c8ba (3:48ba) + ld a, e + or d + jr z, Func_c891 + push hl + ld a, [wd0c1] + bit 0, a + jr z, .asm_c8d4 + ld hl, $d3b9 + ld a, [hli] + cp e + jr nz, .asm_c8d1 + ld a, [hl] + cp d + jr z, .asm_c8d4 + +.asm_c8d1 + call Func_c135 + +.asm_c8d4 + ld hl, $d3b9 + ld [hl], e + inc hl + ld [hl], d + pop hl + ld a, $1 + call Func_c29b + call Func_c241 + call $4915 + call DoFrameIfLCDEnabled + call $2c62 + ret +; 0xc8ed + +Func_c8ed: ; c8ed (3:c8ed) + push hl + push bc + push de + push hl + ld a, $1 + call Func_c29b + call $4915 + call DoFrameIfLCDEnabled + pop hl + ld a, l + or h + jr z, .asm_c90e + push hl + xor a + ld hl, $d3b9 + ld [hli], a + ld [hl], a + pop hl + call Func_2af0 + jr .asm_c911 + +.asm_c90e + call $2af3 + +.asm_c911 + pop de + pop bc + pop hl + ret + +Func_c915: ; c915 (3:4915) + push bc + push de + ld de, $000c + ld bc, $1406 + call AdjustCoordinatesForWindow + call $43ca + pop de + pop bc + ret + +Func_c926: ; c926 (3:4926) + push bc + call Func_39c3 + ld a, [wd3aa] + ld [wd3b6], a + farcall Func_1c768 + pop bc Func_c935: ; c935 (3:4935) push hl @@ -1298,6 +1424,7 @@ INCBIN "baserom.gbc",$ca84,$ca8f - $ca84 Func_ca8f: ; ca8f (3:4a8f) call Func_cab3 +Func_ca92: ; ca92 (3:4a92) push hl push bc call Func_cb1d @@ -1338,7 +1465,71 @@ Func_cab3: ; cab3 (3:4ab3) ret ; 0xcac2 -INCBIN "baserom.gbc",$cac2,$cb1d - $cac2 +INCBIN "baserom.gbc",$cac2,$cac5 - $cac2 + +Func_cac5: ; cac5 (3:4ac5) + push bc + ld c, $ff + call $4a92 + pop bc + ret +; 0xcacd + +INCBIN "baserom.gbc",$cacd,$cad0 - $cacd + +Func_cad0: ; cad0 (3:4ad0) + push bc + ld c, $0 + call Func_ca92 + pop bc + ret + +Func_cad8: ; cad8 (3:4ad8) + push hl + push bc + ld hl, $4b15 + ld bc, $0008 +.asm_cae0 + ld a, [hli] + call Func_ca6c + jr z, .asm_cae7 + inc b + +.asm_cae7 + dec c + jr nz, .asm_cae0 + ld c, b + call Func_ca8f + ld l, $79 + push af + cp $8 + jr nc, .asm_caff + cp $7 + jr nc, .asm_cb05 + cp $3 + jr nc, .asm_cb0b + jr .asm_cb11 + +.asm_caff + ld a, $c + farcallx $4, $4a70 + +.asm_cb05 + ld a, $b + farcallx $4, $4a70 + +.asm_cb0b + ld a, $a + farcallx $4, $4a70 + +.asm_cb11 + pop af + pop bc + pop hl + ret +; 0xcb15 + +INCBIN "baserom.gbc",$cb15,$cb1d - $cb15 Func_cb1d: ; cb1d (3:4b1d) push bc @@ -1359,8 +1550,23 @@ Func_cb1d: ; cb1d (3:4b1d) ret Unknown_cb37: ; cb37 (3:4b37) -INCBIN "baserom.gbc",$cb37,$cc42 - $cb37 +INCBIN "baserom.gbc",$cb37,$cc32 - $cb37 + +Func_cc32: ; cc32 (3:4c32) + push hl + ld hl, wd0c8 + ld e, [hl] + inc hl + ld d, [hl] + pop hl + call $48ba + ret +; 0xcc3e + +INCBIN "baserom.gbc",$cc3e,$cc42 - $cc3e +; called when pressing a in front of an object. creates a pointer to the data right after an RST20 +; was called, then runs Func_3aed to handle that data RST20: ; cc42 (3:4c42) pop hl ld a, l @@ -1380,12 +1586,1034 @@ RST20: ; cc42 (3:4c42) ld b, [hl] push bc ret -; 0xcc60 -INCBIN "baserom.gbc",$cc60,$cd98 - $cc60 +Func_cc60: ; cc60 (3:4c60) + ld a, 1 + jr Func_cc7a +Func_cc64: ; cc64 (3:4c64) + ld a, 2 + jr Func_cc7a +Func_cc68: ; cc68 (3:4c68) + ld a, 4 + jr Func_cc7a +Func_cc6c: ; cc6c (3:4c6c) + ld a, 5 + jr Func_cc7a +Func_cc70: ; cc70 (3:4c70) + ld a, 6 + jr Func_cc7a +Func_cc74: ; cc74 (3:4c74) + ld a, 7 + jr Func_cc7a +Func_cc78: ; cc78 (3:4c78) + ld a, 3 + +Func_cc7a: ; cc7a (3:4c7a) + ld c, a + ld a, [wd413] + add c + ld [wd413], a + ld a, [wd414] + adc a, 00 + ld [wd414], a + ret + +Func_cc8b: ; cc8b (3:4c8b) + ld hl, wd413 + ld [hl], c + inc hl + ld [hl], b + ret +; 0xcc92 + +INCBIN "baserom.gbc",$cc92,$cc96 - $cc92 + +Func_cc96: ; cc96 (3:4c96) + ld a, $1 + jr Func_cca0 + +Func_cc9a: ; cc9a (3:4c9a) + ld a, $2 + jr Func_cca0 +Func_cc9e: ; cc9e (3:4c9e) + ld a, $3 -Unknown_cd98: ; cd98 (3:4d98) -INCBIN "baserom.gbc",$cd98,$d336 - $cd98 +Func_cca0: ; cca0 (3:4ca0) + push hl + ld l, a + ld a, [wd413] + add l + ld l, a + ld a, [wd414] + adc $0 + ld h, a + ld a, [hli] + ld c, a + ld b, [hl] + pop hl + or b + ret + +Func_ccb3: ; ccb3 (3:4cb3) + ld a, $ff + ld [$d415], a + ret + +Func_ccb9: ; ccb9 (3:4cb9) + xor a + ld [$d415], a + ret + +Func_ccbe: ; ccbe (3:4cbe) + ld a, $01 + ld [wd412], a + jp Func_cc60 + +Func_ccc6: ; ccc6 (3:4cc6) + call Func_c111 + jp Func_cc60 + +Func_cccc: ; cccc (3:4ccc) + call Func_ccc6 + call Func_ccbe + pop hl + ret + +Func_ccd4: ; ccd4 (3:4cd4) + ld l, c + ld h, b + call Func_cc32 + jp Func_cc78 + +Func_ccdc: ; ccdc (3:4cdc) + ld l, c + ld h, b + call Func_c891 + jp Func_cc78 + +Func_cce4: ; cce4 (3:4ce4) + ld a, $1 + ld [wcd9a], a +Func_cce9: ; cce9 (3:4ce9) + ld l, c + ld h, b + call Func_c8ed + ld a, [hCurrentMenuItem] + ld [$d415], a + jr c, .asm_ccfe + call Func_cc9e + jr z, .asm_ccfe + jp Func_cc8b + +.asm_ccfe + jp Func_cc6c + +; this seems to be called when battles officially start. Might be a good way to find trainer data. +Func_cd01: ; cd01 (3:4d01) + call Func_cd66 + ld a, [wd3b6] + ld l, $0 + call Func_39ad + ld a, [hl] + farcall Func_118d3 + ld a, [wcc19] + cp $ff + jr nz, .asm_cd26 + ld a, [$d695] + ld c, a + ld b, $0 + ld hl, $4d63 + add hl, bc + ld a, [hl] + ld [wcc19], a +.asm_cd26 + ld a, [wd3b6] + ld l, $0 + call Func_39ad + ld a, [hl] +asm_cd2f + ld [wd0c4], a + ld [$cc14], a + push af + farcall Func_1c557 + ld [wd0c5], a + pop af + farcall Func_118a7 + ld a, $1 + ld [wd0b5], a + ld hl, wd0b4 + set 6, [hl] + jp Func_cc68 + +Func_cd4f: ; cd4f (3:4d4f) + call Func_cd66 + ld a, [$d696] + farcall Func_118bf + ld a, $16 + ld [wMatchStartTheme], a + ld a, [$d696] + jr asm_cd2f + +Unknown_dd63: ; cd4f (3:4d4f) +INCBIN "baserom.gbc",$cd63,$cd66 - $cd63 + +Func_cd66: ; cd66 (3:4d66) + ld a, c + ld [wcc18], a + ld a, b + ld [wcc19], a + call Func_cc9e + ld a, c + ld [wDuelTheme], a + ret + +Func_cd76: ; cd76 (3:4d76) + ld a, $2 + ld [wd0b5], a + ld hl, wd0b4 + set 6, [hl] + jp Func_cc60 + +Func_cd83: ; cd83 (3:4d83) + ld a, [$d415] + or a + jr nz, .asm_cd8c + call Func_cc9e +.asm_cd8c + ld l, c + ld h, b + call Func_cc32 + jp Func_cc6c + +Func_cd94: ; cd94 (3:4d94) + call Func_ca69 + ld b, h +Unknown_cd98: + dec a + and $3 + add a + inc a + call Func_cca0 + ld l, c + ld h, b + call Func_cc32 + jp Func_cc74 + +Func_cda8: ; cda8 (3:4da8) + ld a, [$d415] + or a + jr nz, .asm_cdb1 + call Func_cc9e +.asm_cdb1 + ld l, c + ld h, b + call Func_c891 + jp Func_cc6c + +Func_cdb9: ; cdb9 (3:4db9) + ld l, c + ld h, b + call Func_cc32 + call Func_c111 + ld a, $1 + ld [wd412], a + call Func_cc78 + pop hl + ret + +Func_cdcb: ; cdcb (3:4dcb) + ld a, [wd3b6] + ld [wd3aa], a +Func_4dd1: ; cdd1 (3:4dd1) + farcall Func_1c50a + jp Func_cc60 + +Func_cdd8: ; cdd8 (3:4dd8) + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, [$d696] + ld [wd3ab], a + call Func_39c3 + call Func_4dd1 + pop af + ld [wd3ab], a + pop af + ld [wd3aa], a + ret + +Func_cdf5: ; cdf5 (3:4df5) + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, [$d696] + ld [wd3ab], a + ld a, c + ld [$d3ac], a + ld a, b + ld [$d3ad], a + ld a, $2 + ld [$d3ae], a + ld a, [wd3ab] + farcall Func_11857 + farcall Func_1c485 + pop af + ld [wd3ab], a + pop af + ld [wd3aa], a + jp Func_cc78 + +Func_ce26: ; ce26 (3:4e26) + ld a, [wd3b6] + ld [wd3aa], a + farcall Func_1c455 + rlca + add c + ld l, a + ld a, b + adc $0 + ld h, a + ld c, [hl] + inc hl + ld b, [hl] + +Func_ce3a: ; ce3a (3:4e3a) + farcall Func_1c78d +.asm_ce3e + call DoFrameIfLCDEnabled + farcall Func_1c7de + jr nz, .asm_ce3e + jp Func_cc78 + +Func_ce4a: ; ce4a (3:4e4a) + ld a, [wd3b6] + ld [wd3aa], a + jr Func_ce3a + +Func_ce52: ; ce52 (3:4e52) + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, [$d696] +asm_ce5d + ld [wd3ab], a + call Func_39c3 + call Func_ce3a + pop af + ld [wd3ab], a + pop af + ld [wd3aa], a + ret + +Func_ce6f: ; ce6f (3:4e6f) + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, c + push af + call Func_cc9a + push bc + call Func_cc60 + pop bc + pop af + jr asm_ce5d + +Func_ce84: ; ce84 (3:4e84) + call Func_c135 + jp Func_cc60 + +Func_ce8a: ; ce8a (3:4e8a) + xor a + ld [wd117], a + push bc + call Func_c2a3 + pop bc + push bc + ld a, c + farcall BoosterPack_1031b + ld a, 1 + ld [wd117], a + pop bc + ld a, b + cp $ff + jr z, .asm_ceb4 + farcall BoosterPack_1031b + call Func_cc9e + ld a, c + cp $ff + jr z, .asm_ceb4 + farcall BoosterPack_1031b +.asm_ceb4 + call Func_c2d4 + jp Func_cc68 + +Func_ceba: ; ceba (3:4eba) + xor a + ld [wd117], a + call Func_c2a3 + ld hl, $4edd +.asm_cec4 + ld a, [hl] + cp $ff + jr z, .asm_ced7 + push hl + farcall BoosterPack_1031b + ld a, $1 + ld [wd117], a + pop hl + inc hl + jr .asm_cec4 +.asm_ced7 + call Func_c2d4 + jp Func_cc60 +; 0xcedd + +INCBIN "baserom.gbc",$cedd,$cee2 - $cedd + +Func_cee2: ; cee2 (3:4ee2) + call Func_c2a3 + ld a, c + cp $ff + jr z, .asm_cf09 + or a + jr nz, .asm_cef0 + ld a, [$d697] + +.asm_cef0 + push af + farcall Func_10000 + farcall Func_10031 + pop af + bank1call Func_7594 + call Func_c1a4 + call DoFrameIfLCDEnabled + call Func_c2d4 + jp Func_cc64 + +.asm_cf09 + xor a + jr .asm_cef0 + +Func_cf0c: ; cf0c (3:4f0c) + ld a, c + call Func_1ce1 + jr asm_cf16 + +Func_cf12: ; cf12 (3:4f12) + ld a, c + call $1d1d + +asm_cf16 + or a + jr nz, asm_cf1f + +asm_cf19 + call Func_ccb9 + jp Func_cc68 + +asm_cf1f + call Func_ccb3 + call Func_cc9a + jr z, asm_cf2a + jp Func_cc8b + +asm_cf2a + jp Func_cc68 + +Func_cf2d: ; cf2d (3:4f2d) + push bc + call Func_cc60 + pop bc + call Func_1caa + ld a, h + cp b + jr nz, .asm_cf3b + ld a, l + cp c + +.asm_cf3b + jr nc, asm_cf1f + jr asm_cf19 + +Func_cf3f: ; cf3f (3:4f3f) + ld a, c + or a + jr nz, .asm_cf46 + ld a, [$d697] + +.asm_cf46 + call AddCardToCollection + jp Func_cc64 + +Func_cf4c: ; cf4c (3:4f4c) + ld a, c + call Func_1d91 + jp Func_cc64 + +Func_cf53: ; cf53 (3:4f53) + ld c, $1 + ld b, $0 +.asm_cf57 + ld a, c + call Func_1d1d + add b + ld b, a + inc c + ld a, c + cp $8 + jr c, .asm_cf57 + ld a, b + or a + jr nz, Func_cf6d +Func_cf67: ; cf67 (3:4f67) + call Func_ccb9 + jp Func_cc78 + +Func_cf6d: ; cf6d (3:4f6d) + call Func_ccb3 + call Func_cc96 + jr z, .asm_cf78 + jp Func_cc8b + +.asm_cf78 + jp Func_cc78 + +Func_cf7b: ; cf7b (3:4f7b) + ld c, $1 +.asm_cf7d + push bc + ld a, c + call Func_1d1d + jr c, .asm_cf8c + ld b, a +.asm_cf85 + ld a, c + call Func_1d91 + dec b + jr nz, .asm_cf85 + +.asm_cf8c + pop bc + inc c + ld a, c + cp $8 + jr c, .asm_cf7d + jp Func_cc60 + +; This function doesn't look like a valid function, but it's pointed to in the table. +Func_cf96: ; cf96 (3:4f96) + ld c, $0 + call Func_ca69 + ld de, $28b7 + ld hl, $08fe + jr c, .asm_cfa4 + inc c + +.asm_cfa4 + call Func_ca69 + rla + cp $8 + jr c, .asm_cfad + inc c + +.asm_cfad + call Func_ca69 +.asm_cfb0 + jr nz, .asm_cfb0 + ld [$0138], sp + inc c + ld a, c + rlca + add $3 + call Func_cca0 + jp Func_cc8b + +Func_cfc0: ; cfc0 (3:4fc0) + call Func_cc96 + jp Func_cc8b + +Func_cfc6: ; cfc6 (3:4fc6) + ld a, [wd3b6] + ld [wd3aa], a + ld a, c + farcall Func_1c52e + jp Func_cc64 + +Func_cfd4: ; cfd4 (3:4fd4) + call Func_ca69 + dec l + ld b, a +.asm_cfd9 + ld a, $5 + call Random + ld e, $1 + ld c, a + push bc + or a + jr z, .asm_cfea +.asm_cfe5 + sla e + dec c + jr nz, .asm_cfe5 + +.asm_cfea + ld a, e + and b + pop bc + jr nz, .asm_cfd9 + ld a, e + or b + push bc + ld c, a + call Func_ca8f + dec l + pop bc + ld b, $0 + ld hl, $5006 + add hl, bc + ld c, [hl] + call Func_ca8f + dec hl + jp Func_cc60 + +INCBIN "baserom.gbc",$d006,$d00b - $d006 + +Func_d00b: ; d00b (3:500b) + sla c + ld b, $0 + ld hl, wce3f + add hl, bc + push hl + call Func_ca69 + dec hl + ld e, a + ld d, $0 + call Func_2f45 + pop hl + ld [hl], e + inc hl + ld [hl], d + jp Func_cc64 + +Func_d025: ; d025 (3:5025) + call Func_ca69 + dec hl + call Func_1ce1 + jp c, Func_cf67 + jp Func_cf6d + +Func_d032: ; d032 (3:5032) + call Func_ca69 + dec hl + call $1d1d + jp c, Func_cf67 + jp Func_cf6d + +Func_d03f: ; d03f (3:503f) + call Func_ca69 + dec hl + call Func_1d91 + jp Func_cc60 + +Func_d049: ; d049 (3:5049) + call Func_cc96 + jp Func_cc8b + +Func_d04f: ; d04f (3:504f) + call Func_cad8 + jp Func_cc60 + +Func_d055: ; d055 (3:5055) + ld a, c + call Func_c5ce + jp Func_cc64 + +; this is called when the player is moving forward in the intro sequence +Func_d05c: ; 505c (3:505c) + ld a, c + ld [$d339], a + ld a, b + ld [$d33a], a + call Func_c607 +.asm_d067 + call DoFrameIfLCDEnabled + call Func_c491 + call Func_c53d + ld a, [wd335] + and $03 + jr nz, .asm_d067 + call DoFrameIfLCDEnabled + call Func_c491 + jp Func_cc78 + +Func_d080: ; d080 (3:5080) + ld a, c + farcall Func_11893 + jp Func_cc64 + +Func_d088: ; d088 (3:5088) + ld a, c + ld [wd3ab], a + call Func_cc9a + call Func_c926 + jp Func_cc68 + +Func_d095: ; d095 (3:5095) + ld a, [wd3b6] + ld [wd3aa], a + push bc + call Func_cc9e + ld a, [wd3b6] + ld l, $5 + call Func_39ad + res 4, [hl] + ld a, [hl] + or c + ld [hl], a + pop bc + ld e, c + ld a, [wConsole] + cp $2 + jr nz, .asm_d0b6 + ld e, b + +.asm_d0b6 + ld a, e + farcall Func_1c57b + jp Func_cc68 + +Func_d0be: ; d0be (3:50be) + ld a, [wd3b6] + ld [wd3aa], a + ld a, c + ld c, b + ld b, a + farcall Func_1c461 + jp Func_cc78 + +Func_d0ce: ; d0ce (3:50ce) + push bc + call DoFrameIfLCDEnabled + pop bc + dec c + jr nz, Func_d0ce + jp Func_cc64 + +Func_d0d9: ; d0d9 (3:50d9) + ld a, [wd3b6] + ld [wd3aa], a + ld d, c + ld e, b + farcall Func_1c477 + ld a, e + cp c + jp nz, Func_d48a + ld a, d + cp b + jp nz, Func_d48a + jp Func_d490 + +Func_d0f2: ; d0f2 (3:50f2) + ld a, [wPlayerXCoord] + cp c + jp nz, Func_d48a + ld a, [wPlayerYCoord] + cp b + jp nz, Func_d48a + jp Func_d490 + +Func_d103: ; d103 (3:5103) + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, c + ld [wd3ab], a + call Func_39c3 + jr c, .asm_d119 + call $54d1 + jr .asm_d11c + +.asm_d119 + call $54e6 + +.asm_d11c + pop af + ld [wd3ab], a + pop af + ld [wd3aa], a + ret + +Func_d125: ; d125 (3:5125) + ld a, c + push af + call Func_c2a3 + pop af + farcall Medal_1029e + call Func_c2d4 + jp Func_cc64 + +Func_d135: ; d135 (3:5135) + sla c + ld b, $0 + ld hl, wce3f + add hl, bc + push hl + ld a, [wd32e] + rlca + ld c, a + ld b, $0 + ld hl, $5151 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ld [hl], e + inc hl + ld [hl], d + jp Func_cc64 + +INCBIN "baserom.gbc",$d153,$d16b - $d153 + +Func_d16b: ; d16b (3:516b) + ld hl, wd0c8 + ld e, [hl] + inc hl + ld d, [hl] + push de + sla c + ld b, $0 + ld hl, wce3f + add hl, bc + push hl + ld a, [$d696] + farcall Func_11893 + pop hl + ld a, [wd0c8] + ld [hli], a + ld a, [wd0c9] + ld [hl], a + pop de + ld hl, wd0c8 + ld [hl], e + inc hl + ld [hl], d + jp Func_cc64 + +Func_d195: ; d195 (3:5195) + ld a, [wd3ab] + push af + call Func_ca69 + ld b, l + inc a + ld c, a + call Func_ca8f + ld b, l + call Func_f580 + pop af + ld [wd3ab], a + jp Func_cc60 + +Func_d1ad: ; d1ad (3:51ad) + call MainMenu_c75a + jp Func_cc60 + +Func_d1b3: ; d1b3 (3:51b3) + call Func_ca69 + ld b, h + dec a + cp $2 + jr c, .asm_d1c3 + ld a, $d + call Random + add $2 + +.asm_d1c3 + ld hl, $51dc +asm_d1c6 + ld e, a + add a + add e + ld e, a + ld d, $0 + add hl, de + ld a, [hli] + ld [$d697], a + ld a, [hli] + ld [wce3f], a + ld a, [hl] + ld [wce40], a + jp Func_cc60 + +INCBIN "baserom.gbc",$d1dc,$d209 - $d1dc + +Func_d209: ; d209 (3:5209) + call Func_ca69 + ld [hl], c + ld e, a +.asm_d20e + call UpdateRNGSources + ld d, $8 + and $3 + ld c, a + ld b, a +.asm_d217 + jr z, .asm_d21e + srl d + dec b + jr .asm_d217 + +.asm_d21e + ld a, d + and e + jr nz, .asm_d20e + push bc + ld b, $0 + ld hl, $5240 + add hl, bc + ld a, [hl] + call Func_cac5 + pop bc + ld hl, $5234 + ld a, c + jr asm_d1c6 + +INCBIN "baserom.gbc",$d234,$d244 - $d234 + +Func_d244: ; d244 (3:5244) + ld a, c + farcall Func_80ba4 + jp Func_cc64 + +Func_d24c: ; d24c (3:524c) + ld hl, $525e + xor a + call Func_d28c + ld a, [$d695] + ld c, a + call Func_ca8f + halt + jp Func_cc60 + +INCBIN "baserom.gbc",$d25e,$d271 - $d25e + +Func_d271: ; d271 (3:5271) + ld hl, $527b + xor a + call Func_d28c + jp Func_cc60 +; 0xd27b + +INCBIN "baserom.gbc",$d27b,$d28c - $d27b + +Func_d28c: ; d28c (3:528c) + ld [$d416], a + push hl + call Func_c241 + call Func_c915 + call DoFrameIfLCDEnabled + pop hl + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + push hl + ld h, [hl] + ld l, a + or h + jr z, .asm_d2a8 + call Func_c8ba + +.asm_d2a8 + ld a, $1 + call Func_c29b + pop hl + inc hl + ld a, [hli] + push hl + ld h, [hl] + ld l, a + ld a, [$d416] + farcall Func_111e9 + pop hl + inc hl + ld a, [hli] + ld [$d417], a + push hl + +.asm_d2c1 + call DoFrameIfLCDEnabled + call MenuCursorAcceptInput + jr nc, .asm_d2c1 + ld a, [hCurrentMenuItem] + cp e + jr z, .asm_d2d9 + ld a, [$d417] + or a + jr z, .asm_d2c1 + ld e, a + ld [hCurrentMenuItem], a + +.asm_d2d9 + pop hl + ld a, [hli] + push hl + ld h, [hl] + ld l, a + ld a, e + ld [hl], a + add a + ld c, a + ld b, $0 + pop hl + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + or h + jr z, .asm_d2f5 + add hl, bc + ld a, [hli] + ld [wce3f], a + ld a, [hl] + ld [wce40], a + +.asm_d2f5 + ret + +Func_d2f6: ; d2f6 (3:52f6) + ld hl, $530c + xor a + call Func_d28c + ld a, [$d694] + ld c, a + call Func_ca8f + ld [hl], l + xor a + ld [$d694], a + jp Func_cc60 +; 0xd30c + +INCBIN "baserom.gbc",$d30c,$d317 - $d30c + +Func_d317: ; d317 (3:5317) + ld hl, $532b + ld a, [$d694] + call Func_d28c + ld a, [$d694] + ld c, a + call Func_ca8f + ld [hl], l + jp Func_cc60 + + +INCBIN "baserom.gbc",$d32b,$d336 - $d32b DeckMachine_d336: ; d336 (3:5336) push bc @@ -1405,17 +2633,299 @@ DeckMachine_d336: ; d336 (3:5336) jr z, .asm_d360 dec a ld [wd0a9], a - farcallx $2, $7a04 + farcall Func_ba04 jr .asm_d364 .asm_d360 - farcallx $2, $719d + farcall Func_b19d .asm_d364 call Func_37a0 - call $42d4 - jp $4c64 -; 0xd36d + call Func_c2d4 + jp Func_cc64 + +Func_d36d: ; d36d (3:536d) + ld a, [wd413] + ld l, a + ld a, [wd414] + ld h, a + inc hl + ld a, [hli] + ld a, [hli] + ld [wd0bb], a + ld a, [hli] + ld [wd0bc], a + ld a, [hli] + ld [wd0bd], a + ld a, [hli] + ld [wd0be], a + ld hl, wd0b4 + set 4, [hl] + jp Func_cc70 + +Func_d38f: ; d38f (3:538f) + farcall Func_10c96 + jp Func_cc64 + +Func_d396: ; d396 (3:5396) + farcall Func_1157c + jp Func_cc64 + +Func_d39d: ; d39d (3:539d) + ld a, c + or a + jr nz, .asm_d3ac + farcall Func_10dba + ld c, a + call Func_ca8f + ld [hl], d + jr .asm_d3b6 + +.asm_d3ac + ld a, $3 + ld [wd0b5], a + ld hl, wd0b4 + set 6, [hl] + +.asm_d3b6 + jp Func_cc64 + +Func_d3b9: ; d3b9 (3:53b9) + call Func_3917 + ld a, $4 + ld [wd0b5], a + ld hl, wd0b4 + set 6, [hl] + jp Func_cc60 + +Func_d3c9: ; d3c9 (3:53c9) + ld a, c + farcall Func_10a70 + jp Func_cc64 + +Func_d3d1: ; d3d1 (3:53d1) + jp Func_cc60 + +Func_d3d4: ; d3d4 (3:53d4) + ld a, [$d693] + bank1call Func_7576 + jp Func_cc60 + +INCBIN "baserom.gbc",$d3dd,$d3e0 - $d3dd + +Func_d3e0: ; d3e0 (3:53e0) + ld a, $1 + ld [wd32e], a + farcall Func_11024 +.asm_d3e9 + call DoFrameIfLCDEnabled + farcall Func_11060 + ld a, [wd33e] + cp $2 + jr nz, .asm_d3e9 + farcall Func_10f2e + jp Func_cc60 + +Func_d3fe: ; d3fe (3:53fe) + ld a, c + ld [wd112], a + call PlaySong + jp Func_cc64 + +Func_d408: ; d408 (3:5408) + ld a, c + ld [wd111], a + jp Func_cc64 + +Func_d40f: ; d40f (3:540f) + ld a, c + call Func_3c83 + jp Func_cc64 + +Func_d416: ; d416 (3:5416) + ld a, c + call Func_3796 + jp Func_cc64 + +Func_d41d: ; d41d (3:541d) + call Func_39fc + jp Func_cc60 + +Func_d423: ; d423 (3:5423) + call Func_379b + jp Func_cc60 + +Func_d429: ; d429 (3:5429) + call Func_37a0 + jp Func_cc60 + +Func_d42f: ; d42f (3:542f) + call Func_3c96 + jp Func_cc60 + +Func_d435: ; d435 (3:5435) + ld a, c + farcall Func_1c83d + jp Func_cc64 + +Func_d43d: ; d43d (3:543d) + ld a, $6 + ld [wd0b5], a + ld hl, wd0b4 + set 6, [hl] + jp Func_cc60 + +Func_d44a: ; d44a (3:544a) + ld a, c + ld c, b + call Func_ca92 + jp Func_cc78 + +Func_d452: ; d452 (3:5452) + ld a, c + push af + call Func_ca6c + inc a + ld c, a + pop af + call Func_ca92 + jp Func_cc64 + +Func_d460: ; d460 (3:5460) + ld a, c + call Func_ca6c + or a + jr z, asm_d46d +asm_d467 + call Func_ccb9 + jp Func_cc68 + +asm_d46d + call Func_ccb3 + call Func_cc9a + jr z, .asm_d478 + jp Func_cc8b + +.asm_d478 + jp Func_cc68 + +Func_d47b: ; d47b (3:547b) + ld a, c + call Func_ca6c + or a + jr nz, asm_d46d + jr asm_d467 + +Func_d484: ; d484 (3:5484) + call Func_d4b6 + cp c + jr z, Func_d490 + +Func_d48a: ; d48a (3:548a) + call Func_ccb9 + jp Func_cc6c + +Func_d490: ; d490 (3:5490) + call Func_ccb3 + call Func_cc9e + jr z, .asm_d49b + jp Func_cc8b + +.asm_d49b + jp Func_cc6c + +Func_d49e: ; d49e (3:549e) + call Func_d4b6 + cp c + jr nz, Func_d490 + jr Func_d48a + +Func_d4a6: ; d4a6 (3:54a6) + call Func_d4b6 + cp c + jr nc, Func_d490 + jr Func_d48a + +Func_d4ae: ; d4ae (3:54ae) + call Func_d4b6 + cp c + jr c, Func_d490 ; 0xd4b2 $dc + jr Func_d48a ; 0xd4b4 $d4 + +Func_d4b6: ; d4b6 (3:54b6) + ld a, c + ld c, b + call Func_ca6c + ret + +Func_d4bc: ; d4bc (3:54bc) + ld a, c + call Func_cac5 + jp Func_cc64 + +Func_d4c3: ; d4c3 (3:54c3) + ld a, c + call Func_cad0 + jp Func_cc64 + +Func_d4ca: ; d4ca (3:54ca) + ld a, c + call Func_ca6c + or a + jr z, asm_d4e6 +Func_d4d1: + call Func_ccb3 + call Func_cc9a + jr z, .asm_d4dc + jp Func_cc8b +.asm_d4dc + jp Func_cc68 + +Func_d4df: + ld a, c + call Func_ca6c + or a + jr z, Func_d4d1 +asm_d4e6 + call Func_ccb9 + jp Func_cc68 +; 0xd4ec + +INCBIN "baserom.gbc",$d4ec,$f580 - $d4ec + +Func_f580: ; f580 (3:7580) + call Func_ca69 + ld b, h + cp $3 + jr z, .asm_f596 + call Func_ca69 + ld b, l + cp $3 + ld d, $18 + jr nz, .asm_f598 + ld a, $2 + jr .asm_f5ac + +.asm_f596 + ld d, $19 + +.asm_f598 + ld a, d + call Random + ld c, a + call $75cc + jr c, .asm_f598 + call $75d4 + ld b, $0 + ld hl, $75b3 + add hl, bc + ld a, [hl] + +.asm_f5ac + ld [wd3ab], a + ld [$d696], a + ret +; 0xf5b3 -INCBIN "baserom.gbc",$d36d,$fc2b - $d36d +INCBIN "baserom.gbc",$f5b3,$fc2b - $f5b3 Func_fc2b: ; fc2b (3:7c2b) ld a, [wd0c3] diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 36aa471..84313f5 100755 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -1,4 +1,45 @@ -INCBIN "baserom.gbc",$10000,$10059 - $10000 +Func_10000: ; 10000 (4:4000) + ld a, $0 + ld [wTileMapFill], a + call Func_04a2 + call Func_2119 + ld de, $307f + call Func_2275 + call Set_OBJ_8x8 + xor a + ld [$ff92], a + ld [$ff93], a + ld a, [wLCDC] + bit 7, a + jr nz, .asm_10025 + xor a + ld [rSCX], a + ld [rSCY], a + +.asm_10025 + call Func_1288c + call Func_099c + ld a, $1 + ld [wVBlankOAMCopyToggle], a + ret + +Func_10031: ; 10031 (4:4031) + ld a, [$ff81] + push af + ld a, $1 + call BankswitchRAM + call $4cbb + call DisableExtRAM + call $4b28 + call Func_0404 + call EnableLCD + call DoFrameIfLCDEnabled + call $4cea + call Func_0404 + pop af + call BankswitchRAM + call DisableExtRAM + ret Func_10059: ; 10059 (4:4059) INCBIN "baserom.gbc",$10059,$100a2 - $10059 @@ -196,7 +237,44 @@ Func_10548: ; 10548 (4:4548) INCBIN "baserom.gbc",$10548,$10756 - $10548 Func_10756: ; 10756 (4:4756) -INCBIN "baserom.gbc",$10756,$10a9b - $10756 +INCBIN "baserom.gbc",$10756,$10a70 - $10756 + +Func_10a70: ; 10a70 (4:4a70) + push hl + push bc + push de + ld b, a + ld c, $f + ld hl, wPCPacks +.asm_10a79 + ld a, [hli] + and $7f + cp b + jr z, .asm_10a97 + dec c + jr nz, .asm_10a79 + ld c, $f + ld hl, wPCPacks +.asm_10a87 + ld a, [hl] + and $7f + jr z, .asm_10a93 + inc hl + dec c + jr nz, .asm_10a87 + rst $38 + jr .asm_10a97 + +.asm_10a93 + ld a, b + or $80 + ld [hl], a + +.asm_10a97 + pop de + pop bc + pop hl + ret Func_10a9b: ; 10a9b (4:4a9b) INCBIN "baserom.gbc",$10a9b,$10ab4 - $10a9b @@ -205,7 +283,62 @@ Func_10ab4: ; 10ab4 (4:4ab4) INCBIN "baserom.gbc",$10ab4,$10af9 - $10ab4 Func_10af9: ; 10af9 (4:4af9) -INCBIN "baserom.gbc",$10af9,$10e28 - $10af9 +INCBIN "baserom.gbc",$10af9,$10c96 - $10af9 + +Func_10c96: ; 10c96 (4:4c96) + ld a, [$ff81] + push af + push bc + ld a, $1 + call BankswitchRAM + call $4cbb + call Func_10ab4 + pop bc + ld a, c + or a + jr nz, .asm_10cb0 + call $4cea + call Func_10af9 + +.asm_10cb0 + call EnableLCD + pop af + call BankswitchRAM + call DisableExtRAM + ret +; 0x10cbb + +INCBIN "baserom.gbc",$10cbb,$10dba - $10cbb + +Func_10dba: ; 10dba (4:4dba) + ld a, $1 + farcall Func_c29b + ld a, [wd0ba] + ld hl, $4e17 + farcall Func_111e9 +.asm_10dca + call DoFrameIfLCDEnabled + call MenuCursorAcceptInput + jr nc, .asm_10dca + ld a, e + ld [wd0ba], a + ld a, [$ffb1] + cp e + jr z, .asm_10ddd + ld a, $4 + +.asm_10ddd + ld [wd10e], a + push af + ld hl, $4df0 + call JumpToFunctionInTable + farcall Func_c135 + call DoFrameIfLCDEnabled + pop af + ret +; 0x10df0 + +INCBIN "baserom.gbc",$10df0,$10e28 - $10df0 Func_10e28: ; 10e28 (4:4e28) INCBIN "baserom.gbc",$10e28,$10e55 - $10e28 @@ -671,17 +804,272 @@ Func_11416: ; 11416 (4:5416) INCBIN "baserom.gbc",$11416,$11430 - $11416 Func_11430: ; 11430 (4:5430) -INCBIN "baserom.gbc",$11430,$1162a - $11430 +INCBIN "baserom.gbc",$11430,$1157c - $11430 + +Func_1157c: ; 1157c (4:557c) + ld a, c + or a + jr nz, .asm_11586 + farcall Func_c228 + jr .asm_1159f + +.asm_11586 + ld a, $2 + ld [wd0bc], a + ld a, $4 + ld [wd0bd], a + ld a, $2 + ld [wd0be], a + ld a, $1 + ld [wd0bb], a + ld a, $1 + ld [wd32e], a + +.asm_1159f + call $5238 + ret +; 0x115a3 + + +INCBIN "baserom.gbc",$115a3,$1162a - $115a3 INCLUDE "data/map_scripts.asm" -INCBIN "baserom.gbc",$1184a,$11857 - $1184a +; loads a pointer into hl found on PointerTable_118f5 +Func_1184a: ; 1184a (4:584a) + ; this may have been a macro + rlca + add (PointerTable_118f5 & $ff) + ld l, a + ld a, PointerTable_118f5 >> 8 + adc $00 + ld h, a + ld a, [hli] + ld h, [hl] + ld l, a + ret Func_11857: ; 11857 (4:5857) -INCBIN "baserom.gbc",$11857,$1217b - $11857 + push hl + push bc + call Func_1184a + ld a, [hli] + ld [wd3ab], a + ld a, [hli] + ld [$d3b3], a + ld a, [hli] + ld [wd3b1], a + ld a, [hli] + push af + ld a, [hli] + ld [wd3b2], a + pop bc + ld a, [wConsole] + cp $2 + jr nz, .asm_1187a + ld a, b + ld [wd3b1], a +.asm_1187a + pop bc + pop hl + ret + +; this appears to find data about the NPC we're talking to +Func_1187d: ; 1187d (4:587d) + push hl + call Func_1184a + ld bc, $5 + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + inc hl + ld a, [hli] + ld [wd0c8], a + ld a, [hli] + ld [wd0c9], a + pop hl + ret + +Func_11893: ; 11893 (4:5893) + push hl + push bc + call Func_1184a + ld bc, $0007 + add hl, bc + ld a, [hli] + ld [wd0c8], a + ld a, [hli] + ld [wd0c9], a + pop bc + pop hl + ret + +Func_118a7: ; 118a7 (4:58a7) + push hl + push bc + call Func_1184a + ld bc, $0007 + add hl, bc + ld a, [hli] + ld [wcc16], a + ld a, [hli] + ld [wcc17], a + ld a, [hli] + ld [wcc15], a + pop bc + pop hl + ret + +Func_118bf: ; 118bf (4:58bf) + push hl + push bc + call Func_1184a + ld bc, $000a + add hl, bc + ld a, [hli] + ld [wcc19], a + ld a, [hli] + ld [wDuelTheme], a + pop bc + pop hl + ret + +Func_118d3: ; 118d3 (4:58d3) + push hl + push bc + push af + call Func_1184a + ld bc, $000c + add hl, bc + ld a, [hli] + ld [wMatchStartTheme], a + pop af + cp $2 + jr nz, .asm_118f2 + ld a, [wCurMap] + cp $20 + jr nz, .asm_118f2 + ld a, $17 + ld [wMatchStartTheme], a + +.asm_118f2 + pop bc + pop hl + ret -Unknown_1217b: ; 1217b (4:617b) -INCBIN "baserom.gbc",$1217b,$1229f - $1217b +INCLUDE "data/unknownNPCData.asm" + +INCBIN "baserom.gbc",$11f4e,$1217b - $11f4e + + +PointerTable_1217b: ; 1217b (4:617b) + dw Func_ccbe + dw Func_ccc6 + dw Func_ccd4 ; Seems to begin dialogue with NPCs + dw Func_ccdc + dw Func_cce9 ; opens the "start battle?" box + dw Func_cd01 ; seems to start a battle. + dw Func_cd83 + dw Func_cda8 + dw Func_cdb9 + dw Func_cdcb + dw Func_ce26 + dw Func_ce84 + dw Func_ce8a ; Called after player wins a battle. Handles Booster Packs. + dw Func_cf0c + dw Func_cf12 + dw Func_cf3f + dw Func_cf4c + dw Func_cf53 + dw Func_cf7b + dw Func_cf2d + dw Func_cf96 + dw Func_cfc6 + dw Func_cfd4 + dw Func_d00b + dw Func_d025 + dw Func_d032 + dw Func_d03f + dw Func_d049 + dw Func_d04f + dw Func_d055 + dw Func_d05c + dw Func_cee2 + dw Func_d080 + dw Func_d088 + dw Func_d095 + dw Func_d0be + dw Func_d0ce + dw Func_d0d9 + dw Func_d0f2 + dw Func_ce4a + dw Func_ceba + dw Func_d103 + dw Func_d125 + dw Func_d135 + dw Func_d16b + dw Func_cd4f + dw Func_cd94 + dw Func_ce52 + dw Func_cdd8 + dw Func_cdf5 + dw Func_d195 + dw Func_d1ad + dw Func_d1b3 + dw Func_cccc ; Ends dialoge. Seems to do it after player answers the "start fight?" question. + dw Func_d244 + dw Func_d24c + dw DeckMachine_d336 + dw Func_d271 + dw Func_d36d + dw Func_ce6f + dw Func_d209 + dw Func_d38f + dw Func_d396 + dw Func_cd76 + dw Func_d39d + dw Func_d3b9 + dw Func_d3c9 + dw Func_d3d1 + dw Func_d3d4 + dw Func_d3e0 + dw Func_d3fe + dw Func_d408 + dw Func_d40f + dw Func_d416 + dw Func_d423 + dw Func_d429 + dw Func_d41d + dw Func_d42f + dw Func_d435 + dw Func_cce4 + dw Func_d2f6 + dw Func_d317 + dw Func_d43d + dw Func_ccbe + dw Func_ccbe + dw Func_ccbe + dw Func_ccbe + dw Func_ccbe + dw Func_d44a + dw Func_d460 + dw Func_d47b + dw Func_d484 + dw Func_d49e + dw Func_d4a6 + dw Func_d4ae + dw Func_d4bc + dw Func_d4c3 + dw Func_d4ca + dw Func_d4df ; Used by 2 lightning club members and npcs in mason's lab. Not sure why. + dw Func_d452 + dw Func_ccbe + dw Func_ccbe + dw Func_ccbe + dw Func_ccbe + +INCBIN "baserom.gbc",$1224b,$1229f - $1224b Unknown_1229f: ; 1229f (4:629f) INCBIN "baserom.gbc",$1229f,$126d1 - $1229f diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index f43258e..f246505 100755 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -91,10 +91,137 @@ Func_1c33b: ; 1c33b (7:433b) INCLUDE "data/map_songs.asm" Func_1c440: ; 1c440 (7:4440) -INCBIN "baserom.gbc",$1c440,$1c485 - $1c440 +INCBIN "baserom.gbc",$1c440,$1c455 - $1c440 + +Func_1c455: ; 1c455 (7:4455) + push hl + ld a, [wd3aa] + ld l, $4 + call Func_39ad + ld a, [hl] + pop hl + ret + +Func_1c461: ; 1c461 (7:4461) + push hl + push bc + call Func_1c719 + ld a, [wd3aa] + ld l, $2 + call Func_39ad + ld a, b + ld [hli], a + ld [hl], c + call $46e3 + pop bc + pop hl + ret + +Func_1c477: ; 1c477 (7:4477) + push hl + ld a, [wd3aa] + ld l, $2 + call Func_39ad + ld a, [hli] + ld b, a + ld c, [hl] + pop hl + ret Func_1c485: ; 1c485 (7:4485) -INCBIN "baserom.gbc",$1c485,$1c58e - $1c485 +INCBIN "baserom.gbc",$1c485,$1c50a - $1c485 + +Func_1c50a: ; 1c50a (7:450a) + push hl + call Func_1c719 + ld a, [wd3aa] + call $39a7 + ld a, [hl] + or a + jr z, .asm_1c52c + call $44fa + jr nc, .asm_1c521 + xor a + ld [wd3b8], a + +.asm_1c521 + xor a + ld [hli], a + ld a, [hl] + farcallx $4, $69fd + ld hl, $d349 + dec [hl] + +.asm_1c52c + pop hl + ret + +Func_1c52e: ; 1c52e (7:452e) + push hl + push af + ld a, [wd3aa] + ld l, $7 + call Func_39ad + pop af + ld [hl], a + call Func_1c5e9 + pop hl + ret + +Func_1c53f: ; 1c53f (7:453f) + push hl + push bc + ld a, [wd3aa] + ld l, $4 + call Func_39ad + ld a, [hl] + ld bc, $0003 + add hl, bc + ld [hl], a + push af + call Func_1c5e9 + pop af + pop bc + pop hl + ret + +Func_1c557: ; 1c557 (7:4557) + push bc + ld c, a + ld a, [wd3aa] + push af + ld a, [wd3ab] + push af + ld a, c + ld [wd3ab], a + ld c, $0 + call Func_39c3 + jr c, .asm_1c570 + call Func_1c53f + ld c, a + +.asm_1c570 + pop af + ld [wd3ab], a + pop af + ld [wd3aa], a + ld a, c + pop bc + ret + +Func_1c57b: ; 1c57b (7:457b) + push hl + push bc + push af + ld a, [wd3aa] + ld l, $6 + call Func_39ad + pop af + ld [hl], a + call Func_1c58e + pop bc + pop hl + ret Func_1c58e: ; 1c58e (7:458e) INCBIN "baserom.gbc",$1c58e,$1c5e9 - $1c58e @@ -106,16 +233,142 @@ Func_1c610: ; 1c610 (7:4610) INCBIN "baserom.gbc",$1c610,$1c6f8 - $1c610 Func_1c6f8: ; 1c6f8 (7:46f8) -INCBIN "baserom.gbc",$1c6f8,$1c72e - $1c6f8 +INCBIN "baserom.gbc",$1c6f8,$1c719 - $1c6f8 + +Func_1c719: ; 1c719 (7:4719) + push hl + push bc + ld a, [wd3aa] + ld l, $2 + call Func_39ad + ld a, [hli] + ld b, a + ld c, [hl] + ld a, $40 + call $3937 + pop bc + pop hl + ret + Func_1c72e: ; 1c72e (7:472e) INCBIN "baserom.gbc",$1c72e,$1c768 - $1c72e Func_1c768: ; 1c768 (7:4768) -INCBIN "baserom.gbc",$1c768,$1c82e - $1c768 + push hl + ld a, [wd3aa] + ld l, $04 + call Func_39ad + ld a, [wd334] + xor $02 + ld [hl], a + call Func_1c58e + ld a, $02 + farcall Func_c29b + ld a, [wd3aa] + call $39a7 + ld a, [hl] + farcall Func_1187d + pop hl + ret + +Func_1c78d: ; 1c78d (7:478d) + push hl + ld a, [wd3aa] + ld l, $5 + call Func_39ad + set 5, [hl] + ld a, [wd3aa] + ld l, $8 + call Func_39ad + xor a + ld [hli], a +.asm_1c7a2 + ld [hl], c + inc hl + ld [hl], b + dec hl + call $39ea + cp $f0 + jr nc, .asm_1c7bb + push af + and $7f + call $45ff + pop af + bit 7, a + jr z, .asm_1c7dc + inc bc + jr .asm_1c7a2 + +.asm_1c7bb + cp $ff + jr z, .asm_1c7d2 + inc bc + call $39ea + push hl + ld l, a + ld h, $0 + bit 7, l + jr z, .asm_1c7cc + dec h + +.asm_1c7cc + add hl, bc + ld c, l + ld b, h + pop hl + jr .asm_1c7a2 + +.asm_1c7d2 + ld a, [wd3aa] + ld l, $5 + call Func_39ad + res 5, [hl] + +.asm_1c7dc + pop hl + ret + +Func_1c7de: ; 1c7de (7:47de) + ld a, [$d3b7] + and $20 + ret +; 0x1c7e4 + +INCBIN "baserom.gbc",$1c7e4,$1c82e - $1c7e4 Func_1c82e: ; 1c82e (7:482e) -INCBIN "baserom.gbc",$1c82e,$1d078 - $1c82e +INCBIN "baserom.gbc",$1c82e,$1c83d - $1c82e + +Func_1c83d: ; 1c83d (7:483d) + push hl + push bc + ld b, a + ld c, $a + ld hl, $d3bb +.asm_1c845 + ld a, [hl] + or a + jr z, .asm_1c853 + cp b + jr z, .asm_1c855 + inc hl + dec c + jr nz, .asm_1c845 + rst $38 + jr .asm_1c855 + +.asm_1c853 + ld a, b + ld [hl], a + +.asm_1c855 + pop bc + pop hl + ret +; 0x1c858 + +INCBIN "baserom.gbc",$1c858,$1d078 - $1c858 Func_1d078: ; 1d078 (7:5078) ld a, [wd627] diff --git a/src/engine/home.asm b/src/engine/home.asm index 15368bd..49b7dc0 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -219,6 +219,7 @@ WaitForVBlank: ; 0264 (0:0264) ld a, [hl] .asm_270 halt + nop cp [hl] jr z, .asm_270 .asm_275 @@ -3237,9 +3238,112 @@ PrintOpponentName: ; 1c8e (0:1c8e) .printPlayer2 text_hl Player2 jp PrintTextBoxBorderLabel -; 0x1caa -INCBIN "baserom.gbc",$1caa,$1d2e - $1caa +Func_1caa: ; 1caa (0:1caa) + push de + push bc + call EnableExtRAM + ld hl, $0000 + ld de, sDeck1Cards + ld c, $4 +.asm_1cb7 + ld a, [de] + or a + jr z, .asm_1cc1 + ld a, c + ld bc, $003c + add hl, bc + ld c, a + +.asm_1cc1 + ld a, $54 + add e + ld e, a + ld a, $0 + adc d + ld d, a + dec c + jr nz, .asm_1cb7 + ld de, sCardCollection +.asm_1ccf + ld a, [de] + bit 7, a + jr nz, .asm_1cd8 + ld c, a + ld b, $0 + add hl, bc + +.asm_1cd8 + inc e + jr nz, .asm_1ccf + call DisableExtRAM + pop bc + pop de + ret + +Func_1ce1: ; 1ce1 (0:1ce1) + push hl + push de + push bc + call EnableExtRAM + ld c, a + ld b, $0 + ld hl, sDeck1Cards + ld d, $4 +.asm_1cef + ld a, [hl] + or a + jr z, .asm_1cff + push hl + ld e, $3c +.asm_1cf6 + ld a, [hli] + cp c + jr nz, .asm_1cfb + inc b + +.asm_1cfb + dec e + jr nz, .asm_1cf6 + pop hl + +.asm_1cff + push de + ld de, $0054 + add hl, de + pop de + dec d + jr nz, .asm_1cef + ld h, $a1 + ld l, c + ld a, [hl] + bit 7, a + jr nz, .asm_1d11 + add b + +.asm_1d11 + and $7f + call DisableExtRAM + pop bc + pop de + pop hl + or a + ret nz + scf + ret + +Func_1d1d: ; 1d1d (0:1d1d) + push hl + call EnableExtRAM + ld h, $a1 + ld l, a + ld a, [hl] + call DisableExtRAM + pop hl + and $7f + ret nz + scf + ret ;creates a list at $c000 of every card the player owns and how many CreateTempCardCollection: ; 1d2e (0:1d2e) @@ -3305,7 +3409,24 @@ AddCardToCollection: ; 1d6e (0:1d6e) pop hl ret -INCBIN "baserom.gbc",$1d91,$1dca - $1d91 +Func_1d91: ; 1d91 (0:1d91) + push hl + call EnableExtRAM + ld h, $a1 + ld l, a + ld a, [hl] + and $7f + jr z, .asm_1d9f + dec a + ld [hl], a + +.asm_1d9f + call DisableExtRAM + pop hl + ret +; 0x1da4 + +INCBIN "baserom.gbc",$1da4,$1dca - $1da4 ; memcpy(HL, DE, C) Memcpy: ; 1dca (0:1dca) @@ -5391,9 +5512,24 @@ Func_2f32: ; 2f32 (0:2f32) .asm_2f43 pop hl ret -; 0x2f45 -INCBIN "baserom.gbc",$2f45,$2f5d - $2f45 +Func_2f45: ; 2f45 (0:2f45) + push hl + call GetCardPointer + jr c, .asm_2f5b + ld a, $c + call BankpushHome2 + ld de, $0003 + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + call BankpopHome + or a + +.asm_2f5b + pop hl + ret ; from the card id in a, loads type into a, rarity into b, and set into c GetCardHeader: ; 2f5d (0:2f5d) @@ -6730,9 +6866,14 @@ Credits_3911: ; 3911 (0:3911) farcall Credits_1d6ad or a ret -; 0x3917 -INCBIN "baserom.gbc",$3917,$3927 - $3917 +Func_3917: ; 3917 (0:3917) + ld a, $22 + farcall Func_ca6c + call EnableExtRAM + ld [$a00a], a + call DisableExtRAM + ret Func_3927: ; 3927 (0:3927) push hl @@ -6787,9 +6928,11 @@ Func_3997: ; 3997 (0:3997) pop af call BankswitchHome ret -; 0x39a7 -INCBIN "baserom.gbc",$39a7,$39ad - $39a7 +Func_39a7: ; 39a7 (0:39a7) + ld l, $0 + call Func_39ad + ret Func_39ad: ; 39ad (0:39ad) push bc @@ -6991,6 +7134,7 @@ Func_3abd: ; 3abd (0:3abd) INCBIN "baserom.gbc",$3ae8,$3aed - $3ae8 +; finds a pointer on a table (in bank 4) using the data after rst20 is called and jumps to it (in bank 3) Func_3aed: ; 3aed (0:3aed) ld hl, $d413 ld a, [hli] @@ -7004,11 +7148,11 @@ Func_3aed: ; 3aed (0:3aed) rlca ld c, a ld b, $0 - ld hl, Unknown_1217b + ld hl, PointerTable_1217b add hl, bc ldh a, [hBankROM] push af - ld a, BANK(Unknown_1217b) + ld a, BANK(PointerTable_1217b) call BankswitchHome ld a, [hli] ld h, [hl] @@ -7193,9 +7337,13 @@ DivideBCbyDE: ; 3c5a (0:3c5a) dec a jr nz, .asm_3c63 ret -; 0x3c83 -INCBIN "baserom.gbc",$3c83,$3c96 - $3c83 +Func_3c83: ; 3c83 (0:3c83) + call PlaySong + ret +; 0x3c87 + +INCBIN "baserom.gbc",$3c87,$3c96 - $3c87 Func_3c96: ; 3c96 (0:3c96) call DoFrameIfLCDEnabled |