summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/HoF_room_pc.asm36
-rw-r--r--engine/add_party_mon.asm10
-rwxr-xr-xengine/animated_objects_3e.asm2
-rw-r--r--engine/bank3c.asm192
-rw-r--r--engine/bank3d.asm60
-rwxr-xr-xengine/battle/animations.asm1816
-rw-r--r--engine/battle/bank3d_battle.asm24
-rwxr-xr-xengine/battle/bank_e_misc.asm6
-rw-r--r--engine/battle/battle_transitions.asm86
-rw-r--r--engine/battle/common_text.asm46
-rwxr-xr-xengine/battle/core.asm666
-rw-r--r--engine/battle/decrement_pp.asm4
-rw-r--r--engine/battle/display_effectiveness.asm6
-rw-r--r--engine/battle/draw_hud_pokeball_gfx.asm30
-rwxr-xr-xengine/battle/end_of_battle.asm10
-rw-r--r--engine/battle/experience.asm18
-rw-r--r--engine/battle/get_trainer_name.asm3
-rw-r--r--engine/battle/ghost_marowak_anim.asm4
-rw-r--r--engine/battle/init_battle_variables.asm2
-rw-r--r--engine/battle/link_battle_versus_text.asm4
-rw-r--r--engine/battle/moveEffects/conversion_effect.asm8
-rw-r--r--engine/battle/moveEffects/drain_hp_effect.asm6
-rw-r--r--engine/battle/moveEffects/focus_energy_effect.asm4
-rw-r--r--engine/battle/moveEffects/haze_effect.asm10
-rw-r--r--engine/battle/moveEffects/heal_effect.asm8
-rw-r--r--engine/battle/moveEffects/leech_seed_effect.asm6
-rw-r--r--engine/battle/moveEffects/mist_effect.asm4
-rw-r--r--engine/battle/moveEffects/one_hit_ko_effect.asm2
-rw-r--r--engine/battle/moveEffects/paralyze_effect.asm2
-rw-r--r--engine/battle/moveEffects/pay_day_effect.asm4
-rw-r--r--engine/battle/moveEffects/recoil_effect.asm4
-rw-r--r--engine/battle/moveEffects/reflect_light_screen_effect.asm8
-rw-r--r--engine/battle/moveEffects/substitute_effect.asm8
-rw-r--r--engine/battle/moveEffects/transform_effect.asm4
-rw-r--r--engine/battle/print_type.asm10
-rwxr-xr-xengine/battle/read_trainer_party.asm2
-rwxr-xr-xengine/battle/safari_zone.asm6
-rw-r--r--engine/battle/save_trainer_name.asm46
-rw-r--r--engine/battle/scale_sprites.asm12
-rw-r--r--engine/battle/scroll_draw_trainer_pic.asm4
-rw-r--r--engine/battle/trainer_ai.asm112
-rwxr-xr-xengine/battle/trainer_pic_money_pointers.asm2
-rw-r--r--engine/battle/unused_stats_functions.asm4
-rw-r--r--engine/battle/wild_encounters.asm4
-rw-r--r--engine/bcd.asm43
-rw-r--r--engine/bg_map_attributes.asm12
-rwxr-xr-xengine/cable_club.asm64
-rwxr-xr-xengine/clear_save.asm4
-rw-r--r--engine/debug1.asm8
-rwxr-xr-xengine/diploma_3a.asm2
-rw-r--r--engine/display_pokedex.asm4
-rw-r--r--engine/draw_badges.asm6
-rwxr-xr-xengine/evolution.asm12
-rwxr-xr-xengine/evos_moves.asm39
-rwxr-xr-xengine/experience.asm8
-rw-r--r--engine/flag_action_predef.asm6
-rwxr-xr-xengine/game_corner_slots.asm8
-rwxr-xr-xengine/game_corner_slots2.asm6
-rwxr-xr-xengine/gamefreak.asm55
-rw-r--r--engine/get_bag_item_quantity.asm4
-rwxr-xr-xengine/give_pokemon.asm12
-rwxr-xr-xengine/hall_of_fame.asm47
-rw-r--r--engine/heal_party.asm4
-rwxr-xr-xengine/hidden_object_functions14.asm36
-rwxr-xr-xengine/hidden_object_functions17.asm132
-rwxr-xr-xengine/hidden_object_functions18.asm58
-rwxr-xr-xengine/hidden_object_functions3.asm34
-rwxr-xr-xengine/hidden_object_functions7.asm104
-rwxr-xr-xengine/hp_bar.asm21
-rwxr-xr-xengine/in_game_trades.asm66
-rw-r--r--engine/init_player_data.asm6
-rwxr-xr-xengine/intro.asm26
-rwxr-xr-xengine/items/itemfinder.asm4
-rwxr-xr-xengine/items/items.asm243
-rwxr-xr-xengine/items/tm_prices.asm2
-rwxr-xr-xengine/items/tmhm.asm4
-rwxr-xr-xengine/items/tms.asm4
-rw-r--r--engine/joypad.asm4
-rwxr-xr-xengine/learn_move.asm28
-rw-r--r--engine/load_mon_data.asm6
-rwxr-xr-xengine/load_pokedex_tiles.asm4
-rw-r--r--engine/menu/bills_pc.asm73
-rw-r--r--engine/menu/diploma_1.asm4
-rwxr-xr-xengine/menu/league_pc.asm10
-rw-r--r--engine/menu/link_menu.asm110
-rwxr-xr-xengine/menu/main_menu.asm34
-rwxr-xr-xengine/menu/naming_screen.asm38
-rwxr-xr-xengine/menu/oaks_pc.asm8
-rw-r--r--engine/menu/options.asm78
-rwxr-xr-xengine/menu/party_menu.asm38
-rwxr-xr-xengine/menu/pc.asm30
-rwxr-xr-xengine/menu/players_pc.asm42
-rwxr-xr-xengine/menu/pokedex.asm50
-rwxr-xr-xengine/menu/prize_menu.asm54
-rwxr-xr-xengine/menu/start_menu.asm16
-rwxr-xr-xengine/menu/start_sub_menus.asm62
-rwxr-xr-xengine/menu/status_screen.asm48
-rw-r--r--engine/menu/swap_items.asm4
-rw-r--r--engine/menu/text_ids1.asm22
-rw-r--r--engine/menu/text_ids2.asm66
-rwxr-xr-xengine/menu/vending_machine.asm20
-rwxr-xr-xengine/mon_party_sprites.asm30
-rw-r--r--engine/move_mon.asm4
-rwxr-xr-xengine/multiply_divide.asm4
-rwxr-xr-xengine/oak_speech.asm26
-rwxr-xr-xengine/oak_speech2.asm30
-rw-r--r--engine/overworld/advance_player_sprite.asm12
-rw-r--r--engine/overworld/boulders.asm6
-rwxr-xr-xengine/overworld/cable_club_npc.asm20
-rwxr-xr-xengine/overworld/card_key.asm10
-rw-r--r--engine/overworld/check_player_state.asm14
-rwxr-xr-xengine/overworld/cinnabar_lab.asm14
-rw-r--r--engine/overworld/clear_loadmapdata_vars.asm8
-rwxr-xr-xengine/overworld/cut.asm22
-rwxr-xr-xengine/overworld/cut2.asm6
-rw-r--r--engine/overworld/daycare_exp.asm4
-rwxr-xr-xengine/overworld/doors.asm28
-rw-r--r--engine/overworld/dungeon_warps.asm4
-rwxr-xr-xengine/overworld/elevator.asm4
-rwxr-xr-xengine/overworld/emotion_bubbles.asm10
-rw-r--r--engine/overworld/get_coords_tile_in_front_of_player.asm8
-rwxr-xr-xengine/overworld/healing_machine.asm34
-rwxr-xr-xengine/overworld/hidden_items.asm14
-rwxr-xr-xengine/overworld/hidden_objects.asm4
-rw-r--r--engine/overworld/is_player_just_outside_map.asm2
-rw-r--r--engine/overworld/item.asm6
-rwxr-xr-xengine/overworld/ledges.asm12
-rw-r--r--engine/overworld/load_tileset_header.asm4
-rw-r--r--engine/overworld/load_wild_data.asm4
-rw-r--r--engine/overworld/map_sprite_functions1.asm12
-rwxr-xr-xengine/overworld/map_sprites.asm31
-rw-r--r--engine/overworld/missable_objects.asm14
-rw-r--r--engine/overworld/movement.asm68
-rwxr-xr-xengine/overworld/npc_movement.asm38
-rwxr-xr-xengine/overworld/npc_movement_2.asm4
-rw-r--r--engine/overworld/npc_pathfinding.asm12
-rwxr-xr-xengine/overworld/oaks_aide.asm14
-rw-r--r--engine/overworld/oam.asm12
-rwxr-xr-xengine/overworld/pewter_guys.asm8
-rwxr-xr-xengine/overworld/player_animations.asm79
-rwxr-xr-xengine/overworld/pokecenter.asm26
-rwxr-xr-xengine/overworld/pokemart.asm24
-rw-r--r--engine/overworld/print_safari_steps.asm8
-rw-r--r--engine/overworld/replace_tile_block.asm8
-rwxr-xr-xengine/overworld/saffron_guards.asm4
-rw-r--r--engine/overworld/set_blackout_map.asm6
-rw-r--r--engine/overworld/special_warps.asm6
-rwxr-xr-xengine/overworld/ssanne.asm12
-rw-r--r--engine/overworld/step_functions.asm6
-rwxr-xr-xengine/overworld/trainers.asm30
-rw-r--r--engine/overworld/try_pushing_boulder.asm18
-rwxr-xr-xengine/palettes.asm114
-rwxr-xr-xengine/pikachu_emotions.asm248
-rwxr-xr-xengine/pikachu_follow.asm317
-rwxr-xr-xengine/pikachu_movement.asm855
-rwxr-xr-xengine/pikachu_pcm.asm4
-rwxr-xr-xengine/pikachu_pic_animation.asm856
-rwxr-xr-xengine/pikachu_status.asm14
-rwxr-xr-xengine/pokedex_rating.asm38
-rwxr-xr-xengine/predefs.asm19
-rwxr-xr-xengine/predefs17.asm2
-rwxr-xr-xengine/predefs17_2.asm2
-rwxr-xr-xengine/predefs7.asm4
-rw-r--r--engine/predefsA.asm6
-rw-r--r--engine/print_waiting_text.asm6
-rw-r--r--engine/printer.asm30
-rwxr-xr-xengine/printer/serial.asm30
-rwxr-xr-xengine/random.asm2
-rw-r--r--engine/remove_pokemon.asm4
-rwxr-xr-xengine/save.asm88
-rwxr-xr-xengine/slot_machine.asm110
-rwxr-xr-xengine/status_ailments.asm2
-rw-r--r--engine/subtract_paid_money.asm4
-rwxr-xr-xengine/surfing_minigame.asm1668
-rwxr-xr-xengine/titlescreen.asm46
-rwxr-xr-xengine/titlescreen2.asm18
-rwxr-xr-xengine/town_map.asm78
-rwxr-xr-xengine/trade.asm110
-rwxr-xr-xengine/trade2.asm6
-rwxr-xr-xengine/unknown_ea3ea.asm181
-rwxr-xr-xengine/vermilion_gym_trash_cans.asm108
-rwxr-xr-xengine/yellow_intro.asm18
182 files changed, 5295 insertions, 5715 deletions
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm
index 51575a9d..4a811116 100755
--- a/engine/HoF_room_pc.asm
+++ b/engine/HoF_room_pc.asm
@@ -39,18 +39,18 @@ HallOfFamePC:
jp Credits
FadeInCreditsText:
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ld hl, HoFGBPalettes
ld b, 4
-.asm_f0f91
+.loop
ld a, [hli]
ld [rBGP], a
call UpdateGBCPal_BGP
ld c, 5
call DelayFrames
dec b
- jr nz, .asm_f0f91
+ jr nz, .loop
ret
HoFGBPalettes:
@@ -76,7 +76,7 @@ DisplayCreditsMon:
call LoadScreenTilesFromBuffer2DisableBGTransfer
ld hl, vBGMap0
call CreditsCopyTileMapToVRAM
- ld a, %11111100
+ ld a, %11111100 ; make the mon a black silhouette
ld [rBGP], a
call UpdateGBCPal_BGP
ld hl, rLCDC
@@ -100,14 +100,13 @@ DisplayCreditsMon:
ret
ScrollCreditsMonLeft:
-.asm_f0fff
ld a, b
ld [hSCX], a
add 8
ld b, a
call DelayFrame
dec c
- jr nz, .asm_f0fff
+ jr nz, ScrollCreditsMonLeft
ret
GetNextCreditsMon:
@@ -129,10 +128,10 @@ INCLUDE "data/credit_mons.asm"
CreditsCopyTileMapToVRAM:
ld a, l
- ld [$ffbc], a
+ ld [H_AUTOBGTRANSFERDEST], a
ld a, h
- ld [$ffbd], a
- ld a, $1
+ ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
@@ -154,24 +153,24 @@ CreditsLoadFont:
ret
ZeroMemory:
-.asm_f1071
+; zero bc bytes at hl
ld [hl], 0
inc hl
inc hl
dec bc
ld a, b
or c
- jr nz, .asm_f1071
+ jr nz, ZeroMemory
ret
FillFourRowsWithBlack:
- ld bc, 4 * SCREEN_WIDTH
+ ld bc, SCREEN_WIDTH * 4
ld a, $7e
jp FillMemory
FillMiddleOfScreenWithWhite:
coord hl, 0, 4
- ld bc, 10 * SCREEN_WIDTH
+ ld bc, SCREEN_WIDTH * 10
ld a, " "
jp FillMemory
@@ -193,19 +192,19 @@ FillHalfOfScreenWithWhite:
ld b, 10
ld c, 10
ld a, " "
-.asm_f10a6
+.loop
push bc
push hl
-.asm_f10a8
+.innerLoop
ld [hli], a
dec c
- jr nz, .asm_f10a8
+ jr nz, .innerLoop
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_f10a6
+ jr nz, .loop
ret
Credits: ; Roll credits
@@ -287,7 +286,7 @@ ShowTheEndGFX:
call PlaceString
jp FadeInCreditsText
-TheEndTextString: ; 74229 (1d:4229)
+TheEndTextString:
; "T H E E N D"
db $60, " ", $62, " ", $64, " ", $64, " ", $66, " ", $68, "@"
db $61, " ", $63, " ", $65, " ", $65, " ", $67, " ", $69, "@"
@@ -322,4 +321,3 @@ INCLUDE "text/credits_text.asm"
TheEndGfx: ; 7473e (1d:473e) (7473f on blue)
INCBIN "gfx/theend.interleave.2bpp"
TheEndGfxEnd:
-
diff --git a/engine/add_party_mon.asm b/engine/add_party_mon.asm
index b20913dd..1aa6bd16 100644
--- a/engine/add_party_mon.asm
+++ b/engine/add_party_mon.asm
@@ -1,4 +1,4 @@
-_AddPartyMon: ; f161 (3:7161)
+_AddPartyMon:
; Adds a new mon to the player's or enemy's party.
; [wMonDataLocation] is used in an unusual way in this function.
; If the lower nybble is 0, the mon is added to the player's party, else the enemy's.
@@ -251,10 +251,10 @@ _AddPartyMon: ; f161 (3:7161)
scf
ret
-LoadMovePPs: ; f2f9 (3:72f9)
+LoadMovePPs:
call GetPredefRegisters
; fallthrough
-AddPartyMon_WriteMovePP: ; f2fc (3:72fc)
+AddPartyMon_WriteMovePP:
ld b, NUM_MOVES
.pploop
ld a, [hli] ; read move ID
@@ -283,7 +283,7 @@ AddPartyMon_WriteMovePP: ; f2fc (3:72fc)
; adds enemy mon [wcf91] (at position [wWhichPokemon] in enemy list) to own party
; used in the cable club trade center
-_AddEnemyMonToPlayerParty: ; f323 (3:7323)
+_AddEnemyMonToPlayerParty:
ld hl, wPartyCount
ld a, [hl]
cp PARTY_LENGTH
@@ -342,4 +342,4 @@ _AddEnemyMonToPlayerParty: ; f323 (3:7323)
ld hl, wPokedexSeen
call FlagAction ; add to seen pokemon
and a
- ret ; return success \ No newline at end of file
+ ret ; return success
diff --git a/engine/animated_objects_3e.asm b/engine/animated_objects_3e.asm
index 9d21ff8b..63a94350 100755
--- a/engine/animated_objects_3e.asm
+++ b/engine/animated_objects_3e.asm
@@ -1,4 +1,4 @@
-ClearObjectAnimationBuffers: ; fbb5a (3e:7b5a)
+ClearObjectAnimationBuffers:
ld hl, wAnimatedObjectsData
ld bc, wAnimatedObjectsDataEnd - wAnimatedObjectsData
xor a
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index 1f3c967f..7ae059e7 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -1,7 +1,7 @@
INCLUDE "engine/pikachu_pcm.asm"
INCLUDE "engine/overworld/advance_player_sprite.asm"
-ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)
+ResetStatusAndHalveMoneyOnBlackout:
; Reset player status on blackout.
xor a
ld [wd435], a
@@ -50,31 +50,31 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)
ld [wJoyIgnore], a
predef_jump HealParty
-Func_f02da:: ; f02da (3c:42da)
+SetMapSpecificScriptFlagsOnMapReload:
ld a, [wCurMap]
cp VERMILION_GYM ; ??? new thing about verm gym?
- jr z, .asm_f02ee
+ jr z, .verm_gym
ld c, a
- ld hl, Pointer_f02fa
-.asm_f02e5
+ ld hl, .MapList
+.search_loop
ld a, [hli]
cp c
- jr z, .asm_f02f4
+ jr z, .in_list
cp a, $ff
- jr nz, .asm_f02e5
+ jr nz, .search_loop
ret
-.asm_f02ee
+.verm_gym
ld hl, wCurrentMapScriptFlags
set 6, [hl]
ret
-.asm_f02f4
+.in_list
ld hl, wCurrentMapScriptFlags
set 5, [hl]
ret
-Pointer_f02fa:: ; f02fa (3c:42fa)
+.MapList ; f02fa (3c:42fa)
db SILPH_CO_2F
db SILPH_CO_3F
db SILPH_CO_4F
@@ -102,18 +102,18 @@ Pointer_f02fa:: ; f02fa (3c:42fa)
db AGATHAS_ROOM
db $ff
-BeachHouse_GFX:: ; f0314 (3c:4314)
+BeachHouse_GFX:
INCBIN "gfx/tilesets/beachhouse.2bpp"
-BeachHouse_Block:: ; f0914 (3c:4914)
+BeachHouse_Block:
INCBIN "gfx/blocksets/beachhouse.bst"
-Func_f0a54:: ; f0a54 (3c:4a54)
+Func_f0a54:
ret
-Func_f0a55:: ; f0a55 (3c:4a55)
+LoadUnusedBluesHouseMissableObjectData:
; referenced in an unused function
- ld hl, Pointer_f0a76 ; 3c:4a76
+ ld hl, .MissableObjectsMaps
.loop
ld a, [hli]
cp a, $ff
@@ -121,13 +121,13 @@ Func_f0a55:: ; f0a55 (3c:4a55)
ld b, a
ld a, [wCurMap]
cp b
- jr z, .asm_f0a68
+ jr z, .found
inc hl
inc hl
inc hl
jr .loop
-.asm_f0a68
+.found
ld a, [hli]
ld c, a
ld b, 0
@@ -138,16 +138,16 @@ Func_f0a55:: ; f0a55 (3c:4a55)
call CopyData
ret
-Pointer_f0a76:: ; f0a76 (3c:4a76)
- dbbw BLUES_HOUSE, Pointer_f0a7bEnd - Pointer_f0a7b, Pointer_f0a7b
+.MissableObjectsMaps:
+ dbbw BLUES_HOUSE, .End - .Start, .Start
db $ff
-Pointer_f0a7b:
+.Start:
db 1, HS_DAISY_SITTING_COPY
db 2, HS_DAISY_WALKING_COPY
db 3, HS_TOWN_MAP_COPY
db $ff
-Pointer_f0a7bEnd:
+.End:
TryApplyPikachuMovementData: ; f0a82
ld a, [wd472]
@@ -177,13 +177,13 @@ TryApplyPikachuMovementData: ; f0a82
callab RefreshPikachuFollow
ret
-Pic_f0abf: ; f0abf (3c:4abf)
+Pic_f0abf:
INCBIN "gfx/pikachu/unknown_f0abf.pic"
-GFX_f0b64: ; f0b64 (3c:4b64)
+GFX_f0b64:
INCBIN "gfx/pikachu/unknown_f0b64.2bpp"
-Pic_f0cf4: ; f0cf4 (3c:4cf4)
+Pic_f0cf4:
INCBIN "gfx/pikachu/unknown_f0cf4.pic"
-GFX_f0d82: ; f0d82 (3c:4d82)
+GFX_f0d82:
INCBIN "gfx/pikachu/unknown_f0d82.2bpp"
PokecenterChanseyText:
@@ -209,46 +209,19 @@ INCLUDE "scripts/oakslab2.asm"
INCLUDE "scripts/school2.asm"
INCLUDE "scripts/museum1f2.asm"
INCLUDE "scripts/pewterpokecenter2.asm"
-
-Func_f1e22:
- ld hl, PikachuMovementData_f1e2b
- ld b, SPRITE_FACING_RIGHT
- call TryApplyPikachuMovementData
- ret
-
-PikachuMovementData_f1e2b:
- db $00
- db $1d
- db $1f
- db $38
- db $3f
-
+INCLUDE "scripts/pokemontower2_2.asm"
INCLUDE "scripts/celadonmart3_2.asm"
INCLUDE "scripts/celadonmansion1_2.asm"
INCLUDE "scripts/celadonmansion3_2.asm"
-
-Func_f1f23:
- ld hl, PikachuMovementData_f1f2c
- ld b, SPRITE_FACING_DOWN
- call TryApplyPikachuMovementData
- ret
-
-PikachuMovementData_f1f2c:
- db $00
- db $20
- db $1e
- db $35
- db $3f
-
+INCLUDE "scripts/celadongamecorner2.asm"
INCLUDE "scripts/celadondiner2.asm"
INCLUDE "scripts/safarizoneentrance2.asm"
INCLUDE "scripts/cinnabargym3.asm"
-
INCLUDE "scripts/mtmoonpokecenter2.asm"
INCLUDE "data/mapHeaders/beach_house.asm"
INCLUDE "scripts/beach_house.asm"
-BeachHouseBlockdata: ; f2388 (3c:6388)
+BeachHouseBlockdata:
INCBIN "maps/beach_house.blk"
INCLUDE "data/mapObjects/beach_house.asm"
@@ -259,111 +232,4 @@ INCLUDE "scripts/ssanne9_2.asm"
INCLUDE "scripts/silphco11_2.asm"
INCLUDE "engine/overworld/hidden_objects.asm"
-
-Func_f2cd0:
- ld d, 0
- ld hl, Jumptable_f2ce1
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call JumpToAddress
- ld e, a
- ld d, 0
- ret
-
-Jumptable_f2ce1:
- dw Func_f2ceb
- dw Func_f2ceb
- dw Func_f2cee
- dw Func_f2cf4
- dw Func_f2d06
-
-Func_f2ceb:
- ld a, 0
- ret
-
-Func_f2cee:
- call Random
- and $1
- ret
-
-Func_f2cf4: ; should return to a, instead returns to b
- call Random
- swap a
- cp 1 * $ff / 3
- ld b, 0
- ret c
- cp 2 * $ff / 3
- ld b, 1
- ret c
- ld b, 2
- ret
-
-Func_f2d06:
- call Random
- and $3
- ret
-
-Func_f2d0c:
- ld hl, GymTrashCans3c
- ld a, [wGymTrashCanIndex]
- ld c, a
- ld b, 0
- ld a, 9
- call AddNTimes
- call AddNTimes ; ????
- ld a, [hli]
- ld [hGymTrashCanRandNumMask], a
- ld e, a
- push hl
- call Func_f2cd0
- pop hl
- add hl, de
- add hl, de
- ld a, [hli]
- ld [wSecondLockTrashCanIndex], a
- ld a, [hl]
- ld [wSecondLockTrashCanIndex + 1], a
- ret
-
-GymTrashCans3c: ; f2d31 (3c:6d31)
-; First byte: number of trashcan entries
-; Following four byte pairs: indices for the second trash can.
-; BUG: Rows that have 3 trashcan entries are sampled incorrectly.
-; The sampling occurs by taking a random number and seeing which
-; third of the range 0-255 the number falls in. However, it returns
-; that value to the wrong register, so the result is never used.
-; Instead of using an offset in [0,1,2], the offset is instead
-; in the full range 0-255. This results in truly random behavior.
- db 4
- db 1,3, 3,1, 1,-1, 3,-1
- db 3
- db 0,2, 2,4, 4,0, -1,-1
- db 4
- db 1,5, 5,1, 1,-1, 5,-1
- db 3
- db 0,4, 4,6, 6,0, -1,-1
- db 4
- db 1,3, 3,1, 5,5, 7,7
- db 3
- db 2,4, 4,8, 8,2, -1,-1
- db 3
- db 3,7, 7,9, 9,3, -1,-1
- db 4
- db 4,8, 6,10, 8,4, 10,6
- db 3
- db 5,7, 7,11, 11,5, -1,-1
- db 3
- db 6,10, 10,12, 12,6, -1,-1
- db 4
- db 7,9, 9,7, 11,13, 13,11
- db 3
- db 8,10, 10,14, 14,8, -1,-1
- db 4
- db 9,13, 13,9, 9,-1, 13,-1
- db 3
- db 10,12, 12,14, 14,10, -1,-1
- db 4
- db 11,13, 13,11, 11,-1, 13,-1
+INCLUDE "engine/vermilion_gym_trash_cans.asm"
diff --git a/engine/bank3d.asm b/engine/bank3d.asm
index fbf816b6..6efff351 100644
--- a/engine/bank3d.asm
+++ b/engine/bank3d.asm
@@ -3,7 +3,7 @@ INCLUDE "engine/battle/link_battle_versus_text.asm"
INCLUDE "engine/battle/unused_stats_functions.asm"
INCLUDE "engine/battle/scroll_draw_trainer_pic.asm"
-StarterPikachuBattleEntranceAnimation: ; f429f (3d:429f)
+StarterPikachuBattleEntranceAnimation:
coord hl, 0, 5
ld c, 0
.loop1
@@ -29,7 +29,7 @@ StarterPikachuBattleEntranceAnimation: ; f429f (3d:429f)
inc hl
jr .loop1
-.PlaceColumn: ; f42c2 (3d:f42c2)
+.PlaceColumn:
push hl
push de
push bc
@@ -53,7 +53,7 @@ StarterPikachuBattleEntranceAnimation: ; f429f (3d:429f)
INCLUDE "engine/battle/decrement_pp.asm"
-ModifyPikachuHappiness:: ; f430a (3d:430a)
+ModifyPikachuHappiness::
ld a, d
cp PIKAHAPPY_GYMLEADER
jr z, .checkanywhereinparty
@@ -142,7 +142,7 @@ ModifyPikachuHappiness:: ; f430a (3d:430a)
.done
ret
-HappinessChangeTable: ; f4385 (3d:4385)
+HappinessChangeTable:
; Increase
db 5, 3, 2 ; Gained a level
db 5, 3, 2 ; HP restore
@@ -157,7 +157,7 @@ HappinessChangeTable: ; f4385 (3d:4385)
db -5, -5, -10 ; Unknown (d = 10)
db -10, -10, -20 ; Unknown (d = 11)
-PikachuMoods: ; f43a6 (3d:43a6)
+PikachuMoods:
; Increase
db $8a ; Gained a level
db $83 ; HP restore
@@ -176,7 +176,7 @@ RedPicBack: INCBIN "pic/trainer/redb.pic"
OldManPic: INCBIN "pic/trainer/oldman.pic"
ProfOakPicBack: INCBIN "pic/ytrainer/prof.oakb.pic"
-LoadYellowTitleScreenGFX: ; f453f (3d:453f)
+LoadYellowTitleScreenGFX:
ld hl, PokemonLogoGraphics
ld de, vChars2
ld bc, 115 * $10
@@ -199,14 +199,14 @@ LoadYellowTitleScreenGFX: ; f453f (3d:453f)
call FarCopyData
ret
-TitleScreen_PlacePokemonLogo: ; f4578 (3d:4578)
+TitleScreen_PlacePokemonLogo:
coord hl, 2, 1
ld de, TitleScreenPokemonLogoTilemap
lb bc, 7, 16
call Bank3D_CopyBox
ret
-TitleScreen_PlacePikaSpeechBubble: ; f4585 (3d:4585)
+TitleScreen_PlacePikaSpeechBubble:
coord hl, 6, 4
ld de, TitleScreenPikaBubbleTilemap
lb bc, 4, 7
@@ -217,7 +217,7 @@ TitleScreen_PlacePikaSpeechBubble: ; f4585 (3d:4585)
ld [hl], $65
ret
-TitleScreen_PlacePikachu: ; f459a (3d:459a)
+TitleScreen_PlacePikachu:
coord hl, 4, 8
ld de, TitleScreenPikachuTilemap
lb bc, 9, 12
@@ -236,7 +236,7 @@ TitleScreen_PlacePikachu: ; f459a (3d:459a)
call CopyData
ret
-TitleScreenPikachuEyesOAMData: ; f45c7 (3d:45c7)
+TitleScreenPikachuEyesOAMData:
db $60, $40, $f1, $22
db $60, $48, $f0, $22
db $68, $40, $f3, $22
@@ -246,7 +246,7 @@ TitleScreenPikachuEyesOAMData: ; f45c7 (3d:45c7)
db $68, $60, $f2, $02
db $68, $68, $f3, $02
-Bank3D_CopyBox: ; f45e7 (3d:45e7)
+Bank3D_CopyBox:
; copy cxb (xy) screen area from de to hl
.row
push bc
@@ -265,7 +265,7 @@ Bank3D_CopyBox: ; f45e7 (3d:45e7)
jr nz, .row
ret
-TitleScreenPokemonLogoTilemap: ; f45f9 (3d:45f9)
+TitleScreenPokemonLogoTilemap:
; 16x7 (xy)
db $f4, $f4, $f4, $f4, $f4, $f4, $49, $f4, $72, $30, $f4, $f4, $f4, $f4, $f4, $f4
db $fd, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0a, $0b, $f4, $0d, $0e, $0f
@@ -275,18 +275,18 @@ TitleScreenPokemonLogoTilemap: ; f45f9 (3d:45f9)
db $f4, $41, $42, $43, $44, $45, $46, $47, $48, $f4, $4a, $4b, $4c, $4d, $4e, $4f
db $f4, $6a, $6b, $6c, $6d, $f4, $f4, $f4, $f4, $f4, $f4, $6e, $6f, $70, $71, $f4
-Pointer_f4669: ; f4669 (3d:4669)
+Pointer_f4669:
; Unreferenced
db $47, $48, $49, $4a, $4b, $4c, $4d, $4e, $4f, $5f
-TitleScreenPikaBubbleTilemap: ; f4673 (3d:4673)
+TitleScreenPikaBubbleTilemap:
; 7x4 (xy)
db $24, $25, $66, $67, $68, $69, $2a
db $50, $51, $52, $53, $54, $55, $56
db $57, $58, $59, $5a, $5b, $5c, $5d
db $6d, $5e, $5f, $60, $61, $62, $63
-TitleScreenPikachuTilemap: ; f468f (3d:468f)
+TitleScreenPikachuTilemap:
; 12x9 (xy)
db $80, $81, $82, $83, $00, $00, $00, $00, $84, $85, $86, $87
db $88, $89, $8a, $8b, $8c, $8d, $8d, $8e, $8f, $8a, $90, $91
@@ -306,11 +306,11 @@ YellowLogoGraphicsEnd:
INCLUDE "engine/menu/link_menu.asm"
-HandleMenuInputDouble: ; f5a40 (3d:5a40)
+HandleMenuInputDouble:
xor a
ld [wPartyMenuAnimMonEnabled], a
-HandleMenuInputPokemonSelectionDouble: ; f5a44 (3d:5a44)
+HandleMenuInputPokemonSelectionDouble:
ld a, [H_DOWNARROWBLINKCNT1]
push af
ld a, [H_DOWNARROWBLINKCNT2]
@@ -380,7 +380,7 @@ HandleMenuInputPokemonSelectionDouble: ; f5a44 (3d:5a44)
ld a, [hJoy5]
ret
-.UpdateCursorTile: ; f5ab0 (3d:5ab0)
+.UpdateCursorTile:
ld a, [wTopMenuItemY]
and a
jr z, .asm_f5ac0
@@ -436,7 +436,7 @@ HandleMenuInputPokemonSelectionDouble: ; f5a44 (3d:5a44)
ld [wLastMenuItem], a
ret
-PrintStrengthTxt: ; f5b06 (3d:5b06)
+PrintStrengthTxt:
ld hl, wd728
set 0, [hl]
ld hl, Text_f5b17
@@ -444,7 +444,7 @@ PrintStrengthTxt: ; f5b06 (3d:5b06)
ld hl, Text_f5b28
jp PrintText
-Text_f5b17: ; f5b17 (3d:5b17)
+Text_f5b17:
TX_FAR _UsedStrengthText ; 2d:417e
TX_ASM
ld a, [wcf91]
@@ -452,11 +452,11 @@ Text_f5b17: ; f5b17 (3d:5b17)
call Delay3
jp TextScriptEnd
-Text_f5b28: ; f5b28 (3d:5b28)
+Text_f5b28:
TX_FAR _CanMoveBouldersText ; 2d:4193
db "@"
-IsSurfingAllowed: ; f5b2d (3d:5b2d)
+IsSurfingAllowed:
; Returns whether surfing is allowed in bit 1 of wd728.
; Surfing isn't allowed on the Cycling Road or in the lowest level of the
; Seafoam Islands before the current has been slowed with boulders.
@@ -483,19 +483,19 @@ IsSurfingAllowed: ; f5b2d (3d:5b2d)
ld hl, CyclingIsFunText
jp PrintText
-CoordsData_f5b64: ; f5b64 (3d:5b64)
+CoordsData_f5b64:
db 11, 07
db $ff
-CurrentTooFastText: ; f5b67 (3d:5b67)
+CurrentTooFastText:
TX_FAR _CurrentTooFastText ; 2d:41ab
db "@"
-CyclingIsFunText: ; f5b6c (3d:5b6c)
+CyclingIsFunText:
TX_FAR _CyclingIsFunText ; 2d:41ca
db "@"
-AddItemToInventory_: ; f5b70 (3d:5b70)
+AddItemToInventory_:
ld a, [wItemQuantity] ; a = item quantity
push af
push bc
@@ -589,7 +589,7 @@ AddItemToInventory_: ; f5b70 (3d:5b70)
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [wWhichPokemon] = index (within the inventory) of the item to remove
; [wItemQuantity] = quantity to remove
-RemoveItemFromInventory_: ; f5be1 (3d:5be1)
+RemoveItemFromInventory_:
push hl
inc hl
ld a, [wWhichPokemon] ; index (within the inventory) of the item being removed
@@ -647,7 +647,7 @@ BlankLeaderNames: INCBIN "gfx/blank_leader_names.2bpp"
CircleTile: INCBIN "gfx/circle_tile.2bpp"
BadgeNumbersTileGraphics: INCBIN "gfx/badge_numbers.2bpp"
-ReadSuperRodData: ; f5ea4 (3d:5ea4)
+ReadSuperRodData:
ld a, [wCurMap]
ld c, a
ld hl, FishingSlots
@@ -667,7 +667,7 @@ ReadSuperRodData: ; f5ea4 (3d:5ea4)
ld de, $0
ret
-GenerateRandomFishingEncounter: ; f5ec1 (3d:5ec1)
+GenerateRandomFishingEncounter:
call Random
cp $66
jr c, .asm_f5ed6
@@ -694,4 +694,4 @@ INCLUDE "engine/multiply_divide.asm"
INCLUDE "engine/give_pokemon.asm"
INCLUDE "engine/battle/get_trainer_name.asm"
INCLUDE "engine/random.asm"
-INCLUDE "engine/predefs.asm" \ No newline at end of file
+INCLUDE "engine/predefs.asm"
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm
index 4f7cd2c8..bfbaa180 100755
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -1,53 +1,53 @@
; Draws a "frame block". Frame blocks are blocks of tiles that are put
; together to form frames in battle animations.
-DrawFrameBlock: ; 78000 (1e:4000)
- ld l,c
- ld h,b
- ld a,[hli]
- ld [wNumFBTiles],a
- ld a,[wFBDestAddr + 1]
- ld e,a
- ld a,[wFBDestAddr]
- ld d,a
+DrawFrameBlock:
+ ld l, c
+ ld h, b
+ ld a, [hli]
+ ld [wNumFBTiles], a
+ ld a, [wFBDestAddr + 1]
+ ld e, a
+ ld a, [wFBDestAddr]
+ ld d, a
xor a
- ld [wFBTileCounter],a ; loop counter
+ ld [wFBTileCounter], a ; loop counter
.loop
- ld a,[wFBTileCounter]
+ ld a, [wFBTileCounter]
inc a
- ld [wFBTileCounter],a
+ ld [wFBTileCounter], a
ld a, $2
ld [wdef5], a
- ld a,[wSubAnimTransform]
+ ld a, [wSubAnimTransform]
dec a
- jr z,.flipHorizontalAndVertical ; 1
+ jr z, .flipHorizontalAndVertical ; 1
dec a
- jp z,.flipHorizontalTranslateDown ; 2
+ jp z, .flipHorizontalTranslateDown ; 2
dec a
- jr z,.flipBaseCoords ; 3
+ jr z, .flipBaseCoords ; 3
.noTransformation
- ld a,[wBaseCoordY]
+ ld a, [wBaseCoordY]
add [hl]
- ld [de],a ; store Y
+ ld [de], a ; store Y
inc hl
inc de
- ld a,[wBaseCoordX]
+ ld a, [wBaseCoordX]
jr .finishCopying
.flipBaseCoords
- ld a,[wBaseCoordY]
- ld b,a
- ld a,136
+ ld a, [wBaseCoordY]
+ ld b, a
+ ld a, 136
sub b ; flip Y base coordinate
add [hl] ; Y offset
- ld [de],a ; store Y
+ ld [de], a ; store Y
inc hl
inc de
- ld a,[wBaseCoordX]
- ld b,a
- ld a,168
+ ld a, [wBaseCoordX]
+ ld b, a
+ ld a, 168
sub b ; flip X base coordinate
.finishCopying ; finish copying values to OAM (when [wSubAnimTransform] not 1 or 2)
add [hl] ; X offset
- ld [de],a ; store X
+ ld [de], a ; store X
cp 88
jr c, .asm_78056
ld a, [wdef5]
@@ -56,32 +56,32 @@ DrawFrameBlock: ; 78000 (1e:4000)
.asm_78056
inc hl
inc de
- ld a,[hli]
- add a,$31 ; base tile ID for battle animations
- ld [de],a ; store tile ID
+ ld a, [hli]
+ add a, $31 ; base tile ID for battle animations
+ ld [de], a ; store tile ID
inc de
- ld a,[hli]
+ ld a, [hli]
ld b, a
ld a, [wdef5]
or b
- ld [de],a ; store flags
+ ld [de], a ; store flags
inc de
jp .nextTile
.flipHorizontalAndVertical
- ld a,[wBaseCoordY]
+ ld a, [wBaseCoordY]
add [hl] ; Y offset
- ld b,a
- ld a,136
+ ld b, a
+ ld a, 136
sub b ; flip Y coordinate
- ld [de],a ; store Y
+ ld [de], a ; store Y
inc hl
inc de
- ld a,[wBaseCoordX]
+ ld a, [wBaseCoordX]
add [hl] ; X offset
- ld b,a
- ld a,168
+ ld b, a
+ ld a, 168
sub b ; flip X coordinate
- ld [de],a ; store X
+ ld [de], a ; store X
cp 88
jr c, .asm_78087
ld a, [wdef5]
@@ -90,41 +90,41 @@ DrawFrameBlock: ; 78000 (1e:4000)
.asm_78087
inc hl
inc de
- ld a,[hli]
- add a,$31 ; base tile ID for battle animations
- ld [de],a ; store tile ID
+ ld a, [hli]
+ add a, $31 ; base tile ID for battle animations
+ ld [de], a ; store tile ID
inc de
; toggle horizontal and vertical flip
- ld a,[hli] ; flags
+ ld a, [hli] ; flags
and a
- ld b,OAM_VFLIP | OAM_HFLIP
- jr z,.storeFlags1
- cp a,OAM_HFLIP
- ld b,OAM_VFLIP
- jr z,.storeFlags1
- cp a,OAM_VFLIP
- ld b,OAM_HFLIP
- jr z,.storeFlags1
- ld b,0
+ ld b, OAM_VFLIP | OAM_HFLIP
+ jr z, .storeFlags1
+ cp a, OAM_HFLIP
+ ld b, OAM_VFLIP
+ jr z, .storeFlags1
+ cp a, OAM_VFLIP
+ ld b, OAM_HFLIP
+ jr z, .storeFlags1
+ ld b, 0
.storeFlags1
ld a, [wdef5]
or b
- ld [de],a
+ ld [de], a
inc de
jp .nextTile
.flipHorizontalTranslateDown
- ld a,[wBaseCoordY]
+ ld a, [wBaseCoordY]
add [hl]
- add a,40 ; translate Y coordinate downwards
- ld [de],a ; store Y
+ add a, 40 ; translate Y coordinate downwards
+ ld [de], a ; store Y
inc hl
inc de
- ld a,[wBaseCoordX]
+ ld a, [wBaseCoordX]
add [hl]
- ld b,a
- ld a,168
+ ld b, a
+ ld a, 168
sub b ; flip X coordinate
- ld [de],a ; store X
+ ld [de], a ; store X
cp 88
jr c, .asm_780c8
ld a, [wdef5]
@@ -133,97 +133,97 @@ DrawFrameBlock: ; 78000 (1e:4000)
.asm_780c8
inc hl
inc de
- ld a,[hli]
- add a,$31 ; base tile ID for battle animations
- ld [de],a ; store tile ID
+ ld a, [hli]
+ add a, $31 ; base tile ID for battle animations
+ ld [de], a ; store tile ID
inc de
- ld a,[hli]
- bit 5,a ; is horizontal flip enabled?
- jr nz,.disableHorizontalFlip
+ ld a, [hli]
+ bit 5, a ; is horizontal flip enabled?
+ jr nz, .disableHorizontalFlip
.enableHorizontalFlip
- set 5,a
+ set 5, a
jr .storeFlags2
.disableHorizontalFlip
- res 5,a
+ res 5, a
.storeFlags2
ld b, a
ld a, [wdef5]
or b
- ld [de],a
+ ld [de], a
inc de
.nextTile
- ld a,[wFBTileCounter]
- ld c,a
- ld a,[wNumFBTiles]
+ ld a, [wFBTileCounter]
+ ld c, a
+ ld a, [wNumFBTiles]
cp c
- jp nz,.loop ; go back up if there are more tiles to draw
+ jp nz, .loop ; go back up if there are more tiles to draw
.afterDrawingTiles
- ld a,[wFBMode]
- cp a,2
- jr z,.advanceFrameBlockDestAddr; skip delay and don't clean OAM buffer
- ld a,[wSubAnimFrameDelay]
- ld c,a
+ ld a, [wFBMode]
+ cp a, 2
+ jr z, .advanceFrameBlockDestAddr; skip delay and don't clean OAM buffer
+ ld a, [wSubAnimFrameDelay]
+ ld c, a
call DelayFrames
- ld a,[wFBMode]
- cp a,3
- jr z,.advanceFrameBlockDestAddr ; skip cleaning OAM buffer
- cp a,4
- jr z,.done ; skip cleaning OAM buffer and don't advance the frame block destination address
- ld a,[wAnimationID]
- cp a,GROWL
- jr z,.resetFrameBlockDestAddr
+ ld a, [wFBMode]
+ cp a, 3
+ jr z, .advanceFrameBlockDestAddr ; skip cleaning OAM buffer
+ cp a, 4
+ jr z, .done ; skip cleaning OAM buffer and don't advance the frame block destination address
+ ld a, [wAnimationID]
+ cp a, GROWL
+ jr z, .resetFrameBlockDestAddr
call AnimationCleanOAM
.resetFrameBlockDestAddr
- ld hl,wOAMBuffer ; OAM buffer
- ld a,l
- ld [wFBDestAddr + 1],a
- ld a,h
- ld [wFBDestAddr],a ; set destination address to beginning of OAM buffer
+ ld hl, wOAMBuffer ; OAM buffer
+ ld a, l
+ ld [wFBDestAddr + 1], a
+ ld a, h
+ ld [wFBDestAddr], a ; set destination address to beginning of OAM buffer
ret
.advanceFrameBlockDestAddr
- ld a,e
- ld [wFBDestAddr + 1],a
- ld a,d
- ld [wFBDestAddr],a
+ ld a, e
+ ld [wFBDestAddr + 1], a
+ ld a, d
+ ld [wFBDestAddr], a
.done
ret
-PlayAnimation: ; 78124 (1e:4124)
+PlayAnimation:
xor a
- ld [$FF8B],a ; it looks like nothing reads this
- ld [wSubAnimTransform],a
- ld a,[wAnimationID] ; get animation number
+ ld [$FF8B], a ; it looks like nothing reads this
+ ld [wSubAnimTransform], a
+ ld a, [wAnimationID] ; get animation number
dec a
- ld l,a
- ld h,0
- add hl,hl
- ld de,AttackAnimationPointers ; animation command stream pointers
- add hl,de
- ld a,[hli]
- ld h,[hl]
- ld l,a
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, AttackAnimationPointers ; animation command stream pointers
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
.animationLoop
- ld a,[hli]
- cp a,$FF
- jr z,.AnimationOver
- cp a,$C0 ; is this subanimation or a special effect?
- jr c,.playSubanimation
+ ld a, [hli]
+ cp a, $FF
+ jr z, .AnimationOver
+ cp a, $C0 ; is this subanimation or a special effect?
+ jr c, .playSubanimation
.doSpecialEffect
- ld c,a
- ld de,SpecialEffectPointers
+ ld c, a
+ ld de, SpecialEffectPointers
.searchSpecialEffectTableLoop
- ld a,[de]
+ ld a, [de]
cp c
- jr z,.foundMatch
+ jr z, .foundMatch
inc de
inc de
inc de
jr .searchSpecialEffectTableLoop
.foundMatch
- ld a,[hli]
- cp a,$FF ; is there a sound to play?
- jr z,.skipPlayingSound
- ld [wAnimSoundID],a ; store sound
+ ld a, [hli]
+ cp a, $FF ; is there a sound to play?
+ jr z, .skipPlayingSound
+ ld [wAnimSoundID], a ; store sound
push hl
push de
call GetMoveSound
@@ -233,51 +233,51 @@ PlayAnimation: ; 78124 (1e:4124)
.skipPlayingSound
push hl
inc de
- ld a,[de]
- ld l,a
+ ld a, [de]
+ ld l, a
inc de
- ld a,[de]
- ld h,a
- ld de,.nextAnimationCommand
+ ld a, [de]
+ ld h, a
+ ld de, .nextAnimationCommand
push de
jp [hl] ; jump to special effect function
.playSubanimation
- ld c,a
- and a,%00111111
- ld [wSubAnimFrameDelay],a
+ ld c, a
+ and a, %00111111
+ ld [wSubAnimFrameDelay], a
xor a
sla c
rla
sla c
rla
- ld [wWhichBattleAnimTileset],a
- ld a,[hli] ; sound
- ld [wAnimSoundID],a ; store sound
- ld a,[hli] ; subanimation ID
- ld c,l
- ld b,h
- ld l,a
- ld h,0
- add hl,hl
- ld de,SubanimationPointers
- add hl,de
- ld a,l
- ld [wSubAnimAddrPtr],a
- ld a,h
- ld [wSubAnimAddrPtr + 1],a
- ld l,c
- ld h,b
+ ld [wWhichBattleAnimTileset], a
+ ld a, [hli] ; sound
+ ld [wAnimSoundID], a ; store sound
+ ld a, [hli] ; subanimation ID
+ ld c, l
+ ld b, h
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, SubanimationPointers
+ add hl, de
+ ld a, l
+ ld [wSubAnimAddrPtr], a
+ ld a, h
+ ld [wSubAnimAddrPtr + 1], a
+ ld l, c
+ ld h, b
push hl
- ld a,[rOBP0]
+ ld a, [rOBP0]
push af
- ld a,[wAnimPalette]
- ld [rOBP0],a
+ ld a, [wAnimPalette]
+ ld [rOBP0], a
call UpdateGBCPal_OBP0
call LoadAnimationTileset
call LoadSubanimation
call PlaySubanimation
pop af
- ld [rOBP0],a
+ ld [rOBP0], a
call UpdateGBCPal_OBP0
.nextAnimationCommand
pop hl
@@ -285,23 +285,23 @@ PlayAnimation: ; 78124 (1e:4124)
.AnimationOver ; 417B
ret
-LoadSubanimation: ; 781b5 (1e:41b5)
- ld a,[wSubAnimAddrPtr + 1]
- ld h,a
- ld a,[wSubAnimAddrPtr]
- ld l,a
- ld a,[hli]
- ld e,a
- ld a,[hl]
- ld d,a ; de = address of subanimation
- ld a,[de]
- ld b,a
- and a,31
- ld [wSubAnimCounter],a ; number of frame blocks
- ld a,b
- and a,%11100000
- cp a,5 << 5 ; is subanimation type 5?
- jr nz,.isNotType5
+LoadSubanimation:
+ ld a, [wSubAnimAddrPtr + 1]
+ ld h, a
+ ld a, [wSubAnimAddrPtr]
+ ld l, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a ; de = address of subanimation
+ ld a, [de]
+ ld b, a
+ and a, 31
+ ld [wSubAnimCounter], a ; number of frame blocks
+ ld a, b
+ and a, %11100000
+ cp a, 5 << 5 ; is subanimation type 5?
+ jr nz, .isNotType5
.isType5
call GetSubanimationTransform2
jr .saveTransformation
@@ -311,35 +311,35 @@ LoadSubanimation: ; 781b5 (1e:41b5)
; place the upper 3 bits of a into bits 0-2 of a before storing
srl a
swap a
- ld [wSubAnimTransform],a
- cp a,4 ; is the animation reversed?
- ld hl,0
- jr nz,.storeSubentryAddr
+ ld [wSubAnimTransform], a
+ cp a, 4 ; is the animation reversed?
+ ld hl, 0
+ jr nz, .storeSubentryAddr
; if the animation is reversed, then place the initial subentry address at the end of the list of subentries
- ld a,[wSubAnimCounter]
+ ld a, [wSubAnimCounter]
dec a
- ld bc,3
+ ld bc, 3
.loop
- add hl,bc
+ add hl, bc
dec a
- jr nz,.loop
+ jr nz, .loop
.storeSubentryAddr
inc de
- add hl,de
- ld a,l
- ld [wSubAnimSubEntryAddr],a
- ld a,h
- ld [wSubAnimSubEntryAddr + 1],a
+ add hl, de
+ ld a, l
+ ld [wSubAnimSubEntryAddr], a
+ ld a, h
+ ld [wSubAnimSubEntryAddr + 1], a
ret
; called if the subanimation type is not 5
; sets the transform to 0 (i.e. no transform) if it's the player's turn
; sets the transform to the subanimation type if it's the enemy's turn
-GetSubanimationTransform1: ; 781fb (1e:41fb)
- ld b,a
- ld a,[H_WHOSETURN]
+GetSubanimationTransform1:
+ ld b, a
+ ld a, [H_WHOSETURN]
and a
- ld a,b
+ ld a, b
ret nz
xor a
ret
@@ -347,36 +347,36 @@ GetSubanimationTransform1: ; 781fb (1e:41fb)
; called if the subanimation type is 5
; sets the transform to 2 (i.e. horizontal and vertical flip) if it's the player's turn
; sets the transform to 0 (i.e. no transform) if it's the enemy's turn
-GetSubanimationTransform2: ; 78203 (1e:4203)
- ld a,[H_WHOSETURN]
+GetSubanimationTransform2:
+ ld a, [H_WHOSETURN]
and a
- ld a,2 << 5
+ ld a, 2 << 5
ret z
xor a
ret
; loads tile patterns for battle animations
-LoadAnimationTileset: ; 7820b (1e:420b)
- ld a,[wWhichBattleAnimTileset]
+LoadAnimationTileset:
+ ld a, [wWhichBattleAnimTileset]
add a
add a
- ld hl,AnimationTilesetPointers
- ld e,a
- ld d,0
- add hl,de
- ld a,[hli]
- ld [wTempTilesetNumTiles],a ; number of tiles
- ld a,[hli]
- ld e,a
- ld a,[hl]
- ld d,a ; de = address of tileset
- ld hl,vSprites + $310
+ ld hl, AnimationTilesetPointers
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hli]
+ ld [wTempTilesetNumTiles], a ; number of tiles
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a ; de = address of tileset
+ ld hl, vSprites + $310
ld b, BANK(AnimationTileset1) ; ROM bank
- ld a,[wTempTilesetNumTiles]
- ld c,a ; number of tiles
+ ld a, [wTempTilesetNumTiles]
+ ld c, a ; number of tiles
jp CopyVideoData ; load tileset
-AnimationTilesetPointers: ; 7822b (1e:422b)
+AnimationTilesetPointers:
db 79 ; number of tiles
dw AnimationTileset1
db $FF
@@ -389,28 +389,28 @@ AnimationTilesetPointers: ; 7822b (1e:422b)
dw AnimationTileset1
db $FF
-AnimationTileset1: ; 78237 (1e:4237)
+AnimationTileset1:
INCBIN "gfx/attack_anim_1.2bpp"
-AnimationTileset2: ; 78757 (1e:4757)
+AnimationTileset2:
INCBIN "gfx/attack_anim_2.2bpp"
-SlotMachineTiles2: ; 78bde (1e:4c17)
+SlotMachineTiles2:
INCBIN "gfx/slotmachine2.2bpp"
-MoveAnimation: ; 78d97 (1e:4d97)
+MoveAnimation:
push hl
push de
push bc
push af
call WaitForSoundToFinish
call SetAnimationPalette
- ld a,[wAnimationID]
+ ld a, [wAnimationID]
and a
jr z, .animationFinished
; if throwing a Poké Ball, skip the regular animation code
- cp a,TOSS_ANIM
+ cp a, TOSS_ANIM
jr nz, .moveAnimation
ld de, .animationFinished
push de
@@ -418,72 +418,72 @@ MoveAnimation: ; 78d97 (1e:4d97)
.moveAnimation
; check if battle animations are disabled in the options
- ld a,[wOptions]
- bit 7,a
+ ld a, [wOptions]
+ bit 7, a
jr nz, .animationsDisabled
call ShareMoveAnimations
call PlayAnimation
jr .next4
.animationsDisabled
- ld c,30
+ ld c, 30
call DelayFrames
.next4
call PlayApplyingAttackAnimation ; shake the screen or flash the pic in and out (to show damage)
.animationFinished
call WaitForSoundToFinish
xor a
- ld [wSubAnimSubEntryAddr],a
- ld [wUnusedD09B],a
- ld [wSubAnimTransform],a
+ ld [wSubAnimSubEntryAddr], a
+ ld [wUnusedD09B], a
+ ld [wSubAnimTransform], a
dec a
- ld [wAnimSoundID],a
+ ld [wAnimSoundID], a
pop af
pop bc
pop de
pop hl
ret
-ShareMoveAnimations: ; 78ddf (1e:4ddf)
+ShareMoveAnimations:
; some moves just reuse animations from status conditions
- ld a,[H_WHOSETURN]
+ ld a, [H_WHOSETURN]
and a
ret z
; opponent’s turn
- ld a,[wAnimationID]
+ ld a, [wAnimationID]
- cp a,AMNESIA
- ld b,CONF_ANIM
+ cp a, AMNESIA
+ ld b, CONF_ANIM
jr z, .replaceAnim
- cp a,REST
- ld b,SLP_ANIM
+ cp a, REST
+ ld b, SLP_ANIM
ret nz
.replaceAnim
- ld a,b
- ld [wAnimationID],a
+ ld a, b
+ ld [wAnimationID], a
ret
-PlayApplyingAttackAnimation: ; 78df6 (1e:4df6)
+PlayApplyingAttackAnimation:
; Generic animation that shows after the move's individual animation
; Different animation depending on whether the move has an additional effect and on whose turn it is
- ld a,[wAnimationType]
+ ld a, [wAnimationType]
and a
ret z
dec a
add a
- ld c,a
- ld b,0
- ld hl,AnimationTypePointerTable
- add hl,bc
- ld a,[hli]
- ld h,[hl]
- ld l,a
+ ld c, a
+ ld b, 0
+ ld hl, AnimationTypePointerTable
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
jp [hl]
-AnimationTypePointerTable: ; 78e08 (1e:4e08)
+AnimationTypePointerTable:
dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect
dw ShakeScreenHorizontallyHeavy ; enemy mon has used a damaging move with a side effect
dw ShakeScreenHorizontallySlow ; enemy mon has used a non-damaging move
@@ -491,33 +491,33 @@ AnimationTypePointerTable: ; 78e08 (1e:4e08)
dw ShakeScreenHorizontallyLight ; player mon has used a damaging move with a side effect
dw ShakeScreenHorizontallySlow2 ; player mon has used a non-damaging move
-ShakeScreenVertically: ; 78e14 (1e:4e14)
+ShakeScreenVertically:
call PlayApplyingAttackSound
ld b, 8
jp AnimationShakeScreenVertically
-ShakeScreenHorizontallyHeavy: ; 78e1c (1e:4e1c)
+ShakeScreenHorizontallyHeavy:
call PlayApplyingAttackSound
ld b, 8
jp AnimationShakeScreenHorizontallyFast
-ShakeScreenHorizontallySlow: ; 78e24 (1e:4e24)
+ShakeScreenHorizontallySlow:
lb bc, 6, 2
jr AnimationShakeScreenHorizontallySlow
-BlinkEnemyMonSprite: ; 78e29 (1e:4e29)
+BlinkEnemyMonSprite:
call PlayApplyingAttackSound
jp AnimationBlinkEnemyMon
-ShakeScreenHorizontallyLight: ; 78e2f (1e:4e2f)
+ShakeScreenHorizontallyLight:
call PlayApplyingAttackSound
ld b, 2
jp AnimationShakeScreenHorizontallyFast
-ShakeScreenHorizontallySlow2: ; 78e37 (1e:4e37)
+ShakeScreenHorizontallySlow2:
lb bc, 3, 2
-AnimationShakeScreenHorizontallySlow: ; 78e3a (1e:4e3a)
+AnimationShakeScreenHorizontallySlow:
push bc
push bc
.loop1
@@ -542,7 +542,7 @@ AnimationShakeScreenHorizontallySlow: ; 78e3a (1e:4e3a)
jr nz, AnimationShakeScreenHorizontallySlow
ret
-SetAnimationPalette: ; 78e5c (1e:4e5c)
+SetAnimationPalette:
ld a, [wOnSGB]
and a
ld a, $e4
@@ -574,7 +574,7 @@ SetAnimationPalette: ; 78e5c (1e:4e5c)
call UpdateGBCPal_OBP1
ret
-Func_78e98: ; 78e98 (1e:4e98)
+Func_78e98:
call SaveScreenTilesToBuffer2
xor a
ld [H_AUTOBGTRANSFERENABLED], a
@@ -587,80 +587,80 @@ Func_78e98: ; 78e98 (1e:4e98)
call LoadScreenTilesFromBuffer2
ld h, vBGMap1 / $100
-WriteLowerByteOfBGMapAndEnableBGTransfer: ; 78eb1 (1e:4eb1)
+WriteLowerByteOfBGMapAndEnableBGTransfer:
ld l, vBGMap0 & $ff
call BattleAnimCopyTileMapToVRAM
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ret
-PlaySubanimation: ; 78ebb (1e:4ebb)
- ld a,[wAnimSoundID]
- cp a,$FF
- jr z,.skipPlayingSound
+PlaySubanimation:
+ ld a, [wAnimSoundID]
+ cp a, $FF
+ jr z, .skipPlayingSound
call GetMoveSound
call PlaySound
.skipPlayingSound
- ld hl,wOAMBuffer ; base address of OAM buffer
- ld a,l
- ld [wFBDestAddr + 1],a
- ld a,h
- ld [wFBDestAddr],a
- ld a,[wSubAnimSubEntryAddr + 1]
- ld h,a
- ld a,[wSubAnimSubEntryAddr]
- ld l,a
+ ld hl, wOAMBuffer ; base address of OAM buffer
+ ld a, l
+ ld [wFBDestAddr + 1], a
+ ld a, h
+ ld [wFBDestAddr], a
+ ld a, [wSubAnimSubEntryAddr + 1]
+ ld h, a
+ ld a, [wSubAnimSubEntryAddr]
+ ld l, a
.loop
push hl
- ld c,[hl] ; frame block ID
- ld b,0
- ld hl,FrameBlockPointers
- add hl,bc
- add hl,bc
- ld a,[hli]
- ld c,a
- ld a,[hli]
- ld b,a
+ ld c, [hl] ; frame block ID
+ ld b, 0
+ ld hl, FrameBlockPointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
pop hl
inc hl
push hl
- ld e,[hl] ; base coordinate ID
- ld d,0
- ld hl,FrameBlockBaseCoords ; base coordinate table
- add hl,de
- add hl,de
- ld a,[hli]
- ld [wBaseCoordY],a
- ld a,[hl]
- ld [wBaseCoordX],a
+ ld e, [hl] ; base coordinate ID
+ ld d, 0
+ ld hl, FrameBlockBaseCoords ; base coordinate table
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld [wBaseCoordY], a
+ ld a, [hl]
+ ld [wBaseCoordX], a
pop hl
inc hl
- ld a,[hl] ; frame block mode
- ld [wFBMode],a
+ ld a, [hl] ; frame block mode
+ ld [wFBMode], a
call DrawFrameBlock
call DoSpecialEffectByAnimationId ; run animation-specific function (if there is one)
- ld a,[wSubAnimCounter]
+ ld a, [wSubAnimCounter]
dec a
- ld [wSubAnimCounter],a
+ ld [wSubAnimCounter], a
ret z
- ld a,[wSubAnimSubEntryAddr + 1]
- ld h,a
- ld a,[wSubAnimSubEntryAddr]
- ld l,a
- ld a,[wSubAnimTransform]
- cp a,4 ; is the animation reversed?
- ld bc,3
- jr nz,.nextSubanimationSubentry
- ld bc,-3
+ ld a, [wSubAnimSubEntryAddr + 1]
+ ld h, a
+ ld a, [wSubAnimSubEntryAddr]
+ ld l, a
+ ld a, [wSubAnimTransform]
+ cp a, 4 ; is the animation reversed?
+ ld bc, 3
+ jr nz, .nextSubanimationSubentry
+ ld bc, -3
.nextSubanimationSubentry
- add hl,bc
- ld a,h
- ld [wSubAnimSubEntryAddr + 1],a
- ld a,l
- ld [wSubAnimSubEntryAddr],a
+ add hl, bc
+ ld a, h
+ ld [wSubAnimSubEntryAddr + 1], a
+ ld a, l
+ ld [wSubAnimSubEntryAddr], a
jp .loop
-AnimationCleanOAM: ; 78f30 (1e:4f30)
+AnimationCleanOAM:
push hl
push de
push bc
@@ -675,20 +675,20 @@ AnimationCleanOAM: ; 78f30 (1e:4f30)
; this runs after each frame block is drawn in a subanimation
; it runs a particular special effect based on the animation ID
-DoSpecialEffectByAnimationId: ; 78f3f (1e:4f3f)
+DoSpecialEffectByAnimationId:
push hl
push de
push bc
- ld a,[wAnimationID]
- ld hl,AnimationIdSpecialEffects
- ld de,3
+ ld a, [wAnimationID]
+ ld hl, AnimationIdSpecialEffects
+ ld de, 3
call IsInArray
- jr nc,.done
+ jr nc, .done
inc hl
- ld a,[hli]
- ld h,[hl]
- ld l,a
- ld de,.done
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .done
push de
jp [hl]
.done
@@ -698,7 +698,7 @@ DoSpecialEffectByAnimationId: ; 78f3f (1e:4f3f)
ret
; Format: Animation ID (1 byte), Address (2 bytes)
-AnimationIdSpecialEffects: ; 78f5d (1e:4f5d)
+AnimationIdSpecialEffects:
db MEGA_PUNCH
dw AnimationFlashScreen
@@ -773,40 +773,40 @@ AnimationIdSpecialEffects: ; 78f5d (1e:4f5d)
db $FF ; terminator
-DoBallTossSpecialEffects: ; 78fa6 (1e:4fa6)
- ld a,[wcf91]
- cp a,3 ; is it a Master Ball or Ultra Ball?
- jr nc,.skipFlashingEffect
+DoBallTossSpecialEffects:
+ ld a, [wcf91]
+ cp a, 3 ; is it a Master Ball or Ultra Ball?
+ jr nc, .skipFlashingEffect
.flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball
- ld a,[rOBP0]
- xor a,%00111100 ; complement colors 1 and 2
- ld [rOBP0],a
+ ld a, [rOBP0]
+ xor a, %00111100 ; complement colors 1 and 2
+ ld [rOBP0], a
call UpdateGBCPal_OBP0
.skipFlashingEffect
- ld a,[wSubAnimCounter]
- cp a,11 ; is it the beginning of the subanimation?
- jr nz,.skipPlayingSound
+ ld a, [wSubAnimCounter]
+ cp a, 11 ; is it the beginning of the subanimation?
+ jr nz, .skipPlayingSound
; if it is the beginning of the subanimation, play a sound
- ld a,SFX_BALL_TOSS
+ ld a, SFX_BALL_TOSS
call PlaySound
.skipPlayingSound
- ld a,[wIsInBattle]
- cp a,02 ; is it a trainer battle?
- jr z,.isTrainerBattle
- ld a,[wd11e]
- cp a,$10 ; is the enemy pokemon the Ghost Marowak?
+ ld a, [wIsInBattle]
+ cp a, 02 ; is it a trainer battle?
+ jr z, .isTrainerBattle
+ ld a, [wd11e]
+ cp a, $10 ; is the enemy pokemon the Ghost Marowak?
ret nz
; if the enemy pokemon is the Ghost Marowak, make it dodge during the last 3 frames
- ld a,[wSubAnimCounter]
- cp a,3
- jr z,.moveGhostMarowakLeft
- cp a,2
- jr z,.moveGhostMarowakLeft
- cp a,1
+ ld a, [wSubAnimCounter]
+ cp a, 3
+ jr z, .moveGhostMarowakLeft
+ cp a, 2
+ jr z, .moveGhostMarowakLeft
+ cp a, 1
ret nz
.moveGhostMarowakLeft
coord hl, 17, 0
- ld de,20
+ ld de, 20
lb bc, 7, 7
.loop
push hl
@@ -814,152 +814,152 @@ DoBallTossSpecialEffects: ; 78fa6 (1e:4fa6)
call AnimCopyRowRight ; move row of tiles left
pop bc
pop hl
- add hl,de
+ add hl, de
dec b
- jr nz,.loop
- ld a,%00001000
- ld [rNR10],a ; Channel 1 sweep register
+ jr nz, .loop
+ ld a, %00001000
+ ld [rNR10], a ; Channel 1 sweep register
ret
.isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame
- ld a,[wSubAnimCounter]
- cp a,3
+ ld a, [wSubAnimCounter]
+ cp a, 3
ret nz
dec a
- ld [wSubAnimCounter],a
+ ld [wSubAnimCounter], a
ret
-DoBallShakeSpecialEffects: ; 79001 (1e:5001)
- ld a,[wSubAnimCounter]
- cp a,4 ; is it the beginning of a shake?
- jr nz,.skipPlayingSound
+DoBallShakeSpecialEffects:
+ ld a, [wSubAnimCounter]
+ cp a, 4 ; is it the beginning of a shake?
+ jr nz, .skipPlayingSound
; if it is the beginning of a shake, play a sound and wait 2/3 of a second
- ld a,SFX_TINK
+ ld a, SFX_TINK
call PlaySound
- ld c,40
+ ld c, 40
call DelayFrames
.skipPlayingSound
- ld a,[wSubAnimCounter]
+ ld a, [wSubAnimCounter]
dec a
ret nz
; if it's the end of the ball shaking subanimation, check if more shakes are left and restart the subanimation
- ld a,[wNumShakes] ; number of shakes
+ ld a, [wNumShakes] ; number of shakes
dec a ; decrement number of shakes
- ld [wNumShakes],a
+ ld [wNumShakes], a
ret z
; if there are shakes left, restart the subanimation
- ld a,[wSubAnimSubEntryAddr]
- ld l,a
- ld a,[wSubAnimSubEntryAddr + 1]
- ld h,a
- ld de,-(4 * 3) ; 4 subentries and 3 bytes per subentry
- add hl,de
- ld a,l
- ld [wSubAnimSubEntryAddr],a
- ld a,h
- ld [wSubAnimSubEntryAddr + 1],a
- ld a,5 ; number of subentries in the ball shaking subanimation plus one
- ld [wSubAnimCounter],a
+ ld a, [wSubAnimSubEntryAddr]
+ ld l, a
+ ld a, [wSubAnimSubEntryAddr + 1]
+ ld h, a
+ ld de, -(4 * 3) ; 4 subentries and 3 bytes per subentry
+ add hl, de
+ ld a, l
+ ld [wSubAnimSubEntryAddr], a
+ ld a, h
+ ld [wSubAnimSubEntryAddr + 1], a
+ ld a, 5 ; number of subentries in the ball shaking subanimation plus one
+ ld [wSubAnimCounter], a
ret
; plays a sound after the second frame of the poof animation
-DoPoofSpecialEffects: ; 79039 (1e:5039)
- ld a,[wSubAnimCounter]
- cp a,5
+DoPoofSpecialEffects:
+ ld a, [wSubAnimCounter]
+ cp a, 5
ret nz
- ld a,SFX_BALL_POOF
+ ld a, SFX_BALL_POOF
jp PlaySound
-DoRockSlideSpecialEffects: ; 79044 (1e:5044)
- ld a,[wSubAnimCounter]
- cp a,12
+DoRockSlideSpecialEffects:
+ ld a, [wSubAnimCounter]
+ cp a, 12
ret nc
- cp a,8
- jr nc,.shakeScreen
- cp a,1
- jp z,AnimationFlashScreen ; if it's the end of the subanimation, flash the screen
+ cp a, 8
+ jr nc, .shakeScreen
+ cp a, 1
+ jp z, AnimationFlashScreen ; if it's the end of the subanimation, flash the screen
ret
; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically
.shakeScreen
- ld b,1
+ ld b, 1
predef PredefShakeScreenHorizontally ; shake horizontally
- ld b,1
+ ld b, 1
predef_jump PredefShakeScreenVertically ; shake vertically
-FlashScreenEveryEightFrameBlocks: ; 79062 (1e:5062)
- ld a,[wSubAnimCounter]
- and a,7 ; is the subanimation counter exactly 8?
- call z,AnimationFlashScreen ; if so, flash the screen
+FlashScreenEveryEightFrameBlocks:
+ ld a, [wSubAnimCounter]
+ and a, 7 ; is the subanimation counter exactly 8?
+ call z, AnimationFlashScreen ; if so, flash the screen
ret
; flashes the screen if the subanimation counter is divisible by 4
-FlashScreenEveryFourFrameBlocks: ; 7906b (1e:506b)
- ld a,[wSubAnimCounter]
- and a,3
- call z,AnimationFlashScreen
+FlashScreenEveryFourFrameBlocks:
+ ld a, [wSubAnimCounter]
+ and a, 3
+ call z, AnimationFlashScreen
ret
; used for Explosion and Selfdestruct
-DoExplodeSpecialEffects: ; 79074 (1e:5074)
- ld a,[wSubAnimCounter]
- cp a,1 ; is it the end of the subanimation?
- jr nz,FlashScreenEveryFourFrameBlocks
+DoExplodeSpecialEffects:
+ ld a, [wSubAnimCounter]
+ cp a, 1 ; is it the end of the subanimation?
+ jr nz, FlashScreenEveryFourFrameBlocks
; if it's the end of the subanimation, make the attacking pokemon disappear
coord hl, 1, 5
jp AnimationHideMonPic ; make pokemon disappear
; flashes the screen when subanimation counter is 1 modulo 4
-DoBlizzardSpecialEffects: ; 79081 (1e:5081)
- ld a,[wSubAnimCounter]
- cp a,13
- jp z,AnimationFlashScreen
- cp a,9
- jp z,AnimationFlashScreen
- cp a,5
- jp z,AnimationFlashScreen
- cp a,1
- jp z,AnimationFlashScreen
+DoBlizzardSpecialEffects:
+ ld a, [wSubAnimCounter]
+ cp a, 13
+ jp z, AnimationFlashScreen
+ cp a, 9
+ jp z, AnimationFlashScreen
+ cp a, 5
+ jp z, AnimationFlashScreen
+ cp a, 1
+ jp z, AnimationFlashScreen
ret
; flashes the screen at 3 points in the subanimation
; unused
-FlashScreenUnused: ; 79099 (1e:5099)
- ld a,[wSubAnimCounter]
- cp a,14
- jp z,AnimationFlashScreen
- cp a,9
- jp z,AnimationFlashScreen
- cp a,2
- jp z,AnimationFlashScreen
+FlashScreenUnused:
+ ld a, [wSubAnimCounter]
+ cp a, 14
+ jp z, AnimationFlashScreen
+ cp a, 9
+ jp z, AnimationFlashScreen
+ cp a, 2
+ jp z, AnimationFlashScreen
ret
; function to make the pokemon disappear at the beginning of the animation
-TradeHidePokemon: ; 790ac (1e:50ac)
- ld a,[wSubAnimCounter]
- cp a,6
+TradeHidePokemon:
+ ld a, [wSubAnimCounter]
+ cp a, 6
ret nz
- ld a,2 * SCREEN_WIDTH + 7
+ ld a, 2 * SCREEN_WIDTH + 7
jp ClearMonPicFromTileMap ; make pokemon disappear
; function to make a shaking pokeball jump up at the end of the animation
-TradeShakePokeball: ; 790b7 (1e:50b7)
- ld a,[wSubAnimCounter]
- cp a,1
+TradeShakePokeball:
+ ld a, [wSubAnimCounter]
+ cp a, 1
ret nz
; if it's the end of the animation, make the ball jump up
- ld de,BallMoveDistances1
+ ld de, BallMoveDistances1
.loop
- ld hl,wOAMBuffer ; OAM buffer
- ld bc,4
+ ld hl, wOAMBuffer ; OAM buffer
+ ld bc, 4
.innerLoop
- ld a,[de]
- cp a,$ff
- jr z,.done
+ ld a, [de]
+ cp a, $ff
+ jr z, .done
add [hl] ; add to Y value of OAM entry
- ld [hl],a
- add hl,bc
- ld a,l
- cp a,4 * 4 ; there are 4 entries, each 4 bytes
- jr nz,.innerLoop
+ ld [hl], a
+ add hl, bc
+ ld a, l
+ cp a, 4 * 4 ; there are 4 entries, each 4 bytes
+ jr nz, .innerLoop
inc de
push bc
call Delay3
@@ -967,74 +967,75 @@ TradeShakePokeball: ; 790b7 (1e:50b7)
jr .loop
.done
call AnimationCleanOAM
- ld a,SFX_TRADE_MACHINE
+ ld a, SFX_TRADE_MACHINE
jp PlaySound
-BallMoveDistances1: ; 790e3 (1e:50e3)
- db -12,-12,-8
+BallMoveDistances1:
+ db -12, -12, -8
db $ff ; terminator
; function to make the pokeball jump up
-TradeJumpPokeball: ; 790e7 (1e:50e7)
- ld de,BallMoveDistances2
+TradeJumpPokeball:
+ ld de, BallMoveDistances2
.loop
- ld hl,wOAMBuffer ; OAM buffer
- ld bc,4
+ ld hl, wOAMBuffer ; OAM buffer
+ ld bc, 4
.innerLoop
- ld a,[de]
- cp a,$ff
- jp z,ClearScreen
+ ld a, [de]
+ cp a, $ff
+ jp z, ClearScreen
add [hl]
- ld [hl],a
- add hl,bc
- ld a,l
- cp a,4 * 4 ; there are 4 entries, each 4 bytes
- jr nz,.innerLoop
+ ld [hl], a
+ add hl, bc
+ ld a, l
+ cp a, 4 * 4 ; there are 4 entries, each 4 bytes
+ jr nz, .innerLoop
inc de
push de
- ld a,[de]
- cp a,12
- jr z,.playSound
- cp a,$ff
- jr nz,.skipPlayingSound
+ ld a, [de]
+ cp a, 12
+ jr z, .playSound
+ cp a, $ff
+ jr nz, .skipPlayingSound
.playSound ; play sound if next move distance is 12 or this is the last one
- ld a,SFX_BATTLE_18
+ ld a, SFX_BATTLE_18
call PlaySound
.skipPlayingSound
push bc
- ld c,5
+ ld c, 5
call DelayFrames
pop bc
- ld a,[hSCX] ; background scroll X
- sub a,8 ; scroll to the left
- ld [hSCX],a
+ ld a, [hSCX] ; background scroll X
+ sub a, 8 ; scroll to the left
+ ld [hSCX], a
pop de
jr .loop
-BallMoveDistances2: ; 7911f (1e:511f)
- db 11,12,-12,-7,7,12,-8,8
+BallMoveDistances2:
+ db 11, 12, -12, -7, 7, 12, -8, 8
db $ff ; terminator
; this function copies the current musical note graphic
; so that there are two musical notes flying towards the defending pokemon
-DoGrowlSpecialEffects: ; 79127 (1e:5127)
- ld hl,wOAMBuffer ; OAM buffer
- ld de,wOAMBuffer + $10
- ld bc,$10
+DoGrowlSpecialEffects:
+ ld hl, wOAMBuffer ; OAM buffer
+ ld de, wOAMBuffer + $10
+ ld bc, $10
call CopyData ; copy the musical note graphic
- ld a,[wSubAnimCounter]
+ ld a, [wSubAnimCounter]
dec a
- call z,AnimationCleanOAM ; clean up at the end of the subanimation
+ call z, AnimationCleanOAM ; clean up at the end of the subanimation
ret
; this is associated with Tail Whip, but Tail Whip doesn't use any subanimations
-TailWhipAnimationUnused: ; 7913b (1e:513b)
- ld a,1
- ld [wSubAnimCounter],a
- ld c,20
+TailWhipAnimationUnused:
+ ld a, 1
+ ld [wSubAnimCounter], a
+ ld c, 20
jp DelayFrames
-SpecialEffectPointers: ; 79145 (1e:5145)
+; Format: Special Effect ID (1 byte), Address (2 bytes)
+SpecialEffectPointers:
db SE_DARK_SCREEN_FLASH ; $FE
dw AnimationFlashScreen
db SE_DARK_SCREEN_PALETTE ; $FD
@@ -1115,54 +1116,54 @@ SpecialEffectPointers: ; 79145 (1e:5145)
dw AnimationWavyScreen
db $FF
-AnimationDelay10: ; 791bb (1e:51bb)
- ld c,10
+AnimationDelay10:
+ ld c, 10
jp DelayFrames
; calls a function with the turn flipped from player to enemy or vice versa
; input - hl - address of function to call
-CallWithTurnFlipped: ; 791c0 (1e:51c0)
- ld a,[H_WHOSETURN]
+CallWithTurnFlipped:
+ ld a, [H_WHOSETURN]
push af
- xor a,1
- ld [H_WHOSETURN],a
- ld de,.returnAddress
+ xor a, 1
+ ld [H_WHOSETURN], a
+ ld de, .returnAddress
push de
jp [hl]
.returnAddress
pop af
- ld [H_WHOSETURN],a
+ ld [H_WHOSETURN], a
ret
; flashes the screen for an extended period (48 frames)
-AnimationFlashScreenLong: ; 791d0 (1e:51d0)
- ld a,3 ; cycle through the palettes 3 times
- ld [wFlashScreenLongCounter],a
- ld a,[wOnSGB] ; running on SGB?
+AnimationFlashScreenLong:
+ ld a, 3 ; cycle through the palettes 3 times
+ ld [wFlashScreenLongCounter], a
+ ld a, [wOnSGB] ; running on SGB?
and a
- ld hl,FlashScreenLongMonochrome
- jr z,.loop
- ld hl,FlashScreenLongSGB
+ ld hl, FlashScreenLongMonochrome
+ jr z, .loop
+ ld hl, FlashScreenLongSGB
.loop
push hl
.innerLoop
- ld a,[hli]
- cp a,$01 ; is it the end of the palettes?
- jr z,.endOfPalettes
- ld [rBGP],a
+ ld a, [hli]
+ cp a, $01 ; is it the end of the palettes?
+ jr z, .endOfPalettes
+ ld [rBGP], a
call UpdateGBCPal_BGP
call FlashScreenLongDelay
jr .innerLoop
.endOfPalettes
- ld a,[wFlashScreenLongCounter]
+ ld a, [wFlashScreenLongCounter]
dec a
- ld [wFlashScreenLongCounter],a
+ ld [wFlashScreenLongCounter], a
pop hl
- jr nz,.loop
+ jr nz, .loop
ret
; BG palettes
-FlashScreenLongMonochrome: ; 791fc (1e:51fc)
+FlashScreenLongMonochrome:
db %11111001 ; 3, 3, 2, 1
db %11111110 ; 3, 3, 3, 2
db %11111111 ; 3, 3, 3, 3
@@ -1178,7 +1179,7 @@ FlashScreenLongMonochrome: ; 791fc (1e:51fc)
db $01 ; terminator
; BG palettes
-FlashScreenLongSGB: ; 79209 (1e:5209)
+FlashScreenLongSGB:
db %11111000 ; 3, 3, 2, 0
db %11111100 ; 3, 3, 3, 0
db %11111111 ; 3, 3, 3, 3
@@ -1195,73 +1196,73 @@ FlashScreenLongSGB: ; 79209 (1e:5209)
; causes a delay of 2 frames for the first cycle
; causes a delay of 1 frame for the second and third cycles
-FlashScreenLongDelay: ; 79216 (1e:5216)
- ld a,[wFlashScreenLongCounter]
- cp a,4 ; never true since [wFlashScreenLongCounter] starts at 3
- ld c,4
- jr z,.delayFrames
- cp a,3
- ld c,2
- jr z,.delayFrames
- cp a,2 ; nothing is done with this
- ld c,1
+FlashScreenLongDelay:
+ ld a, [wFlashScreenLongCounter]
+ cp a, 4 ; never true since [wFlashScreenLongCounter] starts at 3
+ ld c, 4
+ jr z, .delayFrames
+ cp a, 3
+ ld c, 2
+ jr z, .delayFrames
+ cp a, 2 ; nothing is done with this
+ ld c, 1
.delayFrames
jp DelayFrames
-AnimationFlashScreen: ; 7922c (1e:522c)
- ld a,[rBGP]
+AnimationFlashScreen:
+ ld a, [rBGP]
push af ; save initial palette
- ld a,%00011011 ; 0, 1, 2, 3 (inverted colors)
- ld [rBGP],a
+ ld a, %00011011 ; 0, 1, 2, 3 (inverted colors)
+ ld [rBGP], a
call UpdateGBCPal_BGP
- ld c,2
+ ld c, 2
call DelayFrames
xor a ; white out background
- ld [rBGP],a
+ ld [rBGP], a
call UpdateGBCPal_BGP
- ld c,2
+ ld c, 2
call DelayFrames
pop af
- ld [rBGP],a ; restore initial palette
+ ld [rBGP], a ; restore initial palette
call UpdateGBCPal_BGP
ret
-AnimationDarkScreenPalette: ; 7924d (1e:524d)
+AnimationDarkScreenPalette:
; Changes the screen's palette to a dark palette.
lb bc, $6f, $6f
jr SetAnimationBGPalette
-AnimationDarkenMonPalette: ; 79252 (1e:5252)
+AnimationDarkenMonPalette:
; Darkens the mon sprite's palette.
lb bc, $f9, $f4
jr SetAnimationBGPalette
-AnimationUnusedPalette1: ; 79257 (1e:5257)
+AnimationUnusedPalette1:
lb bc, $fe, $f8
jr SetAnimationBGPalette
-AnimationUnusedPalette2: ; 7925c (1e:525c)
+AnimationUnusedPalette2:
lb bc, $ff, $ff
jr SetAnimationBGPalette
-AnimationResetScreenPalette: ; 79261 (1e:5261)
+AnimationResetScreenPalette:
; Restores the screen's palette to the normal palette.
lb bc, $e4, $e4
jr SetAnimationBGPalette
-AnimationUnusedPalette3: ; 79266 (1e:5266)
+AnimationUnusedPalette3:
lb bc, $00, $00
jr SetAnimationBGPalette
-AnimationLightScreenPalette: ; 7926b (1e:526b)
+AnimationLightScreenPalette:
; Changes the screen to use a palette with light colors.
lb bc, $90, $90
jr SetAnimationBGPalette
-AnimationUnusedPalette4: ; 79270 (1e:5270)
+AnimationUnusedPalette4:
lb bc, $40, $40
-SetAnimationBGPalette: ; 79273 (1e:5273)
+SetAnimationBGPalette:
ld a, [wOnSGB]
and a
ld a, b
@@ -1274,17 +1275,17 @@ SetAnimationBGPalette: ; 79273 (1e:5273)
ld b, $5
-AnimationShakeScreenVertically: ; 79283 (1e:5283)
+AnimationShakeScreenVertically:
predef_jump PredefShakeScreenVertically
-AnimationShakeScreen: ; 79288 (1e:5288)
+AnimationShakeScreen:
; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations.
ld b, $8
-AnimationShakeScreenHorizontallyFast: ; 7928a (1e:528a)
+AnimationShakeScreenHorizontallyFast:
predef_jump PredefShakeScreenHorizontally
-AnimationWaterDropletsEverywhere: ; 7928f (1e:528f)
+AnimationWaterDropletsEverywhere:
; Draws water droplets all over the screen and makes them
; scroll. It's hard to describe, but it's the main animation
; in Surf/Mist/Toxic.
@@ -1311,7 +1312,7 @@ AnimationWaterDropletsEverywhere: ; 7928f (1e:528f)
jr nz, .loop
ret
-_AnimationWaterDroplets: ; 792c0 (1e:52c0)
+_AnimationWaterDroplets:
ld hl, wOAMBuffer
.loop
ld a, $1
@@ -1352,7 +1353,7 @@ _AnimationWaterDroplets: ; 792c0 (1e:52c0)
call AnimationCleanOAM
jp DelayFrame
-AnimationSlideMonUp: ; 79314 (1e:5314)
+AnimationSlideMonUp:
; Slides the mon's sprite upwards.
ld c, 7
ld a, [H_WHOSETURN]
@@ -1368,7 +1369,7 @@ AnimationSlideMonUp: ; 79314 (1e:5314)
ld [wSlideMonUpBottomRowLeftTile], a
jp _AnimationSlideMonUp
-AnimationSlideMonDown: ; 79331 (1e:5331)
+AnimationSlideMonDown:
; Slides the mon's sprite down out of the screen.
xor a
call GetTileIDList
@@ -1385,19 +1386,19 @@ AnimationSlideMonDown: ; 79331 (1e:5331)
jr nz, .loop
ret
-AnimationSlideMonOff: ; 79349 (1e:5349)
+AnimationSlideMonOff:
; Slides the mon's sprite off the screen horizontally.
ld e, 8
ld a, 3
ld [wSlideMonDelay], a
jp _AnimationSlideMonOff
-AnimationSlideEnemyMonOff: ; 79353 (1e:5353)
+AnimationSlideEnemyMonOff:
; Slides the enemy mon off the screen horizontally.
ld hl, AnimationSlideMonOff
jp CallWithTurnFlipped
-_AnimationSlideMonUp: ; 79359 (1e:5359)
+_AnimationSlideMonUp:
push de
push hl
push bc
@@ -1448,7 +1449,7 @@ _AnimationSlideMonUp: ; 79359 (1e:5359)
jr nz, _AnimationSlideMonUp
ret
-ShakeEnemyHUD_WritePlayerMonPicOAM: ; 79397 (1e:5397)
+ShakeEnemyHUD_WritePlayerMonPicOAM:
; Writes the OAM entries for a copy of the player mon's pic in OAM.
; The top 5 rows are reproduced in OAM, although only 2 are actually needed.
ld a, $10
@@ -1476,7 +1477,7 @@ ShakeEnemyHUD_WritePlayerMonPicOAM: ; 79397 (1e:5397)
ld [wBaseCoordX], a
jr .loop
-BattleAnimWriteOAMEntry: ; 793c3 (1e:53c3)
+BattleAnimWriteOAMEntry:
; Y coordinate = e (increased by 8 each call, before the write to OAM)
; X coordinate = [wBaseCoordX]
; tile = d
@@ -1507,11 +1508,11 @@ BattleAnimWriteOAMEntry: ; 793c3 (1e:53c3)
ld [hli], a
ret
-AdjustOAMBlockXPos: ; 793ef (1e:53ef)
+AdjustOAMBlockXPos:
ld l, e
ld h, d
-AdjustOAMBlockXPos2: ; 793f1 (1e:53f1)
+AdjustOAMBlockXPos2:
ld de, 4
.loop
ld a, [wCoordAdjustmentAmount]
@@ -1531,11 +1532,11 @@ AdjustOAMBlockXPos2: ; 793f1 (1e:53f1)
jr nz, .loop
ret
-AdjustOAMBlockYPos: ; 79408 (1e:5408)
+AdjustOAMBlockYPos:
ld l, e
ld h, d
-AdjustOAMBlockYPos2: ; 7940d (1e:540d)
+AdjustOAMBlockYPos2:
ld de, 4
.loop
ld a, [wCoordAdjustmentAmount]
@@ -1554,12 +1555,12 @@ AdjustOAMBlockYPos2: ; 7940d (1e:540d)
jr nz, .loop
ret
-AnimationBlinkEnemyMon: ; 79421 (1e:5421)
+AnimationBlinkEnemyMon:
; Make the enemy mon's sprite blink on and off for a second or two
ld hl, AnimationBlinkMon
jp CallWithTurnFlipped
-AnimationBlinkMon: ; 79427 (1e:5427)
+AnimationBlinkMon:
; Make the mon's sprite blink on and off for a second or two.
push af
ld c, 6
@@ -1577,7 +1578,7 @@ AnimationBlinkMon: ; 79427 (1e:5427)
pop af
ret
-AnimationFlashMonPic: ; 79441 (1e:5441)
+AnimationFlashMonPic:
; Flashes the mon's sprite on and off
ld a, [wBattleMonSpecies]
ld [wChangeMonPicPlayerTurnSpecies], a
@@ -1585,25 +1586,25 @@ AnimationFlashMonPic: ; 79441 (1e:5441)
ld [wChangeMonPicEnemyTurnSpecies], a
jp ChangeMonPic
-AnimationFlashEnemyMonPic: ; 79450 (1e:5450)
+AnimationFlashEnemyMonPic:
; Flashes the enemy mon's sprite on and off
ld hl, AnimationFlashMonPic
jp CallWithTurnFlipped
-AnimationShowMonPic: ; 79456 (1e:5456)
+AnimationShowMonPic:
xor a
call GetTileIDList
call GetMonSpriteTileMapPointerFromRowCount
call CopyPicTiles
jp Delay3
-AnimationShowEnemyMonPic: ; 79463 (1e:5463)
+AnimationShowEnemyMonPic:
; Shows the emenmy mon's front sprite. Used in animations like Seismic Toss
; to make the mon's sprite reappear after disappears offscreen.
ld hl, AnimationShowMonPic
jp CallWithTurnFlipped
-AnimationShakeBackAndForth: ; 79469 (1e:5469)
+AnimationShakeBackAndForth:
; Shakes the mon's sprite back and forth rapidly. This is used in Double Team.
; The mon's sprite disappears after this animation.
ld a, [H_WHOSETURN]
@@ -1650,7 +1651,7 @@ AnimationShakeBackAndForth: ; 79469 (1e:5469)
jr nz, .loop
ret
-AnimationMoveMonHorizontally: ; 794b1 (1e:54b1)
+AnimationMoveMonHorizontally:
; Shifts the mon's sprite horizontally to a fixed location. Used by lots of
; animations like Tackle/Body Slam.
call AnimationHideMonPic
@@ -1668,7 +1669,7 @@ AnimationMoveMonHorizontally: ; 794b1 (1e:54b1)
ld c, 3
jp DelayFrames
-AnimationResetMonPosition: ; 794cd (1e:54cd)
+AnimationResetMonPosition:
; Resets the mon's sprites to be located at the normal coordinates.
ld a, [H_WHOSETURN]
and a
@@ -1679,7 +1680,7 @@ AnimationResetMonPosition: ; 794cd (1e:54cd)
call ClearMonPicFromTileMap
jp AnimationShowMonPic
-AnimationSpiralBallsInward: ; 794dc (1e:54dc)
+AnimationSpiralBallsInward:
; Creates an effect that looks like energy balls spiralling into the
; player mon's sprite. Used in Focus Energy, for example.
ld a, [H_WHOSETURN]
@@ -1746,7 +1747,7 @@ AnimationSpiralBallsInward: ; 794dc (1e:54dc)
call AnimationCleanOAM
jp AnimationFlashScreen
-SpiralBallAnimationCoordinates: ; 79545 (1e:5545)
+SpiralBallAnimationCoordinates:
; y, x pairs
; This is the sequence of screen coordinates that the spiralling
; balls are positioned at.
@@ -1773,7 +1774,7 @@ SpiralBallAnimationCoordinates: ; 79545 (1e:5545)
db $50, $28
db $FF ; list terminator
-AnimationSquishMonPic: ; 79570 (1e:5570)
+AnimationSquishMonPic:
; Squishes the mon's sprite horizontally making it
; disappear. Used by Teleport/Sky Attack animations.
ld c, 4
@@ -1804,7 +1805,7 @@ AnimationSquishMonPic: ; 79570 (1e:5570)
ld c, 2
jp DelayFrame
-_AnimationSquishMonPic: ; 795a3 (1e:55a3)
+_AnimationSquishMonPic:
ld c, 7
.loop
push bc
@@ -1829,7 +1830,7 @@ _AnimationSquishMonPic: ; 795a3 (1e:55a3)
jr nz, .loop
jp Delay3
-AnimationShootBallsUpward: ; 795c8 (1e:55c8)
+AnimationShootBallsUpward:
; Shoots one pillar of "energy" balls upwards. Used in Teleport/Sky Attack
; animations.
ld a, [H_WHOSETURN]
@@ -1848,7 +1849,7 @@ AnimationShootBallsUpward: ; 795c8 (1e:55c8)
call _AnimationShootBallsUpward
jp AnimationCleanOAM
-_AnimationShootBallsUpward: ; 795e6 (1e:55e6)
+_AnimationShootBallsUpward:
push bc
xor a
ld [wWhichBattleAnimTileset], a
@@ -1898,7 +1899,7 @@ _AnimationShootBallsUpward: ; 795e6 (1e:55e6)
jr nz, .loop
ret
-AnimationShootManyBallsUpward: ; 79635 (1e:5635)
+AnimationShootManyBallsUpward:
; Shoots several pillars of "energy" balls upward.
ld a, [H_WHOSETURN]
and a
@@ -1922,19 +1923,19 @@ AnimationShootManyBallsUpward: ; 79635 (1e:5635)
pop hl
jr .loop
-UpwardBallsAnimXCoordinatesPlayerTurn: ; 79660 (1e:5660)
+UpwardBallsAnimXCoordinatesPlayerTurn:
; List of x coordinates for each pillar of "energy" balls in the
; AnimationShootManyBallsUpward animation. It's unused in the game.
db $10, $40, $28, $18, $38, $30
db $FF ; list terminator
-UpwardBallsAnimXCoordinatesEnemyTurn: ; 79667 (1e:5667)
+UpwardBallsAnimXCoordinatesEnemyTurn:
; List of x coordinates for each pillar of "energy" balls in the
; AnimationShootManyBallsUpward animation. It's unused in the game.
db $60, $90, $78, $68, $88, $80
db $FF ; list terminator
-AnimationMinimizeMon: ; 7966e (1e:566e)
+AnimationMinimizeMon:
; Changes the mon's sprite to a mini black sprite. Used by the
; Minimize animation.
ld hl, wTempPic
@@ -1958,11 +1959,11 @@ AnimationMinimizeMon: ; 7966e (1e:566e)
call Delay3
jp AnimationShowMonPic
-MinimizedMonSprite: ; 79693 (1e:5693)
+MinimizedMonSprite:
INCBIN "gfx/minimized_mon_sprite.1bpp"
MinimizedMonSpriteEnd:
-AnimationSlideMonDownAndHide: ; 79698 (1e:5698)
+AnimationSlideMonDownAndHide:
; Slides the mon's sprite down and disappears. Used in Acid Armor.
ld a, $1
ld c, $2
@@ -1989,7 +1990,7 @@ AnimationSlideMonDownAndHide: ; 79698 (1e:5698)
call FillMemory
jp CopyTempPicToMonPic
-_AnimationSlideMonOff: ; 796c7 (1e:56c7)
+_AnimationSlideMonOff:
; Slides the mon's sprite off the screen horizontally by e tiles and waits
; [wSlideMonDelay] V-blanks each time the pic is slid by one tile.
ld a, [H_WHOSETURN]
@@ -2033,14 +2034,14 @@ _AnimationSlideMonOff: ; 796c7 (1e:56c7)
jr nz, .slideLoop
ret
-; Since mon pic tile numbers go from top to bottom, left to right in order,
+; Since mon pic tile numbers go from top to bottom, left to right in order,
; adding the height of the mon pic in tiles to a tile number gives the tile
; number of the tile one column to the right (and thus subtracting the height
; gives the reverse). If the next tile would be past the edge of the pic, the 2
; functions below catch it by checking if the tile number is within the valid
; range and if not, replacing it with a blank tile.
-.PlayerNextTile ; 79702 (1e:5702)
+.PlayerNextTile
ld a, [hl]
add 7
; bugfix: compares against the max tile + 1 as opposed to the max tile
@@ -2049,7 +2050,7 @@ _AnimationSlideMonOff: ; 796c7 (1e:56c7)
ld a, " "
ret
-.EnemyNextTile ; 7970b (1e:570b)
+.EnemyNextTile
ld a, [hl]
sub 7
; This has the same problem as above, but it has no visible effect because
@@ -2059,7 +2060,7 @@ _AnimationSlideMonOff: ; 796c7 (1e:56c7)
ld a, " "
ret
-AnimationSlideMonHalfOff: ; 79714 (1e:5714)
+AnimationSlideMonHalfOff:
; Slides the mon's sprite halfway off the screen. It's used in Softboiled.
ld e, 4
ld a, 4
@@ -2067,7 +2068,7 @@ AnimationSlideMonHalfOff: ; 79714 (1e:5714)
call _AnimationSlideMonOff
jp Delay3
-CopyTempPicToMonPic: ; 79721 (1e:5721)
+CopyTempPicToMonPic:
ld a, [H_WHOSETURN]
and a
ld hl, vBackPic ; player turn
@@ -2078,7 +2079,7 @@ CopyTempPicToMonPic: ; 79721 (1e:5721)
ld bc, 7 * 7
jp CopyVideoData
-AnimationWavyScreen: ; 79735 (1e:5735)
+AnimationWavyScreen:
; used in Psywave/Psychic etc.
ld hl, vBGMap0
call BattleAnimCopyTileMapToVRAM
@@ -2119,7 +2120,7 @@ AnimationWavyScreen: ; 79735 (1e:5735)
call BattleAnimCopyTileMapToVRAM
ret
-WavyScreen_SetSCX: ; 7977d (1e:577d)
+WavyScreen_SetSCX:
ld a, [rSTAT]
and $3 ; is it H-blank?
jr nz, WavyScreen_SetSCX ; wait until it's H-blank
@@ -2132,14 +2133,14 @@ WavyScreen_SetSCX: ; 7977d (1e:577d)
ld hl, WavyScreenLineOffsets ; go back to the beginning if so
ret
-WavyScreenLineOffsets: ; 7978e (1e:578e)
+WavyScreenLineOffsets:
; Sequence of horizontal line pixel offsets for the wavy screen animation.
; This sequence vaguely resembles a sine wave.
db 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1
db 0, 0, 0, 0, 0, -1, -1, -1, -2, -2, -2, -2, -2, -1, -1, -1
db $80 ; terminator
-AnimationSubstitute: ; 797af (1e:57af)
+AnimationSubstitute:
; Changes the pokemon's sprite to the mini sprite
ld hl, wTempPic
xor a
@@ -2178,12 +2179,12 @@ AnimationSubstitute: ; 797af (1e:57af)
call CopyTempPicToMonPic
jp AnimationShowMonPic
-CopySlowbroSpriteData: ; 7980e (1e:580e)
+CopySlowbroSpriteData:
ld bc, $0010
ld a, BANK(SlowbroSprite)
jp FarCopyData
-HideSubstituteShowMonAnim: ; 79816 (1e:5816)
+HideSubstituteShowMonAnim:
ld a, [H_WHOSETURN]
and a
ld hl, wPlayerMonMinimized
@@ -2267,12 +2268,12 @@ HideSubstituteShowMonAnim: ; 79816 (1e:5816)
jr nz, .loop
jp CopyTempPicToMonPic
-ReshowSubstituteAnim: ; 798b2 (1e:58b2)
+ReshowSubstituteAnim:
call AnimationSlideMonOff
call AnimationSubstitute
jp AnimationShowMonPic
-AnimationBoundUpAndDown: ; 798bb (1e:58bb)
+AnimationBoundUpAndDown:
; Bounces the mon's sprite up and down several times. It is used
; by Splash's animation.
ld c, 5
@@ -2284,7 +2285,7 @@ AnimationBoundUpAndDown: ; 798bb (1e:58bb)
jr nz, .loop
jp AnimationShowMonPic
-AnimationTransformMon: ; 798c8 (1e:58c8)
+AnimationTransformMon:
; Redraws this mon's sprite as the back/front sprite of the opposing mon.
; Used in Transform.
ld a, [wEnemyMonSpecies]
@@ -2292,7 +2293,7 @@ AnimationTransformMon: ; 798c8 (1e:58c8)
ld a, [wBattleMonSpecies]
ld [wChangeMonPicEnemyTurnSpecies], a
-ChangeMonPic: ; 798d4 (1e:58d4)
+ChangeMonPic:
ld a, [H_WHOSETURN]
and a
jr z, .playerTurn
@@ -2323,7 +2324,7 @@ ChangeMonPic: ; 798d4 (1e:58d4)
ld b, SET_PAL_BATTLE
jp RunPaletteCommand
-AnimationHideEnemyMonPic: ; 79919 (1e:5919)
+AnimationHideEnemyMonPic:
; Hides the enemy mon's sprite
xor a
ld [H_AUTOBGTRANSFERENABLED], a
@@ -2333,7 +2334,7 @@ AnimationHideEnemyMonPic: ; 79919 (1e:5919)
ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
-Func_79929: ; 79929 (1e:5929)
+Func_79929:
ld hl, wPlayerMonMinimized
ld a, [H_WHOSETURN]
and a
@@ -2350,7 +2351,7 @@ Func_79929: ; 79929 (1e:5929)
call AnimationShowMonPic
ret
-InitMultipleObjectsOAM: ; 79943 (1e:5943)
+InitMultipleObjectsOAM:
; Writes c OAM entries with tile d.
; Sets their Y coordinates to sequential multiples of 8, starting from 0.
; Sets their X coordinates to 0.
@@ -2373,7 +2374,7 @@ InitMultipleObjectsOAM: ; 79943 (1e:5943)
ret ; unreferenced
-AnimationHideMonPic: ; 7995d (1e:595d)
+AnimationHideMonPic:
; Hides the mon's sprite.
ld a, [H_WHOSETURN]
and a
@@ -2383,7 +2384,7 @@ AnimationHideMonPic: ; 7995d (1e:595d)
.playerTurn
ld a, 5 * SCREEN_WIDTH + 1
-ClearMonPicFromTileMap: ; 79968 (1e:5968)
+ClearMonPicFromTileMap:
push hl
push de
push bc
@@ -2399,9 +2400,9 @@ ClearMonPicFromTileMap: ; 79968 (1e:5968)
ret
; puts the tile map destination address of a mon sprite in hl, given the row count in b
-; The usual row count is 7, but it may be smaller when sliding a mon sprite in/out,
+; The usual row count is 7, but it may be smaller when sliding a mon sprite in/out,
; in order to show only a portion of the mon sprite.
-GetMonSpriteTileMapPointerFromRowCount: ; 7997c (1e:597c)
+GetMonSpriteTileMapPointerFromRowCount:
push de
ld a, [H_WHOSETURN]
and a
@@ -2434,7 +2435,7 @@ GetMonSpriteTileMapPointerFromRowCount: ; 7997c (1e:597c)
; de = tile ID list pointer
; b = number of rows
; c = number of columns
-GetTileIDList: ; 7999e (1e:599e)
+GetTileIDList:
ld hl, TileIDListPointerTable
ld e, a
ld d, 0
@@ -2455,7 +2456,7 @@ GetTileIDList: ; 7999e (1e:599e)
ld b, a
ret
-AnimCopyRowLeft: ; 798b7 (1e:58b7)
+AnimCopyRowLeft:
; copy a row of c tiles 1 tile left
ld a, [hld]
ld [hli], a
@@ -2464,7 +2465,7 @@ AnimCopyRowLeft: ; 798b7 (1e:58b7)
jr nz, AnimCopyRowLeft
ret
-AnimCopyRowRight: ; 799be (1e:59be)
+AnimCopyRowRight:
; copy a row of c tiles 1 tile right
ld a, [hli]
ld [hld], a
@@ -2474,234 +2475,235 @@ AnimCopyRowRight: ; 799be (1e:59be)
ret
; get the sound of the move id in b
-GetMoveSoundB: ; 799c5 (1e:59c5)
+GetMoveSoundB:
ld a, b
call GetMoveSound
ld b, a
ret
-GetMoveSound: ; 799cb (1e:59cb)
- ld hl,MoveSoundTable
- ld e,a
- ld d,0
- add hl,de
- add hl,de
- add hl,de
- ld a,[hli]
- ld b,a
+GetMoveSound:
+ ld hl, MoveSoundTable
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld b, a
call IsCryMove
- jr nc,.NotCryMove
- ld a,[H_WHOSETURN]
+ jr nc, .NotCryMove
+ ld a, [H_WHOSETURN]
and a
- jr nz,.next
- ld a,[wBattleMonSpecies] ; get number of current monster
+ jr nz, .next
+ ld a, [wBattleMonSpecies] ; get number of current monster
jr .Continue
.next
- ld a,[wEnemyMonSpecies]
+ ld a, [wEnemyMonSpecies]
.Continue
push hl
call GetCryData
- ld b,a
+ ld b, a
pop hl
- ld a,[wFrequencyModifier]
+ ld a, [wFrequencyModifier]
add [hl]
- ld [wFrequencyModifier],a
+ ld [wFrequencyModifier], a
inc hl
- ld a,[wTempoModifier]
+ ld a, [wTempoModifier]
add [hl]
- ld [wTempoModifier],a
+ ld [wTempoModifier], a
jr .done
.NotCryMove
- ld a,[hli]
- ld [wFrequencyModifier],a
- ld a,[hli]
- ld [wTempoModifier],a
+ ld a, [hli]
+ ld [wFrequencyModifier], a
+ ld a, [hli]
+ ld [wTempoModifier], a
.done
- ld a,b
+ ld a, b
ret
-IsCryMove: ; 79a09 (1e:5a09)
+IsCryMove:
; set carry if the move animation involves playing a monster cry
- ld a,[wAnimationID]
- cp a,GROWL
- jr z,.CryMove
- cp a,ROAR
- jr z,.CryMove
+ ld a, [wAnimationID]
+ cp a, GROWL
+ jr z, .CryMove
+ cp a, ROAR
+ jr z, .CryMove
and a ; clear carry
ret
.CryMove
scf
ret
-MoveSoundTable: ; 79a18 (1e:5a18)
- db SFX_POUND, $00,$80 ; POUND
- db SFX_BATTLE_0C, $10,$80 ; KARATE_CHOP
- db SFX_DOUBLESLAP, $00,$80 ; DOUBLESLAP
- db SFX_BATTLE_0B, $01,$80 ; COMET_PUNCH
- db SFX_BATTLE_0D, $00,$40 ; MEGA_PUNCH
- db SFX_SILPH_SCOPE, $00,$ff ; PAY_DAY
- db SFX_BATTLE_0D, $10,$60 ; FIRE_PUNCH
- db SFX_BATTLE_0D, $20,$80 ; ICE_PUNCH
- db SFX_BATTLE_0D, $00,$a0 ; THUNDERPUNCH
- db SFX_DAMAGE, $00,$80 ; SCRATCH
- db SFX_BATTLE_0F, $20,$40 ; VICEGRIP
- db SFX_BATTLE_0F, $00,$80 ; GUILLOTINE
- db SFX_BATTLE_0E, $00,$a0 ; RAZOR_WIND
- db SFX_NOT_VERY_EFFECTIVE,$10,$c0 ; SWORDS_DANCE
- db SFX_NOT_VERY_EFFECTIVE,$00,$a0 ; CUT
- db SFX_BATTLE_12, $00,$c0 ; GUST
- db SFX_BATTLE_12, $10,$a0 ; WING_ATTACK
- db SFX_BATTLE_13, $00,$e0 ; WHIRLWIND
- db SFX_NOT_VERY_EFFECTIVE,$20,$c0 ; FLY
- db SFX_BATTLE_14, $00,$80 ; BIND
- db SFX_BATTLE_22, $00,$80 ; SLAM
- db SFX_VINE_WHIP, $01,$80 ; VINE_WHIP
- db SFX_BATTLE_20, $00,$80 ; STOMP
- db SFX_BATTLE_17, $f0,$40 ; DOUBLE_KICK
- db SFX_SUPER_EFFECTIVE, $00,$80 ; MEGA_KICK
- db SFX_BATTLE_17, $00,$80 ; JUMP_KICK
- db SFX_BATTLE_21, $10,$80 ; ROLLING_KICK
- db SFX_BATTLE_1B, $01,$a0 ; SAND_ATTACK
- db SFX_BATTLE_18, $00,$80 ; HEADBUTT
- db SFX_BATTLE_1E, $00,$60 ; HORN_ATTACK
- db SFX_BATTLE_1E, $01,$40 ; FURY_ATTACK
- db SFX_HORN_DRILL, $00,$a0 ; HORN_DRILL
- db SFX_SUPER_EFFECTIVE, $10,$a0 ; TACKLE
- db SFX_BATTLE_20, $00,$c0 ; BODY_SLAM
- db SFX_BATTLE_14, $10,$60 ; WRAP
- db SFX_SUPER_EFFECTIVE, $00,$a0 ; TAKE_DOWN
- db SFX_BATTLE_22, $11,$c0 ; THRASH
- db SFX_SUPER_EFFECTIVE, $20,$c0 ; DOUBLE_EDGE
- db SFX_BATTLE_21, $00,$80 ; TAIL_WHIP
- db SFX_BATTLE_1B, $00,$80 ; POISON_STING
- db SFX_BATTLE_1B, $20,$c0 ; TWINEEDLE
- db SFX_BATTLE_19, $00,$80 ; PIN_MISSILE
- db SFX_BATTLE_31, $ff,$40 ; LEER
- db SFX_BATTLE_1E, $00,$80 ; BITE
- db SFX_BATTLE_0B, $00,$c0 ; GROWL
- db SFX_BATTLE_0B, $00,$40 ; ROAR
- db SFX_BATTLE_35, $00,$80 ; SING
- db SFX_BATTLE_27, $40,$60 ; SUPERSONIC
- db SFX_BATTLE_27, $00,$80 ; SONICBOOM
- db SFX_BATTLE_27, $ff,$40 ; DISABLE
- db SFX_BATTLE_2A, $80,$c0 ; ACID
- db SFX_BATTLE_19, $10,$a0 ; EMBER
- db SFX_BATTLE_19, $21,$e0 ; FLAMETHROWER
- db SFX_BATTLE_29, $00,$80 ; MIST
- db SFX_BATTLE_24, $20,$60 ; WATER_GUN
- db SFX_BATTLE_2A, $00,$80 ; HYDRO_PUMP
- db SFX_BATTLE_2C, $00,$80 ; SURF
- db SFX_BATTLE_28, $40,$80 ; ICE_BEAM
- db SFX_BATTLE_29, $f0,$e0 ; BLIZZARD
- db SFX_PSYBEAM, $00,$80 ; PSYBEAM
- db SFX_BATTLE_2A, $f0,$60 ; BUBBLEBEAM
- db SFX_BATTLE_28, $00,$80 ; AURORA_BEAM
- db SFX_BATTLE_36, $00,$80 ; HYPER_BEAM
- db SFX_PECK,$01, $a0 ; PECK
- db SFX_BATTLE_13, $f0,$20 ; DRILL_PECK
- db SFX_BATTLE_23, $01,$c0 ; SUBMISSION
- db SFX_BATTLE_23, $00,$80 ; LOW_KICK
- db SFX_SUPER_EFFECTIVE, $00,$e0 ; COUNTER
- db SFX_BATTLE_26, $01,$60 ; SEISMIC_TOSS
- db SFX_BATTLE_26, $20,$40 ; STRENGTH
- db SFX_BATTLE_24, $00,$80 ; ABSORB
- db SFX_BATTLE_24, $40,$c0 ; MEGA_DRAIN
- db SFX_BATTLE_1B, $03,$60 ; LEECH_SEED
- db SFX_BATTLE_25, $11,$e0 ; GROWTH
- db SFX_BATTLE_12, $20,$e0 ; RAZOR_LEAF
- db SFX_BATTLE_2E, $00,$80 ; SOLARBEAM
- db SFX_BATTLE_1C, $00,$80 ; POISONPOWDER
- db SFX_BATTLE_1C, $11,$a0 ; STUN_SPORE
- db SFX_BATTLE_1C, $01,$c0 ; SLEEP_POWDER
- db SFX_BATTLE_13, $14,$c0 ; PETAL_DANCE
- db SFX_BATTLE_1B, $02,$a0 ; STRING_SHOT
- db SFX_BATTLE_29, $f0,$80 ; DRAGON_RAGE
- db SFX_BATTLE_29, $20,$c0 ; FIRE_SPIN
- db SFX_BATTLE_2F, $00,$20 ; THUNDERSHOCK
- db SFX_BATTLE_2F, $20,$80 ; THUNDERBOLT
- db SFX_BATTLE_2E, $12,$60 ; THUNDER_WAVE
- db SFX_BATTLE_26, $00,$80 ; THUNDER
- db SFX_BATTLE_14, $01,$e0 ; ROCK_THROW
- db SFX_BATTLE_29, $0f,$e0 ; EARTHQUAKE
- db SFX_BATTLE_29, $11,$20 ; FISSURE
- db SFX_DAMAGE, $10,$40 ; DIG
- db SFX_BATTLE_0F, $10,$c0 ; TOXIC
- db SFX_BATTLE_14, $00,$20 ; CONFUSION
- db SFX_PSYCHIC_M, $00,$80 ; PSYCHIC_M
- db SFX_BATTLE_35, $11,$18 ; HYPNOSIS
- db SFX_BATTLE_09, $20,$c0 ; MEDITATE
- db SFX_FAINT_FALL, $20,$c0 ; AGILITY
- db SFX_BATTLE_25, $00,$10 ; QUICK_ATTACK
- db SFX_BATTLE_26, $f0,$20 ; RAGE
- db SFX_BATTLE_33, $f0,$c0 ; TELEPORT
- db SFX_NOT_VERY_EFFECTIVE,$f0,$e0 ; NIGHT_SHADE
- db SFX_BATTLE_09, $f0,$40 ; MIMIC
- db SFX_BATTLE_31, $00,$80 ; SCREECH
- db SFX_BATTLE_33, $80,$40 ; DOUBLE_TEAM
- db SFX_BATTLE_33, $00,$80 ; RECOVER
- db SFX_BATTLE_14, $11,$20 ; HARDEN
- db SFX_BATTLE_14, $22,$10 ; MINIMIZE
- db SFX_BATTLE_1B, $f1,$ff ; SMOKESCREEN
- db SFX_BATTLE_13, $f1,$ff ; CONFUSE_RAY
- db SFX_BATTLE_14, $33,$30 ; WITHDRAW
- db SFX_BATTLE_32, $40,$c0 ; DEFENSE_CURL
- db SFX_BATTLE_0E, $20,$20 ; BARRIER
- db SFX_BATTLE_0E, $f0,$10 ; LIGHT_SCREEN
- db SFX_BATTLE_0F, $f8,$10 ; HAZE
- db SFX_NOT_VERY_EFFECTIVE,$f0,$10 ; REFLECT
- db SFX_BATTLE_25, $00,$80 ; FOCUS_ENERGY
- db SFX_BATTLE_18, $00,$c0 ; BIDE
- db SFX_BATTLE_32, $c0,$ff ; METRONOME
- db SFX_BATTLE_09, $f2,$20 ; MIRROR_MOVE
- db SFX_BATTLE_34, $00,$80 ; SELFDESTRUCT
- db SFX_BATTLE_34, $00,$40 ; EGG_BOMB
- db SFX_BATTLE_09, $00,$40 ; LICK
- db SFX_NOT_VERY_EFFECTIVE,$10,$ff ; SMOG
- db SFX_BATTLE_2A, $20,$20 ; SLUDGE
- db SFX_BATTLE_32, $00,$80 ; BONE_CLUB
- db SFX_BATTLE_29, $1f,$20 ; FIRE_BLAST
- db SFX_BATTLE_25, $2f,$80 ; WATERFALL
- db SFX_BATTLE_0F, $1f,$ff ; CLAMP
- db SFX_BATTLE_2B, $1f,$60 ; SWIFT
- db SFX_BATTLE_26, $1e,$20 ; SKULL_BASH
- db SFX_BATTLE_26, $1f,$18 ; SPIKE_CANNON
- db SFX_BATTLE_14, $0f,$80 ; CONSTRICT
- db SFX_BATTLE_09, $f8,$10 ; AMNESIA
- db SFX_FAINT_FALL, $18,$20 ; KINESIS
- db SFX_BATTLE_32, $08,$40 ; SOFTBOILED
- db SFX_BATTLE_17, $01,$e0 ; HI_JUMP_KICK
- db SFX_NOT_VERY_EFFECTIVE,$09,$ff ; GLARE
- db SFX_BATTLE_35, $42,$01 ; DREAM_EATER
- db SFX_BATTLE_1C, $00,$ff ; POISON_GAS
- db SFX_BATTLE_32, $08,$e0 ; BARRAGE
- db SFX_BATTLE_24, $00,$80 ; LEECH_LIFE
- db SFX_BATTLE_09, $88,$10 ; LOVELY_KISS
- db SFX_BATTLE_25, $48,$ff ; SKY_ATTACK
- db SFX_FAINT_FALL, $ff,$ff ; TRANSFORM
- db SFX_BATTLE_24, $ff,$10 ; BUBBLE
- db SFX_FAINT_FALL, $ff,$04 ; DIZZY_PUNCH
- db SFX_BATTLE_1C, $01,$ff ; SPORE
- db SFX_BATTLE_13, $f8,$ff ; FLASH
- db SFX_BATTLE_0C, $f0,$f0 ; PSYWAVE
- db SFX_BATTLE_0F, $08,$10 ; SPLASH
- db SFX_BATTLE_0D, $f0,$ff ; ACID_ARMOR
- db SFX_SUPER_EFFECTIVE, $f0,$ff ; CRABHAMMER
- db SFX_BATTLE_34, $10,$ff ; EXPLOSION
- db SFX_BATTLE_0E, $f0,$20 ; FURY_SWIPES
- db SFX_BATTLE_2B, $f0,$60 ; BONEMERANG
- db SFX_BATTLE_21, $12,$10 ; REST
- db SFX_BATTLE_36, $f0,$20 ; ROCK_SLIDE
- db SFX_BATTLE_1E, $12,$ff ; HYPER_FANG
- db SFX_BATTLE_31, $80,$04 ; SHARPEN
- db SFX_BATTLE_33, $f0,$10 ; CONVERSION
- db SFX_BATTLE_29, $f8,$ff ; TRI_ATTACK
- db SFX_BATTLE_26, $f0,$ff ; SUPER_FANG
- db SFX_NOT_VERY_EFFECTIVE,$01,$ff ; SLASH
- db SFX_BATTLE_2C, $d8,$04 ; SUBSTITUTE
- db SFX_BATTLE_0B, $00,$80 ; STRUGGLE
- db SFX_BATTLE_0B, $00,$80
-
-CopyPicTiles: ; 79c0a (1e:5c0a)
+MoveSoundTable:
+ ; ID, pitch mod, tempo mod
+ db SFX_POUND, $00, $80 ; POUND
+ db SFX_BATTLE_0C, $10, $80 ; KARATE_CHOP
+ db SFX_DOUBLESLAP, $00, $80 ; DOUBLESLAP
+ db SFX_BATTLE_0B, $01, $80 ; COMET_PUNCH
+ db SFX_BATTLE_0D, $00, $40 ; MEGA_PUNCH
+ db SFX_SILPH_SCOPE, $00, $ff ; PAY_DAY
+ db SFX_BATTLE_0D, $10, $60 ; FIRE_PUNCH
+ db SFX_BATTLE_0D, $20, $80 ; ICE_PUNCH
+ db SFX_BATTLE_0D, $00, $a0 ; THUNDERPUNCH
+ db SFX_DAMAGE, $00, $80 ; SCRATCH
+ db SFX_BATTLE_0F, $20, $40 ; VICEGRIP
+ db SFX_BATTLE_0F, $00, $80 ; GUILLOTINE
+ db SFX_BATTLE_0E, $00, $a0 ; RAZOR_WIND
+ db SFX_NOT_VERY_EFFECTIVE, $10, $c0 ; SWORDS_DANCE
+ db SFX_NOT_VERY_EFFECTIVE, $00, $a0 ; CUT
+ db SFX_BATTLE_12, $00, $c0 ; GUST
+ db SFX_BATTLE_12, $10, $a0 ; WING_ATTACK
+ db SFX_BATTLE_13, $00, $e0 ; WHIRLWIND
+ db SFX_NOT_VERY_EFFECTIVE, $20, $c0 ; FLY
+ db SFX_BATTLE_14, $00, $80 ; BIND
+ db SFX_BATTLE_22, $00, $80 ; SLAM
+ db SFX_VINE_WHIP, $01, $80 ; VINE_WHIP
+ db SFX_BATTLE_20, $00, $80 ; STOMP
+ db SFX_BATTLE_17, $f0, $40 ; DOUBLE_KICK
+ db SFX_SUPER_EFFECTIVE, $00, $80 ; MEGA_KICK
+ db SFX_BATTLE_17, $00, $80 ; JUMP_KICK
+ db SFX_BATTLE_21, $10, $80 ; ROLLING_KICK
+ db SFX_BATTLE_1B, $01, $a0 ; SAND_ATTACK
+ db SFX_BATTLE_18, $00, $80 ; HEADBUTT
+ db SFX_BATTLE_1E, $00, $60 ; HORN_ATTACK
+ db SFX_BATTLE_1E, $01, $40 ; FURY_ATTACK
+ db SFX_HORN_DRILL, $00, $a0 ; HORN_DRILL
+ db SFX_SUPER_EFFECTIVE, $10, $a0 ; TACKLE
+ db SFX_BATTLE_20, $00, $c0 ; BODY_SLAM
+ db SFX_BATTLE_14, $10, $60 ; WRAP
+ db SFX_SUPER_EFFECTIVE, $00, $a0 ; TAKE_DOWN
+ db SFX_BATTLE_22, $11, $c0 ; THRASH
+ db SFX_SUPER_EFFECTIVE, $20, $c0 ; DOUBLE_EDGE
+ db SFX_BATTLE_21, $00, $80 ; TAIL_WHIP
+ db SFX_BATTLE_1B, $00, $80 ; POISON_STING
+ db SFX_BATTLE_1B, $20, $c0 ; TWINEEDLE
+ db SFX_BATTLE_19, $00, $80 ; PIN_MISSILE
+ db SFX_BATTLE_31, $ff, $40 ; LEER
+ db SFX_BATTLE_1E, $00, $80 ; BITE
+ db SFX_BATTLE_0B, $00, $c0 ; GROWL
+ db SFX_BATTLE_0B, $00, $40 ; ROAR
+ db SFX_BATTLE_35, $00, $80 ; SING
+ db SFX_BATTLE_27, $40, $60 ; SUPERSONIC
+ db SFX_BATTLE_27, $00, $80 ; SONICBOOM
+ db SFX_BATTLE_27, $ff, $40 ; DISABLE
+ db SFX_BATTLE_2A, $80, $c0 ; ACID
+ db SFX_BATTLE_19, $10, $a0 ; EMBER
+ db SFX_BATTLE_19, $21, $e0 ; FLAMETHROWER
+ db SFX_EARTHQUAKE, $00, $80 ; MIST
+ db SFX_BATTLE_24, $20, $60 ; WATER_GUN
+ db SFX_BATTLE_2A, $00, $80 ; HYDRO_PUMP
+ db SFX_BATTLE_2C, $00, $80 ; SURF
+ db SFX_BATTLE_28, $40, $80 ; ICE_BEAM
+ db SFX_EARTHQUAKE, $f0, $e0 ; BLIZZARD
+ db SFX_PSYBEAM, $00, $80 ; PSYBEAM
+ db SFX_BATTLE_2A, $f0, $60 ; BUBBLEBEAM
+ db SFX_BATTLE_28, $00, $80 ; AURORA_BEAM
+ db SFX_BATTLE_36, $00, $80 ; HYPER_BEAM
+ db SFX_PECK, $01, $a0 ; PECK
+ db SFX_BATTLE_13, $f0, $20 ; DRILL_PECK
+ db SFX_BATTLE_23, $01, $c0 ; SUBMISSION
+ db SFX_BATTLE_23, $00, $80 ; LOW_KICK
+ db SFX_SUPER_EFFECTIVE, $00, $e0 ; COUNTER
+ db SFX_BATTLE_26, $01, $60 ; SEISMIC_TOSS
+ db SFX_BATTLE_26, $20, $40 ; STRENGTH
+ db SFX_BATTLE_24, $00, $80 ; ABSORB
+ db SFX_BATTLE_24, $40, $c0 ; MEGA_DRAIN
+ db SFX_BATTLE_1B, $03, $60 ; LEECH_SEED
+ db SFX_BATTLE_25, $11, $e0 ; GROWTH
+ db SFX_BATTLE_12, $20, $e0 ; RAZOR_LEAF
+ db SFX_BATTLE_2E, $00, $80 ; SOLARBEAM
+ db SFX_BATTLE_1C, $00, $80 ; POISONPOWDER
+ db SFX_BATTLE_1C, $11, $a0 ; STUN_SPORE
+ db SFX_BATTLE_1C, $01, $c0 ; SLEEP_POWDER
+ db SFX_BATTLE_13, $14, $c0 ; PETAL_DANCE
+ db SFX_BATTLE_1B, $02, $a0 ; STRING_SHOT
+ db SFX_EARTHQUAKE, $f0, $80 ; DRAGON_RAGE
+ db SFX_EARTHQUAKE, $20, $c0 ; FIRE_SPIN
+ db SFX_THUNDERBOLT, $00, $20 ; THUNDERSHOCK
+ db SFX_THUNDERBOLT, $20, $80 ; THUNDERBOLT
+ db SFX_BATTLE_2E, $12, $60 ; THUNDER_WAVE
+ db SFX_BATTLE_26, $00, $80 ; THUNDER
+ db SFX_BATTLE_14, $01, $e0 ; ROCK_THROW
+ db SFX_EARTHQUAKE, $0f, $e0 ; EARTHQUAKE
+ db SFX_EARTHQUAKE, $11, $20 ; FISSURE
+ db SFX_DAMAGE, $10, $40 ; DIG
+ db SFX_BATTLE_0F, $10, $c0 ; TOXIC
+ db SFX_BATTLE_14, $00, $20 ; CONFUSION
+ db SFX_PSYCHIC_M, $00, $80 ; PSYCHIC_M
+ db SFX_BATTLE_35, $11, $18 ; HYPNOSIS
+ db SFX_BATTLE_09, $20, $c0 ; MEDITATE
+ db SFX_FAINT_FALL, $20, $c0 ; AGILITY
+ db SFX_BATTLE_25, $00, $10 ; QUICK_ATTACK
+ db SFX_BATTLE_26, $f0, $20 ; RAGE
+ db SFX_BATTLE_33, $f0, $c0 ; TELEPORT
+ db SFX_NOT_VERY_EFFECTIVE, $f0, $e0 ; NIGHT_SHADE
+ db SFX_BATTLE_09, $f0, $40 ; MIMIC
+ db SFX_BATTLE_31, $00, $80 ; SCREECH
+ db SFX_BATTLE_33, $80, $40 ; DOUBLE_TEAM
+ db SFX_BATTLE_33, $00, $80 ; RECOVER
+ db SFX_BATTLE_14, $11, $20 ; HARDEN
+ db SFX_BATTLE_14, $22, $10 ; MINIMIZE
+ db SFX_BATTLE_1B, $f1, $ff ; SMOKESCREEN
+ db SFX_BATTLE_13, $f1, $ff ; CONFUSE_RAY
+ db SFX_BATTLE_14, $33, $30 ; WITHDRAW
+ db SFX_BATTLE_32, $40, $c0 ; DEFENSE_CURL
+ db SFX_BATTLE_0E, $20, $20 ; BARRIER
+ db SFX_BATTLE_0E, $f0, $10 ; LIGHT_SCREEN
+ db SFX_BATTLE_0F, $f8, $10 ; HAZE
+ db SFX_NOT_VERY_EFFECTIVE, $f0, $10 ; REFLECT
+ db SFX_BATTLE_25, $00, $80 ; FOCUS_ENERGY
+ db SFX_BATTLE_18, $00, $c0 ; BIDE
+ db SFX_BATTLE_32, $c0, $ff ; METRONOME
+ db SFX_BATTLE_09, $f2, $20 ; MIRROR_MOVE
+ db SFX_BATTLE_34, $00, $80 ; SELFDESTRUCT
+ db SFX_BATTLE_34, $00, $40 ; EGG_BOMB
+ db SFX_BATTLE_09, $00, $40 ; LICK
+ db SFX_NOT_VERY_EFFECTIVE, $10, $ff ; SMOG
+ db SFX_BATTLE_2A, $20, $20 ; SLUDGE
+ db SFX_BATTLE_32, $00, $80 ; BONE_CLUB
+ db SFX_EARTHQUAKE, $1f, $20 ; FIRE_BLAST
+ db SFX_BATTLE_25, $2f, $80 ; WATERFALL
+ db SFX_BATTLE_0F, $1f, $ff ; CLAMP
+ db SFX_BATTLE_2B, $1f, $60 ; SWIFT
+ db SFX_BATTLE_26, $1e, $20 ; SKULL_BASH
+ db SFX_BATTLE_26, $1f, $18 ; SPIKE_CANNON
+ db SFX_BATTLE_14, $0f, $80 ; CONSTRICT
+ db SFX_BATTLE_09, $f8, $10 ; AMNESIA
+ db SFX_FAINT_FALL, $18, $20 ; KINESIS
+ db SFX_BATTLE_32, $08, $40 ; SOFTBOILED
+ db SFX_BATTLE_17, $01, $e0 ; HI_JUMP_KICK
+ db SFX_NOT_VERY_EFFECTIVE, $09, $ff ; GLARE
+ db SFX_BATTLE_35, $42, $01 ; DREAM_EATER
+ db SFX_BATTLE_1C, $00, $ff ; POISON_GAS
+ db SFX_BATTLE_32, $08, $e0 ; BARRAGE
+ db SFX_BATTLE_24, $00, $80 ; LEECH_LIFE
+ db SFX_BATTLE_09, $88, $10 ; LOVELY_KISS
+ db SFX_BATTLE_25, $48, $ff ; SKY_ATTACK
+ db SFX_FAINT_FALL, $ff, $ff ; TRANSFORM
+ db SFX_BATTLE_24, $ff, $10 ; BUBBLE
+ db SFX_FAINT_FALL, $ff, $04 ; DIZZY_PUNCH
+ db SFX_BATTLE_1C, $01, $ff ; SPORE
+ db SFX_BATTLE_13, $f8, $ff ; FLASH
+ db SFX_BATTLE_0C, $f0, $f0 ; PSYWAVE
+ db SFX_BATTLE_0F, $08, $10 ; SPLASH
+ db SFX_BATTLE_0D, $f0, $ff ; ACID_ARMOR
+ db SFX_SUPER_EFFECTIVE, $f0, $ff ; CRABHAMMER
+ db SFX_BATTLE_34, $10, $ff ; EXPLOSION
+ db SFX_BATTLE_0E, $f0, $20 ; FURY_SWIPES
+ db SFX_BATTLE_2B, $f0, $60 ; BONEMERANG
+ db SFX_BATTLE_21, $12, $10 ; REST
+ db SFX_BATTLE_36, $f0, $20 ; ROCK_SLIDE
+ db SFX_BATTLE_1E, $12, $ff ; HYPER_FANG
+ db SFX_BATTLE_31, $80, $04 ; SHARPEN
+ db SFX_BATTLE_33, $f0, $10 ; CONVERSION
+ db SFX_EARTHQUAKE, $f8, $ff ; TRI_ATTACK
+ db SFX_BATTLE_26, $f0, $ff ; SUPER_FANG
+ db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH
+ db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE
+ db SFX_BATTLE_0B, $00, $80 ; STRUGGLE
+ db SFX_BATTLE_0B, $00, $80
+
+CopyPicTiles:
ld a, [H_WHOSETURN]
and a
ld a, $31 ; base tile ID of player mon sprite
@@ -2713,7 +2715,7 @@ CopyPicTiles: ; 79c0a (1e:5c0a)
jr CopyTileIDs_NoBGTransfer
; copy the tiles used when a mon is being sent out of or into a pokeball
-CopyDownscaledMonTiles: ; 79c16 (1e:5c16)
+CopyDownscaledMonTiles:
call GetPredefRegisters
ld a, [wDownscaledMonSize]
and a
@@ -2724,14 +2726,14 @@ CopyDownscaledMonTiles: ; 79c16 (1e:5c16)
ld de, DownscaledMonTiles_3x3
; fall through
-CopyTileIDs_NoBGTransfer: ; 79acb (1e:5acb)
+CopyTileIDs_NoBGTransfer:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
; fall through
; b = number of rows
; c = number of columns
-CopyTileIDs: ; 79ace (1e:5ace)
+CopyTileIDs:
push hl
.rowLoop
push bc
@@ -2756,100 +2758,100 @@ CopyTileIDs: ; 79ace (1e:5ace)
pop hl
ret
-TileIDListPointerTable: ; 79c46 (1e:5c46)
+TileIDListPointerTable:
dw DownscaledMonTiles_7x7
- db $77
+ dn 7, 7
dw DownscaledMonTiles_5x7
- db $57
+ dn 5, 7
dw DownscaledMonTiles_3x7
- db $37
+ dn 3, 7
dw DownscaledMonTiles_79ce9
- db $77
+ dn 7, 7
dw DownscaledMonTiles_79d1a
- db $77
+ dn 7, 7
dw DownscaledMonTiles_79d4b
- db $77
+ dn 7, 7
dw DownscaledMonTiles_79d7c
- db $86
+ dn 8, 6
dw DownscaledMonTiles_79dac
- db $3C
-
-DownscaledMonTiles_5x5: ; 79b02 (1e:5b02)
- db $31,$38,$46,$54,$5B
- db $32,$39,$47,$55,$5C
- db $34,$3B,$49,$57,$5E
- db $36,$3D,$4B,$59,$60
- db $37,$3E,$4C,$5A,$61
-
-DownscaledMonTiles_3x3: ; 79b1b (1e:5b1b)
- db $31,$46,$5B
- db $34,$49,$5E
- db $37,$4C,$61
-
-DownscaledMonTiles_7x7: ; 79c80 (1e:5c80)
- db $00,$07,$0E,$15,$1C,$23,$2A
- db $01,$08,$0F,$16,$1D,$24,$2B
- db $02,$09,$10,$17,$1E,$25,$2C
- db $03,$0A,$11,$18,$1F,$26,$2D
- db $04,$0B,$12,$19,$20,$27,$2E
- db $05,$0C,$13,$1A,$21,$28,$2F
- db $06,$0D,$14,$1B,$22,$29,$30
-
-DownscaledMonTiles_5x7: ; 79cb1 (1e:5cb1)
- db $00,$07,$0E,$15,$1C,$23,$2A
- db $01,$08,$0F,$16,$1D,$24,$2B
- db $03,$0A,$11,$18,$1F,$26,$2D
- db $04,$0B,$12,$19,$20,$27,$2E
- db $05,$0C,$13,$1A,$21,$28,$2F
-
-DownscaledMonTiles_3x7: ; 79cd4 (1e:5cd4)
- db $00,$07,$0E,$15,$1C,$23,$2A
- db $02,$09,$10,$17,$1E,$25,$2C
- db $04,$0B,$12,$19,$20,$27,$2E
-
-DownscaledMonTiles_79ce9: ; 79ce9 (1e:5ce9)
- db $00,$00,$00,$00,$00,$00,$00
- db $00,$00,$00,$00,$00,$19,$00
- db $02,$06,$0B,$10,$14,$1A,$00
- db $00,$07,$0C,$11,$15,$1B,$00
- db $03,$08,$0D,$12,$16,$1C,$00
- db $04,$09,$0E,$13,$17,$1D,$1F
- db $05,$0A,$0F,$01,$18,$1E,$20
-
-DownscaledMonTiles_79d1a: ; 79d1a (1e:5d1a)
- db $00,$00,$00,$30,$00,$37,$00
- db $00,$00,$2B,$31,$34,$38,$3D
- db $21,$26,$2C,$01,$35,$39,$3E
- db $22,$27,$2D,$32,$36,$01,$00
- db $23,$28,$2E,$33,$01,$3A,$00
- db $24,$29,$2F,$01,$01,$3B,$00
- db $25,$2A,$01,$01,$01,$3C,$00
-
-DownscaledMonTiles_79d4b: ; 79d4b (1e:5d4b)
- db $00,$00,$00,$00,$00,$00,$00
- db $00,$00,$47,$4D,$00,$00,$00
- db $00,$00,$48,$4E,$52,$56,$5B
- db $3F,$43,$49,$4F,$53,$57,$5C
- db $40,$44,$4A,$50,$54,$58,$00
- db $41,$45,$4B,$51,$4C,$59,$5D
- db $42,$46,$4C,$4C,$55,$5A,$5E
-
-DownscaledMonTiles_79d7c: ; 79d7c (1e:5d7c)
- db $31,$32,$32,$32,$32,$33
- db $34,$35,$36,$36,$37,$38
- db $34,$39,$3A,$3A,$3B,$38
- db $3C,$3D,$3E,$3E,$3F,$40
- db $41,$42,$43,$43,$44,$45
- db $46,$47,$43,$48,$49,$4A
- db $41,$43,$4B,$4C,$4D,$4E
- db $4F,$50,$50,$50,$51,$52
-
-DownscaledMonTiles_79dac: ; 79dac (1e:5dac)
- db $43,$55,$56,$53,$53,$53,$53,$53,$53,$53,$53,$53
- db $43,$57,$58,$54,$54,$54,$54,$54,$54,$54,$54,$54
- db $43,$59,$5A,$43,$43,$43,$43,$43,$43,$43,$43,$43
-
-AnimationLeavesFalling: ; 79dd0 (1e:5dd0)
+ dn 3, 12
+
+DownscaledMonTiles_5x5:
+ db $31, $38, $46, $54, $5B
+ db $32, $39, $47, $55, $5C
+ db $34, $3B, $49, $57, $5E
+ db $36, $3D, $4B, $59, $60
+ db $37, $3E, $4C, $5A, $61
+
+DownscaledMonTiles_3x3:
+ db $31, $46, $5B
+ db $34, $49, $5E
+ db $37, $4C, $61
+
+DownscaledMonTiles_7x7:
+ db $00, $07, $0E, $15, $1C, $23, $2A
+ db $01, $08, $0F, $16, $1D, $24, $2B
+ db $02, $09, $10, $17, $1E, $25, $2C
+ db $03, $0A, $11, $18, $1F, $26, $2D
+ db $04, $0B, $12, $19, $20, $27, $2E
+ db $05, $0C, $13, $1A, $21, $28, $2F
+ db $06, $0D, $14, $1B, $22, $29, $30
+
+DownscaledMonTiles_5x7:
+ db $00, $07, $0E, $15, $1C, $23, $2A
+ db $01, $08, $0F, $16, $1D, $24, $2B
+ db $03, $0A, $11, $18, $1F, $26, $2D
+ db $04, $0B, $12, $19, $20, $27, $2E
+ db $05, $0C, $13, $1A, $21, $28, $2F
+
+DownscaledMonTiles_3x7:
+ db $00, $07, $0E, $15, $1C, $23, $2A
+ db $02, $09, $10, $17, $1E, $25, $2C
+ db $04, $0B, $12, $19, $20, $27, $2E
+
+DownscaledMonTiles_79ce9:
+ db $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $19, $00
+ db $02, $06, $0B, $10, $14, $1A, $00
+ db $00, $07, $0C, $11, $15, $1B, $00
+ db $03, $08, $0D, $12, $16, $1C, $00
+ db $04, $09, $0E, $13, $17, $1D, $1F
+ db $05, $0A, $0F, $01, $18, $1E, $20
+
+DownscaledMonTiles_79d1a:
+ db $00, $00, $00, $30, $00, $37, $00
+ db $00, $00, $2B, $31, $34, $38, $3D
+ db $21, $26, $2C, $01, $35, $39, $3E
+ db $22, $27, $2D, $32, $36, $01, $00
+ db $23, $28, $2E, $33, $01, $3A, $00
+ db $24, $29, $2F, $01, $01, $3B, $00
+ db $25, $2A, $01, $01, $01, $3C, $00
+
+DownscaledMonTiles_79d4b:
+ db $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $47, $4D, $00, $00, $00
+ db $00, $00, $48, $4E, $52, $56, $5B
+ db $3F, $43, $49, $4F, $53, $57, $5C
+ db $40, $44, $4A, $50, $54, $58, $00
+ db $41, $45, $4B, $51, $4C, $59, $5D
+ db $42, $46, $4C, $4C, $55, $5A, $5E
+
+DownscaledMonTiles_79d7c:
+ db $31, $32, $32, $32, $32, $33
+ db $34, $35, $36, $36, $37, $38
+ db $34, $39, $3A, $3A, $3B, $38
+ db $3C, $3D, $3E, $3E, $3F, $40
+ db $41, $42, $43, $43, $44, $45
+ db $46, $47, $43, $48, $49, $4A
+ db $41, $43, $4B, $4C, $4D, $4E
+ db $4F, $50, $50, $50, $51, $52
+
+DownscaledMonTiles_79dac:
+ db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
+ db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
+ db $43, $59, $5A, $43, $43, $43, $43, $43, $43, $43, $43, $43
+
+AnimationLeavesFalling:
; Makes leaves float down from the top of the screen. This is used
; in Razor Leaf's animation.
ld a, [wAnimPalette]
@@ -2860,7 +2862,7 @@ AnimationLeavesFalling: ; 79dd0 (1e:5dd0)
ld [wNumFallingObjects], a
jp AnimationFallingObjects
-AnimationPetalsFalling: ; 79de2 (1e:5de2)
+AnimationPetalsFalling:
; Makes lots of petals fall down from the top of the screen. It's used in
; the animation for Petal Dance.
ld d, $71 ; petal tile
@@ -2869,7 +2871,7 @@ AnimationPetalsFalling: ; 79de2 (1e:5de2)
call AnimationFallingObjects
jp ClearSprites
-AnimationFallingObjects: ; 79def (1e:5def)
+AnimationFallingObjects:
ld c, a
ld a, 1
call InitMultipleObjectsOAM
@@ -2908,7 +2910,7 @@ AnimationFallingObjects: ; 79def (1e:5def)
jr nz, .loop ; keep moving the falling objects down until it does
ret
-FallingObjects_UpdateOAMEntry: ; 79cdb (1e:5cdb)
+FallingObjects_UpdateOAMEntry:
; Increases Y by 2 pixels and adjusts X and X flip based on the falling object's
; movement byte.
ld hl, wOAMBuffer
@@ -2977,10 +2979,10 @@ FallingObjects_UpdateOAMEntry: ; 79cdb (1e:5cdb)
ld [hl], a ; attribute
ret
-FallingObjects_DeltaXs: ; 79e96 (1e:5e96)
+FallingObjects_DeltaXs:
db 0, 1, 3, 5, 7, 9, 11, 13, 15
-FallingObjects_UpdateMovementByte: ; 79e9f (1e:5e9f)
+FallingObjects_UpdateMovementByte:
ld a, [wFallingObjectMovementByte]
inc a
ld b, a
@@ -2996,7 +2998,7 @@ FallingObjects_UpdateMovementByte: ; 79e9f (1e:5e9f)
ld [wFallingObjectMovementByte], a
ret
-FallingObjects_InitXCoords: ; 79eb3 (1e:5eb3)
+FallingObjects_InitXCoords:
ld hl, wOAMBuffer + $01
ld de, FallingObjects_InitialXCoords
ld a, [wNumFallingObjects]
@@ -3012,10 +3014,10 @@ FallingObjects_InitXCoords: ; 79eb3 (1e:5eb3)
jr nz, .loop
ret
-FallingObjects_InitialXCoords: ; 79ec7 (1e:5ec7)
- db $38,$40,$50,$60,$70,$88,$90,$56,$67,$4A,$77,$84,$98,$32,$22,$5C,$6C,$7D,$8E,$99
+FallingObjects_InitialXCoords:
+ db $38, $40, $50, $60, $70, $88, $90, $56, $67, $4A, $77, $84, $98, $32, $22, $5C, $6C, $7D, $8E, $99
-FallingObjects_InitMovementData: ; 79edb (1e:5edb)
+FallingObjects_InitMovementData:
ld hl, wFallingObjectsMovementData
ld de, FallingObjects_InitialMovementData
ld a, [wNumFallingObjects]
@@ -3028,10 +3030,10 @@ FallingObjects_InitMovementData: ; 79edb (1e:5edb)
jr nz, .loop
ret
-FallingObjects_InitialMovementData: ; 79eec (1e:5eec)
- db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86
+FallingObjects_InitialMovementData:
+ db $00, $84, $06, $81, $02, $88, $01, $83, $05, $89, $09, $80, $07, $87, $03, $82, $04, $85, $08, $86
-AnimationShakeEnemyHUD: ; 79f00 (1e:5f00)
+AnimationShakeEnemyHUD:
; Shakes the enemy HUD.
; Make a copy of the back pic's tile patterns in sprite tile pattern VRAM.
@@ -3117,7 +3119,7 @@ AnimationShakeEnemyHUD: ; 79f00 (1e:5f00)
; b = tile ID list index
; c = base tile ID
-CopyTileIDsFromList: ; 79f7b (1e:5f7b)
+CopyTileIDsFromList:
call GetPredefRegisters
ld a, c
ld [hBaseTileID], a
@@ -3127,7 +3129,7 @@ CopyTileIDsFromList: ; 79f7b (1e:5f7b)
pop hl
jp CopyTileIDs
-ShakeEnemyHUD_ShakeBG: ; 79f8a (1e:5f8a)
+ShakeEnemyHUD_ShakeBG:
ld a, [hSCX]
ld [wTempSCX], a
.loop
@@ -3147,71 +3149,71 @@ ShakeEnemyHUD_ShakeBG: ; 79f8a (1e:5f8a)
ld [hSCX], a
ret
-BattleAnimCopyTileMapToVRAM: ; 79fae (1e:5fae)
+BattleAnimCopyTileMapToVRAM:
ld a, h
ld [H_AUTOBGTRANSFERDEST + 1], a
ld a, l
ld [H_AUTOBGTRANSFERDEST], a
jp Delay3
-TossBallAnimation: ; 79fb7 (1e:5fb7)
- ld a,[wIsInBattle]
- cp a,2
- jr z,.BlockBall ; if in trainer battle, play different animation
- ld a,[wPokeBallAnimData]
- ld b,a
+TossBallAnimation:
+ ld a, [wIsInBattle]
+ cp a, 2
+ jr z, .BlockBall ; if in trainer battle, play different animation
+ ld a, [wPokeBallAnimData]
+ ld b, a
; upper nybble: how many animations (from PokeBallAnimations) to play
; this will be 4 for successful capture, 6 for breakout
- and a,$F0
+ and a, $F0
swap a
- ld c,a
+ ld c, a
; lower nybble: number of shakes
; store these for later
- ld a,b
- and a,$F
- ld [wNumShakes],a
+ ld a, b
+ and a, $F
+ ld [wNumShakes], a
- ld hl,.PokeBallAnimations
+ ld hl, .PokeBallAnimations
; choose which toss animation to use
- ld a,[wcf91]
- cp a,POKE_BALL
- ld b,TOSS_ANIM
- jr z,.done
- cp a,GREAT_BALL
- ld b,GREATTOSS_ANIM
- jr z,.done
- ld b,ULTRATOSS_ANIM
+ ld a, [wcf91]
+ cp a, POKE_BALL
+ ld b, TOSS_ANIM
+ jr z, .done
+ cp a, GREAT_BALL
+ ld b, GREATTOSS_ANIM
+ jr z, .done
+ ld b, ULTRATOSS_ANIM
.done
- ld a,b
+ ld a, b
.PlayNextAnimation
- ld [wAnimationID],a
+ ld [wAnimationID], a
push bc
push hl
call PlayAnimation
pop hl
- ld a,[hli]
+ ld a, [hli]
pop bc
dec c
- jr nz,.PlayNextAnimation
+ jr nz, .PlayNextAnimation
ret
-.PokeBallAnimations: ; 79ff1 (1e:5ff1)
+.PokeBallAnimations:
; sequence of animations that make up the Poké Ball toss
- db POOF_ANIM,HIDEPIC_ANIM,SHAKE_ANIM,POOF_ANIM,SHOWPIC_ANIM
+ db POOF_ANIM, HIDEPIC_ANIM, SHAKE_ANIM, POOF_ANIM, SHOWPIC_ANIM
-.BlockBall ; 79ff6 (1e:5ff6)
- ld a,TOSS_ANIM
- ld [wAnimationID],a
+.BlockBall
+ ld a, TOSS_ANIM
+ ld [wAnimationID], a
call PlayAnimation
- ld a,SFX_FAINT_THUD
+ ld a, SFX_FAINT_THUD
call PlaySound
- ld a,BLOCKBALL_ANIM
- ld [wAnimationID],a
+ ld a, BLOCKBALL_ANIM
+ ld [wAnimationID], a
jp PlayAnimation
-PlayApplyingAttackSound: ; 7a00b (1e:600b)
+PlayApplyingAttackSound:
; play a different sound depending if move is not very effective, neutral, or super-effective
; don't play any sound at all if move is ineffective
call WaitForSoundToFinish
@@ -3235,4 +3237,4 @@ PlayApplyingAttackSound: ; 7a00b (1e:600b)
ld a, b
ld [wTempoModifier], a
ld a, c
- jp PlaySound \ No newline at end of file
+ jp PlaySound
diff --git a/engine/battle/bank3d_battle.asm b/engine/battle/bank3d_battle.asm
index 2b2809d9..3719841f 100644
--- a/engine/battle/bank3d_battle.asm
+++ b/engine/battle/bank3d_battle.asm
@@ -1,14 +1,14 @@
-InitBattle: ; f5ff2 (3d:5ff2)
+InitBattle:
ld a, [wCurOpponent]
and a
jr z, asm_f6003
-InitOpponent: ; f5ff8 (3d:5ff8)
+InitOpponent:
ld a, [wCurOpponent]
ld [wcf91], a
ld [wEnemyMonSpecies2], a
jr asm_f601d
-asm_f6003: ; f6003 (3d:6003)
+asm_f6003:
ld a, [wd732]
bit 1, a
jr z, .asm_f600f
@@ -21,7 +21,7 @@ asm_f6003: ; f6003 (3d:6003)
ret nz
callab TryDoWildEncounter
ret nz
-asm_f601d: ; f601d (f:601d)
+asm_f601d:
ld a, [wMapPalOffset]
push af
ld hl, wLetterPrintingDelayFlags
@@ -56,7 +56,7 @@ asm_f601d: ; f601d (f:601d)
callabd_ModifyPikachuHappiness PIKAHAPPY_GYMLEADER ; useless since already in bank3d
jp InitBattle_Common
-InitWildBattle: ; f607c (3d:607c)
+InitWildBattle:
ld a, $1
ld [wIsInBattle], a
callab LoadEnemyMonData
@@ -106,7 +106,7 @@ InitWildBattle: ; f607c (3d:607c)
predef CopyUncompressedPicToTilemap
; common code that executes after init battle code specific to trainer or wild battles
-InitBattle_Common: ; f60eb (3d:60eb)
+InitBattle_Common:
ld b, $0
call RunPaletteCommand
callab SlidePlayerAndEnemySilhouettesOnScreen
@@ -149,7 +149,7 @@ InitBattle_Common: ; f60eb (3d:60eb)
.emptyString
db "@"
-_LoadTrainerPic: ; f615a (3d:615a)
+_LoadTrainerPic:
; wd033-wd034 contain pointer to pic
ld a, [wTrainerPicPointer] ; wd033
ld e, a
@@ -167,7 +167,7 @@ _LoadTrainerPic: ; f615a (3d:615a)
ld c, a
jp LoadUncompressedSpriteData
-LoadMonBackPic: ; f6178 (3d:6178)
+LoadMonBackPic:
; Assumes the monster's attributes have
; been loaded with GetMonHeader.
ld a, [wBattleMonSpecies2]
@@ -187,7 +187,7 @@ LoadMonBackPic: ; f6178 (3d:6178)
ld b, a
jp CopyVideoData
-AnimateSendingOutMon: ; f61a6 (3d:f61a6)
+AnimateSendingOutMon:
ld a, [wPredefRegisters]
ld h, a
ld a, [wPredefRegisters + 1]
@@ -227,13 +227,13 @@ AnimateSendingOutMon: ; f61a6 (3d:f61a6)
add $31
jr CopyUncompressedPicToHL
-CopyUncompressedPicToTilemap: ; f61f9 (3d:61f9)
+CopyUncompressedPicToTilemap:
ld a, [wPredefRegisters]
ld h, a
ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
-CopyUncompressedPicToHL: ; f6203 (3d:6203)
+CopyUncompressedPicToHL:
ld bc, $707
ld de, $14
push af
@@ -288,4 +288,4 @@ INCLUDE "engine/battle/moveEffects/reflect_light_screen_effect.asm"
INCLUDE "engine/battle/moveEffects/mist_effect.asm"
INCLUDE "engine/battle/moveEffects/one_hit_ko_effect.asm"
INCLUDE "engine/battle/moveEffects/pay_day_effect.asm"
-INCLUDE "engine/battle/moveEffects/paralyze_effect.asm" \ No newline at end of file
+INCLUDE "engine/battle/moveEffects/paralyze_effect.asm"
diff --git a/engine/battle/bank_e_misc.asm b/engine/battle/bank_e_misc.asm
index 278cce61..df9145f2 100755
--- a/engine/battle/bank_e_misc.asm
+++ b/engine/battle/bank_e_misc.asm
@@ -1,5 +1,5 @@
; formats a string at wMovesString that lists the moves at wMoves
-FormatMovesString: ; 39b06 (e:5b06)
+FormatMovesString:
ld hl, wMoves
ld de, wMovesString
ld b, $0
@@ -52,7 +52,7 @@ FormatMovesString: ; 39b06 (e:5b06)
ret
; XXX this is called in a few places, but it doesn't appear to do anything useful
-InitList: ; 39b53 (e:5b53)
+InitList:
ld a, [wInitListType]
cp INIT_ENEMYOT_LIST
jr nz, .notEnemy
@@ -100,4 +100,4 @@ InitList: ; 39b53 (e:5b53)
ld [wItemPrices], a
ld a, b
ld [wItemPrices + 1], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm
index e3527897..2f3e4e91 100644
--- a/engine/battle/battle_transitions.asm
+++ b/engine/battle/battle_transitions.asm
@@ -1,5 +1,5 @@
-BattleTransition: ; 709d7 (1c:49d7)
- ld a, $1
+BattleTransition:
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
@@ -70,7 +70,7 @@ BattleTransition: ; 709d7 (1c:49d7)
; bit 0: set if trainer battle
; bit 1: set if enemy is at least 3 levels higher than player
; bit 2: set if dungeon map
-BattleTransitions: ; 70a3c (1c:4a3c)
+BattleTransitions:
dw BattleTransition_DoubleCircle ; %000
dw BattleTransition_Spiral ; %001
dw BattleTransition_Circle ; %010
@@ -80,7 +80,7 @@ BattleTransitions: ; 70a3c (1c:4a3c)
dw BattleTransition_VerticalStripes ; %110
dw BattleTransition_Split ; %111
-GetBattleTransitionID_WildOrTrainer: ; 70a4c (1c:4a4c)
+GetBattleTransitionID_WildOrTrainer:
ld a, [wCurOpponent]
cp 200
jr nc, .trainer
@@ -90,7 +90,7 @@ GetBattleTransitionID_WildOrTrainer: ; 70a4c (1c:4a4c)
set 0, c
ret
-GetBattleTransitionID_CompareLevels: ; 70a59 (1c:4a59)
+GetBattleTransitionID_CompareLevels:
ld hl, wPartyMon1HP
.faintedLoop
ld a, [hli]
@@ -121,7 +121,7 @@ GetBattleTransitionID_CompareLevels: ; 70a59 (1c:4a59)
; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps,
; MANSION_1, SEAFOAM_ISLANDS_[2-5], POWER_PLANT, DIGLETTS_CAVE
; and SILPH_CO_[9-11]F as dungeon maps
-GetBattleTransitionID_IsDungeonMap: ; 70a83 (1c:4a83)
+GetBattleTransitionID_IsDungeonMap:
ld a, [wCurMap]
ld e, a
ld hl, DungeonMaps1
@@ -153,7 +153,7 @@ GetBattleTransitionID_IsDungeonMap: ; 70a83 (1c:4a83)
; GetBattleTransitionID_IsDungeonMap checks if wCurMap
; is equal to one of these maps
-DungeonMaps1: ; 70aa9 (1c:4aa9)
+DungeonMaps1:
db VIRIDIAN_FOREST
db ROCK_TUNNEL_1
db SEAFOAM_ISLANDS_1
@@ -162,7 +162,7 @@ DungeonMaps1: ; 70aa9 (1c:4aa9)
; GetBattleTransitionID_IsDungeonMap checks if wCurMap
; is in between or equal to each pair of maps
-DungeonMaps2: ; 70aac (1c:4aac)
+DungeonMaps2:
; all MT_MOON maps
db MT_MOON_1
db MT_MOON_3
@@ -181,17 +181,17 @@ DungeonMaps2: ; 70aac (1c:4aac)
db UNKNOWN_DUNGEON_1
db $FF
-LoadBattleTransitionTile: ; 70ab7 (1c:4ab7)
+LoadBattleTransitionTile:
ld hl, vChars1 + $7f0
ld de, BattleTransitionTile
lb bc, BANK(BattleTransitionTile), (BattleTransitionTileEnd - BattleTransitionTile) / $10
jp CopyVideoData
-BattleTransitionTile: ; 70ac3 (1c:4ac3)
+BattleTransitionTile:
INCBIN "gfx/battle_transition.2bpp"
BattleTransitionTileEnd:
-BattleTransition_BlackScreen: ; 70ad3 (1c:4ad3)
+BattleTransition_BlackScreen:
ld a, $ff
ld [rBGP], a
ld [rOBP0], a
@@ -205,7 +205,7 @@ BattleTransition_BlackScreen: ; 70ad3 (1c:4ad3)
; called regardless of mon levels, but does an
; outward spiral if enemy is at least 3 levels
; higher than player and does an inward spiral otherwise
-BattleTransition_Spiral: ; 70ae5 (1c:4ae5)
+BattleTransition_Spiral:
ld a, [wBattleTransitionSpiralDirection]
and a
jr z, .outwardSpiral
@@ -238,7 +238,7 @@ BattleTransition_Spiral: ; 70ae5 (1c:4ae5)
ld [wOutwardSpiralTileMapPointer], a
ret
-BattleTransition_InwardSpiral: ; 70b1d (1c:4b1d)
+BattleTransition_InwardSpiral:
ld a, 7
ld [wInwardSpiralUpdateScreenCounter], a
coord hl, 0, 0
@@ -268,7 +268,7 @@ BattleTransition_InwardSpiral: ; 70b1d (1c:4b1d)
jr nz, .loop
ret
-BattleTransition_InwardSpiral_: ; 70b53 (1c:4b53)
+BattleTransition_InwardSpiral_:
push bc
.loop
ld [hl], $ff
@@ -287,7 +287,7 @@ BattleTransition_InwardSpiral_: ; 70b53 (1c:4b53)
pop bc
ret
-BattleTransition_OutwardSpiral_: ; 70b6c (1c:4b6c)
+BattleTransition_OutwardSpiral_:
ld bc, -SCREEN_WIDTH
ld de, SCREEN_WIDTH
ld a, [wOutwardSpiralTileMapPointer + 1]
@@ -355,7 +355,7 @@ BattleTransition_OutwardSpiral_: ; 70b6c (1c:4b6c)
jr .done
FlashScreen:
-BattleTransition_FlashScreen_: ; 70be8 (1c:4be8)
+BattleTransition_FlashScreen_:
ld hl, BattleTransition_FlashScreenPalettes
.loop
ld a, [hli]
@@ -363,7 +363,7 @@ BattleTransition_FlashScreen_: ; 70be8 (1c:4be8)
jr z, .done
ld [rBGP], a
call UpdateGBCPal_BGP
- ld c, $2
+ ld c, 2
call DelayFrames
jr .loop
.done
@@ -371,13 +371,13 @@ BattleTransition_FlashScreen_: ; 70be8 (1c:4be8)
jr nz, BattleTransition_FlashScreen_
ret
-BattleTransition_FlashScreenPalettes: ; 70be8 (1c:4be8)
+BattleTransition_FlashScreenPalettes:
db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4
db $01 ; terminator
; used for low level trainer dungeon battles
-BattleTransition_Shrink: ; 70bf4 (1c:4bf4)
- ld c,9
+BattleTransition_Shrink:
+ ld c, 9
.loop
push bc
xor a
@@ -410,8 +410,8 @@ BattleTransition_Shrink: ; 70bf4 (1c:4bf4)
jp DelayFrames
; used for high level trainer dungeon battles
-BattleTransition_Split: ; 70c40 (1c:4c40)
- ld c,$9
+BattleTransition_Split:
+ ld c, 9
xor a
ld [H_AUTOBGTRANSFERENABLED], a
.loop
@@ -441,7 +441,7 @@ BattleTransition_Split: ; 70c40 (1c:4c40)
ld c, 10
jp DelayFrames
-BattleTransition_CopyTiles1: ; 70c88 (1c:4c88)
+BattleTransition_CopyTiles1:
ld a, c
ld [wBattleTransitionCopyTilesOffset], a
ld a, b
@@ -473,7 +473,7 @@ BattleTransition_CopyTiles1: ; 70c88 (1c:4c88)
jr nz, .loop2
ret
-BattleTransition_CopyTiles2: ; 70cb5 (1c:4cb5)
+BattleTransition_CopyTiles2:
ld a, c
ld [wBattleTransitionCopyTilesOffset], a
ld a, b
@@ -523,7 +523,7 @@ BattleTransition_CopyTiles2: ; 70cb5 (1c:4cb5)
ret
; used for high level wild dungeon battles
-BattleTransition_VerticalStripes: ; 70cf4 (1c:4cf4)
+BattleTransition_VerticalStripes:
ld c, SCREEN_HEIGHT
coord hl, 0, 0
coord de, 1, 17
@@ -551,7 +551,7 @@ BattleTransition_VerticalStripes: ; 70cf4 (1c:4cf4)
jr nz, .loop
jp BattleTransition_BlackScreen
-BattleTransition_VerticalStripes_: ; 70d20 (1c:4d20)
+BattleTransition_VerticalStripes_:
ld c, SCREEN_WIDTH / 2
.loop
ld [hl], $ff
@@ -562,7 +562,7 @@ BattleTransition_VerticalStripes_: ; 70d20 (1c:4d20)
ret
; used for low level wild dungeon battles
-BattleTransition_HorizontalStripes: ; 70d2a (1c:4d2a)
+BattleTransition_HorizontalStripes:
ld c, SCREEN_WIDTH
coord hl, 0, 0
coord de, 19, 1
@@ -586,7 +586,7 @@ BattleTransition_HorizontalStripes: ; 70d2a (1c:4d2a)
jr nz, .loop
jp BattleTransition_BlackScreen
-BattleTransition_HorizontalStripes_: ; 70d4e (1c:4d4e)
+BattleTransition_HorizontalStripes_:
ld c, SCREEN_HEIGHT / 2
ld de, SCREEN_WIDTH * 2
.loop
@@ -599,7 +599,7 @@ BattleTransition_HorizontalStripes_: ; 70d4e (1c:4d4e)
; used for high level wild non-dungeon battles
; makes one full circle around the screen
; by animating each half circle one at a time
-BattleTransition_Circle: ; 70d5a (1c:4d5a)
+BattleTransition_Circle:
call BattleTransition_FlashScreen
lb bc, 0, SCREEN_WIDTH / 2
ld hl, BattleTransition_HalfCircle1
@@ -610,14 +610,14 @@ BattleTransition_Circle: ; 70d5a (1c:4d5a)
call BattleTransition_Circle_Sub1
jp BattleTransition_BlackScreen
-BattleTransition_FlashScreen: ; 70d73 (1c:4d73)
+BattleTransition_FlashScreen:
ld b, $3
call BattleTransition_FlashScreen_
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ret
-BattleTransition_Circle_Sub1: ; 70d7c (1c:4d7c)
+BattleTransition_Circle_Sub1:
push bc
push hl
ld a, b
@@ -631,8 +631,8 @@ BattleTransition_Circle_Sub1: ; 70d7c (1c:4d7c)
jr nz, BattleTransition_Circle_Sub1
ret
-BattleTransition_TransferDelay3: ; 70d8f (1c:4d8f)
- ld a, $1
+BattleTransition_TransferDelay3:
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
@@ -642,7 +642,7 @@ BattleTransition_TransferDelay3: ; 70d8f (1c:4d8f)
; used for low level wild non-dungeon battles
; makes two half circles around the screen
; by animating both half circles at the same time
-BattleTransition_DoubleCircle: ; 70d9a (1c:4d9a)
+BattleTransition_DoubleCircle:
call BattleTransition_FlashScreen
ld c, SCREEN_WIDTH / 2
ld hl, BattleTransition_HalfCircle1
@@ -670,7 +670,7 @@ BattleTransition_DoubleCircle: ; 70d9a (1c:4d9a)
jr nz, .loop
jp BattleTransition_BlackScreen
-BattleTransition_Circle_Sub2: ; 70dc6 (1c:4dc6)
+BattleTransition_Circle_Sub2:
ld [wBattleTransitionCircleScreenQuadrantY], a
ld a, [hli]
ld [wBattleTransitionCircleScreenQuadrantX], a
@@ -683,7 +683,7 @@ BattleTransition_Circle_Sub2: ; 70dc6 (1c:4dc6)
ld l, a
jp BattleTransition_Circle_Sub3
-BattleTransition_HalfCircle1: ; 70dd7 (1c:4dd7)
+BattleTransition_HalfCircle1:
db $01
dw BattleTransition_CircleData1
dwCoord 18, 6
@@ -724,7 +724,7 @@ BattleTransition_HalfCircle1: ; 70dd7 (1c:4dd7)
dw BattleTransition_CircleData1
dwCoord 1, 6
-BattleTransition_HalfCircle2: ; 70d93 (1c:4e09)
+BattleTransition_HalfCircle2:
db $00
dw BattleTransition_CircleData1
dwCoord 1, 11
@@ -765,7 +765,7 @@ BattleTransition_HalfCircle2: ; 70d93 (1c:4e09)
dw BattleTransition_CircleData1
dwCoord 18, 11
-BattleTransition_Circle_Sub3: ; 70e3b (1c:4e3b)
+BattleTransition_Circle_Sub3:
push hl
ld a, [de]
ld c, a
@@ -810,17 +810,17 @@ BattleTransition_Circle_Sub3: ; 70e3b (1c:4e3b)
jr nz, .loop2
jr BattleTransition_Circle_Sub3
-BattleTransition_CircleData1: ; 70e74 (1c:4e74)
+BattleTransition_CircleData1:
db $02,$03,$05,$04,$09,$FF
-BattleTransition_CircleData2: ; 70e7a (1c:4e7a)
+BattleTransition_CircleData2:
db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF
-BattleTransition_CircleData3: ; 70e84 (1c:4e84)
+BattleTransition_CircleData3:
db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF
-BattleTransition_CircleData4: ; 70e97 (1c:4e97)
+BattleTransition_CircleData4:
db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF
-BattleTransition_CircleData5: ; 70ea3 (1c:4ea3)
+BattleTransition_CircleData5:
db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF
diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm
index a0c44346..d84d0300 100644
--- a/engine/battle/common_text.asm
+++ b/engine/battle/common_text.asm
@@ -1,5 +1,5 @@
-PrintBeginningBattleText: ; f4000 (3d:4000)
- ld a, [wIsInBattle] ; W_ISINBATTLE
+PrintBeginningBattleText:
+ ld a, [wIsInBattle]
dec a
jr nz, .trainerBattle
ld a, [wCurMap]
@@ -80,37 +80,37 @@ PrintBeginningBattleText: ; f4000 (3d:4000)
ld [wFrequencyModifier], a
ld a, $80
ld [wTempoModifier], a
- ld a, $e9 ; (SFX_08_77 - SFX_Headers_08) / 3
+ ld a, SFX_SILPH_SCOPE
call PlaySound
jp WaitForSoundToFinish
.done
ret
-WildMonAppearedText: ; f40c7 (3d:40c7)
+WildMonAppearedText:
TX_FAR _WildMonAppearedText
db "@"
-HookedMonAttackedText: ; f40cc (3d:40cc)
+HookedMonAttackedText:
TX_FAR _HookedMonAttackedText
db "@"
-EnemyAppearedText: ; f40d1 (3d:40d1)
+EnemyAppearedText:
TX_FAR _EnemyAppearedText
db "@"
-TrainerWantsToFightText: ; f40d6 (3d:40d6)
+TrainerWantsToFightText:
TX_FAR _TrainerWantsToFightText
db "@"
-UnveiledGhostText: ; f40db (3d:40db)
+UnveiledGhostText:
TX_FAR _UnveiledGhostText
db "@"
-GhostCantBeIDdText: ; f40e0 (3d:40e0)
+GhostCantBeIDdText:
TX_FAR _GhostCantBeIDdText
db "@"
-PrintSendOutMonMessage: ; f40e0 (3d:40e5)
+PrintSendOutMonMessage:
ld hl, wEnemyMonHP
ld a, [hli]
or [hl]
@@ -153,38 +153,38 @@ PrintSendOutMonMessage: ; f40e0 (3d:40e5)
.printText
jp PrintText
-GoText: ; f413a (3d:413a)
+GoText:
TX_FAR _GoText
TX_ASM
jr PrintPlayerMon1Text
-DoItText: ; f4141 (3d:4141)
+DoItText:
TX_FAR _DoItText
TX_ASM
jr PrintPlayerMon1Text
-GetmText: ; f4148 (3d:4148)
+GetmText:
TX_FAR _GetmText
TX_ASM
jr PrintPlayerMon1Text
-EnemysWeakText: ; f414f (3d:414f)
+EnemysWeakText:
TX_FAR _EnemysWeakText
TX_ASM
-PrintPlayerMon1Text: ; f4154 (3d:4154)
+PrintPlayerMon1Text:
ld hl, PlayerMon1Text
ret
-PlayerMon1Text: ; f4158 (3d:4158)
+PlayerMon1Text:
TX_FAR _PlayerMon1Text
db "@"
-RetreatMon: ; f415d (3d:415d)
+RetreatMon:
ld hl, PlayerMon2Text
jp PrintText
-PlayerMon2Text: ; f4163 (3d:4163)
+PlayerMon2Text:
TX_FAR _PlayerMon2Text
TX_ASM
push de
@@ -235,25 +235,25 @@ PlayerMon2Text: ; f4163 (3d:4163)
ld hl, GoodText ; HP went down 70% or more
ret
-EnoughText: ; f41b1 (3d:41b1)
+EnoughText:
TX_FAR _EnoughText
TX_ASM
jr PrintComeBackText
-OKExclamationText: ; f41b8 (3d:41b8)
+OKExclamationText:
TX_FAR _OKExclamationText
TX_ASM
jr PrintComeBackText
-GoodText: ; f41bf (3d:41bf)
+GoodText:
TX_FAR _GoodText
TX_ASM
jr PrintComeBackText
-PrintComeBackText: ; f41c6 (3d:41c6)
+PrintComeBackText:
ld hl, ComeBackText
ret
-ComeBackText: ; f41ca (3d:41ca)
+ComeBackText:
TX_FAR _ComeBackText
db "@"
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 24b3863b..c061b291 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -1,7 +1,7 @@
BattleCore:
; These are move effects (second value from the Moves table in bank $E).
-ResidualEffects1: ; 3c000 (f:4000)
+ResidualEffects1:
; most non-side effects
db CONVERSION_EFFECT
db HAZE_EFFECT
@@ -20,13 +20,13 @@ ResidualEffects1: ; 3c000 (f:4000)
db LEECH_SEED_EFFECT
db SPLASH_EFFECT
db -1
-SetDamageEffects: ; 3c011 (f:4011)
+SetDamageEffects:
; moves that do damage but not through normal calculations
; e.g., Super Fang, Psywave
db SUPER_FANG_EFFECT
db SPECIAL_DAMAGE_EFFECT
db -1
-ResidualEffects2: ; 3c014 (f:4014)
+ResidualEffects2:
; non-side effects not included in ResidualEffects1
; stat-affecting moves, sleep-inflicting moves, and Bide
; e.g., Meditate, Bide, Hypnosis
@@ -58,7 +58,7 @@ ResidualEffects2: ; 3c014 (f:4014)
db ACCURACY_DOWN2_EFFECT
db EVASION_DOWN2_EFFECT
db -1
-AlwaysHappenSideEffects: ; 3c030 (f:4030)
+AlwaysHappenSideEffects:
; Attacks that aren't finished after they faint the opponent.
db DRAIN_HP_EFFECT
db EXPLODE_EFFECT
@@ -71,7 +71,7 @@ AlwaysHappenSideEffects: ; 3c030 (f:4030)
db TWINEEDLE_EFFECT
db RAGE_EFFECT
db -1
-SpecialEffects: ; 3c03b (f:403b)
+SpecialEffects:
; Effects from arrays 2, 4, and 5B, minus Twineedle and Rage.
; Includes all effects that do not need to be called at the end of
; ExecutePlayerMove (or ExecuteEnemyMove), because they have already been handled
@@ -90,13 +90,13 @@ SpecialEffects: ; 3c03b (f:403b)
db JUMP_KICK_EFFECT
db RECOIL_EFFECT
; fallthrough to Next EffectsArray
-SpecialEffectsCont: ; 3c049 (f:4049)
+SpecialEffectsCont:
; damaging moves whose effect is executed prior to damage calculation
db THRASH_PETAL_DANCE_EFFECT
db TRAPPING_EFFECT
db -1
-SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
+SlidePlayerAndEnemySilhouettesOnScreen:
call LoadPlayerBackPic
ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen
ld [wTextBoxID], a
@@ -196,7 +196,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
; the lower of the player's pic (his body) is part of the background, but his head is a sprite
; the reason for this is that it shares Y coordinates with the lower part of the enemy pic, so background scrolling wouldn't work for both pics
; instead, the enemy pic is part of the background and uses the scroll register, while the player's head is a sprite and is slid by changing its X coordinates in a loop
-SlidePlayerHeadLeft: ; 3c108 (f:4108)
+SlidePlayerHeadLeft:
push bc
ld hl, wOAMBuffer + $01
ld c, $15 ; number of OAM entries
@@ -210,7 +210,7 @@ SlidePlayerHeadLeft: ; 3c108 (f:4108)
pop bc
ret
-SetScrollXForSlidingPlayerBodyLeft: ; 3c119 (f:4119)
+SetScrollXForSlidingPlayerBodyLeft:
ld a, [rLY]
cp l
jr nz, SetScrollXForSlidingPlayerBodyLeft
@@ -222,7 +222,7 @@ SetScrollXForSlidingPlayerBodyLeft: ; 3c119 (f:4119)
jr z, .loop
ret
-StartBattle: ; 3c127 (f:4127)
+StartBattle:
xor a
ld [wPartyGainExpFlags], a
ld [wPartyFoughtCurrentEnemyFlags], a
@@ -350,7 +350,7 @@ StartBattle: ; 3c127 (f:4127)
jr MainInBattleLoop
; wild mon or link battle enemy ran from battle
-EnemyRan: ; 3c202 (f:4218)
+EnemyRan:
call LoadScreenTilesFromBuffer1
ld a, [wLinkState]
cp LINK_STATE_BATTLING
@@ -368,15 +368,15 @@ EnemyRan: ; 3c202 (f:4218)
ld [H_WHOSETURN], a
jpab AnimationSlideEnemyMonOff
-WildRanText: ; 3c23f (f:423f)
+WildRanText:
TX_FAR _WildRanText
db "@"
-EnemyRanText: ; 3c23f (f:423f)
+EnemyRanText:
TX_FAR _EnemyRanText
db "@"
-MainInBattleLoop: ; 3c249 (f:4249)
+MainInBattleLoop:
call ReadPlayerMonCurHPAndStatus
ld hl, wBattleMonHP
ld a, [hli]
@@ -566,7 +566,7 @@ MainInBattleLoop: ; 3c249 (f:4249)
call CheckNumAttacksLeft
jp MainInBattleLoop
-HandlePoisonBurnLeechSeed: ; 3c3d3 (f:43d3)
+HandlePoisonBurnLeechSeed:
ld hl, wBattleMonHP
ld de, wBattleMonStatus
ld a, [H_WHOSETURN]
@@ -630,15 +630,15 @@ HandlePoisonBurnLeechSeed: ; 3c3d3 (f:43d3)
xor a
ret
-HurtByPoisonText: ; 3c444 (f:4444)
+HurtByPoisonText:
TX_FAR _HurtByPoisonText
db "@"
-HurtByBurnText: ; 3c449 (f:4449)
+HurtByBurnText:
TX_FAR _HurtByBurnText
db "@"
-HurtByLeechSeedText: ; 3c44e (f:444e)
+HurtByLeechSeedText:
TX_FAR _HurtByLeechSeedText
db "@"
@@ -646,7 +646,7 @@ HurtByLeechSeedText: ; 3c44e (f:444e)
; note that the toxic ticks are considered even if the damage is not poison (hence the Leech Seed glitch)
; hl: HP pointer
; bc (out): total damage
-HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
+HandlePoisonBurnLeechSeed_DecreaseOwnHP:
push hl
push hl
ld bc, $e ; skip to max HP
@@ -714,7 +714,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
; adds bc to enemy HP
; bc isn't updated if HP substracted was capped to prevent overkill
-HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4b9 (f:44b9)
+HandlePoisonBurnLeechSeed_IncreaseEnemyHP:
push hl
ld hl, wEnemyMonMaxHP
ld a, [H_WHOSETURN]
@@ -764,7 +764,7 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4b9 (f:44b9)
pop hl
ret
-UpdateCurMonHPBar: ; 3c50c (f:450c)
+UpdateCurMonHPBar:
coord hl, 10, 9 ; tile pointer to player HP bar
ld a, [H_WHOSETURN]
and a
@@ -779,7 +779,7 @@ UpdateCurMonHPBar: ; 3c50c (f:450c)
pop bc
ret
-CheckNumAttacksLeft: ; 3c525 (f:4525)
+CheckNumAttacksLeft:
ld a, [wPlayerNumAttacksLeft]
and a
jr nz, .checkEnemy
@@ -795,7 +795,7 @@ CheckNumAttacksLeft: ; 3c525 (f:4525)
res UsingTrappingMove, [hl] ; enemy not using multi-turn attack like wrap any more
ret
-HandleEnemyMonFainted: ; 3c53b (f:453b)
+HandleEnemyMonFainted:
xor a
ld [wInHandlePlayerMonFainted], a
call FaintEnemyPokemon
@@ -828,7 +828,7 @@ HandleEnemyMonFainted: ; 3c53b (f:453b)
ld [wActionResultOrTookBattleTurn], a
jp MainInBattleLoop
-FaintEnemyPokemon: ; 3c57d (f:457d)
+FaintEnemyPokemon:
call ReadPlayerMonCurHPAndStatus
ld a, [wIsInBattle]
dec a
@@ -956,11 +956,11 @@ FaintEnemyPokemon: ; 3c57d (f:457d)
ld [wPartyGainExpFlags], a
jpab GainExperience
-EnemyMonFaintedText: ; 3c654 (f:4654)
+EnemyMonFaintedText:
TX_FAR _EnemyMonFaintedText
db "@"
-EndLowHealthAlarm: ; 3c659 (f:4659)
+EndLowHealthAlarm:
; This function is called when the player has the won the battle. It turns off
; the low health alarm and prevents it from reactivating until the next battle.
xor a
@@ -970,7 +970,7 @@ EndLowHealthAlarm: ; 3c659 (f:4659)
ld [wLowHealthAlarmDisabled], a ; prevent it from reactivating
ret
-AnyEnemyPokemonAliveCheck: ; 3c665 (f:4665)
+AnyEnemyPokemonAliveCheck:
ld a, [wEnemyPartyCount]
ld b, a
xor a
@@ -988,7 +988,7 @@ AnyEnemyPokemonAliveCheck: ; 3c665 (f:4665)
ret
; stores whether enemy ran in Z flag
-ReplaceFaintedEnemyMon: ; 3c67a (f:467a)
+ReplaceFaintedEnemyMon:
ld hl, wEnemyHPBarColor
ld e, $30
call GetBattleHealthBarColor
@@ -1016,7 +1016,7 @@ ReplaceFaintedEnemyMon: ; 3c67a (f:467a)
inc a ; reset Z flag
ret
-TrainerBattleVictory: ; 3c6b8 (f:46b8)
+TrainerBattleVictory:
call EndLowHealthAlarm
ld b, MUSIC_DEFEATED_GYM_LEADER
ld a, [wGymLeaderNo]
@@ -1052,15 +1052,15 @@ TrainerBattleVictory: ; 3c6b8 (f:46b8)
ld c, $3
predef_jump AddBCDPredef
-MoneyForWinningText: ; 3c706 (f:4706)
+MoneyForWinningText:
TX_FAR _MoneyForWinningText
db "@"
-TrainerDefeatedText: ; 3c70b (f:470b)
+TrainerDefeatedText:
TX_FAR _TrainerDefeatedText
db "@"
-PlayBattleVictoryMusic: ; 3c710 (f:4710)
+PlayBattleVictoryMusic:
push af
call StopAllMusic
ld c, BANK(Music_DefeatedTrainer)
@@ -1068,7 +1068,7 @@ PlayBattleVictoryMusic: ; 3c710 (f:4710)
call PlayMusic
jp Delay3
-HandlePlayerMonFainted: ; 3c71d (f:471d)
+HandlePlayerMonFainted:
ld a, 1
ld [wInHandlePlayerMonFainted], a
call RemoveFaintedPlayerMon
@@ -1102,7 +1102,7 @@ HandlePlayerMonFainted: ; 3c71d (f:471d)
jp MainInBattleLoop
; resets flags, slides mon's pic down, plays cry, and prints fainted message
-RemoveFaintedPlayerMon: ; 3c75e (f:475e)
+RemoveFaintedPlayerMon:
ld a, [wPlayerMonNumber]
ld c, a
ld hl, wPartyGainExpFlags
@@ -1172,13 +1172,13 @@ RemoveFaintedPlayerMon: ; 3c75e (f:475e)
callabd_ModifyPikachuHappiness PIKAHAPPY_CARELESSTRAINER
ret
-PlayerMonFaintedText: ; 3c7fa (f:47fa)
+PlayerMonFaintedText:
TX_FAR _PlayerMonFaintedText
db "@"
; asks if you want to use next mon
; stores whether you ran in C flag
-DoUseNextMonDialogue: ; 3c7ff (f:47ff)
+DoUseNextMonDialogue:
call PrintEmptyString
call SaveScreenTilesToBuffer1
ld a, [wIsInBattle]
@@ -1206,13 +1206,13 @@ DoUseNextMonDialogue: ; 3c7ff (f:47ff)
ld de, wEnemyMonSpeed
jp TryRunningFromBattle
-UseNextMonText: ; 3c837 (f:4837)
+UseNextMonText:
TX_FAR _UseNextMonText
db "@"
; choose next player mon to send out
; stores whether enemy mon has no HP left in Z flag
-ChooseNextMon: ; 3c83c (f:483c)
+ChooseNextMon:
ld a, BATTLE_PARTY_MENU
ld [wPartyMenuTypeOrMessageID], a
call DisplayPartyMenu
@@ -1227,7 +1227,7 @@ ChooseNextMon: ; 3c83c (f:483c)
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr nz, .notLinkBattle
- ld a, $1
+ ld a, 1
ld [wActionResultOrTookBattleTurn], a
call LinkBattleExchangeData
.notLinkBattle
@@ -1258,7 +1258,7 @@ ChooseNextMon: ; 3c83c (f:483c)
; called when player is out of usable mons.
; prints approriate lose message, sets carry flag if player blacked out (special case for initial rival fight)
-HandlePlayerBlackOut: ; 3c89c (f:489c)
+HandlePlayerBlackOut:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr z, .notSony1Battle
@@ -1293,21 +1293,21 @@ HandlePlayerBlackOut: ; 3c89c (f:489c)
scf
ret
-Sony1WinText: ; 3c8e9 (f:48e9)
+Sony1WinText:
TX_FAR _Sony1WinText
db "@"
-PlayerBlackedOutText2: ; 3c8ee (f:48ee)
+PlayerBlackedOutText2:
TX_FAR _PlayerBlackedOutText2
db "@"
-LinkBattleLostText: ; 3c8f3 (f:48f3)
+LinkBattleLostText:
TX_FAR _LinkBattleLostText
db "@"
; slides pic of fainted mon downwards until it disappears
; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing
-SlideDownFaintedMonPic: ; 3c8f8 (f:48f8)
+SlideDownFaintedMonPic:
ld a, [wd730]
push af
set 6, a
@@ -1353,14 +1353,14 @@ SlideDownFaintedMonPic: ; 3c8f8 (f:48f8)
ld [wd730], a
ret
-SevenSpacesText: ; 3c93c (f:493c)
+SevenSpacesText:
db " @"
; slides the player or enemy trainer off screen
; a is the number of tiles to slide it horizontally (always 9 for the player trainer or 8 for the enemy trainer)
; if a is 8, the slide is to the right, else it is to the left
; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing
-SlideTrainerPicOffScreen: ; 3c944 (f:4944)
+SlideTrainerPicOffScreen:
ld [hSlideAmount], a
ld c, a
.slideStepLoop ; each iteration, the trainer pic is slid one tile left/right
@@ -1401,7 +1401,7 @@ SlideTrainerPicOffScreen: ; 3c944 (f:4944)
ret
; send out a trainer's mon
-EnemySendOut: ; 3c973 (f:4973)
+EnemySendOut:
ld hl,wPartyGainExpFlags
xor a
ld [hl],a
@@ -1417,7 +1417,7 @@ EnemySendOut: ; 3c973 (f:4973)
predef FlagActionPredef
; don't change wPartyGainExpFlags or wPartyFoughtCurrentEnemyFlags
-EnemySendOutFirstMon: ; 3c98f (f:498f)
+EnemySendOutFirstMon:
xor a
ld hl,wEnemyStatsToDouble ; clear enemy statuses
ld [hli],a
@@ -1570,17 +1570,17 @@ EnemySendOutFirstMon: ; 3c98f (f:498f)
call SaveScreenTilesToBuffer1
jp SwitchPlayerMon
-TrainerAboutToUseText: ; 3cade (f:4ade)
+TrainerAboutToUseText:
TX_FAR _TrainerAboutToUseText
db "@"
-TrainerSentOutText: ; 3cae3 (f:4ae3)
+TrainerSentOutText:
TX_FAR _TrainerSentOutText
db "@"
; tests if the player has any pokemon that are not fainted
; sets d = 0 if all fainted, d != 0 if some mons are still alive
-AnyPartyAlive: ; 3cae8 (f:4ae8)
+AnyPartyAlive:
ld a, [wPartyCount]
ld e, a
xor a
@@ -1598,7 +1598,7 @@ AnyPartyAlive: ; 3cae8 (f:4ae8)
; tests if player mon has fainted
; stores whether mon has fainted in Z flag
-HasMonFainted: ; 3cafc (f:4afc)
+HasMonFainted:
ld a, [wWhichPokemon]
ld hl, wPartyMon1HP
ld bc, wPartyMon2 - wPartyMon1
@@ -1615,13 +1615,13 @@ HasMonFainted: ; 3cafc (f:4afc)
xor a
ret
-NoWillText: ; 3cb19 (f:4b19)
+NoWillText:
TX_FAR _NoWillText
db "@"
; try to run from battle (hl = player speed, de = enemy speed)
; stores whether the attempt was successful in carry flag
-TryRunningFromBattle: ; 3cb1e (f:4b1e)
+TryRunningFromBattle:
call IsGhostBattle
jp z, .canEscape ; jump if it's a ghost battle
ld a, [wBattleType]
@@ -1740,20 +1740,20 @@ TryRunningFromBattle: ; 3cb1e (f:4b1e)
scf ; set carry
ret
-CantEscapeText: ; 3cc01 (f:4c01)
+CantEscapeText:
TX_FAR _CantEscapeText
db "@"
-NoRunningText: ; 3cc06 (f:4c06)
+NoRunningText:
TX_FAR _NoRunningText
db "@"
-GotAwayText: ; 3cc0b (f:4c0b)
+GotAwayText:
TX_FAR _GotAwayText
db "@"
; copies from party data to battle mon data when sending out a new player mon
-LoadBattleMonFromParty: ; 3cc10 (f:4c10)
+LoadBattleMonFromParty:
ld a, [wWhichPokemon]
ld bc, wPartyMon2 - wPartyMon1
ld hl, wPartyMon1Species
@@ -1797,7 +1797,7 @@ LoadBattleMonFromParty: ; 3cc10 (f:4c10)
ret
; copies from enemy party data to current enemy mon data when sending out a new enemy mon
-LoadEnemyMonFromParty: ; 3cc7d (f:4c7d)
+LoadEnemyMonFromParty:
ld a, [wWhichPokemon]
ld bc, wEnemyMon2 - wEnemyMon1
ld hl, wEnemyMons
@@ -1850,7 +1850,7 @@ LoadEnemyMonFromParty: ; 3cc7d (f:4c7d)
ld [wEnemyMonPartyPos], a
ret
-SendOutMon: ; 3ccfb (f:4cfb)
+SendOutMon:
callab PrintSendOutMonMessage
ld hl, wEnemyMonHP
ld a, [hli]
@@ -1914,7 +1914,7 @@ SendOutMon: ; 3ccfb (f:4cfb)
jp SaveScreenTilesToBuffer1
; show 2 stages of the player mon getting smaller before disappearing
-AnimateRetreatingPlayerMon: ; 3cd97 (f:4d97)
+AnimateRetreatingPlayerMon:
ld a, [wWhichPokemon]
push af
ld a, [wPlayerMonNumber]
@@ -1956,11 +1956,11 @@ AnimateRetreatingPlayerMon: ; 3cd97 (f:4d97)
.clearScreenArea
coord hl, 1, 5
lb bc, 7, 7
- call ClearScreenArea ; jp
+ call ClearScreenArea
ret
; reads player's current mon's HP into wBattleMonHP
-ReadPlayerMonCurHPAndStatus: ; 3ce08 (f:4e08)
+ReadPlayerMonCurHPAndStatus:
ld a, [wPlayerMonNumber]
ld hl, wPartyMon1HP
ld bc, wPartyMon2 - wPartyMon1
@@ -1971,11 +1971,11 @@ ReadPlayerMonCurHPAndStatus: ; 3ce08 (f:4e08)
ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status
jp CopyData
-DrawHUDsAndHPBars: ; 3ce1f (f:4e1f)
+DrawHUDsAndHPBars:
call DrawPlayerHUDAndHPBar
jp DrawEnemyHUDAndHPBar
-DrawPlayerHUDAndHPBar: ; 3ce25 (f:4e25)
+DrawPlayerHUDAndHPBar:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 9, 7
@@ -2036,7 +2036,7 @@ DrawPlayerHUDAndHPBar: ; 3ce25 (f:4e25)
set 7, [hl] ;enable low health alarm
ret
-DrawEnemyHUDAndHPBar: ; 3ceb1 (f:4eb1)
+DrawEnemyHUDAndHPBar:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 0, 0
@@ -2126,7 +2126,7 @@ DrawEnemyHUDAndHPBar: ; 3ceb1 (f:4eb1)
ld [H_AUTOBGTRANSFERENABLED], a
ld hl, wEnemyHPBarColor
-GetBattleHealthBarColor: ; 3cf55 (f:4f55)
+GetBattleHealthBarColor:
ld b, [hl]
call GetHealthBarColor
ld a, [hl]
@@ -2140,7 +2140,7 @@ GetBattleHealthBarColor: ; 3cf55 (f:4f55)
; (i.e. for names longer than 4 letters)
; if the name is 3 or 4 letters long, it is printed 1 space more to the right than usual
; (i.e. for names longer than 4 letters)
-CenterMonName: ; 3cf61 (f:4f61)
+CenterMonName:
push de
inc hl
inc hl
@@ -2161,7 +2161,7 @@ CenterMonName: ; 3cf61 (f:4f61)
pop de
ret
-DisplayBattleMenu: ; 3cf78 (f:4f78)
+DisplayBattleMenu:
call LoadScreenTilesFromBuffer1 ; restore saved screen
ld a, [wBattleType]
and a
@@ -2347,7 +2347,7 @@ DisplayBattleMenu: ; 3cf78 (f:4f78)
call PrintText
jp DisplayBattleMenu
-.RunAwayText ; 3d0df (f:50df)
+.RunAwayText
TX_FAR _RunAwayText
db "@"
@@ -2376,7 +2376,7 @@ DisplayBattleMenu: ; 3cf78 (f:4f78)
ld [wcf91], a
jr UseBagItem
-BagWasSelected: ; 3d10a (f:510a)
+BagWasSelected:
call LoadScreenTilesFromBuffer1
ld a, [wBattleType]
and a ; is it a normal battle?
@@ -2399,12 +2399,12 @@ BagWasSelected: ; 3d10a (f:510a)
ld [wListPointer + 1], a
jr DisplayBagMenu
-SimulatedInputBattleItemList: ; 3c130 (f:5130)
+SimulatedInputBattleItemList:
db 1 ; # of items
db POKE_BALL, 1
db $ff
-DisplayPlayerBag: ; 3c134 (f:5134)
+DisplayPlayerBag:
; get the pointer to player's bag when in a normal battle
ld hl, wNumBagItems
ld a, l
@@ -2412,7 +2412,7 @@ DisplayPlayerBag: ; 3c134 (f:5134)
ld a, h
ld [wListPointer + 1], a
-DisplayBagMenu: ; 3c13f (f:513f)
+DisplayBagMenu:
xor a
ld [wPrintItemPrices], a
ld a, ITEMLISTMENU
@@ -2427,7 +2427,7 @@ DisplayBagMenu: ; 3c13f (f:513f)
ld [wMenuItemToSwap], a
jp c, DisplayBattleMenu ; go back to battle menu if an item was not selected
-UseBagItem: ; 3c162 (f:5162)
+UseBagItem:
; either use an item from the bag or use a safari zone item
ld a, [wcf91]
ld [wd11e], a
@@ -2484,11 +2484,11 @@ UseBagItem: ; 3c162 (f:5162)
scf ; set carry
ret
-ItemsCantBeUsedHereText: ; 3d1c8 (f:51c8)
+ItemsCantBeUsedHereText:
TX_FAR _ItemsCantBeUsedHereText
db "@"
-PartyMenuOrRockOrRun: ; 3d1cd (f:51cd)
+PartyMenuOrRockOrRun:
dec a ; was Run selected?
jp nz, BattleMenu_RunWasSelected
; party menu or rock was selected
@@ -2561,7 +2561,7 @@ PartyMenuOrRockOrRun: ; 3d1cd (f:51cd)
predef StatusScreen
predef StatusScreen2
; now we need to reload the enemy mon pic
- ld a, $1
+ ld a, 1
ld [H_WHOSETURN], a
ld a, [wEnemyBattleStatus2]
bit HasSubstituteUp, a ; does the enemy mon have a substitute?
@@ -2608,7 +2608,7 @@ PartyMenuOrRockOrRun: ; 3d1cd (f:51cd)
call GBPalNormal
; fall through to SwitchPlayerMon
-SwitchPlayerMon: ; 3d2c1 (f:52c1)
+SwitchPlayerMon:
callab RetreatMon
ld c, 50
call DelayFrames
@@ -2631,11 +2631,11 @@ SwitchPlayerMon: ; 3d2c1 (f:52c1)
and a
ret
-AlreadyOutText: ; 3d2fc (f:52fc)
+AlreadyOutText:
TX_FAR _AlreadyOutText
db "@"
-BattleMenu_RunWasSelected: ; 3d301 (f:5301)
+BattleMenu_RunWasSelected:
call LoadScreenTilesFromBuffer1
ld a, $3
ld [wCurrentMenuItem], a
@@ -2650,7 +2650,7 @@ BattleMenu_RunWasSelected: ; 3d301 (f:5301)
ret nz ; return if the player couldn't escape
jp DisplayBattleMenu
-MoveSelectionMenu: ; 3d320 (f:5320)
+MoveSelectionMenu:
ld a, [wMoveMenuType]
dec a
jr z, .mimicmenu
@@ -2764,7 +2764,7 @@ MoveSelectionMenu: ; 3d320 (f:5320)
ld [hl], a
; fallthrough
-SelectMenuItem: ; 3d3fe (f:53fe)
+SelectMenuItem:
ld a, [wMoveMenuType]
and a
jr z, .battleselect
@@ -2859,18 +2859,18 @@ SelectMenuItem: ; 3d3fe (f:53fe)
call LoadScreenTilesFromBuffer1
jp MoveSelectionMenu
-MoveNoPPText: ; 3d4ae (f:54ae)
+MoveNoPPText:
TX_FAR _MoveNoPPText
db "@"
-MoveDisabledText: ; 3d4b3 (f:54b3)
+MoveDisabledText:
TX_FAR _MoveDisabledText
db "@"
-WhichTechniqueString: ; 3d4b8 (f:54b8)
+WhichTechniqueString:
db "WHICH TECHNIQUE?@"
-SelectMenuItem_CursorUp: ; 3d4c9 (f:54c9)
+SelectMenuItem_CursorUp:
ld a, [wCurrentMenuItem]
and a
jp nz, SelectMenuItem
@@ -2880,7 +2880,7 @@ SelectMenuItem_CursorUp: ; 3d4c9 (f:54c9)
ld [wCurrentMenuItem], a
jp SelectMenuItem
-SelectMenuItem_CursorDown: ; 3d4dd (f:54dd)
+SelectMenuItem_CursorDown:
ld a, [wCurrentMenuItem]
ld b, a
ld a, [wNumMovesMinusOne]
@@ -2893,7 +2893,7 @@ SelectMenuItem_CursorDown: ; 3d4dd (f:54dd)
ld [wCurrentMenuItem], a
jp SelectMenuItem
-Func_3d4f5: ; 3d4f5 (f:54f5)
+Func_3d4f5:
bit 3, a
ld a, $0
jr nz, .asm_3d4fd
@@ -2912,19 +2912,19 @@ Func_3d4f5: ; 3d4f5 (f:54f5)
callab Func_78e98
jp MoveSelectionMenu
-Func_3d523: ; 3d523 (f:5523)
+Func_3d523:
ld a, [wTestBattlePlayerSelectedMove]
dec a
jr asm_3d52d
-Func_3d529: ; 3d529 (f:5529)
+Func_3d529:
ld a, [wTestBattlePlayerSelectedMove]
inc a
-asm_3d52d: ; 3d52d (f:552d)
+asm_3d52d:
ld [wTestBattlePlayerSelectedMove], a
call Func_3d536
jp MoveSelectionMenu
-Func_3d536: ; 3d536 (f:5536)
+Func_3d536:
coord hl, 10, 16
lb bc, 2, 10
call ClearScreenArea
@@ -2942,7 +2942,7 @@ Func_3d536: ; 3d536 (f:5536)
coord hl, 13, 17
jp PlaceString
-AnyMoveToSelect: ; 3d55f (f:555f)
+AnyMoveToSelect:
; return z and Struggle as the selected move if all moves have 0 PP and/or are disabled
ld a, STRUGGLE
ld [wPlayerSelectedMove], a
@@ -2961,7 +2961,7 @@ AnyMoveToSelect: ; 3d55f (f:555f)
jr .noMovesLeft
.handleDisabledMove
swap a
- and $f ; get move disabled
+ and $f ; get disabled move
ld b, a
ld d, NUM_MOVES + 1
xor a
@@ -2988,11 +2988,11 @@ AnyMoveToSelect: ; 3d55f (f:555f)
xor a
ret
-NoMovesLeftText: ; 3d59b (f:559b)
+NoMovesLeftText:
TX_FAR _NoMovesLeftText
db "@"
-SwapMovesInMenu: ; 3d5a0 (f:55a0)
+SwapMovesInMenu:
ld a, [wPlayerBattleStatus3]
bit Transformed, a
jp nz, MoveSelectionMenu
@@ -3071,7 +3071,7 @@ SwapMovesInMenu: ; 3d5a0 (f:55a0)
ld [wMenuItemToSwap], a ; select the current menu item for swapping
jp MoveSelectionMenu
-PrintMenuItem: ; 3d629 (f:5629)
+PrintMenuItem:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 0, 8
@@ -3141,13 +3141,13 @@ PrintMenuItem: ; 3d629 (f:5629)
ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
-DisabledText: ; 3d6c7 (f:56c7)
+DisabledText:
db "Disabled!@"
-TypeText: ; 3d6d1 (f:56d1)
+TypeText:
db "TYPE@"
-SelectEnemyMove: ; 3d6d6 (f:56d6)
+SelectEnemyMove:
ld a, [wLinkState]
sub LINK_STATE_BATTLING
jr nz, .noLinkBattle
@@ -3240,7 +3240,7 @@ SelectEnemyMove: ; 3d6d6 (f:56d6)
jr .done
; this appears to exchange data with the other gameboy during link battles
-LinkBattleExchangeData: ; 3d777 (f:5777)
+LinkBattleExchangeData:
ld a, $ff
ld [wSerialExchangeNybbleReceiveData], a
ld a, [wPlayerMoveListIndex]
@@ -3288,7 +3288,7 @@ LinkBattleExchangeData: ; 3d777 (f:5777)
jr nz, .syncLoop3
ret
-ExecutePlayerMove: ; 3d7d0 (f:57d0)
+ExecutePlayerMove:
xor a
ld [H_WHOSETURN], a ; set player's turn
ld a, [wPlayerSelectedMove]
@@ -3316,7 +3316,7 @@ ExecutePlayerMove: ; 3d7d0 (f:57d0)
call CheckForDisobedience
jp z, ExecutePlayerMoveDone
-CheckIfPlayerNeedsToChargeUp: ; 3d80c (f:580c)
+CheckIfPlayerNeedsToChargeUp:
ld a, [wPlayerMoveEffect]
cp CHARGE_EFFECT
jp z, JumpMoveEffect
@@ -3325,13 +3325,13 @@ CheckIfPlayerNeedsToChargeUp: ; 3d80c (f:580c)
jr PlayerCanExecuteMove
; in-battle stuff
-PlayerCanExecuteChargingMove: ; 3d81b (f:581b)
+PlayerCanExecuteChargingMove:
ld hl,wPlayerBattleStatus1
res ChargingUp,[hl] ; reset charging up and invulnerability statuses if mon was charging up for an attack
; being fully paralyzed or hurting oneself in confusion removes charging up status
; resulting in the Pokemon being invulnerable for the whole battle
res Invulnerable,[hl]
-PlayerCanExecuteMove: ; 3d822 (f:5822)
+PlayerCanExecuteMove:
call PrintMonName1Text
ld hl,DecrementPP
ld de,wPlayerSelectedMove ; pointer to the move just used
@@ -3348,7 +3348,7 @@ PlayerCanExecuteMove: ; 3d822 (f:5822)
ld de,1
call IsInArray
call c,JumpMoveEffect ; execute the effects of SpecialEffectsCont moves (e.g. Wrap, Thrash) but don't skip anything
-PlayerCalcMoveDamage: ; 3d84e (f:584e)
+PlayerCalcMoveDamage:
ld a,[wPlayerMoveEffect]
ld hl,SetDamageEffects
ld de,1
@@ -3365,7 +3365,7 @@ PlayerCalcMoveDamage: ; 3d84e (f:584e)
call RandomizeDamage
.moveHitTest
call MoveHitTest
-handleIfPlayerMoveMissed: ; 3d877 (f:5877)
+handleIfPlayerMoveMissed:
ld a,[wMoveMissed]
and a
jr z,getPlayerAnimationType
@@ -3373,13 +3373,13 @@ handleIfPlayerMoveMissed: ; 3d877 (f:5877)
sub a,EXPLODE_EFFECT
jr z,playPlayerMoveAnimation ; don't play any animation if the move missed, unless it was EXPLODE_EFFECT
jr playerCheckIfFlyOrChargeEffect
-getPlayerAnimationType: ; 3d87b (f:587b)
+getPlayerAnimationType:
ld a,[wPlayerMoveEffect]
and a
ld a,4 ; move has no effect other than dealing damage
jr z,playPlayerMoveAnimation
ld a,5 ; move has effect
-playPlayerMoveAnimation ; 3d890 (f:5890)
+playPlayerMoveAnimation:
push af
ld a,[wPlayerBattleStatus2]
bit HasSubstituteUp,a
@@ -3398,7 +3398,7 @@ playPlayerMoveAnimation ; 3d890 (f:5890)
ld b,BANK(ReshowSubstituteAnim)
call nz,Bankswitch
jr MirrorMoveCheck
-playerCheckIfFlyOrChargeEffect ; 3d8bd (f:58bd)
+playerCheckIfFlyOrChargeEffect:
ld c,30
call DelayFrames
ld a,[wPlayerMoveEffect]
@@ -3412,7 +3412,7 @@ playerCheckIfFlyOrChargeEffect ; 3d8bd (f:58bd)
ld [wAnimationType],a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
-MirrorMoveCheck: ; 3d8d8 (f:58d8)
+MirrorMoveCheck:
ld a,[wPlayerMoveEffect]
cp a,MIRROR_MOVE_EFFECT
jr nz,.metronomeCheck
@@ -3485,17 +3485,17 @@ MirrorMoveCheck: ; 3d8d8 (f:58d8)
; Responsible for executing Twineedle's second side effect (poison).
jp ExecutePlayerMoveDone
-MultiHitText: ; 3d977 (f:5977)
+MultiHitText:
TX_FAR _MultiHitText
db "@"
-ExecutePlayerMoveDone: ; 3d97c (f:597c)
+ExecutePlayerMoveDone:
xor a
ld [wActionResultOrTookBattleTurn],a
ld b,1
ret
-PrintGhostText: ; 3d983 (f:5983)
+PrintGhostText:
; print the ghost battle messages
call IsGhostBattle
ret nz
@@ -3515,15 +3515,15 @@ PrintGhostText: ; 3d983 (f:5983)
xor a
ret
-ScaredText: ; 3d9a2 (f:59a2)
+ScaredText:
TX_FAR _ScaredText
db "@"
-GetOutText: ; 3d9a7 (f:59a7)
+GetOutText:
TX_FAR _GetOutText
db "@"
-IsGhostBattle: ; 3d9ac (f:59ac)
+IsGhostBattle:
ld a,[wIsInBattle]
dec a
ret nz
@@ -3542,7 +3542,7 @@ IsGhostBattle: ; 3d9ac (f:59ac)
; checks for various status conditions affecting the player mon
; stores whether the mon cannot use a move this turn in Z flag
-CheckPlayerStatusConditions: ; 3d9c6 (f:59c6)
+CheckPlayerStatusConditions:
ld hl,wBattleMonStatus
ld a,[hl]
and a,SLP ; sleep mask
@@ -3803,67 +3803,67 @@ CheckPlayerStatusConditions: ; 3d9c6 (f:59c6)
and a
ret
-FastAsleepText: ; 3dbaf (f:5baf)
+FastAsleepText:
TX_FAR _FastAsleepText
db "@"
-WokeUpText: ; 3dbb4 (f:5bb4)
+WokeUpText:
TX_FAR _WokeUpText
db "@"
-IsFrozenText: ; 3dbb9 (f:5bb9)
+IsFrozenText:
TX_FAR _IsFrozenText
db "@"
-FullyParalyzedText: ; 3dbbe (f:5bbe)
+FullyParalyzedText:
TX_FAR _FullyParalyzedText
db "@"
-FlinchedText: ; 3dbc3 (f:5bc3)
+FlinchedText:
TX_FAR _FlinchedText
db "@"
-MustRechargeText: ; 3dbc8 (f:5bc8)
+MustRechargeText:
TX_FAR _MustRechargeText
db "@"
-DisabledNoMoreText: ; 3dbcd (f:5bcd)
+DisabledNoMoreText:
TX_FAR _DisabledNoMoreText
db "@"
-IsConfusedText: ; 3dbd2 (f:5bd2)
+IsConfusedText:
TX_FAR _IsConfusedText
db "@"
-HurtItselfText: ; 3dbd7 (f:5bd7)
+HurtItselfText:
TX_FAR _HurtItselfText
db "@"
-ConfusedNoMoreText: ; 3dbdc (f:5bdc)
+ConfusedNoMoreText:
TX_FAR _ConfusedNoMoreText
db "@"
-SavingEnergyText: ; 3dbe1 (f:5be1)
+SavingEnergyText:
TX_FAR _SavingEnergyText
db "@"
-UnleashedEnergyText: ; 3dbe6 (f:5be6)
+UnleashedEnergyText:
TX_FAR _UnleashedEnergyText
db "@"
-ThrashingAboutText: ; 3dbeb (f:5beb)
+ThrashingAboutText:
TX_FAR _ThrashingAboutText
db "@"
-AttackContinuesText: ; 3dbf0 (f:5bf0)
+AttackContinuesText:
TX_FAR _AttackContinuesText
db "@"
-CantMoveText: ; 3dbf5 (f:5bf5)
+CantMoveText:
TX_FAR _CantMoveText
db "@"
-PrintMoveIsDisabledText: ; 3dbfa (f:5bfa)
+PrintMoveIsDisabledText:
ld hl, wPlayerSelectedMove
ld de, wPlayerBattleStatus1
ld a, [H_WHOSETURN]
@@ -3881,11 +3881,11 @@ PrintMoveIsDisabledText: ; 3dbfa (f:5bfa)
ld hl, MoveIsDisabledText
jp PrintText
-MoveIsDisabledText: ; 3dc1a (f:5c1a)
+MoveIsDisabledText:
TX_FAR _MoveIsDisabledText
db "@"
-HandleSelfConfusionDamage: ; 3dc1f (f:5c1f)
+HandleSelfConfusionDamage:
ld hl, HurtItselfText
call PrintText
ld hl, wEnemyMonDefense
@@ -3929,7 +3929,7 @@ HandleSelfConfusionDamage: ; 3dc1f (f:5c1f)
ld [H_WHOSETURN], a
jp ApplyDamageToPlayerPokemon
-PrintMonName1Text: ; 3dc67 (f:5c67)
+PrintMonName1Text:
ld hl, MonName1Text
jp PrintText
@@ -3938,7 +3938,7 @@ PrintMonName1Text: ; 3dc67 (f:5c67)
; those text strings are identical and both continue at PrintInsteadText
; this likely had to do with Japanese grammar that got translated,
; but the functionality didn't get removed
-MonName1Text: ; 3dc6d (f:5c6d)
+MonName1Text:
TX_FAR _MonName1Text
TX_ASM
ld a, [H_WHOSETURN]
@@ -3963,33 +3963,33 @@ MonName1Text: ; 3dc6d (f:5c6d)
ld hl, Used1Text
ret
-Used1Text: ; 3dc9f (f:5c9f)
+Used1Text:
TX_FAR _Used1Text
TX_ASM
jr PrintInsteadText
-Used2Text: ; 3dca6 (f:5ca6)
+Used2Text:
TX_FAR _Used2Text
TX_ASM
; fall through
-PrintInsteadText: ; 3dcab (f:5cab)
+PrintInsteadText:
ld a, [wMonIsDisobedient]
and a
jr z, PrintMoveName
ld hl, InsteadText
ret
-InsteadText: ; 3dcb5 (f:5cb5)
+InsteadText:
TX_FAR _InsteadText
TX_ASM
; fall through
-PrintMoveName: ; 3dcba (f:5cba)
+PrintMoveName:
ld hl, _PrintMoveName
ret
-_PrintMoveName: ; 3dcbe (f:5cbe)
+_PrintMoveName:
TX_FAR _CF4BText
TX_ASM
ld hl, ExclamationPointPointerTable
@@ -4005,30 +4005,30 @@ _PrintMoveName: ; 3dcbe (f:5cbe)
ld l, a
ret
-ExclamationPointPointerTable: ; 3dcd4 (f:5cd4)
+ExclamationPointPointerTable:
dw ExclamationPoint1Text
dw ExclamationPoint2Text
dw ExclamationPoint3Text
dw ExclamationPoint4Text
dw ExclamationPoint5Text
-ExclamationPoint1Text: ; 3dcde (f:5cde)
+ExclamationPoint1Text:
TX_FAR _ExclamationPoint1Text
db "@"
-ExclamationPoint2Text: ; 3dce3 (f:5ce3)
+ExclamationPoint2Text:
TX_FAR _ExclamationPoint2Text
db "@"
-ExclamationPoint3Text: ; 3dce8 (f:5ce8)
+ExclamationPoint3Text:
TX_FAR _ExclamationPoint3Text
db "@"
-ExclamationPoint4Text: ; 3dced (f:5ced)
+ExclamationPoint4Text:
TX_FAR _ExclamationPoint4Text
db "@"
-ExclamationPoint5Text: ; 3dcf2 (f:5cf2)
+ExclamationPoint5Text:
TX_FAR _ExclamationPoint5Text
db "@"
@@ -4039,7 +4039,7 @@ ExclamationPoint5Text: ; 3dcf2 (f:5cf2)
; but all five text strings are identical
; this likely had to do with Japanese grammar that got translated,
; but the functionality didn't get removed
-DetermineExclamationPointTextNum: ; 3dcf7 (f:5cf7)
+DetermineExclamationPointTextNum:
push bc
ld a, [wd11e] ; move ID
ld c, a
@@ -4061,7 +4061,7 @@ DetermineExclamationPointTextNum: ; 3dcf7 (f:5cf7)
pop bc
ret
-ExclamationPointMoveSets: ; 3dd15 (f:5d15)
+ExclamationPointMoveSets:
; a grammar mistake was fixed (only concerning japanese)
; BIDE is in category 3, moved from category 2
db SWORDS_DANCE, GROWTH
@@ -4078,7 +4078,7 @@ ExclamationPointMoveSets: ; 3dd15 (f:5d15)
db $00
db $FF ; terminator
-PrintMoveFailureText: ; 3dd54 (f:5d54)
+PrintMoveFailureText:
ld de, wPlayerMoveEffect
ld a, [H_WHOSETURN]
and a
@@ -4105,7 +4105,7 @@ PrintMoveFailureText: ; 3dd54 (f:5d54)
ret nz
; if you get here, the mon used jump kick or hi jump kick and missed
- ld hl, wDamage ; since the move missed, W_DAMAGE will always contain 0 at this point.
+ ld hl, wDamage ; since the move missed, wDamage will always contain 0 at this point.
; Thus, recoil damage will always be equal to 1
; even if it was intended to be potential damage/8.
ld a, [hli]
@@ -4135,28 +4135,28 @@ PrintMoveFailureText: ; 3dd54 (f:5d54)
.enemyTurn
jp ApplyDamageToEnemyPokemon
-AttackMissedText: ; 3ddb4 (f:5db4)
+AttackMissedText:
TX_FAR _AttackMissedText
db "@"
-KeptGoingAndCrashedText: ; 3ddb9 (f:5db9)
+KeptGoingAndCrashedText:
TX_FAR _KeptGoingAndCrashedText
db "@"
-UnaffectedText: ; 3ddbe (f:5dbe)
+UnaffectedText:
TX_FAR _UnaffectedText
db "@"
-PrintDoesntAffectText: ; 3ddc3 (f:5dc3)
+PrintDoesntAffectText:
ld hl, DoesntAffectMonText
jp PrintText
-DoesntAffectMonText: ; 3ddc9 (f:5dc9)
+DoesntAffectMonText:
TX_FAR _DoesntAffectMonText
db "@"
; if there was a critical hit or an OHKO was successful, print the corresponding text
-PrintCriticalOHKOText: ; 3ddce (f:5dce)
+PrintCriticalOHKOText:
ld a, [wCriticalHitOrOHKO]
and a
jr z, .done ; do nothing if there was no critical hit or successful OHKO
@@ -4176,21 +4176,21 @@ PrintCriticalOHKOText: ; 3ddce (f:5dce)
ld c, 20
jp DelayFrames
-CriticalOHKOTextPointers: ; 3ddec (f:5dec)
+CriticalOHKOTextPointers:
dw CriticalHitText
dw OHKOText
-CriticalHitText: ; 3ddf0 (f:5df0)
+CriticalHitText:
TX_FAR _CriticalHitText
db "@"
-OHKOText: ; 3ddf5 (f:5df5)
+OHKOText:
TX_FAR _OHKOText
db "@"
; checks if a traded mon will disobey due to lack of badges
; stores whether the mon will use a move in Z flag
-CheckForDisobedience: ; 3ddfa (f:5dfa)
+CheckForDisobedience:
xor a
ld [wMonIsDisobedient], a
ld a, [wLinkState]
@@ -4369,28 +4369,28 @@ CheckForDisobedience: ; 3ddfa (f:5dfa)
xor a ; set Z flag
ret
-LoafingAroundText: ; 3df28 (f:5f28)
+LoafingAroundText:
TX_FAR _LoafingAroundText
db "@"
-BeganToNapText: ; 3df2d (f:5f2d)
+BeganToNapText:
TX_FAR _BeganToNapText
db "@"
-WontObeyText: ; 3df32 (f:5f32)
+WontObeyText:
TX_FAR _WontObeyText
db "@"
-TurnedAwayText: ; 3df37 (f:5f37)
+TurnedAwayText:
TX_FAR _TurnedAwayText
db "@"
-IgnoredOrdersText: ; 3df3c (f:5f3c)
+IgnoredOrdersText:
TX_FAR _IgnoredOrdersText
db "@"
; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the player mon
-GetDamageVarsForPlayerAttack: ; 3df41 (f:5f41)
+GetDamageVarsForPlayerAttack:
xor a
ld hl, wDamage ; damage to eventually inflict, initialise to zero
ldi [hl], a
@@ -4503,7 +4503,7 @@ GetDamageVarsForPlayerAttack: ; 3df41 (f:5f41)
ret
; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the enemy mon
-GetDamageVarsForEnemyAttack: ; 3dfe7 (f:5fe7)
+GetDamageVarsForEnemyAttack:
ld hl, wDamage ; damage to eventually inflict, initialise to zero
xor a
ld [hli], a
@@ -4618,7 +4618,7 @@ GetDamageVarsForEnemyAttack: ; 3dfe7 (f:5fe7)
; get stat c of enemy mon
; c: stat to get (HP=1,Attack=2,Defense=3,Speed=4,Special=5)
-GetEnemyMonStat: ; 3e08e (f:608e)
+GetEnemyMonStat:
push de
push bc
ld a, [wLinkState]
@@ -4659,7 +4659,7 @@ GetEnemyMonStat: ; 3e08e (f:608e)
pop de
ret
-CalculateDamage: ; 3d0d7 (f:60d7)
+CalculateDamage:
; input:
; b: attack
; c: opponent defense
@@ -4821,14 +4821,14 @@ CalculateDamage: ; 3d0d7 (f:60d7)
and a
ret
-JumpToOHKOMoveEffect: ; 3e188 (f:6188)
+JumpToOHKOMoveEffect:
call JumpMoveEffect
ld a, [wMoveMissed]
dec a
ret
-UnusedHighCriticalMoves: ; 3e190 (f:6190)
+UnusedHighCriticalMoves:
db KARATE_CHOP
db RAZOR_LEAF
db CRABHAMMER
@@ -4839,7 +4839,7 @@ UnusedHighCriticalMoves: ; 3e190 (f:6190)
; determines if attack is a critical hit
; azure heights claims "the fastest pokémon (who are, not coincidentally,
; among the most popular) tend to CH about 20 to 25% of the time."
-CriticalHitTest: ; 3e195 (f:6195)
+CriticalHitTest:
xor a
ld [wCriticalHitOrOHKO], a
ld a, [H_WHOSETURN]
@@ -4906,7 +4906,7 @@ CriticalHitTest: ; 3e195 (f:6195)
ret
; high critical hit moves
-HighCriticalMoves: ; 3e200 (f:6200)
+HighCriticalMoves:
db KARATE_CHOP
db RAZOR_LEAF
db CRABHAMMER
@@ -4915,7 +4915,7 @@ HighCriticalMoves: ; 3e200 (f:6200)
; function to determine if Counter hits and if so, how much damage it does
-HandleCounterMove: ; 3e205 (f:6205)
+HandleCounterMove:
; The variables checked by Counter are updated whenever the cursor points to a new move in the battle selection menu.
; This is irrelevant for the opponent's side outside of link battles, since the move selection is controlled by the AI.
; However, in the scenario where the player switches out and the opponent uses Counter,
@@ -4980,7 +4980,7 @@ HandleCounterMove: ; 3e205 (f:6205)
xor a
ret
-ApplyAttackToEnemyPokemon: ; 3e251 (f:6251)
+ApplyAttackToEnemyPokemon:
ld a,[wPlayerMoveEffect]
cp a,OHKO_EFFECT
jr z,ApplyDamageToEnemyPokemon
@@ -5046,7 +5046,7 @@ ApplyAttackToEnemyPokemon: ; 3e251 (f:6251)
ld a,b
ld [hl],a
-ApplyDamageToEnemyPokemon: ; 3e2b4 (f:62b4)
+ApplyDamageToEnemyPokemon:
ld hl,wDamage
ld a,[hli]
ld b,a
@@ -5096,10 +5096,10 @@ ApplyDamageToEnemyPokemon: ; 3e2b4 (f:62b4)
xor a
ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
-ApplyAttackToEnemyPokemonDone: ; 3e30f (f:630f)
+ApplyAttackToEnemyPokemonDone:
jp DrawHUDsAndHPBars
-ApplyAttackToPlayerPokemon: ; 3e312 (f:6312)
+ApplyAttackToPlayerPokemon:
ld a,[wEnemyMoveEffect]
cp a,OHKO_EFFECT
jr z,ApplyDamageToPlayerPokemon
@@ -5165,7 +5165,7 @@ ApplyAttackToPlayerPokemon: ; 3e312 (f:6312)
ld a,b
ld [hl],a
-ApplyDamageToPlayerPokemon: ; 3e372 (f:6372)
+ApplyDamageToPlayerPokemon:
ld hl,wDamage
ld a,[hli]
ld b,a
@@ -5214,10 +5214,10 @@ ApplyDamageToPlayerPokemon: ; 3e372 (f:6372)
ld a,$01
ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
-ApplyAttackToPlayerPokemonDone: ; 3e3cd (f:63cd)
+ApplyAttackToPlayerPokemonDone:
jp DrawHUDsAndHPBars
-AttackSubstitute: ; 3e3d0 (f:63d0)
+AttackSubstitute:
; Unlike the two ApplyAttackToPokemon functions, Attack Substitute is shared by player and enemy.
; Self-confusion damage as well as Hi-Jump Kick and Jump Kick recoil cause a momentary turn swap before being applied.
; If the user has a Substitute up and would take damage because of that,
@@ -5272,16 +5272,16 @@ AttackSubstitute: ; 3e3d0 (f:63d0)
ld [hl],a ; zero the effect of the attacker's move
jp DrawHUDsAndHPBars
-SubstituteTookDamageText: ; 3e41e (f:641e)
+SubstituteTookDamageText:
TX_FAR _SubstituteTookDamageText
db "@"
-SubstituteBrokeText: ; 3e423 (f:6423)
+SubstituteBrokeText:
TX_FAR _SubstituteBrokeText
db "@"
; this function raises the attack modifier of a pokemon using Rage when that pokemon is attacked
-HandleBuildingRage: ; 3e428 (f:6428)
+HandleBuildingRage:
; values for the player turn
ld hl,wEnemyBattleStatus2
ld de,wEnemyMonStatMods
@@ -5323,13 +5323,13 @@ HandleBuildingRage: ; 3e428 (f:6428)
ld [H_WHOSETURN],a
ret
-BuildingRageText: ; 3e46a (f:646a)
+BuildingRageText:
TX_FAR _BuildingRageText
db "@"
; copy last move for Mirror Move
; sets zero flag on failure and unsets zero flag on success
-MirrorMoveCopyMove: ; 3e46f (f:646f)
+MirrorMoveCopyMove:
; Mirror Move makes use of ccf1 (wPlayerUsedMove) and ccf2 (wEnemyUsedMove) addresses,
; which are mainly used to print the "[Pokemon] used [Move]" text.
; Both are set to 0 whenever a new Pokemon is sent out
@@ -5359,12 +5359,12 @@ MirrorMoveCopyMove: ; 3e46f (f:646f)
xor a
ret
-MirrorMoveFailedText: ; 3e496 (f:6496)
+MirrorMoveFailedText:
TX_FAR _MirrorMoveFailedText
db "@"
; function used to reload move data for moves like Mirror Move and Metronome
-ReloadMoveData: ; 3e49b (f:649b)
+ReloadMoveData:
ld [wd11e],a
dec a
ld hl,Moves
@@ -5381,7 +5381,7 @@ ReloadMoveData: ; 3e49b (f:649b)
ret
; function that picks a random move for metronome
-MetronomePickMove: ; 3e4ba (f:64ba)
+MetronomePickMove:
xor a
ld [wAnimationType],a
ld a,METRONOME
@@ -5410,7 +5410,7 @@ MetronomePickMove: ; 3e4ba (f:64ba)
; this function increments the current move's PP
; it's used to prevent moves that run another move within the same turn
; (like Mirror Move and Metronome) from losing 2 PP
-IncrementMovePP: ; 3e4e5 (f:64e5)
+IncrementMovePP:
ld a,[H_WHOSETURN]
and a
; values for player turn
@@ -5442,7 +5442,7 @@ IncrementMovePP: ; 3e4e5 (f:64e5)
ret
; function to adjust the base damage of an attack to account for type effectiveness
-AdjustDamageForMoveType: ; 3e517 (f:6517)
+AdjustDamageForMoveType:
; values for player turn
ld hl,wBattleMonType
ld a,[hli]
@@ -5555,7 +5555,7 @@ AdjustDamageForMoveType: ; 3e517 (f:6517)
.done
ret
-AIGetTypeEffectiveness: ; 3e5bb (f:65bb)
+AIGetTypeEffectiveness:
ld a,[wEnemyMoveType]
ld d,a ; d = type of enemy move
ld hl,wBattleMonType
@@ -5602,7 +5602,7 @@ AIGetTypeEffectiveness: ; 3e5bb (f:65bb)
INCLUDE "data/type_effects.asm"
; some tests that need to pass for a move to hit
-MoveHitTest: ; 3e6f1 (f:66f1)
+MoveHitTest:
; player's turn
ld hl,wEnemyBattleStatus1
ld de,wPlayerMoveEffect
@@ -5722,7 +5722,7 @@ MoveHitTest: ; 3e6f1 (f:66f1)
ret
; values for player turn
-CalcHitChance: ; 3e7aa (f:67aa)
+CalcHitChance:
ld hl,wPlayerMoveAccuracy
ld a,[H_WHOSETURN]
and a
@@ -5794,7 +5794,7 @@ CalcHitChance: ; 3e7aa (f:67aa)
ret
; multiplies damage by a random percentage from ~85% to 100%
-RandomizeDamage: ; 3e80d (f:680d)
+RandomizeDamage:
ld hl, wDamage
ld a, [hli]
and a
@@ -5831,7 +5831,7 @@ RandomizeDamage: ; 3e80d (f:680d)
ret
; for more detailed commentary, see equivalent function for player side (ExecutePlayerMove)
-ExecuteEnemyMove: ; 3e842 (f:6842)
+ExecuteEnemyMove:
ld a, [wEnemySelectedMove]
inc a
jp z, ExecuteEnemyMoveDone
@@ -5863,14 +5863,14 @@ ExecuteEnemyMove: ; 3e842 (f:6842)
jr nz, EnemyCanExecuteChargingMove ; if so, jump
call GetCurrentMove
-CheckIfEnemyNeedsToChargeUp: ; 3e882 (f:6882)
+CheckIfEnemyNeedsToChargeUp:
ld a, [wEnemyMoveEffect]
cp CHARGE_EFFECT
jp z, JumpMoveEffect
cp FLY_EFFECT
jp z, JumpMoveEffect
jr EnemyCanExecuteMove
-EnemyCanExecuteChargingMove: ; 3e891 (f:6891)
+EnemyCanExecuteChargingMove:
ld hl, wEnemyBattleStatus1
res ChargingUp, [hl] ; no longer charging up for attack
res Invulnerable, [hl] ; no longer invulnerable to typical attacks
@@ -5883,7 +5883,7 @@ EnemyCanExecuteChargingMove: ; 3e891 (f:6891)
call GetName
ld de, wcd6d
call CopyStringToCF4B
-EnemyCanExecuteMove: ; 3e8b1 (f:68b1)
+EnemyCanExecuteMove:
xor a
ld [wMonIsDisobedient], a
call PrintMonName1Text
@@ -5897,7 +5897,7 @@ EnemyCanExecuteMove: ; 3e8b1 (f:68b1)
ld de, $1
call IsInArray
call c, JumpMoveEffect
-EnemyCalcMoveDamage: ; 3e8d6 (f:68d6)
+EnemyCalcMoveDamage:
call SwapPlayerAndEnemyLevels
ld a, [wEnemyMoveEffect]
ld hl, SetDamageEffects
@@ -5915,9 +5915,9 @@ EnemyCalcMoveDamage: ; 3e8d6 (f:68d6)
call AdjustDamageForMoveType
call RandomizeDamage
-EnemyMoveHitTest: ; 3e905 (f:6905)
+EnemyMoveHitTest:
call MoveHitTest
-handleIfEnemyMoveMissed: ; 3e908 (f:6908)
+handleIfEnemyMoveMissed:
ld a, [wMoveMissed]
and a
jr z, .moveDidNotMiss
@@ -5928,17 +5928,17 @@ handleIfEnemyMoveMissed: ; 3e908 (f:6908)
.moveDidNotMiss
call SwapPlayerAndEnemyLevels
-GetEnemyAnimationType: ; 3e91a (f:691a)
+GetEnemyAnimationType:
ld a, [wEnemyMoveEffect]
and a
ld a, $1
jr z, playEnemyMoveAnimation
ld a, $2
jr playEnemyMoveAnimation
-handleExplosionMiss: ; 3e926 (f:6926)
+handleExplosionMiss:
call SwapPlayerAndEnemyLevels
xor a
-playEnemyMoveAnimation: ; 3e92a (f:692a)
+playEnemyMoveAnimation:
push af
ld a, [wEnemyBattleStatus2]
bit HasSubstituteUp, a ; does mon have a substitute?
@@ -5958,7 +5958,7 @@ playEnemyMoveAnimation: ; 3e92a (f:692a)
call nz, Bankswitch ; slide the substitute's sprite out
jr EnemyCheckIfMirrorMoveEffect
-EnemyCheckIfFlyOrChargeEffect: ; 3e957 (f:6957)
+EnemyCheckIfFlyOrChargeEffect:
call SwapPlayerAndEnemyLevels
ld c, 30
call DelayFrames
@@ -5973,7 +5973,7 @@ EnemyCheckIfFlyOrChargeEffect: ; 3e957 (f:6957)
ld [wAnimationType], a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
-EnemyCheckIfMirrorMoveEffect: ; 3e975 (f:6975)
+EnemyCheckIfMirrorMoveEffect:
ld a, [wEnemyMoveEffect]
cp MIRROR_MOVE_EFFECT
jr nz, .notMirrorMoveEffect
@@ -6040,17 +6040,17 @@ EnemyCheckIfMirrorMoveEffect: ; 3e975 (f:6975)
call nc, JumpMoveEffect
jr ExecuteEnemyMoveDone
-HitXTimesText: ; 3ea0d (f:6a0d)
+HitXTimesText:
TX_FAR _HitXTimesText
db "@"
-ExecuteEnemyMoveDone: ; 3ea12 (f:6a12)
+ExecuteEnemyMoveDone:
ld b, $1
ret
; checks for various status conditions affecting the enemy mon
; stores whether the mon cannot use a move this turn in Z flag
-CheckEnemyStatusConditions: ; 3ea15 (f:6a15)
+CheckEnemyStatusConditions:
ld hl, wEnemyMonStatus
ld a, [hl]
and SLP ; sleep mask
@@ -6332,7 +6332,7 @@ CheckEnemyStatusConditions: ; 3ea15 (f:6a15)
and a ; clear Z flag
ret
-GetCurrentMove: ; 3ec44 (f:6c44)
+GetCurrentMove:
ld a, [H_WHOSETURN]
and a
jp z, .player
@@ -6363,7 +6363,7 @@ GetCurrentMove: ; 3ec44 (f:6c44)
ld de, wcd6d
jp CopyStringToCF4B
-LoadEnemyMonData: ; 3ec87 (f:6c87)
+LoadEnemyMonData:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jp z, LoadEnemyMonFromParty
@@ -6523,7 +6523,7 @@ LoadEnemyMonData: ; 3ec87 (f:6c87)
ret
; calls BattleTransition to show the battle transition animation and initializes some battle variables
-DoBattleTransitionAndInitBattleVariables: ; 3edb8 (f:6db8)
+DoBattleTransitionAndInitBattleVariables:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr nz, .next
@@ -6559,7 +6559,7 @@ DoBattleTransitionAndInitBattleVariables: ; 3edb8 (f:6db8)
ret
; swaps the level values of the BattleMon and EnemyMon structs
-SwapPlayerAndEnemyLevels: ; 3ee07 (f:6e07)
+SwapPlayerAndEnemyLevels:
push bc
ld a, [wBattleMonLevel]
ld b, a
@@ -6573,7 +6573,7 @@ SwapPlayerAndEnemyLevels: ; 3ee07 (f:6e07)
; loads either red back pic or old man back pic
; also writes OAM data and loads tile patterns for the Red or Old Man back sprite's head
; (for use when scrolling the player sprite and enemy's silhouettes on screen)
-LoadPlayerBackPic: ; 3ee18 (f:6e18)
+LoadPlayerBackPic:
ld a, [wBattleType]
ld de, OldManPic
cp BATTLE_TYPE_OLD_MAN ; is it the old man tutorial?
@@ -6636,26 +6636,26 @@ LoadPlayerBackPic: ; 3ee18 (f:6e18)
predef_jump CopyUncompressedPicToTilemap
; does nothing since no stats are ever selected (barring glitches)
-DoubleOrHalveSelectedStats: ; 3ee8e (f:6e8e)
+DoubleOrHalveSelectedStats:
callab DoubleSelectedStats
jpab HalveSelectedStats
-ScrollTrainerPicAfterBattle: ; 3ee9e (f:6e9e)
+ScrollTrainerPicAfterBattle:
jpab _ScrollTrainerPicAfterBattle
-ApplyBurnAndParalysisPenaltiesToPlayer: ; 3eea6 (f:6ea6)
+ApplyBurnAndParalysisPenaltiesToPlayer:
ld a, $1
jr ApplyBurnAndParalysisPenalties
-ApplyBurnAndParalysisPenaltiesToEnemy: ; 3eeaa (f:6eaa)
+ApplyBurnAndParalysisPenaltiesToEnemy:
xor a
-ApplyBurnAndParalysisPenalties: ; 3eeab (f:6eab)
+ApplyBurnAndParalysisPenalties:
ld [H_WHOSETURN], a
call QuarterSpeedDueToParalysis
jp HalveAttackDueToBurn
-QuarterSpeedDueToParalysis: ; 3eeb3 (f:6eb3)
+QuarterSpeedDueToParalysis:
ld a, [H_WHOSETURN]
and a
jr z, .playerTurn
@@ -6698,7 +6698,7 @@ QuarterSpeedDueToParalysis: ; 3eeb3 (f:6eb3)
ld [hl], b
ret
-HalveAttackDueToBurn: ; 3eeef (f:6eef)
+HalveAttackDueToBurn:
ld a, [H_WHOSETURN]
and a
jr z, .playerTurn
@@ -6737,7 +6737,7 @@ HalveAttackDueToBurn: ; 3eeef (f:6eef)
ld [hl], b
ret
-CalculateModifiedStats: ; 3ef25 (f:6f25)
+CalculateModifiedStats:
ld c, 0
.loop
call CalculateModifiedStat
@@ -6748,7 +6748,7 @@ CalculateModifiedStats: ; 3ef25 (f:6f25)
ret
; calculate modified stat for stat c (0 = attack, 1 = defense, 2 = speed, 3 = special)
-CalculateModifiedStat: ; 3ef31 (f:6f31)
+CalculateModifiedStat:
push bc
push bc
ld a, [wCalculateWhoseStats]
@@ -6826,7 +6826,7 @@ CalculateModifiedStat: ; 3ef31 (f:6f31)
pop bc
ret
-ApplyBadgeStatBoosts: ; 3efa5 (f:6fa5)
+ApplyBadgeStatBoosts:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
ret z ; return if link battle
@@ -6879,10 +6879,10 @@ ApplyBadgeStatBoosts: ; 3efa5 (f:6fa5)
ld [hld], a
ret
-LoadHudAndHpBarAndStatusTilePatterns: ; 3efe4 (f:6fe4)
+LoadHudAndHpBarAndStatusTilePatterns:
call LoadHpBarAndStatusTilePatterns
-LoadHudTilePatterns: ; 3efe7 (f:6fe7)
+LoadHudTilePatterns:
ld a, [rLCDC]
add a ; is LCD disabled?
jr c, .lcdEnabled
@@ -6907,14 +6907,14 @@ LoadHudTilePatterns: ; 3efe7 (f:6fe7)
lb bc, BANK(BattleHudTiles2), (BattleHudTiles3End - BattleHudTiles2) / $8
jp CopyVideoDataDouble
-PrintEmptyString: ; 3f020 (f:7020)
+PrintEmptyString:
ld hl, .emptyString
jp PrintText
.emptyString
db "@"
-BattleRandom: ; 3f027 (f:7027)
+BattleRandom:
; Link battles use a shared PRNG.
ld a, [wLinkState]
@@ -6966,7 +6966,7 @@ BattleRandom: ; 3f027 (f:7027)
ret
-HandleExplodingAnimation: ; 3f05f (f:705f)
+HandleExplodingAnimation:
ld a, [H_WHOSETURN]
and a
ld hl, wEnemyMonType1
@@ -6997,19 +6997,19 @@ HandleExplodingAnimation: ; 3f05f (f:705f)
ld a, 5
ld [wAnimationType], a
-PlayMoveAnimation: ; 3f093 (f:7093)
+PlayMoveAnimation:
ld [wAnimationID],a
call Delay3
predef MoveAnimation
callab Func_78e98
ret
-JumpMoveEffect: ; 3f0a7 (f:70a7)
+JumpMoveEffect:
call _JumpMoveEffect
ld b, $1
ret
-_JumpMoveEffect: ; 3f0ad (f:70ad)
+_JumpMoveEffect:
ld a, [H_WHOSETURN]
and a
ld a, [wPlayerMoveEffect]
@@ -7027,7 +7027,7 @@ _JumpMoveEffect: ; 3f0ad (f:70ad)
ld l, a
jp [hl] ; jump to special effect handler
-MoveEffectPointerTable: ; 3f0c5 (f:70c5)
+MoveEffectPointerTable:
dw SleepEffect ; unused effect
dw PoisonEffect ; POISON_SIDE_EFFECT1
dw DrainHPEffect ; DRAIN_HP_EFFECT
@@ -7115,7 +7115,7 @@ MoveEffectPointerTable: ; 3f0c5 (f:70c5)
dw SplashEffect ; SPLASH_EFFECT
dw DisableEffect ; DISABLE_EFFECT
-SleepEffect: ; 3f171 (f:7171)
+SleepEffect:
ld de, wEnemyMonStatus
ld bc, wEnemyBattleStatus2
ld a, [H_WHOSETURN]
@@ -7169,15 +7169,15 @@ SleepEffect: ; 3f171 (f:7171)
.didntAffect
jp PrintDidntAffectText
-FellAsleepText: ; 3f1c8 (f:71c8)
+FellAsleepText:
TX_FAR _FellAsleepText
db "@"
-AlreadyAsleepText: ; 3f1cd (f:71cds)
+AlreadyAsleepText:
TX_FAR _AlreadyAsleepText
db "@"
-PoisonEffect: ; 3f1d2 (f:71d2)
+PoisonEffect:
ld hl, wEnemyMonStatus
ld de, wPlayerMoveEffect
ld a, [H_WHOSETURN]
@@ -7263,18 +7263,18 @@ PoisonEffect: ; 3f1d2 (f:71d2)
call DelayFrames
jp PrintDidntAffectText
-PoisonedText: ; 3f262 (f:7262)
+PoisonedText:
TX_FAR _PoisonedText
db "@"
-BadlyPoisonedText: ; 3f267 (f:7267)
+BadlyPoisonedText:
TX_FAR _BadlyPoisonedText
db "@"
-DrainHPEffect: ; 3f26c (f:726c)
+DrainHPEffect:
jpab DrainHPEffect_
-ExplodeEffect: ; 3f274 (f:7274)
+ExplodeEffect:
ld hl, wBattleMonHP
ld de, wPlayerBattleStatus2
ld a, [H_WHOSETURN]
@@ -7293,7 +7293,7 @@ ExplodeEffect: ; 3f274 (f:7274)
ld [de], a
ret
-FreezeBurnParalyzeEffect: ; 3f28f (f:728f)
+FreezeBurnParalyzeEffect:
xor a
ld [wAnimationType], a
call CheckTargetSubstitute ; test bit 4 of d063/d068 flags [target has substitute flag]
@@ -7424,15 +7424,15 @@ FreezeBurnParalyzeEffect: ; 3f28f (f:728f)
ld hl, FrozenText
jp PrintText
-BurnedText: ; 3f38e (f:738e)
+BurnedText:
TX_FAR _BurnedText
db "@"
-FrozenText: ; 3f393 (f:7393)
+FrozenText:
TX_FAR _FrozenText
db "@"
-CheckDefrost: ; 3f398 (f:7398)
+CheckDefrost:
; any fire-type move that has a chance inflict burn (all but Fire Spin) will defrost a frozen target
and a, 1 << FRZ ; are they frozen?
ret z ; return if so
@@ -7467,11 +7467,11 @@ CheckDefrost: ; 3f398 (f:7398)
.common
jp PrintText
-FireDefrostedText: ; 3f3d9 (f:73d9)
+FireDefrostedText:
TX_FAR _FireDefrostedText
db "@"
-StatModifierUpEffect: ; 3f3de (f:73de)
+StatModifierUpEffect:
ld hl, wPlayerMonStatMods
ld de, wPlayerMoveEffect
ld a, [H_WHOSETURN]
@@ -7570,13 +7570,13 @@ StatModifierUpEffect: ; 3f3de (f:73de)
ld a, 999 % $100
ld [H_MULTIPLICAND + 2], a
-UpdateStat: ; 3f479 (f:7479)
+UpdateStat:
ld a, [H_PRODUCT + 2]
ld [hli], a
ld a, [H_PRODUCT + 3]
ld [hl], a
pop hl
-UpdateStatDone: ; 3f480 (f:7480)
+UpdateStatDone:
ld b, c
inc b
call PrintStatText
@@ -7627,15 +7627,15 @@ UpdateStatDone: ; 3f480 (f:7480)
call QuarterSpeedDueToParalysis ; apply speed penalty to the player whose turn is not, if it's paralyzed
jp HalveAttackDueToBurn ; apply attack penalty to the player whose turn is not, if it's burned
-RestoreOriginalStatModifier: ; 3f4d6 (f:74d6)
+RestoreOriginalStatModifier:
pop hl
dec [hl]
-PrintNothingHappenedText: ; 3f4d8 (f:74d8)
+PrintNothingHappenedText:
ld hl, NothingHappenedText
jp PrintText
-MonsStatsRoseText: ; 3f4de (f:74de)
+MonsStatsRoseText:
TX_FAR _MonsStatsRoseText
TX_ASM
ld hl, GreatlyRoseText
@@ -7650,15 +7650,15 @@ MonsStatsRoseText: ; 3f4de (f:74de)
ld hl, RoseText
ret
-GreatlyRoseText: ; 3f4f8 (f:74f8)
+GreatlyRoseText:
db $0a
TX_FAR _GreatlyRoseText
; fallthrough
-RoseText: ; 3f4fd (f:74fd)
+RoseText:
TX_FAR _RoseText
db "@"
-StatModifierDownEffect: ; 3f502 (f:7502)
+StatModifierDownEffect:
ld hl, wEnemyMonStatMods
ld de, wPlayerMoveEffect
ld bc, wEnemyBattleStatus1
@@ -7788,14 +7788,14 @@ StatModifierDownEffect: ; 3f502 (f:7502)
ld a, $1
ld [H_MULTIPLICAND + 2], a
-UpdateLoweredStat: ; 3f5da (f:75da)
+UpdateLoweredStat:
ld a, [H_PRODUCT + 2]
ld [hli], a
ld a, [H_PRODUCT + 3]
ld [hl], a
pop de
pop hl
-UpdateLoweredStatDone: ; 3f5e2 (f:75e2)
+UpdateLoweredStatDone:
ld b, c
inc b
push de
@@ -7819,25 +7819,25 @@ UpdateLoweredStatDone: ; 3f5e2 (f:75e2)
call QuarterSpeedDueToParalysis
jp HalveAttackDueToBurn
-CantLowerAnymore_Pop: ; 3f603 (f:7603)
+CantLowerAnymore_Pop:
pop de
pop hl
inc [hl]
-CantLowerAnymore: ; 3f606 (f:7606)
+CantLowerAnymore:
ld a, [de]
cp ATTACK_DOWN_SIDE_EFFECT
ret nc
ld hl, NothingHappenedText
jp PrintText
-MoveMissed: ; 3f610 (f:7610)
+MoveMissed:
ld a, [de]
cp $44
ret nc
jp ConditionalPrintButItFailed
-MonsStatsFellText: ; 3f617 (f:7617)
+MonsStatsFellText:
TX_FAR _MonsStatsFellText
TX_ASM
ld hl, FellText
@@ -7855,15 +7855,15 @@ MonsStatsFellText: ; 3f617 (f:7617)
ld hl, GreatlyFellText
ret
-GreatlyFellText: ; 3f634 (f:7634)
+GreatlyFellText:
db $0a
TX_FAR _GreatlyFellText
; fallthrough
-FellText: ; 3f639 (f:7639)
+FellText:
TX_FAR _FellText
db "@"
-PrintStatText: ; 3f63e (f:763e)
+PrintStatText:
ld hl, StatsTextStrings
ld c, "@"
.findStatName_outer
@@ -7879,7 +7879,7 @@ PrintStatText: ; 3f63e (f:763e)
ld bc, $a
jp CopyData
-StatsTextStrings: ; 3f655 (f:7655)
+StatsTextStrings:
db "ATTACK@"
db "DEFENSE@"
db "SPEED@"
@@ -7887,7 +7887,7 @@ StatsTextStrings: ; 3f655 (f:7655)
db "ACCURACY@"
db "EVADE@"
-StatModifierRatios: ; 3f681 (f:7681)
+StatModifierRatios:
; first byte is numerator, second byte is denominator
db 25, 100 ; 0.25
db 28, 100 ; 0.28
@@ -7903,7 +7903,7 @@ StatModifierRatios: ; 3f681 (f:7681)
db 35, 10 ; 3.50
db 4, 1 ; 4.00
-BideEffect: ; 3f69b (f:769b)
+BideEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerBideAccumulatedDamage
ld bc, wPlayerNumAttacksLeft
@@ -7930,7 +7930,7 @@ BideEffect: ; 3f69b (f:769b)
add XSTATITEM_ANIM
jp PlayBattleAnimation2
-ThrashPetalDanceEffect: ; 3f7cd (f:77cd)
+ThrashPetalDanceEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
ld a, [H_WHOSETURN]
@@ -7949,7 +7949,7 @@ ThrashPetalDanceEffect: ; 3f7cd (f:77cd)
add ANIM_B0
jp PlayBattleAnimation2
-SwitchAndTeleportEffect: ; 3f6ef (f:76ef)
+SwitchAndTeleportEffect:
ld a, [H_WHOSETURN]
and a
jr nz, .handleEnemy
@@ -8053,19 +8053,19 @@ SwitchAndTeleportEffect: ; 3f6ef (f:76ef)
.printText
jp PrintText
-RanFromBattleText: ; 3f7b8 (f:77b8)
+RanFromBattleText:
TX_FAR _RanFromBattleText
db "@"
-RanAwayScaredText: ; 3f7bd (f:77bd)
+RanAwayScaredText:
TX_FAR _RanAwayScaredText
db "@"
-WasBlownAwayText: ; 3f7c2 (f:77c2)
+WasBlownAwayText:
TX_FAR _WasBlownAwayText
db "@"
-TwoToFiveAttacksEffect: ; 3f7c7 (f:77c7)
+TwoToFiveAttacksEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
ld bc, wPlayerNumHits
@@ -8111,7 +8111,7 @@ TwoToFiveAttacksEffect: ; 3f7c7 (f:77c7)
ld [hl], a ; set Twineedle's effect to poison effect
jr .saveNumberOfHits
-FlinchSideEffect: ; 3f811 (f:7811)
+FlinchSideEffect:
call CheckTargetSubstitute
ret nz
ld hl, wEnemyBattleStatus1
@@ -8138,10 +8138,10 @@ FlinchSideEffect: ; 3f811 (f:7811)
call ClearHyperBeam
ret
-OneHitKOEffect: ; 3f842 (f:7842)
+OneHitKOEffect:
jpab OneHitKOEffect_
-ChargeEffect: ; 3f84a (f:784a)
+ChargeEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerMoveEffect
ld a, [H_WHOSETURN]
@@ -8192,7 +8192,7 @@ ChargeEffect: ; 3f84a (f:784a)
ld hl, ChargeMoveEffectText
jp PrintText
-ChargeMoveEffectText: ; 3f8a3 (f:78a3)
+ChargeMoveEffectText:
TX_FAR _ChargeMoveEffectText
TX_ASM
ld a, [wChargeMoveNum]
@@ -8216,31 +8216,31 @@ ChargeMoveEffectText: ; 3f8a3 (f:78a3)
.gotText
ret
-MadeWhirlwindText: ; 3f8d4 (f:78d4)
+MadeWhirlwindText:
TX_FAR _MadeWhirlwindText
db "@"
-TookInSunlightText: ; 3f8d9 (f:78d9)
+TookInSunlightText:
TX_FAR _TookInSunlightText
db "@"
-LoweredItsHeadText: ; 3f8de (f:78de)
+LoweredItsHeadText:
TX_FAR _LoweredItsHeadText
db "@"
-SkyAttackGlowingText: ; 3f8e3 (f:78e3)
+SkyAttackGlowingText:
TX_FAR _SkyAttackGlowingText
db "@"
-FlewUpHighText: ; 3f8e8 (f:78e8)
+FlewUpHighText:
TX_FAR _FlewUpHighText
db "@"
-DugAHoleText: ; 3f8ed (f:78ed)
+DugAHoleText:
TX_FAR _DugAHoleText
db "@"
-TrappingEffect: ; 3f8f2 (f:78f2)
+TrappingEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
ld a, [H_WHOSETURN]
@@ -8265,22 +8265,22 @@ TrappingEffect: ; 3f8f2 (f:78f2)
ld [de], a
ret
-MistEffect: ; 3f91c (f:791c)
+MistEffect:
jpab MistEffect_
-FocusEnergyEffect: ; 3f924 (f:7924)
+FocusEnergyEffect:
jpab FocusEnergyEffect_
-RecoilEffect: ; 3f92c (f:792c)
+RecoilEffect:
jpab RecoilEffect_
-ConfusionSideEffect: ; 3f934 (f:7934)
+ConfusionSideEffect:
call BattleRandom
cp $19 ; ~10% chance
ret nc
jr ConfusionSideEffectSuccess
-ConfusionEffect: ; 3f93c (f:793c)
+ConfusionEffect:
call CheckTargetSubstitute
jr nz, ConfusionEffectFailed
call MoveHitTest
@@ -8288,7 +8288,7 @@ ConfusionEffect: ; 3f93c (f:793c)
and a
jr nz, ConfusionEffectFailed
-ConfusionSideEffectSuccess: ; 3f94a (f:794a)
+ConfusionSideEffectSuccess:
ld a, [H_WHOSETURN]
and a
ld hl, wEnemyBattleStatus1
@@ -8314,24 +8314,24 @@ ConfusionSideEffectSuccess: ; 3f94a (f:794a)
ld hl, BecameConfusedText
jp PrintText
-BecameConfusedText: ; 3f97c (f:797c)
+BecameConfusedText:
TX_FAR _BecameConfusedText
db "@"
-ConfusionEffectFailed: ; 3f981 (f:7981)
+ConfusionEffectFailed:
cp CONFUSION_SIDE_EFFECT
ret z
ld c, 50
call DelayFrames
jp ConditionalPrintButItFailed
-ParalyzeEffect: ; 3f98c (f:798c)
+ParalyzeEffect:
jpab ParalyzeEffect_
-SubstituteEffect: ; 3f994 (f:7994)
+SubstituteEffect:
jpab SubstituteEffect_
-HyperBeamEffect: ; 3f99c (f:799c)
+HyperBeamEffect:
ld hl, wPlayerBattleStatus2
ld a, [H_WHOSETURN]
and a
@@ -8341,7 +8341,7 @@ HyperBeamEffect: ; 3f99c (f:799c)
set NeedsToRecharge, [hl] ; mon now needs to recharge
ret
-ClearHyperBeam: ; 3f9aa (f:79aa)
+ClearHyperBeam:
push hl
ld hl, wEnemyBattleStatus2
ld a, [H_WHOSETURN]
@@ -8353,7 +8353,7 @@ ClearHyperBeam: ; 3f9aa (f:79aa)
pop hl
ret
-RageEffect: ; 3f9ba (f:79ba)
+RageEffect:
ld hl, wPlayerBattleStatus2
ld a, [H_WHOSETURN]
and a
@@ -8363,7 +8363,7 @@ RageEffect: ; 3f9ba (f:79ba)
set UsingRage, [hl] ; mon is now in "rage" mode
ret
-MimicEffect: ; 3f9c8 (f:79c8)
+MimicEffect:
ld c, 50
call DelayFrames
call MoveHitTest
@@ -8435,18 +8435,18 @@ MimicEffect: ; 3f9c8 (f:79c8)
.mimicMissed
jp PrintButItFailedText_
-MimicLearnedMoveText: ; 3fa52 (f:7a52)
+MimicLearnedMoveText:
TX_FAR _MimicLearnedMoveText
db "@"
-LeechSeedEffect: ; 3fa57 (f:7a57)
+LeechSeedEffect:
jpab LeechSeedEffect_
-SplashEffect: ; 3fa5f (f:7a5f)
+SplashEffect:
call PlayCurrentMoveAnimation
jp PrintNoEffectText
-DisableEffect: ; 3fa65 (f:7a65)
+DisableEffect:
call MoveHitTest
ld a, [wMoveMissed]
and a
@@ -8529,74 +8529,74 @@ DisableEffect: ; 3fa65 (f:7a65)
.moveMissed
jp PrintButItFailedText_
-MoveWasDisabledText: ; 3fae4 (f:7ae4)
+MoveWasDisabledText:
TX_FAR _MoveWasDisabledText
db "@"
-PayDayEffect: ; 3fae9 (f:7ae9)
+PayDayEffect:
jpab PayDayEffect_
-ConversionEffect: ; 3faf1 (f:7af1)
+ConversionEffect:
jpab ConversionEffect_
-HazeEffect: ; 3faf9 (f:7af9)
+HazeEffect:
jpab HazeEffect_
-HealEffect: ; 3fb01 (f:7b01)
+HealEffect:
jpab HealEffect_
-TransformEffect: ; 3fb09 (f:7b09)
+TransformEffect:
jpab TransformEffect_
-ReflectLightScreenEffect: ; 3fb11 (f:7b11)
+ReflectLightScreenEffect:
jpab ReflectLightScreenEffect_
-NothingHappenedText: ; 3fb19 (f:7b19)
+NothingHappenedText:
TX_FAR _NothingHappenedText
db "@"
-PrintNoEffectText: ; 3fb1e (f:7b1e)
+PrintNoEffectText:
ld hl, NoEffectText
jp PrintText
-NoEffectText: ; 3fb24 (f:7b24)
+NoEffectText:
TX_FAR _NoEffectText
db "@"
-ConditionalPrintButItFailed: ; 3fb29 (f:7b29)
+ConditionalPrintButItFailed:
ld a, [wMoveDidntMiss]
and a
ret nz ; return if the side effect failed, yet the attack was successful
-PrintButItFailedText_: ; 3fb2e (f:7b2e)
+PrintButItFailedText_:
ld hl, ButItFailedText
jp PrintText
-ButItFailedText: ; 3fb34 (f:7b34)
+ButItFailedText:
TX_FAR _ButItFailedText
db "@"
-PrintDidntAffectText: ; 3fb39 (f:7b39)
+PrintDidntAffectText:
ld hl, DidntAffectText
jp PrintText
-DidntAffectText: ; 3fb3f (f:7b3f)
+DidntAffectText:
TX_FAR _DidntAffectText
db "@"
-IsUnaffectedText: ; 3fb44 (f:7b44)
+IsUnaffectedText:
TX_FAR _IsUnaffectedText
db "@"
-PrintMayNotAttackText: ; 3fb49 (f:7b49)
+PrintMayNotAttackText:
ld hl, ParalyzedMayNotAttackText
jp PrintText
-ParalyzedMayNotAttackText: ; 3fb4f (f:7b4f)
+ParalyzedMayNotAttackText:
TX_FAR _ParalyzedMayNotAttackText
db "@"
-CheckTargetSubstitute: ; 3fb54 (f:7b54)
+CheckTargetSubstitute:
push hl
ld hl, wEnemyBattleStatus2
ld a, [H_WHOSETURN]
@@ -8608,7 +8608,7 @@ CheckTargetSubstitute: ; 3fb54 (f:7b54)
pop hl
ret
-PlayCurrentMoveAnimation2: ; 3fb64 (f:7b64)
+PlayCurrentMoveAnimation2:
; animation at MOVENUM will be played unless MOVENUM is 0
; plays wAnimationType 3 or 6
ld a, [H_WHOSETURN]
@@ -8620,7 +8620,7 @@ PlayCurrentMoveAnimation2: ; 3fb64 (f:7b64)
and a
ret z
-PlayBattleAnimation2: ; 3fb71 (f:7b71)
+PlayBattleAnimation2:
; play animation ID at a and animation type 6 or 3
ld [wAnimationID], a
ld a, [H_WHOSETURN]
@@ -8632,7 +8632,7 @@ PlayBattleAnimation2: ; 3fb71 (f:7b71)
ld [wAnimationType], a
jp PlayBattleAnimationGotID
-PlayCurrentMoveAnimation: ; 3fb83 (f:7b83)
+PlayCurrentMoveAnimation:
; animation at MOVENUM will be played unless MOVENUM is 0
; resets wAnimationType
xor a
@@ -8646,11 +8646,11 @@ PlayCurrentMoveAnimation: ; 3fb83 (f:7b83)
and a
ret z
-PlayBattleAnimation: ; 3fb94 (f:7b94)
+PlayBattleAnimation:
; play animation ID at a and predefined animation type
ld [wAnimationID], a
-PlayBattleAnimationGotID: ; 3fb97 (f:7b97)
+PlayBattleAnimationGotID:
; play animation at wAnimationID
push hl
push de
@@ -8660,4 +8660,4 @@ PlayBattleAnimationGotID: ; 3fb97 (f:7b97)
pop bc
pop de
pop hl
- ret \ No newline at end of file
+ ret
diff --git a/engine/battle/decrement_pp.asm b/engine/battle/decrement_pp.asm
index da1910ee..e23a85ba 100644
--- a/engine/battle/decrement_pp.asm
+++ b/engine/battle/decrement_pp.asm
@@ -1,4 +1,4 @@
-DecrementPP: ; f42db (3d:42db)
+DecrementPP:
; after using a move, decrement pp in battle and (if not transformed?) in party
ld a, [de]
cp a, STRUGGLE
@@ -33,7 +33,7 @@ DecrementPP: ; f42db (3d:42db)
ld a, [wPlayerMonNumber] ; which mon in party is active
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes ; calculate address of the mon to modify
-.DecrementPP ; f4301 (3d:4301)
+.DecrementPP:
ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use?
ld c, a
ld b, 0
diff --git a/engine/battle/display_effectiveness.asm b/engine/battle/display_effectiveness.asm
index 1ef9873c..85f2bc3e 100644
--- a/engine/battle/display_effectiveness.asm
+++ b/engine/battle/display_effectiveness.asm
@@ -1,4 +1,4 @@
-DisplayEffectiveness: ; 2fd25 (b:7d25)
+DisplayEffectiveness:
ld a, [wDamageMultipliers]
and a, $7F
cp a, $0A
@@ -9,10 +9,10 @@ DisplayEffectiveness: ; 2fd25 (b:7d25)
.done
jp PrintText
-SuperEffectiveText: ; 2fd38 (b:7d38)
+SuperEffectiveText:
TX_FAR _SuperEffectiveText
db "@"
-NotVeryEffectiveText: ; 2fd3d (b:7d3d)
+NotVeryEffectiveText:
TX_FAR _NotVeryEffectiveText
db "@"
diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm
index f9db556d..8f9dce46 100644
--- a/engine/battle/draw_hud_pokeball_gfx.asm
+++ b/engine/battle/draw_hud_pokeball_gfx.asm
@@ -1,4 +1,4 @@
-DrawAllPokeballs: ; 3a8df (e:68df)
+DrawAllPokeballs:
call LoadPartyPokeballGfx
call SetupOwnPartyPokeballs
ld a, [wIsInBattle]
@@ -6,17 +6,17 @@ DrawAllPokeballs: ; 3a8df (e:68df)
ret z ; return if wild pokémon
jp SetupEnemyPartyPokeballs
-DrawEnemyPokeballs: ; 3a8ed (e:68ed)
+DrawEnemyPokeballs:
call LoadPartyPokeballGfx
jp SetupEnemyPartyPokeballs
-LoadPartyPokeballGfx: ; 3a8f3 (e:68f3)
+LoadPartyPokeballGfx:
ld de, PokeballTileGraphics
ld hl, vSprites + $310
lb bc, BANK(PokeballTileGraphics), (PokeballTileGraphicsEnd - PokeballTileGraphics) / $10
jp CopyVideoData
-SetupOwnPartyPokeballs: ; 3a8ff (e:68ff)
+SetupOwnPartyPokeballs:
call PlacePlayerHUDTiles
ld hl, wPartyMon1
ld de, wPartyCount
@@ -32,7 +32,7 @@ SetupOwnPartyPokeballs: ; 3a8ff (e:68ff)
ld hl, wOAMBuffer
jp WritePokeballOAMData
-SetupEnemyPartyPokeballs: ; 3a921 (e:6921)
+SetupEnemyPartyPokeballs:
call PlaceEnemyHUDTiles
ld hl, wEnemyMons
ld de, wEnemyPartyCount
@@ -48,7 +48,7 @@ SetupEnemyPartyPokeballs: ; 3a921 (e:6921)
ld hl, wOAMBuffer + PARTY_LENGTH * 4
jp WritePokeballOAMData
-SetupPokeballs: ; 3a945 (e:6945)
+SetupPokeballs:
ld a, [de]
push af
ld de, wBuffer
@@ -70,7 +70,7 @@ SetupPokeballs: ; 3a945 (e:6945)
jr nz, .monloop
ret
-PickPokeball: ; 3a961 (e:6961)
+PickPokeball:
inc hl
ld a, [hli]
and a
@@ -98,7 +98,7 @@ PickPokeball: ; 3a961 (e:6961)
add hl, bc ; next mon struct
ret
-WritePokeballOAMData: ; 3a980 (e:6980)
+WritePokeballOAMData:
ld de, wBuffer
ld c, PARTY_LENGTH
.loop
@@ -120,7 +120,7 @@ WritePokeballOAMData: ; 3a980 (e:6980)
jr nz, .loop
ret
-PlacePlayerHUDTiles: ; 3a9a3 (e:69a3)
+PlacePlayerHUDTiles:
ld hl, PlayerBattleHUDGraphicsTiles
ld de, wHUDGraphicsTiles
ld bc, $3
@@ -129,13 +129,13 @@ PlacePlayerHUDTiles: ; 3a9a3 (e:69a3)
ld de, -1
jr PlaceHUDTiles
-PlayerBattleHUDGraphicsTiles: ; 3a9b7 (e:69b7)
+PlayerBattleHUDGraphicsTiles:
; The tile numbers for specific parts of the battle display for the player's pokemon
db $73 ; unused ($73 is hardcoded into the routine that uses these bytes)
db $77 ; lower-right corner tile of the HUD
db $6F ; lower-left triangle tile of the HUD
-PlaceEnemyHUDTiles: ; 3a9ba (e:69ba)
+PlaceEnemyHUDTiles:
ld hl, EnemyBattleHUDGraphicsTiles
ld de, wHUDGraphicsTiles
ld bc, $3
@@ -144,13 +144,13 @@ PlaceEnemyHUDTiles: ; 3a9ba (e:69ba)
ld de, $1
jr PlaceHUDTiles
-EnemyBattleHUDGraphicsTiles: ; 3a9ce (e:69ce)
+EnemyBattleHUDGraphicsTiles:
; The tile numbers for specific parts of the battle display for the enemy
db $73 ; unused ($73 is hardcoded in the routine that uses these bytes)
db $74 ; lower-left corner tile of the HUD
db $78 ; lower-right triangle tile of the HUD
-PlaceHUDTiles: ; 3a9d1 (e:69d1)
+PlaceHUDTiles:
ld [hl], $73
ld bc, SCREEN_WIDTH
add hl, bc
@@ -167,7 +167,7 @@ PlaceHUDTiles: ; 3a9d1 (e:69d1)
ld [hl], a
ret
-SetupPlayerAndEnemyPokeballs: ; 3a9e9 (e:69e9)
+SetupPlayerAndEnemyPokeballs:
call LoadPartyPokeballGfx
ld hl, wPartyMons
ld de, wPartyCount
@@ -195,6 +195,6 @@ SetupPlayerAndEnemyPokeballs: ; 3a9e9 (e:69e9)
jp WritePokeballOAMData
; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
-PokeballTileGraphics:: ; 3aa28 (e:6a28)
+PokeballTileGraphics::
INCBIN "gfx/pokeball.2bpp"
PokeballTileGraphicsEnd:
diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm
index f4c99e3d..47c9fa5d 100755
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -1,4 +1,4 @@
-EndOfBattle: ; 13765 (4:7765)
+EndOfBattle:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr nz, .notLinkBattle
@@ -78,15 +78,15 @@ EndOfBattle: ; 13765 (4:7765)
ld [wDestinationWarpID], a
ret
-YouWinText: ; 1381d (4:781d)
+YouWinText:
db "YOU WIN@"
-YouLoseText: ; 13825 (4:7825)
+YouLoseText:
db "YOU LOSE@"
-DrawText: ; 1382e (4:782e)
+DrawText:
db " DRAW@"
-PickUpPayDayMoneyText: ; 13835 (4:7835)
+PickUpPayDayMoneyText:
TX_FAR _PickUpPayDayMoneyText
db "@"
diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm
index f43a7354..9946c6c6 100644
--- a/engine/battle/experience.asm
+++ b/engine/battle/experience.asm
@@ -1,4 +1,4 @@
-GainExperience: ; 5524f (15:525f)
+GainExperience:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
ret z ; return if link battle
@@ -297,7 +297,7 @@ GainExperience: ; 5524f (15:525f)
predef_jump FlagActionPredef ; set the fought current enemy flag for the mon that is currently out
; divide enemy base stats, catch rate, and base exp by the number of mons gaining exp
-DivideExpDataByNumMonsGainingExp: ; 5547b (15:547b)
+DivideExpDataByNumMonsGainingExp:
ld a, [wPartyGainExpFlags]
ld b, a
xor a
@@ -331,7 +331,7 @@ DivideExpDataByNumMonsGainingExp: ; 5547b (15:547b)
ret
; multiplies exp by 1.5
-BoostExp: ; 554ae (15:54ae)
+BoostExp:
ld a, [H_QUOTIENT + 2]
ld b, a
ld a, [H_QUOTIENT + 3]
@@ -345,11 +345,11 @@ BoostExp: ; 554ae (15:54ae)
ld [H_QUOTIENT + 2], a
ret
-Bankswitch15ToF: ; 554c1 (15:54c1)
+Bankswitch15ToF:
ld b, BANK(BattleCore)
jp Bankswitch
-GainedText: ; 554c6 (15:54c6)
+GainedText:
TX_FAR _GainedText
TX_ASM
ld a, [wBoostExpByExpAll]
@@ -363,20 +363,20 @@ GainedText: ; 554c6 (15:54c6)
ld hl, BoostedText
ret
-WithExpAllText: ; 554df (15:54df)
+WithExpAllText:
TX_FAR _WithExpAllText
TX_ASM
ld hl, ExpPointsText
ret
-BoostedText: ; 554e8 (15:54e8)
+BoostedText:
TX_FAR _BoostedText
-ExpPointsText: ; 554ec (15:54ec)
+ExpPointsText:
TX_FAR _ExpPointsText
db "@"
-GrewLevelText: ; 554f1 (15:54f1)
+GrewLevelText:
TX_FAR _GrewLevelText
db $0b
db "@"
diff --git a/engine/battle/get_trainer_name.asm b/engine/battle/get_trainer_name.asm
index cacf7ee8..36ca019e 100644
--- a/engine/battle/get_trainer_name.asm
+++ b/engine/battle/get_trainer_name.asm
@@ -1,4 +1,4 @@
-GetTrainerName_: ; f67a5 (3d:67a5)
+GetTrainerName_:
ld hl, wGrassRate
ld a, [wLinkState]
and a
@@ -19,7 +19,6 @@ GetTrainerName_: ; f67a5 (3d:67a5)
call GetName
ld hl, wcd6d
.foundName
-.rival
ld de, wTrainerName
ld bc, $d
jp CopyData
diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm
index d61e5fec..5bb3e308 100644
--- a/engine/battle/ghost_marowak_anim.asm
+++ b/engine/battle/ghost_marowak_anim.asm
@@ -1,4 +1,4 @@
-MarowakAnim: ; 7092b (1c:492b)
+MarowakAnim:
; animate the ghost being unveiled as a Marowak
ld a, $e4
ld [rOBP1], a
@@ -52,7 +52,7 @@ MarowakAnim: ; 7092b (1c:492b)
jp ClearSprites
; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
-CopyMonPicFromBGToSpriteVRAM: ; 70994 (1c:4994)
+CopyMonPicFromBGToSpriteVRAM:
ld de, vFrontPic
ld hl, vSprites
ld bc, 7 * 7
diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm
index 74ea3814..bdd5d8f4 100644
--- a/engine/battle/init_battle_variables.asm
+++ b/engine/battle/init_battle_variables.asm
@@ -1,4 +1,4 @@
-InitBattleVariables: ; f6236 (3d:6236)
+InitBattleVariables:
ld a, [hTilesetType]
ld [wSavedTilesetType], a
xor a
diff --git a/engine/battle/link_battle_versus_text.asm b/engine/battle/link_battle_versus_text.asm
index 9849cc9a..63142ba6 100644
--- a/engine/battle/link_battle_versus_text.asm
+++ b/engine/battle/link_battle_versus_text.asm
@@ -1,8 +1,8 @@
; display "[player] VS [enemy]" text box with pokeballs representing their parties next to the names
-DisplayLinkBattleVersusTextBox: ; f41cf (3d:41cf)
+DisplayLinkBattleVersusTextBox:
call LoadTextBoxTilePatterns
coord hl, 3, 4
- ld bc, $70c
+ lb bc, 7, 12
call TextBoxBorder
coord hl, 4, 5
ld de, wPlayerName
diff --git a/engine/battle/moveEffects/conversion_effect.asm b/engine/battle/moveEffects/conversion_effect.asm
index 5965f2a8..9c347876 100644
--- a/engine/battle/moveEffects/conversion_effect.asm
+++ b/engine/battle/moveEffects/conversion_effect.asm
@@ -1,4 +1,4 @@
-ConversionEffect_: ; 1396d (4:796d)
+ConversionEffect_:
ld hl, wEnemyMonType1
ld de, wBattleMonType1
ld a, [H_WHOSETURN]
@@ -24,12 +24,12 @@ ConversionEffect_: ; 1396d (4:796d)
ld hl, ConvertedTypeText
jp PrintText
-ConvertedTypeText: ; 13997 (4:7997)
+ConvertedTypeText:
TX_FAR _ConvertedTypeText
db "@"
-PrintButItFailedText: ; 1399c (4:799c)
+PrintButItFailedText:
ld hl, PrintButItFailedText_
-CallBankF: ; 1399f (4:799f)
+CallBankF:
ld b, BANK(PrintButItFailedText_)
jp Bankswitch
diff --git a/engine/battle/moveEffects/drain_hp_effect.asm b/engine/battle/moveEffects/drain_hp_effect.asm
index 2af286a8..e5f4681a 100644
--- a/engine/battle/moveEffects/drain_hp_effect.asm
+++ b/engine/battle/moveEffects/drain_hp_effect.asm
@@ -1,4 +1,4 @@
-DrainHPEffect_: ; 76e7 (1:76e7)
+DrainHPEffect_:
ld hl, wDamage
ld a, [hl]
srl a ; divide damage by 2
@@ -95,10 +95,10 @@ DrainHPEffect_: ; 76e7 (1:76e7)
.printText
jp PrintText
-SuckedHealthText: ; 7784 (1:7784)
+SuckedHealthText:
TX_FAR _SuckedHealthText
db "@"
-DreamWasEatenText: ; 7789 (1:7789)
+DreamWasEatenText:
TX_FAR _DreamWasEatenText
db "@"
diff --git a/engine/battle/moveEffects/focus_energy_effect.asm b/engine/battle/moveEffects/focus_energy_effect.asm
index e7f30794..9ba0ade0 100644
--- a/engine/battle/moveEffects/focus_energy_effect.asm
+++ b/engine/battle/moveEffects/focus_energy_effect.asm
@@ -1,4 +1,4 @@
-FocusEnergyEffect_: ; f628b (3d:628b)
+FocusEnergyEffect_:
ld hl, wPlayerBattleStatus2
ld a, [H_WHOSETURN]
and a
@@ -16,7 +16,7 @@ FocusEnergyEffect_: ; f628b (3d:628b)
call DelayFrames
jpab PrintButItFailedText_
-GettingPumpedText: ; f62b5 (3d:62b5)
+GettingPumpedText:
db $0a
TX_FAR _GettingPumpedText
db "@"
diff --git a/engine/battle/moveEffects/haze_effect.asm b/engine/battle/moveEffects/haze_effect.asm
index eec68182..bd20f231 100644
--- a/engine/battle/moveEffects/haze_effect.asm
+++ b/engine/battle/moveEffects/haze_effect.asm
@@ -1,4 +1,4 @@
-HazeEffect_: ; 139a4 (4:79a4)
+HazeEffect_:
ld a, $7
; store 7 on every stat mod
ld hl, wPlayerMonAttackMod
@@ -45,7 +45,7 @@ HazeEffect_: ; 139a4 (4:79a4)
ld hl, StatusChangesEliminatedText
jp PrintText
-CureVolatileStatuses: ; 13a01 (4:7a01)
+CureVolatileStatuses:
; only cures statuses of the Pokemon not using Haze
res Confused, [hl]
inc hl ; BATTSTATUS2
@@ -58,7 +58,7 @@ CureVolatileStatuses: ; 13a01 (4:7a01)
ld [hl], a
ret
-ResetStatMods: ; 13a0d (4:7a0d)
+ResetStatMods:
ld b, $8
.loop
ld [hli], a
@@ -66,7 +66,7 @@ ResetStatMods: ; 13a0d (4:7a0d)
jr nz, .loop
ret
-ResetStats: ; 13a14 (4:7a14)
+ResetStats:
ld b, $8
.loop
ld a, [hli]
@@ -76,6 +76,6 @@ ResetStats: ; 13a14 (4:7a14)
jr nz, .loop
ret
-StatusChangesEliminatedText: ; 13a1d (4:7a1d)
+StatusChangesEliminatedText:
TX_FAR _StatusChangesEliminatedText
db "@"
diff --git a/engine/battle/moveEffects/heal_effect.asm b/engine/battle/moveEffects/heal_effect.asm
index 418f7df7..377c14c4 100644
--- a/engine/battle/moveEffects/heal_effect.asm
+++ b/engine/battle/moveEffects/heal_effect.asm
@@ -1,4 +1,4 @@
-HealEffect_: ; f62ba (3d:62ba)
+HealEffect_:
ld a, [H_WHOSETURN]
and a
ld de, wBattleMonHP
@@ -107,14 +107,14 @@ HealEffect_: ; f62ba (3d:62ba)
ld hl, PrintButItFailedText_
jp Bankswitch3DtoF
-StartedSleepingEffect: ; f6370 (3d:6370)
+StartedSleepingEffect:
TX_FAR _StartedSleepingEffect
db "@"
-FellAsleepBecameHealthyText: ; f6375 (3d:6375)
+FellAsleepBecameHealthyText:
TX_FAR _FellAsleepBecameHealthyText
db "@"
-RegainedHealthText: ; f637a (3d:637a)
+RegainedHealthText:
TX_FAR _RegainedHealthText
db "@"
diff --git a/engine/battle/moveEffects/leech_seed_effect.asm b/engine/battle/moveEffects/leech_seed_effect.asm
index ef649ff6..0f3a2666 100644
--- a/engine/battle/moveEffects/leech_seed_effect.asm
+++ b/engine/battle/moveEffects/leech_seed_effect.asm
@@ -1,4 +1,4 @@
-LeechSeedEffect_: ; 2bdba (a:7dba)
+LeechSeedEffect_:
callab MoveHitTest
ld a, [wMoveMissed]
and a
@@ -31,10 +31,10 @@ LeechSeedEffect_: ; 2bdba (a:7dba)
ld hl, EvadedAttackText
jp PrintText
-WasSeededText: ; 2be03 (a:7e03)
+WasSeededText:
TX_FAR _WasSeededText
db "@"
-EvadedAttackText: ; 2be08 (a:7e08)
+EvadedAttackText:
TX_FAR _EvadedAttackText
db "@"
diff --git a/engine/battle/moveEffects/mist_effect.asm b/engine/battle/moveEffects/mist_effect.asm
index 022606bb..b92777de 100644
--- a/engine/battle/moveEffects/mist_effect.asm
+++ b/engine/battle/moveEffects/mist_effect.asm
@@ -1,4 +1,4 @@
-MistEffect_: ; f64ac (3d:64ac)
+MistEffect_:
ld hl, wPlayerBattleStatus2
ld a, [H_WHOSETURN]
and a
@@ -14,6 +14,6 @@ MistEffect_: ; f64ac (3d:64ac)
.mistAlreadyInUse
jpab PrintButItFailedText_
-ShroudedInMistText: ; f64d3 (3d:64d3)
+ShroudedInMistText:
TX_FAR _ShroudedInMistText
db "@"
diff --git a/engine/battle/moveEffects/one_hit_ko_effect.asm b/engine/battle/moveEffects/one_hit_ko_effect.asm
index a60d573a..827e2197 100644
--- a/engine/battle/moveEffects/one_hit_ko_effect.asm
+++ b/engine/battle/moveEffects/one_hit_ko_effect.asm
@@ -1,4 +1,4 @@
-OneHitKOEffect_: ; f64db (3d:64db)
+OneHitKOEffect_:
ld hl, wDamage
xor a
ld [hli], a
diff --git a/engine/battle/moveEffects/paralyze_effect.asm b/engine/battle/moveEffects/paralyze_effect.asm
index 5cec6b02..95979ae6 100644
--- a/engine/battle/moveEffects/paralyze_effect.asm
+++ b/engine/battle/moveEffects/paralyze_effect.asm
@@ -1,4 +1,4 @@
-ParalyzeEffect_: ; f6562 (3d:6562)
+ParalyzeEffect_:
ld hl, wEnemyMonStatus
ld de, wPlayerMoveType
ld a, [H_WHOSETURN]
diff --git a/engine/battle/moveEffects/pay_day_effect.asm b/engine/battle/moveEffects/pay_day_effect.asm
index 0236e3e4..e5daf014 100644
--- a/engine/battle/moveEffects/pay_day_effect.asm
+++ b/engine/battle/moveEffects/pay_day_effect.asm
@@ -1,4 +1,4 @@
-PayDayEffect_: ; f6511 (3d:6511)
+PayDayEffect_:
xor a
ld hl, wcd6d
ld [hli], a
@@ -40,6 +40,6 @@ PayDayEffect_: ; f6511 (3d:6511)
ld hl, CoinsScatteredText
jp PrintText
-CoinsScatteredText: ; f655d (3d:655d)
+CoinsScatteredText:
TX_FAR _CoinsScatteredText
db "@"
diff --git a/engine/battle/moveEffects/recoil_effect.asm b/engine/battle/moveEffects/recoil_effect.asm
index d65696e2..7fc90c44 100644
--- a/engine/battle/moveEffects/recoil_effect.asm
+++ b/engine/battle/moveEffects/recoil_effect.asm
@@ -1,4 +1,4 @@
-RecoilEffect_: ; 138f6 (4:78f6)
+RecoilEffect_:
ld a, [H_WHOSETURN]
and a
ld a, [wPlayerMoveNum]
@@ -65,6 +65,6 @@ RecoilEffect_: ; 138f6 (4:78f6)
predef UpdateHPBar2
ld hl, HitWithRecoilText
jp PrintText
-HitWithRecoilText: ; 13968 (4:7968)
+HitWithRecoilText:
TX_FAR _HitWithRecoilText
db "@"
diff --git a/engine/battle/moveEffects/reflect_light_screen_effect.asm b/engine/battle/moveEffects/reflect_light_screen_effect.asm
index 1c2db0a0..f2165956 100644
--- a/engine/battle/moveEffects/reflect_light_screen_effect.asm
+++ b/engine/battle/moveEffects/reflect_light_screen_effect.asm
@@ -1,4 +1,4 @@
-ReflectLightScreenEffect_: ; f645d (3d:645d)
+ReflectLightScreenEffect_:
ld hl, wPlayerBattleStatus3
ld de, wPlayerMoveEffect
ld a, [H_WHOSETURN]
@@ -32,14 +32,14 @@ ReflectLightScreenEffect_: ; f645d (3d:645d)
ld hl, PrintButItFailedText_
jp Bankswitch3DtoF
-LightScreenProtectedText: ; f649d (3d:649d)
+LightScreenProtectedText:
TX_FAR _LightScreenProtectedText
db "@"
-ReflectGainedArmorText: ; f64a2 (3d:64a2)
+ReflectGainedArmorText:
TX_FAR _ReflectGainedArmorText
db "@"
-Bankswitch3DtoF: ; f64a7 (3d:64a7)
+Bankswitch3DtoF:
ld b, BANK(BattleCore)
jp Bankswitch
diff --git a/engine/battle/moveEffects/substitute_effect.asm b/engine/battle/moveEffects/substitute_effect.asm
index a4cd0264..03314ebf 100644
--- a/engine/battle/moveEffects/substitute_effect.asm
+++ b/engine/battle/moveEffects/substitute_effect.asm
@@ -1,4 +1,4 @@
-SubstituteEffect_: ; 17c31 (5:7c31)
+SubstituteEffect_:
ld c, 50
call DelayFrames
ld hl, wBattleMonMaxHP
@@ -64,14 +64,14 @@ SubstituteEffect_: ; 17c31 (5:7c31)
.printText
jp PrintText
-SubstituteText: ; 17ca1 (5:7ca1)
+SubstituteText:
TX_FAR _SubstituteText
db "@"
-HasSubstituteText: ; 17ca6 (5:7ca6)
+HasSubstituteText:
TX_FAR _HasSubstituteText
db "@"
-TooWeakSubstituteText: ; 17cab (5:7cab)
+TooWeakSubstituteText:
TX_FAR _TooWeakSubstituteText
db "@"
diff --git a/engine/battle/moveEffects/transform_effect.asm b/engine/battle/moveEffects/transform_effect.asm
index d77f43a3..2906de11 100644
--- a/engine/battle/moveEffects/transform_effect.asm
+++ b/engine/battle/moveEffects/transform_effect.asm
@@ -1,4 +1,4 @@
-TransformEffect_: ; f637f (3d:637f)
+TransformEffect_:
ld hl, wBattleMonSpecies
ld de, wEnemyMonSpecies
ld bc, wEnemyBattleStatus3
@@ -136,6 +136,6 @@ TransformEffect_: ; f637f (3d:637f)
ld hl, PrintButItFailedText_
jp Bankswitch3DtoF
-TransformedText: ; f6458 (3d:6458)
+TransformedText:
TX_FAR _TransformedText
db "@"
diff --git a/engine/battle/print_type.asm b/engine/battle/print_type.asm
index 7b581905..f717f871 100644
--- a/engine/battle/print_type.asm
+++ b/engine/battle/print_type.asm
@@ -1,6 +1,6 @@
; [wd0b5] = pokemon ID
; hl = dest addr
-PrintMonType: ; 27d20 (9:7d20)
+PrintMonType:
call GetPredefRegisters
push hl
call GetMonHeader
@@ -19,25 +19,25 @@ PrintMonType: ; 27d20 (9:7d20)
; a = type
; hl = dest addr
-PrintType: ; 27d3e (9:7d3e)
+PrintType:
push hl
jr PrintType_
; erase "TYPE2/" if the mon only has 1 type
-EraseType2Text: ; 27d41 (9:7d41)
+EraseType2Text:
ld a, " "
ld bc, $13
add hl, bc
ld bc, $6
jp FillMemory
-PrintMoveType: ; 27d4d (9:7d4d)
+PrintMoveType:
call GetPredefRegisters
push hl
ld a, [wPlayerMoveType]
; fall through
-PrintType_: ; 27d54 (9:7d54)
+PrintType_:
add a
ld hl, TypeNames
ld e, a
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index a4843417..3f10a85d 100755
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -1,4 +1,4 @@
-ReadTrainer: ; 39bb6 (e:5bb6)
+ReadTrainer:
; don't change any moves in a link battle
ld a,[wLinkState]
diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm
index 69439199..c6c0fa80 100755
--- a/engine/battle/safari_zone.asm
+++ b/engine/battle/safari_zone.asm
@@ -1,4 +1,4 @@
-PrintSafariZoneBattleText: ; 4111 (1:4111)
+PrintSafariZoneBattleText:
ld hl, wSafariBaitFactor
ld a, [hl]
and a
@@ -27,10 +27,10 @@ PrintSafariZoneBattleText: ; 4111 (1:4111)
pop hl
jp PrintText
-SafariZoneEatingText: ; 4141 (1:4141)
+SafariZoneEatingText:
TX_FAR _SafariZoneEatingText
db "@"
-SafariZoneAngryText: ; 4146 (1:4146)
+SafariZoneAngryText:
TX_FAR _SafariZoneAngryText
db "@"
diff --git a/engine/battle/save_trainer_name.asm b/engine/battle/save_trainer_name.asm
index 227dbbcb..7e2c911c 100644
--- a/engine/battle/save_trainer_name.asm
+++ b/engine/battle/save_trainer_name.asm
@@ -1,4 +1,4 @@
-SaveTrainerName: ; 27dff (9:7dff)
+SaveTrainerName:
ld hl,TrainerNamePointers
ld a,[wTrainerClass]
dec a
@@ -18,7 +18,7 @@ SaveTrainerName: ; 27dff (9:7dff)
jr nz,.CopyCharacter
ret
-TrainerNamePointers: ; 27e19 (9:7e19)
+TrainerNamePointers:
; what is the point of these?
dw YoungsterName
dw BugCatcherName
@@ -68,45 +68,45 @@ TrainerNamePointers: ; 27e19 (9:7e19)
dw wTrainerName
dw wTrainerName
-YoungsterName: ; 27e77 (9:7e77)
+YoungsterName:
db "YOUNGSTER@"
-BugCatcherName: ; 27e81 (9:7e81)
+BugCatcherName:
db "BUG CATCHER@"
-LassName: ; 27e8d (9:7e8d)
+LassName:
db "LASS@"
-JrTrainerMName: ; 27e92 (9:7e92)
+JrTrainerMName:
db "JR.TRAINER♂@"
-JrTrainerFName: ; 27e9e (9:7e9e)
+JrTrainerFName:
db "JR.TRAINER♀@"
-PokemaniacName: ; 27eaa (9:7eaa)
+PokemaniacName:
db "POKéMANIAC@"
-SuperNerdName: ; 27eb5 (9:7eb5)
+SuperNerdName:
db "SUPER NERD@"
-BurglarName: ; 27ec0 (9:7ec0)
+BurglarName:
db "BURGLAR@"
-EngineerName: ; 27ec8 (9:7ec8)
+EngineerName:
db "ENGINEER@"
-JugglerXName: ; 27ed1 (9:7ed1)
+JugglerXName:
db "JUGGLER@"
-SwimmerName: ; 27ed9 (9:7ed9)
+SwimmerName:
db "SWIMMER@"
-BeautyName: ; 27ee1 (9:7ee1)
+BeautyName:
db "BEAUTY@"
-RockerName: ; 27ee8 (9:7ee8)
+RockerName:
db "ROCKER@"
-JugglerName: ; 27eef (9:7eef)
+JugglerName:
db "JUGGLER@"
-BlackbeltName: ; 27ef7 (9:7ef7)
+BlackbeltName:
db "BLACKBELT@"
-ProfOakName: ; 27f01 (9:7f01)
+ProfOakName:
db "PROF.OAK@"
-ChiefName: ; 27f0a (9:7f0a)
+ChiefName:
db "CHIEF@"
-ScientistName: ; 27f10 (9:7f10)
+ScientistName:
db "SCIENTIST@"
-RocketName: ; 27f1a (9:7f1a)
+RocketName:
db "ROCKET@"
-CooltrainerMName: ; 27f21 (9:7f21)
+CooltrainerMName:
db "COOLTRAINER♂@"
-CooltrainerFName: ; 27f2e (9:7f2e)
+CooltrainerFName:
db "COOLTRAINER♀@"
diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm
index c829fa13..c614d638 100644
--- a/engine/battle/scale_sprites.asm
+++ b/engine/battle/scale_sprites.asm
@@ -1,14 +1,14 @@
; scales both uncompressed sprite chunks by two in every dimension (creating 2x2 output pixels per input pixel)
; assumes that input sprite chunks are 4x4 tiles, and the rightmost and bottommost 4 pixels will be ignored
; resulting in a 7*7 tile output sprite chunk
-ScaleSpriteByTwo: ; 2fd79 (b:7d79)
+ScaleSpriteByTwo:
ld a, $0
call SwitchSRAMBankAndLatchClockData
call ScaleSpriteByTwo_
call PrepareRTCDataAndDisableSRAM
ret
-ScaleSpriteByTwo_: ; 2fd85 (b:7d85)
+ScaleSpriteByTwo_:
ld de, sSpriteBuffer1 + (4*4*8) - 5 ; last byte of input data, last 4 rows already skipped
ld hl, sSpriteBuffer0 + SPRITEBUFFERSIZE - 1 ; end of destination buffer
call ScaleLastSpriteColumnByTwo ; last tile column is special case
@@ -17,7 +17,7 @@ ScaleSpriteByTwo_: ; 2fd85 (b:7d85)
ld hl, sSpriteBuffer1 + SPRITEBUFFERSIZE - 1 ; end of destination buffer
call ScaleLastSpriteColumnByTwo ; last tile column is special case
-ScaleFirstThreeSpriteColumnsByTwo: ; 2fd9a (b:7d9a)
+ScaleFirstThreeSpriteColumnsByTwo:
ld b, $3 ; 3 tile columns
.columnLoop
ld c, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
@@ -46,7 +46,7 @@ ScaleFirstThreeSpriteColumnsByTwo: ; 2fd9a (b:7d9a)
jr nz, .columnLoop
ret
-ScaleLastSpriteColumnByTwo: ; 2fdc2 (b:7dc2)
+ScaleLastSpriteColumnByTwo:
ld a, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
ld [H_SPRITEINTERLACECOUNTER], a
ld bc, -1
@@ -68,7 +68,7 @@ ScaleLastSpriteColumnByTwo: ; 2fdc2 (b:7dc2)
; scales the given 4 bits in a (4x1 pixels) to 2 output bytes (8x2 pixels)
; hl: destination pointer
; bc: destination pointer offset (added after the two bytes have been written)
-ScalePixelsByTwo: ; 2fddc (b:7ddc)
+ScalePixelsByTwo:
push hl
and $f
ld hl, DuplicateBitsTable
@@ -85,7 +85,7 @@ ScalePixelsByTwo: ; 2fddc (b:7ddc)
ret
; repeats each input bit twice
-DuplicateBitsTable: ; 2fded (b:7ded)
+DuplicateBitsTable:
db $00, $03, $0c, $0f
db $30, $33, $3c, $3f
db $c0, $c3, $cc, $cf
diff --git a/engine/battle/scroll_draw_trainer_pic.asm b/engine/battle/scroll_draw_trainer_pic.asm
index 8e65c973..98893dcf 100644
--- a/engine/battle/scroll_draw_trainer_pic.asm
+++ b/engine/battle/scroll_draw_trainer_pic.asm
@@ -1,4 +1,4 @@
-_ScrollTrainerPicAfterBattle: ; f4259 (3d:4259)
+_ScrollTrainerPicAfterBattle:
; Load the enemy trainer's pic and scrolls it into
; the screen from the right.
xor a
@@ -32,7 +32,7 @@ _ScrollTrainerPicAfterBattle: ; f4259 (3d:4259)
jr .scrollLoop
; write one 7-tile column of the trainer pic to the tilemap
-DrawTrainerPicColumn: ; f428d (3d:428d)
+DrawTrainerPicColumn:
push hl
push de
push bc
diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm
index 6b6247c9..2f2c46a6 100644
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -1,6 +1,6 @@
; creates a set of moves that may be used and returns its address in hl
; unused slots are filled with 0, all used slots may be chosen with equal probability
-AIEnemyTrainerChooseMoves: ; 3969c (e:569c)
+AIEnemyTrainerChooseMoves:
ld a, $a
ld hl, wBuffer ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
ld [hli], a ; move 1
@@ -103,14 +103,14 @@ AIEnemyTrainerChooseMoves: ; 3969c (e:569c)
ld hl, wEnemyMonMoves ; use original move set
ret
-AIMoveChoiceModificationFunctionPointers: ; 39726 (e:5726)
+AIMoveChoiceModificationFunctionPointers:
dw AIMoveChoiceModification1
dw AIMoveChoiceModification2
dw AIMoveChoiceModification3
dw AIMoveChoiceModification4 ; unused, does nothing
; discourages moves that cause no damage but only a status ailment if player's mon already has one
-AIMoveChoiceModification1: ; 3972e (e:572e)
+AIMoveChoiceModification1:
ld a, [wBattleMonStatus]
and a
ret z ; return if no status ailment on player's mon
@@ -145,7 +145,7 @@ AIMoveChoiceModification1: ; 3972e (e:572e)
ld [hl], a
jr .nextMove
-StatusAilmentMoveEffects: ; 39765 (e:5765)
+StatusAilmentMoveEffects:
db $01 ; unused sleep effect
db SLEEP_EFFECT
db POISON_EFFECT
@@ -155,7 +155,7 @@ StatusAilmentMoveEffects: ; 39765 (e:5765)
; slightly encourage moves with specific effects.
; in particular, stat-modifying moves and other move effects
; that fall in-bewteen
-AIMoveChoiceModification2: ; 3976a (e:576a)
+AIMoveChoiceModification2:
ld a, [wAILayer2Encouragement]
cp $1
ret nz
@@ -188,7 +188,7 @@ AIMoveChoiceModification2: ; 3976a (e:576a)
; encourages moves that are effective against the player's mon (even if non-damaging).
; discourage damaging moves that are ineffective or not very effective against the player's mon,
; unless there's no damaging move that deals at least neutral damage
-AIMoveChoiceModification3: ; 3979a (e:579a)
+AIMoveChoiceModification3:
ld hl, wBuffer - 1 ; temp move selection array (-1 byte offset)
ld de, wEnemyMonMoves ; enemy moves
ld b, NUM_MOVES + 1
@@ -255,10 +255,10 @@ AIMoveChoiceModification3: ; 3979a (e:579a)
jr z, .nextMove
inc [hl] ; sligthly discourage this move
jr .nextMove
-AIMoveChoiceModification4: ; 39806 (e:5806)
+AIMoveChoiceModification4:
ret
-ReadMove: ; 39807 (e:5807)
+ReadMove:
push hl
push de
push bc
@@ -275,7 +275,7 @@ ReadMove: ; 39807 (e:5807)
; move choice modification methods that are applied for each trainer class
; 0 is sentinel value
-TrainerClassMoveChoiceModifications: ; 3981e (e:581e)
+TrainerClassMoveChoiceModifications:
db 0 ; YOUNGSTER
db 1,0 ; BUG CATCHER
db 1,0 ; LASS
@@ -336,7 +336,7 @@ INCLUDE "data/trainer_moves.asm"
INCLUDE "data/trainer_parties.asm"
-TrainerAI: ; 3a5b2 (e:65b2)
+TrainerAI:
ld a,[wIsInBattle]
dec a
jr z, .done ; if not a trainer, we're done here
@@ -377,7 +377,7 @@ TrainerAI: ; 3a5b2 (e:65b2)
and a
ret
-TrainerAIPointers: ; 3a5f2 (e:65f2)
+TrainerAIPointers:
; one entry per trainer class
; first byte, number of times (per Pokémon) it can occur
; next two bytes, pointer to AI subroutine for trainer class
@@ -429,27 +429,27 @@ TrainerAIPointers: ; 3a5f2 (e:65f2)
dbw 2,AgathaAI ; agatha
dbw 1,LanceAI ; lance
-JugglerAI: ; 3a67f (e:667f)
+JugglerAI:
cp $40
ret nc
jp AISwitchIfEnoughMons
-BlackbeltAI: ; 3a685 (e:6685)
+BlackbeltAI:
cp $20
ret nc
jp AIUseXAttack
-GiovanniAI: ; 3a68b (e:668b)
+GiovanniAI:
cp $40
ret nc
jp AIUseGuardSpec
-CooltrainerMAI: ; 3a691 (e:6691)
+CooltrainerMAI:
cp $40
ret nc
jp AIUseXAttack
-CooltrainerFAI: ; 3a697 (e:6697)
+CooltrainerFAI:
cp $40
ld a,$A
call AICheckIfHPBelowFraction
@@ -459,24 +459,24 @@ CooltrainerFAI: ; 3a697 (e:6697)
ret nc
jp AISwitchIfEnoughMons
-BrockAI: ; 3a6aa (e:66aa)
+BrockAI:
; if his active monster has a status condition, use a full heal
ld a,[wEnemyMonStatus]
and a
ret z
jp AIUseFullHeal
-MistyAI: ; 3a6b2 (e:66b2)
+MistyAI:
cp $40
ret nc
jp AIUseXDefend
-LtSurgeAI: ; 3a6b8 (e:66b8)
+LtSurgeAI:
cp $40
ret nc
jp AIUseXSpeed
-ErikaAI: ; 3a6be (e:66be)
+ErikaAI:
cp $80
ret nc
ld a,$A
@@ -484,12 +484,12 @@ ErikaAI: ; 3a6be (e:66be)
ret nc
jp AIUseSuperPotion
-KogaAI: ; 3a6ca (e:66ca)
+KogaAI:
cp $20
ret nc
jp AIUseXAttack
-BlaineAI: ; 3a6d0 (e:66d0)
+BlaineAI:
cp $40
ret nc
ld a,$A
@@ -497,12 +497,12 @@ BlaineAI: ; 3a6d0 (e:66d0)
ret nc
jp AIUseSuperPotion
-SabrinaAI: ; 3a6dc (e:66dc)
+SabrinaAI:
cp $40
ret nc
jp AIUseXDefend
-Sony2AI: ; 3a6e2 (e:66e2)
+Sony2AI:
cp $20
ret nc
ld a,5
@@ -510,7 +510,7 @@ Sony2AI: ; 3a6e2 (e:66e2)
ret nc
jp AIUsePotion
-Sony3AI: ; 3a6ee (e:66ee)
+Sony3AI:
cp $20
ret nc
ld a,5
@@ -518,7 +518,7 @@ Sony3AI: ; 3a6ee (e:66ee)
ret nc
jp AIUseFullRestore
-LoreleiAI: ; 3a6fa (e:66fa)
+LoreleiAI:
cp $80
ret nc
ld a,5
@@ -526,12 +526,12 @@ LoreleiAI: ; 3a6fa (e:66fa)
ret nc
jp AIUseSuperPotion
-BrunoAI: ; 3a706 (e:6706)
+BrunoAI:
cp $40
ret nc
jp AIUseXDefend
-AgathaAI: ; 3a70c (e:670c)
+AgathaAI:
cp $14
jp c,AISwitchIfEnoughMons
cp $80
@@ -541,7 +541,7 @@ AgathaAI: ; 3a70c (e:670c)
ret nc
jp AIUseSuperPotion
-LanceAI: ; 3a71d (e:671d)
+LanceAI:
cp $80
ret nc
ld a,5
@@ -549,23 +549,23 @@ LanceAI: ; 3a71d (e:671d)
ret nc
jp AIUseHyperPotion
-GenericAI: ; 3a729 (e:6729)
+GenericAI:
and a ; clear carry
ret
; end of individual trainer AI routines
-DecrementAICount: ; 3a72b (e:672b)
+DecrementAICount:
ld hl,wAICount
dec [hl]
scf
ret
-AIPlayRestoringSFX: ; 3a731 (e:6731)
+AIPlayRestoringSFX:
ld a,SFX_HEAL_AILMENT
jp PlaySoundWaitForCurrent
-AIUseFullRestore: ; 3a736 (e:6736)
+AIUseFullRestore:
call AICureStatus
ld a,FULL_RESTORE
ld [wAIItem],a
@@ -589,25 +589,25 @@ AIUseFullRestore: ; 3a736 (e:6736)
ld [wEnemyMonHP],a
jr AIPrintItemUseAndUpdateHPBar
-AIUsePotion: ; 3a760 (e:6760)
+AIUsePotion:
; enemy trainer heals his monster with a potion
ld a,POTION
ld b,20
jr AIRecoverHP
-AIUseSuperPotion: ; 3a766 (e:6766)
+AIUseSuperPotion:
; enemy trainer heals his monster with a super potion
ld a,SUPER_POTION
ld b,50
jr AIRecoverHP
-AIUseHyperPotion: ; 3a76c (e:676c)
+AIUseHyperPotion:
; enemy trainer heals his monster with a hyper potion
ld a,HYPER_POTION
ld b,200
; fallthrough
-AIRecoverHP: ; 3a770 (e:6770)
+AIRecoverHP:
; heal b HP and print "trainer used $(a) on pokemon!"
ld [wAIItem],a
ld hl,wEnemyMonHP + 1
@@ -648,7 +648,7 @@ AIRecoverHP: ; 3a770 (e:6770)
ld [wHPBarNewHP+1],a
; fallthrough
-AIPrintItemUseAndUpdateHPBar: ; 3a7ae (e:67ae)
+AIPrintItemUseAndUpdateHPBar:
call AIPrintItemUse_
coord hl, 2, 2
xor a
@@ -656,7 +656,7 @@ AIPrintItemUseAndUpdateHPBar: ; 3a7ae (e:67ae)
predef UpdateHPBar2
jp DecrementAICount
-AISwitchIfEnoughMons: ; 3a7c0 (e:67c0)
+AISwitchIfEnoughMons:
; enemy trainer switches if there are 3 or more unfainted mons in party
ld a,[wEnemyPartyCount]
ld c,a
@@ -686,7 +686,7 @@ AISwitchIfEnoughMons: ; 3a7c0 (e:67c0)
and a
ret
-SwitchEnemyMon: ; 3a7e1 (e:67e1)
+SwitchEnemyMon:
; prepare to withdraw the active monster: copy hp, number, and status to roster
@@ -717,17 +717,17 @@ SwitchEnemyMon: ; 3a7e1 (e:67e1)
scf
ret
-AIBattleWithdrawText: ; 3a817 (e:6817)
+AIBattleWithdrawText:
TX_FAR _AIBattleWithdrawText
db "@"
-AIUseFullHeal: ; 3a81c (e:681c)
+AIUseFullHeal:
call AIPlayRestoringSFX
call AICureStatus
ld a,FULL_HEAL
jp AIPrintItemUse
-AICureStatus: ; 3a827 (e:6827)
+AICureStatus:
; cures the status of enemy's active pokemon
ld a,[wEnemyMonPartyPos]
ld hl,wEnemyMon1Status
@@ -740,30 +740,28 @@ AICureStatus: ; 3a827 (e:6827)
res 0,[hl]
ret
-AIUseXAccuracy: ; 3a83e (e:683e)
-; unused
+AIUseXAccuracy: ; unused
call AIPlayRestoringSFX
ld hl,wEnemyBattleStatus2
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
-AIUseGuardSpec: ; 3a84b (e:684b)
+AIUseGuardSpec:
call AIPlayRestoringSFX
ld hl,wEnemyBattleStatus2
set 1,[hl]
ld a,GUARD_SPEC
jp AIPrintItemUse
-AIUseDireHit: ; 3a858 (e:6858)
-; unused
+AIUseDireHit: ; unused
call AIPlayRestoringSFX
ld hl,wEnemyBattleStatus2
set 2,[hl]
ld a,DIRE_HIT
jp AIPrintItemUse
-AICheckIfHPBelowFraction: ; 3a865 (e:6865)
+AICheckIfHPBelowFraction:
; return carry if enemy trainer's current HP is below 1 / a of the maximum
ld [H_DIVISOR],a
ld hl,wEnemyMonMaxHP
@@ -789,27 +787,27 @@ AICheckIfHPBelowFraction: ; 3a865 (e:6865)
sub c
ret
-AIUseXAttack: ; 3a888 (e:6888)
+AIUseXAttack:
ld b,$A
ld a,X_ATTACK
jr AIIncreaseStat
-AIUseXDefend: ; 3a88e (e:688e)
+AIUseXDefend:
ld b,$B
ld a,X_DEFEND
jr AIIncreaseStat
-AIUseXSpeed: ; 3a894 (e:6894)
+AIUseXSpeed:
ld b,$C
ld a,X_SPEED
jr AIIncreaseStat
-AIUseXSpecial: ; 3a89a (e:689a)
+AIUseXSpecial:
ld b,$D
ld a,X_SPECIAL
; fallthrough
-AIIncreaseStat: ; 3a89e (e:689e)
+AIIncreaseStat:
ld [wAIItem],a
push bc
call AIPrintItemUse_
@@ -831,12 +829,12 @@ AIIncreaseStat: ; 3a89e (e:689e)
ld [hl],a
jp DecrementAICount
-AIPrintItemUse: ; 3a8c2 (e:68c2)
+AIPrintItemUse:
ld [wAIItem],a
call AIPrintItemUse_
jp DecrementAICount
-AIPrintItemUse_: ; 3a8cb (e:68cb)
+AIPrintItemUse_:
; print "x used [wAIItem] on z!"
ld a,[wAIItem]
ld [wd11e],a
@@ -844,6 +842,6 @@ AIPrintItemUse_: ; 3a8cb (e:68cb)
ld hl, AIBattleUseItemText
jp PrintText
-AIBattleUseItemText: ; 3a8da (e:68da)
+AIBattleUseItemText:
TX_FAR _AIBattleUseItemText
db "@"
diff --git a/engine/battle/trainer_pic_money_pointers.asm b/engine/battle/trainer_pic_money_pointers.asm
index 69599dc0..37678e74 100755
--- a/engine/battle/trainer_pic_money_pointers.asm
+++ b/engine/battle/trainer_pic_money_pointers.asm
@@ -1,4 +1,4 @@
-TrainerPicAndMoneyPointers: ; 39893 (e:5893)
+TrainerPicAndMoneyPointers:
; trainer pic pointers and base money.
; money received after battle = base money × level of highest-level enemy mon
dw YoungsterPic
diff --git a/engine/battle/unused_stats_functions.asm b/engine/battle/unused_stats_functions.asm
index 5b2e5e0e..55f78fd3 100644
--- a/engine/battle/unused_stats_functions.asm
+++ b/engine/battle/unused_stats_functions.asm
@@ -1,5 +1,5 @@
; does nothing since no stats are ever selected (barring glitches)
-DoubleSelectedStats: ; f4206 (3d:4206)
+DoubleSelectedStats:
ld a, [H_WHOSETURN]
and a
ld a, [wPlayerStatsToDouble]
@@ -29,7 +29,7 @@ DoubleSelectedStats: ; f4206 (3d:4206)
ret
; does nothing since no stats are ever selected (barring glitches)
-HalveSelectedStats: ; f422d (3d:422d)
+HalveSelectedStats:
ld a, [H_WHOSETURN]
and a
ld a, [wPlayerStatsToHalve]
diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm
index f2f2f457..0285346e 100644
--- a/engine/battle/wild_encounters.asm
+++ b/engine/battle/wild_encounters.asm
@@ -1,6 +1,6 @@
; try to initiate a wild pokemon encounter
; returns success in Z
-TryDoWildEncounter: ; 1383a (4:783a)
+TryDoWildEncounter:
ld a, [wNPCMovementScriptPointerTableNum]
and a
ret nz
@@ -100,7 +100,7 @@ TryDoWildEncounter: ; 1383a (4:783a)
xor a
ret
-WildMonEncounterSlotChances: ; 138e2 (4:78e2)
+WildMonEncounterSlotChances:
; There are 10 slots for wild pokemon, and this is the table that defines how common each of
; those 10 slots is. A random number is generated and then the first byte of each pair in this
; table is compared against that random number. If the random number is less than or equal
diff --git a/engine/bcd.asm b/engine/bcd.asm
index a5322702..204c2e40 100644
--- a/engine/bcd.asm
+++ b/engine/bcd.asm
@@ -1,22 +1,22 @@
; divide hMoney by hDivideBCDDivisor
; return output in hDivideBCDQuotient (same as hDivideBCDDivisor)
; used only to halve player money upon losing a fight
-DivideBCDPredef:: ; f5a4 (3:75a4)
+DivideBCDPredef::
DivideBCDPredef2::
DivideBCDPredef3:: ; only used function
DivideBCDPredef4::
call GetPredefRegisters
-DivideBCD:: ; f5a8 (3:75a8)
+DivideBCD::
xor a
ld [hDivideBCDBuffer], a
ld [hDivideBCDBuffer + 1], a
ld [hDivideBCDBuffer + 2], a
ld d, $1
-.asm_f5b0
+.loop1
ld a, [hDivideBCDDivisor]
and $f0
- jr nz, .asm_f5e1
+ jr nz, .go
inc d
ld a, [hDivideBCDDivisor]
swap a
@@ -40,8 +40,9 @@ DivideBCD:: ; f5a8 (3:75a8)
ld a, [hDivideBCDDivisor + 2]
and $f0
ld [hDivideBCDDivisor + 2], a
- jr .asm_f5b0
-.asm_f5e1
+ jr .loop1
+
+.go
push de
push de
call DivideBCD_f686
@@ -51,7 +52,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -60,7 +61,7 @@ DivideBCD:: ; f5a8 (3:75a8)
or b
ld [hDivideBCDBuffer], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -70,7 +71,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer + 1], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -79,7 +80,7 @@ DivideBCD:: ; f5a8 (3:75a8)
or b
ld [hDivideBCDBuffer + 1], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -89,7 +90,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer + 2], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -97,7 +98,7 @@ DivideBCD:: ; f5a8 (3:75a8)
ld a, [hDivideBCDBuffer + 2]
or b
ld [hDivideBCDBuffer + 2], a
-.asm_f642
+.skip
ld a, [hDivideBCDBuffer]
ld [hDivideBCDQuotient], a
ld a, [hDivideBCDBuffer + 1]
@@ -109,15 +110,15 @@ DivideBCD:: ; f5a8 (3:75a8)
sub d
and a
ret z
-.asm_f654
+.loop2
push af
call DivideBCD_f65d
pop af
dec a
- jr nz, .asm_f654
+ jr nz, .loop2
ret
-DivideBCD_f65d: ; f65d (3:765d)
+DivideBCD_f65d:
ld a, [hDivideBCDDivisor + 2]
swap a
and $f
@@ -142,7 +143,7 @@ DivideBCD_f65d: ; f65d (3:765d)
ld [hDivideBCDDivisor], a
ret
-DivideBCD_f686: ; f686 (3:7686)
+DivideBCD_f686:
ld bc, $3
.asm_f689
ld de, hMoney
@@ -160,10 +161,10 @@ DivideBCD_f686: ; f686 (3:7686)
jr .asm_f689
-AddBCDPredef:: ; f6a3 (3:76a3)
+AddBCDPredef::
call GetPredefRegisters
-AddBCD:: ; f6a6 (3:76a6)
+AddBCD::
and a
ld b, c
.add
@@ -187,10 +188,10 @@ AddBCD:: ; f6a6 (3:76a6)
ret
-SubBCDPredef:: ; f6bc (3:76bc)
+SubBCDPredef::
call GetPredefRegisters
-SubBCD:: ; f6bf (3:76bf)
+SubBCD::
and a
ld b, c
.sub
@@ -212,4 +213,4 @@ SubBCD:: ; f6bf (3:76bf)
jr nz, .fill
scf
.done
- ret \ No newline at end of file
+ ret
diff --git a/engine/bg_map_attributes.asm b/engine/bg_map_attributes.asm
index b2c4c3f1..90df9e27 100644
--- a/engine/bg_map_attributes.asm
+++ b/engine/bg_map_attributes.asm
@@ -1,6 +1,6 @@
INCLUDE "data/bg_map_attributes.asm"
-LoadBGMapAttributes:: ; bf450 (2f:7450)
+LoadBGMapAttributes::
ld hl, BGMapAttributesPointers
ld a, c ; c = which packet
push af ; save for later (to determine if we're handling the trainer card or party menu)
@@ -105,7 +105,7 @@ LoadBGMapAttributes:: ; bf450 (2f:7450)
ei
ret
-BGMapAttributesPointers: ; bf4de (2f:74de)
+BGMapAttributesPointers:
dw BGMapAttributes_Unknown1
dw BGMapAttributes_Unknown2
dw BGMapAttributes_GameFreakIntro
@@ -120,7 +120,7 @@ BGMapAttributesPointers: ; bf4de (2f:74de)
dw BGMapAttributes_WholeScreen
dw BGMapAttributes_Unknown13
-HandleBadgeFaceAttributes: ; bf4f8 (2f:74f8)
+HandleBadgeFaceAttributes:
; zero out the attributes if the player doesn't have the respective badge
; BOULDERBADGE
ld hl, vBGMap1 + $183
@@ -172,7 +172,7 @@ HandleBadgeFaceAttributes: ; bf4f8 (2f:74f8)
call z, ZeroOutCurrentBadgeAttributes
ret
-ZeroOutCurrentBadgeAttributes: ; bf551 (2f:7551)
+ZeroOutCurrentBadgeAttributes:
push hl
xor a
ld [hli], a
@@ -184,7 +184,7 @@ ZeroOutCurrentBadgeAttributes: ; bf551 (2f:7551)
pop hl
ret
-HandlePartyHPBarAttributes: ; bf55d (2f:755d)
+HandlePartyHPBarAttributes:
; hp bars require 3 (green, orange, red) colours, when there are only 2 "free" colours per palette
; therefore, we must transfer individual bg attributes where the locations of the hp bars are in vram
ld hl, vBGMap1 + $25 ; location of start of the HP bar in vram
@@ -216,4 +216,4 @@ HandlePartyHPBarAttributes: ; bf55d (2f:755d)
pop bc
dec c
jr nz, .loop
- ret \ No newline at end of file
+ ret
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index 3c75b340..88f7b2f7 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -1,7 +1,7 @@
; performs the appropriate action when the player uses the gameboy on the table in the Colosseum or Trade Center
; In the Colosseum, it starts a battle. In the Trade Center, it displays the trade selection screen.
; Before doing either action, it swaps random numbers, trainer names and party data with the other gameboy.
-CableClub_DoBattleOrTrade: ; 53a5 (1:53a5)
+CableClub_DoBattleOrTrade:
ld c, 80
call DelayFrames
call ClearScreen
@@ -22,7 +22,7 @@ CableClub_DoBattleOrTrade: ; 53a5 (1:53a5)
; fall through
; This is called after completing a trade.
-CableClub_DoBattleOrTradeAgain: ; 53d2 (1:53d2)
+CableClub_DoBattleOrTradeAgain:
ld hl, wSerialPlayerDataBlock
ld a, SERIAL_PREAMBLE_BYTE
ld b, 6
@@ -253,7 +253,7 @@ CableClub_DoBattleOrTradeAgain: ; 53d2 (1:53d2)
ld hl, wEnemyMons + (SERIAL_PREAMBLE_BYTE - 1)
dec c
jr nz, .unpatchEnemyMonsLoop
- ld a, wEnemyMonOT & $ff
+ ld a, wEnemyMonOT % $100
ld [wUnusedCF8D], a
ld a, wEnemyMonOT / $100
ld [wUnusedCF8D + 1], a
@@ -268,7 +268,7 @@ CableClub_DoBattleOrTradeAgain: ; 53d2 (1:53d2)
cp LINK_STATE_START_BATTLE
ld a, LINK_STATE_TRADING
ld [wLinkState], a
- jr nz, .asm_55a0
+ jr nz, .trading
ld a, LINK_STATE_BATTLING
ld [wLinkState], a
ld a, OPP_SONY1
@@ -288,16 +288,16 @@ CableClub_DoBattleOrTradeAgain: ; 53d2 (1:53d2)
ld [wLetterPrintingDelayFlags], a
predef HealParty
jp ReturnToCableClubRoom
-.asm_55a0
+.trading
ld c, BANK(Music_GameCorner)
ld a, MUSIC_GAME_CORNER
call PlayMusic
jr CallCurrentTradeCenterFunction
-PleaseWaitString: ; 55a9 (1:55a9)
+PleaseWaitString:
db "PLEASE WAIT!@"
-CallCurrentTradeCenterFunction: ; 55b6 (1:55b6)
+CallCurrentTradeCenterFunction:
ld hl, TradeCenterPointerTable
ld b, 0
ld a, [wTradeCenterPointerTableIndex]
@@ -311,7 +311,7 @@ CallCurrentTradeCenterFunction: ; 55b6 (1:55b6)
ld l, a
jp [hl]
-TradeCenter_SelectMon: ; 55ca (1:55ca)
+TradeCenter_SelectMon:
call ClearScreen
call Delay3
ld b, $9
@@ -446,7 +446,6 @@ TradeCenter_SelectMon: ; 55ca (1:55ca)
ld a, [wEnemyPartyCount]
dec a
cp b
- ; continue
jr nc, .notPastLastEnemyMon
; when switching to the enemy mon menu, if the menu selection would be past the last enemy mon, select the last enemy mon
ld [wCurrentMenuItem], a
@@ -584,7 +583,7 @@ TradeCenter_SelectMon: ; 55ca (1:55ca)
jr nz, .cancelMenuItem_Loop
; fall through
-ReturnToCableClubRoom: ; 581e (1:581e)
+ReturnToCableClubRoom:
call GBPalWhiteOutWithDelay3
ld hl, wFontLoaded
ld a, [hl]
@@ -603,7 +602,7 @@ ReturnToCableClubRoom: ; 581e (1:581e)
call GBFadeInFromWhite
ret
-TradeCenter_DrawCancelBox: ; 5843 (1:5843)
+TradeCenter_DrawCancelBox:
coord hl, 11, 15
ld a, $7e
ld bc, 2 * SCREEN_WIDTH + 9
@@ -615,10 +614,10 @@ TradeCenter_DrawCancelBox: ; 5843 (1:5843)
ld de, CancelTextString
jp PlaceString
-CancelTextString: ; 5860 (1:5860)
+CancelTextString:
db "CANCEL@"
-TradeCenter_PlaceSelectedEnemyMonMenuCursor: ; 5867 (1:5867)
+TradeCenter_PlaceSelectedEnemyMonMenuCursor:
ld a, [wSerialSyncAndExchangeNybbleReceiveData]
coord hl, 1, 9
ld bc, SCREEN_WIDTH
@@ -626,7 +625,7 @@ TradeCenter_PlaceSelectedEnemyMonMenuCursor: ; 5867 (1:5867)
ld [hl], $ec ; cursor
ret
-TradeCenter_DisplayStats: ; 5876 (1:5876)
+TradeCenter_DisplayStats:
ld a, [wCurrentMenuItem]
ld [wWhichPokemon], a
predef StatusScreen
@@ -639,7 +638,7 @@ TradeCenter_DisplayStats: ; 5876 (1:5876)
call TradeCenter_DrawPartyLists
jp TradeCenter_DrawCancelBox
-TradeCenter_DrawPartyLists: ; 589a (1:589a)
+TradeCenter_DrawPartyLists:
coord hl, 0, 0
lb bc, 6, 18
call CableClub_TextBoxBorder
@@ -659,7 +658,7 @@ TradeCenter_DrawPartyLists: ; 589a (1:589a)
ld de, wEnemyPartyMons
; fall through
-TradeCenter_PrintPartyListNames: ; 58cd (1:58cd)
+TradeCenter_PrintPartyListNames:
ld c, $0
.loop
ld a, [de]
@@ -684,7 +683,7 @@ TradeCenter_PrintPartyListNames: ; 58cd (1:58cd)
inc c
jr .loop
-TradeCenter_Trade: ; 58ef (1:58ef)
+TradeCenter_Trade:
ld c, 100
call DelayFrames
xor a
@@ -851,7 +850,6 @@ TradeCenter_Trade: ; 58ef (1:58ef)
.usingExternalClock
predef ExternalClockTradeAnim
.tradeCompleted
-; continue
callab TryEvolvingMon
call ClearScreen
call LoadTrainerInfoTextBoxTiles
@@ -880,22 +878,22 @@ TradeCenter_Trade: ; 58ef (1:58ef)
ld [wTradeCenterPointerTableIndex], a
jp CallCurrentTradeCenterFunction
-WillBeTradedText: ; 5ad8 (1:5ad8)
+WillBeTradedText:
TX_FAR _WillBeTradedText
db "@"
-TradeCompleted: ; 5add (1:5add)
+TradeCompleted:
db "Trade completed!@"
-TradeCanceled: ; 5aee (1:5aee)
+TradeCanceled:
db "Too bad! The trade"
next "was canceled!@"
-TradeCenterPointerTable: ; 5b0f (1:5b0f)
+TradeCenterPointerTable:
dw TradeCenter_SelectMon
dw TradeCenter_Trade
-CableClub_Run: ; 5b13 (1:5b13)
+CableClub_Run:
ld a, [wLinkState]
cp LINK_STATE_START_TRADE
jr z, .doBattleOrTrade
@@ -909,9 +907,9 @@ CableClub_Run: ; 5b13 (1:5b13)
call CableClub_DoBattleOrTrade
ld hl, Club_GFX
ld a, h
- ld [wTilesetGFXPtr + 1], a
+ ld [wTilesetGfxPtr + 1], a
ld a, l
- ld [wTilesetGFXPtr], a
+ ld [wTilesetGfxPtr], a
ld a, Bank(Club_GFX)
ld [wTilesetBank], a
ld hl, Club_Coll
@@ -932,15 +930,15 @@ CableClub_Run: ; 5b13 (1:5b13)
ld [wNewSoundID], a
jp PlaySound
-EmptyFunc3: ; 5b63 (1:5b63)
+EmptyFunc3:
ret
-Diploma_TextBoxBorder: ; 5b64 (1:5b64)
+Diploma_TextBoxBorder:
call GetPredefRegisters
; b = height
; c = width
-CableClub_TextBoxBorder: ; 5b67 (1:5b67)
+CableClub_TextBoxBorder:
push hl
ld a, $78 ; border upper left corner tile
ld [hli], a
@@ -971,16 +969,16 @@ CableClub_TextBoxBorder: ; 5b67 (1:5b67)
ret
; c = width
-CableClub_DrawHorizontalLine: ; 5b94 (1:5b94)
+CableClub_DrawHorizontalLine:
ld d, c
-.drawHorizontalLineLoop
+.loop
ld [hli], a
dec d
- jr nz, .drawHorizontalLineLoop
+ jr nz, .loop
ret
-LoadTrainerInfoTextBoxTiles: ; 5b9a (1:5b9a)
+LoadTrainerInfoTextBoxTiles:
ld de, TrainerInfoTextBoxTileGraphics
ld hl, vChars2 + $760
lb bc, BANK(TrainerInfoTextBoxTileGraphics), (TrainerInfoTextBoxTileGraphicsEnd - TrainerInfoTextBoxTileGraphics) / $10
- jp CopyVideoData \ No newline at end of file
+ jp CopyVideoData
diff --git a/engine/clear_save.asm b/engine/clear_save.asm
index 37d098e6..f2acbf32 100755
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -1,4 +1,4 @@
-DoClearSaveDialogue: ; DoClearSaveDialogue: ; 1c21e (7:421e)
+DoClearSaveDialogue:
call ClearScreen
call RunDefaultPaletteCommand
call LoadFontTilePatterns
@@ -22,6 +22,6 @@ DoClearSaveDialogue: ; DoClearSaveDialogue: ; 1c21e (7:421e)
callba ClearSAV
jp Init
-ClearSaveDataText: ; 1c25f (7:425f)
+ClearSaveDataText:
TX_FAR _ClearSaveDataText
db "@"
diff --git a/engine/debug1.asm b/engine/debug1.asm
index ada4b513..a39e8cac 100644
--- a/engine/debug1.asm
+++ b/engine/debug1.asm
@@ -1,5 +1,5 @@
; not IshiharaTeam
-SetDebugTeam: ; 623e (1:623e)
+SetDebugTeam:
ld de, DebugTeam
.loop
ld a, [de]
@@ -13,12 +13,12 @@ SetDebugTeam: ; 623e (1:623e)
call AddPartyMon
jr .loop
-DebugTeam: ; 6253 (1:6253)
+DebugTeam:
db SNORLAX,80
db PERSIAN,80
db JIGGLYPUFF,15
db PIKACHU,5
db $FF
-EmptyFunc: ; 64ea (1:64ea)
- ret \ No newline at end of file
+EmptyFunc:
+ ret
diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm
index f85cc288..3b633a1b 100755
--- a/engine/diploma_3a.asm
+++ b/engine/diploma_3a.asm
@@ -1,4 +1,4 @@
-_DisplayDiploma: ; e9a08 (3a:5a08)
+_DisplayDiploma:
call GBPalWhiteOutWithDelay3
call ClearScreen
ld de, SurfingPikachu3Graphics
diff --git a/engine/display_pokedex.asm b/engine/display_pokedex.asm
index a252f684..96a2dd6c 100644
--- a/engine/display_pokedex.asm
+++ b/engine/display_pokedex.asm
@@ -1,4 +1,4 @@
-_DisplayPokedex: ; 7abf (1:7abf)
+_DisplayPokedex:
ld hl, wd730
set 6, [hl]
predef ShowPokedexData
@@ -16,4 +16,4 @@ _DisplayPokedex: ; 7abf (1:7abf)
predef FlagActionPredef
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/draw_badges.asm b/engine/draw_badges.asm
index 3134ae0a..412197b2 100644
--- a/engine/draw_badges.asm
+++ b/engine/draw_badges.asm
@@ -1,4 +1,4 @@
-DrawBadges: ; e880 (3:6880)
+DrawBadges:
; Draw 4x2 gym leader faces, with the faces replaced by
; badges if they are owned. Used in the player status screen.
@@ -116,5 +116,5 @@ DrawBadges: ; e880 (3:6880)
.FaceBadgeTiles
db $20, $28, $30, $38, $40, $48, $50, $58
-GymLeaderFaceAndBadgeTileGraphics: ; e91b (3:691b)
- INCBIN "gfx/badges.2bpp" \ No newline at end of file
+GymLeaderFaceAndBadgeTileGraphics:
+ INCBIN "gfx/badges.2bpp"
diff --git a/engine/evolution.asm b/engine/evolution.asm
index 780d78e7..9cefff27 100755
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -1,4 +1,4 @@
-EvolveMon: ; 5da70 (17:5a70)
+EvolveMon:
push hl
push de
push bc
@@ -89,16 +89,16 @@ EvolveMon: ; 5da70 (17:5a70)
ld a, [wEvoOldSpecies]
jr .done
-EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4)
+EvolutionSetWholeScreenPalette:
ld b, SET_PAL_POKEMON_WHOLE_SCREEN
jp RunPaletteCommand
-Evolution_LoadPic: ; 7beb9 (1e:7eb9)
+Evolution_LoadPic:
call GetMonHeader
coord hl, 7, 2
jp LoadFlippedFrontSpriteByMonIndex
-Evolution_BackAndForthAnim: ; 7bec2 (1e:7ec2)
+Evolution_BackAndForthAnim:
; show the mon change back and forth between the new and old species b times
ld a, $31
ld [wEvoMonTileOffset], a
@@ -110,7 +110,7 @@ Evolution_BackAndForthAnim: ; 7bec2 (1e:7ec2)
jr nz, Evolution_BackAndForthAnim
ret
-Evolution_ChangeMonPic: ; 7bed6 (1e:7ed6)
+Evolution_ChangeMonPic:
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a
@@ -135,7 +135,7 @@ Evolution_ChangeMonPic: ; 7bed6 (1e:7ed6)
pop bc
ret
-Evolution_CheckForCancel: ; 7befa (1e:7efa)
+Evolution_CheckForCancel:
call DelayFrame
push bc
call JoypadLowSensitivity
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index 289c76ed..8ec2c4c7 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -1,5 +1,5 @@
; try to evolve the mon in [wWhichPokemon]
-TryEvolvingMon: ; 3adb8 (e:6db8)
+TryEvolvingMon:
EvolveTradeMon:
ld hl, wCanEvolveFlags
xor a
@@ -11,7 +11,7 @@ EvolveTradeMon:
; this is only called after battle
; it is supposed to do level up evolutions, though there is a bug that allows item evolutions to occur
-EvolutionAfterBattle: ; 3adc6 (e:6dc6)
+EvolutionAfterBattle:
ld a, [hTilesetType]
push af
xor a
@@ -24,8 +24,7 @@ EvolutionAfterBattle: ; 3adc6 (e:6dc6)
ld hl, wPartyCount
push hl
-Evolution_PartyMonLoop: ; 3add8 (e:6dd8)
-; loop over party mons
+Evolution_PartyMonLoop: ; loop over party mons
ld hl, wWhichPokemon
inc [hl]
pop hl
@@ -263,7 +262,7 @@ Evolution_PartyMonLoop: ; 3add8 (e:6dd8)
call nz, PlayDefaultMusic
ret
-RenameEvolvedMon: ; 3afa8 (e:6fa8)
+RenameEvolvedMon:
; Renames the mon to its new, evolved form's standard name unless it had a
; nickname, in which case the nickname is kept.
ld a, [wd0b5]
@@ -293,7 +292,7 @@ RenameEvolvedMon: ; 3afa8 (e:6fa8)
pop de
jp CopyData
-CancelledEvolution: ; 3afdf (e:6fdf)
+CancelledEvolution:
ld hl, StoppedEvolvingText
call PrintText
call ClearScreen
@@ -301,29 +300,29 @@ CancelledEvolution: ; 3afdf (e:6fdf)
call Evolution_ReloadTilesetTilePatterns
jp Evolution_PartyMonLoop
-EvolvedText: ; 3afef (e:6fef)
+EvolvedText:
TX_FAR _EvolvedText
db "@"
-IntoText: ; 3aff4 (e:6ff4)
+IntoText:
TX_FAR _IntoText
db "@"
-StoppedEvolvingText: ; 3aff9 (e:6ff9)
+StoppedEvolvingText:
TX_FAR _StoppedEvolvingText
db "@"
-IsEvolvingText: ; 3affe (e:6ffes)
+IsEvolvingText:
TX_FAR _IsEvolvingText
db "@"
-Evolution_ReloadTilesetTilePatterns: ; 3b003 (e:7003)
+Evolution_ReloadTilesetTilePatterns:
ld a, [wLinkState]
cp LINK_STATE_TRADING
ret z
jp ReloadTilesetTilePatterns
-LearnMoveFromLevelUp: ; 3b00c (e:700c)
+LearnMoveFromLevelUp:
ld a, [wd11e] ; species
ld [wcf91], a
call GetMonLearnset
@@ -382,7 +381,7 @@ LearnMoveFromLevelUp: ; 3b00c (e:700c)
ld [wd11e], a
ret
-Func_3b079: ; 3b079 (e:7079)
+Func_3b079:
ld a, [wcf91]
push af
call Func_3b0a2
@@ -410,7 +409,7 @@ Func_3b079: ; 3b079 (e:7079)
scf
ret
-Func_3b0a2: ; 3b0a2 (e:70a2)
+Func_3b0a2:
; XXX what is wcf91 entering this function?
ld a, [wd11e]
ld [wMoveNum], a
@@ -453,7 +452,7 @@ Func_3b0a2: ; 3b0a2 (e:70a2)
scf
ret
-Pointer_3b0ee: ; 3b0ee (e:70ee)
+Pointer_3b0ee:
db NIDOKING
db IVYSAUR
db EXEGGUTOR
@@ -488,7 +487,7 @@ Pointer_3b0ee: ; 3b0ee (e:70ee)
db VICTREEBEL
db $ff
-Func_3b10f: ; 3b10f (e:710f)
+Func_3b10f:
ld c, $0
.asm_3b111
ld hl, EvosMovesPointerTable
@@ -530,7 +529,7 @@ Func_3b10f: ; 3b10f (e:710f)
; writes the moves a mon has at level [wCurEnemyLVL] to [de]
; move slots are being filled up sequentially and shifted if all slots are full
-WriteMonMoves: ; 3113f (e:713f)
+WriteMonMoves:
call GetPredefRegisters
push hl
push de
@@ -636,7 +635,7 @@ WriteMonMoves: ; 3113f (e:713f)
ret
; shifts all move data one up (freeing 4th move slot)
-WriteMonMoves_ShiftMoveData: ; 3b1c3 (e:71c3)
+WriteMonMoves_ShiftMoveData:
ld c, NUM_MOVES - 1
.loop
inc de
@@ -646,10 +645,10 @@ WriteMonMoves_ShiftMoveData: ; 3b1c3 (e:71c3)
jr nz, .loop
ret
-Evolution_FlagAction: ; 3b1cc (e:71cc)
+Evolution_FlagAction:
predef_jump FlagActionPredef
-GetMonLearnset: ; 3b1d1 (e:71d1)
+GetMonLearnset:
ld hl, EvosMovesPointerTable
ld b, 0
ld a, [wcf91]
diff --git a/engine/experience.asm b/engine/experience.asm
index 42917bf7..2efc13de 100755
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -1,5 +1,5 @@
; calculates the level a mon should be based on its current exp
-CalcLevelFromExperience: ; 58d99 (16:4d99)
+CalcLevelFromExperience:
ld a, [wLoadedMonSpecies]
ld [wd0b5], a
call GetMonHeader
@@ -28,7 +28,7 @@ CalcLevelFromExperience: ; 58d99 (16:4d99)
ret
; calculates the amount of experience needed for level d
-CalcExperience: ; 58dc0 (16:4dc0)
+CalcExperience:
ld a, [wMonHGrowthRate]
add a
add a
@@ -137,7 +137,7 @@ CalcExperience: ; 58dc0 (16:4dc0)
ret
; calculates d*d
-CalcDSquared: ; 58e66 (16:4e66)
+CalcDSquared:
xor a
ld [H_MULTIPLICAND], a
ld [H_MULTIPLICAND + 1], a
@@ -151,7 +151,7 @@ CalcDSquared: ; 58e66 (16:4e66)
; resulting in
; (a*n^3)/b + sign*c*n^2 + d*n - e
; where sign = -1 <=> S=1
-GrowthRateTable: ; 58e73 (16:4e73)
+GrowthRateTable:
db $11,$00,$00,$00 ; medium fast n^3
db $34,$0A,$00,$1E ; (unused?) 3/4 n^3 + 10 n^2 - 30
db $34,$14,$00,$46 ; (unused?) 3/4 n^3 + 20 n^2 - 70
diff --git a/engine/flag_action_predef.asm b/engine/flag_action_predef.asm
index df38bb87..dc516887 100644
--- a/engine/flag_action_predef.asm
+++ b/engine/flag_action_predef.asm
@@ -1,7 +1,7 @@
-FlagActionPredef: ; f4ec (3:74ec)
+FlagActionPredef:
call GetPredefRegisters
-FlagAction: ; f4ef (3:74ef)
+FlagAction:
; Perform action b on bit c
; in the bitfield at hl.
; 0: reset
@@ -70,4 +70,4 @@ FlagAction: ; f4ef (3:74ef)
pop de
pop hl
ld c, a
- ret \ No newline at end of file
+ ret
diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm
index 2e9ab4fb..3c5b3a10 100755
--- a/engine/game_corner_slots.asm
+++ b/engine/game_corner_slots.asm
@@ -1,4 +1,4 @@
-StartSlotMachine: ; 37ed1 (d:7ed1)
+StartSlotMachine:
ld a, [wHiddenObjectFunctionArgument]
cp $fd
jr z, .printOutOfOrder
@@ -41,14 +41,14 @@ StartSlotMachine: ; 37ed1 (d:7ed1)
call PrintPredefTextID
ret
-GameCornerOutOfOrderText: ; 37f1d (d:7f1d)
+GameCornerOutOfOrderText:
TX_FAR _GameCornerOutOfOrderText
db "@"
-GameCornerOutToLunchText: ; 37f22 (d:7f22)
+GameCornerOutToLunchText:
TX_FAR _GameCornerOutToLunchText
db "@"
-GameCornerSomeonesKeysText: ; 37f27 (d:7f27)
+GameCornerSomeonesKeysText:
TX_FAR _GameCornerSomeonesKeysText
db "@"
diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm
index 3f7c3f71..6bbaf72d 100755
--- a/engine/game_corner_slots2.asm
+++ b/engine/game_corner_slots2.asm
@@ -1,4 +1,4 @@
-AbleToPlaySlotsCheck: ; 2fdfd (b:7dfd)
+AbleToPlaySlotsCheck:
ld a, [wSpriteStateData1 + 2]
and $8
jr z, .done ; not able
@@ -22,10 +22,10 @@ AbleToPlaySlotsCheck: ; 2fdfd (b:7dfd)
ld [wCanPlaySlots], a
ret
-GameCornerCoinCaseText: ; 2fe26 (b:7e26)
+GameCornerCoinCaseText:
TX_FAR _GameCornerCoinCaseText
db "@"
-GameCornerNoCoinsText: ; 2fe2b (b:7e2b)
+GameCornerNoCoinsText:
TX_FAR _GameCornerNoCoinsText
db "@"
diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm
index e2db39de..5472a56e 100755
--- a/engine/gamefreak.asm
+++ b/engine/gamefreak.asm
@@ -1,15 +1,15 @@
-LoadShootingStarGraphics: ; 70000 (1c:4000)
+LoadShootingStarGraphics:
ld a, $f9
ld [rOBP0], a
ld a, $a4
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call UpdateGBCPal_OBP0
call UpdateGBCPal_OBP1
- ld de, AnimationTileset2 + $30 ; $4757 ; star tile (top left quadrant)
+ ld de, AnimationTileset2 + $30 ; star tile (top left quadrant)
ld hl, vChars1 + $200
lb bc, BANK(AnimationTileset2), $01
call CopyVideoData
- ld de, AnimationTileset2 + $130 ; $481e ; star tile (bottom left quadrant)
+ ld de, AnimationTileset2 + $130 ; star tile (bottom left quadrant)
ld hl, vChars1 + $210
lb bc, BANK(AnimationTileset2), $01
call CopyVideoData
@@ -26,9 +26,9 @@ LoadShootingStarGraphics: ; 70000 (1c:4000)
ld bc, GameFreakShootingStarOAMDataEnd - GameFreakShootingStarOAMData
jp CopyData
-AnimateShootingStar: ; 7004a (1c:404a)
+AnimateShootingStar:
call LoadShootingStarGraphics
- ld a, $c2 ; (SFX_1f_67 - SFX_Headers_1f) / 3
+ ld a, SFX_SHOOTING_STAR
call PlaySound
; Move the big star down and left across the screen.
@@ -39,7 +39,7 @@ AnimateShootingStar: ; 7004a (1c:404a)
push bc
.bigStarInnerLoop
ld a, [hl] ; Y
- add 4 ; y
+ add 4
ld [hli], a
ld a, [hl] ; X
add -4
@@ -60,11 +60,11 @@ AnimateShootingStar: ; 7004a (1c:404a)
.next
cp b
jr nz, .bigStarLoop
+
+; Clear big star OAM.
ld hl, wOAMBuffer
ld c, 4
ld de, 4
-
-; Clear big star OAM.
.clearOAMLoop
ld [hl], 160
add hl, de
@@ -74,7 +74,7 @@ AnimateShootingStar: ; 7004a (1c:404a)
; Make Gamefreak logo flash.
ld b, 3
.flashLogoLoop
- ld hl, rOBP0 ; $ff48
+ ld hl, rOBP0
rrc [hl]
rrc [hl]
call UpdateGBCPal_OBP0
@@ -83,13 +83,14 @@ AnimateShootingStar: ; 7004a (1c:404a)
ret c
dec b
jr nz, .flashLogoLoop
+
; Copy 24 instances of the small stars OAM data.
; Note that their coordinates put them off-screen.
ld de, wOAMBuffer
ld a, 24
.initSmallStarsOAMLoop
push af
- ld hl, SmallStarsOAM ; $40ee
+ ld hl, SmallStarsOAM
ld bc, SmallStarsOAMEnd - SmallStarsOAM
call CopyData
pop af
@@ -98,8 +99,8 @@ AnimateShootingStar: ; 7004a (1c:404a)
; Animate the small stars falling from the Gamefreak logo.
xor a
- ld [wMoveDownSmallStarsOAMCount], a ; wWhichTrade
- ld hl, SmallStarsWaveCoordsPointerTable ; 1c:4105
+ ld [wMoveDownSmallStarsOAMCount], a
+ ld hl, SmallStarsWaveCoordsPointerTable
ld c, 6
.smallStarsLoop
ld a, [hli]
@@ -156,11 +157,11 @@ AnimateShootingStar: ; 7004a (1c:404a)
and a
ret
-SmallStarsOAM: ; 70101 (1c:4101)
+SmallStarsOAM:
db $00,$00,$A2,$90
SmallStarsOAMEnd:
-SmallStarsWaveCoordsPointerTable: ; 70105 (1c:4105)
+SmallStarsWaveCoordsPointerTable:
dw SmallStarsWave1Coords
dw SmallStarsWave2Coords
dw SmallStarsWave3Coords
@@ -171,7 +172,7 @@ SmallStarsWaveCoordsPointerTable: ; 70105 (1c:4105)
; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries.
; These arrays contain the Y and X coordinates of each OAM entry.
-SmallStarsWave1Coords: ; 70111 (1c:4111)
+SmallStarsWave1Coords:
db $68,$30
db $05,$68
db $40,$05
@@ -179,7 +180,7 @@ SmallStarsWave1Coords: ; 70111 (1c:4111)
db $04,$68
db $78,$07
-SmallStarsWave2Coords: ; 7011d (1c:411d)
+SmallStarsWave2Coords:
db $68,$38
db $05,$68
db $48,$06
@@ -187,7 +188,7 @@ SmallStarsWave2Coords: ; 7011d (1c:411d)
db $04,$68
db $70,$07
-SmallStarsWave3Coords: ; 70129 (1c:4129)
+SmallStarsWave3Coords:
db $68,$34
db $05,$68
db $4c,$06
@@ -195,7 +196,7 @@ SmallStarsWave3Coords: ; 70129 (1c:4129)
db $06,$68
db $64,$07
-SmallStarsWave4Coords: ; 70135 (1c:4135)
+SmallStarsWave4Coords:
db $68,$3c
db $05,$68
db $5c,$04
@@ -203,10 +204,10 @@ SmallStarsWave4Coords: ; 70135 (1c:4135)
db $07,$68
db $74,$07
-SmallStarsEmptyWave: ; 70141 (1c:4141)
+SmallStarsEmptyWave:
db $FF
-MoveDownSmallStars: ; 70142 (1c:4142)
+MoveDownSmallStars:
ld b, 8
.loop
ld hl, wOAMBuffer + $5c
@@ -214,15 +215,15 @@ MoveDownSmallStars: ; 70142 (1c:4142)
ld de, -4
ld c, a
.innerLoop
- inc [hl]
+ inc [hl] ; Y
add hl, de
dec c
jr nz, .innerLoop
; Toggle the palette so that the lower star in the small stars tile blinks in
; and out.
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
xor %10100000
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call UpdateGBCPal_OBP1
ld c, 3
call CheckForUserInterruption
@@ -231,7 +232,7 @@ MoveDownSmallStars: ; 70142 (1c:4142)
jr nz, .loop
ret
-GameFreakLogoOAMData: ; 70166 (1c:4166)
+GameFreakLogoOAMData:
db $48,$50,$8D,$00
db $48,$58,$8E,$00
db $50,$50,$8F,$00
@@ -250,13 +251,13 @@ GameFreakLogoOAMData: ; 70166 (1c:4166)
db $60,$78,$86,$00
GameFreakLogoOAMDataEnd:
-GameFreakShootingStarOAMData: ; 701a6 (1c:41a6)
+GameFreakShootingStarOAMData:
db $00,$A0,$A0,$14
db $00,$A8,$A0,$34
db $08,$A0,$A1,$14
db $08,$A8,$A1,$34
GameFreakShootingStarOAMDataEnd:
-FallingStar: ; 701b6 (1c:41b6)
+FallingStar:
INCBIN "gfx/falling_star.2bpp"
FallingStarEnd:
diff --git a/engine/get_bag_item_quantity.asm b/engine/get_bag_item_quantity.asm
index 2a462b5d..f10df1a0 100644
--- a/engine/get_bag_item_quantity.asm
+++ b/engine/get_bag_item_quantity.asm
@@ -1,4 +1,4 @@
-GetQuantityOfItemInBag: ; f735 (3:7735)
+GetQuantityOfItemInBag:
; In: b = item ID
; Out: b = how many of that item are in the bag
call GetPredefRegisters
@@ -15,4 +15,4 @@ GetQuantityOfItemInBag: ; f735 (3:7735)
ret
.notInBag
ld b, 0
- ret \ No newline at end of file
+ ret
diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm
index 5b506be2..9cbb4039 100755
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -1,4 +1,4 @@
-_GivePokemon: ; f66fa (3d:66fa)
+_GivePokemon:
; returns success in carry
; and whether the mon was added to the party in [wAddedToParty]
call EnableAutoTextBoxDrawing
@@ -53,7 +53,7 @@ _GivePokemon: ; f66fa (3d:66fa)
scf
ret
-SetPokedexOwnedFlag: ; f676c (3d:676c)
+SetPokedexOwnedFlag:
ld a, [wcf91]
push af
ld [wd11e], a
@@ -70,18 +70,18 @@ SetPokedexOwnedFlag: ; f676c (3d:676c)
ld hl, GotMonText
jp PrintText
-UnknownTerminator_f6794: ; f6794 (3d:6794)
+UnknownTerminator_f6794:
db "@"
-GotMonText: ; f6795 (3d:6795)
+GotMonText:
TX_FAR _GotMonText
db $0b
db "@"
-SetToBoxText: ; f679b (3d:679b)
+SetToBoxText:
TX_FAR _SetToBoxText
db "@"
-BoxIsFullText: ; f67a0 (3d:67a0)
+BoxIsFullText:
TX_FAR _BoxIsFullText
db "@"
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index c8e6de3b..833313a6 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -1,4 +1,4 @@
-AnimateHallOfFame: ; 701c6 (1c:41c6)
+AnimateHallOfFame:
call HoFFadeOutScreenAndMusic
call ClearScreen
ld c, 100
@@ -33,8 +33,8 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
.skipInc
ld a, $90
ld [hWY], a
- ld c, $1f ; BANK(Music_HallOfFame)
- ld a, $ca ; MUSIC_HALL_OF_FAME
+ ld c, BANK(Music_HallOfFame)
+ ld a, MUSIC_HALL_OF_FAME
call PlayMusic
ld hl, wPartySpecies
ld c, $ff
@@ -58,7 +58,7 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
ld c, 80
call DelayFrames
coord hl, 2, 13
- lb bc, $3, $e
+ lb bc, 3, 14
call TextBoxBorder
coord hl, 4, 15
ld de, HallOfFameText
@@ -90,10 +90,10 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
res 3, [hl]
ret
-HallOfFameText: ; 70295 (1c:4295)
+HallOfFameText:
db "HALL OF FAME@"
-HoFShowMonOrPlayer: ; 702a2 (1c:42a2)
+HoFShowMonOrPlayer:
call ClearScreen
ld a, $d0
ld [hSCY], a
@@ -149,9 +149,9 @@ HoFShowMonOrPlayer: ; 702a2 (1c:42a2)
jr nz, .ScrollPic
ret
-HoFDisplayAndRecordMonInfo: ; 7030e (1c:430e)
+HoFDisplayAndRecordMonInfo:
ld a, [wHoFPartyMonIndex]
- ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld hl, wPartyMonNicks
call GetPartyMonName
call HoFDisplayMonInfo
ld a, [wHoFPartyMonIndex]
@@ -167,12 +167,12 @@ HoFDisplayAndRecordMonInfo: ; 7030e (1c:430e)
.asm_7033c
jp HoFRecordMonInfo
-Func_7033f: ; 7033f (1c:433f)
+Func_7033f:
call HoFDisplayMonInfo
ld a,[wHoFMonSpecies]
jp PlayCry
-HoFDisplayMonInfo: ; 70348 (1c:4348)
+HoFDisplayMonInfo:
coord hl, 0, 2
lb bc, 9, 10
call TextBoxBorder
@@ -191,13 +191,13 @@ HoFDisplayMonInfo: ; 70348 (1c:4348)
predef PrintMonType
ret
-HoFMonInfoText: ; 7037b (1c:437b)
+HoFMonInfoText:
db "LEVEL/"
next "TYPE1/"
next "TYPE2/@"
-HoFLoadPlayerPics: ; 70390 (1c:433e)
- ld de, RedPicFront ; $6ede
+HoFLoadPlayerPics:
+ ld de, RedPicFront
ld a, BANK(RedPicFront)
call UncompressSpriteFromDE
ld a,$0
@@ -217,12 +217,13 @@ HoFLoadPlayerPics: ; 70390 (1c:433e)
call InterlaceMergeSpriteBuffers
ld c, $1
-HoFLoadMonPlayerPicTileIDs: ; 703c7 (1c:43c7)
- ld b, $0
+HoFLoadMonPlayerPicTileIDs:
+; c = base tile ID
+ ld b, 0
coord hl, 12, 5
predef_jump CopyTileIDsFromList
-HoFDisplayPlayerStats: ; 703d1 (1c:43d1)
+HoFDisplayPlayerStats:
SetEvent EVENT_HALL_OF_FAME_DEX_RATING
predef DisplayDexRating
coord hl, 0, 4
@@ -259,26 +260,26 @@ HoFDisplayPlayerStats: ; 703d1 (1c:43d1)
call HoFPrintTextAndDelay
ld hl, wDexRatingText
-HoFPrintTextAndDelay: ; 7043a (1c:443a)
+HoFPrintTextAndDelay:
call PrintText
ld c, 120
jp DelayFrames
-HoFPlayTimeText: ; 70442 (1c:4442)
+HoFPlayTimeText:
db "PLAY TIME@"
-HoFMoneyText: ; 7044c (1c:444c)
+HoFMoneyText:
db "MONEY@"
-DexSeenOwnedText: ; 70452 (1c:4452)
+DexSeenOwnedText:
TX_FAR _DexSeenOwnedText
db "@"
-DexRatingText: ; 70457 (1c:4457)
+DexRatingText:
TX_FAR _DexRatingText
db "@"
-HoFRecordMonInfo: ; 7045c (1c:445c)
+HoFRecordMonInfo:
ld hl, wHallOfFame
ld bc, HOF_MON
ld a, [wHoFPartyMonIndex]
@@ -293,7 +294,7 @@ HoFRecordMonInfo: ; 7045c (1c:445c)
ld bc, NAME_LENGTH
jp CopyData
-HoFFadeOutScreenAndMusic: ; 7047b (1c:447b)
+HoFFadeOutScreenAndMusic:
ld a, 10
ld [wAudioFadeOutCounterReloadValue], a
ld [wAudioFadeOutCounter], a
diff --git a/engine/heal_party.asm b/engine/heal_party.asm
index 4ef200a9..7aaa1bd1 100644
--- a/engine/heal_party.asm
+++ b/engine/heal_party.asm
@@ -1,4 +1,4 @@
-HealParty: ; f52b (3:752b)
+HealParty:
; Restore HP and PP.
ld hl, wPartySpecies
@@ -96,4 +96,4 @@ HealParty: ; f52b (3:752b)
inc [hl]
dec b
jr nz, .ppup
- ret \ No newline at end of file
+ ret
diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm
index e69e802c..2781e182 100755
--- a/engine/hidden_object_functions14.asm
+++ b/engine/hidden_object_functions14.asm
@@ -1,16 +1,16 @@
-PrintNotebookText: ; 528f6 (14:68f6)
+PrintNotebookText:
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, [wHiddenObjectFunctionArgument]
jp PrintPredefTextID
-TMNotebook: ; 52904 (14:6904)
+TMNotebook:
TX_FAR TMNotebookText
db $0d
db "@"
-ViridianSchoolNotebook: ; 5290a (14:690a)
+ViridianSchoolNotebook:
TX_ASM
ld hl, ViridianSchoolNotebookText1
call PrintText
@@ -31,7 +31,7 @@ ViridianSchoolNotebook: ; 5290a (14:690a)
.doneReading
jp TextScriptEnd
-TurnPageSchoolNotebook: ; 529db (14:69db)
+TurnPageSchoolNotebook:
ld hl, TurnPageText
call PrintText
call YesNoChoice
@@ -39,62 +39,62 @@ TurnPageSchoolNotebook: ; 529db (14:69db)
and a
ret
-TurnPageText: ; 52949 (14:6949)
+TurnPageText:
TX_FAR _TurnPageText
db "@"
-ViridianSchoolNotebookText5: ; 5294e (14:694e)
+ViridianSchoolNotebookText5:
TX_FAR _ViridianSchoolNotebookText5
db $0d
db "@"
-ViridianSchoolNotebookText1: ; 52954 (14:6954)
+ViridianSchoolNotebookText1:
TX_FAR _ViridianSchoolNotebookText1
db "@"
-ViridianSchoolNotebookText2: ; 52959 (14:6959)
+ViridianSchoolNotebookText2:
TX_FAR _ViridianSchoolNotebookText2
db "@"
-ViridianSchoolNotebookText3: ; 5295e (14:695e)
+ViridianSchoolNotebookText3:
TX_FAR _ViridianSchoolNotebookText3
db "@"
-ViridianSchoolNotebookText4: ; 52963 (14:6963)
+ViridianSchoolNotebookText4:
TX_FAR _ViridianSchoolNotebookText4
db "@"
-PrintFightingDojoText2: ; 52968 (14:6968)
+PrintFightingDojoText2:
call EnableAutoTextBoxDrawing
tx_pre_jump EnemiesOnEverySideText
-EnemiesOnEverySideText: ; 52970 (14:6970)
+EnemiesOnEverySideText:
TX_FAR _EnemiesOnEverySideText
db "@"
-PrintFightingDojoText3: ; 52975 (14:6975)
+PrintFightingDojoText3:
call EnableAutoTextBoxDrawing
tx_pre_jump WhatGoesAroundComesAroundText
-WhatGoesAroundComesAroundText: ; 5297d (14:697d)
+WhatGoesAroundComesAroundText:
TX_FAR _WhatGoesAroundComesAroundText
db "@"
-PrintFightingDojoText: ; 52982 (14:6982)
+PrintFightingDojoText:
call EnableAutoTextBoxDrawing
tx_pre_jump FightingDojoText
-FightingDojoText: ; 5298a (14:698a)
+FightingDojoText:
TX_FAR _FightingDojoText
db "@"
-PrintIndigoPlateauHQText: ; 5298f (14:698f)
+PrintIndigoPlateauHQText:
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
tx_pre_jump IndigoPlateauHQText
-IndigoPlateauHQText: ; 5299d (14:699d)
+IndigoPlateauHQText:
TX_FAR _IndigoPlateauHQText
db "@"
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
index 78950150..afbcadee 100755
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -1,19 +1,19 @@
-PrintRedSNESText: ; 5dbae (17:5bae)
+PrintRedSNESText:
call EnableAutoTextBoxDrawing
tx_pre_jump RedBedroomSNESText
-RedBedroomSNESText: ; 5db81 (17:5b81)
+RedBedroomSNESText:
TX_FAR _RedBedroomSNESText
db "@"
-OpenRedsPC: ; 5db86 (17:5b86)
+OpenRedsPC:
call EnableAutoTextBoxDrawing
tx_pre_jump RedBedroomPCText
-RedBedroomPCText: ; 5db8e (17:5b8e)
- db $fc ; FuncTX_ItemStoragePC
+RedBedroomPCText:
+ TX_PLAYERS_PC
-Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
+Route15GateLeftBinoculars:
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
ret nz
@@ -27,11 +27,11 @@ Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8)
+Route15UpstairsBinocularsText:
TX_FAR _Route15UpstairsBinocularsText
db "@"
-AerodactylFossil: ; 5dbad (17:5bad)
+AerodactylFossil:
ld a, FOSSIL_AERODACTYL
ld [wcf91], a
call DisplayMonFrontSpriteInBox
@@ -39,11 +39,11 @@ AerodactylFossil: ; 5dbad (17:5bad)
tx_pre AerodactylFossilText
ret
-AerodactylFossilText: ; 5dbbe (17:5bbe)
+AerodactylFossilText:
TX_FAR _AerodactylFossilText
db "@"
-KabutopsFossil: ; 5bdc3 (17:5bc3)
+KabutopsFossil:
ld a, FOSSIL_KABUTOPS
ld [wcf91], a
call DisplayMonFrontSpriteInBox
@@ -51,11 +51,11 @@ KabutopsFossil: ; 5bdc3 (17:5bc3)
tx_pre KabutopsFossilText
ret
-KabutopsFossilText: ; 5dbd4 (17:5bd4)
+KabutopsFossilText:
TX_FAR _KabutopsFossilText
db "@"
-FanClubPicture1: ; 5dbad (17:5c12)
+FanClubPicture1:
ld a, RAPIDASH
ld [wcf91], a
call DisplayMonFrontSpriteInBox
@@ -63,11 +63,11 @@ FanClubPicture1: ; 5dbad (17:5c12)
tx_pre FanClubPicture1Text
ret
-FanClubPicture1Text: ; 5dbbe (17:5bbe)
+FanClubPicture1Text:
TX_FAR _FanClubPicture1Text
db "@"
-FanClubPicture2: ; 5dbad (17:5c28)
+FanClubPicture2:
ld a, FEAROW
ld [wcf91], a
call DisplayMonFrontSpriteInBox
@@ -75,11 +75,11 @@ FanClubPicture2: ; 5dbad (17:5c28)
tx_pre FanClubPicture2Text
ret
-FanClubPicture2Text: ; 5dc39 (17:5c39)
+FanClubPicture2Text:
TX_FAR _FanClubPicture2Text
db "@"
-DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
+DisplayMonFrontSpriteInBox:
; Displays a pokemon's front sprite in a pop-up window.
; [wcf91] = pokemon interal id number
ld a, 1
@@ -108,7 +108,7 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
ld [hWY], a
ret
-PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
+PrintBlackboardLinkCableText:
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -116,28 +116,28 @@ PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
call PrintPredefTextID
ret
-LinkCableHelp: ; 5dc29 (17:5c29)
+LinkCableHelp:
TX_ASM
call SaveScreenTilesToBuffer1
ld hl, LinkCableHelpText1
call PrintText
xor a
- ld [wMenuItemOffset], a
+ ld [wMenuItemOffset], a ; not used
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $3
+ ld a, 3
ld [wMaxMenuItem], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
.linkHelpLoop
ld hl, wd730
set 6, [hl]
coord hl, 0, 0
- lb bc, $8, $d
+ lb bc, 8, 13
call TextBoxBorder
coord hl, 2, 2
ld de, HowToLinkText
@@ -148,13 +148,13 @@ LinkCableHelp: ; 5dc29 (17:5c29)
bit 1, a ; pressed b
jr nz, .exit
ld a, [wCurrentMenuItem]
- cp $3 ; pressed a on "STOP READING"
+ cp 3 ; pressed a on "STOP READING"
jr z, .exit
ld hl, wd730
res 6, [hl]
ld hl, LinkCableInfoTexts
add a
- ld d, $0
+ ld d, 0
ld e, a
add hl, de
ld a, [hli]
@@ -168,38 +168,38 @@ LinkCableHelp: ; 5dc29 (17:5c29)
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
-LinkCableHelpText1: ; 5dc9e (17:5c9e)
+LinkCableHelpText1:
TX_FAR _LinkCableHelpText1
db "@"
-LinkCableHelpText2: ; 5dca3 (17:5ca3)
+LinkCableHelpText2:
TX_FAR _LinkCableHelpText2
db "@"
-HowToLinkText: ; 5dca8 (17:5ca8)
+HowToLinkText:
db "HOW TO LINK"
next "COLOSSEUM"
next "TRADE CENTER"
next "STOP READING@"
-LinkCableInfoTexts: ; 5dcd8 (17:5cd8)
+LinkCableInfoTexts:
dw LinkCableInfoText1
dw LinkCableInfoText2
dw LinkCableInfoText3
-LinkCableInfoText1: ; 5dcde (17:5cde)
+LinkCableInfoText1:
TX_FAR _LinkCableInfoText1
db "@"
-LinkCableInfoText2: ; 5dce3 (17:5ce3)
+LinkCableInfoText2:
TX_FAR _LinkCableInfoText2
db "@"
-LinkCableInfoText3: ; 5dce8 (17:5ce8)
+LinkCableInfoText3:
TX_FAR _LinkCableInfoText3
db "@"
-ViridianSchoolBlackboard: ; 5dced (17:5ced)
+ViridianSchoolBlackboard:
TX_ASM
call SaveScreenTilesToBuffer1
ld hl, ViridianSchoolBlackboardText1
@@ -210,11 +210,11 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld [wLastMenuItem], a
ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $2
+ ld a, 2
ld [wMaxMenuItem], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
.blackboardLoop
ld hl, wd730
@@ -236,24 +236,24 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
bit 4, a ; pressed right
jr z, .didNotPressRight
; move cursor to right column
- ld a, $2
+ ld a, 2
ld [wMaxMenuItem], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $6
+ ld a, 6
ld [wTopMenuItemX], a
- ld a, $3 ; in the the right column, use an offset to prevent overlap
+ ld a, 3 ; in the the right column, use an offset to prevent overlap
ld [wMenuItemOffset], a
jr .blackboardLoop
.didNotPressRight
bit 5, a ; pressed left
jr z, .didNotPressLeftOrRight
; move cursor to left column
- ld a, $2
+ ld a, 2
ld [wMaxMenuItem], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
xor a
ld [wMenuItemOffset], a
@@ -261,9 +261,9 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
.didNotPressLeftOrRight
ld a, [wCurrentMenuItem]
ld b, a
- ld a, [wAnimationID]
+ ld a, [wMenuItemOffset]
add b
- cp $5 ; cursor is pointing to "QUIT"
+ cp 5 ; cursor is pointing to "QUIT"
jr z, .exitBlackboard
; we must have pressed a on a status condition
; so print the text
@@ -271,7 +271,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
res 6, [hl]
ld hl, ViridianBlackboardStatusPointers
add a
- ld d, $0
+ ld d, 0
ld e, a
add hl, de
ld a, [hli]
@@ -285,60 +285,60 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
-ViridianSchoolBlackboardText1: ; 5dda2 (17:5da2)
+ViridianSchoolBlackboardText1:
TX_FAR _ViridianSchoolBlackboardText1
db "@"
-ViridianSchoolBlackboardText2: ; 5dda7 (17:5da7)
+ViridianSchoolBlackboardText2:
TX_FAR _ViridianSchoolBlackboardText2
db "@"
-StatusAilmentText1: ; 5ddac (17:5dac)
+StatusAilmentText1:
db " SLP"
next " PSN"
next " PAR@"
-StatusAilmentText2: ; 5ddbb (17:5dbb)
+StatusAilmentText2:
db " BRN"
next " FRZ"
next " QUIT@@"
-ViridianBlackboardStatusPointers: ; 5ddcc (17:5ddc)
+ViridianBlackboardStatusPointers:
dw ViridianBlackboardSleepText
dw ViridianBlackboardPoisonText
dw ViridianBlackboardPrlzText
dw ViridianBlackboardBurnText
dw ViridianBlackboardFrozenText
-ViridianBlackboardSleepText: ; 5ddd6 (17:5dd6)
+ViridianBlackboardSleepText:
TX_FAR _ViridianBlackboardSleepText
db "@"
-ViridianBlackboardPoisonText: ; 5dddb (17:5ddb)
+ViridianBlackboardPoisonText:
TX_FAR _ViridianBlackboardPoisonText
db "@"
-ViridianBlackboardPrlzText: ; 5dde0 (17:5de0)
+ViridianBlackboardPrlzText:
TX_FAR _ViridianBlackboardPrlzText
db "@"
-ViridianBlackboardBurnText: ; 5dde5 (17:5de5)
+ViridianBlackboardBurnText:
TX_FAR _ViridianBlackboardBurnText
db "@"
-ViridianBlackboardFrozenText: ; 5ddea (17:5dea)
+ViridianBlackboardFrozenText:
TX_FAR _ViridianBlackboardFrozenText
db "@"
-PrintTrashText: ; 5ddef (17:5def)
+PrintTrashText:
call EnableAutoTextBoxDrawing
tx_pre_jump VermilionGymTrashText
-VermilionGymTrashText: ; 5ddf7 (17:5df7)
+VermilionGymTrashText:
TX_FAR _VermilionGymTrashText
db "@"
-GymTrashScript: ; 5ddfc (17:5dfc)
+GymTrashScript:
call EnableAutoTextBoxDrawing
ld a, [wHiddenObjectFunctionArgument]
ld [wGymTrashCanIndex], a
@@ -365,7 +365,7 @@ GymTrashScript: ; 5ddfc (17:5dfc)
.openFirstLock
; Next can is trying for the second switch.
SetEvent EVENT_1ST_LOCK_OPENED
- callab Func_f2d0c
+ callab Yellow_SampleSecondTrashCan
tx_pre_id VermilionGymTrashSuccessText1
jr .done
@@ -400,7 +400,7 @@ GymTrashScript: ; 5ddfc (17:5dfc)
.done
jp PrintPredefTextID
-GymTrashCans: ; 5de7d (17:5e7d)
+GymTrashCans:
; byte 0: mask for random number
; bytes 1-4: indices of the trash cans that can have the second lock
; Note that the mask is simply the number of valid trash can indices that
@@ -425,7 +425,7 @@ GymTrashCans: ; 5de7d (17:5e7d)
db 2, 11, 13, -1, -1 ; 14
; 5dec8
-VermilionGymTrashSuccessText1: ; 5dec8 (17:5ec8)
+VermilionGymTrashSuccessText1:
TX_FAR _VermilionGymTrashSuccessText1
TX_ASM
call WaitForSoundToFinish
@@ -435,12 +435,12 @@ VermilionGymTrashSuccessText1: ; 5dec8 (17:5ec8)
jp TextScriptEnd
; unused
-VermilionGymTrashSuccessText2: ; 5dedb (17:5edb)
+VermilionGymTrashSuccessText2:
TX_FAR _VermilionGymTrashSuccessText2
db "@"
; unused
-VermilionGymTrashSuccesPlaySfx: ; 5dee0 (17:5ee0)
+VermilionGymTrashSuccesPlaySfx:
TX_ASM
call WaitForSoundToFinish
ld a, SFX_SWITCH
@@ -448,7 +448,7 @@ VermilionGymTrashSuccesPlaySfx: ; 5dee0 (17:5ee0)
call WaitForSoundToFinish
jp TextScriptEnd
-VermilionGymTrashSuccessText3: ; 5deef (17:5eef)
+VermilionGymTrashSuccessText3:
TX_FAR _VermilionGymTrashSuccessText3
TX_ASM
call WaitForSoundToFinish
@@ -457,7 +457,7 @@ VermilionGymTrashSuccessText3: ; 5deef (17:5eef)
call WaitForSoundToFinish
jp TextScriptEnd
-VermilionGymTrashFailText: ; 5df02 (17:5f02)
+VermilionGymTrashFailText:
TX_FAR _VermilionGymTrashFailText
TX_ASM
call WaitForSoundToFinish
diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm
index cdba142b..1bb31e00 100755
--- a/engine/hidden_object_functions18.asm
+++ b/engine/hidden_object_functions18.asm
@@ -1,4 +1,4 @@
-GymStatues: ; 625e8 (18:65e8)
+GymStatues:
; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID
; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID
; else ret
@@ -28,7 +28,7 @@ GymStatues: ; 625e8 (18:65e8)
.haveBadge
jp PrintPredefTextID
-.BadgeFlags: ; 62442 (18:6442)
+.BadgeFlags:
db PEWTER_GYM, %00000001
db CERULEAN_GYM, %00000010
db VERMILION_GYM, %00000100
@@ -39,15 +39,15 @@ GymStatues: ; 625e8 (18:65e8)
db VIRIDIAN_GYM, %10000000
db $ff
-GymStatueText1: ; 62453 (18:6453)
+GymStatueText1:
TX_FAR _GymStatueText1
db "@"
-GymStatueText2: ; 62458 (18:6458)
+GymStatueText2:
TX_FAR _GymStatueText2
db "@"
-PrintBenchGuyText: ; 6245d (18:645d)
+PrintBenchGuyText:
call EnableAutoTextBoxDrawing
ld hl, BenchGuyTextPointers
ld a, [wCurMap]
@@ -71,7 +71,7 @@ PrintBenchGuyText: ; 6245d (18:645d)
jp PrintPredefTextID
; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable
-BenchGuyTextPointers: ; 6247e (18:647e)
+BenchGuyTextPointers:
db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT
db_tx_pre ViridianCityPokecenterBenchGuyText
db PEWTER_POKECENTER, SPRITE_FACING_LEFT
@@ -104,59 +104,59 @@ BenchGuyTextPointers: ; 6247e (18:647e)
db_tx_pre UnusedBenchGuyText3
db $FF
-ViridianCityPokecenterBenchGuyText: ; 624a3 (18:64a3)
+ViridianCityPokecenterBenchGuyText:
TX_FAR _ViridianCityPokecenterGuyText
db "@"
-PewterCityPokecenterBenchGuyText: ; 624a8 (18:64a8)
+PewterCityPokecenterBenchGuyText:
TX_FAR _PewterCityPokecenterGuyText
db "@"
-CeruleanCityPokecenterBenchGuyText: ; 624ad (18:64ad)
+CeruleanCityPokecenterBenchGuyText:
TX_FAR _CeruleanPokecenterGuyText
db "@"
-LavenderCityPokecenterBenchGuyText: ; 624b2 (18:64b2)
+LavenderCityPokecenterBenchGuyText:
TX_FAR _LavenderPokecenterGuyText
db "@"
-MtMoonPokecenterBenchGuyText: ; 624b7 (18:64b7)
+MtMoonPokecenterBenchGuyText:
TX_FAR _MtMoonPokecenterBenchGuyText
db "@"
-RockTunnelPokecenterBenchGuyText: ; 624bc (18:64bc)
+RockTunnelPokecenterBenchGuyText:
TX_FAR _RockTunnelPokecenterGuyText
db "@"
-UnusedBenchGuyText1: ; 624c1 (18:64c1)
+UnusedBenchGuyText1:
TX_FAR _UnusedBenchGuyText1
db "@"
-UnusedBenchGuyText2: ; 624c6 (18:64c6)
+UnusedBenchGuyText2:
TX_FAR _UnusedBenchGuyText2
db "@"
-UnusedBenchGuyText3: ; 624cb (18:64cb)
+UnusedBenchGuyText3:
TX_FAR _UnusedBenchGuyText3
db "@"
-VermilionCityPokecenterBenchGuyText: ; 624d0 (18:64d0)
+VermilionCityPokecenterBenchGuyText:
TX_FAR _VermilionPokecenterGuyText
db "@"
-CeladonCityPokecenterBenchGuyText: ; 624d5 (18:64d5)
+CeladonCityPokecenterBenchGuyText:
TX_FAR _CeladonCityPokecenterGuyText
db "@"
-FuchsiaCityPokecenterBenchGuyText: ; 624da (18:64da)
+FuchsiaCityPokecenterBenchGuyText:
TX_FAR _FuchsiaCityPokecenterGuyText
db "@"
-CinnabarIslandPokecenterBenchGuyText: ; 624df (18:64df)
+CinnabarIslandPokecenterBenchGuyText:
TX_FAR _CinnabarPokecenterGuyText
db "@"
-SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
+SaffronCityPokecenterBenchGuyText:
TX_ASM
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SaffronCityPokecenterBenchGuyText2
@@ -166,32 +166,32 @@ SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
call PrintText
jp TextScriptEnd
-SaffronCityPokecenterBenchGuyText1: ; 624f8 (18:64f8)
+SaffronCityPokecenterBenchGuyText1:
TX_FAR _SaffronCityPokecenterGuyText1
db "@"
-SaffronCityPokecenterBenchGuyText2: ; 624fd (18:64fd)
+SaffronCityPokecenterBenchGuyText2:
TX_FAR _SaffronCityPokecenterGuyText2
db "@"
-CeladonCityHotelText: ; 62502 (18:6502)
+CeladonCityHotelText:
TX_FAR _CeladonCityHotelText
db "@"
ret
-UnusedPredefText: ; 62508 (18:6508)
+UnusedPredefText:
db "@"
-PrintBookcaseText: ; 626e1 (18:66e1)
+PrintBookcaseText:
call EnableAutoTextBoxDrawing
tx_pre_jump BookcaseText
-BookcaseText: ; 62511 (18:6511)
+BookcaseText:
TX_FAR _BookcaseText
db "@"
-OpenPokemonCenterPC: ; 62516 (18:6516)
+OpenPokemonCenterPC:
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP ; check to see if player is facing up
ret nz
@@ -200,5 +200,5 @@ OpenPokemonCenterPC: ; 62516 (18:6516)
ld [wAutoTextBoxDrawingControl], a
tx_pre_jump PokemonCenterPCText
-PokemonCenterPCText: ; 62529 (18:6529)
- db $F9 ; FuncTX_PokemonCenterPC
+PokemonCenterPCText:
+ TX_POKECENTER_PC
diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm
index 78da8274..9456e76f 100755
--- a/engine/hidden_object_functions3.asm
+++ b/engine/hidden_object_functions3.asm
@@ -1,5 +1,5 @@
; prints text for bookshelves in buildings without sign events
-PrintBookshelfText: ; f9de (3:79de)
+PrintBookshelfText:
ld a, [wPlayerFacingDirection] ; player's sprite facing direction
cp SPRITE_FACING_UP
jr nz, .noMatch
@@ -37,7 +37,7 @@ PrintBookshelfText: ; f9de (3:79de)
jpba PrintCardKeyText
; format: db tileset id, bookshelf tile id, text id
-BookshelfTileIDs: ; fa19 (3:7a19)
+BookshelfTileIDs:
db PLATEAU, $30
db_tx_pre IndigoPlateauStatues
db HOUSE, $3D
@@ -74,58 +74,58 @@ BookshelfTileIDs: ; fa19 (3:7a19)
db_tx_pre BookOrSculptureText
db $FF
-IndigoPlateauStatues: ; fa4d (3:7a4d)
+IndigoPlateauStatues:
TX_ASM
ld hl, IndigoPlateauStatuesText1
call PrintText
ld a, [wXCoord]
bit 0, a
ld hl, IndigoPlateauStatuesText2
- jr nz, .asm_fa61
+ jr nz, .ok
ld hl, IndigoPlateauStatuesText3
-.asm_fa61
+.ok
call PrintText
jp TextScriptEnd
-IndigoPlateauStatuesText1: ; fa67 (3:7a67)
+IndigoPlateauStatuesText1:
TX_FAR _IndigoPlateauStatuesText1
db "@"
-IndigoPlateauStatuesText2: ; fa6c (3:7a6c)
+IndigoPlateauStatuesText2:
TX_FAR _IndigoPlateauStatuesText2
db "@"
-IndigoPlateauStatuesText3: ; fa71 (3:7a71)
+IndigoPlateauStatuesText3:
TX_FAR _IndigoPlateauStatuesText3
db "@"
-BookOrSculptureText: ; fa76 (3:7a76)
+BookOrSculptureText:
TX_ASM
ld hl, PokemonBooksText
ld a, [wCurMapTileset]
cp MANSION ; Celadon Mansion tileset
- jr nz, .asm_fa8b
+ jr nz, .ok
aCoord 8, 6
cp $38
- jr nz, .asm_fa8b
+ jr nz, .ok
ld hl, DiglettSculptureText
-.asm_fa8b
+.ok
call PrintText
jp TextScriptEnd
-PokemonBooksText: ; fa91 (3:7a91)
+PokemonBooksText:
TX_FAR _PokemonBooksText
db "@"
-DiglettSculptureText: ; fa96 (3:7a96)
+DiglettSculptureText:
TX_FAR _DiglettSculptureText
db "@"
-ElevatorText: ; fa9b (3:7a9b)
+ElevatorText:
TX_FAR _ElevatorText
db "@"
-TownMapText: ; faa0 (3:7aa0)
+TownMapText:
TX_FAR _TownMapText
db $06
TX_ASM
@@ -148,6 +148,6 @@ TownMapText: ; faa0 (3:7aa0)
push af
jp CloseTextDisplay
-PokemonStuffText: ; fad3 (3:7ad3)
+PokemonStuffText:
TX_FAR _PokemonStuffText
db "@"
diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm
index 4867b447..a8676fed 100755
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -1,20 +1,20 @@
-PrintNewBikeText: ; 1e2e4 (7:62e4)
+PrintNewBikeText:
call EnableAutoTextBoxDrawing
tx_pre_jump NewBicycleText
-NewBicycleText: ; 1e2ec (7:62ec)
+NewBicycleText:
TX_FAR _NewBicycleText
db "@"
-DisplayOakLabLeftPoster: ; 1e2f1 (7:62f1)
+DisplayOakLabLeftPoster:
call EnableAutoTextBoxDrawing
tx_pre_jump PushStartText
-PushStartText: ; 1e2f9 (7:62f9)
+PushStartText:
TX_FAR _PushStartText
db "@"
-DisplayOakLabRightPoster: ; 1e2fe (7:62fe)
+DisplayOakLabRightPoster:
call EnableAutoTextBoxDrawing
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
@@ -28,15 +28,15 @@ DisplayOakLabRightPoster: ; 1e2fe (7:62fe)
.ownLessThanTwo
jp PrintPredefTextID
-SaveOptionText: ; 1e317 (7:6317)
+SaveOptionText:
TX_FAR _SaveOptionText
db "@"
-StrengthsAndWeaknessesText: ; 1e31c (7:631c)
+StrengthsAndWeaknessesText:
TX_FAR _StrengthsAndWeaknessesText
db "@"
-SafariZoneCheck: ; 1e321 (7:6321)
+SafariZoneCheck:
CheckEventHL EVENT_IN_SAFARI_ZONE ; if we are not in the Safari Zone,
jr z, SafariZoneGameStillGoing ; don't bother printing game over text
ld a, [wNumSafariBalls]
@@ -44,7 +44,7 @@ SafariZoneCheck: ; 1e321 (7:6321)
jr z, SafariZoneGameOver
jr SafariZoneGameStillGoing
-SafariZoneCheckSteps: ; 1e330 (7:6330)
+SafariZoneCheckSteps:
ld a, [wSafariSteps]
ld b, a
ld a, [wSafariSteps + 1]
@@ -56,12 +56,12 @@ SafariZoneCheckSteps: ; 1e330 (7:6330)
ld [wSafariSteps], a
ld a, c
ld [wSafariSteps + 1], a
-SafariZoneGameStillGoing: ; 1e344 (7:6344)
+SafariZoneGameStillGoing:
xor a
ld [wSafariZoneGameOver], a
ret
-SafariZoneGameOver: ; 1e349 (7:6349)
+SafariZoneGameOver:
call EnableAutoTextBoxDrawing
xor a
ld [wAudioFadeOutControl], a
@@ -85,17 +85,17 @@ SafariZoneGameOver: ; 1e349 (7:6349)
ld a, $5
ld [wSafariZoneEntranceCurScript], a
SetEvent EVENT_SAFARI_GAME_OVER
- ld a, $1
+ ld a, 1
ld [wSafariZoneGameOver], a
ret
-PrintSafariGameOverText: ; 1e385 (7:6385)
+PrintSafariGameOverText:
xor a
ld [wJoyIgnore], a
ld hl, SafariGameOverText
jp PrintText
-SafariGameOverText: ; 1e38f (7:638f)
+SafariGameOverText:
TX_ASM
ld a, [wNumSafariBalls]
and a
@@ -107,22 +107,22 @@ SafariGameOverText: ; 1e38f (7:638f)
call PrintText
jp TextScriptEnd
-TimesUpText: ; 1e3a5 (7:63a5)
+TimesUpText:
TX_FAR _TimesUpText
db "@"
-GameOverText: ; 1e3aa (7:63aa)
+GameOverText:
TX_FAR _GameOverText
db "@"
-PrintCinnabarQuiz: ; 1e3af (7:63af)
+PrintCinnabarQuiz:
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
tx_pre_jump CinnabarGymQuiz
-CinnabarGymQuiz: ; 1e3be (7:63be)
+CinnabarGymQuiz:
TX_ASM
xor a
ld [wOpponentAfterWrongAnswer], a
@@ -138,7 +138,7 @@ CinnabarGymQuiz: ; 1e3be (7:63be)
ld [$ffdc], a
ld a, [hGymGateIndex]
ld hl, CinnabarGymQuizIntroText
- cp $1
+ cp 1
jr z, .onFirstQuestion
ld hl, CinnabarGymQuizShortIntroText
.onFirstQuestion
@@ -154,24 +154,24 @@ CinnabarGymQuiz: ; 1e3be (7:63be)
ld h, [hl]
ld l, a
call PrintText
- ld a, $1
+ ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
call CinnabarGymQuiz_1ea92
jp TextScriptEnd
-CinnabarGymQuizDummyIntroText: ; 1e401 (7:6401)
+CinnabarGymQuizDummyIntroText:
TX_FAR _CinnabarGymQuizDummyIntroText
db "@"
-CinnabarGymQuizIntroText: ; 1e406 (7:6406)
+CinnabarGymQuizIntroText:
TX_FAR _CinnabarGymQuizIntroText
db "@"
-CinnabarGymQuizShortIntroText: ; 1e40b (7:640b)
+CinnabarGymQuizShortIntroText:
TX_FAR _CinnabarGymQuizShortIntroText
db "@"
-CinnabarQuizQuestions: ; 1e410 (7:6410)
+CinnabarQuizQuestions:
dw CinnabarQuizQuestionsText1
dw CinnabarQuizQuestionsText2
dw CinnabarQuizQuestionsText3
@@ -179,31 +179,31 @@ CinnabarQuizQuestions: ; 1e410 (7:6410)
dw CinnabarQuizQuestionsText5
dw CinnabarQuizQuestionsText6
-CinnabarQuizQuestionsText1: ; 1e41c (7:641c)
+CinnabarQuizQuestionsText1:
TX_FAR _CinnabarQuizQuestionsText1
db "@"
-CinnabarQuizQuestionsText2: ; 1e421 (7:6421)
+CinnabarQuizQuestionsText2:
TX_FAR _CinnabarQuizQuestionsText2
db "@"
-CinnabarQuizQuestionsText3: ; 1e426 (7:6426)
+CinnabarQuizQuestionsText3:
TX_FAR _CinnabarQuizQuestionsText3
db "@"
-CinnabarQuizQuestionsText4: ; 1e42b (7:642b)
+CinnabarQuizQuestionsText4:
TX_FAR _CinnabarQuizQuestionsText4
db "@"
-CinnabarQuizQuestionsText5: ; 1e430 (7:6430)
+CinnabarQuizQuestionsText5:
TX_FAR _CinnabarQuizQuestionsText5
db "@"
-CinnabarQuizQuestionsText6: ; 1e435 (7:6435)
+CinnabarQuizQuestionsText6:
TX_FAR _CinnabarQuizQuestionsText6
db "@"
-CinnabarGymQuiz_1ea92: ; 1e43a (7:643a)
+CinnabarGymQuiz_1ea92:
call YesNoChoice
ld a, [$ffdc]
ld c, a
@@ -246,7 +246,7 @@ CinnabarGymQuiz_1ea92: ; 1e43a (7:643a)
set 7, [hl]
ret
-CinnabarGymQuizCorrectText: ; 1e490 (7:6490)
+CinnabarGymQuizCorrectText:
db $0b
TX_FAR _CinnabarGymQuizCorrectText
db $06
@@ -266,15 +266,15 @@ CinnabarGymQuizCorrectText: ; 1e490 (7:6490)
call WaitForSoundToFinish
jp TextScriptEnd
-CinnabarGymQuizIncorrectText: ; 1e4b2 (7:64b2)
+CinnabarGymQuizIncorrectText:
TX_FAR _CinnabarGymQuizIncorrectText
db "@"
-CinnabarGymGateFlagAction: ; 1e4b7 (7:64b7)
+CinnabarGymGateFlagAction:
EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
predef_jump FlagActionPredef
-UpdateCinnabarGymGateTileBlocks_: ; 1e4bf (7:64bf)
+UpdateCinnabarGymGateTileBlocks_:
; Update the overworld map with open floor blocks or locked gate blocks
; depending on event flags.
ld a, 6
@@ -318,7 +318,7 @@ UpdateCinnabarGymGateTileBlocks_: ; 1e4bf (7:64bf)
callab RedrawMapView
ret
-CinnabarGymGateCoords: ; 1e503 (7:6503)
+CinnabarGymGateCoords:
; format: x-coord, y-coord, direction, padding
; direction: $54 = horizontal gate, $5f = vertical gate
db $09,$03,$54,$00
@@ -329,7 +329,7 @@ CinnabarGymGateCoords: ; 1e503 (7:6503)
db $02,$03,$54,$00
-CinnabarGym_ReplaceTileBlock: ; 1e51b (7:651b)
+CinnabarGym_ReplaceTileBlock:
; basically a copy of the first half of ReplaceTileBlock
; before checking if it is necessary to redraw the map view
ld hl, wOverworldMap
@@ -356,16 +356,16 @@ CinnabarGym_ReplaceTileBlock: ; 1e51b (7:651b)
ld [hl], a
ret
-PrintMagazinesText: ; 1e53b (7:653b)
+PrintMagazinesText:
call EnableAutoTextBoxDrawing
tx_pre MagazinesText
ret
-MagazinesText: ; 1e544 (7:6544)
+MagazinesText:
TX_FAR _MagazinesText
db "@"
-BillsHousePC: ; 1e549 (7:6549)
+BillsHousePC:
call EnableAutoTextBoxDrawing
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
@@ -411,11 +411,11 @@ BillsHousePC: ; 1e549 (7:6549)
tx_pre BillsHousePokemonList
ret
-BillsHouseMonitorText: ; 1e5b8 (7:65b8)
+BillsHouseMonitorText:
TX_FAR _BillsHouseMonitorText
db "@"
-BillsHouseInitiatedText: ; 1e5bd (7:65b2)
+BillsHouseInitiatedText:
TX_FAR _BillsHouseInitiatedText
db $06
TX_ASM
@@ -429,22 +429,22 @@ BillsHouseInitiatedText: ; 1e5bd (7:65b2)
call DelayFrames
jp TextScriptEnd
-BillsHousePokemonList: ; 1e5dc (7:65dc)
+BillsHousePokemonList:
TX_ASM
call SaveScreenTilesToBuffer1
ld hl, BillsHousePokemonListText1
call PrintText
xor a
- ld [wMenuItemOffset], a
+ ld [wMenuItemOffset], a ; not used
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $4
+ ld a, 4
ld [wMaxMenuItem], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
.billsPokemonLoop
ld hl, wd730
@@ -482,22 +482,22 @@ BillsHousePokemonList: ; 1e5dc (7:65dc)
call LoadScreenTilesFromBuffer2
jp TextScriptEnd
-BillsHousePokemonListText1: ; 1e654 (7:6654)
+BillsHousePokemonListText1:
TX_FAR _BillsHousePokemonListText1
db "@"
-BillsMonListText: ; 1e659 (7:6659)
+BillsMonListText:
db "EEVEE"
next "FLAREON"
next "JOLTEON"
next "VAPOREON"
next "CANCEL@"
-BillsHousePokemonListText2: ; 1e67f (7:667f)
+BillsHousePokemonListText2:
TX_FAR _BillsHousePokemonListText2
db "@"
-DisplayOakLabEmailText: ; 1e684 (7:6684)
+DisplayOakLabEmailText:
ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
ret nz
@@ -505,6 +505,6 @@ DisplayOakLabEmailText: ; 1e684 (7:6684)
tx_pre OakLabEmailText
ret
-OakLabEmailText: ; 1e693 (7:6693)
+OakLabEmailText:
TX_FAR _OakLabEmailText
db "@"
diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm
index 789f1bd7..566a7b61 100755
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -1,9 +1,9 @@
-HPBarLength: ; f86c (3:786c)
+HPBarLength:
call GetPredefRegisters
; calculates bc * 48 / de, the number of pixels the HP bar has
; the result is always at least 1
-GetHPBarLength: ; f86f (3:786f)
+GetHPBarLength:
push hl
xor a
ld hl, H_MULTIPLICAND
@@ -45,7 +45,7 @@ GetHPBarLength: ; f86f (3:786f)
ret
; predef $48
-UpdateHPBar: ; f8ad (3:78ad)
+UpdateHPBar:
UpdateHPBar2:
push hl
ld hl, wHPBarOldHP
@@ -87,6 +87,7 @@ UpdateHPBar2:
call UpdateHPBar_CompareNewHPToOldHP
jr z, .animateHPBarDone
jr nc, .HPIncrease
+; HP decrease
dec bc ; subtract 1 HP
ld a, c
ld [wHPBarNewHP], a
@@ -95,7 +96,7 @@ UpdateHPBar2:
call UpdateHPBar_CalcOldNewHPBarPixels
ld a, e
sub d ; calc pixel difference
- jr .asm_f90e
+ jr .ok
.HPIncrease
inc bc ; add 1 HP
ld a, c
@@ -105,7 +106,7 @@ UpdateHPBar2:
call UpdateHPBar_CalcOldNewHPBarPixels
ld a, d
sub e ; calc pixel difference
-.asm_f90e
+.ok
call UpdateHPBar_PrintHPNumber
and a
jr z, .noPixelDifference
@@ -136,7 +137,7 @@ UpdateHPBar2:
; animates the HP bar going up or down for (a) ticks (two waiting frames each)
; stops prematurely if bar is filled up
; e: current health (in pixels) to start with
-UpdateHPBar_AnimateHPBar: ; f941 (3:7941)
+UpdateHPBar_AnimateHPBar:
push hl
.barAnimationLoop
push af
@@ -162,7 +163,7 @@ UpdateHPBar_AnimateHPBar: ; f941 (3:7941)
ret
; compares old HP and new HP and sets c and z flags accordingly
-UpdateHPBar_CompareNewHPToOldHP: ; f961 (3:7961)
+UpdateHPBar_CompareNewHPToOldHP:
ld a, d
sub b
ret nz
@@ -171,7 +172,7 @@ UpdateHPBar_CompareNewHPToOldHP: ; f961 (3:7961)
ret
; calcs HP difference between bc and de (into de)
-UpdateHPBar_CalcHPDifference: ; f967 (3:7967)
+UpdateHPBar_CalcHPDifference:
ld a, d
sub b
jr c, .oldHPGreater
@@ -200,7 +201,7 @@ UpdateHPBar_CalcHPDifference: ; f967 (3:7967)
ld de, $0
ret
-UpdateHPBar_PrintHPNumber: ; f985 (3:7985)
+UpdateHPBar_PrintHPNumber:
push af
push de
ld a, [wHPBarType]
@@ -238,7 +239,7 @@ UpdateHPBar_PrintHPNumber: ; f985 (3:7985)
; calcs number of HP bar pixels for old and new HP value
; d: new pixels
; e: old pixels
-UpdateHPBar_CalcOldNewHPBarPixels: ; f9be (3:79be)
+UpdateHPBar_CalcOldNewHPBarPixels:
push hl
ld hl, wHPBarMaxHP
ld a, [hli] ; max HP into de
diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm
index ff739ef0..60719c7e 100755
--- a/engine/in_game_trades.asm
+++ b/engine/in_game_trades.asm
@@ -1,4 +1,4 @@
-DoInGameTradeDialogue: ; 71b86 (1c:5b86)
+DoInGameTradeDialogue:
; trigger the trade offer/action specified by wWhichTrade
call SaveScreenTilesToBuffer2
ld hl,TradeMons
@@ -67,7 +67,7 @@ DoInGameTradeDialogue: ; 71b86 (1c:5b86)
jp PrintText
; copies name of species a to hl
-InGameTrade_GetMonName: ; 71c0c (1c:5c0c)
+InGameTrade_GetMonName:
push de
ld [wd11e],a
call GetMonName
@@ -78,7 +78,7 @@ InGameTrade_GetMonName: ; 71c0c (1c:5c0c)
INCLUDE "data/trades.asm"
-InGameTrade_DoTrade: ; 71ca9 (1c:5ca9)
+InGameTrade_DoTrade:
xor a ; NORMAL_PARTY_MENU
ld [wPartyMenuTypeOrMessageID],a
dec a
@@ -133,13 +133,13 @@ InGameTrade_DoTrade: ; 71ca9 (1c:5ca9)
and a
ld a,$3
jr .tradeSucceeded
-.tradeFailed ; never jumped to
+.tradeFailed
scf
.tradeSucceeded
ld [wInGameTradeTextPointerTableIndex],a
ret
-InGameTrade_RestoreScreen: ; 71d36 (1c:5d36)
+InGameTrade_RestoreScreen:
call GBPalWhiteOutWithDelay3
call RestoreScreenTilesAndReloadTilePatterns
call ReloadTilesetTilePatterns
@@ -150,7 +150,7 @@ InGameTrade_RestoreScreen: ; 71d36 (1c:5d36)
call DelayFrames
jpba LoadWildData
-InGameTrade_PrepareTradeData: ; 71d55 (1c:5d55)
+InGameTrade_PrepareTradeData:
ld hl, wTradedPlayerMonSpecies
ld a, [wInGameTradeGiveMonSpecies]
ld [hli], a ; wTradedPlayerMonSpecies
@@ -180,7 +180,7 @@ InGameTrade_PrepareTradeData: ; 71d55 (1c:5d55)
ld de, wTradedEnemyMonOTID
jp CopyData
-InGameTrade_CopyData: ; 71da5 (1c:5da5)
+InGameTrade_CopyData:
push hl
push bc
call CopyData
@@ -188,7 +188,7 @@ InGameTrade_CopyData: ; 71da5 (1c:5da5)
pop hl
ret
-InGameTrade_CopyDataToReceivedMon: ; 71dad (1c:5dad)
+InGameTrade_CopyDataToReceivedMon:
ld hl, wPartyMonNicks
ld bc, NAME_LENGTH
call InGameTrade_GetReceivedMonPointer
@@ -210,7 +210,7 @@ InGameTrade_CopyDataToReceivedMon: ; 71dad (1c:5dad)
; the received mon's index is (partyCount - 1),
; so this adds bc to hl (partyCount - 1) times and moves the result to de
-InGameTrade_GetReceivedMonPointer: ; 71de3 (1c:5de3)
+InGameTrade_GetReceivedMonPointer:
ld a, [wPartyCount]
dec a
call AddNTimes
@@ -218,13 +218,13 @@ InGameTrade_GetReceivedMonPointer: ; 71de3 (1c:5de3)
ld d, h
ret
-InGameTrade_FlagActionPredef: ; 71ded (1c:5ded)
+InGameTrade_FlagActionPredef:
ld hl,wCompletedInGameTradeFlags
ld a,[wWhichTrade]
ld c,a
predef_jump FlagActionPredef
-InGameTrade_CheckForTradeEvo: ; 71df9 (1c:5df9)
+InGameTrade_CheckForTradeEvo:
ld a,[wInGameTradeReceiveMonSpecies]
cp KADABRA
jr z,.tradeEvo
@@ -249,100 +249,100 @@ InGameTrade_CheckForTradeEvo: ; 71df9 (1c:5df9)
ld [wLinkState],a
jp PlayDefaultMusic
-InGameTrade_TrainerString: ; 71e2d (1c:5e2d)
+InGameTrade_TrainerString:
; "TRAINER@@@@@@@@@@"
db $5d, "@@@@@@@@@@"
-InGameTradeTextPointers: ; 71e38 (1c:5e38)
+InGameTradeTextPointers:
dw TradeTextPointers1
dw TradeTextPointers2
dw TradeTextPointers3
-TradeTextPointers1: ; 71e3e (1c:5e3e)
+TradeTextPointers1:
dw WannaTrade1Text
dw NoTrade1Text
dw WrongMon1Text
dw Thanks1Text
dw AfterTrade1Text
-TradeTextPointers2: ; 71e48 (1c:5e48)
+TradeTextPointers2:
dw WannaTrade2Text
dw NoTrade2Text
dw WrongMon2Text
dw Thanks2Text
dw AfterTrade2Text
-TradeTextPointers3: ; 71e52 (1c:5e52)
+TradeTextPointers3:
dw WannaTrade3Text
dw NoTrade3Text
dw WrongMon3Text
dw Thanks3Text
dw AfterTrade3Text
-ConnectCableText: ; 71e5c (1c:5e5c)
+ConnectCableText:
TX_FAR _ConnectCableText
db "@"
-TradedForText: ; 71e61 (1c:5e61)
+TradedForText:
TX_FAR _TradedForText
db $11, $a, "@"
-WannaTrade1Text: ; 71e66 (1c:5e66)
+WannaTrade1Text:
TX_FAR _WannaTrade1Text
db "@"
-NoTrade1Text: ; 71e6b (1c:5e6b)
+NoTrade1Text:
TX_FAR _NoTrade1Text
db "@"
-WrongMon1Text: ; 71e70 (1c:5e70)
+WrongMon1Text:
TX_FAR _WrongMon1Text
db "@"
-Thanks1Text: ; 71e75 (1c:5e75)
+Thanks1Text:
TX_FAR _Thanks1Text
db "@"
-AfterTrade1Text: ; 71e7a (1c:5e7a)
+AfterTrade1Text:
TX_FAR _AfterTrade1Text
db "@"
-WannaTrade2Text: ; 71e7f (1c:5e7f)
+WannaTrade2Text:
TX_FAR _WannaTrade2Text
db "@"
-NoTrade2Text: ; 71e84 (1c:5e84)
+NoTrade2Text:
TX_FAR _NoTrade2Text
db "@"
-WrongMon2Text: ; 71e89 (1c:5e89)
+WrongMon2Text:
TX_FAR _WrongMon2Text
db "@"
-Thanks2Text: ; 71e8e (1c:5e8e)
+Thanks2Text:
TX_FAR _Thanks2Text
db "@"
-AfterTrade2Text: ; 71e93 (1c:5e93)
+AfterTrade2Text:
TX_FAR _AfterTrade2Text
db "@"
-WannaTrade3Text: ; 71e98 (1c:5e98)
+WannaTrade3Text:
TX_FAR _WannaTrade3Text
db "@"
-NoTrade3Text: ; 71e9d (1c:5d9d)
+NoTrade3Text:
TX_FAR _NoTrade3Text
db "@"
-WrongMon3Text: ; 71ea2 (1c:5ea2)
+WrongMon3Text:
TX_FAR _WrongMon3Text
db "@"
-Thanks3Text: ; 71ea7 (1c:5ea7)
+Thanks3Text:
TX_FAR _Thanks3Text
db "@"
-AfterTrade3Text: ; 71eac (1c:5eac)
+AfterTrade3Text:
TX_FAR _AfterTrade3Text
db "@"
diff --git a/engine/init_player_data.asm b/engine/init_player_data.asm
index f240b5db..5883547c 100644
--- a/engine/init_player_data.asm
+++ b/engine/init_player_data.asm
@@ -1,4 +1,4 @@
-InitPlayerData: ; f6d6 (3:76d6)
+InitPlayerData:
InitPlayerData2:
call Random
@@ -52,9 +52,9 @@ START_MONEY EQU $3000
jp InitializeMissableObjectsFlags
-InitializeEmptyList: ; f730 (3:7730)
+InitializeEmptyList:
xor a ; count
ld [hli], a
dec a ; terminator
ld [hl], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/intro.asm b/engine/intro.asm
index 27a357a7..37bd0151 100755
--- a/engine/intro.asm
+++ b/engine/intro.asm
@@ -2,13 +2,13 @@ MOVE_GENGAR_RIGHT EQU $00
MOVE_GENGAR_LEFT EQU $01
MOVE_NIDORINO_RIGHT EQU $ff
-PlayIntro: ; 41997 (10:5997)
+PlayIntro:
xor a
ld [hJoyHeld], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call PlayShootingStar
- callab PlayIntroScene ; 3e:582d
+ callab PlayIntroScene
xor a
ld [hSCX], a
ld [H_AUTOBGTRANSFERENABLED], a
@@ -16,7 +16,7 @@ PlayIntro: ; 41997 (10:5997)
call DelayFrame
ret
-InitIntroNidorinoOAM: ; 419b4 (10:59b4)
+InitIntroNidorinoOAM:
ld hl, wOAMBuffer
ld d, 0
.loop
@@ -45,17 +45,17 @@ InitIntroNidorinoOAM: ; 419b4 (10:59b4)
jr nz, .loop
ret
-IntroClearScreen: ; 419dd (10:59dd)
+IntroClearScreen:
ld hl, vBGMap1
ld bc, $240
jr IntroClearCommon
-IntroClearMiddleOfScreen: ; 419e5 (10:59e5)
+IntroClearMiddleOfScreen:
; clear the area of the tile map between the black bars on the top and bottom
coord hl, 0, 4
ld bc, SCREEN_WIDTH * 10
-IntroClearCommon: ; 419eb (10:59eb)
+IntroClearCommon:
ld [hl], $0
inc hl
dec bc
@@ -64,7 +64,7 @@ IntroClearCommon: ; 419eb (10:59eb)
jr nz, IntroClearCommon
ret
-IntroPlaceBlackTiles: ; 419f4 (10:59f4)
+IntroPlaceBlackTiles:
ld a, $1
.loop
ld [hli], a
@@ -72,11 +72,11 @@ IntroPlaceBlackTiles: ; 419f4 (10:59f4)
jr nz, .loop
ret
-CopyTileIDsFromList_ZeroBaseTileID: ; 419fb (10:59fb)
+CopyTileIDsFromList_ZeroBaseTileID:
ld c, 0
predef_jump CopyTileIDsFromList
-PlayShootingStar: ; 41a02 (10:5a02)
+PlayShootingStar:
ld b, SET_PAL_GAME_FREAK_INTRO
call RunPaletteCommand
callba LoadCopyrightAndTextBoxTiles
@@ -128,7 +128,7 @@ PlayShootingStar: ; 41a02 (10:5a02)
call ClearSprites
jp Delay3
-IntroDrawBlackBars: ; 41a82 (10:5a82)
+IntroDrawBlackBars:
; clear the screen and draw black bars on the top and bottom
call IntroClearScreen
coord hl, 0, 0
@@ -144,11 +144,11 @@ IntroDrawBlackBars: ; 41a82 (10:5a82)
ld c, $80
jp IntroPlaceBlackTiles
-EmptyFunc4: ; 41aa5 (10:5aa5)
+EmptyFunc4:
ret
-GameFreakIntro: ; 41959 (10:5aa6)
+GameFreakIntro:
INCBIN "gfx/gamefreak_intro.2bpp"
INCBIN "gfx/gamefreak_logo.2bpp"
ds $10 ; blank tile
-GameFreakIntroEnd: \ No newline at end of file
+GameFreakIntroEnd:
diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm
index 7b479462..7c15d4bb 100755
--- a/engine/items/itemfinder.asm
+++ b/engine/items/itemfinder.asm
@@ -1,4 +1,4 @@
-HiddenItemNear: ; 7405c (1d:405c)
+HiddenItemNear:
ld hl, HiddenItemCoords
ld b, 0
.loop
@@ -43,7 +43,7 @@ HiddenItemNear: ; 7405c (1d:405c)
scf
ret
-Sub5ClampTo0: ; 740a8 (1d:40a8)
+Sub5ClampTo0:
; subtract 5 but clamp to 0
sub 5
cp $f0
diff --git a/engine/items/items.asm b/engine/items/items.asm
index 1858c5f0..984cc381 100755
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -1,4 +1,4 @@
-UseItem_: ; d2ed (3:52ed)
+UseItem_:
ld a, 1
ld [wActionResultOrTookBattleTurn], a ; initialise to success value
ld a, [wcf91] ;contains item_ID
@@ -15,7 +15,7 @@ UseItem_: ; d2ed (3:52ed)
ld l, a
jp [hl]
-ItemUsePtrTable: ; d307 (3:5307)
+ItemUsePtrTable:
dw ItemUseBall ; MASTER_BALL
dw ItemUseBall ; ULTRA_BALL
dw ItemUseBall ; GREAT_BALL
@@ -100,7 +100,7 @@ ItemUsePtrTable: ; d307 (3:5307)
dw ItemUsePPRestore ; ELIXER
dw ItemUsePPRestore ; MAX_ELIXER
-ItemUseBall: ; d3ad (3:53ad)
+ItemUseBall:
; Balls can't be used out of battle.
ld a,[wIsInBattle]
@@ -608,56 +608,56 @@ ItemUseBall: ; d3ad (3:53ad)
.emptyString
db "@"
-ItemUseBallText00: ; d697 (3:5697)
+ItemUseBallText00:
;"It dodged the thrown ball!"
;"This pokemon can't be caught"
TX_FAR _ItemUseBallText00
db "@"
-ItemUseBallText01: ; d69c (3:569c)
+ItemUseBallText01:
;"You missed the pokemon!"
TX_FAR _ItemUseBallText01
db "@"
-ItemUseBallText02: ; d6a1 (3:56a1)
+ItemUseBallText02:
;"Darn! The pokemon broke free!"
TX_FAR _ItemUseBallText02
db "@"
-ItemUseBallText03: ; d6a6 (3:56a6)
+ItemUseBallText03:
;"Aww! It appeared to be caught!"
TX_FAR _ItemUseBallText03
db "@"
-ItemUseBallText04: ; d6ab (3:56ab)
+ItemUseBallText04:
;"Shoot! It was so close too!"
TX_FAR _ItemUseBallText04
db "@"
-ItemUseBallText05: ; d6b0 (3:56b0)
+ItemUseBallText05:
;"All right! {MonName} was caught!"
;play sound
TX_FAR _ItemUseBallText05
db $12, $06
db "@"
-ItemUseBallText07: ; d6b7 (3:59b7)
+ItemUseBallText07:
;"X was transferred to Bill's PC"
TX_FAR _ItemUseBallText07
db "@"
-ItemUseBallText08: ; d6bc (3:56bc)
+ItemUseBallText08:
;"X was transferred to someone's PC"
TX_FAR _ItemUseBallText08
db "@"
-ItemUseBallText06: ; d6c1 (3:56c1)
+ItemUseBallText06:
;"New DEX data will be added..."
;play sound
TX_FAR _ItemUseBallText06
db $13, $06
db "@"
-ItemUseTownMap: ; d6c8 (3:56c8)
+ItemUseTownMap:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
jpba DisplayTownMap
-ItemUseBicycle: ; d6d7 (3:56d7)
+ItemUseBicycle:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
@@ -695,7 +695,7 @@ ItemUseBicycle: ; d6d7 (3:56d7)
ret
; used for Surf out-of-battle effect
-ItemUseSurfboard: ; d725 (3:5725)
+ItemUseSurfboard:
ld a, [wWalkBikeSurfState]
ld [wWalkBikeSurfStateCopy], a
cp 2 ; is the player already surfing?
@@ -774,18 +774,18 @@ ItemUseSurfboard: ; d725 (3:5725)
ld [wSimulatedJoypadStatesIndex], a
ret
-SurfingGotOnText: ; d7c1 (3:57c1)
+SurfingGotOnText:
TX_FAR _SurfingGotOnText
db "@"
-SurfingNoPlaceToGetOffText: ; d7c6 (3:57c6)
+SurfingNoPlaceToGetOffText:
TX_FAR _SurfingNoPlaceToGetOffText
db "@"
-ItemUsePokedex: ; d7cb (3:57cb)
+ItemUsePokedex:
predef_jump ShowPokedexMenu
-ItemUseEvoStone: ; d7d0 (3:57d0)
+ItemUseEvoStone:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
@@ -844,7 +844,7 @@ ItemUseEvoStone: ; d7d0 (3:57d0)
pop af
ret
-Func_d85d: ; d85d (3:585d)
+Func_d85d:
ld hl, EvosMovesPointerTable
ld a, [wLoadedMon]
dec a
@@ -889,16 +889,16 @@ Func_d85d: ; d85d (3:585d)
and a
ret
-RefusingText: ; d8a2 (3:58a2)
+RefusingText:
TX_FAR _RefusingText
db "@"
-ItemUseVitamin: ; d8a7 (3:58a7)
+ItemUseVitamin:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
-ItemUseMedicine: ; d8ae (3:58ae)
+ItemUseMedicine:
ld a, [wPartyCount]
and a
jp z, Func_e4bf
@@ -1554,22 +1554,22 @@ ItemUseMedicine: ; d8ae (3:58ae)
ld [wWhichPokemon], a
jp RemoveUsedItem
-VitaminStatRoseText: ; dd44 (3:5d44)
+VitaminStatRoseText:
TX_FAR _VitaminStatRoseText
db "@"
-VitaminNoEffectText: ; dd49 (3:5d49)
+VitaminNoEffectText:
TX_FAR _VitaminNoEffectText
db "@"
-VitaminText: ; dd4e (3:5d4e)
+VitaminText:
db "HEALTH@"
db "ATTACK@"
db "DEFENSE@"
db "SPEED@"
db "SPECIAL@"
-ItemUseBait: ; dd72 (3:5d72)
+ItemUseBait:
ld hl, ThrewBaitText
call PrintText
ld hl, wEnemyMonCatchRate ; catch rate
@@ -1579,7 +1579,7 @@ ItemUseBait: ; dd72 (3:5d72)
ld de, wSafariEscapeFactor ; escape factor
jr BaitRockCommon
-ItemUseRock: ; dd87 (3:5d87)
+ItemUseRock:
ld hl, ThrewRockText
call PrintText
ld hl, wEnemyMonCatchRate ; catch rate
@@ -1593,7 +1593,7 @@ ItemUseRock: ; dd87 (3:5d87)
ld hl, wSafariEscapeFactor ; escape factor
ld de, wSafariBaitFactor ; bait factor
-BaitRockCommon: ; dd9f (3:5d9f)
+BaitRockCommon:
ld [wAnimationID], a
xor a
ld [wAnimationType], a
@@ -1616,16 +1616,16 @@ BaitRockCommon: ; dd9f (3:5d9f)
ld c, 70
jp DelayFrames
-ThrewBaitText: ; ddc6 (3:5dc6)
+ThrewBaitText:
TX_FAR _ThrewBaitText
db "@"
-ThrewRockText: ; ddca (3:5dca)
+ThrewRockText:
TX_FAR _ThrewRockText
db "@"
; also used for Dig out-of-battle effect
-ItemUseEscapeRope: ; ddcf (3:5dcf)
+ItemUseEscapeRope:
ld a, [wIsInBattle]
and a
jr nz, .notUsable
@@ -1669,14 +1669,14 @@ ItemUseEscapeRope: ; ddcf (3:5dcf)
.notUsable
jp ItemUseNotTime
-EscapeRopeTilesets: ; de28 (3:5e28)
+EscapeRopeTilesets:
db FOREST, CEMETERY, CAVERN, FACILITY, INTERIOR
db $ff ; terminator
-ItemUseRepel: ; de2e (3:5e2e)
+ItemUseRepel:
ld b, 100
-ItemUseRepelCommon: ; e005 (3:6005)
+ItemUseRepelCommon:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
@@ -1685,7 +1685,7 @@ ItemUseRepelCommon: ; e005 (3:6005)
jp PrintItemUseTextAndRemoveItem
; handles X Accuracy item
-ItemUseXAccuracy: ; de3e (3:5e3e)
+ItemUseXAccuracy:
ld a, [wIsInBattle]
and a
jp z, ItemUseNotTime
@@ -1696,7 +1696,7 @@ ItemUseXAccuracy: ; de3e (3:5e3e)
; This function is bugged and never works. It always jumps to ItemUseNotTime.
; The Card Key is handled in a different way.
-ItemUseCardKey: ; de57 (3:de57)
+ItemUseCardKey:
xor a
ld [wUnusedD71F], a
call GetTileAndCoordsInFrontOfPlayer
@@ -1760,7 +1760,7 @@ ItemUseCardKey: ; de57 (3:de57)
; 02: X
; 03: ID?
-CardKeyTable1: ; dea7 (3:5ea7)
+CardKeyTable1:
db SILPH_CO_2F, $04, $04, $00
db SILPH_CO_2F, $04, $05, $01
db SILPH_CO_4F, $0C, $04, $02
@@ -1773,7 +1773,7 @@ CardKeyTable1: ; dea7 (3:5ea7)
db SILPH_CO_10F, $08, $0B, $09
db $ff
-CardKeyTable2: ; ded0 (3:5ed0)
+CardKeyTable2:
db SILPH_CO_3F, $08, $09, $0A
db SILPH_CO_3F, $09, $09, $0B
db SILPH_CO_5F, $04, $07, $0C
@@ -1786,12 +1786,12 @@ CardKeyTable2: ; ded0 (3:5ed0)
db SILPH_CO_9F, $09, $03, $13
db $ff
-CardKeyTable3: ; def9 (3:5ef9)
+CardKeyTable3:
db SILPH_CO_11F, $08, $09, $14
db SILPH_CO_11F, $09, $09, $15
db $ff
-ItemUsePokedoll: ; df02 (3:5f02)
+ItemUsePokedoll:
ld a, [wIsInBattle]
dec a
jp nz, ItemUseNotTime
@@ -1799,7 +1799,7 @@ ItemUsePokedoll: ; df02 (3:5f02)
ld [wEscapedFromBattle], a
jp PrintItemUseTextAndRemoveItem
-ItemUseGuardSpec: ; df11 (3:5f11)
+ItemUseGuardSpec:
ld a, [wIsInBattle]
and a
jp z, ItemUseNotTime
@@ -1816,15 +1816,15 @@ ItemUseGuardSpec: ; df11 (3:5f11)
set ProtectedByMist, [hl] ; Mist bit
jp PrintItemUseTextAndRemoveItem
-ItemUseSuperRepel: ; df38 (3:5f38)
+ItemUseSuperRepel:
ld b, 200
jp ItemUseRepelCommon
-ItemUseMaxRepel: ; df3d (3:5f3d)
+ItemUseMaxRepel:
ld b, 250
jp ItemUseRepelCommon
-ItemUseDireHit: ; df42 (3:5f42)
+ItemUseDireHit:
ld a, [wIsInBattle]
and a
jp z, ItemUseNotTime
@@ -1841,7 +1841,7 @@ ItemUseDireHit: ; df42 (3:5f42)
set GettingPumped, [hl] ; Focus Energy bit
jp PrintItemUseTextAndRemoveItem
-ItemUseXStat: ; df69 (3:df69)
+ItemUseXStat:
ld a, [wIsInBattle]
and a
jr nz, .inBattle
@@ -1884,7 +1884,7 @@ ItemUseXStat: ; df69 (3:df69)
ld [hl], a ; restore [wPlayerMoveNum]
ret
-ItemUsePokeflute: ; dfbd (3:5fbd)
+ItemUsePokeflute:
ld a, [wIsInBattle]
and a
jr nz, .inBattle
@@ -1928,8 +1928,8 @@ ItemUsePokeflute: ; dfbd (3:5fbd)
ld hl, PlayedFluteHadEffectText
call PrintText
call ItemUseReloadOverworldData
- ld e, $1a
- callab Func_fd001
+ ldpikaemotion e, PikachuEmotion26
+ callab PlaySpecificPikachuEmotion
ret
.noSnorlaxOrPikachuToWakeUp
@@ -1992,7 +1992,7 @@ ItemUsePokeflute: ; dfbd (3:5fbd)
; [wWereAnyMonsAsleep] should be initialized to 0
; OUTPUT:
; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep
-WakeUpEntireParty: ; e094 (3:6094)
+WakeUpEntireParty:
ld de, 44
ld c, 6
.loop
@@ -2014,7 +2014,7 @@ WakeUpEntireParty: ; e094 (3:6094)
; Format:
; 00: Y
; 01: X
-Route12SnorlaxFluteCoords: ; e0ac (3:60ac)
+Route12SnorlaxFluteCoords:
db 62, 9 ; one space West of Snorlax
db 61, 10 ; one space North of Snorlax
db 63, 10 ; one space South of Snorlax
@@ -2024,20 +2024,20 @@ Route12SnorlaxFluteCoords: ; e0ac (3:60ac)
; Format:
; 00: Y
; 01: X
-Route16SnorlaxFluteCoords: ; e0b5 (3:60b5)
+Route16SnorlaxFluteCoords:
db 10, 27 ; one space East of Snorlax
db 10, 25 ; one space West of Snorlax
db $ff ; terminator
-PlayedFluteNoEffectText: ; e0ba (3:60ba)
+PlayedFluteNoEffectText:
TX_FAR _PlayedFluteNoEffectText
db "@"
-FluteWokeUpText: ; e0bf (3:60bf)
+FluteWokeUpText:
TX_FAR _FluteWokeUpText
db "@"
-PlayedFluteHadEffectText: ; e0c4 (3:60c4)
+PlayedFluteHadEffectText:
TX_FAR _PlayedFluteHadEffectText
db $06
TX_ASM
@@ -2057,25 +2057,25 @@ PlayedFluteHadEffectText: ; e0c4 (3:60c4)
.done
jp TextScriptEnd ; end text
-ItemUseCoinCase: ; e0e7 (3:60e7)
+ItemUseCoinCase:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
ld hl, CoinCaseNumCoinsText
jp PrintText
-CoinCaseNumCoinsText: ; e0f1 (3:60f1)
+CoinCaseNumCoinsText:
TX_FAR _CoinCaseNumCoinsText
db "@"
-ItemUseOldRod: ; e0f9 (3:60f9)
+ItemUseOldRod:
call FishingInit
jp c, ItemUseNotTime
lb bc, 5, MAGIKARP
ld a, $1 ; set bite
jr RodResponse
-ItemUseGoodRod: ; e106 (3:6106)
+ItemUseGoodRod:
call FishingInit
jp c, ItemUseNotTime
.RandomLoop
@@ -2103,7 +2103,7 @@ ItemUseGoodRod: ; e106 (3:6106)
INCLUDE "data/good_rod.asm"
-ItemUseSuperRod: ; e130 (3:6130)
+ItemUseSuperRod:
call FishingInit
jp c, ItemUseNotTime
callab ReadSuperRodData
@@ -2123,7 +2123,7 @@ ItemUseSuperRod: ; e130 (3:6130)
ld [wRodResponse], a
jr DoNotGenerateFishingEncounter
-RodResponse: ; e15b (3:615b)
+RodResponse:
ld [wRodResponse], a
dec a ; is there a bite?
@@ -2136,7 +2136,7 @@ RodResponse: ; e15b (3:615b)
ld a, c ; species
ld [wCurOpponent], a
-DoNotGenerateFishingEncounter: ; e16e (3:616e)
+DoNotGenerateFishingEncounter:
ld hl, wWalkBikeSurfState
ld a, [hl] ; store the value in a
push af
@@ -2150,7 +2150,7 @@ DoNotGenerateFishingEncounter: ; e16e (3:616e)
; checks if fishing is possible and if so, runs initialization code common to all rods
; unsets carry if fishing is possible, sets carry if not
-FishingInit: ; e182 (3:6182)
+FishingInit:
ld a, [wIsInBattle]
and a
jr z, .notInBattle
@@ -2181,10 +2181,10 @@ FishingInit: ; e182 (3:6182)
scf ; can't fish when surfing
ret
-ItemUseOaksParcel: ; e1b7 (3:61b7)
+ItemUseOaksParcel:
jp ItemUseNotYoursToUse
-ItemUseItemfinder: ; e1ba (3:61ba)
+ItemUseItemfinder:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
@@ -2204,20 +2204,20 @@ ItemUseItemfinder: ; e1ba (3:61ba)
.printText
jp PrintText
-ItemfinderFoundItemText: ; e1e6 (3:61e6)
+ItemfinderFoundItemText:
TX_FAR _ItemfinderFoundItemText
db "@"
-ItemfinderFoundNothingText: ; e1eb (3:61eb)
+ItemfinderFoundNothingText:
TX_FAR _ItemfinderFoundNothingText
db "@"
-ItemUsePPUp: ; e1f0 (3:61f0)
+ItemUsePPUp:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
-ItemUsePPRestore: ; e1f7 (3:61f7)
+ItemUsePPRestore:
ld a, [wWhichPokemon]
push af
ld a, [wcf91]
@@ -2417,31 +2417,31 @@ ItemUsePPRestore: ; e1f7 (3:61f7)
ld [wActionResultOrTookBattleTurn], a ; item use failed
ret
-RaisePPWhichTechniqueText: ; e358 (3:6358)
+RaisePPWhichTechniqueText:
TX_FAR _RaisePPWhichTechniqueText
db "@"
-RestorePPWhichTechniqueText: ; e35d (3:635d)
+RestorePPWhichTechniqueText:
TX_FAR _RestorePPWhichTechniqueText
db "@"
-PPMaxedOutText: ; e362 (3:6362)
+PPMaxedOutText:
TX_FAR _PPMaxedOutText
db "@"
-PPIncreasedText: ; e367 (3:6367)
+PPIncreasedText:
TX_FAR _PPIncreasedText
db "@"
-PPRestoredText: ; e36c (3:636c)
+PPRestoredText:
TX_FAR _PPRestoredText
db "@"
; for items that can't be used from the Item menu
-UnusableItem: ; e371 (3:6371)
+UnusableItem:
jp ItemUseNotTime
-ItemUseTMHM: ; e374 (3:6374)
+ItemUseTMHM:
ld a, [wIsInBattle]
and a
jp nz, ItemUseNotTime
@@ -2564,54 +2564,54 @@ ItemUseTMHM: ; e374 (3:6374)
ret c
jp RemoveUsedItem
-BootedUpTMText: ; e483 (3:6483)
+BootedUpTMText:
TX_FAR _BootedUpTMText
db "@"
-BootedUpHMText: ; e488 (3:6488)
+BootedUpHMText:
TX_FAR _BootedUpHMText
db "@"
-TeachMachineMoveText: ; e48d (3:648d)
+TeachMachineMoveText:
TX_FAR _TeachMachineMoveText
db "@"
-MonCannotLearnMachineMoveText: ; e492 (3:6492)
+MonCannotLearnMachineMoveText:
TX_FAR _MonCannotLearnMachineMoveText
db "@"
-PrintItemUseTextAndRemoveItem: ; e497 (3:6497)
+PrintItemUseTextAndRemoveItem:
ld hl, ItemUseText00
call PrintText
ld a, SFX_HEAL_AILMENT
call PlaySound
call WaitForTextScrollButtonPress ; wait for button press
-RemoveUsedItem: ; e4a5 (3:64a5)
+RemoveUsedItem:
ld hl, wNumBagItems
ld a, 1 ; one item
ld [wItemQuantity], a
jp RemoveItemFromInventory
-ItemUseNoEffect: ; e4b0 (3:64b0)
+ItemUseNoEffect:
ld hl, ItemUseNoEffectText
jr ItemUseFailed
-ItemUseNotTime: ; e4b5 (3:64b5)
+ItemUseNotTime:
ld hl, ItemUseNotTimeText
jr ItemUseFailed
-ItemUseNotYoursToUse: ; e4ba (3:64ba)
+ItemUseNotYoursToUse:
ld hl, ItemUseNotYoursToUseText
jr ItemUseFailed
-Func_e4bf: ; e4bf (3:64bf)
+Func_e4bf:
ld a, $2
ld [wActionResultOrTookBattleTurn], a
ld hl, DontHavePokemonText
jp PrintText
-ThrowBallAtTrainerMon: ; e4ca (3:64ca)
+ThrowBallAtTrainerMon:
call RunDefaultPaletteCommand
call LoadScreenTilesFromBuffer1 ; restore saved screen
call Delay3
@@ -2624,71 +2624,71 @@ ThrowBallAtTrainerMon: ; e4ca (3:64ca)
call PrintText
jr RemoveUsedItem
-NoCyclingAllowedHere: ; e4eb (3:64eb)
+NoCyclingAllowedHere:
ld hl, NoCyclingAllowedHereText
jr ItemUseFailed
-BoxFullCannotThrowBall: ; e4f0 (3:64f0)
+BoxFullCannotThrowBall:
ld hl, BoxFullCannotThrowBallText
jr ItemUseFailed
-SurfingAttemptFailed: ; e4f5 (3:64f5)
+SurfingAttemptFailed:
ld hl, NoSurfingHereText
-ItemUseFailed: ; e4f8 (3:64f8)
+ItemUseFailed:
xor a
ld [wActionResultOrTookBattleTurn], a ; item use failed
jp PrintText
-ItemUseNotTimeText: ; e4ff (3:64ff)
+ItemUseNotTimeText:
TX_FAR _ItemUseNotTimeText
db "@"
-ItemUseNotYoursToUseText: ; e504 (3:6504)
+ItemUseNotYoursToUseText:
TX_FAR _ItemUseNotYoursToUseText
db "@"
-ItemUseNoEffectText: ; e509 (3:6509)
+ItemUseNoEffectText:
TX_FAR _ItemUseNoEffectText
db "@"
-ThrowBallAtTrainerMonText1: ; e50e (3:650e)
+ThrowBallAtTrainerMonText1:
TX_FAR _ThrowBallAtTrainerMonText1
db "@"
-ThrowBallAtTrainerMonText2: ; e513 (3:6513)
+ThrowBallAtTrainerMonText2:
TX_FAR _ThrowBallAtTrainerMonText2
db "@"
-NoCyclingAllowedHereText: ; e518 (3:6518)
+NoCyclingAllowedHereText:
TX_FAR _NoCyclingAllowedHereText
db "@"
-NoSurfingHereText: ; e51d (3:651d)
+NoSurfingHereText:
TX_FAR _NoSurfingHereText
db "@"
-BoxFullCannotThrowBallText: ; e522 (3:6522)
+BoxFullCannotThrowBallText:
TX_FAR _BoxFullCannotThrowBallText
db "@"
-DontHavePokemonText: ; e527 (3:6527)
+DontHavePokemonText:
TX_FAR _DontHavePokemonText
db "@"
-ItemUseText00: ; e52c (3:652c)
+ItemUseText00:
TX_FAR _ItemUseText001
db $05
TX_FAR _ItemUseText002
db "@"
-GotOnBicycleText: ; e536 (3:6536)
+GotOnBicycleText:
TX_FAR _GotOnBicycleText1
db $05
TX_FAR _GotOnBicycleText2
db "@"
-GotOffBicycleText: ; e540 (3:6540)
+GotOffBicycleText:
TX_FAR _GotOffBicycleText1
db $05
TX_FAR _GotOffBicycleText2
@@ -2699,7 +2699,7 @@ GotOffBicycleText: ; e540 (3:6540)
; INPUT:
; [wWhichPokemon] = index of pokemon in party
; [wCurrentMenuItem] = index of move (when using a PP Up)
-RestoreBonusPP: ; e54a (3:654a)
+RestoreBonusPP:
ld hl, wPartyMon1Moves
ld bc, wPartyMon2 - wPartyMon1
ld a, [wWhichPokemon]
@@ -2741,7 +2741,7 @@ RestoreBonusPP: ; e54a (3:654a)
; INPUT:
; [de] = normal max PP
; [hl] = move PP
-AddBonusPP: ; e586 (3:6586)
+AddBonusPP:
push bc
ld a, [de] ; normal max PP of move
ld [H_DIVIDEND + 3], a
@@ -2790,7 +2790,7 @@ AddBonusPP: ; e586 (3:6586)
; [wCurrentMenuItem] = move index
; OUTPUT:
; [wMaxPP] = max PP
-GetMaxPP: ; e5bb (3:65bb)
+GetMaxPP:
ld a, [wMonDataLocation]
and a
ld hl, wPartyMon1Moves
@@ -2851,11 +2851,11 @@ GetMaxPP: ; e5bb (3:65bb)
ld [wMaxPP], a ; store max PP
ret
-GetSelectedMoveOffset: ; e627 (3:6627)
+GetSelectedMoveOffset:
ld a, [wWhichPokemon]
call AddNTimes
-GetSelectedMoveOffset2: ; e62d (3:662d)
+GetSelectedMoveOffset2:
ld a, [wCurrentMenuItem]
ld c, a
ld b, 0
@@ -2870,7 +2870,7 @@ GetSelectedMoveOffset2: ; e62d (3:662d)
; [wItemQuantity] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
-TossItem_: ; e635 (3:6635)
+TossItem_:
push hl
ld a, [wcf91]
call IsItemHM
@@ -2921,15 +2921,15 @@ TossItem_: ; e635 (3:6635)
scf
ret
-ThrewAwayItemText: ; e699 (3:6699)
+ThrewAwayItemText:
TX_FAR _ThrewAwayItemText
db "@"
-IsItOKToTossItemText: ; e69e (3:669e)
+IsItOKToTossItemText:
TX_FAR _IsItOKToTossItemText
db "@"
-TooImportantToTossText: ; e6a3 (3:66a3)
+TooImportantToTossText:
TX_FAR _TooImportantToTossText
db "@"
@@ -2940,7 +2940,7 @@ TooImportantToTossText: ; e6a3 (3:66a3)
; [wIsKeyItem] = result
; 00: item is not key item
; 01: item is key item
-IsKeyItem_: ; e6a8 (3:66a8)
+IsKeyItem_:
ld a, $01
ld [wIsKeyItem], a
ld a, [wcf91]
@@ -2971,7 +2971,7 @@ IsKeyItem_: ; e6a8 (3:66a8)
INCLUDE "data/key_items.asm"
-SendNewMonToBox: ; e6e8 (3:66e8)
+SendNewMonToBox:
ld de, wNumInBox
ld a, [de]
inc a
@@ -3146,7 +3146,7 @@ SendNewMonToBox: ; e6e8 (3:66e8)
; checks if the tile in front of the player is a shore or water tile
; used for surfing and fishing
; unsets carry if it is, sets carry if not
-IsNextTileShoreOrWater: ; e808 (3:6808)
+IsNextTileShoreOrWater:
ld a, [wCurMapTileset]
ld hl, WaterTilesets
ld de, 1
@@ -3168,26 +3168,26 @@ IsNextTileShoreOrWater: ; e808 (3:6808)
ret
; tilesets with water
-WaterTilesets: ; e834 (3:6834)
+WaterTilesets:
db OVERWORLD, FOREST, DOJO, GYM, SHIP, SHIP_PORT, CAVERN, FACILITY, PLATEAU
db $ff ; terminator
; shore tiles
-ShoreTiles: ; e83e (3:683e)
+ShoreTiles:
db $48, $32
-WaterTile: ; e840 (3:6840)
+WaterTile:
db $14
db $ff ; terminator
; reloads map view and processes sprite data
; for items that cause the overworld to be displayed
-ItemUseReloadOverworldData: ; e842 (3:6842)
+ItemUseReloadOverworldData:
call LoadCurrentMapView
jp UpdateSprites
; creates a list at wBuffer of maps where the mon in [wd11e] can be found.
; this is used by the pokedex to display locations the mon can be found on the map.
-FindWildLocationsOfMon: ; e848 (3:6848)
+FindWildLocationsOfMon:
ld hl, WildDataPointers
ld de, wBuffer
ld c, $0
@@ -3211,13 +3211,12 @@ FindWildLocationsOfMon: ; e848 (3:6848)
inc hl
inc c
jr .loop
-
.done
ld a, $ff ; list terminator
ld [de], a
ret
-CheckMapForMon: ; e86d (3:686d)
+CheckMapForMon:
inc hl
ld b, $a
.loop
diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm
index a3a8c608..80e6bf3c 100755
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -1,4 +1,4 @@
-GetMachinePrice: ; f65d4 (3d:65d4)
+GetMachinePrice:
; Input: [wcf91] = Item Id of a TM
; Output: Stores the TM price at hItemPrice
ld a, [wcf91] ; a contains TM item id
diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm
index be93fc0e..7ccaa232 100755
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -1,5 +1,5 @@
; checks if the mon in [wWhichPokemon] already knows the move in [wMoveNum]
-CheckIfMoveIsKnown: ; 2fd42 (b:7d42)
+CheckIfMoveIsKnown:
ld a, [wWhichPokemon]
ld hl, wPartyMon1Moves
ld bc, wPartyMon2 - wPartyMon1
@@ -21,6 +21,6 @@ CheckIfMoveIsKnown: ; 2fd42 (b:7d42)
scf
ret
-AlreadyKnowsText: ; 2fd65 (b:7d65)
+AlreadyKnowsText:
TX_FAR _AlreadyKnowsText
db "@"
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index ff10d134..84770747 100755
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,5 +1,5 @@
; tests if mon [wcf91] can learn move [wMoveNum]
-CanLearnTM: ; 122f0 (4:62f0)
+CanLearnTM:
ld a, [wcf91]
ld [wd0b5], a
call GetMonHeader
@@ -28,7 +28,7 @@ CanLearnTM: ; 122f0 (4:62f0)
; converts TM/HM number in wd11e into move number
; HMs start at 51
-TMToMove: ; 1231d (4:631d)
+TMToMove:
ld a, [wd11e]
dec a
ld hl, TechnicalMachines
diff --git a/engine/joypad.asm b/engine/joypad.asm
index 2b85cb61..4126568c 100644
--- a/engine/joypad.asm
+++ b/engine/joypad.asm
@@ -1,4 +1,4 @@
-ReadJoypad_:: ; c000 (3:4000)
+ReadJoypad_::
; Poll joypad input.
; Unlike the hardware register, button
; presses are indicated by a set bit.
@@ -33,7 +33,7 @@ ReadJoypad_:: ; c000 (3:4000)
ret
-_Joypad:: ; c02d (3:402d)
+_Joypad::
; hJoyReleased: (hJoyLast ^ hJoyInput) & hJoyLast
; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index 7022e3ea..dcaf4235 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,4 +1,4 @@
-LearnMove: ; 6bc8 (1:6bc8)
+LearnMove:
call SaveScreenTilesToBuffer1
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
@@ -8,7 +8,7 @@ LearnMove: ; 6bc8 (1:6bc8)
ld bc, NAME_LENGTH
call CopyData
-DontAbandonLearning: ; 6be0 (1:6be0)
+DontAbandonLearning:
ld hl, wPartyMon1Moves
ld bc, wPartyMon2Moves - wPartyMon1Moves
ld a, [wWhichPokemon]
@@ -73,7 +73,7 @@ DontAbandonLearning: ; 6be0 (1:6be0)
call CopyData
jp PrintLearnedMove
-AbandonLearning: ; 6c5f (1:6c5f)
+AbandonLearning:
ld hl, AbandonLearningText
call PrintText
coord hl, 14, 7
@@ -89,13 +89,13 @@ AbandonLearning: ; 6c5f (1:6c5f)
ld b, 0
ret
-PrintLearnedMove: ; 6c83 (1:6c83)
+PrintLearnedMove:
ld hl, LearnedMove1Text
call PrintText
ld b, 1
ret
-TryingToLearn: ; 6c8c (1:6c8c)
+TryingToLearn:
push hl
ld hl, TryingToLearnText
call PrintText
@@ -182,27 +182,27 @@ TryingToLearn: ; 6c8c (1:6c8c)
scf
ret
-LearnedMove1Text: ; 6d31 (1:6d31)
+LearnedMove1Text:
TX_FAR _LearnedMove1Text
db $b,6,"@"
-WhichMoveToForgetText: ; 6d38 (1:6d38)
+WhichMoveToForgetText:
TX_FAR _WhichMoveToForgetText
db "@"
-AbandonLearningText: ; 6d3d (1:6d3d)
+AbandonLearningText:
TX_FAR _AbandonLearningText
db "@"
-DidNotLearnText: ; 6d42 (1:6d42)
+DidNotLearnText:
TX_FAR _DidNotLearnText
db "@"
-TryingToLearnText: ; 6d47 (1:6d47)
+TryingToLearnText:
TX_FAR _TryingToLearnText
db "@"
-OneTwoAndText: ; 6d4c (1:6d4c)
+OneTwoAndText:
; bugfix: In Red/Blue, the SFX_SWAP sound was played in the wrong bank, which played an incorrect sound
; Yellow has fixed this by swapping to the correct bank
TX_FAR _OneTwoAndText
@@ -236,13 +236,13 @@ OneTwoAndText: ; 6d4c (1:6d4c)
ld hl, PoofText
ret
-PoofText: ; 6d88 (1:6d88)
+PoofText:
TX_FAR _PoofText
db $a
-ForgotAndText: ; 6d8d (1:6d8d)
+ForgotAndText:
TX_FAR _ForgotAndText
db "@"
-HMCantDeleteText: ; 6d92 (1:6d92)
+HMCantDeleteText:
TX_FAR _HMCantDeleteText
db "@"
diff --git a/engine/load_mon_data.asm b/engine/load_mon_data.asm
index 4a1e3097..e708113f 100644
--- a/engine/load_mon_data.asm
+++ b/engine/load_mon_data.asm
@@ -1,4 +1,4 @@
-LoadMonData_: ; 442b (1:442b)
+LoadMonData_:
; Load monster [wWhichPokemon] from list [wMonDataLocation]:
; 0: partymon
; 1: enemymon
@@ -49,7 +49,7 @@ LoadMonData_: ; 442b (1:442b)
jp CopyData
; get species of mon e in list [wMonDataLocation] for LoadMonData
-GetMonSpecies: ; 4478 (1:4478)
+GetMonSpecies:
ld hl, wPartySpecies
ld a, [wMonDataLocation]
and a
@@ -65,4 +65,4 @@ GetMonSpecies: ; 4478 (1:4478)
add hl, de
ld a, [hl]
ld [wcf91], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/load_pokedex_tiles.asm b/engine/load_pokedex_tiles.asm
index 43d87f09..637b7a24 100755
--- a/engine/load_pokedex_tiles.asm
+++ b/engine/load_pokedex_tiles.asm
@@ -1,5 +1,5 @@
; Loads tile patterns for tiles used in the pokedex.
-LoadPokedexTilePatterns: ; 14000 (5:4000)
+LoadPokedexTilePatterns:
call LoadHpBarAndStatusTilePatterns
ld de,PokedexTileGraphics
ld hl,vChars2 + $600
@@ -8,4 +8,4 @@ LoadPokedexTilePatterns: ; 14000 (5:4000)
ld de,PokeballTileGraphics
ld hl,vChars2 + $720
lb bc, BANK(PokeballTileGraphics), $01
- jp CopyVideoData ; load pokeball tile for marking caught mons \ No newline at end of file
+ jp CopyVideoData ; load pokeball tile for marking caught mons
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index e104f693..eddccc29 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -1,4 +1,4 @@
-DisplayPCMainMenu:: ; 213c8 (8:5378)
+DisplayPCMainMenu::
xor a
ld [H_AUTOBGTRANSFERENABLED], a
call SaveScreenTilesToBuffer2
@@ -89,7 +89,7 @@ OaksPCText: db "PROF.OAK's PC@"
PKMNLeaguePCText: db $4a, "LEAGUE@"
LogOffPCText: db "LOG OFF@"
-BillsPC_:: ; 2146f (8:546f)
+BillsPC_::
ld hl, wd730
set 6, [hl]
xor a
@@ -108,7 +108,7 @@ BillsPC_:: ; 2146f (8:546f)
ld hl, SwitchOnText
call PrintText
-BillsPCMenu: ; 21495 (8:5495)
+BillsPCMenu:
ld a, [wParentMenuItem]
ld [wCurrentMenuItem], a
ld hl, vChars2 + $780
@@ -184,7 +184,7 @@ BillsPCMenu: ; 21495 (8:5495)
cp $4
jp z, BillsPCPrintBox
-ExitBillsPC: ; 2153e (8:553e)
+ExitBillsPC:
ld a, [wFlags_0xcd60]
bit 3, a ; accessing Bill's PC through another PC?
jr nz, .next
@@ -203,11 +203,11 @@ ExitBillsPC: ; 2153e (8:553e)
res 6, [hl]
ret
-BillsPCPrintBox: ; 21562 (8:5562)
+BillsPCPrintBox:
callab PrintPCBox
jp BillsPCMenu
-BillsPCDeposit: ; 2156d (8:556d)
+BillsPCDeposit:
ld a, [wPartyCount]
dec a
jr nz, .partyLargeEnough
@@ -254,7 +254,7 @@ BillsPCDeposit: ; 2156d (8:556d)
call WaitForSoundToFinish
ld hl, wBoxNumString
ld a, [wCurrentBoxNum]
- and " "
+ and $7f
cp 9
jr c, .singleDigitBoxNum
sub 9
@@ -271,11 +271,11 @@ BillsPCDeposit: ; 2156d (8:556d)
call PrintText
jp BillsPCMenu
-SleepingPikachuText2: ; 2160e (8:560e)
+SleepingPikachuText2:
TX_FAR _SleepingPikachuText2
db "@"
-BillsPCWithdraw: ; 21613 (8:5613)
+BillsPCWithdraw:
ld a, [wNumInBox]
and a
jr nz, .boxNotEmpty
@@ -318,7 +318,7 @@ BillsPCWithdraw: ; 21613 (8:5613)
call PrintText
jp BillsPCMenu
-BillsPCRelease: ; 21690 (8:5690)
+BillsPCRelease:
ld a, [wNumInBox]
and a
jr nz, .loop
@@ -357,11 +357,11 @@ BillsPCRelease: ; 21690 (8:5690)
call PrintText
jp BillsPCMenu
-BillsPCChangeBox: ; 216e7 (8:56e7)
+BillsPCChangeBox:
callba ChangeBox
jp BillsPCMenu
-DisplayMonListMenu: ; 216f2 (8:56f2)
+DisplayMonListMenu:
ld a, l
ld [wListPointer], a
ld a, h
@@ -378,7 +378,7 @@ DisplayMonListMenu: ; 216f2 (8:56f2)
ld [wPartyAndBillsPCSavedMenuItem], a
ret
-BillsPCMenuText: ; 21715 (8:5715)
+BillsPCMenuText:
db "WITHDRAW ", $4a
next "DEPOSIT ", $4a
next "RELEASE ", $4a
@@ -387,10 +387,10 @@ BillsPCMenuText: ; 21715 (8:5715)
next "SEE YA!"
db "@"
-BoxNoPCText: ; 21751 (8:5751)
+BoxNoPCText:
db "BOX No.@"
-KnowsHMMove:: ; 21759 (8:5759)
+KnowsHMMove::
; returns whether mon with party index [wWhichPokemon] knows an HM move
ld hl, wPartyMon1Moves
ld bc, wPartyMon2 - wPartyMon1
@@ -417,15 +417,15 @@ KnowsHMMove:: ; 21759 (8:5759)
and a
ret
-HMMoveArray: ; 21783 (8:5783)
+HMMoveArray:
db CUT
db FLY
db SURF
db STRENGTH
db FLASH
- db $ff
+ db -1
-DisplayDepositWithdrawMenu: ; 21789 (8:5789)
+DisplayDepositWithdrawMenu:
coord hl, 9, 10
lb bc, 6, 9
call TextBoxBorder
@@ -497,59 +497,59 @@ StatsCancelPCText:
db "STATS"
next "CANCEL@"
-SwitchOnText: ; 21826 (8:5826)
+SwitchOnText:
TX_FAR _SwitchOnText
db "@"
-WhatText: ; 2182b (8:582b)
+WhatText:
TX_FAR _WhatText
db "@"
-DepositWhichMonText: ; 21830 (8:5830)
+DepositWhichMonText:
TX_FAR _DepositWhichMonText
db "@"
-MonWasStoredText: ; 21835 (8:5835)
+MonWasStoredText:
TX_FAR _MonWasStoredText
db "@"
-CantDepositLastMonText: ; 2183a (8:583a)
+CantDepositLastMonText:
TX_FAR _CantDepositLastMonText
db "@"
-BoxFullText: ; 2183f (8:583f)
+BoxFullText:
TX_FAR _BoxFullText
db "@"
-MonIsTakenOutText: ; 21844 (8:5844)
+MonIsTakenOutText:
TX_FAR _MonIsTakenOutText
db "@"
-NoMonText: ; 21849 (8:5849)
+NoMonText:
TX_FAR _NoMonText
db "@"
-CantTakeMonText: ; 2184e (8:584e)
+CantTakeMonText:
TX_FAR _CantTakeMonText
db "@"
-PikachuUnhappyText: ; 21853 (8:5853)
+PikachuUnhappyText:
TX_FAR _PikachuUnhappyText
db "@"
-ReleaseWhichMonText: ; 21858 (8:5858)
+ReleaseWhichMonText:
TX_FAR _ReleaseWhichMonText
db "@"
-OnceReleasedText: ; 2185d (8:585d)
+OnceReleasedText:
TX_FAR _OnceReleasedText
db "@"
-MonWasReleasedText: ; 21862 (8:5862)
+MonWasReleasedText:
TX_FAR _MonWasReleasedText
db "@"
-CableClubLeftGameboy:: ; 21867 (8:5867)
+CableClubLeftGameboy::
ld a, [hSerialConnectionStatus]
cp USING_EXTERNAL_CLOCK
ret z
@@ -566,7 +566,7 @@ CableClubLeftGameboy:: ; 21867 (8:5867)
call EnableAutoTextBoxDrawing
tx_pre_jump JustAMomentText
-CableClubRightGameboy:: ; 21887 (8:5887)
+CableClubRightGameboy::
ld a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
ret z
@@ -583,7 +583,7 @@ CableClubRightGameboy:: ; 21887 (8:5887)
call EnableAutoTextBoxDrawing
tx_pre_jump JustAMomentText
-JustAMomentText:: ; 218a7 (8:58a7)
+JustAMomentText::
TX_FAR _JustAMomentText
db "@"
@@ -593,5 +593,6 @@ JustAMomentText:: ; 218a7 (8:58a7)
call EnableAutoTextBoxDrawing
tx_pre_jump OpenBillsPCText
-OpenBillsPCText:: ; 218ba (8:58ba)
- db $FD ; FuncTX_BillsPC \ No newline at end of file
+OpenBillsPCText::
+ db $FD ; FuncTX_BillsPC
+
diff --git a/engine/menu/diploma_1.asm b/engine/menu/diploma_1.asm
index db156115..3f309bd2 100644
--- a/engine/menu/diploma_1.asm
+++ b/engine/menu/diploma_1.asm
@@ -1,4 +1,4 @@
-DisplayDiploma: ; 56714 (15:6714)
+DisplayDiploma:
call SaveScreenTilesToBuffer2
call GBPalWhiteOutWithDelay3
call ClearScreen
@@ -14,4 +14,4 @@ DisplayDiploma: ; 56714 (15:6714)
call ReloadTilesetTilePatterns
call RestoreScreenTilesAndReloadTilePatterns
call Delay3
- jp GBPalNormal \ No newline at end of file
+ jp GBPalNormal
diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm
index 21ee30b0..9946b90d 100755
--- a/engine/menu/league_pc.asm
+++ b/engine/menu/league_pc.asm
@@ -1,4 +1,4 @@
-PKMNLeaguePC: ; 75dfe (1d:5dfe)
+PKMNLeaguePC:
ld hl, AccessedHoFPCText
call PrintText
ld hl, wd730
@@ -50,7 +50,7 @@ PKMNLeaguePC: ; 75dfe (1d:5dfe)
call RunDefaultPaletteCommand
jp GBPalNormal
-LeaguePCShowTeam: ; 75e65 (1d:5e65)
+LeaguePCShowTeam:
ld c, PARTY_LENGTH
.loop
push bc
@@ -77,7 +77,7 @@ LeaguePCShowTeam: ; 75e65 (1d:5e65)
scf
ret
-LeaguePCShowMon: ; 75e90 (1d:5e90)
+LeaguePCShowMon:
call GBPalWhiteOutWithDelay3
call ClearScreen
ld hl, wHallOfFame
@@ -111,9 +111,9 @@ LeaguePCShowMon: ; 75e90 (1d:5e90)
call PrintNumber
jpba Func_7033f
-HallOfFameNoText: ; 75eef (1d:5eef)
+HallOfFameNoText:
db "HALL OF FAME No @"
-AccessedHoFPCText: ; 75f02 (1d:5f02)
+AccessedHoFPCText:
TX_FAR _AccessedHoFPCText
db "@"
diff --git a/engine/menu/link_menu.asm b/engine/menu/link_menu.asm
index 4d0beb7e..458f653b 100644
--- a/engine/menu/link_menu.asm
+++ b/engine/menu/link_menu.asm
@@ -1,4 +1,4 @@
-Func_f531b:: ; f531b (3d:531b)
+Func_f531b::
ld c,$14
call DelayFrames
ld a,$1
@@ -176,25 +176,25 @@ Func_f531b:: ; f531b (3d:531b)
and a
ret
-Func_f5476:: ; f5476 (3d:5476)
+Func_f5476::
ld hl,ColosseumIneligibleText
call PrintText
-asm_f547c:: ; f547c (3d:574c)
+asm_f547c::
jp Func_f531b
-asm_f547f:: ; f547f (3d:547f)
+asm_f547f::
xor a
ld [wUnknownSerialCounter],a
ld [wUnknownSerialCounter+1],a
scf
ret
-PointerTable_f5488:: ; f5488 (3d:5488)
+PointerTable_f5488::
dw PokeCup
dw PikaCup
dw PetitCup
-PokeCup:: ; f548e (3d:548e)
+PokeCup::
ld hl,wPartyCount
ld a,[hli]
cp $3
@@ -240,7 +240,7 @@ PokeCup:: ; f548e (3d:548e)
xor a
ret
-PikaCup:: ; f54e4 (3d:54e4)
+PikaCup::
ld hl,wPartyCount
ld a,[hli]
cp $3
@@ -286,7 +286,7 @@ PikaCup:: ; f54e4 (3d:54e4)
xor a
ret
-PetitCup:: ; f553a (3d:553a)
+PetitCup::
ld hl,wPartyCount
ld a,[hli]
cp $3
@@ -407,79 +407,79 @@ PetitCup:: ; f553a (3d:553a)
xor a
ret
-NotThreeMonsInParty:: ; f561d (3d:516d)
+NotThreeMonsInParty::
ld hl,Colosseum3MonsText
call PrintText
ld a,$1
ret
-MewInParty:: ; f5626 (3d:f5626)
+MewInParty::
ld hl,ColosseumMewText
call PrintText
ld a,$2
ret
-DuplicateSpecies:: ; f562f (3d:f562f)
+DuplicateSpecies::
ld hl,ColosseumDifferentMonsText
call PrintText
ld a,$3
ret
-LevelAbove55:: ; f5638 (3d:5638)
+LevelAbove55::
ld hl,ColosseumMaxL55Text
call PrintText
ld a,$4
ret
-LevelUnder50:: ; f5641 (3d:5641)
+LevelUnder50::
ld hl,ColosseumMinL50Text
call PrintText
ld a,$5
ret
-CombinedLevelsGreaterThan155:: ; f5641 (3d:564a)
+CombinedLevelsGreaterThan155::
ld hl,ColosseumTotalL155Text
call PrintText
ld a,$6
ret
-LevelAbove30:: ; f5653 (3d:5653)
+LevelAbove30::
ld hl,ColosseumMaxL30Text
call PrintText
ld a,$7
ret
-LevelUnder25:: ; f565c (3d:565c)
+LevelUnder25::
ld hl,ColosseumMinL25Text
call PrintText
ld a,$8
ret
-CombinedLevelsAbove80:: ; f5665 (3d:5665)
+CombinedLevelsAbove80::
ld hl,ColosseumTotalL80Text
call PrintText
ld a,$9
ret
-LevelAbove20:: ; f566e (3d:566e)
+LevelAbove20::
ld hl,ColosseumMaxL20Text
call PrintText
ld a,$a
ret
-LevelUnder15:: ; f5677 (3d:5677)
+LevelUnder15::
ld hl,ColosseumMinL15Text
call PrintText
ld a,$b
ret
-CombinedLevelsAbove50:: ; f5680 (3d:5680)
+CombinedLevelsAbove50::
ld hl,ColosseumTotalL50Text
call PrintText
ld a,$c
ret
-asm_f5689:: ; f5689 (3d:5689)
+asm_f5689::
pop af
pop bc
pop hl
@@ -490,7 +490,7 @@ asm_f5689:: ; f5689 (3d:5689)
ld a,$d
ret
-asm_f569b:: ; f569b (3d:569b)
+asm_f569b::
pop af
pop bc
pop hl
@@ -501,7 +501,7 @@ asm_f569b:: ; f569b (3d:569b)
ld a,$e
ret
-asm_f56ad:: ; f56ad (3d:56ad)
+asm_f56ad::
ld a,[hl]
ld [wd11e],a
call GetMonName
@@ -510,7 +510,7 @@ asm_f56ad:: ; f56ad (3d:56ad)
ld a,$f
ret
-Func_f56bd:: ; f56bd (3d:56bd)
+Func_f56bd::
xor a
ld [H_AUTOBGTRANSFERENABLED],a
coord hl, 1,11
@@ -538,101 +538,101 @@ Func_f56bd:: ; f56bd (3d:56bd)
ld [H_AUTOBGTRANSFERENABLED],a
ret
-PointerTable_f56ee:: ; f56ee (3d:56ee)
+PointerTable_f56ee::
dw Text_f56f4
dw Text_f5728
dw Text_f575b
-Text_f56f4:: ; f56f4 (3d:56f4)
+Text_f56f4::
db "LVs of 3<pkmn>:50-55"
next "Sum of LVs:155 MAX"
next "MEW can't attend.@"
-Text_f5728:: ; f5728 (3d:5728)
+Text_f5728::
db "LVs of 3<pkmn>:15-20"
next "Sum of LVs:50 MAX"
next "MEW can't attend.@"
-Text_f575b:: ; f575b (3d:575b)
+Text_f575b::
db "3 Basic <pkmn>.LV25-30"
next "Sum of LVs:80 MAX"
next "6′8″ and 44lb MAX@"
-Text_f5791:: ; f5791 (3d:5791)
+Text_f5791::
db "View"
next "Rules@"
-Text_f579c:: ; f579c (3d:579c)
+Text_f579c::
db "# Cup"
next "Pika Cup"
next "Petit Cup"
next "CANCEL@"
-Colosseum3MonsText:: ; f57bc (3d:57bc)
+Colosseum3MonsText::
TX_FAR _Colosseum3MonsText ; a0a2b
db "@"
-ColosseumMewText:: ; f57c1 (3d:57c1)
+ColosseumMewText::
TX_FAR _ColosseumMewText ; a0a46
db "@"
-ColosseumDifferentMonsText:: ; f57c6 (3d:57c6)
+ColosseumDifferentMonsText::
TX_FAR _ColosseumDifferentMonsText ; a0a5f
db "@"
-ColosseumMaxL55Text:: ; f57cb (3d:57cb)
+ColosseumMaxL55Text::
TX_FAR _ColosseumMaxL55Text ; a0a81
db "@"
-ColosseumMinL50Text:: ; f57d0 (3d:57d0)
+ColosseumMinL50Text::
TX_FAR _ColosseumMinL50Text ; a0a9a
db "@"
-ColosseumTotalL155Text:: ; f57d5 (3d:57d5)
+ColosseumTotalL155Text::
TX_FAR _ColosseumTotalL155Text ; a0aba
db "@"
-ColosseumMaxL30Text:: ; f57da (3d:57da)
+ColosseumMaxL30Text::
TX_FAR _ColosseumMaxL30Text ; a0ad9
db "@"
-ColosseumMinL25Text:: ; f57df (3d:57df)
+ColosseumMinL25Text::
TX_FAR _ColosseumMinL25Text ; a0af2
db "@"
-ColosseumTotalL80Text:: ; f57e4 (3d:57e4)
+ColosseumTotalL80Text::
TX_FAR _ColosseumTotalL80Text ; a0b12
db "@"
-ColosseumMaxL20Text:: ; f57e9 (3d:57e9)
+ColosseumMaxL20Text::
TX_FAR _ColosseumMaxL20Text ; a0b30
db "@"
-ColosseumMinL15Text:: ; f57ee (3d:57ee)
+ColosseumMinL15Text::
TX_FAR _ColosseumMinL15Text ; a0b49
db "@"
-ColosseumTotalL50Text:: ; f57f3 (3d:57f3)
+ColosseumTotalL50Text::
TX_FAR _ColosseumTotalL50Text ; a0b69
db "@"
-ColosseumHeightText:: ; f57f8 (3d:57f8)
+ColosseumHeightText::
TX_FAR _ColosseumHeightText ; a0b87
db "@"
-ColosseumWeightText:: ; f57fd (3d:57fd)
+ColosseumWeightText::
TX_FAR _ColosseumWeightText ; a0b9f
db "@"
-ColosseumEvolvedText:: ; f5802 (3d:5802)
+ColosseumEvolvedText::
TX_FAR _ColosseumEvolvedText ; a0bbb
db "@"
-ColosseumIneligibleText:: ; f5807 (3d:5807)
+ColosseumIneligibleText::
TX_FAR _ColosseumIneligibleText ; a0bd4
db "@"
-LinkMenu: ; f580c (3d:580c)
+LinkMenu:
xor a
ld [wLetterPrintingDelayFlags], a
ld hl, wd72e
@@ -871,7 +871,7 @@ LinkMenu: ; f580c (3d:580c)
ld a,$f0
jp .next
-Func_f59ec:: ; f59ec (3d:59ec)
+Func_f59ec::
ld a, b
Coorda 6, 5
ld a, c
@@ -884,27 +884,27 @@ Func_f59ec:: ; f59ec (3d:59ec)
call DelayFrames
ret
-ColosseumWhereToText: ; f5a02 (3d:5a02)
+ColosseumWhereToText:
TX_FAR _ColosseumWhereToText
db "@"
-ColosseumPleaseWaitText: ; f5a07 (3d:5a07)
+ColosseumPleaseWaitText:
TX_FAR _ColosseumPleaseWaitText
db "@"
-ColosseumCanceledText: ; f5a0c (3d:5a0c)
+ColosseumCanceledText:
TX_FAR _ColosseumCanceledText
db "@"
-ColosseumVersionText: ; f5a11 (3d:5a11)
+ColosseumVersionText:
TX_FAR _ColosseumVersionText ; 28:4c47
db "@"
-TextTerminator_f5a16: ; f5a16 (3d:5a16)
+TextTerminator_f5a16:
db "@"
-TradeCenterText: ; f5a17 (3d:5a17)
+TradeCenterText:
db "TRADE CENTER"
next "COLOSSEUM"
next "COLOSSEUM2"
- next "CANCEL@" \ No newline at end of file
+ next "CANCEL@"
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm
index 669b2ba8..cf837a54 100755
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -1,4 +1,4 @@
-MainMenu: ; 5ba6 (1:5ba6)
+MainMenu:
; Check save file
call InitOptions
xor a
@@ -122,7 +122,7 @@ MainMenu: ; 5ba6 (1:5ba6)
call SpecialWarpIn
jp SpecialEnterMap
-InitOptions: ; 5bff (1:5bff)
+InitOptions:
ld a,1 ; no delay
ld [wLetterPrintingDelayFlags],a
ld a,3 ; medium speed
@@ -131,7 +131,7 @@ InitOptions: ; 5bff (1:5bff)
ld [wPrinterSettings], a
ret
-Func_5cc1: ; 5cc1 (1:5cc1)
+Func_5cc1:
; unused?
ld a, $6d
cp $80
@@ -140,11 +140,11 @@ Func_5cc1: ; 5cc1 (1:5cc1)
call PrintText
ret
-NotEnoughMemoryText: ; 5ccd (1:5ccd)
+NotEnoughMemoryText:
TX_FAR _NotEnoughMemoryText
db "@"
-StartNewGame: ; 5cd2 (1:5cd2)
+StartNewGame:
ld hl, wd732
res 1, [hl]
call OakSpeech
@@ -154,7 +154,7 @@ StartNewGame: ; 5cd2 (1:5cd2)
call DelayFrames
; enter map after using a special warp or loading the game from the main menu
-SpecialEnterMap: ; 5ce4 (1:5ce4)
+SpecialEnterMap:
xor a
ld [hJoyPressed], a
ld [hJoyHeld], a
@@ -171,14 +171,14 @@ SpecialEnterMap: ; 5ce4 (1:5ce4)
ret nz
jp EnterMap
-ContinueText: ; 5d06 (1:5d06)
+ContinueText:
db "CONTINUE", $4e
-NewGameText: ; 5d0f (1:5d0f)
+NewGameText:
db "NEW GAME", $4e
db "OPTION@"
-DisplayContinueGameInfo: ; 5d1f (1:5d1f)
+DisplayContinueGameInfo:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 4, 7
@@ -201,7 +201,7 @@ DisplayContinueGameInfo: ; 5d1f (1:5d1f)
ld c, 30
jp DelayFrames
-PrintSaveScreenText: ; 5d58 (1:5d58)
+PrintSaveScreenText:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 4, 0
@@ -226,7 +226,7 @@ PrintSaveScreenText: ; 5d58 (1:5d58)
ld c, 30
jp DelayFrames
-PrintNumBadges: ; 5d97 (1:5d97)
+PrintNumBadges:
push hl
ld hl, wObtainedBadges
ld b, $1
@@ -236,7 +236,7 @@ PrintNumBadges: ; 5d97 (1:5d97)
lb bc, 1, 2
jp PrintNumber
-PrintNumOwnedMons: ; 5daa (1:5daa)
+PrintNumOwnedMons:
push hl
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
@@ -246,7 +246,7 @@ PrintNumOwnedMons: ; 5daa (1:5daa)
lb bc, 1, 3
jp PrintNumber
-PrintPlayTime: ; 5dbd (1:5dbd)
+PrintPlayTime:
ld de, wPlayTimeHours
lb bc, 1, 3
call PrintNumber
@@ -256,17 +256,17 @@ PrintPlayTime: ; 5dbd (1:5dbd)
lb bc, LEADING_ZEROES | 1, 2
jp PrintNumber
-SaveScreenInfoText: ; 5dd2 (1:5dd2)
+SaveScreenInfoText:
db "PLAYER"
next "BADGES "
next "#DEX "
next "TIME@"
-DisplayOptionMenu: ; 5df2 (1:5df2)
+DisplayOptionMenu:
callab DisplayOptionMenu_ ; 10:5c70
ret
-CheckForPlayerNameInSRAM: ; 5dfb (1:5dfb)
+CheckForPlayerNameInSRAM:
; Check if the player name data in SRAM has a string terminator character
; (indicating that a name may have been saved there) and return whether it does
; in carry.
@@ -294,4 +294,4 @@ CheckForPlayerNameInSRAM: ; 5dfb (1:5dfb)
ld [MBC1SRamEnable], a
ld [MBC1SRamBankingMode], a
scf
- ret \ No newline at end of file
+ ret
diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm
index 0eacc8f6..911c4e99 100755
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -1,4 +1,4 @@
-AskName: ; 625d (1:625d)
+AskName:
call SaveScreenTilesToBuffer1
call GetPredefRegisters
push hl
@@ -48,11 +48,11 @@ AskName: ; 625d (1:625d)
ld bc, NAME_LENGTH
jp CopyData
-DoYouWantToNicknameText: ; 62c8 (1:62c8)
+DoYouWantToNicknameText:
TX_FAR _DoYouWantToNicknameText
db "@"
-DisplayNameRaterScreen: ; 62cd (1:62cd)
+DisplayNameRaterScreen:
ld hl, wBuffer
xor a
ld [wUpdateSpritesEnabled], a
@@ -80,7 +80,7 @@ DisplayNameRaterScreen: ; 62cd (1:62cd)
scf
ret
-DisplayNamingScreen: ; 6307 (1:6307)
+DisplayNamingScreen:
push hl
ld hl, wd730
set 6, [hl]
@@ -321,7 +321,7 @@ DisplayNamingScreen: ; 6307 (1:6307)
ld [wTopMenuItemX], a
jp EraseMenuCursor
-LoadEDTile: ; 675b (1:675b)
+LoadEDTile:
; In Red/Blue, the bank for the ED_tile was defined incorrectly as bank0
; Luckily, the MBC3 treats loading $0 into $2000-$2fff range as loading bank1 into $4000-$7fff range
; Because Yellow uses the MBC5, loading $0 into $2000 - $2fff range will load bank0 instead of bank1 and thus incorrectly load the tile
@@ -345,11 +345,11 @@ LoadEDTile: ; 675b (1:675b)
jr nz, .waitForHBlankLoop
ret
-ED_Tile: ; 64e5 (1:64e5)
+ED_Tile:
INCBIN "gfx/ED_tile.1bpp"
ED_TileEnd:
-PrintAlphabet: ; 676f (1:676f)
+PrintAlphabet:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wAlphabetCase]
@@ -379,13 +379,13 @@ PrintAlphabet: ; 676f (1:676f)
ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
-LowerCaseAlphabet: ; 651c (1:651c)
+LowerCaseAlphabet:
db "abcdefghijklmnopqrstuvwxyz ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥UPPER CASE@"
-UpperCaseAlphabet: ; 6554 (1:6554)
+UpperCaseAlphabet:
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥lower case@"
-PrintNicknameAndUnderscores: ; 658c (1:658c)
+PrintNicknameAndUnderscores:
call CalcStringLength
ld a, c
ld [wNamingScreenNameLength], a
@@ -439,7 +439,7 @@ PrintNicknameAndUnderscores: ; 658c (1:658c)
ld [hl], $77 ; raised underscore tile id
ret
-DakutensAndHandakutens: ; 65ef (1:65ef)
+DakutensAndHandakutens:
push de
call CalcStringLength
dec hl
@@ -453,7 +453,7 @@ DakutensAndHandakutens: ; 65ef (1:65ef)
ld [wNamingScreenLetter], a
ret
-Dakutens: ; 6603 (1:6603)
+Dakutens:
db "かが", "きぎ", "くぐ", "けげ", "こご"
db "さざ", "しじ", "すず", "せぜ", "そぞ"
db "ただ", "ちぢ", "つづ", "てで", "とど"
@@ -464,13 +464,13 @@ Dakutens: ; 6603 (1:6603)
db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
db $ff
-Handakutens: ; 6654 (1:6654)
+Handakutens:
db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
db $ff
; calculates the length of the string at wcf4b and stores it in c
-CalcStringLength: ; 6669 (1:6669)
+CalcStringLength:
ld hl, wcf4b
ld c, $0
.loop
@@ -481,7 +481,7 @@ CalcStringLength: ; 6669 (1:6669)
inc c
jr .loop
-PrintNamingText: ; 6676 (1:6676)
+PrintNamingText:
coord hl, 0, 1
ld a, [wNamingScreenType]
ld de, YourTextString
@@ -513,14 +513,14 @@ PrintNamingText: ; 6676 (1:6676)
.placeString
jp PlaceString
-YourTextString: ; 66bd (1:66bd)
+YourTextString:
db "YOUR @"
-RivalsTextString: ; 66c3 (1:66c3)
+RivalsTextString:
db "RIVAL's @"
-NameTextString: ; 66cb (1:66cb)
+NameTextString:
db "NAME?@"
-NicknameTextString: ; 66d1 (1:66d1)
+NicknameTextString:
db "NICKNAME?@"
diff --git a/engine/menu/oaks_pc.asm b/engine/menu/oaks_pc.asm
index ce989bf1..e4172ec7 100755
--- a/engine/menu/oaks_pc.asm
+++ b/engine/menu/oaks_pc.asm
@@ -1,4 +1,4 @@
-OpenOaksPC: ; 1e2ae (7:62ae)
+OpenOaksPC:
call SaveScreenTilesToBuffer2
ld hl, AccessedOaksPCText
call PrintText
@@ -14,14 +14,14 @@ OpenOaksPC: ; 1e2ae (7:62ae)
call PrintText
jp LoadScreenTilesFromBuffer2
-GetDexRatedText: ; 1e2d4 (7:62d4)
+GetDexRatedText:
TX_FAR _GetDexRatedText
db "@"
-ClosedOaksPCText: ; 1e2d9 (7:62d9)
+ClosedOaksPCText:
TX_FAR _ClosedOaksPCText
db $0d,"@"
-AccessedOaksPCText: ; 1e2df (7:62df)
+AccessedOaksPCText:
TX_FAR _AccessedOaksPCText
db "@"
diff --git a/engine/menu/options.asm b/engine/menu/options.asm
index 86a55bd2..7bed30ae 100644
--- a/engine/menu/options.asm
+++ b/engine/menu/options.asm
@@ -1,4 +1,4 @@
-DisplayOptionMenu_: ; 41c70 (10:5c70)
+DisplayOptionMenu_:
call Func_41f06
.optionMenuLoop
call JoypadLowSensitivity
@@ -18,7 +18,7 @@ DisplayOptionMenu_: ; 41c70 (10:5c70)
.exitOptionMenu
ret
-Func_41c95: ; 41c95 (10:5c95)
+Func_41c95:
ld a, [wOptionsCursorLocation]
ld e, a
ld d, $0
@@ -30,7 +30,7 @@ Func_41c95: ; 41c95 (10:5c95)
ld l, a
jp hl
-OptionMenuJumpTable: ; 41ca4 (10:5ca4)
+OptionMenuJumpTable:
dw OptionsMenu_TextSpeed
dw OptionsMenu_BattleAnimations
dw OptionsMenu_BattleStyle
@@ -40,7 +40,7 @@ OptionMenuJumpTable: ; 41ca4 (10:5ca4)
dw OptionsMenu_Dummy
dw OptionsMenu_Cancel
-OptionsMenu_TextSpeed: ; 41cb4 (10:5cb4)
+OptionsMenu_TextSpeed:
call Func_41d07
ld a, [hJoy5]
bit 4, a ; right
@@ -84,19 +84,19 @@ OptionsMenu_TextSpeed: ; 41cb4 (10:5cb4)
and a
ret
-TextSpeedStringsPointerTable: ; 41cf2 (10:5cf2)
+TextSpeedStringsPointerTable:
dw FastText
dw MidText
dw SlowText
-FastText: ; 41cf9 (10:5cf9)
+FastText:
db "FAST@"
-MidText: ; 41cfd (10:5cfd)
+MidText:
db "MID @"
-SlowText: ; 41d02 (10:5d02)
+SlowText:
db "SLOW@"
-Func_41d07: ; 41d07 (10:5d07)
+Func_41d07:
ld a, [wOptions]
and $f
cp $5
@@ -116,7 +116,7 @@ Func_41d07: ; 41d07 (10:5d07)
lb de, 5, 3
ret
-OptionsMenu_BattleAnimations: ; 41d26 (10:5d26)
+OptionsMenu_BattleAnimations:
ld a, [hJoy5]
and D_RIGHT | D_LEFT
jr nz, .asm_41d33
@@ -142,16 +142,16 @@ OptionsMenu_BattleAnimations: ; 41d26 (10:5d26)
and a
ret
-AnimationOptionStringsPointerTable: ; 41d52 (10:5d52)
+AnimationOptionStringsPointerTable:
dw AnimationOnText
dw AnimationOffText
-AnimationOnText: ; 41d56 (10:5d56)
+AnimationOnText:
db "ON @"
-AnimationOffText: ; 41d5a (10:5d5a)
+AnimationOffText:
db "OFF@"
-OptionsMenu_BattleStyle: ; 41d5e (10:5d5e)
+OptionsMenu_BattleStyle:
ld a, [hJoy5]
and D_LEFT | D_RIGHT
jr nz, .asm_41d6b
@@ -178,16 +178,16 @@ OptionsMenu_BattleStyle: ; 41d5e (10:5d5e)
and a
ret
-BattleStyleOptionStringsPointerTable: ; 41d8c (10:5d8c)
+BattleStyleOptionStringsPointerTable:
dw BattleStyleShiftText
dw BattleStyleSetText
-BattleStyleShiftText: ; 41d90 (10:5d90)
+BattleStyleShiftText:
db "SHIFT@"
-BattleStyleSetText: ; 41d96 (10:5d96)
+BattleStyleSetText:
db "SET @"
-OptionsMenu_SpeakerSettings: ; 41d9c (10:5d9c)
+OptionsMenu_SpeakerSettings:
ld a, [wOptions]
and $30
swap a
@@ -230,22 +230,22 @@ OptionsMenu_SpeakerSettings: ; 41d9c (10:5d9c)
and a
ret
-SpeakerOptionStringsPointerTable: ; 41ddc (10:5ddc)
+SpeakerOptionStringsPointerTable:
dw MonoSoundText
dw Earphone1SoundText
dw Earphone2SoundText
dw Earphone3SoundText
-MonoSoundText: ; 41de4 (10:5de4)
+MonoSoundText:
db "MONO @"
-Earphone1SoundText: ; 41dee (10:5dee)
+Earphone1SoundText:
db "EARPHONE1@"
-Earphone2SoundText: ; 41df8 (10:5df8)
+Earphone2SoundText:
db "EARPHONE2@"
-Earphone3SoundText: ; 41e02 (10:5e02)
+Earphone3SoundText:
db "EARPHONE3@"
-OptionsMenu_GBPrinterBrightness: ; 41e0c (10:5e0c)
+OptionsMenu_GBPrinterBrightness:
call Func_41e7b
ld a, [hJoy5]
bit 4, a
@@ -286,25 +286,25 @@ OptionsMenu_GBPrinterBrightness: ; 41e0c (10:5e0c)
and a
ret
-GBPrinterOptionStringsPointerTable: ; 41e44 (10:5e44)
+GBPrinterOptionStringsPointerTable:
dw LightestPrintText
dw LighterPrintText
dw NormalPrintText
dw DarkerPrintText
dw DarkestPrintText
-LightestPrintText: ; 41e4e (10:5e4e)
+LightestPrintText:
db "LIGHTEST@"
-LighterPrintText: ; 41e57 (10:5e57)
+LighterPrintText:
db "LIGHTER @"
-NormalPrintText: ; 41e60 (10:5e60)
+NormalPrintText:
db "NORMAL @"
-DarkerPrintText: ; 41e69 (10:5e69)
+DarkerPrintText:
db "DARKER @"
-DarkestPrintText: ; 41e72 (10:5e72)
+DarkestPrintText:
db "DARKEST @"
-Func_41e7b: ; 41e7b (10:5e7b)
+Func_41e7b:
ld a, [wPrinterSettings]
and a
jr z, .asm_41e93
@@ -334,11 +334,11 @@ Func_41e7b: ; 41e7b (10:5e7b)
lb de, $60, $0
ret
-OptionsMenu_Dummy: ; 41eab (10:5eab)
+OptionsMenu_Dummy:
and a
ret
-OptionsMenu_Cancel: ; 41ead (10:5ead)
+OptionsMenu_Cancel:
ld a, [hJoy5]
and A_BUTTON
jr nz, .pressedCancel
@@ -348,7 +348,7 @@ OptionsMenu_Cancel: ; 41ead (10:5ead)
scf
ret
-Func_41eb7: ; 41eb7 (10:5eb7)
+Func_41eb7:
ld hl, wOptionsCursorLocation
ld a, [hJoy5]
cp D_DOWN
@@ -388,7 +388,7 @@ Func_41eb7: ; 41eb7 (10:5eb7)
scf
ret
-Func_41ee9: ; 41ee9 (10:5ee9)
+Func_41ee9:
coord hl, 1, 1
ld de, SCREEN_WIDTH
ld c, 16
@@ -404,7 +404,7 @@ Func_41ee9: ; 41ee9 (10:5ee9)
ld [hl], "▶"
ret
-Func_41f06: ; 41f06 (10:5f06)
+Func_41f06:
coord hl, 0, 0
lb bc, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2
call TextBoxBorder
@@ -432,12 +432,12 @@ Func_41f06: ; 41f06 (10:5f06)
call Delay3
ret
-AllOptionsText: ; 41f3e (10:5f3e)
+AllOptionsText:
db "TEXT SPEED :"
next "ANIMATION :"
next "BATTLESTYLE:"
next "SOUND:"
next "PRINT:@"
-OptionMenuCancelText: ; 41f73 (10:5f73)
- db "CANCEL@" \ No newline at end of file
+OptionMenuCancelText:
+ db "CANCEL@"
diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm
index 16bea473..669d49db 100755
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -17,14 +17,14 @@
; f6: health returned
; f7: revitalized
; f8: leveled up
-DrawPartyMenu_: ; 11875 (4:5875)
+DrawPartyMenu_:
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call ClearScreen
call UpdateSprites
callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
-RedrawPartyMenu_: ; 11886 (4:5886)
+RedrawPartyMenu_:
ld a,[wPartyMenuTypeOrMessageID]
cp a,SWAP_MONS_PARTY_MENU
jp z,.printMessage
@@ -242,7 +242,7 @@ RedrawPartyMenu_: ; 11886 (4:5886)
call PrintText
jr .done
-PartyMenuItemUseMessagePointers: ; 11a1a (4:5a1a)
+PartyMenuItemUseMessagePointers:
dw AntidoteText
dw BurnHealText
dw IceHealText
@@ -253,7 +253,7 @@ PartyMenuItemUseMessagePointers: ; 11a1a (4:5a1a)
dw ReviveText
dw RareCandyText
-PartyMenuMessagePointers: ; 11a2c (4:5a2c)
+PartyMenuMessagePointers:
dw PartyMenuNormalText
dw PartyMenuItemUseText
dw PartyMenuBattleText
@@ -261,65 +261,65 @@ PartyMenuMessagePointers: ; 11a2c (4:5a2c)
dw PartyMenuSwapMonText
dw PartyMenuItemUseText
-PartyMenuNormalText: ; 11a38 (4:5a38)
+PartyMenuNormalText:
TX_FAR _PartyMenuNormalText
db "@"
-PartyMenuItemUseText: ; 11a3d (4:5a3d)
+PartyMenuItemUseText:
TX_FAR _PartyMenuItemUseText
db "@"
-PartyMenuBattleText: ; 11a42 (4:5a42)
+PartyMenuBattleText:
TX_FAR _PartyMenuBattleText
db "@"
-PartyMenuUseTMText: ; 11a47 (4:5a47)
+PartyMenuUseTMText:
TX_FAR _PartyMenuUseTMText
db "@"
-PartyMenuSwapMonText: ; 11a4c (4:5a4c)
+PartyMenuSwapMonText:
TX_FAR _PartyMenuSwapMonText
db "@"
-PotionText: ; 11a51 (4:5a51)
+PotionText:
TX_FAR _PotionText
db "@"
-AntidoteText: ; 11a56 (4:5a56)
+AntidoteText:
TX_FAR _AntidoteText
db "@"
-ParlyzHealText: ; 11a5b (4:5a5b)
+ParlyzHealText:
TX_FAR _ParlyzHealText
db "@"
-BurnHealText: ; 11a60 (4:5a60)
+BurnHealText:
TX_FAR _BurnHealText
db "@"
-IceHealText: ; 11a65 (4:5a65)
+IceHealText:
TX_FAR _IceHealText
db "@"
-AwakeningText: ; 11a6a (4:5a6a)
+AwakeningText:
TX_FAR _AwakeningText
db "@"
-FullHealText: ; 11a6f (4:5a6f)
+FullHealText:
TX_FAR _FullHealText
db "@"
-ReviveText: ; 11a74 (4:5a74)
+ReviveText:
TX_FAR _ReviveText
db "@"
-RareCandyText: ; 11a79 (4:5a79)
+RareCandyText:
TX_FAR _RareCandyText
db $0B
db $06
db "@"
-SetPartyMenuHPBarColor: ; 11a80 (4:5a80)
+SetPartyMenuHPBarColor:
ld hl, wPartyMenuHPBarColors
ld a, [wWhichPartyMenuHPBar]
ld c, a
diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm
index 373ae580..c9e2cf08 100755
--- a/engine/menu/pc.asm
+++ b/engine/menu/pc.asm
@@ -1,4 +1,4 @@
-ActivatePC: ; 17cb0 (5:7cb0)
+ActivatePC:
call SaveScreenTilesToBuffer2
ld a, SFX_TURN_ON_PC
call PlaySound
@@ -9,7 +9,7 @@ ActivatePC: ; 17cb0 (5:7cb0)
set 3, [hl]
call LoadScreenTilesFromBuffer2
call Delay3
-PCMainMenu: ; 17ccc (5:7ccc)
+PCMainMenu:
callba DisplayPCMainMenu
ld hl, wFlags_0xcd60
set 5, [hl]
@@ -58,19 +58,19 @@ PCMainMenu: ; 17ccc (5:7ccc)
call PrintText
callba PlayerPC
jr ReloadMainMenu
-OaksPC: ; 17d44 (5:7d44)
+OaksPC:
ld a, SFX_ENTER_PC
call PlaySound
call WaitForSoundToFinish
callba OpenOaksPC
jr ReloadMainMenu
-PKMNLeague: ; 17d56 (5:7d56)
+PKMNLeague:
ld a, SFX_ENTER_PC
call PlaySound
call WaitForSoundToFinish
callba PKMNLeaguePC
jr ReloadMainMenu
-BillsPC: ; 17d68 (5:7d68)
+BillsPC:
ld a, SFX_ENTER_PC
call PlaySound
call WaitForSoundToFinish
@@ -83,13 +83,13 @@ BillsPC: ; 17d68 (5:7d68)
.printText
call PrintText
callba BillsPC_
-ReloadMainMenu: ; 17d8a (5:7d8a)
+ReloadMainMenu:
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
call ReloadMapData
call UpdateSprites
jp PCMainMenu
-LogOff: ; 17d97 (5:7d97)
+LogOff:
ld a, SFX_TURN_OFF_PC
call PlaySound
call WaitForSoundToFinish
@@ -98,24 +98,24 @@ LogOff: ; 17d97 (5:7d97)
res 5, [hl]
ret
-TurnedOnPC1Text: ; 17da7 (5:7da7)
+TurnedOnPC1Text:
TX_FAR _TurnedOnPC1Text
db "@"
-AccessedBillsPCText: ; 17dac (5:7dac)
+AccessedBillsPCText:
TX_FAR _AccessedBillsPCText
db "@"
-AccessedSomeonesPCText: ; 17db1 (5:7db1)
+AccessedSomeonesPCText:
TX_FAR _AccessedSomeonesPCText
db "@"
-AccessedMyPCText: ; 17db6 (5:7db6)
+AccessedMyPCText:
TX_FAR _AccessedMyPCText
db "@"
; removes one of the specified item ID [hItemToRemoveID] from bag (if existent)
-RemoveItemByID: ; 17dbb (5:7dbb)
+RemoveItemByID:
ld hl, wBagItems
ld a, [hItemToRemoveID]
ld b, a
@@ -123,10 +123,10 @@ RemoveItemByID: ; 17dbb (5:7dbb)
ld [hItemToRemoveIndex], a
.loop
ld a, [hli]
- cp $ff ; have we reached the cancel button (terminator)
+ cp -1 ; reached terminator?
ret z
- cp b ; is the current item the item we want?
- jr z, .foundItem ; if so, remove it from the inventory
+ cp b
+ jr z, .foundItem
inc hl
ld a, [hItemToRemoveIndex]
inc a
diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm
index 38cdf2f6..1cc02cbf 100755
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -1,4 +1,4 @@
-PlayerPC: ; 778e (1:778e)
+PlayerPC:
ld a, ITEM_NAME
ld [wNameListType], a
call SaveScreenTilesToBuffer1
@@ -14,7 +14,7 @@ PlayerPC: ; 778e (1:778e)
ld hl, TurnedOnPC2Text
call PrintText
-PlayerPCMenu: ; 790c (1:790c)
+PlayerPCMenu:
ld hl, wd730
set 6, [hl]
ld a, [wParentMenuItem]
@@ -61,7 +61,7 @@ PlayerPCMenu: ; 790c (1:790c)
dec a
jp z, PlayerPCToss
-ExitPlayerPC: ; 7814 (1:7814)
+ExitPlayerPC:
ld a, [wFlags_0xcd60]
bit 3, a ; accessing player's PC through another PC?
jr nz, .next
@@ -82,7 +82,7 @@ ExitPlayerPC: ; 7814 (1:7814)
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ret
-PlayerPCDeposit: ; 783c (1:783c)
+PlayerPCDeposit:
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
@@ -136,7 +136,7 @@ PlayerPCDeposit: ; 783c (1:783c)
call PrintText
jp .loop
-PlayerPCWithdraw: ; 78b9 (1:78b9)
+PlayerPCWithdraw:
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
@@ -190,7 +190,7 @@ PlayerPCWithdraw: ; 78b9 (1:78b9)
call PrintText
jp .loop
-PlayerPCToss: ; 7936 (1:7936)
+PlayerPCToss:
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
@@ -239,64 +239,64 @@ PlayerPCToss: ; 7936 (1:7936)
call TossItem ; disallows tossing key items
jp .loop
-PlayersPCMenuEntries: ; 799c (1:799c)
+PlayersPCMenuEntries:
db "WITHDRAW ITEM"
next "DEPOSIT ITEM"
next "TOSS ITEM"
next "LOG OFF@"
-TurnedOnPC2Text: ; 79c9 (1:79c9)
+TurnedOnPC2Text:
TX_FAR _TurnedOnPC2Text
db "@"
-WhatDoYouWantText: ; 79ce (1:79ce)
+WhatDoYouWantText:
TX_FAR _WhatDoYouWantText
db "@"
-WhatToDepositText: ; 79d3 (1:79d3)
+WhatToDepositText:
TX_FAR _WhatToDepositText
db "@"
-DepositHowManyText: ; 79d8 (1:79d8)
+DepositHowManyText:
TX_FAR _DepositHowManyText
db "@"
-ItemWasStoredText: ; 79dd (1:79dd)
+ItemWasStoredText:
TX_FAR _ItemWasStoredText
db "@"
-NothingToDepositText: ; 79e2 (1:79e2)
+NothingToDepositText:
TX_FAR _NothingToDepositText
db "@"
-NoRoomToStoreText: ; 79e7 (1:79e7)
+NoRoomToStoreText:
TX_FAR _NoRoomToStoreText
db "@"
-WhatToWithdrawText: ; 79ec (1:79ec)
+WhatToWithdrawText:
TX_FAR _WhatToWithdrawText
db "@"
-WithdrawHowManyText: ; 79f1 (1:79f1)
+WithdrawHowManyText:
TX_FAR _WithdrawHowManyText
db "@"
-WithdrewItemText: ; 79f6 (1:79f6)
+WithdrewItemText:
TX_FAR _WithdrewItemText
db "@"
-NothingStoredText: ; 79fb (1:79fb)
+NothingStoredText:
TX_FAR _NothingStoredText
db "@"
-CantCarryMoreText: ; 7a00 (1:7a00)
+CantCarryMoreText:
TX_FAR _CantCarryMoreText
db "@"
-WhatToTossText: ; 7a05 (1:7a05)
+WhatToTossText:
TX_FAR _WhatToTossText
db "@"
-TossHowManyText: ; 7a0a (1:7a0a)
+TossHowManyText:
TX_FAR _TossHowManyText
db "@"
diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm
index 7715500b..166e026d 100755
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -1,4 +1,4 @@
-ShowPokedexMenu: ; 40000 (10:4000)
+ShowPokedexMenu:
call GBPalWhiteOut
call ClearScreen
call UpdateSprites
@@ -61,7 +61,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
; 00: showed pokemon data or area
; 01: the player chose Quit
; 02: the pokemon has not been seen yet or the player pressed the B button
-HandlePokedexSideMenu: ; 40070 (10:4070)
+HandlePokedexSideMenu:
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
push af
@@ -179,7 +179,7 @@ HandlePokedexSideMenu: ; 40070 (10:4070)
; handles the list of pokemon on the left of the pokedex screen
; sets carry flag if player presses A, unsets carry flag if player presses B
-HandlePokedexListMenu: ; 40140 (10:4140)
+HandlePokedexListMenu:
call Pokedex_DrawInterface
.loop
call Pokedex_PlacePokemonList
@@ -255,7 +255,7 @@ HandlePokedexListMenu: ; 40140 (10:4140)
and a
ret
-Pokedex_DrawInterface: ; 401c2 (10:41c2)
+Pokedex_DrawInterface:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
; draw the horizontal line separating the seen and owned amounts from the menu
@@ -317,7 +317,7 @@ Pokedex_DrawInterface: ; 401c2 (10:41c2)
ld [wDexMaxSeenMon], a
ret
-DrawPokedexVerticalLine: ; 40243 (10:4243)
+DrawPokedexVerticalLine:
ld c, 9 ; height of line
ld de, SCREEN_WIDTH ; width of screen
ld a, $71 ; vertical line tile
@@ -329,23 +329,23 @@ DrawPokedexVerticalLine: ; 40243 (10:4243)
jr nz, .loop
ret
-PokedexSeenText: ; 40252 (10:4252)
+PokedexSeenText:
db "SEEN@"
-PokedexOwnText: ; 40257 (10:4257)
+PokedexOwnText:
db "OWN@"
-PokedexContentsText: ; 4025b (10:425b)
+PokedexContentsText:
db "CONTENTS@"
-PokedexMenuItemsText: ; 40264 (10:4264)
+PokedexMenuItemsText:
db "DATA"
next "CRY"
next "AREA"
next "PRNT"
next "QUIT@"
-Pokedex_PlacePokemonList: ; 4027c (10:427c)
+Pokedex_PlacePokemonList:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 4, 2
@@ -393,7 +393,6 @@ Pokedex_PlacePokemonList: ; 4027c (10:427c)
jr nz, .getPokemonName ; if the player has seen the pokemon
ld de, .dashedLine ; print a dashed line in place of the name if the player hasn't seen the pokemon
jr .skipGettingName
-
.dashedLine ; for unseen pokemon in the list
db "----------@"
.getPokemonName
@@ -420,7 +419,7 @@ Pokedex_PlacePokemonList: ; 4027c (10:427c)
; INPUT:
; [wd11e] = pokedex number
; hl = address of bit field
-IsPokemonBitSet: ; 40303 (10:4303)
+IsPokemonBitSet:
ld a, [wd11e]
dec a
ld c, a
@@ -431,14 +430,14 @@ IsPokemonBitSet: ; 40303 (10:4303)
ret
; function to display pokedex data from outside the pokedex
-ShowPokedexData: ; 40312 (10:4312)
+ShowPokedexData:
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
callab LoadPokedexTilePatterns ; load pokedex tiles
; function to display pokedex data from inside the pokedex
-ShowPokedexDataInternal: ; 40323 (10:4323)
+ShowPokedexDataInternal:
ld hl, wd72c
set 1, [hl]
ld a, $33 ; 3/7 volume
@@ -475,23 +474,23 @@ ShowPokedexDataInternal: ; 40323 (10:4323)
ld [rNR50], a
ret
-HeightWeightText: ; 40370 (10:4370)
+HeightWeightText:
db "HT ?", $60, "??", $61
next "WT ???lb@"
; XXX does anything point to this?
-PokeText: ; 40385 (10:4385)
+PokeText:
db "#@"
; horizontal line that divides the pokedex text description from the rest of the data
-PokedexDataDividerLine: ; 40387 (10:4387)
+PokedexDataDividerLine:
db $68, $69, $6B, $69, $6B
db $69, $6B, $69, $6B, $6B
db $6B, $6B, $69, $6B, $69
db $6B, $69, $6B, $69, $6A
db "@"
-DrawDexEntryOnScreen: ; 4039c (10:439c)
+DrawDexEntryOnScreen:
call ClearScreen
coord hl, 0, 0
@@ -519,10 +518,9 @@ DrawDexEntryOnScreen: ; 4039c (10:439c)
ld a, $6c ; lower left corner tile
Coorda 0, 17
ld a, $6e ; lower right corner tile
-
Coorda 19, 17
- coord hl, 0, 9
+ coord hl, 0, 9
ld de, PokedexDataDividerLine
call PlaceString ; draw horizontal divider line
@@ -649,9 +647,9 @@ DrawDexEntryOnScreen: ; 4039c (10:439c)
scf
ret
-Pokedex_PrintFlavorTextAtRow11: ; 404ae (10:44ae)
+Pokedex_PrintFlavorTextAtRow11:
coord bc, 1, 11
-Pokedex_PrintFlavorTextAtBC: ; 404b1 (10:44b1)
+Pokedex_PrintFlavorTextAtBC:
ld a, 2
ld [$fff9], a
call TextCommandProcessor ; print pokedex description text
@@ -659,7 +657,7 @@ Pokedex_PrintFlavorTextAtBC: ; 404b1 (10:44b1)
ld [$fff9], a
ret
-Pokedex_PrepareDexEntryForPrinting: ; 404bc (10:44bc)
+Pokedex_PrepareDexEntryForPrinting:
coord hl, 0, 0
ld de, SCREEN_WIDTH
lb bc, $66, $d
@@ -695,7 +693,7 @@ Pokedex_PrepareDexEntryForPrinting: ; 404bc (10:44bc)
; c = number of tile ID's to write
; de = amount to destination address after each tile (1 for horizontal, 20 for vertical)
; hl = destination address
-DrawTileLine: ; 40501 (10:4501)
+DrawTileLine:
push bc
push de
.loop
@@ -709,7 +707,7 @@ DrawTileLine: ; 40501 (10:4501)
INCLUDE "data/pokedex_entries.asm"
-PokedexToIndex: ; 41086 (10:5086)
+PokedexToIndex:
; converts the Pokédex number at wd11e to an index
push bc
push hl
@@ -730,7 +728,7 @@ PokedexToIndex: ; 41086 (10:5086)
pop bc
ret
-IndexToPokedex: ; 4109d (10:509d)
+IndexToPokedex:
; converts the indexédex number at wd11e to a Pokédex number
push bc
push hl
diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm
index 0fedcca4..d1b1be3c 100755
--- a/engine/menu/prize_menu.asm
+++ b/engine/menu/prize_menu.asm
@@ -1,4 +1,4 @@
-CeladonPrizeMenu: ; 5267d (14:667d)
+CeladonPrizeMenu:
ld b,COIN_CASE
call IsItemInBag
jr nz,.havingCoinCase
@@ -33,7 +33,7 @@ CeladonPrizeMenu: ; 5267d (14:667d)
bit 1,a ; keypress = B (Cancel)
jr nz, .noChoice
ld a,[wCurrentMenuItem]
- cp $03 ; "NO,THANKS" choice
+ cp 3 ; "NO,THANKS" choice
jr z, .noChoice
call HandlePrizeChoice
.noChoice
@@ -41,20 +41,20 @@ CeladonPrizeMenu: ; 5267d (14:667d)
res 6, [hl]
ret
-RequireCoinCaseTextPtr: ; 526df (14:66df)
+RequireCoinCaseTextPtr:
TX_FAR _RequireCoinCaseText
db $0D
db "@"
-ExchangeCoinsForPrizesTextPtr: ; 526e5 (14:66e5)
+ExchangeCoinsForPrizesTextPtr:
TX_FAR _ExchangeCoinsForPrizesText
db "@"
-WhichPrizeTextPtr: ; 526ea (14:66ea)
+WhichPrizeTextPtr:
TX_FAR _WhichPrizeText
db "@"
-GetPrizeMenuId: ; 526ef (14:66ef)
+GetPrizeMenuId:
; determine which one among the three
; prize-texts has been selected
; using the text ID (stored in [hSpriteIndexOrTextID])
@@ -68,7 +68,7 @@ GetPrizeMenuId: ; 526ef (14:66ef)
ld [wWhichPrizeWindow], a ; prize-texts' id (relative, i.e. 0, 1 or 2)
add a
add a
- ld d, $0
+ ld d, 0
ld e, a
ld hl, PrizeDifferentMenuPtrs
add hl, de
@@ -84,10 +84,10 @@ GetPrizeMenuId: ; 526ef (14:66ef)
ld h, [hl]
ld l, a
ld de, wPrize1Price
- ld bc, $6
+ ld bc, 6
call CopyData
ld a, [wWhichPrizeWindow]
- cp $02 ;is TM_menu?
+ cp 2 ;is TM_menu?
jr nz, .putMonName
ld a, [wPrize1]
ld [wd11e], a
@@ -144,21 +144,21 @@ GetPrizeMenuId: ; 526ef (14:66ef)
ld c, (1 << 7 | 2)
jp PrintBCDNumber
-NoThanksText: ; 527a4 (14:67a4)
+NoThanksText:
db "NO THANKS@"
INCLUDE "data/prizes.asm"
-PrintPrizePrice: ; 527db (14:67db)
+PrintPrizePrice:
coord hl, 11, 0
lb bc, 1, 7
call TextBoxBorder
call UpdateSprites
coord hl, 12, 0
- ld de, CoinString
+ ld de, .CoinString
call PlaceString
coord hl, 13, 1
- ld de, SixSpacesString
+ ld de, .SixSpacesString
call PlaceString
coord hl, 13, 1
ld de,wPlayerCoins
@@ -166,16 +166,16 @@ PrintPrizePrice: ; 527db (14:67db)
call PrintBCDNumber
ret
-CoinString: ; 52805 (14:6805)
+.CoinString:
db "COIN@"
-SixSpacesString: ; 5280a (14:680a)
+.SixSpacesString:
db " @"
-LoadCoinsToSubtract: ; 52811 (14:6811)
+LoadCoinsToSubtract:
ld a,[wWhichPrize]
add a
- ld d, $0
+ ld d, 0
ld e, a
ld hl, wPrize1Price
add hl, de ; get selected prize's price
@@ -187,17 +187,17 @@ LoadCoinsToSubtract: ; 52811 (14:6811)
ld [hCoins + 1], a
ret
-HandlePrizeChoice: ; 52826 (14:6826)
+HandlePrizeChoice:
ld a, [wCurrentMenuItem]
ld [wWhichPrize], a
- ld d, $0
+ ld d, 0
ld e, a
ld hl, wPrize1
add hl, de
ld a, [hl]
ld [wd11e], a
ld a, [wWhichPrizeWindow]
- cp $02 ; is prize a TM?
+ cp 2 ; is prize a TM?
jr nz, .getMonName
call GetItemName
jr .givePrize
@@ -261,35 +261,35 @@ HandlePrizeChoice: ; 52826 (14:6826)
ld hl,OhFineThenTextPtr
jp PrintText
-UnknownData528b1: ; 528b1 (14:68b1)
+UnknownPrizeData:
; XXX what's this?
db $00,$01,$00,$01,$00,$01,$00,$00,$01
-HereYouGoTextPtr: ; 528ca (14:68ba)
+HereYouGoTextPtr:
TX_FAR _HereYouGoText
db $0D
db "@"
-SoYouWantPrizeTextPtr: ; 528c0 (14:68c0)
+SoYouWantPrizeTextPtr:
TX_FAR _SoYouWantPrizeText
db "@"
-SorryNeedMoreCoinsText: ; 528c5 (14:68c5)
+SorryNeedMoreCoinsText:
TX_FAR _SorryNeedMoreCoinsText
db $0D
db "@"
-PrizeRoomBagIsFullTextPtr: ; 528cb (14:68cb)
+PrizeRoomBagIsFullTextPtr:
TX_FAR _OopsYouDontHaveEnoughRoomText
db $0D
db "@"
-OhFineThenTextPtr: ; 528d1 (14:68d1)
+OhFineThenTextPtr:
TX_FAR _OhFineThenText
db $0D ; wait keypress (A/B) without blink
db "@"
-GetPrizeMonLevel: ; 528d7 (14:68d7)
+GetPrizeMonLevel:
ld a, [wcf91]
ld b, a
ld hl, PrizeMonLevelDictionary
diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm
index 3eeb1c07..af687432 100755
--- a/engine/menu/start_menu.asm
+++ b/engine/menu/start_menu.asm
@@ -1,13 +1,13 @@
-DisplayStartMenu:: ; 29d1 (0:29d1)
+DisplayStartMenu::
switchbank StartMenu_Pokedex ; also bank for other functions
ld a, [wWalkBikeSurfState] ; walking/biking/surfing
ld [wWalkBikeSurfStateCopy], a
- ld a, $8f ; (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound
+ ld a, SFX_START_MENU
call PlaySound
-RedisplayStartMenu:: ; 29e1 (0:29e1)
+RedisplayStartMenu::
callba DrawStartMenu
-RedisplayStartMenu_DoNotDrawStartMenu: ; 29e9 (0:29e9)
+RedisplayStartMenu_DoNotDrawStartMenu:
callba PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone
call UpdateSprites
.loop
@@ -23,7 +23,7 @@ RedisplayStartMenu_DoNotDrawStartMenu: ; 29e9 (0:29e9)
and a
jr nz, .loop
; if the player pressed tried to go past the top item, wrap around to the bottom
- CheckEvent EVENT_GOT_POKEDEX ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a, 6 ; there are 7 menu items with the pokedex, so the max index is 6
jr nz, .wrapMenuItemId
dec a ; there are only 6 menu items without the pokedex
@@ -35,7 +35,7 @@ RedisplayStartMenu_DoNotDrawStartMenu: ; 29e9 (0:29e9)
bit 7, a
jr z, .buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
- CheckEvent EVENT_GOT_POKEDEX ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a, [wCurrentMenuItem]
ld c, 7 ; there are 7 menu items with the pokedex
jr nz, .checkIfPastBottom
@@ -56,7 +56,7 @@ RedisplayStartMenu_DoNotDrawStartMenu: ; 29e9 (0:29e9)
and a, %00001010 ; was the Start button or B button pressed?
jp nz, CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
- CheckEvent EVENT_GOT_POKEDEX ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a, [wCurrentMenuItem]
jr nz, .displayMenuItem
inc a ; adjust position to account for missing pokedex menu item
@@ -75,7 +75,7 @@ RedisplayStartMenu_DoNotDrawStartMenu: ; 29e9 (0:29e9)
jp z, StartMenu_Option
; EXIT falls through to here
-CloseStartMenu:: ; 2a72 (0:2a72)
+CloseStartMenu::
call Joypad
ld a, [hJoyPressed]
bit 0, a ; was A button newly pressed?
diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm
index 792903b7..94469960 100755
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -1,4 +1,4 @@
-StartMenu_Pokedex: ; 11c22 (4:5c22)
+StartMenu_Pokedex:
predef ShowPokedexMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
call Delay3
@@ -6,7 +6,7 @@ StartMenu_Pokedex: ; 11c22 (4:5c22)
call UpdateSprites
jp RedisplayStartMenu
-StartMenu_Pokemon: ; 11c36 (4:5c36)
+StartMenu_Pokemon:
ld a,[wPartyCount]
and a
jp z,RedisplayStartMenu
@@ -129,7 +129,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
dw .dig
dw .teleport
dw .softboiled
-.fly ; 11d1b (4:5d1b)
+.fly
bit 2,a ; does the player have the Thunder Badge?
jp z,.newBadgeRequired
call CheckIfInOutsideMap
@@ -160,7 +160,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
and a
jp z,.loop
jp CloseTextDisplay
-.surf ; 11d66 (4:5d66)
+.surf
bit 4,a ; does the player have the Soul Badge?
jp z,.newBadgeRequired
callba IsSurfingAllowed
@@ -190,13 +190,13 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
xor a
ld [wd473], a
jp .loop
-.strength ; 11dab (4:5dab)
+.strength
bit 3,a ; does the player have the Rainbow Badge?
jp z,.newBadgeRequired
predef PrintStrengthTxt
call GBPalWhiteOutWithDelay3
jp .goBackToMap
-.flash ; 11dbb (4:5dbb)
+.flash
bit 0,a ; does the player have the Boulder Badge?
jp z,.newBadgeRequired
xor a
@@ -208,7 +208,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
.flashLightsAreaText
TX_FAR _FlashLightsAreaText
db "@"
-.dig ; 11dd5 (4:5dd5)
+.dig
ld a,ESCAPE_ROPE
ld [wcf91],a
ld [wPseudoItemID],a
@@ -218,7 +218,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
jp z,.loop
call GBPalWhiteOutWithDelay3
jp .goBackToMap
-.teleport ; 11ded (4:5ded)
+.teleport
call CheckIfInOutsideMap
jr z,.canTeleport
ld a,[wWhichPokemon]
@@ -239,7 +239,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
res 4,[hl]
ld c,60
call DelayFrames
- call GBPalWhiteOutWithDelay3 ; zero all three palettes and wait 3 frames
+ call GBPalWhiteOutWithDelay3
jp .goBackToMap
.warpToLastPokemonCenterText
TX_FAR _WarpToLastPokemonCenterText
@@ -250,7 +250,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
.cannotFlyHereText
TX_FAR _CannotFlyHereText
db "@"
-.softboiled ; 11e35 (4:5e35)
+.softboiled
ld hl,wPartyMon1MaxHP
ld a,[wWhichPokemon]
ld bc,wPartyMon2 - wPartyMon1
@@ -301,7 +301,7 @@ StartMenu_Pokemon: ; 11c36 (4:5c36)
db "@"
; writes a blank tile to all possible menu cursor positions on the party menu
-ErasePartyMenuCursors: ; 11e98 (4:5e98)
+ErasePartyMenuCursors:
coord hl, 0, 1
ld bc,2 * 20 ; menu cursor positions are 2 rows apart
ld a,6 ; 6 menu cursor positions
@@ -312,11 +312,11 @@ ErasePartyMenuCursors: ; 11e98 (4:5e98)
jr nz,.loop
ret
-ItemMenuLoop: ; 11ea7 (4:5ea7)
+ItemMenuLoop:
call LoadScreenTilesFromBuffer2DisableBGTransfer ; restore saved screen
call RunDefaultPaletteCommand
-StartMenu_Item: ; 11ead (4:5ead)
+StartMenu_Item:
ld a,[wLinkState]
dec a ; is the player in the Colosseum or Trade Centre?
jr nz,.notInCableClubRoom
@@ -454,16 +454,16 @@ StartMenu_Item: ; 11ead (4:5ead)
.tossZeroItems
jp ItemMenuLoop
-CannotUseItemsHereText: ; 11fd4 (4:5fd4)
+CannotUseItemsHereText:
TX_FAR _CannotUseItemsHereText
db "@"
-CannotGetOffHereText: ; 11fd9 (4:5fd9)
+CannotGetOffHereText:
TX_FAR _CannotGetOffHereText
db "@"
; items which bring up the party menu when used
-UsableItems_PartyMenu: ; 11fde (4:5fde)
+UsableItems_PartyMenu:
db MOON_STONE
db ANTIDOTE
db BURN_HEAL
@@ -503,7 +503,7 @@ UsableItems_PartyMenu: ; 11fde (4:5fde)
db $ff
; items which close the item menu when used
-UsableItems_CloseMenu: ; 12003 (4:6003)
+UsableItems_CloseMenu:
db ESCAPE_ROPE
db ITEMFINDER
db POKE_FLUTE
@@ -512,7 +512,7 @@ UsableItems_CloseMenu: ; 12003 (4:6003)
db SUPER_ROD
db $ff
-StartMenu_TrainerInfo: ; 1200a (4:600a)
+StartMenu_TrainerInfo:
call GBPalWhiteOut
call ClearScreen
call UpdateSprites
@@ -538,7 +538,7 @@ StartMenu_TrainerInfo: ; 1200a (4:600a)
jp RedisplayStartMenu_DoNotDrawStartMenu
; loads tile patterns and draws everything except for gym leader faces / badges
-DrawTrainerInfo: ; 1204c (4:604c)
+DrawTrainerInfo:
ld de,RedPicFront
lb bc, BANK(RedPicFront), $01
predef DisplayPicCenteredOrUpperRight
@@ -627,17 +627,17 @@ DrawTrainerInfo: ; 1204c (4:604c)
lb bc, LEADING_ZEROES | 1, 2
jp PrintNumber
-TrainerInfo_FarCopyData: ; 12131 (4:6131)
+TrainerInfo_FarCopyData:
ld a,BANK(TrainerInfoTextBoxTileGraphics)
jp FarCopyData
-TrainerInfo_NameMoneyTimeText: ; 12136 (4:6136)
+TrainerInfo_NameMoneyTimeText:
db "NAME/"
next "MONEY/"
next "TIME/@"
; $76 is a circle tile
-TrainerInfo_BadgesText: ; 12149 (4:6149)
+TrainerInfo_BadgesText:
db $76,"BADGES",$76,"@"
; draws a text box on the trainer info screen
@@ -647,7 +647,7 @@ TrainerInfo_BadgesText: ; 12149 (4:6149)
; [wTrainerInfoTextBoxWidthPlus1] = width
; [wTrainerInfoTextBoxWidth] = width - 1
; [wTrainerInfoTextBoxNextRowOffset] = distance from the end of a text box row to the start of the next
-TrainerInfo_DrawTextBox: ; 12152 (4:6152)
+TrainerInfo_DrawTextBox:
ld a,$79 ; upper left corner tile ID
lb de, $7a, $7b ; top edge and upper right corner tile ID's
call TrainerInfo_DrawHorizontalEdge ; draw top edge
@@ -666,7 +666,7 @@ TrainerInfo_DrawTextBox: ; 12152 (4:6152)
ld a,$7d ; lower left corner tile ID
lb de,$77, $7e ; bottom edge and lower right corner tile ID's
-TrainerInfo_DrawHorizontalEdge: ; 12175 (4:6175)
+TrainerInfo_DrawHorizontalEdge:
ld [hli],a ; place left corner tile
ld a,[wTrainerInfoTextBoxWidth]
ld c,a
@@ -679,7 +679,7 @@ TrainerInfo_DrawHorizontalEdge: ; 12175 (4:6175)
ld [hl],a ; place right corner tile
ret
-TrainerInfo_NextTextBoxRow: ; 12182 (4:6182)
+TrainerInfo_NextTextBoxRow:
ld a,[wTrainerInfoTextBoxNextRowOffset] ; distance to the start of the next row
.loop
inc hl
@@ -691,7 +691,7 @@ TrainerInfo_NextTextBoxRow: ; 12182 (4:6182)
; INPUT:
; hl = address of top tile in the line
; a = tile ID
-TrainerInfo_DrawVerticalLine: ; 1218a (4:618a)
+TrainerInfo_DrawVerticalLine:
ld de,20
ld c,8
.loop
@@ -701,7 +701,7 @@ TrainerInfo_DrawVerticalLine: ; 1218a (4:618a)
jr nz,.loop
ret
-StartMenu_SaveReset: ; 12195 (4:6195)
+StartMenu_SaveReset:
ld a,[wd72e]
bit 6,a ; is the player using the link feature?
jp nz,Init
@@ -709,7 +709,7 @@ StartMenu_SaveReset: ; 12195 (4:6195)
call LoadScreenTilesFromBuffer2 ; restore saved screen
jp HoldTextDisplayOpen
-StartMenu_Option: ; 121a9 (4:61a9)
+StartMenu_Option:
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call ClearScreen
@@ -720,7 +720,7 @@ StartMenu_Option: ; 121a9 (4:61a9)
call UpdateSprites
jp RedisplayStartMenu
-SwitchPartyMon: ; 121c5 (4:61c5)
+SwitchPartyMon:
call SwitchPartyMon_InitVarOrSwapData ; swap data
ld a, [wSwappedMenuItem]
call SwitchPartyMon_ClearGfx
@@ -728,7 +728,7 @@ SwitchPartyMon: ; 121c5 (4:61c5)
call SwitchPartyMon_ClearGfx
jp RedrawPartyMenu_
-SwitchPartyMon_ClearGfx: ; 121d7 (4:61d7)
+SwitchPartyMon_ClearGfx:
push af
coord hl, 0, 0
ld bc, SCREEN_WIDTH * 2
@@ -754,7 +754,7 @@ SwitchPartyMon_ClearGfx: ; 121d7 (4:61d7)
ld a, SFX_SWAP
jp PlaySound
-SwitchPartyMon_InitVarOrSwapData: ; 12205 (4:6205)
+SwitchPartyMon_InitVarOrSwapData:
; This is used to initialise [wMenuItemToSwap] and to actually swap the data.
ld a, [wMenuItemToSwap]
and a ; has [wMenuItemToSwap] been initialised yet?
diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm
index 719cacd1..4adfb543 100755
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -1,15 +1,15 @@
-DrawHP: ; 11468 (4:5468)
+DrawHP:
; Draws the HP bar in the stats screen
call GetPredefRegisters
ld a, $1
jr DrawHP_
-DrawHP2: ; 1146f (4:546f)
+DrawHP2:
; Draws the HP bar in the party screen
call GetPredefRegisters
ld a, $2
-DrawHP_: ; 11474 (4:5474)
+DrawHP_:
ld [wHPBarType], a
push hl
ld a, [wLoadedMonHP]
@@ -63,7 +63,7 @@ DrawHP_: ; 11474 (4:5474)
; Predef 0x37
-StatusScreen: ; 114cc (4:54cc)
+StatusScreen:
call LoadMonData
ld a, [wMonDataLocation]
cp BOX_DATA
@@ -209,38 +209,38 @@ StatusScreen: ; 114cc (4:54cc)
ld a, [wWhichPokemon]
jp SkipFixedLengthTextEntries
-OTPointers: ; 1163b (4:563b)
+OTPointers:
dw wPartyMonOT
dw wEnemyMonOT
dw wBoxMonOT
dw wDayCareMonOT
-NamePointers2: ; 11643 (4:5643)
+NamePointers2:
dw wPartyMonNicks
dw wEnemyMonNicks
dw wBoxMonNicks
dw wDayCareMonName
-Type1Text: ; 1164b (4:564b)
+Type1Text:
db "TYPE1/", $4e
-Type2Text: ; 11652 (4:5652)
+Type2Text:
db "TYPE2/", $4e
-IDNoText: ; 11659 (4:5659)
+IDNoText:
db $73, "№", "/", $4e
-OTText: ; 1165d (4:565d)
+OTText:
db "OT/", $4e, "@"
-StatusText: ; 11662 (4:5662)
+StatusText:
db "STATUS/@"
-OKText: ; 1166a (4:566a)
+OKText:
db "OK@"
; Draws a line starting from hl high b and wide c
-DrawLineBox: ; 1166d (4:566d)
+DrawLineBox:
ld de, SCREEN_WIDTH ; New line
.PrintVerticalLine
ld [hl], $78 ; │
@@ -257,11 +257,11 @@ DrawLineBox: ; 1166d (4:566d)
ld [hl], $6f ; ← (halfarrow ending)
ret
-PTile: ; 11682 (4:5682) ; This is a single 1bpp "P" tile
+PTile: ; This is a single 1bpp "P" tile
INCBIN "gfx/p_tile.1bpp"
PTileEnd:
-PrintStatsBox: ; 1168a (4:568a)
+PrintStatsBox:
ld a, d
and a ; a is 0 from the status screen
jr nz, .DifferentBox
@@ -294,7 +294,7 @@ PrintStatsBox: ; 1168a (4:568a)
call PrintStat
ld de, wLoadedMonSpecial
jp PrintNumber
-PrintStat: ; 116d4 (4:56d4)
+PrintStat:
push hl
call PrintNumber
pop hl
@@ -302,13 +302,13 @@ PrintStat: ; 116d4 (4:56d4)
add hl, de
ret
-StatsText: ; 116de (4:56de)
+StatsText:
db "ATTACK"
next "DEFENSE"
next "SPEED"
next "SPECIAL@"
-StatusScreen2: ; 116fb (4:56fb)
+StatusScreen2:
ld a, [hTilesetType]
push af
xor a
@@ -349,11 +349,11 @@ StatusScreen2: ; 116fb (4:56fb)
ld c, a
ld a, "-"
call StatusScreen_PrintPP ; Fill the rest with --
-.InitPP ; 1175e
+.InitPP
ld hl, wLoadedMonMoves
coord de, 14, 10
ld b, 0
-.PrintPP ; 11766
+.PrintPP
ld a, [hli]
and a
jr z, .PPDone
@@ -449,7 +449,7 @@ StatusScreen2: ; 116fb (4:56fb)
call GBPalWhiteOut
jp ClearScreen
-CalcExpToLevelUp: ; 11829 (4:5829)
+CalcExpToLevelUp:
ld a, [wLoadedMonLevel]
cp MAX_LEVEL
jr z, .atMaxLevel
@@ -475,16 +475,16 @@ CalcExpToLevelUp: ; 11829 (4:5829)
ld [hl], a
ret
-StatusScreenExpText: ; 11852 (4:5852)
+StatusScreenExpText:
db "EXP POINTS"
next "LEVEL UP@"
-StatusScreen_ClearName: ; 11866 (4:5866)
+StatusScreen_ClearName:
ld bc, 10
ld a, " "
jp FillMemory
-StatusScreen_PrintPP: ; 1186e (4:586e)
+StatusScreen_PrintPP:
; print PP or -- c times, going down two rows each time
ld [hli], a
ld [hld], a
diff --git a/engine/menu/swap_items.asm b/engine/menu/swap_items.asm
index 73304118..b1fa78be 100644
--- a/engine/menu/swap_items.asm
+++ b/engine/menu/swap_items.asm
@@ -1,4 +1,4 @@
-HandleItemListSwapping: ; 68c9 (1:68c9)
+HandleItemListSwapping:
ld a,[wListMenuID]
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
@@ -146,4 +146,4 @@ HandleItemListSwapping: ; 68c9 (1:68c9)
ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped
pop de
pop hl
- jp DisplayListMenuIDLoop \ No newline at end of file
+ jp DisplayListMenuIDLoop
diff --git a/engine/menu/text_ids1.asm b/engine/menu/text_ids1.asm
index e9f2a4d7..e2fd76f4 100644
--- a/engine/menu/text_ids1.asm
+++ b/engine/menu/text_ids1.asm
@@ -1,5 +1,5 @@
; function that performs initialization for DisplayTextID
-DisplayTextIDInit: ; 6f0e (1:6f0e)
+DisplayTextIDInit:
xor a
ld [wListMenuID],a
ld a,[wAutoTextBoxDrawingControl]
@@ -75,7 +75,7 @@ DisplayTextIDInit: ; 6f0e (1:6f0e)
ret
; function that displays the start menu
-DrawStartMenu: ; 6f80 (1:6f80)
+DrawStartMenu:
CheckEvent EVENT_GOT_POKEDEX
; menu with pokedex
coord hl, 10, 0
@@ -133,31 +133,31 @@ DrawStartMenu: ; 6f80 (1:6f80)
res 6,[hl] ; turn pauses between printing letters back on
ret
-StartMenuPokedexText: ; 7002 (1:7002)
+StartMenuPokedexText:
db "POKéDEX@"
-StartMenuPokemonText: ; 700a (1:700a)
+StartMenuPokemonText:
db "#MON@"
-StartMenuItemText: ; 700f (1:700f)
+StartMenuItemText:
db "ITEM@"
-StartMenuSaveText: ; 7014 (1:7014)
+StartMenuSaveText:
db "SAVE@"
-StartMenuResetText: ; 7019 (1:7019)
+StartMenuResetText:
db "RESET@"
-StartMenuExitText: ; 701f (1:701f)
+StartMenuExitText:
db "EXIT@"
-StartMenuOptionText: ; 7024 (1:7024)
+StartMenuOptionText:
db "OPTION@"
-PrintStartMenuItem: ; 702b (1:702b)
+PrintStartMenuItem:
push hl
call PlaceString
pop hl
ld de,SCREEN_WIDTH * 2
add hl,de
- ret \ No newline at end of file
+ ret
diff --git a/engine/menu/text_ids2.asm b/engine/menu/text_ids2.asm
index 15a43d5f..fbac3986 100644
--- a/engine/menu/text_ids2.asm
+++ b/engine/menu/text_ids2.asm
@@ -1,5 +1,5 @@
; function to draw various text boxes
-DisplayTextBoxID_: ; 71bf (1:71bf)
+DisplayTextBoxID_:
ld a,[wTextBoxID]
cp a,TWO_OPTION_MENU
jp z,DisplayTwoOptionMenu
@@ -50,7 +50,7 @@ DisplayTextBoxID_: ; 71bf (1:71bf)
; function to search a table terminated with $ff for a byte matching c in increments of de
; sets carry flag if a match is found and clears carry flag if not
-SearchTextBoxTable: ; 7221 (1:7221)
+SearchTextBoxTable:
dec de
.loop
ld a,[hli]
@@ -73,7 +73,7 @@ SearchTextBoxTable: ; 7221 (1:7221)
; c = width
; d = row of upper left corner
; e = column of upper left corner
-GetTextBoxIDCoords: ; 722f (1:722f)
+GetTextBoxIDCoords:
ld a,[hli] ; column of upper left corner
ld e,a
ld a,[hli] ; row of upper left corner
@@ -89,7 +89,7 @@ GetTextBoxIDCoords: ; 722f (1:722f)
ret
; function to load a text address and text coordinates from the TextBoxTextAndCoordTable
-GetTextBoxIDText: ; 723c (1:723c)
+GetTextBoxIDText:
ld a,[hli]
ld e,a
ld a,[hli]
@@ -109,7 +109,7 @@ GetTextBoxIDText: ; 723c (1:723c)
; e = column
; OUTPUT:
; hl = address of upper left corner of text box
-GetAddressOfScreenCoords: ; 724a (1:724a)
+GetAddressOfScreenCoords:
push bc
coord hl, 0, 0
ld bc,20
@@ -128,7 +128,7 @@ GetAddressOfScreenCoords: ; 724a (1:724a)
; Format:
; 00: text box ID
; 01-02: function address
-TextBoxFunctionTable: ; 725c (1:725c)
+TextBoxFunctionTable:
dbw MONEY_BOX, DisplayMoneyBox
dbw BUY_SELL_QUIT_MENU, DoBuySellQuitMenu
dbw FIELD_MOVE_MON_MENU, DisplayFieldMoveMonMenu
@@ -140,7 +140,7 @@ TextBoxFunctionTable: ; 725c (1:725c)
; 02: row of upper left corner
; 03: column of lower right corner
; 04: row of lower right corner
-TextBoxCoordTable: ; 7266 (1:7266)
+TextBoxCoordTable:
db MESSAGE_BOX, 0, 12, 19, 17
db $03, 0, 0, 19, 14
db $07, 0, 0, 11, 6
@@ -159,7 +159,7 @@ TextBoxCoordTable: ; 7266 (1:7266)
; 07: column of beginning of text
; 08: row of beginning of text
; table of window positions and corresponding text [key, start column, start row, end column, end row, text pointer [2 bytes], text column, text row]
-TextBoxTextAndCoordTable: ; 7285 (1:7285)
+TextBoxTextAndCoordTable:
db JP_MOCHIMONO_MENU_TEMPLATE
db 0,0,14,17 ; text box coordinates
dw JapaneseMochimonoText
@@ -217,56 +217,56 @@ TextBoxTextAndCoordTable: ; 7285 (1:7285)
; note that there is no terminator
-BuySellQuitText: ; 72e8 (1:72e8)
+BuySellQuitText:
db "BUY"
next "SELL"
next "QUIT@@"
-UseTossText: ; 72f7 (1:72f7)
+UseTossText:
db "USE"
next "TOSS@"
-JapaneseSaveMessageText: ; 7300 (1:7300)
+JapaneseSaveMessageText:
db "きろく"
next "メッセージ@"
-JapaneseSpeedOptionsText: ; 7309 (1:7309)
+JapaneseSpeedOptionsText:
db "はやい"
next "おそい@"
-MoneyText: ; 7312 (1:7312)
+MoneyText:
db "MONEY@"
-JapaneseMochimonoText: ; 7318 (1:7318)
+JapaneseMochimonoText:
db "もちもの@"
-JapaneseMainMenuText: ; 731d (1:731d)
+JapaneseMainMenuText:
db "つづきから"
next "さいしょから@"
-BattleMenuText: ; 732a (1:732a)
+BattleMenuText:
db "FIGHT ",$E1,$E2
next "ITEM RUN@"
-SafariZoneBattleMenuText: ; 733d (1:733d)
+SafariZoneBattleMenuText:
db "BALL× BAIT"
next "THROW ROCK RUN@"
-SwitchStatsCancelText: ; 735e (1:735e)
+SwitchStatsCancelText:
db "SWITCH"
next "STATS"
next "CANCEL@"
-JapaneseAhText: ; 7372 (1:7372)
+JapaneseAhText:
db "アッ!@"
-JapanesePokedexMenu: ; 7376 (1:7376)
+JapanesePokedexMenu:
db "データをみる"
next "なきごえ"
next "ぶんぷをみる"
next "キャンセル@"
-DisplayMoneyBox: ; 738f (1:738f)
+DisplayMoneyBox:
ld hl, wd730
set 6, [hl]
ld a, MONEY_BOX_TEMPLATE
@@ -283,10 +283,10 @@ DisplayMoneyBox: ; 738f (1:738f)
res 6, [hl]
ret
-CurrencyString: ; 73b6 (1:73b6)
+CurrencyString:
db " ¥@"
-DoBuySellQuitMenu: ; 73be (1:73be)
+DoBuySellQuitMenu:
ld a, [wd730]
set 6, a ; no printing delay
ld [wd730], a
@@ -341,7 +341,7 @@ DoBuySellQuitMenu: ; 73be (1:73be)
; b = Y of upper left corner of text region
; c = X of upper left corner of text region
; hl = address where the text box border should be drawn
-DisplayTwoOptionMenu: ; 742d (1:742d)
+DisplayTwoOptionMenu:
push hl
ld a, [wd730]
set 6, a ; no printing delay
@@ -452,7 +452,7 @@ DisplayTwoOptionMenu: ; 742d (1:742d)
; they cover be fully saved/restored by the two functions below.
; The bottom and right edges of the menu may remain after the function returns.
-TwoOptionMenu_SaveScreenTiles: ; 74e7 (1:74e7)
+TwoOptionMenu_SaveScreenTiles:
ld de, wBuffer
lb bc, 5, 6
.loop
@@ -470,7 +470,7 @@ TwoOptionMenu_SaveScreenTiles: ; 74e7 (1:74e7)
jr nz, .loop
ret
-TwoOptionMenu_RestoreScreenTiles: ; 74ff (1:74ff)
+TwoOptionMenu_RestoreScreenTiles:
ld de, wBuffer
lb bc, 5, 6
.loop
@@ -494,7 +494,7 @@ TwoOptionMenu_RestoreScreenTiles: ; 74ff (1:74ff)
; 01: byte height
; 02: byte put blank line before first menu item
; 03: word text pointer
-TwoOptionMenuStrings: ; 751a (1:751a)
+TwoOptionMenuStrings:
db 4,3,0
dw .YesNoMenu
db 6,3,0
@@ -527,7 +527,7 @@ TwoOptionMenuStrings: ; 751a (1:751a)
.HealCancelMenu ; 757e (1:757e)
db "HEAL",$4E,"CANCEL@"
-DisplayFieldMoveMonMenu: ; 758a (1:758a)
+DisplayFieldMoveMonMenu:
xor a
ld hl, wFieldMoves
ld [hli], a ; wFieldMoves
@@ -646,7 +646,7 @@ DisplayFieldMoveMonMenu: ; 758a (1:758a)
ld de, PokemonMenuEntries
jp PlaceString
-FieldMoveNames: ; 7635 (1:7635)
+FieldMoveNames:
db "CUT@"
db "FLY@"
db "@"
@@ -657,12 +657,12 @@ FieldMoveNames: ; 7635 (1:7635)
db "TELEPORT@"
db "SOFTBOILED@"
-PokemonMenuEntries: ; 766a (1:766a)
+PokemonMenuEntries:
db "STATS"
next "SWITCH"
next "CANCEL@"
-GetMonFieldMoves: ; 767e (1:767e)
+GetMonFieldMoves:
ld a, [wWhichPokemon]
ld hl, wPartyMon1Moves
ld bc, wPartyMon2 - wPartyMon1
@@ -719,7 +719,7 @@ GetMonFieldMoves: ; 767e (1:767e)
; Name index = index of name in FieldMoveNames
; Leftmost tile = -1 + tile column in which the first letter of the move's name should be displayed
; "SOFTBOILED" is $08 because it has 4 more letters than "SURF", for example, whose value is $0C
-FieldMoveDisplayData: ; 76cb (1:76cb)
+FieldMoveDisplayData:
db CUT, $01, $0C
db FLY, $02, $0C
db $B4, $03, $0C ; unused field move
@@ -730,4 +730,4 @@ FieldMoveDisplayData: ; 76cb (1:76cb)
db TELEPORT, $08, $0A
db SOFTBOILED, $09, $08
db $ff ; list terminator
- \ No newline at end of file
+
diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm
index 74a6aadb..d864141d 100755
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -1,4 +1,4 @@
-VendingMachineMenu: ; 74726 (1d:4726)
+VendingMachineMenu:
ld hl, VendingMachineText1
call PrintText
ld a, MONEY_BOX
@@ -79,38 +79,38 @@ VendingMachineMenu: ; 74726 (1d:4726)
ld hl, VendingMachineText7
jp PrintText
-VendingMachineText1: ; 747de (1d:47de)
+VendingMachineText1:
TX_FAR _VendingMachineText1
db "@"
-DrinkText: ; 747e3 (1d:47e3)
+DrinkText:
db "FRESH WATER"
next "SODA POP"
next "LEMONADE"
next "CANCEL@"
-DrinkPriceText: ; 74808 (1d:4808)
+DrinkPriceText:
db "¥200"
next "¥300"
next "¥350",$4E,"@"
-VendingMachineText4: ; 74818 (1d:4818)
+VendingMachineText4:
TX_FAR _VendingMachineText4
db "@"
-VendingMachineText5: ; 7481d (1d:481d)
+VendingMachineText5:
TX_FAR _VendingMachineText5
db "@"
-VendingMachineText6: ; 74822 (1d:4822)
+VendingMachineText6:
TX_FAR _VendingMachineText6
db "@"
-VendingMachineText7: ; 74827 (1d:4827)
+VendingMachineText7:
TX_FAR _VendingMachineText7
db "@"
-LoadVendingMachineItem: ; 7482c (1d:482c)
+LoadVendingMachineItem:
ld hl, VendingPrices
ld a, [wCurrentMenuItem]
add a
@@ -128,7 +128,7 @@ LoadVendingMachineItem: ; 7482c (1d:482c)
ld [hVendingMachinePrice + 2], a
ret
-VendingPrices: ; 74845 (1d:4845)
+VendingPrices:
db FRESH_WATER
money 200
db SODA_POP
diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm
index b4091d9c..6f17f876 100755
--- a/engine/mon_party_sprites.asm
+++ b/engine/mon_party_sprites.asm
@@ -1,4 +1,4 @@
-AnimatePartyMon_ForceSpeed1: ; 71784 (1c:5784)
+AnimatePartyMon_ForceSpeed1:
xor a
ld [wCurrentMenuItem], a
ld b, a
@@ -9,7 +9,7 @@ AnimatePartyMon_ForceSpeed1: ; 71784 (1c:5784)
; 0: green
; 1: yellow
; 2: red
-AnimatePartyMon: ; 7178c (1c:578c)
+AnimatePartyMon:
ld hl, wPartyMenuHPBarColors
ld a, [wCurrentMenuItem]
ld c, a
@@ -17,7 +17,7 @@ AnimatePartyMon: ; 7178c (1c:578c)
add hl, bc
ld a, [hl]
-GetAnimationSpeed: ; 71797 (1c:5797)
+GetAnimationSpeed:
ld c, a
ld hl, PartyMonSpeeds
add hl, bc
@@ -85,15 +85,15 @@ GetAnimationSpeed: ; 71797 (1c:5797)
; The members of the PartyMonSpeeds array specify the number of V-blanks
; that each frame lasts for green HP, yellow HP, and red HP in order.
; On the naming screen, the yellow HP speed is always used.
-PartyMonSpeeds: ; 717f6 (1c:57f6)
+PartyMonSpeeds:
db 5, 16, 32
-LoadMonPartySpriteGfx: ; 717f9 (1c:57f9)
+LoadMonPartySpriteGfx:
; Load mon party sprite tile patterns into VRAM during V-blank.
ld hl, MonPartySpritePointers
ld a, $1e
-LoadAnimSpriteGfx: ; 717fe (1c:57fe)
+LoadAnimSpriteGfx:
; Load animated sprite tile patterns into VRAM during V-blank. hl is the address
; of an array of structures that contain arguments for CopyVideoData and a is
; the number of structures in the array.
@@ -125,7 +125,7 @@ LoadAnimSpriteGfx: ; 717fe (1c:57fe)
jr nz, .loop
ret
-LoadMonPartySpriteGfxWithLCDDisabled: ; 7181e (1c:581e)
+LoadMonPartySpriteGfxWithLCDDisabled:
; Load mon party sprite tile patterns into VRAM immediately by disabling the
; LCD.
call DisableLCD
@@ -162,7 +162,7 @@ LoadMonPartySpriteGfxWithLCDDisabled: ; 7181e (1c:581e)
jr nz, .loop
jp EnableLCD
-MonPartySpritePointers: ; 7184d (1c:584d)
+MonPartySpritePointers:
dw SlowbroSprite + $c0
db $40 / $10 ; 40 bytes
db BANK(SlowbroSprite)
@@ -313,7 +313,7 @@ MonPartySpritePointers: ; 7184d (1c:584d)
db BANK(MonPartySprites)
dw vSprites + $780
-WriteMonPartySpriteOAMByPartyIndex: ; 71901 (1c:5901)
+WriteMonPartySpriteOAMByPartyIndex:
; Write OAM blocks for the party mon in [hPartyMonIndex].
push hl
push de
@@ -344,7 +344,7 @@ WriteMonPartySpriteOAMByPartyIndex: ; 71901 (1c:5901)
pop hl
ret
-WriteMonPartySpriteOAMBySpecies: ; 7192f (1c:592f)
+WriteMonPartySpriteOAMBySpecies:
; Write OAM blocks for the party sprite of the species in
; [wMonPartySpriteSpecies].
xor a
@@ -354,7 +354,7 @@ WriteMonPartySpriteOAMBySpecies: ; 7192f (1c:592f)
ld [wOAMBaseTile], a
jr WriteMonPartySpriteOAM
-UnusedPartyMonSpriteFunction: ; 7193d (1c:593d)
+UnusedPartyMonSpriteFunction:
; This function is unused and doesn't appear to do anything useful. It looks
; like it may have been intended to load the tile patterns and OAM data for
; the mon party sprite associated with the species in [wcf91].
@@ -372,7 +372,7 @@ UnusedPartyMonSpriteFunction: ; 7193d (1c:593d)
ld [wMonPartySpriteSpecies], a
jr WriteMonPartySpriteOAMBySpecies
-.LoadTilePatterns ; 71959 (1c:5959)
+.LoadTilePatterns
push hl
add a
ld c, a
@@ -392,7 +392,7 @@ UnusedPartyMonSpriteFunction: ; 7193d (1c:593d)
pop hl
jp CopyVideoData
-WriteMonPartySpriteOAM: ; 71970 (1c:5970)
+WriteMonPartySpriteOAM:
; Write the OAM blocks for the first animation frame into the OAM buffer and
; make a copy at wMonPartySpritesSavedOAM.
push af
@@ -418,7 +418,7 @@ WriteMonPartySpriteOAM: ; 71970 (1c:5970)
ld bc, $60
jp CopyData
-GetPartyMonSpriteID: ; 71996 (1c:5996)
+GetPartyMonSpriteID:
ld [wd11e], a
predef IndexToPokedex
ld a, [wd11e]
@@ -441,5 +441,5 @@ GetPartyMonSpriteID: ; 71996 (1c:5996)
INCLUDE "data/mon_party_sprites.asm"
-MonPartySprites: ; 71a06 (1c:5a06)
+MonPartySprites:
INCBIN "gfx/mon_ow_sprites.2bpp"
diff --git a/engine/move_mon.asm b/engine/move_mon.asm
index a14ed9ca..3471875e 100644
--- a/engine/move_mon.asm
+++ b/engine/move_mon.asm
@@ -1,4 +1,4 @@
-_MoveMon: ; f3a4 (3:73a4)
+_MoveMon:
ld a, [wMoveMonType]
and a
jr z, .checkPartyMonSlots
@@ -169,4 +169,4 @@ _MoveMon: ; f3a4 (3:73a4)
call CalcStats
.asm_f4ea
and a
- ret \ No newline at end of file
+ ret
diff --git a/engine/multiply_divide.asm b/engine/multiply_divide.asm
index 6ff427c6..2bc26de2 100755
--- a/engine/multiply_divide.asm
+++ b/engine/multiply_divide.asm
@@ -1,4 +1,4 @@
-_Multiply: ; f660e (3d:660e)
+_Multiply:
ld a, $8
ld b, a
xor a
@@ -60,7 +60,7 @@ _Multiply: ; f660e (3d:660e)
ld [H_PRODUCT], a ; $ff95
ret
-_Divide: ; f6672 (3d:6672)
+_Divide:
xor a
ld [H_DIVIDEBUFFER], a ; ff9a
ld [H_DIVIDEBUFFER+1], a ; ff9b
diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm
index 2726c651..38fe66f9 100755
--- a/engine/oak_speech.asm
+++ b/engine/oak_speech.asm
@@ -1,4 +1,4 @@
-SetDefaultNames: ; 5e27 (1:5e27)
+SetDefaultNames:
ld a, [wLetterPrintingDelayFlags]
push af
ld a, [wOptions]
@@ -40,7 +40,7 @@ SetDefaultNames: ; 5e27 (1:5e27)
call CopyData ; rip optimizations
ret
-OakSpeech: ; 5e85 (1:5e85)
+OakSpeech:
call StopAllMusic ; stop music
ld a, BANK(Music_Routes2)
ld c,a
@@ -158,25 +158,25 @@ OakSpeech: ; 5e85 (1:5e85)
call ClearScreen ; rip more tail-end optimizations
ret
-OakSpeechText1: ; 5fb9 (1:5fb9)
+OakSpeechText1:
TX_FAR _OakSpeechText1
db "@"
-OakSpeechText2: ; 5fbe (1:5fbe)
+OakSpeechText2:
TX_FAR _OakSpeechText2A
db $14 ; play NIDORINA cry from TextCommandSounds
TX_FAR _OakSpeechText2B
db "@"
-IntroducePlayerText: ; 5fc8 (1:5fc8)
+IntroducePlayerText:
TX_FAR _IntroducePlayerText
db "@"
-IntroduceRivalText: ; 5fcd (1:5fcd)
+IntroduceRivalText:
TX_FAR _IntroduceRivalText
db "@"
-OakSpeechText3: ; 5fd2 (1:5fd2)
+OakSpeechText3:
TX_FAR _OakSpeechText3
db "@"
-FadeInIntroPic: ; 5fd7 (1:5fd7)
+FadeInIntroPic:
ld hl,IntroFadePalettes
ld b,6
.next
@@ -189,7 +189,7 @@ FadeInIntroPic: ; 5fd7 (1:5fd7)
jr nz,.next
ret
-IntroFadePalettes: ; 5feb (1:5feb)
+IntroFadePalettes:
db %01010100
db %10101000
db %11111100
@@ -197,7 +197,7 @@ IntroFadePalettes: ; 5feb (1:5feb)
db %11110100
db %11100100
-MovePicLeft: ; 5ff1 (1:5ff1)
+MovePicLeft:
ld a,119
ld [rWX],a
call DelayFrame
@@ -214,9 +214,9 @@ MovePicLeft: ; 5ff1 (1:5ff1)
ld [rWX],a
jr .next
-DisplayPicCenteredOrUpperRight: ; 600d (1:600d)
+DisplayPicCenteredOrUpperRight:
call GetPredefRegisters
-IntroDisplayPicCenteredOrUpperRight: ; 6010 (1:6010)
+IntroDisplayPicCenteredOrUpperRight:
; b = bank
; de = address of compressed pic
; c: 0 = centred, non-zero = upper-right
@@ -241,4 +241,4 @@ IntroDisplayPicCenteredOrUpperRight: ; 6010 (1:6010)
.next
xor a
ld [hStartTileID],a
- predef_jump CopyUncompressedPicToTilemap \ No newline at end of file
+ predef_jump CopyUncompressedPicToTilemap
diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm
index 5eeb5ea9..80f1bafc 100755
--- a/engine/oak_speech2.asm
+++ b/engine/oak_speech2.asm
@@ -1,4 +1,4 @@
-ChoosePlayerName: ; 66db (1:66db)
+ChoosePlayerName:
call OakSpeechSlidePicRight
ld de, DefaultNamesPlayer
call DisplayIntroNameTextBox
@@ -27,11 +27,11 @@ ChoosePlayerName: ; 66db (1:66db)
ld hl, YourNameIsText
jp PrintText
-YourNameIsText: ; 671d (1:671d)
+YourNameIsText:
TX_FAR _YourNameIsText
db "@"
-ChooseRivalName: ; 6722 (1:6722)
+ChooseRivalName:
call OakSpeechSlidePicRight
ld de, DefaultNamesRival
call DisplayIntroNameTextBox
@@ -60,11 +60,11 @@ ChooseRivalName: ; 6722 (1:6722)
ld hl, HisNameIsText
jp PrintText
-HisNameIsText: ; 6765 (1:6765)
+HisNameIsText:
TX_FAR _HisNameIsText
db "@"
-OakSpeechSlidePicLeft: ; 676a (1:676a)
+OakSpeechSlidePicLeft:
push de
coord hl, 0, 0
lb bc, 12, 11
@@ -81,12 +81,12 @@ OakSpeechSlidePicLeft: ; 676a (1:676a)
ld a, $ff
jr OakSpeechSlidePicCommon
-OakSpeechSlidePicRight: ; 6790 (1:6790)
+OakSpeechSlidePicRight:
coord hl, 5, 4
lb de, 6, 6 * SCREEN_WIDTH + 5
xor a
-OakSpeechSlidePicCommon: ; 6797 (1:6797)
+OakSpeechSlidePicCommon:
push hl
push de
push bc
@@ -160,7 +160,7 @@ OakSpeechSlidePicCommon: ; 6797 (1:6797)
pop hl
ret
-DisplayIntroNameTextBox: ; 67ec (1:67ec)
+DisplayIntroNameTextBox:
push de
coord hl, 0, 0
lb bc, 10, 9
@@ -184,24 +184,24 @@ DisplayIntroNameTextBox: ; 67ec (1:67ec)
ld [wMaxMenuItem], a
jp HandleMenuInput
-.namestring ; 6822 (1:6822)
+.namestring
db "NAME@"
-DefaultNamesPlayer: ; 6827 (1:6827)
+DefaultNamesPlayer:
db "NEW NAME"
next "YELLOW"
next "ASH"
next "JACK"
db "@"
-DefaultNamesRival: ; 6840 (1:6840)
+DefaultNamesRival:
db "NEW NAME"
next "BLUE"
next "GARY"
next "JOHN"
db "@"
-GetDefaultName: ; 6858 (1:6858)
+GetDefaultName:
; a = name index
; hl = name list
ld b, a
@@ -225,17 +225,17 @@ GetDefaultName: ; 6858 (1:6858)
ld bc, $14
jp CopyData
-DefaultNamesPlayerList: ; 687d (1:687d)
+DefaultNamesPlayerList:
db "NEW NAME@"
db "YELLOW@"
db "ASH@"
db "JACK@"
-DefaultNamesRivalList: ; 688d (1:688d)
+DefaultNamesRivalList:
db "NEW NAME@"
db "BLUE@"
db "GARY@"
db "JOHN@"
-TextTerminator_6b20: ; 68a5 (1:68a5)
+TextTerminator_6b20:
db "@"
diff --git a/engine/overworld/advance_player_sprite.asm b/engine/overworld/advance_player_sprite.asm
index 758dd558..6b4a0cbb 100644
--- a/engine/overworld/advance_player_sprite.asm
+++ b/engine/overworld/advance_player_sprite.asm
@@ -1,4 +1,4 @@
-_AdvancePlayerSprite:: ; f010c (3c:410c)
+_AdvancePlayerSprite::
ld a,[wSpriteStateData1 + 3] ; delta Y
ld b,a
ld a,[wSpriteStateData1 + 5] ; delta X
@@ -192,7 +192,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)
ld [hSCX],a ; update background scroll X
ret
-MoveTileBlockMapPointerEast:: ; f0248 (3c:4248)
+MoveTileBlockMapPointerEast::
ld a,[de]
add $1
ld [de],a
@@ -203,7 +203,7 @@ MoveTileBlockMapPointerEast:: ; f0248 (3c:4248)
ld [de],a
ret
-MoveTileBlockMapPointerWest:: ; f0252 (3c:4252)
+MoveTileBlockMapPointerWest::
ld a,[de]
sub $1
ld [de],a
@@ -214,7 +214,7 @@ MoveTileBlockMapPointerWest:: ; f0252 (3c:4252)
ld [de],a
ret
-MoveTileBlockMapPointerSouth:: ; f025c (3c:425c)
+MoveTileBlockMapPointerSouth::
add $6
ld b,a
ld a,[de]
@@ -227,7 +227,7 @@ MoveTileBlockMapPointerSouth:: ; f025c (3c:425c)
ld [de],a
ret
-MoveTileBlockMapPointerNorth:: ; f0268 (3c:4268)
+MoveTileBlockMapPointerNorth::
add $6
ld b,a
ld a,[de]
@@ -238,4 +238,4 @@ MoveTileBlockMapPointerNorth:: ; f0268 (3c:4268)
ld a,[de]
dec a
ld [de],a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/boulders.asm b/engine/overworld/boulders.asm
index edfda2d3..669b7b83 100644
--- a/engine/overworld/boulders.asm
+++ b/engine/overworld/boulders.asm
@@ -1,4 +1,4 @@
-CheckForCollisionWhenPushingBoulder: ; c356 (3:4356)
+CheckForCollisionWhenPushingBoulder:
call GetTileTwoStepsInFrontOfPlayer
call IsTilePassable
jr c, .done
@@ -16,7 +16,7 @@ CheckForCollisionWhenPushingBoulder: ; c356 (3:4356)
ret
; sets a to $ff if there is a collision and $00 if there is no collision
-CheckForBoulderCollisionWithSprites: ; c378 (3:4378)
+CheckForBoulderCollisionWithSprites:
ld a, [wBoulderSpriteIndex]
dec a
swap a
@@ -91,4 +91,4 @@ CheckForBoulderCollisionWithSprites: ; c378 (3:4378)
ret
.success
xor a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm
index bc1a553a..e3ce8e8d 100755
--- a/engine/overworld/cable_club_npc.asm
+++ b/engine/overworld/cable_club_npc.asm
@@ -1,4 +1,4 @@
-CableClubNPC: ; 7035 (1:7035)
+CableClubNPC:
ld hl, CableClubNPCWelcomeText
call PrintText
call CheckPikachuFollowingPlayer
@@ -118,7 +118,7 @@ CableClubNPC: ; 7035 (1:7035)
ret
; seems to be similar of Serial_SyncAndExchangeNybble
-Serial_SyncAndExchangeNybbleDouble: ; 7131 (1:7131)
+Serial_SyncAndExchangeNybbleDouble:
ld a, $ff
ld [wSerialExchangeNybbleReceiveData], a
.loop
@@ -166,35 +166,35 @@ Serial_SyncAndExchangeNybbleDouble: ; 7131 (1:7131)
ld [wUnknownSerialCounter + 1], a
ret
-CableClubNPCAreaReservedFor2FriendsLinkedByCableText: ; 7188 (1:7188)
+CableClubNPCAreaReservedFor2FriendsLinkedByCableText:
TX_FAR _CableClubNPCAreaReservedFor2FriendsLinkedByCableText
db "@"
-CableClubNPCWelcomeText: ; 718d (1:718d)
+CableClubNPCWelcomeText:
TX_FAR _CableClubNPCWelcomeText
db "@"
-CableClubNPCPleaseApplyHereHaveToSaveText: ; 7192 (1:7192)
+CableClubNPCPleaseApplyHereHaveToSaveText:
TX_FAR _CableClubNPCPleaseApplyHereHaveToSaveText
db "@"
-CableClubNPCPleaseWaitText: ; 7197 (1:7197)
+CableClubNPCPleaseWaitText:
TX_FAR _CableClubNPCPleaseWaitText
db $a, "@"
-CableClubNPCLinkClosedBecauseOfInactivityText: ; 719d (1:719d)
+CableClubNPCLinkClosedBecauseOfInactivityText:
TX_FAR _CableClubNPCLinkClosedBecauseOfInactivityText
db "@"
-CableClubNPCPleaseComeAgainText: ; 71a2 (1:71a2)
+CableClubNPCPleaseComeAgainText:
TX_FAR _CableClubNPCPleaseComeAgainText
db "@"
-CableClubNPCMakingPreparationsText: ; 71a7 (1:71a7)
+CableClubNPCMakingPreparationsText:
TX_FAR _CableClubNPCMakingPreparationsText
db "@"
-CloseLinkConnection: ; 71ac (1:71ac)
+CloseLinkConnection:
call Delay3
ld a, CONNECTION_NOT_ESTABLISHED
ld [hSerialConnectionStatus], a
diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm
index 3560c8e8..e1fc9160 100755
--- a/engine/overworld/card_key.asm
+++ b/engine/overworld/card_key.asm
@@ -1,4 +1,4 @@
-PrintCardKeyText: ; 525d8 (14:65d8)
+PrintCardKeyText:
ld hl, SilphCoMapList
ld a, [wCurMap]
ld b, a
@@ -59,7 +59,7 @@ PrintCardKeyText: ; 525d8 (14:65d8)
ld [hSpriteIndexOrTextID], a
jp PrintPredefTextID
-SilphCoMapList: ; 52645 (14:6645)
+SilphCoMapList:
db SILPH_CO_2F
db SILPH_CO_3F
db SILPH_CO_4F
@@ -72,19 +72,19 @@ SilphCoMapList: ; 52645 (14:6645)
db SILPH_CO_11F
db $FF
-CardKeySuccessText: ; 52650 (14:6650)
+CardKeySuccessText:
TX_FAR _CardKeySuccessText1
TX_SFX_ITEM
TX_FAR _CardKeySuccessText2
db "@"
-CardKeyFailText: ; 5265a (14:665a)
+CardKeyFailText:
TX_FAR _CardKeyFailText
db "@"
; d = Y
; e = X
-GetCoordsInFrontOfPlayer: ; 5265f (14:665f)
+GetCoordsInFrontOfPlayer:
ld a, [wYCoord]
ld d, a
ld a, [wXCoord]
diff --git a/engine/overworld/check_player_state.asm b/engine/overworld/check_player_state.asm
index 5dd91c4c..5fad4fc5 100644
--- a/engine/overworld/check_player_state.asm
+++ b/engine/overworld/check_player_state.asm
@@ -1,5 +1,5 @@
; only used for setting bit 2 of wd736 upon entering a new map
-IsPlayerStandingOnWarp: ; c0a6 (3:40a6)
+IsPlayerStandingOnWarp:
ld a, [wNumberOfWarps]
and a
ret z
@@ -31,7 +31,7 @@ IsPlayerStandingOnWarp: ; c0a6 (3:40a6)
jr nz, .loop
ret
-CheckForceBikeOrSurf: ; c0d2 (3:40d2)
+CheckForceBikeOrSurf:
ld hl, wd732
bit 5, [hl]
ret nz
@@ -86,7 +86,7 @@ CheckForceBikeOrSurf: ; c0d2 (3:40d2)
INCLUDE "data/force_bike_surf.asm"
-IsPlayerFacingEdgeOfMap: ; c148 (3:4148)
+IsPlayerFacingEdgeOfMap:
push hl
push de
push bc
@@ -152,7 +152,7 @@ IsPlayerFacingEdgeOfMap: ; c148 (3:4148)
scf
ret
-IsWarpTileInFrontOfPlayer: ; c197 (3:4197)
+IsWarpTileInFrontOfPlayer:
push hl
push de
push bc
@@ -178,7 +178,7 @@ IsWarpTileInFrontOfPlayer: ; c197 (3:4197)
pop hl
ret
-.warpTileListPointers: ; c1c0 (3:41c0)
+.warpTileListPointers:
dw .facingDownWarpTiles
dw .facingUpWarpTiles
dw .facingLeftWarpTiles
@@ -206,7 +206,7 @@ IsWarpTileInFrontOfPlayer: ; c197 (3:4197)
and a
jr .done
-IsPlayerStandingOnDoorTileOrWarpTile: ; c1e6 (3:41e6)
+IsPlayerStandingOnDoorTileOrWarpTile:
push hl
push de
push bc
@@ -233,4 +233,4 @@ IsPlayerStandingOnDoorTileOrWarpTile: ; c1e6 (3:41e6)
pop hl
ret
-INCLUDE "data/warp_tile_ids.asm" \ No newline at end of file
+INCLUDE "data/warp_tile_ids.asm"
diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm
index f7c5e326..13313746 100755
--- a/engine/overworld/cinnabar_lab.asm
+++ b/engine/overworld/cinnabar_lab.asm
@@ -1,4 +1,4 @@
-GiveFossilToCinnabarLab: ; 61006 (18:5006)
+GiveFossilToCinnabarLab:
ld hl, wd730
set 6, [hl]
xor a
@@ -72,23 +72,23 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
call PrintText
ret
-LabFossil_610ae: ; 610ae (18:50ae)
+LabFossil_610ae:
TX_FAR _Lab4Text_610ae
db "@"
-LabFossil_610b3: ; 610b3 (18:50b3)
+LabFossil_610b3:
TX_FAR _Lab4Text_610b3
db "@"
-LabFossil_610b8: ; 610b8 (18:50b8)
+LabFossil_610b8:
TX_FAR _Lab4Text_610b8
db "@"
-LabFossil_610bd: ; 610bd (18:50bd)
+LabFossil_610bd:
TX_FAR _Lab4Text_610bd
db "@"
-PrintFossilsInBag: ; 610c2 (18:50c2)
+PrintFossilsInBag:
; Prints each fossil in the player's bag on a separate line in the menu.
ld hl, wFilteredBagItems
xor a
@@ -112,7 +112,7 @@ PrintFossilsInBag: ; 610c2 (18:50c2)
jr .loop
; loads the names of the fossil item and the resulting mon
-LoadFossilItemAndMonName: ; 610eb (18:50eb)
+LoadFossilItemAndMonName:
ld a, [wFossilMon]
ld [wd11e], a
call GetMonName
diff --git a/engine/overworld/clear_loadmapdata_vars.asm b/engine/overworld/clear_loadmapdata_vars.asm
index 2e7cd165..c5dc21fa 100644
--- a/engine/overworld/clear_loadmapdata_vars.asm
+++ b/engine/overworld/clear_loadmapdata_vars.asm
@@ -1,4 +1,4 @@
-ClearVariablesAfterLoadingMapData: ; c07c (3:407c)
+ClearVariablesAfterLoadingMapData:
ld a, $90
ld [hWY], a
ld [rWY], a
@@ -14,7 +14,7 @@ ClearVariablesAfterLoadingMapData: ; c07c (3:407c)
ld hl, wCardKeyDoorY
ld [hli], a
ld [hl], a
- ld hl, wWhichTrade
- ld bc, $1e
+ ld hl, wUnusedCD3D
+ ld bc, wStandingOnWarpPadOrHole - wUnusedCD3D
call FillMemory
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 488bc4de..462e3e8e 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -1,4 +1,4 @@
-UsedCut: ; edd1 (3:6dd1)
+UsedCut:
xor a
ld [wActionResultOrTookBattleTurn], a ; initialise to failure value
ld a, [wCurMapTileset]
@@ -67,11 +67,11 @@ UsedCut: ; edd1 (3:6dd1)
call UpdateSprites
jp RedrawMapView
-UsedCutText: ; ee6f (3:6e6f)
+UsedCutText:
TX_FAR _UsedCutText
db "@"
-InitCutAnimOAM: ; ee74 (3:6e74)
+InitCutAnimOAM:
xor a
ld [wWhichAnimationOffsets], a
ld a, %11100100
@@ -112,22 +112,22 @@ InitCutAnimOAM: ; ee74 (3:6e74)
jr nz, .loop
ret
-LoadCutGrassAnimationTilePattern: ; eecc (3:6ecc)
+LoadCutGrassAnimationTilePattern:
ld de, AnimationTileset2 + $60 ; tile depicting a leaf
lb bc, BANK(AnimationTileset2), $01
jp CopyVideoData
-WriteCutOrBoulderDustAnimationOAMBlock: ; eed5 (3:6ed5)
+WriteCutOrBoulderDustAnimationOAMBlock:
call GetCutOrBoulderDustAnimationOffsets
ld a, $9
ld de, CutOrBoulderDustAnimationTilesAndAttributes
jp WriteOAMBlock
-CutOrBoulderDustAnimationTilesAndAttributes: ; eee0 (3:6ee0)
+CutOrBoulderDustAnimationTilesAndAttributes:
db $FC,$14,$FD,$14
db $FE,$14,$FF,$14
-GetCutOrBoulderDustAnimationOffsets: ; eee8 (3:6ee8)
+GetCutOrBoulderDustAnimationOffsets:
ld hl, wSpriteStateData1 + 4
ld a, [hli] ; player's sprite screen Y position
ld b, a
@@ -158,14 +158,14 @@ GetCutOrBoulderDustAnimationOffsets: ; eee8 (3:6ee8)
ld c, a
ret
-CutAnimationOffsets: ; ef0f (3:6f0f)
+CutAnimationOffsets:
; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
db 8, 36 ; player is facing down
db 8, 4 ; player is facing up
db -8, 20 ; player is facing left
db 24, 20 ; player is facing right
-BoulderDustAnimationOffsets: ; ef17 (3:6f17)
+BoulderDustAnimationOffsets:
; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
; These offsets represent 2 blocks away from the player
db 8, 52 ; player is facing down
@@ -173,7 +173,7 @@ BoulderDustAnimationOffsets: ; ef17 (3:6f17)
db -24, 20 ; player is facing left
db 40, 20 ; player is facing right
-ReplaceTreeTileBlock: ; ef1f (3:6f1f)
+ReplaceTreeTileBlock:
; Determine the address of the tile block that contains the tile in front of the
; player (i.e. where the tree is) and replace it with the corresponding tile
; block that doesn't have the tree.
@@ -249,7 +249,7 @@ ReplaceTreeTileBlock: ; ef1f (3:6f1f)
ld [hl], a
ret
-CutTreeBlockSwaps: ; ef80 (3:6f80)
+CutTreeBlockSwaps:
; first byte = tileset block containing the cut tree
; second byte = corresponding tileset block after the cut animation happens
db $32, $6D
diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm
index 9bb4ee2c..37490f95 100755
--- a/engine/overworld/cut2.asm
+++ b/engine/overworld/cut2.asm
@@ -1,4 +1,4 @@
-AnimCut: ; 7a037 (1e:6037)
+AnimCut:
ld a, [wCutTile]
cp $52
jr z, .grass
@@ -44,7 +44,7 @@ AnimCut: ; 7a037 (1e:6037)
jr nz, .cutGrassLoop
ret
-AnimCutGrass_UpdateOAMEntries: ; 7a091 (1e:6091)
+AnimCutGrass_UpdateOAMEntries:
push bc
ld hl, wOAMBuffer + $91
ld a, 1
@@ -76,7 +76,7 @@ AnimCutGrass_UpdateOAMEntries: ; 7a091 (1e:6091)
jr nz, AnimCutGrass_UpdateOAMEntries
ret
-AnimCutGrass_SwapOAMEntries: ; 7a0d7 (1e:60d7)
+AnimCutGrass_SwapOAMEntries:
ld hl, wOAMBuffer + $90
ld de, wBuffer
ld bc, $8
diff --git a/engine/overworld/daycare_exp.asm b/engine/overworld/daycare_exp.asm
index a7c7bd91..dbe4023a 100644
--- a/engine/overworld/daycare_exp.asm
+++ b/engine/overworld/daycare_exp.asm
@@ -1,4 +1,4 @@
-IncrementDayCareMonExp: ; c684 (3:4684)
+IncrementDayCareMonExp:
ld a, [wDayCareInUse]
and a
ret z
@@ -15,4 +15,4 @@ IncrementDayCareMonExp: ; c684 (3:4684)
ret c
ld a, $50
ld [hl], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm
index 3f7b5f0f..8bde8600 100755
--- a/engine/overworld/doors.asm
+++ b/engine/overworld/doors.asm
@@ -1,5 +1,5 @@
; returns whether the player is standing on a door tile in carry
-IsPlayerStandingOnDoorTile: ; 1a785 (6:6785)
+IsPlayerStandingOnDoorTile:
push de
ld hl, DoorTileIDPointers
ld a, [wCurMapTileset]
@@ -25,7 +25,7 @@ IsPlayerStandingOnDoorTile: ; 1a785 (6:6785)
and a
ret
-DoorTileIDPointers: ; 1a7a8 (6:67a8)
+DoorTileIDPointers:
dbw OVERWORLD, OverworldDoorTileIDs
dbw FOREST, ForestDoorTileIDs
dbw MART, MartDoorTileIDs
@@ -42,38 +42,38 @@ DoorTileIDPointers: ; 1a7a8 (6:67a8)
dbw INTERIOR, InteriorDoorTileIDs
db $ff
-OverworldDoorTileIDs: ; 1a7d3 (6:67d3)
+OverworldDoorTileIDs:
db $1B,$58,$00
-ForestDoorTileIDs: ; 1a7d6 (6:67d6)
+ForestDoorTileIDs:
db $3a,$00
-MartDoorTileIDs: ; 1a7d8 (6:67d8)
+MartDoorTileIDs:
db $5e,$00
-HouseDoorTileIDs: ; 1a7da (6:67da)
+HouseDoorTileIDs:
db $54,$00
-TilesetMuseumDoorTileIDs: ; 1a7dc (6:67dc)
+TilesetMuseumDoorTileIDs:
db $3b,$00
-ShipDoorTileIDs: ; 1a7de (6:67de)
+ShipDoorTileIDs:
db $1e,$00
-LobbyDoorTileIDs: ; 1a7e0 (6:67e0)
+LobbyDoorTileIDs:
db $1c,$38,$1a,$00
-MansionDoorTileIDs: ; 1a7e4 (6:67e4)
+MansionDoorTileIDs:
db $1a,$1c,$53,$00
-LabDoorTileIDs: ; 1a7e8 (6:67e8)
+LabDoorTileIDs:
db $34,$00
-FacilityDoorTileIDs: ; 1a7ea (6:67ea)
+FacilityDoorTileIDs:
db $43,$58,$1b,$00
-PlateauDoorTileIDs: ; 1a7ee (6:67ee)
+PlateauDoorTileIDs:
db $3b,$1b,$00
-InteriorDoorTileIDs: ; 1a7f1 (6:67f1)
+InteriorDoorTileIDs:
db $04,$15,$00
diff --git a/engine/overworld/dungeon_warps.asm b/engine/overworld/dungeon_warps.asm
index b234c3a1..f47dfb01 100644
--- a/engine/overworld/dungeon_warps.asm
+++ b/engine/overworld/dungeon_warps.asm
@@ -1,4 +1,4 @@
-IsPlayerOnDungeonWarp: ; 46bf3 (11:6bf3)
+IsPlayerOnDungeonWarp:
xor a
ld [wWhichDungeonWarp], a
ld a, [wd72d]
@@ -12,4 +12,4 @@ IsPlayerOnDungeonWarp: ; 46bf3 (11:6bf3)
set 4, [hl]
ld hl, wd732
set 4, [hl]
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index b355102f..cd7bf5ba 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -1,4 +1,4 @@
-ShakeElevator: ; 75f07 (1d:5f07)
+ShakeElevator:
ld de, -$20
call ShakeElevatorRedrawRow
ld de, SCREEN_HEIGHT * $20
@@ -37,7 +37,7 @@ ShakeElevator: ; 75f07 (1d:5f07)
call UpdateSprites
jp PlayDefaultMusic
-ShakeElevatorRedrawRow: ; 75f52 (1d:5f52)
+ShakeElevatorRedrawRow:
; This function is used to redraw certain portions of the screen, but it does
; not appear to ever result in any visible effect, so this function seems to
; be pointless.
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
index f002deed..3b02fd55 100755
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -1,9 +1,9 @@
-EmotionBubble: ; 4116f (10:516f)
+EmotionBubble:
ld a, [wWhichEmotionBubble]
and $f
swap a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, EmotionBubbles
add hl, bc ; each emotion bubble is 16 bytes, so calculate the offset directly instead of with a pointer table
add hl, bc
@@ -64,11 +64,11 @@ EmotionBubble: ; 4116f (10:516f)
call DelayFrame
call UpdateSprites
ret
- ; jp UpdateSprites
-EmotionBubblesOAM: ; 411dd (5:51dd)
+
+EmotionBubblesOAM:
db $F8,$00,$F9,$00
db $FA,$00,$FB,$00
-EmotionBubbles: ; 411e5 (10:51e5)
+EmotionBubbles:
INCBIN "gfx/emotion_bubbles.2bpp"
diff --git a/engine/overworld/get_coords_tile_in_front_of_player.asm b/engine/overworld/get_coords_tile_in_front_of_player.asm
index 1003570b..e8bbc660 100644
--- a/engine/overworld/get_coords_tile_in_front_of_player.asm
+++ b/engine/overworld/get_coords_tile_in_front_of_player.asm
@@ -1,7 +1,7 @@
-GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d1)
+GetTileAndCoordsInFrontOfPlayer:
call GetPredefRegisters
-_GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d4)
+_GetTileAndCoordsInFrontOfPlayer:
ld a, [wYCoord]
ld d, a
ld a, [wXCoord]
@@ -38,7 +38,7 @@ _GetTileAndCoordsInFrontOfPlayer: ; c2d4 (3:42d4)
ld [wTileInFrontOfPlayer], a
ret
-GetTileTwoStepsInFrontOfPlayer: ; c309 (3:4309)
+GetTileTwoStepsInFrontOfPlayer:
xor a
ld [$ffdb], a
ld hl, wYCoord
@@ -84,4 +84,4 @@ GetTileTwoStepsInFrontOfPlayer: ; c309 (3:4309)
ld c, a
ld [wTileInFrontOfBoulderAndBoulderCollisionResult], a
ld [wTileInFrontOfPlayer], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index daaf33b2..ed733d7d 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -1,5 +1,5 @@
-AnimateHealingMachine: ; 7048b (1c:448b)
- ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7
+AnimateHealingMachine:
+ ld de, PokeCenterFlashingMonitorAndHealBall
ld hl, vChars0 + $7c0
lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), $03 ; loads one too many tiles
call CopyVideoData
@@ -11,23 +11,23 @@ AnimateHealingMachine: ; 7048b (1c:448b)
ld a, [rOBP1]
push af
ld a, $e0
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call UpdateGBCPal_OBP1
ld hl, wOAMBuffer + $84
- ld de, PokeCenterOAMData ; $44d7
+ ld de, PokeCenterOAMData
call CopyHealingMachineOAM
ld a, 4
ld [wAudioFadeOutControl], a
call StopAllMusic
.waitLoop
ld a, [wAudioFadeOutControl]
- and a
- jr nz, .waitLoop
- ld a, [wPartyCount] ; wPartyCount
+ and a ; is fade-out finished?
+ jr nz, .waitLoop ; if not, check again
+ ld a, [wPartyCount]
ld b, a
.partyLoop
call CopyHealingMachineOAM
- ld a, $9e ; (SFX_02_4a - SFX_Headers_02) / 3
+ ld a, SFX_HEALING_MACHINE
call PlaySound
ld c, 30
call DelayFrames
@@ -38,32 +38,32 @@ AnimateHealingMachine: ; 7048b (1c:448b)
ld [wAudioSavedROMBank], a
jr nz, .next
call StopAllMusic
- ld a, $2 ; BANK(Music_PkmnHealed)
+ ld a, BANK(Music_PkmnHealed)
ld [wAudioROMBank], a
.next
- ld a, $e8 ; MUSIC_PKMN_HEALED
+ ld a, MUSIC_PKMN_HEALED
ld [wNewSoundID], a
call PlaySound
ld d, $28
call FlashSprite8Times
.waitLoop2
ld a, [wChannelSoundIDs]
- cp $e8 ; MUSIC_PKMN_HEALED
- jr z, .waitLoop2
+ cp MUSIC_PKMN_HEALED ; is the healed music still playing?
+ jr z, .waitLoop2 ; if so, check gain
ld c, 32
call DelayFrames
pop af
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call UpdateGBCPal_OBP1
pop hl
pop af
ld [hl], a
jp UpdateSprites
-PokeCenterFlashingMonitorAndHealBall: ; 7050b (1c:450b)
+PokeCenterFlashingMonitorAndHealBall:
INCBIN "gfx/pokecenter_ball.2bpp"
-PokeCenterOAMData: ; 7042b (1c:442b)
+PokeCenterOAMData:
db $24,$34,$7C,$14 ; heal machine monitor
db $2B,$30,$7D,$14 ; pokeballs 1-6
db $2B,$38,$7D,$34
@@ -73,7 +73,7 @@ PokeCenterOAMData: ; 7042b (1c:442b)
db $35,$38,$7D,$34
; d = value to xor with palette
-FlashSprite8Times: ; 70547 (1c:4547)
+FlashSprite8Times:
ld b, 8
.loop
ld a, [rOBP1]
@@ -86,7 +86,7 @@ FlashSprite8Times: ; 70547 (1c:4547)
jr nz, .loop
ret
-CopyHealingMachineOAM: ; 7055a (1c:455a)
+CopyHealingMachineOAM:
; copy one OAM entry and advance the pointers
ld a, [de]
inc de
diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm
index 43a56658..15082847 100755
--- a/engine/overworld/hidden_items.asm
+++ b/engine/overworld/hidden_items.asm
@@ -1,4 +1,4 @@
-HiddenItems: ; 75f74 (1d:5f74)
+HiddenItems:
ld hl, HiddenItemCoords
call FindHiddenItemOrCoinsIndex
ld [wHiddenItemOrCoinsIndex], a
@@ -25,7 +25,7 @@ HiddenItems: ; 75f74 (1d:5f74)
INCLUDE "data/hidden_item_coords.asm"
-FoundHiddenItemText: ; 76050 (1d:6050)
+FoundHiddenItemText:
TX_FAR _FoundHiddenItemText
TX_ASM
ld a, [wHiddenObjectFunctionArgument] ; item ID
@@ -50,11 +50,11 @@ FoundHiddenItemText: ; 76050 (1d:6050)
call PrintText
jp TextScriptEnd
-HiddenItemBagFullText: ; 76089 (1d:6089)
+HiddenItemBagFullText:
TX_FAR _HiddenItemBagFullText
db "@"
-HiddenCoins: ; 7608e (1d:608e)
+HiddenCoins:
ld b, COIN_CASE
predef GetQuantityOfItemInBag
ld a, b
@@ -131,17 +131,17 @@ HiddenCoins: ; 7608e (1d:608e)
INCLUDE "data/hidden_coins.asm"
-FoundHiddenCoinsText: ; 76143 (1d:6143)
+FoundHiddenCoinsText:
TX_FAR _FoundHiddenCoinsText
db $10,"@"
-DroppedHiddenCoinsText: ; 76149 (1d:6149)
+DroppedHiddenCoinsText:
TX_FAR _FoundHiddenCoins2Text
db $10
TX_FAR _DroppedHiddenCoinsText
db "@"
-FindHiddenItemOrCoinsIndex: ; 76153 (1d:6153)
+FindHiddenItemOrCoinsIndex:
ld a, [wHiddenObjectY]
ld d, a
ld a, [wHiddenObjectX]
diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm
index 6e515b5a..9a81dcfc 100755
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -1,5 +1,5 @@
; if a hidden object was found, stores $00 in [hDidntFindAnyHiddenObject], else stores $ff
-CheckForHiddenObject: ; f25f8 (3c:65f8)
+CheckForHiddenObject:
ld hl, hItemAlreadyFound
xor a
ld [hli], a
@@ -60,7 +60,7 @@ CheckForHiddenObject: ; f25f8 (3c:65f8)
; checks if the coordinates in front of the player's sprite match Y in b and X in c
; [hCoordsInFrontOfPlayerMatch] = $00 if they match, $ff if they don't match
-CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01)
+CheckIfCoordsInFrontOfPlayerMatch:
ld a, [wPlayerFacingDirection] ; player's sprite facing direction
cp SPRITE_FACING_UP
jr z, .facingUp
diff --git a/engine/overworld/is_player_just_outside_map.asm b/engine/overworld/is_player_just_outside_map.asm
index 19823c53..44690db0 100644
--- a/engine/overworld/is_player_just_outside_map.asm
+++ b/engine/overworld/is_player_just_outside_map.asm
@@ -1,5 +1,5 @@
; returns whether the player is one tile outside the map in Z
-IsPlayerJustOutsideMap: ; e876c (3a:476c)
+IsPlayerJustOutsideMap:
ld a, [wYCoord]
ld b, a
ld a, [wCurMapHeight]
diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm
index e421a946..63eecef9 100644
--- a/engine/overworld/item.asm
+++ b/engine/overworld/item.asm
@@ -1,4 +1,4 @@
-PickUpItem: ; 4d55 (1:4d55)
+PickUpItem:
call EnableAutoTextBoxDrawing
ld a, [hSpriteIndexOrTextID]
@@ -44,11 +44,11 @@ PickUpItem: ; 4d55 (1:4d55)
call PrintText
ret
-FoundItemText: ; 4d9a (1:4d9a)
+FoundItemText:
TX_FAR _FoundItemText
db $0B
db "@"
-NoMoreRoomForItemText: ; 4da0 (1:4da0)
+NoMoreRoomForItemText:
TX_FAR _NoMoreRoomForItemText
db "@"
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index 5d95cb18..e7874637 100755
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -1,4 +1,4 @@
-HandleLedges: ; 1a7f4 (6:67f4)
+HandleLedges:
ld a, [wd736]
bit 6, a ; already jumping down ledge
ret nz
@@ -55,7 +55,7 @@ HandleLedges: ; 1a7f4 (6:67f4)
ret
; (player direction) (tile player standing on) (ledge tile) (input required)
-LedgeTiles: ; 1a851 (6:6851)
+LedgeTiles:
db SPRITE_FACING_DOWN, $2C,$37,D_DOWN
db SPRITE_FACING_DOWN, $39,$36,D_DOWN
db SPRITE_FACING_DOWN, $39,$37,D_DOWN
@@ -66,7 +66,7 @@ LedgeTiles: ; 1a851 (6:6851)
db SPRITE_FACING_RIGHT,$39,$0D,D_RIGHT
db $FF
-LoadHoppingShadowOAM: ; 1a872 (6:6872)
+LoadHoppingShadowOAM:
ld hl, vChars1 + $7f0
ld de, LedgeHoppingShadow
lb bc, BANK(LedgeHoppingShadow), (LedgeHoppingShadowEnd - LedgeHoppingShadow) / $8
@@ -80,11 +80,11 @@ LoadHoppingShadowOAM: ; 1a872 (6:6872)
ld [wOAMBuffer + 39 * 4], a
ret
-LedgeHoppingShadow: ; 1a893 (6:6893)
+LedgeHoppingShadow:
INCBIN "gfx/ledge_hopping_shadow.1bpp"
LedgeHoppingShadowEnd:
-LedgeHoppingShadowOAM: ; 1a89b (6:689b)
+LedgeHoppingShadowOAM:
db $58,$48,$FF,$00
db $58,$50,$FF,$20
-LedgeHoppingShadowOAMEnd: ; 1a8a3 (6:68a3)
+LedgeHoppingShadowOAMEnd:
diff --git a/engine/overworld/load_tileset_header.asm b/engine/overworld/load_tileset_header.asm
index aeab3e24..05061651 100644
--- a/engine/overworld/load_tileset_header.asm
+++ b/engine/overworld/load_tileset_header.asm
@@ -1,4 +1,4 @@
-LoadTilesetHeader: ; c4f4 (3:44f4)
+LoadTilesetHeader:
call GetPredefRegisters
push hl
ld d, 0
@@ -48,4 +48,4 @@ LoadTilesetHeader: ; c4f4 (3:44f4)
INCLUDE "data/dungeon_tilesets.asm"
-INCLUDE "data/tileset_headers.asm" \ No newline at end of file
+INCLUDE "data/tileset_headers.asm"
diff --git a/engine/overworld/load_wild_data.asm b/engine/overworld/load_wild_data.asm
index 71e3fe2a..6444ab7e 100644
--- a/engine/overworld/load_wild_data.asm
+++ b/engine/overworld/load_wild_data.asm
@@ -1,4 +1,4 @@
-LoadWildData: ; cb62 (3:4b62)
+LoadWildData:
ld hl,WildDataPointers
ld a,[wCurMap]
@@ -30,4 +30,4 @@ LoadWildData: ; cb62 (3:4b62)
ld bc,$0014
jp CopyData
-INCLUDE "data/wild_mons.asm" \ No newline at end of file
+INCLUDE "data/wild_mons.asm"
diff --git a/engine/overworld/map_sprite_functions1.asm b/engine/overworld/map_sprite_functions1.asm
index 722fc14e..f0a718bd 100644
--- a/engine/overworld/map_sprite_functions1.asm
+++ b/engine/overworld/map_sprite_functions1.asm
@@ -1,4 +1,4 @@
-_UpdateSprites: ; 4bb7 (1:4bb7)
+_UpdateSprites:
ld h, wSpriteStateData1 / $100
inc h
ld a, $e ; (wSpriteStateData2 + $0e) & $ff
@@ -31,7 +31,7 @@ _UpdateSprites: ; 4bb7 (1:4bb7)
jp z, SpawnPikachu
ld a, [hl]
-UpdateNonPlayerSprite: ; 4be3 (1:4be3)
+UpdateNonPlayerSprite:
dec a
swap a
ld [$ff93], a ; $10 * sprite#
@@ -53,7 +53,7 @@ UpdateNonPlayerSprite: ; 4be3 (1:4be3)
; 9 values when the sprite is aligned with the grid: $fc, $0c, $1c, $2c, ..., $7c.
; The reason that 4 is added below to the coordinate is to make it align with a
; multiple of $10 to make comparisons easier.
-DetectCollisionBetweenSprites: ; 4bf7 (1:4bf7)
+DetectCollisionBetweenSprites:
; nop
ld h, wSpriteStateData1 / $100
@@ -336,7 +336,7 @@ DetectCollisionBetweenSprites: ; 4bf7 (1:4bf7)
; c = 0 if delta X/Y is 0
; c = 7 if delta X/Y is 1
; c = 9 if delta X/Y is -1
-Func_4d0a: ; 4d0a (1:4d0a)
+Func_4d0a:
ld a, [$ff91]
ld b, a
ld a, [$ff90]
@@ -356,7 +356,7 @@ Func_4d0a: ; 4d0a (1:4d0a)
inc l
ret
-SetSpriteCollisionValues: ; 4d22 (1:4d22)
+SetSpriteCollisionValues:
and a
ld b, 0
ld c, 0
@@ -371,7 +371,7 @@ SetSpriteCollisionValues: ; 4d22 (1:4d22)
.done
ret
-SpriteCollisionBitTable: ; 4d35 (1:4d35)
+SpriteCollisionBitTable:
db %00000000,%00000001
db %00000000,%00000010
db %00000000,%00000100
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index 10f0362e..32d3d47b 100755
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -8,7 +8,7 @@
; fields, respectively, within loops. The X is the loop index.
; If there is an inner loop, Y is the inner loop index, i.e. $C1Y* and $C2Y*
; denote fields of the sprite slots interated over in the inner loop.
-_InitMapSprites: ; 1401b (5:401b)
+_InitMapSprites:
call InitOutsideMapSprites
ret c ; return if the map is an outside map (already handled by above call)
; if the map is an inside map (i.e. mapID >= $25)
@@ -19,7 +19,7 @@ _InitMapSprites: ; 1401b (5:401b)
; Loads sprite set for outside maps (cities and routes) and sets VRAM slots.
; sets carry if the map is a city or route, unsets carry if not
-InitOutsideMapSprites: ; 14029 (5:4029)
+InitOutsideMapSprites:
ld a, [wCurMap]
cp a, REDS_HOUSE_1F ; is the map a city or a route (map ID less than $25)?
ret nc ; if not, return
@@ -50,7 +50,7 @@ InitOutsideMapSprites: ; 14029 (5:4029)
scf
ret
-LoadSpriteSetFromMapHeader: ; 14061 (5:4061)
+LoadSpriteSetFromMapHeader:
; This loop stores the correct VRAM tile pattern slots according the sprite
; data from the map's header. Since the VRAM tile pattern slots are filled in
; the order of the sprite set, in order to find the VRAM tile pattern slot
@@ -93,7 +93,7 @@ LoadSpriteSetFromMapHeader: ; 14061 (5:4061)
jr nz, .storeVRAMSlotsLoop
ret
-CheckIfPictureIDAlreadyLoaded: ; 1409b (5:409b)
+CheckIfPictureIDAlreadyLoaded:
; Check if the current picture ID has already had its tile patterns loaded.
; This done by looping through the previous sprite slots and seeing if any of
; their picture ID's match that of the current sprite slot.
@@ -118,7 +118,7 @@ CheckIfPictureIDAlreadyLoaded: ; 1409b (5:409b)
scf
ret
-CheckForFourTileSprite: ; 140ac (5:40ac)
+CheckForFourTileSprite:
; Checks for a sprite added in yellow
; Returns no carry if the sprite is Pikachu, as its sprite is handled separately
; Else, returns carry if the sprite uses 4 tiles
@@ -135,7 +135,7 @@ CheckForFourTileSprite: ; 140ac (5:40ac)
scf
ret
-LoadMapSpriteTilePatterns: ; 140b7 (5:40b7)
+LoadMapSpriteTilePatterns:
ld a, 0
.loop
ld [hVRAMSlot], a
@@ -154,7 +154,7 @@ LoadMapSpriteTilePatterns: ; 140b7 (5:40b7)
jr nz, .loop
ret
-ReloadWalkingTilePatterns: ; 140d2 (5:40d2)
+ReloadWalkingTilePatterns:
xor a
.loop
ld [hVRAMSlot], a
@@ -168,7 +168,7 @@ ReloadWalkingTilePatterns: ; 140d2 (5:40d2)
jr nz, .loop
ret
-LoadStillTilePattern: ; 140e4 (5:40e4)
+LoadStillTilePattern:
ld a, [wFontLoaded]
bit 0, a ; reloading upper half of tile patterns after displaying text?
ret nz ; if so, skip loading data into the lower half
@@ -178,7 +178,7 @@ LoadStillTilePattern: ; 140e4 (5:40e4)
call CopyVideoDataAlternate ; new yellow function
ret
-LoadWalkingTilePattern: ; 140f5 (5:40f5)
+LoadWalkingTilePattern:
call ReadSpriteSheetData
ret nc
ld hl, $c0
@@ -190,7 +190,7 @@ LoadWalkingTilePattern: ; 140f5 (5:40f5)
call CopyVideoDataAlternate
ret
-GetSpriteVRAMAddress: ; 14018 (5:4108)
+GetSpriteVRAMAddress:
push bc
ld a, [hVRAMSlot]
ld c, a
@@ -204,7 +204,7 @@ GetSpriteVRAMAddress: ; 14018 (5:4108)
pop bc
ret
-SpriteVRAMAddresses: ; 14118 (5:4118)
+SpriteVRAMAddresses:
; Equivalent to multiplying $C0 (number of bytes in 12 tiles) times the VRAM
; slot and adding the result to $8000 (the VRAM base address).
dw vChars0 + $0c0
@@ -219,7 +219,7 @@ SpriteVRAMAddresses: ; 14118 (5:4118)
dw vChars0 + $780 ; 4-tile sprites
dw vChars0 + $7c0 ; 4-tile sprites
-ReadSpriteSheetData: ; 1412e (5:412e)
+ReadSpriteSheetData:
ld a, [hVRAMSlot]
ld e, a
ld d, 0
@@ -249,7 +249,7 @@ ReadSpriteSheetData: ; 1412e (5:412e)
scf
ret
-Func_14150: ; 14150 (5:4150)
+Func_14150:
ld a, $1
ld [wPlayerSpriteImageBaseOffset], a ; vram slot for player
ld a, $2
@@ -275,7 +275,7 @@ Func_14150: ; 14150 (5:4150)
jr nz, .loop
ret
-Func_14179: ; 14179 (5:4179)
+Func_14179:
push de
push bc
ld c, a ; c = picture ID
@@ -298,7 +298,7 @@ Func_14179: ; 14179 (5:4179)
pop de
ret
-GetSplitMapSpriteSetID: ; 14193 (5:4193)
+GetSplitMapSpriteSetID:
ld e, a
ld d, 0
ld hl, MapSpriteSets
@@ -328,7 +328,6 @@ GetSplitMapSpriteSetID: ; 14193 (5:4193)
.northSouthDivide
ld a, [wYCoord]
jr .compareCoord
-
.eastWestDivide
ld a, [wXCoord]
.compareCoord
diff --git a/engine/overworld/missable_objects.asm b/engine/overworld/missable_objects.asm
index 1cc15be5..dd601451 100644
--- a/engine/overworld/missable_objects.asm
+++ b/engine/overworld/missable_objects.asm
@@ -1,4 +1,4 @@
-MarkTownVisitedAndLoadMissableObjects: ; ef93 (3:6f93)
+MarkTownVisitedAndLoadMissableObjects:
ld a, [wCurMap]
cp ROUTE_1
jr nc, .notInTown
@@ -17,7 +17,7 @@ MarkTownVisitedAndLoadMissableObjects: ; ef93 (3:6f93)
ld h, [hl]
; fall through
-; LoadMissableObjects: ; efb2 (3:6fb2)
+; LoadMissableObjects:
; seems to not exist in yellow (predef replaced with something near TryPushingBoulder)
ld l, a
push hl
@@ -64,7 +64,7 @@ MarkTownVisitedAndLoadMissableObjects: ; ef93 (3:6f93)
ld [de], a ; write sentinel
ret
-InitializeMissableObjectsFlags: ; eff1 (3:6ff1)
+InitializeMissableObjectsFlags:
ld hl, wMissableObjectFlags
ld bc, wMissableObjectFlagsEnd - wMissableObjectFlags
xor a
@@ -95,7 +95,7 @@ InitializeMissableObjectsFlags: ; eff1 (3:6ff1)
jr .missableObjectsLoop
; tests if current sprite is a missable object that is hidden/has been removed
-IsObjectHidden: ; f022 (3:7022)
+IsObjectHidden:
ld a, [H_CURRENTSPRITEOFFSET]
swap a
ld b, a
@@ -122,7 +122,7 @@ IsObjectHidden: ; f022 (3:7022)
; adds missable object (items, leg. pokemon, etc.) to the map
; [wMissableObjectIndex]: index of the missable object to be added (global index)
-ShowObject: ; f044 (3:7044)
+ShowObject:
ShowObject2:
ld hl, wMissableObjectFlags
ld a, [wMissableObjectIndex]
@@ -133,7 +133,7 @@ ShowObject2:
; removes missable object (items, leg. pokemon, etc.) from the map
; [wMissableObjectIndex]: index of the missable object to be removed (global index)
-HideObject: ; f053 (3:7053)
+HideObject:
ld hl, wMissableObjectFlags
ld a, [wMissableObjectIndex]
ld c, a
@@ -141,7 +141,7 @@ HideObject: ; f053 (3:7053)
call MissableObjectFlagAction ; set "removed" flag
jp UpdateSprites
-MissableObjectFlagAction: ; f062 (3:7062)
+MissableObjectFlagAction:
; identical to FlagAction
push hl
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index d69e2fbc..ad4515ff 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -1,4 +1,4 @@
-UpdatePlayerSprite: ; 4da5 (1:4da5)
+UpdatePlayerSprite:
ld a, [wSpriteStateData2]
and a
jr z, .checkIfTextBoxInFrontOfSprite
@@ -86,7 +86,7 @@ UpdatePlayerSprite: ; 4da5 (1:4da5)
ld [wSpriteStateData2 + $07], a
ret
-Func_4e32: ; 4e32 (1:4e32)
+Func_4e32:
ld a, [wSpriteStateData1 + 8]
ld b, a
ld a, [wPlayerFacingDirection]
@@ -94,7 +94,7 @@ Func_4e32: ; 4e32 (1:4e32)
ld [wSpriteStateData1 + 2], a
ret
-UpdateNPCSprite: ; 4e3e (1:4e3e)
+UpdateNPCSprite:
ld a, [H_CURRENTSPRITEOFFSET]
swap a
dec a
@@ -242,7 +242,7 @@ UpdateNPCSprite: ; 4e3e (1:4e3e)
jr TryWalking
; changes facing direction by zeroing the movement delta and calling TryWalking
-ChangeFacingDirection: ; 4f43 (1:4f43)
+ChangeFacingDirection:
ld de, $0
; fall through
@@ -252,7 +252,7 @@ ChangeFacingDirection: ; 4f43 (1:4f43)
; e: X movement delta (-1, 0 or 1)
; hl: pointer to tile the sprite would walk onto
; set carry on failure, clears carry on success
-TryWalking: ; 4f46 (1:4f46)
+TryWalking:
push hl
call Func_5337
pop hl
@@ -271,7 +271,7 @@ TryWalking: ; 4f46 (1:4f46)
jp UpdateSpriteImage
; update the walking animation parameters for a sprite that is currently walking
-UpdateSpriteInWalkingAnimation: ; 4f61 (1:4f61)
+UpdateSpriteInWalkingAnimation:
call Func_5274
.noNextAnimationFrame
ld a, [H_CURRENTSPRITEOFFSET]
@@ -330,7 +330,7 @@ UpdateSpriteInWalkingAnimation: ; 4f61 (1:4f61)
ret
; update delay value (c2x8) for sprites in the delayed state (c1x1)
-UpdateSpriteMovementDelay: ; 4fa9 (1:4fa9)
+UpdateSpriteMovementDelay:
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
@@ -351,7 +351,7 @@ UpdateSpriteMovementDelay: ; 4fa9 (1:4fa9)
inc a
ld l, a
ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
-notYetMoving: ; 4fc5 (1:4fc5)
+notYetMoving:
ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $8
@@ -359,7 +359,7 @@ notYetMoving: ; 4fc5 (1:4fc5)
ld [hl], $0 ; c1x8 = 0 (walk animation frame)
jp UpdateSpriteImage
-MakeNPCFacePlayer: ; 507f (1:507f)
+MakeNPCFacePlayer:
; Make an NPC face the player if the player has spoken to him or her.
; Check if the behaviour of the NPC facing the player when spoken to is
@@ -392,7 +392,7 @@ MakeNPCFacePlayer: ; 507f (1:507f)
ld [hl], c ; c1x9: set facing direction
jr notYetMoving
-InitializeSpriteStatus: ; 4fff (1:4fff)
+InitializeSpriteStatus:
ld [hl], $1 ; $c1x1: set movement status to ready
inc l
ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
@@ -407,7 +407,7 @@ InitializeSpriteStatus: ; 4fff (1:4fff)
ret
; calculates the spprite's scrren position form its map position and the player position
-InitializeSpriteScreenPosition: ; 5012 (1:5012)
+InitializeSpriteScreenPosition:
ld h, wSpriteStateData2 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $4
@@ -430,7 +430,7 @@ InitializeSpriteScreenPosition: ; 5012 (1:5012)
ld [hl], a ; c1x6 (screen X position)
ret
-Func_5033: ; 5033 (1:5033)
+Func_5033:
jr nc, .asm_503c
cpl
inc a
@@ -443,7 +443,7 @@ Func_5033: ; 5033 (1:5033)
ret
; tests if sprite is off screen or otherwise unable to do anything
-CheckSpriteAvailability: ; 503f (1:503f)
+CheckSpriteAvailability:
predef IsObjectHidden
ld a, [$ffe5]
and a
@@ -524,7 +524,7 @@ CheckSpriteAvailability: ; 503f (1:503f)
.done
ret
-UpdateSpriteImage: ; 50ba (1:50ba)
+UpdateSpriteImage:
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $8
@@ -549,7 +549,7 @@ UpdateSpriteImage: ; 50ba (1:50ba)
; d: Y movement delta (-1, 0 or 1)
; e: X movement delta (-1, 0 or 1)
; set carry on failure, clears carry on success
-CanWalkOntoTile: ; 50d1 (1:50d1)
+CanWalkOntoTile:
ld h, wSpriteStateData2 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $6
@@ -658,7 +658,7 @@ CanWalkOntoTile: ; 50d1 (1:50d1)
; calculates the tile pointer pointing to the tile the current sprite stancs on
; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
; hl: output pointer
-GetTileSpriteStandsOn: ; 516a (1:516a)
+GetTileSpriteStandsOn:
ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $4
@@ -687,7 +687,7 @@ GetTileSpriteStandsOn: ; 516a (1:516a)
ret
; loads [de+a] into a
-LoadDEPlusA: ; 5192 (1:5192)
+LoadDEPlusA:
add e
ld e, a
jr nc, .noCarry
@@ -696,7 +696,7 @@ LoadDEPlusA: ; 5192 (1:5192)
ld a, [de]
ret
-DoScriptedNPCMovement: ; 5199 (1:5199)
+DoScriptedNPCMovement:
; This is an alternative method of scripting an NPC's movement and is only used
; a few times in the game. It is used when the NPC and player must walk together
; in sync, such as when the player is following the NPC somewhere. An NPC can't
@@ -767,23 +767,23 @@ DoScriptedNPCMovement: ; 5199 (1:5199)
inc [hl]
ret
-InitScriptedNPCMovement: ; 5209 (1:5209)
+InitScriptedNPCMovement:
xor a
ld [wNPCMovementDirections2Index], a
ld a, 8
ld [wScriptedNPCWalkCounter], a
jp AnimScriptedNPCMovement
-GetSpriteScreenYPointer: ; 5215 (1:5215)
+GetSpriteScreenYPointer:
ld a, $4
ld b, a
jr GetSpriteScreenXYPointerCommon
-GetSpriteScreenXPointer: ; 521a (1:521a)
+GetSpriteScreenXPointer:
ld a, $6
ld b, a
-GetSpriteScreenXYPointerCommon: ; 521d (1:521d)
+GetSpriteScreenXYPointerCommon:
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add l
@@ -791,7 +791,7 @@ GetSpriteScreenXYPointerCommon: ; 521d (1:521d)
ld l, a
ret
-AnimScriptedNPCMovement: ; 5226 (1:5226)
+AnimScriptedNPCMovement:
ld hl, wSpriteStateData2
ld a, [H_CURRENTSPRITEOFFSET]
add $e
@@ -830,7 +830,7 @@ AnimScriptedNPCMovement: ; 5226 (1:5226)
ld [hl], a
ret
-AdvanceScriptedNPCAnimFrameCounter: ; 5264 (1:5264)
+AdvanceScriptedNPCAnimFrameCounter:
call Func_5274
ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
@@ -841,7 +841,7 @@ AdvanceScriptedNPCAnimFrameCounter: ; 5264 (1:5264)
ld [hSpriteAnimFrameCounter], a
ret
-Func_5274: ; 5274 (1:5274)
+Func_5274:
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
@@ -858,7 +858,7 @@ Func_5274: ; 5274 (1:5274)
ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
ret
-Func_5288: ; 5288 (1:5288)
+Func_5288:
; nice lookup table
; a is supposedly [wNPCMovementDirections + $fe]
cp $5
@@ -957,27 +957,27 @@ Func_5288: ; 5288 (1:5288)
scf
ret
-Func_531f: ; 531f (1:531f)
+Func_531f:
lb de, 1, 0
ld c, SPRITE_FACING_DOWN
ret
-Func_5325: ; 5325 (1:5325)
+Func_5325:
lb de, -1, 0
ld c, SPRITE_FACING_UP
ret
-Func_532b: ; 532b (1:532b)
+Func_532b:
lb de, 0, 1
ld c, SPRITE_FACING_RIGHT
ret
-Func_5331: ; 5331 (1:5331)
+Func_5331:
lb de, 0, -1
ld c, SPRITE_FACING_LEFT
ret
-Func_5337: ; 5337 (1:5337)
+Func_5337:
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
@@ -992,7 +992,7 @@ Func_5337: ; 5337 (1:5337)
ld [hl], e ; c1x5 (update X movement delta)
ret
-Func_5349: ; 5349 (1:5349)
+Func_5349:
ld h, wSpriteStateData2 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $4
@@ -1005,7 +1005,7 @@ Func_5349: ; 5349 (1:5349)
ld [hl], a ; update X position
ret
-Func_5357: ; 5357 (1:5357)
+Func_5357:
call Func_5274
ld a, [H_CURRENTSPRITEOFFSET]
add $3
@@ -1062,4 +1062,4 @@ Func_5357: ; 5357 (1:5357)
inc l
ld c, [hl]
ld [hl], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 07abd44f..333779fa 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -1,4 +1,4 @@
-PlayerStepOutFromDoor: ; 1a4ea (6:64ea)
+PlayerStepOutFromDoor:
ld hl, wd730
res 1, [hl]
call IsPlayerStandingOnDoorTile
@@ -27,7 +27,7 @@ PlayerStepOutFromDoor: ; 1a4ea (6:64ea)
res 7, [hl]
ret
-_EndNPCMovementScript: ; 1a527 (6:6527)
+_EndNPCMovementScript:
ld hl, wd730
res 7, [hl]
ld hl, wd72e
@@ -44,14 +44,14 @@ _EndNPCMovementScript: ; 1a527 (6:6527)
ld [wSimulatedJoypadStatesEnd], a
ret
-PalletMovementScriptPointerTable: ; 1a54c (6:654c)
+PalletMovementScriptPointerTable:
dw PalletMovementScript_OakMoveLeft
dw PalletMovementScript_PlayerMoveLeft
dw PalletMovementScript_WaitAndWalkToLab
dw PalletMovementScript_WalkToLab
dw PalletMovementScript_Done
-PalletMovementScript_OakMoveLeft: ; 1a556 (6:6556)
+PalletMovementScript_OakMoveLeft:
ld a, [wXCoord]
sub $a
ld [wNumStepsToTake], a
@@ -89,7 +89,7 @@ PalletMovementScript_OakMoveLeft: ; 1a556 (6:6556)
ld [wJoyIgnore], a
ret
-PalletMovementScript_PlayerMoveLeft: ; 1a597 (6:6597)
+PalletMovementScript_PlayerMoveLeft:
ld a, [wd730]
bit 0, a ; is an NPC being moved by a script?
ret nz ; return if Oak is still moving
@@ -102,12 +102,12 @@ PalletMovementScript_PlayerMoveLeft: ; 1a597 (6:6597)
ld [wNPCMovementScriptFunctionNum], a
ret
-PalletMovementScript_WaitAndWalkToLab: ; 1a5b3 (6:65b3)
+PalletMovementScript_WaitAndWalkToLab:
ld a, [wSimulatedJoypadStatesIndex]
and a ; is the player done moving left yet?
ret nz
-PalletMovementScript_WalkToLab: ; 1a5b8 (6:65b8)
+PalletMovementScript_WalkToLab:
xor a
ld [wOverrideSimulatedJoypadStatesMask], a
ld a, [wSpriteIndex]
@@ -132,7 +132,7 @@ PalletMovementScript_WalkToLab: ; 1a5b8 (6:65b8)
ret
-RLEList_ProfOakWalkToLab: ; 1a5ee (6:65ee)
+RLEList_ProfOakWalkToLab:
db NPC_MOVEMENT_DOWN, $06 ; differs from red
db NPC_MOVEMENT_LEFT, $01
db NPC_MOVEMENT_DOWN, $05
@@ -141,7 +141,7 @@ RLEList_ProfOakWalkToLab: ; 1a5ee (6:65ee)
db $E0, $01 ; stand still
db $FF
-RLEList_PlayerWalkToLab: ; 1a5fb (6:65fb)
+RLEList_PlayerWalkToLab:
db D_UP, $02
db D_RIGHT, $03
db D_DOWN, $05
@@ -149,7 +149,7 @@ RLEList_PlayerWalkToLab: ; 1a5fb (6:65fb)
db D_DOWN, $07 ; differs from red
db $FF
-PalletMovementScript_Done: ; 1a606 (6:6606)
+PalletMovementScript_Done:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
@@ -162,11 +162,11 @@ PalletMovementScript_Done: ; 1a606 (6:6606)
res 7, [hl]
jp EndNPCMovementScript
-PewterMuseumGuyMovementScriptPointerTable: ; 1a622 (6:6622)
+PewterMuseumGuyMovementScriptPointerTable:
dw PewterMovementScript_WalkToMuseum
dw PewterMovementScript_Done
-PewterMovementScript_WalkToMuseum: ; 1a626 (6:6626)
+PewterMovementScript_WalkToMuseum:
ld a, BANK(Music_MuseumGuy)
ld c, a
ld a, MUSIC_MUSEUM_GUY
@@ -192,21 +192,21 @@ PewterMovementScript_WalkToMuseum: ; 1a626 (6:6626)
ld [wNPCMovementScriptFunctionNum], a
ret
-RLEList_PewterMuseumPlayer: ; 1a661 (6:6661)
+RLEList_PewterMuseumPlayer:
db 0, $01
db D_UP, $03
db D_LEFT, $0D
db D_UP, $06
db $FF
-RLEList_PewterMuseumGuy: ; 1a66a (6:666a)
+RLEList_PewterMuseumGuy:
db NPC_MOVEMENT_UP, $06
db NPC_MOVEMENT_LEFT, $0D
db NPC_MOVEMENT_UP, $03
db NPC_MOVEMENT_LEFT, $01
db $FF
-PewterMovementScript_Done: ; 1a673 (6:6673)
+PewterMovementScript_Done:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
@@ -216,11 +216,11 @@ PewterMovementScript_Done: ; 1a673 (6:6673)
res 7, [hl]
jp EndNPCMovementScript
-PewterGymGuyMovementScriptPointerTable: ; 1a685 (6:6685)
+PewterGymGuyMovementScriptPointerTable:
dw PewterMovementScript_WalkToGym
dw PewterMovementScript_Done
-PewterMovementScript_WalkToGym: ; 1a689 (6:6689)
+PewterMovementScript_WalkToGym:
ld a, BANK(Music_MuseumGuy)
ld c, a
ld a, MUSIC_MUSEUM_GUY
@@ -249,7 +249,7 @@ PewterMovementScript_WalkToGym: ; 1a689 (6:6689)
ld [wNPCMovementScriptFunctionNum], a
ret
-RLEList_PewterGymPlayer: ; 1a6cb (6:66cb)
+RLEList_PewterGymPlayer:
db 0, $01
db D_RIGHT, $02
db D_DOWN, $05
@@ -258,7 +258,7 @@ RLEList_PewterGymPlayer: ; 1a6cb (6:66cb)
db D_LEFT, $0F
db $FF
-RLEList_PewterGymGuy: ; 1a6cd8 (6:66d8)
+RLEList_PewterGymGuy:
db NPC_MOVEMENT_DOWN, $02
db NPC_MOVEMENT_LEFT, $0F
db NPC_MOVEMENT_UP, $05
diff --git a/engine/overworld/npc_movement_2.asm b/engine/overworld/npc_movement_2.asm
index c5e11aa0..06ee9319 100755
--- a/engine/overworld/npc_movement_2.asm
+++ b/engine/overworld/npc_movement_2.asm
@@ -1,4 +1,4 @@
-FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02)
+FreezeEnemyTrainerSprite:
ld a, [wCurMap]
cp POKEMONTOWER_7
ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them
@@ -17,7 +17,7 @@ FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02)
ld [H_SPRITEINDEX], a
jp SetSpriteMovementBytesToFF
-RivalIDs: ; eaa20 (3a:6a20)
+RivalIDs:
db OPP_SONY1
db OPP_SONY2
db OPP_SONY3
diff --git a/engine/overworld/npc_pathfinding.asm b/engine/overworld/npc_pathfinding.asm
index ed7db530..f3d23b7c 100644
--- a/engine/overworld/npc_pathfinding.asm
+++ b/engine/overworld/npc_pathfinding.asm
@@ -1,4 +1,4 @@
-FindPathToPlayer: ; f74a (3:774a)
+FindPathToPlayer:
xor a
ld hl, hFindPathNumSteps
ld [hli], a ; hFindPathNumSteps
@@ -74,7 +74,7 @@ FindPathToPlayer: ; f74a (3:774a)
ld [hl], $ff
ret
-CalcPositionOfPlayerRelativeToNPC: ; f7b9 (3:77b9)
+CalcPositionOfPlayerRelativeToNPC:
xor a
ld [hNPCPlayerRelativePosFlags], a
ld a, [wSpriteStateData1 + 4] ; player's sprite screen Y position in pixels
@@ -151,7 +151,7 @@ CalcPositionOfPlayerRelativeToNPC: ; f7b9 (3:77b9)
ld [hNPCPlayerRelativePosFlags], a
ret
-ConvertNPCMovementDirectionsToJoypadMasks: ; f830 (3:7830)
+ConvertNPCMovementDirectionsToJoypadMasks:
ld a, [hNPCMovementDirections2Index]
ld [wNPCMovementDirections2Index], a
dec a
@@ -172,7 +172,7 @@ ConvertNPCMovementDirectionsToJoypadMasks: ; f830 (3:7830)
jr nz, .loop
ret
-ConvertNPCMovementDirectionToJoypadMask: ; f84f (3:784f)
+ConvertNPCMovementDirectionToJoypadMask:
push hl
ld b, a
ld hl, NPCMovementDirectionsToJoypadMasksTable
@@ -190,7 +190,7 @@ ConvertNPCMovementDirectionToJoypadMask: ; f84f (3:784f)
pop hl
ret
-NPCMovementDirectionsToJoypadMasksTable: ; f862 (3:7862)
+NPCMovementDirectionsToJoypadMasksTable:
db NPC_MOVEMENT_UP, D_UP
db NPC_MOVEMENT_DOWN, D_DOWN
db NPC_MOVEMENT_LEFT, D_LEFT
@@ -198,4 +198,4 @@ NPCMovementDirectionsToJoypadMasksTable: ; f862 (3:7862)
db $ff
; unreferenced
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/oaks_aide.asm b/engine/overworld/oaks_aide.asm
index d412d8ec..54ba6b7a 100755
--- a/engine/overworld/oaks_aide.asm
+++ b/engine/overworld/oaks_aide.asm
@@ -1,4 +1,4 @@
-OaksAideScript: ; 58ecc (16:4ecc)
+OaksAideScript:
ld hl, OaksAideHiText
call PrintText
call YesNoChoice
@@ -45,27 +45,27 @@ OaksAideScript: ; 58ecc (16:4ecc)
ld [hOaksAideResult], a
ret
-OaksAideHiText: ; 58f28 (16:4f28)
+OaksAideHiText:
TX_FAR _OaksAideHiText
db "@"
-OaksAideUhOhText: ; 58f2d (16:4f2d)
+OaksAideUhOhText:
TX_FAR _OaksAideUhOhText
db "@"
-OaksAideComeBackText: ; 58f32 (16:4f32)
+OaksAideComeBackText:
TX_FAR _OaksAideComeBackText
db "@"
-OaksAideHereYouGoText: ; 58f37 (16:4f37)
+OaksAideHereYouGoText:
TX_FAR _OaksAideHereYouGoText
db "@"
-OaksAideGotItemText: ; 58f3c (16:4f3c)
+OaksAideGotItemText:
TX_FAR _OaksAideGotItemText
db $0b
db "@"
-OaksAideNoRoomText: ; 58f41 (16:4f41)
+OaksAideNoRoomText:
TX_FAR _OaksAideNoRoomText
db "@"
diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm
index ede025cd..5a831327 100644
--- a/engine/overworld/oam.asm
+++ b/engine/overworld/oam.asm
@@ -1,4 +1,4 @@
-PrepareOAMData: ; 499b (1:499b)
+PrepareOAMData:
; Determine OAM data for currently visible
; sprites and write it to wOAMBuffer.
; Yellow code has been changed to use registers more efficiently
@@ -8,7 +8,7 @@ PrepareOAMData: ; 499b (1:499b)
dec a
jr z, .updateEnabled
- cp $ff
+ cp -1
ret nz
ld [wUpdateSpritesEnabled], a
jp HideSprites
@@ -164,7 +164,7 @@ PrepareOAMData: ; 499b (1:499b)
jr nz, .clearLoop
ret
-GetSpriteScreenXY: ; 4a5f (1:4a5f)
+GetSpriteScreenXY:
inc e
inc e
ld a, [de] ; c1x4
@@ -186,7 +186,7 @@ GetSpriteScreenXY: ; 4a5f (1:4a5f)
ld [de], a ; c1xb (x)
ret
-Func_4a7b: ; 4a7b (1:4a7b)
+Func_4a7b:
push bc
ld a, [wd5cd] ; temp copy of c1x2
swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs)
@@ -212,7 +212,7 @@ Func_4a7b: ; 4a7b (1:4a7b)
INCLUDE "engine/oam_dma.asm"
-_IsTilePassable:: ; 4aaa (1:4aaa)
+_IsTilePassable::
ld hl,wTilesetCollisionPtr ; pointer to list of passable tiles
ld a,[hli]
ld h,[hl]
@@ -229,4 +229,4 @@ _IsTilePassable:: ; 4aaa (1:4aaa)
scf
ret
-INCLUDE "data/collision.asm" ; probably \ No newline at end of file
+INCLUDE "data/collision.asm" ; probably
diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm
index ff3c6152..532fa4bf 100755
--- a/engine/overworld/pewter_guys.asm
+++ b/engine/overworld/pewter_guys.asm
@@ -1,4 +1,4 @@
-PewterGuys: ; 1a6e5 (6:66e5)
+PewterGuys:
ld hl, wSimulatedJoypadStatesEnd
ld a, [wSimulatedJoypadStatesIndex]
dec a ; this decrement causes it to overwrite the last byte before $FF in the list
@@ -48,14 +48,14 @@ PewterGuys: ; 1a6e5 (6:66e5)
inc hl
jr .findMatchingCoordsLoop
-PointerTable_37ce6: ; 1a72a (6:672a)
+PointerTable_37ce6:
dw PewterMuseumGuyCoords
dw PewterGymGuyCoords
; these are the four coordinates of the spaces below, above, to the left and
; to the right of the museum guy, and pointers to different movements for
; the player to make to get positioned before the main movement.
-PewterMuseumGuyCoords: ; 1a72e (6:672e)
+PewterMuseumGuyCoords:
db 18, 27
dw .down
db 16, 27
@@ -78,7 +78,7 @@ PewterMuseumGuyCoords: ; 1a72e (6:672e)
; different movements for the player to make to get positioned before the
; main movement
; $00 is a pause
-PewterGymGuyCoords: ; 1a74a (6:674a)
+PewterGymGuyCoords:
db 16, 34
dw .one
db 17, 35
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index bea43308..d4ecec53 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -1,4 +1,4 @@
-EnterMapAnim: ; 70567 (1c:4567)
+EnterMapAnim:
call InitFacingDirectionList
ld a, $ec
ld [wSpriteStateData1 + 4], a ; player's sprite Y screen position
@@ -9,7 +9,7 @@ EnterMapAnim: ; 70567 (1c:4567)
bit 7, [hl] ; used fly out of battle?
res 7, [hl]
jr nz, .flyAnimation
- ld a, $a0 ; (SFX_02_4c - SFX_Headers_02) / 3
+ ld a, SFX_TELEPORT_ENTER_1
call PlaySound
ld hl, wd732
bit 4, [hl] ; used dungeon warp?
@@ -17,7 +17,7 @@ EnterMapAnim: ; 70567 (1c:4567)
;res 4, [hl]
jr nz, .dungeonWarpAnimation
call PlayerSpinWhileMovingDown
- ld a, $a3 ; (SFX_02_4f - SFX_Headers_02) / 3
+ ld a, SFX_TELEPORT_ENTER_2
call PlaySound
call IsPlayerStandingOnWarpPadOrHole
ld a, b
@@ -51,7 +51,7 @@ EnterMapAnim: ; 70567 (1c:4567)
.flyAnimation
pop hl
call LoadBirdSpriteGraphics
- ld a, $a4 ; SFX_BIRD_FLY
+ ld a, SFX_FLY
call PlaySound
ld hl, wFlyAnimUsingCoordList
xor a ; is using coord list
@@ -66,7 +66,7 @@ EnterMapAnim: ; 70567 (1c:4567)
ld [wPikachuSpawnState], a
jr .restoreDefaultMusic
-FlyAnimationEnterScreenCoords: ; 705ed (1c:45ed)
+FlyAnimationEnterScreenCoords:
; y, x pairs
; This is the sequence of screen coordinates used by the overworld
; Fly animation when the player is entering a map.
@@ -83,7 +83,7 @@ FlyAnimationEnterScreenCoords: ; 705ed (1c:45ed)
db $3C, $48
db $3C, $40
-PlayerSpinWhileMovingDown: ; 70605 (1c:4605)
+PlayerSpinWhileMovingDown:
ld hl, wPlayerSpinWhileMovingUpOrDownAnimDeltaY
ld a, $10
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimDeltaY
@@ -94,7 +94,7 @@ PlayerSpinWhileMovingDown: ; 70605 (1c:4605)
jp PlayerSpinWhileMovingUpOrDown
-_LeaveMapAnim: ; 70615 (1c:4615)
+_LeaveMapAnim:
call Func_1510
call InitFacingDirectionList
call IsPlayerStandingOnWarpPadOrHole
@@ -104,7 +104,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
dec a
jp nz, LeaveMapThroughHoleAnim
.spinWhileMovingUp
- ld a, $9f ; (SFX_02_4b - SFX_Headers_02) / 3
+ ld a, SFX_TELEPORT_EXIT_1
call PlaySound
ld hl, wPlayerSpinWhileMovingUpOrDownAnimDeltaY
ld a, -$10
@@ -138,7 +138,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayDelta
xor a
ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue
- ld [hl], $a1 ; SFX_TELEPORT_EXIT_2
+ ld [hl], SFX_TELEPORT_EXIT_2 ; wPlayerSpinInPlaceAnimSoundID
ld hl, wFacingDirectionList
call PlayerSpinInPlace
jr .spinWhileMovingUp
@@ -151,7 +151,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld [hli], a ; wFlyAnimCounter
ld [hl], $c ; wFlyAnimBirdSpriteImageIndex
call DoFlyAnimation
- ld a, $a4 ; SFX_FLY
+ ld a, SFX_FLY
call PlaySound
ld hl, wFlyAnimUsingCoordList
xor a ; is using coord list
@@ -172,7 +172,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
call GBFadeOutToWhite
jp RestoreFacingDirectionAndYScreenPos
-FlyAnimationScreenCoords1: ; 706ad (1c:46ad)
+FlyAnimationScreenCoords1:
; y, x pairs
; This is the sequence of screen coordinates used by the first part
; of the Fly overworld animation.
@@ -189,7 +189,7 @@ FlyAnimationScreenCoords1: ; 706ad (1c:46ad)
db $2A, $98
db $27, $A0
-FlyAnimationScreenCoords2: ; 706c5 (1c:46c5)
+FlyAnimationScreenCoords2:
; y, x pairs
; This is the sequence of screen coordinates used by the second part
; of the Fly overworld animation.
@@ -206,7 +206,7 @@ FlyAnimationScreenCoords2: ; 706c5 (1c:46c5)
db $F0, $00
-LeaveMapThroughHoleAnim: ; 706db (1c:46db)
+LeaveMapThroughHoleAnim:
ld a, $ff
ld [wUpdateSpritesEnabled], a ; disable UpdateSprites
; shift upper half of player's sprite down 8 pixels and hide lower half
@@ -228,7 +228,7 @@ LeaveMapThroughHoleAnim: ; 706db (1c:46db)
ld [wUpdateSpritesEnabled], a ; enable UpdateSprites
jp RestoreFacingDirectionAndYScreenPos
-DoFlyAnimation: ; 7070c (1c:470c)
+DoFlyAnimation:
ld a, [wFlyAnimBirdSpriteImageIndex]
xor $1 ; make the bird flap its wings
ld [wFlyAnimBirdSpriteImageIndex], a
@@ -252,19 +252,19 @@ DoFlyAnimation: ; 7070c (1c:470c)
jr nz, DoFlyAnimation
ret
-LoadBirdSpriteGraphics: ; 70735 (1c:4735)
- ld de, BirdSprite ; $4d80
+LoadBirdSpriteGraphics:
+ ld de, BirdSprite
ld b, BANK(BirdSprite)
ld c, $c
ld hl, vNPCSprites
call CopyVideoData
- ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite
+ ld de, BirdSprite + $c0 ; moving animation sprite
ld b, BANK(BirdSprite)
ld c, $0c
ld hl, vNPCSprites2
jp CopyVideoData
-InitFacingDirectionList: ; 7074f (1c:474f)
+InitFacingDirectionList:
ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images)
ld [wSavedPlayerFacingDirection], a
ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position
@@ -283,12 +283,12 @@ InitFacingDirectionList: ; 7074f (1c:474f)
dec hl
ret
-PlayerSpinningFacingOrder: ; 70773 (1c:4773)
+PlayerSpinningFacingOrder:
; The order of the direction the player's sprite is facing when teleporting
; away. Creates a spinning effect.
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
-SpinPlayerSprite: ; 70777 (1c:4777)
+SpinPlayerSprite:
; copy the current value from the list into the sprite data and rotate the list
ld a, [hl]
ld [wSpriteStateData1 + 2], a ; player's sprite facing direction (image index is locked to standing images)
@@ -302,7 +302,7 @@ SpinPlayerSprite: ; 70777 (1c:4777)
pop hl
ret
-PlayerSpinInPlace: ; 70790 (1c:4790)
+PlayerSpinInPlace:
call SpinPlayerSprite
ld a, [wPlayerSpinInPlaceAnimFrameDelay]
ld c, a
@@ -323,7 +323,7 @@ PlayerSpinInPlace: ; 70790 (1c:4790)
call DelayFrames
jr PlayerSpinInPlace
-PlayerSpinWhileMovingUpOrDown: ; 707b5 (1c:47b5)
+PlayerSpinWhileMovingUpOrDown:
call SpinPlayerSprite
ld a, [wPlayerSpinWhileMovingUpOrDownAnimDeltaY]
ld c, a
@@ -339,7 +339,7 @@ PlayerSpinWhileMovingUpOrDown: ; 707b5 (1c:47b5)
call DelayFrames
jr PlayerSpinWhileMovingUpOrDown
-RestoreFacingDirectionAndYScreenPos: ; 707d2 (1c:47d2)
+RestoreFacingDirectionAndYScreenPos:
ld a, [wSavedPlayerScreenY]
ld [wSpriteStateData1 + 4], a
ld a, [wSavedPlayerFacingDirection]
@@ -347,14 +347,14 @@ RestoreFacingDirectionAndYScreenPos: ; 707d2 (1c:47d2)
ret
; if SGB, 2 frames, else 3 frames
-GetPlayerTeleportAnimFrameDelay: ; 707df (1c:47df)
+GetPlayerTeleportAnimFrameDelay:
ld a, [wOnSGB]
xor $1
inc a
inc a
ret
-IsPlayerStandingOnWarpPadOrHole: ; 707e7 (1c:47e7)
+IsPlayerStandingOnWarpPadOrHole:
ld b, 0
ld hl, .warpPadAndHoleData
ld a, [wCurMapTileset]
@@ -381,20 +381,20 @@ IsPlayerStandingOnWarpPadOrHole: ; 707e7 (1c:47e7)
ret
; format: db tileset id, tile id, value to be put in [wStandingOnWarpPadOrHole]
-.warpPadAndHoleData: ; 70809 (1c:4809)
+.warpPadAndHoleData:
db FACILITY, $20, 1 ; warp pad
db FACILITY, $11, 2 ; hole
db CAVERN, $22, 2 ; hole
db INTERIOR, $55, 1 ; warp pad
db $FF
-FishingAnim: ; 70816 (1c:4816)
+FishingAnim:
ld c, 10
call DelayFrames
ld hl, wd736
- set 6, [hl]
+ set 6, [hl] ; reserve the last 4 OAM entries
ld hl, vNPCSprites
- ld de, RedSprite ; $4180
+ ld de, RedSprite
ld b, BANK(RedSprite)
ld c, $c
call CopyVideoData
@@ -422,7 +422,6 @@ FishingAnim: ; 70816 (1c:4816)
; there was a bite
; shake the player's sprite vertically
-
ld b, 10
.loop
ld hl, wSpriteStateData1 + 4 ; player's sprite Y screen position
@@ -435,17 +434,19 @@ FishingAnim: ; 70816 (1c:4816)
; If the player is facing up, hide the fishing rod so it doesn't overlap with
; the exclamation bubble that will be shown next.
- ld a, [wSpriteStateData1 + 2]
+ ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction
cp SPRITE_FACING_UP
jr nz, .skipHidingFishingRod
ld a, $a0
ld [wOAMBuffer + $9c], a
+
.skipHidingFishingRod
ld hl, wEmotionBubbleSpriteIndex
xor a
ld [hli], a ; player's sprite
ld [hl], a ; EXCLAMATION_BUBBLE
predef EmotionBubble
+
; If the player is facing up, unhide the fishing rod.
ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction
cp SPRITE_FACING_UP
@@ -463,25 +464,25 @@ FishingAnim: ; 70816 (1c:4816)
call LoadFontTilePatterns
ret
-.ShakePlayerSprite ; 708a3 (1c:48a3)
+.ShakePlayerSprite
ld a, [hl]
xor $1
ld [hl], a
ret
-NoNibbleText: ; 708a8 (1c:48a8)
+NoNibbleText:
TX_FAR _NoNibbleText
db "@"
-NothingHereText: ; 708ad (1c:48ad)
+NothingHereText:
TX_FAR _NothingHereText
db "@"
-ItsABiteText: ; 708b2 (1c:48b2)
+ItsABiteText:
TX_FAR _ItsABiteText
db "@"
-FishingRodOAM: ; 708b7 (1c:48b7)
+FishingRodOAM:
; specifies how the fishing rod should be drawn on the screen
; first byte = screen y coordinate
; second byte = screen x coordinate
@@ -492,7 +493,7 @@ FishingRodOAM: ; 708b7 (1c:48b7)
db $50, $40, $FE, $00 ; player facing left
db $50, $58, $FE, $20 ; player facing right ($20 means "horizontally flip the tile")
-RedFishingTiles: ; 708c7 (1c:48c7)
+RedFishingTiles:
dw RedFishingTilesFront
db 2, BANK(RedFishingTilesFront)
dw vNPCSprites + $20
@@ -509,7 +510,7 @@ RedFishingTiles: ; 708c7 (1c:48c7)
db 3, BANK(RedFishingRodTiles)
dw vNPCSprites2 + $7d0
-_HandleMidJump: ; 708df (1c:48df)
+_HandleMidJump:
ld a, [wPlayerJumpingYScreenCoordsIndex]
ld c, a
inc a
@@ -541,6 +542,6 @@ _HandleMidJump: ; 708df (1c:48df)
ld [wJoyIgnore], a
ret
-PlayerJumpingYScreenCoords: ; 7091b (1c:491b)
+PlayerJumpingYScreenCoords:
; Sequence of y screen coordinates for player's sprite when jumping over a ledge.
db $38, $36, $34, $32, $31, $30, $30, $30, $31, $32, $33, $34, $36, $38, $3C, $3C
diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm
index 65dfcd87..1801d9e9 100755
--- a/engine/overworld/pokecenter.asm
+++ b/engine/overworld/pokecenter.asm
@@ -1,4 +1,4 @@
-DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
+DisplayPokemonCenterDialogue_:
ld a, [wCurMap]
cp PEWTER_POKECENTER
jr nz, .regularCenter
@@ -32,7 +32,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call LoadCurrentMapView
call Delay3
call UpdateSprites
- callab Func_fd252 ; todo
+ callab PikachuWalksToNurseJoy ; todo
.notHealingPlayerPikachu
ld hl, NeedYourPokemonText
call PrintText
@@ -40,7 +40,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call DelayFrames
call CheckPikachuFollowingPlayer
jr nz, .playerPikachuNotOnScreen
- call Func_152d
+ call DisablePikachuOverworldSpriteDrawing
callab IsStarterPikachuInOurParty
call c, Func_6eaa
.playerPikachuNotOnScreen
@@ -64,7 +64,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call c, Func_6eaa
ld a, $5
ld [wPikachuSpawnState], a
- call Func_1525
+ call EnablePikachuOverworldSpriteDrawing
.doNotReturnPikachu
lb bc, 1, 0
call Func_6ebb
@@ -97,7 +97,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call UpdateSprites
ret
-Func_6eaa: ; 6eaa (1:6eaa)
+Func_6eaa:
ld a, $1
ld [H_SPRITEINDEX], a
ld a, $4
@@ -107,7 +107,7 @@ Func_6eaa: ; 6eaa (1:6eaa)
call DelayFrames
ret
-Func_6ebb: ; 6ebb (1:6ebb)
+Func_6ebb:
ld a, b
ld [H_SPRITEINDEX], a
ld a, c
@@ -122,28 +122,28 @@ Func_6ebb: ; 6ebb (1:6ebb)
call SpriteFunc_34a1
ret
-PokemonCenterWelcomeText: ; 6de0 (1:6de0)
+PokemonCenterWelcomeText:
TX_FAR _PokemonCenterWelcomeText
db "@"
-ShallWeHealYourPokemonText: ; 6de5 (1:6de5)
+ShallWeHealYourPokemonText:
db $a
TX_FAR _ShallWeHealYourPokemonText
db "@"
-NeedYourPokemonText: ; 6deb (1:6deb)
+NeedYourPokemonText:
TX_FAR _NeedYourPokemonText
db "@"
-PokemonFightingFitText: ; 6ee0 (1:6ee0)
+PokemonFightingFitText:
TX_FAR _PokemonFightingFitText
db "@"
-PokemonCenterFarewellText: ; 6ee5 (1:6ee5)
+PokemonCenterFarewellText:
db $a
TX_FAR _PokemonCenterFarewellText
db "@"
-LooksContentText: ; 6eeb (1:6eeb)
+LooksContentText:
TX_FAR _LooksContentText
- db "@" \ No newline at end of file
+ db "@"
diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm
index ca3f8991..823939b1 100755
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -1,4 +1,4 @@
-DisplayPokemartDialogue_: ; 69a5 (1:69a5)
+DisplayPokemartDialogue_:
ld a,[wListScrollOffset]
ld [wSavedListScrollOffset],a
call UpdateSprites
@@ -227,46 +227,46 @@ DisplayPokemartDialogue_: ; 69a5 (1:69a5)
ld [wListScrollOffset],a
ret
-PokemartBuyingGreetingText: ; 6b91 (1:6b91)
+PokemartBuyingGreetingText:
TX_FAR _PokemartBuyingGreetingText
db "@"
-PokemartTellBuyPriceText: ; 6b96 (1:6b96)
+PokemartTellBuyPriceText:
TX_FAR _PokemartTellBuyPriceText
db "@"
-PokemartBoughtItemText: ; 6b9b (1:6b9b)
+PokemartBoughtItemText:
TX_FAR _PokemartBoughtItemText
db "@"
-PokemartNotEnoughMoneyText: ; 6ba0 (1:6ba0)
+PokemartNotEnoughMoneyText:
TX_FAR _PokemartNotEnoughMoneyText
db "@"
-PokemartItemBagFullText: ; 6ba5 (1:6ba5)
+PokemartItemBagFullText:
TX_FAR _PokemartItemBagFullText
db "@"
-PokemonSellingGreetingText: ; 6baa (1:6baa)
+PokemonSellingGreetingText:
TX_FAR _PokemonSellingGreetingText
db "@"
-PokemartTellSellPriceText: ; 6baf (1:6baf)
+PokemartTellSellPriceText:
TX_FAR _PokemartTellSellPriceText
db "@"
-PokemartItemBagEmptyText: ; 6bb4 (1:6bb4)
+PokemartItemBagEmptyText:
TX_FAR _PokemartItemBagEmptyText
db "@"
-PokemartUnsellableItemText: ; 6bb9 (1:6bb9)
+PokemartUnsellableItemText:
TX_FAR _PokemartUnsellableItemText
db "@"
-PokemartThankYouText: ; 6bbe (1:6bbe)
+PokemartThankYouText:
TX_FAR _PokemartThankYouText
db "@"
-PokemartAnythingElseText: ; 6bc3 (1:6bc3)
+PokemartAnythingElseText:
TX_FAR _PokemartAnythingElseText
db "@"
diff --git a/engine/overworld/print_safari_steps.asm b/engine/overworld/print_safari_steps.asm
index 3f2ada03..01dd34e0 100644
--- a/engine/overworld/print_safari_steps.asm
+++ b/engine/overworld/print_safari_steps.asm
@@ -1,4 +1,4 @@
-PrintSafariZoneSteps: ; c27b (3:427b)
+PrintSafariZoneSteps:
ld a, [wCurMap]
cp SAFARI_ZONE_EAST
ret c
@@ -29,8 +29,8 @@ PrintSafariZoneSteps: ; c27b (3:427b)
lb bc, 1, 2
jp PrintNumber
-SafariSteps: ; c2c4 (3:42c4)
+SafariSteps:
db "/500@"
-SafariBallText: ; c5c9 (3:42c9)
- db "BALL×× @" \ No newline at end of file
+SafariBallText:
+ db "BALL×× @"
diff --git a/engine/overworld/replace_tile_block.asm b/engine/overworld/replace_tile_block.asm
index 32c652ea..8577b9e7 100644
--- a/engine/overworld/replace_tile_block.asm
+++ b/engine/overworld/replace_tile_block.asm
@@ -2,7 +2,7 @@
; and redraws the map view if necessary
; b = Y
; c = X
-ReplaceTileBlock: ; ed1b (3:6d1b)
+ReplaceTileBlock:
call GetPredefRegisters
ld hl, wOverworldMap
ld a, [wCurMapWidth]
@@ -46,7 +46,7 @@ ReplaceTileBlock: ; ed1b (3:6d1b)
call CompareHLWithBC
ret c ; return if the replaced tile block is above the map view in memory
-RedrawMapView: ; ed59 (3:6d59)
+RedrawMapView:
ld a, [wIsInBattle]
inc a
ret z
@@ -117,10 +117,10 @@ RedrawMapView: ; ed59 (3:6d59)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-CompareHLWithBC: ; edcb (3:6dcb)
+CompareHLWithBC:
ld a, h
sub b
ret nz
ld a, l
sub c
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/saffron_guards.asm b/engine/overworld/saffron_guards.asm
index 83d73d02..3b26b6f8 100755
--- a/engine/overworld/saffron_guards.asm
+++ b/engine/overworld/saffron_guards.asm
@@ -1,4 +1,4 @@
-RemoveGuardDrink: ; 5a53a (16:653a)
+RemoveGuardDrink:
ld hl, GuardDrinksList
.drinkLoop
ld a, [hli]
@@ -12,5 +12,5 @@ RemoveGuardDrink: ; 5a53a (16:653a)
jr z, .drinkLoop
jpba RemoveItemByID
-GuardDrinksList: ; 5a552 (16:6552)
+GuardDrinksList:
db FRESH_WATER, SODA_POP, LEMONADE, $00
diff --git a/engine/overworld/set_blackout_map.asm b/engine/overworld/set_blackout_map.asm
index 5faef173..9bfe82bd 100644
--- a/engine/overworld/set_blackout_map.asm
+++ b/engine/overworld/set_blackout_map.asm
@@ -1,4 +1,4 @@
-SetLastBlackoutMap: ; 6ef0 (1:6ef0)
+SetLastBlackoutMap:
; Set the map to return to when
; blacking out or using Teleport or Dig.
; Safari rest houses don't count.
@@ -22,8 +22,8 @@ SetLastBlackoutMap: ; 6ef0 (1:6ef0)
pop hl
ret
-SafariZoneRestHouses: ; 6f0a (1:6f0a)
+SafariZoneRestHouses:
db SAFARI_ZONE_REST_HOUSE_2
db SAFARI_ZONE_REST_HOUSE_3
db SAFARI_ZONE_REST_HOUSE_4
- db -1 \ No newline at end of file
+ db -1
diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm
index 8c1b4159..4814e668 100644
--- a/engine/overworld/special_warps.asm
+++ b/engine/overworld/special_warps.asm
@@ -1,4 +1,4 @@
-SpecialWarpIn: ; 6042 (1:6042)
+SpecialWarpIn:
call LoadSpecialWarpData
predef LoadTilesetHeader
ld hl,wd732
@@ -29,7 +29,7 @@ SpecialWarpIn: ; 6042 (1:6042)
ret
; gets the map ID, tile block map view pointer, tileset, and coordinates
-LoadSpecialWarpData: ; 6073 (1:6073)
+LoadSpecialWarpData:
ld a, [wd72d]
cp TRADE_CENTER
jr nz, .notTradeCenter
@@ -144,4 +144,4 @@ LoadSpecialWarpData: ; 6073 (1:6073)
ld [wXOffsetSinceLastSpecialWarp], a
ld a, $ff ; the player's coordinates have already been updated using a special warp, so don't use any of the normal warps
ld [wDestinationWarpID], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm
index d0d957be..347dc459 100755
--- a/engine/overworld/ssanne.asm
+++ b/engine/overworld/ssanne.asm
@@ -1,4 +1,4 @@
-AnimateBoulderDust: ; 7a0fb (1e:60fb)
+AnimateBoulderDust:
ld a, $1
ld [wWhichAnimationOffsets], a ; select the boulder dust offsets
ld a, [wUpdateSpritesEnabled]
@@ -31,7 +31,7 @@ AnimateBoulderDust: ; 7a0fb (1e:60fb)
ld [wUpdateSpritesEnabled], a
jp LoadPlayerSpriteGraphics
-GetMoveBoulderDustFunctionPointer: ; 7913f (1e:613f)
+GetMoveBoulderDustFunctionPointer:
ld a, [wPlayerFacingDirection] ; player's sprite facing direction
ld hl, MoveBoulderDustFunctionPointerTable
ld c, a
@@ -53,7 +53,7 @@ GetMoveBoulderDustFunctionPointer: ; 7913f (1e:613f)
pop hl
ret
-MoveBoulderDustFunctionPointerTable: ; 7a15d (1e:615d)
+MoveBoulderDustFunctionPointerTable:
; facing down
db $FF,$00
dw AdjustOAMBlockYPos
@@ -70,7 +70,7 @@ MoveBoulderDustFunctionPointerTable: ; 7a15d (1e:615d)
db $FF,$01
dw AdjustOAMBlockXPos
-LoadSmokeTileFourTimes: ; 7916d (1e:616d)
+LoadSmokeTileFourTimes:
ld hl, vChars1 + $7c0
ld c, $4
.loop
@@ -85,11 +85,11 @@ LoadSmokeTileFourTimes: ; 7916d (1e:616d)
jr nz, .loop
ret
-LoadSmokeTile: ; 7a181 (1e:6181)
+LoadSmokeTile:
ld de, SSAnneSmokePuffTile
lb bc, BANK(SSAnneSmokePuffTile), (SSAnneSmokePuffTileEnd - SSAnneSmokePuffTile) / $10
jp CopyVideoData
-SSAnneSmokePuffTile: ; 7a18a (1e:618a)
+SSAnneSmokePuffTile:
INCBIN "gfx/ss_anne_smoke_puff.2bpp"
SSAnneSmokePuffTileEnd:
diff --git a/engine/overworld/step_functions.asm b/engine/overworld/step_functions.asm
index bc1a74aa..84b09291 100644
--- a/engine/overworld/step_functions.asm
+++ b/engine/overworld/step_functions.asm
@@ -1,4 +1,4 @@
-ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
+ApplyOutOfBattlePoisonDamage:
ld a, [wd730]
add a
jp c, .noBlackOut ; no black out if joypad states are being simulated
@@ -124,7 +124,7 @@ ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
ld [wOutOfBattleBlackout], a
ret
-Func_c4c7: ; c4c7 (3:44c7)
+Func_c4c7:
ld a, [wStepCounter]
and a
jr nz, .asm_c4de
@@ -148,4 +148,4 @@ Func_c4c7: ; c4c7 (3:44c7)
.asm_c4ef
xor a
ld [wd49c], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm
index 9dee81bd..655c6b2a 100755
--- a/engine/overworld/trainers.asm
+++ b/engine/overworld/trainers.asm
@@ -1,4 +1,4 @@
-_GetSpritePosition1: ; 56745 (15:6745)
+_GetSpritePosition1:
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
@@ -17,7 +17,7 @@ _GetSpritePosition1: ; 56745 (15:6745)
ld [$ffee], a
ret
-_GetSpritePosition2: ; 56765 (15:6765)
+_GetSpritePosition2:
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
@@ -36,7 +36,7 @@ _GetSpritePosition2: ; 56765 (15:6765)
ld [wSavedSpriteMapX], a
ret
-_SetSpritePosition1: ; 56789 (15:6789)
+_SetSpritePosition1:
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
@@ -55,9 +55,9 @@ _SetSpritePosition1: ; 56789 (15:6789)
ld [hl], a
ret
-_SetSpritePosition2: ; 567a9 (15:67a9)
+_SetSpritePosition2:
ld hl, wSpriteStateData1
- ld de, $4
+ ld de, 4
ld a, [wSpriteIndex]
ld [H_SPRITEINDEX], a
call GetSpriteDataPointer
@@ -74,7 +74,7 @@ _SetSpritePosition2: ; 567a9 (15:67a9)
ld [hl], a ; c2x5 (map X pos)
ret
-TrainerWalkUpToPlayer: ; 567cd (15:67cd)
+TrainerWalkUpToPlayer:
ld a, [wSpriteIndex]
swap a
ld [wTrainerSpriteOffset], a
@@ -149,7 +149,7 @@ TrainerWalkUpToPlayer: ; 567cd (15:67cd)
; input: de = offset within sprite entry
; output: hl = pointer to sprite data
-GetSpriteDataPointer: ; 5684f (15:684f)
+GetSpriteDataPointer:
push de
add hl, de
ld a, [H_SPRITEINDEX]
@@ -161,7 +161,7 @@ GetSpriteDataPointer: ; 5684f (15:684f)
ret
; tests if this trainer is in the right position to engage the player and do so if she is.
-TrainerEngage: ; 5685b (15:685b)
+TrainerEngage:
push hl
push de
ld a, [wTrainerSpriteOffset]
@@ -232,7 +232,7 @@ TrainerEngage: ; 5685b (15:685b)
ret
; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX
-ReadTrainerScreenPosition: ; 568da (15:68da)
+ReadTrainerScreenPosition:
ld a, [wTrainerSpriteOffset]
add $4
ld d, $0
@@ -254,7 +254,7 @@ ReadTrainerScreenPosition: ; 568da (15:68da)
; checks if the sprite is properly lined up with the player with respect to the direction it's looking. Also checks the distance between player and sprite
; note that this does not necessarily mean the sprite is seeing the player, he could be behind it's back
; a: distance player to sprite
-CheckSpriteCanSeePlayer: ; 569af (15:69af)
+CheckSpriteCanSeePlayer:
ld b, a
ld a, [wTrainerEngageDistance] ; how far the trainer can see
cp b
@@ -262,13 +262,13 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
jr .notInLine ; player too far away
.checkIfLinedUp
ld a, [wTrainerFacingDirection] ; sprite facing direction
- cp SPRITE_FACING_DOWN ; down
+ cp SPRITE_FACING_DOWN
jr z, .checkXCoord
- cp SPRITE_FACING_UP ; up
+ cp SPRITE_FACING_UP
jr z, .checkXCoord
- cp SPRITE_FACING_LEFT ; left
+ cp SPRITE_FACING_LEFT
jr z, .checkYCoord
- cp SPRITE_FACING_RIGHT ; right
+ cp SPRITE_FACING_RIGHT
jr z, .checkYCoord
jr .notInLine
.checkXCoord
@@ -290,7 +290,7 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
ret
; tests if the player is in front of the sprite (rather than behind it)
-CheckPlayerIsInFrontOfSprite: ; 5692f (15:692f)
+CheckPlayerIsInFrontOfSprite:
ld a, [wCurMap]
cp POWER_PLANT
jp z, .engage ; bypass this for power plant to get voltorb fake items to work
diff --git a/engine/overworld/try_pushing_boulder.asm b/engine/overworld/try_pushing_boulder.asm
index b7e04092..a00790b9 100644
--- a/engine/overworld/try_pushing_boulder.asm
+++ b/engine/overworld/try_pushing_boulder.asm
@@ -1,8 +1,8 @@
-TryPushingBoulder: ; f0a1 (3:70a1)
+TryPushingBoulder:
ld a, [wd728]
bit 0, a ; using Strength?
ret z
-Func_f0a7: ; f0a7 (3:70a7)
+Func_f0a7:
; where LoadMissableObjects predef points to now
ld a, [wFlags_0xcd60]
bit 1, a ; has boulder dust animation from previous push played yet?
@@ -72,19 +72,19 @@ Func_f0a7: ; f0a7 (3:70a7)
set 1, [hl]
ret
-PushBoulderUpMovementData: ; f129 (3:7129)
+PushBoulderUpMovementData:
db NPC_MOVEMENT_UP,$FF
-PushBoulderDownMovementData: ; f12b (3:712b)
+PushBoulderDownMovementData:
db NPC_MOVEMENT_DOWN,$FF
-PushBoulderLeftMovementData: ; f12d (3:712d)
+PushBoulderLeftMovementData:
db NPC_MOVEMENT_LEFT,$FF
-PushBoulderRightMovementData: ; f12f (3:712f)
+PushBoulderRightMovementData:
db NPC_MOVEMENT_RIGHT,$FF
-DoBoulderDustAnimation: ; f131 (3:7131)
+DoBoulderDustAnimation:
ld a, [wd730]
bit 0, a
ret nz
@@ -100,8 +100,8 @@ DoBoulderDustAnimation: ; f131 (3:7131)
ld a, SFX_CUT
jp PlaySound
-ResetBoulderPushFlags: ; f159 (3:7159)
+ResetBoulderPushFlags:
ld hl, wFlags_0xcd60
res 1, [hl]
res 6, [hl]
- ret \ No newline at end of file
+ ret
diff --git a/engine/palettes.asm b/engine/palettes.asm
index 636e5e97..c6c234ae 100755
--- a/engine/palettes.asm
+++ b/engine/palettes.asm
@@ -1,4 +1,4 @@
-_RunPaletteCommand: ; 71ddf (1c:5ddf)
+_RunPaletteCommand:
call GetPredefRegisters
ld a, b
cp $ff
@@ -19,13 +19,13 @@ _RunPaletteCommand: ; 71ddf (1c:5ddf)
push de
jp [hl]
-SetPal_Black: ; 71ed3 (1c:5ed3)
+SetPal_Black:
ld hl, PalPacket_Black
ld de, BlkPacket_Battle
ret
; uses PalPacket_Empty to build a packet based on mon IDs and health color
-SetPal_Battle: ; 71eda (1c:5eda)
+SetPal_Battle:
ld hl, PalPacket_Empty
ld de, wPalPacket
ld bc, $10
@@ -66,13 +66,13 @@ SetPal_Battle: ; 71eda (1c:5eda)
ld [wDefaultPaletteCommand], a
ret
-SetPal_TownMap: ; 71f26 (1c:5f26)
+SetPal_TownMap:
ld hl, PalPacket_TownMap
ld de, BlkPacket_WholeScreen
ret
; uses PalPacket_Empty to build a packet based the mon ID
-SetPal_StatusScreen: ; 71f2d (1c:5f2d)
+SetPal_StatusScreen:
ld hl, PalPacket_Empty
ld de, wPalPacket
ld bc, $10
@@ -95,12 +95,12 @@ SetPal_StatusScreen: ; 71f2d (1c:5f2d)
ld de, BlkPacket_StatusScreen
ret
-SetPal_PartyMenu: ; 71f59 (1c:5f59)
+SetPal_PartyMenu:
ld hl, PalPacket_PartyMenu
ld de, wPartyMenuBlkPacket
ret
-SetPal_Pokedex: ; 71f60 (1c:5f60)
+SetPal_Pokedex:
ld hl, PalPacket_Pokedex
ld de, wPalPacket
ld bc, $10
@@ -113,28 +113,28 @@ SetPal_Pokedex: ; 71f60 (1c:5f60)
ld de, BlkPacket_Pokedex
ret
-SetPal_Slots: ; 71f7d (1c:5f7d)
+SetPal_Slots:
ld hl, PalPacket_Slots
ld de, BlkPacket_Slots
ret
-SetPal_Titlescreen: ; 71f84 (1c:5f84)
+SetPal_Titlescreen:
ld hl, PalPacket_Titlescreen
ld de, BlkPacket_Titlescreen
ret
; used mostly for menus and the Oak intro
-SetPal_Generic: ; 71f8b (1c:5f8b)
+SetPal_Generic:
ld hl, PalPacket_Generic
ld de, BlkPacket_WholeScreen
ret
-SetPal_NidorinoIntro: ; 71f92 (1c:5f92)
+SetPal_NidorinoIntro:
ld hl, PalPacket_NidorinoIntro
ld de, BlkPacket_NidorinoIntro
ret
-SetPal_GameFreakIntro: ; 71f99 (1c:5f99)
+SetPal_GameFreakIntro:
ld hl, PalPacket_GameFreakIntro
ld de, BlkPacket_GameFreakIntro
ld a, SET_PAL_GENERIC
@@ -142,7 +142,7 @@ SetPal_GameFreakIntro: ; 71f99 (1c:5f99)
ret
; uses PalPacket_Empty to build a packet based on the current map
-SetPal_Overworld: ; 71fa5 (1c:5fa5)
+SetPal_Overworld:
ld hl, PalPacket_Empty
ld de, wPalPacket
ld bc, $10
@@ -181,26 +181,22 @@ SetPal_Overworld: ; 71fa5 (1c:5fa5)
ld a, SET_PAL_OVERWORLD
ld [wDefaultPaletteCommand], a
ret
-
.PokemonTowerOrAgatha
ld a, PAL_GREYMON - 1
jr .town
-
.caveOrBruno
ld a, PAL_CAVE - 1
jr .town
-
.Lorelei
xor a
jr .town
-
.trade_center_colosseum
ld a, PAL_GREYMON - 1
jr .town
; used when a Pokemon is the only thing on the screen
; such as evolution, trading and the Hall of Fame
-SetPal_PokemonWholeScreen: ; 72001 (1c:6001)
+SetPal_PokemonWholeScreen:
push bc
ld hl, PalPacket_Empty
ld de, wPalPacket
@@ -219,7 +215,7 @@ SetPal_PokemonWholeScreen: ; 72001 (1c:6001)
ld de, BlkPacket_WholeScreen
ret
-SetPal_TrainerCard: ; 72025 (1c:6025)
+SetPal_TrainerCard:
ld hl, BlkPacket_TrainerCard
ld de, wTrainerCardBlkPacket
ld bc, $40
@@ -259,17 +255,17 @@ SetPal_TrainerCard: ; 72025 (1c:6025)
ld de, wTrainerCardBlkPacket
ret
-SendUnknownPalPacket_7205d:: ; 7205d (1c:605d)
+SendUnknownPalPacket_7205d::
ld hl, UnknownPalPacket_72811
ld de, BlkPacket_WholeScreen
ret
-SendUnknownPalPacket_72064:: ; 72064 (1c:6064)
+SendUnknownPalPacket_72064::
ld hl, UnknownPalPacket_72821
ld de, UnknownPacket_72751
ret
-SetPalFunctions: ; 7206b (1c:606b)
+SetPalFunctions:
dw SetPal_Black
dw SetPal_Battle
dw SetPal_TownMap
@@ -289,7 +285,7 @@ SetPalFunctions: ; 7206b (1c:606b)
; The length of the blk data of each badge on the Trainer Card.
; The Rainbow Badge has 3 entries because of its many colors.
-BadgeBlkDataLengths: ; 7208b (1c:608b)
+BadgeBlkDataLengths:
db 6 ; Boulder Badge
db 6 ; Cascade Badge
db 6 ; Thunder Badge
@@ -299,9 +295,9 @@ BadgeBlkDataLengths: ; 7208b (1c:608b)
db 6 ; Volcano Badge
db 6 ; Earth Badge
-DeterminePaletteID: ; 72093 (1c:6093)
+DeterminePaletteID:
ld a, [hl]
-DeterminePaletteIDOutOfBattle: ; 72094 (1c:6094)
+DeterminePaletteIDOutOfBattle:
ld [wd11e], a
and a ; is the mon index 0?
jr z, .skipDexNumConversion
@@ -317,7 +313,7 @@ DeterminePaletteIDOutOfBattle: ; 72094 (1c:6094)
ld a, [hl]
ret
-YellowIntroPaletteAction:: ; 720ad (1c:60ad)
+YellowIntroPaletteAction::
ld a, e
and a
jr nz, .asm_720bd
@@ -347,7 +343,7 @@ YellowIntroPaletteAction:: ; 720ad (1c:60ad)
call TransferCurBGPData
ret
-LoadOverworldPikachuFrontpicPalettes:: ; 720e3 (1c:60e3)
+LoadOverworldPikachuFrontpicPalettes::
ld hl, PalPacket_Empty
ld de, wPalPacket
ld bc, $10
@@ -395,7 +391,7 @@ LoadOverworldPikachuFrontpicPalettes:: ; 720e3 (1c:60e3)
.okay_2
ret
-GetPal_Pikachu:: ; 7213b (1c:613b)
+GetPal_Pikachu::
; similar to SetPal_Overworld
ld a, [wCurMapTileset]
cp CEMETERY
@@ -443,13 +439,13 @@ GetPal_Pikachu:: ; 7213b (1c:613b)
ld a, PAL_GREYMON - 1
jr .town
-InitPartyMenuBlkPacket: ; 7217f (1c:617f)
+InitPartyMenuBlkPacket:
ld hl, BlkPacket_PartyMenu
ld de, wPartyMenuBlkPacket
ld bc, $30
jp CopyData
-UpdatePartyMenuBlkPacket: ; 7218b (1c:618b)
+UpdatePartyMenuBlkPacket:
; Update the blk packet with the palette of the HP bar that is
; specified in [wWhichPartyMenuHPBar].
ld hl, wPartyMenuHPBarColors
@@ -477,7 +473,7 @@ UpdatePartyMenuBlkPacket: ; 7218b (1c:618b)
ld [hl], e
ret
-SendSGBPacket: ; 721b4 (1c:61b4)
+SendSGBPacket:
ld a, 1
ld [hDisableJoypadPolling], a ; don't poll joypad while sending packet
call _SendSGBPacket
@@ -485,7 +481,7 @@ SendSGBPacket: ; 721b4 (1c:61b4)
ld [hDisableJoypadPolling], a
ret
-_SendSGBPacket: ; 71feb (1c:5feb)
+_SendSGBPacket:
;check number of packets
ld a, [hl]
and a, $07
@@ -535,9 +531,8 @@ _SendSGBPacket: ; 71feb (1c:5feb)
; set P14=HIGH, P15=HIGH
ld a, $30
ld [rJOYP], a
- call Wait7000
; wait for about 70000 cycles
-; call Wait7000
+ call Wait7000
; restore (previously pushed) number of packets
pop bc
dec b
@@ -546,7 +541,7 @@ _SendSGBPacket: ; 71feb (1c:5feb)
; else send 16 more bytes
jr .loop2
-LoadSGB: ; 721f8 (1c:61f8)
+LoadSGB:
xor a
ld [wOnSGB], a
call CheckSGB
@@ -583,7 +578,7 @@ LoadSGB: ; 721f8 (1c:61f8)
ld hl, MaskEnCancelPacket
jp SendSGBPacket
-PrepareSuperNintendoVRAMTransfer: ; 72247 (1c:6247)
+PrepareSuperNintendoVRAMTransfer:
ld hl, .packetPointers
ld c, 9
.loop
@@ -612,7 +607,8 @@ PrepareSuperNintendoVRAMTransfer: ; 72247 (1c:6247)
dw DataSnd_72901
dw DataSnd_72911
-CheckSGB: ; 7226d (1c:626d)
+CheckSGB:
+; Returns whether the game is running on an SGB in carry.
ld hl, MltReq2Packet
call SendSGBPacket
call Wait7000
@@ -659,12 +655,12 @@ CheckSGB: ; 7226d (1c:626d)
scf
ret
-SendMltReq1Packet: ; 722ce (1c:62ce)
+SendMltReq1Packet:
ld hl, MltReq1Packet
call SendSGBPacket
jp Wait7000
-CopyGfxToSuperNintendoVRAM: ; 722d7 (1c:62d7)
+CopyGfxToSuperNintendoVRAM:
di
push de
call DisableLCD
@@ -705,7 +701,7 @@ CopyGfxToSuperNintendoVRAM: ; 722d7 (1c:62d7)
ei
ret
-Wait7000: ; 7231c (1c:631c)
+Wait7000:
; Each loop takes 9 cycles so this routine actually waits 63000 cycles.
ld de, 7000
.loop
@@ -718,7 +714,7 @@ Wait7000: ; 7231c (1c:631c)
jr nz, .loop
ret
-SendSGBPackets: ; 72328 (1c:6328)
+SendSGBPackets:
ld a, [hGBC]
and a
jr z, .notGBC
@@ -737,7 +733,7 @@ SendSGBPackets: ; 72328 (1c:6328)
pop hl
jp SendSGBPacket
-InitGBCPalettes: ; 72346 (1c:6346)
+InitGBCPalettes:
ld a, [hl]
and $f8
cp $20
@@ -785,7 +781,7 @@ index = index + 1
ret
-GetGBCBasePalAddress:: ; 723fe (1c:63fe)
+GetGBCBasePalAddress::
; Input: a = palette ID
; Output: de = palette address
push hl
@@ -804,7 +800,7 @@ GetGBCBasePalAddress:: ; 723fe (1c:63fe)
pop hl
ret
-DMGPalToGBCPal:: ; 7240f (1c:640f)
+DMGPalToGBCPal::
; Populate wGBCPal with colors from a base palette, selected using one of the
; DMG palette registers.
; Input:
@@ -845,7 +841,7 @@ color_index = color_index + 1
ENDR
ret
-.GetColorAddress: ; 7246a (1c:646a)
+.GetColorAddress:
add a
ld l, a
xor a
@@ -853,7 +849,7 @@ color_index = color_index + 1
add hl, de
ret
-TransferCurBGPData:: ; 72470 (1c:6470)
+TransferCurBGPData::
push de
add a
add a
@@ -878,7 +874,7 @@ TransferCurBGPData:: ; 72470 (1c:6470)
pop de
ret
-BufferBGPPal:: ; 724a2 (1c:64a2)
+BufferBGPPal::
; Copy wGBCPal to palette a in wBGPPalsBuffer.
push de
add a
@@ -900,7 +896,7 @@ BufferBGPPal:: ; 724a2 (1c:64a2)
pop de
ret
-TransferBGPPals:: ; 724ba (1c:64ba)
+TransferBGPPals::
; Transfer the buffered BG palettes.
ld a, [rLCDC]
and rLCDC_ENABLE_MASK
@@ -915,7 +911,7 @@ TransferBGPPals:: ; 724ba (1c:64ba)
ei
ret
-.DoTransfer: ; 724cc (1c:64cc)
+.DoTransfer:
xor a
or $80 ; auto-increment
ld [rBGPI], a
@@ -929,7 +925,7 @@ TransferBGPPals:: ; 724ba (1c:64ba)
jr nz, .loop
ret
-TransferCurOBPData: ; 724df (1c:64df)
+TransferCurOBPData:
push de
add a
add a
@@ -954,7 +950,7 @@ TransferCurOBPData: ; 724df (1c:64df)
pop de
ret
-TransferPalColorLCDEnabled: ; 72511 (1c:6511)
+TransferPalColorLCDEnabled:
; Transfer a palette color while the LCD is enabled.
; In case we're already in H-blank or V-blank, wait for it to end. This is a
@@ -970,7 +966,7 @@ TransferPalColorLCDEnabled: ; 72511 (1c:6511)
jr nz, .notInBlankingPeriod
; fall through
-TransferPalColorLCDDisabled: ; 7251b (1c:651b)
+TransferPalColorLCDDisabled:
; Transfer a palette color while the LCD is disabled.
ld a, [hli]
ld [de], a
@@ -978,13 +974,13 @@ TransferPalColorLCDDisabled: ; 7251b (1c:651b)
ld [de], a
ret
-_UpdateGBCPal_BGP_CheckDMG:: ; 72520 (1c:6520)
+_UpdateGBCPal_BGP_CheckDMG::
ld a, [hGBC]
and a
ret z
; fall through
-_UpdateGBCPal_BGP:: ; 72524 (1c:6524)
+_UpdateGBCPal_BGP::
index = 0
REPT NUM_ACTIVE_PALS
@@ -1003,7 +999,7 @@ index = index + 1
call TransferBGPPals
ret
-_UpdateGBCPal_OBP:: ; 7256c (1c:656c)
+_UpdateGBCPal_OBP::
index = 0
REPT NUM_ACTIVE_PALS
@@ -1033,7 +1029,7 @@ index = index + 1
ret
-TranslatePalPacketToBGMapAttributes:: ; 725be (1c:65be)
+TranslatePalPacketToBGMapAttributes::
; translate the SGB pal packets into something usable for the GBC
push hl
pop de
@@ -1064,7 +1060,7 @@ TranslatePalPacketToBGMapAttributes:: ; 725be (1c:65be)
callba LoadBGMapAttributes
ret
-PalPacketPointers:: ; 725e2 (1c:65e2)
+PalPacketPointers::
db (palPacketPointersEnd - palPacketPointers) / 2
palPacketPointers
dw BlkPacket_WholeScreen
@@ -1081,7 +1077,7 @@ palPacketPointers
dw UnknownPacket_72751
palPacketPointersEnd
-CopySGBBorderTiles: ; 725fb (1c:65fb)
+CopySGBBorderTiles:
; SGB tile data is stored in a 4BPP planar format.
; Each tile is 32 bytes. The first 16 bytes contain bit planes 1 and 2, while
; the second 16 bytes contain bit planes 3 and 4.
@@ -1117,4 +1113,4 @@ INCLUDE "data/mon_palettes.asm"
INCLUDE "data/super_palettes.asm"
-INCLUDE "data/sgb_border.asm" \ No newline at end of file
+INCLUDE "data/sgb_border.asm"
diff --git a/engine/pikachu_emotions.asm b/engine/pikachu_emotions.asm
index 9040e612..8702bc3f 100755
--- a/engine/pikachu_emotions.asm
+++ b/engine/pikachu_emotions.asm
@@ -1,4 +1,4 @@
-IsPlayerTalkingToPikachu:: ; fcf0c (3f:4f0c)
+IsPlayerTalkingToPikachu:
ld a, [wd436]
and a
ret z
@@ -11,7 +11,7 @@ IsPlayerTalkingToPikachu:: ; fcf0c (3f:4f0c)
ld [wd436], a
ret
-InitializePikachuTextID: ; fcf20 (3f:4f20)
+InitializePikachuTextID:
ld a, $d4 ; display
ld [hSpriteIndexOrTextID], a
xor a
@@ -23,9 +23,9 @@ InitializePikachuTextID: ; fcf20 (3f:4f20)
ld [wAutoTextBoxDrawingControl], a
ret
-DoStarterPikachuEmotions: ; fcf35 (3f:4f35)
+DoStarterPikachuEmotions:
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
add hl, de
ld e, [hl]
@@ -37,7 +37,7 @@ DoStarterPikachuEmotions: ; fcf35 (3f:4f35)
cp $ff
jr z, .done
ld c, a
- ld b, $0
+ ld b, 0
ld hl, StarterPikachuEmotionsJumptable
add hl, bc
add hl, bc
@@ -46,10 +46,11 @@ DoStarterPikachuEmotions: ; fcf35 (3f:4f35)
ld l, a
call JumpToAddress
jr .loop
+
.done
ret
-StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54)
+StarterPikachuEmotionsJumptable:
dw StarterPikachuEmotionCommand_nop ; 0
dw StarterPikachuEmotionCommand_text ; 1
dw StarterPikachuEmotionCommand_pcm ; 2
@@ -62,11 +63,11 @@ StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54)
dw StarterPikachuEmotionCommand_9 ; 9
dw StarterPikachuEmotionCommand_nop3 ; a
-StarterPikachuEmotionCommand_nop: ; fcf6a (3f:4f6a)
-StarterPikachuEmotionCommand_nop3: ; fcf6a (3f:4f6a)
+StarterPikachuEmotionCommand_nop:
+StarterPikachuEmotionCommand_nop3:
ret
-StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b)
+StarterPikachuEmotionCommand_text:
ld a, [de]
ld l, a
inc de
@@ -78,7 +79,7 @@ StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b)
pop de
ret
-StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77)
+StarterPikachuEmotionCommand_pcm:
ld a, [de]
inc de
push de
@@ -88,13 +89,13 @@ StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77)
pop de
ret
-PlayPikachuSoundClip_: ; fcf81 (3f:4f81)
+PlayPikachuSoundClip_:
cp $ff
ret z
callab PlayPikachuSoundClip
ret
-StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d)
+StarterPikachuEmotionCommand_emote:
ld a, [wUpdateSpritesEnabled]
push af
ld a, $ff
@@ -108,14 +109,14 @@ StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d)
ld [wUpdateSpritesEnabled], a
ret
-ShowPikachuEmoteBubble: ; fcfa2 (3f:4fa2)
+ShowPikachuEmoteBubble:
ld [wWhichEmotionBubble], a
- ld a, $f
+ ld a, $f ; Pikachu
ld [wEmotionBubbleSpriteIndex], a
predef EmotionBubble
ret
-StarterPikachuEmotionCommand_movement: ; fcfb0 (3f:4fb0)
+StarterPikachuEmotionCommand_movement:
ld a, [de]
inc de
ld l, a
@@ -128,7 +129,7 @@ StarterPikachuEmotionCommand_movement: ; fcfb0 (3f:4fb0)
pop de
ret
-StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe)
+StarterPikachuEmotionCommand_delay:
ld a, [de]
inc de
push de
@@ -137,13 +138,13 @@ StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe)
pop de
ret
-StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7)
+StarterPikachuEmotionCommand_subcmd:
ld a, [de]
inc de
push de
ld e, a
- ld d, $0
- ld hl, Jumptable_fcfda
+ ld d, 0
+ ld hl, .Subcommands
add hl, de
add hl, de
ld a, [hli]
@@ -153,7 +154,7 @@ StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7)
pop de
ret
-Jumptable_fcfda:
+.Subcommands:
dw LoadPikachuSpriteIntoVRAM
dw LoadFontTilePatterns
dw Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3
@@ -162,94 +163,98 @@ Jumptable_fcfda:
dw PikachuFanClubCheck
dw PikachuBillsHouseCheck
-StarterPikachuEmotionCommand_nop2: ; fcfe8 (3f:4fe8)
+StarterPikachuEmotionCommand_nop2:
ret
-StarterPikachuEmotionCommand_9: ; fcfe9 (3f:4fe9)
+StarterPikachuEmotionCommand_9:
push de
call StarterPikachuEmotionCommand_turnawayfromplayer
call UpdateSprites
pop de
ret
-StarterPikachuEmotionCommand_turnawayfromplayer: ; fcff2 (3f:4ff2)
+StarterPikachuEmotionCommand_turnawayfromplayer:
ld a, [wPlayerFacingDirection]
xor $4
ld [wPikachuFacingDirection], a
ret
-DeletedFunction_fcffb: ; fcffb (3f:4ffb)
+DeletedFunction_fcffb:
; Inexplicably empty.
rept 5
nop
endr
ret
-Func_fd001:: ; fd001 (3f:5001)
+PlaySpecificPikachuEmotion:
ld a, e
jr load_expression
-Func_fd004:: ; fd004 (3f:5004)
+TalkToPikachu:
call MapSpecificPikachuExpression
jr c, load_expression
call GetPikaPicAnimationScriptIndex
call DeletedFunction_fcffb
-load_expression: ; fd00f (3f:500f)
+load_expression:
ld [wExpressionNumber], a
ld hl, PikachuEmotionTable
call DoStarterPikachuEmotions
ret
-PikachuEmotionTable: ; fd019 (3f:4019)
- dw PikachuEmotion0_fd115
- dw PikachuEmotion1_fd141
- dw PikachuEmotion2_fd116
- dw PikachuEmotion3_fd160
- dw PikachuEmotion4_fd136
- dw PikachuEmotion5_fd14d
- dw PikachuEmotion6_fd153
- dw PikachuEmotion7_fd128
- dw PikachuEmotion8_fd147
- dw PikachuEmotion9_fd166
- dw PikachuEmotion10_fd11e
- dw PikachuEmotion11_fd173
- dw PikachuEmotion12_fd17a
- dw PikachuEmotion13_fd180
- dw PikachuEmotion14_fd189
- dw PikachuEmotion15_fd191
- dw PikachuEmotion16_fd197
- dw PikachuEmotion17_fd19d
- dw PikachuEmotion18_fd1a3
- dw PikachuEmotion19_fd1a9
- dw PikachuEmotion20_fd1b1
- dw PikachuEmotion21_fd1b9 ; used a fishing rod
- dw PikachuEmotion22_fd1c1
- dw PikachuEmotion23_fd1c7
- dw PikachuEmotion24_fd1cf
- dw PikachuEmotion25_fd1d7
- dw PikachuEmotion26_fd1df ; wake up pikachu in pewter pokemon center
- dw PikachuEmotion27_fd1eb
- dw PikachuEmotion28_fd1f1
- dw PikachuEmotion29_fd1f7
- dw PikachuEmotion30_fd1fc
- dw PikachuEmotion31_fd20a
- dw PikachuEmotion32_fd213
- dw PikachuEmotion33_fd05d
+PikachuEmotionTable:
+pikaemotion_def: MACRO
+\1_id: dw \1
+ endm
+
+ pikaemotion_def PikachuEmotion0
+ pikaemotion_def PikachuEmotion1
+ pikaemotion_def PikachuEmotion2
+ pikaemotion_def PikachuEmotion3
+ pikaemotion_def PikachuEmotion4
+ pikaemotion_def PikachuEmotion5
+ pikaemotion_def PikachuEmotion6
+ pikaemotion_def PikachuEmotion7
+ pikaemotion_def PikachuEmotion8
+ pikaemotion_def PikachuEmotion9
+ pikaemotion_def PikachuEmotion10
+ pikaemotion_def PikachuEmotion11
+ pikaemotion_def PikachuEmotion12
+ pikaemotion_def PikachuEmotion13
+ pikaemotion_def PikachuEmotion14
+ pikaemotion_def PikachuEmotion15
+ pikaemotion_def PikachuEmotion16
+ pikaemotion_def PikachuEmotion17
+ pikaemotion_def PikachuEmotion18
+ pikaemotion_def PikachuEmotion19
+ pikaemotion_def PikachuEmotion20
+ pikaemotion_def PikachuEmotion21 ; used a fishing rod
+ pikaemotion_def PikachuEmotion22
+ pikaemotion_def PikachuEmotion23
+ pikaemotion_def PikachuEmotion24
+ pikaemotion_def PikachuEmotion25
+ pikaemotion_def PikachuEmotion26 ; wake up pikachu in pewter pokemon center
+ pikaemotion_def PikachuEmotion27
+ pikaemotion_def PikachuEmotion28
+ pikaemotion_def PikachuEmotion29
+ pikaemotion_def PikachuEmotion30
+ pikaemotion_def PikachuEmotion31
+ pikaemotion_def PikachuEmotion32
+ pikaemotion_def PikachuEmotion33
-PikachuEmotion33_fd05d: ; fd05d (3f:505d)
+PikachuEmotion33:
db $ff
-MapSpecificPikachuExpression: ; fd05e (3f:505e)
+MapSpecificPikachuExpression:
ld a, [wCurMap]
cp POKEMON_FAN_CLUB
jr nz, .notFanClub
ld hl, wd492
bit 7, [hl]
- ld a, $1d
- jr z, .set_carry
+ ldpikaemotion a, PikachuEmotion29
+ jr z, .play_emotion
call CheckPikachuFollowingPlayer
- ld a, $1e
- jr nz, .set_carry
+ ldpikaemotion a, PikachuEmotion30
+ jr nz, .play_emotion
jr .check_pikachu_status
.notFanClub
@@ -257,60 +262,64 @@ MapSpecificPikachuExpression: ; fd05e (3f:505e)
cp PEWTER_POKECENTER
jr nz, .notPewterPokecenter
call CheckPikachuFollowingPlayer
- ld a, $1a
- jr nz, .set_carry
+ ldpikaemotion a, PikachuEmotion26
+ jr nz, .play_emotion
jr .check_pikachu_status
.notPewterPokecenter
callab Func_f24ae
ld a, e
cp $ff
- jr nz, .set_carry
+ jr nz, .play_emotion
jr .check_pikachu_status ; useless
.check_pikachu_status
call IsPlayerPikachuAsleepInParty
- ld a, $b
- jr c, .set_carry
+ ldpikaemotion a, PikachuEmotion11
+ jr c, .play_emotion
callab CheckPikachuFaintedOrStatused ; same bank
- ld a, $1c
- jr c, .set_carry
+ ldpikaemotion a, PikachuEmotion28
+ jr c, .play_emotion
ld a, [wCurMap]
cp POKEMONTOWER_1
jr c, .notInLavenderTower
cp POKEMONTOWER_7 + 1
- ld a, $16
- jr c, .set_carry
+ ldpikaemotion a, PikachuEmotion22
+ jr c, .play_emotion
.notInLavenderTower
ld a, [wd49c]
and a
- jr z, .no_carry
+ jr z, .mood_based_emotion
dec a
ld c, a
ld b, $0
- ld hl, Pointer_fd0cb
+ ld hl, .Emotions
add hl, bc
ld a, [hl]
- jr .set_carry
+ jr .play_emotion
-.no_carry
+.mood_based_emotion
and a
ret
-.set_carry
+.play_emotion
scf
ret
-Pointer_fd0cb:
- db $12, $15, $17, $18, $19
+.Emotions:
+ dpikaemotion PikachuEmotion18
+ dpikaemotion PikachuEmotion21
+ dpikaemotion PikachuEmotion23
+ dpikaemotion PikachuEmotion24
+ dpikaemotion PikachuEmotion25
-IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0)
+IsPlayerPikachuAsleepInParty:
xor a
ld [wWhichPokemon], a
.loop
ld a, [wWhichPokemon]
ld c, a
- ld b, $0
+ ld b, 0
ld hl, wPartySpecies
add hl, bc
ld a, [hl]
@@ -328,6 +337,7 @@ IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0)
and SLP
jr z, .done
jr .curMonSleepingPikachu
+
.curMonNotStarterPikachu
ld a, [wWhichPokemon]
cp PARTY_LENGTH - 1
@@ -335,75 +345,77 @@ IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0)
inc a
ld [wWhichPokemon], a
jr .loop
+
.curMonSleepingPikachu
scf
ret
+
.done
and a
ret
INCLUDE "data/pikachu_emotions.asm"
-Func_fd252: ; fd252 (3f:5252)
+PikachuWalksToNurseJoy:
ld a, $40
ld [h_0xFFFC], a
call LoadPikachuSpriteIntoVRAM
- call Func_fd266
+ call .GetMovementData
and a
- jr z, .asm_fd262
+ jr z, .skip
call ApplyPikachuMovementData
-.asm_fd262
+.skip
xor a
ld [h_0xFFFC], a
ret
-Func_fd266:
- ld a, [wSpriteStateData2 + 15 * 16 + 4]
+.GetMovementData:
+ ld a, [wPikachuMapY]
ld e, a
- ld a, [wSpriteStateData2 + 15 * 16 + 5]
+ ld a, [wPikachuMapX]
ld d, a
ld a, [wYCoord]
add 4
cp e
- jr z, .asm_fd280
- jr nc, .asm_fd27e
- ld hl, Data_fd294
+ jr z, .pikachu_at_same_y_as_player
+ jr nc, .pikachu_above_player
+ ld hl, .PikaMovementData1
ld a, 1
ret
-.asm_fd27e
+.pikachu_above_player
xor a
ret
-.asm_fd280
+.pikachu_at_same_y_as_player
ld a, [wXCoord]
add 4
cp d
- jr c, .asm_fd28e
- ld hl, Data_fd299
+ jr c, .pikachu_to_right_of_player
+ ld hl, .PikaMovementData2
ld a, 2
ret
-.asm_fd28e
- ld hl, Data_fd29d
+.pikachu_to_right_of_player
+ ld hl, .PikaMovementData3
ld a, 3
ret
-Data_fd294:
- db $00
- db $36
- db $2b
- db $34
- db $3f
+.PikaMovementData1:
+ db $00 ; init
+ db $36 ; look up
+ db $2b ; walk up left
+ db $34 ; hop up right
+ db $3f ; ret
-Data_fd299:
- db $00
- db $36
- db $34
- db $3f
+.PikaMovementData2:
+ db $00 ; init
+ db $36 ; look up
+ db $34 ; hop up right
+ db $3f ; ret
-Data_fd29d:
- db $00
- db $36
- db $33
- db $3f
+.PikaMovementData3:
+ db $00 ; init
+ db $36 ; look up
+ db $33 ; hop up left
+ db $3f ; ret
diff --git a/engine/pikachu_follow.asm b/engine/pikachu_follow.asm
index a715b0a3..b5791919 100755
--- a/engine/pikachu_follow.asm
+++ b/engine/pikachu_follow.asm
@@ -1,4 +1,4 @@
-Func_fc4dd:: ; fc4dd (3f:44dd)
+ShouldPikachuSpawn::
; possibly to test if pika should be out?
ld a, [wPikachuOverworldStateFlags]
bit 5, a
@@ -18,7 +18,7 @@ Func_fc4dd:: ; fc4dd (3f:44dd)
and a
ret
-Func_fc4fa:: ; fc4fa (3f:44fa)
+SchedulePikachuSpawnForAfterText::
ld hl, wPikachuOverworldStateFlags
bit 4, [hl]
res 4, [hl]
@@ -39,7 +39,7 @@ Func_fc4fa:: ; fc4fa (3f:44fa)
ld [wPikachuFacingDirection], a
ret
-ClearPikachuSpriteStateData:: ; fc523 (3f:4523)
+ClearPikachuSpriteStateData::
ld hl, wPikachuPictureID
call .clear
ld hl, wPikachuSpriteStateData2
@@ -49,14 +49,14 @@ ClearPikachuSpriteStateData:: ; fc523 (3f:4523)
call FillMemory
ret
-Func_fc534:: ; fc534 (3f:4534)
+CalculatePikachuSpawnCoordsAndFacing::
call CalculatePikachuPlacementCoords
call CalculatePikachuFacingDirection
xor a
ld [wPikachuSpawnState], a
ret
-CalculatePikachuPlacementCoords:: ; fc53f (3f:453f)
+CalculatePikachuPlacementCoords::
ld bc, wPikachuPictureID
ld a, [wYCoord]
add $4
@@ -145,7 +145,7 @@ CalculatePikachuPlacementCoords:: ; fc53f (3f:453f)
pop hl
ret
-CalculatePikachuFacingDirection:: ; fc5bc (3f:45bc)
+CalculatePikachuFacingDirection::
ld a, $49
ld [wPikachuPictureID], a
ld a, $ff
@@ -182,7 +182,7 @@ CalculatePikachuFacingDirection:: ; fc5bc (3f:45bc)
ld [wPikachuFacingDirection], a
ret
-CalculatePikachuSpawnState1:: ; fc5fa (3f:45fa)
+CalculatePikachuSpawnState1::
ld a, [wCurMap]
cp OAKS_LAB
jr z, .oaks_lab
@@ -234,7 +234,7 @@ CalculatePikachuSpawnState1:: ; fc5fa (3f:45fa)
ld [wPikachuSpawnState], a
ret
-Pointer_fc64b:: ; fc64b (3f:464b)
+Pointer_fc64b::
db VICTORY_ROAD_2
db ROUTE_7_GATE
db ROUTE_8_GATE
@@ -244,7 +244,7 @@ Pointer_fc64b:: ; fc64b (3f:464b)
db ROUTE_11_GATE_1F
db $ff
-Pointer_fc653:: ; fc653 (3f:4653)
+Pointer_fc653::
db VIRIDIAN_FOREST_EXIT
db CERULEAN_HOUSE_2
db TRASHED_HOUSE
@@ -254,7 +254,7 @@ Pointer_fc653:: ; fc653 (3f:4653)
db FUCHSIA_HOUSE_3
db $ff
-CalculatePikachuSpawnState2:: ; fc65b (3f:465b)
+CalculatePikachuSpawnState2::
ld a, [wCurMap]
cp VIRIDIAN_FOREST_EXIT
jr z, .viridian_forest_exit
@@ -288,7 +288,7 @@ CalculatePikachuSpawnState2:: ; fc65b (3f:465b)
ld [wPikachuSpawnState], a
ret
-Pointer_fc68e:: ; fc68e (3f:468e)
+Pointer_fc68e::
db VIRIDIAN_FOREST
db SAFARI_ZONE_REST_HOUSE_1
db SAFARI_ZONE_REST_HOUSE_2
@@ -302,7 +302,7 @@ Pointer_fc68e:: ; fc68e (3f:468e)
db CINNABAR_LAB_4
db $ff
-CalculatePikachuSpawnState3:: ; fc69a (3f:469a)
+CalculatePikachuSpawnState3::
ld a, [wCurMap]
cp ROUTE_22_GATE
jr z, .asm_fc6a7
@@ -334,23 +334,23 @@ CalculatePikachuSpawnState3:: ; fc69a (3f:469a)
ld [wPikachuSpawnState], a
ret
-SetPikachuOverworldStateFlag2:: ; fc6c5 (3f:46c5)
+SetPikachuOverworldStateFlag2::
push hl
ld hl, wPikachuOverworldStateFlags
set 2, [hl]
pop hl
ret
-ResetPikachuOverworldStateFlag2:: ; fc6cd (3f:46cd)
+ResetPikachuOverworldStateFlag2::
push hl
ld hl, wPikachuOverworldStateFlags
res 2, [hl]
pop hl
ret
-SpawnPikachu_:: ; fc6d5 (3f:46d5)
+SpawnPikachu_::
call ResetPikachuOverworldStateFlag2
- call Func_fc727
+ call TrySpawnPikachu
ret nc
push bc
@@ -358,16 +358,16 @@ SpawnPikachu_:: ; fc6d5 (3f:46d5)
pop bc
ret c
- ld bc, wPikachuPictureID
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld bc, wPikachuSpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
bit 7, [hl]
- jp nz, asm_fc745
+ jp nz, Func_fc745
ld a, [wFontLoaded]
bit 0, a
- jp nz, asm_fc76a
+ jp nz, Func_fc76a
call CheckPikachuFollowingPlayer
- jp nz, asm_fc76a
+ jp nz, Func_fc76a
ld a, [hl]
and $7f
cp $a
@@ -384,7 +384,7 @@ SpawnPikachu_:: ; fc6d5 (3f:46d5)
ld l, a
jp hl
-PointerTable_fc710: ; fc710 (3f:4710)
+PointerTable_fc710:
dw Func_fc793
dw Func_fc7aa
dw Func_fc803
@@ -395,20 +395,20 @@ PointerTable_fc710: ; fc710 (3f:4710)
dw asm_fc904
dw asm_fc937
dw asm_fc969
- dw Func_fc726
+ dw .nop
-Func_fc726: ; fc726 (3f:4726)
+.nop:
ret
-Func_fc727: ; fc727 (3f:4727)
- call Func_fc4dd
+TrySpawnPikachu:
+ call ShouldPikachuSpawn
jr nc, .dont_spawn
ld a, [wPikachuMovementStatus]
and a
jr nz, .already_spawned
push bc
push hl
- call Func_fc534
+ call CalculatePikachuSpawnCoordsAndFacing
pop hl
pop bc
.already_spawned
@@ -423,64 +423,65 @@ Func_fc727: ; fc727 (3f:4727)
xor a
ret
-asm_fc745: ; fc745 (3f:4745)
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+Func_fc745:
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
res 7, [hl]
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
call CheckPikachuFollowingPlayer
- jr nz, .asm_fc75f
+ jr nz, .okay
+ ; Have Pikachu face in the opposite direction of you
ld a, [wPlayerFacingDirection]
xor $4
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
-.asm_fc75f
+.okay
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
call UpdatePikachuWalkingSprite
ret
-asm_fc76a: ; fc76a (3f:476a)
+Func_fc76a:
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
call UpdatePikachuWalkingSprite
call Func_fc82e
- jr c, .asm_fc783
+ jr c, .skip
push bc
callab InitializeSpriteScreenPosition
pop bc
-.asm_fc783
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+.skip
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $0
call RefreshPikachuFollow
ret
-Func_fc793: ; fc793 (3f:4793)
+Func_fc793:
call RefreshPikachuFollow
push bc
callab InitializeSpriteScreenPosition
pop bc
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
dec hl
ld [hl], $1
ret
-Func_fc7aa: ; fc7aa (3f:47aa)
+Func_fc7aa:
call Func_fcc92
jp c, Func_fc803
dec a
@@ -494,12 +495,12 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld e, l
ld a, [de]
inc de
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
ld a, [de]
inc de
- ld hl, wSprite01XStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuXStepVector - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
dec hl
@@ -508,7 +509,7 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld [hl], a
inc de
ld a, [de]
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
cp $4
@@ -517,7 +518,7 @@ Func_fc7aa: ; fc7aa (3f:47aa)
jp c, FastPikachuFollow
jp NormalPikachuFollow
-Pointer_fc7e3: ; fc7e3 (3f:47e3)
+Pointer_fc7e3:
db 0, 0
db 1, 3
db 4, 0
@@ -535,10 +536,10 @@ Pointer_fc7e3: ; fc7e3 (3f:47e3)
db 12, 1
db 0, 4
-Func_fc803: ; fc803 (3f:4803)
+Func_fc803:
call Func_fcae2
ret c
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
jr nz, .asm_fc823
@@ -550,35 +551,35 @@ Func_fc803: ; fc803 (3f:4803)
ld [hl], $20
call Random
and $c
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
.asm_fc823
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
call UpdatePikachuWalkingSprite
ret
-Func_fc82e: ; fc82e (3f:482e)
+Func_fc82e:
ld a, [wWalkCounter]
and a
ret z
scf
ret
-Func_fc835: ; fc835 (3f:4835)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+Func_fc835:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $10
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
-Func_fc842: ; fc842 (3f:4842)
+Func_fc842:
ld hl, $0
push af
call Random
@@ -595,30 +596,30 @@ Func_fc842: ; fc842 (3f:4842)
pop af
jp hl
-PointerTable_fc85a: ; fc85a (3f:485a)
+PointerTable_fc85a:
dw Func_fc862
dw Func_fc8f8
dw Func_fc92b
dw Func_fc95d
-Func_fc862: ; fc862 (3f:4862)
+Func_fc862:
dec a
add a
add a
and $c
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $6
xor a
ld [wd432], a
ld [wd433], a
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $11
-asm_fc87f: ; fc87f (3f:487f)
+asm_fc87f:
ld a, [wd432]
ld e, a
ld a, [wd433]
@@ -626,7 +627,7 @@ asm_fc87f: ; fc87f (3f:487f)
call Func_fc82e
jr c, Func_fc8c7
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -636,7 +637,7 @@ asm_fc87f: ; fc87f (3f:487f)
ld a, [hl]
sub d
ld d, a
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -654,20 +655,20 @@ asm_fc87f: ; fc87f (3f:487f)
ld [wd433], a
add d
ld d, a
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld [hl], e
inc hl
inc hl
ld [hl], d
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
-Func_fc8c7: ; fc8c7 (3f:48c7)
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+Func_fc8c7:
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -679,7 +680,7 @@ Func_fc8c7: ; fc8c7 (3f:48c7)
ld [hl], a
jp Func_fc835
-Pointer_fc8d6: ; fc8d6 (3f:48d6)
+Pointer_fc8d6:
db 0, 0
db -2, 1
db -4, 2
@@ -698,18 +699,18 @@ Pointer_fc8d6: ; fc8d6 (3f:48d6)
db -2, -1
db 0, 0
-Func_fc8f8: ; fc8f8 (3f:48f8)
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+Func_fc8f8:
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $7
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $30
-asm_fc904: ; fc904 (3f:4904)
+asm_fc904:
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -724,24 +725,24 @@ asm_fc904: ; fc904 (3f:4904)
ld [hl], a
.asm_fc91f
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
-Func_fc92b: ; fc92b (3f:492b)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+Func_fc92b:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
-asm_fc937: ; fc937 (3f:4937)
+asm_fc937:
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -755,48 +756,48 @@ asm_fc937: ; fc937 (3f:4937)
ld [hl], a
.asm_fc951
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
-Func_fc95d: ; fc95d (3f:495d)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+Func_fc95d:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $9
-asm_fc969: ; fc969 (3f:4969)
+asm_fc969:
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
cp $8
ld [hl], a
- jr nz, .asm_fc988
+ jr nz, .skip
xor a
ld [hl], a
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
- call Func_fc994
+ call .TurnClockwise
ld [hl], a
-.asm_fc988
+.skip
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
-Func_fc994: ; fc994 (3f:4994)
+.TurnClockwise:
push hl
- ld hl, Pointer_fc9ac
+ ld hl, .Facings
ld d, a
.loop
ld a, [hli]
@@ -806,101 +807,101 @@ Func_fc994: ; fc994 (3f:4994)
pop hl
ret
-Func_fc9a0: ; fc9a0 (3f:49a0)
+.TurnCounterclockwise:
push hl
- ld hl, Pointer_fc9ac_End
+ ld hl, .Facings_End
ld d, a
-.loop
+.loop_
ld a, [hld]
cp d
- jr nz, .loop
+ jr nz, .loop_
ld a, [hl]
pop hl
ret
-Pointer_fc9ac: ; fc9ac (3f:49ac)
+.Facings:
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
-Pointer_fc9ac_End:
+.Facings_End:
-NormalPikachuFollow: ; fc9b4 (3f:49b4)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+NormalPikachuFollow:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $3
call AddPikachuStepVector
-asm_fc9c3: ; fc9c3 (3f:49c3)
+asm_fc9c3:
call TryDoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
-FastPikachuFollow: ; fc9df (3f:49df)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+FastPikachuFollow:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $4
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $5
call AddPikachuStepVector
-asm_fc9ee: ; fc9ee (3f:49ee)
+asm_fc9ee:
call DoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
-Func_fca0a: ; fca0a (3f:4a0a)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+Func_fca0a:
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $4
call AddPikachuStepVector
call AddPikachuStepVector
-asm_fca1c: ; fca1c (3f:4a1c)
+asm_fca1c:
call DoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
-AddPikachuStepVector: ; fca38 (3f:4a38)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+AddPikachuStepVector:
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld e, [hl]
inc hl
inc hl
ld d, [hl]
- ld hl, wSprite01MapY - wSprite01SpriteStateData1
+ ld hl, wPikachuMapY - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
add e
@@ -910,15 +911,15 @@ AddPikachuStepVector: ; fca38 (3f:4a38)
ld [hl], a
ret
-TryDoubleAddPikachuStepVectorToScreenPixelCoords: ; fca4b (3f:4a4b)
+TryDoubleAddPikachuStepVectorToScreenPixelCoords:
ld a, [wWalkBikeSurfState]
cp $1 ; biking
jr nz, AddPikachuStepVectorToScreenPixelCoords
ld a, [wd736]
bit 6, a
jr nz, AddPikachuStepVectorToScreenPixelCoords
-DoubleAddPikachuStepVectorToScreenPixelCoords: ; fca59 (3f:4a59)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+DoubleAddPikachuStepVectorToScreenPixelCoords:
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -932,8 +933,8 @@ DoubleAddPikachuStepVectorToScreenPixelCoords: ; fca59 (3f:4a59)
ld [hl], a
ret
-AddPikachuStepVectorToScreenPixelCoords: ; fca68 (3f:4a68)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+AddPikachuStepVectorToScreenPixelCoords:
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -945,8 +946,8 @@ AddPikachuStepVectorToScreenPixelCoords: ; fca68 (3f:4a68)
ld [hli], a
ret
-ResetPikachuStepVector: ; fca75 (3f:4a75)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+ResetPikachuStepVector:
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
xor a
ld [hli], a
@@ -954,13 +955,13 @@ ResetPikachuStepVector: ; fca75 (3f:4a75)
ld [hl], a
ret
-GetPikachuWalkingAnimationSpeed: ; fca7e (3f:4a7e)
+GetPikachuWalkingAnimationSpeed:
call ComparePikachuHappinessTo80
ld d, $2
jr nc, .happy
ld d, $5
.happy
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -976,11 +977,11 @@ GetPikachuWalkingAnimationSpeed: ; fca7e (3f:4a7e)
ld [hl], a
ret
-UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
+UpdatePikachuWalkingSprite:
ld a, [wPikachuOverworldStateFlags]
bit 3, a
jr nz, .uninitialized
- ld hl, wSprite01SpriteImageBaseOffset - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageBaseOffset - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -989,7 +990,7 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
ld a, [wd736]
bit 7, a
jr nz, .copy_player
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
or d
@@ -1002,19 +1003,19 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
jr .load_sprite_index
.normal_get_sprite_index
- ld hl, wSprite01AnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, d
or [hl]
ld d, a
.load_sprite_index
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], d
ret
.uninitialized
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
ret
@@ -1026,8 +1027,8 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
ld [wPikachuSpriteImageIdx], a
ret
-Func_fcae2: ; fcae2 (3f:4ae2)
- ld hl, wSprite01MapY - wSprite01SpriteStateData1
+Func_fcae2:
+ ld hl, wPikachuMapY - wPikachuSpriteStateData1
add hl, bc
ld a, [wYCoord]
add $4
@@ -1038,7 +1039,7 @@ Func_fcae2: ; fcae2 (3f:4ae2)
add $4
cp [hl]
jr nz, .on_screen
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
scf
@@ -1048,7 +1049,7 @@ Func_fcae2: ; fcae2 (3f:4ae2)
and a
ret
-IsPikachuRightNextToPlayer: ; fcb01 (3f:4b01)
+IsPikachuRightNextToPlayer:
push bc
push de
push hl
@@ -1106,12 +1107,12 @@ IsPikachuRightNextToPlayer: ; fcb01 (3f:4b01)
xor a
ret
-GetPikachuFacingDirectionAndReturnToE: ; fcb4d (3f:4b4d)
+GetPikachuFacingDirectionAndReturnToE:
call GetPikachuFacingDirection
ld e, a
ret
-GetPikachuFacingDirection: ; fcb52 (3f:4b52)
+GetPikachuFacingDirection:
ld bc, wPikachuPictureID
ld a, [wXCoord]
add $4
@@ -1150,7 +1151,7 @@ GetPikachuFacingDirection: ; fcb52 (3f:4b52)
ld a, $ff ; standing
ret
-ClearPikachuFollowCommandBuffer: ; fcb84 (3f:4b84)
+ClearPikachuFollowCommandBuffer:
push bc
ld hl, wPikachuFollowCommandBufferSize
ld [hl], $ff
@@ -1161,7 +1162,7 @@ ClearPikachuFollowCommandBuffer: ; fcb84 (3f:4b84)
pop bc
ret
-AppendPikachuFollowCommandToBuffer: ; fcb94 (3f:4b94)
+AppendPikachuFollowCommandToBuffer:
ld hl, wPikachuFollowCommandBufferSize
inc [hl]
ld e, [hl]
@@ -1171,14 +1172,14 @@ AppendPikachuFollowCommandToBuffer: ; fcb94 (3f:4b94)
ld [hl], a
ret
-RefreshPikachuFollow: ; fcba1 (3f:4ba1)
+RefreshPikachuFollow:
call ClearPikachuFollowCommandBuffer
call ComputePikachuFollowCommand
ret c
call AppendPikachuFollowCommandToBuffer
ret
-ComputePikachuFollowCommand: ; fcbac (3f:4bac)
+ComputePikachuFollowCommand:
ld bc, wPikachuPictureID
ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
@@ -1245,7 +1246,7 @@ ComputePikachuFollowCommand: ; fcbac (3f:4bac)
scf
ret
-CheckAbsoluteValueLessThan2: ; fcc01 (3f:4c01)
+CheckAbsoluteValueLessThan2:
jr nc, .positive
cpl
inc a
@@ -1253,7 +1254,7 @@ CheckAbsoluteValueLessThan2: ; fcc01 (3f:4c01)
cp $2
ret
-Func_fcc08:: ; fcc08 (3f:4c08)
+Func_fcc08::
call Func_fcc23
ret nc
ld a, [wd736]
@@ -1270,7 +1271,7 @@ Func_fcc08:: ; fcc08 (3f:4c08)
call AppendPikachuFollowCommandToBuffer
ret
-Func_fcc23: ; fcc23 (3f:4c28)
+Func_fcc23:
ld a, [wPikachuOverworldStateFlags]
bit 5, a
jr nz, .asm_fcc40
@@ -1290,7 +1291,7 @@ Func_fcc23: ; fcc23 (3f:4c28)
and a
ret
-Func_fcc42: ; fcc42 (3f:4c42)
+Func_fcc42:
xor a
ld a, [wPlayerDirection]
bit 3, a
@@ -1320,7 +1321,7 @@ Func_fcc42: ; fcc42 (3f:4c42)
ld a, $4
ret
-Func_fcc64: ; fcc64 (3f:4c64)
+Func_fcc64:
ld hl, wPikachuOverworldStateFlags
bit 6, [hl]
jr z, .asm_fcc6e
@@ -1358,7 +1359,7 @@ Func_fcc64: ; fcc64 (3f:4c64)
ld a, $8
ret
-Func_fcc92: ; fcc92 (3f:4c92)
+Func_fcc92:
ld hl, wPikachuFollowCommandBufferSize
ld a, [hl]
cp $ff
@@ -1385,7 +1386,7 @@ Func_fcc92: ; fcc92 (3f:4c92)
scf
ret
-ComputePikachuFacingDirection:: ; fccb2 (3f:4cb2)
+ComputePikachuFacingDirection::
call GetPikachuFollowCommandIfBufferSizeNonzero
and a
jr z, .check_y
@@ -1425,7 +1426,7 @@ ComputePikachuFacingDirection:: ; fccb2 (3f:4cb2)
ld [wPikachuFacingDirection], a
ret
-GetPikachuFollowCommand: ; fccee (3f:4cee)
+GetPikachuFollowCommand:
ld hl, wPikachuFollowCommandBufferSize
ld a, [hl]
cp $ff
@@ -1441,7 +1442,7 @@ GetPikachuFollowCommand: ; fccee (3f:4cee)
xor a
ret
-GetPikachuFollowCommandIfBufferSizeNonzero: ; fcd01 (3f:4d01)
+GetPikachuFollowCommandIfBufferSizeNonzero:
ld hl, wPikachuFollowCommandBufferSize
ld a, [hl]
cp $ff
@@ -1459,7 +1460,7 @@ GetPikachuFollowCommandIfBufferSizeNonzero: ; fcd01 (3f:4d01)
xor a
ret
-AreThereAtLeastTwoStepsInPikachuFollowCommandBuffer: ; fcd17 (3f:4d17)
+AreThereAtLeastTwoStepsInPikachuFollowCommandBuffer:
ld a, [wPikachuFollowCommandBufferSize]
cp $ff
ret z
@@ -1472,7 +1473,7 @@ AreThereAtLeastTwoStepsInPikachuFollowCommandBuffer: ; fcd17 (3f:4d17)
scf
ret
-WillPikachuSpawnOnTheScreen: ; fcd25 (3f:4d25)
+WillPikachuSpawnOnTheScreen:
ld h, wSpriteStateData2 / $100
ld a, [H_CURRENTSPRITEOFFSET] ; If we're here, this can only be $f0
add wPikachuMapY - wPikachuSpriteStateData2
@@ -1538,7 +1539,7 @@ WillPikachuSpawnOnTheScreen: ; fcd25 (3f:4d25)
.return
ret
-.GetNPCCurrentTile: ; fcd83 (3f:4d83)
+.GetNPCCurrentTile:
ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add wPikachuYPixels - wPikachuSpriteStateData1
@@ -1565,7 +1566,7 @@ WillPikachuSpawnOnTheScreen: ; fcd25 (3f:4d25)
add hl, de
ret
-ComparePikachuHappinessTo80: ; fcdad (3f:4dad)
+ComparePikachuHappinessTo80:
; preserves a and bc
push bc
push af
diff --git a/engine/pikachu_movement.asm b/engine/pikachu_movement.asm
index fbb71ffd..8eb09b3b 100755
--- a/engine/pikachu_movement.asm
+++ b/engine/pikachu_movement.asm
@@ -1,11 +1,11 @@
-ApplyPikachuMovementData_:: ; fd2a1 (3f:52a1)
+ApplyPikachuMovementData_::
ld a, b
ld [wPikachuMovementScriptBank], a
ld a, l
ld [wPikachuMovementScriptAddress], a
ld a, h
ld [wPikachuMovementScriptAddress + 1], a
- call PikachuSwapSpriteStateData
+ call .SwapSpriteStateData
.loop
call LoadPikachuMovementCommandData
jr nc, .done
@@ -13,11 +13,11 @@ ApplyPikachuMovementData_:: ; fd2a1 (3f:52a1)
jr .loop
.done
- call PikachuSwapSpriteStateData
+ call .SwapSpriteStateData
call DelayFrame
ret
-PikachuSwapSpriteStateData:
+.SwapSpriteStateData:
ld a, [wUpdateSpritesEnabled]
push af
ld a, $ff
@@ -26,15 +26,15 @@ PikachuSwapSpriteStateData:
push de
push bc
- ld hl, wSpriteStateData1
+ ld hl, wPlayerSpriteStateData1
ld de, wPikachuSpriteStateData1
ld c, $10
- call SwapBytes3f
+ call .SwapBytes
- ld hl, wSpriteStateData2
+ ld hl, wPlayerSpriteStateData2
ld de, wPikachuSpriteStateData2
ld c, $10
- call SwapBytes3f
+ call .SwapBytes
pop bc
pop de
@@ -43,8 +43,7 @@ PikachuSwapSpriteStateData:
ld [wUpdateSpritesEnabled], a
ret
-SwapBytes3f:
-.loop
+.SwapBytes:
ld b, [hl]
ld a, [de]
ld [hli], a
@@ -52,7 +51,7 @@ SwapBytes3f:
ld [de], a
inc de
dec c
- jr nz, .loop
+ jr nz, .SwapBytes
ret
LoadPikachuMovementCommandData:
@@ -61,52 +60,52 @@ LoadPikachuMovementCommandData:
ret z
ld c, a
ld b, 0
- ld hl, Data_fd3b0
+ ld hl, PikachuMovementDatabase
add hl, bc
add hl, bc
add hl, bc
add hl, bc
ld a, [hli]
- ld [wPikaPicAnimPointer + 1], a
+ ld [wCurPikaMovementFunc1], a
ld a, [hli]
cp $80
jr nz, .no_param
call GetPikachuMovementScriptByte
.no_param
- ld [wPikaPicAnimPointer], a
+ ld [wCurPikaMovementParam1], a
ld a, [hli]
- ld [wPikaPicAnimCurGraphicID], a
+ ld [wCurPikaMovementFunc2], a
ld a, [hli]
cp $80
jr nz, .no_param2
call GetPikachuMovementScriptByte
.no_param2
- ld [wPikaPicAnimPointerSetupFinished], a
+ ld [wCurPikaMovementParam2], a
xor a
- ld [wPikaPicAnimTimer], a
+ ld [wd451], a
scf
ret
ExecutePikachuMovementCommand:
xor a
- ld [wd44d], a
- ld [wd457], a
- ld [wd458], a
+ ld [wPikachuMovementFlags], a
+ ld [wPikachuStepTimer], a
+ ld [wPikachuStepSubtimer], a
ld a, [wPlayerGrassPriority]
push af
.loop
- ld bc, wSpriteStateData1
- ld a, [wPikaPicAnimPointer + 1]
- ld hl, Jumptable_fd4ac
+ ld bc, wPlayerSpriteStateData1 ; Currently holds Pikachu's sprite state data
+ ld a, [wCurPikaMovementFunc1]
+ ld hl, PikaMovementFunc1Jumptable
call .JumpTable
- ld a, [wPikaPicAnimCurGraphicID]
- ld hl, Jumptable_fd65c
+ ld a, [wCurPikaMovementFunc2]
+ ld hl, PikaMovementFunc2Jumptable
call .JumpTable
- call Func_fd36e
- call Func_fd39d
+ call GetCoordsForPikachuShadow
+ call AnimatePikachuShadow
call DelayFrame
call DelayFrame
- ld hl, wd44d
+ ld hl, wPikachuMovementFlags
bit 7, [hl]
jr z, .loop
pop af
@@ -124,62 +123,65 @@ ExecutePikachuMovementCommand:
ld l, a
jp [hl]
-Func_fd36e:
- ld hl, 2
+GetCoordsForPikachuShadow:
+ ld hl, wPlayerSpriteImageIdx - wPlayerSpriteStateData1
add hl, bc
- ld a, [wPikaPicAnimTimer + 1]
+ ld a, [wCurPikaMovementSpriteImageIdx]
ld [hl], a
ld a, [wPikaSpriteY]
ld d, a
- ld a, [wd456]
+ ld a, [wPikachuMovementYOffset]
add d
- ld hl, 4
+ ld hl, wPlayerYPixels - wPlayerSpriteStateData1
add hl, bc
ld [hl], a
- ld a, [wPikaPicAnimDelay]
+ ld a, [wPikaSpriteX]
ld d, a
- ld a, [wPikaPicTextboxStartY]
+ ld a, [wPikachuMovementXOffset]
add d
- ld hl, 6
+ ld hl, wPlayerXPixels - wPlayerSpriteStateData1
add hl, bc
ld [hl], a
- ld hl, wd44d
+ ld hl, wPikachuMovementFlags
bit 6, [hl]
ret z
- ld hl, wPlayerGrassPriority - wSpriteStateData1
+ ld hl, wPlayerGrassPriority - wPlayerSpriteStateData1
add hl, bc
ld [hl], 0
ret
-Func_fd39d:
- ld hl, wd44d
+AnimatePikachuShadow:
+ ld hl, wPikachuMovementFlags
bit 6, [hl]
res 6, [hl]
ld hl, wd736
res 6, [hl]
ret z
set 6, [hl]
- call Func_fd7f3
+ call LoadPikachuShadowOAMData
ret
-Data_fd3b0:
- db $01, $00, $00, $00 ; $00
- db $03, $80, $01, $00 ; $01
- db $04, $80, $01, $00 ; $02
- db $05, $80, $01, $00 ; $03
- db $06, $80, $01, $00 ; $04
- db $07, $80, $01, $00 ; $05
- db $08, $80, $01, $00 ; $06
- db $09, $80, $01, $00 ; $07
- db $0a, $80, $01, $00 ; $08
- db $03, $80, $06, $00 ; $09
- db $04, $80, $06, $00 ; $0a
- db $05, $80, $06, $00 ; $0b
- db $06, $80, $06, $00 ; $0c
- db $07, $80, $06, $00 ; $0d
- db $08, $80, $06, $00 ; $0e
- db $09, $80, $06, $00 ; $0f
- db $0a, $80, $06, $00 ; $10
+PikachuMovementDatabase:
+ db $01, 1 - 1, $00, 1 - 1 ; $00 start
+
+ db $03, $80, $01, 1 - 1 ; $01
+ db $04, $80, $01, 1 - 1 ; $02
+ db $05, $80, $01, 1 - 1 ; $03
+ db $06, $80, $01, 1 - 1 ; $04
+ db $07, $80, $01, 1 - 1 ; $05
+ db $08, $80, $01, 1 - 1 ; $06
+ db $09, $80, $01, 1 - 1 ; $07
+ db $0a, $80, $01, 1 - 1 ; $08
+
+ db $03, $80, $06, 1 - 1 ; $09
+ db $04, $80, $06, 1 - 1 ; $0a
+ db $05, $80, $06, 1 - 1 ; $0b
+ db $06, $80, $06, 1 - 1 ; $0c
+ db $07, $80, $06, 1 - 1 ; $0d
+ db $08, $80, $06, 1 - 1 ; $0e
+ db $09, $80, $06, 1 - 1 ; $0f
+ db $0a, $80, $06, 1 - 1 ; $10
+
db $03, $80, $03, $80 ; $11
db $04, $80, $03, $80 ; $12
db $05, $80, $03, $80 ; $13
@@ -188,290 +190,296 @@ Data_fd3b0:
db $08, $80, $03, $80 ; $16
db $09, $80, $03, $80 ; $17
db $0a, $80, $03, $80 ; $18
+
db $03, $80, $07, $80 ; $19
db $04, $80, $07, $80 ; $1a
db $05, $80, $07, $80 ; $1b
db $06, $80, $07, $80 ; $1c
- db $0b, $27, $02, $00 ; $1d step down
- db $0c, $27, $02, $00 ; $1e step up
- db $0d, $27, $02, $00 ; $1f step left
- db $0e, $27, $02, $00 ; $20 step right
- db $0f, $27, $02, $00 ; $21
- db $10, $27, $02, $00 ; $22
- db $11, $27, $02, $00 ; $23
- db $12, $27, $02, $00 ; $24
- db $0b, $0f, $02, $00 ; $25
- db $0c, $0f, $02, $00 ; $26
- db $0d, $0f, $02, $00 ; $27
- db $0e, $0f, $02, $00 ; $28
- db $0f, $0f, $02, $00 ; $29
- db $10, $0f, $02, $00 ; $2a
- db $11, $0f, $02, $00 ; $2b
- db $12, $0f, $02, $00 ; $2c
- db $0b, $0f, $08, $17 ; $2d
- db $0c, $0f, $08, $17 ; $2e
- db $0d, $0f, $08, $17 ; $2f
- db $0e, $0f, $08, $17 ; $30
- db $0f, $0f, $08, $17 ; $31
- db $10, $0f, $08, $17 ; $32
- db $11, $0f, $08, $17 ; $33
- db $12, $0f, $08, $17 ; $34
- db $13, $0f, $06, $00 ; $35 look down
- db $14, $0f, $06, $00 ; $36 look up
- db $15, $0f, $06, $00 ; $37 look left
- db $16, $0f, $06, $00 ; $38 look right
- db $02, $80, $04, $00 ; $39
- db $02, $80, $05, $00 ; $3a
+
+ db $0b, (1 << 5) | 8 - 1, $02, 1 - 1 ; $1d step down
+ db $0c, (1 << 5) | 8 - 1, $02, 1 - 1 ; $1e step up
+ db $0d, (1 << 5) | 8 - 1, $02, 1 - 1 ; $1f step left
+ db $0e, (1 << 5) | 8 - 1, $02, 1 - 1 ; $20 step right
+ db $0f, (1 << 5) | 8 - 1, $02, 1 - 1 ; $21 step down left
+ db $10, (1 << 5) | 8 - 1, $02, 1 - 1 ; $22 step down right
+ db $11, (1 << 5) | 8 - 1, $02, 1 - 1 ; $23 step up left
+ db $12, (1 << 5) | 8 - 1, $02, 1 - 1 ; $24 step up right
+
+ db $0b, 16 - 1, $02, 1 - 1 ; $25 slide down
+ db $0c, 16 - 1, $02, 1 - 1 ; $26 slide up
+ db $0d, 16 - 1, $02, 1 - 1 ; $27 slide left
+ db $0e, 16 - 1, $02, 1 - 1 ; $28 slide right
+ db $0f, 16 - 1, $02, 1 - 1 ; $29 slide down left
+ db $10, 16 - 1, $02, 1 - 1 ; $2a slide down right
+ db $11, 16 - 1, $02, 1 - 1 ; $2b slide up left
+ db $12, 16 - 1, $02, 1 - 1 ; $2c slide up right
+
+ db $0b, 16 - 1, $08, (1 << 4) | 8 - 1 ; $2d hop down
+ db $0c, 16 - 1, $08, (1 << 4) | 8 - 1 ; $2e hop up
+ db $0d, 16 - 1, $08, (1 << 4) | 8 - 1 ; $2f hop left
+ db $0e, 16 - 1, $08, (1 << 4) | 8 - 1 ; $30 hop right
+ db $0f, 16 - 1, $08, (1 << 4) | 8 - 1 ; $31 hop down left
+ db $10, 16 - 1, $08, (1 << 4) | 8 - 1 ; $32 hop down right
+ db $11, 16 - 1, $08, (1 << 4) | 8 - 1 ; $33 hop up left
+ db $12, 16 - 1, $08, (1 << 4) | 8 - 1 ; $34 hop up right
+
+ db $13, 16 - 1, $06, 1 - 1 ; $35 look down
+ db $14, 16 - 1, $06, 1 - 1 ; $36 look up
+ db $15, 16 - 1, $06, 1 - 1 ; $37 look left
+ db $16, 16 - 1, $06, 1 - 1 ; $38 look right
+
+ db $02, $80, $04, 1 - 1 ; $39
+ db $02, $80, $05, 1 - 1 ; $3a
db $02, $80, $03, $80 ; $3b
db $02, $80, $07, $80 ; $3c
db $02, $80, $09, $80 ; $3d
- db $02, $80, $06, $00 ; $3e
-
-Jumptable_fd4ac:
- dw Func_fd4e5
- dw Func_fd4e9
- dw Func_fd504
- dw Func_fd50c
- dw Func_fd511
- dw Func_fd518
- dw Func_fd52c
- dw Func_fd540
- dw Func_fd553
- dw Func_fd566
- dw Func_fd579
- dw Func_fd5b1
- dw Func_fd5b5
- dw Func_fd5b9
- dw Func_fd5bd
- dw Func_fd5c1
- dw Func_fd5c5
- dw Func_fd5c9
- dw Func_fd5cd
- dw Func_fd5ea
- dw Func_fd5ee
- dw Func_fd5f2
- dw Func_fd5f6
- dw Func_fd4e5
-
-Func_fd4dc:
- ld a, [wd44d]
+ db $02, $80, $06, 1 - 1 ; $3e
+
+PikaMovementFunc1Jumptable:
+ dw PikaMovementFunc1_EndCommand_ ; 00
+ dw PikaMovementFunc1_LoadPikachuCurrentPosition ; 01
+ dw PikaMovementFunc1_DelayFrames ; 02
+ dw PikaMovementFunc1_WalkInCurrentFacingDirection ; 03
+ dw PikaMovementFunc1_WalkInOppositeFacingDirection ; 04
+ dw PikaMovementFunc1_StepTurningCounterclockwise ; 05
+ dw PikaMovementFunc1_StepTurningClockwise ; 06
+ dw PikaMovementFunc1_StepForwardLeft ; 07
+ dw PikaMovementFunc1_StepForwardRight ; 08
+ dw PikaMovementFunc1_StepBackwardLeft ; 09
+ dw PikaMovementFunc1_StepBackwardRight ; 0a
+ dw PikaMovementFunc1_MoveDown ; 0b
+ dw PikaMovementFunc1_MoveUp ; 0c
+ dw PikaMovementFunc1_MoveLeft ; 0d
+ dw PikaMovementFunc1_MoveRight ; 0e
+ dw PikaMovementFunc1_MoveDownLeft ; 0f
+ dw PikaMovementFunc1_MoveDownRight ; 10
+ dw PikaMovementFunc1_MoveUpLeft ; 11
+ dw PikaMovementFunc1_MoveUpRight ; 12
+ dw PikaMovementFunc1_LookDown ; 13
+ dw PikaMovementFunc1_LookUp ; 14
+ dw PikaMovementFunc1_LookLeft ; 15
+ dw PikaMovementFunc1_LookRight ; 16
+ dw PikaMovementFunc1_EndCommand_ ; 17
+
+PikaMovementFunc1_EndCommand:
+ ld a, [wPikachuMovementFlags]
set 7, a
- ld [wd44d], a
+ ld [wPikachuMovementFlags], a
ret
-Func_fd4e5:
- call Func_fd4dc
+PikaMovementFunc1_EndCommand_:
+ call PikaMovementFunc1_EndCommand
ret
-Func_fd4e9:
- ld hl, 4
+PikaMovementFunc1_LoadPikachuCurrentPosition:
+ ld hl, wPlayerYPixels - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
ld [wPikaSpriteY], a
- ld hl, 6
+ ld hl, wPlayerXPixels - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
- ld [wPikaPicAnimDelay], a
+ ld [wPikaSpriteX], a
xor a
- ld [wd456], a
- ld [wPikaPicTextboxStartY], a
- call Func_fd4dc
+ ld [wPikachuMovementYOffset], a
+ ld [wPikachuMovementXOffset], a
+ call PikaMovementFunc1_EndCommand
ret
-Func_fd504:
- call Func_fd775
+PikaMovementFunc1_DelayFrames:
+ call CheckPikachuStepTimer1
ret nz
- call Func_fd4dc
+ call PikaMovementFunc1_EndCommand
ret
-Func_fd50c:
- call GetObjectFacing
- jr asm_fd58c
+PikaMovementFunc1_WalkInCurrentFacingDirection:
+ call GetPikachuFacing
+ jr PikaMovementFunc1_ApplyStepVector
-Func_fd511:
- call GetObjectFacing
+PikaMovementFunc1_WalkInOppositeFacingDirection:
+ call GetPikachuFacing
xor %100
- jr asm_fd58c
-
-Func_fd518:
- call GetObjectFacing
- ld hl, Data_fd523
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd523:
- db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT
- db SPRITE_FACING_UP, SPRITE_FACING_LEFT
- db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN
- db SPRITE_FACING_RIGHT, SPRITE_FACING_UP
+ jr PikaMovementFunc1_ApplyStepVector
+
+PikaMovementFunc1_StepTurningCounterclockwise:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_RIGHT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_LEFT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_DOWN << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_UP << 2
db $ff
-Func_fd52c:
- call GetObjectFacing
- ld hl, Data_fd537
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd537:
- db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT
- db SPRITE_FACING_UP, SPRITE_FACING_RIGHT
- db SPRITE_FACING_LEFT, SPRITE_FACING_UP
- db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN
+PikaMovementFunc1_StepTurningClockwise:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_LEFT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_RIGHT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_UP << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_DOWN << 2
db $ff
-Func_fd540:
- call GetObjectFacing
- ld hl, Data_fd54b
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd54b:
- db SPRITE_FACING_DOWN, SPRITE_FACING_UP | $10
- db SPRITE_FACING_UP, SPRITE_FACING_LEFT | $10
- db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN | $10
- db SPRITE_FACING_RIGHT, SPRITE_FACING_RIGHT | $10
-
-Func_fd553:
- call GetObjectFacing
- ld hl, Data_fd55e
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd55e:
- db SPRITE_FACING_DOWN, SPRITE_FACING_DOWN | $10
- db SPRITE_FACING_UP, SPRITE_FACING_RIGHT | $10
- db SPRITE_FACING_LEFT, SPRITE_FACING_LEFT | $10
- db SPRITE_FACING_RIGHT, SPRITE_FACING_UP | $10
-
-Func_fd566:
- call GetObjectFacing
- ld hl, Data_fd571
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd571:
- db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT | $10
- db SPRITE_FACING_UP, SPRITE_FACING_DOWN | $10
- db SPRITE_FACING_LEFT, SPRITE_FACING_UP | $10
- db SPRITE_FACING_RIGHT, SPRITE_FACING_LEFT | $10
-
-Func_fd579:
- call GetObjectFacing
- ld hl, Data_fd584
- call Func_fd5a0
- jr asm_fd58c
-
-Data_fd584:
- db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT | $10
- db SPRITE_FACING_UP, SPRITE_FACING_UP | $10
- db SPRITE_FACING_LEFT, SPRITE_FACING_RIGHT | $10
- db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN | $10
-
-asm_fd58c
+PikaMovementFunc1_StepForwardLeft:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_DOWN_RIGHT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_UP_LEFT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_DOWN_LEFT << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_UP_RIGHT << 2
+
+PikaMovementFunc1_StepForwardRight:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_DOWN_LEFT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_UP_RIGHT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_UP_LEFT << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_DOWN_RIGHT << 2
+
+PikaMovementFunc1_StepBackwardLeft:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_UP_RIGHT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_DOWN_LEFT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_DOWN_RIGHT << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_UP_LEFT << 2
+
+PikaMovementFunc1_StepBackwardRight:
+ call GetPikachuFacing
+ ld hl, .Data
+ call PikaMovementFunc1_GetNextFacing
+ jr PikaMovementFunc1_ApplyStepVector
+
+.Data:
+ db SPRITE_FACING_DOWN, PIKASTEPDIR_UP_LEFT << 2
+ db SPRITE_FACING_UP, PIKASTEPDIR_DOWN_RIGHT << 2
+ db SPRITE_FACING_LEFT, PIKASTEPDIR_UP_RIGHT << 2
+ db SPRITE_FACING_RIGHT, PIKASTEPDIR_DOWN_LEFT << 2
+
+PikaMovementFunc1_ApplyStepVector:
rrca
rrca
and $7
ld e, a
- call Func_fd784
+ call GetPikachuStepVectorMagnitude
ld d, a
call UpdatePikachuPosition
- call Func_fd775
+ call CheckPikachuStepTimer1
ret nz
- call Func_fd4dc
+ call PikaMovementFunc1_EndCommand
ret
-Func_fd5a0:
+PikaMovementFunc1_GetNextFacing:
push de
ld d, a
-.asm_fd5a2
+.loop
ld a, [hli]
cp d
- jr z, .asm_fd5ad
+ jr z, .found
inc hl
cp $ff
- jr nz, .asm_fd5a2
+ jr nz, .loop
pop de
ret
-.asm_fd5ad
+.found
ld a, [hl]
pop de
scf
ret
-Func_fd5b1:
- ld a, SPRITE_FACING_DOWN >> 2
- jr asm_fd5d1
+PikaMovementFunc1_MoveDown:
+ ld a, PIKASTEPDIR_DOWN
+ jr PikaMovementFunc1_ApplyFacingAndMove
-Func_fd5b5:
- ld a, SPRITE_FACING_UP >> 2
- jr asm_fd5d1
+PikaMovementFunc1_MoveUp:
+ ld a, PIKASTEPDIR_UP
+ jr PikaMovementFunc1_ApplyFacingAndMove
-Func_fd5b9:
- ld a, SPRITE_FACING_LEFT >> 2
- jr asm_fd5d1
+PikaMovementFunc1_MoveLeft:
+ ld a, PIKASTEPDIR_LEFT
+ jr PikaMovementFunc1_ApplyFacingAndMove
-Func_fd5bd:
- ld a, SPRITE_FACING_RIGHT >> 2
- jr asm_fd5d1
+PikaMovementFunc1_MoveRight:
+ ld a, PIKASTEPDIR_RIGHT
+ jr PikaMovementFunc1_ApplyFacingAndMove
-Func_fd5c1:
- ld e, 4
- jr asm_fd5d5
+PikaMovementFunc1_MoveDownLeft:
+ ld e, PIKASTEPDIR_DOWN_LEFT
+ jr PikaMovementFunc1_MoveDiagonally
-Func_fd5c5:
- ld e, 5
- jr asm_fd5d5
+PikaMovementFunc1_MoveDownRight:
+ ld e, PIKASTEPDIR_DOWN_RIGHT
+ jr PikaMovementFunc1_MoveDiagonally
-Func_fd5c9:
- ld e, 6
- jr asm_fd5d5
+PikaMovementFunc1_MoveUpLeft:
+ ld e, PIKASTEPDIR_UP_LEFT
+ jr PikaMovementFunc1_MoveDiagonally
-Func_fd5cd:
- ld e, 7
- jr asm_fd5d5
+PikaMovementFunc1_MoveUpRight:
+ ld e, PIKASTEPDIR_UP_RIGHT
+ jr PikaMovementFunc1_MoveDiagonally
-asm_fd5d1
+PikaMovementFunc1_ApplyFacingAndMove:
ld e, a
- call SetObjectFacing
-asm_fd5d5
- call Func_fd784
+ call SetPikachuFacing
+PikaMovementFunc1_MoveDiagonally:
+ call GetPikachuStepVectorMagnitude
ld d, a
push de
call UpdatePikachuPosition
pop de
- call Func_fd775
+ call CheckPikachuStepTimer1
ret nz
ld a, e
- call Func_fd7cb
- call Func_fd4dc
+ call ApplyPikachuStepVector
+ call PikaMovementFunc1_EndCommand
ret
-Func_fd5ea:
- ld a, SPRITE_FACING_DOWN >> 2
- jr asm_fd5fa
+PikaMovementFunc1_LookDown:
+ ld a, PIKASTEPDIR_DOWN
+ jr PikaMovementFunc1_ApplyFacing
-Func_fd5ee:
- ld a, SPRITE_FACING_UP >> 2
- jr asm_fd5fa
+PikaMovementFunc1_LookUp:
+ ld a, PIKASTEPDIR_UP
+ jr PikaMovementFunc1_ApplyFacing
-Func_fd5f2:
- ld a, SPRITE_FACING_LEFT >> 2
- jr asm_fd5fa
+PikaMovementFunc1_LookLeft:
+ ld a, PIKASTEPDIR_LEFT
+ jr PikaMovementFunc1_ApplyFacing
-Func_fd5f6:
- ld a, SPRITE_FACING_RIGHT >> 2
- jr asm_fd5fa
+PikaMovementFunc1_LookRight:
+ ld a, PIKASTEPDIR_RIGHT
+ jr PikaMovementFunc1_ApplyFacing
-asm_fd5fa
- call SetObjectFacing
- call Func_fd4dc
+PikaMovementFunc1_ApplyFacing:
+ call SetPikachuFacing
+ call PikaMovementFunc1_EndCommand
ret
UpdatePikachuPosition:
push de
ld d, 0
- ld hl, Jumptable_fd60f
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -481,217 +489,217 @@ UpdatePikachuPosition:
ld a, d
jp [hl]
-Jumptable_fd60f:
- dw MovePikachuSpriteDown
- dw MovePikachuSpriteUp
- dw MovePikachuSpriteLeft
- dw MovePikachuSpriteRight
- dw MovePikachuSpriteDownLeft
- dw MovePikachuSpriteDownRight
- dw MovePikachuSpriteUpLeft
- dw MovePikachuSpriteUpRight
-
-MovePikachuSpriteDown:
+.Jumptable:
+ dw .Down
+ dw .Up
+ dw .Left
+ dw .Right
+ dw .DownLeft
+ dw .DownRight
+ dw .UpLeft
+ dw .UpRight
+
+.Down:
ld d, 0
ld e, a
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteUp:
+.Up:
ld d, 0
cpl
inc a
ld e, a
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteLeft:
+.Left:
cpl
inc a
ld d, a
ld e, 0
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteRight:
+.Right:
ld d, a
ld e, 0
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteDownLeft:
+.DownLeft:
ld e, a
cpl
inc a
ld d, a
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteDownRight:
+.DownRight:
ld e, a
ld d, a
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteUpLeft:
+.UpLeft:
cpl
inc a
ld e, a
ld d, a
- jr asm_fd64d
+ jr .ApplyVector
-MovePikachuSpriteUpRight:
+.UpRight:
ld d, a
cpl
inc a
ld e, a
- jr asm_fd64d
+ jr .ApplyVector
-asm_fd64d
- ld a, [wPikaPicAnimDelay]
+.ApplyVector:
+ ld a, [wPikaSpriteX]
add d
- ld [wPikaPicAnimDelay], a
+ ld [wPikaSpriteX], a
ld a, [wPikaSpriteY]
add e
ld [wPikaSpriteY], a
ret
-Jumptable_fd65c:
- dw Func_fd678
- dw Func_fd6a3
- dw Func_fd698
- dw Func_fd6f4
- dw Func_fd6ff
- dw Func_fd718
- dw Func_fd68c
- dw Func_fd6c6
- dw Func_fd6c0
- dw Func_fd6e2
- dw Func_fd68b
-
-Func_fd672:
- ld hl, wd44d
+PikaMovementFunc2Jumptable:
+ dw PikaMovementFunc2_ResetFrameCounterAndFaceCurrent ; 0
+ dw PikaMovementFunc2_UpdateSpriteImageIdxWithPreviousImageIdxDirection ; 1
+ dw PikaMovementFunc2_UpdateSpriteImageIdxWithFacing ; 2
+ dw PikaMovementFunc2_TurnParameter ; 3
+ dw PikaMovementFunc2_TurnClockwise ; 4
+ dw PikaMovementFunc2_TurnCounterClockwise ; 5
+ dw PikaMovementFunc2_CopySpriteImageIdxDirectionToSpriteImageIdx ; 6
+ dw PikaMovementFunc2_UpdateJumpWithPreviousImageIdxDirection ; 7
+ dw PikaMovementFunc2_UpdateJumpWithFacing ; 8
+ dw PikaMovementFunc2_CopyFacingToJump ; 9
+ dw PikaMovementFunc2_nop ; 10
+
+PikaMovement_SetSpawnShadow:
+ ld hl, wPikachuMovementFlags
set 6, [hl]
ret
-Func_fd678:
- ld hl, 7
+PikaMovementFunc2_ResetFrameCounterAndFaceCurrent:
+ ld hl, wPlayerIntraAnimFrameCounter - wPlayerSpriteStateData1
add hl, bc
xor a
ld [hli], a
ld [hl], a
- call Func_fd74a
+ call PikaMovementFunc2_GetImageBaseOffset
ld d, a
- call GetObjectFacing
+ call GetPikachuFacing
or d
- ld [wPikaPicAnimTimer + 1], a
+ ld [wCurPikaMovementSpriteImageIdx], a
ret
-Func_fd68b:
+PikaMovementFunc2_nop:
ret
-Func_fd68c:
- call Func_fd74a
+PikaMovementFunc2_CopySpriteImageIdxDirectionToSpriteImageIdx:
+ call PikaMovementFunc2_GetImageBaseOffset
ld d, a
- call Func_fd755
+ call PikaMovementFunc2_GetSpriteImageIdxDirection
or d
- ld [wPikaPicAnimTimer + 1], a
+ ld [wCurPikaMovementSpriteImageIdx], a
ret
-Func_fd698:
- call Func_fd74a
+PikaMovementFunc2_UpdateSpriteImageIdxWithFacing:
+ call PikaMovementFunc2_GetImageBaseOffset
ld d, a
- call GetObjectFacing
+ call GetPikachuFacing
or d
ld d, a
- jr asm_fd6ac
+ jr PikaMovementFunc2_UpdateSpriteImageIdx
-Func_fd6a3:
- call Func_fd74a
+PikaMovementFunc2_UpdateSpriteImageIdxWithPreviousImageIdxDirection:
+ call PikaMovementFunc2_GetImageBaseOffset
ld d, a
- call Func_fd755
+ call PikaMovementFunc2_GetSpriteImageIdxDirection
or d
ld d, a
-asm_fd6ac
- ld hl, 8
+PikaMovementFunc2_UpdateSpriteImageIdx:
+ ld hl, wPlayerAnimFrameCounter - wPlayerSpriteStateData1
add hl, bc
- call Func_fd78e
- jr nz, .asm_fd6b6
+ call CheckPikachuStepTimer2 ; does not preserve hl
+ jr nz, .skip
inc [hl]
-.asm_fd6b6
+.skip
ld a, [hl]
rrca
rrca
and 3
or d
- ld [wPikaPicAnimTimer + 1], a
+ ld [wCurPikaMovementSpriteImageIdx], a
ret
-Func_fd6c0:
- call GetObjectFacing
+PikaMovementFunc2_UpdateJumpWithFacing:
+ call GetPikachuFacing
ld d, a
- jr asm_fd6ca
+ jr PikaMovementFunc2_UpdateJump
-Func_fd6c6:
- call Func_fd755
+PikaMovementFunc2_UpdateJumpWithPreviousImageIdxDirection:
+ call PikaMovementFunc2_GetSpriteImageIdxDirection
ld d, a
-asm_fd6ca
- call Func_fd74a
+PikaMovementFunc2_UpdateJump:
+ call PikaMovementFunc2_GetImageBaseOffset
or d
ld d, a
- call Func_fd736
+ call PikaMovementFunc2_Timer
or d
- ld [wPikaPicAnimTimer + 1], a
- call Func_fd79d
- ld [wd456], a
+ ld [wCurPikaMovementSpriteImageIdx], a
+ call PikaMovementFunc_Sine
+ ld [wPikachuMovementYOffset], a
and a
ret z
- call Func_fd672
+ call PikaMovement_SetSpawnShadow
ret
-Func_fd6e2:
- call GetObjectFacing
+PikaMovementFunc2_CopyFacingToJump:
+ call GetPikachuFacing
ld d, a
- call Func_fd74a
+ call PikaMovementFunc2_GetImageBaseOffset
or d
- ld [wPikaPicAnimTimer + 1], a
- call Func_fd79d
- ld [wd456], a
+ ld [wCurPikaMovementSpriteImageIdx], a
+ call PikaMovementFunc_Sine
+ ld [wPikachuMovementYOffset], a
ret
-Func_fd6f4:
- ld a, [wPikaPicAnimPointerSetupFinished]
+PikaMovementFunc2_TurnParameter:
+ ld a, [wCurPikaMovementParam2]
and $40
cp $40
- jr z, Func_fd6ff
- jr Func_fd718
+ jr z, PikaMovementFunc2_TurnClockwise
+ jr PikaMovementFunc2_TurnCounterClockwise
-Func_fd6ff:
- call Func_fd755
+PikaMovementFunc2_TurnClockwise:
+ call PikaMovementFunc2_GetSpriteImageIdxDirection
ld d, a
- call Func_fd78e
- jr nz, .asm_fd710
+ call CheckPikachuStepTimer2
+ jr nz, .skip
ld hl, Data_fd731
-.asm_fd70b
+.loop
ld a, [hli]
cp d
- jr nz, .asm_fd70b
+ jr nz, .loop
ld d, [hl]
-.asm_fd710
- call Func_fd74a
+.skip
+ call PikaMovementFunc2_GetImageBaseOffset
or d
- ld [wPikaPicAnimTimer + 1], a
+ ld [wCurPikaMovementSpriteImageIdx], a
ret
-Func_fd718:
- call Func_fd755
+PikaMovementFunc2_TurnCounterClockwise:
+ call PikaMovementFunc2_GetSpriteImageIdxDirection
ld d, a
- call Func_fd78e
- jr nz, .asm_fd529
+ call CheckPikachuStepTimer2
+ jr nz, .skip
ld hl, Data_fd731End
-.asm_fd524
+.loop
ld a, [hld]
cp d
- jr nz, .asm_fd524
+ jr nz, .loop
ld d, [hl]
-.asm_fd529
- call Func_fd74a
+.skip
+ call PikaMovementFunc2_GetImageBaseOffset
or d
- ld [wPikaPicAnimTimer + 1], a
+ ld [wCurPikaMovementSpriteImageIdx], a
ret
Data_fd731:
@@ -702,27 +710,27 @@ Data_fd731:
db SPRITE_FACING_DOWN
Data_fd731End:
-Func_fd736:
+PikaMovementFunc2_Timer:
push hl
- ld hl, 7
+ ld hl, wPlayerIntraAnimFrameCounter - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
inc a
and $3
ld [hli], a
- jr nz, .asm_fd747
+ jr nz, .load_pop
ld a, [hl]
inc a
and $3
ld [hl], a
-.asm_fd747
+.load_pop
ld a, [hl]
pop hl
ret
-Func_fd74a:
+PikaMovementFunc2_GetImageBaseOffset:
push hl
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 14
+ ld hl, wPlayerSpriteImageBaseOffset - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -730,27 +738,27 @@ Func_fd74a:
pop hl
ret
-Func_fd755:
+PikaMovementFunc2_GetSpriteImageIdxDirection:
push hl
- ld hl, 2
+ ld hl, wPlayerSpriteImageIdx - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
and $c
pop hl
ret
-GetObjectFacing:
+GetPikachuFacing:
push hl
- ld hl, 9
+ ld hl, wPlayerFacingDirection - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
and $c
pop hl
ret
-SetObjectFacing:
+SetPikachuFacing:
push hl
- ld hl, 9
+ ld hl, wPlayerFacingDirection - wPlayerSpriteStateData1
add hl, bc
add a
add a
@@ -759,10 +767,10 @@ SetObjectFacing:
pop hl
ret
-Func_fd775:
- ld hl, wd457
+CheckPikachuStepTimer1:
+ ld hl, wPikachuStepTimer
inc [hl]
- ld a, [wPikaPicAnimPointer]
+ ld a, [wCurPikaMovementParam1]
and $1f
inc a
cp [hl]
@@ -770,18 +778,19 @@ Func_fd775:
ld [hl], 0
ret
-Func_fd784:
- ld a, [wPikaPicAnimPointer]
+GetPikachuStepVectorMagnitude:
+ ; *XX*****
+ ld a, [wCurPikaMovementParam1]
swap a
rrca
and $3
inc a
ret
-Func_fd78e:
- ld hl, wd458
+CheckPikachuStepTimer2:
+ ld hl, wPikachuStepSubtimer
inc [hl]
- ld a, [wPikaPicAnimPointerSetupFinished]
+ ld a, [wCurPikaMovementParam2]
and $f
inc a
cp [hl]
@@ -789,11 +798,11 @@ Func_fd78e:
ld [hl], 0
ret
-Func_fd79d:
- call Func_fd7b2
- ld a, [wd458]
+PikaMovementFunc_Sine:
+ call .GetArgument
+ ld a, [wPikachuStepSubtimer]
add e
- ld [wd458], a
+ ld [wPikachuStepSubtimer], a
add $20
ld e, a
push hl
@@ -803,37 +812,37 @@ Func_fd79d:
pop hl
ret
-Func_fd7b2:
- ld a, [wPikaPicAnimPointerSetupFinished]
+.GetArgument:
+ ld a, [wCurPikaMovementParam2]
and $f
inc a
ld d, a
- ld a, [wPikaPicAnimPointerSetupFinished]
+ ld a, [wCurPikaMovementParam2]
swap a
and $7
ld e, a
ld a, 1
- jr z, .asm_fd7c9
-.asm_fd7c5
+ jr z, .okay
+.loop
add a
dec e
- jr nz, .asm_fd7c5
-.asm_fd7c9
+ jr nz, .loop
+.okay
ld e, a
ret
-Func_fd7cb:
+ApplyPikachuStepVector:
push bc
ld c, a
ld b, 0
- ld hl, Data_fd7e3
+ ld hl, .StepVectors
add hl, bc
add hl, bc
ld d, [hl]
inc hl
ld e, [hl]
pop bc
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 4
+ ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
add e
@@ -843,7 +852,7 @@ Func_fd7cb:
ld [hl], a
ret
-Data_fd7e3:
+.StepVectors:
db 0, 1
db 0, -1
db -1, 0
@@ -853,7 +862,7 @@ Data_fd7e3:
db -1, -1
db 1, -1
-Func_fd7f3:
+LoadPikachuShadowOAMData:
push bc
push de
push hl
@@ -861,22 +870,22 @@ Func_fd7f3:
ld bc, wOAMBuffer + 4 * 36
ld a, [wPikaSpriteY]
ld e, a
- ld a, [wPikaPicAnimDelay]
+ ld a, [wPikaSpriteX]
ld d, a
- ld hl, Data_fd80b
- call Func_fd814
+ ld hl, .OAMData
+ call .LoadOAMData
pop hl
pop de
pop bc
ret
-Data_fd80b:
- db $02
+.OAMData:
+ db 2
db $0c, $00, $ff, 0
db $0c, $08, $ff, 1 << OAM_X_FLIP
-Func_fd814:
+.LoadOAMData:
ld a, e
add $10
ld e, a
@@ -884,7 +893,7 @@ Func_fd814:
add $8
ld d, a
ld a, [hli]
-.asm_fd81d
+.loop
push af
ld a, [hli]
add e
@@ -902,7 +911,7 @@ Func_fd814:
inc bc
pop af
dec a
- jr nz, .asm_fd81d
+ jr nz, .loop
ret
LoadPikachuShadowIntoVRAM:
@@ -924,7 +933,7 @@ LoadPikachuBallIconIntoVRAM:
Func_fd851:
ld hl, vNPCSprites + $c * $10
ld a, 3
-.asm_fd856
+.loop
push af
push hl
ld de, GFX_fd86b
@@ -935,13 +944,13 @@ Func_fd851:
add hl, de
pop af
dec a
- jr nz, .asm_fd856
+ jr nz, .loop
ret
GFX_fd86b:
INCBIN "gfx/unknown_fd86b.2bpp"
-LoadPikachuSpriteIntoVRAM: ; fd8ab (3f:58ab)
+LoadPikachuSpriteIntoVRAM:
ld de, PikachuSprite
lb bc, BANK(PikachuSprite), (SandshrewSprite - PikachuSprite) / 32
ld hl, vNPCSprites + $c * $10
@@ -961,7 +970,7 @@ LoadPikachuSpriteIntoVRAM: ; fd8ab (3f:58ab)
call LoadPikachuBallIconIntoVRAM
ret
-PikachuPewterPokecenterCheck: ; fd8d4 (3f:58d4)
+PikachuPewterPokecenterCheck:
ld a, [wCurMap]
cp PEWTER_POKECENTER
ret nz
@@ -969,7 +978,7 @@ PikachuPewterPokecenterCheck: ; fd8d4 (3f:58d4)
call StarterPikachuEmotionCommand_turnawayfromplayer
ret
-PikachuFanClubCheck: ; fd8e1 (3f:58e1)
+PikachuFanClubCheck:
ld a, [wCurMap]
cp POKEMON_FAN_CLUB
ret nz
@@ -977,14 +986,14 @@ PikachuFanClubCheck: ; fd8e1 (3f:58e1)
call StarterPikachuEmotionCommand_turnawayfromplayer
ret
-PikachuBillsHouseCheck: ; fd8ee (3f:58ee)
+PikachuBillsHouseCheck:
ld a, [wCurMap]
cp BILLS_HOUSE
ret nz
call EnablePikachuFollowingPlayer
ret
-Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3: ; fd8f8 (3f:58f8)
+Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3:
call LoadCurrentMapView
call UpdateSprites
call Delay3
diff --git a/engine/pikachu_pcm.asm b/engine/pikachu_pcm.asm
index e0238468..043f702c 100755
--- a/engine/pikachu_pcm.asm
+++ b/engine/pikachu_pcm.asm
@@ -1,4 +1,4 @@
-PlayPikachuSoundClip:: ; f0000 (3c:4000)
+PlayPikachuSoundClip::
ld a, e
ld e, a
ld d, $0
@@ -85,7 +85,7 @@ PlayPikachuSoundClip:: ; f0000 (3c:4000)
ei
ret
-PikachuCriesPointerTable: ; f008e (3c:408e)
+PikachuCriesPointerTable:
; format:
; db bank
; dw pointer to cry
diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm
index a49e9bc2..c04382c1 100755
--- a/engine/pikachu_pic_animation.asm
+++ b/engine/pikachu_pic_animation.asm
@@ -1,26 +1,26 @@
-GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978)
+GetPikaPicAnimationScriptIndex:
ld hl, PikachuMoodLookupTable
ld a, [wPikachuMood]
ld d, a
-.asm_fd97f
+.get_mood_param
ld a, [hli]
inc hl
cp d
- jr c, .asm_fd97f
+ jr c, .get_mood_param
dec hl
ld e, [hl]
ld hl, PikaPicAnimationScriptPointerLookupTable
ld a, [wPikachuHappiness]
ld d, a
ld bc, 6
-.asm_fd990
+.get_happiness_param
ld a, [hl]
cp d
- jr nc, .asm_fd997
+ jr nc, .got_animation
add hl, bc
- jr .asm_fd990
+ jr .get_happiness_param
-.asm_fd997
+.got_animation
ld d, 0
add hl, de
ld a, [hl]
@@ -29,44 +29,85 @@ GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978)
PikachuMoodLookupTable:
; First byte: mood threshold
; Second byte: column index in PikaPicAnimationScriptPointerLookupTable
- db $28, 1
- db $7f, 2
- db $80, 3
- db $d2, 4
- db $ff, 5
+ db 40, 1
+ db 127, 2
+ db 128, 3
+ db 210, 4
+ db 255, 5
PikaPicAnimationScriptPointerLookupTable:
; First byte: happiness threshold
; Remaining bytes: loaded based on Pikachu's mood
- db $32, $0e, $0e, $06, $0d, $0d
- db $64, $09, $09, $05, $0c, $0c
- db $82, $03, $03, $01, $08, $08
- db $a0, $03, $03, $04, $0f, $0f
- db $c8, $11, $11, $07, $02, $02
- db $fa, $11, $11, $10, $0a, $0a
- db $ff, $11, $11, $13, $14, $14
-
-StarterPikachuEmotionCommand_pikapic: ; fd9d0 (3f:59d0)
+ db 50
+ dpikapic PikaPicAnimScript14
+ dpikapic PikaPicAnimScript14
+ dpikapic PikaPicAnimScript6
+ dpikapic PikaPicAnimScript13
+ dpikapic PikaPicAnimScript13
+
+ db 100
+ dpikapic PikaPicAnimScript9
+ dpikapic PikaPicAnimScript9
+ dpikapic PikaPicAnimScript5
+ dpikapic PikaPicAnimScript12
+ dpikapic PikaPicAnimScript12
+
+ db 130
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript1
+ dpikapic PikaPicAnimScript8
+ dpikapic PikaPicAnimScript8
+
+ db 160
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript4
+ dpikapic PikaPicAnimScript15
+ dpikapic PikaPicAnimScript15
+
+ db 200
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript7
+ dpikapic PikaPicAnimScript2
+ dpikapic PikaPicAnimScript2
+
+ db 250
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript16
+ dpikapic PikaPicAnimScript10
+ dpikapic PikaPicAnimScript10
+
+ db 255
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript19
+ dpikapic PikaPicAnimScript20
+ dpikapic PikaPicAnimScript20
+
+StarterPikachuEmotionCommand_pikapic:
ld a, [H_AUTOBGTRANSFERENABLED]
push af
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [de]
- ld [wExpressionNumber2], a
+ ld [wPikaPicAnimNumber], a
inc de
push de
- call Func_fd9e4
+ call .RunPikapic
pop de
pop af
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_fd9e4:
+.RunPikapic:
call PlacePikapicTextBoxBorder
callab LoadOverworldPikachuFrontpicPalettes
call ResetPikaPicAnimBuffer
call LoadCurrentPikaPicAnimScriptPointer
- call Func_fda9a
+ call ExecutePikaPicAnimScript
call PlacePikapicTextBoxBorder
call RunDefaultPaletteCommand
ret
@@ -86,10 +127,10 @@ ResetPikaPicAnimBuffer:
ld [wPikaPicAnimTimer], a
ld a, h
ld [wPikaPicAnimTimer + 1], a
- ld a, $07
- ld [wPikaSpriteY], a
- ld a, $06
- ld [wPikaPicTextboxStartY], a
+ ld a, $7
+ ld [wPikaPicPikaDrawStartX], a
+ ld a, $6
+ ld [wPikaPicPikaDrawStartY], a
ret
PlacePikapicTextBoxBorder:
@@ -100,20 +141,20 @@ PlacePikapicTextBoxBorder:
call TextBoxBorder
call Delay3
call UpdateSprites
- ld a, $01
+ ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
ret
LoadCurrentPikaPicAnimScriptPointer:
- ld a, [wExpressionNumber2]
+ ld a, [wPikaPicAnimNumber]
cp $1d
jr c, .valid
- ld a, 0
+ ld a, $0
.valid
ld e, a
ld d, 0
- ld hl, Pointers_fda5e
+ ld hl, PikaPicAnimPointers
add hl, de
add hl, de
ld a, [hli]
@@ -122,48 +163,51 @@ LoadCurrentPikaPicAnimScriptPointer:
call UpdatePikaPicAnimPointer
ret
-Pointers_fda5e:
- dw Data_fe28a ; 00
- dw Data_fe28a ; 01
- dw Data_fe2a4 ; 02
- dw Data_fe2be ; 03
- dw Data_fe2d8 ; 04
- dw Data_fe2f2 ; 05
- dw Data_fe30c ; 06
- dw Data_fe326 ; 07
- dw Data_fe340 ; 08
- dw Data_fe35a ; 09
- dw Data_fe374 ; 0a
- dw Data_fe390 ; 0b
- dw Data_fe3aa ; 0c
- dw Data_fe3c4 ; 0d
- dw Data_fe3de ; 0e
- dw Data_fe3f8 ; 0f
- dw Data_fe412 ; 10
- dw Data_fe42c ; 11
- dw Data_fe446 ; 12
- dw Data_fe460 ; 13
- dw Data_fe47a ; 14
- dw Data_fe494 ; 15
- dw Data_fe4b4 ; 16
- dw Data_fe4ce ; 17
- dw Data_fe4e8 ; 18
- dw Data_fe502 ; 19
- dw Data_fe520 ; 1a
- dw Data_fe53e ; 1b
- dw Data_fe558 ; 1c
- dw Data_fe28a ; 1d
-
-
-Func_fda9a:
+PikaPicAnimPointers:
+pikapic_def: macro
+\1_id: dw \1
+endm
+
+ pikapic_def PikaPicAnimScript0 ; 00
+ pikapic_def PikaPicAnimScript1 ; 01
+ pikapic_def PikaPicAnimScript2 ; 02
+ pikapic_def PikaPicAnimScript3 ; 03
+ pikapic_def PikaPicAnimScript4 ; 04
+ pikapic_def PikaPicAnimScript5 ; 05
+ pikapic_def PikaPicAnimScript6 ; 06
+ pikapic_def PikaPicAnimScript7 ; 07
+ pikapic_def PikaPicAnimScript8 ; 08
+ pikapic_def PikaPicAnimScript9 ; 09
+ pikapic_def PikaPicAnimScript10 ; 0a
+ pikapic_def PikaPicAnimScript11 ; 0b
+ pikapic_def PikaPicAnimScript12 ; 0c
+ pikapic_def PikaPicAnimScript13 ; 0d
+ pikapic_def PikaPicAnimScript14 ; 0e
+ pikapic_def PikaPicAnimScript15 ; 0f
+ pikapic_def PikaPicAnimScript16 ; 10
+ pikapic_def PikaPicAnimScript17 ; 11
+ pikapic_def PikaPicAnimScript18 ; 12
+ pikapic_def PikaPicAnimScript19 ; 13
+ pikapic_def PikaPicAnimScript20 ; 14
+ pikapic_def PikaPicAnimScript21 ; 15
+ pikapic_def PikaPicAnimScript22 ; 16
+ pikapic_def PikaPicAnimScript23 ; 17
+ pikapic_def PikaPicAnimScript24 ; 18
+ pikapic_def PikaPicAnimScript25 ; 19
+ pikapic_def PikaPicAnimScript26 ; 1a
+ pikapic_def PikaPicAnimScript27 ; 1b
+ pikapic_def PikaPicAnimScript28 ; 1c
+ pikapic_def PikaPicAnimScript29 ; 1d
+
+ExecutePikaPicAnimScript:
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call RunPikaPicAnimScript
- call Func_fdad5
- call Func_fdad6
- call Func_fdad5
- ld a, $01
+ call RunPikaPicAnimSetupScript
+ call DummyFunction_fdad5
+ call AnimateCurrentPikaPicAnimFrame
+ call DummyFunction_fdad5
+ ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call PikaPicAnimTimerAndJoypad
and a
@@ -194,57 +238,57 @@ CheckPikaPicAnimTimer:
ret
.timer_expired
- ld a, $01
+ ld a, $1
ret
-Func_fdad5:
+DummyFunction_fdad5:
ret
-Func_fdad6:
+AnimateCurrentPikaPicAnimFrame:
ld bc, wPikaPicAnimObjectDataBuffer
ld a, 4
-.asm_fdadb
+.loop
push af
push bc
- ld hl, 0
+ ld hl, 0 ; struct index
add hl, bc
ld a, [hli]
and a
- jr z, .asm_fdb26
+ jr z, .skip
ld a, [hli]
- ld [wCurPikaPicAnimObject], a
+ ld [wCurPikaPicAnimObjectScriptIdx], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 1], a
+ ld [wCurPikaPicAnimObjectFrameIdx], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 2], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
ld a, [hli]
- ld [wd456], a
+ ld [wCurPikaPicAnimObjectVTileOffset], a
ld a, [hli]
- ld [wd457], a
+ ld [wCurPikaPicAnimObjectXOffset], a
ld a, [hli]
- ld [wd458], a
+ ld [wCurPikaPicAnimObjectYOffset], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 3], a
+ ld [wCurPikaPicAnimObject + 6], a
push bc
- call Func_fdb7e
+ call LoadPikaPicAnimObjectData
pop bc
- ld hl, 1
+ ld hl, 1 ; script index
add hl, bc
- ld a, [wCurPikaPicAnimObject]
+ ld a, [wCurPikaPicAnimObjectScriptIdx]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 2]
+ ld a, [wCurPikaPicAnimObjectFrameTimer]
ld [hli], a
- ld a, [wd456]
+ ld a, [wCurPikaPicAnimObjectVTileOffset]
ld [hli], a
- ld a, [wd457]
+ ld a, [wCurPikaPicAnimObjectXOffset]
ld [hli], a
- ld a, [wd458]
+ ld a, [wCurPikaPicAnimObjectYOffset]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 3]
+ ld a, [wCurPikaPicAnimObject + 6]
ld [hl], a
-.asm_fdb26
+.skip
pop bc
ld hl, 8
add hl, bc
@@ -252,7 +296,7 @@ Func_fdad6:
ld c, l
pop af
dec a
- jr nz, .asm_fdadb
+ jr nz, .loop
ret
PikaPicAnimCommand_object:
@@ -279,7 +323,7 @@ PikaPicAnimCommand_object:
call GetPikaPicAnimByte
ld [hl], a
xor a
- ld [hli], a
+ ld [hli], a ; overloads
ld [hli], a
call GetPikaPicAnimByte
ld [hli], a
@@ -311,323 +355,65 @@ PikaPicAnimCommand_deleteobject:
ld [hl], a
ret
-Func_fdb7e:
-.asm_fdb7e
- ld a, [wCurPikaPicAnimObject]
+LoadPikaPicAnimObjectData:
+.loop
+ ld a, [wCurPikaPicAnimObjectScriptIdx]
cp $23
- jr c, .asm_fdb87
- ld a, $04
-.asm_fdb87
+ jr c, .valid
+ ld a, $4
+.valid
ld e, a
- ld d, $00
- ld hl, Pointers_fdbc9
+ ld d, 0
+ ld hl, PikaPicAnimBGFramesPointers
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
ld e, a
ld d, 0
add hl, de
add hl, de
ld a, [hli]
cp $e0
- jr z, .asm_fdba1
- jr .asm_fdbaa
+ jr z, .end
+ jr .init
-.asm_fdba1
+.end
xor a
- ld [wCurPikaPicAnimObject + 1], a
- ld [wCurPikaPicAnimObject + 2], a
- jr .asm_fdb7e
+ ld [wCurPikaPicAnimObjectFrameIdx], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
+ jr .loop
-.asm_fdbaa
+.init
push hl
- call Func_fdd62
+ call LoadCurPikaPicObjectTilemap
pop hl
ld a, [hl]
and a
- jr z, .asm_fdbc8
- ld a, [wCurPikaPicAnimObject + 2]
+ jr z, .not_done ; lasts forever
+ ld a, [wCurPikaPicAnimObjectFrameTimer]
inc a
- ld [wCurPikaPicAnimObject + 2], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
cp [hl]
- jr nz, .asm_fdbc8
+ jr nz, .not_done
xor a
- ld [wCurPikaPicAnimObject + 2], a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld [wCurPikaPicAnimObjectFrameTimer], a
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
inc a
- ld [wCurPikaPicAnimObject + 1], a
-.asm_fdbc8
+ ld [wCurPikaPicAnimObjectFrameIdx], a
+.not_done
ret
-Pointers_fdbc9:
- dw Data_fdc11
- dw Data_fdc11
- dw Data_fdc29
- dw Data_fdc32
- dw Data_fdc3b
- dw Data_fdc3e
- dw Data_fdc41
- dw Data_fdc50
- dw Data_fdc61
- dw Data_fdc6e
- dw Data_fdc77
- dw Data_fdc84
- dw Data_fdc8d
- dw Data_fdc98
- dw Data_fdca5
- dw Data_fdcb2
- dw Data_fdcb7
- dw Data_fdcc2
- dw Data_fdccb
- dw Data_fdcd4
- dw Data_fdcdf
- dw Data_fdce8
- dw Data_fdcf1
- dw Data_fdcf6
- dw Data_fdd01
- dw Data_fdd0a
- dw Data_fdd13
- dw Data_fdd1c
- dw Data_fdd27
- dw Data_fdd2c
- dw Data_fdd35
- dw Data_fdd40
- dw Data_fdd47
- dw Data_fdd54
- dw Data_fdd59
- dw Data_fdc3b
-
-Data_fdc11:
- db $01, $14
- db $07, $02
- db $01, $01
- db $07, $02
- db $01, $01
- db $07, $08
- db $e0
-Data_fdc1e:
- db $02, $02
- db $01, $01
- db $02, $02
- db $01, $01
- db $02, $08
- db $e0
-Data_fdc29:
- db $00, $08
- db $08, $08
- db $00, $08
- db $08, $08
- db $e0
-Data_fdc32:
- db $08, $08
- db $00, $08
- db $08, $08
- db $00, $08
- db $e0
-Data_fdc3b:
- db $01, $00
- db $e0
-Data_fdc3e:
- db $09, $00
- db $e0
-Data_fdc41:
- db $00, $02
- db $0e, $04
- db $00, $08
- db $0e, $04
- db $00, $40
- db $0e, $04
- db $00, $40
- db $e0
-Data_fdc50:
- db $00, $04
- db $0f, $04
- db $00, $04
- db $0f, $04
- db $00, $08
- db $0f, $04
- db $00, $08
- db $0f, $04
- db $e0
-Data_fdc61:
- db $10, $01
- db $00, $01
- db $10, $01
- db $00, $40
- db $10, $01
- db $00, $40
- db $e0
-Data_fdc6e:
- db $00, $08
- db $11, $08
- db $00, $14
- db $11, $08
- db $e0
-Data_fdc77:
- db $00, $02
- db $12, $02
- db $00, $02
- db $12, $40
- db $00, $03
- db $12, $40
- db $e0
-Data_fdc84:
- db $00, $08
- db $13, $40
- db $00, $04
- db $13, $40
- db $e0
-Data_fdc8d:
- db $14, $08
- db $00, $02
- db $14, $08
- db $00, $02
- db $14, $08
- db $e0
-Data_fdc98:
- db $15, $04
- db $00, $08
- db $15, $04
- db $00, $40
- db $15, $04
- db $00, $40
- db $e0
-Data_fdca5:
- db $00, $02
- db $16, $02
- db $00, $02
- db $16, $02
- db $00, $14
- db $16, $02
- db $e0
-Data_fdcb2:
- db $00, $08
- db $17, $08
- db $e0
-Data_fdcb7:
- db $00, $08
- db $17, $03
- db $18, $05
- db $17, $03
- db $00, $05
- db $e0
-Data_fdcc2:
- db $00, $14
- db $19, $08
- db $00, $14
- db $19, $08
- db $e0
-Data_fdccb:
- db $00, $0d
- db $1a, $0c
- db $00, $64
- db $1a, $08
- db $e0
-Data_fdcd4:
- db $00, $05
- db $1b, $05
- db $00, $05
- db $1b, $05
- db $00, $64
- db $e0
-Data_fdcdf:
- db $00, $02
- db $1c, $02
- db $00, $02
- db $1c, $02
- db $e0
-Data_fdce8:
- db $00, $05
- db $1d, $05
- db $00, $05
- db $1d, $05
- db $e0
-Data_fdcf1:
- db $1e, $08
- db $00, $64
- db $e0
-Data_fdcf6:
- db $00, $0a
- db $1f, $03
- db $00, $03
- db $1f, $03
- db $00, $64
- db $e0
-Data_fdd01:
- db $00, $03
- db $20, $64
- db $00, $08
- db $20, $08
- db $e0
-Data_fdd0a:
- db $21, $06
- db $00, $06
- db $21, $06
- db $00, $06
- db $e0
-Data_fdd13:
- db $00, $08
- db $22, $0c
- db $00, $08
- db $22, $0c
- db $e0
-Data_fdd1c:
- db $00, $08
- db $09, $02
- db $0a, $01
- db $0b, $01
- db $0c, $64
- db $e0
-Data_fdd27:
- db $00, $08
- db $24, $64
- db $e0
-Data_fdd2c:
- db $00, $10
- db $25, $10
- db $00, $10
- db $25, $10
- db $e0
-Data_fdd35:
- db $00, $06
- db $26, $06
- db $00, $06
- db $26, $06
- db $00, $64
- db $e0
-Data_fdd40:
- db $00, $06
- db $09, $06
- db $0a, $64
- db $e0
-Data_fdd47:
- db $00, $14
- db $09, $08
- db $00, $14
- db $09, $08
- db $0a, $08
- db $0b, $64
- db $e0
-Data_fdd54:
- db $00, $04
- db $09, $64
- db $e0
-Data_fdd59:
- db $00, $0c
- db $09, $0c
- db $00, $0c
- db $09, $64
- db $e0
-
-Func_fdd62:
+INCLUDE "data/pikachu_pic_objects.asm"
+
+LoadCurPikaPicObjectTilemap:
and a
ret z
ld e, a
ld d, 0
- ld hl, Pointers_fddb8
+ ld hl, PikaPicTilemapPointers
add hl, de
add hl, de
ld e, [hl]
@@ -641,45 +427,45 @@ Func_fdd62:
inc de
push de
push bc
- call Func_fdd98
+ call .GetStartCoords
pop bc
pop de
-.asm_fdd7c
+.row
push bc
push hl
- ld a, [wd456]
+ ld a, [wCurPikaPicAnimObjectVTileOffset] ; tile id offset
ld c, a
-.asm_fdd82
+.col
ld a, [de]
inc de
cp $ff
- jr z, .asm_fdd8a
+ jr z, .skip
add c
ld [hl], a
-.asm_fdd8a
+.skip
inc hl
dec b
- jr nz, .asm_fdd82
+ jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec c
- jr nz, .asm_fdd7c
+ jr nz, .row
ret
-Func_fdd98:
+.GetStartCoords:
push bc
- ld a, [wd458]
+ ld a, [wCurPikaPicAnimObjectYOffset] ; Y offset
ld b, a
- ld a, [wPikaPicTextboxStartY]
+ ld a, [wPikaPicPikaDrawStartY]
add b
coord hl, 0, 0
ld bc, SCREEN_WIDTH
call AddNTimes
- ld a, [wd457]
+ ld a, [wCurPikaPicAnimObjectXOffset] ; X offset
ld c, a
- ld a, [wPikaSpriteY]
+ ld a, [wPikaPicPikaDrawStartX]
add c
ld c, a
ld b, 0
@@ -687,234 +473,7 @@ Func_fdd98:
pop bc
ret
-Pointers_fddb8:
- dw Data_fde0e
- dw Data_fde0f
- dw Data_fde2a
- dw Data_fde60
- dw Data_fde63
- dw Data_fde67
- dw Data_fde6b
- dw Data_fde45
- dw Data_fde6b
- dw Data_fdfaa
- dw Data_fdfc5
- dw Data_fdfe0
- dw Data_fdffb
- dw Data_fe016
- dw Data_fde81
- dw Data_fde9c
- dw Data_fdeb7
- dw Data_fded2
- dw Data_fdeed
- dw Data_fdf08
- dw Data_fdf23
- dw Data_fdf3e
- dw Data_fdf59
- dw Data_fdf74
- dw Data_fdf8f
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfc5
- dw Data_fdfe0
- dw Data_fde0f
-
-Data_fde0e:
- db $ff ; unused
-
-Data_fde0f: ; fde0f
- db 5, 5
- db $00, $05, $0a, $0f, $14
- db $01, $06, $0b, $10, $15
- db $02, $07, $0c, $11, $16
- db $03, $08, $0d, $12, $17
- db $04, $09, $0e, $13, $18
-
-Data_fde2a: ; fde2a
- db 5, 5
- db $19, $1e, $23, $28, $2d
- db $1a, $1f, $24, $29, $2e
- db $1b, $20, $25, $2a, $2f
- db $1c, $21, $26, $2b, $30
- db $1d, $22, $27, $2c, $31
-
-Data_fde45: ; fde45
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $20, $25, $ff, $ff
- db $ff, $21, $26, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fde60: ; fde60
- db 1, 1
- db $00
-
-Data_fde63: ; fde63
- db 2, 1
- db $00
- db $01
-
-Data_fde67: ; fde67
- db 1, 2
- db $00, $01
-
-Data_fde6b: ; fde6b
- db 2, 2
- db $00, $01
- db $02, $03
-
-Data_fde71: ; fde71
- db 3, 2
- db $00, $01
- db $02, $03
- db $04, $05
-
-Data_fde79: ; fde79
- db 2, 3
- db $00, $01, $02
- db $03, $04, $05
-
-Data_fde81: ; fde81
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fde9c: ; fde9c
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
-
-Data_fdeb7: ; fdeb7
- db 5, 5
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $04, $05, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fded2: ; fded2
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
-
-Data_fdeed: ; fdeed
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $00, $01
- db $ff, $ff, $ff, $02, $03
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf08: ; fdf08
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf23: ; fdf23
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdf3e: ; fdf3e
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf59: ; fdf59
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $04, $05, $ff, $ff, $ff
-
-Data_fdf74: ; fdf74
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdf8f: ; fdf8f
- db 5, 5
- db $19, $1a, $1b, $1c, $1d
- db $1e, $1f, $20, $21, $22
- db $23, $24, $25, $26, $27
- db $28, $29, $2a, $2b, $2c
- db $2d, $2e, $2f, $30, $31
-
-Data_fdfaa: ; fdfaa
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdfc5: ; fdfc5
- db 5, 5
- db $19, $1a, $1b, $1c, $1d
- db $1e, $1f, $20, $21, $22
- db $23, $24, $25, $26, $27
- db $28, $29, $2a, $2b, $2c
- db $2d, $2e, $2f, $30, $31
-
-Data_fdfe0: ; fdfe0
- db 5, 5
- db $32, $33, $34, $35, $36
- db $37, $38, $39, $3a, $3b
- db $3c, $3d, $3e, $3f, $40
- db $41, $42, $43, $44, $45
- db $46, $47, $48, $49, $4a
-
-Data_fdffb: ; fdffb
- db 5, 5
- db $4b, $4c, $4d, $4e, $4f
- db $50, $51, $52, $53, $54
- db $55, $56, $57, $58, $59
- db $5a, $5b, $5c, $5d, $5e
- db $5f, $60, $61, $62, $63
-
-Data_fe016: ; fe016
- db 5, 5
- db $64, $65, $66, $67, $68
- db $69, $6a, $6b, $6c, $6d
- db $6e, $6f, $70, $71, $72
- db $73, $74, $75, $76, $77
- db $78, $79, $7a, $7b, $7c
+INCLUDE "data/pikachu_pic_tilemaps.asm"
LoadPikaPicAnimGFXHeader:
push hl
@@ -936,8 +495,8 @@ LoadPikaPicAnimGFXHeader:
pop hl
ret
-RunPikaPicAnimScript:
- call Func_fe066
+RunPikaPicAnimSetupScript:
+ call .CheckAndAdvanceTimer
ret c
xor a
ld [wPikaPicAnimPointerSetupFinished], a
@@ -945,7 +504,7 @@ RunPikaPicAnimScript:
call GetPikaPicAnimByte
ld e, a
ld d, 0
- ld hl, Jumptable_fe071
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -957,7 +516,7 @@ RunPikaPicAnimScript:
jr z, .loop
ret
-Func_fe066:
+.CheckAndAdvanceTimer:
ld a, [wPikaPicAnimDelay]
and a
ret z
@@ -966,7 +525,7 @@ Func_fe066:
scf
ret
-Jumptable_fe071:
+.Jumptable:
dw PikaPicAnimCommand_nop ; 00, 0 params
dw PikaPicAnimCommand_writebyte ; 01, 1 param
dw PikaPicAnimCommand_loadgfx ; 02, 1 param
@@ -980,7 +539,7 @@ Jumptable_fe071:
dw PikaPicAnimCommand_setduration ; 0a, 1 dw param
dw PikaPicAnimCommand_cry ; 0b, 1 param
dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params
- dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret)
+ dw PikaPicAnimCommand_run ; 0d, 0 params (ret)
dw PikaPicAnimCommand_ret ; 0e, 0 params (ret)
PikaPicAnimCommand_nop:
@@ -991,9 +550,9 @@ PikaPicAnimCommand_ret:
ld [wPikaPicAnimTimer], a
xor a
ld [wPikaPicAnimTimer + 1], a
- jr PikaPicAnimCommand_waitbgmap
+ jr PikaPicAnimCommand_run
-Func_fe09b:
+; XXX
ret
PikaPicAnimCommand_setduration:
@@ -1003,7 +562,7 @@ PikaPicAnimCommand_setduration:
ld [wPikaPicAnimTimer + 1], a
ret
-PikaPicAnimCommand_waitbgmap:
+PikaPicAnimCommand_run:
ld a, $ff
ld [wPikaPicAnimPointerSetupFinished], a
ret
@@ -1068,11 +627,11 @@ PikaPicAnimCommand_loadgfx:
cp a, $ff
jr z, .compressed
call RequestPikaPicAnimGFX
- jr .asm_fe109
+ jr .done
.compressed
call DecompressRequestPikaPicAnimGFX
-.asm_fe109
+.done
pop af
ld [hTilesetType], a
pop af
@@ -1144,6 +703,11 @@ GetPikaPicVRAMAddressForNewGFX:
ret
CheckIfThereIsRoomForPikaPicAnimGFX:
+; d: idx
+; e: size
+; FATAL: If the graphic has already been loaded, or if there are
+; already 8 graphics objects loaded, the game will execute arbitrary
+; code.
push bc
push hl
ld hl, wPikaPicUsedGFX
@@ -1176,9 +740,9 @@ CheckIfThereIsRoomForPikaPicAnimGFX:
add e
ld [wPikaPicUsedGFXCount], a
cp $80
- jr z, .asm_fe1a7
+ jr z, .okay
jr nc, .failed
-.asm_fe1a7
+.okay
ld a, [hl]
and a
jr .pop_ret
@@ -1228,12 +792,12 @@ PikaPicAnimCommand_thunderbolt:
call DelayFrame
ld a, [wAudioROMBank]
push af
- ld a, BANK(SFX_Battle_2F)
+ ld a, BANK(SFX_Thunderbolt)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
- call PikaPicAnimLoadThunderboltAudio
+ call .LoadAudio
call PlaySound
- call PikaPicAnimThunderboltFlashScreen
+ call .FlashScreen
call WaitForSoundToFinish
pop af
ld [wAudioROMBank], a
@@ -1242,7 +806,7 @@ PikaPicAnimCommand_thunderbolt:
ld [wMuteAudioAndPauseMusic], a
ret
-PikaPicAnimLoadThunderboltAudio:
+.LoadAudio:
ld hl, MoveSoundTable
ld e, THUNDERBOLT
ld d, 0
@@ -1263,8 +827,8 @@ PikaPicAnimLoadThunderboltAudio:
ld a, b
ret
-PikaPicAnimThunderboltFlashScreen:
- ld hl, Data_fe242
+.FlashScreen:
+ ld hl, PikaPicAnimThunderboltPals
.loop
ld a, [hli]
cp $ff
@@ -1273,11 +837,11 @@ PikaPicAnimThunderboltFlashScreen:
ld b, [hl]
inc hl
push hl
- call GetDMGBGPalForPikaThunderbolt
+ call .UpdatePal
pop hl
jr .loop
-GetDMGBGPalForPikaThunderbolt:
+.UpdatePal:
ld a, b
ld [rBGP], a
call UpdateGBCPal_BGP
diff --git a/engine/pikachu_status.asm b/engine/pikachu_status.asm
index 17330645..c73d3b3f 100755
--- a/engine/pikachu_status.asm
+++ b/engine/pikachu_status.asm
@@ -1,4 +1,4 @@
-IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8)
+IsStarterPikachuInOurParty::
ld hl, wPartySpecies
ld de, wPartyMon1OTID
ld bc, wPartyMonOT
@@ -64,18 +64,18 @@ IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8)
and a
ret
-IsThisPartymonStarterPikachu_Box:: ; fce0d (3f:4e0d)
+IsThisPartymonStarterPikachu_Box::
ld hl, wBoxMon1
ld bc, wBoxMon2 - wBoxMon1
ld de, wBoxMonOT
jr asm_fce21
-IsThisPartymonStarterPikachu_Party:: ; fce18 (3f:4e18)
+IsThisPartymonStarterPikachu_Party::
IsThisPartymonStarterPikachu::
ld hl, wPartyMon1
ld bc, wPartyMon2 - wPartyMon1
ld de, wPartyMonOT
-asm_fce21: ; fce21 (3f:4e21)
+asm_fce21:
ld a, [wWhichPokemon]
call AddNTimes
ld a, [hl]
@@ -113,7 +113,7 @@ asm_fce21: ; fce21 (3f:4e21)
scf
ret
-UpdatePikachuMoodAfterBattle:: ; fce5a (3f:4e5a)
+UpdatePikachuMoodAfterBattle::
; because d is always $82 at this function, it serves to
; ensure Pikachu's mood is at least 130 after battle
push de
@@ -136,7 +136,7 @@ UpdatePikachuMoodAfterBattle:: ; fce5a (3f:4e5a)
ld [wPikachuMood], a
ret
-CheckPikachuFaintedOrStatused:: ; fce73 (3f:4e73)
+CheckPikachuFaintedOrStatused::
; function to test if Pikachu is alive?
xor a
ld [wWhichPokemon], a
@@ -178,7 +178,7 @@ CheckPikachuFaintedOrStatused:: ; fce73 (3f:4e73)
and a
ret
-IsSurfingPikachuInThePlayersParty:: ; fceab (3f:4eab)
+IsSurfingPikachuInThePlayersParty::
ld hl, wPartySpecies
ld de, wPartyMon1Moves
ld bc, wPartyMonOT
diff --git a/engine/pokedex_rating.asm b/engine/pokedex_rating.asm
index 195c89fb..97bbfc24 100755
--- a/engine/pokedex_rating.asm
+++ b/engine/pokedex_rating.asm
@@ -1,4 +1,4 @@
-DisplayDexRating: ; 44169 (11:4169)
+DisplayDexRating:
ld hl, wPokedexSeen
ld b, wPokedexSeenEnd - wPokedexSeen
call CountSetBits
@@ -51,11 +51,11 @@ DisplayDexRating: ; 44169 (11:4169)
ld [de], a
ret
-DexCompletionText: ; 441cc (11:41cc)
+DexCompletionText:
TX_FAR _DexCompletionText
db "@"
-DexRatingsTable: ; 441d1 (11:41d1)
+DexRatingsTable:
db 10
dw DexRatingText_Own0To9
db 20
@@ -89,66 +89,66 @@ DexRatingsTable: ; 441d1 (11:41d1)
db 152
dw DexRatingText_Own150To151
-DexRatingText_Own0To9: ; 44201 (11:4201)
+DexRatingText_Own0To9:
TX_FAR _DexRatingText_Own0To9
db "@"
-DexRatingText_Own10To19: ; 44206 (11:4206)
+DexRatingText_Own10To19:
TX_FAR _DexRatingText_Own10To19
db "@"
-DexRatingText_Own20To29: ; 4420b (11:420b)
+DexRatingText_Own20To29:
TX_FAR _DexRatingText_Own20To29
db "@"
-DexRatingText_Own30To39: ; 44210 (11:4210)
+DexRatingText_Own30To39:
TX_FAR _DexRatingText_Own30To39
db "@"
-DexRatingText_Own40To49: ; 44215 (11:4215)
+DexRatingText_Own40To49:
TX_FAR _DexRatingText_Own40To49
db "@"
-DexRatingText_Own50To59: ; 4421a (11:421a)
+DexRatingText_Own50To59:
TX_FAR _DexRatingText_Own50To59
db "@"
-DexRatingText_Own60To69: ; 4421f (11:421f)
+DexRatingText_Own60To69:
TX_FAR _DexRatingText_Own60To69
db "@"
-DexRatingText_Own70To79: ; 44224 (11:4224)
+DexRatingText_Own70To79:
TX_FAR _DexRatingText_Own70To79
db "@"
-DexRatingText_Own80To89: ; 44229 (11:4229)
+DexRatingText_Own80To89:
TX_FAR _DexRatingText_Own80To89
db "@"
-DexRatingText_Own90To99: ; 4422e (11:422e)
+DexRatingText_Own90To99:
TX_FAR _DexRatingText_Own90To99
db "@"
-DexRatingText_Own100To109: ; 44233 (11:4233)
+DexRatingText_Own100To109:
TX_FAR _DexRatingText_Own100To109
db "@"
-DexRatingText_Own110To119: ; 44238 (11:4238)
+DexRatingText_Own110To119:
TX_FAR _DexRatingText_Own110To119
db "@"
-DexRatingText_Own120To129: ; 4423d (11:423d)
+DexRatingText_Own120To129:
TX_FAR _DexRatingText_Own120To129
db "@"
-DexRatingText_Own130To139: ; 44242 (11:4242)
+DexRatingText_Own130To139:
TX_FAR _DexRatingText_Own130To139
db "@"
-DexRatingText_Own140To149: ; 44247 (11:4247)
+DexRatingText_Own140To149:
TX_FAR _DexRatingText_Own140To149
db "@"
-DexRatingText_Own150To151: ; 4424c (11:424c)
+DexRatingText_Own150To151:
TX_FAR _DexRatingText_Own150To151
db "@"
diff --git a/engine/predefs.asm b/engine/predefs.asm
index 9a97fe95..e752a7ef 100755
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -1,4 +1,4 @@
-GetPredefPointer: ; f67ed (3d:67ed)
+GetPredefPointer:
; Store the contents of the register
; pairs (hl, de, bc) at wPredefRegisters.
; Then put the bank and address of predef
@@ -49,7 +49,7 @@ GetPredefPointer: ; f67ed (3d:67ed)
ret
-PredefPointers:: ; f681d (3d:681d)
+PredefPointers::
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
const_def
@@ -61,7 +61,7 @@ PredefPointers:: ; f681d (3d:681d)
add_predef CopyDownscaledMonTiles
add_predef Func_f0a7
add_predef HealParty
- add_predef MoveAnimation ; 08 play move animation (1e:4d97)
+ add_predef MoveAnimation
add_predef DivideBCDPredef
add_predef DivideBCDPredef2
add_predef AddBCDPredef
@@ -116,7 +116,7 @@ PredefPointers:: ; f681d (3d:681d)
add_predef InternalClockTradeAnim
add_predef TrainerEngage
add_predef IndexToPokedex
- add_predef DisplayPicCenteredOrUpperRight ; 3B display pic? (01:600d)
+ add_predef DisplayPicCenteredOrUpperRight
add_predef UsedCut
add_predef ShowPokedexData
add_predef WriteMonMoves
@@ -127,21 +127,21 @@ PredefPointers:: ; f681d (3d:681d)
add_predef CanLearnTM
add_predef TMToMove
add_predef _RunPaletteCommand
- add_predef StarterDex ; 46 (17:40d4)
+ add_predef StarterDex
add_predef _AddPartyMon
add_predef UpdateHPBar2
add_predef DrawEnemyHUDAndHPBar
add_predef LoadTownMap_Nest
add_predef PrintMonType
- add_predef EmotionBubble ; 4C player exclamation (10:516f)
- add_predef EmptyFunc3 ; return immediately (01:5b63)
+ add_predef EmotionBubble
+ add_predef EmptyFunc3 ; return immediately
add_predef AskName
add_predef PewterGuys
add_predef SaveSAVtoSRAM2
add_predef LoadSAV2
add_predef LoadSAV
add_predef SaveSAVtoSRAM1
- add_predef DoInGameTradeDialogue ; 54 initiate trade (1c:5b86)
+ add_predef DoInGameTradeDialogue
add_predef HallOfFamePC
add_predef DisplayDexRating
@@ -149,14 +149,13 @@ PredefPointers:: ; f681d (3d:681d)
predef_const EnterMapAnim
dbw $1E, _LeaveMapAnim ; wrong bank
dbw $1E, EnterMapAnim ; wrong bank
-
add_predef GetTileTwoStepsInFrontOfPlayer
add_predef CheckForCollisionWhenPushingBoulder
add_predef PrintStrengthTxt
add_predef PickUpItem
add_predef PrintMoveType
add_predef LoadMovePPs
- add_predef DrawHP ; 5F (04:5468)
+ add_predef DrawHP
add_predef DrawHP2
add_predef DisplayElevatorFloorMenu
add_predef OaksAideScript
diff --git a/engine/predefs17.asm b/engine/predefs17.asm
index a674b45a..21289c6a 100755
--- a/engine/predefs17.asm
+++ b/engine/predefs17.asm
@@ -1,6 +1,6 @@
; 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)
+StarterDex:
ld a, %01001011 ; set starter flags
ld [wPokedexOwned], a
predef ShowPokedexData
diff --git a/engine/predefs17_2.asm b/engine/predefs17_2.asm
index 49818543..e9235f13 100755
--- a/engine/predefs17_2.asm
+++ b/engine/predefs17_2.asm
@@ -1,5 +1,5 @@
; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
-SetPartyMonTypes: ; 5db93 (17:5b93)
+SetPartyMonTypes:
call GetPredefRegisters
ld bc, wPartyMon1Type - wPartyMon1 ; $5
add hl, bc
diff --git a/engine/predefs7.asm b/engine/predefs7.asm
index 1bf4c018..bfa0ab57 100755
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -1,4 +1,4 @@
-DisplayElevatorFloorMenu: ; 1c264 (7:4264)
+DisplayElevatorFloorMenu:
ld hl, wd730
ld a, [hl]
push af
@@ -49,6 +49,6 @@ DisplayElevatorFloorMenu: ; 1c264 (7:4264)
ld [hli], a ; destination map ID
ret
-WhichFloorText: ; 1c2bd (7:42bd)
+WhichFloorText:
TX_FAR _WhichFloorText
db "@"
diff --git a/engine/predefsA.asm b/engine/predefsA.asm
index 1cfb60f6..b8384150 100644
--- a/engine/predefsA.asm
+++ b/engine/predefsA.asm
@@ -1,5 +1,5 @@
; inverts the BGP for 4 (6 on CGB due to lag) frames
-InvertBGPal_4Frames: ; 2bd4c (a:7d4c)
+InvertBGPal_4Frames:
call GetPredefRegisters ; leftover of red/blue, has no use here
ld a, [rBGP]
xor $ff
@@ -13,7 +13,7 @@ InvertBGPal_4Frames: ; 2bd4c (a:7d4c)
call UpdateGBCPal_BGP
ret
-PredefShakeScreenVertically: ; 2bd67 (a:7d67)
+PredefShakeScreenVertically:
; Moves the window down and then back in a sequence of progressively smaller
; numbers of pixels, starting at b.
call GetPredefRegisters
@@ -39,7 +39,7 @@ PredefShakeScreenVertically: ; 2bd67 (a:7d67)
ld c, 3
jp DelayFrames
-PredefShakeScreenHorizontally: ; 2bd8d (a:7d8d)
+PredefShakeScreenHorizontally:
; Moves the window right and then back in a sequence of progressively smaller
; numbers of pixels, starting at b.
call GetPredefRegisters
diff --git a/engine/print_waiting_text.asm b/engine/print_waiting_text.asm
index f4220748..bd2180a1 100644
--- a/engine/print_waiting_text.asm
+++ b/engine/print_waiting_text.asm
@@ -1,4 +1,4 @@
-PrintWaitingText: ; 4b89 (1:4b89)
+PrintWaitingText:
coord hl, 3, 10
lb bc, 1, 11
ld a, [wIsInBattle]
@@ -15,5 +15,5 @@ PrintWaitingText: ; 4b89 (1:4b89)
ld c, 50
jp DelayFrames
-WaitingText: ; 4bab (1:4bab)
- db "Waiting...!@" \ No newline at end of file
+WaitingText:
+ db "Waiting...!@"
diff --git a/engine/printer.asm b/engine/printer.asm
index d4cc8192..46eb2c59 100644
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -11,7 +11,7 @@
INCLUDE "engine/printer/serial.asm"
-PrintPokedexEntry: ; e8b74 (3a:4b74)
+PrintPokedexEntry:
ld a, [wUpdateSpritesEnabled]
push af
xor a
@@ -238,7 +238,7 @@ Func_e8d11:
scf
ret
-PrintPCBox:: ; e8d35 (3a:4e79)
+PrintPCBox::
ld a, [wBoxDataStart]
and a
jp z, Func_e8df4
@@ -359,7 +359,7 @@ PrintFanClubPortrait: ; e8e24
xor a
ld [hCanceledPrinting], a
call Printer_PlayPrinterMusic
- call Func_ea3ea
+ call Printer_GetMonStats
ld a, [rIE]
push af
xor a
@@ -397,7 +397,7 @@ PrintFanClubPortrait: ; e8e24
call Printer_PlayMapMusic
ret
-Func_e8e79: ; e8e79 (3a:4e79)
+PrinterDebug:
push af
push bc
push de
@@ -415,13 +415,13 @@ Func_e8e79: ; e8e79 (3a:4e79)
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Printer_CopyTileMapToPrinterTileBuffer
- call Func_ea573
+ call PrinterDebug_LoadGFX
.loop
ld a, [wPrinterSendState]
bit 7, a
jr nz, .quit
- call Func_ea5d1
- call Func_ea5b7
+ call PrinterDebug_DoFunction
+ call PrinterDebug_ConvertStatusFlagsToTiles
call DelayFrame
jr .loop
@@ -443,7 +443,7 @@ Func_e8e79: ; e8e79 (3a:4e79)
pop af
ret
-Printer_CheckPressingB: ; e8eca (3a:4eca)
+Printer_CheckPressingB:
ld a, [hJoyHeld]
and B_BUTTON
jr nz, .quit
@@ -476,21 +476,21 @@ Printer_CheckPressingB: ; e8eca (3a:4eca)
scf
ret
-Printer_CopyTileMapToPrinterTileBuffer: ; e8efc (3a:4efc)
+Printer_CopyTileMapToPrinterTileBuffer:
coord hl, 0, 0
coord de, 0, 0, wPrinterTileBuffer
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
-Printer_CopyTileMapFromPrinterTileBuffer: ; e8f09 (3a:4f09)
+Printer_CopyTileMapFromPrinterTileBuffer:
coord hl, 0, 0, wPrinterTileBuffer
coord de, 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
-Printer_ResetJoypadHRAM: ; e8f16 (3a:4f16)
+Printer_ResetJoypadHRAM:
xor a
ld [hJoyLast], a
ld [hJoyReleased], a
@@ -500,7 +500,7 @@ Printer_ResetJoypadHRAM: ; e8f16 (3a:4f16)
ld [hJoy6], a
ret
-Printer_PlayPrinterMusic: ; e8f24 (3a:4f24)
+Printer_PlayPrinterMusic:
call Printer_FadeOutMusicAndWait
ld a, [wAudioROMBank]
ld [wAudioSavedROMBank], a
@@ -511,12 +511,12 @@ Printer_PlayPrinterMusic: ; e8f24 (3a:4f24)
call PlaySound
ret
-Printer_PlayMapMusic: ; e8f3b (3a:4f3b)
+Printer_PlayMapMusic:
call Printer_FadeOutMusicAndWait
call PlayDefaultMusic
ret
-Printer_FadeOutMusicAndWait: ; e8f42 (3a:4f42)
+Printer_FadeOutMusicAndWait:
ld a, $4
ld [wAudioFadeOutControl], a
call StopAllMusic
@@ -526,7 +526,7 @@ Printer_FadeOutMusicAndWait: ; e8f42 (3a:4f42)
jr nz, .wait_music_stop
ret
-GBPrinter_CheckForErrors: ; e8f51 (3a:4f51)
+GBPrinter_CheckForErrors:
ld a, [wPrinterHandshake]
cp $81
jr z, .check_other_errors
diff --git a/engine/printer/serial.asm b/engine/printer/serial.asm
index 54d31a15..b5d71596 100755
--- a/engine/printer/serial.asm
+++ b/engine/printer/serial.asm
@@ -1,4 +1,4 @@
-StartTransmission_Send9Rows: ; e8783 (3a:4783)
+StartTransmission_Send9Rows:
ld a, 9
Printer_StartTransmission:
push af
@@ -19,7 +19,7 @@ Printer_StartTransmission:
ret
; e87a8
-PrinterTransmissionJumptable: ; e87a8 (3a:47a8)
+PrinterTransmissionJumptable:
ld a, [wPrinterSendState]
ld e, a
ld d, 0
@@ -105,9 +105,9 @@ Printer_StartTransmittingTilemap:
ld hl, PrinterDataPacket3
call CopyPrinterDataHeader
call Printer_Convert2RowsTo2bpp
- ld a, (wPrinterSendDataSourceEnd - wPrinterSendDataSource) % $100
+ ld a, (wPrinterSendDataSource1End - wPrinterSendDataSource1) % $100
ld [wPrinterDataSize], a
- ld a, (wPrinterSendDataSourceEnd - wPrinterSendDataSource) / $100
+ ld a, (wPrinterSendDataSource1End - wPrinterSendDataSource1) / $100
ld [wPrinterDataSize + 1], a
call ComputePrinterChecksum
call Printer_Next
@@ -305,8 +305,8 @@ ResetPrinterData:
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
- ld hl, wPrinterSendDataSource
- ld bc, wPrinterSendDataSourceEnd - wPrinterSendDataSource
+ ld hl, wPrinterSendDataSource1
+ ld bc, wPrinterSendDataSource1End - wPrinterSendDataSource1
call Printer_FillMemory
ret
@@ -319,7 +319,7 @@ ComputePrinterChecksum:
ld c, a
ld a, [wPrinterDataSize + 1]
ld b, a
- ld de, wPrinterSendDataSource
+ ld de, wPrinterSendDataSource1
call .AddToChecksum
ld a, l
ld [wPrinterChecksum], a
@@ -344,13 +344,13 @@ ComputePrinterChecksum:
Printer_StageHeaderForSend:
ld a, $1
- ld [wPrinterSendDataSource], a
+ ld [wPrinterSendDataSource1], a
ld a, [wcae2]
- ld [wPrinterSendDataSource + 1], a
+ ld [wPrinterSendDataSource1 + 1], a
ld a, %11100100
- ld [wPrinterSendDataSource + 2], a
+ ld [wPrinterSendDataSource1 + 2], a
ld a, [wPrinterSettingsTempCopy]
- ld [wPrinterSendDataSource + 3], a
+ ld [wPrinterSendDataSource1 + 3], a
ret
Printer_Convert2RowsTo2bpp:
@@ -370,7 +370,7 @@ Printer_Convert2RowsTo2bpp:
.got_row
ld e, l
ld d, h
- ld hl, wPrinterSendDataSource
+ ld hl, wPrinterSendDataSource1
ld c, 2 * SCREEN_WIDTH
.loop
ld a, [de]
@@ -406,7 +406,7 @@ Printer_Convert2RowsTo2bpp:
jr nz, .loop
ret
-Printer_FillMemory: ; e8a2e (3a:4a2e)
+Printer_FillMemory:
push de
ld e, a
.loop
@@ -439,7 +439,7 @@ PrinterDataPacket6: ; unused
db 15, 0, $00, 0
dw 15
-PrinterSerial_: ; e8a5e (3a:4a5e)
+PrinterSerial_:
ld a, [wPrinterOpcode]
ld e, a
ld d, 0
@@ -542,7 +542,7 @@ PrinterSerial_: ; e8a5e (3a:4a5e)
ld e, a
ld a, [wPrinterSendByteOffset + 1]
ld d, a
- ld hl, wPrinterSendDataSource
+ ld hl, wPrinterSendDataSource1
add hl, de
inc de
ld a, e
diff --git a/engine/random.asm b/engine/random.asm
index ddf042df..2fc83f6f 100755
--- a/engine/random.asm
+++ b/engine/random.asm
@@ -1,4 +1,4 @@
-Random_:: ; f67dc (3d:67dc)
+Random_::
; Generate a random 16-bit value.
ld a, [rDIV]
ld b, a
diff --git a/engine/remove_pokemon.asm b/engine/remove_pokemon.asm
index a04f060c..f29a428d 100644
--- a/engine/remove_pokemon.asm
+++ b/engine/remove_pokemon.asm
@@ -1,4 +1,4 @@
-_RemovePokemon: ; 7a0f (1:7a0f)
+_RemovePokemon:
ld hl, wPartyCount
ld a, [wRemoveMonFromBox]
and a
@@ -92,4 +92,4 @@ _RemovePokemon: ; 7a0f (1:7a0f)
jr z, .copyUntilPartyMonNicksEnd
ld bc, wBoxMonNicksEnd
.copyUntilPartyMonNicksEnd
- jp CopyDataUntil \ No newline at end of file
+ jp CopyDataUntil
diff --git a/engine/save.asm b/engine/save.asm
index b684c1be..bb2193a2 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -1,4 +1,4 @@
-LoadSAV: ; 73959 (1c:7959)
+LoadSAV:
;(if carry -> write
;"the file data is destroyed")
call ClearScreen
@@ -27,11 +27,11 @@ LoadSAV: ; 73959 (1c:7959)
ld [wSaveFileStatus], a
ret
-FileDataDestroyedText: ; 7398f (1c:798f)
+FileDataDestroyedText:
TX_FAR _FileDataDestroyedText
db "@"
-LoadSAV0: ; 73994 (1c:7994)
+LoadSAV0:
call EnableSRAMAndLatchClockData
ld a, $1
ld [MBC1SRamBank], a
@@ -76,7 +76,7 @@ LoadSAV0: ; 73994 (1c:7994)
and a
jp SAVGoodChecksum
-LoadSAV1: ; 739fc (1c:79fc)
+LoadSAV1:
call EnableSRAMAndLatchClockData
ld a, $1
ld [MBC1SRamBank], a
@@ -94,7 +94,7 @@ LoadSAV1: ; 739fc (1c:79fc)
and a
jp SAVGoodChecksum
-LoadSAV2: ; 73a24 (1c:7a24)
+LoadSAV2:
call EnableSRAMAndLatchClockData
ld a, $1
ld [MBC1SRamBank], a
@@ -116,20 +116,20 @@ LoadSAV2: ; 73a24 (1c:7a24)
and a
jp SAVGoodChecksum
-SAVBadCheckSum: ; 73a59 (1c:7a59)
+SAVBadCheckSum:
scf
-SAVGoodChecksum: ; 736f8 (1c:76f8)
+SAVGoodChecksum:
call DisableSRAMAndPrepareClockData
ret
-LoadSAVIgnoreBadCheckSum: ; 73a5e (1c:7a5e)
+LoadSAVIgnoreBadCheckSum:
; unused function that loads save data and ignores bad checksums
call LoadSAV0
call LoadSAV1
jp LoadSAV2
-SaveSAV: ; 73a67 (1c:7a67)
+SaveSAV:
callba PrintSaveScreenText
ld c,10
call DelayFrames
@@ -165,7 +165,7 @@ SaveSAV: ; 73a67 (1c:7a67)
call DelayFrames
ret
-SaveSAVConfirm: ; 73abc (1c:7abc)
+SaveSAVConfirm:
call PrintText
coord hl, 0, 7
lb bc, 8, 1
@@ -175,23 +175,23 @@ SaveSAVConfirm: ; 73abc (1c:7abc)
ld a,[wCurrentMenuItem]
ret
-WouldYouLikeToSaveText: ; 73ad1 (1c:7ad1)
+WouldYouLikeToSaveText:
TX_FAR _WouldYouLikeToSaveText
db "@"
-SavingText: ; 73ad6 (1c:7ad6)
+SavingText:
TX_FAR _SavingText
db "@"
-GameSavedText: ; 73adb (1c:7adb)
+GameSavedText:
TX_FAR _GameSavedText
db "@"
-OlderFileWillBeErasedText: ; 73ae0 (1c:7ae0)
+OlderFileWillBeErasedText:
TX_FAR _OlderFileWillBeErasedText
db "@"
-SaveSAVtoSRAM0: ; 73ae5 (1c:7ae5)
+SaveSAVtoSRAM0:
call EnableSRAMAndLatchClockData
ld a, $1
ld [MBC1SRamBank], a
@@ -220,7 +220,7 @@ SaveSAVtoSRAM0: ; 73ae5 (1c:7ae5)
call DisableSRAMAndPrepareClockData
ret
-SaveSAVtoSRAM1: ; 73b32 (1c:7b32)
+SaveSAVtoSRAM1:
; stored pokémon
call EnableSRAMAndLatchClockData
ld a, $1
@@ -236,7 +236,7 @@ SaveSAVtoSRAM1: ; 73b32 (1c:7b32)
call DisableSRAMAndPrepareClockData
ret
-SaveSAVtoSRAM2: ; 73b56 (1c:7b56)
+SaveSAVtoSRAM2:
call EnableSRAMAndLatchClockData
ld a, $1
ld [MBC1SRamBank], a
@@ -261,15 +261,15 @@ SaveSAVtoSRAM2: ; 73b56 (1c:7b56)
ld [sMainDataCheckSum], a
call DisableSRAMAndPrepareClockData
ret
-;;;
-SaveSAVtoSRAM: ; 73b91 (1c:7b91)
+
+SaveSAVtoSRAM:
ld a, $2
ld [wSaveFileStatus], a
call SaveSAVtoSRAM0
call SaveSAVtoSRAM1
jp SaveSAVtoSRAM2
-SAVCheckSum: ; 73b9f (1c:7b9f)
+SAVCheckSum:
;Check Sum (result[1 byte] is complemented)
ld d, 0
.loop
@@ -284,7 +284,7 @@ SAVCheckSum: ; 73b9f (1c:7b9f)
cpl
ret
-CalcIndividualBoxCheckSums: ; 73bac (1c:7bac)
+CalcIndividualBoxCheckSums:
ld hl, sBox1 ; sBox7
ld de, sBank2IndividualBoxChecksums ; sBank3IndividualBoxChecksums
ld b, NUM_BOXES / 2
@@ -301,7 +301,7 @@ CalcIndividualBoxCheckSums: ; 73bac (1c:7bac)
jr nz, .loop
ret
-GetBoxSRAMLocation: ; 73bc4 (1c:7bc4)
+GetBoxSRAMLocation:
; in: a = box num
; out: b = box SRAM bank, hl = pointer to start of box
ld hl, BoxSRAMPointerTable
@@ -322,7 +322,7 @@ GetBoxSRAMLocation: ; 73bc4 (1c:7bc4)
ld l, a
ret
-BoxSRAMPointerTable: ; 73bde (1c:7bde)
+BoxSRAMPointerTable:
dw sBox1 ; sBox7
dw sBox2 ; sBox8
dw sBox3 ; sBox9
@@ -330,7 +330,7 @@ BoxSRAMPointerTable: ; 73bde (1c:7bde)
dw sBox5 ; sBox11
dw sBox6 ; sBox12
-ChangeBox:: ; 73bed (1c:7bed)
+ChangeBox::
ld hl, WhenYouChangeBoxText
call PrintText
call YesNoChoice
@@ -376,11 +376,11 @@ ChangeBox:: ; 73bed (1c:7bed)
call SetMapTextPointer
ret
-WhenYouChangeBoxText: ; 73c52 (1c:7c52)
+WhenYouChangeBoxText:
TX_FAR _WhenYouChangeBoxText
db "@"
-CopyBoxToOrFromSRAM: ; 73c57 (1c:7c57)
+CopyBoxToOrFromSRAM:
; copy an entire box from hl to de with b as the SRAM bank
push hl
call EnableSRAMAndLatchClockData
@@ -404,7 +404,7 @@ CopyBoxToOrFromSRAM: ; 73c57 (1c:7c57)
call DisableSRAMAndPrepareClockData
ret
-DisplayChangeBoxMenu: ; 73c7d (1c:7c7d)
+DisplayChangeBoxMenu:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld a, A_BUTTON | B_BUTTON
@@ -473,11 +473,11 @@ DisplayChangeBoxMenu: ; 73c7d (1c:7c7d)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-ChooseABoxText: ; 73d10 (1c:7d10)
+ChooseABoxText:
TX_FAR _ChooseABoxText
db "@"
-BoxNames: ; 73d15 (1c:7d15)
+BoxNames:
db "BOX 1"
next "BOX 2"
next "BOX 3"
@@ -491,10 +491,10 @@ BoxNames: ; 73d15 (1c:7d15)
next "BOX11"
next "BOX12@"
-BoxNoText: ; 73d5d (1c:7d5d)
+BoxNoText:
db "BOX No.@"
-EmptyAllSRAMBoxes: ; 73d65 (1c:7d65)
+EmptyAllSRAMBoxes:
; marks all boxes in SRAM as empty (initialisation for the first time the
; player changes the box)
call EnableSRAMAndLatchClockData
@@ -507,7 +507,7 @@ EmptyAllSRAMBoxes: ; 73d65 (1c:7d65)
call DisableSRAMAndPrepareClockData
ret
-EmptySRAMBoxesInBank: ; 73d7c (1c:7d7c)
+EmptySRAMBoxesInBank:
; marks every box in the current SRAM bank as empty
ld hl, sBox1 ; sBox7
call EmptySRAMBox
@@ -528,14 +528,14 @@ EmptySRAMBoxesInBank: ; 73d7c (1c:7d7c)
call CalcIndividualBoxCheckSums
ret
-EmptySRAMBox: ; 73db0 (1c:7db0)
+EmptySRAMBox:
xor a
ld [hli], a
dec a
ld [hl], a
ret
-GetMonCountsForAllBoxes: ; 73a84 (1c:7a84)
+GetMonCountsForAllBoxes:
ld hl, wBoxMonCounts
push hl
call EnableSRAMAndLatchClockData
@@ -559,7 +559,7 @@ GetMonCountsForAllBoxes: ; 73a84 (1c:7a84)
ret
-GetMonCountsForBoxesInBank: ; 73dde (1c:7dde)
+GetMonCountsForBoxesInBank:
ld a, [sBox1] ; sBox7
ld [hli], a
ld a, [sBox2] ; sBox8
@@ -574,7 +574,7 @@ GetMonCountsForBoxesInBank: ; 73dde (1c:7dde)
ld [hli], a
ret
-SAVCheckRandomID: ; 73df7 (1c:7df7)
+SAVCheckRandomID:
;checks if Sav file is the same by checking player's name 1st letter ($a598)
; and the two random numbers generated at game beginning
;(which are stored at wPlayerID)s
@@ -606,7 +606,7 @@ SAVCheckRandomID: ; 73df7 (1c:7df7)
ld [MBC1SRamEnable],a
ret
-SaveHallOfFameTeams: ; 73e2e (1c:7e2e)
+SaveHallOfFameTeams:
ld a, [wNumHoFTeams]
dec a
cp HOF_TEAM_CAPACITY
@@ -632,7 +632,7 @@ SaveHallOfFameTeams: ; 73e2e (1c:7e2e)
ld bc, HOF_TEAM
jr HallOfFame_Copy
-LoadHallOfFameTeams: ; 73e60 (1c:7e60)
+LoadHallOfFameTeams:
ld hl, sHallOfFame
ld bc, HOF_TEAM
ld a, [wHoFTeamIndex]
@@ -641,7 +641,7 @@ LoadHallOfFameTeams: ; 73e60 (1c:7e60)
ld bc, HOF_TEAM
; fallthrough
-HallOfFame_Copy: ; 73e72 (1c:7e72)
+HallOfFame_Copy:
call EnableSRAMAndLatchClockData
xor a
ld [MBC1SRamBank], a
@@ -649,7 +649,7 @@ HallOfFame_Copy: ; 73e72 (1c:7e72)
call DisableSRAMAndPrepareClockData
ret
-ClearSAV: ; 73e80 (1c:7e80)
+ClearSAV:
call EnableSRAMAndLatchClockData
ld a, $4
.loop
@@ -661,22 +661,22 @@ ClearSAV: ; 73e80 (1c:7e80)
call DisableSRAMAndPrepareClockData
ret
-PadSRAM_FF: ; 73e91 (1c:7e91)
+PadSRAM_FF:
ld [MBC1SRamBank], a
ld hl, $a000
ld bc, $2000
ld a, $ff
jp FillMemory
-EnableSRAMAndLatchClockData: ; 73e9f (1c:7e9f)
+EnableSRAMAndLatchClockData:
ld a, $1
ld [MBC1SRamBankingMode], a
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ret
-DisableSRAMAndPrepareClockData: ; 73eaa (1c:7eaa)
+DisableSRAMAndPrepareClockData:
ld a, SRAM_DISABLE
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
- ret \ No newline at end of file
+ ret
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index 35f3a133..769a3f37 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1,4 +1,4 @@
-PromptUserToPlaySlots: ; 37530 (d:7530)
+PromptUserToPlaySlots:
call SaveScreenTilesToBuffer2
ld a, BANK(DisplayTextIDInit)
ld [wAutoTextBoxDrawingControl], a
@@ -54,11 +54,11 @@ PromptUserToPlaySlots: ; 37530 (d:7530)
push af
jp CloseTextDisplay
-PlaySlotMachineText: ; 375b8 (d:75b8)
+PlaySlotMachineText:
TX_FAR _PlaySlotMachineText
db "@"
-MainSlotMachineLoop: ; 375bd (d:75bd)
+MainSlotMachineLoop:
call SlotMachine_PrintCreditCoins
xor a
ld hl, wPayoutCoins
@@ -147,32 +147,32 @@ MainSlotMachineLoop: ; 375bd (d:75bd)
call SlotMachine_PutOutLitBalls
jp MainSlotMachineLoop
-CoinMultiplierSlotMachineText: ; 37685 (d:7685)
+CoinMultiplierSlotMachineText:
db "×3"
next "×2"
next "×1@"
-OutOfCoinsSlotMachineText: ; 3768e (d:768e)
+OutOfCoinsSlotMachineText:
TX_FAR _OutOfCoinsSlotMachineText
db "@"
-BetHowManySlotMachineText: ; 37693 (d:7693)
+BetHowManySlotMachineText:
TX_FAR _BetHowManySlotMachineText
db "@"
-StartSlotMachineText: ; 37698 (d:7698)
+StartSlotMachineText:
TX_FAR _StartSlotMachineText
db "@"
-NotEnoughCoinsSlotMachineText: ; 3769d (d:769d)
+NotEnoughCoinsSlotMachineText:
TX_FAR _NotEnoughCoinsSlotMachineText
db "@"
-OneMoreGoSlotMachineText: ; 376a2 (d:76a2)
+OneMoreGoSlotMachineText:
TX_FAR _OneMoreGoSlotMachineText
db "@"
-SlotMachine_SetFlags: ; 376a7 (d:76a7)
+SlotMachine_SetFlags:
ld hl, wSlotMachineFlags
bit 7, [hl]
ret nz
@@ -202,7 +202,7 @@ SlotMachine_SetFlags: ; 376a7 (d:76a7)
set 7, [hl]
ret
-SlotMachine_SpinWheels: ; 376d4 (d:76d4)
+SlotMachine_SpinWheels:
ld c, 20
.loop1
push bc
@@ -234,7 +234,7 @@ SlotMachine_SpinWheels: ; 376d4 (d:76d4)
; visible. The 3 functions below ensure this by checking if the wheel offset
; is even before stopping the wheel.
-SlotMachine_StopOrAnimWheel1: ; 37706 (d:7706)
+SlotMachine_StopOrAnimWheel1:
ld a, [wStoppingWhichSlotMachineWheel]
cp 1
jr c, .animWheel
@@ -252,7 +252,7 @@ SlotMachine_StopOrAnimWheel1: ; 37706 (d:7706)
.animWheel
jp SlotMachine_AnimWheel1
-SlotMachine_StopOrAnimWheel2: ; 37722 (d:7722)
+SlotMachine_StopOrAnimWheel2:
ld a, [wStoppingWhichSlotMachineWheel]
cp 2
jr c, .animWheel
@@ -270,7 +270,7 @@ SlotMachine_StopOrAnimWheel2: ; 37722 (d:7722)
.animWheel
jp SlotMachine_AnimWheel2
-SlotMachine_StopOrAnimWheel3: ; 3773e (d:773e)
+SlotMachine_StopOrAnimWheel3:
ld a, [wStoppingWhichSlotMachineWheel]
cp 3
jr c, .animWheel
@@ -286,7 +286,7 @@ SlotMachine_StopOrAnimWheel3: ; 3773e (d:773e)
and a
ret
-SlotMachine_StopWheel1Early: ; 37753 (d:7753)
+SlotMachine_StopWheel1Early:
call SlotMachine_GetWheel1Tiles
ld hl, wSlotMachineWheel1BottomTile
ld a, [wSlotMachineFlags]
@@ -315,7 +315,7 @@ SlotMachine_StopWheel1Early: ; 37753 (d:7753)
ld [hl], 0
ret
-SlotMachine_StopWheel2Early: ; 37779 (d:7779)
+SlotMachine_StopWheel2Early:
call SlotMachine_GetWheel2Tiles
ld a, [wSlotMachineFlags]
and $80
@@ -338,7 +338,7 @@ SlotMachine_StopWheel2Early: ; 37779 (d:7779)
ld [wSlotMachineWheel2SlipCounter], a
ret
-SlotMachine_FindWheel1Wheel2Matches: ; 37795 (d:7795)
+SlotMachine_FindWheel1Wheel2Matches:
; return whether wheel 1 and wheel 2's current positions allow a match (given
; that wheel 3 stops in a good position) in Z
ld hl, wSlotMachineWheel1BottomTile
@@ -364,7 +364,7 @@ SlotMachine_FindWheel1Wheel2Matches: ; 37795 (d:7795)
dec de
ret
-SlotMachine_CheckForMatches: ; 377af (d:77af)
+SlotMachine_CheckForMatches:
call SlotMachine_GetWheel3Tiles
ld a, [wSlotMachineBet]
cp 2
@@ -478,7 +478,7 @@ SlotMachine_CheckForMatches: ; 377af (d:77af)
call UpdateGBCPal_OBP0
jp .done
-SymbolLinedUpSlotMachineText: ; 37892 (d:7892)
+SymbolLinedUpSlotMachineText:
TX_ASM
push bc
call SlotMachine_PrintWinningSymbol
@@ -490,11 +490,11 @@ SymbolLinedUpSlotMachineText: ; 37892 (d:7892)
inc bc
ret
-LinedUpText: ; 378a0 (d:78a0)
+LinedUpText:
TX_FAR _LinedUpText
db "@"
-SlotRewardPointers: ; 378a5 (d:78a5)
+SlotRewardPointers:
dw SlotReward300Func
dw SlotReward300Text
dw SlotReward100Func
@@ -508,24 +508,24 @@ SlotRewardPointers: ; 378a5 (d:78a5)
dw SlotReward15Func
dw SlotReward15Text
-SlotReward300Text: ; 378bd (d:78bd)
+SlotReward300Text:
db "300@"
-SlotReward100Text: ; 378c1 (d:78c1)
+SlotReward100Text:
db "100@"
-SlotReward8Text: ; 378c5 (d:78c5)
+SlotReward8Text:
db "8@"
-SlotReward15Text: ; 378c7 (d:78c7)
+SlotReward15Text:
db "15@"
-NotThisTimeText: ; 378ca (d:78ca)
+NotThisTimeText:
TX_FAR _NotThisTimeText
db "@"
; compares the slot machine tiles at bc, de, and hl
-SlotMachine_CheckForMatch: ; 378cf (d:78cf)
+SlotMachine_CheckForMatch:
ld a, [de]
cp [hl]
ret nz
@@ -533,24 +533,24 @@ SlotMachine_CheckForMatch: ; 378cf (d:78cf)
cp [hl]
ret
-SlotMachine_GetWheel3Tiles: ; 378d5 (d:78d5)
+SlotMachine_GetWheel3Tiles:
ld de, wSlotMachineWheel3BottomTile
ld hl, SlotMachineWheel3
ld a, [wSlotMachineWheel3Offset]
call SlotMachine_GetWheelTiles
-SlotMachine_GetWheel2Tiles: ; 378e1 (d:78e1)
+SlotMachine_GetWheel2Tiles:
ld de, wSlotMachineWheel2BottomTile
ld hl, SlotMachineWheel2
ld a, [wSlotMachineWheel2Offset]
call SlotMachine_GetWheelTiles
-SlotMachine_GetWheel1Tiles: ; 378ed (d:78ed)
+SlotMachine_GetWheel1Tiles:
ld de, wSlotMachineWheel1BottomTile
ld hl, SlotMachineWheel1
ld a, [wSlotMachineWheel1Offset]
-SlotMachine_GetWheelTiles: ; 378f6 (d:78f6)
+SlotMachine_GetWheelTiles:
ld c, a
ld b, 0
add hl, bc
@@ -564,7 +564,7 @@ SlotMachine_GetWheelTiles: ; 378f6 (d:78f6)
jr nz, .loop
ret
-SlotReward8Func: ; 37904 (d:7904)
+SlotReward8Func:
ld hl, wSlotMachineAllowMatchesCounter
ld a, [hl]
and a
@@ -575,7 +575,7 @@ SlotReward8Func: ; 37904 (d:7904)
ld de, 8
ret
-SlotReward15Func: ; 37912 (d:7912)
+SlotReward15Func:
ld hl, wSlotMachineAllowMatchesCounter
ld a, [hl]
and a
@@ -586,7 +586,7 @@ SlotReward15Func: ; 37912 (d:7912)
ld de, 15
ret
-SlotReward100Func: ; 37920 (d:7920)
+SlotReward100Func:
ld a, SFX_GET_KEY_ITEM
call PlaySound
xor a
@@ -595,7 +595,7 @@ SlotReward100Func: ; 37920 (d:7920)
ld de, 100
ret
-SlotReward300Func: ; 3792f (d:792f)
+SlotReward300Func:
ld hl, YeahText
call PrintText
ld a, SFX_GET_ITEM_2
@@ -611,11 +611,11 @@ SlotReward300Func: ; 3792f (d:792f)
ld de, 300
ret
-YeahText: ; 3794f (d:794f)
+YeahText:
TX_FAR _YeahText
db $0a, "@"
-SlotMachine_PrintWinningSymbol: ; 37955 (d:7955)
+SlotMachine_PrintWinningSymbol:
; prints winning symbol and down arrow in text box
coord hl, 2, 14
ld a, [wSlotMachineWinningSymbol]
@@ -633,7 +633,7 @@ SlotMachine_PrintWinningSymbol: ; 37955 (d:7955)
ld [hl], $ee ; down arrow
ret
-SlotMachine_SubtractBetFromPlayerCoins: ; 3796e (d:796e)
+SlotMachine_SubtractBetFromPlayerCoins:
ld hl, wTempCoins2 + 1
ld a, [wSlotMachineBet]
ld [hld], a
@@ -643,19 +643,19 @@ SlotMachine_SubtractBetFromPlayerCoins: ; 3796e (d:796e)
ld c, $2
predef SubBCDPredef
-SlotMachine_PrintCreditCoins: ; 37981 (d:7981)
+SlotMachine_PrintCreditCoins:
coord hl, 5, 1
ld de, wPlayerCoins
ld c, $2
jp PrintBCDNumber
-SlotMachine_PrintPayoutCoins: ; 3798c (d:798c)
+SlotMachine_PrintPayoutCoins:
coord hl, 11, 1
ld de, wPayoutCoins
lb bc, LEADING_ZEROES | 2, 4 ; 2 bytes, 4 digits
jp PrintNumber
-SlotMachine_PayCoinsToPlayer: ; 37998 (d:7998)
+SlotMachine_PayCoinsToPlayer:
ld a, $1
ld [wMuteAudioAndPauseMusic], a
call WaitForSoundToFinish
@@ -713,12 +713,12 @@ SlotMachine_PayCoinsToPlayer: ; 37998 (d:7998)
call DelayFrames
jr .loop
-SlotMachine_PutOutLitBalls: ; 379fe (d:79fe)
+SlotMachine_PutOutLitBalls:
ld a, $23
ld [wNewSlotMachineBallTile], a
jr SlotMachine_UpdateThreeCoinBallTiles
-SlotMachine_LightBalls: ; 37a05 (d:7a05)
+SlotMachine_LightBalls:
ld a, $14
ld [wNewSlotMachineBallTile], a
ld a, [wSlotMachineBet]
@@ -727,22 +727,22 @@ SlotMachine_LightBalls: ; 37a05 (d:7a05)
dec a
jr z, SlotMachine_UpdateTwoCoinBallTiles
-SlotMachine_UpdateThreeCoinBallTiles: ; 37a13 (d:7a13)
+SlotMachine_UpdateThreeCoinBallTiles:
coord hl, 3, 2
call SlotMachine_UpdateBallTiles
coord hl, 3, 10
call SlotMachine_UpdateBallTiles
-SlotMachine_UpdateTwoCoinBallTiles: ; 37a1f (d:7a1f)
+SlotMachine_UpdateTwoCoinBallTiles:
coord hl, 3, 4
call SlotMachine_UpdateBallTiles
coord hl, 3, 8
call SlotMachine_UpdateBallTiles
-SlotMachine_UpdateOneCoinBallTiles: ; 37a2b (d:7a2b)
+SlotMachine_UpdateOneCoinBallTiles:
coord hl, 3, 6
-SlotMachine_UpdateBallTiles: ; 37a2e (d:7a2e)
+SlotMachine_UpdateBallTiles:
ld a, [wNewSlotMachineBallTile]
ld [hl], a
ld bc, 13
@@ -757,7 +757,7 @@ SlotMachine_UpdateBallTiles: ; 37a2e (d:7a2e)
ld [hl], a
ret
-SlotMachine_AnimWheel1: ; 37a43 (d:7a43)
+SlotMachine_AnimWheel1:
ld bc, SlotMachineWheel1
ld de, wSlotMachineWheel1Offset
ld hl, wOAMBuffer
@@ -765,7 +765,7 @@ SlotMachine_AnimWheel1: ; 37a43 (d:7a43)
ld [wBaseCoordX], a
jr SlotMachine_AnimWheel
-SlotMachine_AnimWheel2: ; 37a53 (d:7a53)
+SlotMachine_AnimWheel2:
ld bc, SlotMachineWheel2
ld de, wSlotMachineWheel2Offset
ld hl, wOAMBuffer + $30
@@ -773,14 +773,14 @@ SlotMachine_AnimWheel2: ; 37a53 (d:7a53)
ld [wBaseCoordX], a
jr SlotMachine_AnimWheel
-SlotMachine_AnimWheel3: ; 37a63 (d:7a63)
+SlotMachine_AnimWheel3:
ld bc, SlotMachineWheel3
ld de, wSlotMachineWheel3Offset
ld hl, wOAMBuffer + $60
ld a, $70
ld [wBaseCoordX], a
-SlotMachine_AnimWheel: ; 37a71 (d:7a71)
+SlotMachine_AnimWheel:
ld a, $58
ld [wBaseCoordY], a
push de
@@ -825,7 +825,7 @@ SlotMachine_AnimWheel: ; 37a71 (d:7a71)
ld [de], a
ret
-SlotMachine_HandleInputWhileWheelsSpin: ; 37ab2 (d:7ab2)
+SlotMachine_HandleInputWhileWheelsSpin:
call DelayFrame
call JoypadLowSensitivity
ld a, [hJoy5]
@@ -849,7 +849,7 @@ SlotMachine_HandleInputWhileWheelsSpin: ; 37ab2 (d:7ab2)
ret nz
jr .loop
-LoadSlotMachineTiles: ; 37ad8 (d:7ad8)
+LoadSlotMachineTiles:
call DisableLCD
ld hl, SlotMachineTiles2
ld de, vChars0
@@ -880,11 +880,11 @@ LoadSlotMachineTiles: ; 37ad8 (d:7ad8)
call SlotMachine_AnimWheel2
jp SlotMachine_AnimWheel3
-SlotMachineMap: ; 37b25 (d:7b25)
+SlotMachineMap:
INCBIN "gfx/tilemaps/slotmachine.map"
SlotMachineMapEnd:
INCLUDE "data/slot_machine_wheels.asm"
-SlotMachineTiles1: ; 37c81 (d:7c81)
+SlotMachineTiles1:
INCBIN "gfx/slotmachine1.2bpp"
diff --git a/engine/status_ailments.asm b/engine/status_ailments.asm
index b233defa..787533c4 100755
--- a/engine/status_ailments.asm
+++ b/engine/status_ailments.asm
@@ -1,4 +1,4 @@
-PrintStatusAilment: ; 58e8b (16:4e8b)
+PrintStatusAilment:
ld a, [de]
bit PSN, a
jr nz, .psn
diff --git a/engine/subtract_paid_money.asm b/engine/subtract_paid_money.asm
index 45df93a7..a6a6ec2e 100644
--- a/engine/subtract_paid_money.asm
+++ b/engine/subtract_paid_money.asm
@@ -1,6 +1,6 @@
; subtracts the amount the player paid from their money
; sets carry flag if there is enough money and unsets carry flag if not
-SubtractAmountPaidFromMoney_: ; 68a6 (1:68a6)
+SubtractAmountPaidFromMoney_:
ld de, wPlayerMoney
ld hl, hMoney ; total price of items
ld c, 3 ; length of money in bytes
@@ -14,4 +14,4 @@ SubtractAmountPaidFromMoney_: ; 68a6 (1:68a6)
ld [wTextBoxID], a
call DisplayTextBoxID ; redraw money text box
and a
- ret \ No newline at end of file
+ ret
diff --git a/engine/surfing_minigame.asm b/engine/surfing_minigame.asm
index f70e8119..48aaca53 100755
--- a/engine/surfing_minigame.asm
+++ b/engine/surfing_minigame.asm
@@ -23,8 +23,8 @@ SurfingPikachuMinigame:
push af
ld a, $98
ld [H_AUTOBGTRANSFERDEST + 1], a
- call Func_f8fb3
- call Func_f807a
+ call SurfingPikachuMinigameIntro
+ call SurfingPikachuLoop
xor a
ld [rBGP], a
ld [rOBP0], a
@@ -59,42 +59,42 @@ SurfingPikachuMinigame:
ld [hTilesetType], a
ret
-Func_f807a:
- call Func_f8116
+SurfingPikachuLoop:
+ call SurfingPikachuMinigame_LoadGFXAndLayout
call DelayFrame
ld b, $e
call RunPaletteCommand
.loop
- ld a, [wc5d1]
+ ld a, [wSurfingMinigameRoutineNumber]
bit 7, a
ret nz
- call Func_f923f
- call Func_f80ac
+ call SurfingPikachu_GetJoypad_3FrameBuffer
+ call SurfingPikachu_CheckPressedSelect
ret nz
- call Func_f8282
+ call RunSurfingMinigameRoutine
ld a, $3c
ld [wCurrentAnimatedObjectOAMBufferOffset], a
call RunObjectAnimations
call Func_f8848
- call Func_f80a8
- call Func_f80c4
+ call .DelayFrame
+ call SurfingMinigame_UpdateMusicTempo
jr .loop
-Func_f80a8:
+.DelayFrame:
call DelayFrame
ret
-Func_f80ac:
+SurfingPikachu_CheckPressedSelect:
ld hl, wd492
bit 1, [hl]
ret z
ld a, [hJoyPressed]
- and $4
+ and SELECT
ret
Func_f80b7:
ld a, [hJoyPressed]
- and $8
+ and START
ret z
ld hl, wc5e2
ld a, [hl]
@@ -102,10 +102,12 @@ Func_f80b7:
ld [hl], a
ret
-Func_f80c4:
+SurfingMinigame_UpdateMusicTempo:
ld a, [wc634]
and a
ret z
+
+ ; check that all channels are on their last frame of note delay
ld hl, wChannelNoteDelayCounters
ld a, $1
cp [hl]
@@ -116,6 +118,8 @@ Func_f80c4:
inc hl
cp [hl]
ret nz
+
+ ; de = ([wc5e3] & 0x3f) * 2
ld a, [wc5e3]
ld e, a
ld a, [wc5e3 + 1]
@@ -125,7 +129,7 @@ Func_f80c4:
rl d
ld e, d
ld d, $0
- ld hl, Unkn_f80f5
+ ld hl, .Tempos
add hl, de
add hl, de
ld a, [hli]
@@ -134,14 +138,14 @@ Func_f80c4:
ld [wMusicTempo], a
ret
-Unkn_f80f5:
- dw $75
- dw $6d
- dw $65
- dw $5d
- dw $55
+.Tempos:
+ dw 117
+ dw 109
+ dw 101
+ dw 93
+ dw 85
-Func_f80ff:
+SurfingMinigame_ResetMusicTempo:
ld hl, wChannelNoteDelayCounters
ld a, $1
cp [hl]
@@ -152,86 +156,95 @@ Func_f80ff:
inc hl
cp [hl]
ret nz
- ld a, $75
+ ld a, 117
ld [wMusicTempo + 1], a
xor a
ld [wMusicTempo], a
ret
-Func_f8116:
- call Func_f9279
+SurfingPikachuMinigame_LoadGFXAndLayout:
+ call SurfingPikachu_ClearTileMap
call ClearSprites
call DisableLCD
- ld hl, wSerialEnemyMonsPatchList
- ld bc, $67
+ ld hl, wSurfingMinigameData
+ ld bc, wSurfingMinigameDataEnd - wSurfingMinigameData
xor a
call FillMemory
- ld hl, wc700
- ld bc, $200
+ ld hl, wLYOverrides
+ ld bc, wLYOverridesBufferEnd - wLYOverrides
xor a
call FillMemory
xor a
ld [H_AUTOBGTRANSFERENABLED], a
call ClearObjectAnimationBuffers
- ld hl, SurfingPikachu1Graphics
+ ld hl, SurfingPikachu1Graphics1
ld de, $9000
ld bc, $500
- ld a, BANK(SurfingPikachu1Graphics)
+ ld a, BANK(SurfingPikachu1Graphics1)
call FarCopyData
- ld hl, SurfingPikachu1Graphics + $410
+ ld hl, SurfingPikachu1Graphics2
ld de, $8000
ld bc, $1000
- ld a, BANK(SurfingPikachu1Graphics)
+ ld a, BANK(SurfingPikachu1Graphics2)
call FarCopyData
- ld a, Unkn_f93d3 % $100
+ ld a, SurfingPikachuSpawnStateDataPointer % $100
ld [wAnimatedObjectSpawnStateDataPointer], a
- ld a, Unkn_f93d3 / $100
+ ld a, SurfingPikachuSpawnStateDataPointer / $100
ld [wAnimatedObjectSpawnStateDataPointer + 1], a
- ld a, Jumptable_f93fa % $100
+
+ ld a, SurfingPikachuObjectJumptable % $100
ld [wAnimatedObjectJumptablePointer], a
- ld a, Jumptable_f93fa / $100
+ ld a, SurfingPikachuObjectJumptable / $100
ld [wAnimatedObjectJumptablePointer + 1], a
- ld a, Unkn_f9507 % $100
+
+ ld a, SurfingPikachuOAMData % $100
ld [wAnimatedObjectOAMDataPointer], a
- ld a, Unkn_f9507 / $100
+ ld a, SurfingPikachuOAMData / $100
ld [wAnimatedObjectOAMDataPointer + 1], a
- ld a, Unkn_f9405 % $100
+
+ ld a, SurfingPikachuFrames % $100
ld [wAnimatedObjectFramesDataPointer], a
- ld a, Unkn_f9405 / $100
+ ld a, SurfingPikachuFrames / $100
ld [wAnimatedObjectFramesDataPointer + 1], a
+
ld hl, vBGMap0
ld bc, $800
ld a, $0
call FillMemory
+
ld hl, $98c0
ld bc, $180
ld a, $b
call FillMemory
+
ld a, $1
lb de, $74, $58
call SpawnAnimatedObject
+
ld a, $74
- ld [wc5ea], a
- call Func_f9223
+ ld [wSurfingMinigamePikachuObjectHeight], a
+
+ call SurfingMinigame_InitScanlineOverrides
+
xor a
ld [hSCX], a
ld [hSCY], a
ld a, $7e
ld [hWY], a
- ld a, $42
+ ld a, rSCY - $ff00
ld [hLCDCPointer], a
ld a, $40
ld [wc5e3], a
xor a
ld [wc5e3 + 1], a
xor a
- ld [wc5d6], a
+ ld [wSurfingMinigamePikachuHP], a
ld a, $60
- ld [wc5d7], a
- ld hl, wc61a
+ ld [wSurfingMinigamePikachuHP + 1], a
+ ld hl, wSurfingMinigameWaveHeight
ld bc, $14
ld a, $74
call FillMemory
@@ -239,7 +252,7 @@ Func_f8116:
call Func_f8256
ld a, $e3
ld [rLCDC], a
- call Func_f81e9
+ call SurfingPikachuMinigame_SetBGPals
ld a, $e4
ld [rOBP0], a
ld a, $e0
@@ -248,16 +261,16 @@ Func_f8116:
call UpdateGBCPal_OBP1
ret
-Func_f81e9:
+SurfingPikachuMinigame_SetBGPals:
ld a, [wOnSGB]
and a
- jr nz, .asm_f81f7
+ jr nz, .sgb
ld a, $d0
ld [rBGP], a
call UpdateGBCPal_BGP
ret
-.asm_f81f7
+.sgb
ld a, $e4
ld [rBGP], a
call UpdateGBCPal_BGP
@@ -361,11 +374,11 @@ Unkn_f8279:
db $19
db $19
-Func_f8282:
- ld a, [wc5d1]
+RunSurfingMinigameRoutine:
+ ld a, [wSurfingMinigameRoutineNumber]
ld e, a
ld d, $0
- ld hl, Jumptable_f8291
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -373,79 +386,77 @@ Func_f8282:
ld l, a
jp [hl]
-Jumptable_f8291:
- dw Func_f82ab
- dw Func_f82bd
- dw Func_f8324
- dw Func_f835c
- dw Func_f838c
- dw Func_f8399
- dw Func_f83aa
- dw Func_f83bb
- dw Func_f83cc
- dw Func_f83e3
- dw Func_f8406
- dw Func_f840f
- dw Func_f841d
-
-Func_f82ab:
+.Jumptable:
+ dw SurfingMinigameRoutine_SpawnPikachu ; 0
+ dw SurfingMinigame_RunGame ; 1
+ dw Func_f8324 ; 2
+ dw Func_f835c ; 3
+ dw SurfingMinigame_DrawResultsScreenAndWait ; 4
+ dw SurfingMinigame_WriteHPLeftAndWait ; 5
+ dw SurfingMinigame_WriteRadnessAndWait ; 6
+ dw SurfingMinigame_WriteTotalAndWait ; 7
+ dw SurfingMinigame_AddRemainingHPToTotalAndWait ; 8
+ dw SurfingMinigame_AddRadnessToTotalAndWait ; 9
+ dw SurfingMinigame_WaitLast ; a
+ dw SurfingMinigame_ExitOnPressA ; b
+ dw SurfingMinigame_GameOver ; c
+
+SurfingMinigameRoutine_SpawnPikachu:
ld a, $2
lb de, $48, $e0
call SpawnAnimatedObject
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ld a, $1
ld [wc634], a
ret
-Func_f82bd:
+SurfingMinigame_RunGame:
ld a, [wc5e5]
cp $18
jr nc, .asm_f82e8
- ld hl, wc5d6
+ ld hl, wSurfingMinigamePikachuHP
ld a, [hli]
or [hl]
and a
- jr z, .asm_f82f6
+ jr z, .dead
call Random
ld [wc5d5], a
- call Func_f9210
+ call SurfingMinigame_UpdateLYOverrides
call Func_f88ae
call Func_f886b
call Func_f8cb0
call Func_f844c
- call Func_f88e4
+ call SurfingMinigame_Deduct1HP
call Func_f88fd
ret
.asm_f82e8
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
xor a
ld [wc634], a
- ld a, $c0
- ld [wc632], a
+ ld a, 192
+ ld [wSurfingMinigameRoutineDelay], a
ret
-.asm_f82f6
+.dead
ld a, $1
-Func_f82f8:
ld [wc630], a
ld a, $c
- ld [wc5d1], a
-Func_f8300:
+ ld [wSurfingMinigameRoutineNumber], a
ld a, $80
ld [wc631], a
ld a, $b
lb de, $88, $58
call SpawnAnimatedObject
- ld hl, $7
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], $80
- ld hl, $b
+ ld hl, ANIM_OBJ_FIELD_B
add hl, bc
ld [hl], $80
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], $30
xor a
@@ -453,38 +464,38 @@ Func_f8300:
ret
Func_f8324:
- call Func_f8440
- jr c, .asm_f833d
+ call SurfingMinigame_RunDelayTimer
+ jr c, .done_delay
xor a
ld [wc5d5], a
- call Func_f9210
+ call SurfingMinigame_UpdateLYOverrides
call Func_f88ae
call Func_f886b
call Func_f8c97
- call Func_f80ff
+ call SurfingMinigame_ResetMusicTempo
ret
-.asm_f833d
- ld hl, wc5d1
+.done_delay
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ld a, $90
ld [hSCX], a
ld a, $72
- ld [wc5d3], a
+ ld [wSurfingMinigameWaveFunctionNumber], a
ld a, $4
ld [wc5d2], a
xor a
ld [hLCDCPointer], a
- ld [wc617], a
- ld [wc618], a
- ld [wc619], a
+ ld [wSurfingMinigameSCX], a
+ ld [wSurfingMinigameSCX + 1], a
+ ld [wSurfingMinigameSCX + 2], a
ret
Func_f835c:
ld a, [hSCX]
and a
jr z, .asm_f837b
- call Func_f9210
+ call SurfingMinigame_UpdateLYOverrides
call Func_f88ae
call Func_f886b
ld a, [hSCX]
@@ -494,7 +505,7 @@ Func_f835c:
dec a
ld [hSCX], a
ld a, $e0
- ld [wc62e], a
+ ld [wSurfingMinigameXOffset], a
call Func_f8cc7
ret
@@ -502,139 +513,137 @@ Func_f835c:
xor a
ld [wc5e3], a
ld [wc5e3 + 1], a
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ld a, $5
ld [wc5d2], a
ret
-Func_f838c:
- call Func_f891e
- ld a, $20
- ld [wc632], a
- ld hl, wc5d1
+SurfingMinigame_DrawResultsScreenAndWait:
+ call SurfingMinigame_DrawResultsScreen
+ ld a, 32
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f8399:
- call Func_f8440
+SurfingMinigame_WriteHPLeftAndWait:
+ call SurfingMinigame_RunDelayTimer
ret nc
- call Func_f8a92
- ld a, $40
- ld [wc632], a
- ld hl, wc5d1
+ call SurfingMinigame_WriteHPLeft
+ ld a, 64
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f83aa:
- call Func_f8440
+SurfingMinigame_WriteRadnessAndWait:
+ call SurfingMinigame_RunDelayTimer
ret nc
- call Func_f8ae4
- ld a, $40
- ld [wc632], a
- ld hl, wc5d1
+ call SurfingMinigame_WriteRadness
+ ld a, 64
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f83bb:
- call Func_f8440
+SurfingMinigame_WriteTotalAndWait:
+ call SurfingMinigame_RunDelayTimer
ret nc
- call Func_f8b7a
- ld a, $40
- ld [wc632], a
- ld hl, wc5d1
+ call SurfingMinigame_WriteTotal
+ ld a, 64
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f83cc:
- call Func_f8440
+SurfingMinigame_AddRemainingHPToTotalAndWait:
+ call SurfingMinigame_RunDelayTimer
ret nc
- call Func_f8aa9
+ call SurfingMinigame_AddRemainingHPToTotal
push af
- call Func_f8b5d
+ call SurfingMinigame_BCDPrintTotalScore
pop af
ret nc
- ld a, $40
- ld [wc632], a
- ld hl, wc5d1
+ ld a, 64
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f83e3:
- call Func_f8440
+SurfingMinigame_AddRadnessToTotalAndWait:
+ call SurfingMinigame_RunDelayTimer
ret nc
- call Func_f8afb
+ call SurfingMinigame_AddRadnessToTotal
push af
- call Func_f8b5d
+ call SurfingMinigame_BCDPrintTotalScore
pop af
ret nc
- ld a, $80
- ld [wc632], a
- ld hl, wc5d1
+ ld a, 128
+ ld [wSurfingMinigameRoutineDelay], a
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
- call Func_f8b92
+ call DidPlayerGetAHighScore
ret nc
- call Func_f8a7c
-Func_f83ff:
+ call SurfingMinigame_PrintTextHiScore
ld a, $6
ld [wc5d2], a
ret
-Func_f8406:
- call Func_f8440
-Func_f8408:
+SurfingMinigame_WaitLast:
+ call SurfingMinigame_RunDelayTimer
ret nc
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
inc [hl]
ret
-Func_f840f:
- call Func_f9210
+SurfingMinigame_ExitOnPressA:
+ call SurfingMinigame_UpdateLYOverrides
ld a, [hJoyPressed]
- and $1
+ and A_BUTTON
ret z
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
set 7, [hl]
ret
-Func_f841d:
- call Func_f9210
+SurfingMinigame_GameOver:
+ call SurfingMinigame_UpdateLYOverrides
call Func_f88ae
call Func_f886b
call Func_f8cb0
- call Func_f80ff
+ call SurfingMinigame_ResetMusicTempo
ld hl, wc631
ld a, [hl]
and a
- jr z, .asm_f8435
+ jr z, .wait_press_a
dec [hl]
ret
-.asm_f8435
+.wait_press_a
ld a, [hJoyPressed]
- and $1
+ and A_BUTTON
ret z
- ld hl, wc5d1
+ ld hl, wSurfingMinigameRoutineNumber
set 7, [hl]
ret
-Func_f8440:
- ld hl, wc632
+SurfingMinigame_RunDelayTimer:
+ ld hl, wSurfingMinigameRoutineDelay
ld a, [hl]
and a
- jr z, .asm_f844a
+ jr z, .set_carry
dec [hl]
and a
ret
-.asm_f844a
+.set_carry
scf
ret
Func_f844c:
- ld a, [wc5e6]
+ ld a, [wc5e5 + 1]
ld h, a
- ld a, [wc5e7]
+ ld a, [wc5e5 + 2]
ld l, a
ld a, [wc5e3]
ld e, a
@@ -642,9 +651,9 @@ Func_f844c:
ld d, a
add hl, de
ld a, h
- ld [wc5e6], a
+ ld [wc5e5 + 1], a
ld a, l
- ld [wc5e7], a
+ ld [wc5e5 + 2], a
ret nc
ld hl, wc5e5
inc [hl]
@@ -653,7 +662,7 @@ Func_f844c:
dec [hl]
ret
-Func_f8470
+SurfingMinigameAnimatedObjectFn_Pikachu
ld a, [wc5d2]
ld e, a
ld d, $0
@@ -667,7 +676,7 @@ Func_f8470
Jumptable_f847f:
dw Func_f848d
- dw Func_f84e2
+ dw SurfingMinigame_ScoreCurrentWave
dw Func_f8516
dw Func_f8545
dw Func_f8561
@@ -679,32 +688,32 @@ Func_f848d:
and a
jr nz, .asm_f84d2
call Func_f87b5
- ld a, [wc5ea]
- ld hl, $5
+ ld a, [wSurfingMinigamePikachuObjectHeight]
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], a
call Func_f871e
- jr c, .asm_f84aa
+ jr c, .splash
call Func_f8742
call Func_f86b8
ret
-.asm_f84aa
+.splash
call Func_f8742
- ld a, $1
+ ld a, $1 ; on a wave
ld [wc5d2], a
xor a
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], a
- ld hl, $d
+ ld hl, ANIM_OBJ_FIELD_D
add hl, bc
ld [hl], a
- ld hl, $e
+ ld hl, ANIM_OBJ_FIELD_E
add hl, bc
ld [hl], a
- ld [wc5d9], a
- ld [wc62f], a
+ ld [wSurfingMinigameRadnessMeter], a
+ ld [wSurfingMinigameTrickFlags], a
xor a
ld [wChannelSoundIDs + CH7], a
ld a, SFX_UNKNOWN_801B3_4
@@ -720,21 +729,21 @@ Func_f848d:
call Func_f8742
ret
-Func_f84e2:
- call Func_f8598
- call Func_f928c
+SurfingMinigame_ScoreCurrentWave:
+ call SurfingMinigame_DPadAction
+ call SurfingMinigame_UpdatePikachuHeight
ret nc
- call Func_f8606
- jr c, .asm_f84fd
- call Func_f8bed
- ld hl, $c
+ call SurfingMinigame_TileInteraction
+ jr c, .splash
+ call SurfingMinigame_CalculateAndAddRadnessFromStunt
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], $0
ld a, $2
ld [wc5d2], a
ret
-.asm_f84fd
+.splash
ld a, $3
ld [wc5d2], a
ld a, $60
@@ -748,7 +757,7 @@ Func_f84e2:
ret
Func_f8516:
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld a, [hl]
cp $20
@@ -758,19 +767,19 @@ Func_f8516:
inc [hl]
inc [hl]
ld d, $4
- call Func_f9362
- ld hl, $7
+ call SurfingPikachu_Sine
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], a
call Func_f87b5
- ld a, [wc5ea]
- ld hl, $5
+ ld a, [wSurfingMinigamePikachuObjectHeight]
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], a
ret
.asm_f8539
- ld hl, $7
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], $0
ld a, $0
@@ -783,8 +792,8 @@ Func_f8545:
and a
jr z, .asm_f8556
dec [hl]
- ld a, [wc5ea]
- ld hl, $5
+ ld a, [wSurfingMinigamePikachuObjectHeight]
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], a
ret
@@ -797,8 +806,8 @@ Func_f8545:
ret
Func_f8561:
- ld a, [wc5ea]
- ld hl, $5
+ ld a, [wSurfingMinigamePikachuObjectHeight]
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], a
call Func_f8742
@@ -807,13 +816,13 @@ Func_f8561:
Func_f856d:
ld a, $f
call SetCurrentAnimatedObjectCallbackAndResetFrameStateRegisters
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], $0
ret
Func_f8579:
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld a, [hl]
inc [hl]
@@ -822,183 +831,184 @@ Func_f8579:
cp $20
jr c, .asm_f8591
ld d, $10
- call Func_f9362
- ld hl, $7
+ call SurfingPikachu_Sine
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], a
ret
.asm_f8591
- ld hl, $7
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], $0
ret
-Func_f8598:
+SurfingMinigame_DPadAction:
ld de, hJoy5
ld a, [de]
- and $20
- jr nz, .asm_f85a6
+ and D_LEFT
+ jr nz, .d_left
ld a, [de]
- and $10
- jr nz, .asm_f85cc
+ and D_RIGHT
+ jr nz, .d_right
ret
-.asm_f85a6
- ld hl, $e
+.d_left
+ ld hl, ANIM_OBJ_FIELD_E
add hl, bc
ld [hl], $0
- ld hl, $d
+ ld hl, ANIM_OBJ_FIELD_D
add hl, bc
ld a, [hl]
inc [hl]
cp $b
- jr c, .asm_f85be
- call Func_f85f2
- ld hl, wc62f
+ jr c, .d_left_skip
+ call .StartTrick
+ ld hl, wSurfingMinigameTrickFlags
set 0, [hl]
-.asm_f85be
- ld hl, $1
+.d_left_skip
+ ld hl, ANIM_OBJ_FRAME_SET
add hl, bc
ld a, [hl]
cp $e
- jr nc, .asm_f85c9
+ jr nc, .d_left_reset
inc [hl]
ret
-.asm_f85c9
+.d_left_reset
ld [hl], $1
ret
-.asm_f85cc
- ld hl, $d
+.d_right
+ ld hl, ANIM_OBJ_FIELD_D
add hl, bc
ld [hl], $0
- ld hl, $e
+ ld hl, ANIM_OBJ_FIELD_E
add hl, bc
ld a, [hl]
inc [hl]
cp $d
- jr c, .asm_f85e4
- call Func_f85f2
- ld hl, wc62f
+ jr c, .d_right_skip
+ call .StartTrick
+ ld hl, wSurfingMinigameTrickFlags
set 1, [hl]
-.asm_f85e4
- ld hl, $1
+.d_right_skip
+ ld hl, ANIM_OBJ_FRAME_SET
add hl, bc
ld a, [hl]
cp $1
- jr z, .asm_f85ef
+ jr z, .d_right_reset
dec [hl]
ret
-.asm_f85ef
+.d_right_reset
ld [hl], $e
ret
-Func_f85f2:
- call Func_f8bdf
+.StartTrick:
+ call SurfingMinigame_IncreaseRadnessMeter
xor a
- ld hl, $d
+ ld hl, ANIM_OBJ_FIELD_D
add hl, bc
ld [hl], a
- ld hl, $e
+ ld hl, ANIM_OBJ_FIELD_E
add hl, bc
ld [hl], a
ld a, SFX_UNKNOWN_801B6_4
call PlaySound
ret
-Func_f8606:
- ld hl, $1
+SurfingMinigame_TileInteraction:
+ ld hl, ANIM_OBJ_FRAME_SET
add hl, bc
- ld a, [wc5ef]
+ ld a, [wSurfingMinigameBGMapReadBuffer]
cp $6
- jr z, .asm_f863d
+ jr z, .tile_06
cp $14
- jr z, .asm_f867b
+ jr z, .tile_14
cp $12
- jr z, .asm_f867b
+ jr z, .tile_12
cp $7
- jr z, .asm_f865c
+ jr z, .tile_07
ld a, [hl]
cp $1
- jp z, .asm_f86ad
+ jp z, .action_0
cp $2
- jr z, .asm_f869a
+ jr z, .action_1
cp $3
- jr z, .asm_f869f
+ jr z, .action_2
cp $4
- jr z, .asm_f86a2
+ jr z, .action_3
cp $5
- jr z, .asm_f869f
+ jr z, .action_2
cp $6
- jr z, .asm_f869a
+ jr z, .action_1
cp $7
- jr z, .asm_f86ad
- jr .asm_f86ad
+ jr z, .action_0
+ jr .action_0
-.asm_f863d
+.tile_06
ld a, [hl]
cp $1
- jr z, .asm_f86ad
+ jr z, .action_0
cp $2
- jr z, .asm_f86ad
+ jr z, .action_0
cp $3
- jr z, .asm_f86ad
+ jr z, .action_0
cp $4
- jr z, .asm_f869a
+ jr z, .action_1
cp $5
- jr z, .asm_f869f
+ jr z, .action_2
cp $6
- jr z, .asm_f86a2
+ jr z, .action_3
cp $7
- jr z, .asm_f869f
- jr .asm_f86ad
+ jr z, .action_2
+ jr .action_0
-.asm_f865c
+.tile_07
ld a, [hl]
cp $1
- jr z, .asm_f869f
+ jr z, .action_2
cp $2
- jr z, .asm_f86a2
+ jr z, .action_3
cp $3
- jr z, .asm_f869f
+ jr z, .action_2
cp $4
- jr z, .asm_f869a
+ jr z, .action_1
cp $5
- jr z, .asm_f86ad
+ jr z, .action_0
cp $6
- jr z, .asm_f86ad
+ jr z, .action_0
cp $7
- jr z, .asm_f86ad
- jr .asm_f86ad
+ jr z, .action_0
+ jr .action_0
-.asm_f867b
+.tile_12
+.tile_14
ld a, [hl]
cp $1
- jr z, .asm_f86ad
+ jr z, .action_0
cp $2
- jr z, .asm_f869a
+ jr z, .action_1
cp $3
- jr z, .asm_f869f
+ jr z, .action_2
cp $4
- jr z, .asm_f86a2
+ jr z, .action_3
cp $5
- jr z, .asm_f86a2
+ jr z, .action_3
cp $6
- jr z, .asm_f869f
+ jr z, .action_2
cp $7
- jr z, .asm_f869a
- jr .asm_f86ad
+ jr z, .action_1
+ jr .action_0
-.asm_f869a
- call Func_f86f7
- jr .asm_f86a2
+.action_1
+ call Subtract128Fromwc5e3
+ jr .action_3
-.asm_f869f
- call Func_f86d0
-.asm_f86a2
+.action_2
+ call Subtract64Fromwc5e3
+.action_3
xor a
ld [wChannelSoundIDs + CH7], a
ld a, SFX_UNKNOWN_801BF_4
@@ -1006,7 +1016,7 @@ Func_f8606:
and a
ret
-.asm_f86ad
+.action_0
ld a, $40
ld [wc5e3], a
xor a
@@ -1029,23 +1039,23 @@ Func_f86b8:
ld [wc5e3], a
ret
-Func_f86d0:
+Subtract64Fromwc5e3:
ld a, [wc5e3 + 1]
and a
- jr nz, .asm_f86e2
+ jr nz, .go
ld a, [wc5e3]
cp $40
- jr nc, .asm_f86e2
+ jr nc, .go
xor a
ld [wc5e3], a
ret
-.asm_f86e2
+.go
ld a, [wc5e3 + 1]
ld h, a
ld a, [wc5e3]
ld l, a
- ld de, $ffc0
+ ld de, -$40
add hl, de
ld a, h
ld [wc5e3 + 1], a
@@ -1053,23 +1063,23 @@ Func_f86d0:
ld [wc5e3], a
ret
-Func_f86f7:
+Subtract128Fromwc5e3:
ld a, [wc5e3 + 1]
and a
- jr nz, .asm_f8709
+ jr nz, .go
ld a, [wc5e3]
cp $80
- jr nc, .asm_f8709
+ jr nc, .go
xor a
ld [wc5e3], a
ret
-.asm_f8709
+.go
ld a, [wc5e3 + 1]
ld h, a
ld a, [wc5e3]
ld l, a
- ld de, $ff80
+ ld de, -$80
add hl, de
ld a, h
ld [wc5e3 + 1], a
@@ -1084,7 +1094,7 @@ Func_f871e:
jr c, .asm_f8740
cp $5
jr nc, .asm_f8740
- ld a, [wc5ef]
+ ld a, [wSurfingMinigameBGMapReadBuffer]
cp $14
jr nz, .asm_f8740
call Func_f87a8
@@ -1106,7 +1116,7 @@ Func_f8742:
ret c
cp $5
ret nc
- ld a, [wc5ef]
+ ld a, [wSurfingMinigameBGMapReadBuffer]
cp $6
jr z, .asm_f8766
cp $14
@@ -1115,7 +1125,7 @@ Func_f8742:
jr z, .asm_f876a
call Func_f8778
ld a, $4
- ld hl, $1
+ ld hl, ANIM_OBJ_FRAME_SET
add hl, bc
ld [hl], a
ret
@@ -1131,7 +1141,7 @@ Func_f8742:
ld a, [wc5de]
dec a
add e
- ld hl, $1
+ ld hl, ANIM_OBJ_FRAME_SET
add hl, bc
ld [hl], a
ret
@@ -1187,9 +1197,9 @@ Func_f87b5:
inc [hl]
and $3
ret nz
- call Func_f87ce
+ call .GetYCoord
ld d, a
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld e, [hl]
ld a, $a
@@ -1198,27 +1208,27 @@ Func_f87b5:
pop bc
ret
-Func_f87ce:
+.GetYCoord:
ld a, [hSCX]
and $8
- jr nz, .asm_f87d9
- ld hl, wc622
- jr .asm_f87dc
-
-.asm_f87d9
- ld hl, wc623
-.asm_f87dc
- ld a, [wc5f0]
+ jr nz, .get_height_plus_9
+ ld hl, wSurfingMinigameWaveHeight + 8
+ jr .got_hl
+
+.get_height_plus_9
+ ld hl, wSurfingMinigameWaveHeight + 9
+.got_hl
+ ld a, [wSurfingMinigameBGMapReadBuffer + 1]
cp $6
- jr z, .asm_f87ed
+ jr z, .six_or_twenty
cp $14
- jr z, .asm_f87ed
+ jr z, .six_or_twenty
cp $7
- jr z, .asm_f87f5
+ jr z, .seven
ld a, [hl]
ret
-.asm_f87ed
+.six_or_twenty
ld a, [hSCX]
and $7
ld e, a
@@ -1226,14 +1236,14 @@ Func_f87ce:
sub e
ret
-.asm_f87f5
+.seven
ld a, [hSCX]
and $7
add [hl]
ret
Func_f87fb:
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld a, [hl]
cp $58
@@ -1242,12 +1252,12 @@ Func_f87fb:
ld [hl], a
ret
-Func_f8807:
+Func_f8807: ; unreferenced
call MaskCurrentAnimatedObjectStruct
ret
-Func_f880b:
- ld hl, $b
+SurfingMinigameAnimatedObjectFn_FlippingPika:
+ ld hl, ANIM_OBJ_FIELD_B
add hl, bc
ld a, [hl]
and a
@@ -1255,39 +1265,39 @@ Func_f880b:
dec [hl]
dec [hl]
ld d, a
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld a, [hl]
inc [hl]
- call Func_f9362
+ call SurfingPikachu_Sine
cp $80
- jr nc, .asm_f8825
+ jr nc, .positive
xor $ff
inc a
-.asm_f8825
- ld hl, $7
+.positive
+ ld hl, ANIM_OBJ_Y_OFFSET
add hl, bc
ld [hl], a
ret
-Func_f882b:
- ld hl, $b
+SurfingMinigameAnimatedObjectFn_IntroAnimationPikachu:
+ ld hl, ANIM_OBJ_FIELD_B
add hl, bc
ld a, [hl]
inc [hl]
and $1
ret z
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld a, [hl]
cp $c0
- jr z, .asm_f883f
+ jr z, .done
inc [hl]
ret
-.asm_f883f
+.done
ld a, $1
- ld [wc633], a
+ ld [wSurfingMinigameIntroAnimationFinished], a
call MaskCurrentAnimatedObjectStruct
ret
@@ -1305,7 +1315,7 @@ Func_f8848:
ld d, h
ld hl, wOAMBuffer + 5 * 4 + 1
ld e, $9
-.asm_f8861
+.loop
ld a, [hl]
add d
ld [hli], a
@@ -1313,11 +1323,11 @@ Func_f8848:
inc hl
inc hl
dec e
- jr nz, .asm_f8861
+ jr nz, .loop
ret
Func_f886b:
- ld a, [wc5ef]
+ ld a, [wSurfingMinigameBGMapReadBuffer] ; ???
ld a, [hSCX]
add $48
ld e, a
@@ -1327,15 +1337,15 @@ Func_f886b:
ld d, $0
ld hl, vBGMap0
add hl, de
- ld a, [wc5ea]
+ ld a, [wSurfingMinigamePikachuObjectHeight]
srl a
srl a
srl a
ld c, a
-.asm_f8889
+.loop
ld a, c
and a
- jr z, .asm_f889a
+ jr z, .copy
dec c
ld de, $20
add hl, de
@@ -1343,10 +1353,10 @@ Func_f886b:
and $3
or $98
ld h, a
- jr .asm_f8889
+ jr .loop
-.asm_f889a
- ld de, wc5ef
+.copy
+ ld de, wSurfingMinigameBGMapReadBuffer
ld a, e
ld [H_VBCOPYDEST], a
ld a, d
@@ -1355,7 +1365,7 @@ Func_f886b:
ld [H_VBCOPYSRC], a
ld a, h
ld [H_VBCOPYSRC + 1], a
- ld a, $1
+ ld a, 16 / $10
ld [H_VBCOPYSIZE], a
ret
@@ -1363,13 +1373,13 @@ Func_f88ae:
ld a, [hSCX]
and $8
jr nz, .asm_f88b9
- ld hl, wc621
+ ld hl, wSurfingMinigameWaveHeight + 7
jr .asm_f88bc
.asm_f88b9
- ld hl, wc622
+ ld hl, wSurfingMinigameWaveHeight + 8
.asm_f88bc
- ld a, [wc5ef]
+ ld a, [wSurfingMinigameBGMapReadBuffer]
cp $6
jr z, .asm_f88d0
cp $14
@@ -1377,7 +1387,7 @@ Func_f88ae:
cp $7
jr z, .asm_f88db
ld a, [hl]
- ld [wc5ea], a
+ ld [wSurfingMinigamePikachuObjectHeight], a
ret
.asm_f88d0
@@ -1386,46 +1396,46 @@ Func_f88ae:
ld e, a
ld a, [hl]
sub e
- ld [wc5ea], a
+ ld [wSurfingMinigamePikachuObjectHeight], a
ret
.asm_f88db
ld a, [hSCX]
and $7
add [hl]
- ld [wc5ea], a
+ ld [wSurfingMinigamePikachuObjectHeight], a
ret
-Func_f88e4:
- ld hl, wc5d6
+SurfingMinigame_Deduct1HP:
+ ld hl, wSurfingMinigamePikachuHP
ld e, $99
- call Func_f88f0
+ call .BCD_Deduct
ret nc
inc hl
ld e, $99
-Func_f88f0:
+.BCD_Deduct:
ld a, [hl]
and a
- jr z, .asm_f88fa
+ jr z, .roll_over
sub $1
daa
ld [hl], a
and a
ret
-.asm_f88fa
+.roll_over
ld [hl], e
scf
ret
Func_f88fd:
- ld de, wc5d7
+ ld de, wSurfingMinigamePikachuHP + 1
ld hl, wOAMBuffer + 0 * 4 + 2
ld a, [de]
- call Func_f890b
+ call .PlaceBCDNumber
ld hl, wOAMBuffer + 2 * 4 + 2
ld a, [de]
-Func_f890b:
+.PlaceBCDNumber:
ld c, a
swap a
and $f
@@ -1441,164 +1451,161 @@ Func_f890b:
dec de
ret
-Func_f891e:
+SurfingMinigame_DrawResultsScreen:
ld hl, wTileMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call FillMemory
- ld hl, Tilemap_f8946
+ ld hl, .BeachTilemap
coord de, 0, 6
- ld bc, Tilemap_f8946End - Tilemap_f8946
+ ld bc, .BeachTilemapEnd - .BeachTilemap
call CopyData
- call Func_f8a0e
+ call .PlaceTextbox
ld hl, wOAMBuffer + 5 * 4 + 1
- ld bc, $24
+ ld bc, 9 * 4
xor a
call FillMemory
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Tilemap_f8946:
+.BeachTilemap:
INCBIN "gfx/unknown_f8946.map"
-Tilemap_f8946End:
+.BeachTilemapEnd:
-Func_f8a0e:
+.PlaceTextbox:
coord hl, 1, 1
lb de, $3b, $3c
ld a, $40
- call Func_f8a72
+ call .place_row
coord hl, 1, 2
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 3
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 4
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 5
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 6
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 7
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 8
lb de, $3f, $3f
ld a, $ff
- call Func_f8a72
+ call .place_row
coord hl, 1, 9
lb de, $3d, $3e
ld a, $40
- call Func_f8a72
+ call .place_row
ret
-Func_f8a72:
+.place_row:
ld [hl], d
inc hl
ld c, $10
-.asm_f8a76
+.loop
ld [hli], a
dec c
- jr nz, .asm_f8a76
+ jr nz, .loop
ld [hl], e
ret
-Func_f8a7c:
- ld hl, Tilemap_f8a89
+SurfingMinigame_PrintTextHiScore:
+ ld hl, .Hi_Score
coord de, 6, 8
ld bc, $9
call CopyData
ret
-Tilemap_f8a89:
- db $20,$2e,$2f,$30,$31,$2c,$32,$23,$33
+.Hi_Score:
+ db $20,$2e,$2f,$30,$31,$2c,$32,$23,$33 ; Hi-Score!!
-Func_f8a92:
- ld hl, Tilemap_f8aa2
+SurfingMinigame_WriteHPLeft:
+ ld hl, .HP_Left
coord de, 2, 2
ld bc, $7
call CopyData
- call Func_f8aca
+ call SurfingMinigame_BCDPrintHPLeft
ret
-Tilemap_f8aa2:
- db $20,$21,$ff,$22,$23,$24,$25
+.HP_Left:
+ db $20,$21,$ff,$22,$23,$24,$25 ; HP Left
-Func_f8aa9:
- ld c, $63
-.asm_f8aab
+SurfingMinigame_AddRemainingHPToTotal:
+ ld c, 99
+.loop
push bc
- ld hl, wc5d6
+ ld hl, wSurfingMinigamePikachuHP
ld a, [hli]
or [hl]
and a
- jr z, .asm_f8ac7
- call Func_f88e4
+ jr z, .dead
+ call SurfingMinigame_Deduct1HP
ld e, $1
-.asm_f8ab9
- call Func_f8b42
+ call SurfingMinigame_AddPointsToTotal
pop bc
dec c
- jr nz, .asm_f8aab
-.asm_f8abf
+ jr nz, .loop
ld a, SFX_UNKNOWN_801B0_4
call PlaySound
-.asm_f8ac5
and a
ret
-.asm_f8ac7
+.dead
pop bc
scf
ret
-Func_f8aca:
+SurfingMinigame_BCDPrintHPLeft:
coord hl, 10, 2
- ld de, wc5d7
+ ld de, wSurfingMinigamePikachuHP + 1
ld a, [de]
- call Func_f9350
+ call SurfingPikachu_PlaceBCDNumber
inc hl
ld a, [de]
- call Func_f9350
+ call SurfingPikachu_PlaceBCDNumber
inc hl
inc hl
- ld [hl], $21
+ ld [hl], $21 ; P
inc hl
- ld [hl], $25
+ ld [hl], $25 ; t
inc hl
- ld [hl], $26
+ ld [hl], $26 ; s
ret
-Func_f8ae4:
- ld hl, Tilemap_f8af4
+SurfingMinigame_WriteRadness:
+ ld hl, .Radness
coord de, 2, 4
ld bc, $7
call CopyData
- call Func_f8b25
+ call SurfingMinigame_BCDPrintRadness
ret
-Tilemap_f8af4:
- db $27,$28,$29,$2a,$23,$26,$26
+.Radness:
+ db $27,$28,$29,$2a,$23,$26,$26 ; Radness
-Func_f8afb:
- ld c, $63
-.asm_f8afd
+SurfingMinigame_AddRadnessToTotal:
+ ld c, 99
+.loop
push bc
- ld hl, wc5da
+ ld hl, wSurfingMinigameRadnessScore
ld a, [hli]
ld e, a
or [hl]
- jr z, .asm_f8b22
+ jr z, .done
ld d, [hl]
ld a, e
sub $1
@@ -1610,102 +1617,101 @@ Func_f8afb:
ld [hld], a
ld [hl], e
ld e, $1
- call Func_f8b42
+ call SurfingMinigame_AddPointsToTotal
pop bc
dec c
- jr nz, .asm_f8afd
+ jr nz, .loop
ld a, SFX_UNKNOWN_801B0_4
call PlaySound
-.asm_f8b20
and a
ret
-.asm_f8b22
+.done
pop bc
scf
ret
-Func_f8b25:
- ld a, [wc5db]
+SurfingMinigame_BCDPrintRadness:
+ ld a, [wSurfingMinigameRadnessScore + 1]
coord hl, 10, 4
- call Func_f9350
- ld a, [wc5da]
+ call SurfingPikachu_PlaceBCDNumber
+ ld a, [wSurfingMinigameRadnessScore]
coord hl, 12, 4
- call Func_f9350
+ call SurfingPikachu_PlaceBCDNumber
inc hl
inc hl
- ld [hl], $21
+ ld [hl], $21 ; P
inc hl
- ld [hl], $25
+ ld [hl], $25 ; t
inc hl
- ld [hl], $26
+ ld [hl], $26 ; s
ret
-Func_f8b42:
- ld a, [wc5dc]
+SurfingMinigame_AddPointsToTotal:
+ ld a, [wSurfingMinigameTotalScore]
add e
daa
- ld [wc5dc], a
- ld a, [wc5dd]
+ ld [wSurfingMinigameTotalScore], a
+ ld a, [wSurfingMinigameTotalScore + 1]
adc $0
daa
- ld [wc5dd], a
+ ld [wSurfingMinigameTotalScore + 1], a
ret nc
ld a, $99
- ld [wc5dc], a
- ld [wc5dd], a
+ ld [wSurfingMinigameTotalScore], a
+ ld [wSurfingMinigameTotalScore + 1], a
ret
-Func_f8b5d:
- ld a, [wc5dd]
+SurfingMinigame_BCDPrintTotalScore:
+ ld a, [wSurfingMinigameTotalScore + 1]
coord hl, 10, 6
- call Func_f9350
- ld a, [wc5dc]
+ call SurfingPikachu_PlaceBCDNumber
+ ld a, [wSurfingMinigameTotalScore]
coord hl, 12, 6
- call Func_f9350
+ call SurfingPikachu_PlaceBCDNumber
inc hl
inc hl
- ld [hl], $21
+ ld [hl], $21 ; P
inc hl
- ld [hl], $25
+ ld [hl], $25 ; t
inc hl
- ld [hl], $26
+ ld [hl], $26 ; s
ret
-Func_f8b7a:
- ld hl, Tilemap_f8b8d
+SurfingMinigame_WriteTotal:
+ ld hl, .Total
coord de, 2, 6
ld bc, $5
call CopyData
- call Func_f8b25
- call Func_f8b5d
+ call SurfingMinigame_BCDPrintRadness
+ call SurfingMinigame_BCDPrintTotalScore
ret
-Tilemap_f8b8d:
- db $2b,$2c,$25,$28,$2d
+.Total:
+ db $2b,$2c,$25,$28,$2d ; Total
-Func_f8b92:
+DidPlayerGetAHighScore:
ld hl, wSurfingMinigameHiScore + 1
- ld a, [wc5dd]
+ ld a, [wSurfingMinigameTotalScore + 1]
cp [hl]
- jr c, .asm_f8ba6
- jr nz, .asm_f8bb0
+ jr c, .not_high_score
+ jr nz, .high_score
dec hl
- ld a, [wc5dc]
+ ld a, [wSurfingMinigameTotalScore]
cp [hl]
- jr c, .asm_f8ba6
- jr nz, .asm_f8bb0
-.asm_f8ba6
+ jr c, .not_high_score
+ jr nz, .high_score
+.not_high_score
call WaitForSoundToFinish
ldpikacry e, PikachuCry28
call SurfingMinigame_PlayPikaCryIfSurfingPikaInParty
and a
ret
-.asm_f8bb0
- ld a, [wc5dc]
+.high_score
+ ld a, [wSurfingMinigameTotalScore]
ld [wSurfingMinigameHiScore], a
- ld a, [wc5dd]
+ ld a, [wSurfingMinigameTotalScore + 1]
ld [wSurfingMinigameHiScore + 1], a
call WaitForSoundToFinish
ldpikacry e, PikachuCry34
@@ -1715,7 +1721,7 @@ Func_f8b92:
scf
ret
-SurfingMinigame_PlayPikaCryIfSurfingPikaInParty: ; f8bcb (3e:4bcb)
+SurfingMinigame_PlayPikaCryIfSurfingPikaInParty:
push de
callab IsSurfingPikachuInThePlayersParty
pop de
@@ -1723,73 +1729,81 @@ SurfingMinigame_PlayPikaCryIfSurfingPikaInParty: ; f8bcb (3e:4bcb)
callab PlayPikachuSoundClip
ret
-Func_f8bdf:
- ld a, [wc5d9]
+SurfingMinigame_IncreaseRadnessMeter:
+ ld a, [wSurfingMinigameRadnessMeter]
inc a
cp $4
- jr c, .asm_f8be9
+ jr c, .cap
ld a, $3
-.asm_f8be9
- ld [wc5d9], a
- ret
-
-Func_f8bed:
- ld a, [wc5d9]
+.cap
+ ld [wSurfingMinigameRadnessMeter], a
+ ret
+
+SurfingMinigame_CalculateAndAddRadnessFromStunt:
+ ; Compute the amount of radness points from the
+ ; current trick based on the number of
+ ; consecutive flips
+ ; Single flip: +0050
+ ; 2 of the same flip: +0150
+ ; 3 or more of the same flip: +0350
+ ; 2 different flips: +0180
+ ; 3 or more different flips: +0500
+ ld a, [wSurfingMinigameRadnessMeter]
and a
ret z
- ld a, [wc62f]
+ ld a, [wSurfingMinigameTrickFlags]
and $3
- cp $3
- jr z, .asm_f8c2b
- ld a, [wc5d9]
+ cp $3 ; did a combination of front and back flips
+ jr z, .mixed_chain
+ ld a, [wSurfingMinigameRadnessMeter]
ld d, a
ld e, $1
ld a, $0
-.asm_f8c03
+.get_amount_of_radness
add e
sla e
dec d
- jr nz, .asm_f8c03
-.asm_f8c09
+ jr nz, .get_amount_of_radness
+.add_radness_50_at_a_time
push af
ld e, $50
- call Func_f8c7c
+ call SurfingMinigame_AddRadness
pop af
dec a
- jr nz, .asm_f8c09
- ld hl, $5
+ jr nz, .add_radness_50_at_a_time
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld a, [hl]
sub $10
ld d, a
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld e, [hl]
- ld a, [wc5d9]
+ ld a, [wSurfingMinigameRadnessMeter]
add $3
push bc
call SpawnAnimatedObject
pop bc
ret
-.asm_f8c2b
- ld a, [wc5d9]
+.mixed_chain
+ ld a, [wSurfingMinigameRadnessMeter]
cp $3
- jr c, .asm_f8c53
- ld a, $a
-.asm_f8c34
+ jr c, .add_180_radness_points
+ ld a, 10
+.add_500_radness_50_at_a_time
push af
ld e, $50
- call Func_f8c7c
+ call SurfingMinigame_AddRadness
pop af
dec a
- jr nz, .asm_f8c34
- ld hl, $5
+ jr nz, .add_500_radness_50_at_a_time
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld a, [hl]
sub $10
ld d, a
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld e, [hl]
ld a, $9
@@ -1798,21 +1812,21 @@ Func_f8bed:
pop bc
ret
-.asm_f8c53
+.add_180_radness_points
ld e, $50
- call Func_f8c7c
+ call SurfingMinigame_AddRadness
ld e, $50
- call Func_f8c7c
+ call SurfingMinigame_AddRadness
ld e, $50
- call Func_f8c7c
+ call SurfingMinigame_AddRadness
ld e, $30
- call Func_f8c7c
- ld hl, $5
+ call SurfingMinigame_AddRadness
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld a, [hl]
sub $10
ld d, a
- ld hl, $4
+ ld hl, ANIM_OBJ_X_COORD
add hl, bc
ld e, [hl]
ld a, $8
@@ -1821,89 +1835,91 @@ Func_f8bed:
pop bc
ret
-Func_f8c7c:
- ld a, [wc5da]
+SurfingMinigame_AddRadness:
+ ld a, [wSurfingMinigameRadnessScore]
add e
daa
- ld [wc5da], a
- ld a, [wc5db]
+ ld [wSurfingMinigameRadnessScore], a
+ ld a, [wSurfingMinigameRadnessScore + 1]
adc $0
daa
- ld [wc5db], a
+ ld [wSurfingMinigameRadnessScore + 1], a
ret nc
ld a, $99
- ld [wc5da], a
- ld [wc5db], a
+ ld [wSurfingMinigameRadnessScore], a
+ ld [wSurfingMinigameRadnessScore + 1], a
ret
Func_f8c97:
ld a, $a0
- ld [wc62e], a
+ ld [wSurfingMinigameXOffset], a
ld a, [hSCX]
ld h, a
- ld a, [wc617]
+ ld a, [wSurfingMinigameSCX]
ld l, a
ld de, $900
add hl, de
ld a, l
- ld [wc617], a
+ ld [wSurfingMinigameSCX], a
ld a, h
ld [hSCX], a
jr Func_f8cc7
Func_f8cb0:
ld a, $a0
- ld [wc62e], a
+ ld [wSurfingMinigameXOffset], a
ld a, [hSCX]
ld h, a
- ld a, [wc617]
+ ld a, [wSurfingMinigameSCX]
ld l, a
ld de, $180
add hl, de
ld a, l
- ld [wc617], a
+ ld [wSurfingMinigameSCX], a
ld a, h
ld [hSCX], a
Func_f8cc7:
- ld hl, wc618
+ ld hl, wSurfingMinigameSCX + 1
ld a, [hSCX]
cp [hl]
ret z
ld [hl], a
and $f0
- ld hl, wc619
+ ld hl, wSurfingMinigameSCX + 2
cp [hl]
ret z
ld [hl], a
- call Func_f8d44
+ call SurfingMinigame_GetWaveDataPointers
+ ; b and c contain the height of the next wave to appear
+ ; on screen, in number of pixels from the top of the screen
ld a, b
- ld [wc5e8], a
+ ld [wSurfingMinigameWaveHeightBuffer], a
ld a, c
- ld [wc5e9], a
+ ld [wSurfingMinigameWaveHeightBuffer + 1], a
push de
- ld hl, wc61a
- ld de, wc61c
- ld c, $12
-.asm_f8ceb
+ ld hl, wSurfingMinigameWaveHeight
+ ld de, wSurfingMinigameWaveHeight + 2
+ ld c, SCREEN_WIDTH - 2
+.copy_loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_f8ceb
- ld a, [wc5e8]
+ jr nz, .copy_loop
+ ld a, [wSurfingMinigameWaveHeightBuffer]
ld [hli], a
- ld a, [wc5e9]
+ ld a, [wSurfingMinigameWaveHeightBuffer + 1]
ld [hl], a
pop de
ld hl, wRedrawRowOrColumnSrcTiles
ld c, $8
-.asm_f8cff
+.loop
ld a, [de]
- call Func_f8d28
+ call .CopyRedrawSrcTiles
inc de
dec c
- jr nz, .asm_f8cff
- ld a, [wc62e]
+ jr nz, .loop
+ ld a, [wSurfingMinigameXOffset]
ld e, a
ld a, [hSCX]
add e
@@ -1923,7 +1939,7 @@ Func_f8cc7:
ld [hRedrawRowOrColumnMode], a
ret
-Func_f8d28:
+.CopyRedrawSrcTiles:
push de
push hl
ld l, a
@@ -1950,8 +1966,8 @@ Func_f8d28:
pop de
ret
-Func_f8d44:
- ld a, [wc5d3]
+SurfingMinigame_GetWaveDataPointers:
+ ld a, [wSurfingMinigameWaveFunctionNumber]
ld e, a
ld d, $0
ld hl, Jumptable_f8d53
@@ -1963,145 +1979,155 @@ Func_f8d44:
jp [hl]
Jumptable_f8d53:
- dw Func_f8e4b
- dw Func_f8f28
- dw Func_f8f31
- dw Func_f8f3a
- dw Func_f8f43
- dw Func_f8e7d
- dw Func_f8f4c
- dw Func_f8f55
- dw Func_f8f5e
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8ec5
- dw Func_f8ece
- dw Func_f8ed7
- dw Func_f8ee0
- dw Func_f8ee9
- dw Func_f8ef2
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8efb
- dw Func_f8f04
- dw Func_f8f0d
- dw Func_f8f16
- dw Func_f8f1f
- dw Func_f8efb
- dw Func_f8f04
- dw Func_f8f0d
- dw Func_f8f16
- dw Func_f8f1f
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8f28
- dw Func_f8f31
- dw Func_f8f3a
- dw Func_f8f43
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8f4c
- dw Func_f8f55
- dw Func_f8f5e
- dw Func_f8f4c
- dw Func_f8f55
- dw Func_f8f5e
- dw Func_f8f4c
- dw Func_f8f55
- dw Func_f8f5e
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8f67
- dw Func_f8f70
- dw Func_f8efb
- dw Func_f8f04
- dw Func_f8f0d
- dw Func_f8f16
- dw Func_f8f1f
- dw Func_f8f67
- dw Func_f8f70
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8ec5
- dw Func_f8ece
- dw Func_f8ed7
- dw Func_f8ee0
- dw Func_f8ee9
- dw Func_f8ef2
- dw Func_f8e7d
- dw Func_f8f67
- dw Func_f8f70
- dw Func_f8f67
- dw Func_f8f70
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8efb
- dw Func_f8f04
- dw Func_f8f0d
- dw Func_f8f16
- dw Func_f8f1f
- dw Func_f8f28
- dw Func_f8f31
- dw Func_f8f3a
- dw Func_f8f43
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8e7d
- dw Func_f8f94
- dw Func_f8e86
- dw Func_f8e8f
- dw Func_f8e98
- dw Func_f8ea1
- dw Func_f8eaa
- dw Func_f8eb3
- dw Func_f8ebc
- dw Func_f8f9d
- dw Func_f8e7d
- dw Func_f8f79
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f82
- dw Func_f8f8b
-
-Func_f8e4b:
+ dw SurfingMinigameWaveFunction_NoWave ; 00
+
+ dw Func_f8f28 ; 01
+ dw Func_f8f31 ; 02
+ dw Func_f8f3a ; 03
+ dw Func_f8f43 ; 04
+ dw Func_f8e7d ; 05
+ dw Func_f8f4c ; 06
+ dw Func_f8f55 ; 07
+ dw Func_f8f5e ; 08
+ dw Func_f8e7d ; 09
+ dw Func_f8e7d ; 0a
+ dw Func_f8e7d ; 0b
+ dw Func_f8e7d ; 0c
+ dw Func_f8f94 ; 0d
+
+ dw Func_f8ec5 ; 0e
+ dw Func_f8ece ; 0f
+ dw Func_f8ed7 ; 10
+ dw Func_f8ee0 ; 11
+ dw Func_f8ee9 ; 12
+ dw Func_f8ef2 ; 13
+ dw Func_f8e7d ; 14
+ dw Func_f8e7d ; 15
+ dw Func_f8e7d ; 16
+ dw Func_f8e7d ; 17
+ dw Func_f8e7d ; 18
+ dw Func_f8f94 ; 19
+
+ dw Func_f8efb ; 1a
+ dw Func_f8f04 ; 1b
+ dw Func_f8f0d ; 1c
+ dw Func_f8f16 ; 1d
+ dw Func_f8f1f ; 1e
+ dw Func_f8efb ; 1f
+ dw Func_f8f04 ; 20
+ dw Func_f8f0d ; 21
+ dw Func_f8f16 ; 22
+ dw Func_f8f1f ; 23
+ dw Func_f8e7d ; 24
+ dw Func_f8e7d ; 25
+ dw Func_f8e7d ; 26
+ dw Func_f8e7d ; 27
+ dw Func_f8f94 ; 28
+
+ dw Func_f8f28 ; 29
+ dw Func_f8f31 ; 2a
+ dw Func_f8f3a ; 2b
+ dw Func_f8f43 ; 2c
+ dw Func_f8e7d ; 2d
+ dw Func_f8e7d ; 2e
+ dw Func_f8e7d ; 2f
+ dw Func_f8e7d ; 30
+ dw Func_f8f94 ; 31
+
+ dw Func_f8f4c ; 32
+ dw Func_f8f55 ; 33
+ dw Func_f8f5e ; 34
+ dw Func_f8f4c ; 35
+ dw Func_f8f55 ; 36
+ dw Func_f8f5e ; 37
+ dw Func_f8f4c ; 38
+ dw Func_f8f55 ; 39
+ dw Func_f8f5e ; 3a
+ dw Func_f8e7d ; 3b
+ dw Func_f8e7d ; 3c
+ dw Func_f8e7d ; 3d
+ dw Func_f8e7d ; 3e
+ dw Func_f8f94 ; 3f
+
+ dw Func_f8f67 ; 40
+ dw Func_f8f70 ; 41
+ dw Func_f8efb ; 42
+ dw Func_f8f04 ; 43
+ dw Func_f8f0d ; 44
+ dw Func_f8f16 ; 45
+ dw Func_f8f1f ; 46
+ dw Func_f8f67 ; 47
+ dw Func_f8f70 ; 48
+ dw Func_f8e7d ; 49
+ dw Func_f8e7d ; 4a
+ dw Func_f8e7d ; 4b
+ dw Func_f8f94 ; 4c
+
+ dw Func_f8ec5 ; 4d
+ dw Func_f8ece ; 4e
+ dw Func_f8ed7 ; 4f
+ dw Func_f8ee0 ; 50
+ dw Func_f8ee9 ; 51
+ dw Func_f8ef2 ; 52
+ dw Func_f8e7d ; 53
+ dw Func_f8f67 ; 54
+ dw Func_f8f70 ; 55
+ dw Func_f8f67 ; 56
+ dw Func_f8f70 ; 57
+ dw Func_f8e7d ; 58
+ dw Func_f8e7d ; 59
+ dw Func_f8e7d ; 5a
+ dw Func_f8f94 ; 5b
+
+ dw Func_f8efb ; 5c
+ dw Func_f8f04 ; 5d
+ dw Func_f8f0d ; 5e
+ dw Func_f8f16 ; 5f
+ dw Func_f8f1f ; 60
+ dw Func_f8f28 ; 61
+ dw Func_f8f31 ; 62
+ dw Func_f8f3a ; 63
+ dw Func_f8f43 ; 64
+ dw Func_f8e7d ; 65
+ dw Func_f8e7d ; 66
+ dw Func_f8e7d ; 67
+ dw Func_f8e7d ; 68
+ dw Func_f8f94 ; 69
+
+ dw Func_f8e86 ; 6a
+ dw Func_f8e8f ; 6b
+ dw Func_f8e98 ; 6c
+ dw Func_f8ea1 ; 6d
+ dw Func_f8eaa ; 6e
+ dw Func_f8eb3 ; 6f
+ dw Func_f8ebc ; 70
+ dw Func_f8f9d ; 71
+
+ dw Func_f8e7d ; 72
+ dw Func_f8f79 ; 73
+ dw Func_f8f82 ; 74
+ dw Func_f8f82 ; 75
+ dw Func_f8f82 ; 76
+ dw Func_f8f82 ; 77
+ dw Func_f8f82 ; 78
+ dw Func_f8f82 ; 79
+ dw Func_f8f82 ; 7a
+ dw Func_f8f8b ; 7b
+
+SurfingMinigameWaveFunction_NoWave:
ld a, [wc5e5]
cp $16
- jr c, .asm_f8e5a
- jr z, .asm_f8e56
- jr nc, .asm_f8e6e
-.asm_f8e56
+ jr c, .check_param
+ jr z, .big_kahuna
+ jr nc, .got_wave
+.big_kahuna
ld a, $6a
- jr .asm_f8e6b
+ jr .got_next_fn
-.asm_f8e5a
+.check_param
ld a, [wc5d5]
and a
- jr z, .asm_f8e6e
+ jr z, .got_wave
dec a
and $7
ld e, a
@@ -2109,9 +2135,9 @@ Func_f8e4b:
ld hl, Unkn_f8e75
add hl, de
ld a, [hl]
-.asm_f8e6b
- ld [wc5d3], a
-.asm_f8e6e
+.got_next_fn
+ ld [wSurfingMinigameWaveFunctionNumber], a
+.got_wave
lb bc, $74, $74
ld de, Unkn_f973d
ret
@@ -2122,215 +2148,215 @@ Unkn_f8e75:
Func_f8e7d:
lb bc, $74, $74
ld de, Unkn_f973d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8e86:
lb bc, $74, $6c
ld de, Unkn_f9745
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8e8f:
lb bc, $64, $5c
ld de, Unkn_f974d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8e98:
lb bc, $54, $4c
ld de, Unkn_f9755
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ea1:
lb bc, $44, $44
ld de, Unkn_f975d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8eaa:
lb bc, $44, $4c
ld de, Unkn_f9765
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8eb3:
lb bc, $54, $5c
ld de, Unkn_f976d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ebc:
lb bc, $64, $6c
ld de, Unkn_f9775
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ec5:
lb bc, $74, $6c
ld de, Unkn_f977d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ece:
lb bc, $64, $5c
ld de, Unkn_f9785
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ed7:
lb bc, $54, $4c
ld de, Unkn_f978d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ee0:
lb bc, $4c, $4c
ld de, Unkn_f9795
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ee9:
lb bc, $54, $5c
ld de, Unkn_f979d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8ef2:
lb bc, $64, $6c
ld de, Unkn_f97a5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8efb:
lb bc, $74, $6c
ld de, Unkn_f97ad
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f04:
lb bc, $64, $5c
ld de, Unkn_f97b5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f0d:
lb bc, $54, $54
ld de, Unkn_f97bd
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f16:
lb bc, $54, $5c
ld de, Unkn_f97c5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f1f:
lb bc, $64, $6c
ld de, Unkn_f97cd
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f28:
lb bc, $74, $6c
ld de, Unkn_f97d5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f31:
lb bc, $64, $5c
ld de, Unkn_f97dd
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f3a:
lb bc, $5c, $5c
ld de, Unkn_f97e5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f43:
lb bc, $64, $6c
ld de, Unkn_f97ed
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f4c:
lb bc, $74, $6c
ld de, Unkn_f97f5
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f55:
lb bc, $64, $64
ld de, Unkn_f97fd
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f5e:
lb bc, $64, $6c
ld de, Unkn_f9805
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f67:
lb bc, $74, $6c
ld de, Unkn_f980d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f70:
lb bc, $6c, $6c
ld de, Unkn_f9815
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f79:
lb bc, $74, $74
ld de, Unkn_f981d
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f82:
lb bc, $74, $74
ld de, Unkn_f9825
- jp Func_f8fa9
+ jp SurfingMinigameWaveFunction_GoToNextWaveFunction
Func_f8f8b:
lb bc, $74, $74
ld de, Unkn_f9825
- jp Func_f8fae
+ jp SurfingMinigameWaveFunction_ResetWaveFunction
Func_f8f94:
lb bc, $74, $74
ld de, Unkn_f973d
- jp Func_f8fae
+ jp SurfingMinigameWaveFunction_ResetWaveFunction
Func_f8f9d:
lb bc, $74, $74
ld de, Unkn_f973d
ret
-Func_f8fa4:
+Func_f8fa4: ; unused
inc a
- ld [wc5d3], a
+ ld [wSurfingMinigameWaveFunctionNumber], a
ret
-Func_f8fa9:
- ld hl, wc5d3
+SurfingMinigameWaveFunction_GoToNextWaveFunction:
+ ld hl, wSurfingMinigameWaveFunctionNumber
inc [hl]
ret
-Func_f8fae:
+SurfingMinigameWaveFunction_ResetWaveFunction:
xor a
- ld [wc5d3], a
+ ld [wSurfingMinigameWaveFunctionNumber], a
ret
-Func_f8fb3:
- call Func_f9279
+SurfingPikachuMinigameIntro:
+ call SurfingPikachu_ClearTileMap
call ClearSprites
call DisableLCD
xor a
ld [H_AUTOBGTRANSFERENABLED], a
call ClearObjectAnimationBuffers
- ld hl, $6324
+ ld hl, SurfingPikachu1Graphics3
ld de, $8800
ld bc, $900
- ld a, $20
+ ld a, BANK(SurfingPikachu1Graphics3)
call FarCopyData
- ld a, Unkn_f93d3 % $100
+ ld a, SurfingPikachuSpawnStateDataPointer % $100
ld [wAnimatedObjectSpawnStateDataPointer], a
- ld a, Unkn_f93d3 / $100
+ ld a, SurfingPikachuSpawnStateDataPointer / $100
ld [wAnimatedObjectSpawnStateDataPointer + 1], a
- ld a, Jumptable_f93fa % $100
+ ld a, SurfingPikachuObjectJumptable % $100
ld [wAnimatedObjectJumptablePointer], a
- ld a, Jumptable_f93fa / $100
+ ld a, SurfingPikachuObjectJumptable / $100
ld [wAnimatedObjectJumptablePointer + 1], a
- ld a, Unkn_f9507 % $100
+ ld a, SurfingPikachuOAMData % $100
ld [wAnimatedObjectOAMDataPointer], a
- ld a, Unkn_f9507 / $100
+ ld a, SurfingPikachuOAMData / $100
ld [wAnimatedObjectOAMDataPointer + 1], a
- ld a, Unkn_f9405 % $100
+ ld a, SurfingPikachuFrames % $100
ld [wAnimatedObjectFramesDataPointer], a
- ld a, Unkn_f9405 / $100
+ ld a, SurfingPikachuFrames / $100
ld [wAnimatedObjectFramesDataPointer + 1], a
ld a, $c
lb de, $74, $58
call SpawnAnimatedObject
- call Func_f9053
+ call DrawSurfingPikachuMinigameIntroBackground
xor a
ld [hSCX], a
ld [hSCY], a
@@ -2345,7 +2371,7 @@ Func_f8fb3:
call DelayFrame
call DelayFrame
call DelayFrame
- call Func_f81e9
+ call SurfingPikachuMinigame_SetBGPals
ld a, $e4
ld [rOBP0], a
ld a, $e0
@@ -2357,9 +2383,9 @@ Func_f8fb3:
ld c, BANK(Music_SurfingPikachu)
call PlayMusic
xor a
- ld [wc633], a
+ ld [wSurfingMinigameIntroAnimationFinished], a
.loop
- ld a, [wc633]
+ ld a, [wSurfingMinigameIntroAnimationFinished]
and a
ret nz
ld a, $0
@@ -2368,7 +2394,7 @@ Func_f8fb3:
call DelayFrame
jr .loop
-Func_f9053:
+DrawSurfingPikachuMinigameIntroBackground:
ld hl, wTileMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $ff
@@ -2434,32 +2460,32 @@ Tilemap_f91ac: INCBIN "gfx/unknown_f91ac.map"
Tilemap_f91bb: INCBIN "gfx/unknown_f91bb.map"
Tilemap_f91c8: INCBIN "gfx/unknown_f91c8.map"
-Func_f9210:
- ld hl, wc710
- ld de, wc710 + 1
+SurfingMinigame_UpdateLYOverrides:
+ ld hl, wLYOverrides + $10
+ ld de, wLYOverrides + $11
ld c, $80
ld a, [hl]
push af
-.asm_f921a
+.loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_f921a
+ jr nz, .loop
pop af
ld [hl], a
ret
-Func_f9223:
- ld hl, wc700
- ld bc, $100
+SurfingMinigame_InitScanlineOverrides:
+ ld hl, wLYOverrides
+ ld bc, wLYOverridesEnd - wLYOverrides
ld de, $0
-.asm_f922c
+.loop
ld a, e
and $1f
ld e, a
push hl
- ld hl, Unkn_f96c5
+ ld hl, SurfingMinigame_LYOverridesInitialSineWave
add hl, de
ld a, [hl]
pop hl
@@ -2468,21 +2494,21 @@ Func_f9223:
dec bc
ld a, c
or b
- jr nz, .asm_f922c
+ jr nz, .loop
ret
-Func_f923f:
+SurfingPikachu_GetJoypad_3FrameBuffer:
call Joypad
ld a, [H_FRAMECOUNTER]
and a
- jr nz, .asm_f9250
+ jr nz, .delayed
ld a, [hJoyHeld]
ld [hJoy5], a
ld a, $2
ld [H_FRAMECOUNTER], a
ret
-.asm_f9250
+.delayed
xor a
ld [hJoy5], a
ret
@@ -2508,7 +2534,7 @@ SurfingPikachuMinigame_NormalPals:
call UpdateGBCPal_OBP1
ret
-Func_f9279:
+SurfingPikachu_ClearTileMap:
ld hl, wTileMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
@@ -2521,30 +2547,32 @@ Func_f9284:
ld [wc5ee], a
ret
-Func_f928c:
+SurfingMinigame_UpdatePikachuHeight:
ld a, [wc5ed]
and a
- jr nz, .asm_f92e4
+ jr nz, .positive
ld a, [wc5ec]
ld d, a
ld a, [wc5ee]
or d
- jr z, .asm_f92dd
+ jr z, .done
ld a, [wc5ee]
ld e, a
- ld hl, $ff80
+ ld hl, -$80
add hl, de
ld a, l
ld [wc5ee], a
ld a, h
ld [wc5ec], a
+
+ ; -(4 * a ** 2)
ld e, a
ld d, $0
- call Func_f9340
+ call SurfingMinigame_NTimesDE
ld e, l
ld d, h
ld a, $4
- call Func_f9340
+ call SurfingMinigame_NTimesDE
ld a, l
xor $ff
inc a
@@ -2552,43 +2580,46 @@ Func_f928c:
ld a, h
xor $ff
ld h, a
+
push hl
- ld hl, $5
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld d, [hl]
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld e, [hl]
pop hl
+
add hl, de
ld e, l
ld d, h
- ld hl, $5
+
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], d
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], e
and a
ret
-.asm_f92dd
+.done
ld a, $1
ld [wc5ed], a
and a
ret
-.asm_f92e4
- ld a, [wc5ea]
+.positive
+ ld a, [wSurfingMinigamePikachuObjectHeight]
ld e, a
- ld hl, $5
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld a, [hl]
cp $90
- jr nc, .asm_f92f4
+ jr nc, .okay
cp e
- jr nc, .asm_f9330
-.asm_f92f4
+ jr nc, .reset
+.okay
ld a, [wc5ec]
ld d, a
ld a, [wc5ee]
@@ -2599,58 +2630,63 @@ Func_f928c:
ld [wc5ee], a
ld a, h
ld [wc5ec], a
+
+ ; 4 * a ** 2
ld e, a
ld d, $0
- call Func_f9340
+ call SurfingMinigame_NTimesDE
ld e, l
ld d, h
ld a, $4
- call Func_f9340
+ call SurfingMinigame_NTimesDE
+
push hl
- ld hl, $5
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld d, [hl]
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld e, [hl]
pop hl
+
add hl, de
ld e, l
ld d, h
- ld hl, $5
+
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
ld [hl], d
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], e
and a
ret
-.asm_f9330
- ld hl, $5
+.reset
+ ld hl, ANIM_OBJ_Y_COORD
add hl, bc
- ld a, [wc5ea]
+ ld a, [wSurfingMinigamePikachuObjectHeight]
ld [hl], a
- ld hl, $c
+ ld hl, ANIM_OBJ_FIELD_C
add hl, bc
ld [hl], $0
scf
ret
-Func_f9340:
+SurfingMinigame_NTimesDE:
ld hl, $0
-.asm_f9343
+.loop
srl a
- jr nc, .asm_f9348
+ jr nc, .no_add
add hl, de
-.asm_f9348
+.no_add
sla e
rl d
and a
- jr nz, .asm_f9343
+ jr nz, .loop
ret
-Func_f9350:
+SurfingPikachu_PlaceBCDNumber:
ld c, a
swap a
and $f
@@ -2663,77 +2699,77 @@ Func_f9350:
dec de
ret
-Func_f9360: ; cosine
+SurfingPikachu_Cosine: ; cosine
add $10
-Func_f9362: ; sine
+SurfingPikachu_Sine: ; sine
and $3f
cp $20
- jr nc, .asm_f936d
- call Func_f9377
+ jr nc, .positive
+ call .GetSine
ld a, h
ret
-.asm_f936d
+.positive
and $1f
- call Func_f9377
+ call .GetSine
ld a, h
xor $ff
inc a
ret
-Func_f9377:
+.GetSine:
ld e, a
ld a, d
ld d, $0
- ld hl, Unkn_f9393
+ ld hl, .SineWave
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0
-.asm_f9386
+.loop
srl a
- jr nc, .asm_f938b
+ jr nc, .no_add
add hl, de
-.asm_f938b
+.no_add
sla e
rl d
and a
- jr nz, .asm_f9386
+ jr nz, .loop
ret
-Unkn_f9393:
+.SineWave:
sine_wave $100
-Unkn_f93d3:
- db $00, $00, $00
- db $04, $01, $00
- db $11, $02, $00
- db $12, $02, $00
- db $15, $00, $00
- db $16, $00, $00
- db $17, $00, $00
- db $18, $00, $00
- db $19, $00, $00
- db $1a, $00, $00
- db $14, $00, $00
- db $13, $03, $00
- db $1b, $04, $00
-
-Jumptable_f93fa:
- dw Func_f9404
- dw Func_f8470
- dw Func_f87fb
- dw Func_f880b
- dw Func_f882b
-
-Func_f9404:
+SurfingPikachuSpawnStateDataPointer:
+ db $00, $00, $00 ; 0
+ db $04, $01, $00 ; 1
+ db $11, $02, $00 ; 2
+ db $12, $02, $00 ; 3
+ db $15, $00, $00 ; 4
+ db $16, $00, $00 ; 5
+ db $17, $00, $00 ; 6
+ db $18, $00, $00 ; 7
+ db $19, $00, $00 ; 8
+ db $1a, $00, $00 ; 9
+ db $14, $00, $00 ; a
+ db $13, $03, $00 ; b
+ db $1b, $04, $00 ; c
+
+SurfingPikachuObjectJumptable:
+ dw SurfingMinigameAnimatedObjectFn_nop ; 0
+ dw SurfingMinigameAnimatedObjectFn_Pikachu ; 1
+ dw Func_f87fb ; 2
+ dw SurfingMinigameAnimatedObjectFn_FlippingPika ; 3
+ dw SurfingMinigameAnimatedObjectFn_IntroAnimationPikachu ; 4
+
+SurfingMinigameAnimatedObjectFn_nop:
ret
INCLUDE "data/animated_objects_3e_1.asm"
-Unkn_f96c5:
+SurfingMinigame_LYOverridesInitialSineWave:
; a sine wave with amplitude 2
db 0, 0, 0, 1, 1, 1, 1, 2
db 2, 2, 1, 1, 1, 1, 0, 0
@@ -2741,28 +2777,28 @@ Unkn_f96c5:
db -2, -2, -1, -1, -1, -1, 0, 0
Unkn_f96e5:
- db $00, $00, $00, $00
- db $0b, $0b, $0b, $0b
- db $0b, $02, $02, $06
- db $03, $0b, $07, $03
- db $06, $06, $06, $06
- db $07, $07, $07, $07
- db $06, $04, $04, $08
- db $05, $07, $08, $05
- db $0b, $0b, $11, $12
- db $0b, $0b, $13, $03
- db $14, $12, $04, $08
- db $13, $07, $08, $05
- db $06, $14, $06, $14
- db $13, $07, $13, $07
- db $08, $08, $08, $08
- db $14, $12, $14, $12
- db $0b, $11, $02, $14
- db $06, $14, $06, $14
- db $0c, $0c, $0d, $0d
- db $0d, $0d, $0d, $0d
- db $0e, $0f, $10, $0b
- db $12, $13, $12, $13
+ db $00, $00, $00, $00 ; 00
+ db $0b, $0b, $0b, $0b ; 01
+ db $0b, $02, $02, $06 ; 02
+ db $03, $0b, $07, $03 ; 03
+ db $06, $06, $06, $06 ; 04
+ db $07, $07, $07, $07 ; 05
+ db $06, $04, $04, $08 ; 06
+ db $05, $07, $08, $05 ; 07
+ db $0b, $0b, $11, $12 ; 08
+ db $0b, $0b, $13, $03 ; 09
+ db $14, $12, $04, $08 ; 0a
+ db $13, $07, $08, $05 ; 0b
+ db $06, $14, $06, $14 ; 0c
+ db $13, $07, $13, $07 ; 0d
+ db $08, $08, $08, $08 ; 0e
+ db $14, $12, $14, $12 ; 0f
+ db $0b, $11, $02, $14 ; 10
+ db $06, $14, $06, $14 ; 11
+ db $0c, $0c, $0d, $0d ; 12
+ db $0d, $0d, $0d, $0d ; 13
+ db $0e, $0f, $10, $0b ; 14
+ db $12, $13, $12, $13 ; 15
Unkn_f973d:
db $00, $00, $00, $01, $01, $01, $01, $01
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm
index c6068813..2cfcc445 100755
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -1,4 +1,4 @@
-SetDefaultNamesBeforeTitlescreen: ; 414b (1:414b)
+SetDefaultNamesBeforeTitlescreen:
ld hl, NintenText
ld de, wPlayerName
call CopyFixedLengthText
@@ -16,7 +16,7 @@ SetDefaultNamesBeforeTitlescreen: ; 414b (1:414b)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
-DisplayTitleScreen: ; 4171 (1:4171)
+DisplayTitleScreen:
call GBPalWhiteOut
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -31,7 +31,7 @@ DisplayTitleScreen: ; 4171 (1:4171)
call DisableLCD
call LoadFontTilePatterns
; todo: fix hl pointers
- ld hl, NintendoCopyrightLogoGraphics ; 4:4c48
+ ld hl, NintendoCopyrightLogoGraphics
ld de, vTitleLogo + $600
ld bc, $50
ld a, BANK(NintendoCopyrightLogoGraphics)
@@ -91,7 +91,7 @@ DisplayTitleScreen: ; 4171 (1:4171)
call .ScrollTitleScreenPokemonLogo
jr .bouncePokemonLogoLoop
-.TitleScreenPokemonLogoYScrolls ; 4228 (1:4228)
+.TitleScreenPokemonLogoYScrolls:
; Controls the bouncing effect of the Pokemon logo on the title screen
db -4,16 ; y scroll amount, number of times to scroll
db 3,4
@@ -102,7 +102,7 @@ DisplayTitleScreen: ; 4171 (1:4171)
db -1,2
db 0 ; terminate list with 0
-.ScrollTitleScreenPokemonLogo ; 4237 (1:4237)
+.ScrollTitleScreenPokemonLogo:
; Scrolls the Pokemon logo on the title screen to create the bouncing effect
; Scrolls d pixels e times
call DelayFrame
@@ -194,7 +194,7 @@ DisplayTitleScreen: ; 4171 (1:4171)
.asm_42f0 ; 42f0 (1:42f0)
; unreferenced
- callab Func_e8e79
+ callab PrinterDebug
jp .loop
.asm_42fb ; 42fb (1:42fb)
@@ -226,17 +226,17 @@ DisplayTitleScreen: ; 4171 (1:4171)
jpba DoClearSaveDialogue
-TitleScreenCopyTileMapToVRAM: ; 4332 (1:4332)
+TitleScreenCopyTileMapToVRAM:
ld [H_AUTOBGTRANSFERDEST + 1], a
jp Delay3
-LoadCopyrightAndTextBoxTiles: ; 4337 (1:4337)
+LoadCopyrightAndTextBoxTiles:
xor a
ld [hWY], a
call ClearScreen
call LoadTextBoxTilePatterns
-LoadCopyrightTiles: ; 4340 (1:4340)
+LoadCopyrightTiles:
ld de, NintendoCopyrightLogoGraphics
ld hl, vChars2 + $600
lb bc, BANK(NintendoCopyrightLogoGraphics), (TextBoxGraphics + $10 - NintendoCopyrightLogoGraphics) / $10 ; bug: overflows into text box graphics and copies the "A" tile
@@ -245,17 +245,17 @@ LoadCopyrightTiles: ; 4340 (1:4340)
ld de, CopyrightTextString
jp PlaceString
-CopyrightTextString: ; 4355 (1:4355)
+CopyrightTextString:
db $60,$61,$62,$63,$61,$62,$7c,$7f,$65,$66,$67,$68,$69,$6a ; ©1995-1999 Nintendo
next $60,$61,$62,$63,$61,$62,$7c,$7f,$6b,$6c,$6d,$6e,$6f,$70,$71,$72 ; ©1995-1999 Creatures inc.
next $60,$61,$62,$63,$61,$62,$7c,$7f,$73,$74,$75,$76,$77,$78,$79,$7a,$7b ; ©1995-1999 GAME FREAK inc.
db "@"
-TitleScreen_PlayPikachuPCM: ; 4387 (1:4387)
+TitleScreen_PlayPikachuPCM:
callab PlayPikachuSoundClip
ret
-DoTitleScreenFunction: ; 4390 (1:4390)
+DoTitleScreenFunction:
call .CheckTimer
ld a, [wTitleScreenScene]
ld e, a
@@ -269,7 +269,7 @@ DoTitleScreenFunction: ; 4390 (1:4390)
jp [hl]
-.Jumptable: ; 43a2 (1:43a2)
+.Jumptable:
dw .Nop
dw .BlinkHalf
dw .BlinkWait
@@ -283,23 +283,23 @@ DoTitleScreenFunction: ; 4390 (1:4390)
dw .BlinkOpen
dw .GoBackToStart
-.GoBackToStart: ; 43ba (1:43ba)
+.GoBackToStart:
xor a
ld [wTitleScreenScene], a
.Nop
ret
-.BlinkOpen: ; 43bf (1:43bf)
+.BlinkOpen:
ld e, 0
jr .LoadBlinkFrame
-.BlinkHalf: ; 43c3 (1:43c3)
+.BlinkHalf:
ld e, 4
jr .LoadBlinkFrame
-.BlinkClosed: ; 43c7 (1:43c7)
+.BlinkClosed:
ld e, 8
-.LoadBlinkFrame: ; 43c9 (1:43c9)
+.LoadBlinkFrame:
ld hl, wOAMBuffer + 2
ld c, 8
.loop
@@ -312,12 +312,12 @@ DoTitleScreenFunction: ; 4390 (1:4390)
inc hl
dec c
jr nz, .loop
-.BlinkWait: ; 43d9 (1:43d9)
+.BlinkWait:
ld hl, wTitleScreenScene
inc [hl]
ret
-.CheckTimer: ; 43de (1:43de)
+.CheckTimer:
ld hl, wTitleScreenTimer
ld a, [hl]
inc [hl]
@@ -333,14 +333,14 @@ DoTitleScreenFunction: ; 4390 (1:4390)
ret
; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...)
-CopyFixedLengthText: ; 43f3 (1:43f3)
+CopyFixedLengthText:
ld bc, NAME_LENGTH
jp CopyData
NintenText: db "NINTEN@"
SonyText: db "SONY@"
-IncrementResetCounter: ; 4405 (1:4405)
+IncrementResetCounter:
ld hl, wTitleScreenScene + 2
ld e, [hl]
inc hl
@@ -359,7 +359,7 @@ IncrementResetCounter: ; 4405 (1:4405)
scf
ret
-FillSpriteBuffer0WithAA: ; 4418 (1:4418)
+FillSpriteBuffer0WithAA:
xor a
call SwitchSRAMBankAndLatchClockData
ld hl, sSpriteBuffer0
diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm
index cf4506bc..8b4bc4de 100755
--- a/engine/titlescreen2.asm
+++ b/engine/titlescreen2.asm
@@ -1,24 +1,24 @@
; Leftover of Red/Blue. Seemingly unused
-TitleScroll_WaitBall: ; 3749e (d:749e)
+TitleScroll_WaitBall:
; Wait around for the TitleBall animation to play out.
; hi: speed
; lo: duration
db $05, $05, 0
-TitleScroll_In: ; 374a1 (d:74a1)
+TitleScroll_In:
; Scroll a TitleMon in from the right.
; hi: speed
; lo: duration
db $a2, $94, $84, $63, $52, $31, $11, 0
-TitleScroll_Out: ; 374a9 (d:74a9)
+TitleScroll_Out:
; Scroll a TitleMon out to the left.
; hi: speed
; lo: duration
db $12, $22, $32, $42, $52, $62, $83, $93, 0
-TitleScroll: ; 374b2 (d:74b2)
+TitleScroll:
ld a, d
ld bc, TitleScroll_In
@@ -33,7 +33,7 @@ TitleScroll: ; 374b2 (d:74b2)
ld e, 0 ; don't animate titleball
.ok
-_TitleScroll: ; 374c4 (d:74c4)
+_TitleScroll:
ld a, [bc]
and a
ret z
@@ -69,7 +69,7 @@ _TitleScroll: ; 374c4 (d:74c4)
pop bc
jr _TitleScroll
-.ScrollBetween ; 374ec (d:74ec)
+.ScrollBetween:
.wait
ld a, [rLY] ; rLY
cp l
@@ -84,12 +84,12 @@ _TitleScroll: ; 374c4 (d:74c4)
jr z, .wait2
ret
-TitleBallYTable: ; 374fa (d:74fa)
+TitleBallYTable:
; OBJ y-positions for the Poke Ball held by Red in the title screen.
; This is really two 0-terminated lists. Initiated with an index of 1.
db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
-TitleScreenAnimateBallIfStarterOut: ; 37506 (d:7506)
+TitleScreenAnimateBallIfStarterOut:
; Animate the TitleBall if a starter just got scrolled out.
ld a, [wTitleScreenScene]
cp STARTER1
@@ -104,7 +104,7 @@ TitleScreenAnimateBallIfStarterOut: ; 37506 (d:7506)
ld d, 0
jp _TitleScroll
-GetTitleBallY: ; 3751e (d:751e)
+GetTitleBallY:
; Get position e from TitleBallYTable
push de
push hl
diff --git a/engine/town_map.asm b/engine/town_map.asm
index 47812db0..cf09be7c 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -1,4 +1,4 @@
-DisplayTownMap: ; 70eb7 (1c:4eb7)
+DisplayTownMap:
call LoadTownMap
ld hl, wUpdateSpritesEnabled
ld a, [hl]
@@ -27,7 +27,7 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
pop af
jr .enterLoop
-.townMapLoop ; 70ef4 (1c:4ef4)
+.townMapLoop
coord hl, 0, 0
lb bc, 1, 20
call ClearScreenArea
@@ -37,7 +37,7 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
ld b, 0
add hl, bc
ld a, [hl]
-.enterLoop ; 70f08 (1c:4f08)
+.enterLoop
ld de, wTownMapCoords
call LoadTownMapEntry
ld a, [de]
@@ -69,7 +69,7 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
ld b, a
and A_BUTTON | B_BUTTON | D_UP | D_DOWN
jr z, .inputLoop
- ld a, $8c
+ ld a, SFX_TINK
call PlaySound
bit 6, b
jr nz, .pressedUp
@@ -84,7 +84,6 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
pop af
ld [hl], a
ret
-
.pressedUp
ld a, [wWhichTownMapLocation]
inc a
@@ -113,11 +112,11 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
INCLUDE "data/town_map_order.asm"
-TownMapCursor: ; 70fc4 (1c:4fc4)
+TownMapCursor:
INCBIN "gfx/town_map_cursor.1bpp"
TownMapCursorEnd:
-LoadTownMap_Nest: ; 70fe4 (1c:4fe4)
+LoadTownMap_Nest:
call LoadTownMap
ld hl, wUpdateSpritesEnabled
ld a, [hl]
@@ -139,17 +138,17 @@ LoadTownMap_Nest: ; 70fe4 (1c:4fe4)
ld [hl], a
ret
-MonsNestText: ; 7100d (1c:500d)
+MonsNestText:
db "'s NEST@"
-LoadTownMap_Fly: ; 71014 (1c:5014)
+LoadTownMap_Fly:
call ClearSprites
call LoadTownMap
ld a, $1
ld [hJoy7], a
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
- ld de, BirdSprite ; $4d80
+ ld de, BirdSprite
ld b, BANK(BirdSprite)
ld c, $c
ld hl, vSprites + $40
@@ -205,7 +204,7 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
jr z, .inputLoop
bit 0, b
jr nz, .pressedA
- ld a, $8c ; SFX_TINK
+ ld a, SFX_TINK
call PlaySound
bit 6, b
jr nz, .pressedUp
@@ -213,7 +212,7 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
jr nz, .pressedDown
jr .pressedB
.pressedA
- ld a, $8e ; SFX_HEAL_AILMENT
+ ld a, SFX_HEAL_AILMENT
call PlaySound
ld a, [hl]
ld [wDestinationMap], a
@@ -255,10 +254,10 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
ld hl, wFlyLocationsList + 11
jr .pressedDown
-ToText: ; 710f8 (1c:50f8)
+ToText:
db "To@"
-BuildFlyLocationsList: ; 710fb (1c:50fb)
+BuildFlyLocationsList:
ld hl, wFlyLocationsList - 1
ld [hl], $ff
inc hl
@@ -282,11 +281,11 @@ BuildFlyLocationsList: ; 710fb (1c:50fb)
ld [hl], $ff
ret
-TownMapUpArrow: ; 7111e (1c:511e)
+TownMapUpArrow:
INCBIN "gfx/up_arrow.1bpp"
TownMapUpArrowEnd:
-LoadTownMap: ; 71126 (1c:5126)
+LoadTownMap:
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
@@ -299,7 +298,7 @@ LoadTownMap: ; 71126 (1c:5126)
ld bc, WorldMapTileGraphicsEnd - WorldMapTileGraphics
ld a, BANK(WorldMapTileGraphics)
call FarCopyData
- ld hl, MonNestIcon ; $574b
+ ld hl, MonNestIcon
ld de, vSprites + $40
ld bc, MonNestIconEnd - MonNestIcon
ld a, BANK(MonNestIcon)
@@ -335,11 +334,11 @@ LoadTownMap: ; 71126 (1c:5126)
ld [wTownMapSpriteBlinkingEnabled], a
ret
-CompressedMap: ; 7118a (1c:518a)
+CompressedMap:
; you can decompress this file with the redrle program in the extras/ dir
INCBIN "gfx/town_map.rle"
-ExitTownMap: ; 71235 (1c:5235)
+ExitTownMap:
; clear town map graphics data and load usual graphics data
xor a
ld [wTownMapSpriteBlinkingEnabled], a
@@ -351,7 +350,7 @@ ExitTownMap: ; 71235 (1c:5235)
call UpdateSprites
jp RunDefaultPaletteCommand
-DrawPlayerOrBirdSprite: ; 7124e (1c:524e)
+DrawPlayerOrBirdSprite:
; a = map number
; b = OAM base tile
push af
@@ -366,18 +365,18 @@ DrawPlayerOrBirdSprite: ; 7124e (1c:524e)
call WritePlayerOrBirdSpriteOAM
pop hl
ld de, wcd6d
-.asm_71266
+.loop
ld a, [hli]
ld [de], a
inc de
cp "@"
- jr nz, .asm_71266
+ jr nz, .loop
ld hl, wOAMBuffer
ld de, wTileMapBackup
ld bc, $a0
jp CopyData
-DisplayWildLocations: ; 71279 (1c:5279)
+DisplayWildLocations:
callba FindWildLocationsOfMon
call ZeroOutDuplicatesInList
ld hl, wOAMBuffer
@@ -424,10 +423,10 @@ DisplayWildLocations: ; 71279 (1c:5279)
ld bc, $a0
jp CopyData
-AreaUnknownText: ; 712d3 (1c:52d3)
+AreaUnknownText:
db " AREA UNKNOWN@"
-TownMapCoordsToOAMCoords: ; 712e1 (1c:52e1)
+TownMapCoordsToOAMCoords:
; in: lower nybble of a = x, upper nybble of a = y
; out: b and [hl] = (y * 8) + 24, c and [hl+1] = (x * 8) + 24
push af
@@ -445,14 +444,14 @@ TownMapCoordsToOAMCoords: ; 712e1 (1c:52e1)
ld [hli], a
ret
-WritePlayerOrBirdSpriteOAM: ; 712f6 (1c:52f6)
+WritePlayerOrBirdSpriteOAM:
ld a, [wOAMBaseTile]
and a
ld hl, wOAMBuffer + $90 ; for player sprite
jr z, WriteTownMapSpriteOAM
ld hl, wOAMBuffer + $80 ; for bird sprite
-WriteTownMapSpriteOAM: ; 71302 (1c:5302)
+WriteTownMapSpriteOAM:
push hl
; Subtract 4 from c (X coord) and 4 from b (Y coord). However, the carry from c
@@ -464,8 +463,8 @@ WriteTownMapSpriteOAM: ; 71302 (1c:5302)
ld c, l
pop hl
-WriteAsymmetricMonPartySpriteOAM: ; 7130a (1c:530a)
-; Writes 4 OAM blocks for a helix mon party sprite, since is does not have
+WriteAsymmetricMonPartySpriteOAM:
+; Writes 4 OAM blocks for a helix mon party sprite, since it does not have
; a vertical line of symmetry.
lb de, 2, 2
.loop
@@ -483,21 +482,21 @@ WriteAsymmetricMonPartySpriteOAM: ; 7130a (1c:530a)
xor a
ld [hli], a
inc d
- ld a, $8
+ ld a, 8
add c
ld c, a
dec e
jr nz, .innerLoop
pop bc
pop de
- ld a, $8
+ ld a, 8
add b
ld b, a
dec d
jr nz, .loop
ret
-WriteSymmetricMonPartySpriteOAM: ; 7132f (1c:532f)
+WriteSymmetricMonPartySpriteOAM:
; Writes 4 OAM blocks for a mon party sprite other than a helix. All the
; sprites other than the helix one have a vertical line of symmetry which allows
; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are
@@ -539,7 +538,7 @@ WriteSymmetricMonPartySpriteOAM: ; 7132f (1c:532f)
jr nz, .loop
ret
-ZeroOutDuplicatesInList: ; 71362 (1c:5362)
+ZeroOutDuplicatesInList:
; replace duplicate bytes in the list of wild pokemon locations with 0
ld de, wBuffer
.loop
@@ -562,7 +561,7 @@ ZeroOutDuplicatesInList: ; 71362 (1c:5362)
inc hl
jr .zeroDuplicatesLoop
-LoadTownMapEntry: ; 7137a (1c:537a)
+LoadTownMapEntry:
; in: a = map number
; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name
cp REDS_HOUSE_1F
@@ -592,20 +591,15 @@ LoadTownMapEntry: ; 7137a (1c:537a)
ld l, a
ret
-; ExternalMapEntries: ; 7139c (1c:539c)
- ; dr $7139c,$7140b
-; InternalMapEntries: ; 7140b (1c:540b)
- ; dr $7140b,$7174b
-
INCLUDE "data/town_map_entries.asm"
-INCLUDE "text/map_names.asm" ; TODO: relabel addresses
+INCLUDE "text/map_names.asm"
-MonNestIcon: ; 7174b (1c:574b)
+MonNestIcon:
INCBIN "gfx/mon_nest_icon.1bpp"
MonNestIconEnd:
-TownMapSpriteBlinkingAnimation: ; 71753 (1c:5753)
+TownMapSpriteBlinkingAnimation:
ld a, [wAnimCounter]
inc a
cp 25
diff --git a/engine/trade.asm b/engine/trade.asm
index fd5eb1d1..2476ca78 100755
--- a/engine/trade.asm
+++ b/engine/trade.asm
@@ -1,4 +1,4 @@
-InternalClockTradeAnim: ; 413e5 (10:53e5)
+InternalClockTradeAnim:
; Do the trading animation with the player's gameboy on the left.
; In-game trades and internally clocked link cable trades use this.
ld a, [wTradedPlayerMonSpecies]
@@ -8,7 +8,7 @@ InternalClockTradeAnim: ; 413e5 (10:53e5)
ld de, InternalClockTradeFuncSequence
jr TradeAnimCommon
-ExternalClockTradeAnim: ; 413f6 (10:53f6)
+ExternalClockTradeAnim:
; Do the trading animation with the player's gameboy on the right.
; Externally clocked link cable trades use this.
ld a, [wTradedEnemyMonSpecies]
@@ -17,7 +17,7 @@ ExternalClockTradeAnim: ; 413f6 (10:53f6)
ld [wRightGBMonSpecies], a
ld de, ExternalClockTradeFuncSequence
-TradeAnimCommon: ; 41405 (10:5405)
+TradeAnimCommon:
ld a, [wOptions]
push af
and %110000 ; preserve speaker options
@@ -70,7 +70,7 @@ tradefunc: MACRO
; They are from opposite perspectives. The external clock one makes use of
; Trade_SwapNames to swap the player and enemy names for some functions.
-InternalClockTradeFuncSequence: ; 4143d (10:543d)
+InternalClockTradeFuncSequence:
tradefunc LoadTradingGFXAndMonNames
tradefunc Trade_ShowPlayerMon
tradefunc Trade_DrawOpenEndOfLinkCable
@@ -89,7 +89,7 @@ InternalClockTradeFuncSequence: ; 4143d (10:543d)
tradefunc Trade_Cleanup
db $FF
-ExternalClockTradeFuncSequence: ; 4144e (10:544e)
+ExternalClockTradeFuncSequence:
tradefunc LoadTradingGFXAndMonNames
tradefunc Trade_ShowClearedWindow
tradefunc PrintTradeWillTradeText
@@ -113,7 +113,7 @@ ExternalClockTradeFuncSequence: ; 4144e (10:544e)
tradefunc Trade_Cleanup
db $FF
-TradeFuncPointerTable: ; 41464 (10:5464)
+TradeFuncPointerTable:
addtradefunc LoadTradingGFXAndMonNames
addtradefunc Trade_ShowPlayerMon
addtradefunc Trade_DrawOpenEndOfLinkCable
@@ -132,11 +132,11 @@ TradeFuncPointerTable: ; 41464 (10:5464)
addtradefunc Trade_SlideTextBoxOffScreen
addtradefunc Trade_SwapNames
-Trade_Delay100: ; 41486 (10:5486)
+Trade_Delay100:
ld c, 100
jp DelayFrames
-Trade_CopyTileMapToVRAM: ; 4148b (10:548b)
+Trade_CopyTileMapToVRAM:
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
@@ -144,17 +144,17 @@ Trade_CopyTileMapToVRAM: ; 4148b (10:548b)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Trade_Delay80: ; 41496 (10:5496)
+Trade_Delay80:
ld c, 80
jp DelayFrames
-Trade_ClearTileMap: ; 4149b (10:549b)
+Trade_ClearTileMap:
coord hl, 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
jp FillMemory
-LoadTradingGFXAndMonNames: ; 414a6 (10:54a6)
+LoadTradingGFXAndMonNames:
call Trade_ClearTileMap
call DisableLCD
ld hl, TradingAnimationGraphics
@@ -198,13 +198,13 @@ LoadTradingGFXAndMonNames: ; 414a6 (10:54a6)
ld [wd11e], a
jp GetMonName
-Trade_LoadMonPartySpriteGfx: ; 41513 (10:5513)
+Trade_LoadMonPartySpriteGfx:
ld a, %11010000
ld [rOBP1], a
call UpdateGBCPal_OBP1
jpba LoadMonPartySpriteGfx
-Trade_SwapNames: ; 41522 (10:5522)
+Trade_SwapNames:
ld hl, wPlayerName
ld de, wBuffer
ld bc, NAME_LENGTH
@@ -218,14 +218,14 @@ Trade_SwapNames: ; 41522 (10:5522)
ld bc, NAME_LENGTH
jp CopyData
-Trade_Cleanup: ; 41546 (10:5546)
+Trade_Cleanup:
xor a
call LoadGBPal
ld hl, wd730
res 6, [hl] ; turn off instant text printing
ret
-Trade_ShowPlayerMon: ; 41550 (10:5550)
+Trade_ShowPlayerMon:
ld a, %10101011
ld [rLCDC], a
ld a, $50
@@ -253,7 +253,7 @@ Trade_ShowPlayerMon: ; 41550 (10:5550)
ld [hSCX], a
dec a
dec a
- and a ; useless since flags are updated with dec a
+ and a
jr nz, .slideScreenLoop
call Trade_Delay80
ld a, TRADE_BALL_POOF_ANIM
@@ -266,7 +266,7 @@ Trade_ShowPlayerMon: ; 41550 (10:5550)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Trade_DrawOpenEndOfLinkCable: ; 415a2 (10:55a2)
+Trade_DrawOpenEndOfLinkCable:
call Trade_ClearTileMap
ld b, vBGMap0 / $100
call CopyScreenTileBufferToVRAM
@@ -298,7 +298,7 @@ Trade_DrawOpenEndOfLinkCable: ; 415a2 (10:55a2)
jr nz, .loop
ret
-Trade_AnimateBallEnteringLinkCable: ; 415dc (10:55dc)
+Trade_AnimateBallEnteringLinkCable:
ld a, TRADE_BALL_SHAKE_ANIM
call Trade_ShowAnimation
ld c, 10
@@ -348,11 +348,11 @@ Trade_AnimateBallEnteringLinkCable: ; 415dc (10:55dc)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Trade_BallInsideLinkCableOAM: ; 4163b (10:563b)
+Trade_BallInsideLinkCableOAM:
db $7E,$00,$7E,$20
db $7E,$40,$7E,$60
-Trade_ShowEnemyMon: ; 41643 (10:5643)
+Trade_ShowEnemyMon:
ld a, TRADE_BALL_TILT_ANIM
call Trade_ShowAnimation
call Trade_ShowClearedWindow
@@ -377,7 +377,7 @@ Trade_ShowEnemyMon: ; 41643 (10:5643)
call ClearScreenArea
jp PrintTradeTakeCareText
-Trade_AnimLeftToRight: ; 41682 (10:5682)
+Trade_AnimLeftToRight:
; Animates the mon moving from the left GB to the right one.
call Trade_InitGameboyTransferGfx
ld a, $1
@@ -412,7 +412,7 @@ Trade_AnimLeftToRight: ; 41682 (10:5682)
call Trade_AnimMonMoveVertical
jp ClearSprites
-Trade_AnimRightToLeft: ; 416d5 (10:56d5)
+Trade_AnimRightToLeft:
; Animates the mon moving from the right GB to the left one.
call Trade_InitGameboyTransferGfx
xor a
@@ -444,7 +444,7 @@ Trade_AnimRightToLeft: ; 416d5 (10:56d5)
ld [H_AUTOBGTRANSFERENABLED], a
jp ClearSprites
-Trade_InitGameboyTransferGfx: ; 41720 (10:5720)
+Trade_InitGameboyTransferGfx:
; Initialises the graphics for showing a mon moving between gameboys.
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -463,7 +463,7 @@ Trade_InitGameboyTransferGfx: ; 41720 (10:5720)
ld [hWY], a
ret
-Trade_DrawLeftGameboy: ; 41741 (10:5741)
+Trade_DrawLeftGameboy:
call Trade_ClearTileMap
; draw link cable
@@ -492,7 +492,7 @@ Trade_DrawLeftGameboy: ; 41741 (10:5741)
jp DelayFrame
-Trade_DrawRightGameboy: ; 4176f (10:576f)
+Trade_DrawRightGameboy:
call Trade_ClearTileMap
; draw horizontal segment of link cable
@@ -538,7 +538,7 @@ Trade_DrawRightGameboy: ; 4176f (10:576f)
jp DelayFrame
-Trade_DrawCableAcrossScreen: ; 417b1 (10:57b1)
+Trade_DrawCableAcrossScreen:
; Draws the link cable across the screen.
call Trade_ClearTileMap
coord hl, 0, 4
@@ -550,7 +550,7 @@ Trade_DrawCableAcrossScreen: ; 417b1 (10:57b1)
jr nz, .loop
ret
-Trade_CopyCableTilesOffScreen: ; 417c0 (10:57c0)
+Trade_CopyCableTilesOffScreen:
; This is used to copy the link cable tiles off screen so that the cable
; continues when the screen is scrolled.
push hl
@@ -566,7 +566,7 @@ Trade_CopyCableTilesOffScreen: ; 417c0 (10:57c0)
ld c, 10
jp DelayFrames
-Trade_AnimMonMoveHorizontal: ; 417d7 (10:57d7)
+Trade_AnimMonMoveHorizontal:
; Animates the mon going through the link cable horizontally over a distance of
; b 16-pixel units.
ld a, [wTradedMonMovingRight]
@@ -593,7 +593,7 @@ Trade_AnimMonMoveHorizontal: ; 417d7 (10:57d7)
jr nz, Trade_AnimMonMoveHorizontal
ret
-Trade_AnimCircledMon: ; 417fa (10:57fa)
+Trade_AnimCircledMon:
; Cycles between the two animation frames of the mon party sprite, cycles
; between a circle and an oval around the mon sprite, and makes the cable flash.
push de
@@ -618,11 +618,11 @@ Trade_AnimCircledMon: ; 417fa (10:57fa)
pop de
ret
-Trade_WriteCircledMonOAM: ; 4181a (10:581a)
+Trade_WriteCircledMonOAM:
callba WriteMonPartySpriteOAMBySpecies
call Trade_WriteCircleOAM
-Trade_AddOffsetsToOAMCoords: ; 41825 (10:5825)
+Trade_AddOffsetsToOAMCoords:
ld hl, wOAMBuffer
ld c, $14 ; SCREEN_WIDTH?
.loop
@@ -638,7 +638,7 @@ Trade_AddOffsetsToOAMCoords: ; 41825 (10:5825)
jr nz, .loop
ret
-Trade_AnimMonMoveVertical: ; 4183a (10:583a)
+Trade_AnimMonMoveVertical:
; Animates the mon going through the link cable vertically as well as
; horizontally for a bit. The last bit of horizontal movement (when moving
; right) or the first bit of horizontal movement (when moving left) are done
@@ -674,7 +674,7 @@ Trade_AnimMonMoveVertical: ; 4183a (10:583a)
jr nz, .loop
ret
-Trade_WriteCircleOAM: ; 4186d (10:586d)
+Trade_WriteCircleOAM:
; Writes the OAM blocks for the circle around the traded mon as it passes
; the link cable.
ld hl, Trade_CircleOAMPointers
@@ -701,7 +701,7 @@ Trade_WriteCircleOAM: ; 4186d (10:586d)
jr nz, .loop
ret
-Trade_CircleOAMPointers: ; 41889 (10:5889)
+Trade_CircleOAMPointers:
dw Trade_CircleOAM0
db $08,$08
dw Trade_CircleOAM1
@@ -711,24 +711,24 @@ Trade_CircleOAMPointers: ; 41889 (10:5889)
dw Trade_CircleOAM3
db $18,$18
-Trade_CircleOAM0: ; 41899 (10:5899)
+Trade_CircleOAM0:
db $38,$10,$39,$10
db $3A,$10,$3B,$10
-Trade_CircleOAM1: ; 418a1 (10:58a1)
+Trade_CircleOAM1:
db $39,$30,$38,$30
db $3B,$30,$3A,$30
-Trade_CircleOAM2: ; 418a9 (10:58a9)
+Trade_CircleOAM2:
db $3A,$50,$3B,$50
db $38,$50,$39,$50
-Trade_CircleOAM3: ; 418b1 (10:58b1)
+Trade_CircleOAM3:
db $3B,$70,$3A,$70
db $39,$70,$38,$70
; a = species
-Trade_LoadMonSprite: ; 418b9 (10:58b9)
+Trade_LoadMonSprite:
ld [wcf91], a
ld [wd0b5], a
ld [wWholeScreenPaletteMonSpecies], a
@@ -744,7 +744,7 @@ Trade_LoadMonSprite: ; 418b9 (10:58b9)
ld c, 10
jp DelayFrames
-Trade_ShowClearedWindow: ; 418dd (10:58dd)
+Trade_ShowClearedWindow:
; clears the window and covers the BG entirely with the window
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -759,7 +759,7 @@ Trade_ShowClearedWindow: ; 418dd (10:58dd)
ld [hSCX], a
ret
-Trade_SlideTextBoxOffScreen: ; 418f4 (10:58f4)
+Trade_SlideTextBoxOffScreen:
; Slides the window right until it's off screen. The window usually just has
; a text box at the bottom when this is called. However, when this is called
; after Trade_ShowEnemyMon in the external clock sequence, there is a mon pic
@@ -781,18 +781,18 @@ Trade_SlideTextBoxOffScreen: ; 418f4 (10:58f4)
ld [rWX], a
ret
-PrintTradeWentToText: ; 41913 (10:5913)
+PrintTradeWentToText:
ld hl, TradeWentToText
call PrintText
ld c, 200
call DelayFrames
jp Trade_SlideTextBoxOffScreen
-TradeWentToText: ; 41921 (10:5921)
+TradeWentToText:
TX_FAR _TradeWentToText
db "@"
-PrintTradeForSendsText: ; 41926 (10:5926)
+PrintTradeForSendsText:
ld hl, TradeForText
call PrintText
call Trade_Delay80
@@ -800,15 +800,15 @@ PrintTradeForSendsText: ; 41926 (10:5926)
call PrintText
jp Trade_Delay80
-TradeForText: ; 41938 (10:5938)
+TradeForText:
TX_FAR _TradeForText
db "@"
-TradeSendsText: ; 4193d (10:593d)
+TradeSendsText:
TX_FAR _TradeSendsText
db "@"
-PrintTradeFarewellText: ; 41942 (10:5942)
+PrintTradeFarewellText:
ld hl, TradeWavesFarewellText
call PrintText
call Trade_Delay80
@@ -817,24 +817,24 @@ PrintTradeFarewellText: ; 41942 (10:5942)
call Trade_Delay80
jp Trade_SlideTextBoxOffScreen
-TradeWavesFarewellText: ; 41957 (10:5957)
+TradeWavesFarewellText:
TX_FAR _TradeWavesFarewellText
db "@"
-TradeTransferredText: ; 4195c (10:595c)
+TradeTransferredText:
TX_FAR _TradeTransferredText
db "@"
-PrintTradeTakeCareText: ; 41961 (10:5961)
+PrintTradeTakeCareText:
ld hl, TradeTakeCareText
call PrintText
jp Trade_Delay80
-TradeTakeCareText: ; 4196a (10:596a)
+TradeTakeCareText:
TX_FAR _TradeTakeCareText
db "@"
-PrintTradeWillTradeText: ; 4196f (10:596f)
+PrintTradeWillTradeText:
ld hl, TradeWillTradeText
call PrintText
call Trade_Delay80
@@ -842,15 +842,15 @@ PrintTradeWillTradeText: ; 4196f (10:596f)
call PrintText
jp Trade_Delay80
-TradeWillTradeText: ; 41981 (10:5981)
+TradeWillTradeText:
TX_FAR _TradeWillTradeText
db "@"
-TradeforText: ; 41986 (10:5986)
+TradeforText:
TX_FAR _TradeforText
db "@"
-Trade_ShowAnimation: ; 4198b (10:598b)
+Trade_ShowAnimation:
ld [wAnimationID], a
xor a
ld [wAnimationType], a
diff --git a/engine/trade2.asm b/engine/trade2.asm
index a4996403..c47da36a 100755
--- a/engine/trade2.asm
+++ b/engine/trade2.asm
@@ -1,4 +1,4 @@
-Trade_PrintPlayerMonInfoText: ; 41be6 (10:5be6)
+Trade_PrintPlayerMonInfoText:
coord hl, 5, 0
ld de,Trade_MonInfoText
call PlaceString
@@ -20,7 +20,7 @@ Trade_PrintPlayerMonInfoText: ; 41be6 (10:5be6)
lb bc, LEADING_ZEROES | 2, 5
jp PrintNumber
-Trade_PrintEnemyMonInfoText: ; 41c24 (10:5c24)
+Trade_PrintEnemyMonInfoText:
coord hl, 5, 10
ld de,Trade_MonInfoText
call PlaceString
@@ -42,7 +42,7 @@ Trade_PrintEnemyMonInfoText: ; 41c24 (10:5c24)
lb bc, LEADING_ZEROES | 2, 5
jp PrintNumber
-Trade_MonInfoText: ; 41c62 (10:5c62)
+Trade_MonInfoText:
db "──",$74,$F2
db $4e ; next
next "OT/"
diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm
index 9962649d..ca5d8bff 100755
--- a/engine/unknown_ea3ea.asm
+++ b/engine/unknown_ea3ea.asm
@@ -1,4 +1,4 @@
-Func_ea3ea: ; ea3ea (3a:63ea)
+Printer_GetMonStats:
call GBPalWhiteOutWithDelay3
call ClearScreen
call LoadHpBarAndStatusTilePatterns
@@ -140,7 +140,7 @@ Func_ea3ea: ; ea3ea (3a:63ea)
call LoadFlippedFrontSpriteByMonIndex
ret
-.GetNamePointer: ; ea511 (3a:6511)
+.GetNamePointer:
ld bc, NAME_LENGTH
ld a, [wWhichPokemon]
call AddNTimes
@@ -148,7 +148,7 @@ Func_ea3ea: ; ea3ea (3a:63ea)
ld d, h
ret
-.PlaceMoveName: ; ea51d (3a:651d)
+.PlaceMoveName:
and a
jr z, .no_move
ld [wPokeBallAnimData], a
@@ -177,18 +177,18 @@ Func_ea3ea: ; ea3ea (3a:63ea)
next "SPECIAL@"
; ea554
-.Blank: ; ea554 (3a:6554)
+.Blank:
db "--------------@"
-GFX_ea563: ; ea563 (3a:6563)
+GFX_ea563:
INCBIN "gfx/stats_screen_hp.1bpp"
-GFX_ea563End: ; ea56b (3a:656b)
+GFX_ea563End:
GFX_ea56b:
INCBIN "gfx/stats_screen_lv.1bpp"
-GFX_ea56bEnd: ; ea573 (3a:6573)
+GFX_ea56bEnd:
-Func_ea573: ; ea573 (3a:6573)
+PrinterDebug_LoadGFX:
ld hl, vChars1 + $7e0
ld de, GFX_ea597
lb bc, BANK(GFX_ea597), (GFX_ea597End - GFX_ea597) / 16
@@ -211,34 +211,34 @@ Func_ea573: ; ea573 (3a:6573)
jr nz, .loop
ret
-GFX_ea597: ; ea597 (3a:6597)
+GFX_ea597:
INCBIN "gfx/zero_one_ea597.2bpp"
GFX_ea597End:
-Func_ea5b7: ; ea5b7 (3a:65b7)
+PrinterDebug_ConvertStatusFlagsToTiles:
ld hl, wOAMBuffer + 32 * 4 + 2
ld de, 4
ld a, [wPrinterStatusFlags]
ld c, 8
-.asm_ea5c2
+.loop
sla a
- jr c, .asm_ea5ca
+ jr c, .place_1
ld [hl], $fe
- jr .asm_ea5cc
+ jr .okay
-.asm_ea5ca
+.place_1
ld [hl], $ff
-.asm_ea5cc
+.okay
add hl, de
dec c
- jr nz, .asm_ea5c2
+ jr nz, .loop
ret
-Func_ea5d1: ; ea5d1 (3a:65d1)
+PrinterDebug_DoFunction:
ld a, [wPrinterSendState]
ld e, a
ld d, 0
- ld hl, Jumptable_ea5e0
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -246,7 +246,7 @@ Func_ea5d1: ; ea5d1 (3a:65d1)
ld l, a
jp [hl]
-Jumptable_ea5e0:
+.Jumptable:
dw Func_ea623
dw Func_ea6d2
dw Func_ea6af
@@ -267,34 +267,33 @@ Jumptable_ea5e0:
dw Func_ea72f
dw Func_ea732
-
-Func_ea606: ; ea606 (3a:6606)
+Func_ea606:
ld hl, wPrinterSendState
inc [hl]
ret
-Func_ea60b: ; ea60b (3a:660b)
+Func_ea60b:
ld hl, wPrinterSendState
dec [hl]
ret
-Func_ea610: ; ea610 (3a:6610)
+Func_ea610:
xor a
ld [wPrinterStatusFlags], a
ld hl, wPrinterSendState
set 7, [hl]
ret
-Func_ea61a: ; ea61a (3a:661a)
+Func_ea61a:
call Func_ea606
ret
-Func_ea61e: ; ea61e (3a:661e)
+Func_ea61e:
xor a
ld [wPrinterSendState], a
ret
-Func_ea623: ; ea623 (3a:6623)
+Func_ea623:
call Func_ea784
ld hl, Data_ea9de
call Func_ea76b
@@ -309,7 +308,7 @@ Func_ea623: ; ea623 (3a:6623)
ld [wPrinterStatusIndicator], a
ret
-Func_ea645: ; ea645 (3a:6645)
+Func_ea645:
call Func_ea784
ld hl, wPrinterRowIndex
ld a, [hl]
@@ -317,7 +316,7 @@ Func_ea645: ; ea645 (3a:6645)
jr z, Func_ea671
ld hl, Data_ea9ea
call Func_ea76b
- call Func_ea7e9
+ call PrinterDebug_PrepOAMForPrinting
ld a, $80
ld [wPrinterDataSize], a
ld a, $2
@@ -329,7 +328,7 @@ Func_ea645: ; ea645 (3a:6645)
ld [wPrinterStatusIndicator], a
ret
-Func_ea671: ; ea671 (3a:6671)
+Func_ea671:
ld a, $6
ld [wPrinterSendState], a
ld hl, Data_ea9f0
@@ -341,7 +340,7 @@ Func_ea671: ; ea671 (3a:6671)
call Func_ea74c
ret
-Func_ea68a: ; ea68a (3a:668a)
+Func_ea68a:
call Func_ea784
ld hl, Data_ea9e4
call Func_ea76b
@@ -357,7 +356,7 @@ Func_ea68a: ; ea68a (3a:668a)
ld [wPrinterStatusIndicator], a
ret
-Func_ea6af: ; ea6af (3a:66af)
+Func_ea6af:
ld hl, wPrinterSerialFrameDelay
inc [hl]
ld a, [hl]
@@ -368,7 +367,7 @@ Func_ea6af: ; ea6af (3a:66af)
call Func_ea606
ret
-Func_ea6bd: ; ea6bd (3a:66bd)
+Func_ea6bd:
ld hl, wPrinterSerialFrameDelay
inc [hl]
ld a, [hl]
@@ -382,7 +381,7 @@ Func_ea6bd: ; ea6bd (3a:66bd)
call Func_ea60b
ret
-Func_ea6d2: ; ea6d2 (3a:66d2)
+Func_ea6d2:
call Func_ea742
ret c
ld a, [wPrinterHandshake]
@@ -408,7 +407,7 @@ Func_ea6d2: ; ea6d2 (3a:66d2)
ld [wPrinterSendState], a
ret
-Func_ea701: ; ea701 (3a:6701)
+Func_ea701:
call Func_ea742
ret c
ld a, [wPrinterStatusFlags]
@@ -429,7 +428,7 @@ Func_ea701: ; ea701 (3a:6701)
ld [wPrinterSendState], a
ret
-Func_ea721: ; ea721 (3a:6721)
+Func_ea721:
call Func_ea742
ret c
ld a, [wPrinterStatusFlags]
@@ -438,9 +437,9 @@ Func_ea721: ; ea721 (3a:6721)
call Func_ea606
ret
-Func_ea72f: ; ea72f (3a:672f)
+Func_ea72f:
call Func_ea606
-Func_ea732: ; ea732 (3a:6732)
+Func_ea732:
ld a, [wPrinterOpcode]
and a
ret nz
@@ -451,7 +450,7 @@ Func_ea732: ; ea732 (3a:6732)
ld [wPrinterSendState], a
ret
-Func_ea742: ; ea742 (3a:6742)
+Func_ea742:
ld a, [wPrinterOpcode]
and a
jr nz, .asm_ea74a
@@ -462,7 +461,7 @@ Func_ea742: ; ea742 (3a:6742)
scf
ret
-Func_ea74c: ; ea74c (3a:674c)
+Func_ea74c:
.asm_ea74c
ld a, [wPrinterOpcode]
and a
@@ -480,7 +479,7 @@ Func_ea74c: ; ea74c (3a:674c)
ld [rSC], a
ret
-Func_ea76b: ; ea76b (3a:676b)
+Func_ea76b:
ld a, [hli]
ld [wPrinterDataHeader], a
ld a, [hli]
@@ -495,7 +494,7 @@ Func_ea76b: ; ea76b (3a:676b)
ld [wPrinterDataHeader + 5], a
ret
-Func_ea784: ; ea784 (3a:6784)
+Func_ea784:
xor a
ld hl, wPrinterDataHeader
ld [hli], a
@@ -508,12 +507,12 @@ Func_ea784: ; ea784 (3a:6784)
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
- ld hl, wPrinterSendDataSource
+ ld hl, wPrinterSendDataSource1
ld bc, $280
call FillMemory
ret
-Func_ea7a2: ; ea7a2 (3a:67a2)
+Func_ea7a2:
ld hl, $0
ld bc, $4
ld de, wPrinterDataHeader
@@ -522,7 +521,7 @@ Func_ea7a2: ; ea7a2 (3a:67a2)
ld c, a
ld a, [wPrinterDataSize + 1]
ld b, a
- ld de, wPrinterSendDataSource
+ ld de, wPrinterSendDataSource1
call Func_ea7c5
ld a, l
ld [wPrinterDataHeader + 4], a
@@ -530,7 +529,7 @@ Func_ea7a2: ; ea7a2 (3a:67a2)
ld [wPrinterDataHeader + 5], a
ret
-Func_ea7c5: ; ea7c5 (3a:67c5)
+Func_ea7c5:
.asm_ea7c5
ld a, [de]
inc de
@@ -545,9 +544,9 @@ Func_ea7c5: ; ea7c5 (3a:67c5)
jr nz, .asm_ea7c5
ret
-Func_ea7d2: ; ea7d2 (3a:67d2)
+Func_ea7d2:
ld a, $1
- ld [wPrinterSendDataSource], a
+ ld [wPrinterSendDataSource1], a
ld a, [wcae2]
ld [wPrinterStatusReceived], a
ld a, $e4
@@ -556,7 +555,7 @@ Func_ea7d2: ; ea7d2 (3a:67d2)
ld [wc6f3], a
ret
-Func_ea7e9: ; ea7e9 (3a:67e9)
+PrinterDebug_PrepOAMForPrinting:
ld a, [wPrinterRowIndex]
ld b, a
ld a, [wPrinterQueueLength]
@@ -573,7 +572,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
.start_working
ld e, l
ld d, h
- ld hl, wPrinterSendDataSource
+ ld hl, wPrinterSendDataSource1
ld c, $28
.prep_loop
ld a, [de]
@@ -598,7 +597,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
or $80
.got_vram_address
ld d, a
- lb bc, BANK(Func_ea7e9), $1
+ lb bc, BANK(PrinterDebug_PrepOAMForPrinting), $1
call CopyVideoData
pop hl
ld de, $10
@@ -610,7 +609,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
call .UnnecessaryCall
ret
-.UnnecessaryCall: ; ea834 (3a:6834)
+.UnnecessaryCall:
ld hl, wcbdc
ld bc, $20
xor a
@@ -637,7 +636,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
jr nz, .master_loop
ret
-.AreWePrintingThisSegment: ; ea860 (3a:6860)
+.AreWePrintingThisSegment:
ld a, [wPrinterRowIndex]
ld b, a
ld a, [wPrinterQueueLength]
@@ -671,7 +670,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
and a
ret
-.GetVRAMAddress: ; ea886 (3a:6886)
+.GetVRAMAddress:
push hl
inc hl
inc hl
@@ -690,7 +689,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
pop hl
ret
-.GetOAMFlags: ; ea8a1 (3a:68a1)
+.GetOAMFlags:
push hl
inc hl
inc hl
@@ -700,7 +699,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
pop hl
ret
-.DoBitOperation: ; ea8ab (3a:68ab)
+.DoBitOperation:
and $60
swap a
ld e, a
@@ -712,29 +711,29 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
ld l, a
jp [hl]
-.Jumptable: ; ea8ba (3a:68ba)
+.Jumptable:
dw .nop
- dw .one
- dw .two
+ dw .xflip
+ dw .yflip
dw .both
-.nop: ; ea8c2 (3a:68c2)
+.nop:
ret
-.one: ; ea8c3 (3a:68c3)
- call .Invert
+.xflip:
+ call .XFlip
ret
-.two: ; ea8c7 (3a:68c7)
- call .Swap
+.yflip:
+ call .YFlip
ret
-.both: ; ea8cb (3a:68cb)
- call .Invert
- call .Swap
+.both:
+ call .XFlip
+ call .YFlip
ret
-.Invert: ; ea8d2 (3a:68d2)
+.XFlip:
ld hl, wcbdc
ld c, 16
.byte_loop
@@ -751,7 +750,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
jr nz, .byte_loop
ret
-.Swap: ; ea8e8 (3a:68e8)
+.YFlip:
ld hl, wcbdc
ld de, wcbea
ld c, $4
@@ -774,7 +773,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
jr nz, .swap_loop
ret
-.ApplyObjectPalettes: ; ea902 (3a:6902)
+.ApplyObjectPalettes:
push hl
ld hl, wcbdc
ld de, wcbec
@@ -814,12 +813,12 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
pop hl
ret
-.ExpandPalettesToBC: ; ea936 (3a:6936)
+.ExpandPalettesToBC:
call .GetPaletteFunction
call .ApplyPaletteFunction
ret
-.GetPaletteFunction: ; ea93d (3a:693d)
+.GetPaletteFunction:
ld e, a
ld d, 0
ld hl, .PalJumptable
@@ -830,38 +829,38 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
ld l, a
jp [hl]
-.PalJumptable: ; ea949 (3a:6949)
+.PalJumptable:
dw .Pal0
dw .Pal1
dw .Pal2
dw .Pal3
-.Pal0: ; ea951 (3a:6951)
+.Pal0:
ld a, [rOBP0]
and $3
ret
-.Pal2: ; ea956 (3a:6956)
+.Pal2:
ld a, [rOBP0]
and $c
srl a
srl a
ret
-.Pal1: ; ea95f (3a:695f)
+.Pal1:
ld a, [rOBP0]
and $30
swap a
ret
-.Pal3: ; ea966 (3a:6966)
+.Pal3:
ld a, [rOBP0]
and $c0
rlca
rlca
ret
-.ApplyPaletteFunction: ; ea96d (3a:696d)
+.ApplyPaletteFunction:
ld e, a
ld d, 0
ld hl, .PalFunJumptable
@@ -872,47 +871,47 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
ld l, a
jp [hl]
-.PalFunJumptable: ; ea979 (3a:6979)
+.PalFunJumptable:
dw .zero_zero
- dw .one_zero
- dw .zero_one
- dw .one_one
+ dw .xflip_zero
+ dw .zero_xflip
+ dw .xflip_xflip
-.zero_zero: ; ea981 (3a:6981)
+.zero_zero:
sla b
sla c
ret
-.one_zero: ; ea986 (3a:6986)
+.xflip_zero:
scf
rl b
sla c
ret
-.zero_one: ; ea98c (3a:698c)
+.zero_xflip:
sla b
scf
rl c
ret
-.one_one: ; ea992 (3a:6992)
+.xflip_xflip:
scf
rl b
scf
rl c
ret
-.PlaceObject: ; ea999 (3a:6999)
+.PlaceObject:
push hl
ld a, [hli]
ld c, [hl]
and $8
- jr nz, .use_wc830
- ld hl, wPrinterSendDataSource
+ jr nz, .use_source_2
+ ld hl, wPrinterSendDataSource1
jr .got_data_source
-.use_wc830
- ld hl, wc830
+.use_source_2
+ ld hl, wPrinterSendDataSource2
.got_data_source
ld b, $0
ld a, c
@@ -945,7 +944,7 @@ Func_ea7e9: ; ea7e9 (3a:67e9)
pop hl
ret
-.GetBitMask: ; ea9d0 (3a:69d0)
+.GetBitMask:
push hl
push de
ld de, -$10
diff --git a/engine/vermilion_gym_trash_cans.asm b/engine/vermilion_gym_trash_cans.asm
new file mode 100755
index 00000000..49dee50c
--- /dev/null
+++ b/engine/vermilion_gym_trash_cans.asm
@@ -0,0 +1,108 @@
+TrashCanRandom:
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call JumpToAddress
+ ld e, a
+ ld d, 0
+ ret
+
+.Jumptable:
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+
+.zero
+.one
+ ld a, 0
+ ret
+
+.two
+ call Random
+ and $1
+ ret
+
+.three ; should return to a, instead returns to b
+ call Random
+ swap a
+ cp 1 * $ff / 3
+ ld b, 0
+ ret c
+ cp 2 * $ff / 3
+ ld b, 1
+ ret c
+ ld b, 2
+ ret
+
+.four
+ call Random
+ and $3
+ ret
+
+Yellow_SampleSecondTrashCan:
+ ld hl, GymTrashCans3c
+ ld a, [wGymTrashCanIndex]
+ ld c, a
+ ld b, 0
+ ld a, 9
+ call AddNTimes
+ call AddNTimes ; ????
+ ld a, [hli]
+ ld [hGymTrashCanRandNumMask], a
+ ld e, a
+ push hl
+ call TrashCanRandom
+ pop hl
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld [wSecondLockTrashCanIndex], a
+ ld a, [hl]
+ ld [wSecondLockTrashCanIndex + 1], a
+ ret
+
+GymTrashCans3c:
+; First byte: number of trashcan entries
+; Following four byte pairs: indices for the second trash can.
+; BUG: Rows that have 3 trashcan entries are sampled incorrectly.
+; The sampling occurs by taking a random number and seeing which
+; third of the range 0-255 the number falls in. However, it returns
+; that value to the wrong register, so the result is never used.
+; Instead of using an offset in [0,1,2], the offset is instead
+; in the full range 0-255. This results in truly random behavior.
+ db 4
+ db 1,3, 3,1, 1,-1, 3,-1
+ db 3
+ db 0,2, 2,4, 4,0, -1,-1
+ db 4
+ db 1,5, 5,1, 1,-1, 5,-1
+ db 3
+ db 0,4, 4,6, 6,0, -1,-1
+ db 4
+ db 1,3, 3,1, 5,5, 7,7
+ db 3
+ db 2,4, 4,8, 8,2, -1,-1
+ db 3
+ db 3,7, 7,9, 9,3, -1,-1
+ db 4
+ db 4,8, 6,10, 8,4, 10,6
+ db 3
+ db 5,7, 7,11, 11,5, -1,-1
+ db 3
+ db 6,10, 10,12, 12,6, -1,-1
+ db 4
+ db 7,9, 9,7, 11,13, 13,11
+ db 3
+ db 8,10, 10,14, 14,8, -1,-1
+ db 4
+ db 9,13, 13,9, 9,-1, 13,-1
+ db 3
+ db 10,12, 12,14, 14,10, -1,-1
+ db 4
+ db 11,13, 13,11, 11,-1, 13,-1
diff --git a/engine/yellow_intro.asm b/engine/yellow_intro.asm
index 5aad4d33..3adb72b5 100755
--- a/engine/yellow_intro.asm
+++ b/engine/yellow_intro.asm
@@ -323,7 +323,7 @@ YellowIntroScene6:
call YellowIntro_BlankPalsDelay2AndDisableLCD
ld c, $5
call UpdateMusicCTimes
- ld a, $42
+ ld a, rSCY - $ff00
ld [hLCDCPointer], a
call YellowIntro_Copy8BitSineWave
ld hl, vBGMap0
@@ -359,8 +359,8 @@ YellowIntroScene7:
ld hl, hSCX
inc [hl]
inc [hl]
- ld hl, wYellowIntroSurfingPikaSineWaveBuffer
- ld de, wYellowIntroSurfingPikaSineWaveBuffer + 1
+ ld hl, wLYOverridesBuffer
+ ld de, wLYOverridesBuffer + 1
ld a, [hl]
push af
ld c, $ff
@@ -775,8 +775,8 @@ Func_f9e9a:
ret
YellowIntro_Copy8BitSineWave:
- ; Copy this sine wave into wYellowIntroSurfingPikaSineWaveBuffer 8 times (end just before wc900)
- ld de, wYellowIntroSurfingPikaSineWaveBuffer
+ ; Copy this sine wave into wLYOverridesBuffer 8 times (end just before wc900)
+ ld de, wLYOverridesBuffer
ld a, $8
.loop
push af
@@ -797,13 +797,13 @@ YellowIntro_Copy8BitSineWave:
.SineWaveEnd:
Request7TileTransferFromC810ToC710:
- ld a, wc810 % $100
+ ld a, $10
ld [H_VBCOPYSRC], a
- ld a, wc810 / $100
+ ld a, wLYOverridesBuffer / $100
ld [H_VBCOPYSRC + 1], a
- ld a, wc710 % $100
+ ld a, $10
ld [H_VBCOPYDEST], a
- ld a, wc710 / $100
+ ld a, wLYOverrides / $100
ld [H_VBCOPYDEST + 1], a
ld a, $7
ld [H_VBCOPYSIZE], a