summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-26 22:13:13 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-26 22:13:13 -0400
commit28198e6633595de426b1051a572f1f32a24f6f5b (patch)
tree0a9aea130de430ca16ceaeb9bbd1a0a72acbe023 /engine
parent73130c2d075a16559f14ce49fe0b657c67c440a7 (diff)
Disassemble some labelled functions
Diffstat (limited to 'engine')
-rwxr-xr-xengine/bank1.asm5
-rwxr-xr-xengine/bank2.asm763
-rwxr-xr-xengine/bank3.asm60
-rwxr-xr-xengine/bank4.asm5
-rwxr-xr-xengine/bank6.asm5
-rwxr-xr-xengine/home.asm219
6 files changed, 1036 insertions, 21 deletions
diff --git a/engine/bank1.asm b/engine/bank1.asm
index 1f9b459..9241b44 100755
--- a/engine/bank1.asm
+++ b/engine/bank1.asm
@@ -45,7 +45,10 @@ Func_406f: ; 406f (1:406f)
INCBIN "baserom.gbc",$406f,$409f - $406f
Func_409f: ; 409f (1:409f)
-INCBIN "baserom.gbc",$409f,$6785 - $409f
+INCBIN "baserom.gbc",$409f,$5aeb - $409f
+
+Func_5aeb: ; 5aeb (1:5aeb)
+INCBIN "baserom.gbc",$5aeb,$6785 - $5aeb
Func_6785: ; 6785 (1:6785)
INCBIN "baserom.gbc",$6785,$7571 - $6785
diff --git a/engine/bank2.asm b/engine/bank2.asm
index b849aa9..b8adb02 100755
--- a/engine/bank2.asm
+++ b/engine/bank2.asm
@@ -1,4 +1,23 @@
-INCBIN "baserom.gbc",$8000,$8cf9 - $8000
+INCBIN "baserom.gbc",$8000,$8cd4 - $8000
+
+Func_8cd4: ; 8cd4 (2:4cd4)
+ push bc
+ call Func_07b6
+ ld b, $3c
+.asm_8cda
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_8cda
+ xor a
+ ld [hl], a
+ call Func_07be
+ pop bc
+ ret
+; 0x8ce7
+
+INCBIN "baserom.gbc",$8ce7,$8cf9 - $8ce7
Func_8cf9: ; 8cf9 (2:4cf9)
call Func_07b6
@@ -11,16 +30,691 @@ Func_8cf9: ; 8cf9 (2:4cf9)
ld [hl], a
ld [$b701], a
call Func_07be
+Func_8d0b: ; 8d0b (2:4d0b)
ld hl, Unknown_8d15
ld de, $9380
call Func_92ad
ret
Unknown_8d15: ; 8d15 (2:4d15)
-INCBIN "baserom.gbc",$8d15,$8db0 - $8d15
+INCBIN "baserom.gbc",$8d15,$8d56 - $8d15
+
+Func_8d56: ; 8d56 (2:4d56)
+ xor a
+ ld [$cab6], a
+ call Func_04a2
+ call Func_099c
+ ld a, $1
+ ld [$cac0], a
+ call Func_2119
+ call Func_20b0
+ call Func_8d0b
+ bank1call Func_5aeb
+ ld de, $3cbf
+ call Func_2275
+ ret
+; 0x8d78
+
+INCBIN "baserom.gbc",$8d78,$8d9d - $8d78
+
+Func_8d9d: ; 8d9d (2:4d9d)
+ ld de, $cfd1
+ ld b, $7
+.asm_8da2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_8da2
+ ret
+
+Unknown_8da9: ; 8da9 (2:4da9)
+INCBIN "baserom.gbc",$8da9,$8db0 - $8da9
Func_8db0: ; 8db0 (2:4db0)
-INCBIN "baserom.gbc",$8db0,$92ad - $8db0
+ ld hl, Unknown_8da9
+ call Func_8d9d
+ ld a, $ff
+ call Func_9168
+ xor a
+
+Func_8dbc: ; 8dbc (2:4dbc)
+ ld hl, Unknown_8de2
+ call Func_2636
+ ld hl, $0224
+ call Func_2a59
+.asm_8dc8
+ call Func_053f
+ jr c, Func_8dbc
+ call Func_8dea
+ jr c, Func_8dbc
+ call Func_264b
+ jr nc, .asm_8dc8
+ ld a, [$ffb1]
+ cp $ff
+ ret z
+ ld [$ceb1], a
+ jp Func_8e42
+
+Unknown_8de2: ; 8de2 (2:4de2)
+INCBIN "baserom.gbc",$8de2,$8dea - $8de2
+
+Func_8dea: ; 8dea (2:4dea)
+ ld a, [$ff8f]
+ and $8
+ ret z
+ ld a, [$cd10]
+ ld [$ceb1], a
+ call Func_8ff2
+ jp nc, Func_8e05
+ ld a, $ff
+ call Func_90fb
+ call Func_8fe8
+ scf
+ ret
+
+Func_8e05: ; 8e05 (2:4e05)
+ ld a, $1
+ call Func_90fb
+ call Func_9048
+ push hl
+ call Func_9038
+ pop de
+ call Func_8e1f
+ ld a, $ff
+ call Func_9168
+ ld a, [$ceb1]
+ scf
+ ret
+
+Func_8e1f: ; 8e1f (2:4e1f)
+ push de
+ ld de, $cfb9
+ call Func_92b4
+ pop de
+ ld hl, $cf17
+ call Func_8cd4
+ ld a, $9
+ ld hl, $cebb
+ call Func_9843
+ ld a, $3c
+ ld [$cecc], a
+ ld hl, $cebb
+ ld [hl], a
+ call Func_9e41
+ ret
+
+Func_8e42: ; 8e42 (2:4e42)
+ call Func_2a9e
+ ld hl, Unknown_9027
+ call Func_2c08
+ call Func_905a
+.asm_8e4e
+ call Func_053f
+ call Func_9065
+ jp nc, .asm_8e4e
+ cp $ff
+ jr nz, .asm_8e64
+ call Func_90d8
+ ld a, [$ceb1]
+ jp Func_8dbc
+.asm_8e64
+ ld a, [$ceaf]
+ or a
+ jp nz, Func_8f8a
+ ld a, [$ceb0]
+ or a
+ jp nz, .asm_8ecf
+ call Func_9048
+ ld e, l
+ ld d, h
+ ld hl, $cf17
+ call Func_8cd4
+ ld a, $14
+ ld hl, $cfb9
+ call Func_9843
+ ld de, $cfb9
+ call Func_9038
+ call Func_92b4
+ call Func_9345
+ jr nc, .asm_8ec4
+ call Func_07b6
+ ld hl, $cf17
+ call Func_910a
+ call Func_9048
+ call Func_9152
+ ld e, l
+ ld d, h
+ ld hl, $cf17
+ ld b, $3c
+.asm_8ea9
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_8ea9
+ call Func_9038
+ ld d, h
+ ld e, l
+ ld hl, $cfb9
+ call Func_92ad
+ call Func_9038
+ ld a, [hl]
+ call Func_07be
+ or a
+ jr z, .asm_8edb
+.asm_8ec4
+ ld a, $ff
+ call Func_9168
+ ld a, [$ceb1]
+ jp Func_8dbc
+.asm_8ecf
+ call Func_8ff2
+ jp nc, .asm_8edb
+ call Func_8fe8
+ jp Func_8dbc
+.asm_8edb
+ ld a, $14
+ ld hl, $cfb9
+ call Func_9843
+ ld de, $cfb9
+ call Func_9038
+ call Func_92b4
+ call Func_8f05
+ call Func_9038
+ ld d, h
+ ld e, l
+ ld hl, $cfb9
+ call Func_92b4
+ ld a, $ff
+ call Func_9168
+ ld a, [$ceb1]
+ jp Func_8dbc
+
+Func_8f05: ; 8f05 (2:4f05)
+ ld a, [$ceb1]
+ or a
+ jr nz, .asm_8f10
+ ld hl, Unknown_a763
+ jr .asm_8f23
+.asm_8f10
+ dec a
+ jr nz, .asm_8f18
+ ld hl, Unknown_a76c
+ jr .asm_8f23
+.asm_8f18
+ dec a
+ jr nz, .asm_8f20
+ ld hl, Unknown_a775
+ jr .asm_8f23
+.asm_8f20
+ ld hl, Unknown_a77e
+.asm_8f23
+ ld a, $14
+ ld bc, $0401
+ ld de, $cfb9
+ farcall Func_1ad89
+ ld a, [$cfb9]
+ or a
+ ret nz
+ call Func_8f38
+ ret
+
+Func_8f38: ; 8f38 (2:4f38)
+ ld hl, $b701
+ call Func_07b6
+ ld a, [hli]
+ ld h, [hl]
+ call Func_07be
+ ld l, a
+ ld de, $c590
+ call Func_0663
+ ld hl, $cfb9
+ ld [hl], $6
+ inc hl
+ ld [hl], $44
+ inc hl
+ ld [hl], $65
+ inc hl
+ ld [hl], $63
+ inc hl
+ ld [hl], $6b
+ inc hl
+ ld [hl], $20
+ inc hl
+ ld de, $c592
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ld hl, $b701
+ call Func_07b6
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, $3
+ cp d
+ jr nz, .asm_8f82
+ ld a, $e7
+ cp e
+ jr nz, .asm_8f82
+ ld de, $0000
+.asm_8f82
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ call Func_07be
+ ret
+
+Func_8f8a: ; 8f8a (2:4f8a)
+ ld a, [$ceb0]
+ or a
+ jp nz, Func_9026
+ call Func_8ff2
+ jp nc, Func_8f9d
+ call Func_8fe8
+ jp Func_8dbc
+
+Func_8f9d: ; 8f9d (2:4f9d)
+ call Func_07b6
+ ld a, [$b700]
+ call Func_07be
+ ld h, $3
+ ld l, a
+ call Func_0879
+ ld e, l
+ inc e
+ ld d, $2
+ xor a
+ ld hl, $0000
+ ld bc, $0202
+ call Func_1f5f
+ ld a, [$ceb1]
+ call Func_07b6
+ ld [$b700], a
+ call Func_07be
+ call Func_9326
+ call Func_9038
+ call Func_07b6
+ call Func_9253
+ call Func_07be
+ xor a
+ ld [$ce3f], a
+ ld [$ce40], a
+ ld hl, $022a
+ call Func_2aab
+ ld a, [$ceb1]
+ jp Func_8dbc
+
+Func_8fe8: ; 8fe8 (2:4fe8)
+ ld hl, $022f
+ call Func_2aab
+ ld a, [$ceb1]
+ ret
+
+Func_8ff2: ; 8ff2 (2:4ff2)
+ ld a, [$ceb1]
+ ld hl, $ceb2
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ or a
+ ret nz
+ scf
+ ret
+; 0x9001
+
+INCBIN "baserom.gbc",$9001,$9026 - $9001
+
+Func_9026: ; 9026 (2:5026)
+ ret
+
+Unknown_9027: ; 9027 (2:5027)
+INCBIN "baserom.gbc",$9027,$9038 - $9027
+
+Func_9038: ; 9038 (2:5038)
+ ld a, [$ceb1]
+ ld h, a
+ ld l, $54
+ call Func_0879
+ push de
+ ld de, $a200
+ add hl, de
+ pop de
+ ret
+
+Func_9048: ; 9048 (2:5048)
+ push af
+ ld a, [$ceb1]
+ ld h, a
+ ld l, $54
+ call Func_0879
+ push de
+ ld de, $a218
+ add hl, de
+ pop de
+ pop af
+ ret
+
+Func_905a: ; 905a (2:505a)
+ xor a
+ ld [$ceaf], a
+ ld [$ceb0], a
+ ld [$cea3], a
+ ret
+
+Func_9065: ; 9065 (2:5065)
+ xor a
+ ld [$cfe3], a
+ ld a, [$ceaf]
+ ld d, a
+ ld a, [$ceb0]
+ ld e, a
+ ld a, [$ff8f]
+ or a
+ jr z, .asm_90a6
+ bit 5, a
+ jr nz, .asm_907e
+ bit 4, a
+ jr z, .asm_9084
+.asm_907e
+ ld a, d
+ xor $1
+ ld d, a
+ jr .asm_9090
+.asm_9084
+ bit 6, a
+ jr nz, .asm_908c
+ bit 7, a
+ jr z, .asm_90a6
+.asm_908c
+ ld a, e
+ xor $1
+ ld e, a
+.asm_9090
+ ld a, $1
+ ld [$cfe3], a
+ push de
+ call Func_90d8
+ pop de
+ ld a, d
+ ld [$ceaf], a
+ ld a, e
+ ld [$ceb0], a
+ xor a
+ ld [$cea3], a
+.asm_90a6
+ ld a, [$ff91]
+ and $3
+ jr z, .asm_90c1
+ and $1
+ jr nz, .asm_90b7
+ ld a, $ff
+ call Func_90fb
+ scf
+ ret
+.asm_90b7
+ call Func_90f7
+ ld a, $1
+ call Func_90fb
+ scf
+ ret
+.asm_90c1
+ ld a, [$cfe3]
+ or a
+ jr z, .asm_90ca
+ call Func_3796
+.asm_90ca
+ ld hl, $cea3
+ ld a, [hl]
+ inc [hl]
+ and $f
+ ret nz
+ ld a, $f
+ bit 4, [hl]
+ jr z, asm_90da
+Func_90d8: ; 90d8 (2:50d8)
+ ld a, $0
+asm_90da
+ ld e, a
+ ld a, $a
+ ld l, a
+ ld a, [$ceaf]
+ ld h, a
+ call Func_0879
+ ld a, l
+ add $1
+ ld b, a
+ ld a, [$ceb0]
+ sla a
+ add $e
+ ld c, a
+ ld a, e
+ call Func_06c3
+ or a
+ ret
+
+Func_90f7: ; 90f7 (2:50f7)
+ ld a, $f
+ jr asm_90da
+
+Func_90fb: ; 90fb (2:50fb)
+ push af
+ inc a
+ jr z, .asm_9103
+ ld a, $2
+ jr .asm_9105
+.asm_9103
+ ld a, $3
+.asm_9105
+ call Func_3796
+ pop af
+ ret
+
+Func_910a: ; 910a (2:510a)
+ push hl
+ ld b, $0
+ ld d, $3c
+.asm_910f
+ ld a, [hli]
+ or a
+ jr z, .asm_911e
+ ld c, a
+ push hl
+ ld hl, $a100
+ add hl, bc
+ dec [hl]
+ pop hl
+ dec d
+ jr nz, .asm_910f
+.asm_911e
+ pop hl
+ ret
+; 0x9120
+
+INCBIN "baserom.gbc",$9120,$9152 - $9120
+
+Func_9152: ; 9152 (2:5152)
+ push hl
+ ld b, $0
+ ld d, $3c
+.asm_9157
+ ld a, [hli]
+ or a
+ jr z, .asm_9166
+ ld c, a
+ push hl
+ ld hl, $a100
+ add hl, bc
+ inc [hl]
+ pop hl
+ dec d
+ jr nz, .asm_9157
+.asm_9166
+ pop hl
+ ret
+
+Func_9168: ; 9168 (2:5168)
+ ;ld [$ffb5], a
+ db $ea, $b5, $ff
+ call Func_8d56
+ ld de, $0000
+ ld bc, $1404
+ call Func_1e7c
+ ld de, $0003
+ ld bc, $1404
+ call Func_1e7c
+ ld de, $0006
+ ld bc, $1404
+ call Func_1e7c
+ ld de, $0009
+ ld bc, $1404
+ call Func_1e7c
+ ld hl, Unknown_9242
+ call Func_2c08
+ ld a, $4
+ ld hl, $ceb2
+ call Func_9843
+ ;ld a, [$ffb5]
+ db $fa, $b5, $ff
+ bit 0, a
+ jr z, .asm_91b0
+ ld hl, $a200
+ ld de, $0602
+ call Func_926e
+.asm_91b0
+ ld hl, $a218
+ call Func_9314
+ jr c, .asm_91bd
+ ld a, $1
+ ld [$ceb2], a
+.asm_91bd
+ ;ld a, [$ffb5]
+ db $fa, $b5, $ff
+ bit 1, a
+ jr z, .asm_91cd
+ ld hl, $a254
+ ld de, $0605
+ call Func_926e
+.asm_91cd
+ ld hl, $a26c
+ call Func_9314
+ jr c, .asm_91da
+ ld a, $1
+ ld [$ceb3], a
+.asm_91da
+ ;ld a, [$ffb5]
+ db $fa, $b5, $ff
+ bit 2, a
+ jr z, .asm_91ea
+ ld hl, $a2a8
+ ld de, $0608
+ call Func_926e
+.asm_91ea
+ ld hl, $a2c0
+ call Func_9314
+ jr c, .asm_91f7
+ ld a, $1
+ ld [$ceb4], a
+.asm_91f7
+ ;ld a, [$ffb5]
+ db $fa, $b5, $ff
+ bit 3, a
+ jr z, .asm_9207
+ ld hl, $a2fc
+ ld de, $060b
+ call Func_926e
+.asm_9207
+ ld hl, $a314
+ call Func_9314
+ jr c, .asm_9214
+ ld a, $1
+ ld [$ceb5], a
+.asm_9214
+ call Func_07b6
+ ld a, [$b700]
+ ld c, a
+ ld b, $0
+ ld d, $2
+.asm_921f
+ ld hl, $ceb2
+ add hl, bc
+ ld a, [hl]
+ or a
+ jr nz, .asm_9234
+ inc c
+ ld a, $4
+ cp c
+ jr nz, .asm_921f
+ ld c, $0
+ dec d
+ jr z, .asm_9234
+ jr .asm_921f
+.asm_9234
+ ld a, c
+ ld [$b700], a
+ call Func_07be
+ call Func_9326
+ call Func_0277
+ ret
+
+Unknown_9242: ; 9242 (2:5242)
+INCBIN "baserom.gbc",$9242,$9253 - $9242
+
+Func_9253: ; 9253 (2:5253)
+ ld de, $c590
+ call Func_92ad
+ ld hl, $c590
+ call Func_23c1
+ ld b, $0
+ ld hl, $c590
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, Unknown_92a7
+ call Func_92ad
+ ret
+
+Func_926e: ; 926e (2:526e)
+ push hl
+ call Func_9314
+ pop hl
+ jr c, .asm_929c
+ push de
+ ld de, $c590
+ call Func_92b4
+ ld hl, $c590
+ call Func_23c1
+ ld b, $0
+ ld hl, $c590
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, Unknown_92a7
+ call Func_92ad
+ pop de
+ ld hl, $c590
+ call Func_22ae
+ call Func_21c5
+ or a
+ ret
+.asm_929c
+ call Func_22ae
+ ld hl, $0223
+ call Func_2c29
+ scf
+ ret
+
+Unknown_92a7: ; 92a7 (2:52a7)
+INCBIN "baserom.gbc",$92a7,$92ad - $92a7
Func_92ad: ; 92ad (2:52ad)
ld a, [hli]
@@ -29,12 +723,69 @@ Func_92ad: ; 92ad (2:52ad)
ret z
inc de
jr Func_92ad
-; 0x92b4
-INCBIN "baserom.gbc",$92b4,$a288 - $92b4
+Func_92b4: ; 92b4 (2:52b4)
+ call Func_07b6
+ call Func_92ad
+ call Func_07be
+ ret
+; 0x92be
+
+INCBIN "baserom.gbc",$92be,$9314 - $92be
+
+Func_9314: ; 9314 (2:5314)
+ ld bc, $0018
+ add hl, bc
+ call Func_07b6
+ ld a, [hl]
+ call Func_07be
+ or a
+ jr nz, .asm_9324
+ scf
+ ret
+.asm_9324
+ or a
+ ret
+
+Func_9326: ; 9326 (2:5326)
+ call Func_07b6
+ ld a, [$b700]
+ call Func_07be
+ ld h, $3
+ ld l, a
+ call Func_0879
+ ld e, l
+ inc e
+ ld d, $2
+ ld a, $38
+ ld hl, $0102
+ ld bc, $0202
+ call Func_1f5f
+ ret
+
+Func_9345: ; 9345 (2:5345)
+INCBIN "baserom.gbc",$9345,$9843 - $9345
+
+Func_9843: ; 9843 (2:5843)
+INCBIN "baserom.gbc",$9843,$9e41 - $9843
+
+Func_9e41: ; 9e41 (2:5e41)
+INCBIN "baserom.gbc",$9e41,$a288 - $9e41
Func_a288: ; a288 (2:6288)
-INCBIN "baserom.gbc",$a288,$b177 - $a288
+INCBIN "baserom.gbc",$a288,$a763 - $a288
+
+Unknown_a763: ; a763 (2:6763)
+INCBIN "baserom.gbc",$a763,$a76c - $a763
+
+Unknown_a76c: ; a76c (2:676c)
+INCBIN "baserom.gbc",$a76c,$a775 - $a76c
+
+Unknown_a775: ; a775 (2:6775)
+INCBIN "baserom.gbc",$a775,$a77e - $a775
+
+Unknown_a77e: ; a77e (2:677e)
+INCBIN "baserom.gbc",$a77e,$b177 - $a77e
Func_b177: ; b177 (2:7177)
INCBIN "baserom.gbc",$b177,$c000 - $b177 \ No newline at end of file
diff --git a/engine/bank3.asm b/engine/bank3.asm
index 57c3195..7df99a4 100755
--- a/engine/bank3.asm
+++ b/engine/bank3.asm
@@ -531,7 +531,11 @@ Func_c469: ; c469 (3:4469)
ret
Func_c484: ; c484 (3:4484)
-INCBIN "baserom.gbc",$c484,$c491 - $c484
+ ld a, [$d235]
+ ld [$d0b6], a
+ ld a, [$d236]
+ ld [$d0b7], a
+ ret
Func_c491: ; c491 (3:4491)
ld a, [$d0b6]
@@ -625,7 +629,59 @@ Func_c510: ; c510 (3:4510)
INCBIN "baserom.gbc",$c53d,$c554 - $c53d
Func_c554: ; c554 (3:4554)
-INCBIN "baserom.gbc",$c554,$c5ac - $c554
+ ld a, [$d336]
+ ld [$d4cf], a
+ ld a, [wCurMap]
+ cp OVERWORLD_MAP
+ jr nz, .asm_c566
+ farcall Func_10e28
+ ret
+.asm_c566
+ push hl
+ push bc
+ push de
+ call Func_c58b
+ ld a, [$d235]
+ ld d, a
+ ld a, [$d236]
+ ld e, a
+ ld c, $2
+ call Func_3dbf
+ ld a, [$d332]
+ sub d
+ add $8
+ ld [hli], a
+ ld a, [$d333]
+ sub e
+ add $10
+ ld [hli], a
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Func_c58b: ; c58b (3:458b)
+ push hl
+ ld a, [wPlayerXCoord]
+ ld b, a
+ ld a, [wPlayerYCoord]
+ ld c, a
+ call Func_3927
+ and $10
+ push af
+ ld c, $f
+ call Func_3dbf
+ pop af
+ ld a, [hl]
+ jr z, .asm_c5a7
+ or $80
+ jr .asm_c5a9
+.asm_c5a7
+ and $7f
+.asm_c5a9
+ ld [hl], a
+ pop hl
+ ret
Func_c5ac: ; c5ac (3:45ac)
ld a, [$ff90]
diff --git a/engine/bank4.asm b/engine/bank4.asm
index c95860e..282ed64 100755
--- a/engine/bank4.asm
+++ b/engine/bank4.asm
@@ -25,7 +25,10 @@ Func_10ab4: ; 10ab4 (4:4ab4)
INCBIN "baserom.gbc",$10ab4,$10af9 - $10ab4
Func_10af9: ; 10af9 (4:4af9)
-INCBIN "baserom.gbc",$10af9,$10e55 - $10af9
+INCBIN "baserom.gbc",$10af9,$10e28 - $10af9
+
+Func_10e28: ; 10e28 (4:4e28)
+INCBIN "baserom.gbc",$10e28,$10e55 - $10e28
Func_10e55: ; 10e55 (4:4e55)
ld a, [$d336]
diff --git a/engine/bank6.asm b/engine/bank6.asm
index dd83684..6cccfe0 100755
--- a/engine/bank6.asm
+++ b/engine/bank6.asm
@@ -110,4 +110,7 @@ Func_1a6cc: ; 1a6cc (6:66cc)
ret
; 0x1a6cd
-INCBIN "baserom.gbc",$1a6cd,$1c000 - $1a6cd \ No newline at end of file
+INCBIN "baserom.gbc",$1a6cd,$1ad89 - $1a6cd
+
+Func_1ad89: ; 1ad89 (6:6d89)
+INCBIN "baserom.gbc",$1ad89,$1c000 - $1ad89 \ No newline at end of file
diff --git a/engine/home.asm b/engine/home.asm
index 6d50caf..bf0a8e7 100755
--- a/engine/home.asm
+++ b/engine/home.asm
@@ -1989,7 +1989,7 @@ Func_1f0f: ; 1f0f (0:1f0f)
push bc
push de
ld hl, $cae0
- ld de, $1f4f
+ ld de, Unknown_1f4f
ld c, $10
.asm_1f25
ld a, [de]
@@ -2021,14 +2021,120 @@ Func_1f0f: ; 1f0f (0:1f0f)
ld hl, $cae0
call Func_0b20
ret
-; 0x1f4f
-INCBIN "baserom.gbc",$1f4f,$2119 - $1f4f
+Unknown_1f4f: ; 1f4f (0:1f4f)
+INCBIN "baserom.gbc",$1f4f,$1f5f - $1f4f
+
+Func_1f5f: ; 1f5f (0:1f5f)
+ push de
+ push af
+ push hl
+ add sp, $e0
+ call Func_1ddb
+.asm_1f67
+ push hl
+ push bc
+ ld hl, [sp+$25]
+ ld d, [hl]
+ ld hl, [sp+$27]
+ ld a, [hl]
+ ld hl, [sp+$4]
+ push hl
+.asm_1f72
+ ld [hli], a
+ add d
+ dec b
+ jr nz, .asm_1f72
+ pop de
+ pop bc
+ pop hl
+ push hl
+ push bc
+ ld c, b
+ ld b, $0
+ call Func_1dca
+ ld hl, [sp+$24]
+ ld a, [hl]
+ ld hl, [sp+$27]
+ add [hl]
+ ld [hl], a
+ pop bc
+ pop de
+ ld hl, $0020
+ add hl, de
+ dec c
+ jr nz, .asm_1f67
+ add sp, $24
+ pop de
+ ret
+; 0x1f96
+
+INCBIN "baserom.gbc",$1f96,$20b0 - $1f96
+
+Func_20b0: ; 20b0 (0:20b0)
+ ld hl, $2fe8
+ ld a, [$cab4]
+ cp $2
+ jr nz, .asm_20bd
+ ld hl, $37f8
+.asm_20bd
+ ld de, $8d00
+ ld b, $30
+ jr asm_2121
+
+Func_20c4: ; 20c4 (0:20c4)
+ ld hl, $3028
+ ld a, [$cab4]
+ cp $2
+ jr nz, .asm_20d1
+ ld hl, $3838
+.asm_20d1
+ ld de, $8d40
+ ld b, $c
+ jr asm_2121
+
+Func_20d8: ; 20d8 (0:20d8)
+ ld b, $10
+ jr asm_20de
+
+Func_20dc: ; 20dc (0:20dc)
+ ld b, $24
+asm_20de
+ ld hl, $32e8
+ ld a, [$cab4]
+ cp $2
+ jr nz, .asm_20eb
+ ld hl, $3af8
+.asm_20eb
+ ld de, $8d00
+ jr asm_2121
+
+Func_20f0: ; 20f0 (0:20f0)
+ ld hl, $4008
+ ld de, $8a00
+ ld b, $d
+ call asm_2121
+ ld hl, $3528
+ ld a, [$cab4]
+ cp $2
+ jr nz, .asm_2108
+ ld hl, $3d38
+.asm_2108
+ ld de, $8d00
+ ld b, $30
+ jr asm_2121
+
+Func_210f: ; 210f (0:210f)
+ ld hl, $40d8
+ ld de, $9300
+ ld b, $8
+ jr asm_2121
Func_2119: ; 2119 (0:2119)
ld hl, $2968
ld de, $9000
ld b, $38
+asm_2121
ld a, $1d
call Func_0745
ld c, $10
@@ -2392,9 +2498,56 @@ Func_23b1: ; 23b1 (0:23b1)
sub $20
ld e, a
ret
-; 0x23c1
-INCBIN "baserom.gbc",$23c1,$245d - $23c1
+Func_23c1: ; 23c1 (0:23c1)
+ ld a, [hl]
+ cp $6
+ jr nz, .asm_23cf
+ call Func_23d3
+ inc b
+ srl b
+ xor a
+ sub b
+ ret
+.asm_23cf
+ xor a
+ ld [$cd0a], a
+Func_23d3: ; 23d3 (0:23d3)
+ push hl
+ push de
+ ld bc, $0000
+.asm_23d8
+ ld a, [hli]
+ or a
+ jr z, .asm_23f8
+ inc c
+ cp $5
+ jr c, .asm_23ec
+ cp $10
+ jr nc, .asm_23ec
+ cp $5
+ jr nz, .asm_23d8
+ inc b
+ jr .asm_23f4
+.asm_23ec
+ ld e, a
+ ld d, [hl]
+ inc b
+ call Func_2546
+ jr nc, .asm_23d8
+.asm_23f4
+ inc c
+ inc hl
+ jr .asm_23d8
+.asm_23f8
+ xor a
+ sub b
+ pop de
+ pop hl
+ ret
+; 0x23fd
+
+INCBIN "baserom.gbc",$23fd,$245d - $23fd
Func_245d: ; 245d (0:245d)
push de
@@ -2614,7 +2767,22 @@ Func_256d: ; 256d (0:256d)
ret
; 0x2589
-INCBIN "baserom.gbc",$2589,$264b - $2589
+INCBIN "baserom.gbc",$2589,$2636 - $2589
+
+Func_2636: ; 2636 (0:2636)
+ ld [$cd10], a
+ ld [$ffb1], a
+ ld de, $cd11
+ ld b, $8
+.asm_2640
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_2640
+ xor a
+ ld [$cd0f], a
+ ret
Func_264b: ; 264b (0:264b)
xor a
@@ -2805,9 +2973,24 @@ Func_2a9e: ; 2a9e (0:2a9e)
call Func_1deb
call Func_1e7c
ret
-; 0x2aab
-INCBIN "baserom.gbc",$2aab,$2af0 - $2aab
+Func_2aab: ; 2aab (0:2aab)
+ call Func_2a59
+ xor a
+ ld hl, Unknown_2ac8
+ call Func_2636
+ call Func_0277
+.asm_2ab8
+ call Func_053f
+ call Func_26da
+ ld a, [$ff91]
+ and $3
+ jr z, .asm_2ab8
+ call Func_26e9
+ ret
+
+Unknown_2ac8: ; 2ac8 (0:2ac8)
+INCBIN "baserom.gbc",$2ac8,$2af0 - $2ac8
Func_2af0: ; 2af0 (0:2af0)
call Func_2a59
@@ -2876,14 +3059,30 @@ Func_2b66: ; 2b66 (0:2b66)
ret
; 0x2b70
-INCBIN "baserom.gbc",$2b70,$2c1b - $2b70
+INCBIN "baserom.gbc",$2b70,$2c08 - $2b70
+
+Func_2c08: ; 2c08 (0:2c08)
+ ld d, [hl]
+ inc hl
+ bit 7, d
+ ret nz
+ ld e, [hl]
+ inc hl
+ call Func_22ae
+ push hl
+ call Func_2c23
+ pop hl
+ inc hl
+ inc hl
+ jr Func_2c08
Func_2c1b: ; 2c1b (0:2c1b)
call Func_22ae
jr Func_2c29
-Func_2c1f: ; 2c1f (0:2c1f)
+Func_2c20: ; 2c20 (0:2c20)
call Func_22ae
+Func_2c23: ; 2c23 (0:2c23)
ld a, [hli]
or [hl]
ret z