summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/bank3c.asm2
-rwxr-xr-xengine/overworld/npc_movement_2.asm24
-rwxr-xr-xengine/predefs17.asm22
-rwxr-xr-xengine/predefs17_2.asm15
-rwxr-xr-xmain.asm128
-rwxr-xr-xscripts/cinnabargym2.asm78
-rwxr-xr-xscripts/cinnabargym3.asm64
-rwxr-xr-xscripts/mtmoon3_2.asm28
8 files changed, 200 insertions, 161 deletions
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index 44382257..2d9671f9 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -386,7 +386,7 @@ PikachuMovementData_f1f2c:
INCLUDE "scripts/celadondiner2.asm"
INCLUDE "scripts/safarizoneentrance2.asm"
-INCLUDE "scripts/cinnabargym2.asm"
+INCLUDE "scripts/cinnabargym3.asm"
INCLUDE "scripts/mtmoonpokecenter2.asm"
diff --git a/engine/overworld/npc_movement_2.asm b/engine/overworld/npc_movement_2.asm
new file mode 100755
index 00000000..c5e11aa0
--- /dev/null
+++ b/engine/overworld/npc_movement_2.asm
@@ -0,0 +1,24 @@
+FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02)
+ ld a, [wCurMap]
+ cp POKEMONTOWER_7
+ ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them
+ ld hl, RivalIDs
+ ld a, [wEngagedTrainerClass]
+ ld b, a
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .notRival
+ cp b
+ ret z ; the rival leaves after battling, so don't freeze him
+ jr .loop
+.notRival
+ ld a, [wSpriteIndex]
+ ld [H_SPRITEINDEX], a
+ jp SetSpriteMovementBytesToFF
+
+RivalIDs: ; eaa20 (3a:6a20)
+ db OPP_SONY1
+ db OPP_SONY2
+ db OPP_SONY3
+ db $ff
diff --git a/engine/predefs17.asm b/engine/predefs17.asm
index 49818543..a674b45a 100755
--- a/engine/predefs17.asm
+++ b/engine/predefs17.asm
@@ -1,15 +1,9 @@
-; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
-SetPartyMonTypes: ; 5db93 (17:5b93)
- call GetPredefRegisters
- ld bc, wPartyMon1Type - wPartyMon1 ; $5
- add hl, bc
- ld a, [wd11e]
- ld [wd0b5], a
- push hl
- call GetMonHeader
- pop hl
- ld a, [wMonHType1]
- ld [hli], a
- ld a, [wMonHType2]
- ld [hl], a
+; this function temporarily makes the starters (and Ivysaur) seen
+; so that the full Pokedex information gets displayed in Oak's lab
+StarterDex: ; 5c0dc (17:40dc)
+ ld a, %01001011 ; set starter flags
+ ld [wPokedexOwned], a
+ predef ShowPokedexData
+ xor a ; unset starter flags
+ ld [wPokedexOwned], a
ret
diff --git a/engine/predefs17_2.asm b/engine/predefs17_2.asm
new file mode 100755
index 00000000..49818543
--- /dev/null
+++ b/engine/predefs17_2.asm
@@ -0,0 +1,15 @@
+; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
+SetPartyMonTypes: ; 5db93 (17:5b93)
+ call GetPredefRegisters
+ ld bc, wPartyMon1Type - wPartyMon1 ; $5
+ add hl, bc
+ ld a, [wd11e]
+ ld [wd0b5], a
+ push hl
+ call GetMonHeader
+ pop hl
+ ld a, [wMonHType1]
+ ld [hli], a
+ ld a, [wMonHType2]
+ ld [hl], a
+ ret
diff --git a/main.asm b/main.asm
index f263f4be..ee5b8b25 100755
--- a/main.asm
+++ b/main.asm
@@ -12,10 +12,9 @@ PICS_3 EQU $B
PICS_4 EQU $C
PICS_5 EQU $D
+INCLUDE "home.asm"
-SECTION "home",ROM0
-INCLUDE "home.asm"
SECTION "bank01",ROMX,BANK[$01]
INCLUDE "data/facing.asm"
@@ -67,6 +66,7 @@ INCLUDE "engine/menu/players_pc.asm"
INCLUDE "engine/remove_pokemon.asm"
INCLUDE "engine/display_pokedex.asm"
+
SECTION "bank03",ROMX,BANK[$03]
INCLUDE "engine/joypad.asm"
@@ -108,6 +108,7 @@ INCLUDE "engine/overworld/npc_pathfinding.asm"
INCLUDE "engine/hp_bar.asm"
INCLUDE "engine/hidden_object_functions3.asm"
+
SECTION "Graphics", ROMX, BANK[GFX]
PokemonLogoJapanGraphics: INCBIN "gfx/pokemon_logo_japan.2bpp"
@@ -143,6 +144,7 @@ ShrinkPic2: INCBIN "pic/trainer/shrink2.pic"
INCLUDE "engine/menu/start_sub_menus.asm"
INCLUDE "engine/items/tms.asm"
+
SECTION "NPC Sprites 1", ROMX, BANK[NPC_SPRITES_1]
OakAideSprite: INCBIN "gfx/sprites/oak_aide.2bpp"
@@ -230,6 +232,7 @@ SeelSprite: INCBIN "gfx/sprites/seel.2bpp"
INCLUDE "engine/battle/moveEffects/substitute_effect.asm"
INCLUDE "engine/menu/pc.asm"
+
SECTION "bank06",ROMX,BANK[$06]
INCLUDE "data/mapHeaders/celadoncity.asm"
@@ -302,7 +305,9 @@ INCLUDE "engine/overworld/npc_movement.asm"
INCLUDE "engine/overworld/doors.asm"
INCLUDE "engine/overworld/ledges.asm"
+
SECTION "bank07",ROMX,BANK[$07]
+
INCLUDE "data/mapHeaders/cinnabarisland.asm"
INCLUDE "data/mapObjects/cinnabarisland.asm"
CinnabarIslandBlocks: INCBIN "maps/cinnabarisland.blk"
@@ -345,7 +350,7 @@ INCLUDE "data/mapHeaders/viridianmart.asm"
INCLUDE "scripts/viridianmart.asm"
INCLUDE "data/mapObjects/viridianmart.asm"
ViridianMartBlocks:
-CeladonMartBlocks:INCBIN "maps/viridianmart.blk"
+CeladonMartBlocks: INCBIN "maps/viridianmart.blk"
INCLUDE "data/mapHeaders/school.asm"
INCLUDE "scripts/school.asm"
@@ -473,6 +478,7 @@ INCLUDE "engine/menu/oaks_pc.asm"
INCLUDE "engine/hidden_object_functions7.asm"
+
SECTION "Pics 1", ROMX, BANK[PICS_1]
RhydonPicFront: INCBIN "pic/ymon/rhydon.pic"
@@ -539,6 +545,7 @@ TangelaPicBack: INCBIN "pic/monback/tangelab.pic"
INCLUDE "engine/battle/print_type.asm"
INCLUDE "engine/battle/save_trainer_name.asm"
+
SECTION "Pics 2", ROMX, BANK[PICS_2]
GrowlithePicFront: INCBIN "pic/ymon/growlithe.pic"
@@ -609,6 +616,7 @@ MoltresPicBack: INCBIN "pic/monback/moltresb.pic"
INCLUDE "engine/predefsA.asm"
INCLUDE "engine/battle/moveEffects/leech_seed_effect.asm"
+
SECTION "Pics 3", ROMX, BANK[PICS_3]
ArticunoPicFront: INCBIN "pic/ymon/articuno.pic"
@@ -695,6 +703,7 @@ Func_2fd6a: ; 2fd6a (b:7d6a)
INCLUDE "engine/battle/scale_sprites.asm"
INCLUDE "engine/game_corner_slots2.asm"
+
SECTION "Pics 4", ROMX, BANK[PICS_4]
DodrioPicFront: INCBIN "pic/ymon/dodrio.pic"
@@ -818,6 +827,7 @@ INCLUDE "engine/titlescreen2.asm"
INCLUDE "engine/slot_machine.asm"
INCLUDE "engine/game_corner_slots.asm"
+
SECTION "bank0E",ROMX,BANK[$0E]
INCLUDE "data/moves.asm"
@@ -842,6 +852,7 @@ SECTION "bank0F",ROMX,BANK[$0F]
INCLUDE "engine/battle/core.asm"
+
SECTION "bank10",ROMX,BANK[$10]
INCLUDE "engine/menu/pokedex.asm"
@@ -999,7 +1010,9 @@ SeafoamIslands5Blocks: INCBIN "maps/seafoamislands5.blk"
INCLUDE "engine/overworld/dungeon_warps.asm"
+
SECTION "bank12",ROMX,BANK[$12]
+
INCLUDE "data/mapHeaders/route7.asm"
INCLUDE "data/mapObjects/route7.asm"
Route7Blocks: INCBIN "maps/route7.blk" ; 48051
@@ -1159,35 +1172,7 @@ INCLUDE "data/mapHeaders/mtmoon3.asm"
INCLUDE "scripts/mtmoon3.asm"
INCLUDE "data/mapObjects/mtmoon3.asm"
MtMoon3Blocks: INCBIN "maps/mtmoon3.blk"
-
-MtMoon3Script_4a325: ; pikachu-related function?
- ld a, [wd472]
- bit 7, a
- ret z
- ld a, [wWalkBikeSurfState]
- and a
- ret nz
-
- push hl
- push bc
- callab GetPikachuFacingDirectionAndReturnToE
- pop bc
- pop hl
- ld a, b
- cp e
- ret nz
-
- push hl
- ld a, [wUpdateSpritesEnabled]
- push af
- ld a, $ff
- ld [wUpdateSpritesEnabled], a
- callab LoadPikachuShadowIntoVRAM
- pop af
- ld [wUpdateSpritesEnabled], a
- pop hl
- call Func_159b
- ret
+INCLUDE "scripts/mtmoon3_2.asm"
INCLUDE "data/mapHeaders/safarizonewest.asm"
INCLUDE "scripts/safarizonewest.asm"
@@ -1339,7 +1324,9 @@ INCLUDE "engine/menu/prize_menu.asm"
INCLUDE "engine/hidden_object_functions14.asm"
+
SECTION "bank15",ROMX,BANK[$15]
+
INCLUDE "data/mapHeaders/route2.asm"
INCLUDE "data/mapObjects/route2.asm"
Route2Blocks: INCBIN "maps/route2.blk" ; 54086
@@ -1514,6 +1501,7 @@ INCLUDE "engine/overworld/saffron_guards.asm"
SECTION "bank17",ROMX,BANK[$17]
+
CeruleanMartBlocks:
VermilionMartBlocks:
LavenderMartBlocks:
@@ -1538,13 +1526,7 @@ INCLUDE "data/mapHeaders/redshouse2f.asm"
INCLUDE "scripts/redshouse2f.asm"
INCLUDE "data/mapObjects/redshouse2f.asm"
-StarterDex:
- ld a, %01001011
- ld [wPokedexOwned], a
- predef ShowPokedexData
- xor a
- ld [wPokedexOwned], a
- ret
+INCLUDE "engine/predefs17.asm"
INCLUDE "data/mapHeaders/museum1f.asm"
INCLUDE "scripts/museum1f.asm"
@@ -1665,11 +1647,13 @@ VictoryRoad1Blocks: INCBIN "maps/victoryroad1.blk"
INCLUDE "engine/evolution.asm"
-INCLUDE "engine/predefs17.asm"
+INCLUDE "engine/predefs17_2.asm"
INCLUDE "engine/hidden_object_functions17.asm"
+
SECTION "bank18",ROMX,BANK[$18]
+
ViridianForestBlocks: INCBIN "maps/viridianforest.blk"
UndergroundPathNSBlocks: INCBIN "maps/undergroundpathns.blk"
UndergroundPathWEBlocks: INCBIN "maps/undergroundpathwe.blk"
@@ -1785,7 +1769,9 @@ SilphCo11Blocks: INCBIN "maps/silphco11.blk"
INCLUDE "engine/hidden_object_functions18.asm"
+
SECTION "bank19",ROMX,BANK[$19]
+
Overworld_GFX: INCBIN "gfx/tilesets/overworld.2bpp"
Overworld_Block: INCBIN "gfx/blocksets/overworld.bst"
RedsHouse1_GFX:
@@ -1803,8 +1789,10 @@ Interior_Block: INCBIN "gfx/blocksets/interior.bst"
Plateau_GFX: INCBIN "gfx/tilesets/plateau.t10.2bpp"
Plateau_Block: INCBIN "gfx/blocksets/plateau.bst"
+
SECTION "bank1A",ROMX,BANK[$1A]
-Unknown_68000: INCBIN "gfx/blueversion.1bpp"
+
+INCBIN "gfx/blueversion.1bpp" ; unused
Dojo_GFX:
Gym_GFX: INCBIN "gfx/tilesets/gym.2bpp"
@@ -1825,7 +1813,9 @@ Forest_Block: INCBIN "gfx/blocksets/forest.bst"
Facility_GFX: INCBIN "gfx/tilesets/facility.2bpp"
Facility_Block: INCBIN "gfx/blocksets/facility.bst"
+
SECTION "bank1B",ROMX,BANK[$1B]
+
Cemetery_GFX: INCBIN "gfx/tilesets/cemetery.t4.2bpp"
Cemetery_Block: INCBIN "gfx/blocksets/cemetery.bst"
Cavern_GFX: INCBIN "gfx/tilesets/cavern.t14.2bpp"
@@ -1841,6 +1831,7 @@ Club_Block: INCBIN "gfx/blocksets/club.bst"
Underground_GFX: INCBIN "gfx/tilesets/underground.t7.2bpp"
Underground_Block: INCBIN "gfx/blocksets/underground.bst"
+
SECTION "bank1C",ROMX,BANK[$1C]
INCLUDE "engine/gamefreak.asm"
@@ -1921,25 +1912,7 @@ INCLUDE "data/mapHeaders/cinnabargym.asm"
INCLUDE "scripts/cinnabargym.asm"
INCLUDE "data/mapObjects/cinnabargym.asm"
CinnabarGymBlocks: INCBIN "maps/cinnabargym.blk"
-
-CinnabarGymScript_753de:
- callab Func_f2150
- jp TextScriptEnd
-
-CinnabarGymScript_753e9:
- push hl
- ld hl, wd475
- bit 7, [hl]
- res 7, [hl]
- pop hl
- ret
-
-CinnabarGymScript_753f3:
- push hl
- ld hl, wd475
- bit 7, [hl]
- pop hl
- ret
+INCLUDE "scripts/cinnabargym2.asm"
INCLUDE "data/mapHeaders/lab1.asm"
INCLUDE "scripts/lab1.asm"
@@ -1999,6 +1972,7 @@ INCLUDE "engine/overworld/elevator.asm"
INCLUDE "engine/overworld/hidden_items.asm"
+
SECTION "bank1E",ROMX,BANK[$1E]
INCLUDE "engine/battle/animations.asm"
@@ -2014,16 +1988,20 @@ RedFishingRodTiles: INCBIN "gfx/red_fishingrod_tiles.2bpp"
INCLUDE "data/animations.asm"
+
SECTION "bank2f",ROMX[$5000],BANK[$2F]
INCLUDE "engine/bg_map_attributes.asm"
+
SECTION "bank30",ROMX,BANK[$30]
; This whole bank is garbage data.
INCBIN "engine/bank30.bin"
+
SECTION "bank39",ROMX,BANK[$39]
+
Pic_e4000: ; e4000
INCBIN "gfx/pikachu/unknown_e4000.pic"
GFX_e40cc: ; e40cc
@@ -2139,7 +2117,9 @@ INCBIN "gfx/pikachu/unknown_e7b83.2bpp"
GFX_e7d13: ; e7d13
INCBIN "gfx/pikachu/unknown_e7d13.2bpp"
+
SECTION "bank3A",ROMX,BANK[$3A]
+
INCLUDE "text/monster_names.asm"
INCLUDE "engine/overworld/is_player_just_outside_map.asm"
@@ -2152,43 +2132,23 @@ SurfingPikachu3GraphicsEnd:
INCLUDE "engine/unknown_ea3ea.asm"
-FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02)
- ld a, [wCurMap]
- cp POKEMONTOWER_7
- ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them
- ld hl, RivalIDs
- ld a, [wEngagedTrainerClass]
- ld b, a
-.loop
- ld a, [hli]
- cp $ff
- jr z, .notRival
- cp b
- ret z ; the rival leaves after battling, so don't freeze him
- jr .loop
-.notRival
- ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
- jp SetSpriteMovementBytesToFF
-
-RivalIDs: ; eaa20 (3a:6a20)
- db OPP_SONY1
- db OPP_SONY2
- db OPP_SONY3
- db $ff
+INCLUDE "engine/overworld/npc_movement_2.asm"
SECTION "bank3C",ROMX,BANK[$3C]
INCLUDE "engine/bank3c.asm"
+
SECTION "bank3D",ROMX,BANK[$3D]
INCLUDE "engine/bank3d.asm"
+
SECTION "bank3E",ROMX,BANK[$3E]
INCLUDE "engine/bank3e.asm"
+
SECTION "bank3F",ROMX,BANK[$3F]
INCLUDE "engine/bank3f.asm"
diff --git a/scripts/cinnabargym2.asm b/scripts/cinnabargym2.asm
index a85a3206..00118fb5 100755
--- a/scripts/cinnabargym2.asm
+++ b/scripts/cinnabargym2.asm
@@ -1,64 +1,18 @@
-Func_f2133:
- CheckEvent EVENT_BEAT_BLAINE
- jr nz, .asm_627d9
- ld hl, CinnabarGymText_75ac2
- jr .asm_0b11d
-.asm_627d9
- ld hl, CinnabarGymText_75ac7
-.asm_0b11d
- call PrintText
+CinnabarGymScript_753de:
+ callab Func_f2150
+ jp TextScriptEnd
+
+CinnabarGymScript_753e9:
+ push hl
+ ld hl, wd475
+ bit 7, [hl]
+ res 7, [hl]
+ pop hl
ret
-CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2)
- TX_FAR _CinnabarGymText_75ac2
- db "@"
-
-CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7)
- TX_FAR _CinnabarGymText_75ac7
- db "@"
-
-Func_f2150:
- ld hl, TextPointers_f215d
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp PrintText
-
-TextPointers_f215d:
- dw CinnabarGymText_f2169
- dw CinnabarGymText_f216e
- dw CinnabarGymText_f2173
- dw CinnabarGymText_f2178
- dw CinnabarGymText_f217d
- dw CinnabarGymText_f2182
-
-CinnabarGymText_f2169:
- TX_FAR _CinnabarGymText_1
- db "@"
-
-CinnabarGymText_f216e:
- TX_FAR _CinnabarGymText_2
- db "@"
-
-CinnabarGymText_f2173:
- TX_FAR _CinnabarGymText_3
- db "@"
-
-CinnabarGymText_f2178:
- TX_FAR _CinnabarGymText_4
- db "@"
-
-CinnabarGymText_f217d:
- TX_FAR _CinnabarGymText_5
- db "@"
-
-CinnabarGymText_f2182:
- TX_FAR _CinnabarGymText_6
- db "@"
-
-CinnabarGymText_f2187:
- TX_FAR _CinnabarGymText_7 ; unused
- db "@"
+CinnabarGymScript_753f3:
+ push hl
+ ld hl, wd475
+ bit 7, [hl]
+ pop hl
+ ret
diff --git a/scripts/cinnabargym3.asm b/scripts/cinnabargym3.asm
new file mode 100755
index 00000000..a85a3206
--- /dev/null
+++ b/scripts/cinnabargym3.asm
@@ -0,0 +1,64 @@
+Func_f2133:
+ CheckEvent EVENT_BEAT_BLAINE
+ jr nz, .asm_627d9
+ ld hl, CinnabarGymText_75ac2
+ jr .asm_0b11d
+.asm_627d9
+ ld hl, CinnabarGymText_75ac7
+.asm_0b11d
+ call PrintText
+ ret
+
+CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2)
+ TX_FAR _CinnabarGymText_75ac2
+ db "@"
+
+CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7)
+ TX_FAR _CinnabarGymText_75ac7
+ db "@"
+
+Func_f2150:
+ ld hl, TextPointers_f215d
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp PrintText
+
+TextPointers_f215d:
+ dw CinnabarGymText_f2169
+ dw CinnabarGymText_f216e
+ dw CinnabarGymText_f2173
+ dw CinnabarGymText_f2178
+ dw CinnabarGymText_f217d
+ dw CinnabarGymText_f2182
+
+CinnabarGymText_f2169:
+ TX_FAR _CinnabarGymText_1
+ db "@"
+
+CinnabarGymText_f216e:
+ TX_FAR _CinnabarGymText_2
+ db "@"
+
+CinnabarGymText_f2173:
+ TX_FAR _CinnabarGymText_3
+ db "@"
+
+CinnabarGymText_f2178:
+ TX_FAR _CinnabarGymText_4
+ db "@"
+
+CinnabarGymText_f217d:
+ TX_FAR _CinnabarGymText_5
+ db "@"
+
+CinnabarGymText_f2182:
+ TX_FAR _CinnabarGymText_6
+ db "@"
+
+CinnabarGymText_f2187:
+ TX_FAR _CinnabarGymText_7 ; unused
+ db "@"
diff --git a/scripts/mtmoon3_2.asm b/scripts/mtmoon3_2.asm
new file mode 100755
index 00000000..bb9b25a8
--- /dev/null
+++ b/scripts/mtmoon3_2.asm
@@ -0,0 +1,28 @@
+MtMoon3Script_4a325: ; pikachu-related function?
+ ld a, [wd472]
+ bit 7, a
+ ret z
+ ld a, [wWalkBikeSurfState]
+ and a
+ ret nz
+
+ push hl
+ push bc
+ callab GetPikachuFacingDirectionAndReturnToE
+ pop bc
+ pop hl
+ ld a, b
+ cp e
+ ret nz
+
+ push hl
+ ld a, [wUpdateSpritesEnabled]
+ push af
+ ld a, $ff
+ ld [wUpdateSpritesEnabled], a
+ callab LoadPikachuShadowIntoVRAM
+ pop af
+ ld [wUpdateSpritesEnabled], a
+ pop hl
+ call Func_159b
+ ret