summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengine/bank1.asm5
-rwxr-xr-xengine/bank20.asm10
-rwxr-xr-xengine/bank3.asm179
-rwxr-xr-xengine/bank4.asm359
-rwxr-xr-xengine/bank7.asm1
-rwxr-xr-xengine/home.asm52
6 files changed, 590 insertions, 16 deletions
diff --git a/engine/bank1.asm b/engine/bank1.asm
index 5856f5a..3ef05c9 100755
--- a/engine/bank1.asm
+++ b/engine/bank1.asm
@@ -39,7 +39,10 @@ Func_4050: ; 4050 (1:4050)
ret
Func_405a: ; 405a (1:405a)
-INCBIN "baserom.gbc",$405a,$7571 - $405a
+INCBIN "baserom.gbc",$405a,$6785 - $405a
+
+Func_6785: ; 6785 (1:6785)
+INCBIN "baserom.gbc",$6785,$7571 - $6785
Func_7571: ; 7571 (1:7571)
INCBIN "baserom.gbc",$7571,$8000 - $7571 \ No newline at end of file
diff --git a/engine/bank20.asm b/engine/bank20.asm
index a4898c4..1351149 100755
--- a/engine/bank20.asm
+++ b/engine/bank20.asm
@@ -1,9 +1,10 @@
+Func_80000: ; 80000 (20:4000)
INCBIN "baserom.gbc",$80000,$8020f - $80000
Func_8020f: ; 8020f (20:420f)
push bc
push af
- ld bc, Unknown_80e5d
+ ld bc, MapDataPointers
ld h, $0
add hl, bc
ld c, [hl]
@@ -108,10 +109,13 @@ Func_802bb: ; 802bb (20:42bb)
ret
; 0x802d4
-INCBIN "baserom.gbc",$802d4,$80e5a - $802d4
+INCBIN "baserom.gbc",$802d4,$80480 - $802d4
+
+Func_80480: ; 80480 (20:4480)
+INCBIN "baserom.gbc",$80480,$80e5a - $80480
Unknown_80e5a: ; 80e5a (20:4e5a)
INCBIN "baserom.gbc",$80e5a,$80e5d - $80e5a
-Unknown_80e5d: ; 80e5d (20:4e5d)
+MapDataPointers: ; 80e5d (20:4e5d)
INCBIN "baserom.gbc",$80e5d,$84000 - $80e5d \ No newline at end of file
diff --git a/engine/bank3.asm b/engine/bank3.asm
index ecabee2..45f17cb 100755
--- a/engine/bank3.asm
+++ b/engine/bank3.asm
@@ -1,5 +1,133 @@
-Func_c000: ; c000 (3:4000)
-INCBIN "baserom.gbc",$c000,$c1a4 - $c000
+LoadMap: ; c000 (3:4000)
+ call Func_028a
+ call Func_07b6
+ bank1call Func_6785
+ call Func_07be
+ ld a, $0
+ ld [$d0b5], a
+ xor a
+ ld [$d10f], a
+ ld [$d110], a
+ ld [$d113], a
+ farcall Func_10a9b
+ call Func_c1a4
+ call Func_099c
+ xor a
+ ld [$cab6], a
+ call Func_2119
+ call Func_02b9
+ xor a
+ ld [$cd08], a
+ xor a
+ ld [$d291], a
+.asm_c037
+ farcall Func_10ab4
+ call Func_c1a4
+ call Func_c241
+ call Func_04a2
+ call Func_3ca0
+ ld a, $c2
+ ld [$ff97], a
+ farcall Func_1c440
+ ld a, [$d0bb]
+ ld [wCurMap], a
+ ld a, [$d0bc]
+ ld [wPlayerXCoord], a
+ ld a, [$d0bd]
+ ld [wPlayerYCoord], a
+ call Func_c36a
+ call Func_c184
+ call Func_c49c
+ farcall Func_80000
+ call Func_c4b9
+ call Func_c943
+ call Func_c158
+ farcall Func_80480
+ call Func_c199
+ xor a
+ ld [$d0b4], a
+ ld [$d0c1], a
+ call Func_39fc
+ farcall Func_10af9
+ call Func_c141
+ call Func_c17a
+.asm_c092
+ call Func_3c48
+ call Func_c491
+ call Func_c0ce
+ ld hl, $d0b4
+ ld a, [hl]
+ and $d0
+ jr z, .asm_c092
+ call Func_3c48
+ ld hl, $d0b4
+ ld a, [hl]
+ bit 4, [hl]
+ jr z, .asm_c0b6
+ ld a, $c
+ call Func_3796
+ jp .asm_c037
+.asm_c0b6
+ farcall Func_10ab4
+ call Func_c1a0
+ ld a, [$d113]
+ or a
+ jr z, .asm_c0ca
+ call Func_c280
+ farcall Func_103d3
+.asm_c0ca
+ call Func_c280
+ ret
+
+Func_c0ce: ; c0ce (3:40ce)
+ ld a, [$d0bf]
+ res 7, a
+ rlca
+ add $e0
+ ld l, a
+ ld a, $40
+ adc $0
+ ld h, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 0xc0e0
+
+INCBIN "baserom.gbc",$c0e0,$c141 - $c0e0
+
+Func_c141: ; c141 (3:4141)
+ ld hl, $d0c2
+ ld a, [hl]
+ or a
+ ret z
+ push af
+ xor a
+ ld [hl], a
+ pop af
+ dec a
+ ld hl, PointerTable_c152
+ jp JumpToFunctionInTable
+
+PointerTable_c152: ; c152 (3:4152)
+ dw Func_c9bc
+ dw Func_fc2b
+ dw Func_fcad
+
+Func_c158: ; c158 (3:4158)
+INCBIN "baserom.gbc",$c158,$c17a - $c158
+
+Func_c17a: ; c17a (3:417a)
+INCBIN "baserom.gbc",$c17a,$c184 - $c17a
+
+Func_c184: ; c184 (3:4184)
+INCBIN "baserom.gbc",$c184,$c199 - $c184
+
+Func_c199: ; c199 (3:4199)
+INCBIN "baserom.gbc",$c199,$c1a0 - $c199
+
+Func_c1a0: ; c1a0 (3:41a0)
+INCBIN "baserom.gbc",$c1a0,$c1a4 - $c1a0
Func_c1a4: ; c1a4 (3:41a4)
INCBIN "baserom.gbc",$c1a4,$c1b1 - $c1a4
@@ -11,7 +139,36 @@ Func_c1ed: ; c1ed (3:41ed)
INCBIN "baserom.gbc",$c1ed,$c1f8 - $c1ed
Func_c1f8: ; c1f8 (3:41f8)
-INCBIN "baserom.gbc",$c1f8,$c5d5 - $c1f8
+INCBIN "baserom.gbc",$c1f8,$c241 - $c1f8
+
+Func_c241: ; c241 (3:4241)
+INCBIN "baserom.gbc",$c241,$c280 - $c241
+
+Func_c280: ; c280 (3:4280)
+INCBIN "baserom.gbc",$c280,$c36a - $c280
+
+Func_c36a: ; c36a (3:436a)
+ xor a
+ ld [$d323], a
+ ld a, [wCurMap]
+ cp POKEMON_DOME_ENTRANCE
+ jr nz, .asm_c379
+ xor a
+ ld [$d324], a
+.asm_c379
+ ret
+; 0xc37a
+
+INCBIN "baserom.gbc",$c37a,$c491 - $c37a
+
+Func_c491: ; c491 (3:4491)
+INCBIN "baserom.gbc",$c491,$c49c - $c491
+
+Func_c49c: ; c49c (3:449c)
+INCBIN "baserom.gbc",$c49c,$c4b9 - $c49c
+
+Func_c4b9: ; c4b9 (3:44b9)
+INCBIN "baserom.gbc",$c4b9,$c5d5 - $c4b9
Func_c5d5: ; c5d5 (3:45d5)
push hl
@@ -44,7 +201,13 @@ Func_c5e9: ; c5e9 (3:45e9)
ret
; 0xc5fe
-INCBIN "baserom.gbc",$c5fe,$c9cb - $c5fe
+INCBIN "baserom.gbc",$c5fe,$c943 - $c5fe
+
+Func_c943: ; c943 (3:4943)
+INCBIN "baserom.gbc",$c943,$c9bc - $c943
+
+Func_c9bc: ; c9bc (3:49bc)
+INCBIN "baserom.gbc",$c9bc,$c9cb - $c9bc
Func_c9cb: ; c9cb (3:49cb)
INCBIN "baserom.gbc",$c9cb,$ca6c - $c9cb
@@ -113,4 +276,10 @@ RST20: ; cc42 (3:4c42)
ret
; 0xcc60
-INCBIN "baserom.gbc",$cc60,$10000 - $cc60 \ No newline at end of file
+INCBIN "baserom.gbc",$cc60,$fc2b - $cc60
+
+Func_fc2b: ; fc2b (3:7c2b)
+INCBIN "baserom.gbc",$fc2b,$fcad - $fc2b
+
+Func_fcad: ; fcad (3:7cad)
+INCBIN "baserom.gbc",$fcad,$10000 - $fcad \ No newline at end of file
diff --git a/engine/bank4.asm b/engine/bank4.asm
index 18a1cbd..1fe322b 100755
--- a/engine/bank4.asm
+++ b/engine/bank4.asm
@@ -1,4 +1,16 @@
-INCBIN "baserom.gbc",$10000,$10e55 - $10000
+INCBIN "baserom.gbc",$10000,$103d3 - $10000
+
+Func_103d3: ; 103d3 (4:43d3)
+INCBIN "baserom.gbc",$103d3,$10a9b - $103d3
+
+Func_10a9b: ; 10a9b (4:4a9b)
+INCBIN "baserom.gbc",$10a9b,$10ab4 - $10a9b
+
+Func_10ab4: ; 10ab4 (4:4ab4)
+INCBIN "baserom.gbc",$10ab4,$10af9 - $10ab4
+
+Func_10af9: ; 10af9 (4:4af9)
+INCBIN "baserom.gbc",$10af9,$10e55 - $10af9
Func_10e55: ; 10e55 (4:4e55)
ld a, [$d336]
@@ -467,7 +479,350 @@ Func_11184: ; 11184 (4:5184)
INCBIN "baserom.gbc",$111b3,$11320 - $111b3
Func_11320: ; 11320 (4:5320)
-INCBIN "baserom.gbc",$11320,$1217b - $11320
+INCBIN "baserom.gbc",$11320,$1162a - $11320
+
+MapHeaders: ; 1162a (4:562a)
+; OVERWORLD_MAP
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $54ec
+ dw $0000
+ dw $0000
+ dw $0000
+
+; MASON_LABORATORY
+ dw $772f
+ dw $0000
+ dw $7b04
+ dw $5565
+ dw $5549
+ dw $553b
+ dw $0000
+ dw $555e
+
+; DECK_MACHINE_ROOM
+ dw $775a
+ dw $0000
+ dw $7b4d
+ dw $0000
+ dw $0000
+ dw $589f
+ dw $0000
+ dw $58ad
+
+; ISHIHARAS_HOUSE
+ dw $7773
+ dw $0000
+ dw $7c02
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+; FIGHTING_CLUB_ENTRANCE
+ dw $7786
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; FIGHTING_CLUB_LOBBY
+ dw $779f
+ dw $0000
+ dw $7c6f
+ dw $0000
+ dw $0000
+ dw $5c68
+ dw $0000
+ dw $0000
+
+; FIGHTING_CLUB
+ dw $77ca
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $5da3
+ dw $0000
+ dw $0000
+
+; ROCK_CLUB_ENTRANCE
+ dw $77e3
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; ROCK_CLUB_LOBBY
+ dw $77fc
+ dw $0000
+ dw $7ca6
+ dw $0000
+ dw $0000
+ dw $5ed5
+ dw $0000
+ dw $0000
+
+; ROCK_CLUB
+ dw $7827
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $5fd6
+ dw $0000
+ dw $0000
+
+; WATER_CLUB_ENTRANCE
+ dw $783a
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; WATER_CLUB_LOBBY
+ dw $7853
+ dw $0000
+ dw $7cdd
+ dw $0000
+ dw $0000
+ dw $60a2
+ dw $0000
+ dw $0000
+
+; WATER_CLUB
+ dw $787e
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6157
+ dw $613f
+ dw $0000
+
+; LIGHTNING_CLUB_ENTRANCE
+ dw $7897
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; LIGHTNING_CLUB_LOBBY
+ dw $78b0
+ dw $0000
+ dw $7d14
+ dw $0000
+ dw $0000
+ dw $636d
+ dw $0000
+ dw $0000
+
+; LIGHTNING_CLUB
+ dw $78d5
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $63e8
+ dw $0000
+ dw $0000
+
+; GRASS_CLUB_ENTRANCE
+ dw $78ee
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $6525
+ dw $0000
+ dw $0000
+
+; GRASS_CLUB_LOBBY
+ dw $790d
+ dw $0000
+ dw $7d4b
+ dw $0000
+ dw $0000
+ dw $65c4
+ dw $0000
+ dw $0000
+
+; GRASS_CLUB
+ dw $7932
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $66e7
+ dw $0000
+ dw $0000
+
+; PSYCHIC_CLUB_ENTRANCE
+ dw $7945
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; PSYCHIC_CLUB_LOBBY
+ dw $7964
+ dw $0000
+ dw $7d82
+ dw $0000
+ dw $6971
+ dw $6963
+ dw $0000
+ dw $0000
+
+; PSYCHIC_CLUB
+ dw $798f
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6a46
+ dw $0000
+ dw $0000
+
+; SCIENCE_CLUB_ENTRANCE
+ dw $79a8
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; SCIENCE_CLUB_LOBBY
+ dw $79c1
+ dw $0000
+ dw $7db9
+ dw $0000
+ dw $0000
+ dw $6b57
+ dw $0000
+ dw $0000
+
+; SCIENCE_CLUB
+ dw $79ec
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6bf1
+ dw $0000
+ dw $0000
+
+; FIRE_CLUB_ENTRANCE
+ dw $7a05
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6809
+ dw $67f6
+ dw $0000
+ dw $0000
+
+; FIRE_CLUB_LOBBY
+ dw $7a1e
+ dw $0000
+ dw $7df0
+ dw $6d57
+ dw $0000
+ dw $6d49
+ dw $0000
+ dw $0000
+
+; FIRE_CLUB
+ dw $7a43
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $6e93
+ dw $0000
+ dw $0000
+
+; CHALLENGE_HALL_ENTRANCE
+ dw $7a5c
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+; CHALLENGE_HALL_LOBBY
+ dw $7a63
+ dw $0000
+ dw $7e27
+ dw $0000
+ dw $7088
+ dw $0000
+ dw $0000
+ dw $0000
+
+; CHALLENGE_HALL
+ dw $7a9a
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $7258
+ dw $7239
+ dw $0000
+ dw $0000
+
+; POKEMON_DOME_ENTRANCE
+ dw $7ab9
+ dw $0000
+ dw $7e5e
+ dw $0000
+ dw $7607
+ dw $0000
+ dw $0000
+ dw $762a
+
+; POKEMON_DOME
+ dw $7ac0
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $7706
+ dw $76e0
+ dw $76c6
+ dw $7718
+
+; HALL_OF_HONOR
+ dw $7adf
+ dw $0000
+ dw $7ec2
+ dw $0000
+ dw $7bdb
+ dw $0000
+ dw $0000
+ dw $0000
+
+INCBIN "baserom.gbc",$1184a,$1217b - $1184a
Unknown_1217b: ; 1217b (4:617b)
INCBIN "baserom.gbc",$1217b,$1229f - $1217b
diff --git a/engine/bank7.asm b/engine/bank7.asm
index 25e0772..8258a67 100755
--- a/engine/bank7.asm
+++ b/engine/bank7.asm
@@ -375,6 +375,7 @@ MapSongs: ; 1c374 (7:4374)
db $36,$37,$00,$0A,$17,MUSIC_POKEMONDOME ; POKEMON_DOME
db $3A,$3B,$00,$0A,$18,MUSIC_HALLOFHONOR ; HALL_OF_HONOR
+Func_1c440: ; 1c440 (7:4440)
INCBIN "baserom.gbc",$1c440,$1d078 - $1c440
Func_1d078: ; 1d078 (7:5078)
diff --git a/engine/home.asm b/engine/home.asm
index 07d6193..426f2df 100755
--- a/engine/home.asm
+++ b/engine/home.asm
@@ -247,8 +247,8 @@ Func_028a: ; 028a (0:028a)
ld a, [$cab7]
ld [$ffff], a
ret
-; 0x2b9
+Func_02b9: ; 02b9 (0:02b9)
INCBIN "baserom.gbc",$02b9,$02dd - $02b9
Func_02dd: ; 02dd (0:02dd)
@@ -1821,7 +1821,10 @@ Func_1f0f: ; 1f0f (0:1f0f)
ret
; 0x1f4f
-INCBIN "baserom.gbc",$1f4f,$21c5 - $1f4f
+INCBIN "baserom.gbc",$1f4f,$2119 - $1f4f
+
+Func_2119: ; 2119 (0:2119)
+INCBIN "baserom.gbc",$2119,$21c5 - $2119
Func_21c5: ; 21c5 (0:21c5)
push de
@@ -3054,7 +3057,7 @@ Func_383d: ; 383d (0:383d)
.asm_3845
call Func_3855
jr nc, .asm_3850
- farcall Func_c000
+ farcall LoadMap
jr .asm_3845
.asm_3850
pop af
@@ -3121,7 +3124,43 @@ Func_39fc: ; 39fc (0:39fc)
INCBIN "baserom.gbc",$39fc,$3a40 - $39fc
Func_3a40: ; 3a40 (0:3a40)
-INCBIN "baserom.gbc",$3a40,$3aed - $3a40
+INCBIN "baserom.gbc",$3a40,$3abd - $3a40
+
+Func_3abd: ; 3abd (0:3abd)
+ push bc
+ push hl
+ ld a, [wCurMap]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, MapHeaders
+ add hl, bc
+ pop bc
+ ld b, $0
+ add hl, bc
+ ld a, [$ff80]
+ push af
+ ld a, BANK(MapHeaders)
+ call BankswitchHome
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ call BankswitchHome
+ ld a, l
+ or h
+ jr nz, .asm_3ae5
+ scf
+.asm_3ae5
+ ccf
+ pop bc
+ ret
+; 0x3ae8
+
+INCBIN "baserom.gbc",$3ae8,$3aed - $3ae8
Func_3aed: ; 3aed (0:3aed)
ld hl, $d413
@@ -3207,7 +3246,10 @@ Func_3c5a: ; 3c5a (0:3c5a)
ret
; 0x3c83
-INCBIN "baserom.gbc",$3c83,$3d72 - $3c83
+INCBIN "baserom.gbc",$3c83,$3ca0 - $3c83
+
+Func_3ca0: ; 3ca0 (0:3ca0)
+INCBIN "baserom.gbc",$3ca0,$3d72 - $3ca0
Func_3d72: ; 3d72 (0:3d72)
ld a, [$ff80]