summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluckytyphlosion <alan.rj.huang@gmail.com>2015-10-04 15:17:30 -0400
committerluckytyphlosion <alan.rj.huang@gmail.com>2015-10-04 15:17:30 -0400
commit3db446ca4fafe72e606428369d716dbdffb92a9e (patch)
tree287c3ec82d9d2abb3b05f0e08fe4edde1286b31e
parent79aa0bfbc6d11532129d1457545eebd88ea7b70a (diff)
Some bank3 documentation
-rwxr-xr-xdata/dungeon_tilesets.asm2
-rwxr-xr-xdata/hide_show_data.asm194
-rwxr-xr-xdata/tileset_headers.asm54
-rw-r--r--engine/bank3d/bank3d_battle.asm5
-rw-r--r--engine/menu/bills_pc.asm5
-rw-r--r--macros.asm14
-rwxr-xr-xmain.asm98
-rwxr-xr-xwram.asm6
-rwxr-xr-xyellow/main.asm446
9 files changed, 658 insertions, 166 deletions
diff --git a/data/dungeon_tilesets.asm b/data/dungeon_tilesets.asm
index 3501f2b9..702a37e0 100755
--- a/data/dungeon_tilesets.asm
+++ b/data/dungeon_tilesets.asm
@@ -1,2 +1,2 @@
-DungeonTilesets: ; c7b2 (3:47b2)
+DungeonTilesets: ; c54c (3:454c)
db FOREST, MUSEUM, SHIP, CAVERN, LOBBY, MANSION, GATE, LAB, FACILITY, CEMETERY, GYM, $FF
diff --git a/data/hide_show_data.asm b/data/hide_show_data.asm
index c8d89102..d465dfb3 100755
--- a/data/hide_show_data.asm
+++ b/data/hide_show_data.asm
@@ -4,7 +4,7 @@
; Table of 2-Byte pointers, one pointer per map,
; goes up to Map_F7, ends with $FFFF.
; points to table listing all missable object in the area
-MapHSPointers: ; c8f5 (3:48f5)
+MapHSPointers: ; c69b (3:469b)
dw MapHS00
dw MapHS01
dw MapHS02
@@ -68,7 +68,7 @@ MapHSPointers: ; c8f5 (3:48f5)
dw MapHSXX
dw MapHS3D
dw MapHSXX
- dw MapHSXX
+ dw MapHS3F
dw MapHSXX
dw MapHSXX
dw MapHSXX
@@ -253,6 +253,7 @@ MapHSPointers: ; c8f5 (3:48f5)
dw MapHSXX
dw MapHSXX
dw MapHSXX
+ dw MapHSXX ; beach house
dw $FFFF
; Structure:
@@ -269,23 +270,24 @@ MapHSPointers: ; c8f5 (3:48f5)
Hide equ $11
Show equ $15
-MapHSXX: ; cae7 (3:4ae7)
+MapHSXX: ; c88f (3:488f)
db $FF,$FF,$FF
-MapHS00: ; caea (3:4aea)
+MapHS00: ; c892 (3:4892)
db PALLET_TOWN,$01,Hide
-MapHS01: ; caed (3:4aed)
+MapHS01: ; c895 (3:4895)
db VIRIDIAN_CITY,$05,Show
db VIRIDIAN_CITY,$07,Hide
-MapHS02: ; caf3 (3:4af3)
+ db VIRIDIAN_CITY,$08,Hide
+MapHS02: ; c89e (3:489e)
db PEWTER_CITY,$03,Show
db PEWTER_CITY,$05,Show
-MapHS03: ; caf9 (3:4af9)
+MapHS03: ; c8a4 (3:48a4)
db CERULEAN_CITY,$01,Hide
db CERULEAN_CITY,$02,Show
db CERULEAN_CITY,$06,Hide
db CERULEAN_CITY,$0A,Show
db CERULEAN_CITY,$0B,Show
-MapHS0A: ; cb08 (3:4b08)
+MapHS0A: ; c8b3 (3:48b3)
db SAFFRON_CITY,$01,Show
db SAFFRON_CITY,$02,Show
db SAFFRON_CITY,$03,Show
@@ -301,86 +303,86 @@ MapHS0A: ; cb08 (3:4b08)
db SAFFRON_CITY,$0D,Hide
db SAFFRON_CITY,$0E,Show
db SAFFRON_CITY,$0F,Hide
-MapHS0D: ; cb35 (3:4b35)
+MapHS0D: ; c8e0 (3:48e0)
db ROUTE_2,$01,Show
db ROUTE_2,$02,Show
-MapHS0F: ; cb3b (3:4b3b)
+MapHS0F: ; c8e6 (3:48e6)
db ROUTE_4,$03,Show
-MapHS14: ; cb3e (3:4b3e)
+MapHS14: ; c8e9 (3:48e9)
db ROUTE_9,$0A,Show
-MapHS17: ; cb41 (3:4b41)
+MapHS17: ; c8ec (3:48ec)
db ROUTE_12,$01,Show
db ROUTE_12,$09,Show
db ROUTE_12,$0A,Show
-MapHS1A: ; cb4a (3:4b4a)
+MapHS1A: ; c8f5 (3:48f5)
db ROUTE_15,$0B,Show
-MapHS1B: ; cb4d (3:4b4d)
+MapHS1B: ; c8f8 (3:48f8)
db ROUTE_16,$07,Show
-MapHS21: ; cb50 (3:4b50)
+MapHS21: ; c8fb (3:48fb)
db ROUTE_22,$01,Hide
db ROUTE_22,$02,Hide
-MapHS23: ; cb56 (3:4b56)
+MapHS23: ; c901 (3:4901)
db ROUTE_24,$01,Show
db ROUTE_24,$08,Show
-MapHS24: ; cb5c (3:4b5c)
+MapHS24: ; c907 (3:4907)
db ROUTE_25,$0A,Show
-MapHS27: ; cb5f (3:4b5f)
+MapHS27: ; c90a (3:490a)
db BLUES_HOUSE,$01,Show
db BLUES_HOUSE,$02,Hide
db BLUES_HOUSE,$03,Show
-MapHS28: ; cb68 (3:4b68)
+MapHS28: ; c913 (3:4913)
db OAKS_LAB,$01,Show
db OAKS_LAB,$02,Show
- db OAKS_LAB,$03,Show
+ db OAKS_LAB,$03,Hide
db OAKS_LAB,$04,Show
- db OAKS_LAB,$05,Hide
- db OAKS_LAB,$06,Show
- db OAKS_LAB,$07,Show
- db OAKS_LAB,$08,Hide
-MapHS2D: ; cb80 (3:4b80)
+ db OAKS_LAB,$05,Show
+ db OAKS_LAB,$06,Hide
+MapHS2D: ; c925 (3:4925)
db VIRIDIAN_GYM,$01,Show
db VIRIDIAN_GYM,$0B,Show
-MapHS34: ; cb86 (3:4b86)
+MapHS34: ; c92b (3:492b)
db MUSEUM_1F,$05,Show
-MapHSE4: ; cb89 (3:4b89)
+MapHS3F: ; c92e (3:492e) ; bulbasaur adoption house
+ db CERULEAN_HOUSE,$02,Show
+MapHSE4: ; c931 (3:4931)
db UNKNOWN_DUNGEON_1,$01,Show
db UNKNOWN_DUNGEON_1,$02,Show
db UNKNOWN_DUNGEON_1,$03,Show
-MapHS8F: ; cb92 (3:4b92)
+ db UNKNOWN_DUNGEON_1,$04,Show
+MapHS8F: ; c93d (3:493d)
db POKEMONTOWER_2,$01,Show
-MapHS90: ; cb95 (3:4b95)
+MapHS90: ; c940 (3:4940)
db POKEMONTOWER_3,$04,Show
-MapHS91: ; cb98 (3:4b98)
+MapHS91: ; c943 (3:4943)
db POKEMONTOWER_4,$04,Show
db POKEMONTOWER_4,$05,Show
db POKEMONTOWER_4,$06,Show
-MapHS92: ; cba1 (3:4ba1)
+MapHS92: ; c94c (3:494c)
db POKEMONTOWER_5,$06,Show
-MapHS93: ; cba4 (3:4ba4)
+MapHS93: ; c94f (3:494f)
db POKEMONTOWER_6,$04,Show
db POKEMONTOWER_6,$05,Show
-MapHS94: ; cbaa (3:4baa)
- db POKEMONTOWER_7,$01,Show
- db POKEMONTOWER_7,$02,Show
+MapHS94: ; c955 (3:4955)
+ db POKEMONTOWER_7,$01,Hide ; jessie & james?
+ db POKEMONTOWER_7,$02,Hide
db POKEMONTOWER_7,$03,Show
- db POKEMONTOWER_7,$04,Show
-MapHS95: ; cbb6 (3:4bb6)
+MapHS95: ; c95e (3:495e)
db LAVENDER_HOUSE_1,$05,Hide
-MapHS84: ; cbb9 (3:4bb9)
+MapHS84: ; c961 (3:4961)
db CELADON_MANSION_5,$02,Show
-MapHS87: ; cbbc (3:4bbc)
+MapHS87: ; c964 (3:4964)
db GAME_CORNER,$0B,Show
-MapHS9B: ; cbbf (3:4bbf)
+MapHS9B: ; c967 (3:4967)
db FUCHSIA_HOUSE_2,$02,Show
-MapHSA5: ; cbc2 (3:4bc2)
+MapHSA5: ; c96a (3:496a)
db MANSION_1,$02,Show
db MANSION_1,$03,Show
-MapHSB1: ; cbc8 (3:4bc8)
+MapHSB1: ; c970 (3:4970)
db FIGHTING_DOJO,$06,Show
db FIGHTING_DOJO,$07,Show
-MapHSB5: ; cbce (3:4bce)
+MapHSB5: ; c976 (3:4976)
db SILPH_CO_1F,$01,Hide
-MapHS53: ; cbd1 (3:4bd1)
+MapHS53: ; c979 (3:4979)
db POWER_PLANT,$01,Show
db POWER_PLANT,$02,Show
db POWER_PLANT,$03,Show
@@ -395,84 +397,88 @@ MapHS53: ; cbd1 (3:4bd1)
db POWER_PLANT,$0C,Show
db POWER_PLANT,$0D,Show
db POWER_PLANT,$0E,Show
-MapHSC2: ; cbfb (3:4bfb)
+MapHSC2: ; c9a3 (3:49a3)
db VICTORY_ROAD_2,$06,Show
db VICTORY_ROAD_2,$07,Show
db VICTORY_ROAD_2,$08,Show
db VICTORY_ROAD_2,$09,Show
db VICTORY_ROAD_2,$0A,Show
db VICTORY_ROAD_2,$0D,Show
-MapHS58: ; cc0d (3:4c0d)
+MapHS58: ; c9b5 (3:49b5)
db BILLS_HOUSE,$01,Show
db BILLS_HOUSE,$02,Hide
db BILLS_HOUSE,$03,Hide
-MapHS33: ; cc16 (3:4c16)
- db VIRIDIAN_FOREST,$05,Show
- db VIRIDIAN_FOREST,$06,Show
+MapHS33: ; c9be (3:49be)
db VIRIDIAN_FOREST,$07,Show
-MapHS3B: ; cc1f (3:4c1f)
+ db VIRIDIAN_FOREST,$08,Show
+ db VIRIDIAN_FOREST,$09,Show
+MapHS3B: ; c9c7 (3:49c7)
db MT_MOON_1,$08,Show
db MT_MOON_1,$09,Show
db MT_MOON_1,$0A,Show
db MT_MOON_1,$0B,Show
db MT_MOON_1,$0C,Show
db MT_MOON_1,$0D,Show
-MapHS3D: ; cc31 (3:4c31)
- db MT_MOON_3,$06,Show
+MapHS3D: ; c9d9 (3:49d9)
+ db MT_MOON_3,$02,Hide
+ db MT_MOON_3,$06,Hide
db MT_MOON_3,$07,Show
db MT_MOON_3,$08,Show
db MT_MOON_3,$09,Show
-MapHS60: ; cc3d (3:4c3d)
+ db MT_MOON_3,$0A,Show
+MapHS60: ; c9eb (3:49eb)
db SS_ANNE_2,$02,Hide
-MapHS66: ; cc40 (3:4c40)
+MapHS66: ; c9ee (3:49ee)
db SS_ANNE_8,$0A,Show
-MapHS67: ; cc43 (3:4c43)
+MapHS67: ; c9f1 (3:49f1)
db SS_ANNE_9,$06,Show
db SS_ANNE_9,$09,Show
-MapHS68: ; cc49 (3:4c49)
+MapHS68: ; c9f7 (3:49f7)
db SS_ANNE_10,$09,Show
db SS_ANNE_10,$0A,Show
db SS_ANNE_10,$0B,Show
-MapHSC6: ; cc52 (3:4c52)
+MapHSC6: ; ca00 (3:4a00)
db VICTORY_ROAD_3,$05,Show
db VICTORY_ROAD_3,$06,Show
db VICTORY_ROAD_3,$0A,Show
-MapHSC7: ; cc5b (3:4c5b)
+MapHSC7: ; ca09 (3:4a09)
db ROCKET_HIDEOUT_1,$06,Show
db ROCKET_HIDEOUT_1,$07,Show
-MapHSC8: ; cc61 (3:4c61)
+MapHSC8: ; ca0f (3:4a0f)
db ROCKET_HIDEOUT_2,$02,Show
db ROCKET_HIDEOUT_2,$03,Show
db ROCKET_HIDEOUT_2,$04,Show
db ROCKET_HIDEOUT_2,$05,Show
-MapHSC9: ; cc6d (3:4c6d)
+MapHSC9: ; ca1b (3:4a1b)
db ROCKET_HIDEOUT_3,$03,Show
db ROCKET_HIDEOUT_3,$04,Show
-MapHSCA: ; cc73 (3:4c73)
+MapHSCA: ; ca21 (3:4a21)
db ROCKET_HIDEOUT_4,$01,Show
+ db ROCKET_HIDEOUT_4,$02,Hide
+ db ROCKET_HIDEOUT_4,$03,Hide
db ROCKET_HIDEOUT_4,$05,Show
db ROCKET_HIDEOUT_4,$06,Show
db ROCKET_HIDEOUT_4,$07,Show
db ROCKET_HIDEOUT_4,$08,Hide
db ROCKET_HIDEOUT_4,$09,Hide
-MapHSCF: ; cc85 (3:4c85)
+MapHSCF: ; ca39 (3:4a39)
db SILPH_CO_2F,$01,Show
db SILPH_CO_2F,$02,Show
db SILPH_CO_2F,$03,Show
db SILPH_CO_2F,$04,Show
db SILPH_CO_2F,$05,Show
-MapHSD0: ; cc94 (3:4c94)
+MapHSD0: ; ca48 (3:4a48)
db SILPH_CO_3F,$02,Show
db SILPH_CO_3F,$03,Show
db SILPH_CO_3F,$04,Show
-MapHSD1: ; cc9d (3:4c9d)
+MapHSD1: ; ca51 (3:4a51)
db SILPH_CO_4F,$02,Show
db SILPH_CO_4F,$03,Show
db SILPH_CO_4F,$04,Show
db SILPH_CO_4F,$05,Show
db SILPH_CO_4F,$06,Show
db SILPH_CO_4F,$07,Show
-MapHSD2: ; ccaf (3:4caf)
+MapHSD2: ; ca63 (3:4a63)
db SILPH_CO_5F,$02,Show
db SILPH_CO_5F,$03,Show
db SILPH_CO_5F,$04,Show
@@ -480,13 +486,13 @@ MapHSD2: ; ccaf (3:4caf)
db SILPH_CO_5F,$06,Show
db SILPH_CO_5F,$07,Show
db SILPH_CO_5F,$08,Show
-MapHSD3: ; ccc4 (3:4cc4)
+MapHSD3: ; ca78 (3:4a78)
db SILPH_CO_6F,$06,Show
db SILPH_CO_6F,$07,Show
db SILPH_CO_6F,$08,Show
db SILPH_CO_6F,$09,Show
db SILPH_CO_6F,$0A,Show
-MapHSD4: ; ccd3 (3:4cd3)
+MapHSD4: ; ca87 (3:4a87)
db SILPH_CO_7F,$05,Show
db SILPH_CO_7F,$06,Show
db SILPH_CO_7F,$07,Show
@@ -495,83 +501,93 @@ MapHSD4: ; ccd3 (3:4cd3)
db SILPH_CO_7F,$0A,Show
db SILPH_CO_7F,$0B,Show
db SILPH_CO_7F,$0C,Show
-MapHSD5: ; cceb (3:4ceb)
+MapHSD5: ; ca9f (3:4a9f)
db SILPH_CO_8F,$02,Show
db SILPH_CO_8F,$03,Show
db SILPH_CO_8F,$04,Show
-MapHSE9: ; ccf4 (3:4cf4)
+MapHSE9: ; caa8 (3:4aa8)
db SILPH_CO_9F,$02,Show
db SILPH_CO_9F,$03,Show
db SILPH_CO_9F,$04,Show
-MapHSEA: ; ccfd (3:4cfd)
+MapHSEA: ; cab1 (3:4ab1)
db SILPH_CO_10F,$01,Show
db SILPH_CO_10F,$02,Show
db SILPH_CO_10F,$03,Show
db SILPH_CO_10F,$04,Show
db SILPH_CO_10F,$05,Show
db SILPH_CO_10F,$06,Show
-MapHSEB: ; cd0f (3:4d0f)
+MapHSEB: ; cac3 (3:4ac3)
db SILPH_CO_11F,$03,Show
db SILPH_CO_11F,$04,Show
db SILPH_CO_11F,$05,Show
-MapHSF4: ; cd18 (3:4d18)
+ db SILPH_CO_11F,$06,Show
+MapHSF4: ; cacf (3:4acf)
db $F4,$02,Show
-MapHSD6: ; cd1b (3:4d1b)
+MapHSD6: ; cad2 (3:4ad2)
db MANSION_2,$02,Show
-MapHSD7: ; cd1e (3:4d1e)
+MapHSD7: ; cad5 (3:4ad5)
db MANSION_3,$03,Show
db MANSION_3,$04,Show
-MapHSD8: ; cd24 (3:4d24)
+MapHSD8: ; cadb (3:4adb)
db MANSION_4,$03,Show
db MANSION_4,$04,Show
db MANSION_4,$05,Show
db MANSION_4,$06,Show
db MANSION_4,$08,Show
-MapHSD9: ; cd33 (3:4d33)
+MapHSD9: ; caea (3:4aea)
db SAFARI_ZONE_EAST,$01,Show
db SAFARI_ZONE_EAST,$02,Show
db SAFARI_ZONE_EAST,$03,Show
db SAFARI_ZONE_EAST,$04,Show
-MapHSDA: ; cd3f (3:4d3f)
+MapHSDA: ; caf6 (3:4af6)
db SAFARI_ZONE_NORTH,$01,Show
db SAFARI_ZONE_NORTH,$02,Show
-MapHSDB: ; cd45 (3:4d45)
+MapHSDB: ; cafc (3:4afc)
db SAFARI_ZONE_WEST,$01,Show
db SAFARI_ZONE_WEST,$02,Show
db SAFARI_ZONE_WEST,$03,Show
db SAFARI_ZONE_WEST,$04,Show
-MapHSDC: ; cd51 (3:4d51)
+MapHSDC: ; cb08 (3:4b08)
db SAFARI_ZONE_CENTER,$01,Show
-MapHSE2: ; cd54 (3:4d54)
+MapHSE2: ; cb0b (3:4b0b)
db UNKNOWN_DUNGEON_2,$01,Show
db UNKNOWN_DUNGEON_2,$02,Show
db UNKNOWN_DUNGEON_2,$03,Show
-MapHSE3: ; cd5d (3:4d5d)
+ db UNKNOWN_DUNGEON_2,$04,Show
+MapHSE3: ; cb17 (3:4b17)
db UNKNOWN_DUNGEON_3,$01,Show
db UNKNOWN_DUNGEON_3,$02,Show
db UNKNOWN_DUNGEON_3,$03,Show
-MapHS6C: ; cd66 (3:4d66)
+ db UNKNOWN_DUNGEON_3,$04,Show
+ db UNKNOWN_DUNGEON_3,$05,Show
+MapHS6C: ; cb26 (3:4b26)
db VICTORY_ROAD_1,$03,Show
db VICTORY_ROAD_1,$04,Show
-MapHS78: ; cd6c (3:4d6c)
+MapHS78: ; cb2c (3:4b2c)
db CHAMPIONS_ROOM,$02,Hide
-MapHSC0: ; cd6f (3:4d6f)
+MapHSC0: ; cb2f (3:4b2f)
db SEAFOAM_ISLANDS_1,$01,Show
db SEAFOAM_ISLANDS_1,$02,Show
-MapHS9F: ; cd75 (3:4d75)
+MapHS9F: ; cb35 (3:4b35)
db SEAFOAM_ISLANDS_2,$01,Hide
db SEAFOAM_ISLANDS_2,$02,Hide
-MapHSA0: ; cd7b (3:4d7b)
+MapHSA0: ; cb3b (3:4b3b)
db SEAFOAM_ISLANDS_3,$01,Hide
db SEAFOAM_ISLANDS_3,$02,Hide
-MapHSA1: ; cd81 (3:4d81)
+MapHSA1: ; cb41 (3:4b41)
db SEAFOAM_ISLANDS_4,$02,Show
db SEAFOAM_ISLANDS_4,$03,Show
db SEAFOAM_ISLANDS_4,$05,Hide
db SEAFOAM_ISLANDS_4,$06,Hide
-MapHSA2: ; cd8d (3:4d8d)
+MapHSA2: ; cb4d (3:4b4d)
db SEAFOAM_ISLANDS_5,$01,Hide
db SEAFOAM_ISLANDS_5,$02,Hide
db SEAFOAM_ISLANDS_5,$03,Show
- db $FF,$01,Show
+MapHS27Copy: ; cb56 (3:4b56)
+; doesn't seem to be referenced
+ db BLUES_HOUSE,$01,Show
+ db BLUES_HOUSE,$02,Hide
+ db BLUES_HOUSE,$03,Show
+
+ db $FF,$01,Show \ No newline at end of file
diff --git a/data/tileset_headers.asm b/data/tileset_headers.asm
index 27ccc8f0..c21474f8 100755
--- a/data/tileset_headers.asm
+++ b/data/tileset_headers.asm
@@ -1,26 +1,28 @@
-Tilesets: ; c7be (3:47be)
- tileset Overworld_Block, Overworld_GFX, Overworld_Coll, $FF,$FF,$FF, $52, OUTDOOR
- tileset RedsHouse1_Block, RedsHouse1_GFX, RedsHouse1_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Mart_Block, Mart_GFX, Mart_Coll, $18,$19,$1E, $FF, INDOOR
- tileset Forest_Block, Forest_GFX, Forest_Coll, $FF,$FF,$FF, $20, CAVE
- tileset RedsHouse2_Block, RedsHouse2_GFX, RedsHouse2_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Dojo_Block, Dojo_GFX, Dojo_Coll, $3A,$FF,$FF, $FF, OUTDOOR
- tileset Pokecenter_Block, Pokecenter_GFX, Pokecenter_Coll, $18,$19,$1E, $FF, INDOOR
- tileset Gym_Block, Gym_GFX, Gym_Coll, $3A,$FF,$FF, $FF, OUTDOOR
- tileset House_Block, House_GFX, House_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset ForestGate_Block, ForestGate_GFX, ForestGate_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Museum_Block, Museum_GFX, Museum_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Underground_Block, Underground_GFX, Underground_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Gate_Block, Gate_GFX, Gate_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Ship_Block, Ship_GFX, Ship_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset ShipPort_Block, ShipPort_GFX, ShipPort_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset Cemetery_Block, Cemetery_GFX, Cemetery_Coll, $12,$FF,$FF, $FF, INDOOR
- tileset Interior_Block, Interior_GFX, Interior_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Cavern_Block, Cavern_GFX, Cavern_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset Lobby_Block, Lobby_GFX, Lobby_Coll, $15,$36,$FF, $FF, INDOOR
- tileset Mansion_Block, Mansion_GFX, Mansion_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Lab_Block, Lab_GFX, Lab_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Club_Block, Club_GFX, Club_Coll, $07,$17,$FF, $FF, INDOOR
- tileset Facility_Block, Facility_GFX, Facility_Coll, $12,$FF,$FF, $FF, CAVE
- tileset Plateau_Block, Plateau_GFX, Plateau_Coll, $FF,$FF,$FF, $45, CAVE
- tileset BeachHouse_Block, BeachHouse_GFX, BeachHouse_Coll, $FF,$FF,$FF, $FF, INDOOR
+Tilesets: ; c558 (3:4558)
+ dr $c558,$c684
+
+ ;tileset Overworld_Block, Overworld_GFX, Overworld_Coll, $FF,$FF,$FF, $52, OUTDOOR
+ ;tileset RedsHouse1_Block, RedsHouse1_GFX, RedsHouse1_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Mart_Block, Mart_GFX, Mart_Coll, $18,$19,$1E, $FF, INDOOR
+ ;tileset Forest_Block, Forest_GFX, Forest_Coll, $FF,$FF,$FF, $20, CAVE
+ ;tileset RedsHouse2_Block, RedsHouse2_GFX, RedsHouse2_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Dojo_Block, Dojo_GFX, Dojo_Coll, $3A,$FF,$FF, $FF, OUTDOOR
+ ;tileset Pokecenter_Block, Pokecenter_GFX, Pokecenter_Coll, $18,$19,$1E, $FF, INDOOR
+ ;tileset Gym_Block, Gym_GFX, Gym_Coll, $3A,$FF,$FF, $FF, OUTDOOR
+ ;tileset House_Block, House_GFX, House_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset ForestGate_Block, ForestGate_GFX, ForestGate_Coll, $17,$32,$FF, $FF, INDOOR
+ ;tileset Museum_Block, Museum_GFX, Museum_Coll, $17,$32,$FF, $FF, INDOOR
+ ;tileset Underground_Block, Underground_GFX, Underground_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Gate_Block, Gate_GFX, Gate_Coll, $17,$32,$FF, $FF, INDOOR
+ ;tileset Ship_Block, Ship_GFX, Ship_Coll, $FF,$FF,$FF, $FF, CAVE
+ ;tileset ShipPort_Block, ShipPort_GFX, ShipPort_Coll, $FF,$FF,$FF, $FF, CAVE
+ ;tileset Cemetery_Block, Cemetery_GFX, Cemetery_Coll, $12,$FF,$FF, $FF, INDOOR
+ ;tileset Interior_Block, Interior_GFX, Interior_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Cavern_Block, Cavern_GFX, Cavern_Coll, $FF,$FF,$FF, $FF, CAVE
+ ;tileset Lobby_Block, Lobby_GFX, Lobby_Coll, $15,$36,$FF, $FF, INDOOR
+ ;tileset Mansion_Block, Mansion_GFX, Mansion_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Lab_Block, Lab_GFX, Lab_Coll, $FF,$FF,$FF, $FF, INDOOR
+ ;tileset Club_Block, Club_GFX, Club_Coll, $07,$17,$FF, $FF, INDOOR
+ ;tileset Facility_Block, Facility_GFX, Facility_Coll, $12,$FF,$FF, $FF, CAVE
+ ;tileset Plateau_Block, Plateau_GFX, Plateau_Coll, $FF,$FF,$FF, $45, CAVE
+ ;tileset BeachHouse_Block, BeachHouse_GFX, BeachHouse_Coll, $FF,$FF,$FF, $FF, INDOOR \ No newline at end of file
diff --git a/engine/bank3d/bank3d_battle.asm b/engine/bank3d/bank3d_battle.asm
index 50df865e..51071db2 100644
--- a/engine/bank3d/bank3d_battle.asm
+++ b/engine/bank3d/bank3d_battle.asm
@@ -51,10 +51,7 @@ asm_f601d: ; f601d (f:601d)
ld a,[W_LONEATTACKNO]
and a
jp z,InitBattle_Common
- ld hl,Func_f430a
- ld b,BANK(Func_f430a)
- ld d,$4
- call Bankswitch ; useless since already in bank3d
+ callabd_Func_f430a $4 ; useless since already in bank3d
jp InitBattle_Common
InitWildBattle: ; f607c (3d:607c)
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index 4ee107cd..b0fa107e 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -247,10 +247,7 @@ BillsPCDeposit: ; 2156d (8:556d)
ld a, [wcf91]
call PlayCry
.asm_215cf
- ld hl, Func_f430a
- ld b, BANK(Func_f430a)
- ld d, $7
- call Bankswitch
+ callabd_Func_f430a $7
ld a, PARTY_TO_BOX
ld [wMoveMonType], a
call MoveMon
diff --git a/macros.asm b/macros.asm
index ee062956..3db547dd 100644
--- a/macros.asm
+++ b/macros.asm
@@ -97,6 +97,20 @@ callab: MACRO
call Bankswitch
ENDM
+calladb_Func_f430a: MACRO
+ ld hl, Func_f430a
+ ld d, \1
+ ld b, BANK(Func_f430a)
+ call Bankswitch
+ ENDM
+
+callabd_Func_f430a: MACRO
+ ld hl, Func_f430a
+ ld b, BANK(Func_f430a)
+ ld d, \1
+ call Bankswitch
+ ENDM
+
jpba: MACRO
ld b, BANK(\1)
ld hl, \1
diff --git a/main.asm b/main.asm
index 57cc2438..8bea15ac 100755
--- a/main.asm
+++ b/main.asm
@@ -2262,8 +2262,7 @@ PrintSafariZoneSteps: ; c52f (3:452f)
cp UNKNOWN_DUNGEON_2
ret nc
coord hl, 0, 0
- ld b, 3
- ld c, 7
+ lb bc, 3, 7
call TextBoxBorder
coord hl, 1, 1
ld de, wSafariSteps
@@ -2277,26 +2276,26 @@ PrintSafariZoneSteps: ; c52f (3:452f)
call PlaceString
ld a, [W_NUMSAFARIBALLS]
cp 10
- jr nc, .asm_c56d
+ jr nc, .numSafariBallsTwoDigits
coord hl, 5, 3
ld a, " "
ld [hl], a
-.asm_c56d
+.numSafariBallsTwoDigits
coord hl, 6, 3
ld de, W_NUMSAFARIBALLS
lb bc, 1, 2
jp PrintNumber
-SafariSteps: ; c579 (3:4579)
+SafariSteps: ; c2c4 (3:42c4)
db "/500@"
-SafariBallText: ; c57e (3:457e)
+SafariBallText: ; c5c9 (3:45c9)
db "BALL×× @"
-GetTileAndCoordsInFrontOfPlayer: ; c586 (3:4586)
+GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d4)
call GetPredefRegisters
-_GetTileAndCoordsInFrontOfPlayer: ; c589 (3:4589)
+_GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d4)
ld a, [W_YCOORD]
ld d, a
ld a, [W_XCOORD]
@@ -2333,7 +2332,7 @@ _GetTileAndCoordsInFrontOfPlayer: ; c589 (3:4589)
ld [wTileInFrontOfPlayer], a
ret
-GetTileTwoStepsInFrontOfPlayer: ; c5be (3:45be)
+GetTileTwoStepsInFrontOfPlayer: ; c309 (3:4309)
xor a
ld [$ffdb], a
ld hl, W_YCOORD
@@ -2381,18 +2380,10 @@ GetTileTwoStepsInFrontOfPlayer: ; c5be (3:45be)
ld [wTileInFrontOfPlayer], a
ret
-CheckForCollisionWhenPushingBoulder: ; c60b (3:460b)
+CheckForCollisionWhenPushingBoulder: ; c356 (3:4356)
call GetTileTwoStepsInFrontOfPlayer
- ld hl, W_TILESETCOLLISIONPTR
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.loop
- ld a, [hli]
- cp $ff
- jr z, .done ; if the tile two steps ahead is not passable
- cp c
- jr nz, .loop
+ call IsTilePassable
+ jr c, .done
ld hl, TilePairCollisionsLand
call CheckForTilePairCollisions2
ld a, $ff
@@ -2407,7 +2398,7 @@ CheckForCollisionWhenPushingBoulder: ; c60b (3:460b)
ret
; sets a to $ff if there is a collision and $00 if there is no collision
-CheckForBoulderCollisionWithSprites: ; c636 (3:4636)
+CheckForBoulderCollisionWithSprites: ; c378 (3:4378)
ld a, [wBoulderSpriteIndex]
dec a
swap a
@@ -2484,10 +2475,16 @@ CheckForBoulderCollisionWithSprites: ; c636 (3:4636)
xor a
ret
-ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
+ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
ld a, [wd730]
add a
jp c, .noBlackOut ; no black out if joypad states are being simulated
+ ld a, [wd493]
+ bit 7, a
+ jp nz, .noBlackOut
+ ld a, [wd72e]
+ bit 6, a
+ jp nz, .noBlackout
ld a, [wPartyCount]
and a
jp z, .noBlackOut
@@ -2540,6 +2537,12 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
ld a, $d0
ld [hSpriteIndexOrTextID], a
call DisplayTextID
+ callab Func_fce18
+ jr nc, .curMonNotPlayerPikachu
+ ld e, $3
+ callab Func_f0000
+ callab_Func_f430a_ld_d $9
+.curMonNotPlayerPikachu
pop de
pop hl
.nextMon
@@ -2597,30 +2600,47 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
ld [wOutOfBattleBlackout], a
ret
-LoadTilesetHeader: ; c754 (3:4754)
+Func_c4c7: ; c4c7 (3:44c7)
+ ld a, [wStepCounter]
+ and a
+ jr nz, .asm_c4de
+ call Random
+ and $1
+ jr z, .asm_c4de
+ callab_Func_f430a_ld_d $6
+.asm_c4de
+ ld hl, wd471
+ ld a, [hl]
+ cp $80
+ jr z, .asm_c4ef
+ jr c, .asm_c4ea
+ dec a
+ dec a
+.asm_c4ea
+ inc a
+ ld [hl], a
+ cp $80
+ ret nz
+.asm_c4ef
+ xor a
+ ld [wd49c], a
+ ret
+
+LoadTilesetHeader: ; c4f4 (3:44f4)
call GetPredefRegisters
push hl
ld d, 0
ld a, [W_CURMAPTILESET]
add a
add a
- ld b, a
- add a
- add b ; a = tileset * 12
- jr nc, .noCarry
- inc d
-.noCarry
ld e, a
ld hl, Tilesets
add hl, de
+ add hl, de
+ add hl, de
ld de, W_TILESETBANK
- ld c, $b
-.copyTilesetHeaderLoop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .copyTilesetHeaderLoop
+ ld bc, $b
+ call CopyData
ld a, [hl]
ld [hTilesetType], a
xor a
@@ -2634,13 +2654,13 @@ LoadTilesetHeader: ; c754 (3:4754)
call IsInArray
pop de
pop hl
- jr c, .asm_c797
+ jr c, .notDungeonTileset
ld a, [W_CURMAPTILESET]
ld b, a
ld a, [hPreviousTileset]
cp b
jr z, .done
-.asm_c797
+.notDungeonTileset
ld a, [wDestinationWarpID]
cp $ff
jr z, .done
@@ -2658,7 +2678,7 @@ INCLUDE "data/dungeon_tilesets.asm"
INCLUDE "data/tileset_headers.asm"
-IncrementDayCareMonExp: ; c8de (3:48de)
+IncrementDayCareMonExp: ; c684 (3:4684)
ld a, [W_DAYCARE_IN_USE]
and a
ret z
diff --git a/wram.asm b/wram.asm
index e8284909..0fcb8f7d 100755
--- a/wram.asm
+++ b/wram.asm
@@ -2532,7 +2532,11 @@ wd473:: ds 1
wd47a:: ds 1
- ds 30
+ ds 24
+
+wd493:: ds 1
+
+ ds 5
wUnknownSerialFlag_d499:: ds 1 ; d498
wUnknownSerialFlag_d49a:: ds 1 ; d499
diff --git a/yellow/main.asm b/yellow/main.asm
index ed853b80..a7dc5827 100755
--- a/yellow/main.asm
+++ b/yellow/main.asm
@@ -344,10 +344,452 @@ IsPlayerStandingOnDoorTileOrWarpTile: ; c1e6 (3:41e6)
ret
INCLUDE "data/warp_tile_ids.asm"
+
PrintSafariZoneSteps: ; c27b (3:427b)
- dr $c27b,$c2d4
+ ld a, [W_CURMAP]
+ cp SAFARI_ZONE_EAST
+ ret c
+ cp UNKNOWN_DUNGEON_2
+ ret nc
+ coord hl, 0, 0
+ lb bc, 3, 7
+ call TextBoxBorder
+ coord hl, 1, 1
+ ld de, wSafariSteps
+ lb bc, 2, 3
+ call PrintNumber
+ coord hl, 4, 1
+ ld de, SafariSteps
+ call PlaceString
+ coord hl, 1, 3
+ ld de, SafariBallText
+ call PlaceString
+ ld a, [W_NUMSAFARIBALLS]
+ cp 10
+ jr nc, .numSafariBallsTwoDigits
+ coord hl, 5, 3
+ ld a, " "
+ ld [hl], a
+.numSafariBallsTwoDigits
+ coord hl, 6, 3
+ ld de, W_NUMSAFARIBALLS
+ lb bc, 1, 2
+ jp PrintNumber
+
+SafariSteps: ; c2c4 (3:42c4)
+ db "/500@"
+
+SafariBallText: ; c5c9 (3:42c9)
+ db "BALL×× @"
+
+GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d1)
+ call GetPredefRegisters
+
_GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d4)
- dr $c2d4,$cb62
+ ld a, [W_YCOORD]
+ ld d, a
+ ld a, [W_XCOORD]
+ ld e, a
+ ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
+ and a ; cp SPRITE_FACING_DOWN
+ jr nz, .notFacingDown
+; facing down
+ aCoord 8, 11
+ inc d
+ jr .storeTile
+.notFacingDown
+ cp SPRITE_FACING_UP
+ jr nz, .notFacingUp
+; facing up
+ aCoord 8, 7
+ dec d
+ jr .storeTile
+.notFacingUp
+ cp SPRITE_FACING_LEFT
+ jr nz, .notFacingLeft
+; facing left
+ aCoord 6, 9
+ dec e
+ jr .storeTile
+.notFacingLeft
+ cp SPRITE_FACING_RIGHT
+ jr nz, .storeTile
+; facing right
+ aCoord 10, 9
+ inc e
+.storeTile
+ ld c, a
+ ld [wTileInFrontOfPlayer], a
+ ret
+
+GetTileTwoStepsInFrontOfPlayer: ; c309 (3:4309)
+ xor a
+ ld [$ffdb], a
+ ld hl, W_YCOORD
+ ld a, [hli]
+ ld d, a
+ ld e, [hl]
+ ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
+ and a ; cp SPRITE_FACING_DOWN
+ jr nz, .notFacingDown
+; facing down
+ ld hl, $ffdb
+ set 0, [hl]
+ aCoord 8, 13
+ inc d
+ jr .storeTile
+.notFacingDown
+ cp SPRITE_FACING_UP
+ jr nz, .notFacingUp
+; facing up
+ ld hl, $ffdb
+ set 1, [hl]
+ aCoord 8, 5
+ dec d
+ jr .storeTile
+.notFacingUp
+ cp SPRITE_FACING_LEFT
+ jr nz, .notFacingLeft
+; facing left
+ ld hl, $ffdb
+ set 2, [hl]
+ aCoord 4, 9
+ dec e
+ jr .storeTile
+.notFacingLeft
+ cp SPRITE_FACING_RIGHT
+ jr nz, .storeTile
+; facing right
+ ld hl, $ffdb
+ set 3, [hl]
+ aCoord 12, 9
+ inc e
+.storeTile
+ ld c, a
+ ld [wTileInFrontOfBoulderAndBoulderCollisionResult], a
+ ld [wTileInFrontOfPlayer], a
+ ret
+
+CheckForCollisionWhenPushingBoulder: ; c356 (3:4356)
+ call GetTileTwoStepsInFrontOfPlayer
+ call IsTilePassable
+ jr c, .done
+ ld hl, TilePairCollisionsLand
+ call CheckForTilePairCollisions2
+ ld a, $ff
+ jr c, .done ; if there is an elevation difference between the current tile and the one two steps ahead
+ ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult]
+ cp $15 ; stairs tile
+ ld a, $ff
+ jr z, .done ; if the tile two steps ahead is stairs
+ call CheckForBoulderCollisionWithSprites
+.done
+ ld [wTileInFrontOfBoulderAndBoulderCollisionResult], a
+ ret
+
+; sets a to $ff if there is a collision and $00 if there is no collision
+CheckForBoulderCollisionWithSprites: ; c378 (3:4378)
+ ld a, [wBoulderSpriteIndex]
+ dec a
+ swap a
+ ld d, 0
+ ld e, a
+ ld hl, wSpriteStateData2 + $14
+ add hl, de
+ ld a, [hli] ; map Y position
+ ld [$ffdc], a
+ ld a, [hl] ; map X position
+ ld [$ffdd], a
+ ld a, [W_NUMSPRITES]
+ ld c, a
+ ld de, $f
+ ld hl, wSpriteStateData2 + $14
+ ld a, [$ffdb]
+ and $3 ; facing up or down?
+ jr z, .pushingHorizontallyLoop
+.pushingVerticallyLoop
+ inc hl
+ ld a, [$ffdd]
+ cp [hl]
+ jr nz, .nextSprite1 ; if X coordinates don't match
+ dec hl
+ ld a, [hli]
+ ld b, a
+ ld a, [$ffdb]
+ rrca
+ jr c, .pushingDown
+; pushing up
+ ld a, [$ffdc]
+ dec a
+ jr .compareYCoords
+.pushingDown
+ ld a, [$ffdc]
+ inc a
+.compareYCoords
+ cp b
+ jr z, .failure
+.nextSprite1
+ dec c
+ jr z, .success
+ add hl, de
+ jr .pushingVerticallyLoop
+.pushingHorizontallyLoop
+ ld a, [hli]
+ ld b, a
+ ld a, [$ffdc]
+ cp b
+ jr nz, .nextSprite2
+ ld b, [hl]
+ ld a, [$ffdb]
+ bit 2, a
+ jr nz, .pushingLeft
+; pushing right
+ ld a, [$ffdd]
+ inc a
+ jr .compareXCoords
+.pushingLeft
+ ld a, [$ffdd]
+ dec a
+.compareXCoords
+ cp b
+ jr z, .failure
+.nextSprite2
+ dec c
+ jr z, .success
+ add hl, de
+ jr .pushingHorizontallyLoop
+.failure
+ ld a, $ff
+ ret
+.success
+ xor a
+ ret
+
+ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
+ ld a, [wd730]
+ add a
+ jp c, .noBlackOut ; no black out if joypad states are being simulated
+ ld a, [wd493]
+ bit 7, a
+ jp nz, .noBlackOut
+ ld a, [wd72e]
+ bit 6, a
+ jp nz, .noBlackOut
+ ld a, [wPartyCount]
+ and a
+ jp z, .noBlackOut
+ call IncrementDayCareMonExp
+ call Func_c4c7
+ ld a, [wStepCounter]
+ and $3 ; is the counter a multiple of 4?
+ jp nz, .skipPoisonEffectAndSound ; only apply poison damage every fourth step
+ ld [wWhichPokemon], a
+ ld hl, wPartyMon1Status
+ ld de, wPartySpecies
+.applyDamageLoop
+ ld a, [hl]
+ and (1 << PSN)
+ jr z, .nextMon2 ; not poisoned
+ dec hl
+ dec hl
+ ld a, [hld]
+ ld b, a
+ ld a, [hli]
+ or b
+ jr z, .nextMon ; already fainted
+; subtract 1 from HP
+ ld a, [hl]
+ dec a
+ ld [hld], a
+ inc a
+ jr nz, .noBorrow
+; borrow 1 from upper byte of HP
+ dec [hl]
+ inc hl
+ jr .nextMon
+.noBorrow
+ ld a, [hli]
+ or [hl]
+ jr nz, .nextMon ; didn't faint from damage
+; the mon fainted from the damage
+ push hl
+ inc hl
+ inc hl
+ ld [hl], a
+ ld a, [de]
+ ld [wd11e], a
+ push de
+ ld a, [wWhichPokemon]
+ ld hl, wPartyMonNicks
+ call GetPartyMonName
+ xor a
+ ld [wJoyIgnore], a
+ call EnableAutoTextBoxDrawing
+ ld a, $d0
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ callab Func_fce18
+ jr nc, .curMonNotPlayerPikachu
+ ld e, $3
+ callab Func_f0000
+ calladb_Func_f430a $9
+.curMonNotPlayerPikachu
+ pop de
+ pop hl
+.nextMon
+ inc hl
+ inc hl
+.nextMon2
+ inc de
+ ld a, [de]
+ inc a
+ jr z, .applyDamageLoopDone
+ ld bc, wPartyMon2 - wPartyMon1
+ add hl, bc
+ push hl
+ ld hl, wWhichPokemon
+ inc [hl]
+ pop hl
+ jr .applyDamageLoop
+.applyDamageLoopDone
+ ld hl, wPartyMon1Status
+ ld a, [wPartyCount]
+ ld d, a
+ ld e, 0
+.countPoisonedLoop
+ ld a, [hl]
+ and (1 << PSN)
+ or e
+ ld e, a
+ ld bc, wPartyMon2 - wPartyMon1
+ add hl, bc
+ dec d
+ jr nz, .countPoisonedLoop
+ ld a, e
+ and a ; are any party members poisoned?
+ jr z, .skipPoisonEffectAndSound
+ ld b, $2
+ predef ChangeBGPalColor0_4Frames ; change BG white to dark grey for 4 frames
+ ld a, SFX_POISONED
+ call PlaySound
+.skipPoisonEffectAndSound
+ predef AnyPartyAlive
+ ld a, d
+ and a
+ jr nz, .noBlackOut
+ call EnableAutoTextBoxDrawing
+ ld a, $d1
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ ld hl, wd72e
+ set 5, [hl]
+ ld a, $ff
+ jr .done
+.noBlackOut
+ xor a
+.done
+ ld [wOutOfBattleBlackout], a
+ ret
+
+Func_c4c7: ; c4c7 (3:44c7)
+ ld a, [wStepCounter]
+ and a
+ jr nz, .asm_c4de
+ call Random
+ and $1
+ jr z, .asm_c4de
+ calladb_Func_f430a $6
+.asm_c4de
+ ld hl, wd471
+ ld a, [hl]
+ cp $80
+ jr z, .asm_c4ef
+ jr c, .asm_c4ea
+ dec a
+ dec a
+.asm_c4ea
+ inc a
+ ld [hl], a
+ cp $80
+ ret nz
+.asm_c4ef
+ xor a
+ ld [wd49c], a
+ ret
+
+LoadTilesetHeader: ; c4f4 (3:44f4)
+ call GetPredefRegisters
+ push hl
+ ld d, 0
+ ld a, [W_CURMAPTILESET]
+ add a
+ add a
+ ld e, a
+ ld hl, Tilesets
+ add hl, de
+ add hl, de
+ add hl, de
+ ld de, W_TILESETBANK
+ ld bc, $b
+ call CopyData
+ ld a, [hl]
+ ld [hTilesetType], a
+ xor a
+ ld [$ffd8], a
+ pop hl
+ ld a, [W_CURMAPTILESET]
+ push hl
+ push de
+ ld hl, DungeonTilesets
+ ld de, $1
+ call IsInArray
+ pop de
+ pop hl
+ jr c, .notDungeonTileset
+ ld a, [W_CURMAPTILESET]
+ ld b, a
+ ld a, [hPreviousTileset]
+ cp b
+ jr z, .done
+.notDungeonTileset
+ ld a, [wDestinationWarpID]
+ cp $ff
+ jr z, .done
+ call LoadDestinationWarpPosition
+ ld a, [W_YCOORD]
+ and $1
+ ld [W_YBLOCKCOORD], a
+ ld a, [W_XCOORD]
+ and $1
+ ld [W_XBLOCKCOORD], a
+.done
+ ret
+
+INCLUDE "data/dungeon_tilesets.asm"
+
+INCLUDE "data/tileset_headers.asm"
+
+IncrementDayCareMonExp: ; c684 (3:4684)
+ ld a, [W_DAYCARE_IN_USE]
+ and a
+ ret z
+ ld hl, wDayCareMonExp + 2
+ inc [hl]
+ ret nz
+ dec hl
+ inc [hl]
+ ret nz
+ dec hl
+ inc [hl]
+ ld a, [hl]
+ cp $50
+ ret c
+ ld a, $50
+ ld [hl], a
+ ret
+
+INCLUDE "data/hide_show_data.asm"
+
LoadWildData: ; cb62 (3:4b62)
dr $cb62,$d2ed
UseItem_: ; d2ed (3:52ed)