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 | 
