summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/HoF_room_pc.asm55
-rwxr-xr-xengine/battle/1.asm35
-rwxr-xr-xengine/battle/14.asm42
-rwxr-xr-xengine/battle/15.asm137
-rwxr-xr-xengine/battle/16.asm32
-rwxr-xr-xengine/battle/1a.asm10
-rwxr-xr-xengine/battle/1c.asm748
-rwxr-xr-xengine/battle/4.asm31
-rwxr-xr-xengine/battle/4_2.asm156
-rwxr-xr-xengine/battle/5.asm6
-rwxr-xr-xengine/battle/9.asm12
-rwxr-xr-xengine/battle/a.asm10
-rwxr-xr-xengine/battle/animations.asm374
-rwxr-xr-xengine/battle/b.asm2
-rwxr-xr-xengine/battle/b_2.asm11
-rwxr-xr-xengine/battle/c.asm18
-rwxr-xr-xengine/battle/core.asm2531
-rwxr-xr-xengine/battle/d.asm18
-rwxr-xr-xengine/battle/e.asm278
-rwxr-xr-xengine/battle/e_2.asm73
-rwxr-xr-xengine/battle/safari_zone.asm8
-rwxr-xr-xengine/cable_club.asm426
-rwxr-xr-xengine/clear_save.asm13
-rwxr-xr-xengine/evolution.asm72
-rwxr-xr-xengine/evolve_trade.asm10
-rwxr-xr-xengine/evos_moves.asm185
-rwxr-xr-xengine/experience.asm6
-rwxr-xr-xengine/game_corner_slots.asm6
-rwxr-xr-xengine/game_corner_slots2.asm7
-rwxr-xr-xengine/gamefreak.asm18
-rwxr-xr-xengine/give_pokemon.asm38
-rwxr-xr-xengine/hall_of_fame.asm163
-rwxr-xr-xengine/hidden_object_functions14.asm4
-rwxr-xr-xengine/hidden_object_functions17.asm78
-rwxr-xr-xengine/hidden_object_functions18.asm12
-rwxr-xr-xengine/hidden_object_functions3.asm15
-rwxr-xr-xengine/hidden_object_functions7.asm99
-rwxr-xr-xengine/hp_bar.asm21
-rwxr-xr-xengine/in_game_trades.asm115
-rwxr-xr-xengine/intro.asm79
-rwxr-xr-xengine/items/itemfinder.asm7
-rwxr-xr-xengine/items/items.asm705
-rwxr-xr-xengine/items/tm_prices.asm2
-rwxr-xr-xengine/items/tmhm.asm6
-rwxr-xr-xengine/items/tms.asm19
-rw-r--r--engine/joypad.asm51
-rwxr-xr-xengine/learn_move.asm60
-rwxr-xr-xengine/load_pokedex_tiles.asm4
-rw-r--r--engine/menu/bills_pc.asm214
-rwxr-xr-xengine/menu/diploma.asm30
-rwxr-xr-xengine/menu/league_pc.asm86
-rwxr-xr-xengine/menu/main_menu.asm281
-rwxr-xr-xengine/menu/naming_screen.asm198
-rwxr-xr-xengine/menu/oaks_pc.asm5
-rwxr-xr-xengine/menu/party_menu.asm53
-rwxr-xr-xengine/menu/pc.asm12
-rwxr-xr-xengine/menu/players_pc.asm101
-rwxr-xr-xengine/menu/pokedex.asm195
-rwxr-xr-xengine/menu/prize_menu.asm122
-rwxr-xr-xengine/menu/start_menu.asm16
-rwxr-xr-xengine/menu/start_sub_menus.asm312
-rwxr-xr-xengine/menu/status_screen.asm207
-rwxr-xr-xengine/menu/vending_machine.asm38
-rwxr-xr-xengine/mon_party_sprites.asm99
-rwxr-xr-xengine/oak_speech.asm76
-rwxr-xr-xengine/oak_speech2.asm48
-rw-r--r--engine/oam_dma.asm25
-rwxr-xr-xengine/overworld/cable_club_npc.asm28
-rwxr-xr-xengine/overworld/card_key.asm24
-rwxr-xr-xengine/overworld/cinnabar_lab.asm39
-rwxr-xr-xengine/overworld/cut.asm62
-rwxr-xr-xengine/overworld/cut2.asm42
-rwxr-xr-xengine/overworld/doors.asm5
-rwxr-xr-xengine/overworld/elevator.asm4
-rwxr-xr-xengine/overworld/emotion_bubbles.asm28
-rwxr-xr-xengine/overworld/healing_machine.asm24
-rwxr-xr-xengine/overworld/hidden_items.asm56
-rwxr-xr-xengine/overworld/hidden_objects.asm40
-rw-r--r--engine/overworld/item.asm54
-rwxr-xr-xengine/overworld/ledges.asm28
-rwxr-xr-xengine/overworld/map_sprites.asm32
-rw-r--r--engine/overworld/movement.asm856
-rwxr-xr-xengine/overworld/npc_movement.asm168
-rwxr-xr-xengine/overworld/oaks_aide.asm4
-rw-r--r--engine/overworld/oam.asm178
-rwxr-xr-xengine/overworld/pewter_guys.asm12
-rwxr-xr-xengine/overworld/player_animations.asm196
-rwxr-xr-xengine/overworld/pokecenter.asm18
-rwxr-xr-xengine/overworld/pokemart.asm88
-rwxr-xr-xengine/overworld/ssanne.asm16
-rwxr-xr-xengine/overworld/trainers.asm94
-rwxr-xr-xengine/palettes.asm133
-rwxr-xr-xengine/play_time.asm40
-rwxr-xr-xengine/pokedex_rating.asm10
-rwxr-xr-xengine/predefs.asm252
-rwxr-xr-xengine/predefs12.asm10
-rwxr-xr-xengine/predefs17.asm9
-rwxr-xr-xengine/predefs17_2.asm10
-rwxr-xr-xengine/predefs7.asm26
-rwxr-xr-xengine/random.asm13
-rwxr-xr-xengine/rng.asm13
-rwxr-xr-xengine/save.asm165
-rwxr-xr-xengine/slot_machine.asm185
-rwxr-xr-xengine/titlescreen.asm88
-rwxr-xr-xengine/titlescreen2.asm4
-rwxr-xr-xengine/town_map.asm158
-rwxr-xr-xengine/trade.asm174
-rwxr-xr-xengine/trade2.asm60
108 files changed, 6496 insertions, 5876 deletions
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm
index aa9a9882..16a3c3f9 100755
--- a/engine/HoF_room_pc.asm
+++ b/engine/HoF_room_pc.asm
@@ -1,23 +1,22 @@
-HallOfFameComputer: ; 7405c (1d:405c)
+HallOfFamePC: ; 7405c (1d:405c)
callba AnimateHallOfFame
call ClearScreen
ld c, $64
call DelayFrames
call DisableLCD
- ld hl, $8800
- ld bc, $400
+ ld hl, vFont
+ ld bc, $800 / 2
call Func_74171
- ld hl, $9600
- ld bc, $100
+ ld hl, vChars2 + $600
+ ld bc, $200 / 2
call Func_74171
- ld hl, $97e0
+ ld hl, vChars2 + $7e0
ld bc, $10
ld a, $ff
call FillMemory
ld hl, wTileMap
call Func_7417b
- FuncCoord 0, 14 ; $c4b8
- ld hl, Coord
+ hlCoord 0, 14
call Func_7417b
ld a, $c0
ld [rBGP], a ; $ff47
@@ -30,8 +29,8 @@ HallOfFameComputer: ; 7405c (1d:405c)
ld c, $80
call DelayFrames
xor a
- ld [wWhichTrade], a ; $cd3d
- ld [$cd3e], a
+ ld [wWhichTrade], a ; wWhichTrade
+ ld [wTrainerEngageDistance], a
jp Credits
Func_740ba: ; 740ba (1d:40ba)
@@ -53,29 +52,28 @@ DisplayCreditsMon: ; 740cb (1d:40cb)
call FillMiddleOfScreenWithWhite
; display the next monster from CreditsMons
- ld hl,$CD3E
+ ld hl,wTrainerEngageDistance
ld c,[hl] ; how many monsters have we displayed so far?
inc [hl]
ld b,0
ld hl,CreditsMons
add hl,bc ; go that far in the list of monsters and get the next one
ld a,[hl]
- ld [$CF91],a
- ld [$D0B5],a
- FuncCoord 8, 6 ; $c420
- ld hl,Coord
+ ld [wcf91],a
+ ld [wd0b5],a
+ hlCoord 8, 6
call GetMonHeader
call LoadFrontSpriteByMonIndex
- ld hl,$980C
+ ld hl,vBGMap0 + $c
call Func_74164
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call LoadScreenTilesFromBuffer1
- ld hl,$9800
+ ld hl,vBGMap0
call Func_74164
ld a,$A7
ld [$FF4B],a
- ld hl,$9C00
+ ld hl,vBGMap1
call Func_74164
call FillMiddleOfScreenWithWhite
ld a,$FC
@@ -153,8 +151,7 @@ Func_7417b: ; 7417b (1d:417b)
jp FillMemory
FillMiddleOfScreenWithWhite: ; 74183 (1d:4183)
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld bc, $c8 ; 10 rows of 20 tiles each
ld a, $7f ; blank white tile
jp FillMemory
@@ -164,8 +161,7 @@ Credits: ; 7418e (1d:418e)
push de
.asm_74192
pop de
- FuncCoord 9, 6 ; $c421
- ld hl, Coord
+ hlCoord 9, 6
push hl
call FillMiddleOfScreenWithWhite
pop hl
@@ -238,20 +234,19 @@ Credits: ; 7418e (1d:418e)
call FillMiddleOfScreenWithWhite
pop de
ld de, TheEndGfx
- ld hl, $9600
+ ld hl, vChars2 + $600
ld bc, (BANK(TheEndGfx) << 8) + $0a
call CopyVideoData
- FuncCoord 4, 8 ; $c444
- ld hl, Coord
- ld de, UnnamedText_74229 ; $4229
+ hlCoord 4, 8
+ ld de, TheEndTextString
call PlaceString
- FuncCoord 4, 9 ; $c458
- ld hl, Coord
+ hlCoord 4, 9
inc de
call PlaceString
jp Func_740ba
-UnnamedText_74229: ; 74229 (1d:4229)
+TheEndTextString: ; 74229 (1d:4229)
+; "T H E E N D"
db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@"
db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@"
@@ -260,4 +255,4 @@ INCLUDE "data/credits_order.asm"
INCLUDE "text/credits_text.asm"
TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue)
- INCBIN "gfx/theend.w40.interleave.2bpp"
+ INCBIN "gfx/theend.interleave.2bpp"
diff --git a/engine/battle/1.asm b/engine/battle/1.asm
index 91f7d3b1..04546313 100755
--- a/engine/battle/1.asm
+++ b/engine/battle/1.asm
@@ -1,5 +1,5 @@
DrainHPEffect_: ; 783f (1:783f)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hl]
srl a ; divide damage by 2
ld [hli], a
@@ -11,13 +11,13 @@ DrainHPEffect_: ; 783f (1:783f)
inc hl
inc [hl]
.asm_784f
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERMONMAXHP ; $d023
+ ld hl, wBattleMonHP ; wd015
+ ld de, wBattleMonMaxHP ; wd023
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, Func_7861
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, wEnemyMonMaxHP ; wEnemyMonMaxHP
Func_7861: ; 7861 (1:7861)
ld bc, wHPBarOldHP+1
@@ -33,12 +33,12 @@ Func_7861: ; 7861 (1:7861)
ld a, [de]
dec bc
ld [bc], a
- ld a, [$d0d8]
+ ld a, [wd0d8]
ld b, [hl]
add b
ld [hld], a
ld [wHPBarNewHP], a
- ld a, [W_DAMAGE] ; $d0d7
+ ld a, [W_DAMAGE] ; W_DAMAGE
ld b, [hl]
adc b
ld [hli], a
@@ -67,28 +67,23 @@ Func_7861: ; 7861 (1:7861)
.asm_789c
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, $1
jr z, .asm_78aa
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_78aa
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
- ld a, $0
- call Predef ; indirect jump to Func_3cd60 (3cd60 (f:4d60))
- ld a, $49
- call Predef ; indirect jump to Func_3cdec (3cdec (f:4dec))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
+ predef Func_3cd60
+ predef Func_3cdec
callab ReadPlayerMonCurHPAndStatus
ld hl, SuckedHealthText ; $78dc
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_78d2
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_78d2
cp DREAM_EATER_EFFECT
jr nz, .asm_78d9
diff --git a/engine/battle/14.asm b/engine/battle/14.asm
index 209135af..01d115a6 100755
--- a/engine/battle/14.asm
+++ b/engine/battle/14.asm
@@ -1,52 +1,52 @@
Func_525af: ; 525af (14:65af)
ld a, [$ffd7]
- ld [$d0d4], a
+ ld [wd0d4], a
xor a
- ld [$cd6a], a
- ld [$cf0b], a
- ld hl, $cc2b
+ ld [wcd6a], a
+ ld [wcf0b], a
+ ld hl, wcc2b
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wListScrollOffset], a ; $cc36
- ld [$d05e], a
- ld [W_PLAYERMONID], a
- ld [W_PLAYERMONSALIVEFLAGS], a
- ld [wPlayerMonNumber], a ; $cc2f
- ld [$d078], a
- ld [$d35d], a
- ld hl, $cf1d
+ ld [wListScrollOffset], a ; wcc36
+ ld [wd05e], a
+ ld [wBattleMonSpecies], a
+ ld [wPartyAliveFlags], a
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wd078], a
+ ld [wd35d], a
+ ld hl, wcf1d
ld [hli], a
ld [hl], a
- ld hl, $ccd3
+ ld hl, wccd3
ld b, $3c
.asm_525e1
ld [hli], a
dec b
jr nz, .asm_525e1
inc a
- ld [$ccd9], a
- ld a, [W_CURMAP] ; $d35e
+ ld [wccd9], a
+ ld a, [W_CURMAP] ; W_CURMAP
cp SAFARI_ZONE_EAST
jr c, .asm_525f9
cp SAFARI_ZONE_REST_HOUSE_1
jr nc, .asm_525f9
ld a, $2
- ld [W_BATTLETYPE], a ; $d05a
+ ld [W_BATTLETYPE], a ; wd05a
.asm_525f9
ld hl, PlayBattleMusic
ld b, BANK(PlayBattleMusic)
jp Bankswitch
ParalyzeEffect_: ; 52601 (14:6601)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
- ld de, W_PLAYERMOVETYPE ; $cfd5
+ ld hl, wEnemyMonStatus ; wcfe9
+ ld de, W_PLAYERMOVETYPE ; wcfd5
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .asm_52613
- ld hl, W_PLAYERMONSTATUS ; $d018
- ld de, W_ENEMYMOVETYPE ; $cfcf
+ ld hl, wBattleMonStatus ; wBattleMonStatus
+ ld de, W_ENEMYMOVETYPE ; wcfcf
.asm_52613
ld a, [hl]
@@ -69,7 +69,7 @@ ParalyzeEffect_: ; 52601 (14:6601)
push hl
callab MoveHitTest
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_52659
set 6, [hl]
diff --git a/engine/battle/15.asm b/engine/battle/15.asm
index d2e93ab1..69d8ff3f 100755
--- a/engine/battle/15.asm
+++ b/engine/battle/15.asm
@@ -1,11 +1,11 @@
GainExperience: ; 5524f (15:524f)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE]
cp $4
ret z
call Func_5546c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
xor a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a
Func_5525f: ; 5525f (15:525f)
inc hl
@@ -13,12 +13,11 @@ Func_5525f: ; 5525f (15:525f)
or [hl]
jp z, Func_55436
push hl
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wPartyAliveFlags
+ ld a, [wWhichPokemon]
ld c, a
ld b, $2
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
ld a, c
and a
pop hl
@@ -27,7 +26,7 @@ Func_5525f: ; 5525f (15:525f)
add hl, de
ld d, h
ld e, l
- ld hl, $d002
+ ld hl, wd002
ld c, $5
.asm_55285
ld a, [hli]
@@ -56,26 +55,26 @@ Func_5525f: ; 5525f (15:525f)
jr .asm_55285
.asm_552a1
xor a
- ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld [$ff97], a
- ld a, [$d008]
- ld [$ff98], a
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND + 1], a
+ ld a, [wd008]
+ ld [H_MULTIPLICAND + 2], a
+ ld a, [wEnemyMonLevel]
+ ld [H_MULTIPLIER], a
call Multiply
- ld a, $7
- ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
- ld b, $4
+ ld a, 7
+ ld [H_DIVISOR], a
+ ld b, 4
call Divide
ld hl, $fff2
add hl, de
ld b, [hl]
inc hl
- ld a, [wPlayerID] ; $d359
+ ld a, [wPlayerID]
cp b
jr nz, .asm_552d1
ld b, [hl]
- ld a, [wPlayerID + 1] ; $d35a
+ ld a, [wPlayerID + 1]
cp b
ld a, $0
jr z, .asm_552d6
@@ -83,8 +82,8 @@ Func_5525f: ; 5525f (15:525f)
call Func_5549f
ld a, $1
.asm_552d6
- ld [$cf4d], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld [wcf4d], a
+ ld a, [W_ISINBATTLE]
dec a
call nz, Func_5549f
inc hl
@@ -92,12 +91,12 @@ Func_5525f: ; 5525f (15:525f)
inc hl
ld b, [hl]
ld a, [$ff98]
- ld [$cf4c], a
+ ld [wcf4c], a
add b
ld [hld], a
ld b, [hl]
ld a, [$ff97]
- ld [$cf4b], a
+ ld [wcf4b], a
adc b
ld [hl], a
jr nc, .asm_552f8
@@ -107,17 +106,17 @@ Func_5525f: ; 5525f (15:525f)
.asm_552f8
inc hl
push hl
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon]
ld c, a
- ld b, $0
- ld hl, W_PARTYMON1 ; $d164
+ ld b, 0
+ ld hl, wPartySpecies
add hl, bc
ld a, [hl]
- ld [$d0b5], a
+ ld [wd0b5], a
call GetMonHeader
- ld d, $64
+ ld d, MAX_LEVEL
callab CalcExperience
- ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND)
+ ld a, [$ff96]
ld b, a
ld a, [$ff97]
ld c, a
@@ -140,13 +139,13 @@ Func_5525f: ; 5525f (15:525f)
dec hl
.asm_5532e
push hl
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wWhichPokemon]
+ ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, GainedText
call PrintText
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
pop hl
ld bc, $13
@@ -157,17 +156,17 @@ Func_5525f: ; 5525f (15:525f)
ld a, [hl]
cp d
jp z, Func_55436
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL]
push af
push hl
ld a, d
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a
ld [hl], a
ld bc, $ffdf
add hl, bc
ld a, [hl]
- ld [$d0b5], a
- ld [$d11e], a
+ ld [wd0b5], a
+ ld [wd11e], a
call GetMonHeader
ld bc, $23
add hl, bc
@@ -198,12 +197,12 @@ Func_5525f: ; 5525f (15:525f)
ld a, [hl]
adc b
ld [hl], a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber]
ld b, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon]
cp b
jr nz, .asm_553f7
- ld de, W_PLAYERMONCURHP ; $d015
+ ld de, wBattleMonHP
ld a, [hli]
ld [de], a
inc de
@@ -212,19 +211,19 @@ Func_5525f: ; 5525f (15:525f)
ld bc, $1f
add hl, bc
push hl
- ld de, W_PLAYERMONLEVEL ; $d022
+ ld de, wBattleMonLevel ; wBattleMonLevel
ld bc, $b
call CopyData
pop hl
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 3, a
jr nz, .asm_553c8
- ld de, $cd0f
+ ld de, wcd0f
ld bc, $b
call CopyData
.asm_553c8
xor a
- ld [$d11e], a
+ ld [wd11e], a
callab Func_3ed99
callab Func_3ed1a
callab Func_3ee19
@@ -235,59 +234,55 @@ Func_5525f: ; 5525f (15:525f)
ld hl, GrewLevelText
call PrintText
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
ld d, $1
callab PrintStatsBox
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
xor a
- ld [$cc49], a
- ld a, [$d0b5]
- ld [$d11e], a
- ld a, $1a
- call Predef ; indirect jump to Func_3af5b (3af5b (e:6f5b))
- ld hl, $ccd3
- ld a, [wWhichPokemon] ; $cf92
+ ld [wcc49], a
+ ld a, [wd0b5]
+ ld [wd11e], a
+ predef Func_3af5b
+ ld hl, wccd3
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop hl
pop af
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
Func_55436: ; 55436 (15:5436)
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
ld b, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
inc a
cp b
jr z, .asm_55450
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
ld bc, $2c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
call AddNTimes
jp Func_5525f
.asm_55450
- ld hl, W_PLAYERMONSALIVEFLAGS
+ ld hl, wPartyAliveFlags
xor a
ld [hl], a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld c, a
ld b, $1
push bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, $ccf5
+ predef FlagActionPredef
+ ld hl, wccf5
xor a
ld [hl], a
pop bc
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
Func_5546c: ; 5546c (15:546c)
- ld a, [W_PLAYERMONSALIVEFLAGS]
+ ld a, [wPartyAliveFlags]
ld b, a
xor a
ld c, $8
@@ -301,15 +296,15 @@ Func_5546c: ; 5546c (15:546c)
jr nz, .asm_55475
cp $2
ret c
- ld [$d11e], a
- ld hl, $d002
+ ld [wd11e], a
+ ld hl, wd002
ld c, $7
.asm_55488
xor a
ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
ld a, [hl]
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld a, [$d11e]
+ ld a, [wd11e]
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
ld b, $2
call Divide
@@ -336,12 +331,12 @@ Func_5549f: ; 5549f (15:549f)
GainedText: ; 554b2 (15:54b2)
TX_FAR _GainedText
db $08 ; asm
- ld a, [$cc5b]
+ ld a, [wcc5b]
ld hl, WithExpAllText
and a
ret nz
ld hl, ExpPointsText
- ld a, [$cf4d]
+ ld a, [wcf4d]
and a
ret z
ld hl, BoostedText
diff --git a/engine/battle/16.asm b/engine/battle/16.asm
index f2f4ada9..1500d003 100755
--- a/engine/battle/16.asm
+++ b/engine/battle/16.asm
@@ -1,17 +1,17 @@
PrintBeginningBattleText: ; 58d99 (16:4d99)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .trainerBattle
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POKEMONTOWER_3
jr c, .notPokemonTower
cp LAVENDER_HOUSE_1
jr c, .pokemonTower
.notPokemonTower
- ld a, [W_ENEMYMONID]
+ ld a, [wEnemyMonSpecies2]
call PlayCry
ld hl, WildMonAppearedText
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .notFishing
ld hl, HookedMonAttackedText
@@ -31,8 +31,8 @@ PrintBeginningBattleText: ; 58d99 (16:4d99)
.pokemonTower
ld b, SILPH_SCOPE
call IsItemInBag
- ld a, [W_ENEMYMONID]
- ld [$cf91], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wcf91], a
cp MAROWAK
jr z, .isMarowak
ld a, b
@@ -61,9 +61,9 @@ PrintBeginningBattleText: ; 58d99 (16:4d99)
.playSFX
xor a
- ld [$c0f1], a
+ ld [wc0f1], a
ld a, $80
- ld [$c0f2], a
+ ld [wc0f2], a
ld a, (SFX_08_77 - SFX_Headers_08) / 3
call PlaySound
jp WaitForSoundToFinish
@@ -95,24 +95,24 @@ GhostCantBeIDdText: ; 58e54 (16:4e54)
db "@"
SendOutMon: ; 58e59 (16:4e59)
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
ld hl, GoText
jr z, .printText
xor a
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
- ld [$cce3], a
+ ld [wcce3], a
ld [$ff97], a
ld a, [hl]
- ld [$cce4], a
+ ld [wcce4], a
ld [$ff98], a
ld a, $19
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
call Multiply
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [hli]
ld b, [hl]
srl a
@@ -173,8 +173,8 @@ PlayerMon2Text: ; 58ed7 (16:4ed7)
db $08 ; asm
push de
push bc
- ld hl, $cfe7
- ld de, $cce4
+ ld hl, wEnemyMonHP + 1
+ ld de, wcce4
ld b, [hl]
dec hl
ld a, [de]
@@ -188,7 +188,7 @@ PlayerMon2Text: ; 58ed7 (16:4ed7)
ld a, $19
ld [H_POWEROFTEN], a
call Multiply
- ld hl, W_ENEMYMONMAXHP
+ ld hl, wEnemyMonMaxHP
ld a, [hli]
ld b, [hl]
srl a
diff --git a/engine/battle/1a.asm b/engine/battle/1a.asm
index 2770a459..6b502a31 100755
--- a/engine/battle/1a.asm
+++ b/engine/battle/1a.asm
@@ -11,10 +11,10 @@ DecrementPP: ; 68000 (1a:4000)
ret nz ; if any of these statuses are true, don't decrement PP
bit 6, [hl] ; check 6th bit status flag on W_PLAYERBATTSTATUS2
ret nz ; and return if it is set
- ld hl, $D02D ; PP of first move (in battle)
+ ld hl, wBattleMonPP ; PP of first move (in battle)
call .DecrementPP
- ld a, [$D064] ; load pokemon status bits?
+ ld a, [W_PLAYERBATTSTATUS3] ; load pokemon status bits?
bit 3, a ; XXX transform status?
ret nz ; If it is, return. Pokemon Red stores the "current pokemon's" PP
; separately from the "Pokemon in your party's" PP. This is
@@ -26,12 +26,12 @@ DecrementPP: ; 68000 (1a:4000)
; its opponent, which is *not* the same as its real PP as part of your
; party. So we return, and don't do that part.
- ld hl, $D188 ; PP of first move (in party)
- ld a, [$CC2F] ; which mon in party is active
+ ld hl, wPartyMon1PP ; PP of first move (in party)
+ ld a, [wPlayerMonNumber] ; which mon in party is active
ld bc, $2C ; XXX probably size of party pokemon's data structure
call AddNTimes ; calculate address of the mon to modify
.DecrementPP
- ld a, [$CC2E] ; which move (0, 1, 2, 3) did we use?
+ ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use?
ld c, a
ld b, 0
add hl ,bc ; calculate the address in memory of the PP we need to decrement
diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm
index 1f07807a..b3b24007 100755
--- a/engine/battle/1c.asm
+++ b/engine/battle/1c.asm
@@ -2,15 +2,14 @@ Func_708ca: ; 708ca (1c:48ca)
ld a, $e4
ld [rOBP1], a ; $ff49
call Func_7092a
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
ld bc, $707
call ClearScreenArea
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $91
- ld [$cee9], a
+ ld [wHPBarMaxHP], a
ld a, $1
ld [H_WHOSETURN], a ; $fff3
callab Func_79793
@@ -24,7 +23,7 @@ Func_708ca: ; 708ca (1c:48ca)
sla a
ld [rOBP1], a ; $ff49
jr nz, .asm_708f6
- call CleanLCD_OAM
+ call ClearSprites
call Func_7092a
ld b, $e4
.asm_7090d
@@ -42,30 +41,30 @@ Func_708ca: ; 708ca (1c:48ca)
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Delay3
- jp CleanLCD_OAM
+ jp ClearSprites
Func_7092a: ; 7092a (1c:492a)
- ld de, $9000
- ld hl, $8000
- ld bc, $31
+ ld de, vFrontPic
+ ld hl, vSprites
+ ld bc, 7 * 7
call CopyVideoData
ld a, $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $70
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld hl, wOAMBuffer
ld bc, $606
ld d, $8
.asm_70948
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_7094d
ld a, e
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -75,44 +74,44 @@ Func_7092a: ; 7092a (1c:492a)
dec c
jr nz, .asm_7094d
inc d
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $8
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
pop bc
dec b
jr nz, .asm_70948
ret
-Func_7096d: ; 7096d (1c:496d)
+BattleTransition: ; 7096d (1c:496d)
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
ld [$ffb0], a
dec a
- ld [$cfcb], a
+ ld [wcfcb], a
call DelayFrame
- ld hl, $c102
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld hl, wSpriteStateData1 + 2
+ ld a, [H_DOWNARROWBLINKCNT2]
ld c, a
ld b, $0
ld de, $10
-.asm_70989
+.loop1
ld a, [hl]
cp $ff
- jr z, .asm_7098f
+ jr z, .skip1
inc b
-.asm_7098f
+.skip1
add hl, de
dec c
- jr nz, .asm_70989
- ld hl, $c310
+ jr nz, .loop1
+ ld hl, wOAMBuffer + $10
ld c, $9
-.asm_70998
+.loop2
ld a, b
swap a
cp l
- jr z, .asm_709a9
+ jr z, .skip2
push hl
push bc
ld bc, $10
@@ -120,22 +119,22 @@ Func_7096d: ; 7096d (1c:496d)
call FillMemory
pop bc
pop hl
-.asm_709a9
+.skip2
ld de, $10
add hl, de
dec c
- jr nz, .asm_70998
+ jr nz, .loop2
call Delay3
call LoadBattleTransitionTile
ld bc, $0
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE]
cp $4
- jr z, .asm_709c9
- call Func_709e2
- call Func_709ef
- call Func_70a19
-.asm_709c9
- ld hl, PointerTable_709d2 ; $49d2
+ jr z, .linkBattle
+ call GetBattleTransitionID_WildOrTrainer
+ call GetBattleTransitionID_CompareLevels
+ call GetBattleTransitionID_IsDungeonMap
+.linkBattle
+ ld hl, BattleTransitions
add hl, bc
add hl, bc
ld a, [hli]
@@ -143,94 +142,105 @@ Func_7096d: ; 7096d (1c:496d)
ld l, a
jp [hl]
-PointerTable_709d2: ; 709d2 (1c:49d2)
- dw Func_70d24
- dw Func_70a72
- dw Func_70ce4
- dw Func_70a72
- dw Func_70cb4
- dw Func_70b7f
- dw Func_70c7e
- dw Func_70bca
-
-Func_709e2: ; 709e2 (1c:49e2)
- ld a, [W_CUROPPONENT] ; $d059
+; the three GetBattleTransitionID functions set the first
+; three bits of c, which determines what transition animation
+; to play at the beginning of a battle
+; 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: ; 709d2 (1c:49d2)
+ dw BattleTransition_DoubleCircle ; %000
+ dw BattleTransition_Spiral ; %001
+ dw BattleTransition_Circle ; %010
+ dw BattleTransition_Spiral ; %011
+ dw BattleTransition_HorizontalStripes ; %100
+ dw BattleTransition_Shrink ; %101
+ dw BattleTransition_VerticalStripes ; %110
+ dw BattleTransition_Split ; %111
+
+GetBattleTransitionID_WildOrTrainer: ; 709e2 (1c:49e2)
+ ld a, [W_CUROPPONENT]
cp $c8
- jr nc, .asm_709ec
+ jr nc, .trainer
res 0, c
ret
-.asm_709ec
+.trainer
set 0, c
ret
-Func_709ef: ; 709ef (1c:49ef)
- ld hl, W_PARTYMON1_HP ; $d16c
-.asm_709f2
+GetBattleTransitionID_CompareLevels: ; 709ef (1c:49ef)
+ ld hl, wPartyMon1HP
+.faintedLoop
ld a, [hli]
or [hl]
- jr nz, .asm_709fc
- ld de, $2b
+ jr nz, .notFainted
+ ld de, wPartyMon2 - (wPartyMon1 + 1)
add hl, de
- jr .asm_709f2
-.asm_709fc
- ld de, $1f
+ jr .faintedLoop
+.notFainted
+ ld de, wPartyMon1Level - (wPartyMon1HP + 1)
add hl, de
ld a, [hl]
add $3
ld e, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL]
sub e
- jr nc, .asm_70a12
+ jr nc, .highLevelEnemy
res 1, c
ld a, $1
- ld [$cd47], a
+ ld [wcd47], a
ret
-.asm_70a12
+.highLevelEnemy
set 1, c
xor a
- ld [$cd47], a
+ ld [wcd47], a
ret
-Func_70a19: ; 70a19 (1c:4a19)
- ld a, [W_CURMAP] ; $d35e
+; 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: ; 70a19 (1c:4a19)
+ ld a, [W_CURMAP]
ld e, a
- ld hl, MapIDList_70a3f ; $4a3f
-.asm_70a20
+ ld hl, DungeonMaps1
+.loop1
ld a, [hli]
cp $ff
- jr z, .asm_70a2b
+ jr z, .noMatch1
cp e
- jr nz, .asm_70a20
-.asm_70a28
+ jr nz, .loop1
+.match
set 2, c
ret
-.asm_70a2b
- ld hl, MapIDList_70a44 ; $4a44
-.asm_70a2e
+.noMatch1
+ ld hl, DungeonMaps2
+.loop2
ld a, [hli]
cp $ff
- jr z, .asm_70a3c
+ jr z, .noMatch2
ld d, a
ld a, [hli]
cp e
- jr c, .asm_70a2e
+ jr c, .loop2
ld a, e
cp d
- jr nc, .asm_70a28
-.asm_70a3c
+ jr nc, .match
+.noMatch2
res 2, c
ret
-; Func_70a19 checks if W_CURMAP is equal to one of these maps
-MapIDList_70a3f: ; 70a3f (1c:4a3f)
+; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP
+; is equal to one of these maps
+DungeonMaps1: ; 70a3f (1c:4a3f)
db VIRIDIAN_FOREST
db ROCK_TUNNEL_1
db SEAFOAM_ISLANDS_1
db ROCK_TUNNEL_2
db $FF
-; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps
-MapIDList_70a44: ; 70a44 (1c:4a44)
+; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP
+; is in between or equal to each pair of maps
+DungeonMaps2: ; 70a44 (1c:4a44)
; all MT_MOON maps
db MT_MOON_1
db MT_MOON_3
@@ -243,282 +253,274 @@ MapIDList_70a44: ; 70a44 (1c:4a44)
db LAVENDER_POKECENTER
db LAVENDER_HOUSE_2
- ; all SILPH_CO, MANSION, SAFARI_ZONE, and UNKNOWN_DUNGEON maps,
+ ; SILPH_CO_[2-8]F, MANSION[2-4], SAFARI_ZONE, and UNKNOWN_DUNGEON maps,
; except for SILPH_CO_1F
db SILPH_CO_2F
db UNKNOWN_DUNGEON_1
db $FF
LoadBattleTransitionTile: ; 70a4d (1c:4a4d)
- ld hl, $8ff0
- ld de, BattleTransitionTile ; $4a59
+ ld hl, vChars1 + $7f0
+ ld de, BattleTransitionTile
ld bc, (BANK(BattleTransitionTile) << 8) + $01
jp CopyVideoData
BattleTransitionTile: ; 70a59 (1c:4a59)
INCBIN "gfx/battle_transition.2bpp"
-Func_70a69: ; 70a69 (1c:4a69)
+BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
ld a, $ff
ld [rBGP], a ; $ff47
ld [rOBP0], a ; $ff48
ld [rOBP1], a ; $ff49
ret
-Func_70a72: ; 70a72 (1c:4a72)
- ld a, [$cd47]
+; for non-dungeon trainer battles
+; 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: ; 70a72 (1c:4a72)
+ ld a, [wcd47]
and a
- jr z, .asm_70a7d
- call Func_70aaa
- jr .asm_70a9f
-.asm_70a7d
- FuncCoord 10, 10 ; $c472
- ld hl, Coord
+ jr z, .outwardSpiral
+ call BattleTransition_InwardSpiral
+ jr .done
+.outwardSpiral
+ hlCoord 10, 10
ld a, $3
- ld [$d09f], a
+ ld [wd09f], a
ld a, l
- ld [$d09b], a
+ ld [wd09b], a
ld a, h
- ld [$d09a], a
+ ld [wd09a], a
ld b, $78
-.asm_70a8f
+.loop1
ld c, $3
-.asm_70a91
+.loop2
push bc
- call Func_70af9
+ call BattleTransition_OutwardSpiral_
pop bc
dec c
- jr nz, .asm_70a91
+ jr nz, .loop2
call DelayFrame
dec b
- jr nz, .asm_70a8f
-.asm_70a9f
- call Func_70a69
+ jr nz, .loop1
+.done
+ call BattleTransition_BlackScreen
xor a
- ld [$d09b], a
- ld [$d09a], a
+ ld [wd09b], a
+ ld [wd09a], a
ret
-Func_70aaa: ; 70aaa (1c:4aaa)
+BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa)
ld a, $7
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld hl, wTileMap
ld c, $11
ld de, $14
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
inc c
- jr .asm_70ac3
-.asm_70abd
+ jr .skip
+.loop
ld de, $14
- call Func_70ae0
-.asm_70ac3
+ call BattleTransition_InwardSpiral_
+.skip
inc c
ld de, $1
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
dec c
dec c
ld de, $ffec
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
inc c
- ld de, rIE ; $ffff
- call Func_70ae0
+ ld de, rIE
+ call BattleTransition_InwardSpiral_
dec c
dec c
ld a, c
and a
- jr nz, .asm_70abd
+ jr nz, .loop
ret
-Func_70ae0: ; 70ae0 (1c:4ae0)
+BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0)
push bc
-.asm_70ae1
+.loop
ld [hl], $ff
add hl, de
push bc
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
dec a
- jr nz, .asm_70af0
- call Func_70d19
+ jr nz, .skip
+ call BattleTransition_TransferDelay3
ld a, $7
-.asm_70af0
- ld [wWhichTrade], a ; $cd3d
+.skip
+ ld [wWhichTrade], a
pop bc
dec c
- jr nz, .asm_70ae1
+ jr nz, .loop
pop bc
ret
-Func_70af9: ; 70af9 (1c:4af9)
+BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9)
ld bc, $ffec
ld de, $14
- ld a, [$d09b]
+ ld a, [wd09b]
ld l, a
- ld a, [$d09a]
+ ld a, [wd09a]
ld h, a
- ld a, [$d09f]
+ ld a, [wd09f]
cp $0
- jr z, .asm_70b25
+ jr z, .zero
cp $1
- jr z, .asm_70b2f
+ jr z, .one
cp $2
- jr z, .asm_70b39
+ jr z, .two
cp $3
- jr z, .asm_70b43
-.asm_70b1a
+ jr z, .three
+.done1
ld [hl], $ff
-.asm_70b1c
+.done2_
ld a, l
- ld [$d09b], a
+ ld [wd09b], a
ld a, h
- ld [$d09a], a
+ ld [wd09a], a
ret
-.asm_70b25
+.zero
dec hl
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
inc hl
add hl, bc
- jr .asm_70b1a
-.asm_70b2f
+ jr .done1
+.one
add hl, de
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
add hl, bc
dec hl
- jr .asm_70b1a
-.asm_70b39
+ jr .done1
+.two
inc hl
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
dec hl
add hl, de
- jr .asm_70b1a
-.asm_70b43
+ jr .done1
+.three
add hl, bc
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
add hl, de
inc hl
- jr .asm_70b1a
-.asm_70b4d
+ jr .done1
+.done2
ld [hl], $ff
- ld a, [$d09f]
+ ld a, [wd09f]
inc a
cp $4
- jr nz, .asm_70b58
+ jr nz, .skip
xor a
-.asm_70b58
- ld [$d09f], a
- jr .asm_70b1c
-
-Func_70b5d: ; 70b5d (1c:4b5d)
- ld hl, DataTable_70b72 ; $4b72
-.asm_70b60
+.skip
+ ld [wd09f], a
+ jr .done2_
+
+FlashScreen:
+BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d)
+ ld hl, BattleTransition_FlashScreenPalettes
+.loop
ld a, [hli]
cp $1
- jr z, .asm_70b6e
- ld [rBGP], a ; $ff47
+ jr z, .done
+ ld [rBGP], a
ld c, $2
call DelayFrames
- jr .asm_70b60
-.asm_70b6e
+ jr .loop
+.done
dec b
- jr nz, Func_70b5d
+ jr nz, BattleTransition_FlashScreen_
ret
-DataTable_70b72: ; 70b72 (1c:4b72)
+BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72)
db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4
db $01 ; terminator
-Func_70b7f: ; 70b7f (1c:4b7f)
+; used for low level trainer dungeon battles
+BattleTransition_Shrink: ; 70b7f (1c:4b7f)
ld c, $9
-.asm_70b81
+.loop
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 0, 7 ; $c42c
- ld hl, Coord
- FuncCoord 0, 8 ; $c440
- ld de, Coord
+ ld [H_AUTOBGTRANSFERENABLED], a
+ hlCoord 0, 7
+ deCoord 0, 8
ld bc, $ffd8
- call Func_70c12
- FuncCoord 0, 10 ; $c468
- ld hl, Coord
- FuncCoord 0, 9 ; $c454
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 0, 10
+ deCoord 0, 9
ld bc, $28
- call Func_70c12
- FuncCoord 8, 0 ; $c3a8
- ld hl, Coord
- FuncCoord 9, 0 ; $c3a9
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 8, 0
+ deCoord 9, 0
ld bc, $fffe
- call Func_70c3f
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
- FuncCoord 10, 0 ; $c3aa
- ld de, Coord
+ call BattleTransition_CopyTiles2
+ hlCoord 11, 0
+ deCoord 10, 0
ld bc, $2
- call Func_70c3f
+ call BattleTransition_CopyTiles2
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld c, $6
call DelayFrames
pop bc
dec c
- jr nz, .asm_70b81
- call Func_70a69
+ jr nz, .loop
+ call BattleTransition_BlackScreen
ld c, $a
jp DelayFrames
-Func_70bca: ; 70bca (1c:4bca)
+; used for high level trainer dungeon battles
+BattleTransition_Split: ; 70bca (1c:4bca)
ld c, $9
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70bcf
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
- FuncCoord 0, 16 ; $c4e0
- ld hl, Coord
- FuncCoord 0, 17 ; $c4f4
- ld de, Coord
+ hlCoord 0, 16
+ deCoord 0, 17
ld bc, $ffd8
- call Func_70c12
- FuncCoord 0, 1 ; $c3b4
- ld hl, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 0, 1
ld de, wTileMap
ld bc, $28
- call Func_70c12
- FuncCoord 18, 0 ; $c3b2
- ld hl, Coord
- FuncCoord 19, 0 ; $c3b3
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 18, 0
+ deCoord 19, 0
ld bc, $fffe
- call Func_70c3f
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ call BattleTransition_CopyTiles2
+ hlCoord 1, 0
ld de, wTileMap
ld bc, $2
- call Func_70c3f
- call Func_70d19
+ call BattleTransition_CopyTiles2
+ call BattleTransition_TransferDelay3
call Delay3
pop bc
dec c
- jr nz, .asm_70bcf
- call Func_70a69
+ jr nz, .loop
+ call BattleTransition_BlackScreen
ld c, $a
jp DelayFrames
-Func_70c12: ; 70c12 (1c:4c12)
+BattleTransition_CopyTiles1: ; 70c12 (1c:4c12)
ld a, c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld a, b
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld c, $8
-.asm_70c1c
+.loop1
push bc
push hl
push de
@@ -526,89 +528,89 @@ Func_70c12: ; 70c12 (1c:4c12)
call CopyData
pop hl
pop de
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld b, a
add hl, bc
pop bc
dec c
- jr nz, .asm_70c1c
+ jr nz, .loop1
ld l, e
ld h, d
ld a, $ff
ld c, $14
-.asm_70c3a
+.loop2
ld [hli], a
dec c
- jr nz, .asm_70c3a
+ jr nz, .loop2
ret
-Func_70c3f: ; 70c3f (1c:4c3f)
+BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f)
ld a, c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld a, b
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld c, $9
-.asm_70c49
+.loop1
push bc
push hl
push de
ld c, $12
-.asm_70c4e
+.loop2
ld a, [hl]
ld [de], a
ld a, e
add $14
- jr nc, .asm_70c56
+ jr nc, .noCarry1
inc d
-.asm_70c56
+.noCarry1
ld e, a
ld a, l
add $14
- jr nc, .asm_70c5d
+ jr nc, .noCarry2
inc h
-.asm_70c5d
+.noCarry2
ld l, a
dec c
- jr nz, .asm_70c4e
+ jr nz, .loop2
pop hl
pop de
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld b, a
add hl, bc
pop bc
dec c
- jr nz, .asm_70c49
+ jr nz, .loop1
ld l, e
ld h, d
ld de, $14
ld c, $12
-.asm_70c77
+.loop3
ld [hl], $ff
add hl, de
dec c
- jr nz, .asm_70c77
+ jr nz, .loop3
ret
-Func_70c7e: ; 70c7e (1c:4c7e)
+; used for high level wild dungeon battles
+BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e)
ld c, $12
ld hl, wTileMap
- FuncCoord 1, 17 ; $c4f5
- ld de, Coord
+ deCoord 1, 17
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70c89
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
push hl
push de
push de
- call Func_70caa
+ call BattleTransition_VerticalStripes_
pop hl
- call Func_70caa
- call Func_70d19
+ call BattleTransition_VerticalStripes_
+ call BattleTransition_TransferDelay3
pop hl
ld bc, $ffec
add hl, bc
@@ -619,109 +621,115 @@ Func_70c7e: ; 70c7e (1c:4c7e)
add hl, bc
pop bc
dec c
- jr nz, .asm_70c89
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70caa: ; 70caa (1c:4caa)
+BattleTransition_VerticalStripes_: ; 70caa (1c:4caa)
ld c, $a
-.asm_70cac
+.loop
ld [hl], $ff
inc hl
inc hl
dec c
- jr nz, .asm_70cac
+ jr nz, .loop
ret
-Func_70cb4: ; 70cb4 (1c:4cb4)
+; used for low level wild dungeon battles
+BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4)
ld c, $14
ld hl, wTileMap
- FuncCoord 19, 1 ; $c3c7
- ld de, Coord
+ deCoord 19, 1
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70cbf
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
push hl
push de
push de
- call Func_70cd8
+ call BattleTransition_HorizontalStripes_
pop hl
- call Func_70cd8
- call Func_70d19
+ call BattleTransition_HorizontalStripes_
+ call BattleTransition_TransferDelay3
pop de
pop hl
pop bc
inc hl
dec de
dec c
- jr nz, .asm_70cbf
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70cd8: ; 70cd8 (1c:4cd8)
+BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8)
ld c, $9
ld de, $28
-.asm_70cdd
+.loop
ld [hl], $ff
add hl, de
dec c
- jr nz, .asm_70cdd
+ jr nz, .loop
ret
-Func_70ce4: ; 70ce4 (1c:4ce4)
- call Func_70cfd
+; 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: ; 70ce4 (1c:4ce4)
+ call BattleTransition_FlashScreen
ld bc, $000a
- ld hl, Unknown_70d61
- call Func_70d06
+ ld hl, BattleTransition_HalfCircle1
+ call BattleTransition_Circle_Sub1
ld c, $a
ld b, $1
- ld hl, Unknown_70d93
- call Func_70d06
- jp Func_70a69
+ ld hl, BattleTransition_HalfCircle2
+ call BattleTransition_Circle_Sub1
+ jp BattleTransition_BlackScreen
-Func_70cfd: ; 70cfd (1c:4cfd)
+BattleTransition_FlashScreen: ; 70cfd (1c:4cfd)
ld b, $3
- call Func_70b5d
+ call BattleTransition_FlashScreen_
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_70d06: ; 70d06 (1c:4d06)
+BattleTransition_Circle_Sub1: ; 70d06 (1c:4d06)
push bc
push hl
ld a, b
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld bc, $0005
add hl, bc
- call Func_70d19
+ call BattleTransition_TransferDelay3
pop bc
dec c
- jr nz, Func_70d06
+ jr nz, BattleTransition_Circle_Sub1
ret
-Func_70d19: ; 70d19 (1c:4d19)
+BattleTransition_TransferDelay3: ; 70d19 (1c:4d19)
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_70d24: ; 70d24 (1c:4d24)
- call Func_70cfd
+; 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: ; 70d24 (1c:4d24)
+ call BattleTransition_FlashScreen
ld c, $a
- ld hl, Unknown_70d61 ; $4d61
- ld de, Unknown_70d93 ; $4d93
-.asm_70d2f
+ ld hl, BattleTransition_HalfCircle1
+ ld de, BattleTransition_HalfCircle2
+.loop
push bc
push hl
push de
push de
xor a
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld a, $1
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld bc, $5
add hl, bc
@@ -729,16 +737,16 @@ Func_70d24: ; 70d24 (1c:4d24)
ld d, h
pop hl
add hl, bc
- call Func_70d19
+ call BattleTransition_TransferDelay3
pop bc
dec c
- jr nz, .asm_70d2f
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70d50: ; 70d50 (1c:4d50)
- ld [wWhichTrade], a ; $cd3d
+BattleTransition_Circle_Sub2: ; 70d50 (1c:4d50)
+ ld [wWhichTrade], a
ld a, [hli]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, [hli]
ld e, a
ld a, [hli]
@@ -746,166 +754,146 @@ Func_70d50: ; 70d50 (1c:4d50)
ld a, [hli]
ld h, [hl]
ld l, a
- jp Func_70dc5
+ jp BattleTransition_Circle_Sub3
-Unknown_70d61: ; 70d61 (1c:4d61)
+BattleTransition_HalfCircle1: ; 70d61 (1c:4d61)
db $01
- dw Unknown_70dfe
- FuncCoord 18, 6
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 18, 6
db $01
- dw Unknown_70e04
- FuncCoord 19, 3
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 19, 3
db $01
- dw Unknown_70e0e
- FuncCoord 18, 0
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 18, 0
db $01
- dw Unknown_70e20
- FuncCoord 14, 0
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 14, 0
db $01
- dw Unknown_70e2e
- FuncCoord 10, 0
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 10, 0
db $00
- dw Unknown_70e2e
- FuncCoord 9, 0
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 9, 0
db $00
- dw Unknown_70e20
- FuncCoord 5, 0
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 5, 0
db $00
- dw Unknown_70e0e
- FuncCoord 1, 0
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 1, 0
db $00
- dw Unknown_70e04
- FuncCoord 0, 3
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 0, 3
db $00
- dw Unknown_70dfe
- FuncCoord 1, 6
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 1, 6
-Unknown_70d93: ; 70d93 (1c:4d93)
+BattleTransition_HalfCircle2: ; 70d93 (1c:4d93)
db $00
- dw Unknown_70dfe
- FuncCoord 1, 11
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 1, 11
db $00
- dw Unknown_70e04
- FuncCoord 0, 14
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 0, 14
db $00
- dw Unknown_70e0e
- FuncCoord 1, 17
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 1, 17
db $00
- dw Unknown_70e20
- FuncCoord 5, 17
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 5, 17
db $00
- dw Unknown_70e2e
- FuncCoord 9, 17
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 9, 17
db $01
- dw Unknown_70e2e
- FuncCoord 10, 17
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 10, 17
db $01
- dw Unknown_70e20
- FuncCoord 14, 17
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 14, 17
db $01
- dw Unknown_70e0e
- FuncCoord 18, 17
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 18, 17
db $01
- dw Unknown_70e04
- FuncCoord 19, 14
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 19, 14
db $01
- dw Unknown_70dfe
- FuncCoord 18, 11
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 18, 11
-Func_70dc5: ; 70dc5 (1c:4dc5)
+BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5)
push hl
ld a, [de]
ld c, a
inc de
-.asm_70dc9
+.loop1
ld [hl], $ff
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
and a
- jr z, .asm_70dd4
+ jr z, .skip1
inc hl
- jr .asm_70dd5
-.asm_70dd4
+ jr .skip2
+.skip1
dec hl
-.asm_70dd5
+.skip2
dec c
- jr nz, .asm_70dc9
+ jr nz, .loop1
pop hl
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
and a
ld bc, $14
- jr z, .asm_70de5
+ jr z, .skip3
ld bc, $ffec
-.asm_70de5
+.skip3
add hl, bc
ld a, [de]
inc de
cp $ff
ret z
and a
- jr z, Func_70dc5
+ jr z, BattleTransition_Circle_Sub3
ld c, a
-.asm_70def
- ld a, [$cd3e]
+.loop2
+ ld a, [wTrainerEngageDistance]
and a
- jr z, .asm_70df8
+ jr z, .skip4
dec hl
- jr .asm_70df9
-.asm_70df8
+ jr .skip5
+.skip4
inc hl
-.asm_70df9
+.skip5
dec c
- jr nz, .asm_70def
- jr Func_70dc5
+ jr nz, .loop2
+ jr BattleTransition_Circle_Sub3
-Unknown_70dfe: ; 70dfe (1c:4dfe)
+BattleTransition_CircleData1: ; 70dfe (1c:4dfe)
db $02,$03,$05,$04,$09,$FF
-Unknown_70e04: ; 70e04 (1c:4e04)
+BattleTransition_CircleData2: ; 70e04 (1c:4e04)
db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF
-Unknown_70e0e: ; 70e0e (1c:4e0e)
+BattleTransition_CircleData3: ; 70e0e (1c:4e0e)
db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF
-Unknown_70e20: ; 70e20 (1c:4e20)
+BattleTransition_CircleData4: ; 70e20 (1c:4e20)
db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF
-Unknown_70e2e: ; 70e2e (1c:4e2e)
+BattleTransition_CircleData5: ; 70e2e (1c:4e2e)
db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF
diff --git a/engine/battle/4.asm b/engine/battle/4.asm
index b19b3b49..db6614cc 100755
--- a/engine/battle/4.asm
+++ b/engine/battle/4.asm
@@ -1,12 +1,12 @@
Func_128d8: ; 128d8 (4:68d8)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld b, a
- ld a, [W_CURMAPHEIGHT] ; $d368
+ ld a, [W_CURMAPHEIGHT] ; wd368
call Func_128ea
ret z
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld b, a
- ld a, [W_CURMAPWIDTH] ; $d369
+ ld a, [W_CURMAPWIDTH] ; wd369
Func_128ea: ; 128ea (4:68ea)
add a
@@ -15,20 +15,20 @@ Func_128ea: ; 128ea (4:68ea)
inc b
ret
-Func_128ef: ; 128ef (4:68ef)
- call Load16BitRegisters
+DrawHP: ; 128ef (4:68ef)
+ call GetPredefRegisters
ld a, $1
jr asm_128fb
Func_128f6: ; 128f6 (4:68f6)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, $2
asm_128fb: ; 128fb (4:68fb)
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
push hl
- ld a, [$cf99]
+ ld a, [wcf99]
ld b, a
- ld a, [$cf9a]
+ ld a, [wcf9a]
ld c, a
or b
jr nz, .asm_12913
@@ -39,12 +39,11 @@ asm_128fb: ; 128fb (4:68fb)
ld d, a
jp Func_12924
.asm_12913
- ld a, [$cfba]
+ ld a, [wcfba]
ld d, a
- ld a, [$cfbb]
+ ld a, [wcfbb]
ld e, a
- ld a, $26
- call Predef ; indirect jump to UpdateHPBar_LoadRegisters (f9dc (3:79dc))
+ predef HPBarLength
ld a, $6
ld d, a
ld c, a
@@ -65,12 +64,12 @@ Func_12924: ; 12924 (4:6924)
ld bc, $15
.asm_1293a
add hl, bc
- ld de, $cf99
+ ld de, wcf99
ld bc, $203
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, $cfba
+ ld de, wcfba
ld bc, $203
call PrintNumber
pop hl
diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm
index de9aa7be..c5c62796 100755
--- a/engine/battle/4_2.asm
+++ b/engine/battle/4_2.asm
@@ -1,16 +1,16 @@
Func_137aa: ; 137aa (4:77aa)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_137eb
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld hl, $d8a8
- ld bc, $2c
+ ld a, [wEnemyMonPartyPos]
+ ld hl, wEnemyMon1Status
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
ld [hl], a
call ClearScreen
callab Func_372d6
- ld a, [$cf0b]
+ ld a, [wcf0b]
cp $1
ld de, YouWinText
jr c, .asm_137de
@@ -18,62 +18,59 @@ Func_137aa: ; 137aa (4:77aa)
jr z, .asm_137de
ld de, DrawText
.asm_137de
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
+ hlCoord 6, 8
call PlaceString
ld c, $c8
call DelayFrames
jr .asm_1380a
.asm_137eb
- ld a, [$cf0b]
+ ld a, [wcf0b]
and a
jr nz, .asm_13813
- ld hl, $cce5
+ ld hl, wcce5
ld a, [hli]
or [hl]
inc hl
or [hl]
jr z, .asm_1380a
- ld de, wPlayerMoney + 2 ; $d349
+ ld de, wPlayerMoney + 2 ; wd349
ld c, $3
- ld a, $b
- call Predef ; indirect jump to Func_f81d (f81d (3:781d))
+ predef AddBCDPredef
ld hl, PickUpPayDayMoneyText
call PrintText
.asm_1380a
xor a
- ld [$ccd4], a
- ld a, $2a
- call Predef ; indirect jump to Func_3ad1c (3ad1c (e:6d1c))
+ ld [wccd4], a
+ predef Func_3ad1c
.asm_13813
xor a
- ld [$d083], a
- ld [$c02a], a
- ld [W_ISINBATTLE], a ; $d057
- ld [W_BATTLETYPE], a ; $d05a
- ld [W_MOVEMISSED], a ; $d05f
- ld [W_CUROPPONENT], a ; $d059
- ld [$d11f], a
- ld [$d120], a
- ld [$d078], a
- ld hl, $cc2b
+ ld [wd083], a
+ ld [wc02a], a
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
+ ld [W_BATTLETYPE], a ; wd05a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [W_CUROPPONENT], a ; wd059
+ ld [wd11f], a
+ ld [wd120], a
+ ld [wd078], a
+ ld hl, wcc2b
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wListScrollOffset], a ; $cc36
- ld hl, $d060
+ ld [wListScrollOffset], a ; wcc36
+ ld hl, wd060
ld b, $18
.asm_1383e
ld [hli], a
dec b
jr nz, .asm_1383e
- ld hl, $d72c
+ ld hl, wd72c
set 0, [hl]
call WaitForSoundToFinish
call GBPalWhiteOut
ld a, $ff
- ld [$d42f], a
+ ld [wd42f], a
ret
YouWinText: ; 13853 (4:7853)
@@ -90,10 +87,10 @@ PickUpPayDayMoneyText: ; 1386b (4:786b)
db "@"
Func_13870: ; 13870 (4:7870)
- ld a, [$cc57]
+ ld a, [wcc57]
and a
ret nz
- ld a, [$d736]
+ ld a, [wd736]
and a
ret nz
callab Func_c49d
@@ -105,37 +102,36 @@ Func_13870: ; 13870 (4:7870)
.asm_13888
callab Func_128d8
jr z, .asm_13884
- ld a, [$d0db]
+ ld a, [wd0db]
and a
jr z, .asm_1389e
dec a
jr z, .asm_13905
- ld [$d0db], a
+ ld [wd0db], a
.asm_1389e
- FuncCoord 9, 9 ; $c45d
- ld hl, Coord
+ hlCoord 9, 9
ld c, [hl]
ld a, [W_GRASSTILE]
cp c
- ld a, [W_GRASSRATE] ; $d887
+ ld a, [W_GRASSRATE] ; W_GRASSRATE
jr z, .asm_138c4
ld a, $14
cp c
- ld a, [W_WATERRATE] ; $d8a4
+ ld a, [W_WATERRATE] ; wEnemyMon1Species
jr z, .asm_138c4
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp REDS_HOUSE_1F
jr c, .asm_13912
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
cp FOREST ; Viridian Forest/Safari Zone
jr z, .asm_13912
- ld a, [W_GRASSRATE] ; $d887
+ ld a, [W_GRASSRATE] ; W_GRASSRATE
.asm_138c4
ld b, a
- ld a, [H_RAND1] ; $ffd3
+ ld a, [hRandomAdd]
cp b
jr nc, .asm_13912
- ld a, [H_RAND2] ; $ffd4
+ ld a, [hRandomSub]
ld b, a
ld hl, WildMonEncounterSlotChances ; $7918
.asm_138d0
@@ -146,31 +142,30 @@ Func_13870: ; 13870 (4:7870)
jr .asm_138d0
.asm_138d7
ld c, [hl]
- ld hl, W_GRASSMONS ; $d888
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ ld hl, W_GRASSMONS ; wd888
+ aCoord 8, 9
cp $14
jr nz, .asm_138e5
- ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP)
+ ld hl, W_WATERMONS ; wd8a5 (aliases: wEnemyMon1HP)
.asm_138e5
ld b, $0
add hl, bc
ld a, [hli]
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, [hl]
- ld [$cf91], a
- ld [W_ENEMYMONID], a
- ld a, [$d0db]
+ ld [wcf91], a
+ ld [wEnemyMonSpecies2], a
+ ld a, [wd0db]
and a
jr z, .asm_13916
- ld a, [W_PARTYMON1_LEVEL] ; $d18c
+ ld a, [wPartyMon1Level] ; wPartyMon1Level
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jr c, .asm_13912
jr .asm_13916
.asm_13905
- ld [$d0db], a
+ ld [wd0db], a
ld a, $d2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call EnableAutoTextBoxDrawing
@@ -202,14 +197,14 @@ WildMonEncounterSlotChances: ; 13918 (4:7918)
RecoilEffect_: ; 1392c (4:792c)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
- ld hl, W_PLAYERMONMAXHP ; $d023
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
+ ld hl, wBattleMonMaxHP ; wd023
jr z, .asm_1393d
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
.asm_1393d
ld d, a
- ld a, [W_DAMAGE] ; $d0d7
+ ld a, [W_DAMAGE] ; W_DAMAGE
ld b, a
ld a, [W_DAMAGE + 1]
ld c, a
@@ -252,19 +247,16 @@ RecoilEffect_: ; 1392c (4:792c)
ld [hli], a
ld [hl], a
.asm_13982
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $1
jr z, .asm_13990
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_13990
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
ld hl, HitWithRecoilText ; $799e
jp PrintText
HitWithRecoilText: ; 1399e (4:799e)
@@ -272,8 +264,8 @@ HitWithRecoilText: ; 1399e (4:799e)
db "@"
ConversionEffect_: ; 139a3 (4:79a3)
- ld hl, W_ENEMYMONTYPE1
- ld de, W_PLAYERMONTYPE1
+ ld hl, wEnemyMonType1
+ ld de, wBattleMonType1
ld a, [H_WHOSETURN]
and a
ld a, [W_ENEMYBATTSTATUS1]
@@ -312,18 +304,18 @@ HazeEffect_: ; 139da (4:79da)
call Func_13a43
ld hl, wEnemyMonAttackMod
call Func_13a43
- ld hl, $cd12
- ld de, W_PLAYERMONATK
+ ld hl, wcd12
+ ld de, wBattleMonAttack
call Func_13a4a
- ld hl, $cd26
- ld de, W_ENEMYMONATTACK
+ ld hl, wcd26
+ ld de, wEnemyMonAttack
call Func_13a4a
- ld hl, W_ENEMYMONSTATUS
+ ld hl, wEnemyMonStatus
ld de, wEnemySelectedMove
ld a, [H_WHOSETURN]
and a
jr z, .asm_13a09
- ld hl, W_PLAYERMONSTATUS
+ ld hl, wBattleMonStatus
dec de
.asm_13a09
@@ -338,7 +330,7 @@ HazeEffect_: ; 139da (4:79da)
xor a
ld [W_PLAYERDISABLEDMOVE], a
ld [W_ENEMYDISABLEDMOVE], a
- ld hl, $ccee
+ ld hl, wccee
ld [hli], a
ld [hl], a
ld hl, W_PLAYERBATTSTATUS1
@@ -384,25 +376,25 @@ StatusChangesEliminatedText: ; 13a53 (4:7a53)
db "@"
GetTrainerName_: ; 13a58 (4:7a58)
- ld hl, W_GRASSRATE ; $d887
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld hl, W_GRASSRATE ; W_GRASSRATE
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
and a
jr nz, .rival
- ld hl, W_RIVALNAME ; $d34a
- ld a, [W_TRAINERCLASS] ; $d031
+ ld hl, W_RIVALNAME ; wd34a
+ ld a, [W_TRAINERCLASS] ; wd031
cp SONY1
jr z, .rival
cp SONY2
jr z, .rival
cp SONY3
jr z, .rival
- ld [$d0b5], a
+ ld [wd0b5], a
ld a, TRAINER_NAME
ld [W_LISTTYPE], a
ld a, $e
- ld [$d0b7], a
+ ld [wPredefBank], a
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
.rival
ld de, W_TRAINERNAME
ld bc, $d
diff --git a/engine/battle/5.asm b/engine/battle/5.asm
index 4dbfb4df..6c7a642e 100755
--- a/engine/battle/5.asm
+++ b/engine/battle/5.asm
@@ -1,13 +1,13 @@
SubstituteEffectHandler: ; 17dad (5:7dad)
ld c, 50
call DelayFrames
- ld hl, W_PLAYERMONMAXHP
+ ld hl, wBattleMonMaxHP
ld de, wPlayerSubstituteHP
ld bc, W_PLAYERBATTSTATUS2
ld a, [$fff3] ;whose turn?
and a
jr z, .notEnemy
- ld hl, W_ENEMYMONMAXHP
+ ld hl, wEnemyMonMaxHP
ld de, wEnemySubstituteHP
ld bc, W_ENEMYBATTSTATUS2
.notEnemy
@@ -42,7 +42,7 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
ld h, b
ld l, c
set 4, [hl] ;set bit 4 of flags, user now has substitute
- ld a, [$d355] ;load options
+ ld a, [W_OPTIONS] ;load options
bit 7, a ;battle animation is enabled?
ld hl, Func_3fba8 ; $7ba8 ;animation enabled: 0F:7BA8
ld b, BANK(Func_3fba8)
diff --git a/engine/battle/9.asm b/engine/battle/9.asm
index 79624d34..dc72825c 100755
--- a/engine/battle/9.asm
+++ b/engine/battle/9.asm
@@ -1,5 +1,5 @@
Func_27d6b: ; 27d6b (9:7d6b)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
call GetMonHeader
pop hl
@@ -26,9 +26,9 @@ asm_27d8c: ; 27d8c (9:7d8c)
jp FillMemory
Func_27d98: ; 27d98 (9:7d98)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
- ld a, [W_PLAYERMOVETYPE] ; $cfd5
+ ld a, [W_PLAYERMOVETYPE] ; wcfd5
asm_27d9f: ; 27d9f (9:7d9f)
add a
ld hl, TypeNamePointers ; $7dae
@@ -54,7 +54,7 @@ SaveTrainerName: ; 27e4a (9:7e4a)
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$CD6D
+ ld de,wcd6d
.CopyCharacter
ld a,[hli]
ld [de],a
@@ -157,11 +157,11 @@ CooltrainerFName: ; 27f79 (9:7f79)
db "COOLTRAINER♀@"
FocusEnergyEffect_: ; 27f86 (9:7f86)
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_27f91
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_27f91
bit 2, [hl] ; is mon already using focus energy?
jr nz, .asm_27fa5
diff --git a/engine/battle/a.asm b/engine/battle/a.asm
index 2e409b57..fd3ef40b 100755
--- a/engine/battle/a.asm
+++ b/engine/battle/a.asm
@@ -1,15 +1,15 @@
LeechSeedEffect_: ; 2bea9 (a:7ea9)
callab MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_2bee7
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
- ld de, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES)
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+ ld de, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_2bec8
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
- ld de, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES)
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
+ ld de, wBattleMonType1 ; wd019 (aliases: wBattleMonType)
.asm_2bec8
ld a, [de]
cp GRASS
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm
index aaa65bbb..cc598de4 100755
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -223,7 +223,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
rla
sla c
rla
- ld [$D09F],a ; tile select
+ ld [wd09f],a ; tile select
ld a,[hli] ; sound
ld [wAnimSoundID],a ; store sound
ld a,[hli] ; subanimation ID
@@ -243,7 +243,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
push hl
ld a,[rOBP0]
push af
- ld a,[$CC79]
+ ld a,[wcc79]
ld [rOBP0],a
call LoadAnimationTileset
call LoadSubanimation
@@ -328,7 +328,7 @@ GetSubanimationTransform2: ; 781ca (1e:41ca)
; loads tile patterns for battle animations
LoadAnimationTileset: ; 781d2 (1e:41d2)
- ld a,[$D09F] ; tileset select
+ ld a,[wd09f] ; tileset select
add a
add a
ld hl,AnimationTilesetPointers
@@ -336,14 +336,14 @@ LoadAnimationTileset: ; 781d2 (1e:41d2)
ld d,0
add hl,de
ld a,[hli]
- ld [$D07D],a ; number of tiles
+ ld [wd07d],a ; number of tiles
ld a,[hli]
ld e,a
ld a,[hl]
ld d,a ; de = address of tileset
- ld hl,$8310 ; destination address in VRAM
+ ld hl,vSprites + $310
ld b, BANK(AnimationTileset1) ; ROM bank
- ld a,[$D07D]
+ ld a,[wd07d]
ld c,a ; number of tiles
jp CopyVideoData ; load tileset
@@ -394,7 +394,7 @@ MoveAnimation: ; 78d5e (1e:4d5e)
.MoveAnimation
; check if battle animations are disabled in the options
- ld a,[$D355]
+ ld a,[W_OPTIONS]
bit 7,a
jr nz,.AnimationsDisabled
call ShareMoveAnimations
@@ -408,11 +408,11 @@ MoveAnimation: ; 78d5e (1e:4d5e)
.AnimationFinished
call WaitForSoundToFinish
xor a
- ld [$D096],a
- ld [$D09B],a
- ld [$D08B],a
+ ld [W_SUBANIMSUBENTRYADDR],a
+ ld [wd09b],a
+ ld [W_SUBANIMTRANSFORM],a
dec a
- ld [$CF07],a
+ ld [wAnimSoundID],a
pop af
pop bc
pop de
@@ -443,7 +443,7 @@ ShareMoveAnimations: ; 78da6 (1e:4da6)
ret
Func_78dbd: ; 78dbd (1e:4dbd)
- ld a,[$CC5B]
+ ld a,[wcc5b]
and a
ret z
dec a
@@ -517,14 +517,14 @@ Func_78e01: ; 78e01 (1e:4e01)
ret
Func_78e23: ; 78e23 (1e:4e23)
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, $e4
jr z, .asm_78e47
ld a, $f0
- ld [$cc79], a
+ ld [wcc79], a
ld b, $e4
- ld a, [W_ANIMATIONID] ; $d07c
+ ld a, [W_ANIMATIONID] ; W_ANIMATIONID
cp $aa
jr c, .asm_78e3f
cp $ae
@@ -538,7 +538,7 @@ Func_78e23: ; 78e23 (1e:4e23)
ret
.asm_78e47
ld a, $e4
- ld [$cc79], a
+ ld [wcc79], a
ld [rOBP0], a ; $ff48
ld a, $6c
ld [rOBP1], a ; $ff49
@@ -616,7 +616,7 @@ AnimationCleanOAM: ; 78ec8 (1e:4ec8)
push bc
push af
call DelayFrame
- call CleanLCD_OAM
+ call ClearSprites
pop af
pop bc
pop de
@@ -724,7 +724,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
db $FF ; terminator
DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
- ld a,[$CF91]
+ 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
@@ -742,7 +742,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
ld a,[W_ISINBATTLE]
cp a,02 ; is it a trainer battle?
jr z,.isTrainerBattle
- ld a,[$d11e]
+ 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
@@ -754,8 +754,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
cp a,1
ret nz
.moveGhostMarowakLeft
- FuncCoord 17,0
- ld hl,Coord
+ hlCoord 17, 0
ld de,20
ld bc,$0707 ; 7 rows and 7 columns
.loop
@@ -792,9 +791,9 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96)
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,[$cd3d] ; number of shakes
+ ld a,[wWhichTrade] ; number of shakes
dec a ; decrement number of shakes
- ld [$cd3d],a
+ ld [wWhichTrade],a
ret z
; if there are shakes left, restart the subanimation
ld a,[W_SUBANIMSUBENTRYADDR]
@@ -831,11 +830,9 @@ DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9)
; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically
.shakeScreen
ld b,1
- ld a,$24
- call Predef ; shake horizontally
+ predef Func_48125 ; shake horizontally
ld b,1
- ld a,$21
- jp Predef ; shake vertically
+ predef_jump Func_480ff ; shake vertically
FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7)
ld a,[W_SUBANIMCOUNTER]
@@ -856,8 +853,7 @@ DoExplodeSpecialEffects: ; 79009 (1e:5009)
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
- FuncCoord 1, 5 ; $c405
- ld hl,Coord
+ hlCoord 1, 5
jp AnimationHideMonPic ; make pokemon disappear
; flashes the screen when subanimation counter is 1 modulo 4
@@ -975,7 +971,7 @@ BallMoveDistances2: ; 790b3 (1e:50b3)
; so that there are two musical notes flying towards the defending pokemon
DoGrowlSpecialEffects: ; 790bc (1e:50bc)
ld hl,wOAMBuffer ; OAM buffer
- ld de,$c310
+ ld de,wOAMBuffer + $10
ld bc,$10
call CopyData ; copy the musical note graphic
ld a,[W_SUBANIMCOUNTER]
@@ -1094,8 +1090,8 @@ CallWithTurnFlipped: ; 79155 (1e:5155)
; flashes the screen for an extended period (48 frames)
AnimationFlashScreenLong: ; 79165 (1e:5165)
ld a,3 ; cycle through the palettes 3 times
- ld [$D08A],a
- ld a,[$cf1b] ; running on SGB?
+ ld [wd08a],a
+ ld a,[wcf1b] ; running on SGB?
and a
ld hl,FlashScreenLongMonochrome
jr z,.loop
@@ -1110,9 +1106,9 @@ AnimationFlashScreenLong: ; 79165 (1e:5165)
call FlashScreenLongDelay
jr .innerLoop
.endOfPalettes
- ld a,[$D08A]
+ ld a,[wd08a]
dec a
- ld [$D08A],a
+ ld [wd08a],a
pop hl
jr nz,.loop
ret
@@ -1152,8 +1148,8 @@ FlashScreenLongSGB: ; 7919b (1e:519b)
; causes a delay of 2 frames for the first cycle
; causes a delay of 1 frame for the second and third cycles
FlashScreenLongDelay: ; 791a8 (1e:51a8)
- ld a,[$D08A]
- cp a,4 ; never true since [$D08A] starts at 3
+ ld a,[wd08a]
+ cp a,4 ; never true since [wd08a] starts at 3
ld c,4
jr z,.delayFrames
cp a,3
@@ -1215,7 +1211,7 @@ Func_791f9: ; 791f9 (1e:51f9)
ld bc, $4040
Func_791fc: ; 791fc (1e:51fc)
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, b
jr z, .asm_79204
@@ -1227,39 +1223,37 @@ Func_791fc: ; 791fc (1e:51fc)
ld b, $5
Func_79209: ; 79209 (1e:5209)
- ld a, $21
- jp Predef ; indirect jump to Func_480ff (480ff (12:40ff))
+ predef_jump Func_480ff
AnimationShakeScreen: ; 7920e (1e:520e)
; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations.
ld b, $8
Func_79210: ; 79210 (1e:5210)
- ld a, $24
- jp Predef ; indirect jump to Func_48125 (48125 (12:4125))
+ predef_jump Func_48125
AnimationWaterDropletsEverywhere: ; 79215 (1e:5215)
; 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.
xor a
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
ld d, $20
ld a, $f0
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $71
- ld [$d09f], a
+ ld [wd09f], a
.asm_79228
ld a, $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $0
- ld [$d08a], a
+ ld [wd08a], a
call Func_79246
ld a, $18
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $20
- ld [$d08a], a
+ ld [wd08a], a
call Func_79246
dec d
jr nz, .asm_79228
@@ -1268,24 +1262,24 @@ AnimationWaterDropletsEverywhere: ; 79215 (1e:5215)
Func_79246: ; 79246 (1e:5246)
ld hl, wOAMBuffer
.asm_79249
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $1b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld [hli], a
- ld a, [$d09f]
+ ld a, [wd09f]
ld [hli], a
xor a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
cp $90
jr c, .asm_79249
sub $a8
- ld [W_BASECOORDX], a ; $d081
- ld a, [W_BASECOORDY] ; $d082
+ ld [W_BASECOORDX], a ; wd081
+ ld a, [W_BASECOORDY] ; wd082
add $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
cp $70
jr c, .asm_79249
call AnimationCleanOAM
@@ -1296,15 +1290,15 @@ AnimationSlideMonUp: ; 7927a (1e:527a)
ld c, $7
ld a, [H_WHOSETURN]
and a
- ld hl, $c419
- ld de, $c405
+ ld hl, wTileMap + $79
+ ld de, wTileMap + $65
ld a, $30
jr z, .asm_79291
- ld hl, $c3c0
- ld de, $c3ac
+ ld hl, wTileMap + $20
+ ld de, wTileMap + $c
ld a, $ff
.asm_79291
- ld [$d09f], a
+ ld [wd09f], a
jp Func_792bf
AnimationSlideMonDown: ; 79297 (1e:5297)
@@ -1328,7 +1322,7 @@ AnimationSlideMonOut: ; 792af (1e:52af)
; Slides the mon's sprite out of the screen horizontally.
ld e, $8
ld a, $3
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp Func_795f8
AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9)
@@ -1356,13 +1350,13 @@ Func_792bf: ; 792bf (1e:52bf)
jr nz, .asm_792c4
ld a, [H_WHOSETURN]
and a
- ld hl, $c47d
+ ld hl, wTileMap + $dd
jr z, .asm_792e2
- ld hl, $c424
+ ld hl, wTileMap + $84
.asm_792e2
- ld a, [$d09f]
+ ld a, [wd09f]
inc a
- ld [$d09f], a
+ ld [wd09f], a
ld c, $7
.asm_792eb
ld [hli], a
@@ -1409,7 +1403,7 @@ Func_79329: ; 79329 (1e:5329)
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -1424,7 +1418,7 @@ Func_79337: ; 79337 (1e:5337)
Func_79339: ; 79339 (1e:5339)
ld de, $4
.asm_7933c
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld a, [hl]
add b
@@ -1447,7 +1441,7 @@ Func_79350: ; 79350 (1e:5350)
Func_79352: ; 79352 (1e:5352)
ld de, $4
.asm_79355
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld a, [hl]
add b
@@ -1488,10 +1482,10 @@ AnimationBlinkMon: ; 7936f (1e:536f)
AnimationFlashMonPic: ; 79389 (1e:5389)
; Flashes the mon's sprite on and off
- ld a, [W_PLAYERMONID]
- ld [$ceea], a
- ld a, [$cfe5]
- ld [$cee9], a
+ ld a, [wBattleMonSpecies]
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wEnemyMonSpecies]
+ ld [wHPBarMaxHP], a
jp Func_79793
AnimationFlashEnemyMonPic: ; 79398 (1e:5398)
@@ -1517,11 +1511,11 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1)
; The mon's sprite disappears after this animation.
ld a, [H_WHOSETURN]
and a
- ld hl, $c404
- ld de, $c406
+ ld hl, wTileMap + $64
+ ld de, wTileMap + $66
jr z, .asm_793c2
- ld hl, $c3ab
- ld de, $c3ad
+ ld hl, wTileMap + $b
+ ld de, wTileMap + $d
.asm_793c2
xor a
@@ -1565,11 +1559,9 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9)
call AnimationHideMonPic
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
jr z, .asm_79407
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
+ hlCoord 11, 0
.asm_79407
xor a
push hl
@@ -1597,14 +1589,14 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424)
and a
jr z, .asm_79435
ld a, $d8
- ld [$d08a], a
+ ld [wd08a], a
ld a, $50
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jr .asm_7943c
.asm_79435
xor a
- ld [$d08a], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [wd08a], a
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
.asm_7943c
ld d, $7a
ld c, $3
@@ -1619,12 +1611,12 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424)
ld a, [hl]
cp $ff
jr z, .asm_7946f
- ld a, [$d08a]
+ ld a, [wd08a]
add [hl]
ld [de], a
inc de
inc hl
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
add [hl]
ld [de], a
inc hl
@@ -1680,24 +1672,20 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_794b1
- FuncCoord 16, 0 ; $c3b0
- ld hl, Coord
- FuncCoord 14, 0 ; $c3ae
- ld de, Coord
+ hlCoord 16, 0
+ deCoord 14, 0
jr .asm_794b7
.asm_794b1
- FuncCoord 5, 5 ; $c409
- ld hl, Coord
- FuncCoord 3, 5 ; $c407
- ld de, Coord
+ hlCoord 5, 5
+ deCoord 3, 5
.asm_794b7
push de
xor a
- ld [$d09f], a
+ ld [wd09f], a
call Func_794d4
pop hl
ld a, $1
- ld [$d09f], a
+ ld [wd09f], a
call Func_794d4
pop bc
dec c
@@ -1712,7 +1700,7 @@ Func_794d4: ; 794d4 (1e:54d4)
push bc
push hl
ld c, $3
- ld a, [$d09f]
+ ld a, [wd09f]
cp $0
jr nz, .asm_794e7
call Func_7985b
@@ -1743,9 +1731,9 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9)
ld bc, $3028
.asm_79506
ld a, b
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, c
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld bc, $501
call Func_79517
jp AnimationCleanOAM
@@ -1753,13 +1741,13 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9)
Func_79517: ; 79517 (1e:5517)
push bc
xor a
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
pop bc
ld d, $7a
ld hl, wOAMBuffer
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_7952a
call Func_79329
@@ -1768,12 +1756,12 @@ Func_79517: ; 79517 (1e:5517)
call DelayFrame
pop bc
ld a, b
- ld [$d08a], a
+ ld [wd08a], a
.asm_79538
push bc
ld hl, wOAMBuffer
.asm_7953c
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add $8
ld e, a
ld a, [hl]
@@ -1784,9 +1772,9 @@ Func_79517: ; 79517 (1e:5517)
jr .asm_79554
.asm_7954b
ld [hl], $0
- ld a, [$d08a]
+ ld a, [wd08a]
dec a
- ld [$d08a], a
+ ld [wd08a], a
.asm_79554
ld de, $4
add hl, de
@@ -1794,7 +1782,7 @@ Func_79517: ; 79517 (1e:5517)
jr nz, .asm_7953c
call DelayFrames
pop bc
- ld a, [$d08a]
+ ld a, [wd08a]
and a
jr nz, .asm_79538
ret
@@ -1838,7 +1826,7 @@ UpwardBallsAnimXCoordinatesEnemyTurn: ; 79598 (1e:5598)
AnimationMinimizeMon: ; 7959f (1e:559f)
; Changes the mon's sprite to a mini black sprite. Used by the
; Minimize animation.
- ld hl, $c6e8
+ ld hl, wTempPic
push hl
xor a
ld bc, $310
@@ -1883,7 +1871,7 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9)
dec c
jr nz, .asm_795cd
call AnimationHideMonPic
- ld hl, $c6e8
+ ld hl, wTempPic
ld bc, $0310
xor a
call FillMemory
@@ -1893,12 +1881,10 @@ Func_795f8: ; 795f8 (1e:55f8)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_79602
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
jr .asm_79605
.asm_79602
- FuncCoord 0, 5 ; $c404
- ld hl, Coord
+ hlCoord 0, 5
.asm_79605
ld d, $8
.asm_79607
@@ -1924,7 +1910,7 @@ Func_795f8: ; 795f8 (1e:55f8)
pop de
dec b
jr nz, .asm_7960a
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
ld c, a
call DelayFrames
pop hl
@@ -1960,17 +1946,17 @@ AnimationSlideMonHalfLeft: ; 79645 (1e:5645)
Func_79652: ; 79652 (1e:5652)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, $9310
+ ld hl, vBackPic
jr z, .asm_7965d
- ld hl, $9000
+ ld hl, vFrontPic
.asm_7965d
- ld de, $c6e8
- ld bc, $31
+ ld de, wTempPic
+ ld bc, 7 * 7
jp CopyVideoData
AnimationWavyScreen: ; 79666 (1e:5666)
; used in Psywave/Psychic etc.
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call Delay3
xor a
@@ -2005,7 +1991,7 @@ AnimationWavyScreen: ; 79666 (1e:5666)
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call LoadScreenTilesFromBuffer2
- ld hl, $9c00
+ ld hl, vBGMap1
call Func_79e0d
ret
@@ -2031,38 +2017,38 @@ WavyScreenLineOffsets: ; 796bf (1e:56bf)
AnimationSubstitute: ; 796e0 (1e:56e0)
; Changes the pokemon's sprite to the mini sprite
- ld hl, $c6e8
+ ld hl, wTempPic
xor a
ld bc, $0310
call FillMemory
ld a, [$fff3]
and a
jr z, .asm_79715 ; 0x796ed $26
- ld hl, SlowbroSprite ; $4780 ; facing down sprite
- ld de, $c808
+ ld hl, SlowbroSprite ; facing down sprite
+ ld de, wTempPic + $120
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $10 ; $4790
- ld de, $c878
+ ld hl, SlowbroSprite + $10
+ ld de, wTempPic + $120 + $70
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $20 ; $47a0
- ld de, $c818
+ ld hl, SlowbroSprite + $20
+ ld de, wTempPic + $120 + $10
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $30 ; $47b0
- ld de, $c888
+ ld hl, SlowbroSprite + $30
+ ld de, wTempPic + $120 + $10 + $70
call CopySlowbroSpriteData
- jr .asm_79739 ; 0x79713 $24
+ jr .asm_79739
.asm_79715
- ld hl, SlowbroSprite + $40 ; $47c0 ; facing up sprite
- ld de, $c878
+ ld hl, SlowbroSprite + $40 ; facing up sprite
+ ld de, wTempPic + $120 + $70
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $50 ; $47d0
- ld de, $c8e8
+ ld hl, SlowbroSprite + $50
+ ld de, wTempPic + $120 + $e0
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $60 ; $47e0
- ld de, $c888
+ ld hl, SlowbroSprite + $60
+ ld de, wTempPic + $120 + $80
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $70 ; $47f0
- ld de, $c8f8
+ ld hl, SlowbroSprite + $70
+ ld de, wTempPic + $120 + $f0
call CopySlowbroSpriteData
.asm_79739
call Func_79652
@@ -2076,11 +2062,11 @@ CopySlowbroSpriteData: ; 7973f (1e:573f)
Func_79747: ; 79747 (1e:5747)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, $ccf7
- ld a, [W_PLAYERBATTSTATUS2] ; $d063
+ ld hl, wccf7
+ ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2
jr z, .asm_79758
- ld hl, $ccf3
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld hl, wccf3
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
.asm_79758
push hl
bit 4, a
@@ -2117,40 +2103,38 @@ AnimationBoundUpAndDown: ; 7977a (1e:577a)
AnimationTransformMon: ; 79787 (1e:5787)
; Redraws this mon's sprite as the back/front sprite of the opposing mon.
; Used in Transform.
- ld a, [$cfe5]
- ld [$ceea], a
- ld a, [W_PLAYERMONID]
- ld [$cee9], a
+ ld a, [wEnemyMonSpecies]
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wBattleMonSpecies]
+ ld [wHPBarMaxHP], a
Func_79793: ; 79793 (1e:5793)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_797b0
- ld a, [$cee9]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf91], a
+ ld [wd0b5], a
xor a
ld [W_SPRITEFLIPPED], a
call GetMonHeader
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
call LoadFrontSpriteByMonIndex
jr .asm_797d3
.asm_797b0
- ld a, [$cfd9]
+ ld a, [wBattleMonSpecies2]
push af
- ld a, [$ceea]
- ld [$cfd9], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP + 1]
+ ld [wBattleMonSpecies2], a
+ ld [wd0b5], a
call GetMonHeader
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
xor a
call Func_79842
call Func_79820
call Func_79aae
pop af
- ld [$cfd9], a
+ ld [wBattleMonSpecies2], a
.asm_797d3
ld b, $1
jp GoPAL_SET
@@ -2168,13 +2152,13 @@ AnimationHideEnemyMonPic: ; 797d8 (1e:57d8)
Func_797e8: ; 797e8 (1e:57e8)
push bc
push de
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
pop de
pop bc
xor a
ld e, a
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld hl, wOAMBuffer
.asm_797fa
call Func_79329
@@ -2291,28 +2275,28 @@ Func_7986f: ; 7986f (1e:586f)
ld a,[H_WHOSETURN]
and a
jr nz,.next
- ld a,[W_PLAYERMONID] ; get number of current monster
+ ld a,[wBattleMonSpecies] ; get number of current monster
jr .Continue
.next
- ld a,[$CFE5]
+ ld a,[wEnemyMonSpecies]
.Continue
push hl
call GetCryData
ld b,a
pop hl
- ld a,[$C0F1]
+ ld a,[wc0f1]
add [hl]
- ld [$C0F1],a
+ ld [wc0f1],a
inc hl
- ld a,[$C0F2]
+ ld a,[wc0f2]
add [hl]
- ld [$C0F2],a
+ ld [wc0f2],a
jr .done
.NotCryMove
ld a,[hli]
- ld [$C0F1],a
+ ld [wc0f1],a
ld a,[hli]
- ld [$C0F2],a
+ ld [wc0f2],a
.done
ld a,b
ret
@@ -2509,8 +2493,8 @@ Func_79aae: ; 79aae (1e:5aae)
jr asm_79acb
Func_79aba: ; 79aba (1e:5aba)
- call Load16BitRegisters
- ld a, [$cd6c]
+ call GetPredefRegisters
+ ld a, [wcd6c]
and a
jr nz, .asm_79ac8
ld de, Unknown_79b02 ; $5b02
@@ -2599,7 +2583,7 @@ AnimationLeavesFalling: ; 79c74 (1e:5c74)
; in Razor Leaf's animation.
ld a, [$ff48]
push af
- ld a, [$cc79]
+ ld a, [wcc79]
ld [$ff48], a
ld d, $37
ld a, $3
@@ -2616,7 +2600,7 @@ AnimationPetalsFalling: ; 79c8a (1e:5c8a)
ld a, $14
ld [W_SUBANIMTRANSFORM], a
call Func_79c97
- jp CleanLCD_OAM
+ jp ClearSprites
Func_79c97: ; 79c97 (1e:5c97)
ld c, a
@@ -2636,7 +2620,7 @@ Func_79c97: ; 79c97 (1e:5c97)
push hl
push de
ld a, [hl]
- ld [$d08a], a
+ ld [wd08a], a
call Func_79d16
call Func_79cdb
pop de
@@ -2645,7 +2629,7 @@ Func_79c97: ; 79c97 (1e:5c97)
ld e, l
ld d, h
pop hl
- ld a, [$d08a]
+ ld a, [wd08a]
ld [hli], a
pop bc
dec c
@@ -2668,7 +2652,7 @@ Func_79cdb: ; 79cdb (1e:5cdb)
ld a, $a0
.asm_79ce8
ld [hli], a
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld de, Unknown_79d0d
and $7f
@@ -2702,7 +2686,7 @@ Unknown_79d0d: ; 79d0d (1e:5d0d)
db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F
Func_79d16: ; 79d16 (1e:5d16)
- ld a, [$d08a]
+ ld a, [wd08a]
inc a
ld b, a
and $7f
@@ -2712,11 +2696,11 @@ Func_79d16: ; 79d16 (1e:5d16)
and $80
xor $80
.asm_79d26
- ld [$d08a], a
+ ld [wd08a], a
ret
Func_79d2a: ; 79d2a (1e:5d2a)
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld de, Unknown_79d3e
ld a, [W_SUBANIMTRANSFORM]
ld c, a
@@ -2751,46 +2735,46 @@ Unknown_79d63: ; 79d63 (1e:5d63)
db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86
AnimationShakeEnemyHUD: ; 79d77 (1e:5d77)
- ld de, $9310
- ld hl, $8000
- ld bc, $0031
+ ld de, vBackPic
+ ld hl, vSprites
+ ld bc, 7 * 7
call CopyVideoData
xor a
ld [$ffae], a
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
ld a, $90
ld [$ffb0], a
- ld hl, $9b20
+ ld hl, vBGMap0 + $320
call Func_79e0d
ld a, $38
ld [$ffb0], a
call Func_792fd
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call AnimationHideMonPic
call Delay3
ld de, $0208
call Func_79de9
call AnimationShowMonPic
- call CleanLCD_OAM
+ call ClearSprites
ld a, $90
ld [$ffb0], a
- ld hl, $9c00
+ ld hl, vBGMap1
call Func_79e0d
xor a
ld [$ffb0], a
call SaveScreenTilesToBuffer1
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call ClearScreen
call Delay3
call LoadScreenTilesFromBuffer1
- ld hl, $9c00
+ ld hl, vBGMap1
jp Func_79e0d
Func_79dda: ; 79dda (1e:5dda)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, c
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld a, b
@@ -2830,7 +2814,7 @@ TossBallAnimation: ; 79e16 (1e:5e16)
ld a,[W_ISINBATTLE]
cp a,2
jr z,.BlockBall ; if in trainer battle, play different animation
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
; upper nybble: how many animations (from PokeBallAnimations) to play
@@ -2843,11 +2827,11 @@ TossBallAnimation: ; 79e16 (1e:5e16)
; store these for later
ld a,b
and a,$F
- ld [$CD3D],a
+ ld [wWhichTrade],a
ld hl,.PokeBallAnimations
; choose which toss animation to use
- ld a,[$CF91]
+ ld a,[wcf91]
cp a,POKE_BALL
ld b,TOSS_ANIM
jr z,.done
@@ -2885,7 +2869,7 @@ TossBallAnimation: ; 79e16 (1e:5e16)
Func_79e6a: ; 79e6a (1e:5e6a)
call WaitForSoundToFinish
- ld a, [$d05b]
+ ld a, [wd05b]
and $7f
ret z
cp $a
@@ -2901,8 +2885,8 @@ Func_79e6a: ; 79e6a (1e:5e6a)
ld b, $1
ld c, (SFX_08_51 - SFX_Headers_08) / 3
.asm_79e8b
- ld [$c0f1], a
+ ld [wc0f1], a
ld a, b
- ld [$c0f2], a
+ ld [wc0f2], a
ld a, c
jp PlaySound
diff --git a/engine/battle/b.asm b/engine/battle/b.asm
index 7269e48c..24a75af4 100755
--- a/engine/battle/b.asm
+++ b/engine/battle/b.asm
@@ -1,5 +1,5 @@
DisplayEffectiveness: ; 2fb7b (b:7b7b)
- ld a, [$D05B]
+ ld a, [wd05b]
and a, $7F
cp a, $0A
ret z
diff --git a/engine/battle/b_2.asm b/engine/battle/b_2.asm
index b71ca40d..e343f1aa 100755
--- a/engine/battle/b_2.asm
+++ b/engine/battle/b_2.asm
@@ -86,13 +86,13 @@ DuplicateBitsTable: ; 2fea8 (b:7ea8)
PayDayEffect_ ; 2feb8 (b:7eb8)
xor a
- ld hl, $cd6d
+ ld hl, wcd6d
ld [hli], a
ld a, [$fff3]
and a
- ld a, [$d022]
+ ld a, [wBattleMonLevel]
jr z, .asm_2fec8 ; 0x2fec3 $3
- ld a, [$cff3]
+ ld a, [wEnemyMonLevel]
.asm_2fec8
add a
ld [$ff98], a
@@ -118,10 +118,9 @@ PayDayEffect_ ; 2feb8 (b:7eb8)
ld a, [$ff99]
add b
ld [hl], a
- ld de, $cce7
+ ld de, wcce7
ld c, $3
- ld a, $b
- call Predef
+ predef AddBCDPredef
ld hl, CoinsScatteredText ; $7f04
jp PrintText
diff --git a/engine/battle/c.asm b/engine/battle/c.asm
index b93cc273..c1347d24 100755
--- a/engine/battle/c.asm
+++ b/engine/battle/c.asm
@@ -21,19 +21,19 @@ ShroudedInMistText: ; 33f52 (c:7f52)
db "@"
OneHitKOEffect_: ; 33f57 (c:7f57)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
xor a
ld [hli], a
ld [hl], a ; set the damage output to zero
dec a
- ld [$d05e], a
- ld hl, $d02a
- ld de, $cffb
+ ld [wd05e], a
+ ld hl, wBattleMonSpeed + 1
+ ld de, wEnemyMonSpeed + 1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_33f72
- ld hl, $cffb
- ld de, $d02a
+ ld hl, wEnemyMonSpeed + 1
+ ld de, wBattleMonSpeed + 1
.asm_33f72
ld a, [de]
dec de
@@ -45,14 +45,14 @@ OneHitKOEffect_: ; 33f57 (c:7f57)
ld a, [hl]
sbc b
jr c, .asm_33f8a
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, $ff
ld [hli], a
ld [hl], a
ld a, $2
- ld [$d05e], a
+ ld [wd05e], a
ret
.asm_33f8a
ld a, $1
- ld [W_MOVEMISSED], a ; $d05f
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
ret
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index a19919f4..b3495a29 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -94,16 +94,15 @@ EffectsArray5B: ; 3c049 (f:4049)
Func_3c04c: ; 3c04c (f:404c)
call Func_3ec92
ld a, $1
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $307
call ClearScreenArea
call DisableLCD
call LoadFontTilePatterns
call Func_3ee58
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $400
.asm_3c06f
ld a, $7f
@@ -113,7 +112,7 @@ Func_3c04c: ; 3c04c (f:404c)
or c
jr nz, .asm_3c06f
ld hl, wTileMap
- ld de, $9800
+ ld de, vBGMap0
ld b, $12
.asm_3c07f
ld c, $14
@@ -139,7 +138,7 @@ Func_3c04c: ; 3c04c (f:404c)
ld [$ffd7], a
ld [$ffaf], a
dec a
- ld [$cfcb], a
+ ld [wcfcb], a
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -171,10 +170,8 @@ Func_3c04c: ; 3c04c (f:404c)
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $31
ld [$ffe1], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 1, 5
+ predef Func_3f0c6
xor a
ld [$ffb0], a
ld [rWY], a ; $ff4a
@@ -183,14 +180,14 @@ Func_3c04c: ; 3c04c (f:404c)
call Delay3
ld b, $1
call GoPAL_SET
- call ResetLCD_OAM
+ call HideSprites
ld hl, PrintBeginningBattleText
ld b, BANK(PrintBeginningBattleText)
jp Bankswitch
Func_3c0ff: ; 3c0ff (f:40ff)
push bc
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld c, $15
ld de, $4
.asm_3c108
@@ -216,12 +213,12 @@ Func_3c110: ; 3c110 (f:4110)
Func_3c11e: ; 3c11e (f:411e)
xor a
- ld [W_PLAYERMONSALIVEFLAGS], a
- ld [$ccf5], a
- ld [$cd6a], a
+ ld [wPartyAliveFlags], a
+ ld [wccf5], a
+ ld [wcd6a], a
inc a
- ld [$d11d], a
- ld hl, W_ENEMYMON1HP ; $d8a5
+ ld [wd11d], a
+ ld hl, wEnemyMon1HP ; wd8a5
ld bc, $2b
ld d, $3
.asm_3c134
@@ -233,29 +230,29 @@ Func_3c11e: ; 3c11e (f:411e)
jr .asm_3c134
.asm_3c13c
ld a, d
- ld [$cc3e], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld [wcc3e], a
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
call nz, Func_3c92a
ld c, $28
call DelayFrames
call SaveScreenTilesToBuffer1
.asm_3c14f
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
jp z, HandlePlayerBlackOut
call LoadScreenTilesFromBuffer1
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jp z, Func_3c1ad
.asm_3c161
call InitBattleMenu
ret c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr z, .asm_3c161
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr nz, .asm_3c17a
call LoadScreenTilesFromBuffer1
@@ -263,24 +260,24 @@ Func_3c11e: ; 3c11e (f:411e)
jp PrintText
.asm_3c17a
callab PrintSafariZoneBattleText
- ld a, [$cffb]
+ ld a, [wEnemyMonSpeed + 1]
add a
ld b, a
jp c, asm_3c202
- ld a, [$cce9]
+ ld a, [wcce9]
and a
jr z, .asm_3c194
srl b
srl b
.asm_3c194
- ld a, [$cce8]
+ ld a, [wcce8]
and a
jr z, .asm_3c1a0
sla b
jr nc, .asm_3c1a0
ld b, $ff
.asm_3c1a0
- call GenRandom
+ call Random
cp b
jr nc, .asm_3c14f
jr asm_3c202
@@ -291,53 +288,50 @@ OutOfSafariBallsText: ; 3c1a8 (f:41a8)
Func_3c1ad: ; 3c1ad (f:41ad)
xor a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
.asm_3c1b1
call Func_3ca97
jr nz, .asm_3c1bc
- ld hl, wWhichPokemon ; $cf92
+ ld hl, wWhichPokemon ; wWhichPokemon
inc [hl]
jr .asm_3c1b1
.asm_3c1bc
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
inc a
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$cf91], a
- ld [$cfd9], a
+ ld [wcf91], a
+ ld [wBattleMonSpecies2], a
call LoadScreenTilesFromBuffer1
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld a, $9
call Func_3c8df
call SaveScreenTilesToBuffer1
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
push bc
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, $ccf5
+ ld hl, wPartyAliveFlags
+ predef FlagActionPredef
+ ld hl, wccf5
pop bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
call Func_3cba6
call LoadScreenTilesFromBuffer1
call Func_3cc91
jr MainInBattleLoop
asm_3c202: ; 3c202 (f:4202)
call LoadScreenTilesFromBuffer1
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld hl, WildRanText
jr nz, .asm_3c216
xor a
- ld [$cf0b], a
+ ld [wcf0b], a
ld hl, EnemyRanText
.asm_3c216
call PrintText
@@ -359,53 +353,53 @@ EnemyRanText: ; 3c22e (f:422e)
MainInBattleLoop: ; 3c233 (f:4233)
call ReadPlayerMonCurHPAndStatus
- ld hl, W_PLAYERMONCURHP
+ ld hl, wBattleMonHP
ld a, [hli]
or [hl]
jp z, HandlePlayerMonFainted ; test if current player mon is fainted
- ld hl, $cfe6
+ ld hl, wEnemyMonHP
ld a, [hli]
or [hl]
jp z, HandleEnemyMonFainted
call SaveScreenTilesToBuffer1
xor a
- ld [$d11d], a
- ld a, [$d063]
+ ld [wd11d], a
+ ld a, [W_PLAYERBATTSTATUS2]
and $60
jr nz, .asm_3c2a6 ; 0x3c252 $52
- ld hl, $d067
+ ld hl, W_ENEMYBATTSTATUS1
res 3, [hl]
- ld hl, $d062
+ ld hl, W_PLAYERBATTSTATUS1
res 3, [hl]
ld a, [hl]
and $12
jr nz, .asm_3c2a6 ; 0x3c261 $43
call InitBattleMenu ; show battle menu
ret c
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
- ld a, [$d018]
+ ld a, [wBattleMonStatus]
and $27
jr nz, .asm_3c2a6 ; 0x3c271 $33
- ld a, [$d062]
+ ld a, [W_PLAYERBATTSTATUS1]
and $21
jr nz, .asm_3c2a6 ; 0x3c278 $2c
- ld a, [$d067]
+ ld a, [W_ENEMYBATTSTATUS1]
bit 5, a
jr z, .asm_3c288 ; 0x3c27f $7
ld a, $ff
- ld [$ccdc], a
+ ld [wPlayerSelectedMove], a
jr .asm_3c2a6 ; 0x3c286 $1e
.asm_3c288
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr nz, .asm_3c2a6 ; 0x3c28c $18
- ld [$ccdb], a
+ ld [wMoveMenuType], a
inc a
- ld [$d07c], a
+ ld [W_ANIMATIONID], a
xor a
- ld [$cc35], a
+ ld [wcc35], a
call MoveSelectionMenu
push af
call LoadScreenTilesFromBuffer1
@@ -417,7 +411,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
ld a, [W_ISLINKBATTLE]
cp $4
jr nz, .noLinkBattle
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
jp z, asm_3c202
cp $e
@@ -426,11 +420,11 @@ MainInBattleLoop: ; 3c233 (f:4233)
jr z, .noLinkBattle
sub $4
jr c, .noLinkBattle
- ld a, [$d062]
+ ld a, [W_PLAYERBATTSTATUS1]
bit 5, a
jr z, .asm_3c2dd ; 0x3c2c9 $12
- ld a, [$cc2e]
- ld hl, W_PLAYERMONMOVES
+ ld a, [wPlayerMoveListIndex]
+ ld hl, wBattleMonMoves
ld c, a
ld b, $0
add hl, bc
@@ -464,8 +458,8 @@ MainInBattleLoop: ; 3c233 (f:4233)
cp COUNTER
jr z, .playerMovesFirst
.compareSpeed
- ld de, W_PLAYERMONSPEED ; player speed value
- ld hl, W_ENEMYMONSPEED ; enemy speed value
+ ld de, wBattleMonSpeed ; player speed value
+ ld hl, wEnemyMonSpeed ; enemy speed value
ld c, $2
call StringCmp ; compare speed values
jr z, .speedEqual
@@ -475,12 +469,12 @@ MainInBattleLoop: ; 3c233 (f:4233)
ld a, [$ffaa]
cp $2
jr z, .invertOutcome
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, .playerMovesFirst
jr .enemyMovesFirst
.invertOutcome
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, .enemyMovesFirst
jr .playerMovesFirst
@@ -490,7 +484,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
callab TrainerAI
jr c, .AIActionUsedEnemyFirst
call Func_3e6bc ; execute enemy move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -501,7 +495,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
jp z, HandleEnemyMonFainted
call Func_3cd5a
call Func_3d65e ; execute player move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -514,7 +508,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
jp MainInBattleLoop
.playerMovesFirst
call Func_3d65e ; execute player move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -528,7 +522,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
callab TrainerAI
jr c, .AIActionUsedPlayerFirst
call Func_3e6bc ; execute enemy move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -542,13 +536,13 @@ MainInBattleLoop: ; 3c233 (f:4233)
jp MainInBattleLoop
HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd)
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERMONSTATUS ; $d018
+ ld hl, wBattleMonHP ; wd015
+ ld de, wBattleMonStatus ; wBattleMonStatus
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, wEnemyMonStatus ; wcfe9
.playersTurn
ld a, [de]
and (1 << BRN) | (1 << PSN)
@@ -562,17 +556,17 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd)
.poisoned
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,BURN_PSN_ANIM
call PlayMoveAnimation ; play burn/poison animation
pop hl
call HandlePoisonBurnLeechSeed_DecreaseOwnHP
.notBurnedOrPoisoned
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn2
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.playersTurn2
ld a, [de]
add a
@@ -583,7 +577,7 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd)
xor $1
ld [H_WHOSETURN], a ; $fff3
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,ABSORB
call PlayMoveAnimation ; play leech seed animation (from opposing mon)
pop af
@@ -643,13 +637,13 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
jr nz, .nonZeroDamage
inc c ; damage is at least 1
.nonZeroDamage
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
- ld de, W_PLAYERTOXICCOUNTER ; $d06c
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld de, W_PLAYERTOXICCOUNTER ; wd06c
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYTOXICCOUNTER ; $d071
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYTOXICCOUNTER ; wd071
.playersTurn
bit 0, [hl]
jr z, .noToxic
@@ -690,11 +684,11 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
; adds bc to enemy HP
HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
push hl
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_PLAYERMONMAXHP ; $d023
+ ld hl, wBattleMonMaxHP ; wd023
.playersTurn
ld a, [hli]
ld [wHPBarMaxHP+1], a
@@ -739,55 +733,52 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
ret
UpdateCurMonHPBar: ; 3c4f6 (f:44f6)
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord ; tile pointer to player HP bar
+ hlCoord 10, 9 ; tile pointer to player HP bar
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $1
jr z, .playersTurn
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord ; tile pointer to enemy HP bar
+ hlCoord 2, 2 ; tile pointer to enemy HP bar
xor a
.playersTurn
push bc
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
pop bc
ret
Func_3c50f: ; 3c50f (f:450f)
- ld a, [$d06a]
+ ld a, [wd06a]
and a
jr nz, .asm_3c51a
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 5, [hl]
.asm_3c51a
- ld a, [$d06f]
+ ld a, [wd06f]
and a
ret nz
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 5, [hl]
ret
HandleEnemyMonFainted: ; 3c525 (f:4525)
xor a
- ld [$ccf0], a
+ ld [wccf0], a
call FaintEnemyPokemon
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
jp z, HandlePlayerBlackOut
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
call nz, Func_3cd60
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z
call AnyEnemyPokemonAliveCheck
jp z, TrainerBattleVictory
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr nz, .asm_3c555
@@ -796,60 +787,58 @@ HandleEnemyMonFainted: ; 3c525 (f:4525)
call Func_3c7d8
.asm_3c555
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3c664
jp z, asm_3c202
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
jp MainInBattleLoop
FaintEnemyPokemon ; 0x3c567
call ReadPlayerMonCurHPAndStatus
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr z, .wild
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld hl, W_ENEMYMON1HP
+ ld a, [wEnemyMonPartyPos]
+ ld hl, wEnemyMon1HP
ld bc, $2c ; mon struct len
call AddNTimes
xor a
ld [hli], a
ld [hl], a
.wild
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 2, [hl]
xor a
- ld [W_NUMHITS], a ; $d074
- ld hl, $d065 ; enemy statuses
+ ld [W_NUMHITS], a ; wd074
+ ld hl, wd065 ; enemy statuses
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_ENEMYDISABLEDMOVE], a ; $d072
- ld [$ccef], a
- ld [$ccf3], a
- ld hl, $ccf1
+ ld [W_ENEMYDISABLEDMOVE], a ; W_ENEMYDISABLEDMOVE
+ ld [wccef], a
+ ld [wccf3], a
+ ld hl, wccf1
ld [hli], a
ld [hl], a
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
- FuncCoord 12, 6 ; $c424
- ld de, Coord
+ hlCoord 12, 5
+ deCoord 12, 6
call Func_3c893
ld hl, wTileMap
ld bc, $40b
call ClearScreenArea
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr z, .wild_win
xor a
- ld [$c0f1], a
- ld [$c0f2], a
+ ld [wc0f1], a
+ ld [wc0f2], a
ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL?
call PlaySoundWaitForCurrent
.sfxwait
- ld a, [$c02a]
+ ld a, [wc02a]
cp (SFX_08_48 - SFX_Headers_08) / 3
jr z, .sfxwait
ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP
@@ -861,16 +850,16 @@ FaintEnemyPokemon ; 0x3c567
ld a, MUSIC_DEFEATED_WILD_MON
call PlayBattleVictoryMusic
.sfxplayed
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr nz, .playermonnotfaint
- ld a, [$ccf0]
+ ld a, [wccf0]
and a
jr nz, .playermonnotfaint
call Func_3c741
.playermonnotfaint
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
ret z
@@ -879,12 +868,12 @@ FaintEnemyPokemon ; 0x3c567
call Func_3ee94
call SaveScreenTilesToBuffer1
xor a
- ld [$cf0b], a
+ ld [wcf0b], a
ld b, EXP__ALL
call IsItemInBag
push af
jr z, .no_exp_all
- ld hl, $d002
+ ld hl, wd002
ld b, $7
.exp_all_loop
srl [hl]
@@ -893,13 +882,13 @@ FaintEnemyPokemon ; 0x3c567
jr nz, .exp_all_loop
.no_exp_all
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
callab GainExperience
pop af
ret z
ld a, $1
- ld [$cc5b], a
- ld a, [W_NUMINPARTY] ; $d163
+ ld [wcc5b], a
+ ld a, [wPartyCount] ; wPartyCount
ld b, $0
.asm_3c62c
scf
@@ -907,7 +896,7 @@ FaintEnemyPokemon ; 0x3c567
dec a
jr nz, .asm_3c62c
ld a, b
- ld [W_PLAYERMONSALIVEFLAGS], a
+ ld [wPartyAliveFlags], a
ld hl, GainExperience
ld b, BANK(GainExperience)
jp Bankswitch
@@ -918,17 +907,17 @@ EnemyMonFaintedText: ; 0x3c63e
Func_3c643: ; 3c643 (f:4643)
xor a
- ld [$d083], a
- ld [$c02a], a
+ ld [wd083], a
+ ld [wc02a], a
inc a
- ld [$ccf6], a
+ ld [wccf6], a
ret
AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f)
- ld a, [wEnemyPartyCount] ; $d89c
+ ld a, [wEnemyPartyCount] ; wEnemyPartyCount
ld b, a
xor a
- ld hl, W_ENEMYMON1HP ; $d8a5
+ ld hl, wEnemyMon1HP ; wd8a5
ld de, $2c
.asm_3c65a
or [hl]
@@ -942,49 +931,49 @@ AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f)
ret
Func_3c664: ; 3c664 (f:4664)
- ld hl, $cf1e
+ ld hl, wcf1e
ld e, $30
call GetBattleHealthBarColor
callab DrawEnemyPokeballs
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3c687
call Func_3d605
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
ret z
call LoadScreenTilesFromBuffer1
.asm_3c687
call EnemySendOut
xor a
- ld [W_ENEMYMOVENUM], a ; $cfcc
- ld [$cd6a], a
- ld [$ccd5], a
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
+ ld [wcd6a], a
+ ld [wccd5], a
inc a
ret
TrainerBattleVictory: ; 3c696 (f:4696)
call Func_3c643
ld b, MUSIC_DEFEATED_GYM_LEADER
- ld a, [W_GYMLEADERNO] ; $d05c
+ ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO
and a
jr nz, .gymleader
ld b, MUSIC_DEFEATED_TRAINER
.gymleader
- ld a, [W_TRAINERCLASS] ; $d031
+ ld a, [W_TRAINERCLASS] ; wd031
cp SONY3 ; final battle against rival
jr nz, .notrival
ld b, MUSIC_DEFEATED_GYM_LEADER
ld hl, W_FLAGS_D733
set 1, [hl]
.notrival
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld a, b
call nz, PlayBattleVictoryMusic
ld hl, TrainerDefeatedText
call PrintText
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ret z
call ScrollTrainerPicAfterBattle
@@ -993,11 +982,10 @@ TrainerBattleVictory: ; 3c696 (f:4696)
call Func_3381
ld hl, MoneyForWinningText
call PrintText
- ld de, wPlayerMoney + 2 ; $d349
- ld hl, $d07b
+ ld de, wPlayerMoney + 2 ; wd349
+ ld hl, wd07b
ld c, $3
- ld a, $b
- jp Predef ; indirect jump to Func_f81d (f81d (3:781d))
+ predef_jump AddBCDPredef
MoneyForWinningText: ; 3c6e4 (f:46e4)
TX_FAR _MoneyForWinningText
@@ -1010,7 +998,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9)
PlayBattleVictoryMusic: ; 3c6ee (f:46ee)
push af
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySoundWaitForCurrent
ld c, BANK(Music_DefeatedTrainer)
pop af
@@ -1019,18 +1007,18 @@ PlayBattleVictoryMusic: ; 3c6ee (f:46ee)
HandlePlayerMonFainted: ; 3c700 (f:4700)
ld a, $1
- ld [$ccf0], a
+ ld [wccf0], a
call Func_3c741
- call AnyPlayerPokemonAliveCheck ; test if any more mons are alive
+ call AnyPartyAlive ; test if any more mons are alive
ld a, d
and a
jp z, HandlePlayerBlackOut
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
jr nz, .enemyMonNotFainted
call FaintEnemyPokemon
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z ; if wild encounter, battle is over
call AnyEnemyPokemonAliveCheck
@@ -1041,49 +1029,45 @@ HandlePlayerMonFainted: ; 3c700 (f:4700)
call Func_3c7d8
jp nz, MainInBattleLoop
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3c664
jp z, asm_3c202
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
jp MainInBattleLoop
Func_3c741: ; 3c741 (f:4741)
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld c, a
- ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag
+ ld hl, wPartyAliveFlags ; clear fainted mon's alive flag
ld b, $0
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ predef FlagActionPredef
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 2, [hl] ; reset "attacking multiple times" flag
- ld a, [$d083]
+ ld a, [wd083]
bit 7, a ; skip sound flag (red bar (?))
jr z, .skipWaitForSound
ld a, $ff
- ld [$d083], a
+ ld [wd083], a
call WaitForSoundToFinish
.skipWaitForSound
- ld hl, $cd05
+ ld hl, wcd05
ld [hli], a
ld [hl], a
- ld [W_PLAYERMONSTATUS], a ; $d018
+ ld [wBattleMonStatus], a ; wBattleMonStatus
call ReadPlayerMonCurHPAndStatus
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50b
call ClearScreenArea
- FuncCoord 1, 10 ; $c469
- ld hl, Coord
- FuncCoord 1, 11 ; $c47d
- ld de, Coord
+ hlCoord 1, 10
+ deCoord 1, 11
call Func_3c893
ld a, $1
- ld [$cf0b], a
- ld a, [$ccf0]
+ ld [wcf0b], a
+ ld a, [wccf0]
and a
ret z
- ld a, [W_PLAYERMONID]
+ ld a, [wBattleMonSpecies]
call PlayCry
ld hl, PlayerMonFaintedText
jp PrintText
@@ -1095,30 +1079,29 @@ PlayerMonFaintedText: ; 3c796 (f:4796)
Func_3c79b: ; 3c79b (f:479b)
call Func_3ee94
call SaveScreenTilesToBuffer1
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
dec a
ret nz
ld hl, UseNextMonText
call PrintText
.asm_3c7ad
- FuncCoord 13, 9 ; $c461
- ld hl, Coord
+ hlCoord 13, 9
ld bc, $a0e
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [$d12e]
+ ld a, [wd12e]
cp $2
jr z, .asm_3c7c4
and a
ret
.asm_3c7c4
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_3c7ad
- ld hl, W_PARTYMON1_SPEED ; $d193
- ld de, W_ENEMYMONSPEED
+ ld hl, wPartyMon1Speed
+ ld de, wEnemyMonSpeed
jp Func_3cab9
UseNextMonText: ; 3c7d3 (f:47d3)
@@ -1127,7 +1110,7 @@ UseNextMonText: ; 3c7d3 (f:47d3)
Func_3c7d8: ; 3c7d8 (f:47d8)
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayPartyMenu
.asm_3c7e0
jr nc, .asm_3c7e7
@@ -1137,28 +1120,26 @@ Func_3c7d8: ; 3c7d8 (f:47d8)
.asm_3c7e7
call Func_3ca97
jr z, .asm_3c7e2
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3c7fa
inc a
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3d605
.asm_3c7fa
xor a
- ld [$cd6a], a
- call CleanLCD_OAM
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wcd6a], a
+ call ClearSprites
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld c, a
- ld hl, W_PLAYERMONSALIVEFLAGS
+ ld hl, wPartyAliveFlags
ld b, $1
push bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop bc
- ld hl, $ccf5
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wccf5
+ predef FlagActionPredef
call Func_3cba6
call GBPalWhiteOut
call Func_3ee5b
@@ -1166,7 +1147,7 @@ Func_3c7d8: ; 3c7d8 (f:47d8)
call GoPAL_SET_CF1C
call GBPalNormal
call Func_3cc91
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
ret
@@ -1174,10 +1155,10 @@ Func_3c7d8: ; 3c7d8 (f:47d8)
; 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: ; 3c837 (f:4837)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .notSony1Battle
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
cp $c8 + SONY1
jr nz, .notSony1Battle
ld hl, wTileMap ; sony 1 battle
@@ -1195,15 +1176,15 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)
ld b, $0
call GoPAL_SET
ld hl, PlayerBlackedOutText2
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .noLinkBattle
ld hl, LinkBattleLostText
.noLinkBattle
call PrintText
- ld a, [$d732]
+ ld a, [wd732]
res 5, a
- ld [$d732], a
+ ld [wd732], a
call ClearScreen
scf
ret
@@ -1221,10 +1202,10 @@ LinkBattleLostText: ; 3c88e (f:488e)
db "@"
Func_3c893: ; 3c893 (f:4893)
- ld a, [$d730]
+ ld a, [wd730]
push af
set 6, a
- ld [$d730], a
+ ld [wd730], a
ld b, $7
.asm_3c89e
push bc
@@ -1263,7 +1244,7 @@ Func_3c893: ; 3c893 (f:4893)
dec b
jr nz, .asm_3c89e
pop af
- ld [$d730], a
+ ld [wd730], a
ret
SevenSpacesText: ; 3c8d7 (f:48d7)
@@ -1310,49 +1291,46 @@ Func_3c8df: ; 3c8df (f:48df)
; XXX this needs cleaning up. it's what runs when a juggler switches pokemon
EnemySendOut: ; 3c90e (f:490e)
- ld hl,W_PLAYERMONSALIVEFLAGS
+ ld hl,wPartyAliveFlags
xor a
ld [hl],a
- ld a,[$CC2F]
+ ld a,[wPlayerMonNumber]
ld c,a
ld b,1
push bc
- ld a,$10
- call Predef
- ld hl,$CCF5
+ predef FlagActionPredef
+ ld hl,wccf5
xor a
ld [hl],a
pop bc
- ld a,$10
- call Predef
+ predef FlagActionPredef
Func_3c92a: ; 3c92a (f:492a)
xor a
- ld hl,$D065
+ ld hl,wd065
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
ld [hl],a
- ld [$D072],a
- ld [$CCEF],a
- ld [$CCF3],a
- ld hl,$CCF1
+ ld [W_ENEMYDISABLEDMOVE],a
+ ld [wccef],a
+ ld [wccf3],a
+ ld hl,wccf1
ld [hli],a
ld [hl],a
dec a
ld [wAICount],a
ld hl,W_PLAYERBATTSTATUS1
res 5,[hl]
- FuncCoord 18, 0 ; $c3b2
- ld hl,Coord
+ hlCoord 18, 0
ld a,8
call Func_3c8df
call Func_3ee94
call SaveScreenTilesToBuffer1
- ld a,[$D12B]
+ ld a,[W_ISLINKBATTLE]
cp 4
jr nz,.next
- ld a,[$CC3E]
+ ld a,[wcc3e]
sub 4
ld [wWhichPokemon],a
jr .next3
@@ -1360,14 +1338,14 @@ Func_3c92a: ; 3c92a (f:492a)
ld b,$FF
.next2
inc b
- ld a,[$CFE8]
+ ld a,[wEnemyMonPartyPos]
cp b
jr z,.next2
- ld hl,$D8A4
+ ld hl,wEnemyMon1
ld a,b
ld [wWhichPokemon],a
push bc
- ld bc,$2C
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
pop bc
inc hl
@@ -1378,59 +1356,58 @@ Func_3c92a: ; 3c92a (f:492a)
jr z,.next2
.next3
ld a,[wWhichPokemon]
- ld hl,$D8C5
- ld bc,$2C
+ ld hl,wEnemyMon1Level
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a,[hl]
- ld [$D127],a
+ ld [W_CURENEMYLVL],a
ld a,[wWhichPokemon]
inc a
- ld hl,$D89C
+ ld hl,wEnemyPartyCount
ld c,a
ld b,0
add hl,bc
ld a,[hl]
- ld [W_ENEMYMONID],a
- ld [$CF91],a
+ ld [wEnemyMonSpecies2],a
+ ld [wcf91],a
call Func_3eb01
- ld hl,$CFE6
+ ld hl,wEnemyMonHP
ld a,[hli]
- ld [$CCE3],a
+ ld [wcce3],a
ld a,[hl]
- ld [$CCE4],a
+ ld [wcce4],a
ld a,1
- ld [$CC26],a
- ld a,[$D11D]
+ ld [wCurrentMenuItem],a
+ ld a,[wd11d]
dec a
jr z,.next4
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
dec a
jr z,.next4
- ld a,[$D12B]
+ ld a,[W_ISLINKBATTLE]
cp 4
jr z,.next4
- ld a,[$D355]
+ ld a,[W_OPTIONS]
bit 6,a
jr nz,.next4
ld hl, TrainerAboutToUseText
call PrintText
- FuncCoord 0, 7 ; $c42c
- ld hl,Coord
+ hlCoord 0, 7
ld bc,$0801
ld a,$14
- ld [$D125],a
+ ld [wd125],a
call DisplayTextBoxID
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
and a
jr nz,.next4
ld a,2
- ld [$D07D],a
+ ld [wd07d],a
call DisplayPartyMenu
.next9
ld a,1
- ld [$CC26],a
+ ld [wCurrentMenuItem],a
jr c,.next7
- ld hl,$CC2F
+ ld hl,wPlayerMonNumber
ld a,[wWhichPokemon]
cp [hl]
jr nz,.next6
@@ -1443,13 +1420,13 @@ Func_3c92a: ; 3c92a (f:492a)
call Func_3ca97
jr z,.next8
xor a
- ld [$CC26],a
+ ld [wCurrentMenuItem],a
.next7
call GBPalWhiteOut
call Func_3ee5b
call LoadScreenTilesFromBuffer1
.next4
- call CleanLCD_OAM
+ call ClearSprites
ld hl,wTileMap
ld bc,$040B
call ClearScreenArea
@@ -1458,27 +1435,25 @@ Func_3c92a: ; 3c92a (f:492a)
call GBPalNormal
ld hl,TrainerSentOutText
call PrintText
- ld a,[W_ENEMYMONID]
- ld [$CF91],a
- ld [$D0B5],a
+ ld a,[wEnemyMonSpecies2]
+ ld [wcf91],a
+ ld [wd0b5],a
call GetMonHeader
- ld de,$9000
+ ld de,vFrontPic
call LoadMonFrontSprite
ld a,$CF
ld [$FFE1],a
- FuncCoord 15, 6 ; $c427
- ld hl,Coord
- ld a,2
- call Predef
- ld a,[W_ENEMYMONID]
+ hlCoord 15, 6
+ predef Func_3f073
+ ld a,[wEnemyMonSpecies2]
call PlayCry
call Func_3cdec
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
and a
ret nz
xor a
- ld [W_PLAYERMONSALIVEFLAGS],a
- ld [$CCF5],a
+ ld [wPartyAliveFlags],a
+ ld [wccf5],a
call SaveScreenTilesToBuffer1
jp Func_3d1ba
@@ -1492,12 +1467,12 @@ TrainerSentOutText: ; 3ca7e (f:4a7e)
; 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
-AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83)
- ld a, [W_NUMINPARTY] ; $d163
+AnyPartyAlive: ; 3ca83 (f:4a83)
+ ld a, [wPartyCount] ; wPartyCount
ld e, a
xor a
- ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1
+ ld hl, wPartyMon1HP ; wd16c
+ ld bc, wPartyMon2 - wPartyMon1 - 1
.partyMonsLoop
or [hl]
inc hl
@@ -1509,14 +1484,14 @@ AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83)
ret
Func_3ca97: ; 3ca97 (f:4a97)
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_HP ; $d16c
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1HP ; wd16c
ld bc, $2c
call AddNTimes
ld a, [hli]
or [hl]
ret nz
- ld a, [$d11d]
+ ld a, [wd11d]
and a
jr nz, .asm_3cab2
ld hl, NoWillText
@@ -1532,18 +1507,18 @@ NoWillText: ; 3cab4 (f:4ab4)
Func_3cab9: ; 3cab9 (f:4ab9)
call IsGhostBattle
jp z, .asm_3cb5c
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jp z, .asm_3cb5c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jp z, .asm_3cb5c
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3cb4c
- ld a, [$d120]
+ ld a, [wd120]
inc a
- ld [$d120], a
+ ld [wd120], a
ld a, [hli]
ld [$ff97], a
ld a, [hl]
@@ -1583,7 +1558,7 @@ Func_3cab9: ; 3cab9 (f:4ab9)
ld a, [$ff97]
and a
jr nz, .asm_3cb5c
- ld a, [$d120]
+ ld a, [wd120]
ld c, a
.asm_3cb2b
dec c
@@ -1595,13 +1570,13 @@ Func_3cab9: ; 3cab9 (f:4ab9)
jr c, .asm_3cb5c
jr .asm_3cb2b
.asm_3cb39
- call GenRandomInBattle
+ call BattleRandom
ld b, a
ld a, [$ff98]
cp b
jr nc, .asm_3cb5c
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
ld hl, CantEscapeText
jr .asm_3cb4f
.asm_3cb4c
@@ -1609,29 +1584,29 @@ Func_3cab9: ; 3cab9 (f:4ab9)
.asm_3cb4f
call PrintText
ld a, $1
- ld [$d11f], a
+ ld [wd11f], a
call SaveScreenTilesToBuffer1
and a
ret
.asm_3cb5c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld a, $2
jr nz, .asm_3cb81
call SaveScreenTilesToBuffer1
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
ld a, $f
- ld [wPlayerMoveListIndex], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
call Func_3d605
call LoadScreenTilesFromBuffer1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
ld a, $2
jr z, .asm_3cb81
dec a
.asm_3cb81
- ld [$cf0b], a
+ ld [wcf0b], a
ld a, (SFX_08_44 - SFX_Headers_08) / 3
call PlaySoundWaitForCurrent
ld hl, GotAwayText
@@ -1654,42 +1629,42 @@ GotAwayText: ; 3cba1 (f:4ba1)
db "@"
Func_3cba6: ; 3cba6 (f:4ba6)
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
call AddNTimes
- ld de, W_PLAYERMONID
+ ld de, wBattleMonSpecies
ld bc, $c
call CopyData
ld bc, $f
add hl, bc
- ld de, W_PLAYERMONIVS
+ ld de, wBattleMonDVs
ld bc, $2
call CopyData
- ld de, W_PLAYERMONPP ; $d02d
+ ld de, wBattleMonPP ; wBattleMonPP
ld bc, $4
call CopyData
- ld de, W_PLAYERMONLEVEL ; $d022
+ ld de, wBattleMonLevel ; wBattleMonLevel
ld bc, $b
call CopyData
- ld a, [$cfd9]
- ld [$d0b5], a
+ ld a, [wBattleMonSpecies2]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
call SkipFixedLengthTextEntries
- ld de, W_PLAYERMONNAME
+ ld de, wBattleMonNick
ld bc, $b
call CopyData
- ld hl, W_PLAYERMONLEVEL ; $d022
- ld de, $cd0f
+ ld hl, wBattleMonLevel ; wBattleMonLevel
+ ld de, wcd0f
ld bc, $b
call CopyData
call Func_3ed1a
call Func_3ee19
ld a, $7
ld b, $8
- ld hl, wPlayerMonAttackMod ; $cd1a
+ ld hl, wPlayerMonAttackMod ; wcd1a
.asm_3cc0e
ld [hli], a
dec b
@@ -1697,40 +1672,40 @@ Func_3cba6: ; 3cba6 (f:4ba6)
ret
Func_3cc13: ; 3cc13 (f:4c13)
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
- ld hl, wEnemyMons ; $d8a4
+ ld hl, wEnemyMons ; wEnemyMon1Species
call AddNTimes
- ld de, $cfe5
+ ld de, wEnemyMonSpecies
ld bc, $c
call CopyData
ld bc, $f
add hl, bc
- ld de, $cff1
+ ld de, wEnemyMonDVs
ld bc, $2
call CopyData
- ld de, W_ENEMYMONPP ; $cffe
+ ld de, wEnemyMonPP ; wcffe
ld bc, $4
call CopyData
- ld de, W_ENEMYMONLEVEL ; $cff3
+ ld de, wEnemyMonLevel ; wEnemyMonLevel
ld bc, $b
call CopyData
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, $d9ee
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wEnemyMonNicks
+ ld a, [wWhichPokemon] ; wWhichPokemon
call SkipFixedLengthTextEntries
- ld de, W_ENEMYMONNAME
+ ld de, wEnemyMonNick
ld bc, $b
call CopyData
- ld hl, W_ENEMYMONLEVEL ; $cff3
- ld de, $cd23
+ ld hl, wEnemyMonLevel ; wEnemyMonLevel
+ ld de, wcd23
ld bc, $b
call CopyData
call Func_3ed1e
ld hl, W_MONHBASESTATS
- ld de, $d002
+ ld de, wd002
ld b, $5
.asm_3cc79
ld a, [hli]
@@ -1740,18 +1715,18 @@ Func_3cc13: ; 3cc13 (f:4c13)
jr nz, .asm_3cc79
ld a, $7
ld b, $8
- ld hl, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonStatMods ; wcd2e
.asm_3cc86
ld [hli], a
dec b
jr nz, .asm_3cc86
- ld a, [wWhichPokemon] ; $cf92
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wEnemyMonPartyPos], a
ret
Func_3cc91: ; 3cc91 (f:4c91)
callab SendOutMon
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
jp z, Func_3cca4
@@ -1759,91 +1734,81 @@ Func_3cc91: ; 3cc91 (f:4c91)
Func_3cca4: ; 3cca4 (f:4ca4)
call Func_3cd60
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
xor a
ld [$ffe1], a
- ld hl, $cc2d
+ ld hl, wcc2d
ld [hli], a
ld [hl], a
- ld [$cc5b], a
- ld [$d05b], a
- ld [W_PLAYERMOVENUM], a ; $cfd2
- ld hl, $ccf1
+ ld [wcc5b], a
+ ld [wd05b], a
+ ld [W_PLAYERMOVENUM], a ; wcfd2
+ ld hl, wccf1
ld [hli], a
ld [hl], a
- ld hl, $d060
+ ld hl, wd060
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_PLAYERDISABLEDMOVE], a ; $d06d
- ld [$ccee], a
- ld [$ccf7], a
+ ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE
+ ld [wccee], a
+ ld [wccf7], a
ld b, $1
call GoPAL_SET
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 5, [hl]
ld a, $1
ld [H_WHOSETURN], a ; $fff3
ld a, POOF_ANIM
call PlayMoveAnimation
- FuncCoord 4, 11 ; $c480
- ld hl, Coord
- ld a, $2
- call Predef ; indirect jump to Func_3f073 (3f073 (f:7073))
- ld a, [$cf91]
+ hlCoord 4, 11
+ predef Func_3f073
+ ld a, [wcf91]
call PlayCry
call Func_3ee94
jp SaveScreenTilesToBuffer1
Func_3ccfa: ; 3ccfa (f:4cfa)
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $707
call ClearScreenArea
- FuncCoord 3, 7 ; $c42f
- ld hl, Coord
+ hlCoord 3, 7
ld bc, $505
xor a
- ld [$cd6c], a
+ ld [wcd6c], a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $4
call DelayFrames
call Func_3cd3a
- FuncCoord 4, 9 ; $c458
- ld hl, Coord
+ hlCoord 4, 9
ld bc, $303
ld a, $1
- ld [$cd6c], a
+ ld [wcd6c], a
xor a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
call Delay3
call Func_3cd3a
ld a, $4c
- FuncCoord 5, 11 ; $c481
- ld [Coord], a
+ Coorda 5, 11
Func_3cd3a: ; 3cd3a (f:4d3a)
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $707
jp ClearScreenArea
-; reads player's current mon's HP into W_PLAYERMONCURHP
+; reads player's current mon's HP into wBattleMonHP
ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43)
- ld a, [wPlayerMonNumber] ; $cc2f
- ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+ ld hl, wPartyMon1HP ; wd16c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld d, h
ld e, l
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status
jp CopyData
@@ -1854,67 +1819,61 @@ Func_3cd5a: ; 3cd5a (f:4d5a)
Func_3cd60: ; 3cd60 (f:4d60)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50b
call ClearScreenArea
callab PlacePlayerHUDTiles
- FuncCoord 18, 9 ; $c466
- ld hl, Coord
+ hlCoord 18, 9
ld [hl], $73
- ld de, W_PLAYERMONNAME
- FuncCoord 10, 7 ; $c436
- ld hl, Coord
+ ld de, wBattleMonNick
+ hlCoord 10, 7
call Func_3ce9c
call PlaceString
- ld hl, W_PLAYERMONID
- ld de, $cf98
+ ld hl, wBattleMonSpecies
+ ld de, wcf98
ld bc, $c
call CopyData
- ld hl, W_PLAYERMONLEVEL ; $d022
- ld de, $cfb9
+ ld hl, wBattleMonLevel ; wBattleMonLevel
+ ld de, wcfb9
ld bc, $b
call CopyData
- FuncCoord 14, 8 ; $c44e
- ld hl, Coord
+ hlCoord 14, 8
push hl
inc hl
- ld de, $cf9c
+ ld de, wcf9c
call PrintStatusConditionNotFainted
pop hl
jr nz, .asm_3cdae
call PrintLevel
.asm_3cdae
- ld a, [$cf98]
- ld [$cf91], a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
- ld a, $5f
- call Predef ; indirect jump to Func_128ef (128ef (4:68ef))
+ ld a, [wcf98]
+ ld [wcf91], a
+ hlCoord 10, 9
+ predef DrawHP
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $cf1d
+ ld hl, wcf1d
call GetBattleHealthBarColor
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr z, .asm_3cdd9
- ld a, [$ccf6]
+ ld a, [wccf6]
and a
ret nz
- ld a, [$cf1d]
+ ld a, [wcf1d]
cp $2
jr z, .asm_3cde6
.asm_3cdd9
- ld hl, $d083
+ ld hl, wd083
bit 7, [hl]
ld [hl], $0
ret z
xor a
- ld [$c02a], a
+ ld [wc02a], a
ret
.asm_3cde6
- ld hl, $d083
+ ld hl, wd083
set 7, [hl]
ret
@@ -1925,24 +1884,22 @@ Func_3cdec: ; 3cdec (f:4dec)
ld bc, $40c
call ClearScreenArea
callab PlaceEnemyHUDTiles
- ld de, W_ENEMYMONNAME
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ ld de, wEnemyMonNick
+ hlCoord 1, 0
call Func_3ce9c
call PlaceString
- FuncCoord 4, 1 ; $c3b8
- ld hl, Coord
+ hlCoord 4, 1
push hl
inc hl
- ld de, W_ENEMYMONSTATUS ; $cfe9
+ ld de, wEnemyMonStatus ; wcfe9
call PrintStatusConditionNotFainted
pop hl
jr nz, .asm_3ce23
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [$cfb9], a
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wcfb9], a
call PrintLevel
.asm_3ce23
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
ld [$ff97], a
ld a, [hld]
@@ -1959,7 +1916,7 @@ Func_3cdec: ; 3cdec (f:4dec)
ld a, $30
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
call Multiply
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [hli]
ld b, a
ld a, [hl]
@@ -1999,13 +1956,12 @@ Func_3cdec: ; 3cdec (f:4dec)
Func_3ce7f: ; 3ce7f (f:4e7f)
xor a
- ld [wListMenuID], a ; $cf94
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ ld [wListMenuID], a ; wListMenuID
+ hlCoord 2, 2
call DrawHPBar
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $cf1e
+ ld hl, wcf1e
GetBattleHealthBarColor: ; 3ce90 (f:4e90)
ld b, [hl]
@@ -2039,27 +1995,27 @@ Func_3ce9c: ; 3ce9c (f:4e9c)
InitBattleMenu: ; 3ceb3 (f:4eb3)
call LoadScreenTilesFromBuffer1 ; restore saved screen
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jr nz, .nonstandardbattle
call Func_3cd5a ; redraw names and HP bars?
call Func_3ee94
call SaveScreenTilesToBuffer1
.nonstandardbattle
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2 ; safari
ld a, $b ; safari menu id
jr nz, .menuselected
ld a, $1b ; regular menu id
.menuselected
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
jp nz, RegularBattleMenu ; regular battle
; the following happens for the old man tutorial
- ld hl, W_PLAYERNAME ; $d158
- ld de, W_GRASSRATE ; $d887
+ ld hl, wPlayerName ; wd158
+ ld de, W_GRASSRATE ; W_GRASSRATE
ld bc, $b
call CopyData ; temporarily save the player name in unused space,
; which is supposed to get overwritten when entering a
@@ -2067,18 +2023,16 @@ InitBattleMenu: ; 3ceb3 (f:4eb3)
; may not get overwritten (cinnabar) and the infamous
; missingno. glitch can show up.
ld hl, OldManName ; $4f12
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
; the following simulates the keystrokes by drawing menus on screen
- FuncCoord 9, 14 ; $c4c1
- ld hl, Coord
+ hlCoord 9, 14
ld [hl], "▶"
ld c, $50
call DelayFrames
ld [hl], $7f
- FuncCoord 9, 16 ; $c4e9
- ld hl, Coord
+ hlCoord 9, 16
ld [hl], "▶"
ld c, $32
call DelayFrames
@@ -2090,38 +2044,33 @@ OldManName: ; 3cf12 (f:4f12)
db "OLD MAN@"
RegularBattleMenu: ; 3cf1a (f:4f1a)
- ld a, [$cc2d]
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld a, [wcc2d]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
sub $2
jr c, .leftcolumn
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
jr .rightcolumn
.leftcolumn
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
ld a, " "
jr z, .safaribattle
- FuncCoord 15, 14 ; $c4c7
- ld [Coord], a
- FuncCoord 15, 16 ; $c4ef
- ld [Coord], a
+ Coorda 15, 14
+ Coorda 15, 16
ld b, $9
jr .notsafari
.safaribattle
- FuncCoord 13, 14 ; $c4c5
- ld [Coord], a
- FuncCoord 13, 16 ; $c4ed
- ld [Coord], a
- FuncCoord 7, 14 ; $c4bf
- ld hl, Coord
- ld de, W_NUMSAFARIBALLS ; $da47
+ Coorda 13, 14
+ Coorda 13, 16
+ hlCoord 7, 14
+ ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
ld bc, $102
call PrintNumber
ld b, $1
.notsafari
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $e
ld [hli], a
ld a, b
@@ -2136,29 +2085,24 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
jr nz, .rightcolumn
jr .selection
.rightcolumn
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
ld a, " "
jr z, .safarirightcolumn
- FuncCoord 9, 14 ; $c4c1
- ld [Coord], a
- FuncCoord 9, 16 ; $c4e9
- ld [Coord], a
+ Coorda 9, 14
+ Coorda 9, 16
ld b, $f
jr .notsafarirightcolumn
.safarirightcolumn
- FuncCoord 1, 14 ; $c4b9
- ld [Coord], a
- FuncCoord 1, 16 ; $c4e1
- ld [Coord], a
- FuncCoord 7, 14 ; $c4bf
- ld hl, Coord
- ld de, W_NUMSAFARIBALLS ; $da47
+ Coorda 1, 14
+ Coorda 1, 16
+ hlCoord 7, 14
+ ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
ld bc, $102
call PrintNumber
ld b, $d
.notsafarirightcolumn
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $e
ld [hli], a
ld a, b
@@ -2172,15 +2116,15 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
call HandleMenuInput
bit 5, a
jr nz, .leftcolumn
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add $2 ; if we're in the right column, the actual id is +2
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
.selection
call PlaceUnfilledArrowMenuCursor
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2d], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2d], a
jr z, .asm_3cfd0
cp $1
jr nz, .asm_3cfcb
@@ -2194,21 +2138,21 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
and a
jr nz, Func_3cfe8
; first option was selected...
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .safari1
xor a
- ld [$d120], a
+ ld [wd120], a
jp LoadScreenTilesFromBuffer1 ; restore saved screen and return??
.safari1 ; safari first option??
ld a, SAFARI_BALL
- ld [$cf91], a
+ ld [wcf91], a
jr asm_3d05f
Func_3cfe8: ; 3cfe8 (f:4fe8)
cp $2
jp nz, Func_3d0ca
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3cffd
ld hl, ItemsCantBeUsedHereText
@@ -2216,83 +2160,83 @@ Func_3cfe8: ; 3cfe8 (f:4fe8)
jp InitBattleMenu
.asm_3cffd ; bag?
call SaveScreenTilesToBuffer2 ; copy bg?
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr nz, asm_3d00e
ld a, SAFARI_BAIT
- ld [$cf91], a
+ ld [wcf91], a
jr asm_3d05f
asm_3d00e: ; 3d00e (f:500e)
call LoadScreenTilesFromBuffer1
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jr nz, .asm_3d01a
call Func_3cd5a
.asm_3d01a
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
jr nz, Func_3d031
ld hl, OldManItemList
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
jr Func_3d03c
OldManItemList: ; 3d02d (f:502d)
db $01, POKE_BALL, 50, $ff
Func_3d031
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
Func_3d03c
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
- ld a, [$cc2c]
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wListMenuID], a ; wListMenuID
+ ld a, [wcc2c]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
call DisplayListMenuID
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2c], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2c], a
ld a, $0
- ld [$cc37], a
- ld [$cc35], a
+ ld [wcc37], a
+ ld [wcc35], a
jp c, InitBattleMenu
asm_3d05f: ; 3d05f (f:505f)
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
call GetItemName
call CopyStringToCF4B ; copy name
xor a
- ld [$d152], a
+ ld [wd152], a
call UseItem
call Func_3ee5b
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld a, [W_BATTLETYPE] ; $d05a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .asm_3d09c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jp z, asm_3d00e
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
bit 5, a
jr z, .asm_3d09c
- ld hl, $d06a
+ ld hl, wd06a
dec [hl]
jr nz, .asm_3d09c
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 5, [hl]
.asm_3d09c
- ld a, [$d11c]
+ ld a, [wd11c]
and a
jr nz, .asm_3d0b7
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .asm_3d0b2
call LoadScreenTilesFromBuffer1
@@ -2305,9 +2249,9 @@ asm_3d05f: ; 3d05f (f:505f)
.asm_3d0b7
call GBPalNormal
xor a
- ld [$d11c], a
+ ld [wd11c], a
ld a, $2
- ld [$cf0b], a
+ ld [wcf0b], a
scf
ret
@@ -2319,23 +2263,23 @@ Func_3d0ca: ; 3d0ca (f:50ca)
dec a
jp nz, Func_3d1fa
call SaveScreenTilesToBuffer2
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr nz, Func_3d0e0
ld a, SAFARI_ROCK
- ld [$cf91], a
+ ld [wcf91], a
jp asm_3d05f
Func_3d0e0: ; 3d0e0 (f:50e0)
call LoadScreenTilesFromBuffer1
xor a
- ld [$d07d], a
- ld [$cc35], a
+ ld [wd07d], a
+ ld [wcc35], a
call DisplayPartyMenu
asm_3d0ed: ; 3d0ed (f:50ed)
jp nc, Func_3d119
asm_3d0f0: ; 3d0f0 (f:50f0)
- call CleanLCD_OAM
+ call ClearSprites
call GBPalWhiteOut
call Func_3ee5b
call LoadScreenTilesFromBuffer2
@@ -2344,21 +2288,20 @@ asm_3d0f0: ; 3d0f0 (f:50f0)
jp InitBattleMenu
Func_3d105: ; 3d105 (f:5105)
- FuncCoord 11, 11 ; $c487
- ld hl, Coord
+ hlCoord 11, 11
ld bc, $81
ld a, $7f
call FillMemory
xor a
- ld [$d07d], a
+ ld [wd07d], a
call GoBackToPartyMenu
jr asm_3d0ed
Func_3d119: ; 3d119 (f:5119)
ld a, $c
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $c
ld [hli], a
ld [hli], a
@@ -2375,32 +2318,30 @@ Func_3d119: ; 3d119 (f:5119)
bit 1, a
jr nz, Func_3d105
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, asm_3d0f0
and a
jr z, .asm_3d18a
xor a
- ld [$cc49], a
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- call CleanLCD_OAM
- ld a, $36
- call Predef ; indirect jump to StatusScreen (12953 (4:6953))
- ld a, $37
- call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57))
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld [wcc49], a
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
+ call ClearSprites
+ predef StatusScreen
+ predef StatusScreen2
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a
ld hl, AnimationSubstitute
jr nz, .asm_3d182
- ld a, [$ccf3]
+ ld a, [wccf3]
and a
ld hl, AnimationMinimizeMon
jr nz, .asm_3d182
- ld a, [$cfe5]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wcf91], a
+ ld [wd0b5], a
call GetMonHeader
- ld de, $9000
+ ld de, vFrontPic
call LoadMonFrontSprite
jr .asm_3d187
.asm_3d182
@@ -2409,9 +2350,9 @@ Func_3d119: ; 3d119 (f:5119)
.asm_3d187
jp Func_3d0e0
.asm_3d18a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld d, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
cp d
jr nz, .asm_3d19d
ld hl, AlreadyOutText
@@ -2421,9 +2362,9 @@ Func_3d119: ; 3d119 (f:5119)
call Func_3ca97
jp z, Func_3d105
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call GBPalWhiteOut
- call CleanLCD_OAM
+ call ClearSprites
call Func_3ee5b
call LoadScreenTilesFromBuffer1
call GoPAL_SET_CF1C
@@ -2434,23 +2375,21 @@ Func_3d1ba: ; 3d1ba (f:51ba)
ld c, $32
call DelayFrames
call Func_3ccfa
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld c, a
ld b, $1
push bc
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wPartyAliveFlags
+ predef FlagActionPredef
pop bc
- ld hl, $ccf5
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wccf5
+ predef FlagActionPredef
call Func_3cba6
call Func_3cc91
call SaveScreenTilesToBuffer1
ld a, $2
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
and a
ret
@@ -2461,14 +2400,14 @@ AlreadyOutText: ; 3d1f5 (f:51f5)
Func_3d1fa: ; 3d1fa (f:51fa)
call LoadScreenTilesFromBuffer1
ld a, $3
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, W_PLAYERMONSPEED
- ld de, W_ENEMYMONSPEED
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, wBattleMonSpeed
+ ld de, wEnemyMonSpeed
call Func_3cab9
ld a, $0
- ld [$d11f], a
+ ld [wd11f], a
ret c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
ret nz
jp InitBattleMenu
@@ -2482,14 +2421,14 @@ MoveSelectionMenu: ; 3d219 (f:5219)
jr .regularmenu
.loadmoves
- ld de, $d0dc
+ ld de, wd0dc
ld bc, $4
call CopyData
callab Func_39b87
ret
.writemoves
- ld de, $d0e1
+ ld de, wd0e1
ld a, [$fff6]
set 2, a
ld [$fff6], a
@@ -2502,59 +2441,51 @@ MoveSelectionMenu: ; 3d219 (f:5219)
.regularmenu
call Func_3d3f5
ret z
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
call .loadmoves
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld b, $4
ld c, $e
di
call TextBoxBorder
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld [hl], $7a
- FuncCoord 10, 12 ; $c49a
- ld hl, Coord
+ hlCoord 10, 12
ld [hl], $7e
ei
- FuncCoord 6, 13 ; $c4aa
- ld hl, Coord
+ hlCoord 6, 13
call .writemoves
ld b, $5
ld a, $c
jr .menuset
.mimicmenu
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
call .loadmoves
- FuncCoord 0, 7 ; $c42c
- ld hl, Coord
+ hlCoord 0, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ hlCoord 2, 8
call .writemoves
ld b, $1
ld a, $7
jr .menuset
.relearnmenu
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_MOVE1 ; $d173
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
ld bc, $2c
call AddNTimes
call .loadmoves
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
+ hlCoord 6, 8
call .writemoves
ld b, $5
ld a, $7
.menuset
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld [hli], a
ld a, b
ld [hli], a ; wTopMenuItemX
@@ -2563,12 +2494,12 @@ MoveSelectionMenu: ; 3d219 (f:5219)
jr z, .selectedmoveknown
ld a, $1
jr nc, .selectedmoveknown
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
inc a
.selectedmoveknown
ld [hli], a ; wCurrentMenuItem
inc hl ; wTileBehindCursor untouched
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
inc a
ld [hli], a ; wMaxMenuItem
@@ -2579,7 +2510,7 @@ MoveSelectionMenu: ; 3d219 (f:5219)
dec a
ld b, $c3
jr z, .matchedkeyspicked
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .matchedkeyspicked
ld a, [W_FLAGS_D733]
@@ -2593,7 +2524,7 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ld a, [wMoveMenuType]
cp $1
jr z, .movelistindex1
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
inc a
.movelistindex1
ld [hl], a ; wLastMenuItem
@@ -2604,8 +2535,7 @@ Func_3d2fe: ; 3d2fe (f:52fe)
jr z, .battleselect
dec a
jr nz, .select
- FuncCoord 1, 14 ; $c4b9
- ld hl, Coord
+ hlCoord 1, 14
ld de, WhichTechniqueString ; $53b8
call PlaceString
jr .select
@@ -2614,11 +2544,10 @@ Func_3d2fe: ; 3d2fe (f:52fe)
bit 0, a
jr nz, .select
call Func_3d4b6
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr z, .select
- FuncCoord 5, 13 ; $c4a9
- ld hl, Coord
+ hlCoord 5, 13
dec a
ld bc, $14
call AddNTimes
@@ -2638,10 +2567,10 @@ Func_3d2fe: ; 3d2fe (f:52fe)
bit 1, a ; B, but was it reset above?
push af
xor a
- ld [$cc35], a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld [wcc35], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld b, a
ld a, [wMoveMenuType]
dec a ; if not mimic
@@ -2651,38 +2580,38 @@ Func_3d2fe: ; 3d2fe (f:52fe)
.nob
dec a
ld a, b
- ld [wPlayerMoveListIndex], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
jr nz, .moveselected
pop af
ret
.moveselected
pop af
ret nz
- ld hl, W_PLAYERMONPP ; $d02d
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wBattleMonPP ; wBattleMonPP
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
and $3f
jr z, .nopp
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
swap a
and $f
dec a
cp c
jr z, .disabled
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 3, a ; transformed
jr nz, .dummy ; game freak derp
.dummy
- ld a, [wCurrentMenuItem] ; $cc26
- ld hl, W_PLAYERMONMOVES
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld hl, wBattleMonMoves
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
xor a
ret
.disabled
@@ -2707,34 +2636,34 @@ WhichTechniqueString: ; 3d3b8 (f:53b8)
db "WHICH TECHNIQUE?@"
Func_3d3c9: ; 3d3c9 (f:53c9)
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jp nz, Func_3d2fe
call EraseMenuCursor
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jp Func_3d2fe
Func_3d3dd: ; 3d3dd (f:53dd)
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld b, a
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
inc a
cp b
jp nz, Func_3d2fe
call EraseMenuCursor
ld a, $1
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jp Func_3d2fe
Func_3d3f5: ; 3d3f5 (f:53f5)
ld a, $a5
- ld [wPlayerSelectedMove], a ; $ccdc
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
and a
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
jr nz, .asm_3d40e
ld a, [hli]
or [hl]
@@ -2776,43 +2705,43 @@ NoMovesLeftText: ; 3d430 (f:5430)
db "@"
Func_3d435: ; 3d435 (f:5435)
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr z, asm_3d4ad
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
call Func_3d493
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
call Func_3d493
- ld hl, W_PLAYERDISABLEDMOVE ; $d06d
+ ld hl, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE
ld a, [hl]
swap a
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp b
jr nz, .asm_3d463
ld a, [hl]
and $f
ld b, a
- ld a, [$cc35]
+ ld a, [wcc35]
swap a
add b
ld [hl], a
jr .asm_3d474
.asm_3d463
- ld a, [$cc35]
+ ld a, [wcc35]
cp b
jr nz, .asm_3d474
ld a, [hl]
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
swap a
add b
ld [hl], a
.asm_3d474
- ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
push hl
@@ -2822,12 +2751,12 @@ Func_3d435: ; 3d435 (f:5435)
add hl, bc
call Func_3d493
xor a
- ld [$cc35], a
+ ld [wcc35], a
jp MoveSelectionMenu
Func_3d493: ; 3d493 (f:5493)
push hl
- ld a, [$cc35]
+ ld a, [wcc35]
dec a
ld c, a
ld b, $0
@@ -2835,7 +2764,7 @@ Func_3d493: ; 3d493 (f:5493)
ld d, h
ld e, l
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
ld c, a
ld b, $0
@@ -2847,83 +2776,74 @@ Func_3d493: ; 3d493 (f:5493)
ld [de], a
ret
asm_3d4ad: ; 3d4ad (f:54ad)
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc35], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc35], a
jp MoveSelectionMenu
Func_3d4b6: ; 3d4b6 (f:54b6)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 0, 8 ; $c440
- ld hl, Coord
+ hlCoord 0, 8
ld b, $3
ld c, $9
call TextBoxBorder
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
and a
jr z, .asm_3d4df
swap a
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp b
jr nz, .asm_3d4df
- FuncCoord 1, 10 ; $c469
- ld hl, Coord
+ hlCoord 1, 10
ld de, DisabledText
call PlaceString
jr .asm_3d54e
.asm_3d4df
- ld hl, wCurrentMenuItem ; $cc26
+ ld hl, wCurrentMenuItem ; wCurrentMenuItem
dec [hl]
xor a
ld [H_WHOSETURN], a ; $fff3
- ld hl, W_PLAYERMONMOVES
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wBattleMonMoves
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
- ld a, [wPlayerMonNumber] ; $cc2f
- ld [wWhichPokemon], a ; $cf92
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+ ld [wWhichPokemon], a ; wWhichPokemon
ld a, $4
- ld [$cc49], a
+ ld [wcc49], a
callab GetMaxPP
- ld hl, wCurrentMenuItem ; $cc26
+ ld hl, wCurrentMenuItem ; wCurrentMenuItem
ld c, [hl]
inc [hl]
ld b, $0
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
add hl, bc
ld a, [hl]
and $3f
- ld [$cd6d], a
- FuncCoord 1, 9 ; $c455
- ld hl, Coord
+ ld [wcd6d], a
+ hlCoord 1, 9
ld de, TypeText
call PlaceString
- FuncCoord 7, 11 ; $c483
- ld hl, Coord
+ hlCoord 7, 11
ld [hl], "/"
- FuncCoord 5, 9 ; $c459
- ld hl, Coord
+ hlCoord 5, 9
ld [hl], "/"
- FuncCoord 5, 11 ; $c481
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 5, 11
+ ld de, wcd6d
ld bc, $102
call PrintNumber
- FuncCoord 8, 11 ; $c484
- ld hl, Coord
- ld de, $d11e
+ hlCoord 8, 11
+ ld de, wd11e
ld bc, $102
call PrintNumber
call GetCurrentMove
- FuncCoord 2, 10 ; $c46a
- ld hl, Coord
- ld a, $5d
- call Predef ; indirect jump to Func_27d98 (27d98 (9:7d98))
+ hlCoord 2, 10
+ predef Func_27d98
.asm_3d54e
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -2942,16 +2862,16 @@ SelectEnemyMove: ; 3d564 (f:5564)
call SaveScreenTilesToBuffer1
call Func_3d605
call LoadScreenTilesFromBuffer1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $e
jp z, .asm_3d601
cp $d
jr z, .unableToMove
cp $4
ret nc
- ld [$cce2], a
+ ld [wEnemyMoveListIndex], a
ld c, a
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld b, $0
add hl, bc
ld a, [hl]
@@ -2964,7 +2884,7 @@ SelectEnemyMove: ; 3d564 (f:5564)
ld a, [hl]
and $12 ; using multi-turn move or bide
ret nz
- ld a, [W_ENEMYMONSTATUS]
+ ld a, [wEnemyMonStatus]
and SLP | 1 << FRZ ; sleeping or frozen
ret nz
ld a, [W_ENEMYBATTSTATUS1]
@@ -2977,7 +2897,7 @@ SelectEnemyMove: ; 3d564 (f:5564)
ld a, $ff
jr .done
.notCaughtInWrap
- ld hl, W_ENEMYMONMOVES+1 ; 2nd enemy move
+ ld hl, wEnemyMonMoves+1 ; 2nd enemy move
ld a, [hld]
and a
jr nz, .atLeastTwoMovesAvailable
@@ -2992,7 +2912,7 @@ SelectEnemyMove: ; 3d564 (f:5564)
callab AIEnemyTrainerChooseMoves
.chooseRandomMove
push hl
- call GenRandomInBattle ; get random
+ call BattleRandom
ld b, $1
cp $3f ; select move 1 in [0,3e] (63/256 chance)
jr c, .moveChosen
@@ -3028,35 +2948,35 @@ SelectEnemyMove: ; 3d564 (f:5564)
Func_3d605: ; 3d605 (f:5605)
ld a, $ff
- ld [$cc3e], a
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld [wcc3e], a
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
cp $f
jr z, .asm_3d630
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr nz, .asm_3d629
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
cp $a5
ld b, $e
jr z, .asm_3d62f
dec b
inc a
jr z, .asm_3d62f
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
jr .asm_3d630
.asm_3d629
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
add $4
ld b, a
.asm_3d62f
ld a, b
.asm_3d630
- ld [$cc42], a
+ ld [wcc42], a
callab PrintWaitingText
.asm_3d63b
call Func_22c3
call DelayFrame
- ld a, [$cc3e]
+ ld a, [wcc3e]
inc a
jr z, .asm_3d63b
ld b, $a
@@ -3076,16 +2996,16 @@ Func_3d605: ; 3d605 (f:5605)
Func_3d65e: ; 3d65e (f:565e)
xor a
ld [H_WHOSETURN], a ; $fff3
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
inc a
jp z, Func_3d80a
xor a
- ld [W_MOVEMISSED], a ; $d05f
- ld [$cced], a
- ld [$ccf4], a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [wcced], a
+ ld [wccf4], a
ld a, $a
- ld [$d05b], a
- ld a, [$cd6a]
+ ld [wd05b], a
+ ld a, [wcd6a]
and a
jp nz, Func_3d80a
call PrintGhostText
@@ -3095,14 +3015,14 @@ Func_3d65e: ; 3d65e (f:565e)
jp [hl]
.asm_3d68a
call GetCurrentMove
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
bit 4, [hl]
jr nz, asm_3d6a9
call Func_3dc88
jp z, Func_3d80a
Func_3d69a: ; 3d69a (f:569a)
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
cp CHARGE_EFFECT
jp z, Func_3f132
cp FLY_EFFECT
@@ -3117,7 +3037,7 @@ asm_3d6a9: ; 3d6a9 (f:56a9)
asm_3d6b0: ; 3d6b0 (f:56b0)
call PrintMonName1Text
ld hl,DecrementPP
- ld de,$CCDC ; pointer to the move just used
+ ld de,wPlayerSelectedMove ; pointer to the move just used
ld b,BANK(DecrementPP)
call Bankswitch
ld a,[W_PLAYERMOVEEFFECT] ; effect of the move just used
@@ -3168,7 +3088,7 @@ asm_3d71e
ld b,BANK(Func_79747)
call nz,Bankswitch
pop af
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,[W_PLAYERMOVENUM]
call PlayMoveAnimation
call Func_3eed3
@@ -3190,7 +3110,7 @@ asm_3d74b
jr asm_3d766
.next5
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
asm_3d766
@@ -3200,7 +3120,7 @@ asm_3d766
call MirrorMoveCopyMove
jp z,Func_3d80a
xor a
- ld [$CCED],a
+ ld [wcced],a
jp Func_3d69a
.next6
cp a,METRONOME_EFFECT
@@ -3226,14 +3146,14 @@ asm_3d766
call Func_3dc5c
callab DisplayEffectiveness
ld a,1
- ld [$CCF4],a
+ ld [wccf4],a
.next9
ld a,[W_PLAYERMOVEEFFECT]
ld hl,EffectsArray4
ld de,1
call IsInArray
call c,Func_3f132
- ld hl,$CFE6
+ ld hl,wEnemyMonHP
ld a,[hli]
ld b,[hl]
or b
@@ -3243,9 +3163,9 @@ asm_3d766
ld hl,W_PLAYERBATTSTATUS1
bit 2,[hl]
jr z,.next10 ; 57EF
- ld a,[$D06A]
+ ld a,[wd06a]
dec a
- ld [$D06A],a
+ ld [wd06a],a
jp nz,asm_3d714
res 2,[hl]
@@ -3269,7 +3189,7 @@ MultiHitText: ; 3d805 (f:5805)
Func_3d80a: ; 3d80a (f:580a)
xor a
- ld [$CD6A],a
+ ld [wcd6a],a
ld b,1
ret
@@ -3280,7 +3200,7 @@ PrintGhostText: ; 3d811 (f:5811)
ld a,[H_WHOSETURN]
and a
jr nz,.Ghost
- ld a,[W_PLAYERMONSTATUS] ; player’s turn
+ ld a,[wBattleMonStatus] ; player’s turn
and a,SLP | (1 << FRZ)
ret nz
ld hl,ScaredText
@@ -3319,18 +3239,18 @@ IsGhostBattle: ; 3d83a (f:583a)
ret
Func_3d854: ; 3d854 (f:5854)
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
ld a,[hl]
and a,SLP
jr z,.FrozenCheck ; to 5884
dec a
- ld [W_PLAYERMONSTATUS],a ; decrement sleep count
+ ld [wBattleMonStatus],a ; decrement sleep count
and a
jr z,.WakeUp ; to 5874
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,SLP_ANIM - 1
call PlayMoveAnimation
ld hl,FastAsleepText
@@ -3341,7 +3261,7 @@ Func_3d854: ; 3d854 (f:5854)
call PrintText
.sleepDone
xor a
- ld [$CCF1],a
+ ld [wccf1],a
ld hl,Func_3d80a
jp Func_3da37
@@ -3351,7 +3271,7 @@ Func_3d854: ; 3d854 (f:5854)
ld hl,IsFrozenText
call PrintText
xor a
- ld [$CCF1],a
+ ld [wccf1],a
ld hl,Func_3d80a
jp Func_3da37
@@ -3384,7 +3304,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld hl,Func_3d80a ; $580a
jp Func_3da37
.next
- ld hl,$D06D
+ ld hl,W_PLAYERDISABLEDMOVE
ld a,[hl]
and a
jr z,.next2 ; 58EE
@@ -3393,14 +3313,14 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
and a,$F
jr nz,.next2
ld [hl],a
- ld [$CCEE],a
+ ld [wccee],a
ld hl,DisabledNoMoreText
call PrintText
.next2
ld a,[W_PLAYERBATTSTATUS1]
add a
jr nc,.next3 ; 5929
- ld hl,$D06B
+ ld hl,wd06b
dec [hl]
jr nz,.next4 ; 5907
ld hl,W_PLAYERBATTSTATUS1
@@ -3412,10 +3332,10 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld hl,IsConfusedText
call PrintText
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,CONF_ANIM - 1
call PlayMoveAnimation
- call GenRandomInBattle
+ call BattleRandom
cp a,$80
jr c,.next3
ld hl,W_PLAYERBATTSTATUS1
@@ -3425,20 +3345,20 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
call PrintHurtItselfText
jr .next5 ; 5952
.next3
- ld a,[$CCEE]
+ ld a,[wccee]
and a
jr z,.ParalysisCheck ; 593E
- ld hl,$CCDC
+ ld hl,wPlayerSelectedMove
cp [hl]
jr nz,.ParalysisCheck
call PrintMoveIsDisabledText
ld hl,Func_3d80a ; $580a
jp Func_3da37
.ParalysisCheck
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
bit PAR,[hl]
jr z,.next7 ; 5975
- call GenRandomInBattle ; random number
+ call BattleRandom
cp a,$3F
jr nc,.next7
ld hl,FullyParalyzedText
@@ -3456,7 +3376,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
jr .next9 ; 596F
.next8
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
.next9
@@ -3468,18 +3388,18 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
jr z,.next10 ; 59D0
xor a
ld [W_PLAYERMOVENUM],a
- ld hl,$D0D7
+ ld hl,W_DAMAGE
ld a,[hli]
ld b,a
ld c,[hl]
- ld hl,$D075
+ ld hl,wd075
ld a,[hl]
add c
ld [hld],a
ld a,[hl]
adc b
ld [hl],a
- ld hl,$D06A
+ ld hl,wd06a
dec [hl]
jr z,.next11 ; 599B
ld hl,Func_3d80a ; $580a
@@ -3490,15 +3410,15 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld hl,UnleashedEnergyText
call PrintText
ld a,1
- ld [$CFD4],a
- ld hl,$D075
+ ld [W_PLAYERMOVEPOWER],a
+ ld hl,wd075
ld a,[hld]
add a
ld b,a
- ld [$D0D8],a
+ ld [wd0d8],a
ld a,[hl]
rl a
- ld [$D0D7],a
+ ld [W_DAMAGE],a
or b
jr nz,.next12 ; 59C2
ld a,1
@@ -3518,7 +3438,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld [W_PLAYERMOVENUM],a
ld hl,ThrashingAboutText
call PrintText
- ld hl,$D06A
+ ld hl,wd06a
dec [hl]
ld hl,asm_3d6dc ; $56dc
jp nz,Func_3da37
@@ -3526,11 +3446,11 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld hl,W_PLAYERBATTSTATUS1
res 1,[hl]
set 7,[hl]
- call GenRandomInBattle ; random number
+ call BattleRandom
and a,3
inc a
inc a
- ld [$D06B],a
+ ld [wd06b],a
pop hl
jp Func_3da37
.next13
@@ -3538,23 +3458,23 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
jp z,Func_3da1a
ld hl,AttackContinuesText
call PrintText
- ld a,[$D06A]
+ ld a,[wd06a]
dec a
- ld [$D06A],a
+ ld [wd06a],a
ld hl,asm_3d714 ; $5714
jp nz,Func_3da37
jp Func_3da37
Func_3da1a: ; 3da1a (f:5a1a)
- ld a, [W_PLAYERBATTSTATUS2] ; $d063
+ ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2
bit 6, a
jp z, Func_3da39
ld a, RAGE
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
xor a
- ld [W_PLAYERMOVEEFFECT], a ; $cfd3
+ ld [W_PLAYERMOVEEFFECT], a ; wcfd3
ld hl, asm_3d6b0 ; $56b0
jp Func_3da37
@@ -3628,19 +3548,19 @@ CantMoveText: ; 3da83 (f:5a83)
db "@"
PrintMoveIsDisabledText: ; 3da88 (f:5a88)
- ld hl, wPlayerSelectedMove ; $ccdc
- ld de, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, wPlayerSelectedMove ; wPlayerSelectedMove
+ ld de, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3da97
inc hl
- ld de, W_ENEMYBATTSTATUS1 ; $d067
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
.asm_3da97
ld a, [de]
res 4, a
ld [de], a
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
ld hl, MoveIsDisabledText
jp PrintText
@@ -3652,22 +3572,22 @@ MoveIsDisabledText: ; 3daa8 (f:5aa8)
PrintHurtItselfText: ; 3daad (f:5aad)
ld hl, HurtItselfText
call PrintText
- ld hl, W_ENEMYMONDEFENSE ; $cff8
+ ld hl, wEnemyMonDefense ; wcff8
ld a, [hli]
push af
ld a, [hld]
push af
- ld a, [W_PLAYERMONDEF]
+ ld a, [wBattleMonDefense]
ld [hli], a
- ld a, [$d028]
+ ld a, [wBattleMonDefense + 1]
ld [hl], a
- ld hl, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERMOVEEFFECT ; wcfd3
push hl
ld a, [hl]
push af
xor a
ld [hli], a
- ld [$d05e], a
+ ld [wd05e], a
ld a, $28
ld [hli], a
xor a
@@ -3677,13 +3597,13 @@ PrintHurtItselfText: ; 3daad (f:5aad)
pop af
pop hl
ld [hl], a
- ld hl, $cff9
+ ld hl, wEnemyMonDefense + 1
pop af
ld [hld], a
pop af
ld [hl], a
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
ld [H_WHOSETURN], a ; $fff3
call PlayMoveAnimation
@@ -3701,20 +3621,20 @@ MonName1Text: ; 3dafb (f:5afb)
db $08 ; asm
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
- ld hl, $ccf1
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
+ ld hl, wccf1
jr z, .asm_3db11
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld hl, $ccf2
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld hl, wccf2
.asm_3db11
ld [hl], a
- ld [$d11e], a
+ ld [wd11e], a
call Func_3db85
- ld a, [$cced]
+ ld a, [wcced]
and a
ld hl, Used2Text
ret nz
- ld a, [$d11e]
+ ld a, [wd11e]
cp DOUBLESLAP
ld hl, Used2Text
ret c
@@ -3731,7 +3651,7 @@ Used2Text: ; 3db34 (f:5b34)
db $08 ; asm
PrintInsteadText: ; 3db39 (f:5b39)
- ld a, [$cced]
+ ld a, [wcced]
and a
jr z, PrintCF4BText
ld hl, InsteadText
@@ -3749,7 +3669,7 @@ CF4BText: ; 3db4c (f:5b4c)
TX_FAR _CF4BText
db $08 ; asm
ld hl, ExclamationPointPointerTable
- ld a, [$d11e]
+ ld a, [wd11e]
add a
push bc
ld b, $0
@@ -3790,7 +3710,7 @@ ExclamationPoint5Text: ; 3db80 (f:5b80)
Func_3db85: ; 3db85 (f:5b85)
push bc
- ld a, [$d11e] ; move number
+ ld a, [wd11e] ; move number
ld c, a
ld b, $0
ld hl, UnknownMovesList_3dba3 ; $5ba3
@@ -3806,7 +3726,7 @@ Func_3db85: ; 3db85 (f:5b85)
jr .asm_3db8f
.asm_3db9d
ld a, b
- ld [$d11e], a
+ ld [wd11e], a
pop bc
ret
@@ -3826,18 +3746,18 @@ UnknownMovesList_3dba3: ; 3dba3 (f:5ba3)
db $FF ; terminator
PrintMoveFailureText: ; 3dbe2 (f:5be2)
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3dbed
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3dbed
ld hl, DoesntAffectMonText ; $5c57
- ld a, [$d05b]
+ ld a, [wd05b]
and $7f
jr z, .asm_3dc04
ld hl, AttackMissedText ; $5c42
- ld a, [$d05e]
+ ld a, [wd05e]
cp $ff
jr nz, .asm_3dc04
ld hl, UnaffectedText ; $5c4c
@@ -3845,14 +3765,14 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2)
push de
call PrintText
xor a
- ld [$d05e], a
+ ld [wd05e], a
pop de
ld a, [de]
cp JUMP_KICK_EFFECT
ret nz
; if you get here, the mon used hi jump kick and missed
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
ld b, [hl]
srl a
@@ -3872,8 +3792,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2)
ld hl, KeptGoingAndCrashedText ; $5c47
call PrintText
ld b, $4
- ld a, $24
- call Predef ; indirect jump to Func_48125 (48125 (12:4125))
+ predef Func_48125
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3dc3f
@@ -3902,7 +3821,7 @@ DoesntAffectMonText: ; 3dc57 (f:5c57)
db "@"
Func_3dc5c: ; 3dc5c (f:5c5c)
- ld a, [$d05e]
+ ld a, [wd05e]
and a
jr z, .asm_3dc75
dec a
@@ -3916,7 +3835,7 @@ Func_3dc5c: ; 3dc5c (f:5c5c)
ld l, a
call PrintText
xor a
- ld [$d05e], a
+ ld [wd05e], a
.asm_3dc75
ld c, $14
jp DelayFrames
@@ -3935,23 +3854,23 @@ OHKOText: ; 3dc83 (f:5c83)
Func_3dc88: ; 3dc88 (f:5c88)
xor a
- ld [$cced], a
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld [wcced], a
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3dc97
ld a, $1
and a
ret
.asm_3dc97
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
call AddNTimes
- ld a, [wPlayerID] ; $d359
+ ld a, [wPlayerID] ; wPlayerID
cp [hl]
jr nz, .asm_3dcb1
inc hl
- ld a, [wPlayerID + 1] ; $d35a
+ ld a, [wPlayerID + 1] ; wd35a
cp [hl]
jp z, Func_3ddb0
.asm_3dcb1
@@ -3973,7 +3892,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
.asm_3dcce
ld b, a
ld c, a
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld d, a
add b
ld b, a
@@ -3984,14 +3903,14 @@ Func_3dc88: ; 3dc88 (f:5c88)
cp d
jp nc, Func_3ddb0
.asm_3dcdf
- call GenRandomInBattle
+ call BattleRandom
swap a
cp b
jr nc, .asm_3dcdf
cp c
jp c, Func_3ddb0
.asm_3dceb
- call GenRandomInBattle
+ call BattleRandom
cp b
jr nc, .asm_3dceb
cp c
@@ -3999,7 +3918,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
ld a, d
sub c
ld b, a
- call GenRandomInBattle
+ call BattleRandom
swap a
sub b
jr c, .asm_3dd0e
@@ -4010,16 +3929,16 @@ Func_3dc88: ; 3dc88 (f:5c88)
call PrintHurtItselfText
jp Func_3ddb4
.asm_3dd0e
- call GenRandomInBattle
+ call BattleRandom
add a
swap a
and $7
jr z, .asm_3dd0e
- ld [W_PLAYERMONSTATUS], a ; $d018
+ ld [wBattleMonStatus], a ; wBattleMonStatus
ld hl, BeganToNapText
jr .asm_3dd3a
.asm_3dd20
- call GenRandomInBattle
+ call BattleRandom
and $3
ld hl, LoafingAroundText
and a
@@ -4035,16 +3954,16 @@ Func_3dc88: ; 3dc88 (f:5c88)
call PrintText
jr Func_3ddb4
.asm_3dd3f
- ld a, [$d01d]
+ ld a, [wBattleMonMoves + 1]
and a
jr z, .asm_3dd20
- ld a, [$ccee]
+ ld a, [wccee]
and a
jr nz, .asm_3dd20
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
cp $a5
jr z, .asm_3dd20
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
push hl
ld a, [hli]
and $3f
@@ -4062,7 +3981,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
add b
pop hl
push af
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
@@ -4073,33 +3992,33 @@ Func_3dc88: ; 3dc88 (f:5c88)
cp b
jr z, .asm_3dd20
ld a, $1
- ld [$cced], a
- ld a, [wMaxMenuItem] ; $cc28
+ ld [wcced], a
+ ld a, [wMaxMenuItem] ; wMaxMenuItem
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
.asm_3dd86
- call GenRandomInBattle
+ call BattleRandom
and $3
cp b
jr nc, .asm_3dd86
cp c
jr z, .asm_3dd86
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, W_PLAYERMONPP ; $d02d
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, wBattleMonPP ; wBattleMonPP
ld e, a
ld d, $0
add hl, de
ld a, [hl]
and a
jr z, .asm_3dd86
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
call GetCurrentMove
Func_3ddb0: ; 3ddb0 (f:5db0)
@@ -4145,7 +4064,7 @@ CalculateDamage: ; 3ddcf (f:5dcf)
cp a, $14 ;types >= $14 are all special
jr nc, .specialAttack
.physicalAttack
- ld hl, W_ENEMYMONDEFENSE ;opponent defense
+ ld hl, wEnemyMonDefense ;opponent defense
ld a, [hli] ;*BC = opponent defense used later
ld b, a
ld c, [hl]
@@ -4156,8 +4075,8 @@ CalculateDamage: ; 3ddcf (f:5dcf)
sla c ;x2 defense if bit2 of D069 is set
rl b
.next
- ld hl, W_PLAYERMONATK ;attack pointer
- ld a, [$d05e]
+ ld hl, wBattleMonAttack ;attack pointer
+ ld a, [wd05e]
and a
jr z, .next3
ld c, 3
@@ -4167,14 +4086,14 @@ CalculateDamage: ; 3ddcf (f:5dcf)
ld a, [$ff98]
ld c, a
push bc
- ld hl, $d18f
+ ld hl, wPartyMon1Attack
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
pop bc
jr .next3
.specialAttack
- ld hl, W_ENEMYMONSPECIAL ;opponent special
+ ld hl, wEnemyMonSpecial ;opponent special
ld a, [hli] ;*BC = opponent special defense used later
ld b, a
ld c, [hl]
@@ -4185,8 +4104,8 @@ CalculateDamage: ; 3ddcf (f:5dcf)
sla c ;x2 special defense if bit1 of D069 set
rl b
.next2
- ld hl, W_PLAYERMONSPECIAL
- ld a, [$d05e] ;XXX
+ ld hl, wBattleMonSpecial
+ ld a, [wd05e] ;XXX
and a
jr z, .next3 ;skip portion of code that pulls up inactive pokemon
.loadOtherPoke
@@ -4197,9 +4116,9 @@ CalculateDamage: ; 3ddcf (f:5dcf)
ld a, [$ff98]
ld c, a
push bc
- ld hl, $d195
+ ld hl, wPartyMon1Special
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
pop bc
.next3
@@ -4222,9 +4141,9 @@ CalculateDamage: ; 3ddcf (f:5dcf)
inc l ;minimum HL = 1
.next4
ld b, l ;*B = attack [possibly scaled] [C contains defense]
- ld a, [$d022] ;*E = level
+ ld a, [wBattleMonLevel] ;*E = level
ld e, a
- ld a, [$d05e] ;critical hit?
+ ld a, [wd05e] ;critical hit?
and a
jr z, .next5
sla e ;double level if it was a critical hit
@@ -4234,11 +4153,11 @@ CalculateDamage: ; 3ddcf (f:5dcf)
ret
Func_3de75: ; 3de75 (f:5e75)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
xor a
ld [hli], a
ld [hl], a
- ld hl, W_ENEMYMOVEPOWER ; $cfce
+ ld hl, W_ENEMYMOVEPOWER ; wcfce
ld a, [hli]
ld d, a
and a
@@ -4246,22 +4165,22 @@ Func_3de75: ; 3de75 (f:5e75)
ld a, [hl]
cp $14
jr nc, .asm_3debc
- ld hl, W_PLAYERMONDEF
+ ld hl, wBattleMonDefense
ld a, [hli]
ld b, a
ld c, [hl]
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 2, a
jr z, .asm_3de98
sla c
rl b
.asm_3de98
- ld hl, W_ENEMYMONATTACK
- ld a, [$d05e]
+ ld hl, wEnemyMonAttack
+ ld a, [wd05e]
and a
jr z, .asm_3deef
- ld hl, W_PARTYMON1_DEFENSE ; $d191
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Defense
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -4274,22 +4193,22 @@ Func_3de75: ; 3de75 (f:5e75)
pop bc
jr .asm_3deef
.asm_3debc
- ld hl, W_PLAYERMONSPECIAL
+ ld hl, wBattleMonSpecial
ld a, [hli]
ld b, a
ld c, [hl]
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 1, a
jr z, .asm_3decd
sla c
rl b
.asm_3decd
- ld hl, W_ENEMYMONSPECIAL ; $cffc
- ld a, [$d05e]
+ ld hl, wEnemyMonSpecial ; wcffc
+ ld a, [wd05e]
and a
jr z, .asm_3deef
- ld hl, W_PARTYMON1_SPECIAL ; $d195
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Special ; wPartyMon1Special
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -4320,9 +4239,9 @@ Func_3de75: ; 3de75 (f:5e75)
inc l
.asm_3df0a
ld b, l
- ld a, [W_ENEMYMONLEVEL] ; $cff3
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
ld e, a
- ld a, [$d05e]
+ ld a, [wd05e]
and a
jr z, .asm_3df17
sla e
@@ -4335,16 +4254,16 @@ Func_3de75: ; 3de75 (f:5e75)
Func_3df1c: ; 3df1c (f:5f1c)
push de
push bc
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3df40
- ld hl, $d8c6
+ ld hl, wEnemyMon1Stats
dec c
sla c
ld b, $0
add hl, bc
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld bc, $2c
+ ld a, [wEnemyMonPartyPos]
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hli]
ld [$ff97], a
@@ -4354,13 +4273,13 @@ Func_3df1c: ; 3df1c (f:5f1c)
pop de
ret
.asm_3df40
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_CURENEMYLVL], a ; $d127
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, $cff1
- ld de, $cfaf
+ ld hl, wEnemyMonDVs
+ ld de, wcfaf
ld a, [hli]
ld [de], a
inc de
@@ -4368,7 +4287,7 @@ Func_3df1c: ; 3df1c (f:5f1c)
ld [de], a
pop bc
ld b, $0
- ld hl, $cfa4
+ ld hl, wcfa4
call CalcStat
pop de
ret
@@ -4384,7 +4303,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65)
and a
ld a, [W_PLAYERMOVEEFFECT]
jr z, .effect
- ld a, [$cfcd]
+ ld a, [W_ENEMYMOVEEFFECT]
.effect
; EXPLODE_EFFECT halves defense.
@@ -4534,7 +4453,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65)
Func_3e016: ; 3e016 (f:6016)
call Func_3f132
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
dec a
ret
@@ -4552,25 +4471,25 @@ UnusedHighCriticalMoves: ; 3e01e (f:601e)
; among the most popular) tend to CH about 20 to 25% of the time."
CriticalHitTest: ; 3e023 (f:6023)
xor a
- ld [$d05e], a
+ ld [wd05e], a
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$cfe5]
+ ld a, [wEnemyMonSpecies]
jr nz, .asm_3e032
- ld a, [W_PLAYERMONID]
+ ld a, [wBattleMonSpecies]
.asm_3e032
- ld [$d0b5], a
+ ld [wd0b5], a
call GetMonHeader
ld a, [W_MONHBASESPEED]
ld b, a
srl b ; (effective (base speed/2))
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_PLAYERMOVEPOWER ; $cfd4
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERMOVEPOWER ; W_PLAYERMOVEPOWER
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
jr z, .calcCriticalHitProbability
- ld hl, W_ENEMYMOVEPOWER ; $cfce
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYMOVEPOWER ; wcfce
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.calcCriticalHitProbability ; 0x3e04f
ld a, [hld] ; read base power from RAM
and a
@@ -4606,14 +4525,14 @@ CriticalHitTest: ; 3e023 (f:6023)
jr nc, .SkipHighCritical
ld b, $ff
.SkipHighCritical
- call GenRandomInBattle ; generates a random value, in "a"
+ call BattleRandom ; generates a random value, in "a"
rlc a
rlc a
rlc a
cp b ; check a against calculated crit rate
ret nc ; no critical hit if no borrow
ld a, $1
- ld [$d05e], a ; set critical hit flag
+ ld [wd05e], a ; set critical hit flag
ret
; high critical hit moves
@@ -4697,7 +4616,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df)
jr ApplyDamageToEnemyPokemon
.superFangEffect
; set the damage to half the target's HP
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld de,W_DAMAGE
ld a,[hli]
srl a
@@ -4714,7 +4633,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df)
ld [de],a
jr ApplyDamageToEnemyPokemon
.specialDamage
- ld hl,W_PLAYERMONLEVEL
+ ld hl,wBattleMonLevel
ld a,[hl]
ld b,a
ld a,[W_PLAYERMOVENUM]
@@ -4736,7 +4655,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df)
ld b,a ; b = level * 1.5
; loop until a random number in the range [1, b) is found
.loop
- call GenRandomInBattle ; random number
+ call BattleRandom
and a
jr z,.loop
cp b
@@ -4763,16 +4682,16 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
; also, save the current HP at wHPBarOldHP
ld a,[hld]
ld b,a
- ld a,[W_ENEMYMONCURHP + 1]
+ ld a,[wEnemyMonHP + 1]
ld [wHPBarOldHP],a
sub b
- ld [W_ENEMYMONCURHP + 1],a
+ ld [wEnemyMonHP + 1],a
ld a,[hl]
ld b,a
- ld a,[W_ENEMYMONCURHP]
+ ld a,[wEnemyMonHP]
ld [wHPBarOldHP+1],a
sbc b
- ld [W_ENEMYMONCURHP],a
+ ld [wEnemyMonHP],a
jr nc,.animateHpBar
; if more damage was done than the current HP, zero the HP and set the damage
; equal to how much HP the pokemon had before the attack
@@ -4781,26 +4700,24 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
ld a,[wHPBarOldHP]
ld [hl],a
xor a
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld [hli],a
ld [hl],a
.animateHpBar
- ld hl,W_ENEMYMONMAXHP
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld a,[hli]
ld [wHPBarNewHP+1],a
ld a,[hl]
ld [wHPBarNewHP],a
- FuncCoord 2, 2 ; $c3ca
- ld hl,Coord
+ hlCoord 2, 2
xor a
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar shortening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d)
jp Func_3cd5a ; redraw pokemon names and HP bars
@@ -4818,7 +4735,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0)
jr ApplyDamageToPlayerPokemon
.superFangEffect
; set the damage to half the target's HP
- ld hl,W_PLAYERMONCURHP
+ ld hl,wBattleMonHP
ld de,W_DAMAGE
ld a,[hli]
srl a
@@ -4835,7 +4752,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0)
ld [de],a
jr ApplyDamageToPlayerPokemon
.specialDamage
- ld hl,W_ENEMYMONLEVEL
+ ld hl,wEnemyMonLevel
ld a,[hl]
ld b,a
ld a,[W_ENEMYMOVENUM]
@@ -4859,7 +4776,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0)
; this differs from the range when the player attacks, which is [1, b)
; it's possible for the enemy to do 0 damage with Psywave, but the player always does at least 1 damage
.loop
- call GenRandomInBattle ; random number
+ call BattleRandom
cp b
jr nc,.loop
ld b,a
@@ -4884,16 +4801,16 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)
; also, save the current HP at wHPBarOldHP and the new HP at wHPBarNewHP
ld a,[hld]
ld b,a
- ld a,[W_PLAYERMONCURHP + 1]
+ ld a,[wBattleMonHP + 1]
ld [wHPBarOldHP],a
sub b
- ld [W_PLAYERMONCURHP + 1],a
+ ld [wBattleMonHP + 1],a
ld [wHPBarNewHP],a
ld b,[hl]
- ld a,[W_PLAYERMONCURHP]
+ ld a,[wBattleMonHP]
ld [wHPBarOldHP+1],a
sbc b
- ld [W_PLAYERMONCURHP],a
+ ld [wBattleMonHP],a
ld [wHPBarNewHP+1],a
jr nc,.animateHpBar
; if more damage was done than the current HP, zero the HP and set the damage
@@ -4903,24 +4820,22 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)
ld a,[wHPBarOldHP]
ld [hl],a
xor a
- ld hl,W_PLAYERMONCURHP
+ ld hl,wBattleMonHP
ld [hli],a
ld [hl],a
ld hl,wHPBarNewHP
ld [hli],a
ld [hl],a
.animateHpBar
- ld hl,W_PLAYERMONMAXHP
+ ld hl,wBattleMonMaxHP
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a
- FuncCoord 10, 9 ; $c45e
- ld hl,Coord
+ hlCoord 10, 9
ld a,$01
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar shortening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToPlayerPokemonDone
jp Func_3cd5a ; redraw pokemon names and HP bars
@@ -5031,12 +4946,12 @@ MirrorMoveCopyMove: ; 3e2fd (f:62fd)
ld a,[H_WHOSETURN]
and a
; values for player turn
- ld a,[$ccf2]
+ ld a,[wccf2]
ld hl,wPlayerSelectedMove
ld de,W_PLAYERMOVENUM
jr z,.next
; values for enemy turn
- ld a,[$ccf1]
+ ld a,[wccf1]
ld de,W_ENEMYMOVENUM
ld hl,wEnemySelectedMove
.next
@@ -5058,7 +4973,7 @@ MirrorMoveFailedText: ; 3e324 (f:6324)
; function used to reload move data for moves like Mirror Move and Metronome
ReloadMoveData: ; 3e329 (f:6329)
- ld [$d11e],a
+ ld [wd11e],a
dec a
ld hl,Moves
ld bc,$0006
@@ -5076,7 +4991,7 @@ ReloadMoveData: ; 3e329 (f:6329)
; function that picks a random move for metronome
MetronomePickMove: ; 3e348 (f:6348)
xor a
- ld [$cc5b],a
+ ld [wcc5b],a
ld a,METRONOME
call PlayMoveAnimation ; play Metronome's animation
; values for player turn
@@ -5090,10 +5005,10 @@ MetronomePickMove: ; 3e348 (f:6348)
ld hl,wEnemySelectedMove
; loop to pick a random number in the range [1, $a5) to be the move used by Metronome
.pickMoveLoop
- call GenRandomInBattle ; random number
+ call BattleRandom
and a
jr z,.pickMoveLoop
- cp a,NUM_MOVES + 1 ; max normal move number + 1 (this is Struggle's move number)
+ cp a,NUM_ATTACKS + 1 ; max normal move number + 1 (this is Struggle's move number)
jr nc,.pickMoveLoop
cp a,METRONOME
jr z,.pickMoveLoop
@@ -5107,13 +5022,13 @@ IncrementMovePP: ; 3e373 (f:6373)
ld a,[H_WHOSETURN]
and a
; values for player turn
- ld hl,W_PLAYERMONPP
- ld de,W_PARTYMON1_MOVE1PP
+ ld hl,wBattleMonPP
+ ld de,wPartyMon1PP
ld a,[wPlayerMoveListIndex]
jr z,.next
; values for enemy turn
- ld hl,W_ENEMYMONPP
- ld de,$d8c1 ; enemy party pokemon 1 PP
+ ld hl,wEnemyMonPP
+ ld de,wEnemyMon1PP
ld a,[wEnemyMoveListIndex]
.next
ld b,$00
@@ -5127,9 +5042,9 @@ IncrementMovePP: ; 3e373 (f:6373)
and a
ld a,[wPlayerMonNumber] ; value for player turn
jr z,.next2
- ld a,[W_ENEMYMONNUMBER] ; value for enemy turn
+ ld a,[wEnemyMonPartyPos] ; value for enemy turn
.next2
- ld bc,$002c
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
inc [hl] ; increment PP in the party memory location
ret
@@ -5137,32 +5052,32 @@ IncrementMovePP: ; 3e373 (f:6373)
; function to adjust the base damage of an attack to account for type effectiveness
AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
; values for player turn
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld a,[hli]
ld b,a ; b = type 1 of attacker
ld c,[hl] ; c = type 2 of attacker
- ld hl,W_ENEMYMONTYPES
+ ld hl,wEnemyMonType
ld a,[hli]
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_PLAYERMOVETYPE]
- ld [$d11e],a
+ ld [wd11e],a
ld a,[H_WHOSETURN]
and a
jr z,.next
; values for enemy turn
- ld hl,W_ENEMYMONTYPES
+ ld hl,wEnemyMonType
ld a,[hli]
ld b,a ; b = type 1 of attacker
ld c,[hl] ; c = type 2 of attacker
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld a,[hli]
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_ENEMYMOVETYPE]
- ld [$d11e],a
+ ld [wd11e],a
.next
- ld a,[$d11e] ; move type
+ ld a,[wd11e] ; move type
cp b ; does the move type match type 1 of the attacker?
jr z,.sameTypeAttackBonus
cp c ; does the move type match type 2 of the attacker?
@@ -5184,10 +5099,10 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
ld [W_DAMAGE],a
ld a,l
ld [W_DAMAGE + 1],a
- ld hl,$d05b
+ ld hl,wd05b
set 7,[hl]
.skipSameTypeAttackBonus
- ld a,[$d11e]
+ ld a,[wd11e]
ld b,a ; b = move type
ld hl,TypeEffects
.loop
@@ -5207,13 +5122,13 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
push hl
push bc
inc hl
- ld a,[$d05b]
+ ld a,[wd05b]
and a,$80
ld b,a
ld a,[hl] ; a = damage multiplier
ld [H_MULTIPLIER],a
add b
- ld [$d05b],a
+ ld [wd05b],a
xor a
ld [H_MULTIPLICAND],a
ld hl,W_DAMAGE
@@ -5250,18 +5165,18 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
; function to tell how effective the type of an enemy attack is on the player's current pokemon
; this doesn't take into account the effects that dual types can have
; (e.g. 4x weakness / resistance, weaknesses and resistances canceling)
-; the result is stored in [$D11E]
+; the result is stored in [wd11e]
; ($05 is not very effective, $10 is neutral, $14 is super effective)
; as far is can tell, this is only used once in some AI code to help decide which move to use
AIGetTypeEffectiveness: ; 3e449 (f:6449)
ld a,[W_ENEMYMOVETYPE]
ld d,a ; d = type of enemy move
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld b,[hl] ; b = type 1 of player's pokemon
inc hl
ld c,[hl] ; c = type 2 of player's pokemon
ld a,$10
- ld [$d11e],a ; initialize [$D11E] to neutral effectiveness
+ ld [wd11e],a ; initialize [wd11e] to neutral effectiveness
ld hl,TypeEffects
.loop
ld a,[hli]
@@ -5282,7 +5197,7 @@ AIGetTypeEffectiveness: ; 3e449 (f:6449)
jr .loop
.done
ld a,[hl]
- ld [$d11e],a ; store damage multiplier
+ ld [wd11e],a ; store damage multiplier
ret
INCLUDE "data/type_effects.asm"
@@ -5292,14 +5207,14 @@ MoveHitTest: ; 3e56b (f:656b)
; player's turn
ld hl,W_ENEMYBATTSTATUS1
ld de,W_PLAYERMOVEEFFECT
- ld bc,W_ENEMYMONSTATUS
+ ld bc,wEnemyMonStatus
ld a,[H_WHOSETURN]
and a
jr z,.dreamEaterCheck
; enemy's turn
ld hl,W_PLAYERBATTSTATUS1
ld de,W_ENEMYMOVEEFFECT
- ld bc,W_PLAYERMONSTATUS
+ ld bc,wBattleMonStatus
.dreamEaterCheck
ld a,[de]
cp a,DREAM_EATER_EFFECT
@@ -5385,7 +5300,7 @@ MoveHitTest: ; 3e56b (f:656b)
.doAccuracyCheck
; if the random number generated is greater than or equal to the scaled accuracy, the move misses
; note that this means that even the highest accuracy is still just a 255/256 chance, not 100%
- call GenRandomInBattle ; random number
+ call BattleRandom
cp b
jr nc,.moveMissed
ret
@@ -5478,7 +5393,7 @@ CalcHitChance: ; 3e624 (f:6624)
ret
Func_3e687: ; 3e687 (f:6687)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
and a
jr nz, .asm_3e692
@@ -5494,7 +5409,7 @@ Func_3e687: ; 3e687 (f:6687)
ld a, [hl]
ld [$ff98], a
.asm_3e69c
- call GenRandomInBattle
+ call BattleRandom
rrca
cp $d9
jr c, .asm_3e69c
@@ -5505,81 +5420,81 @@ Func_3e687: ; 3e687 (f:6687)
ld b, $4
call Divide
ld a, [$ff97]
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld [hli], a
ld a, [$ff98]
ld [hl], a
ret
Func_3e6bc: ; 3e6bc (f:66bc)
- ld a, [wEnemySelectedMove] ; $ccdd
+ ld a, [wEnemySelectedMove] ; wccdd
inc a
jp z, Func_3e88c
call PrintGhostText
jp z, Func_3e88c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3e6dc
ld b, $1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $e
jr z, .asm_3e6dc
cp $4
ret nc
.asm_3e6dc
- ld hl, $ccd5
+ ld hl, wccd5
inc [hl]
xor a
- ld [W_MOVEMISSED], a ; $d05f
- ld [$ccf4], a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [wccf4], a
ld a, $a
- ld [$d05b], a
+ ld [wd05b], a
call Func_3e88f
jr nz, .asm_3e6f2
jp [hl]
.asm_3e6f2
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 4, [hl]
jr nz, asm_3e70b
call GetCurrentMove
Func_3e6fc: ; 3e6fc (f:66fc)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp CHARGE_EFFECT
jp z, Func_3f132
cp FLY_EFFECT
jp z, Func_3f132
jr asm_3e72b
asm_3e70b: ; 3e70b (f:670b)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 4, [hl] ; no longer charging up for attack
res 6, [hl] ; no longer invulnerable to typcial attacks
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld [$d0b5], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld [wd0b5], a
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, MOVE_NAME
ld [W_LISTTYPE], a
call GetName
- ld de, $cd6d
+ ld de, wcd6d
call CopyStringToCF4B
asm_3e72b: ; 3e72b (f:672b)
xor a
- ld [$cced], a
+ ld [wcced], a
call PrintMonName1Text
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray1 ; $4000
ld de, $1
call IsInArray
jp c, Func_3f132
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray5B ; $4049
ld de, $1
call IsInArray
call c, Func_3f132
asm_3e750: ; 3e750 (f:6750)
call Func_3ec81
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray2 ; $4011
ld de, $1
call IsInArray
@@ -5598,10 +5513,10 @@ asm_3e750: ; 3e750 (f:6750)
Func_3e77f: ; 3e77f (f:677f)
call MoveHitTest
asm_3e782: ; 3e782 (f:6782)
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .asm_3e791
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp EXPLODE_EFFECT
jr z, asm_3e7a0
jr Func_3e7d1
@@ -5609,7 +5524,7 @@ asm_3e782: ; 3e782 (f:6782)
call Func_3ec81
Func_3e794: ; 3e794 (f:6794)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
and a
ld a, $1
jr z, asm_3e7a4
@@ -5620,18 +5535,18 @@ asm_3e7a0: ; 3e7a0 (f:67a0)
xor a
asm_3e7a4: ; 3e7a4 (f:67a4)
push af
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a ; does mon have a substitute?
ld hl, Func_79747
ld b, BANK(Func_79747)
call nz, Bankswitch
pop af
- ld [$cc5b], a
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld [wcc5b], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
call PlayMoveAnimation
call Func_3eed3
call Func_3cdec
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a ; does mon have a substitute?
ld hl, Func_79771
ld b, BANK(Func_79771)
@@ -5642,7 +5557,7 @@ Func_3e7d1: ; 3e7d1 (f:67d1)
call Func_3ec81
ld c, $1e
call DelayFrames
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp FLY_EFFECT
jr z, .asm_3e7e6
cp CHARGE_EFFECT
@@ -5650,11 +5565,11 @@ Func_3e7d1: ; 3e7d1 (f:67d1)
jr asm_3e7ef
.asm_3e7e6
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
asm_3e7ef: ; 3e7ef (f:67ef)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp MIRROR_MOVE_EFFECT
jr nz, .notMirrorMoveEffect
call MirrorMoveCopyMove
@@ -5666,16 +5581,16 @@ asm_3e7ef: ; 3e7ef (f:67ef)
call MetronomePickMove
jp Func_3e6fc
.notMetronomeEffect
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray3 ; $4014
ld de, $1
call IsInArray
jp c, Func_3f132
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .asm_3e82b
call PrintMoveFailureText
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp EXPLODE_EFFECT
jr z, .asm_3e83e
jp Func_3e88c
@@ -5684,24 +5599,24 @@ asm_3e7ef: ; 3e7ef (f:67ef)
call Func_3dc5c
callab DisplayEffectiveness
ld a, $1
- ld [$ccf4], a
+ ld [wccf4], a
.asm_3e83e
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray4 ; $4030
ld de, $1
call IsInArray
call c, Func_3f132
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
ld b, [hl]
or b
ret z
call HandleBuildingRage
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 2, [hl] ; is mon hitting multiple times? (example: double kick)
jr z, .asm_3e873
push hl
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
pop hl
jp nz, Func_3e794
@@ -5709,9 +5624,9 @@ asm_3e7ef: ; 3e7ef (f:67ef)
ld hl, HitXTimesText ; $6887
call PrintText
xor a
- ld [$cd05], a
+ ld [wcd05], a
.asm_3e873
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
and a
jr z, Func_3e88c
ld hl, EffectsArray5 ; $403b
@@ -5729,18 +5644,18 @@ Func_3e88c: ; 3e88c (f:688c)
ret
Func_3e88f: ; 3e88f (f:688f)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
ld a, [hl]
and $7
jr z, .asm_3e8bf
dec a
- ld [W_ENEMYMONSTATUS], a ; $cfe9
+ ld [wEnemyMonStatus], a ; wcfe9
and a
jr z, .asm_3e8af
ld hl, FastAsleepText
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,SLP_ANIM
call PlayMoveAnimation
jr .asm_3e8b5
@@ -5749,7 +5664,7 @@ Func_3e88f: ; 3e88f (f:688f)
call PrintText
.asm_3e8b5
xor a
- ld [$ccf2], a
+ ld [wccf2], a
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e8bf
@@ -5758,11 +5673,11 @@ Func_3e88f: ; 3e88f (f:688f)
ld hl, IsFrozenText
call PrintText
xor a
- ld [$ccf2], a
+ ld [wccf2], a
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e8d3
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
bit 5, a
jp z, Func_3e8e7
ld hl, CantMoveText
@@ -5771,7 +5686,7 @@ Func_3e88f: ; 3e88f (f:688f)
jp Func_3eab8
Func_3e8e7: ; 3e8e7 (f:68e7)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 3, [hl]
jp z, Func_3e8fd
res 3, [hl]
@@ -5781,7 +5696,7 @@ Func_3e8e7: ; 3e8e7 (f:68e7)
jp Func_3eab8
Func_3e8fd: ; 3e8fd (f:68fd)
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
bit 5, [hl]
jr z, .asm_3e912
res 5, [hl]
@@ -5790,7 +5705,7 @@ Func_3e8fd: ; 3e8fd (f:68fd)
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e912
- ld hl, W_ENEMYDISABLEDMOVE ; $d072
+ ld hl, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE
ld a, [hl]
and a
jr z, .asm_3e929
@@ -5799,17 +5714,17 @@ Func_3e8fd: ; 3e8fd (f:68fd)
and $f
jr nz, .asm_3e929
ld [hl], a
- ld [$ccef], a
+ ld [wccef], a
ld hl, DisabledNoMoreText
call PrintText
.asm_3e929
- ld a, [W_ENEMYBATTSTATUS1] ; $d067
+ ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
add a
jp nc, Func_3e9aa
- ld hl, $d070
+ ld hl, wd070
dec [hl]
jr nz, .asm_3e944
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 7, [hl]
ld hl, ConfusedNoMoreText
call PrintText
@@ -5818,34 +5733,34 @@ Func_3e8fd: ; 3e8fd (f:68fd)
ld hl, IsConfusedText
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,CONF_ANIM
call PlayMoveAnimation
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, Func_3e9aa
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [hl]
and $80
ld [hl], a
ld hl, HurtItselfText
call PrintText
- ld hl, W_PLAYERMONDEF
+ ld hl, wBattleMonDefense
ld a, [hli]
push af
ld a, [hld]
push af
- ld a, [W_ENEMYMONDEFENSE] ; $cff8
+ ld a, [wEnemyMonDefense] ; wcff8
ld [hli], a
- ld a, [$cff9]
+ ld a, [wEnemyMonDefense + 1]
ld [hl], a
- ld hl, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
push hl
ld a, [hl]
push af
xor a
ld [hli], a
- ld [$d05e], a
+ ld [wd05e], a
ld a, $28
ld [hli], a
xor a
@@ -5855,13 +5770,13 @@ Func_3e8fd: ; 3e8fd (f:68fd)
pop af
pop hl
ld [hl], a
- ld hl, $d028
+ ld hl, wBattleMonDefense + 1
pop af
ld [hld], a
pop af
ld [hl], a
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld [H_WHOSETURN], a ; $fff3
ld a, POUND
call PlayMoveAnimation
@@ -5871,30 +5786,30 @@ Func_3e8fd: ; 3e8fd (f:68fd)
jr asm_3e9d3
Func_3e9aa: ; 3e9aa (f:69aa)
- ld a, [$ccef]
+ ld a, [wccef]
and a
jr z, .asm_3e9bf
- ld hl, wEnemySelectedMove ; $ccdd
+ ld hl, wEnemySelectedMove ; wccdd
cp [hl]
jr nz, .asm_3e9bf
call PrintMoveIsDisabledText
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e9bf
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
bit 6, [hl]
jr z, asm_3e9f6
- call GenRandomInBattle
+ call BattleRandom
cp $3f
jr nc, asm_3e9f6
ld hl, FullyParalyzedText
call PrintText
asm_3e9d3: ; 3e9d3 (f:69d3)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [hl]
and $cc
ld [hl], a
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp FLY_EFFECT
jr z, .asm_3e9e7
cp CHARGE_EFFECT
@@ -5902,59 +5817,59 @@ asm_3e9d3: ; 3e9d3 (f:69d3)
jr .asm_3e9f0
.asm_3e9e7
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, STATUS_AFFECTED_ANIM
call PlayMoveAnimation
.asm_3e9f0
ld hl, Func_3e88c ; $688c
jp Func_3eab8
asm_3e9f6: ; 3e9f6 (f:69f6)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 0, [hl] ; is mon using bide?
jr z, .asm_3ea54
xor a
- ld [W_ENEMYMOVENUM], a ; $cfcc
- ld hl, W_DAMAGE ; $d0d7
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
ld b, a
ld c, [hl]
- ld hl, $cd06
+ ld hl, wcd06
ld a, [hl]
add c
ld [hld], a
ld a, [hl]
adc b
ld [hl], a
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
jr z, .asm_3ea1c
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3ea1c
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 0, [hl]
ld hl, UnleashedEnergyText
call PrintText
ld a, $1
- ld [W_ENEMYMOVEPOWER], a ; $cfce
- ld hl, $cd06
+ ld [W_ENEMYMOVEPOWER], a ; wcfce
+ ld hl, wcd06
ld a, [hld]
add a
ld b, a
- ld [$d0d8], a
+ ld [wd0d8], a
ld a, [hl]
rl a
- ld [W_DAMAGE], a ; $d0d7
+ ld [W_DAMAGE], a ; W_DAMAGE
or b
jr nz, .asm_3ea43
ld a, $1
- ld [W_MOVEMISSED], a ; $d05f
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
.asm_3ea43
xor a
ld [hli], a
ld [hl], a
ld a, BIDE
- ld [W_ENEMYMOVENUM], a ; $cfcc
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
call Func_3ec81
ld hl, asm_3e782 ; $6782
jp Func_3eab8
@@ -5962,22 +5877,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6)
bit 1, [hl] ; is mon using thrash or petal dance?
jr z, .asm_3ea83
ld a, THRASH
- ld [W_ENEMYMOVENUM], a ; $cfcc
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
ld hl, ThrashingAboutText
call PrintText
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
ld hl, asm_3e750 ; $6750
jp nz, Func_3eab8
push hl
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 1, [hl] ; mon is no longer using thrash or petal dance
set 7, [hl] ; mon is now confused
- call GenRandomInBattle
+ call BattleRandom
and $3
inc a
inc a
- ld [$d070], a
+ ld [wd070], a
pop hl
jp Func_3eab8
.asm_3ea83
@@ -5985,22 +5900,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6)
jp z, Func_3ea9b
ld hl, AttackContinuesText
call PrintText
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
ld hl, Func_3e794 ; $6794
jp nz, Func_3eab8
jp Func_3eab8
Func_3ea9b: ; 3ea9b (f:6a9b)
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 6, a ; is mon using rage?
jp z, Func_3eaba
ld a, RAGE
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
xor a
- ld [W_ENEMYMOVEEFFECT], a ; $cfcd
+ ld [W_ENEMYMOVEEFFECT], a ; W_ENEMYMOVEEFFECT
ld hl, asm_3e72b ; $672b
jp Func_3eab8
@@ -6017,18 +5932,18 @@ GetCurrentMove: ; 3eabe (f:6abe)
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .player
- ld de, W_ENEMYMOVENUM ; $cfcc
- ld a, [wEnemySelectedMove] ; $ccdd
+ ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM
+ ld a, [wEnemySelectedMove] ; wccdd
jr .selected
.player
- ld de, W_PLAYERMOVENUM ; $cfd2
+ ld de, W_PLAYERMOVENUM ; wcfd2
ld a, [W_FLAGS_D733]
bit 0, a
- ld a, [$ccd9]
+ ld a, [wccd9]
jr nz, .selected
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
.selected
- ld [$d0b5], a
+ ld [wd0b5], a
dec a
ld hl, Moves ; $4000
ld bc, $6
@@ -6036,80 +5951,80 @@ GetCurrentMove: ; 3eabe (f:6abe)
ld a, BANK(Moves)
call FarCopyData
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, $2
ld [W_LISTTYPE], a ; list type 2 = move name
call GetName
- ld de, $cd6d
+ ld de, wcd6d
jp CopyStringToCF4B
Func_3eb01: ; 3eb01 (f:6b01)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jp z, Func_3cc13
- ld a, [W_ENEMYMONID]
- ld [$cfe5], a
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wEnemyMonSpecies], a
+ ld [wd0b5], a
call GetMonHeader
- ld a, [W_ENEMYBATTSTATUS3] ; $d069
+ ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3
bit 3, a
- ld hl, $cceb
+ ld hl, wcceb
ld a, [hli]
ld b, [hl]
jr nz, .asm_3eb33
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
ld a, $98
ld b, $88
jr z, .asm_3eb33
- call GenRandomInBattle
+ call BattleRandom
ld b, a
- call GenRandomInBattle
+ call BattleRandom
.asm_3eb33
- ld hl, $cff1
+ ld hl, wEnemyMonDVs
ld [hli], a
ld [hl], b
- ld de, W_ENEMYMONLEVEL ; $cff3
- ld a, [W_CURENEMYLVL] ; $d127
+ ld de, wEnemyMonLevel ; wEnemyMonLevel
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld [de], a
inc de
ld b, $0
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
push hl
call CalcStats
pop hl
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
jr z, .asm_3eb65
- ld a, [W_ENEMYBATTSTATUS3] ; $d069
+ ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3
bit 3, a
jr nz, .asm_3eb86
- ld a, [W_ENEMYMONMAXHP] ; $cff4
+ ld a, [wEnemyMonMaxHP] ; wEnemyMonMaxHP
ld [hli], a
- ld a, [W_ENEMYMONMAXHP+1]
+ ld a, [wEnemyMonMaxHP+1]
ld [hli], a
xor a
inc hl
ld [hl], a
jr .asm_3eb86
.asm_3eb65
- ld hl, W_ENEMYMON1HP ; $d8a5 (aliases: W_WATERMONS)
- ld a, [wWhichPokemon] ; $cf92
- ld bc, $2c
+ ld hl, wEnemyMon1HP ; wd8a5 (aliases: W_WATERMONS)
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hli]
- ld [W_ENEMYMONCURHP], a ; $cfe6
+ ld [wEnemyMonHP], a ; wEnemyMonHP
ld a, [hli]
- ld [$cfe7], a
- ld a, [wWhichPokemon] ; $cf92
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld [wEnemyMonHP + 1], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wEnemyMonPartyPos], a
inc hl
ld a, [hl]
- ld [W_ENEMYMONSTATUS], a ; $cfe9
+ ld [wEnemyMonStatus], a ; wcfe9
jr .asm_3eb86
.asm_3eb86
ld hl, W_MONHTYPES
- ld de, W_ENEMYMONTYPES ; $cfea
+ ld de, wEnemyMonType ; wcfea
ld a, [hli] ; copy type 1
ld [de], a
inc de
@@ -6119,14 +6034,14 @@ Func_3eb01: ; 3eb01 (f:6b01)
ld a, [hli] ; copy catch rate
ld [de], a
inc de
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
jr nz, .asm_3ebb0
- ld hl, $d8ac
- ld a, [wWhichPokemon] ; $cf92
- ld bc, $2c
+ ld hl, wEnemyMon1Moves
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
jr .asm_3ebca
.asm_3ebb0
@@ -6146,16 +6061,14 @@ Func_3eb01: ; 3eb01 (f:6b01)
dec de
dec de
xor a
- ld [$cee9], a
- ld a, $3e
- call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8))
+ ld [wHPBarMaxHP], a
+ predef WriteMonMoves
.asm_3ebca
- ld hl, W_ENEMYMONMOVES
- ld de, $cffd
- ld a, $5e
- call Predef ; indirect jump to LoadMovePPs (f473 (3:7473))
+ ld hl, wEnemyMonMoves
+ ld de, wEnemyMonSpecial + 1
+ predef LoadMovePPs
ld hl, W_MONHBASESTATS
- ld de, $d002
+ ld de, wd002
ld b, $5
.asm_3ebdd
ld a, [hli]
@@ -6169,31 +6082,29 @@ Func_3eb01: ; 3eb01 (f:6b01)
inc de
ld a, [hl] ; base exp
ld [de], a
- ld a, [W_ENEMYMONID]
- ld [$d11e], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, W_ENEMYMONNAME
+ ld hl, wcd6d
+ ld de, wEnemyMonNick
ld bc, $b
call CopyData
- ld a, [W_ENEMYMONID]
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld a, [wEnemyMonSpecies2]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
- ld hl, wPokedexSeen ; $d30a
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, W_ENEMYMONLEVEL ; $cff3
- ld de, $cd23
+ ld hl, wPokedexSeen ; wd30a
+ predef FlagActionPredef
+ ld hl, wEnemyMonLevel ; wEnemyMonLevel
+ ld de, wcd23
ld bc, $b
call CopyData
ld a, $7
ld b, $8
- ld hl, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonStatMods ; wcd2e
.asm_3ec2d
ld [hli], a
dec b
@@ -6201,53 +6112,52 @@ Func_3eb01: ; 3eb01 (f:6b01)
ret
Func_3ec32: ; 3ec32 (f:6c32)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3ec4d
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
callab Func_372d6
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
call ClearScreen
.asm_3ec4d
call DelayFrame
- ld a, $30
- call Predef ; indirect jump to Func_7096d (7096d (1c:496d))
+ predef BattleTransition
callab Func_3ee58
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $ff
- ld [$cfcb], a
- call CleanLCD_OAM
+ ld [wcfcb], a
+ call ClearSprites
call ClearScreen
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld [$ffb0], a
ld [rWY], a ; $ff4a
ld [$ffd7], a
- ld hl, $d060
+ ld hl, wd060
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_PLAYERDISABLEDMOVE], a ; $d06d
+ ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE
ret
Func_3ec81: ; 3ec81 (f:6c81)
push bc
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld b, a
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_PLAYERMONLEVEL], a ; $d022
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wBattleMonLevel], a ; wBattleMonLevel
ld a, b
- ld [W_ENEMYMONLEVEL], a ; $cff3
+ ld [wEnemyMonLevel], a ; wEnemyMonLevel
pop bc
ret
Func_3ec92: ; 3ec92 (f:6c92)
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
ld de, RedPicBack ; $7e0a
jr nz, .asm_3ec9e
@@ -6255,8 +6165,7 @@ Func_3ec92: ; 3ec92 (f:6c92)
.asm_3ec9e
ld a, BANK(RedPicBack)
call UncompressSpriteFromDE
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
+ predef ScaleSpriteByTwo
ld hl, wOAMBuffer
xor a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
@@ -6288,26 +6197,24 @@ Func_3ec92: ; 3ec92 (f:6c92)
ld e, a
dec b
jr nz, .asm_3ecb2
- ld de, $9310
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers
ld a, $a
ld [$0], a
xor a
ld [$4000], a
- ld hl, $8000
+ ld hl, vSprites
ld de, S_SPRITEBUFFER1
ld a, [H_LOADEDROMBANK]
ld b, a
- ld c, $31
+ ld c, 7 * 7
call CopyVideoData
xor a
ld [$0], a
ld a, $31
ld [$ffe1], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
- ld a, $1
- jp Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 1, 5
+ predef_jump Func_3f0c6
Func_3ed02: ; 3ed02 (f:6d02)
callab Func_39680
@@ -6335,10 +6242,10 @@ Func_3ed27: ; 3ed27 (f:6d27)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ed48
- ld a, [W_PLAYERMONSTATUS] ; $d018
+ ld a, [wBattleMonStatus] ; wBattleMonStatus
and $40
ret z
- ld hl, $d02a
+ ld hl, wBattleMonSpeed + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6354,10 +6261,10 @@ Func_3ed27: ; 3ed27 (f:6d27)
ld [hl], b
ret
.asm_3ed48
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
and $40
ret z
- ld hl, $cffb
+ ld hl, wEnemyMonSpeed + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6377,10 +6284,10 @@ Func_3ed64: ; 3ed64 (f:6d64)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ed81
- ld a, [W_PLAYERMONSTATUS] ; $d018
+ ld a, [wBattleMonStatus] ; wBattleMonStatus
and $10
ret z
- ld hl, $d026
+ ld hl, wBattleMonAttack + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6394,10 +6301,10 @@ Func_3ed64: ; 3ed64 (f:6d64)
ld [hl], b
ret
.asm_3ed81
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
and $10
ret z
- ld hl, $cff7
+ ld hl, wEnemyMonAttack + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6424,16 +6331,16 @@ Func_3ed99: ; 3ed99 (f:6d99)
Func_3eda5: ; 3eda5 (f:6da5)
push bc
push bc
- ld a, [$d11e]
+ ld a, [wd11e]
and a
ld a, c
- ld hl, W_PLAYERMONATK
- ld de, $cd12
- ld bc, wPlayerMonAttackMod ; $cd1a
+ ld hl, wBattleMonAttack
+ ld de, wcd12
+ ld bc, wPlayerMonAttackMod ; wcd1a
jr z, .asm_3edc0
- ld hl, W_ENEMYMONATTACK
- ld de, $cd26
- ld bc, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonAttack
+ ld de, wcd26
+ ld bc, wEnemyMonStatMods ; wcd2e
.asm_3edc0
add c
ld c, a
@@ -6505,7 +6412,7 @@ Func_3ee19: ; 3ee19 (f:6e19)
ret z
ld a, [W_OBTAINEDBADGES]
ld b, a
- ld hl, W_PLAYERMONATK
+ ld hl, wBattleMonAttack
ld c, $4
.asm_3ee28
srl b
@@ -6552,22 +6459,22 @@ Func_3ee5b: ; 3ee5b (f:6e5b)
add a
jr c, .asm_3ee7c
ld hl, BattleHudTiles1 ; $6080
- ld de, $96d0
+ ld de, vChars2 + $6d0
ld bc, $18
ld a, BANK(BattleHudTiles1)
call FarCopyDataDouble
ld hl, BattleHudTiles2 ; $6098
- ld de, $9730
+ ld de, vChars2 + $730
ld bc, $30
ld a, BANK(BattleHudTiles2)
jp FarCopyDataDouble
.asm_3ee7c
ld de, BattleHudTiles1 ; $6080
- ld hl, $96d0
+ ld hl, vChars2 + $6d0
ld bc, (BANK(BattleHudTiles1) << 8) + $03
call CopyVideoDataDouble
ld de, BattleHudTiles2 ; $6098
- ld hl, $9730
+ ld hl, vChars2 + $730
ld bc, (BANK(BattleHudTiles2) << 8) + $06
jp CopyVideoDataDouble
@@ -6578,34 +6485,39 @@ Func_3ee94: ; 3ee94 (f:6e94)
TerminatorText_3ee9a: ; 3ee9a (f:6e9a)
db "@"
-; generates a random number unless in link battle
-; stores random number in A
-GenRandomInBattle: ; 3ee9b (f:6e9b)
+
+BattleRandom:
+; Link battles use a shared PRNG.
+
ld a, [W_ISLINKBATTLE]
cp $4
- jp nz, GenRandom
+ jp nz, Random
+
push hl
push bc
- ld a, [$ccde]
+ ld a, [wccde]
ld c, a
- ld b, $0
- ld hl, $d148
+ ld b, 0
+ ld hl, wd148
add hl, bc
inc a
- ld [$ccde], a
- cp $9
+ ld [wccde], a
+ cp 9
ld a, [hl]
pop bc
pop hl
ret c
+
push hl
push bc
push af
+
xor a
- ld [$ccde], a
- ld hl, $d148
- ld b, $9
-.asm_3eec5
+ ld [wccde], a
+
+ ld hl, wd148
+ ld b, 9
+.loop
ld a, [hl]
ld c, a
add a
@@ -6614,22 +6526,24 @@ GenRandomInBattle: ; 3ee9b (f:6e9b)
inc a
ld [hli], a
dec b
- jr nz, .asm_3eec5 ; 0x3eecd $f6
+ jr nz, .loop
+
pop af
pop bc
pop hl
ret
+
Func_3eed3: ; 3eed3 (f:6ed3)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES)
- ld de, W_ENEMYBATTSTATUS1 ; $d067
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld hl, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType)
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3eeea
- ld hl, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES)
- ld de, W_ENEMYBATTSTATUS1 ; $d067
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld hl, wBattleMonType1 ; wd019 (aliases: wBattleMonType)
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3eeea
cp SELFDESTRUCT
jr z, .asm_3eef1
@@ -6645,77 +6559,75 @@ Func_3eed3: ; 3eed3 (f:6ed3)
ld a, [hl]
cp GHOST
ret z
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
ret nz
ld a, MEGA_PUNCH
- ld [$cc5b], a
+ ld [wcc5b], a
PlayMoveAnimation: ; 3ef07 (f:6f07)
- ld [$D07C],a
+ ld [W_ANIMATIONID],a
call Delay3
- PREDEF_JUMP MoveAnimationPredef ; predef 8
+ predef_jump MoveAnimation
InitBattle: ; 3ef12 (f:6f12)
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
and a
jr z, asm_3ef23
InitOpponent: ; 3ef18 (f:6f18)
- ld a, [W_CUROPPONENT] ; $d059
- ld [$cf91], a
- ld [W_ENEMYMONID], a
+ ld a, [W_CUROPPONENT] ; wd059
+ ld [wcf91], a
+ ld [wEnemyMonSpecies2], a
jr asm_3ef3d
asm_3ef23: ; 3ef23 (f:6f23)
- ld a, [$d732]
+ ld a, [wd732]
bit 1, a
jr z, .asm_3ef2f
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
bit 1, a
ret nz
.asm_3ef2f
- ld a, [$d13c]
+ ld a, [wd13c]
and a
ret nz
callab Func_13870
ret nz
asm_3ef3d: ; 3ef3d (f:6f3d)
- ld a, [$d35d]
+ ld a, [wd35d]
push af
- ld hl, $d358
+ ld hl, wd358
ld a, [hl]
push af
res 1, [hl]
callab Func_525af
- ld a, [W_ENEMYMONID]
+ ld a, [wEnemyMonSpecies2]
sub $c8
jp c, InitWildBattle
- ld [W_TRAINERCLASS], a ; $d031
+ ld [W_TRAINERCLASS], a ; wd031
call GetTrainerInformation
callab ReadTrainer
call Func_3ec32
call _LoadTrainerPic
xor a
- ld [W_ENEMYMONID], a
+ ld [wEnemyMonSpecies2], a
ld [$ffe1], a
dec a
- ld [wAICount], a ; $ccdf
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ ld [wAICount], a ; wccdf
+ hlCoord 12, 0
+ predef Func_3f0c6
ld a, $ff
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld [wEnemyMonPartyPos], a
ld a, $2
- ld [W_ISINBATTLE], a ; $d057
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
jp Func_3efeb
InitWildBattle: ; 3ef8b (f:6f8b)
ld a, $1
- ld [W_ISINBATTLE], a ; $d057
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
call Func_3eb01
call Func_3ec32
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
cp MAROWAK
jr z, .isGhost
call IsGhostBattle
@@ -6728,7 +6640,7 @@ InitWildBattle: ; 3ef8b (f:6f8b)
ld a, c
ld [hli], a ; write front sprite pointer
ld [hl], b
- ld hl, W_ENEMYMONNAME ; set name to "GHOST"
+ ld hl, wEnemyMonNick ; set name to "GHOST"
ld a, "G"
ld [hli], a
ld a, "H"
@@ -6740,26 +6652,24 @@ InitWildBattle: ; 3ef8b (f:6f8b)
ld a, "T"
ld [hli], a
ld [hl], "@"
- ld a, [$cf91]
+ ld a, [wcf91]
push af
ld a, MON_GHOST
- ld [$cf91], a
- ld de, $9000
+ ld [wcf91], a
+ ld de, vFrontPic
call LoadMonFrontSprite ; load ghost sprite
pop af
- ld [$cf91], a
+ ld [wcf91], a
jr .spriteLoaded
.isNoGhost
- ld de, $9000
+ ld de, vFrontPic
call LoadMonFrontSprite ; load mon sprite
.spriteLoaded
xor a
- ld [W_TRAINERCLASS], a ; $d031
+ ld [W_TRAINERCLASS], a ; wd031
ld [$ffe1], a
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 12, 0
+ predef Func_3f0c6
Func_3efeb: ; 3efeb (f:6feb)
ld b, $0
@@ -6779,25 +6689,23 @@ Func_3efeb: ; 3efeb (f:6feb)
ld a, $9c
ld [$ffbd], a
call LoadScreenTilesFromBuffer1
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50a
call ClearScreenArea
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
ld bc, $40a
call ClearScreenArea
- call CleanLCD_OAM
- ld a, [W_ISINBATTLE] ; $d057
+ call ClearSprites
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
call z, Func_3cdec
call Func_3c11e
callab Func_137aa
pop af
- ld [$d358], a
+ ld [wd358], a
pop af
- ld [$d35d], a
- ld a, [$d0d4]
+ ld [wd35d], a
+ ld a, [wd0d4]
ld [$ffd7], a
scf
ret
@@ -6806,38 +6714,38 @@ TerminatorText_3f04a: ; 3f04a (f:704a)
db "@"
_LoadTrainerPic: ; 3f04b (f:704b)
-; $d033-$d034 contain pointer to pic
- ld a, [$d033]
+; wd033-wd034 contain pointer to pic
+ ld a, [wd033]
ld e, a
- ld a, [$d034]
+ ld a, [wd034]
ld d, a ; de contains pointer to trainer pic
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
and a
ld a, Bank(TrainerPics) ; this is where all the trainer pics are (not counting Red's)
jr z, .loadSprite
ld a, Bank(RedPicFront)
.loadSprite
call UncompressSpriteFromDE
- ld de, $9000
+ ld de, vFrontPic
ld a, $77
ld c, a
jp LoadUncompressedSpriteData
Func_3f069: ; 3f069 (f:7069)
xor a
- ld [$c0f1], a
- ld [$c0f2], a
+ ld [wc0f1], a
+ ld [wc0f2], a
jp PlaySound
Func_3f073: ; 3f073 (f:7073)
- ld a, [$cc4f]
+ ld a, [wPredefRegisters]
ld h, a
- ld a, [$cc50]
+ ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld b, $4c
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jr z, .asm_3f0bc
add b
@@ -6846,19 +6754,17 @@ Func_3f073: ; 3f073 (f:7073)
ld bc, $ffd7
add hl, bc
ld a, $1
- ld [$cd6c], a
+ ld [wcd6c], a
ld bc, $303
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $4
call DelayFrames
ld bc, $ffd7
add hl, bc
xor a
- ld [$cd6c], a
+ ld [wcd6c], a
ld bc, $505
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $5
call DelayFrames
ld bc, $ffd7
@@ -6872,9 +6778,9 @@ Func_3f073: ; 3f073 (f:7073)
jr asm_3f0d0
Func_3f0c6: ; 3f0c6 (f:70c6)
- ld a, [$cc4f]
+ ld a, [wPredefRegisters]
ld h, a
- ld a, [$cc50]
+ ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
asm_3f0d0: ; 3f0d0 (f:70d0)
@@ -6923,24 +6829,22 @@ asm_3f0d0: ; 3f0d0 (f:70d0)
jr nz, .asm_3f0f4
ret
-; loads back sprite of mon to $8000
-; assumes the corresponding mon header is already loaded
-LoadMonBackSprite: ; 3f103 (f:7103)
- ld a, [$cfd9]
- ld [$cf91], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+LoadMonBackPic:
+; Assumes the monster's attributes have
+; been loaded with GetMonHeader.
+ ld a, [wBattleMonSpecies2]
+ ld [wcf91], a
+ hlCoord 1, 5
ld b, $7
ld c, $8
call ClearScreenArea
ld hl, W_MONHBACKSPRITE - W_MONHEADER
call UncompressMonSprite
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
- ld de, $9310
+ predef ScaleSpriteByTwo
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers ; combine the two buffers to a single 2bpp sprite
- ld hl, $8000
- ld de, $9310
+ ld hl, vSprites
+ ld de, vBackPic
ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied
ld a, [H_LOADEDROMBANK]
ld b, a
@@ -7058,13 +6962,13 @@ MoveEffectPointerTable: ; 3f150 (f:7150)
dw DisableEffect ; DISABLE_EFFECT
SleepEffect: ; 3f1fc (f:71fc)
- ld de, W_ENEMYMONSTATUS ; $cfe9
- ld bc, W_ENEMYBATTSTATUS2 ; $d068
+ ld de, wEnemyMonStatus ; wcfe9
+ ld bc, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .asm_3f20e
- ld de, W_PLAYERMONSTATUS ; $d018
- ld bc, W_PLAYERBATTSTATUS2 ; $d063
+ ld de, wBattleMonStatus ; wBattleMonStatus
+ ld bc, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
.asm_3f20e
ld a, [bc]
@@ -7085,11 +6989,11 @@ SleepEffect: ; 3f1fc (f:71fc)
push de
call MoveHitTest
pop de
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3f242
.asm_3f231
- call GenRandomInBattle
+ call BattleRandom
and $7
jr z, .asm_3f231
ld [de], a
@@ -7108,13 +7012,13 @@ AlreadyAsleepText: ; 3f24a (f:724a)
db "@"
PoisonEffect: ; 3f24f (f:724f)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, wEnemyMonStatus ; wcfe9
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f260
- ld hl, W_PLAYERMONSTATUS ; $d018
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, wBattleMonStatus ; wBattleMonStatus
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f260
call CheckTargetSubstitute
jr nz, .asm_3f2d3
@@ -7140,12 +7044,12 @@ PoisonEffect: ; 3f24f (f:724f)
call MoveHitTest
pop de
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3f2d7
jr .asm_3f295
.asm_3f290
- call GenRandomInBattle
+ call BattleRandom
cp b
ret nc
.asm_3f295
@@ -7156,13 +7060,13 @@ PoisonEffect: ; 3f24f (f:724f)
ld a, [H_WHOSETURN] ; $fff3
and a
ld b, $c7
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
ld a, [de]
- ld de, W_PLAYERTOXICCOUNTER ; $d06c
+ ld de, W_PLAYERTOXICCOUNTER ; wd06c
jr nz, .asm_3f2b0
ld b, $a9
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYTOXICCOUNTER ; $d071
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYTOXICCOUNTER ; wd071
.asm_3f2b0
cp $5c
jr nz, .asm_3f2bd
@@ -7207,13 +7111,13 @@ DrainHPEffect: ; 3f2e9 (f:72e9)
jp Bankswitch
ExplodeEffect: ; 3f2f1 (f:72f1)
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, wBattleMonHP ; wd015
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f302
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3f302
xor a
ld [hli], a ; set the mon's HP to 0
@@ -7227,22 +7131,22 @@ ExplodeEffect: ; 3f2f1 (f:72f1)
FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
call CheckTargetSubstitute ;test bit 4 of d063/d068 flags [target has substitute flag]
ret nz ;return if they have a substitute, can't effect them
ld a, [$fff3] ;whose turn?
and a
jp nz, opponentAttacker
- ld a, [W_ENEMYMONSTATUS]
+ ld a, [wEnemyMonStatus]
and a
jp nz, CheckDefrost
;opponent has no existing status
ld a, [W_PLAYERMOVETYPE]
ld b, a
- ld a, [W_ENEMYMONTYPE1]
+ ld a, [wEnemyMonType1]
cp b
ret z ;return if they match [can't freeze an ice type etc.]
- ld a, [W_ENEMYMONTYPE2]
+ ld a, [wEnemyMonType2]
cp b
ret z ;return..
ld a, [W_PLAYERMOVEEFFECT]
@@ -7253,7 +7157,7 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
sub a, $1e ;subtract $1E to map to equivalent 10% chance effects
.next1
push af ;push effect...
- call GenRandomInBattle ;get random 8bit value for probability test
+ call BattleRandom ;get random 8bit value for probability test
cp b ;success?
pop bc ;...pop effect into C
ret nc ;do nothing if random value is >= 1A or 4D [no status applied]
@@ -7264,14 +7168,14 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
cp a, FREEZE_SIDE_EFFECT
jr z, .freeze
ld a, 1 << PAR
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
call Func_3ed27 ;quarter speed of affected monster
ld a, $a9
call Func_3fbb9 ;animation
jp PrintMayNotAttackText ;print paralysis text
.burn
ld a, 1 << BRN
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
call Func_3ed64
ld a, $a9
call Func_3fbb9 ;animation
@@ -7280,21 +7184,21 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
.freeze
call Func_3f9cf ;resets bit 5 of the D063/D068 flags
ld a, 1 << FRZ
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
ld a, $a9
call Func_3fbb9 ;animation
ld hl, FrozenText
jp PrintText
opponentAttacker: ; 3f382 (f:7382)
- ld a, [W_PLAYERMONSTATUS] ;this appears to the same as above with addresses swapped for opponent
+ ld a, [wBattleMonStatus] ;this appears to the same as above with addresses swapped for opponent
and a
jp nz, CheckDefrost
ld a, [W_ENEMYMOVETYPE]
ld b, a
- ld a, [W_PLAYERMONTYPE1]
+ ld a, [wBattleMonType1]
cp b
ret z
- ld a, [W_PLAYERMONTYPE2]
+ ld a, [wBattleMonType2]
cp b
ret z
ld a, [W_ENEMYMOVEEFFECT]
@@ -7305,7 +7209,7 @@ opponentAttacker: ; 3f382 (f:7382)
sub a, $1e
.next1
push af
- call GenRandomInBattle
+ call BattleRandom
cp b
pop bc
ret nc
@@ -7315,18 +7219,18 @@ opponentAttacker: ; 3f382 (f:7382)
cp a, FREEZE_SIDE_EFFECT
jr z, .freeze
ld a, 1 << PAR
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
call Func_3ed27
jp PrintMayNotAttackText
.burn
ld a, 1 << BRN
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
call Func_3ed64
ld hl, BurnedText
jp PrintText
.freeze
ld a, 1 << FRZ
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
ld hl, FrozenText
jp PrintText
@@ -7350,10 +7254,10 @@ CheckDefrost: ; 3f3e2 (f:73e2)
sub a, FIRE
ret nz ;return if it isn't fire
;type is fire
- ld [W_ENEMYMONSTATUS], a ;set opponent status to 00 ["defrost" a frozen monster]
- ld hl, $d8a8 ;status of first opponent monster in their roster
- ld a, [W_ENEMYMONNUMBER]
- ld bc, $002c ;$2C bytes per roster entry
+ ld [wEnemyMonStatus], a ;set opponent status to 00 ["defrost" a frozen monster]
+ ld hl, wEnemyMon1Status
+ ld a, [wEnemyMonPartyPos]
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
xor a
ld [hl], a ;clear status in roster
@@ -7363,10 +7267,10 @@ CheckDefrost: ; 3f3e2 (f:73e2)
ld a, [W_ENEMYMOVETYPE] ;same as above with addresses swapped
sub a, FIRE
ret nz
- ld [W_PLAYERMONSTATUS], a
- ld hl, $d16f
+ ld [wBattleMonStatus], a
+ ld hl, wPartyMon1Status
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
xor a
ld [hl], a
@@ -7379,13 +7283,13 @@ FireDefrostedText: ; 3f423 (f:7423)
db "@"
StatModifierUpEffect: ; 3f428 (f:7428)
- ld hl, wPlayerMonStatMods ; $cd1a
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, wPlayerMonStatMods ; wcd1a
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f439
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f439
ld a, [de]
sub $a
@@ -7415,13 +7319,13 @@ StatModifierUpEffect: ; 3f428 (f:7428)
cp $4
jr nc, asm_3f4ca
push hl
- ld hl, $d026
- ld de, $cd12
+ ld hl, wBattleMonAttack + 1
+ ld de, wcd12
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f472
- ld hl, $cff7
- ld de, $cd26
+ ld hl, wEnemyMonAttack + 1
+ ld de, wcd26
.asm_3f472
push bc
sla c
@@ -7485,15 +7389,15 @@ asm_3f4ca: ; 3f4ca (f:74ca)
ld b, c
inc b
call Func_3f688
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
- ld de, W_PLAYERMOVENUM ; $cfd2
- ld bc, $ccf7
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
+ ld de, W_PLAYERMOVENUM ; wcfd2
+ ld bc, wccf7
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f4e6
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
- ld de, W_ENEMYMOVENUM ; $cfcc
- ld bc, $ccf3
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+ ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM
+ ld bc, wccf3
.asm_3f4e6
ld a, [de]
cp MINIMIZE
@@ -7541,9 +7445,9 @@ MonsStatsRoseText: ; 3f528 (f:7528)
ld hl, GreatlyRoseText
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f53b
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f53b
cp ATTACK_DOWN1_EFFECT
ret nc
@@ -7559,19 +7463,19 @@ RoseText: ; 3f547 (f:7547)
db "@"
StatModifierDownEffect: ; 3f54c (f:754c)
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
- ld bc, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
+ ld bc, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f572
- ld hl, wPlayerMonStatMods ; $cd1a
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
- ld bc, W_PLAYERBATTSTATUS1 ; $d062
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld hl, wPlayerMonStatMods ; wcd1a
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
+ ld bc, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .asm_3f572
- call GenRandomInBattle
+ call BattleRandom
cp $40
jp c, Func_3f65a
.asm_3f572
@@ -7580,7 +7484,7 @@ StatModifierDownEffect: ; 3f54c (f:754c)
ld a, [de]
cp ATTACK_DOWN_SIDE_EFFECT
jr c, .asm_3f58a
- call GenRandomInBattle
+ call BattleRandom
cp SPLASH_EFFECT
jp nc, Func_3f650
ld a, [de]
@@ -7594,7 +7498,7 @@ StatModifierDownEffect: ; 3f54c (f:754c)
pop bc
pop de
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jp nz, Func_3f65a
ld a, [bc]
@@ -7627,13 +7531,13 @@ StatModifierDownEffect: ; 3f54c (f:754c)
jr nc, asm_3f62c
push hl
push de
- ld hl, $cff7
- ld de, $cd26
+ ld hl, wEnemyMonAttack + 1
+ ld de, wcd26
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f5d8
- ld hl, $d026
- ld de, $cd12
+ ld hl, wBattleMonAttack + 1
+ ld de, wcd12
.asm_3f5d8
push bc
sla c
@@ -7736,9 +7640,9 @@ MonsStatsFellText: ; 3f661 (f:7661)
ld hl, FellText
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f674
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f674
cp $1a
ret c
@@ -7767,7 +7671,7 @@ Func_3f688: ; 3f688 (f:7688)
jr z, .asm_3f68d
jr .asm_3f690
.asm_3f696
- ld de, $cf4b
+ ld de, wcf4b
ld bc, $a
jp CopyData
@@ -7798,13 +7702,13 @@ StatModifierRatios: ; 3f6cb (f:76cb)
BideEffect: ; 3f6e5 (f:76e5)
ld hl, W_PLAYERBATTSTATUS1
ld de, W_NUMHITS
- ld bc, $d06a
+ ld bc, wd06a
ld a, [H_WHOSETURN]
and a
jr z, .asm_3f6fc
ld hl, W_ENEMYBATTSTATUS1
- ld de, $cd05
- ld bc, $d06f
+ ld de, wcd05
+ ld bc, wd06f
.asm_3f6fc
set 0, [hl] ; mon is now using bide
xor a
@@ -7813,7 +7717,7 @@ BideEffect: ; 3f6e5 (f:76e5)
ld [de], a
ld [W_PLAYERMOVEEFFECT], a
ld [W_ENEMYMOVEEFFECT], a
- call GenRandomInBattle
+ call BattleRandom
and $1
inc a
inc a
@@ -7823,16 +7727,16 @@ BideEffect: ; 3f6e5 (f:76e5)
jp Func_3fb96
ThrashPetalDanceEffect: ; 3f717 (f:7717)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f728
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
.asm_3f728
set 1, [hl] ; mon is now using thrash/petal dance
- call GenRandomInBattle
+ call BattleRandom
and $1
inc a
inc a
@@ -7845,19 +7749,19 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3f791
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3f77e
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld b, a
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
cp b
jr nc, .asm_3f76e
add b
ld c, a
inc c
.asm_3f751
- call GenRandomInBattle
+ call BattleRandom
cp c
jr nc, .asm_3f751
srl b
@@ -7866,40 +7770,40 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
jr nc, .asm_3f76e
ld c, $32
call DelayFrames
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
cp TELEPORT
jp nz, PrintDidntAffectText
jp PrintButItFailedText_
.asm_3f76e
call ReadPlayerMonCurHPAndStatus
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
- ld [$d078], a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld [wd078], a
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr .asm_3f7e4
.asm_3f77e
ld c, $32
call DelayFrames
ld hl, IsUnaffectedText
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
cp TELEPORT
jp nz, PrintText
jp PrintButItFailedText_
.asm_3f791
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3f7d1
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jr nc, .asm_3f7c1
add b
ld c, a
inc c
.asm_3f7a4
- call GenRandomInBattle
+ call BattleRandom
cp c
jr nc, .asm_3f7a4
srl b
@@ -7908,23 +7812,23 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
jr nc, .asm_3f7c1
ld c, $32
call DelayFrames
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
cp TELEPORT
jp nz, PrintDidntAffectText
jp PrintButItFailedText_
.asm_3f7c1
call ReadPlayerMonCurHPAndStatus
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
- ld [$d078], a
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld [wd078], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
jr .asm_3f7e4
.asm_3f7d1
ld c, $32
call DelayFrames
ld hl, IsUnaffectedText
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
cp TELEPORT
jp nz, PrintText
jp Func_3fb4e
@@ -7957,24 +7861,24 @@ WasBlownAwayText: ; 3f80c (f:780c)
db "@"
TwoToFiveAttacksEffect: ; 3f811 (f:7811)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
- ld bc, W_NUMHITS ; $d074
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
+ ld bc, W_NUMHITS ; wd074
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f828
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
- ld bc, $cd05
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
+ ld bc, wcd05
.asm_3f828
bit 2, [hl] ; is mon attacking multiple times?
ret nz
set 2, [hl] ; mon is now attacking multiple times
- ld hl, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f838
- ld hl, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f838
ld a, [hl]
cp TWINEEDLE_EFFECT
@@ -7982,11 +7886,11 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811)
cp ATTACK_TWICE_EFFECT
ld a, $2
jr z, .asm_3f853
- call GenRandomInBattle
+ call BattleRandom
and $3
cp $2
jr c, .asm_3f851
- call GenRandomInBattle
+ call BattleRandom
and $3
.asm_3f851
inc a
@@ -8003,13 +7907,13 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811)
FlichSideEffect: ; 3f85b (f:785b)
call CheckTargetSubstitute
ret nz
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f870
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f870
ld a, [de]
cp FLINCH_SIDE_EFFECT1
@@ -8017,7 +7921,7 @@ FlichSideEffect: ; 3f85b (f:785b)
jr z, .asm_3f879
ld b, $4d ; ~30% chance of flinch
.asm_3f879
- call GenRandomInBattle
+ call BattleRandom
cp b
ret nc
set 3, [hl] ; set mon's status to flinching
@@ -8030,14 +7934,14 @@ OneHitKOEffect: ; 3f884 (f:7884)
jp Bankswitch
ChargeEffect: ; 3f88c (f:788c)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
ld b, $ae
jr z, .asm_3f8a1
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
ld b, $af
.asm_3f8a1
set 4, [hl]
@@ -8055,18 +7959,18 @@ ChargeEffect: ; 3f88c (f:788c)
ld b, $c0
.asm_3f8b6
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, b
call Func_3fbb9
ld a, [de]
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, ChargeMoveEffectText ; $78c8
jp PrintText
ChargeMoveEffectText: ; 3f8c8 (f:78c8)
TX_FAR _ChargeMoveEffectText
db $08 ; asm
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp RAZOR_WIND
ld hl, MadeWhirlwindText ; $78f9
jr z, .asm_3f8f8
@@ -8112,23 +8016,23 @@ DugAHoleText: ; 3f912 (f:7912)
db "@"
TrappingEffect: ; 3f917 (f:7917)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f928
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
.asm_3f928
bit 5, [hl]
ret nz
call Func_3f9cf
set 5, [hl]
- call GenRandomInBattle
+ call BattleRandom
and $3
cp $2
jr c, .asm_3f93e
- call GenRandomInBattle
+ call BattleRandom
and $3
.asm_3f93e
inc a
@@ -8151,7 +8055,7 @@ RecoilEffect: ; 3f951 (f:7951)
jp Bankswitch
ConfusionSideEffect: ; 3f959 (f:7959)
- call GenRandomInBattle
+ call BattleRandom
cp $19
ret nc
jr Func_3f96f
@@ -8160,26 +8064,26 @@ ConfusionEffect: ; 3f961 (f:7961)
call CheckTargetSubstitute
jr nz, Func_3f9a6
call MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, Func_3f9a6
Func_3f96f: ; 3f96f (f:796f)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld bc, $d070
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld bc, wd070
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f986
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld bc, $d06b
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld bc, wd06b
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f986
bit 7, [hl] ; is mon confused?
jr nz, Func_3f9a6
set 7, [hl] ; mon is now confused
push af
- call GenRandomInBattle
+ call BattleRandom
and $3
inc a
inc a
@@ -8212,22 +8116,22 @@ SubstituteEffect: ; 3f9b9 (f:79b9)
jp Bankswitch
HyperBeamEffect: ; 3f9c1 (f:79c1)
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f9cc
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3f9cc
set 5, [hl] ; mon now needs to recharge
ret
Func_3f9cf: ; 3f9cf (f:79cf)
push hl
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f9db
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
.asm_3f9db
res 5, [hl] ; mon no longer needs to recharge
pop hl
@@ -8252,20 +8156,20 @@ MimicEffect: ; 3f9ed (f:79ed)
jr nz, .asm_3fa74
ld a, [H_WHOSETURN]
and a
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
ld a, [W_PLAYERBATTSTATUS1]
jr nz, .asm_3fa13
ld a, [W_ISLINKBATTLE]
cp $4
jr nz, .asm_3fa3a
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [W_ENEMYBATTSTATUS1]
.asm_3fa13
bit 6, a
jr nz, .asm_3fa74
.asm_3fa17
push hl
- call GenRandomInBattle
+ call BattleRandom
and $3
ld c, a
ld b, $0
@@ -8277,10 +8181,10 @@ MimicEffect: ; 3f9ed (f:79ed)
ld d, a
ld a, [H_WHOSETURN]
and a
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
ld a, [wPlayerMoveListIndex]
jr z, .asm_3fa5f
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [wEnemyMoveListIndex]
jr .asm_3fa5f
.asm_3fa3a
@@ -8293,21 +8197,21 @@ MimicEffect: ; 3f9ed (f:79ed)
ld [wMoveMenuType], a
call MoveSelectionMenu
call LoadScreenTilesFromBuffer1
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [wCurrentMenuItem]
ld c, a
ld b, $0
add hl, bc
ld d, [hl]
pop af
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
.asm_3fa5f
ld c, a
ld b, $0
add hl, bc
ld a, d
ld [hl], a
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call Func_3fba8
ld hl, MimicLearnedMoveText
@@ -8330,23 +8234,23 @@ SplashEffect: ; 3fa84 (f:7a84)
DisableEffect: ; 3fa8a (f:7a8a)
call MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3fb06
- ld de, W_ENEMYDISABLEDMOVE ; $d072
- ld hl, W_ENEMYMONMOVES
+ ld de, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE
+ ld hl, wEnemyMonMoves
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3faa4
- ld de, W_PLAYERDISABLEDMOVE ; $d06d
- ld hl, W_PLAYERMONMOVES
+ ld de, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE
+ ld hl, wBattleMonMoves
.asm_3faa4
ld a, [de]
and a
jr nz, .asm_3fb06
.asm_3faa8
push hl
- call GenRandomInBattle
+ call BattleRandom
and $3
ld c, a
ld b, $0
@@ -8355,18 +8259,18 @@ DisableEffect: ; 3fa8a (f:7a8a)
pop hl
and a
jr z, .asm_3faa8
- ld [$d11e], a
+ ld [wd11e], a
push hl
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
jr nz, .asm_3facf
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
pop hl
jr nz, .asm_3fae1
push hl
- ld hl, W_ENEMYMONPP ; $cffe
+ ld hl, wEnemyMonPP ; wcffe
.asm_3facf
push hl
ld a, [hli]
@@ -8384,7 +8288,7 @@ DisableEffect: ; 3fa8a (f:7a8a)
and a
jr z, .asm_3faa8
.asm_3fae1
- call GenRandomInBattle
+ call BattleRandom
and $7
inc a
inc c
@@ -8392,13 +8296,13 @@ DisableEffect: ; 3fa8a (f:7a8a)
add c
ld [de], a
call Func_3fb89
- ld hl, $ccee
+ ld hl, wccee
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3faf8
inc hl
.asm_3faf8
- ld a, [$d11e]
+ ld a, [wd11e]
ld [hl], a
call GetMoveName
ld hl, MoveWasDisabledText ; $7b09
@@ -8455,7 +8359,7 @@ NoEffectText: ; 3fb49 (f:7b49)
db "@"
Func_3fb4e: ; 3fb4e (f:7b4e)
- ld a, [$ccf4]
+ ld a, [wccf4]
and a
ret nz
@@ -8489,11 +8393,11 @@ ParalyzedMayNotAttackText: ; 3fb74 (f:7b74)
CheckTargetSubstitute: ; 3fb79 (f:7b79)
push hl
- ld hl, $d068
+ ld hl, W_ENEMYBATTSTATUS2
ld a, [$fff3] ;whose turn?
and a
jr z, .next1
- ld hl, $d063
+ ld hl, W_PLAYERBATTSTATUS2
.next1
bit 4, [hl] ;test bit 4 in d063/d068 flags
pop hl
@@ -8502,45 +8406,44 @@ CheckTargetSubstitute: ; 3fb79 (f:7b79)
Func_3fb89: ; 3fb89 (f:7b89)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3fb94
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3fb94
and a
ret z
Func_3fb96: ; 3fb96 (f:7b96)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $6
jr z, .asm_3fba2
ld a, $3
.asm_3fba2
- ld [$cc5b], a
+ ld [wcc5b], a
jp Func_3fbbc
Func_3fba8: ; 3fba8 (f:7ba8)
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3fbb7
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3fbb7
and a
ret z
Func_3fbb9: ; 3fbb9 (f:7bb9)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
Func_3fbbc: ; 3fbbc (f:7bbc)
push hl
push de
push bc
- ld a, $8
- call Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e))
+ predef MoveAnimation
pop bc
pop de
pop hl
diff --git a/engine/battle/d.asm b/engine/battle/d.asm
index a6ad21ea..d23c9114 100755
--- a/engine/battle/d.asm
+++ b/engine/battle/d.asm
@@ -1,25 +1,21 @@
Func_372d6: ; 372d6 (d:72d6)
call LoadTextBoxTilePatterns
- FuncCoord 3, 4 ; $c3f3
- ld hl, Coord
+ hlCoord 3, 4
ld b, $7
ld c, $c
call TextBoxBorder
- FuncCoord 4, 5 ; $c408
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 4, 5
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
- ld de, W_GRASSRATE ; $d887
+ hlCoord 4, 10
+ ld de, W_GRASSRATE ; W_GRASSRATE
call PlaceString
- FuncCoord 9, 8 ; $c449
- ld hl, Coord
+ hlCoord 9, 8
ld a, $69
ld [hli], a
ld [hl], $6a
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
callab SetupPlayerAndEnemyPokeballs
ld c, $96
jp DelayFrames
diff --git a/engine/battle/e.asm b/engine/battle/e.asm
index ada3071e..8b0476ca 100755
--- a/engine/battle/e.asm
+++ b/engine/battle/e.asm
@@ -1,11 +1,11 @@
Func_39680: ; 39680 (e:5680)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$d060]
- ld hl, $d026
+ ld a, [wd060]
+ ld hl, wBattleMonAttack + 1
jr z, .asm_39691
- ld a, [$d065]
- ld hl, $cff7
+ ld a, [wd065]
+ ld hl, wEnemyMonAttack + 1
.asm_39691
ld c, $4
ld b, a
@@ -30,11 +30,11 @@ Func_3969f: ; 3969f (e:569f)
Func_396a7: ; 396a7 (e:56a7)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$d061]
- ld hl, W_PLAYERMONATK
+ ld a, [wd061]
+ ld hl, wBattleMonAttack
jr z, .asm_396b8
- ld a, [$d066]
- ld hl, W_ENEMYMONATTACK
+ ld a, [wd066]
+ ld hl, wEnemyMonAttack
.asm_396b8
ld c, $4
ld b, a
@@ -63,12 +63,11 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3)
; Load the enemy trainer's pic and scrolls it into
; the screen from the right.
xor a
- ld [W_ENEMYMONID], a
+ ld [wEnemyMonSpecies2], a
ld b, $1
call GoPAL_SET
callab _LoadTrainerPic
- FuncCoord 19, 0 ; $c3b3
- ld hl, Coord
+ hlCoord 19, 0
ld c, $0
.asm_396e9
inc c
@@ -114,7 +113,7 @@ Func_39707: ; 39707 (e:5707)
; unused slots are filled with 0, all used slots may be chosen with equal probability
AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
ld a, $a
- ld hl, $cee9 ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
+ ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
ld [hli], a ; move 1
ld [hli], a ; move 2
ld [hli], a ; move 3
@@ -123,7 +122,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
swap a
and $f
jr z, .noMoveDisabled
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
dec a
ld c, a
ld b, $0
@@ -165,8 +164,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
push de
jp [hl] ; execute modification function
.loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero
- ld hl, $cee9 ; temp move selection array
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wHPBarMaxHP ; temp move selection array
+ ld de, wEnemyMonMoves ; enemy moves
ld c, $4
.loopDecrementEntries
ld a, [de]
@@ -187,8 +186,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc a
cp $5
jr nz, .loopUndoPartialIteration
- ld hl, $cee9 ; temp move selection array
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wHPBarMaxHP ; temp move selection array
+ ld de, wEnemyMonMoves ; enemy moves
ld c, $4
.filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0)
ld a, [de]
@@ -209,10 +208,10 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc de
dec c
jr nz, .filterMinimalEntries
- ld hl, $cee9 ; use created temporary array as move set
+ ld hl, wHPBarMaxHP ; use created temporary array as move set
ret
.useOriginalMoveSet
- ld hl, W_ENEMYMONMOVES ; use original move set
+ ld hl, wEnemyMonMoves ; use original move set
ret
AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3)
@@ -223,11 +222,11 @@ AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3)
; discourages moves that cause no damage but only a status ailment if player's mon already has one
AIMoveChoiceModification1: ; 397ab (e:57ab)
- ld a, [W_PLAYERMONSTATUS]
+ ld a, [wBattleMonStatus]
and a
ret z ; return if no status ailment on player's mon
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -266,11 +265,11 @@ StatusAilmentMoveEffects ; 57e2
; slightly encourage moves with specific effects
AIMoveChoiceModification2: ; 397e7 (e:57e7)
- ld a, [$ccd5]
+ ld a, [wccd5]
cp $1
ret nz
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -297,8 +296,8 @@ AIMoveChoiceModification2: ; 397e7 (e:57e7)
; encourages moves that are effective against the player's mon
AIMoveChoiceModification3: ; 39817 (e:5817)
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -316,7 +315,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817)
pop de
pop bc
pop hl
- ld a, [$d11e]
+ ld a, [wd11e]
cp $10
jr z, .nextMove
jr c, .notEffectiveMove
@@ -328,7 +327,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817)
push bc
ld a, [W_ENEMYMOVETYPE]
ld d, a
- ld hl, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wEnemyMonMoves ; enemy moves
ld b, $5
ld c, $0
.loopMoves
@@ -374,7 +373,7 @@ ReadMove: ; 39884 (e:5884)
ld hl,Moves
ld bc,6
call AddNTimes
- ld de,$CFCC
+ ld de,W_ENEMYMOVENUM
call CopyData
pop bc
pop de
@@ -579,21 +578,21 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914)
INCLUDE "text/trainer_names.asm"
Func_39b87: ; 39b87 (e:5b87)
- ld hl, $d0dc
- ld de, $d0e1
+ ld hl, wd0dc
+ ld de, wd0e1
ld b, $0
.asm_39b8f
ld a, [hli]
and a
jr z, .asm_39bc1
push hl
- ld [$d0b5], a
+ ld [wd0b5], a
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, MOVE_NAME
ld [W_LISTTYPE], a
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
.asm_39ba7
ld a, [hli]
cp $50
@@ -603,7 +602,7 @@ Func_39b87: ; 39b87 (e:5b87)
jr .asm_39ba7
.asm_39bb0
ld a, b
- ld [$cd6c], a
+ ld [wcd6c], a
inc b
ld a, $4e
ld [de], a
@@ -631,71 +630,71 @@ Func_39b87: ; 39b87 (e:5b87)
ret
Func_39bd5: ; 39bd5 (e:5bd5)
- ld a, [$d11b]
+ ld a, [wd11b]
cp $1
jr nz, .asm_39be6
- ld hl, wEnemyPartyCount ; $d89c
- ld de, W_ENEMYMON1OT ; $d9ac OT names of other player
+ ld hl, wEnemyPartyCount ; wEnemyPartyCount
+ ld de, wEnemyMonOT ; wd9ac OT names of other player
ld a, $6
jr .asm_39c18
.asm_39be6
cp $4
jr nz, .calcAttackStat4
- ld hl, W_NUMINPARTY ; $d163
- ld de, W_PARTYMON1OT ; $d273
+ ld hl, wPartyCount ; wPartyCount
+ ld de, wPartyMonOT ; wd273
ld a, $5
jr .asm_39c18
.calcAttackStat4
cp $5
jr nz, .asm_39c02
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld de, MonsterNames ; $421e
ld a, $1
jr .asm_39c18
.asm_39c02
cp $2
jr nz, .asm_39c10
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld de, ItemNames ; $472b
ld a, $4
jr .asm_39c18
.asm_39c10
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld de, ItemNames ; $472b
ld a, ITEM_NAME
.asm_39c18
ld [W_LISTTYPE], a
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
ld a, e
- ld [$cf8d], a
+ ld [wcf8d], a
ld a, d
- ld [$cf8e], a
+ ld [wcf8e], a
ld bc, ItemPrices ; $4608
ld a, c
- ld [$cf8f], a
+ ld [wcf8f], a
ld a, b
- ld [$cf90], a
+ ld [wcf90], a
ret
Func_39c37: ; 39c37 (e:5c37)
- ld hl, W_PARTYMON1 ; $d164
- ld a, [$cc49]
+ ld hl, wPartySpecies
+ ld a, [wcc49]
and a
jr z, .asm_39c4b
dec a
jr z, .asm_39c48
- ld hl, $da81
+ ld hl, wBoxSpecies
jr .asm_39c4b
.asm_39c48
- ld hl, $d89d
+ ld hl, wEnemyPartyMons
.asm_39c4b
ld d, $0
add hl, de
ld a, [hl]
- ld [$cf91], a
+ ld [wcf91], a
ret
ReadTrainer: ; 39c53 (e:5c53)
@@ -705,7 +704,7 @@ ReadTrainer: ; 39c53 (e:5c53)
and a
ret nz
-; set [wEnemyPartyCount] to 0, [$D89D] to FF
+; set [wEnemyPartyCount] to 0, [wEnemyPartyMons] to FF
; XXX first is total enemy pokemon?
; XXX second is species of first pokemon?
ld hl,wEnemyPartyCount
@@ -754,11 +753,11 @@ ReadTrainer: ; 39c53 (e:5c53)
ld a,[hli]
and a ; have we reached the end of the trainer data?
jr z,.FinishUp
- ld [$CF91],a ; write species somewhere (XXX why?)
+ ld [wcf91],a ; write species somewhere (XXX why?)
ld a,1
- ld [$CC49],a
+ ld [wcc49],a
push hl
- call AddPokemonToParty
+ call AddPartyMon
pop hl
jr .LoopTrainerData
.SpecialTrainer
@@ -771,11 +770,11 @@ ReadTrainer: ; 39c53 (e:5c53)
jr z,.AddLoneMove
ld [W_CURENEMYLVL],a
ld a,[hli]
- ld [$CF91],a
+ ld [wcf91],a
ld a,1
- ld [$CC49],a
+ ld [wcc49],a
push hl
- call AddPokemonToParty
+ call AddPartyMon
pop hl
jr .SpecialTrainer
.AddLoneMove
@@ -791,8 +790,8 @@ ReadTrainer: ; 39c53 (e:5c53)
add hl,bc
ld a,[hli]
ld d,[hl]
- ld hl,W_ENEMYMON1MOVE3
- ld bc,W_ENEMYMON2MOVE3 - W_ENEMYMON1MOVE3
+ ld hl,wEnemyMon1Moves + 2
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld [hl],d
jr .FinishUp
@@ -821,13 +820,13 @@ ReadTrainer: ; 39c53 (e:5c53)
jr .FinishUp ; nope
.GiveTeamMoves
ld a,[hl]
- ld [$D95E],a
+ ld [wEnemyMon5Moves + 2],a
jr .FinishUp
.ChampionRival ; give moves to his team
; pidgeot
ld a,SKY_ATTACK
- ld [W_ENEMYMON1MOVE3],a
+ ld [wEnemyMon1Moves + 2],a
; starter
ld a,[W_RIVALSTARTER]
@@ -840,10 +839,10 @@ ReadTrainer: ; 39c53 (e:5c53)
ld b,BLIZZARD ; must be squirtle
.GiveStarterMove
ld a,b
- ld [W_ENEMYMON6MOVE3],a
+ ld [wEnemyMon6Moves + 2],a
.FinishUp ; XXX this needs documenting
xor a ; clear D079-D07B
- ld de,$D079
+ ld de,wd079
ld [de],a
inc de
ld [de],a
@@ -852,11 +851,10 @@ ReadTrainer: ; 39c53 (e:5c53)
ld a,[W_CURENEMYLVL]
ld b,a
.LastLoop
- ld hl,$D047
+ ld hl,wd047
ld c,2
push bc
- ld a,$B
- call Predef
+ predef AddBCDPredef
pop bc
inc de
inc de
@@ -898,7 +896,7 @@ TrainerAI: ; 3a52e (e:652e)
ld a,[hli]
ld h,[hl]
ld l,a
- call GenRandom
+ call Random
jp [hl]
TrainerAIPointers: ; 3a55c (e:655c)
@@ -985,7 +983,7 @@ CooltrainerFAI: ; 3a601 (e:6601)
BrockAI: ; 3a614 (e:6614)
; if his active monster has a status condition, use a full heal
- ld a,[W_ENEMYMONSTATUS]
+ ld a,[wEnemyMonStatus]
and a
ret z
jp AIUseFullHeal
@@ -1092,25 +1090,25 @@ Func_3a69b: ; 3a69b (e:669b)
AIUseFullRestore: ; 3a6a0 (e:66a0)
call AICureStatus
ld a,FULL_RESTORE
- ld [$CF05],a
+ ld [wcf05],a
ld de,wHPBarOldHP
- ld hl,$CFE7
+ ld hl,wEnemyMonHP + 1
ld a,[hld]
ld [de],a
inc de
ld a,[hl]
ld [de],a
inc de
- ld hl,$CFF5
+ ld hl,wEnemyMonMaxHP + 1
ld a,[hld]
ld [de],a
inc de
ld [wHPBarMaxHP],a
- ld [$CFE7],a
+ ld [wEnemyMonHP + 1],a
ld a,[hl]
ld [de],a
ld [wHPBarMaxHP+1],a
- ld [W_ENEMYMONCURHP],a
+ ld [wEnemyMonHP],a
jr Func_3a718
AIUsePotion: ; 3a6ca (e:66ca)
@@ -1133,8 +1131,8 @@ AIUseHyperPotion: ; 3a6d6 (e:66d6)
AIRecoverHP: ; 3a6da (e:66da)
; heal b HP and print "trainer used $(a) on pokemon!"
- ld [$CF05],a
- ld hl,$CFE7
+ ld [wcf05],a
+ ld hl,wEnemyMonHP + 1
ld a,[hl]
ld [wHPBarOldHP],a
add b
@@ -1151,7 +1149,7 @@ AIRecoverHP: ; 3a6da (e:66da)
inc hl
ld a,[hld]
ld b,a
- ld de,$CFF5
+ ld de,wEnemyMonMaxHP + 1
ld a,[de]
dec de
ld [wHPBarMaxHP],a
@@ -1174,18 +1172,16 @@ AIRecoverHP: ; 3a6da (e:66da)
Func_3a718: ; 3a718 (e:6718)
call AIPrintItemUse_
- FuncCoord 2, 2 ; $c3ca
- ld hl,Coord
+ hlCoord 2, 2
xor a
- ld [$CF94],a
- ld a,$48
- call Predef
+ ld [wListMenuID],a
+ predef UpdateHPBar2
jp DecrementAICount
Func_3a72a: ; 3a72a (e:672a)
ld a,[wEnemyPartyCount]
ld c,a
- ld hl,W_ENEMYMON1HP
+ ld hl,wEnemyMon1HP
ld d,0 ; keep count of unfainted monsters
@@ -1215,13 +1211,13 @@ Func_3a74b: ; 3a74b (e:674b)
; prepare to withdraw the active monster: copy hp, number, and status to roster
- ld a,[W_ENEMYMONNUMBER]
- ld hl,W_ENEMYMON1HP
- ld bc,$2C
+ ld a,[wEnemyMonPartyPos]
+ ld hl,wEnemyMon1HP
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld d,h
ld e,l
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld bc,4
call CopyData
@@ -1229,10 +1225,10 @@ Func_3a74b: ; 3a74b (e:674b)
call PrintText
ld a,1
- ld [$D11D],a
+ ld [wd11d],a
callab EnemySendOut
xor a
- ld [$D11D],a
+ ld [wd11d],a
ld a,[W_ISLINKBATTLE]
cp 4
@@ -1252,41 +1248,41 @@ AIUseFullHeal: ; 3a786 (e:6786)
AICureStatus: ; 3a791 (e:6791)
; cures the status of enemy's active pokemon
- ld a,[W_ENEMYMONNUMBER]
- ld hl,$D8A8
- ld bc,$2C
+ ld a,[wEnemyMonPartyPos]
+ ld hl,wEnemyMon1Status
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
xor a
ld [hl],a ; clear status in enemy team roster
- ld [W_ENEMYMONSTATUS],a ; clear status of active enemy
- ld hl,$D069
+ ld [wEnemyMonStatus],a ; clear status of active enemy
+ ld hl,W_ENEMYBATTSTATUS3
res 0,[hl]
ret
AIUseXAccuracy: ; 0x3a7a8 unused
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
AIUseGuardSpec: ; 3a7b5 (e:67b5)
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 1,[hl]
ld a,GUARD_SPEC_
jp AIPrintItemUse
AIUseDireHit: ; 0x3a7c2 unused
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 2,[hl]
ld a,DIRE_HIT
jp AIPrintItemUse
Func_3a7cf: ; 3a7cf (e:67cf)
ld [H_DIVISOR],a
- ld hl,$CFF4
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [H_DIVIDEND],a
ld a,[hl]
@@ -1297,7 +1293,7 @@ Func_3a7cf: ; 3a7cf (e:67cf)
ld c,a
ld a,[H_QUOTIENT + 2]
ld b,a
- ld hl,$CFE7
+ ld hl,wEnemyMonHP + 1
ld a,[hld]
ld e,a
ld a,[hl]
@@ -1330,11 +1326,11 @@ AIUseXSpecial: ; 3a804 (e:6804)
; fallthrough
AIIncreaseStat: ; 3a808 (e:6808)
- ld [$CF05],a
+ ld [wcf05],a
push bc
call AIPrintItemUse_
pop bc
- ld hl,$CFCD
+ ld hl,W_ENEMYMOVEEFFECT
ld a,[hld]
push af
ld a,[hl]
@@ -1352,14 +1348,14 @@ AIIncreaseStat: ; 3a808 (e:6808)
jp DecrementAICount
AIPrintItemUse: ; 3a82c (e:682c)
- ld [$CF05],a
+ ld [wcf05],a
call AIPrintItemUse_
jp DecrementAICount
AIPrintItemUse_: ; 3a835 (e:6835)
-; print "x used [$CF05] on z!"
- ld a,[$CF05]
- ld [$D11E],a
+; print "x used [wcf05] on z!"
+ ld a,[wcf05]
+ ld [wd11e],a
call GetItemName
ld hl, AIBattleUseItemText
jp PrintText
@@ -1371,7 +1367,7 @@ AIBattleUseItemText: ; 3a844 (e:6844)
DrawAllPokeballs: ; 3a849 (e:6849)
call LoadPartyPokeballGfx
call SetupOwnPartyPokeballs
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z ; return if wild pokémon
jp SetupEnemyPartyPokeballs
@@ -1382,36 +1378,36 @@ DrawEnemyPokeballs: ; 0x3a857
LoadPartyPokeballGfx: ; 3a85d (e:685d)
ld de, PokeballTileGraphics ; $697e
- ld hl, $8310
+ ld hl, vSprites + $310
ld bc, (BANK(PokeballTileGraphics) << 8) + $04
jp CopyVideoData
SetupOwnPartyPokeballs: ; 3a869 (e:6869)
call PlacePlayerHUDTiles
- ld hl, W_PARTYMON1DATA
- ld de, W_NUMINPARTY ; $d163
+ ld hl, wPartyMon1
+ ld de, wPartyCount ; wPartyCount
call SetupPokeballs
ld a, $60
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld [hli], a
ld [hl], a
ld a, $8
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
jp Func_3a8e1
SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
call PlaceEnemyHUDTiles
ld hl, wEnemyMons
- ld de, wEnemyPartyCount ; $d89c
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $48
ld [hli], a
ld [hl], $20
ld a, $f8
- ld [$cd3e], a
- ld hl, $c318
+ ld [wTrainerEngageDistance], a
+ ld hl, wOAMBuffer + $18
jp Func_3a8e1
SetupPokeballs: ; 0x3a8a6
@@ -1465,22 +1461,22 @@ PickPokeball: ; 3a8c2 (e:68c2)
ret
Func_3a8e1: ; 3a8e1 (e:68e1)
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld c, $6
.asm_3a8e6
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, [de]
ld [hli], a
xor a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld b, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
add b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
inc de
dec c
jr nz, .asm_3a8e6
@@ -1488,11 +1484,10 @@ Func_3a8e1: ; 3a8e1 (e:68e1)
PlacePlayerHUDTiles: ; 3a902 (e:6902)
ld hl, PlayerBattleHUDGraphicsTiles ; $6916
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld bc, $3
call CopyData
- FuncCoord 18, 10 ; $c47a
- ld hl, Coord
+ hlCoord 18, 10
ld de, rIE ; $ffff
jr PlaceHUDTiles
@@ -1504,11 +1499,10 @@ PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916)
PlaceEnemyHUDTiles: ; 3a919 (e:6919)
ld hl, EnemyBattleHUDGraphicsTiles ; $692d
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld bc, $3
call CopyData
- FuncCoord 1, 2 ; $c3c9
- ld hl, Coord
+ hlCoord 1, 2
ld de, $1
jr PlaceHUDTiles
@@ -1522,7 +1516,7 @@ PlaceHUDTiles: ; 3a930 (e:6930)
ld [hl], $73
ld bc, $14
add hl, bc
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
ld [hl], a
ld a, $8
.asm_3a93c
@@ -1531,33 +1525,33 @@ PlaceHUDTiles: ; 3a930 (e:6930)
dec a
jr nz, .asm_3a93c
add hl, de
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld [hl], a
ret
SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
call LoadPartyPokeballGfx
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld de, W_NUMINPARTY ; $d163
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
+ ld de, wPartyCount ; wPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $50
ld [hli], a
ld [hl], $40
ld a, $8
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
call Func_3a8e1
- ld hl, wEnemyMons ; $d8a4
- ld de, wEnemyPartyCount ; $d89c
+ ld hl, wEnemyMons ; wEnemyMon1Species
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $50
ld [hli], a
ld [hl], $68
- ld hl, $c318
+ ld hl, wOAMBuffer + $18
jp Func_3a8e1
; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
PokeballTileGraphics:: ; 3a97e (e:697e)
- INCBIN "gfx/pokeball.2bpp" \ No newline at end of file
+ INCBIN "gfx/pokeball.2bpp"
diff --git a/engine/battle/e_2.asm b/engine/battle/e_2.asm
index e6d6eddc..665807fe 100755
--- a/engine/battle/e_2.asm
+++ b/engine/battle/e_2.asm
@@ -1,13 +1,13 @@
HealEffect_: ; 3b9ec (e:79ec)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld de, W_PLAYERMONCURHP ; $d015
- ld hl, W_PLAYERMONMAXHP ; $d023
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld de, wBattleMonHP ; wd015
+ ld hl, wBattleMonMaxHP ; wd023
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3ba03
- ld de, W_ENEMYMONCURHP ; $cfe6
- ld hl, W_ENEMYMONMAXHP ; $cff4
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld de, wEnemyMonHP ; wEnemyMonHP
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3ba03
ld b, a
ld a, [de]
@@ -25,11 +25,11 @@ HealEffect_: ; 3b9ec (e:79ec)
push af
ld c, $32
call DelayFrames
- ld hl, W_PLAYERMONSTATUS ; $d018
+ ld hl, wBattleMonStatus ; wBattleMonStatus
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ba25
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
.asm_3ba25
ld a, [hl]
and a
@@ -85,17 +85,14 @@ HealEffect_: ; 3b9ec (e:79ec)
call BankswitchEtoF
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, $1
jr z, .asm_3ba83
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_3ba83
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
ld hl, Func_3cd5a ; $4d5a
call BankswitchEtoF
ld hl, RegainedHealthText ; $7aac
@@ -120,36 +117,36 @@ RegainedHealthText: ; 3baac (e:7aac)
db "@"
TransformEffect_: ; 3bab1 (e:7ab1)
- ld hl, W_PLAYERMONID
- ld de, $cfe5
- ld bc, W_ENEMYBATTSTATUS3 ; $d069
- ld a, [W_ENEMYBATTSTATUS1] ; $d067
+ ld hl, wBattleMonSpecies
+ ld de, wEnemyMonSpecies
+ ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3bad1
- ld hl, $cfe5
- ld de, W_PLAYERMONID
- ld bc, W_PLAYERBATTSTATUS3 ; $d064
- ld [wPlayerMoveListIndex], a ; $cc2e
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld hl, wEnemyMonSpecies
+ ld de, wBattleMonSpecies
+ ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
.asm_3bad1
bit 6, a ; is mon invulnerable to typical attacks? (fly/dig)
jp nz, Func_3bb8c
push hl
push de
push bc
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3bae4
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3bae4
bit 4, [hl]
push af
ld hl, Func_79747
ld b, BANK(Func_79747)
call nz, Bankswitch
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
add a
ld hl, Func_3fba8 ; $7ba8
ld b, BANK(Func_3fba8)
@@ -185,10 +182,10 @@ TransformEffect_: ; 3bab1 (e:7ab1)
and a
jr z, .asm_3bb32
ld a, [de]
- ld [$cceb], a
+ ld [wcceb], a
inc de
ld a, [de]
- ld [$ccec], a
+ ld [wccec], a
dec de
.asm_3bb32
ld a, [hli]
@@ -227,13 +224,13 @@ TransformEffect_: ; 3bab1 (e:7ab1)
.asm_3bb5d
pop hl
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- ld hl, $cd26
- ld de, $cd12
+ ld hl, wcd26
+ ld de, wcd12
call Func_3bb7d
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, wPlayerMonStatMods ; $cd1a
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, wPlayerMonStatMods ; wcd1a
call Func_3bb7d
ld hl, TransformedText ; $7b92
jp PrintText
@@ -259,13 +256,13 @@ TransformedText: ; 3bb92 (e:7b92)
db "@"
ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3bba8
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3bba8
ld a, [de]
cp LIGHT_SCREEN_EFFECT
diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm
index 426e391e..99e1492d 100755
--- a/engine/battle/safari_zone.asm
+++ b/engine/battle/safari_zone.asm
@@ -1,5 +1,5 @@
PrintSafariZoneBattleText: ; 4277 (1:4277)
- ld hl, $cce9
+ ld hl, wcce9
ld a, [hl]
and a
jr z, .asm_4284
@@ -15,11 +15,11 @@ PrintSafariZoneBattleText: ; 4277 (1:4277)
ld hl, SafariZoneAngryText
jr nz, .asm_429f
push hl
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
ld a, [W_MONHCATCHRATE]
- ld [$d007], a
+ ld [wd007], a
pop hl
.asm_429f
push hl
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index 3b1cbedd..fc049ceb 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -6,29 +6,27 @@ Func_5317: ; 5317 (1:5317)
call LoadFontTilePatterns
call LoadHpBarAndStatusTilePatterns
call LoadTrainerInfoTextBoxTiles
- FuncCoord 3, 8 ; $c443
- ld hl, Coord
+ hlCoord 3, 8
ld b, $2
ld c, $c
call Func_5ab3
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld de, PleaseWaitString ; $550f
call PlaceString
- ld hl, W_NUMHITS ; $d074
+ ld hl, W_NUMHITS ; wd074
xor a
ld [hli], a
ld [hl], $50
Func_5345: ; 5345
- ld hl, $d152
+ ld hl, wd152
ld a, $fd
ld b, $6
.asm_534c
ld [hli], a
dec b
jr nz, .asm_534c
- ld hl, $d141
+ ld hl, wd141
ld a, $fd
ld b, $7
.asm_5357
@@ -37,7 +35,7 @@ Func_5345: ; 5345
jr nz, .asm_5357
ld b, $a
.asm_535d
- call GenRandom
+ call Random
cp $fd
jr nc, .asm_535d
ld [hli], a
@@ -54,7 +52,7 @@ Func_5345: ; 5345
ld [hli], a
dec b
jr nz, .asm_5373
- ld hl, W_GRASSRATE ; $d887
+ ld hl, W_GRASSRATE ; W_GRASSRATE
ld bc, $1a9
.asm_537d
xor a
@@ -63,8 +61,8 @@ Func_5345: ; 5345
ld a, b
or c
jr nz, .asm_537d
- ld hl, W_PARTYMONEND ; $d16a
- ld de, $c512
+ ld hl, wPartyMons - 1
+ ld de, wTileMapBackup + 10
ld bc, $0
.asm_538d
inc c
@@ -114,20 +112,20 @@ Func_5345: ; 5345
call Delay3
ld a, $8
ld [rIE], a ; $ffff
- ld hl, $d141
+ ld hl, wd141
ld de, wTileMapBackup2
ld bc, $11
call Func_216f
ld a, $fe
ld [de], a
- ld hl, $d152
- ld de, $d893
+ ld hl, wd152
+ ld de, wd893
ld bc, $1a8
call Func_216f
ld a, $fe
ld [de], a
ld hl, wTileMapBackup
- ld de, $c5d0
+ ld de, wTileMapBackup + 200
ld bc, $c8
call Func_216f
ld a, $d
@@ -147,7 +145,7 @@ Func_5345: ; 5345
cp $fe
jr z, .asm_5415
dec hl
- ld de, $d148
+ ld de, wd148
ld c, $a
.asm_5427
ld a, [hli]
@@ -158,7 +156,7 @@ Func_5345: ; 5345
dec c
jr nz, .asm_5427
.asm_5431
- ld hl, $d896
+ ld hl, wd896
.asm_5434
ld a, [hli]
and a
@@ -168,7 +166,7 @@ Func_5345: ; 5345
cp $fe
jr z, .asm_5434
dec hl
- ld de, W_GRASSRATE ; $d887
+ ld de, W_GRASSRATE ; W_GRASSRATE
ld c, $b
.asm_5446
ld a, [hli]
@@ -178,7 +176,7 @@ Func_5345: ; 5345
inc de
dec c
jr nz, .asm_5446
- ld de, wEnemyPartyCount ; $d89c
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
ld bc, $194
.asm_5456
ld a, [hli]
@@ -191,7 +189,7 @@ Func_5345: ; 5345
or c
jr nz, .asm_5456
ld de, wTileMapBackup
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
ld c, $2
.asm_546a
ld a, [de]
@@ -206,7 +204,7 @@ Func_5345: ; 5345
jr z, .asm_5489
push hl
push bc
- ld b, $0
+ ld b, 0
dec a
ld c, a
add hl, bc
@@ -216,11 +214,11 @@ Func_5345: ; 5345
pop hl
jr .asm_546a
.asm_5489
- ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267
+ ld hl, wPartyMons + $fc ; wd267
dec c
jr nz, .asm_546a
- ld de, $c5d0
- ld hl, W_WATERRATE ; $d8a4
+ ld de, wTileMapBackup + 200
+ ld hl, wEnemyMons
ld c, $2
.asm_5497
ld a, [de]
@@ -245,38 +243,36 @@ Func_5345: ; 5345
pop hl
jr .asm_5497
.asm_54b6
- ld hl, $d9a0
+ ld hl, wEnemyMons + $fc
dec c
jr nz, .asm_5497
ld a, $ac
- ld [$cf8d], a
+ ld [wcf8d], a
ld a, $d9
- ld [$cf8e], a
+ ld [wcf8e], a
xor a
- ld [$cc38], a
+ ld [wcc38], a
ld a, $ff
call PlaySound
ld a, [$ffaa]
cp $2
ld c, $42
call z, DelayFrames
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $3
ld a, $32
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
jr nz, .asm_5506
ld a, $4
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
ld a, SONY1 + $c8
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
call ClearScreen
call Delay3
- ld hl, W_OPTIONS ; $d355
+ ld hl, W_OPTIONS ; W_OPTIONS
res 7, [hl]
- ld a, $2c
- call Predef ; indirect jump to InitOpponent (3ef18 (f:6f18))
- ld a, $7
- call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+ predef InitOpponent
+ predef HealParty
jp Func_577d
.asm_5506
ld c, BANK(Music_GameCorner)
@@ -290,7 +286,7 @@ PleaseWaitString: ; 550f (1:550f)
Func_551c:
ld hl, PointerTable_5a5b ; $5a5b
ld b, $0
- ld a, [$cc38]
+ ld a, [wcc38]
cp $ff
jp z, LoadTitlescreenGraphics
add a
@@ -307,31 +303,31 @@ TradeCenter_SelectMon:
call Func_57f2
call Func_57a2
xor a
- ld hl, $cc3d
+ ld hl, wcc3d
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [$cc37], a
- ld [$cc26], a
- ld [$cc2a], a
- ld [$cc34], a
+ ld [wcc37], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ ld [wMenuJoypadPollCount], a
inc a
- ld [$cc42], a
+ ld [wcc42], a
jp .asm_55dc
.asm_5557
xor a
- ld [$cc37], a
+ ld [wcc37], a
inc a
- ld [$cc49], a
+ ld [wcc49], a
ld a, $a1
- ld [$cc29], a
- ld a, [$d89c]
- ld [$cc28], a
+ ld [wMenuWatchedKeys], a
+ ld a, [wEnemyPartyCount]
+ ld [wMaxMenuItem], a
ld a, $9
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
.asm_5574
ld hl, $fff6
set 1, [hl]
@@ -342,17 +338,17 @@ TradeCenter_SelectMon:
jp z, .asm_565b
bit 0, a
jr z, .asm_55b0 ; 0x5587 $27
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
ld c, a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp c
jr c, .asm_559a ; 0x5591 $7
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
dec a
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
.asm_559a
ld a, $1
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
ld hl, wEnemyMons
call Func_57d6
@@ -361,20 +357,20 @@ TradeCenter_SelectMon:
bit 5, a
jr z, .asm_55d4 ; 0x55b2 $20
xor a
- ld [$cc49], a
- ld a, [$cc30]
+ ld [wcc49], a
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
- ld a, [$cc27]
+ ld a, [wTileBehindCursor]
ld [hl], a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$d163]
+ ld a, [wPartyCount]
dec a
cp b
jr nc, .asm_55dc ; 0x55cd $d
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
jr .asm_55dc ; 0x55d2 $8
.asm_55d4
bit 7, a
@@ -382,17 +378,17 @@ TradeCenter_SelectMon:
jp .asm_572f
.asm_55dc
xor a
- ld [$cc49], a
- ld [$cc37], a
+ ld [wcc49], a
+ ld [wcc37], a
ld a, $91
- ld [$cc29], a
- ld a, [$d163]
- ld [$cc28], a
+ ld [wMenuWatchedKeys], a
+ ld a, [wPartyCount]
+ ld [wMaxMenuItem], a
ld a, $1
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
- ld hl, $c3b5
+ ld [wTopMenuItemX], a
+ ld hl, wTileMap + $15
ld bc, $0601
call ClearScreenArea
.asm_5601
@@ -409,7 +405,7 @@ TradeCenter_SelectMon:
jr z, .asm_562e ; 0x5616 $16
jp .asm_5665
ld a, $4
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
call Func_57d6
jp .asm_565b
@@ -417,20 +413,20 @@ TradeCenter_SelectMon:
bit 4, a
jr z, .asm_5654 ; 0x5630 $22
ld a, $1
- ld [$cc49], a
- ld a, [$cc30]
+ ld [wcc49], a
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
- ld a, [$cc27]
+ ld a, [wTileBehindCursor]
ld [hl], a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$d89c]
+ ld a, [wEnemyPartyCount]
dec a
cp b
jr nc, .asm_5651 ; 0x564c $3
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
.asm_5651
jp .asm_5557
.asm_5654
@@ -438,43 +434,43 @@ TradeCenter_SelectMon:
jr z, .asm_565b ; 0x5656 $3
jp .asm_572f
.asm_565b
- ld a, [$cc49]
+ ld a, [wcc49]
and a
jp z, .asm_5601
jp .asm_5574
.asm_5665
call SaveScreenTilesToBuffer1
call PlaceUnfilledArrowMenuCursor
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
ld c, a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp c
jr c, .asm_5679 ; 0x5673 $4
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
dec a
.asm_5679
push af
- ld hl, $c4b8
+ ld hl, wTileMap + $118
ld b, $2
ld c, $12
call Func_5ab3
- ld hl, $c4e2
+ ld hl, wTileMap + $142
ld de, .statsTrade
call PlaceString
xor a
- ld [$cc26], a
- ld [$cc2a], a
- ld [$cc34], a
- ld [$cc28], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ ld [wMenuJoypadPollCount], a
+ ld [wMaxMenuItem], a
ld a, $10
- ld [$cc24], a
+ ld [wTopMenuItemY], a
.asm_569f
ld a, $7f
- ld [$c4eb], a
+ ld [wTileMap + $14b], a
ld a, $13
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
call HandleMenuInput
bit 4, a
jr nz, .asm_56c3 ; 0x56b3 $e
@@ -482,16 +478,16 @@ TradeCenter_SelectMon:
jr z, .asm_56df ; 0x56b7 $26
.asm_56b9
pop af
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
call LoadScreenTilesFromBuffer1
jp .asm_55dc
.asm_56c3
ld a, $7f
- ld [$c4e1], a
+ ld [wTileMap + $141], a
ld a, $23
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $b
- ld [$cc25], a
+ ld [wTopMenuItemX], a
call HandleMenuInput
bit 5, a
jr nz, .asm_569f ; 0x56d7 $c6
@@ -500,9 +496,9 @@ TradeCenter_SelectMon:
jr .asm_56f9 ; 0x56dd $1a
.asm_56df
pop af
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
ld a, $4
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
call Func_57d6
call LoadScreenTilesFromBuffer1
@@ -510,37 +506,37 @@ TradeCenter_SelectMon:
.asm_56f9
call PlaceUnfilledArrowMenuCursor
pop af
- ld [$cc26], a
- ld [$cd3d], a
- ld [$cc42], a
+ ld [wCurrentMenuItem], a
+ ld [wWhichTrade], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
cp $f
jp z, Func_551c
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
call Func_57c7
ld a, $1
- ld [$cc38], a
+ ld [wcc38], a
jp Func_551c
.statsTrade
db "STATS TRADE@"
.asm_572f
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
cp b
jp nz, .asm_565b
- ld a, [$cc30]
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
ld a, $7f
ld [hl], a
.asm_5745
ld a, $ed
- ld [$c4e1], a
+ ld [wTileMap + $141], a
.asm_574a
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
and a
jr z, .asm_574a ; 0x5750 $f8
@@ -549,32 +545,32 @@ TradeCenter_SelectMon:
bit 6, a
jr z, .asm_574a ; 0x5758 $f0
ld a, $7f
- ld [$c4e1], a
- ld a, [$d163]
+ ld [wTileMap + $141], a
+ ld a, [wPartyCount]
dec a
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
jp .asm_55dc
.asm_5769
ld a, $ec
- ld [$c4e1], a
+ ld [wTileMap + $141], a
ld a, $f
- ld [$cc42], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
cp $f
jr nz, .asm_5745 ; 0x577b $c8
Func_577d: ; 577d (1:577d)
call GBPalWhiteOutWithDelay3
- ld hl, $cfc4
+ ld hl, wcfc4
ld a, [hl]
push af
push hl
res 0, [hl]
xor a
- ld [$d72d], a
+ ld [wd72d], a
dec a
- ld [$d42f], a
+ ld [wd42f], a
call LoadMapData
callba Func_c335
pop hl
@@ -584,15 +580,15 @@ Func_577d: ; 577d (1:577d)
ret
Func_57a2:
- ld hl, $c4d7
+ ld hl, wTileMap + $137
ld a, $7e
ld bc, $0031
call FillMemory
- ld hl, $c4cc
+ ld hl, wTileMap + $12c
ld b, $1
ld c, $9
call Func_5ab3
- ld hl, $c4e2
+ ld hl, wTileMap + $142
ld de, CancelTextString
jp PlaceString
@@ -600,20 +596,18 @@ CancelTextString:
db "CANCEL@"
Func_57c7:
- ld a, [$cc3d]
- ld hl, $c455
+ ld a, [wcc3d]
+ ld hl, wTileMap + $b5
ld bc, $0014
call AddNTimes
ld [hl], $ec
ret
Func_57d6:
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld [wWhichPokemon], a
- ld a, $36
- call Predef
- ld a, $37
- call Predef
+ predef StatusScreen
+ predef StatusScreen2
call GBPalNormal
call LoadTrainerInfoTextBoxTiles
call Func_57f2
@@ -624,21 +618,21 @@ Func_57f2:
ld b, $6
ld c, $12
call Func_5ab3
- ld hl, $c440
+ ld hl, wTileMap + $a0
ld b, $6
ld c, $12
call Func_5ab3
- ld hl, $c3a5
- ld de, W_PLAYERNAME
+ ld hl, wTileMap + $5
+ ld de, wPlayerName
call PlaceString
- ld hl, $c445
- ld de, $d887
+ ld hl, wTileMap + $a5
+ ld de, W_GRASSRATE
call PlaceString
- ld hl, $c3b6
- ld de, $d164
+ ld hl, wTileMap + $16
+ ld de, wPartySpecies
call Func_5827
- ld hl, $c456
- ld de, $d89d
+ ld hl, wTileMap + $b6
+ ld de, wEnemyPartyMons
Func_5827:
ld c, $0
@@ -646,7 +640,7 @@ Func_5827:
ld a, [de]
cp $ff
ret z
- ld [$d11e], a
+ ld [wd11e], a
push bc
push hl
push de
@@ -669,170 +663,168 @@ TradeCenter_Trade:
ld c, $64
call DelayFrames
xor a
- ld [$cc43], a
- ld [$cc3e], a
- ld [$cc37], a
- ld [$cc34], a
- ld hl, $c490
+ ld [wcc43], a
+ ld [wcc3e], a
+ ld [wcc37], a
+ ld [wMenuJoypadPollCount], a
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld a, [$cd3d]
- ld hl, $d164
+ ld a, [wWhichTrade]
+ ld hl, wPartySpecies
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, $cd3f
+ ld hl, wcd6d
+ ld de, wTrainerFacingDirection
ld bc, $000b
call CopyData
- ld a, [$cd3e]
- ld hl, $d89d
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyPartyMons
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
ld hl, WillBeTradedText
- ld bc, $c4b9
+ ld bc, wTileMap + $119
call TextCommandProcessor
call SaveScreenTilesToBuffer1
- ld hl, $c436
+ ld hl, wTileMap + $96
ld bc, $080b
ld a, $5
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call LoadScreenTilesFromBuffer1
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr z, .asm_58d9 ; 0x58b9 $1e
ld a, $1
- ld [$cc42], a
- ld hl, $c490
+ ld [wcc42], a
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCanceled
call PlaceString
call Func_226e
jp Func_5a18
.asm_58d9
ld a, $2
- ld [$cc42], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
dec a
jr nz, .asm_58fd ; 0x58e5 $16
- ld hl, $c490
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCanceled
call PlaceString
jp Func_5a18
.asm_58fd
- ld a, [$cd3d]
- ld hl, W_PARTYMON1OT ; OT names of player
+ ld a, [wWhichTrade]
+ ld hl, wPartyMonOT ; OT names of player
call SkipFixedLengthTextEntries
- ld de, $cd41
+ ld de, wTrainerScreenX
ld bc, $000b
call CopyData
- ld hl, $d16b
- ld a, [$cd3d]
+ ld hl, wPartyMon1Species
+ ld a, [wWhichTrade]
ld bc, $002c
call AddNTimes
ld bc, $000c
add hl, bc
ld a, [hli]
- ld [$cd4c], a
+ ld [wcd4c], a
ld a, [hl]
- ld [$cd4d], a
- ld a, [$cd3e]
- ld hl, W_ENEMYMON1OT ; OT names of other player
+ ld [wcd4d], a
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyMonOT ; OT names of other player
call SkipFixedLengthTextEntries
- ld de, $cd4e
+ ld de, wcd4e
ld bc, $000b
call CopyData
ld hl, wEnemyMons
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld bc, $002c
call AddNTimes
ld bc, $000c
add hl, bc
ld a, [hli]
- ld [$cd59], a
+ ld [wcd59], a
ld a, [hl]
- ld [$cd5a], a
- ld a, [$cd3d]
+ ld [wcd5a], a
+ ld a, [wWhichTrade]
ld [wWhichPokemon], a
- ld hl, $d164
+ ld hl, wPartySpecies
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [$cd3d], a
+ ld [wWhichTrade], a
xor a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld c, a
ld [wWhichPokemon], a
- ld hl, $d89d
+ ld hl, wEnemyPartyMons
ld d, $0
ld e, a
add hl, de
ld a, [hl]
- ld [$cf91], a
+ ld [wcf91], a
ld hl, wEnemyMons
ld a, c
ld bc, $002c
call AddNTimes
- ld de, $cf98
+ ld de, wcf98
ld bc, $002c
call CopyData
call AddEnemyMonToPlayerParty
- ld a, [$d163]
+ ld a, [wPartyCount]
dec a
ld [wWhichPokemon], a
ld a, $1
- ld [$ccd4], a
- ld a, [$cd3e]
- ld hl, $d89d
+ ld [wccd4], a
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyPartyMons
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, $a
ld [wMusicHeaderPointer], a
ld a, $2
- ld [$c0f0], a
+ ld [wc0f0], a
ld a, MUSIC_SAFARI_ZONE
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, $64
call DelayFrames
call ClearScreen
call LoadHpBarAndStatusTilePatterns
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [$ffaa]
cp $1
jr z, .asm_59d9 ; 0x59d0 $7
- ld a, $38
- call Predef
+ predef Func_410e2
jr .asm_59de ; 0x59d7 $5
.asm_59d9
- ld a, $2f
- call Predef
+ predef Func_410f3
.asm_59de
callab Func_3ad0e
call ClearScreen
@@ -840,26 +832,25 @@ TradeCenter_Trade:
call Func_226e
ld c, $28
call DelayFrames
- ld hl, $c490
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCompleted
call PlaceString
- ld a, $50
- call Predef
+ predef SaveSAVtoSRAM2
ld c, $32
call DelayFrames
xor a
- ld [$cc38], a
+ ld [wcc38], a
jp Func_5345
Func_5a18:
ld c, $64
call DelayFrames
xor a
- ld [$cc38], a
+ ld [wcc38], a
jp Func_551c
WillBeTradedText: ; 5a24 (1:5a24)
@@ -878,48 +869,47 @@ PointerTable_5a5b: ; 5a5b (1:5a5b)
dw TradeCenter_Trade
Func_5a5f: ; 5a5f (1:5a5f)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $2
jr z, .asm_5a75
cp $3
jr z, .asm_5a75
cp $5
ret nz
- ld a, $4d
- call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf))
- jp InitGame
+ predef Func_5aaf
+ jp Init
.asm_5a75
call Func_5317
ld hl, Club_GFX
ld a, h
- ld [$d52f], a
+ ld [W_TILESETGFXPTR + 1], a
ld a, l
- ld [$d52e], a
+ ld [W_TILESETGFXPTR], a
ld a, Bank(Club_GFX)
- ld [$d52b], a
+ ld [W_TILESETBANK], a
ld hl, Club_Coll
ld a, h
- ld [$d531], a
+ ld [W_TILESETCOLLISIONPTR + 1], a
ld a, l
- ld [$d530], a
+ ld [W_TILESETCOLLISIONPTR], a
xor a
- ld [W_GRASSRATE], a ; $d887
+ ld [W_GRASSRATE], a ; W_GRASSRATE
inc a
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
ld [$ffb5], a
ld a, $a
ld [wMusicHeaderPointer], a
ld a, BANK(Music_Celadon)
- ld [$c0f0], a
+ ld [wc0f0], a
ld a, MUSIC_CELADON
- ld [$c0ee], a
+ ld [wc0ee], a
jp PlaySound
Func_5aaf: ; 5aaf (1:5aaf)
ret
Func_5ab0:
- call Load16BitRegisters
+ call GetPredefRegisters
Func_5ab3: ; 5ab3 (1:5ab3)
push hl
diff --git a/engine/clear_save.asm b/engine/clear_save.asm
index dbb3d3a6..5ef0d475 100755
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -5,19 +5,18 @@ Func_1c98a: ; 1c98a (7:498a)
call LoadTextBoxTilePatterns
ld hl, ClearSaveDataText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $7
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
- jp z, InitGame
+ jp z, Init
callba Func_73b6a
- jp InitGame
+ jp Init
ClearSaveDataText: ; 1c9c1 (7:49c1)
TX_FAR _ClearSaveDataText
diff --git a/engine/evolution.asm b/engine/evolution.asm
index 664aaa5e..07ccdbda 100755
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -2,15 +2,15 @@ Func_7bde9: ; 7bde9 (1e:7de9)
push hl
push de
push bc
- ld a, [$cf91]
+ ld a, [wcf91]
push af
- ld a, [$d0b5]
+ ld a, [wd0b5]
push af
xor a
- ld [$d083], a
- ld [$c02a], a
+ ld [wd083], a
+ ld [wc02a], a
dec a
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -20,25 +20,25 @@ Func_7bde9: ; 7bde9 (1e:7de9)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld [$ffd7], a
- ld a, [$cee9]
- ld [$cf1d], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf1d], a
ld c, $0
call Func_7beb4
- ld a, [$ceea]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP + 1]
+ ld [wcf91], a
+ ld [wd0b5], a
call Func_7beb9
- ld de, $9000
- ld hl, $9310
- ld bc, $31
+ ld de, vFrontPic
+ ld hl, vBackPic
+ ld bc, 7 * 7
call CopyVideoData
- ld a, [$cee9]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf91], a
+ ld [wd0b5], a
call Func_7beb9
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
@@ -60,28 +60,28 @@ Func_7bde9: ; 7bde9 (1e:7de9)
dec c
jr nz, .asm_7be63
xor a
- ld [$ceec], a
+ ld [wHPBarOldHP + 1], a
ld a, $31
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
- ld a, [$ceea]
+ ld a, [wHPBarMaxHP + 1]
.asm_7be81
- ld [$cf1d], a
+ ld [wcf1d], a
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf1d]
+ ld a, [wcf1d]
call PlayCry
ld c, $0
call Func_7beb4
pop af
- ld [$d0b5], a
+ ld [wd0b5], a
pop af
- ld [$cf91], a
+ ld [wcf91], a
pop bc
pop de
pop hl
- ld a, [$ceec]
+ ld a, [wHPBarOldHP + 1]
and a
ret z
scf
@@ -89,8 +89,8 @@ Func_7bde9: ; 7bde9 (1e:7de9)
.asm_7bea9
pop bc
ld a, $1
- ld [$ceec], a
- ld a, [$cee9]
+ ld [wHPBarOldHP + 1], a
+ ld a, [wHPBarMaxHP]
jr .asm_7be81
Func_7beb4: ; 7beb4 (1e:7eb4)
@@ -99,15 +99,14 @@ Func_7beb4: ; 7beb4 (1e:7eb4)
Func_7beb9: ; 7beb9 (1e:7eb9)
call GetMonHeader
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
jp LoadFlippedFrontSpriteByMonIndex
asm_7bec2: ; 7bec2 (1e:7ec2)
ld a, $31
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
ld a, $cf
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
dec b
jr nz, asm_7bec2
@@ -117,14 +116,13 @@ Func_7bed6: ; 7bed6 (1e:7ed6)
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
ld bc, $707
ld de, $d
.asm_7bee3
push bc
.asm_7bee4
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
add [hl]
ld [hli], a
dec c
@@ -141,7 +139,7 @@ Func_7bed6: ; 7bed6 (1e:7ed6)
asm_7befa: ; 7befa (1e:7efa)
call DelayFrame
push bc
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
pop bc
and $2
@@ -152,7 +150,7 @@ asm_7befa: ; 7befa (1e:7efa)
and a
ret
.asm_7bf0d
- ld a, [$ccd4]
+ ld a, [wccd4]
and a
jr nz, .asm_7bf08
scf
diff --git a/engine/evolve_trade.asm b/engine/evolve_trade.asm
index 9758b99f..ffb8a778 100755
--- a/engine/evolve_trade.asm
+++ b/engine/evolve_trade.asm
@@ -31,14 +31,14 @@ EvolveTradeMon: ; 17d7d (5:7d7d)
ret nz
.ok
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
ld a, $1
- ld [$ccd4], a
+ ld [wccd4], a
ld a, $32
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
callab Func_3ad0e
xor a
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
jp Func_2307
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index 0892d8de..fd93fa14 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -1,8 +1,8 @@
Func_3ad0e: ; 3ad0e (e:6d0e)
- ld hl, $ccd3
+ ld hl, wccd3
xor a
ld [hl], a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
call Func_3b057
@@ -11,33 +11,33 @@ Func_3ad1c: ; 3ad1c (e:6d1c)
ld a, [$ffd7]
push af
xor a
- ld [$d121], a
+ ld [wd121], a
dec a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
push hl
push bc
push de
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
push hl
asm_3ad2e: ; 3ad2e (e:6d2e)
- ld hl, wWhichPokemon ; $cf92
+ ld hl, wWhichPokemon ; wWhichPokemon
inc [hl]
pop hl
inc hl
ld a, [hl]
cp $ff
jp z, Func_3aede
- ld [$cee9], a
+ ld [wHPBarMaxHP], a
push hl
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
- ld hl, $ccd3
+ ld hl, wccd3
ld b, $2
call Func_3b057
ld a, c
and a
jp z, asm_3ad2e
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
dec a
ld b, $0
ld hl, EvosMovesPointerTable
@@ -49,13 +49,13 @@ asm_3ad2e: ; 3ad2e (e:6d2e)
ld h, [hl]
ld l, a
push hl
- ld a, [$cf91]
+ ld a, [wcf91]
push af
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
pop af
- ld [$cf91], a
+ ld [wcf91], a
pop hl
Func_3ad71: ; 3ad71 (e:6d71)
@@ -65,49 +65,49 @@ Func_3ad71: ; 3ad71 (e:6d71)
ld b, a
cp $3
jr z, .asm_3ad91
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
jr z, asm_3ad2e
ld a, b
cp $2
jr z, .asm_3ada4
- ld a, [$ccd4]
+ ld a, [wccd4]
and a
jr nz, asm_3ad2e
ld a, b
cp $1
jr z, .asm_3adad
.asm_3ad91
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
jp nz, Func_3aed9
ld a, [hli]
ld b, a
- ld a, [$cfb9]
+ ld a, [wcfb9]
cp b
jp c, asm_3ad2e
jr .asm_3adb6
.asm_3ada4
ld a, [hli]
ld b, a
- ld a, [$cf91]
+ ld a, [wcf91]
cp b
jp nz, Func_3aed9
.asm_3adad
ld a, [hli]
ld b, a
- ld a, [$cfb9]
+ ld a, [wcfb9]
cp b
jp c, Func_3aeda
.asm_3adb6
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, $1
- ld [$d121], a
+ ld [wd121], a
push hl
ld a, [hl]
- ld [$ceea], a
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
call CopyStringToCF4B
ld hl, IsEvolvingText
@@ -122,21 +122,21 @@ Func_3ad71: ; 3ad71 (e:6d71)
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $ff
- ld [$cfcb], a
- call CleanLCD_OAM
+ ld [wcfcb], a
+ call ClearSprites
callab Func_7bde9
jp c, Func_3af2e
ld hl, EvolvedText
call PrintText
pop hl
ld a, [hl]
- ld [$d0b5], a
- ld [$cf98], a
- ld [$ceea], a
+ ld [wd0b5], a
+ ld [wcf98], a
+ ld [wHPBarMaxHP + 1], a
ld a, MONSTER_NAME
ld [W_LISTTYPE], a
ld a, $e
- ld [$d0b7], a
+ ld [wPredefBank], a
call GetName
push hl
ld hl, IntoText
@@ -148,29 +148,28 @@ Func_3ad71: ; 3ad71 (e:6d71)
call DelayFrames
call ClearScreen
call Func_3aef7
- ld a, [$d11e]
+ ld a, [wd11e]
push af
- ld a, [$d0b5]
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld a, [wd0b5]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
- ld hl, BulbasaurBaseStats ; $43de
+ ld hl, BaseStats
ld bc, $1c
call AddNTimes
ld de, W_MONHEADER
call CopyData
- ld a, [$d0b5]
- ld [$d0b8], a
+ ld a, [wd0b5]
+ ld [W_MONHDEXNUM], a
pop af
- ld [$d11e], a
- ld hl, $cfa8
- ld de, $cfba
+ ld [wd11e], a
+ ld hl, wcfa8
+ ld de, wcfba
ld b, $1
call CalcStats
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
ld bc, $2c
call AddNTimes
ld e, l
@@ -182,14 +181,14 @@ Func_3ad71: ; 3ad71 (e:6d71)
ld a, [hli]
ld b, a
ld c, [hl]
- ld hl, $cfbb
+ ld hl, wcfbb
ld a, [hld]
sub c
ld c, a
ld a, [hl]
sbc b
ld b, a
- ld hl, $cf9a
+ ld hl, wcf9a
ld a, [hl]
add c
ld [hld], a
@@ -199,32 +198,30 @@ Func_3ad71: ; 3ad71 (e:6d71)
dec hl
pop bc
call CopyData
- ld a, [$d0b5]
- ld [$d11e], a
+ ld a, [wd0b5]
+ ld [wd11e], a
xor a
- ld [$cc49], a
+ ld [wcc49], a
call Func_3af5b
pop hl
- ld a, $42
- call Predef ; indirect jump to SetPartyMonTypes (5db5e (17:5b5e))
- ld a, [W_ISINBATTLE] ; $d057
+ predef SetPartyMonTypes
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
call z, Func_3af52
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
push bc
call Func_3b057
pop bc
- ld hl, wPokedexSeen ; $d30a
+ ld hl, wPokedexSeen ; wd30a
call Func_3b057
pop de
pop hl
- ld a, [$cf98]
+ ld a, [wcf98]
ld [hl], a
push hl
ld l, e
@@ -244,27 +241,27 @@ Func_3aede: ; 3aede (e:6ede)
pop hl
pop af
ld [$ffd7], a
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
ret z
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
ret nz
- ld a, [$d121]
+ ld a, [wd121]
and a
call nz, Func_2307
ret
Func_3aef7: ; 3aef7 (e:6ef7)
- ld a, [$d0b5]
+ ld a, [wd0b5]
push af
- ld a, [$d0b8]
- ld [$d0b5], a
+ ld a, [W_MONHDEXNUM]
+ ld [wd0b5], a
call GetName
pop af
- ld [$d0b5], a
- ld hl, $cd6d
- ld de, $cf4b
+ ld [wd0b5], a
+ ld hl, wcd6d
+ ld de, wcf4b
.asm_3af0e
ld a, [de]
inc de
@@ -273,13 +270,13 @@ Func_3aef7: ; 3aef7 (e:6ef7)
ret nz
cp $50
jr nz, .asm_3af0e
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $b
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call AddNTimes
push hl
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
pop de
jp CopyData
@@ -308,15 +305,15 @@ IsEvolvingText: ; 3af4d (e:6f4d)
db "@"
Func_3af52: ; 3af52 (e:6f52)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
ret z
jp ReloadTilesetTilePatterns
Func_3af5b: ; 3af5b (e:6f5b)
ld hl, EvosMovesPointerTable
- ld a, [$d11e]
- ld [$cf91], a
+ ld a, [wd11e]
+ ld [wcf91], a
dec a
ld bc, $0
ld hl, EvosMovesPointerTable
@@ -336,16 +333,16 @@ Func_3af5b: ; 3af5b (e:6f5b)
and a
jr z, .asm_3afb1
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
ld a, [hli]
jr nz, .asm_3af77
ld d, a
- ld a, [$cc49]
+ ld a, [wcc49]
and a
jr nz, .asm_3af96
- ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
call AddNTimes
.asm_3af96
@@ -357,28 +354,27 @@ Func_3af5b: ; 3af5b (e:6f5b)
dec b
jr nz, .asm_3af98
ld a, d
- ld [$d0e0], a
- ld [$d11e], a
+ ld [wd0e0], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
- ld a, $1b
- call Predef ; indirect jump to LearnMove (6e43 (1:6e43))
+ predef LearnMove
.asm_3afb1
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
ret
; writes the moves a mon has at level [W_CURENEMYLVL] to [de]
; move slots are being filled up sequentially and shifted if all slots are full
-; [$cee9]: (?)
+; [wHPBarMaxHP]: (?)
WriteMonMoves: ; 3afb8 (e:6fb8)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
push de
push bc
ld hl, EvosMovesPointerTable
ld b, $0
- ld a, [$cf91] ; cur mon ID
+ ld a, [wcf91] ; cur mon ID
dec a
add a
rl b
@@ -401,13 +397,13 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
and a
jp z, .done ; end of list
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jp c, .done ; mon level < move level (assumption: learnset is sorted by level)
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .skipMinLevelCheck
- ld a, [wWhichTrade] ; $cd3d (min move level)
+ ld a, [wWhichTrade] ; wWhichTrade (min move level)
cp b
jr nc, .nextMove2 ; min level >= move level
.skipMinLevelCheck
@@ -436,7 +432,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
ld h, d
ld l, e
call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1)
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .writeMoveToSlot
push de
@@ -451,7 +447,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
.writeMoveToSlot2
ld a, [hl]
ld [de], a
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .nextMove
push hl ; write move PP value
@@ -463,10 +459,10 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
ld hl, Moves
ld bc, $6
call AddNTimes
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld a, BANK(Moves)
call FarCopyData
- ld a, [$ceee]
+ ld a, [wHPBarNewHP + 1]
pop hl
ld [hl], a
pop hl
@@ -489,7 +485,6 @@ WriteMonMoves_ShiftMoveData: ; 3b04e (e:704e)
ret
Func_3b057: ; 3b057 (e:7057)
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
INCLUDE "data/evos_moves.asm"
diff --git a/engine/experience.asm b/engine/experience.asm
index 80177b50..07726821 100755
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -1,13 +1,13 @@
Func_58f43: ; 58f43 (16:4f43)
- ld a, [$cf98]
- ld [$d0b5], a
+ ld a, [wcf98]
+ ld [wd0b5], a
call GetMonHeader
ld d, $1
.asm_58f4e
inc d
call CalcExperience
push hl
- ld hl, $cfa8
+ ld hl, wcfa8
ld a, [$ff98]
ld c, a
ld a, [hld]
diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm
index f3009b35..0ab74927 100755
--- a/engine/game_corner_slots.asm
+++ b/engine/game_corner_slots.asm
@@ -10,7 +10,7 @@ StartSlotMachine: ; 37e2d (d:7e2d)
ld a, [wTrainerSpriteOffset]
and a
ret z
- ld a, [$cd05]
+ ld a, [wcd05]
ld b, a
ld a, [wTrainerFacingDirection]
inc a
@@ -21,9 +21,9 @@ StartSlotMachine: ; 37e2d (d:7e2d)
.asm_37e58
ld a, $fa
.asm_37e5a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [H_LOADEDROMBANK]
- ld [$cc5e], a
+ ld [wcc5e], a
call PromptUserToPlaySlots
ret
.printOutOfOrder
diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm
index 719c50e7..66e51237 100755
--- a/engine/game_corner_slots2.asm
+++ b/engine/game_corner_slots2.asm
@@ -1,10 +1,9 @@
AbleToPlaySlotsCheck ; 2ff09 (b:7f09)
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
and $8
jr z, .done ; not able
ld b, COIN_CASE
- ld a, $1c
- call Predef ; IsItemInBag_
+ predef IsItemInBag_ ; IsItemInBag_
ld a, b
and a
ld b, $33 ; GameCornerCoinCaseText
@@ -20,7 +19,7 @@ AbleToPlaySlotsCheck ; 2ff09 (b:7f09)
call PrintPredefTextID
xor a
.done
- ld [$cd3d], a
+ ld [wWhichTrade], a
ret
GameCornerCoinCaseText: ; 2ff32 (b:7f32)
diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm
index 4837bc18..d0f1bbac 100755
--- a/engine/gamefreak.asm
+++ b/engine/gamefreak.asm
@@ -4,15 +4,15 @@ LoadShootingStarGraphics: ; 70000 (1c:4000)
ld a, $a4
ld [rOBP1], a ; $ff49
ld de, AnimationTileset2 + $30 ; $471e ; star tile (top left quadrant)
- ld hl, $8a00
+ ld hl, vChars1 + $200
ld bc, (BANK(AnimationTileset2) << 8) + $01
call CopyVideoData
ld de, AnimationTileset2 + $130 ; $481e ; star tile (bottom left quadrant)
- ld hl, $8a10
+ ld hl, vChars1 + $210
ld bc, (BANK(AnimationTileset2) << 8) + $01
call CopyVideoData
ld de, FallingStar ; $4190
- ld hl, $8a20
+ ld hl, vChars1 + $220
ld bc, (BANK(FallingStar) << 8) + $01
call CopyVideoData
ld hl, GameFreakLogoOAMData ; $4140
@@ -85,7 +85,7 @@ AnimateShootingStar: ; 70044 (1c:4044)
dec a
jr nz, .asm_70098
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, PointerTable_700f2 ; $40f2
ld c, $6
.asm_700af
@@ -110,15 +110,15 @@ AnimateShootingStar: ; 70044 (1c:4044)
inc hl
dec c
jr nz, .asm_700ba
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $18
jr z, .asm_700d5
add $6
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
.asm_700d5
call Func_7011f
push af
- ld hl, $c310
+ ld hl, wOAMBuffer + $10
ld de, wOAMBuffer
ld bc, $50
call CopyData
@@ -173,8 +173,8 @@ OAMData_7011e: ; 7011e (1c:411e)
Func_7011f: ; 7011f (1c:411f)
ld b, $8
.asm_70121
- ld hl, $c35c
- ld a, [wWhichTrade] ; $cd3d
+ ld hl, wOAMBuffer + $5c
+ ld a, [wWhichTrade] ; wWhichTrade
ld de, $fffc
ld c, a
.asm_7012b
diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm
index ba1461c3..9399fb05 100755
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -1,22 +1,22 @@
_GivePokemon: ; 4fda5 (13:7da5)
call EnableAutoTextBoxDrawing
xor a
- ld [$ccd3], a
- ld a, [W_NUMINPARTY] ; $d163
+ ld [wccd3], a
+ ld a, [wPartyCount] ; wPartyCount
cp $6
jr c, .asm_4fe01
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
cp $14
jr nc, .asm_4fdf9
xor a
- ld [W_ENEMYBATTSTATUS3], a ; $d069
- ld a, [$cf91]
- ld [W_ENEMYMONID], a
+ ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3
+ ld a, [wcf91]
+ ld [wEnemyMonSpecies2], a
callab Func_3eb01
call SetPokedexOwnedFlag
callab Func_e7a4
- ld hl, $cf4b
- ld a, [$d5a0]
+ ld hl, wcf4b
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_4fdec
@@ -41,28 +41,26 @@ _GivePokemon: ; 4fda5 (13:7da5)
ret
.asm_4fe01
call SetPokedexOwnedFlag
- call AddPokemonToParty
+ call AddPartyMon
ld a, $1
- ld [$cc3c], a
- ld [$ccd3], a
+ ld [wcc3c], a
+ ld [wccd3], a
scf
ret
SetPokedexOwnedFlag: ; 4fe11 (13:7e11)
- ld a, [$cf91]
+ ld a, [wcf91]
push af
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld b, $1
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop af
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
ld hl, GotMonText
jp PrintText
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index f84053e3..f4384b91 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -1,12 +1,12 @@
AnimateHallOfFame: ; 701a0 (1c:41a0)
call Func_70423
call ClearScreen
- ld c, $64
+ ld c, 100
call DelayFrames
call LoadFontTilePatterns
call LoadTextBoxTilePatterns
call DisableLCD
- ld hl, $9800
+ ld hl,vBGMap0
ld bc, $800
ld a, $7f
call FillMemory
@@ -14,18 +14,18 @@ AnimateHallOfFame: ; 701a0 (1c:41a0)
ld hl, rLCDC ; $ff40
set 3, [hl]
xor a
- ld hl, $cc5b
- ld bc, $60
+ ld hl, wHallOfFame
+ ld bc, HOF_TEAM
call FillMemory
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
ld [$ffd7], a
ld [W_SPRITEFLIPPED], a
- ld [$d358], a
- ld [$cd40], a
+ ld [wd358], a
+ ld [wTrainerScreenY], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $d5a2
+ ld hl, wd5a2
ld a, [hl]
inc a
jr z, .asm_701eb
@@ -36,7 +36,7 @@ AnimateHallOfFame: ; 701a0 (1c:41a0)
ld c, BANK(Music_HallOfFame)
ld a, MUSIC_HALL_OF_FAME
call PlayMusic
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld c, $ff
.asm_701fb
ld a, [hli]
@@ -45,28 +45,26 @@ AnimateHallOfFame: ; 701a0 (1c:41a0)
inc c
push hl
push bc
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld a, c
- ld [$cd3e], a
- ld hl, W_PARTYMON1_LEVEL ; $d18c
- ld bc, $2c
+ ld [wTrainerEngageDistance], a
+ ld hl, wPartyMon1Level ; wPartyMon1Level
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a, [hl]
- ld [$cd3f], a
+ ld [wTrainerFacingDirection], a
call Func_70278
call Func_702e1
ld c, $50
call DelayFrames
- FuncCoord 2, 13 ; $c4a6
- ld hl, Coord
+ hlCoord 2, 13
ld b, $3
ld c, $e
call TextBoxBorder
- FuncCoord 4, 15 ; $c4d0
- ld hl, Coord
+ hlCoord 4, 15
ld de, HallOfFameText
call PlaceString
- ld c, $b4
+ ld c, 180
call DelayFrames
call GBFadeOut2
pop bc
@@ -75,15 +73,15 @@ AnimateHallOfFame: ; 701a0 (1c:41a0)
.asm_70241
ld a, c
inc a
- ld hl, $cc5b
- ld bc, $10
+ ld hl, wHallOfFame
+ ld bc, HOF_MON
call AddNTimes
ld [hl], $ff
- call Func_73b0d
+ call SaveHallOfFameTeams
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
inc a
- ld [$cd40], a
+ ld [wTrainerScreenY], a
call Func_70278
call Func_70377
call Func_70423
@@ -102,23 +100,21 @@ Func_70278: ; 70278 (1c:4278)
ld [$ffaf], a
ld a, $c0
ld [$ffae], a
- ld a, [wWhichTrade] ; $cd3d
- ld [$cf91], a
- ld [$d0b5], a
- ld [$cfd9], a
- ld [$cf1d], a
- ld a, [$cd40]
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wBattleMonSpecies2], a
+ ld [wcf1d], a
+ ld a, [wTrainerScreenY]
and a
jr z, .asm_7029d
call Func_7033e
jr .asm_702ab
.asm_7029d
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
+ hlCoord 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
.asm_702ab
ld b, $b
ld c, $0
@@ -129,7 +125,7 @@ Func_70278: ; 70278 (1c:4278)
call Func_7036d
ld d, $a0
ld e, $4
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
jr z, .asm_702c7
sla e
@@ -151,37 +147,31 @@ Func_70278: ; 70278 (1c:4278)
ret
Func_702e1: ; 702e1 (1c:42e1)
- ld a, [$cd3e]
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wTrainerEngageDistance]
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
call Func_702f0
jp Func_70404
Func_702f0: ; 702f0 (1c:42f0)
- FuncCoord 0, 2 ; $c3c8
- ld hl, Coord
+ hlCoord 0, 2
ld b, $9
ld c, $a
call TextBoxBorder
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ hlCoord 2, 6
ld de, HoFMonInfoText
call PlaceString
- FuncCoord 1, 4 ; $c3f1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 4
+ ld de, wcd6d
call PlaceString
- ld a, [$cd3f]
- FuncCoord 8, 7 ; $c434
- ld hl, Coord
+ ld a, [wTrainerFacingDirection]
+ hlCoord 8, 7
call PrintLevelCommon
- ld a, [wWhichTrade] ; $cd3d
- ld [$d0b5], a
- FuncCoord 3, 9 ; $c457
- ld hl, Coord
- ld a, $4b
- call Predef ; indirect jump to Func_27d6b (27d6b (9:7d6b))
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd0b5], a
+ hlCoord 3, 9
+ predef Func_27d6b
+ ld a, [wWhichTrade] ; wWhichTrade
jp PlayCry
HoFMonInfoText: ; 70329 (1c:4329)
@@ -197,71 +187,60 @@ Func_7033e: ; 7033e (1c:433e)
ld de, $a000
ld bc, $310
call CopyData
- ld de, $9000
+ ld de, vFrontPic
call InterlaceMergeSpriteBuffers
ld de, RedPicBack ; $7e0a
ld a, BANK(RedPicBack)
call UncompressSpriteFromDE
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
- ld de, $9310
+ predef ScaleSpriteByTwo
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers
ld c, $1
Func_7036d: ; 7036d (1c:436d)
ld b, $0
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
- ld a, $31
- jp Predef ; indirect jump to Func_79dda (79dda (1e:5dda))
+ hlCoord 12, 5
+ predef_jump Func_79dda
Func_70377: ; 70377 (1c:4377)
- ld hl, $d747
+ ld hl, wd747
set 3, [hl]
- ld a, $56
- call Predef ; indirect jump to DisplayDexRating (44169 (11:4169))
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ predef DisplayDexRating
+ hlCoord 0, 4
ld b, $6
ld c, $a
call TextBoxBorder
- FuncCoord 5, 0 ; $c3a5
- ld hl, Coord
+ hlCoord 5, 0
ld b, $2
ld c, $9
call TextBoxBorder
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 7, 2
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 1, 6 ; $c419
- ld hl, Coord
+ hlCoord 1, 6
ld de, HoFPlayTimeText
call PlaceString
- FuncCoord 5, 7 ; $c431
- ld hl, Coord
- ld de, $da41
+ hlCoord 5, 7
+ ld de, W_PLAYTIMEHOURS + 1
ld bc, $103
call PrintNumber
ld [hl], $6d
inc hl
- ld de, $da43
+ ld de, W_PLAYTIMEMINUTES + 1
ld bc, $8102
call PrintNumber
- FuncCoord 1, 9 ; $c455
- ld hl, Coord
+ hlCoord 1, 9
ld de, HoFMoneyText
call PlaceString
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
- ld de, wPlayerMoney ; $d347
+ hlCoord 4, 10
+ ld de, wPlayerMoney ; wPlayerMoney
ld c, $a3
call PrintBCDNumber
ld hl, DexSeenOwnedText
call Func_703e2
ld hl, DexRatingText
call Func_703e2
- ld hl, $cc5d
+ ld hl, wcc5d
Func_703e2: ; 703e2 (1c:43e2)
call PrintText
@@ -283,24 +262,24 @@ DexRatingText: ; 703ff (1c:43ff)
db "@"
Func_70404: ; 70404 (1c:4404)
- ld hl, $cc5b
- ld bc, $10
- ld a, [$cd3e]
+ ld hl, wHallOfFame
+ ld bc, HOF_MON
+ ld a, [wTrainerEngageDistance]
call AddNTimes
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld [hli], a
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
ld [hli], a
ld e, l
ld d, h
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $b
jp CopyData
Func_70423: ; 70423 (1c:4423)
ld a, $a
- ld [$cfc8], a
- ld [$cfc9], a
+ ld [wcfc8], a
+ ld [wcfc9], a
ld a, $ff
ld [wMusicHeaderPointer], a
jp GBFadeOut2
diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm
index b71ffd05..0d3598f2 100755
--- a/engine/hidden_object_functions14.asm
+++ b/engine/hidden_object_functions14.asm
@@ -1,7 +1,7 @@
PrintNotebookText: ; 52996 (14:6996)
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, [wTrainerSpriteOffset]
jp PrintPredefTextID
@@ -92,7 +92,7 @@ FightingDojoText: ; 52a2a (14:6a2a)
db "@"
PrintIndigoPlateauHQText: ; 52a2f (14:6a2f)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
index d0c6699e..f0126b65 100755
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -16,14 +16,14 @@ RedBedroomPC: ; 5db8e (17:5b8e)
db $fc ; FuncTX_ItemStoragePC
Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4 ; i
ret nz
call EnableAutoTextBoxDrawing
ld a, $a ; text id Route15UpstairsBinocularsText
call PrintPredefTextID
ld a, ARTICUNO
- ld [$cf91], a
+ ld [wcf91], a
call PlayCry
jp DisplayMonFrontSpriteInBox
@@ -33,7 +33,7 @@ Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8)
AerodactylFossil: ; 5dbad (17:5bad)
ld a, FOSSIL_AERODACTYL
- ld [$cf91], a
+ ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
ld a, $9
@@ -46,7 +46,7 @@ AerodactylFossilText: ; 5dbbe (17:5bbe)
KabutopsFossil: ; 5bdc3 (17:5bc3)
ld a, FOSSIL_KABUTOPS
- ld [$cf91], a
+ ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
ld a, $b
@@ -59,7 +59,7 @@ KabutopsFossilText: ; 5dbd4 (17:5bd4)
DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
; Displays a pokemon's front sprite in a pop-up window.
-; [$cf91] = pokemon interal id number
+; [wcf91] = pokemon interal id number
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Delay3
@@ -67,20 +67,18 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
ld [$ffb0], a
call SaveScreenTilesToBuffer1
ld a, $11
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call UpdateSprites
- ld a, [$cf91]
- ld [$d0b5], a
+ ld a, [wcf91]
+ ld [wd0b5], a
call GetMonHeader
- ld de, $8b10
+ ld de, vChars1 + $310
call LoadMonFrontSprite
ld a, $80
ld [$ffe1], a
- FuncCoord 10, 11 ; $c486
- ld hl, Coord
- ld a, $2
- call Predef ; indirect jump to Func_3f073 (3f073 (f:7073))
+ hlCoord 10, 11
+ predef Func_3f073
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
call Delay3
@@ -91,8 +89,8 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
- ld a, [$cd3d]
+ ld [wcc3c], a
+ ld a, [wWhichTrade]
call PrintPredefTextID
ret
@@ -114,13 +112,13 @@ LinkCableHelp: ; 5dc29 (17:5c29)
ld a, $1
ld [wTopMenuItemX], a
.asm_5c51
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld b, $8
ld c, $d
call TextBoxBorder
- ld hl, $c3ca
+ ld hl, wTileMap + $2a
ld de, HowToLinkText
call PlaceString
ld hl, LinkCableHelpText2
@@ -131,7 +129,7 @@ LinkCableHelp: ; 5dc29 (17:5c29)
ld a, [wCurrentMenuItem]
cp $3
jr z, .asm_5dc93 ; 0x5dc7b $16
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld hl, LinkCableInfoTexts
add a
@@ -144,7 +142,7 @@ LinkCableHelp: ; 5dc29 (17:5c29)
call PrintText
jp .asm_5c51
.asm_5dc93
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
@@ -198,15 +196,15 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld a, $1
ld [wTopMenuItemX], a
.asm_5dd15
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld bc, $060a
call TextBoxBorder
- ld hl, $c3c9
+ ld hl, wTileMap + $29
ld de, StatusAilmentText1
call PlaceString
- ld hl, $c3ce
+ ld hl, wTileMap + $2e
ld de, StatusAilmentText2
call PlaceString
ld hl, ViridianSchoolBlackboardText2
@@ -244,7 +242,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
add b
cp $5
jr z, .exitBlackboard
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld hl, ViridianBlackboardStatusPointers
add a
@@ -257,7 +255,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
call PrintText
jp .asm_5dd15
.exitBlackboard
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
@@ -318,11 +316,11 @@ VermilionGymTrashText: ; 5ddf7 (17:5df7)
GymTrashScript: ; 5ddfc (17:5dfc)
call EnableAutoTextBoxDrawing
- ld a, [wWhichTrade] ; $cd3d
- ld [$cd5b], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcd5b], a
; Don't do the trash can puzzle if it's already been done.
- ld a, [$d773]
+ ld a, [wd773]
bit 0, a
jr z, .ok
@@ -333,9 +331,9 @@ GymTrashScript: ; 5ddfc (17:5dfc)
bit 1, a
jr nz, .trySecondLock
- ld a, [$d743]
+ ld a, [wd743]
ld b, a
- ld a, [$cd5b]
+ ld a, [wcd5b]
cp b
jr z, .openFirstLock
@@ -344,11 +342,11 @@ GymTrashScript: ; 5ddfc (17:5dfc)
.openFirstLock
; Next can is trying for the second switch.
- ld hl, $d773
+ ld hl, wd773
set 1, [hl]
ld hl, GymTrashCans ; $5e7d
- ld a, [$cd5b]
+ ld a, [wcd5b]
; * 5
ld b, a
add a
@@ -362,7 +360,7 @@ GymTrashScript: ; 5ddfc (17:5dfc)
ld [$ffdb], a
push hl
- call GenRandom
+ call Random
swap a
ld b, a
ld a, [$ffdb]
@@ -375,34 +373,34 @@ GymTrashScript: ; 5ddfc (17:5dfc)
add hl, de
ld a, [hl]
and $f
- ld [$d744], a
+ ld [wd744], a
ld a, $3b ; DisplayTextID $3b = VermilionGymTrashSuccesText1 (first lock opened!)
jr .done
.trySecondLock
- ld a, [$d744]
+ ld a, [wd744]
ld b, a
- ld a, [$cd5b]
+ ld a, [wcd5b]
cp b
jr z, .openSecondLock
; Reset the cans.
- ld hl, $d773
+ ld hl, wd773
res 1, [hl]
- call GenRandom
+ call Random
and $e
- ld [$d743], a
+ ld [wd743], a
ld a, $3e ; DisplayTextID $3e = VermilionGymTrashFailText (locks reset!)
jr .done
.openSecondLock
; Completed the trash can puzzle.
- ld hl, $d773
+ ld hl, wd773
set 0, [hl]
- ld hl, $d126
+ ld hl, wd126
set 6, [hl]
ld a, $3d ; DisplayTextID $3d = VermilionGymTrashSuccesText3 (2nd lock opened!)
diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm
index 4bbaaa8a..5ccb43c2 100755
--- a/engine/hidden_object_functions18.asm
+++ b/engine/hidden_object_functions18.asm
@@ -3,7 +3,7 @@ GymStatues: ; 62419 (18:6419)
; if in a gym and don’t have the corresponding badge, a = $C and jp PrintPredefTextID
; else ret
call EnableAutoTextBoxDrawing
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
ld hl, .BadgeFlags
@@ -19,7 +19,7 @@ GymStatues: ; 62419 (18:6419)
jr .asm_62429 ; 0x62431 $f6
.asm_62433
ld b, [hl]
- ld a, [$d72a]
+ ld a, [wd72a]
and b
cp b
ld a, $d
@@ -64,7 +64,7 @@ PrintBenchGuyText: ; 6245d (18:645d)
.asm_62472
ld a, [hli]
ld b, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp b
jr nz, .asm_62467
ld a, [hl]
@@ -140,7 +140,7 @@ CinnabarIslandPokecenterBenchGuyText: ; 624df (18:64df)
SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
db $8 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ld hl, SaffronCityPokecenterBenchGuyText2
jr nz, .asm_624f2 ; 0x624ed $3
@@ -176,12 +176,12 @@ BookcaseText: ; 62511 (18:6511)
db "@"
OpenPokemonCenterPC: ; 62516 (18:6516)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4 ; check to see if player is facing up
ret nz
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
ld a, $1f ; PredefText1f
jp PrintPredefTextID
diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm
index d7f80d3d..e613df2e 100755
--- a/engine/hidden_object_functions3.asm
+++ b/engine/hidden_object_functions3.asm
@@ -1,12 +1,11 @@
; prints text for bookshelves in buildings without sign events
PrintBookshelfText: ; fb50 (3:7b50)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr nz, .asm_fb7f
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld b, a
- FuncCoord 8, 7 ; $c434
- ld a, [Coord]
+ aCoord 8, 7
ld c, a
ld hl, BookshelfTileIDs ; $7b8b
.asm_fb62
@@ -90,7 +89,7 @@ BookOrSculptureText: ; fbe8 (3:7be8)
ld a, [W_CURMAPTILESET]
cp MANSION ; Celadon Mansion tileset
jr nz, .asm_fbfd
- ld a, [$c420]
+ ld a, [wTileMap + $80]
cp $38
jr nz, .asm_fbfd
ld hl, DiglettSculptureText
@@ -115,8 +114,8 @@ TownMapText: ; fc12 (3:7c12)
db $06
db $08 ; asm
ld a, $1
- ld [$cc3c], a
- ld hl, $d730
+ ld [wcc3c], a
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
xor a
@@ -125,7 +124,7 @@ TownMapText: ; fc12 (3:7c12)
ld [H_AUTOBGTRANSFERENABLED], a
call LoadFontTilePatterns
callba DisplayTownMap
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld de, TextScriptEnd
push de
diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm
index 858d664f..848f6f3d 100755
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -21,7 +21,7 @@ DisplayOakLabRightPoster: ; 1e965 (7:6965)
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
cp $2
ld a, $6 ; SaveOptionText
jr c, .asm_1e97b
@@ -38,29 +38,29 @@ StrengthsAndWeaknessesText: ; 1e983 (7:6983)
db "@"
SafariZoneCheck: ; 1e988 (7:6988)
- ld hl, $d790
+ ld hl, wd790
bit 7, [hl]
jr z, asm_1e9ab
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr z, asm_1e9b0
jr asm_1e9ab
SafariZoneCheckSteps: ; 1e997 (7:6997)
- ld a, [wSafariSteps] ; $d70d
+ ld a, [wSafariSteps] ; wd70d
ld b, a
- ld a, [wSafariSteps + 1] ; $d70e
+ ld a, [wSafariSteps + 1] ; wd70e
ld c, a
or b
jr z, asm_1e9b0
dec bc
ld a, b
- ld [wSafariSteps], a ; $d70d
+ ld [wSafariSteps], a ; wd70d
ld a, c
- ld [wSafariSteps + 1], a ; $d70e
+ ld [wSafariSteps + 1], a ; wd70e
asm_1e9ab: ; 1e9ab (7:69ab)
xor a
- ld [$da46], a
+ ld [wda46], a
ret
asm_1e9b0: ; 1e9b0 (7:69b0)
call EnableAutoTextBoxDrawing
@@ -72,35 +72,35 @@ asm_1e9b0: ; 1e9b0 (7:69b0)
ld a, (SFX_02_5f - SFX_Headers_02) / 3
call PlayMusic
.asm_1e9c2
- ld a, [$c02a]
+ ld a, [wc02a]
cp $b9
jr nz, .asm_1e9c2
ld a, $d3
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
xor a
- ld [$d528], a
+ ld [wd528], a
ld a, $9c
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld a, $3
- ld [$d42f], a
+ ld [wd42f], a
ld a, $5
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
- ld hl, $d790
+ ld hl, wd790
set 6, [hl]
ld a, $1
- ld [$da46], a
+ ld [wda46], a
ret
PrintSafariGameOverText: ; 1e9ed (7:69ed)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld hl, SafariGameOverText
jp PrintText
SafariGameOverText: ; 1e9f7 (7:69f7)
db $08 ; asm
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr z, .asm_1ea04
ld hl, TimesUpText
@@ -119,7 +119,7 @@ GameOverText: ; 1ea12 (7:6a12)
db "@"
PrintCinnabarQuiz: ; 1ea17 (7:6a17)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
@@ -129,8 +129,8 @@ PrintCinnabarQuiz: ; 1ea17 (7:6a17)
CinnabarGymQuiz: ; 1ea25 (7:6a25)
db $08 ; asm
xor a
- ld [$da38], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [wda38], a
+ ld a, [wWhichTrade] ; wWhichTrade
push af
and $f
ld [$ffdb], a
@@ -152,7 +152,7 @@ CinnabarGymQuiz: ; 1ea25 (7:6a25)
ld l, a
call PrintText
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
call CinnabarGymQuiz_1ea92
jp TextScriptEnd
@@ -193,18 +193,17 @@ CinnabarQuizQuestionsText6: ; 1ea85 (7:6a85)
db "@"
CinnabarGymQuiz_1ea8a: ; 1ea8a (7:6a8a)
- ld hl, $d79c
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wd79c
+ predef_jump FlagActionPredef
CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92)
call YesNoChoice
ld a, [$ffdc]
ld c, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp c
jr nz, .asm_1eab8
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
ld a, [$ffdb]
ld [$ffe0], a
@@ -226,15 +225,14 @@ CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92)
add $2
ld c, a
ld b, $2
- ld hl, $d79a
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wd79a
+ predef FlagActionPredef
ld a, c
and a
ret nz
ld a, [$ffdb]
add $2
- ld [$da38], a
+ ld [wda38], a
ret
CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3)
@@ -276,7 +274,7 @@ CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a)
ld c, a
inc hl
ld a, [hl]
- ld [$d12f], a
+ ld [wd12f], a
push bc
ld a, [$ffdb]
ld [$ffe0], a
@@ -286,15 +284,14 @@ CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a)
ld a, c
and a
jr nz, .asm_1eb36
- ld a, [$d12f]
+ ld a, [wd12f]
jr .asm_1eb38
.asm_1eb36
ld a, $e
.asm_1eb38
pop bc
- ld [$d09f], a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ ld [wd09f], a
+ predef Func_ee9e
ld hl, $ffdb
dec [hl]
jr nz, .asm_1eb0e
@@ -322,10 +319,10 @@ MagazinesText: ; 1eb69 (7:6b69)
BillsHousePC: ; 1eb6e (7:6b6e)
call EnableAutoTextBoxDrawing
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
- ld a, [$d7f2]
+ ld a, [wd7f2]
bit 7, a
jr nz, .asm_1ebd2
bit 3, a
@@ -337,7 +334,7 @@ BillsHousePC: ; 1eb6e (7:6b6e)
jp PrintPredefTextID
.asm_1eb8b
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, $2e
call PrintPredefTextID
ld c, $20
@@ -361,12 +358,12 @@ BillsHousePC: ; 1eb6e (7:6b6e)
call PlaySound
call WaitForSoundToFinish
call Func_2307
- ld hl, $d7f2
+ ld hl, wd7f2
set 3, [hl]
ret
.asm_1ebd2
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, $2f
call PrintPredefTextID
ret
@@ -380,7 +377,7 @@ BillsHouseInitiatedText: ; 1ebe2 (7:6be2)
db $06
db $08 ; asm
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, $10
call DelayFrames
@@ -397,25 +394,25 @@ BillsHousePokemonList: ; 1ec05 (7:6c05)
ld hl, BillsHousePokemonListText1
call PrintText
xor a
- ld [$d07c], a
- ld [$cc26], a
- ld [$cc2a], a
+ ld [W_ANIMATIONID], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $3
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $4
- ld [$cc28], a
+ ld [wMaxMenuItem], a
ld a, $2
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
.asm_1ec2d
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld b, $a
ld c, $9
call TextBoxBorder
- ld hl, $c3ca
+ ld hl, wTileMap + $2a
ld de, BillsMonListText
call PlaceString
ld hl, BillsHousePokemonListText2
@@ -424,7 +421,7 @@ BillsHousePokemonList: ; 1ec05 (7:6c05)
call HandleMenuInput
bit 1, a
jr nz, .asm_1ec74
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
add EEVEE
cp EEVEE
jr z, .asm_1ec6c
@@ -440,7 +437,7 @@ BillsHousePokemonList: ; 1ec05 (7:6c05)
call LoadScreenTilesFromBuffer2
jr .asm_1ec2d
.asm_1ec74
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer2
jp TextScriptEnd
@@ -461,7 +458,7 @@ BillsHousePokemonListText2: ; 1ecaa (7:6caa)
db "@"
DisplayOakLabEmailText: ; 1ecaf (7:6caf)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm
index 8ba52247..9ff9e3cf 100755
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -1,9 +1,9 @@
-UpdateHPBar_LoadRegisters: ; f9dc (3:79dc)
- call Load16BitRegisters
+HPBarLength: ; f9dc (3:79dc)
+ call GetPredefRegisters
; calculates bc * 48 / de, the number of pixels the HP bar has
; the result is always at least 1
-UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df)
+GetHPBarLength: ; f9df (3:79df)
push hl
xor a
ld hl, H_MULTIPLICAND
@@ -46,6 +46,7 @@ UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df)
; predef $48
UpdateHPBar: ; fa1d (3:7a1d)
+UpdateHPBar2:
push hl
ld hl, wHPBarOldHP
ld a, [hli]
@@ -72,7 +73,7 @@ UpdateHPBar: ; fa1d (3:7a1d)
ld a, $1
.HPdecrease
ld [wHPBarDelta], a
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, [wHPBarNewHP]
ld e, a
ld a, [wHPBarNewHP+1]
@@ -202,13 +203,13 @@ UpdateHPBar_CalcHPDifference: ; fad7 (3:7ad7)
UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push af
push de
- ld a, [wListMenuID] ; $cf94
+ ld a, [wListMenuID] ; wListMenuID
and a
jr z, .asm_fb2d
ld a, [wHPBarOldHP]
- ld [$cef1], a
+ ld [wcef1], a
ld a, [wHPBarOldHP+1]
- ld [$cef0], a
+ ld [wcef0], a
push hl
ld a, [$fff6]
bit 0, a
@@ -225,7 +226,7 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
ld [hli], a
ld [hli], a
pop hl
- ld de, $cef0
+ ld de, wcef0
ld bc, $203
call PrintNumber
call DelayFrame
@@ -254,12 +255,12 @@ UpdateHPBar_CalcOldNewHPBarPixels: ; fb30 (3:7b30)
ld l, a
push hl
push de
- call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for old HP
+ call GetHPBarLength ; calc num pixels for old HP
ld a, e
pop de
pop bc
push af
- call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for new HP
+ call GetHPBarLength ; calc num pixels for new HP
pop af
ld d, e
ld e, a
diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm
index ebde5855..7f0b21c1 100755
--- a/engine/in_game_trades.asm
+++ b/engine/in_game_trades.asm
@@ -11,12 +11,12 @@ Predef54: ; 71ad9 (1c:5ad9)
ld b,$0
add hl,bc
ld a,[hli]
- ld [$cd0f],a
+ ld [wcd0f],a
ld a,[hli]
- ld [$cd34],a
+ ld [wcd34],a
ld a,[hli]
push af
- ld de,$cd29
+ ld de,wcd29
ld bc,$000b
call CopyData
pop af
@@ -26,33 +26,32 @@ Predef54: ; 71ad9 (1c:5ad9)
add hl,hl
add hl,de
ld a,[hli]
- ld [$cd10],a
+ ld [wcd10],a
ld a,[hl]
- ld [$cd11],a
- ld a,[$cd0f]
- ld de,$cd13
+ ld [wcd11],a
+ ld a,[wcd0f]
+ ld de,wcd13
call Func_71b6a
- ld a,[$cd34]
- ld de,$cd1e
+ ld a,[wcd34]
+ ld de,wPlayerMonAccuracyMod
call Func_71b6a
- ld hl,$d737
+ ld hl,wd737
ld a,[wWhichTrade]
ld c,a
ld b,$2
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
ld a,$4
- ld [$cd12],a
+ ld [wcd12],a
jr nz,.asm_99bca ; 0x71b36 $20
xor a
- ld [$cd12],a
+ ld [wcd12],a
call .asm_99bca
ld a,$1
- ld [$cd12],a
+ ld [wcd12],a
call YesNoChoice
- ld a,[$cc26]
+ ld a,[wCurrentMenuItem]
and a
jr nz,.asm_99bca ; 0x71b4b $b
call Func_71c07
@@ -60,7 +59,7 @@ Predef54: ; 71ad9 (1c:5ad9)
ld hl, TradedForText
call PrintText
.asm_99bca ; 0x71b58
- ld hl,$cd12
+ ld hl,wcd12
ld a,[hld]
ld e,a
ld d,$0
@@ -76,9 +75,9 @@ Predef54: ; 71ad9 (1c:5ad9)
Func_71b6a: ; 71b6a (1c:5b6a)
push de
- ld [$d11e],a
+ ld [wd11e],a
call GetMonName
- ld hl,$cd6d
+ ld hl,wcd6d
pop de
ld bc,$b
jp CopyData
@@ -87,56 +86,54 @@ INCLUDE "data/trades.asm"
Func_71c07: ; 71c07 (1c:5c07)
xor a
- ld [$d07d],a
+ ld [wd07d],a
dec a
- ld [$cfcb],a
+ ld [wcfcb],a
call DisplayPartyMenu
push af
call Func_71ca2
pop af
ld a,$1
jp c,.asm_c4bc2
- ld a,[$cd0f]
+ ld a,[wcd0f]
ld b,a
- ld a,[$cf91]
+ ld a,[wcf91]
cp b
ld a,$2
jr nz,.asm_c4bc2 ; 0x71c26 $75
ld a,[wWhichPokemon]
- ld hl,$d18c
+ ld hl,wPartyMon1Level
ld bc,$002c
call AddNTimes
ld a,[hl]
- ld [$d127],a
- ld hl,$d737
+ ld [W_CURENEMYLVL],a
+ ld hl,wd737
ld a,[wWhichTrade]
ld c,a
ld b,$1
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld hl, ConnectCableText
call PrintText
ld a,[wWhichPokemon]
push af
- ld a,[$d127]
+ ld a,[W_CURENEMYLVL]
push af
call LoadHpBarAndStatusTilePatterns
call Func_71cc1
- ld a,$38
- call Predef
+ predef Func_410e2
pop af
- ld [$d127],a
+ ld [W_CURENEMYLVL],a
pop af
ld [wWhichPokemon],a
- ld a,[$cd34]
- ld [$cf91],a
+ ld a,[wcd34]
+ ld [wcf91],a
xor a
- ld [$cc49],a
- ld [$cf95],a
+ ld [wcc49],a
+ ld [wcf95],a
call RemovePokemon
ld a,$80
- ld [$cc49],a
- call AddPokemonToParty
+ ld [wcc49],a
+ call AddPartyMon
call Func_71d19
callab EvolveTradeMon
call ClearScreen
@@ -148,7 +145,7 @@ Func_71c07: ; 71c07 (1c:5c07)
.asm_c4bc2 ; 0x71c9d
scf
.asm_ee803 ; 0x71c9e
- ld [$cd12],a
+ ld [wcd12],a
ret
Func_71ca2: ; 71ca2 (1c:5ca2)
@@ -165,33 +162,33 @@ Func_71ca2: ; 71ca2 (1c:5ca2)
jp Bankswitch
Func_71cc1: ; 71cc1 (1c:5cc1)
- ld hl, wWhichTrade ; $cd3d
- ld a, [$cd0f]
+ ld hl, wWhichTrade ; wWhichTrade
+ ld a, [wcd0f]
ld [hli], a
- ld a, [$cd34]
+ ld a, [wcd34]
ld [hl], a
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
ld bc, $b
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
- ld de, $cd41
+ ld de, wTrainerScreenX
ld bc, $b
call Func_71d11
ld hl, String_71d59 ; $5d59
- ld de, $cd4e
+ ld de, wcd4e
call Func_71d11
- ld de, W_GRASSRATE ; $d887
+ ld de, W_GRASSRATE ; W_GRASSRATE
call Func_71d11
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
- ld de, $cd4c
+ ld de, wcd4c
ld bc, $2
call Func_71d11
- call GenRandom
- ld hl, H_RAND1 ; $ffd3
- ld de, $cd59
+ call Random
+ ld hl, hRandomAdd
+ ld de, wcd59
jp CopyData
Func_71d11: ; 71d11 (1c:5d11)
@@ -203,27 +200,27 @@ Func_71d11: ; 71d11 (1c:5d11)
ret
Func_71d19: ; 71d19 (1c:5d19)
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
ld bc, $b
call Func_71d4f
- ld hl, $cd29
+ ld hl, wcd29
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
ld bc, $b
call Func_71d4f
ld hl, String_71d59 ; $5d59
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
call Func_71d4f
- ld hl, $cd59
+ ld hl, wcd59
ld bc, $2
jp CopyData
Func_71d4f: ; 71d4f (1c:5d4f)
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
call AddNTimes
ld e, l
diff --git a/engine/intro.asm b/engine/intro.asm
index 89c344db..801324a5 100755
--- a/engine/intro.asm
+++ b/engine/intro.asm
@@ -1,6 +1,6 @@
PlayIntro: ; 41682 (10:5682)
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call PlayShootingStar
@@ -9,7 +9,7 @@ PlayIntro: ; 41682 (10:5682)
xor a
ld [$ffae], a
ld [H_AUTOBGTRANSFERENABLED], a
- call CleanLCD_OAM
+ call ClearSprites
call DelayFrame
ret
@@ -38,7 +38,7 @@ PlayIntroScene: ; 4169d (10:569d)
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation1
call AnimateIntroNidorino
; hop
@@ -86,7 +86,7 @@ PlayIntroScene: ; 4169d (10:569d)
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
ld a, $24
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation3
call AnimateIntroNidorino
ld c, $1e
@@ -105,7 +105,7 @@ PlayIntroScene: ; 4169d (10:569d)
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation4 ; $5931
call AnimateIntroNidorino
; hop
@@ -118,7 +118,7 @@ PlayIntroScene: ; 4169d (10:569d)
ret c
ld a, $24
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation6 ; $5947
call AnimateIntroNidorino
ld c, $1e
@@ -129,7 +129,7 @@ PlayIntroScene: ; 4169d (10:569d)
ld a, (SFX_1f_5e - SFX_Headers_1f) / 3
call PlaySound
ld a, $48
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation7 ; $5950
jp AnimateIntroNidorino
@@ -137,10 +137,10 @@ AnimateIntroNidorino: ; 41793 (10:5793)
ld a, [de]
cp $50
ret z
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
inc de
ld a, [de]
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
push de
ld c, $24
call Func_417ae
@@ -152,13 +152,13 @@ AnimateIntroNidorino: ; 41793 (10:5793)
Func_417ae: ; 417ae (10:57ae)
ld hl, wOAMBuffer
- ld a, [$d09f]
+ ld a, [wd09f]
ld d, a
.asm_417b5
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add [hl]
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add [hl]
ld [hli], a
ld a, d
@@ -174,14 +174,14 @@ Func_417c7: ; 417c7 (10:57c7)
ld d, $0
.asm_417cc
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_417d1
ld a, e
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -190,22 +190,21 @@ Func_417c7: ; 417c7 (10:57c7)
inc d
dec c
jr nz, .asm_417d1
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $8
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
pop bc
dec b
jr nz, .asm_417cc
ret
Func_417f0: ; 417f0 (10:57f0)
- ld hl, $9c00
+ ld hl, vBGMap1
ld bc, $240
jr asm_417fe
Func_417f8: ; 417f8 (10:57f8)
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld bc, $c8
asm_417fe: ; 417fe (10:57fe)
ld [hl], $0
@@ -237,9 +236,9 @@ Func_4180e: ; 4180e (10:580e)
.asm_4181d
push de
ld a, $2
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
xor a
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld c, $24
call Func_417ae
pop de
@@ -259,38 +258,35 @@ Func_4180e: ; 4180e (10:580e)
ret
Func_4183f: ; 4183f (10:583f)
- FuncCoord 13, 7 ; $c439
- ld hl, Coord
+ hlCoord 13, 7
Func_41842: ; 41842 (10:5842)
ld c, $0
- ld a, $31
- jp Predef ; indirect jump to Func_79dda
+ predef_jump Func_79dda
Func_41849: ; 41849 (10:5849)
- ld a, $33
- call Predef ; indirect jump to Func_79869
+ predef Func_79869
ld a, b
jp PlaySound
LoadIntroGraphics: ; 41852 (10:5852)
ld hl, FightIntroBackMon ; $5a99
- ld de, $9000
+ ld de, vChars2
ld bc, $600
ld a, BANK(FightIntroBackMon)
call FarCopyData2
ld hl, GameFreakIntro ; $5959
- ld de, $9600
+ ld de, vChars2 + $600
ld bc, $140
ld a, BANK(GameFreakIntro)
call FarCopyData2
ld hl, GameFreakIntro ; $5959
- ld de, $8800
+ ld de, vChars1
ld bc, $140
ld a, BANK(GameFreakIntro)
call FarCopyData2
ld hl, FightIntroFrontMon ; $6099
- ld de, $8000
+ ld de, vChars0
ld bc, $6c0
ld a, BANK(FightIntroFrontMon)
jp FarCopyData2
@@ -306,7 +302,7 @@ PlayShootingStar: ; 4188a (10:588a)
call ClearScreen
call DisableLCD
xor a
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
call Func_418e9
call LoadIntroGraphics
call EnableLCD
@@ -322,14 +318,14 @@ PlayShootingStar: ; 4188a (10:588a)
ld c, $28
call DelayFrames
.asm_418d0
- ld a, Bank(Func_7d8ea)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_IntroBattle)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_INTRO_BATTLE
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
call Func_417f8
- call CleanLCD_OAM
+ call ClearSprites
jp Delay3
Func_418e9: ; 418e9 (10:58e9)
@@ -337,14 +333,13 @@ Func_418e9: ; 418e9 (10:58e9)
ld hl, wTileMap
ld c, $50
call Func_41807
- FuncCoord 0, 14 ; $c4b8
- ld hl, Coord
+ hlCoord 0, 14
ld c, $50
call Func_41807
- ld hl, $9c00
+ ld hl, vBGMap1
ld c, $80
call Func_41807
- ld hl, $9dc0
+ ld hl, vBGMap1 + $1c0
ld c, $80
jp Func_41807
@@ -425,7 +420,7 @@ IntroNidorinoAnimation7: ; 41950 (10:5950)
db $50 ; list terminator
GameFreakIntro: ; 41959 (10:5959)
- INCBIN "gfx/gamefreak_intro.h8.2bpp"
+ INCBIN "gfx/gamefreak_intro.2bpp"
INCBIN "gfx/gamefreak_logo.2bpp"
ds $10 ; blank tile
diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm
index 4ec2a23f..d7e5b3ce 100755
--- a/engine/items/itemfinder.asm
+++ b/engine/items/itemfinder.asm
@@ -4,15 +4,14 @@ HiddenItemNear: ; 7481f (1d:481f)
.asm_74824
ld de, $0003
ld a, [W_CURMAP]
- call IsInArrayCummulativeCount
+ call IsInRestOfArray
ret nc ; return if current map has no hidden items
push bc
push hl
- ld hl, $d6f0
+ ld hl, wd6f0
ld c, b
ld b, $2
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
ld a, c
pop hl
pop bc
diff --git a/engine/items/items.asm b/engine/items/items.asm
index e7f9cbe6..830f0dfc 100755
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -1,7 +1,7 @@
UseItem_: ; d5c7 (3:55c7)
ld a,1
- ld [$cd6a],a
- ld a,[$cf91] ;contains item_ID
+ ld [wcd6a],a
+ ld a,[wcf91] ;contains item_ID
cp a,HM_01
jp nc,ItemUseTMHM
ld hl,ItemUsePtrTable
@@ -109,7 +109,7 @@ ItemUseBall: ; d687 (3:5687)
ld a,[W_BATTLETYPE]
dec a
jr z,.UseBall
- ld a,[W_NUMINPARTY] ;is Party full?
+ ld a,[wPartyCount] ;is Party full?
cp a,6
jr nz,.UseBall
ld a,[W_NUMINBOX] ;is Box full?
@@ -118,7 +118,7 @@ ItemUseBall: ; d687 (3:5687)
.UseBall ;$56a7
;ok, you can use a ball
xor a
- ld [$d11c],a
+ ld [wd11c],a
ld a,[W_BATTLETYPE]
cp a,2 ;SafariBattle
jr nz,.skipSafariZoneCode
@@ -129,7 +129,7 @@ ItemUseBall: ; d687 (3:5687)
.skipSafariZoneCode ;$56b6
call GoPAL_SET_CF1C
ld a,$43
- ld [$d11e],a
+ ld [wd11e],a
call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup
ld hl,ItemUseText00
call PrintText
@@ -141,7 +141,7 @@ ItemUseBall: ; d687 (3:5687)
jr nz,.notOldManBattle
.oldManBattle
ld hl,W_GRASSRATE
- ld de,W_PLAYERNAME
+ ld de,wPlayerName
ld bc,11
call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno glitch)
jp .BallSuccess ;$578b
@@ -149,16 +149,16 @@ ItemUseBall: ; d687 (3:5687)
ld a,[W_CURMAP]
cp a,POKEMONTOWER_6
jr nz,.loop
- ld a,[W_ENEMYMONID]
+ ld a,[wEnemyMonSpecies2]
cp a,MAROWAK
ld b,$10
jp z,.next12
; if not fighting ghost Marowak, loop until a random number in the current
; pokeball's allowed range is found
.loop ;$56fa
- call GenRandom
+ call Random
ld b,a
- ld hl,$cf91
+ ld hl,wcf91
ld a,[hl]
cp a,MASTER_BALL
jp z,.BallSuccess ;$578b
@@ -178,7 +178,7 @@ ItemUseBall: ; d687 (3:5687)
; Frozen/Asleep pokemon are relatively even easier to catch
; for Frozen/Asleep pokemon, any random number from 0-24 ensures a catch.
; for the others, a random number from 0-11 ensures a catch.
- ld a,[W_ENEMYMONSTATUS] ;status ailments
+ ld a,[wEnemyMonStatus] ;status ailments
and a
jr z,.noAilments
and a, 1 << FRZ | SLP ;is frozen and/or asleep?
@@ -194,7 +194,7 @@ ItemUseBall: ; d687 (3:5687)
push bc ;save RANDOM number
xor a
ld [H_MULTIPLICAND],a
- ld hl,W_ENEMYMONMAXHP
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [H_MULTIPLICAND + 1],a
ld a,[hl]
@@ -202,7 +202,7 @@ ItemUseBall: ; d687 (3:5687)
ld a,255
ld [H_MULTIPLIER],a
call Multiply ; MaxHP * 255
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,GREAT_BALL
ld a,12 ;any other BallFactor
jr nz,.next7
@@ -211,7 +211,7 @@ ItemUseBall: ; d687 (3:5687)
ld [H_DIVISOR],a
ld b,4 ; number of bytes in dividend
call Divide
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld a,[hli]
ld b,a
ld a,[hl]
@@ -237,13 +237,13 @@ ItemUseBall: ; d687 (3:5687)
ld [H_QUOTIENT + 3],a
.next9 ;$5776
pop bc
- ld a,[$d007] ;enemy: Catch Rate
+ ld a,[wd007] ;enemy: Catch Rate
cp b
jr c,.next10
ld a,[H_QUOTIENT + 2]
and a
jr nz,.BallSuccess ; if ((MaxHP * 255) / BallFactor) / (CurHP / 4) > 0x255, automatic success
- call GenRandom
+ call Random
ld b,a
ld a,[H_QUOTIENT + 3]
cp b
@@ -252,16 +252,16 @@ ItemUseBall: ; d687 (3:5687)
jr .BallSuccess2
.next10 ;$578d
ld a,[H_QUOTIENT + 3]
- ld [$d11e],a
+ ld [wd11e],a
xor a
ld [H_MULTIPLICAND],a
ld [H_MULTIPLICAND + 1],a
- ld a,[$d007] ;enemy: Catch Rate
+ ld a,[wd007] ;enemy: Catch Rate
ld [H_MULTIPLICAND + 2],a
ld a,100
ld [H_MULTIPLIER],a
call Multiply ; CatchRate * 100
- ld a,[$cf91]
+ ld a,[wcf91]
ld b,255
cp a,POKE_BALL
jr z,.next11
@@ -280,14 +280,14 @@ ItemUseBall: ; d687 (3:5687)
and a
ld b,$63
jr nz,.next12
- ld a,[$d11e]
+ ld a,[wd11e]
ld [H_MULTIPLIER],a
call Multiply
ld a,255
ld [H_DIVISOR],a
ld b,4
call Divide
- ld a,[W_ENEMYMONSTATUS] ;status ailments
+ ld a,[wEnemyMonStatus] ;status ailments
and a
jr z,.next13
and a, 1 << FRZ | SLP
@@ -312,7 +312,7 @@ ItemUseBall: ; d687 (3:5687)
ld b,$63
.next12 ;$5801
ld a,b
- ld [$d11e],a
+ ld [wd11e],a
.BallSuccess2 ;$5805
ld c,20
call DelayFrames
@@ -320,19 +320,18 @@ ItemUseBall: ; d687 (3:5687)
ld [W_ANIMATIONID],a
xor a
ld [$fff3],a
- ld [$cc5b],a
- ld [$d05b],a
+ ld [wcc5b],a
+ ld [wd05b],a
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
- ld a,$08 ;probably animations
- call Predef
+ predef MoveAnimation
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[$d11e]
+ ld a,[wd11e]
cp a,$10
ld hl,ItemUseBallText00
jp z,.printText0
@@ -348,7 +347,7 @@ ItemUseBall: ; d687 (3:5687)
cp a,$63
ld hl,ItemUseBallText04
jp z,.printText0
- ld hl,$cfe6 ;current HP
+ ld hl,wEnemyMonHP ;current HP
ld a,[hli]
push af
ld a,[hli]
@@ -357,29 +356,29 @@ ItemUseBall: ; d687 (3:5687)
ld a,[hl]
push af ;...and status ailments
push hl
- ld hl,$d069
+ ld hl,W_ENEMYBATTSTATUS3
bit 3,[hl]
jr z,.next15
ld a,$4c
- ld [W_ENEMYMONID],a
+ ld [wEnemyMonSpecies2],a
jr .next16
.next15 ;$5871
set 3,[hl]
- ld hl,$cceb
- ld a,[$cff1]
+ ld hl,wcceb
+ ld a,[wEnemyMonDVs]
ld [hli],a
- ld a,[$cff2]
+ ld a,[wEnemyMonDVs + 1]
ld [hl],a
.next16 ;$587e
- ld a,[$cf91]
+ ld a,[wcf91]
push af
- ld a,[W_ENEMYMONID]
- ld [$cf91],a
- ld a,[$cff3]
- ld [$d127],a
+ ld a,[wEnemyMonSpecies2]
+ ld [wcf91],a
+ ld a,[wEnemyMonLevel]
+ ld [W_CURENEMYLVL],a
callab Func_3eb01
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop hl
pop af
ld [hld],a
@@ -388,56 +387,52 @@ ItemUseBall: ; d687 (3:5687)
ld [hld],a
pop af
ld [hl],a
- ld a,[$cfe5] ;enemy
- ld [$d11c],a
- ld [$cf91],a
- ld [$d11e],a
+ ld a,[wEnemyMonSpecies] ;enemy
+ ld [wd11c],a
+ ld [wcf91],a
+ ld [wd11e],a
ld a,[W_BATTLETYPE]
dec a
jr z,.printText1
ld hl,ItemUseBallText05
call PrintText
- ld a,$3a ;convert order: Internal->Dex
- call Predef
- ld a,[$d11e]
+ predef IndexToPokedex
+ ld a,[wd11e]
dec a
ld c,a
ld b,2
ld hl,wPokedexOwned ;Dex_own_flags (pokemon)
- ld a,$10
- call Predef ;check Dex flag (own already or not)
+ predef FlagActionPredef
ld a,c
push af
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld c,a
ld b,1
- ld a,$10 ;set Dex_own_flag?
- call Predef
+ predef FlagActionPredef
pop af
and a
jr nz,.checkParty
ld hl,ItemUseBallText06
call PrintText
- call CleanLCD_OAM
- ld a,[$cfe5] ;caught mon_ID
- ld [$d11e],a
- ld a,$3d
- call Predef
+ call ClearSprites
+ ld a,[wEnemyMonSpecies] ;caught mon_ID
+ ld [wd11e],a
+ predef ShowPokedexData
.checkParty ;$58f4
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
cp a,6 ;is party full?
jr z,.sendToBox
xor a
- ld [$cc49],a
- call CleanLCD_OAM
- call AddPokemonToParty ;add mon to Party
+ ld [wcc49],a
+ call ClearSprites
+ call AddPartyMon ;add mon to Party
jr .End
.sendToBox ;$5907
- call CleanLCD_OAM
+ call ClearSprites
call Func_e7a4
ld hl,ItemUseBallText07
- ld a,[$d7f1]
+ ld a,[wd7f1]
bit 0,a ;already met Bill?
jr nz,.sendToBox2
ld hl,ItemUseBallText08
@@ -448,14 +443,14 @@ ItemUseBall: ; d687 (3:5687)
ld hl,ItemUseBallText05
.printText0 ;$5922
call PrintText
- call CleanLCD_OAM
+ call ClearSprites
.End ;$5928
ld a,[W_BATTLETYPE]
and a
ret nz
- ld hl,$d31d
+ ld hl,wNumBagItems
inc a
- ld [$cf96],a
+ ld [wcf96],a
jp RemoveItemFromInventory ;remove ITEM (XXX)
ItemUseBallText00: ; d937 (3:5937)
;"It dodged the thrown ball!"
@@ -512,8 +507,8 @@ ItemUseBicycle: ; d977 (3:5977)
ld a,[W_ISINBATTLE]
and a
jp nz,ItemUseNotTime
- ld a,[$d700]
- ld [$d11a],a
+ ld a,[wd700]
+ ld [wd11a],a
cp a,2 ; is the player surfing?
jp z,ItemUseNotTime
dec a ; is player already bicycling?
@@ -521,7 +516,7 @@ ItemUseBicycle: ; d977 (3:5977)
.getOffBike
call ItemUseReloadOverworldData
xor a
- ld [$d700],a ; change player state to walking
+ ld [wd700],a ; change player state to walking
call Func_2307 ; play walking music
ld hl,GotOffBicycleText
jr .printText
@@ -530,9 +525,9 @@ ItemUseBicycle: ; d977 (3:5977)
jp nc,NoCyclingAllowedHere
call ItemUseReloadOverworldData
xor a ; no keys pressed
- ld [H_CURRENTPRESSEDBUTTONS],a ; current joypad state
+ ld [hJoyHeld],a ; current joypad state
inc a
- ld [$d700],a ; change player state to bicycling
+ ld [wd700],a ; change player state to bicycling
ld hl,GotOnBicycleText
call Func_2307 ; play bike riding music
.printText
@@ -540,8 +535,8 @@ ItemUseBicycle: ; d977 (3:5977)
; used for Surf out-of-battle effect
ItemUseSurfboard: ; d9b4 (3:59b4)
- ld a,[$d700]
- ld [$d11a],a
+ ld a,[wd700]
+ ld [wd11a],a
cp a,2 ; is the player already surfing?
jr z,.tryToStopSurfing
.tryToSurf
@@ -552,10 +547,10 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
jp c,SurfingAttemptFailed
.surf
call .makePlayerMoveForward
- ld hl,$d730
+ ld hl,wd730
set 7,[hl]
ld a,2
- ld [$d700],a ; change player state to surfing
+ ld [wd700],a ; change player state to surfing
call Func_2307 ; play surfing music
ld hl,SurfingGotOnText
jp PrintText
@@ -571,11 +566,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
ld hl,TilePairCollisionsWater
call CheckForTilePairCollisions
jr c,.cannotStopSurfing
- ld hl,$d530 ; pointer to list of passable tiles
+ ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles
ld a,[hli]
ld h,[hl]
ld l,a ; hl now points to passable tiles
- ld a,[$cfc6] ; tile in front of the player
+ ld a,[wcfc6] ; tile in front of the player
ld b,a
.passableTileLoop
ld a,[hli]
@@ -588,17 +583,17 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
jp PrintText
.stopSurfing
call .makePlayerMoveForward
- ld hl,$d730
+ ld hl,wd730
set 7,[hl]
xor a
- ld [$d700],a ; change player state to walking
+ ld [wd700],a ; change player state to walking
dec a
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
call Func_2307 ; play walking music
jp LoadWalkingPlayerSpriteGraphics
; uses a simulated button press to make the player move forward
.makePlayerMoveForward
- ld a,[$d52a] ; direction the player is going
+ ld a,[wd52a] ; direction the player is going
bit 3,a
ld b,%01000000 ; Up key
jr nz,.storeSimulatedButtonPress
@@ -611,11 +606,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
ld b,%00010000 ; Right key
.storeSimulatedButtonPress
ld a,b
- ld [$ccd3],a ; base address of simulated button presses
+ ld [wccd3],a ; base address of simulated button presses
xor a
- ld [$cd39],a
+ ld [wcd39],a
inc a
- ld [$cd38],a ; index of current simulated button press
+ ld [wcd38],a ; index of current simulated button press
ret
SurfingGotOnText: ; da4c (3:5a4c)
@@ -627,8 +622,7 @@ SurfingNoPlaceToGetOffText: ; da51 (3:5a51)
db "@"
ItemUsePokedex: ; da56 (3:5a56)
- ld a,$29
- jp Predef
+ predef_jump ShowPokedexMenu
ItemUseEvoStone: ; da5b (3:5a5b)
ld a,[W_ISINBATTLE]
@@ -636,38 +630,38 @@ ItemUseEvoStone: ; da5b (3:5a5b)
jp nz,ItemUseNotTime
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
- ld [$d156],a
+ ld a,[wcf91]
+ ld [wd156],a
push af
ld a,$05 ; evolution stone party menu
- ld [$d07d],a
+ ld [wd07d],a
ld a,$ff
- ld [$cfcb],a
+ ld [wcfcb],a
call DisplayPartyMenu
pop bc
jr c,.canceledItemUse
ld a,b
- ld [$cf91],a
+ ld [wcf91],a
ld a,$01
- ld [$ccd4],a
+ ld [wccd4],a
ld a,(SFX_02_3e - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
call WaitForSoundToFinish ; wait for sound to end
callab Func_3ad0e ; try to evolve pokemon
- ld a,[$d121]
+ ld a,[wd121]
and a
jr z,.noEffect
pop af
ld [wWhichPokemon],a
ld hl,wNumBagItems
ld a,1 ; remove 1 stone
- ld [$cf96],a
+ ld [wcf96],a
jp RemoveItemFromInventory
.noEffect
call ItemUseNoEffect
.canceledItemUse
xor a
- ld [$cd6a],a
+ ld [wcd6a],a
pop af
ret
@@ -677,18 +671,18 @@ ItemUseVitamin: ; dab4 (3:5ab4)
jp nz,ItemUseNotTime
ItemUseMedicine: ; dabb (3:5abb)
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
and a
jp z,.emptyParty
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
ld a,$01
- ld [$d07d],a ; item use party menu
+ ld [wd07d],a ; item use party menu
ld a,$ff
- ld [$cfcb],a
- ld a,[$d152]
+ ld [wcfcb],a
+ ld a,[wd152]
and a ; using Softboiled?
jr z,.notUsingSoftboiled
; if using softboiled
@@ -697,7 +691,7 @@ ItemUseMedicine: ; dabb (3:5abb)
.emptyParty
ld hl,.emptyPartyText
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
jp PrintText
.emptyPartyText
text "You don't have"
@@ -707,21 +701,21 @@ ItemUseMedicine: ; dabb (3:5abb)
call DisplayPartyMenu
.getPartyMonDataAddress
jp c,.canceledItemUse
- ld hl,W_PARTYMON1DATA
- ld bc,44
+ ld hl,wPartyMons
+ ld bc,wPartyMon2 - wPartyMon1
ld a,[wWhichPokemon]
call AddNTimes
ld a,[wWhichPokemon]
- ld [$cf06],a
+ ld [wcf06],a
ld d,a
- ld a,[$cf91]
+ ld a,[wcf91]
ld e,a
- ld [$d0b5],a
+ ld [wd0b5],a
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
jr z,.checkItemType
; if using softboiled
@@ -729,7 +723,7 @@ ItemUseMedicine: ; dabb (3:5abb)
cp d ; is the pokemon trying to use softboiled on itself?
jr z,ItemUseMedicine ; if so, force another choice
.checkItemType
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr nc,.healHP ; if it's a Revive or Max Revive
cp a,FULL_HEAL
@@ -742,7 +736,7 @@ ItemUseMedicine: ; dabb (3:5abb)
.cureStatusAilment
ld bc,4
add hl,bc ; hl now points to status
- ld a,[$cf91]
+ ld a,[wcf91]
ld bc,$f008
cp a,ANTIDOTE
jr z,.checkMonStatus
@@ -767,24 +761,23 @@ ItemUseMedicine: ; dabb (3:5abb)
xor a
ld [hl],a ; remove the status ailment in the party data
ld a,b
- ld [$d07d],a ; the message to display for the item used
+ ld [wd07d],a ; the message to display for the item used
ld a,[wPlayerMonNumber]
cp d ; is pokemon the item was used on active in battle?
jp nz,.doneHealing
; if it is active in battle
xor a
- ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data
+ ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data
push hl
ld hl,W_PLAYERBATTSTATUS3
res 0,[hl] ; heal Toxic status
pop hl
ld bc,30
add hl,bc ; hl now points to party stats
- ld de,W_PLAYERMONMAXHP
+ ld de,wBattleMonMaxHP
ld bc,10
call CopyData ; copy party stats to in-battle stat data
- ld a,$28
- call Predef
+ predef Func_3ed02
jp .doneHealing
.healHP
inc hl ; hl = address of current HP
@@ -793,11 +786,11 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [wHPBarOldHP+1],a
ld a,[hl]
ld c,a
- ld [wHPBarOldHP],a ; current HP stored at $ceeb (2 bytes, big-endian)
+ ld [wHPBarOldHP],a ; current HP stored at wHPBarOldHP (2 bytes, big-endian)
or b
jr nz,.notFainted
.fainted
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr z,.updateInBattleFaintedData
cp a,MAX_REVIVE
@@ -810,28 +803,26 @@ ItemUseMedicine: ; dabb (3:5abb)
push hl
push de
push bc
- ld a,[$cf06]
+ ld a,[wcf06]
ld c,a
- ld hl,$ccf5
+ ld hl,wccf5
ld b,$02
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
jr z,.next
- ld a,[$cf06]
+ ld a,[wcf06]
ld c,a
- ld hl,W_PLAYERMONSALIVEFLAGS
+ ld hl,wPartyAliveFlags
ld b,$01
- ld a,$10
- call Predef
+ predef FlagActionPredef
.next
pop bc
pop de
pop hl
jr .compareCurrentHPToMaxHP
.notFainted
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jp z,.healingItemNoEffect
cp a,MAX_REVIVE
@@ -851,7 +842,7 @@ ItemUseMedicine: ; dabb (3:5abb)
pop hl
jr nz,.notFullHP
.fullHP ; if the pokemon's current HP equals its max HP
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jp nz,.healingItemNoEffect
inc hl
@@ -860,15 +851,15 @@ ItemUseMedicine: ; dabb (3:5abb)
and a ; does the pokemon have a status ailment?
jp z,.healingItemNoEffect
ld a,FULL_HEAL
- ld [$cf91],a
+ ld [wcf91],a
dec hl
dec hl
dec hl
jp .cureStatusAilment
.notFullHP ; if the pokemon's current HP doesn't equal its max HP
xor a
- ld [$d083],a
- ld [$c02a],a
+ ld [wd083],a
+ ld [wc02a],a
push hl
push de
ld bc,32
@@ -876,8 +867,8 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
- ld [wHPBarMaxHP],a ; max HP stored at $cee9 (2 bytes, big-endian)
- ld a,[$d152]
+ ld [wHPBarMaxHP],a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian)
+ ld a,[wd152]
and a ; using Softboiled?
jp z,.notUsingSoftboiled2
; if using softboiled
@@ -890,12 +881,12 @@ ItemUseMedicine: ; dabb (3:5abb)
push af
ld a,[hl]
push af
- ld hl,W_PARTYMON1_MAXHP
+ ld hl,wPartyMon1MaxHP
ld a,[wWhichPokemon]
- ld bc,44
+ ld bc,wPartyMon2 - wPartyMon1
call AddNTimes
ld a,[hli]
- ld [$ceea],a
+ ld [wHPBarMaxHP + 1],a
ld [H_DIVIDEND],a
ld a,[hl]
ld [wHPBarMaxHP],a
@@ -904,7 +895,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [H_DIVISOR],a
ld b,2 ; number of bytes
call Divide ; get 1/5 of max HP of pokemon that used Softboiled
- ld bc,-33
+ ld bc,wPartyMon1HP - wPartyMon1MaxHP
add hl,bc ; hl now points to LSB of current HP of pokemon that used Softboiled
; subtract 1/5 of max HP from current HP of pokemon that used Softboiled
ld a,[H_QUOTIENT + 3]
@@ -922,8 +913,7 @@ ItemUseMedicine: ; dabb (3:5abb)
sbc b
ld [hl],a
ld [wHPBarNewHP+1],a
- FuncCoord 4, 1 ; $c3b8
- ld hl,Coord
+ hlCoord 4, 1
ld a,[wWhichPokemon]
ld bc,2 * 20
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
@@ -933,15 +923,14 @@ ItemUseMedicine: ; dabb (3:5abb)
set 0,a
ld [$fff6],a
ld a,$02
- ld [$cf94],a
- ld a,$48
- call Predef ; animate HP bar decrease of pokemon that used Softboiled
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
ld a,[$fff6]
res 0,a
ld [$fff6],a
pop af
ld b,a ; store heal amount (1/5 of max HP)
- ld hl,$ceec
+ ld hl,wHPBarOldHP + 1
pop af
ld [hld],a
pop af
@@ -952,7 +941,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [hl],a
jr .addHealAmount
.notUsingSoftboiled2
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,SODA_POP
ld b,60 ; Soda Pop heal amount
jr z,.addHealAmount
@@ -979,7 +968,7 @@ ItemUseMedicine: ; dabb (3:5abb)
jr nc,.noCarry
inc [hl]
ld a,[hl]
- ld [$ceee],a
+ ld [wHPBarNewHP + 1],a
.noCarry
push de
inc hl
@@ -987,7 +976,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld e,l ; de now points to current HP
ld hl,33
add hl,de ; hl now points to max HP
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr z,.setCurrentHPToHalfMaxHP
ld a,[hld]
@@ -999,7 +988,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[de]
sbc b
jr nc,.setCurrentHPToMaxHp ; if current HP exceeds max HP after healing
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,HYPER_POTION
jr c,.setCurrentHPToMaxHp ; if using a Full Restore or Max Potion
cp a,MAX_REVIVE
@@ -1029,7 +1018,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [wHPBarNewHP],a
dec de
.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr nz,.updateInBattleData
ld bc,-31
@@ -1045,16 +1034,16 @@ ItemUseMedicine: ; dabb (3:5abb)
jr nz,.calculateHPBarCoords
; copy party HP to in-battle HP
ld a,[hli]
- ld [W_PLAYERMONCURHP],a
+ ld [wBattleMonHP],a
ld a,[hld]
- ld [W_PLAYERMONCURHP + 1],a
- ld a,[$cf91]
+ ld [wBattleMonHP + 1],a
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr nz,.calculateHPBarCoords
xor a
- ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data
+ ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data
.calculateHPBarCoords
- ld hl,$c390
+ ld hl,wOAMBuffer + $90
ld bc,2 * 20
inc d
.calculateHPBarCoordsLoop
@@ -1066,14 +1055,14 @@ ItemUseMedicine: ; dabb (3:5abb)
call ItemUseNoEffect
jp .done
.doneHealing
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
jr nz,.skipRemovingItem ; no item to remove if using Softboiled
push hl
call RemoveUsedItem
pop hl
.skipRemovingItem
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr c,.playStatusAilmentCuringSound
cp a,FULL_HEAL
@@ -1084,21 +1073,20 @@ ItemUseMedicine: ; dabb (3:5abb)
set 0,a
ld [$fff6],a
ld a,$02
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar lengthening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar lengthening
ld a,[$fff6]
res 0,a
ld [$fff6],a
ld a,$f7 ; revived message
- ld [$d07d],a
- ld a,[$cf91]
+ ld [wd07d],a
+ ld a,[wcf91]
cp a,REVIVE
jr z,.showHealingItemMessage
cp a,MAX_REVIVE
jr z,.showHealingItemMessage
ld a,$f5 ; standard HP healed message
- ld [$d07d],a
+ ld [wd07d],a
jr .showHealingItemMessage
.playStatusAilmentCuringSound
ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound
@@ -1108,7 +1096,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [H_AUTOBGTRANSFERENABLED],a
call ClearScreen
dec a
- ld [$cfcb],a
+ ld [wcfcb],a
call RedrawPartyMenu ; redraws the party menu and displays the message
ld a,1
ld [H_AUTOBGTRANSFERENABLED],a
@@ -1118,11 +1106,11 @@ ItemUseMedicine: ; dabb (3:5abb)
jr .done
.canceledItemUse
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
pop af
pop af
.done
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
ret nz ; if so, return
call GBPalWhiteOut
@@ -1134,20 +1122,20 @@ ItemUseMedicine: ; dabb (3:5abb)
.useVitamin
push hl
ld a,[hl]
- ld [$d0b5],a
- ld [$d11e],a
+ ld [wd0b5],a
+ ld [wd11e],a
ld bc,33
add hl,bc ; hl now points to level
ld a,[hl] ; a = level
- ld [$d127],a ; store level
+ ld [W_CURENEMYLVL],a ; store level
call GetMonHeader
push de
ld a,d
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop de
pop hl
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,RARE_CANDY
jp z,.useRareCandy
push hl
@@ -1173,7 +1161,7 @@ ItemUseMedicine: ; dabb (3:5abb)
pop hl
call .recalculateStats
ld hl,VitaminText
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,HP_UP - 1
ld c,a
.statNameLoop ; loop to get the address of the name of the stat the vitamin increases
@@ -1187,9 +1175,9 @@ ItemUseMedicine: ; dabb (3:5abb)
jr nz,.statNameInnerLoop
jr .statNameLoop
.gotStatName
- ld de,$cf4b
+ ld de,wcf4b
ld bc,10
- call CopyData ; copy the stat's name to $cf4b
+ call CopyData ; copy the stat's name to wcf4b
ld a,(SFX_02_3e - SFX_Headers_02) / 3
call PlaySound ; play sound
ld hl,VitaminStatRoseText
@@ -1214,11 +1202,11 @@ ItemUseMedicine: ; dabb (3:5abb)
ld bc,33
add hl,bc ; hl now points to level
ld a,[hl] ; a = level
- cp a,100
+ cp a, MAX_LEVEL
jr z,.vitaminNoEffect ; can't raise level above 100
inc a
ld [hl],a ; store incremented level
- ld [$d127],a
+ ld [W_CURENEMYLVL],a
push hl
push de
ld d,a
@@ -1237,7 +1225,7 @@ ItemUseMedicine: ; dabb (3:5abb)
pop hl
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
push de
push hl
@@ -1270,30 +1258,29 @@ ItemUseMedicine: ; dabb (3:5abb)
adc b
ld [hl],a
ld a,$f8 ; level up message
- ld [$d07d],a
+ ld [wd07d],a
call RedrawPartyMenu
pop de
ld a,d
ld [wWhichPokemon],a
ld a,e
- ld [$d11e],a
+ ld [wd11e],a
xor a
- ld [$cc49],a ; load from player's party
+ ld [wcc49],a ; load from player's party
call LoadMonData
ld d,$01
callab PrintStatsBox ; display new stats text box
call WaitForTextScrollButtonPress ; wait for button press
xor a
- ld [$cc49],a
- ld a,$1a
- call Predef ; learn level up move, if any
+ ld [wcc49],a
+ predef Func_3af5b ; learn level up move, if any
xor a
- ld [$ccd4],a
+ ld [wccd4],a
callab Func_3ad0e ; evolve pokemon, if appropriate
ld a,$01
- ld [$cfcb],a
+ ld [wcfcb],a
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
jp RemoveUsedItem
@@ -1316,17 +1303,17 @@ VitaminText: ; df2e (3:5f2e)
ItemUseBait: ; df52 (3:5f52)
ld hl,ThrewBaitText
call PrintText
- ld hl,$d007 ; catch rate
+ ld hl,wd007 ; catch rate
srl [hl] ; halve catch rate
ld a,BAIT_ANIM
- ld hl,$cce9 ; bait factor
- ld de,$cce8 ; escape factor
+ ld hl,wcce9 ; bait factor
+ ld de,wcce8 ; escape factor
jr BaitRockCommon
ItemUseRock: ; df67 (3:5f67)
ld hl,ThrewRockText
call PrintText
- ld hl,$d007 ; catch rate
+ ld hl,wd007 ; catch rate
ld a,[hl]
add a ; double catch rate
jr nc,.noCarry
@@ -1334,17 +1321,17 @@ ItemUseRock: ; df67 (3:5f67)
.noCarry
ld [hl],a
ld a,ROCK_ANIM
- ld hl,$cce8 ; escape factor
- ld de,$cce9 ; bait factor
+ ld hl,wcce8 ; escape factor
+ ld de,wcce9 ; bait factor
BaitRockCommon: ; df7f (3:5f7f)
ld [W_ANIMATIONID],a
xor a
- ld [$cc5b],a
+ ld [wcc5b],a
ld [H_WHOSETURN],a
ld [de],a ; zero escape factor (for bait), zero bait factor (for rock)
.randomLoop ; loop until a random number less than 5 is generated
- call GenRandom
+ call Random
and a,7
cp a,5
jr nc,.randomLoop
@@ -1356,8 +1343,7 @@ BaitRockCommon: ; df7f (3:5f7f)
ld a,$ff
.noCarry
ld [hl],a
- ld a,$08
- call Predef ; do animation
+ predef MoveAnimation ; do animation
ld c,70
jp DelayFrames
@@ -1386,20 +1372,20 @@ ItemUseEscapeRope: ; dfaf (3:5faf)
jr z,.notUsable
cp b
jr nz,.loop
- ld hl,$d732
+ ld hl,wd732
set 3,[hl]
set 6,[hl]
- ld hl,$d72e
+ ld hl,wd72e
res 4,[hl]
- ld hl,$d790
+ ld hl,wd790
res 7,[hl] ; unset Safari Zone bit
xor a
- ld [$da47],a
+ ld [W_NUMSAFARIBALLS],a
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
inc a
- ld [$d078],a
- ld [$cd6a],a ; item used
- ld a,[$d152]
+ ld [wd078],a
+ ld [wcd6a],a ; item used
+ ld a,[wd152]
and a ; using Dig?
ret nz ; if so, return
call ItemUseReloadOverworldData
@@ -1421,7 +1407,7 @@ ItemUseRepelCommon: ; e005 (3:6005)
and a
jp nz,ItemUseNotTime
ld a,b
- ld [$d0db],a
+ ld [wd0db],a
jp PrintItemUseTextAndRemoveItem
; handles X Accuracy item
@@ -1437,7 +1423,7 @@ ItemUseXAccuracy: ; e013 (3:6013)
; The Card Key is handled in a different way.
ItemUseCardKey: ; e022 (3:6022)
xor a
- ld [$d71f],a
+ ld [wd71f],a
call Func_c586
ld a,[Func_c586] ; $4586
cp a,$18
@@ -1469,7 +1455,7 @@ ItemUseCardKey: ; e022 (3:6022)
cp e
jr nz,.nextEntry3
ld a,[hl]
- ld [$d71f],a
+ ld [wd71f],a
jr .done
.nextEntry1
inc hl
@@ -1481,7 +1467,7 @@ ItemUseCardKey: ; e022 (3:6022)
.done
ld hl,ItemUseText00
call PrintText
- ld hl,$d728
+ ld hl,wd728
set 7,[hl]
ret
@@ -1531,7 +1517,7 @@ ItemUsePokedoll: ; e0cd (3:60cd)
dec a
jp nz,ItemUseNotTime
ld a,$01
- ld [$d078],a
+ ld [wd078],a
jp PrintItemUseTextAndRemoveItem
ItemUseGuardSpec: ; e0dc (3:60dc)
@@ -1564,7 +1550,7 @@ ItemUseXStat: ; e104 (3:6104)
jr nz,.inBattle
call ItemUseNotTime
ld a,2
- ld [$cd6a],a ; item not used
+ ld [wcd6a],a ; item not used
ret
.inBattle
ld hl,W_PLAYERMOVENUM
@@ -1573,7 +1559,7 @@ ItemUseXStat: ; e104 (3:6104)
ld a,[hl]
push af ; save [W_PLAYERMOVEEFFECT]
push hl
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,X_ATTACK - ATTACK_UP1_EFFECT
ld [hl],a ; store player move effect
call PrintItemUseTextAndRemoveItem
@@ -1600,7 +1586,7 @@ ItemUsePokeflute: ; e140 (3:6140)
ld a,[W_CURMAP]
cp a,ROUTE_12
jr nz,.notRoute12
- ld a,[$d7d8]
+ ld a,[wd7d8]
bit 7,a ; has the player beaten Route 12 Snorlax yet?
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 12 Snorlax
@@ -1609,13 +1595,13 @@ ItemUsePokeflute: ; e140 (3:6140)
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,$d7d8
+ ld hl,wd7d8
set 6,[hl] ; trigger Snorlax fight (handled by map script)
ret
.notRoute12
cp a,ROUTE_16
jr nz,.noSnorlaxToWakeUp
- ld a,[$d7e0]
+ ld a,[wd7e0]
bit 1,a ; has the player beaten Route 16 Snorlax yet?
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 16 Snorlax
@@ -1624,7 +1610,7 @@ ItemUsePokeflute: ; e140 (3:6140)
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,$d7e0
+ ld hl,wd7e0
set 0,[hl] ; trigger Snorlax fight (handled by map script)
ret
.noSnorlaxToWakeUp
@@ -1632,40 +1618,40 @@ ItemUsePokeflute: ; e140 (3:6140)
jp PrintText
.inBattle
xor a
- ld [$cd3d],a ; initialize variable that indicates if any pokemon were woken up to zero
+ ld [wWhichTrade],a ; initialize variable that indicates if any pokemon were woken up to zero
ld b,~SLP & $FF
- ld hl,W_PARTYMON1_STATUS
+ ld hl,wPartyMon1Status
call WakeUpEntireParty
ld a,[W_ISINBATTLE]
dec a ; is it a trainer battle?
jr z,.skipWakingUpEnemyParty
; if it's a trainer battle
- ld hl,$d8a8 ; enemy party pokemon 1 status
+ ld hl,wEnemyMon1Status
call WakeUpEntireParty
.skipWakingUpEnemyParty
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
ld a,[hl]
and b ; remove Sleep status
ld [hl],a
- ld hl,W_ENEMYMONSTATUS
+ ld hl,wEnemyMonStatus
ld a,[hl]
and b ; remove Sleep status
ld [hl],a
call LoadScreenTilesFromBuffer2 ; restore saved screen
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
and a ; were any pokemon asleep before playing the flute?
ld hl,PlayedFluteNoEffectText
jp z,PrintText ; if no pokemon were asleep
; if some pokemon were asleep
ld hl,PlayedFluteHadEffectText
call PrintText
- ld a,[$d083]
+ ld a,[wd083]
and a,$80
jr nz,.skipMusic
call WaitForSoundToFinish ; wait for sound to end
callba Music_PokeFluteInBattle ; play in-battle pokeflute music
.musicWaitLoop ; wait for music to finish playing
- ld a,[$c02c]
+ ld a,[wc02c]
and a ; music off?
jr nz,.musicWaitLoop
.skipMusic
@@ -1676,9 +1662,9 @@ ItemUsePokeflute: ; e140 (3:6140)
; INPUT:
; hl must point to status of first pokemon in party (player's or enemy's)
; b must equal ~SLP
-; [$cd3d] should be initialized to 0
+; [wWhichTrade] should be initialized to 0
; OUTPUT:
-; [$cd3d]: set to 1 if any pokemon were asleep
+; [wWhichTrade]: set to 1 if any pokemon were asleep
WakeUpEntireParty: ; e1e5 (3:61e5)
ld de,44
ld c,6
@@ -1688,7 +1674,7 @@ WakeUpEntireParty: ; e1e5 (3:61e5)
and a,SLP ; is pokemon asleep?
jr z,.notAsleep
ld a,1
- ld [$cd3d],a ; indicate that a pokemon had to be woken up
+ ld [wWhichTrade],a ; indicate that a pokemon had to be woken up
.notAsleep
pop af
and b ; remove Sleep status
@@ -1738,7 +1724,7 @@ PlayedFluteHadEffectText: ; e215 (3:6215)
ld c, BANK(SFX_02_5e)
call PlayMusic ; play music
.musicWaitLoop ; wait for music to finish playing
- ld a,[$c028]
+ ld a,[wc028]
cp a,$b8
jr z,.musicWaitLoop
call Func_2307 ; start playing normal music again
@@ -1767,7 +1753,7 @@ GoodRodCode: ; e259 (3:6259)
call FishingInit
jp c,ItemUseNotTime
.RandomLoop
- call GenRandom
+ call Random
srl a
jr c, .SetBite
and %11
@@ -1797,20 +1783,20 @@ SuperRodCode: ; e283 (3:6283)
call ReadSuperRodData ; 0xe8ea
ld a, e
RodResponse: ; e28d (3:628d)
- ld [$CD3D], a
+ ld [wWhichTrade], a
dec a ; is there a bite?
jr nz, .next
; if yes, store level and species data
ld a, 1
- ld [$D05F], a
+ ld [W_MOVEMISSED], a
ld a, b ; level
ld [W_CURENEMYLVL], a
ld a, c ; species
ld [W_CUROPPONENT], a
.next
- ld hl, $D700
+ ld hl, wd700
ld a, [hl] ; store the value in a
push af
push hl
@@ -1832,7 +1818,7 @@ FishingInit: ; e2b4 (3:62b4)
.notInBattle
call IsNextTileShoreOrWater
ret c
- ld a,[$d700]
+ ld a,[wd700]
cp a,2 ; Surfing?
jr z,.surfing
call ItemUseReloadOverworldData
@@ -1887,45 +1873,45 @@ ItemUsePPUp: ; e317 (3:6317)
ItemUsePPRestore: ; e31e (3:631e)
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
- ld [$cd3d],a
+ ld a,[wcf91]
+ ld [wWhichTrade],a
.chooseMon
xor a
- ld [$cfcb],a
+ ld [wcfcb],a
ld a,$01 ; item use party menu
- ld [$d07d],a
+ ld [wd07d],a
call DisplayPartyMenu
jr nc,.chooseMove
jp .itemNotUsed
.chooseMove
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ELIXER
jp nc,.useElixir ; if Elixir or Max Elixir
ld a,$02
ld [wMoveMenuType],a
ld hl,RaisePPWhichTechniqueText
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ETHER ; is it a PP Up?
jr c,.printWhichTechniqueMessage ; if so, print the raise PP message
ld hl,RestorePPWhichTechniqueText ; otherwise, print the restore PP message
.printWhichTechniqueMessage
call PrintText
xor a
- ld [$cc2e],a
+ ld [wPlayerMoveListIndex],a
callab MoveSelectionMenu ; move selection menu
ld a,0
- ld [$cc2e],a
+ ld [wPlayerMoveListIndex],a
jr nz,.chooseMon
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
push hl
ld a,[hl]
- ld [$d11e],a
+ ld [wd11e],a
call GetMoveName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
pop hl
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ETHER
jr nc,.useEther ; if Ether or Max Ether
.usePPUp
@@ -1942,7 +1928,7 @@ ItemUsePPRestore: ; e31e (3:631e)
add a,1 << 6 ; increase PP Up count by 1
ld [hl],a
ld a,1 ; 1 PP Up used
- ld [$d11e],a
+ ld [wd11e],a
call RestoreBonusPP ; add the bonus PP to current PP
ld hl,PPIncreasedText
call PrintText
@@ -1958,10 +1944,10 @@ ItemUsePPRestore: ; e31e (3:631e)
ld a,[wPlayerMonNumber]
cp b ; is the pokemon whose PP was restored active in battle?
jr nz,.skipUpdatingInBattleData
- ld hl,W_PARTYMON1_MOVE1PP
+ ld hl,wPartyMon1PP
ld bc,44
call AddNTimes
- ld de,W_PLAYERMONPP
+ ld de,wBattleMonPP
ld bc,4
call CopyData ; copy party data to in-battle data
.skipUpdatingInBattleData
@@ -1978,16 +1964,16 @@ ItemUsePPRestore: ; e31e (3:631e)
; however, this is bugged for Max Ethers and Max Elixirs (see below)
.restorePP
xor a
- ld [$cc49],a ; party pokemon
+ ld [wcc49],a ; party pokemon
call GetMaxPP
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
ld bc,21
add hl,bc ; hl now points to move's PP
- ld a,[$d11e]
+ ld a,[wd11e]
ld b,a ; b = max PP
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,MAX_ETHER
jr z,.fullyRestorePP
ld a,[hl] ; move PP
@@ -2019,7 +2005,7 @@ ItemUsePPRestore: ; e31e (3:631e)
jr .storeNewAmount
.useElixir
; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER
- ld hl,$cd3d
+ ld hl,wWhichTrade
dec [hl]
dec [hl]
xor a
@@ -2030,7 +2016,7 @@ ItemUsePPRestore: ; e31e (3:631e)
; loop through each move and restore PP
.elixirLoop
push bc
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
ld a,[hl]
@@ -2039,7 +2025,7 @@ ItemUsePPRestore: ; e31e (3:631e)
call .restorePP
jr z,.nextMove
; if some PP was restored
- ld hl,$cc27 ; counter for number of moves that had their PP restored
+ ld hl,wTileBehindCursor ; counter for number of moves that had their PP restored
inc [hl]
.nextMove
ld hl,wCurrentMenuItem
@@ -2047,7 +2033,7 @@ ItemUsePPRestore: ; e31e (3:631e)
pop bc
dec b
jr nz,.elixirLoop
- ld a,[$cc27]
+ ld a,[wTileBehindCursor]
and a ; did any moves have their PP restored?
jp nz,.afterRestoringPP
.noEffect
@@ -2057,7 +2043,7 @@ ItemUsePPRestore: ; e31e (3:631e)
call GoPAL_SET_CF1C
pop af
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
ret
RaisePPWhichTechniqueText: ; e45d (3:645d)
@@ -2088,20 +2074,19 @@ ItemUseTMHM: ; e479 (3:6479)
ld a,[W_ISINBATTLE]
and a
jp nz,ItemUseNotTime
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,TM_01
push af
jr nc,.skipAdding
add a,55 ; if item is an HM, add 55
.skipAdding
inc a
- ld [$d11e],a
- ld a,$44
- call Predef ; get move ID from TM/HM ID
- ld a,[$d11e]
- ld [$d0e0],a
+ ld [wd11e],a
+ predef TMToMove ; get move ID from TM/HM ID
+ ld a,[wd11e]
+ ld [wd0e0],a
call GetMoveName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
pop af
ld hl,BootedUpTMText
jr nc,.printBootedUpMachineText
@@ -2110,36 +2095,35 @@ ItemUseTMHM: ; e479 (3:6479)
call PrintText
ld hl,TeachMachineMoveText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
ld a,[wCurrentMenuItem]
and a
jr z,.useMachine
ld a,2
- ld [$cd6a],a ; item not used
+ ld [wcd6a],a ; item not used
ret
.useMachine
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
.chooseMon
- ld hl,$cf4b
- ld de,$d036
+ ld hl,wcf4b
+ ld de,wd036
ld bc,14
call CopyData
ld a,$ff
- ld [$cfcb],a
+ ld [wcfcb],a
ld a,$03 ; teach TM/HM party menu
- ld [$d07d],a
+ ld [wd07d],a
call DisplayPartyMenu
push af
- ld hl,$d036
- ld de,$cf4b
+ ld hl,wd036
+ ld de,wcf4b
ld bc,14
call CopyData
pop af
@@ -2148,15 +2132,14 @@ ItemUseTMHM: ; e479 (3:6479)
pop af
pop af
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
call GoPAL_SET_CF1C
jp LoadScreenTilesFromBuffer1 ; restore saved screen
.checkIfAbleToLearnMove
- ld a,$43
- call Predef ; check if the pokemon can learn the move
+ predef CanLearnTM ; check if the pokemon can learn the move
push bc
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop bc
ld a,c
@@ -2171,16 +2154,15 @@ ItemUseTMHM: ; e479 (3:6479)
.checkIfAlreadyLearnedMove
callab CheckIfMoveIsKnown ; check if the pokemon already knows the move
jr c,.chooseMon
- ld a,$1b
- call Predef ; teach move
+ predef LearnMove ; teach move
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
ld a,b
and a
ret z
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
ret c
jp RemoveUsedItem
@@ -2211,7 +2193,7 @@ PrintItemUseTextAndRemoveItem: ; e563 (3:6563)
RemoveUsedItem: ; e571 (3:6571)
ld hl,wNumBagItems
ld a,1 ; one item
- ld [$cf96],a ; store quantity
+ ld [wcf96],a ; store quantity
jp RemoveItemFromInventory
ItemUseNoEffect: ; e57c (3:657c)
@@ -2232,8 +2214,7 @@ ThrowBallAtTrainerMon: ; e58b (3:658b)
call Delay3
ld a,TOSS_ANIM
ld [W_ANIMATIONID],a
- ld a,$08
- call Predef ; do animation
+ predef MoveAnimation ; do animation
ld hl,ThrowBallAtTrainerMonText1
call PrintText
ld hl,ThrowBallAtTrainerMonText2
@@ -2253,7 +2234,7 @@ SurfingAttemptFailed: ; e5b6 (3:65b6)
ItemUseFailed: ; e5b9 (3:65b9)
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
jp PrintText
ItemUseNotTimeText: ; e5c0 (3:65c0)
@@ -2310,24 +2291,23 @@ GotOffBicycleText: ; e5fc (3:65fc)
; also, when a PP Up is used, it increases the current PP by one PP Up bonus
; INPUT:
; [wWhichPokemon] = index of pokemon in party
-; [$d11e] = mode
+; [wd11e] = mode
; 0: Pokemon Center healing
; 1: using a PP Up
; [wCurrentMenuItem] = index of move (when using a PP Up)
RestoreBonusPP: ; e606 (3:6606)
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
ld a,[wWhichPokemon]
call AddNTimes
push hl
- ld de,$cd78 - 1
- ld a,$5e
- call Predef ; loads the normal max PP of each of the pokemon's moves to $cd78
+ ld de,wcd78 - 1
+ predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78
pop hl
ld c,21
ld b,0
add hl,bc ; hl now points to move 1 PP
- ld de,$cd78
+ ld de,wcd78
ld b,0 ; initialize move counter to zero
; loop through the pokemon's moves
.loop
@@ -2335,7 +2315,7 @@ RestoreBonusPP: ; e606 (3:6606)
ld a,b
cp a,5 ; reached the end of the pokemon's moves?
ret z ; if so, return
- ld a,[$d11e]
+ ld a,[wd11e]
dec a ; using a PP Up?
jr nz,.skipMenuItemIDCheck
; if using a PP Up, check if this is the move it's being used on
@@ -2357,7 +2337,7 @@ RestoreBonusPP: ; e606 (3:6606)
; INPUT:
; [de] = normal max PP
; [hl] = move PP
-; [$d11e] = max number of times to add bonus
+; [wd11e] = max number of times to add bonus
; set to 1 when using a PP Up, set to 255 otherwise
AddBonusPP: ; e642 (3:6642)
push bc
@@ -2386,7 +2366,7 @@ AddBonusPP: ; e642 (3:6642)
.addAmount
add b
ld b,a
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
jr z,.done
dec c
@@ -2399,7 +2379,7 @@ AddBonusPP: ; e642 (3:6642)
; gets max PP of a pokemon's move (including PP from PP Ups)
; INPUT:
; [wWhichPokemon] = index of pokemon within party/box
-; [$cc49] = pokemon source
+; [wcc49] = pokemon source
; 00: player's party
; 01: enemy's party
; 02: current box
@@ -2407,24 +2387,24 @@ AddBonusPP: ; e642 (3:6642)
; 04: player's in-battle pokemon
; [wCurrentMenuItem] = move index
; OUTPUT:
-; [$d11e] = max PP
+; [wd11e] = max PP
GetMaxPP: ; e677 (3:6677)
- ld a,[$cc49]
+ ld a,[wcc49]
and a
- ld hl,W_PARTYMON1_MOVE1
- ld bc,44
+ ld hl,wPartyMon1Moves
+ ld bc,wPartyMon2 - wPartyMon1
jr z,.sourceWithMultipleMon
- ld hl,$d8ac ; enemy party
+ ld hl,wEnemyMon1Moves
dec a
jr z,.sourceWithMultipleMon
- ld hl,$da9e ; current box
- ld bc,33
+ ld hl,wBoxMon1Moves
+ ld bc,wBoxMon2 - wBoxMon1
dec a
jr z,.sourceWithMultipleMon
- ld hl,$da67 ; daycare
+ ld hl,wDayCareMonMoves
dec a
jr z,.sourceWithOneMon
- ld hl,W_PLAYERMONMOVES ; player's in-battle pokemon
+ ld hl,wBattleMonMoves ; player's in-battle pokemon
.sourceWithOneMon
call GetSelectedMoveOffset2
jr .next
@@ -2437,16 +2417,16 @@ GetMaxPP: ; e677 (3:6677)
ld hl,Moves
ld bc,6
call AddNTimes
- ld de,$cd6d
+ ld de,wcd6d
ld a,BANK(Moves)
call FarCopyData
- ld de,$cd72
+ ld de,wcd72
ld a,[de]
ld b,a ; b = normal max PP
pop hl
push bc
ld bc,21 ; PP offset if not player's in-battle pokemon data
- ld a,[$cc49]
+ ld a,[wcc49]
cp a,4 ; player's in-battle pokemon?
jr nz,.addPPOffset
ld bc,17 ; PP offset if player's in-battle pokemon data
@@ -2458,14 +2438,14 @@ GetMaxPP: ; e677 (3:6677)
or b ; place normal max PP in 6 lower bits of a
ld h,d
ld l,e
- inc hl ; hl = $cd73
+ inc hl ; hl = wcd73
ld [hl],a
xor a
- ld [$d11e],a ; no limit on PP Up amount
+ ld [wd11e],a ; no limit on PP Up amount
call AddBonusPP ; add bonus PP from PP Ups
ld a,[hl]
and a,%00111111 ; mask out the PP Up count
- ld [$d11e],a ; store max PP
+ ld [wd11e],a ; store max PP
ret
GetSelectedMoveOffset: ; e6e3 (3:66e3)
@@ -2482,37 +2462,36 @@ GetSelectedMoveOffset2: ; e6e9 (3:66e9)
; confirms the item toss and then tosses the item
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$cf91] = item ID
+; [wcf91] = item ID
; [wWhichPokemon] = index of item within inventory
-; [$cf96] = quantity to toss
+; [wcf96] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem_: ; e6f1 (3:66f1)
push hl
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
pop hl
jr c,.tooImportantToToss
push hl
call IsKeyItem_
- ld a,[$d124]
+ ld a,[wd124]
pop hl
and a
jr nz,.tooImportantToToss
push hl
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,IsItOKToTossItemText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,2
pop hl
scf
@@ -2521,10 +2500,10 @@ TossItem_: ; e6f1 (3:66f1)
push hl
ld a,[wWhichPokemon]
call RemoveItemFromInventory
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,ThrewAwayItemText
call PrintText
pop hl
@@ -2552,50 +2531,49 @@ TooImportantToTossText: ; e75f (3:675f)
; checks if an item is a key item
; INPUT:
-; [$cf91] = item ID
+; [wcf91] = item ID
; OUTPUT:
-; [$d124] = result
+; [wd124] = result
; 00: item is not key item
; 01: item is key item
IsKeyItem_: ; e764 (3:6764)
ld a,$01
- ld [$d124],a
- ld a,[$cf91]
+ ld [wd124],a
+ ld a,[wcf91]
cp a,HM_01 ; is the item an HM or TM?
jr nc,.checkIfItemIsHM
; if the item is not an HM or TM
push af
ld hl,KeyItemBitfield
- ld de,$cee9
+ ld de,wHPBarMaxHP
ld bc,15 ; only 11 bytes are actually used
call CopyData
pop af
dec a
ld c,a
- ld hl,$cee9
+ ld hl,wHPBarMaxHP
ld b,$02 ; test bit
- ld a,$10
- call Predef ; bitfield operation function
+ predef FlagActionPredef ; bitfield operation function
ld a,c
and a
ret nz
.checkIfItemIsHM
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
ret c
xor a
- ld [$d124],a
+ ld [wd124],a
ret
INCLUDE "data/key_items.asm"
Func_e7a4: ; e7a4 (3:67a4)
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld a, [de]
inc a
ld [de], a
- ld a, [$cf91]
- ld [$d0b5], a
+ ld a, [wcf91]
+ ld [wd0b5], a
ld c, a
.asm_e7b1
inc de
@@ -2607,9 +2585,9 @@ Func_e7a4: ; e7a4 (3:67a4)
cp $ff
jr nz, .asm_e7b1
call GetMonHeader
- ld hl, W_BOXMON1OT
+ ld hl, wBoxMonOT
ld bc, $b
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e7ee
dec a
@@ -2620,7 +2598,7 @@ Func_e7a4: ; e7a4 (3:67a4)
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e7db
@@ -2637,14 +2615,14 @@ Func_e7a4: ; e7a4 (3:67a4)
dec b
jr nz, .asm_e7db
.asm_e7ee
- ld hl, W_PLAYERNAME ; $d158
- ld de, W_BOXMON1OT
+ ld hl, wPlayerName ; wd158
+ ld de, wBoxMonOT
ld bc, $b
call CopyData
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e82a
- ld hl, W_BOXMON1NAME
+ ld hl, wBoxMonNicks
ld bc, $b
dec a
call AddNTimes
@@ -2654,7 +2632,7 @@ Func_e7a4: ; e7a4 (3:67a4)
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e817
@@ -2671,31 +2649,30 @@ Func_e7a4: ; e7a4 (3:67a4)
dec b
jr nz, .asm_e817
.asm_e82a
- ld hl, W_BOXMON1NAME
+ ld hl, wBoxMonNicks
ld a, $2
- ld [$d07d], a
- ld a, $4e
- call Predef ; indirect jump to Func_64eb (64eb (1:64eb))
- ld a, [W_NUMINBOX] ; $da80
+ ld [wd07d], a
+ predef AskName
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e867
- ld hl, W_BOXMON1DATA
- ld bc, $21
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1
dec a
call AddNTimes
push hl
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e854
push bc
push hl
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
call CopyData
pop hl
ld d, h
@@ -2706,13 +2683,13 @@ Func_e7a4: ; e7a4 (3:67a4)
dec b
jr nz, .asm_e854
.asm_e867
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_ENEMYMONNUMBER], a ; $cfe8
- ld hl, $cfe5
- ld de, W_BOXMON1DATA
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wEnemyMonBoxLevel], a
+ ld hl, wEnemyMon
+ ld de, wBoxMon1
ld bc, $c
call CopyData
- ld hl, wPlayerID ; $d359
+ ld hl, wPlayerID ; wPlayerID
ld a, [hli]
ld [de], a
inc de
@@ -2720,7 +2697,7 @@ Func_e7a4: ; e7a4 (3:67a4)
ld [de], a
inc de
push de
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld d, a
callab CalcExperience
pop de
@@ -2740,13 +2717,13 @@ Func_e7a4: ; e7a4 (3:67a4)
inc de
dec b
jr nz, .asm_e89f
- ld hl, $cff1
+ ld hl, wEnemyMonDVs
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
- ld hl, W_ENEMYMONPP ; $cffe
+ ld hl, wEnemyMonPP ; wcffe
ld b, $4
.asm_e8b1
ld a, [hli]
@@ -2767,7 +2744,7 @@ IsNextTileShoreOrWater: ; e8b8 (3:68b8)
jr nc, .notShoreOrWater
ld a, [W_CURMAPTILESET]
cp SHIP_PORT ; Vermilion Dock tileset
- ld a, [$cfc6] ; tile in front of player
+ ld a, [wcfc6] ; tile in front of player
jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset
cp $48 ; eastern shore tile in Safari Zone
jr z, .shoreOrWater
@@ -2814,7 +2791,7 @@ ReadSuperRodData: ; e8ea (3:68ea)
ld e, $0 ; no bite yet
.RandomLoop ; 0xe90c
- call GenRandom
+ call Random
srl a
ret c ; 50% chance of no battle
@@ -2843,7 +2820,7 @@ ItemUseReloadOverworldData: ; e9c5 (3:69c5)
Func_e9cb: ; e9cb (3:69cb)
ld hl, WildDataPointers ; $4eeb
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld c, $0
.asm_e9d3
inc hl
@@ -2874,7 +2851,7 @@ Func_e9f0: ; e9f0 (3:69f0)
inc hl
ld b, $a
.asm_e9f3
- ld a, [$d11e]
+ ld a, [wd11e]
cp [hl]
jr nz, .asm_e9fc
ld a, c
diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm
index cf74ade2..c55a25b4 100755
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -1,5 +1,5 @@
GetMachinePrice: ; 7bf86 (1e:7f86)
- ld a, [$cf91]
+ ld a, [wcf91]
sub TM_01
ret c
ld d, a
diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm
index 5b7b4e8e..01a48ebb 100755
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -1,10 +1,10 @@
-; checks if the mon in wWhichPokemon already knows the move in $d0e0
+; checks if the mon in wWhichPokemon already knows the move in wd0e0
CheckIfMoveIsKnown: ; 2fe18 (b:7e18)
ld a, [wWhichPokemon]
- ld hl, W_PARTYMON1_MOVE1
+ ld hl, wPartyMon1Moves
ld bc, $2c
call AddNTimes
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld b, a
ld c, $4 ; nubmer of moves
.loop
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index b0cfd29c..ef427860 100755
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,11 +1,11 @@
-; tests if mon [$cf91] can learn move [$d0e0]
-TestMonMoveCompatibility: ; 1373e (4:773e)
- ld a, [$cf91]
- ld [$d0b5], a
+; tests if mon [wcf91] can learn move [wd0e0]
+CanLearnTM: ; 1373e (4:773e)
+ ld a, [wcf91]
+ ld [wd0b5], a
call GetMonHeader
ld hl, W_MONHLEARNSET
push hl
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld b, a
ld c, $0
ld hl, TechnicalMachines
@@ -18,20 +18,19 @@ TestMonMoveCompatibility: ; 1373e (4:773e)
.TMfoundLoop
pop hl
ld b, $2 ; read corresponding bit from TM compatibility array
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
-; converts TM/HM number in $d11e into move number
+; converts TM/HM number in wd11e into move number
; HMs start at 51
TMToMove: ; 13763 (4:7763)
- ld a, [$d11e]
+ ld a, [wd11e]
dec a
ld hl, TechnicalMachines
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
ret
INCLUDE "data/tms.asm"
diff --git a/engine/joypad.asm b/engine/joypad.asm
new file mode 100644
index 00000000..d2ad1c31
--- /dev/null
+++ b/engine/joypad.asm
@@ -0,0 +1,51 @@
+_Joypad::
+ ld a, [hJoyInput]
+ cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
+ jp z, TrySoftReset
+ ld b, a
+ ld a, [hJoyHeldLast]
+ ld e, a
+ xor b
+ ld d, a
+ and e
+ ld [hJoyReleased], a
+ ld a, d
+ and b
+ ld [hJoyPressed], a
+ ld a, b
+ ld [hJoyHeldLast], a
+ ld a, [wd730]
+ bit 5, a
+ jr nz, DiscardButtonPresses
+ ld a, [hJoyHeldLast]
+ ld [hJoyHeld], a
+ ld a, [wJoyIgnore]
+ and a
+ ret z
+ cpl
+ ld b, a
+ ld a, [hJoyHeld]
+ and b
+ ld [hJoyHeld], a
+ ld a, [hJoyPressed]
+ and b
+ ld [hJoyPressed], a
+ ret
+
+DiscardButtonPresses:
+ xor a
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ret
+
+TrySoftReset:
+ call DelayFrame
+ ; reset joypad (to make sure the
+ ; player is really trying to reset)
+ ld a, $30
+ ld [rJOYP], a
+ ld hl, hSoftReset
+ dec [hl]
+ jp z, SoftReset
+ jp Joypad
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index c1f5dee1..bbfb41a3 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,17 +1,17 @@
LearnMove: ; 6e43 (1:6e43)
call SaveScreenTilesToBuffer1
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
- ld hl, $cd6d
- ld de, $d036
+ ld hl, wcd6d
+ ld de, wd036
ld bc, $b
call CopyData
DontAbandonLearning: ; 6e5b (1:6e5b)
- ld hl, W_PARTYMON1_MOVE1 ; $d173
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
ld bc, $2c
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld d, h
ld e, l
@@ -29,14 +29,14 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
jp c, AbandonLearning
push hl
push de
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
ld hl, OneTwoAndText
call PrintText
pop de
pop hl
.asm_6e8b
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld [hl], a
ld bc, $15
add hl, bc
@@ -46,29 +46,29 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
ld hl, Moves ; $4000
ld bc, $6
call AddNTimes
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld a, BANK(Moves)
call FarCopyData
- ld a, [$ceee]
+ ld a, [wHPBarNewHP + 1]
pop de
pop hl
ld [hl], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jp z, PrintLearnedMove
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld b, a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
cp b
jp nz, PrintLearnedMove
ld h, d
ld l, e
- ld de, W_PLAYERMONMOVES
+ ld de, wBattleMonMoves
ld bc, $4
call CopyData
ld bc, $11
add hl, bc
- ld de, W_PLAYERMONPP ; $d02d
+ ld de, wBattleMonPP ; wBattleMonPP
ld bc, $4
call CopyData
jp PrintLearnedMove
@@ -76,13 +76,12 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
AbandonLearning: ; 6eda (1:6eda)
ld hl, AbandonLearningText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jp nz, DontAbandonLearning
ld hl, DidNotLearnText
@@ -100,20 +99,19 @@ TryingToLearn: ; 6f07 (1:6f07)
push hl
ld hl, TryingToLearnText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
rra
ret c
ld bc, $fffc
add hl, bc
push hl
- ld de, $d0dc
+ ld de, wd0dc
ld bc, $4
call CopyData
callab Func_39b87
@@ -122,14 +120,12 @@ TryingToLearn: ; 6f07 (1:6f07)
push hl
ld hl, WhichMoveToForgetText
call PrintText
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
- ld de, $d0e1
+ hlCoord 6, 8
+ ld de, wd0e1
ld a, [$fff6]
set 2, a
ld [$fff6], a
@@ -137,7 +133,7 @@ TryingToLearn: ; 6f07 (1:6f07)
ld a, [$fff6]
res 2, a
ld [$fff6], a
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $8
ld [hli], a
ld a, $5
@@ -145,7 +141,7 @@ TryingToLearn: ; 6f07 (1:6f07)
xor a
ld [hli], a
inc hl
- ld a, [$cd6c]
+ ld a, [wcd6c]
ld [hli], a
ld a, $3
ld [hli], a
@@ -162,7 +158,7 @@ TryingToLearn: ; 6f07 (1:6f07)
bit 1, a
jr nz, .asm_6fab
push hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
diff --git a/engine/load_pokedex_tiles.asm b/engine/load_pokedex_tiles.asm
index 7a49adaa..e8205ef8 100755
--- a/engine/load_pokedex_tiles.asm
+++ b/engine/load_pokedex_tiles.asm
@@ -2,10 +2,10 @@
LoadPokedexTilePatterns: ; 17840 (5:7840)
call LoadHpBarAndStatusTilePatterns
ld de,PokedexTileGraphics ; $6488
- ld hl,$9600
+ ld hl,vChars2 + $600
ld bc,(BANK(PokedexTileGraphics) << 8) + $12
call CopyVideoData
ld de,PokeballTileGraphics ; $697e
- ld hl,$9720
+ ld hl,vChars2 + $720
ld bc,(BANK(PokeballTileGraphics) << 8) + $01
jp CopyVideoData ; load pokeball tile for marking caught mons
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index 0c468a2b..3edaadd8 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -2,13 +2,13 @@ Func_213c8:: ; 213c8 (8:53c8)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call SaveScreenTilesToBuffer2
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr nz, .asm_213f3
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr z, .asm_213ea
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr nz, .asm_213f3
ld hl, wTileMap
@@ -28,70 +28,62 @@ Func_213c8:: ; 213c8 (8:53c8)
call TextBoxBorder
call UpdateSprites
ld a, $3
- ld [wMaxMenuItem], a ; $cc28
- ld a, [$d7f1]
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld a, [wd7f1]
bit 0, a
jr nz, .asm_21414
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, SomeonesPCText ; $548b
jr .asm_2141a
.asm_21414
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, BillsPCText ; $5497
.asm_2141a
call PlaceString
- FuncCoord 2, 4 ; $c3f2
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 2, 4
+ ld de, wPlayerName ; wd158
call PlaceString
ld l, c
ld h, b
ld de, PlayersPCText ; $54a0
call PlaceString
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr z, .asm_21462
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ hlCoord 2, 6
ld de, OaksPCText ; $54a5
call PlaceString
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr z, .asm_2145a
ld a, $4
- ld [wMaxMenuItem], a ; $cc28
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ hlCoord 2, 8
ld de, PKMNLeaguePCText ; $54b2
call PlaceString
- FuncCoord 2, 10 ; $c46a
- ld hl, Coord
+ hlCoord 2, 10
ld de, LogOffPCText ; $54ba
jr .asm_2146d
.asm_2145a
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ hlCoord 2, 8
ld de, LogOffPCText ; $54ba
jr .asm_2146d
.asm_21462
ld a, $2
- ld [wMaxMenuItem], a ; $cc28
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ hlCoord 2, 6
ld de, LogOffPCText ; $54ba
.asm_2146d
call PlaceString
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $2
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ret
@@ -116,14 +108,14 @@ LogOffPCText: ; 214ba (8:54ba)
Func_214c2:: ; 214c2 (8:54c2)
BillsPC_:: ; 0x214c2
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
- ld [$ccd3], a
+ ld [wccd3], a
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
call LoadHpBarAndStatusTilePatterns
- ld a, [wListScrollOffset] ; $cc36
+ ld a, [wListScrollOffset] ; wcc36
push af
ld a, [wFlags_0xcd60]
bit 3, a
@@ -135,9 +127,9 @@ BillsPC_:: ; 0x214c2
Func_214e8: ; 214e8 (8:54e8)
BillsPCMenu:
- ld a, [$ccd3]
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, $9780
+ ld a, [wccd3]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, vChars2 + $780
ld de, PokeballTileGraphics ; $697e
ld bc, (BANK(PokeballTileGraphics) << 8) + $01
call CopyVideoData
@@ -146,11 +138,10 @@ BillsPCMenu:
ld b, $a
ld c, $c
call TextBoxBorder
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, BillsPCMenuText ; $56e1
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -164,34 +155,30 @@ BillsPCMenu:
xor a
ld [hli], a
ld [hli], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld hl, WhatText
call PrintText
- FuncCoord 9, 14 ; $c4c1
- ld hl, Coord
+ hlCoord 9, 14
ld b, $2
ld c, $9
call TextBoxBorder
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_2154f
sub $9
- FuncCoord 17, 16 ; $c4f1
- ld hl, Coord
+ hlCoord 17, 16
ld [hl], $f7
add $f6
jr .asm_21551
.asm_2154f
add $f7
.asm_21551
- FuncCoord 18, 16 ; $c4f2
- ld [Coord], a
- FuncCoord 10, 16 ; $c4ea
- ld hl, Coord
+ Coorda 18, 16
+ hlCoord 10, 16
ld de, BoxNoPCText ; $5713
call PlaceString
ld a, $1
@@ -201,8 +188,8 @@ BillsPCMenu:
bit 1, a
jp nz, Func_21588 ; b button
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$ccd3], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wccd3], a
and a
jp z, Func_21618 ; withdraw
cp $1
@@ -225,44 +212,44 @@ Func_21588: ; 21588 (8:5588)
res 5, [hl]
call LoadScreenTilesFromBuffer2
pop af
- ld [wListScrollOffset], a ; $cc36
- ld hl, $d730
+ ld [wListScrollOffset], a ; wcc36
+ ld hl, wd730
res 6, [hl]
ret
Func_215ac: ; 215ac (8:55ac)
BillsPCDeposit:
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
jr nz, .asm_215bb
ld hl, CantDepositLastMonText
call PrintText
jp BillsPCMenu
.asm_215bb
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
cp $14
jr nz, .asm_215cb
ld hl, BoxFullText ; $5802
call PrintText
jp BillsPCMenu
.asm_215cb
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
call Func_216be
jp c, BillsPCMenu
call Func_2174b
jp nc, BillsPCMenu
- ld a, [$cf91]
+ ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
ld a, $1
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
xor a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, wWhichTrade ; $cd3d
- ld a, [$d5a0]
+ ld hl, wWhichTrade ; wWhichTrade
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_2160a
@@ -281,36 +268,36 @@ BillsPCDeposit:
jp BillsPCMenu
Func_21618: ; 21618 (8:5618)
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
and a
jr nz, .asm_21627
ld hl, NoMonText ; $580c
call PrintText
jp Func_214e8
.asm_21627
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
cp $6
jr nz, .asm_21637
ld hl, CantTakeMonText ; $5811
call PrintText
jp Func_214e8
.asm_21637
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_216be
jp c, Func_214e8
call Func_2174b
jp nc, Func_214e8
- ld a, [wWhichPokemon] ; $cf92
- ld hl, $de06
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wBoxMonNicks
call GetPartyMonName
- ld a, [$cf91]
+ ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
xor a
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
ld a, $1
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
ld hl, MonIsTakenOutText ; $5807
@@ -318,27 +305,27 @@ Func_21618: ; 21618 (8:5618)
jp Func_214e8
Func_21673: ; 21673 (8:5673)
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
and a
jr nz, .asm_21682
ld hl, NoMonText ; $580c
call PrintText
jp Func_214e8
.asm_21682
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_216be
jp c, Func_214e8
ld hl, OnceReleasedText ; $581b
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_21682
inc a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry
ld hl, MonWasReleasedText ; $5820
call PrintText
@@ -350,19 +337,19 @@ Func_216b3: ; 216b3 (8:56b3)
Func_216be: ; 216be (8:56be)
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
- ld [wListMenuID], a ; $cf94
+ ld [wcf93], a
+ ld [wListMenuID], a ; wListMenuID
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
- ld a, [$cc2b]
- ld [wCurrentMenuItem], a ; $cc26
+ ld a, [wcc2b]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
call DisplayListMenuID
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2b], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2b], a
ret
BillsPCMenuText: ; 216e1 (8:56e1)
@@ -372,21 +359,21 @@ BoxNoPCText: ; 21713 (8:5713)
db "BOX No.@"
Func_2171b:: ; 2171b (8:571b)
- ld hl, $d173
- ld bc, $002c
+ ld hl, wPartyMon1Moves
+ ld bc, wPartyMon2 - wPartyMon1
jr .asm_21729 ; 0x21721 $6
- ld hl, $da9e
- ld bc, $0021
+ ld hl, wBoxMon1Moves
+ ld bc, wBoxMon2 - wBoxMon1
.asm_21729
- ld a, [$cf92]
+ ld a, [wWhichPokemon]
call AddNTimes
- ld b, $4
+ ld b, NUM_MOVES
.asm_21731
ld a, [hli]
push hl
push bc
ld hl, HMMoveArray ; $5745
- ld de, $0001
+ ld de, 1
call IsInArray
pop bc
pop hl
@@ -405,25 +392,22 @@ HMMoveArray: ; 21745 (8:5745)
db $ff
Func_2174b: ; 2174b (8:574b)
- FuncCoord 9, 10 ; $c471
- ld hl, Coord
+ hlCoord 9, 10
ld b, $6
ld c, $9
call TextBoxBorder
- ld a, [$ccd3]
+ ld a, [wccd3]
and a
ld de, DepositPCText ; $57cb
jr nz, .asm_21761
ld de, WithdrawPCText ; $57d3
.asm_21761
- FuncCoord 11, 12 ; $c49b
- ld hl, Coord
+ hlCoord 11, 12
call PlaceString
- FuncCoord 11, 14 ; $c4c3
- ld hl, Coord
+ hlCoord 11, 14
ld de, StatsCancelPCText ; $57dc
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $c
ld [hli], a
ld a, $a
@@ -437,16 +421,16 @@ Func_2174b: ; 2174b (8:574b)
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
- ld [$cc2b], a
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wcc2b], a
.asm_2178f
call HandleMenuInput
bit 1, a
jr nz, .asm_2179f
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_217a1
dec a
@@ -459,17 +443,15 @@ Func_2174b: ; 2174b (8:574b)
ret
.asm_217a3
call SaveScreenTilesToBuffer1
- ld a, [$ccd3]
+ ld a, [wccd3]
and a
ld a, $0
jr nz, .asm_217b0
ld a, $2
.asm_217b0
- ld [$cc49], a
- ld a, $36
- call Predef ; indirect jump to StatusScreen (12953 (4:6953))
- ld a, $37
- call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57))
+ ld [wcc49], a
+ predef StatusScreen
+ predef StatusScreen2
call LoadScreenTilesFromBuffer1
call ReloadTilesetTilePatterns
call GoPAL_SET_CF1C
@@ -537,16 +519,16 @@ PrintJustAMomentText1:: ; 5824 (8:5825)
ld a, [$ffaa]
cp $1
ret z
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $c
ret nz
- ld a, [$d35e]
+ ld a, [W_CURMAP]
cp $ef
ld a, $2
jr z, .asm_2183a
inc a
.asm_2183a
- ld [$d12b], a
+ ld [W_ISLINKBATTLE], a
call EnableAutoTextBoxDrawing
ld a, $22
jp PrintPredefTextID
@@ -555,16 +537,16 @@ PrintJustAMomentText2:: ; 5845 (8:5845)
ld a, [$ffaa]
cp $2
ret z
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $8
ret nz
- ld a, [$d35e]
+ ld a, [W_CURMAP]
cp $ef
ld a, $2
jr z, .asm_2185a
inc a
.asm_2185a
- ld [$d12b], a
+ ld [W_ISLINKBATTLE], a
call EnableAutoTextBoxDrawing
ld a, $22
jp PrintPredefTextID
@@ -573,7 +555,7 @@ JustAMomentText:: ; 21865 (8:5865)
TX_FAR _JustAMomentText
db "@"
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm
index 3b9413a2..023c6177 100755
--- a/engine/menu/diploma.asm
+++ b/engine/menu/diploma.asm
@@ -3,19 +3,18 @@ DisplayDiploma: ; 566e2 (15:66e2)
call GBPalWhiteOutWithDelay3
call ClearScreen
xor a
- ld [$cfcb], a
- ld hl, $d730
+ ld [wcfcb], a
+ ld hl, wd730
set 6, [hl]
call DisableLCD
ld hl, CircleTile ; $7d88
- ld de, $9700
+ ld de, vChars2 + $700
ld bc, $0010
ld a, BANK(CircleTile)
call FarCopyData2
ld hl, wTileMap
ld bc, $1012
- ld a, $27
- call Predef
+ predef Func_5ab0
ld hl, DiplomaTextPointersAndCoords ; $6784
ld c, $5
.asm_56715
@@ -34,12 +33,11 @@ DisplayDiploma: ; 566e2 (15:66e2)
pop bc
dec c
jr nz, .asm_56715 ; 0x56725 $ee
- FuncCoord 10, 4 ; $c3fa
- ld hl, Coord
- ld de, W_PLAYERNAME
+ hlCoord 10, 4
+ ld de, wPlayerName
call PlaceString
callba Func_44dd
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld bc, $8028
.asm_5673e
ld a, [hl]
@@ -60,7 +58,7 @@ DisplayDiploma: ; 566e2 (15:66e2)
ld a, $90
ld [$ff48], a
call WaitForTextScrollButtonPress
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call GBPalWhiteOutWithDelay3
call Func_3dbe
@@ -68,7 +66,7 @@ DisplayDiploma: ; 566e2 (15:66e2)
jp GBPalNormal
Func_56777: ; 56777 (15:6777)
- ld hl, W_PLAYERNAME
+ ld hl, wPlayerName
ld bc, $ff00
.asm_5677d
ld a, [hli]
@@ -79,15 +77,15 @@ Func_56777: ; 56777 (15:6777)
DiplomaTextPointersAndCoords: ; 56784 (15:6784)
dw DiplomaText
- dw $c3cd
+ dw wTileMap + $2d
dw DiplomaPlayer
- dw $c3f3
+ dw wTileMap + $53
dw DiplomaEmptyText
- dw $c3ff
+ dw wTileMap + $5f
dw DiplomaCongrats
- dw $c41a
+ dw wTileMap + $7a
dw DiplomaGameFreak
- dw $c4e9
+ dw wTileMap + $149
DiplomaText:
db $70,"Diploma",$70,"@"
diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm
index 5e4e3436..4833e57d 100755
--- a/engine/menu/league_pc.asm
+++ b/engine/menu/league_pc.asm
@@ -1,37 +1,37 @@
PKMNLeaguePC: ; 0x7657e
ld hl, AccessedHoFPCText
call PrintText
- ld hl, $D730
+ ld hl, wd730
set 6, [hl]
push hl
- ld a, [$CFCB]
+ ld a, [wcfcb]
push af
ld a, [$ffD7]
push af
xor a
ld [$ffD7], a
ld [W_SPRITEFLIPPED], a
- ld [$CFCB], a
- ld [$CD41], a
- ld [$CD42], a
- ld a, [$D5A2]
+ ld [wcfcb], a
+ ld [wTrainerScreenX], a
+ ld [wcd42], a
+ ld a, [wd5a2]
ld b, a
- cp a, $33
+ cp NUM_HOF_TEAMS + 1
jr c, .first
- ld b, $32
+ ld b, NUM_HOF_TEAMS
sub b
- ld [$CD42], a
+ ld [wcd42], a
.first
- ld hl, $CD42
+ ld hl, wcd42
inc [hl]
push bc
- ld a, [$CD41]
- ld [$CD3D], a
- callba Func_73b3f
+ ld a, [wTrainerScreenX]
+ ld [wWhichTrade], a
+ callba LoadHallOfFameTeams
call Func_765e5
pop bc
jr c, .second
- ld hl, $CD41
+ ld hl, wTrainerScreenX
inc [hl]
ld a, [hl]
cp b
@@ -40,7 +40,7 @@ PKMNLeaguePC: ; 0x7657e
pop af
ld [$ffD7], a
pop af
- ld [$CFCB], a
+ ld [wcfcb], a
pop hl
res 6, [hl]
call GBPalWhiteOutWithDelay3
@@ -49,28 +49,28 @@ PKMNLeaguePC: ; 0x7657e
jp GBPalNormal
Func_765e5: ; 765e5 (1d:65e5)
- ld c, 6
-.third
+ ld c, PARTY_LENGTH
+.loop
push bc
call Func_76610
call WaitForTextScrollButtonPress
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
bit 1, a
- jr nz, .fifth
- ld hl, $CC6B
- ld de, $CC5B
- ld bc, $0050
+ jr nz, .exit
+ ld hl, wHallOfFame + HOF_MON
+ ld de, wHallOfFame
+ ld bc, HOF_TEAM - HOF_MON
call CopyData
pop bc
- ld a, [$CC5B]
- cp a, $FF
- jr z, .fourth
+ ld a, [wHallOfFame + 0]
+ cp $ff
+ jr z, .done
dec c
- jr nz, .third
-.fourth
+ jr nz, .loop
+.done
and a
ret
-.fifth
+.exit
pop bc
scf
ret
@@ -78,38 +78,34 @@ Func_765e5: ; 765e5 (1d:65e5)
Func_76610: ; 76610 (1d:6610)
call GBPalWhiteOutWithDelay3
call ClearScreen
- ld hl, $CC5B
+ ld hl, wHallOfFame
ld a, [hli]
- ld [$CD3D], a
- ld [$CF91], a
- ld [$D0B5], a
- ld [$CFD9], a
- ld [$CF1D], a
+ ld [wWhichTrade], a
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wBattleMonSpecies2], a
+ ld [wcf1d], a
ld a, [hli]
- ld [$CD3F], a
- ld de, $CD6D
+ ld [wTrainerFacingDirection], a
+ ld de, wcd6d
ld bc, $000B
call CopyData
ld b, $0B
ld c, 0
call GoPAL_SET
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
+ hlCoord 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
call GBPalNormal
- FuncCoord 0, 13 ; $c4a4
- ld hl, Coord
+ hlCoord 0, 13
ld b, 2
ld c, $12
call TextBoxBorder
- FuncCoord 1, 15 ; $c4cd
- ld hl, Coord
+ hlCoord 1, 15
ld de, HallOfFameNoText
call PlaceString
- FuncCoord 16, 15 ; $c4dc
- ld hl, Coord
- ld de, $CD42
+ hlCoord 16, 15
+ ld de, wcd42
ld bc, $0103
call PrintNumber
ld b, BANK(Func_702f0)
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm
index 7e34feca..4044da43 100755
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -2,82 +2,77 @@ MainMenu: ; 5af2 (1:5af2)
; Check save file
call Func_5bff
xor a
- ld [$D08A],a
+ ld [wd08a],a
inc a
- ld [$D088],a
+ ld [wd088],a
call Func_609e
jr nc,.next0
; Predef 52 loads the save from SRAM to RAM
- ld a,$52
- call Predef
+ predef LoadSAV
.next0
ld c,20
call DelayFrames
xor a
- ld [$D12B],a
- ld hl,$CC2B
+ ld [W_ISLINKBATTLE],a
+ ld hl,wcc2b
ld [hli],a
ld [hli],a
ld [hli],a
ld [hl],a
- ld [$D07C],a
- ld hl,$D72E
+ ld [W_ANIMATIONID],a
+ ld hl,wd72e
res 6,[hl]
call ClearScreen
call GoPAL_SET_CF1C
call LoadTextBoxTilePatterns
call LoadFontTilePatterns
- ld hl,$D730
+ ld hl,wd730
set 6,[hl]
- ld a,[$D088]
+ ld a,[wd088]
cp a,1
jr z,.next1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,6
ld c,13
call TextBoxBorder
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,ContinueText
call PlaceString
jr .next2
.next1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,4
ld c,13
call TextBoxBorder
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,NewGameText
call PlaceString
.next2
- ld hl,$D730
+ ld hl,wd730
res 6,[hl]
call UpdateSprites ; OAM?
xor a
- ld [$CC26],a
- ld [$CC2A],a
- ld [$CC34],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
+ ld [wMenuJoypadPollCount],a
inc a
- ld [$CC25],a
+ ld [wTopMenuItemX],a
inc a
- ld [$CC24],a
+ ld [wTopMenuItemY],a
ld a,$B
- ld [$CC29],a
- ld a,[$D088]
- ld [$CC28],a
+ ld [wMenuWatchedKeys],a
+ ld a,[wd088]
+ ld [wMaxMenuItem],a
call HandleMenuInput
bit 1,a
jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement)
ld c,20
call DelayFrames
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
ld b,a
- ld a,[$D088]
+ ld a,[wd088]
cp a,2
jp z,.next3
inc b ; adjust MenuArrow_Counter
@@ -89,19 +84,19 @@ MainMenu: ; 5af2 (1:5af2)
jp z,Func_5d52 ; if press_A on NewGame
call DisplayOptionMenu ; if press_a on Options
ld a,1
- ld [$D08A],a
+ ld [wd08a],a
jp .next0
.next4
call ContinueGame
- ld hl,$D126
+ ld hl,wd126
set 5,[hl]
.next6
xor a
- ld [H_NEWLYPRESSEDBUTTONS],a
- ld [H_NEWLYRELEASEDBUTTONS],a
- ld [H_CURRENTPRESSEDBUTTONS],a
- call GetJoypadState
- ld a,[H_CURRENTPRESSEDBUTTONS]
+ ld [hJoyPressed],a
+ ld [hJoyReleased],a
+ ld [hJoyHeld],a
+ call Joypad
+ ld a,[hJoyHeld]
bit 0,a
jr nz,.next5
bit 1,a
@@ -111,52 +106,50 @@ MainMenu: ; 5af2 (1:5af2)
call GBPalWhiteOutWithDelay3
call ClearScreen
ld a,4
- ld [$D52A],a
+ ld [wd52a],a
ld c,10
call DelayFrames
- ld a,[$D5A2]
+ ld a,[wd5a2]
and a
jp z,Func_5d5f
ld a,[W_CURMAP] ; map ID
cp a,HALL_OF_FAME
jp nz,Func_5d5f
xor a
- ld [$D71A],a
- ld hl,$D732
+ ld [wd71a],a
+ ld hl,wd732
set 2,[hl]
call Func_62ce
jp Func_5d5f
Func_5bff: ; 5bff (1:5bff)
ld a,1
- ld [$D358],a
+ ld [wd358],a
ld a,3
- ld [$D355],a
+ ld [W_OPTIONS],a
ret
LinkMenu: ; 5c0a (1:5c0a)
xor a
- ld [$d358], a
- ld hl, $d72e
+ ld [wd358], a
+ ld hl, wd72e
set 6, [hl]
ld hl, TextTerminator_6b20 ; $6b20
call PrintText
call SaveScreenTilesToBuffer1
ld hl, WhereWouldYouLikeText
call PrintText
- FuncCoord 5, 5 ; $c409
- ld hl, Coord
+ hlCoord 5, 5
ld b, $6
ld c, $d
call TextBoxBorder
call UpdateSprites
- FuncCoord 7, 7 ; $c433
- ld hl, Coord
+ hlCoord 7, 7
ld de, TradeCenterText
call PlaceString
xor a
- ld [$cd37], a
- ld [$d72d], a
- ld hl, wTopMenuItemY ; $cc24
+ ld [wcd37], a
+ ld [wd72d], a
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $7
ld [hli], a
ld a, $6
@@ -176,19 +169,19 @@ LinkMenu: ; 5c0a (1:5c0a)
add a
add a
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add b
add $d0
- ld [$cc42], a
- ld [$cc43], a
+ ld [wcc42], a
+ ld [wcc43], a
.asm_5c66
call Func_2247
- ld a, [$cc3d]
+ ld a, [wcc3d]
ld b, a
and $f0
cp $d0
jr z, .asm_5c7d
- ld a, [$cc3e]
+ ld a, [wcc3e]
ld b, a
and $f0
cp $d0
@@ -197,12 +190,12 @@ LinkMenu: ; 5c0a (1:5c0a)
ld a, b
and $c
jr nz, .asm_5c8b
- ld a, [$cc42]
+ ld a, [wcc42]
and $c
jr z, .asm_5c52
jr .asm_5ca1
.asm_5c8b
- ld a, [$cc42]
+ ld a, [wcc42]
and $c
jr z, .asm_5c98
ld a, [$ffaa]
@@ -210,9 +203,9 @@ LinkMenu: ; 5c0a (1:5c0a)
jr z, .asm_5ca1
.asm_5c98
ld a, b
- ld [$cc42], a
+ ld [wcc42], a
and $3
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
.asm_5ca1
ld a, [$ffaa]
cp $2
@@ -225,10 +218,10 @@ LinkMenu: ; 5c0a (1:5c0a)
ld b, $7f
ld c, $7f
ld d, $ec
- ld a, [$cc42]
+ ld a, [wcc42]
and $8
jr nz, .asm_5ccc
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, .asm_5ccc
ld c, d
@@ -239,58 +232,55 @@ LinkMenu: ; 5c0a (1:5c0a)
ld c, d
.asm_5ccc
ld a, b
- FuncCoord 6, 7 ; $c432
- ld [Coord], a
+ Coorda 6, 7
ld a, c
- FuncCoord 6, 9 ; $c45a
- ld [Coord], a
+ Coorda 6, 9
ld a, d
- FuncCoord 6, 11 ; $c482
- ld [Coord], a
+ Coorda 6, 11
ld c, $28
call DelayFrames
call LoadScreenTilesFromBuffer1
- ld a, [$cc42]
+ ld a, [wcc42]
and $8
jr nz, .asm_5d2d
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, .asm_5d2d
xor a
- ld [$d700], a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld [wd700], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
ld a, TRADE_CENTER
jr nz, .asm_5cfc
ld a, BATTLE_CENTER
.asm_5cfc
- ld [$d72d], a
+ ld [wd72d], a
ld hl, PleaseWaitText
call PrintText
ld c, $32
call DelayFrames
- ld hl, $d732
+ ld hl, wd732
res 1, [hl]
- ld a, [W_ANIMATIONID] ; $d07c
- ld [$d71a], a
+ ld a, [W_ANIMATIONID] ; W_ANIMATIONID
+ ld [wd71a], a
call Func_62ce
ld c, $14
call DelayFrames
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
- ld [$cc42], a
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
+ ld [wcc42], a
inc a
- ld [W_ISLINKBATTLE], a ; $d12b
- ld [$cc47], a
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
+ ld [wcc47], a
jr Func_5d5f
.asm_5d2d
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
call Delay3
call Func_72d7
ld hl, LinkCanceledText
call PrintText
- ld hl, $d72e
+ ld hl, wd72e
res 6, [hl]
ret
@@ -307,7 +297,7 @@ LinkCanceledText: ; 5d4d (1:5d4d)
db "@"
Func_5d52: ; 5d52 (1:5d52)
- ld hl, $d732
+ ld hl, wd732
res 1, [hl]
call OakSpeech
ld c, $14
@@ -315,16 +305,16 @@ Func_5d52: ; 5d52 (1:5d52)
Func_5d5f: ; 5d5f (1:5d5f)
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
ld [$ffb5], a
- ld [$d72d], a
- ld hl, $d732
+ ld [wd72d], a
+ ld hl, wd732
set 0, [hl]
call ResetPlayerSpriteData
ld c, $14
call DelayFrames
- ld a, [$cc47]
+ ld a, [wcc47]
and a
ret nz
jp EnterMap
@@ -344,27 +334,21 @@ TradeCenterText: ; 5d97 (1:5d97)
ContinueGame: ; 5db5 (1:5db5)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $8
ld c, $e
call TextBoxBorder
- FuncCoord 5, 9 ; $c459
- ld hl, Coord
+ hlCoord 5, 9
ld de, SaveScreenInfoText
call PlaceString
- FuncCoord 12, 9 ; $c460
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 12, 9
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 17, 11 ; $c48d
- ld hl, Coord
+ hlCoord 17, 11
call Func_5e2f
- FuncCoord 16, 13 ; $c4b4
- ld hl, Coord
+ hlCoord 16, 13
call Func_5e42
- FuncCoord 13, 15 ; $c4d9
- ld hl, Coord
+ hlCoord 13, 15
call Func_5e55
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -374,23 +358,23 @@ ContinueGame: ; 5db5 (1:5db5)
PrintSaveScreenText: ; 5def (1:5def)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, $c3a4
+ ld hl, wTileMap + $4
ld b, $8
ld c, $e
call TextBoxBorder
call LoadTextBoxTilePatterns
call UpdateSprites
- ld hl, $c3cd
+ ld hl, wTileMap + $2d
ld de, SaveScreenInfoText
call PlaceString
- ld hl, $c3d4
- ld de, W_PLAYERNAME
+ ld hl, wTileMap + $34
+ ld de, wPlayerName
call PlaceString
- ld hl, $c401
+ ld hl, wTileMap + $61
call Func_5e2f
- ld hl, $c428
+ ld hl, wTileMap + $88
call Func_5e42
- ld hl, $c44d
+ ld hl, wTileMap + $ad
call Func_5e55
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -403,27 +387,27 @@ Func_5e2f: ; 5e2f (1:5e2f)
ld b, $1
call CountSetBits
pop hl
- ld de, $d11e
+ ld de, wd11e
ld bc, $102
jp PrintNumber
Func_5e42: ; 5e42 (1:5e42)
push hl
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
pop hl
- ld de, $d11e
+ ld de, wd11e
ld bc, $103
jp PrintNumber
Func_5e55: ; 5e55 (1:5e55)
- ld de, $da41
+ ld de, W_PLAYTIMEHOURS + 1
ld bc, $103
call PrintNumber
ld [hl], $6d
inc hl
- ld de, $da43
+ ld de, W_PLAYTIMEMINUTES + 1
ld bc, $8102
jp PrintNumber
@@ -434,47 +418,40 @@ SaveScreenInfoText: ; 5e6a (1:5e6a)
next "TIME@"
DisplayOptionMenu: ; 5e8a (1:5e8a)
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 0,5
- ld hl,Coord
+ hlCoord 0, 5
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 0,10
- ld hl,Coord
+ hlCoord 0, 10
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
ld de,TextSpeedOptionText
call PlaceString
- FuncCoord 1,6
- ld hl,Coord
+ hlCoord 1, 6
ld de,BattleAnimationOptionText
call PlaceString
- FuncCoord 1,11
- ld hl,Coord
+ hlCoord 1, 11
ld de,BattleStyleOptionText
call PlaceString
- FuncCoord 2,16
- ld hl,Coord
+ hlCoord 2, 16
ld de,OptionMenuCancelText
call PlaceString
xor a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
inc a
- ld [$d358],a
- ld [$cd40],a
+ ld [wd358],a
+ ld [wTrainerScreenY],a
ld a,3 ; text speed cursor Y coordinate
ld [wTopMenuItemY],a
call SetCursorPositionsFromOptions
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
ld [wTopMenuItemX],a
ld a,$01
ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer
@@ -483,7 +460,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call PlaceMenuCursor
call SetOptionsFromCursorPositions
.getJoypadStateLoop
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a,[$ffb5]
ld b,a
and a,%11111011 ; any key besides select pressed?
@@ -524,7 +501,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.downPressed
cp a,16
ld b,-13
- ld hl,$cd3d
+ ld hl,wWhichTrade
jr z,.updateMenuVariables
ld b,5
cp a,3
@@ -539,7 +516,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.upPressed
cp a,8
ld b,-5
- ld hl,$cd3d
+ ld hl,wWhichTrade
jr z,.updateMenuVariables
cp a,13
inc hl
@@ -558,17 +535,17 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call PlaceUnfilledArrowMenuCursor
jp .loop
.cursorInBattleAnimation
- ld a,[$cd3e] ; battle animation cursor X coordinate
+ ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [$cd3e],a
+ ld [wTrainerEngageDistance],a
jp .eraseOldMenuCursor
.cursorInBattleStyle
- ld a,[$cd3f] ; battle style cursor X coordinate
+ ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [$cd3f],a
+ ld [wTrainerFacingDirection],a
jp .eraseOldMenuCursor
.pressedLeftInTextSpeed
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
cp a,1
jr z,.updateTextSpeedXCoord
cp a,7
@@ -579,7 +556,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
sub a,7
jr .updateTextSpeedXCoord
.pressedRightInTextSpeed
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
cp a,14
jr z,.updateTextSpeedXCoord
cp a,7
@@ -589,7 +566,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.fromFastToMedium
add a,6
.updateTextSpeedXCoord
- ld [$cd3d],a ; text speed cursor X coordinate
+ ld [wWhichTrade],a ; text speed cursor X coordinate
jp .eraseOldMenuCursor
TextSpeedOptionText: ; 5fc0 (1:5fc0)
@@ -610,7 +587,7 @@ OptionMenuCancelText: ; 6018 (1:6018)
; sets the options variable according to the current placement of the menu cursors in the options menu
SetOptionsFromCursorPositions: ; 601f (1:601f)
ld hl,TextSpeedOptionData
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
ld c,a
.loop
ld a,[hli]
@@ -621,7 +598,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f)
.textSpeedMatchFound
ld a,[hl]
ld d,a
- ld a,[$cd3e] ; battle animation cursor X coordinate
+ ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
dec a
jr z,.battleAnimationOn
.battleAnimationOff
@@ -630,7 +607,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f)
.battleAnimationOn
res 7,d
.checkBattleStyle
- ld a,[$cd3f] ; battle style cursor X coordinate
+ ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
dec a
jr z,.battleStyleShift
.battleStyleSet
@@ -655,31 +632,27 @@ SetCursorPositionsFromOptions: ; 604c (1:604c)
pop bc
dec hl
ld a,[hl]
- ld [$cd3d],a ; text speed cursor X coordinate
- FuncCoord 0,3
- ld hl,Coord
+ ld [wWhichTrade],a ; text speed cursor X coordinate
+ hlCoord 0, 3
call .placeUnfilledRightArrow
sla c
ld a,1 ; On
jr nc,.storeBattleAnimationCursorX
ld a,10 ; Off
.storeBattleAnimationCursorX
- ld [$cd3e],a ; battle animation cursor X coordinate
- FuncCoord 0,8
- ld hl,Coord
+ ld [wTrainerEngageDistance],a ; battle animation cursor X coordinate
+ hlCoord 0, 8
call .placeUnfilledRightArrow
sla c
ld a,1
jr nc,.storeBattleStyleCursorX
ld a,10
.storeBattleStyleCursorX
- ld [$cd3f],a ; battle style cursor X coordinate
- FuncCoord 0,13
- ld hl,Coord
+ ld [wTrainerFacingDirection],a ; battle style cursor X coordinate
+ hlCoord 0, 13
call .placeUnfilledRightArrow
; cursor in front of Cancel
- FuncCoord 0,16
- ld hl,Coord
+ hlCoord 0, 16
ld a,1
.placeUnfilledRightArrow
ld e,a
diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm
index ea6f7de7..17aa96e6 100755
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -1,37 +1,36 @@
-AskForMonNickname: ; 64eb (1:64eb)
+AskName: ; 64eb (1:64eb)
call SaveScreenTilesToBuffer1
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ld hl, wTileMap
ld b, $4
ld c, $b
call z, ClearScreenArea ; only if in wild batle
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
call GetMonName
ld hl, DoYouWantToNicknameText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_654c
- ld a, [$cfcb]
+ ld a, [wcfcb]
push af
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
push hl
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jr nz, .asm_653e
call Func_3e08
@@ -39,14 +38,14 @@ AskForMonNickname: ; 64eb (1:64eb)
call LoadScreenTilesFromBuffer1
pop hl
pop af
- ld [$cfcb], a
- ld a, [$cf4b]
+ ld [wcfcb], a
+ ld a, [wcf4b]
cp $50
ret nz
.asm_654c
ld d, h
ld e, l
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $000b
jp CopyData
@@ -55,25 +54,25 @@ DoYouWantToNicknameText: ; 0x6557
db "@"
Func_655c: ; 655c (1:655c)
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
call GBPalWhiteOutWithDelay3
call Func_3dbe
call LoadGBPal
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_6594
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
ld bc, $b
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld e, l
ld d, h
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
ld bc, $b
call CopyData
and a
@@ -84,7 +83,7 @@ Func_655c: ; 655c (1:655c)
DisplayNamingScreen: ; 6596 (1:6596)
push hl
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
call ClearScreen
@@ -94,47 +93,46 @@ DisplayNamingScreen: ; 6596 (1:6596)
call LoadHpBarAndStatusTilePatterns
call LoadEDTile
callba Func_7176c
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld b, $9
ld c, $12
call TextBoxBorder
call PrintNamingText
ld a, $3
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld [wLastMenuItem], a ; $cc2a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $ff
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $7
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $50
- ld [$cf4b], a
+ ld [wcf4b], a
xor a
- ld hl, $ceea
+ ld hl, wHPBarMaxHP + 1
ld [hli], a
ld [hli], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
.asm_65ed
call PrintAlphabet
call GBPalNormal
.asm_65f3
- ld a, [$ceea]
+ ld a, [wHPBarMaxHP + 1]
and a
jr nz, .asm_662d
call Func_680e
.asm_65fc
call PlaceMenuCursor
.asm_65ff
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
push af
callba AnimatePartyMon_ForceSpeed1
pop af
- ld [wCurrentMenuItem], a ; $cc26
- call GetJoypadStateLowSensitivity
- ld a, [H_NEWLYPRESSEDBUTTONS]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ call JoypadLowSensitivity
+ ld a, [hJoyPressed]
and a
jr z, .asm_65ff
ld hl, .unknownPointerTable_665e ; $665e
@@ -158,19 +156,19 @@ DisplayNamingScreen: ; 6596 (1:6596)
jp [hl]
.asm_662d
pop de
- ld hl, $cf4b
+ ld hl, wcf4b
ld bc, $b
call CopyData
call GBPalWhiteOutWithDelay3
call ClearScreen
- call CleanLCD_OAM
+ call ClearSprites
call GoPAL_SET_CF1C
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
- ld hl, $d730
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld hl, wd730
res 6, [hl]
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jp z, LoadTextBoxTilePatterns
ld hl, Func_3ee5b
@@ -200,52 +198,52 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld de, .asm_65ed ; $65ed
push de
.asm_6683
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
xor $1
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
ret
.asm_668c
ld a, $1
- ld [$ceea], a
+ ld [wHPBarMaxHP + 1], a
ret
.asm_6692
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $5
jr nz, .asm_66a0
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $11
jr z, .asm_668c
.asm_66a0
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
jr nz, .asm_66ae
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $1
jr z, .asm_667e
.asm_66ae
- ld hl, wMenuCursorLocation ; $cc30
+ ld hl, wMenuCursorLocation ; wMenuCursorLocation
ld a, [hli]
ld h, [hl]
ld l, a
inc hl
ld a, [hl]
- ld [$ceed], a
+ ld [wHPBarNewHP], a
call CalcStringLength
- ld a, [$ceed]
+ ld a, [wHPBarNewHP]
cp $e5
ld de, Dakutens ; $6885
jr z, .asm_66e3
cp $e4
ld de, Handakutens ; $68d6
jr z, .asm_66e3
- ld a, [$d07d]
+ ld a, [wd07d]
cp $2
jr nc, .checkMonNameLength
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
cp $7 ; max length of player/rival names
jr .checkNameLength
.checkMonNameLength
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
cp $a ; max length of pokemon nicknames
.checkNameLength
jr c, .addLetter
@@ -257,14 +255,14 @@ DisplayNamingScreen: ; 6596 (1:6596)
ret nc
dec hl
.addLetter
- ld a, [$ceed]
+ ld a, [wHPBarNewHP]
ld [hli], a
ld [hl], $50
ld a, (SFX_02_40 - SFX_Headers_02) / 3
call PlaySound
ret
.deleteLetter
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
ret z
call CalcStringLength
@@ -272,10 +270,10 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld [hl], $50
ret
.asm_6702
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
ret z
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $11
jp z, .asm_6714
inc a
@@ -285,10 +283,10 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, $1
jr .asm_6755
.asm_6718
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
ret z
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
dec a
jp z, .asm_6728
dec a
@@ -297,35 +295,35 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, $11
jr .asm_6755
.asm_672c
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
and a
ret nz
ld a, $6
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $1
jr .asm_6755
.asm_673e
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
inc a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
cp $7
jr nz, .asm_6750
ld a, $1
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jr .asm_6755
.asm_6750
cp $6
ret nz
ld a, $1
.asm_6755
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
jp EraseMenuCursor
LoadEDTile: ; 675b (1:675b)
ld de, ED_Tile
- ld hl, $8f00
+ ld hl, vFont + $700
ld bc, $1
jp CopyVideoDataDouble
@@ -335,14 +333,13 @@ ED_Tile: ; 6767 (1:6767)
PrintAlphabet: ; 676f (1:676f)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
and a
ld de, LowerCaseAlphabet ; $679e
jr nz, .asm_677e
ld de, UpperCaseAlphabet ; $67d6
.asm_677e
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
ld bc, $509
.asm_6784
push bc
@@ -372,18 +369,15 @@ UpperCaseAlphabet: ; 67d6 (1:67d6)
Func_680e: ; 680e (1:680e)
call CalcStringLength
ld a, c
- ld [$cee9], a
- FuncCoord 10, 2 ; $c3d2
- ld hl, Coord
+ ld [wHPBarMaxHP], a
+ hlCoord 10, 2
ld bc, $10a
call ClearScreenArea
- FuncCoord 10, 2 ; $c3d2
- ld hl, Coord
- ld de, $cf4b
+ hlCoord 10, 2
+ ld de, wcf4b
call PlaceString
- FuncCoord 10, 3 ; $c3e6
- ld hl, Coord
- ld a, [$d07d]
+ hlCoord 10, 3
+ ld a, [wd07d]
cp $2
jr nc, .asm_6835
ld b, $7
@@ -396,9 +390,9 @@ Func_680e: ; 680e (1:680e)
ld [hli], a
dec b
jr nz, .asm_6839
- ld a, [$d07d]
+ ld a, [wd07d]
cp $2
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
jr nc, .asm_684b
cp $7
jr .asm_684d
@@ -408,10 +402,10 @@ Func_680e: ; 680e (1:680e)
jr nz, .asm_6867
call EraseMenuCursor
ld a, $11
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
ld a, $5
- ld [wCurrentMenuItem], a ; $cc26
- ld a, [$d07d]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld a, [wd07d]
cp $2
ld a, $9
jr nc, .asm_6867
@@ -419,8 +413,7 @@ Func_680e: ; 680e (1:680e)
.asm_6867
ld c, a
ld b, $0
- FuncCoord 10, 3 ; $c3e6
- ld hl, Coord
+ hlCoord 10, 3
add hl, bc
ld [hl], $77
ret
@@ -436,7 +429,7 @@ Func_6871: ; 6871 (1:6871)
ret nc
inc hl
ld a, [hl]
- ld [$ceed], a
+ ld [wHPBarNewHP], a
ret
Dakutens: ; 6885 (1:6885)
@@ -455,9 +448,9 @@ Handakutens: ; 68d6 (1:68d6)
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
db $ff
-; calculates the length of the string at $cf4b and stores it in c
+; calculates the length of the string at wcf4b and stores it in c
CalcStringLength: ; 68eb (1:68eb)
- ld hl, $cf4b
+ ld hl, wcf4b
ld c, $0
.asm_68f0
ld a, [hl]
@@ -468,30 +461,27 @@ CalcStringLength: ; 68eb (1:68eb)
jr .asm_68f0
PrintNamingText: ; 68f8 (1:68f8)
- FuncCoord 0, 1 ; $c3b4
- ld hl, Coord
- ld a, [$d07d]
+ hlCoord 0, 1
+ ld a, [wd07d]
ld de, YourTextString ; $693f
and a
jr z, .notNickname
ld de, RivalsTextString ; $6945
dec a
jr z, .notNickname
- ld a, [$cf91]
- ld [$cd5d], a
+ ld a, [wcf91]
+ ld [wcd5d], a
push af
callba Func_71882
pop af
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- FuncCoord 4, 1 ; $c3b8
- ld hl, Coord
+ hlCoord 4, 1
call PlaceString
ld hl, $1
add hl, bc
ld [hl], $c9
- FuncCoord 1, 3 ; $c3dd
- ld hl, Coord
+ hlCoord 1, 3
ld de, NicknameTextString ; $6953
jr .placeString
.notNickname
diff --git a/engine/menu/oaks_pc.asm b/engine/menu/oaks_pc.asm
index 937786c1..6e7edda2 100755
--- a/engine/menu/oaks_pc.asm
+++ b/engine/menu/oaks_pc.asm
@@ -5,11 +5,10 @@ OpenOaksPC: ; 1e915 (7:6915)
ld hl, GetDexRatedText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_1e932
- ld a, $56
- call Predef ; indirect jump to DisplayDexRating (44169 (11:4169))
+ predef DisplayDexRating
.asm_1e932
ld hl, ClosedOaksPCText
call PrintText
diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm
index dbb6a40e..4e47361b 100755
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -1,4 +1,4 @@
-; [$D07D] = menu type / message ID
+; [wd07d] = menu type / message ID
; if less than $F0, it is a menu type
; menu types:
; 00: normal pokemon menu (e.g. Start menu)
@@ -25,18 +25,17 @@ DrawPartyMenu_: ; 12cd2 (4:6cd2)
callba Func_71791 ; load pokemon icon graphics
RedrawPartyMenu_: ; 12ce3 (4:6ce3)
- ld a,[$D07D]
+ ld a,[wd07d]
cp a,$04
jp z,.printMessage
call ErasePartyMenuCursors
- callba SendBlkPacket_PartyMenu ; loads some data to $cf2e
- FuncCoord 3,0
- ld hl,Coord
- ld de,W_PARTYMON1
+ callba SendBlkPacket_PartyMenu ; loads some data to wcf2e
+ hlCoord 3, 0
+ ld de,wPartySpecies
xor a
ld c,a
ld [$FF8C],a ; loop counter
- ld [$CF2D],a
+ ld [wcf2d],a
.loop
ld a,[de]
cp a,$FF ; reached the terminator?
@@ -46,7 +45,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
push hl
ld a,c
push hl
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
call PlaceString ; print the pokemon's name
@@ -58,7 +57,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
call LoadMonData
pop hl
push hl
- ld a,[$CC35]
+ ld a,[wcc35]
and a ; is the player swapping pokemon positions?
jr z,.skipUnfilledRightArrow
; if the player is swapping pokemon positions
@@ -76,7 +75,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
inc hl
inc hl
.skipUnfilledRightArrow
- ld a,[$D07D] ; menu type
+ ld a,[wd07d] ; menu type
cp a,$03
jr z,.teachMoveMenu
cp a,$05
@@ -84,7 +83,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
push hl
ld bc,14 ; 14 columns to the right
add hl,bc
- ld de,$CF9C
+ ld de,wcf9c
call PrintStatusCondition
pop hl
push hl
@@ -93,8 +92,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
set 0,a
ld [$FFF6],a
add hl,bc
- ld a,$60
- call Predef ; draw HP bar and prints current / max HP
+ predef Func_128f6 ; draw HP bar and prints current / max HP
ld a,[$FFF6]
res 0,a
ld [$FFF6],a
@@ -103,8 +101,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
jr .printLevel
.teachMoveMenu
push hl
- ld a,$43
- call Predef ; check if the pokemon can learn the move
+ predef CanLearnTM ; check if the pokemon can learn the move
pop hl
ld de,.ableToLearnMoveText
ld a,c
@@ -137,25 +134,25 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
push hl
ld hl,EvosMovesPointerTable
ld b,0
- ld a,[$CF98] ; pokemon ID
+ ld a,[wcf98] ; pokemon ID
dec a
add a
rl b
ld c,a
add hl,bc
- ld de,$CD6D
+ ld de,wcd6d
ld a,BANK(EvosMovesPointerTable)
ld bc,2
call FarCopyData
- ld hl,$CD6D
+ ld hl,wcd6d
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$CD6D
+ ld de,wcd6d
ld a,BANK(EvosMovesPointerTable)
ld bc,13
call FarCopyData
- ld hl,$CD6D
+ ld hl,wcd6d
ld de,.notAbleToEvolveText
; loop through the pokemon's evolution entries
.checkEvolutionsLoop
@@ -170,7 +167,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
dec hl
dec hl
ld b,[hl]
- ld a,[$D156] ; evolution stone item ID
+ ld a,[wd156] ; evolution stone item ID
inc hl
inc hl
inc hl
@@ -194,12 +191,12 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
ld b,$0A
call GoPAL_SET
.printMessage
- ld hl,$D730
+ ld hl,wd730
ld a,[hl]
push af
push hl
set 6,[hl] ; turn off letter printing delay
- ld a,[$D07D] ; message ID
+ ld a,[wd07d] ; message ID
cp a,$F0
jr nc,.printItemUseMessage
add a
@@ -230,8 +227,8 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
ld h,[hl]
ld l,a
push hl
- ld a,[$CF06]
- ld hl,W_PARTYMON1NAME
+ ld a,[wcf06]
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
call PrintText
@@ -315,14 +312,14 @@ RareCandyText: ; 12ec0 (4:6ec0)
db "@"
SetPartyMenuHealthBarColor: ; 12ec7 (4:6ec7)
- ld hl, $cf1f
- ld a, [$cf2d]
+ ld hl, wcf1f
+ ld a, [wcf2d]
ld c, a
ld b, $0
add hl, bc
call GetHealthBarColor
ld b, $fc
call GoPAL_SET
- ld hl, $cf2d
+ ld hl, wcf2d
inc [hl]
ret
diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm
index a860c4b3..4df6c826 100755
--- a/engine/menu/pc.asm
+++ b/engine/menu/pc.asm
@@ -74,7 +74,7 @@ BillsPC: ; 17ee4 (5:7ee4)
ld a, (SFX_02_47 - SFX_Headers_02) / 3
call PlaySound ;XXX: play sound or stop music
call WaitForSoundToFinish ;XXX: wait for sound to be done
- ld a, [$D7F1] ;has to do with having met Bill
+ ld a, [wd7f1] ;has to do with having met Bill
bit 0, a
jr nz, .billsPC ;if you've met bill, use that bill's instead of someone's
ld hl, AccessedSomeonesPCText
@@ -86,7 +86,7 @@ BillsPC: ; 17ee4 (5:7ee4)
callba BillsPC_
ReloadMainMenu: ; 17f06 (5:7f06)
xor a
- ld [$CC3C], a
+ ld [wcc3c], a
call ReloadMapData
call UpdateSprites ;XXX: moves sprites
jp PCMainMenu
@@ -117,7 +117,7 @@ AccessedMyPCText: ; 17f32 (5:7f32)
; removes one of the specified item ID [$FFdb] from bag (if existent)
RemoveItemByID: ; 17f37 (5:7f37)
- ld hl, wBagItems ; $d31e
+ ld hl, wBagItems ; wd31e
ld a, [$ffdb]
ld b, a
xor a
@@ -135,8 +135,8 @@ RemoveItemByID: ; 17f37 (5:7f37)
jr .asm_17f40
.asm_17f4f
ld a, $1
- ld [$cf96], a
+ ld [wcf96], a
ld a, [$ffdc]
- ld [wWhichPokemon], a ; $cf92
- ld hl, wNumBagItems ; $d31d
+ ld [wWhichPokemon], a ; wWhichPokemon
+ ld hl, wNumBagItems ; wNumBagItems
jp RemoveItemFromInventory
diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm
index a89b745d..4ff1b16f 100755
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -1,12 +1,12 @@
PlayerPC: ; 78e6 (1:78e6)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld a, ITEM_NAME
ld [W_LISTTYPE], a
call SaveScreenTilesToBuffer1
xor a
- ld [$cc2c], a
- ld [$ccd3], a
+ ld [wcc2c], a
+ ld [wccd3], a
ld a, [wFlags_0xcd60]
bit 3, a
jr nz, Func_790c
@@ -16,8 +16,8 @@ PlayerPC: ; 78e6 (1:78e6)
call PrintText
Func_790c: ; 790c (1:790c)
- ld a, [$ccd3]
- ld [wCurrentMenuItem], a ; $cc26
+ ld a, [wccd3]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld hl, wFlags_0xcd60
set 5, [hl]
call LoadScreenTilesFromBuffer2
@@ -26,11 +26,10 @@ Func_790c: ; 790c (1:790c)
ld c, $e
call TextBoxBorder
call UpdateSprites
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, PlayersPCMenuEntries ; $7af5
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -43,18 +42,18 @@ Func_790c: ; 790c (1:790c)
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
bit 1, a
jp nz, Func_796d
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$ccd3], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wccd3], a
and a
jp z, Func_7a12
dec a
@@ -74,19 +73,19 @@ Func_796d: ; 796d (1:796d)
res 5, [hl]
call LoadScreenTilesFromBuffer2
xor a
- ld [wListScrollOffset], a ; $cc36
- ld [$cc2c], a
- ld hl, $d730
+ ld [wListScrollOffset], a ; wcc36
+ ld [wcc2c], a
+ ld hl, wd730
res 6, [hl]
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
Func_7995: ; 7995 (1:7995)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBagItems] ; $d31d
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBagItems] ; wNumBagItems
and a
jr nz, Func_79ab
ld hl, NothingToDepositText
@@ -96,21 +95,21 @@ Func_7995: ; 7995 (1:7995)
Func_79ab: ; 79ab (1:79ab)
ld hl, WhatToDepositText
call PrintText
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_79e7
ld hl, DepositHowManyText
@@ -119,14 +118,14 @@ Func_79ab: ; 79ab (1:79ab)
cp $ff
jp z, Func_79ab
.asm_79e7
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
call AddItemToInventory
jr c, .asm_79f8
ld hl, NoRoomToStoreText
call PrintText
jp Func_79ab
.asm_79f8
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -138,9 +137,9 @@ Func_79ab: ; 79ab (1:79ab)
Func_7a12: ; 7a12 (1:7a12)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBoxItems] ; $d53a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBoxItems] ; wNumBoxItems
and a
jr nz, Func_7a28
ld hl, NothingStoredText
@@ -150,21 +149,21 @@ Func_7a12: ; 7a12 (1:7a12)
Func_7a28: ; 7a28 (1:7a28)
ld hl, WhatToWithdrawText
call PrintText
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_7a64
ld hl, WithdrawHowManyText
@@ -173,14 +172,14 @@ Func_7a28: ; 7a28 (1:7a28)
cp $ff
jp z, Func_7a28
.asm_7a64
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
call AddItemToInventory
jr c, .asm_7a75
ld hl, CantCarryMoreText
call PrintText
jp Func_7a28
.asm_7a75
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -192,9 +191,9 @@ Func_7a28: ; 7a28 (1:7a28)
Func_7a8f: ; 7a8f (1:7a8f)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBoxItems] ; $d53a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBoxItems] ; wNumBoxItems
and a
jr nz, Func_7aa5
ld hl, NothingStoredText
@@ -204,15 +203,15 @@ Func_7a8f: ; 7a8f (1:7a8f)
Func_7aa5: ; 7aa5 (1:7aa5)
ld hl, WhatToTossText
call PrintText
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
push hl
call DisplayListMenuID
pop hl
@@ -221,11 +220,11 @@ Func_7aa5: ; 7aa5 (1:7aa5)
call IsKeyItem
pop hl
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_7aef
- ld a, [$cf91]
+ ld a, [wcf91]
call IsItemHM
jr c, .asm_7aef
push hl
diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm
index dbb9f57f..63e440f8 100755
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -1,4 +1,4 @@
-DisplayPokedexMenu_: ; 40000 (10:4000)
+ShowPokedexMenu: ; 40000 (10:4000)
call GBPalWhiteOut
call ClearScreen
call UpdateSprites ; move sprites
@@ -9,7 +9,7 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
ld [wListScrollOffset],a
ld [wLastMenuItem],a
inc a
- ld [$d11e],a
+ ld [wd11e],a
ld [$ffb7],a
.setUpGraphics
ld b,$08
@@ -22,7 +22,7 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
xor a
ld [hli],a ; top menu item X
inc a
- ld [$cc37],a
+ ld [wcc37],a
inc hl
inc hl
ld a,6
@@ -32,12 +32,12 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
jr c,.goToSideMenu ; if the player chose a pokemon from the list
.exitPokedex
xor a
- ld [$cc37],a
+ ld [wcc37],a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
ld [$ffb7],a
- ld [$cd3a],a
- ld [$cd3b],a
+ ld [wcd3a],a
+ ld [wcd3b],a
pop af
ld [wListScrollOffset],a
call GBPalWhiteOutWithDelay3
@@ -68,10 +68,10 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
push af
add b
inc a
- ld [$d11e],a
- ld a,[$d11e]
+ ld [wd11e],a
+ ld a,[wd11e]
push af
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
push af
ld hl,wPokedexSeen
call IsPokemonBitSet
@@ -91,7 +91,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld [hli],a ; menu watched keys (A button and B button)
xor a
ld [hli],a ; old menu item ID
- ld [$cc37],a
+ ld [wcc37],a
.handleMenuInput
call HandleMenuInput
bit 1,a ; was the B button pressed?
@@ -108,9 +108,9 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld b,1
.exitSideMenu
pop af
- ld [$cd3d],a
+ ld [wWhichTrade],a
pop af
- ld [$d11e],a
+ ld [wd11e],a
pop af
ld [wListScrollOffset],a
pop af
@@ -118,8 +118,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
pop af
ld [wCurrentMenuItem],a
push bc
- FuncCoord 0,3
- ld hl,Coord
+ hlCoord 0, 3
ld de,20
ld bc,$7f0d ; 13 blank tiles
call DrawTileLine ; cover up the menu cursor in the pokemon list
@@ -127,8 +126,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ret
.buttonBPressed
push bc
- FuncCoord 15,10
- ld hl,Coord
+ hlCoord 15, 10
ld de,20
ld bc,$7f07 ; 7 blank tiles
call DrawTileLine ; cover up the menu cursor in the side menu
@@ -140,13 +138,12 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
jr .exitSideMenu
; play pokemon cry
.choseCry
- ld a,[$d11e]
+ ld a,[wd11e]
call GetCryData ; get cry data
call PlaySound ; play sound
jr .handleMenuInput
.choseArea
- ld a,$4a
- call Predef ; display pokemon areas
+ predef LoadTownMap_Nest ; display pokemon areas
ld b,0
jr .exitSideMenu
@@ -156,53 +153,43 @@ HandlePokedexListMenu: ; 40111 (10:4111)
xor a
ld [H_AUTOBGTRANSFERENABLED],a
; draw the horizontal line separating the seen and owned amounts from the menu
- FuncCoord 15,8
- ld hl,Coord
+ hlCoord 15, 8
ld a,$7a ; horizontal line tile
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
- FuncCoord 14,0
- ld hl,Coord
+ hlCoord 14, 0
ld [hl],$71 ; vertical line tile
- FuncCoord 14,1
- ld hl,Coord
+ hlCoord 14, 1
call DrawPokedexVerticalLine
- FuncCoord 14,9
- ld hl,Coord
+ hlCoord 14, 9
call DrawPokedexVerticalLine
ld hl,wPokedexSeen
ld b,wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld de,$d11e
- FuncCoord 16,3
- ld hl,Coord
+ ld de,wd11e
+ hlCoord 16, 3
ld bc,$0103
call PrintNumber ; print number of seen pokemon
ld hl,wPokedexOwned
ld b,wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld de,$d11e
- FuncCoord 16,6
- ld hl,Coord
+ ld de,wd11e
+ hlCoord 16, 6
ld bc,$0103
call PrintNumber ; print number of owned pokemon
- FuncCoord 16,2
- ld hl,Coord
+ hlCoord 16, 2
ld de,PokedexSeenText
call PlaceString
- FuncCoord 16,5
- ld hl,Coord
+ hlCoord 16, 5
ld de,PokedexOwnText
call PlaceString
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
ld de,PokedexContentsText
call PlaceString
- FuncCoord 16,10
- ld hl,Coord
+ hlCoord 16, 10
ld de,PokedexMenuItemsText
call PlaceString
; find the highest pokedex number among the pokemon the player has seen
@@ -220,20 +207,18 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jr .maxSeenPokemonLoop
.storeMaxSeenPokemon
ld a,b
- ld [$cd3d],a ; max seen pokemon
+ ld [wWhichTrade],a ; max seen pokemon
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED],a
- FuncCoord 4,2
- ld hl,Coord
+ hlCoord 4, 2
ld bc,$0e0a
call ClearScreenArea
- FuncCoord 1,3
- ld hl,Coord
+ hlCoord 1, 3
ld a,[wListScrollOffset]
- ld [$d11e],a
+ ld [wd11e],a
ld d,7
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jr nc,.printPokemonLoop
ld d,a
@@ -242,15 +227,15 @@ HandlePokedexListMenu: ; 40111 (10:4111)
; loop to print pokemon pokedex numbers and names
; if the player has owned the pokemon, it puts a pokeball beside the name
.printPokemonLoop
- ld a,[$d11e]
+ ld a,[wd11e]
inc a
- ld [$d11e],a
+ ld [wd11e],a
push af
push de
push hl
ld de,-20
add hl,de
- ld de,$d11e
+ ld de,wd11e
ld bc,$8103
call PrintNumber ; print the pokedex number
ld de,20
@@ -285,7 +270,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
add hl,bc
pop de
pop af
- ld [$d11e],a
+ ld [wd11e],a
dec d
jr nz,.printPokemonLoop
ld a,01
@@ -309,7 +294,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 7,a ; was Down pressed?
jr z,.checkIfRightPressed
.downPressed ; scroll down one row
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jp c,.loop
sub a,7
@@ -324,7 +309,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 4,a ; was Right pressed?
jr z,.checkIfLeftPressed
.rightPressed ; scroll down 7 rows
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jp c,.loop
sub a,6
@@ -385,15 +370,14 @@ PokedexMenuItemsText: ; 402af (10:42af)
; tests if a pokemon's bit is set in the seen or owned pokemon bit fields
; INPUT:
-; [$d11e] = pokedex number
+; [wd11e] = pokedex number
; hl = address of bit field
IsPokemonBitSet: ; 402c2 (10:42c2)
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld c,a
ld b,2
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
ret
@@ -407,67 +391,56 @@ ShowPokedexData: ; 402d1 (10:42d1)
; function to display pokedex data from inside the pokedex
ShowPokedexDataInternal: ; 402e2 (10:42e2)
- ld hl,$d72c
+ ld hl,wd72c
set 1,[hl]
ld a,$33 ; 3/7 volume
ld [$ff24],a
call GBPalWhiteOut ; zero all palettes
call ClearScreen
- ld a,[$d11e] ; pokemon ID
- ld [$cf91],a
+ ld a,[wd11e] ; pokemon ID
+ ld [wcf91],a
push af
ld b,04
call GoPAL_SET
pop af
- ld [$d11e],a
+ ld [wd11e],a
ld a,[$ffd7]
push af
xor a
ld [$ffd7],a
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld de,1
ld bc,$6414
call DrawTileLine ; draw top border
- FuncCoord 0,17
- ld hl,Coord
+ hlCoord 0, 17
ld b,$6f
call DrawTileLine ; draw bottom border
- FuncCoord 0,1
- ld hl,Coord
+ hlCoord 0, 1
ld de,20
ld bc,$6610
call DrawTileLine ; draw left border
- FuncCoord 19,1
- ld hl,Coord
+ hlCoord 19, 1
ld b,$67
call DrawTileLine ; draw right border
- FuncCoord 0,0
ld a,$63 ; upper left corner tile
- ld [Coord],a
- FuncCoord 19,0
+ Coorda 0, 0
ld a,$65 ; upper right corner tile
- ld [Coord],a
- FuncCoord 0,17
+ Coorda 19, 0
ld a,$6c ; lower left corner tile
- ld [Coord],a
- FuncCoord 19,17
+ Coorda 0, 17
ld a,$6e ; lower right corner tile
- ld [Coord],a
- FuncCoord 0,9
- ld hl,Coord
+ Coorda 19, 17
+ hlCoord 0, 9
ld de,PokedexDataDividerLine
call PlaceString ; draw horizontal divider line
- FuncCoord 9,6
- ld hl,Coord
+ hlCoord 9, 6
ld de,HeightWeightText
call PlaceString
call GetMonName
- FuncCoord 9,2
- ld hl,Coord
+ hlCoord 9, 2
call PlaceString
ld hl,PokedexEntryPointers
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld e,a
ld d,0
@@ -476,30 +449,28 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld a,[hli]
ld e,a
ld d,[hl] ; de = address of pokedex entry
- FuncCoord 9,4
- ld hl,Coord
+ hlCoord 9, 4
call PlaceString ; print species name
ld h,b
ld l,c
push de
- ld a,[$d11e]
+ ld a,[wd11e]
push af
call IndexToPokedex
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
ld a, "№"
ld [hli],a
ld a,$f2
ld [hli],a
- ld de,$d11e
+ ld de,wd11e
ld bc,$8103
call PrintNumber ; print pokedex number
ld hl,wPokedexOwned
call IsPokemonBitSet
pop af
- ld [$d11e],a
- ld a,[$cf91]
- ld [$d0b5],a
+ ld [wd11e],a
+ ld a,[wcf91]
+ ld [wd0b5],a
pop de
push af
push bc
@@ -508,10 +479,9 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
call Delay3
call GBPalNormal
call GetMonHeader ; load pokemon picture location
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture
- ld a,[$cf91]
+ ld a,[wcf91]
call PlayCry ; play pokemon cry
pop hl
pop de
@@ -522,16 +492,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
jp z,.waitForButtonPress ; if the pokemon has not been owned, don't print the height, weight, or description
inc de ; de = address of feet (height)
ld a,[de] ; reads feet, but a is overwritten without being used
- FuncCoord 12,6
- ld hl,Coord
+ hlCoord 12, 6
ld bc,$0102
call PrintNumber ; print feet (height)
ld a,$60 ; feet symbol tile (one tick)
ld [hl],a
inc de
inc de ; de = address of inches (height)
- FuncCoord 15,6
- ld hl,Coord
+ hlCoord 15, 6
ld bc,$8102
call PrintNumber ; print inches (height)
ld a,$61 ; inches symbol tile (two ticks)
@@ -552,13 +520,11 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
dec de
ld a,[de] ; a = lower byte of weight
ld [hl],a ; store lower byte of weight in [$ff8c]
- FuncCoord 11,8
ld de,$ff8b
- ld hl,Coord
+ hlCoord 11, 8
ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits
call PrintNumber ; print weight
- FuncCoord 14,8
- ld hl,Coord
+ hlCoord 14, 8
ld a,[$ff8c]
sub a,10
ld a,[$ff8b]
@@ -576,15 +542,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld [$ff8b],a ; restore original value of [$ff8b]
pop hl
inc hl ; hl = address of pokedex description text
- FuncCoord 1,11
- ld bc,Coord
+ bcCoord 1, 11
ld a,2
ld [$fff4],a
call TextCommandProcessor ; print pokedex description text
xor a
ld [$fff4],a
.waitForButtonPress
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a,[$ffb5]
and a,%00000011 ; A button and B button
jr z,.waitForButtonPress
@@ -595,7 +560,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
call GoPAL_SET_CF1C
call LoadTextBoxTilePatterns
call GBPalNormal
- ld hl,$d72c
+ ld hl,wd72c
res 1,[hl]
ld a,$77 ; max volume
ld [$ff24],a
@@ -637,10 +602,10 @@ DrawTileLine: ; 40474 (10:4474)
INCLUDE "data/pokedex_entries.asm"
PokedexToIndex: ; 40ff9 (10:4ff9)
- ; converts the Pokédex number at $D11E to an index
+ ; converts the Pokédex number at wd11e to an index
push bc
push hl
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
ld c,0
ld hl,PokedexOrder
@@ -652,23 +617,23 @@ PokedexToIndex: ; 40ff9 (10:4ff9)
jr nz,.loop
ld a,c
- ld [$D11E],a
+ ld [wd11e],a
pop hl
pop bc
ret
IndexToPokedex: ; 41010 (10:5010)
- ; converts the indexédex number at $D11E to a Pokédex number
+ ; converts the indexédex number at wd11e to a Pokédex number
push bc
push hl
- ld a,[$D11E]
+ ld a,[wd11e]
dec a
ld hl,PokedexOrder
ld b,0
ld c,a
add hl,bc
ld a,[hl]
- ld [$D11E],a
+ ld [wd11e],a
pop hl
pop bc
ret
diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm
index 79de7029..141b9beb 100755
--- a/engine/menu/prize_menu.asm
+++ b/engine/menu/prize_menu.asm
@@ -5,25 +5,24 @@ CeladonPrizeMenu: ; 5271b (14:671b)
ld hl,RequireCoinCaseTextPtr
jp PrintText
.havingCoinCase
- ld hl,$D730
+ ld hl,wd730
set 6,[hl]
ld hl,ExchangeCoinsForPrizesTextPtr
call PrintText
; the following are the menu settings
xor a
- ld [$CC26],a
- ld [$CC2A],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
ld a,$03
- ld [$CC29],a
+ ld [wMenuWatchedKeys],a
ld a,$03
- ld [$CC28],a
+ ld [wMaxMenuItem],a
ld a,$04
- ld [$CC24],a
+ ld [wTopMenuItemY],a
ld a,$01
- ld [$CC25],a
+ ld [wTopMenuItemX],a
call PrintPrizePrice ; 687A
- FuncCoord 0,2
- ld hl,Coord
+ hlCoord 0, 2
ld b,$08
ld c,$10
call TextBoxBorder
@@ -34,12 +33,12 @@ CeladonPrizeMenu: ; 5271b (14:671b)
call HandleMenuInput ; menu choice handler
bit 1,a ; keypress = B (Cancel)
jr nz,.NoChoice
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
cp a,$03 ; "NO,THANKS" choice
jr z,.NoChoice
call HandlePrizeChoice ; 14:68C6
.NoChoice
- ld hl,$D730
+ ld hl,wd730
res 6,[hl]
ret
@@ -60,14 +59,14 @@ GetPrizeMenuId: ; 5278e (14:678e)
; determine which one among the three
; prize-texts has been selected
; using the text ID (stored in [$FF8C])
-; load the three prizes at $D13D-$D13F
-; load the three prices at $D141-$D146
+; load the three prizes at wd13d-wd13f
+; load the three prices at wd141-wd146
; display the three prizes' names
; (distinguishing between Pokemon names
; and Items (specifically TMs) names)
ld a,[$FF8C]
sub a,$03 ; prize-texts' id are 3, 4 and 5
- ld [$D12F],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
+ ld [wd12f],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
add a
add a
ld d,$00
@@ -85,59 +84,51 @@ GetPrizeMenuId: ; 5278e (14:678e)
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$D141
+ ld de,wd141
ld bc,$0006
call CopyData
- ld a,[$D12F]
+ ld a,[wd12f]
cp a,$02 ;is TM_menu?
jr nz,.putMonName
ld a,[W_PRIZE1]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,4
- ld hl,Coord
+ hlCoord 2, 4
call PlaceString
ld a,[W_PRIZE2]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,6
- ld hl,Coord
+ hlCoord 2, 6
call PlaceString
ld a,[W_PRIZE3]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
call PlaceString
jr .putNoThanksText
.putMonName ; 14:67EC
ld a,[W_PRIZE1]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,4
- ld hl,Coord
+ hlCoord 2, 4
call PlaceString
ld a,[W_PRIZE2]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,6
- ld hl,Coord
+ hlCoord 2, 6
call PlaceString
ld a,[W_PRIZE3]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
call PlaceString
.putNoThanksText ; 14:6819
- FuncCoord 2,10
- ld hl,Coord
+ hlCoord 2, 10
ld de,NoThanksText
call PlaceString
; put prices on the right side of the textbox
- ld de,$D141
- FuncCoord 13,5
- ld hl,Coord
+ ld de,wd141
+ hlCoord 13, 5
; reg. c:
; [low nybble] number of bytes
; [bit 765 = %100] space-padding (not zero-padding)
@@ -145,36 +136,30 @@ GetPrizeMenuId: ; 5278e (14:678e)
; Function $15CD displays BCD value (same routine
; used by text-command $02)
call PrintBCDNumber ; Print_BCD
- ld de,$D143
- FuncCoord 13,7
- ld hl,Coord
+ ld de,wd143
+ hlCoord 13, 7
ld c,(%1 << 7 | 2)
call PrintBCDNumber
- ld de,$D145
- FuncCoord 13,9
- ld hl,Coord
+ ld de,wd145
+ hlCoord 13, 9
ld c,(1 << 7 | 2)
jp PrintBCDNumber
INCLUDE "data/prizes.asm"
PrintPrizePrice: ; 5287a (14:687a)
- FuncCoord 11,0
- ld hl,Coord
+ hlCoord 11, 0
ld b,$01
ld c,$07
call TextBoxBorder
call UpdateSprites ; XXX save OAM?
- FuncCoord 12,0
- ld hl,Coord
+ hlCoord 12, 0
ld de,.CoinText
call PlaceString
- FuncCoord 13,1
- ld hl,Coord
+ hlCoord 13, 1
ld de,.SixSpacesText
call PlaceString
- FuncCoord 13,1
- ld hl,Coord
+ hlCoord 13, 1
ld de,wPlayerCoins
ld c,%10000010
call PrintBCDNumber
@@ -187,11 +172,11 @@ PrintPrizePrice: ; 5287a (14:687a)
db " @"
LoadCoinsToSubtract: ; 528b1 (14:68b1)
- ld a,[$D139] ; backup of selected menu_entry
+ ld a,[wd139] ; backup of selected menu_entry
add a
ld d,$00
ld e,a
- ld hl,$D141 ; first prize's price
+ ld hl,wd141 ; first prize's price
add hl,de ; get selected prize's price
xor a
ld [$FF9F],a
@@ -202,15 +187,15 @@ LoadCoinsToSubtract: ; 528b1 (14:68b1)
ret
HandlePrizeChoice: ; 528c6 (14:68c6)
- ld a,[$CC26] ; selected menu_entry
- ld [$D139],a
+ ld a,[wCurrentMenuItem] ; selected menu_entry
+ ld [wd139],a
ld d,$00
ld e,a
ld hl,W_PRIZE1
add hl,de
ld a,[hl]
- ld [$D11E],a
- ld a,[$D12F]
+ ld [wd11e],a
+ ld a,[wd12f]
cp a,$02 ; is prize a TM?
jr nz,.GetMonName
call GetItemName
@@ -221,16 +206,16 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
ld hl,SoYouWantPrizeTextPtr
call PrintText
call YesNoChoice ; yes/no textbox
- ld a,[$CC26] ; yes/no answer (Y=0, N=1)
+ ld a,[wCurrentMenuItem] ; yes/no answer (Y=0, N=1)
and a
jr nz,.PrintOhFineThen
call LoadCoinsToSubtract
call HasEnoughCoins
jr c,.NotEnoughCoins
- ld a,[$D12F]
+ ld a,[wd12f]
cp a,$02
jr nz,.GiveMon
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
ld a,1
ld c,a
@@ -238,8 +223,8 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
jr nc,.BagFull
jr .SubtractCoins
.GiveMon ; 14:6912
- ld a,[$D11E]
- ld [$CF91],a
+ ld a,[wd11e]
+ ld [wcf91],a
push af
call GetPrizeMonLevel ; 14:6977
ld c,a
@@ -247,7 +232,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
ld b,a
call GivePokemon
push af
- ld a,[$CCD3] ; XXX is there room?
+ ld a,[wccd3] ; XXX is there room?
and a
call z,WaitForTextScrollButtonPress
pop af
@@ -257,8 +242,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
ld hl,$FFA1
ld de,wPlayerCoins + 1
ld c,$02 ; how many bytes
- ld a,$0C
- call Predef ; subtract coins (BCD daa operations)
+ predef SubBCDPredef ; subtract coins (BCD daa operations)
jp PrintPrizePrice
.BagFull
ld hl,PrizeRoomBagIsFullTextPtr
@@ -299,7 +283,7 @@ OhFineThenTextPtr: ; 52971 (14:6971)
db "@"
GetPrizeMonLevel: ; 52977 (14:6977)
- ld a,[$CF91]
+ ld a,[wcf91]
ld b,a
ld hl,PrizeMonLevelDictionary
.loop ; 14:697E
@@ -310,7 +294,7 @@ GetPrizeMonLevel: ; 52977 (14:6977)
jr .loop
.matchFound ; 14:6985
ld a,[hl]
- ld [$D127],a
+ ld [W_CURENEMYLVL],a
ret
INCLUDE "data/prize_mon_levels.asm"
diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm
index 774f604d..be172a67 100755
--- a/engine/menu/start_menu.asm
+++ b/engine/menu/start_menu.asm
@@ -2,8 +2,8 @@ DisplayStartMenu:: ; 2acd (0:2acd)
ld a,$04 ; hardcoded Bank, not sure what's it refers to
ld [H_LOADEDROMBANK],a
ld [$2000],a ; ROM bank 4
- ld a,[$d700] ; walking/biking/surfing
- ld [$d11a],a
+ ld a,[wd700] ; walking/biking/surfing
+ ld [wd11a],a
ld a, (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound
call PlaySound
@@ -24,7 +24,7 @@ RedisplayStartMenu:: ; 2adf (0:2adf)
and a
jr nz,.loop
; if the player pressed tried to go past the top item, wrap around to the bottom
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,6 ; there are 7 menu items with the pokedex, so the max index is 6
jr nz,.wrapMenuItemId
@@ -37,7 +37,7 @@ RedisplayStartMenu:: ; 2adf (0:2adf)
bit 7,a
jr z,.buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,[wCurrentMenuItem]
ld c,7 ; there are 7 menu items with the pokedex
@@ -54,12 +54,12 @@ RedisplayStartMenu:: ; 2adf (0:2adf)
.buttonPressed ; A, B, or Start button pressed
call PlaceUnfilledArrowMenuCursor
ld a,[wCurrentMenuItem]
- ld [$cc2d],a ; save current menu item ID
+ ld [wcc2d],a ; save current menu item ID
ld a,b
and a,%00001010 ; was the Start button or B button pressed?
jp nz,CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,[wCurrentMenuItem]
jr nz,.displayMenuItem
@@ -80,8 +80,8 @@ RedisplayStartMenu:: ; 2adf (0:2adf)
; EXIT falls through to here
CloseStartMenu:: ; 2b70 (0:2b70)
- call GetJoypadState
- ld a,[H_NEWLYPRESSEDBUTTONS]
+ call Joypad
+ ld a,[hJoyPressed]
bit 0,a ; was A button newly pressed?
jr nz,CloseStartMenu
call LoadTextBoxTilePatterns
diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm
index 60893d81..7c6fe4d6 100755
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -1,6 +1,5 @@
StartMenu_Pokedex: ; 13095 (4:7095)
- ld a,$29
- call Predef
+ predef ShowPokedexMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
call Delay3
call LoadGBPal
@@ -8,19 +7,19 @@ StartMenu_Pokedex: ; 13095 (4:7095)
jp RedisplayStartMenu
StartMenu_Pokemon: ; 130a9 (4:70a9)
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
and a
jp z,RedisplayStartMenu
xor a
- ld [$cc35],a
- ld [$d07d],a
- ld [$cfcb],a
+ ld [wcc35],a
+ ld [wd07d],a
+ ld [wcfcb],a
call DisplayPartyMenu
jr .checkIfPokemonChosen
.loop
xor a
- ld [$cc35],a
- ld [$d07d],a
+ ld [wcc35],a
+ ld [wd07d],a
call GoBackToPartyMenu
.checkIfPokemonChosen
jr nc,.chosePokemon
@@ -32,9 +31,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
.chosePokemon
call SaveScreenTilesToBuffer1 ; save screen
ld a,$04
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; display pokemon menu options
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld bc,$020c ; max menu item ID, top menu item Y
ld e,5
.adjustMenuVariablesLoop
@@ -82,32 +81,30 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
jp z,.choseStats
ld c,a
ld b,0
- ld hl,$cd3d
+ ld hl,wWhichTrade
add hl,bc
jp .choseOutOfBattleMove
.choseSwitch
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
cp a,2 ; is there more than one pokemon in the party?
jp c,StartMenu_Pokemon ; if not, no switching
call SwitchPartyMon_Stats
ld a,$04 ; swap pokemon positions menu
- ld [$d07d],a
+ ld [wd07d],a
call GoBackToPartyMenu
jp .checkIfPokemonChosen
.choseStats
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [$cc49],a
- ld a,$36
- call Predef
- ld a,$37
- call Predef
+ ld [wcc49],a
+ predef StatusScreen
+ predef StatusScreen2
call ReloadMapData
jp StartMenu_Pokemon
.choseOutOfBattleMove
push hl
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
ld a,[hl]
@@ -138,26 +135,25 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
call CheckIfInOutsideMap
jr z,.canFly
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
ld hl,.cannotFlyHereText
call PrintText
jp .loop
.canFly
call ChooseFlyDestination
- ld a,[$d732]
+ ld a,[wd732]
bit 3,a ; did the player decide to fly?
jp nz,.goBackToMap
call LoadFontTilePatterns
- ld hl,$d72e
+ ld hl,wd72e
set 1,[hl]
jp StartMenu_Pokemon
.cut
bit 1,a ; does the player have the Cascade Badge?
jp z,.newBadgeRequired
- ld a,$3c
- call Predef
- ld a,[$cd6a]
+ predef UsedCut
+ ld a,[wcd6a]
and a
jp z,.loop
jp CloseTextDisplay
@@ -165,15 +161,15 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
bit 4,a ; does the player have the Soul Badge?
jp z,.newBadgeRequired
callba CheckForForcedBikeSurf
- ld hl,$d728
+ ld hl,wd728
bit 1,[hl]
res 1,[hl]
jp z,.loop
ld a,SURFBOARD
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -181,15 +177,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
.strength
bit 3,a ; does the player have the Rainbow Badge?
jp z,.newBadgeRequired
- ld a,$5b
- call Predef
+ predef PrintStrengthTxt
call GBPalWhiteOutWithDelay3
jp .goBackToMap
.flash
bit 0,a ; does the player have the Boulder Badge?
jp z,.newBadgeRequired
xor a
- ld [$d35d],a
+ ld [wd35d],a
ld hl,.flashLightsAreaText
call PrintText
call GBPalWhiteOutWithDelay3
@@ -199,10 +194,10 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
db "@"
.dig
ld a,ESCAPE_ROPE
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -211,7 +206,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
call CheckIfInOutsideMap
jr z,.canTeleport
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
ld hl,.cannotUseTeleportNowText
call PrintText
@@ -219,10 +214,10 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
.canTeleport
ld hl,.warpToLastPokemonCenterText
call PrintText
- ld hl,$d732
+ ld hl,wd732
set 3,[hl]
set 6,[hl]
- ld hl,$d72e
+ ld hl,wd72e
set 1,[hl]
res 4,[hl]
ld c,60
@@ -239,9 +234,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
TX_FAR _CannotFlyHereText
db "@"
.softboiled
- ld hl,W_PARTYMON1_MAXHP
+ ld hl,wPartyMon1MaxHP
ld a,[wWhichPokemon]
- ld bc,44
+ ld bc,wPartyMon2 - wPartyMon1
call AddNTimes
ld a,[hli]
ld [H_DIVIDEND],a
@@ -251,7 +246,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
ld [H_DIVISOR],a
ld b,2 ; number of bytes
call Divide
- ld bc,-33
+ ld bc,wPartyMon1HP - wPartyMon1MaxHP
add hl,bc
ld a,[hld]
ld b,a
@@ -261,14 +256,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
ld a,[H_QUOTIENT + 2]
sbc b
jp nc,.notHealthyEnough
- ld a,[$cc2b]
+ ld a,[wcc2b]
push af
ld a,POTION
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
pop af
- ld [$cc2b],a
+ ld [wcc2b],a
jp .loop
.notHealthyEnough ; if current HP is less than 1/5 of max HP
ld hl,.notHealthyEnoughText
@@ -290,8 +285,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
; writes a blank tile to all possible menu cursor positions on the party menu
ErasePartyMenuCursors: ; 132ed (4:72ed)
- FuncCoord 0,1
- ld hl,Coord
+ hlCoord 0, 1
ld bc,2 * 20 ; menu cursor positions are 2 rows apart
ld a,6 ; 6 menu cursor positions
.loop
@@ -314,19 +308,19 @@ StartMenu_Item: ; 13302 (4:7302)
jr .exitMenu
.notInLinkBattle
ld bc,wNumBagItems
- ld hl,$cf8b
+ ld hl,wcf8b
ld a,c
ld [hli],a
- ld [hl],b ; store item bag pointer at $cf8b (for DisplayListMenuID)
+ ld [hl],b ; store item bag pointer at wcf8b (for DisplayListMenuID)
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
- ld a,[$cc2c]
+ ld a,[wcc2c]
ld [wCurrentMenuItem],a
call DisplayListMenuID
ld a,[wCurrentMenuItem]
- ld [$cc2c],a
+ ld [wcc2c],a
jr nc,.choseItem
.exitMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
@@ -336,23 +330,19 @@ StartMenu_Item: ; 13302 (4:7302)
.choseItem
; erase menu cursor (blank each tile in front of an item name)
ld a," "
- FuncCoord 5,4
- ld [Coord],a
- FuncCoord 5,6
- ld [Coord],a
- FuncCoord 5,8
- ld [Coord],a
- FuncCoord 5,10
- ld [Coord],a
+ Coorda 5, 4
+ Coorda 5, 6
+ Coorda 5, 8
+ Coorda 5, 10
call PlaceUnfilledArrowMenuCursor
xor a
- ld [$cc35],a
- ld a,[$cf91]
+ ld [wcc35],a
+ ld a,[wcf91]
cp a,BICYCLE
jp z,.useOrTossItem
.notBicycle1
ld a,$06 ; use/toss menu
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID
ld hl,wTopMenuItemY
ld a,11
@@ -374,14 +364,14 @@ StartMenu_Item: ; 13302 (4:7302)
jr z,.useOrTossItem
jp ItemMenuLoop
.useOrTossItem ; if the player made the choice to use or toss the item
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
- ld a,[$cf91]
+ call CopyStringToCF4B ; copy name to wcf4b
+ ld a,[wcf91]
cp a,BICYCLE
jr nz,.notBicycle2
- ld a,[$d732]
+ ld a,[wd732]
bit 5,a
jr z,.useItem_closeMenu
ld hl,CannotGetOffHereText
@@ -392,15 +382,15 @@ StartMenu_Item: ; 13302 (4:7302)
and a
jr nz,.tossItem
.useItem
- ld [$d152],a
- ld a,[$cf91]
+ ld [wd152],a
+ ld a,[wcf91]
cp a,HM_01
jr nc,.useItem_partyMenu
ld hl,UsableItems_CloseMenu
ld de,1
call IsInArray
jr c,.useItem_closeMenu
- ld a,[$cf91]
+ ld a,[wcf91]
ld hl,UsableItems_PartyMenu
ld de,1
call IsInArray
@@ -409,34 +399,34 @@ StartMenu_Item: ; 13302 (4:7302)
jp ItemMenuLoop
.useItem_closeMenu
xor a
- ld [$d152],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,ItemMenuLoop
jp CloseStartMenu
.useItem_partyMenu
- ld a,[$cfcb]
+ ld a,[wcfcb]
push af
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
cp a,$02
jp z,.partyMenuNotDisplayed
call GBPalWhiteOutWithDelay3
call Func_3dbe
pop af
- ld [$cfcb],a
+ ld [wcfcb],a
jp StartMenu_Item
.partyMenuNotDisplayed
pop af
- ld [$cfcb],a
+ ld [wcfcb],a
jp ItemMenuLoop
.tossItem
call IsKeyItem
- ld a,[$d124]
+ ld a,[wd124]
and a
jr nz,.skipAskingQuantity
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
jr c,.skipAskingQuantity
call DisplayChooseQuantityMenu
@@ -515,8 +505,7 @@ StartMenu_TrainerInfo: ; 13460 (4:7460)
xor a
ld [$ffd7],a
call DrawTrainerInfo
- ld a,$2e
- call Predef ; draw badges
+ predef DrawBadges ; draw badges
ld b,$0d
call GoPAL_SET
call GBPalNormal
@@ -535,101 +524,89 @@ StartMenu_TrainerInfo: ; 13460 (4:7460)
DrawTrainerInfo: ; 1349a (4:749a)
ld de,RedPicFront
ld bc,(BANK(RedPicFront) << 8) | $01
- ld a,$3b
- call Predef
+ predef Predef3B
call DisableLCD
- FuncCoord 0,2
- ld hl,Coord
+ hlCoord 0, 2
ld a," "
call TrainerInfo_DrawVerticalLine
- FuncCoord 1,2
- ld hl,Coord
+ hlCoord 1, 2
call TrainerInfo_DrawVerticalLine
- ld hl,$9070
- ld de,$9000
- ld bc,$01c0
+ ld hl,vChars2 + $70
+ ld de,vChars2
+ ld bc,$70 * 4
call CopyData
ld hl,TrainerInfoTextBoxTileGraphics ; $7b98 ; trainer info text box tile patterns
- ld de,$9770
+ ld de,vChars2 + $770
ld bc,$0080
push bc
call TrainerInfo_FarCopyData
ld hl,BlankLeaderNames ; $7c28
- ld de,$9600
+ ld de,vChars2 + $600
ld bc,$0170
call TrainerInfo_FarCopyData
pop bc
ld hl,BadgeNumbersTileGraphics ; $7d98 ; badge number tile patterns
- ld de,$8d80
+ ld de,vChars1 + $580
call TrainerInfo_FarCopyData
ld hl,GymLeaderFaceAndBadgeTileGraphics ; $6a9e ; gym leader face and badge tile patterns
- ld de,$9200
+ ld de,vChars2 + $200
ld bc,$0400
ld a,$03
call FarCopyData2
ld hl,TextBoxGraphics ; $6288
ld de,$00d0
add hl,de ; hl = colon tile pattern
- ld de,$8d60
+ ld de,vChars1 + $560
ld bc,$0010
ld a,$04
push bc
call FarCopyData2
pop bc
ld hl,TrainerInfoTextBoxTileGraphics + $80 ; $7c18 ; background tile pattern
- ld de,$8d70
+ ld de,vChars1 + $570
call TrainerInfo_FarCopyData
call EnableLCD
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld a,18 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
call TrainerInfo_DrawTextBox
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld a,16 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],3
- FuncCoord 1,10
- ld hl,Coord
+ hlCoord 1, 10
call TrainerInfo_DrawTextBox
- FuncCoord 0,10
- ld hl,Coord
+ hlCoord 0, 10
ld a,$d7
call TrainerInfo_DrawVerticalLine
- FuncCoord 19,10
- ld hl,Coord
+ hlCoord 19, 10
call TrainerInfo_DrawVerticalLine
- FuncCoord 6,9
- ld hl,Coord
+ hlCoord 6, 9
ld de,TrainerInfo_BadgesText
call PlaceString
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,TrainerInfo_NameMoneyTimeText
call PlaceString
- FuncCoord 7,2
- ld hl,Coord
- ld de,W_PLAYERNAME
+ hlCoord 7, 2
+ ld de,wPlayerName
call PlaceString
- FuncCoord 8,4
- ld hl,Coord
+ hlCoord 8, 4
ld de,wPlayerMoney
ld c,$e3
call PrintBCDNumber
- FuncCoord 9,6
- ld hl,Coord
- ld de,$da41 ; hours
+ hlCoord 9, 6
+ ld de,W_PLAYTIMEHOURS + 1 ; hours
ld bc,$4103
call PrintNumber
ld [hl],$d6 ; colon tile ID
inc hl
- ld de,$da43 ; minutes
+ ld de,W_PLAYTIMEMINUTES + 1 ; minutes
ld bc,$8102
jp PrintNumber
@@ -650,15 +627,15 @@ TrainerInfo_BadgesText: ; 13597 (4:7597)
; height is always 6
; INPUT:
; hl = destination address
-; [$cd3d] = width + 1
-; [$cd3e] = width
-; [$cd3f] = distance from the end of a text box row to the start of the next
+; [wWhichTrade] = width + 1
+; [wTrainerEngageDistance] = width
+; [wTrainerFacingDirection] = distance from the end of a text box row to the start of the next
TrainerInfo_DrawTextBox: ; 135a0 (4:75a0)
ld a,$79 ; upper left corner tile ID
ld de,$7a7b ; top edge and upper right corner tile ID's
call TrainerInfo_DrawHorizontalEdge ; draw top edge
call TrainerInfo_NextTextBoxRow
- ld a,[$cd3d] ; width of the text box plus one
+ ld a,[wWhichTrade] ; width of the text box plus one
ld e,a
ld d,0
ld c,6 ; height of the text box
@@ -674,7 +651,7 @@ TrainerInfo_DrawTextBox: ; 135a0 (4:75a0)
TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3)
ld [hli],a ; place left corner tile
- ld a,[$cd3e] ; width of the text box
+ ld a,[wTrainerEngageDistance] ; width of the text box
ld c,a
ld a,d
.loop
@@ -686,7 +663,7 @@ TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3)
ret
TrainerInfo_NextTextBoxRow: ; 135d0 (4:75d0)
- ld a,[$cd3f] ; distance to the start of the next row
+ ld a,[wTrainerFacingDirection] ; distance to the start of the next row
.loop
inc hl
dec a
@@ -708,11 +685,10 @@ TrainerInfo_DrawVerticalLine: ; 135d8 (4:75d8)
ret
StartMenu_SaveReset: ; 135e3 (4:75e3)
- ld a,[$d72e]
+ ld a,[wd72e]
bit 6,a ; is the player using the link feature?
- jp nz,InitGame
- ld a,$3f
- call Predef ; save the game
+ jp nz,Init
+ predef SaveSAV ; save the game
call LoadScreenTilesFromBuffer2 ; restore saved screen
jp HoldTextDisplayOpen
@@ -729,9 +705,9 @@ StartMenu_Option: ; 135f6 (4:75f6)
SwitchPartyMon: ; 13613 (4:7613)
call SwitchPartyMon_Stats
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call SwitchPartyMon_OAM
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SwitchPartyMon_OAM
jp RedrawPartyMenu_
@@ -762,42 +738,42 @@ SwitchPartyMon_OAM: ; 13625 (4:7625)
jp PlaySound
SwitchPartyMon_Stats: ; 13653 (4:7653)
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr nz, .asm_13661
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
inc a
- ld [$cc35], a
+ ld [wcc35], a
ret
.asm_13661
xor a
- ld [$d07d], a
- ld a, [$cc35]
+ ld [wd07d], a
+ ld a, [wcc35]
dec a
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
- ld [wWhichTrade], a ; $cd3d
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wWhichTrade], a ; wWhichTrade
cp b
jr nz, .asm_1367b
xor a
- ld [$cc35], a
- ld [$d07d], a
+ ld [wcc35], a
+ ld [wd07d], a
ret
.asm_1367b
ld a, b
- ld [$cc35], a
+ ld [wcc35], a
push hl
push de
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld d, h
ld e, l
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add l
ld l, a
jr nc, .asm_1368e
inc h
.asm_1368e
- ld a, [$cc35]
+ ld a, [wcc35]
add e
ld e, a
jr nc, .asm_13696
@@ -809,67 +785,67 @@ SwitchPartyMon_Stats: ; 13653 (4:7653)
ld [hl], a
ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
ld [de], a
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld bc, $2c
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call AddNTimes
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $2c
call CopyData
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
ld bc, $2c
- ld a, [$cc35]
+ ld a, [wcc35]
call AddNTimes
pop de
push hl
ld bc, $2c
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $2c
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SkipFixedLengthTextEntries
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [$cc35]
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wcc35]
call SkipFixedLengthTextEntries
pop de
push hl
ld bc, $b
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SkipFixedLengthTextEntries
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [$cc35]
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wcc35]
call SkipFixedLengthTextEntries
pop de
push hl
ld bc, $b
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $b
call CopyData
- ld a, [$cc35]
- ld [wWhichTrade], a ; $cd3d
+ ld a, [wcc35]
+ ld [wWhichTrade], a ; wWhichTrade
xor a
- ld [$cc35], a
- ld [$d07d], a
+ ld [wcc35], a
+ ld [wd07d], a
pop de
pop hl
ret
diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm
index cfce493e..65b06e9d 100755
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -1,18 +1,18 @@
; Predef 0x37
StatusScreen: ; 12953 (4:6953)
call LoadMonData
- ld a, [$cc49]
+ ld a, [wcc49]
cp $2 ; 2 means we're in a PC box
jr c, .DontRecalculate ; 0x1295b $14
- ld a, [$cf9b]
- ld [$cfb9], a
- ld [$d127], a
- ld hl, $cfa8
- ld de, $cfba
+ ld a, [wcf9b]
+ ld [wcfb9], a
+ ld [W_CURENEMYLVL], a
+ ld hl, wcfa8
+ ld de, wcfba
ld b, $1
call CalcStats ; Recalculate stats
.DontRecalculate
- ld hl, $d72c
+ ld hl, wd72c
set 1, [hl]
ld a, $33
ld [$ff24], a ; Reduce the volume
@@ -21,27 +21,26 @@ StatusScreen: ; 12953 (4:6953)
call UpdateSprites ; move sprites (?)
call LoadHpBarAndStatusTilePatterns
ld de, BattleHudTiles1 ; $6080 ; source
- ld hl, $96d0 ; dest
+ ld hl, vChars2 + $6d0 ; dest
ld bc, (BANK(BattleHudTiles1) << 8) + $03 ; bank bytes/8
call CopyVideoDataDouble ; ·│ :L and halfarrow line end
ld de, BattleHudTiles2 ; $6098
- ld hl, $9780
+ ld hl, vChars2 + $780
ld bc, (BANK(BattleHudTiles2) << 8) + $01
call CopyVideoDataDouble ; │
ld de, BattleHudTiles3 ; $60b0
- ld hl, $9760
+ ld hl, vChars2 + $760
ld bc, (BANK(BattleHudTiles3) << 8) + $02
call CopyVideoDataDouble ; ─┘
ld de, PTile
- ld hl, $9720
+ ld hl, vChars2 + $720
ld bc,(BANK(PTile) << 8 | $01)
call CopyVideoDataDouble ; P (for PP), inline
ld a, [$ffd7]
push af
xor a
ld [$ffd7], a
- FuncCoord 19,1
- ld hl, Coord
+ hlCoord 19, 1
ld bc, $060a
call DrawLineBox ; Draws the box around name, HP and status
ld de, $fffa
@@ -49,86 +48,71 @@ StatusScreen: ; 12953 (4:6953)
ld [hl], $f2 ; . after No ("." is a different one)
dec hl
ld [hl], "№"
- FuncCoord 19,9
- ld hl, Coord
+ hlCoord 19, 9
ld bc, $0806
call DrawLineBox ; Draws the box around types, ID No. and OT
- FuncCoord 10,9
- ld hl, Coord
+ hlCoord 10, 9
ld de, Type1Text
call PlaceString ; "TYPE1/"
- FuncCoord 11,3
- ld hl, Coord
- PREDEF DrawHPBarPredef ; predef $5f
- ld hl, $cf25
+ hlCoord 11, 3
+ predef DrawHP ; predef $5f
+ ld hl, wcf25
call GetHealthBarColor
ld b, $3
call GoPAL_SET ; SGB palette
- FuncCoord 16,6
- ld hl, Coord
- ld de, $cf9c
+ hlCoord 16, 6
+ ld de, wcf9c
call PrintStatusCondition
jr nz, .StatusWritten ; 0x129fc $9
- FuncCoord 16,6
- ld hl, Coord
+ hlCoord 16, 6
ld de, OKText
call PlaceString ; "OK"
.StatusWritten
- FuncCoord 9,6
- ld hl, Coord
+ hlCoord 9, 6
ld de, StatusText
call PlaceString ; "STATUS/"
- FuncCoord 14,2
- ld hl, Coord
+ hlCoord 14, 2
call PrintLevel ; Pokémon level
- ld a, [$d0b8]
- ld [$d11e], a
- ld [$d0b5], a
- ld a, $3a
- call Predef
- FuncCoord 3,7
- ld hl, Coord
- ld de, $d11e
+ ld a, [W_MONHDEXNUM]
+ ld [wd11e], a
+ ld [wd0b5], a
+ predef IndexToPokedex
+ hlCoord 3, 7
+ ld de, wd11e
ld bc, $8103 ; Zero-padded, 3
call PrintNumber ; Pokémon no.
- FuncCoord 11,10
- ld hl, Coord
- ld a, $4b
- call Predef ; Prints the type (?)
+ hlCoord 11, 10
+ predef Func_27d6b ; Prints the type (?)
ld hl, NamePointers2 ; $6a9d
call .unk_12a7e
ld d, h
ld e, l
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call PlaceString ; Pokémon name
ld hl, OTPointers ; $6a95
call .unk_12a7e
ld d, h
ld e, l
- FuncCoord 12,16
- ld hl, Coord
+ hlCoord 12, 16
call PlaceString ; OT
- FuncCoord 12,14
- ld hl, Coord
- ld de, $cfa4
+ hlCoord 12, 14
+ ld de, wcfa4
ld bc, $8205 ; 5
call PrintNumber ; ID Number
ld d, $0
call PrintStatsBox
call Delay3
call GBPalNormal
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry ; play Pokémon cry
call WaitForTextScrollButtonPress ; wait for button
pop af
ld [$ffd7], a
ret
.unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers?
- ld a, [$cc49]
+ ld a, [wcc49]
add a
ld c, a
ld b, $0
@@ -136,22 +120,22 @@ StatusScreen: ; 12953 (4:6953)
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [$cc49]
+ ld a, [wcc49]
cp $3
ret z
ld a, [wWhichPokemon]
jp SkipFixedLengthTextEntries
OTPointers: ; 12a95 (4:6a95)
- dw W_PARTYMON1OT
- dw W_ENEMYMON1OT
- dw W_BOXMON1OT
+ dw wPartyMonOT
+ dw wEnemyMonOT
+ dw wBoxMonOT
dw W_DAYCAREMONOT
NamePointers2: ; 12a9d (4:6a9d)
- dw W_PARTYMON1NAME
- dw W_ENEMYMON1NAME
- dw W_BOXMON1NAME
+ dw wPartyMonNicks
+ dw wEnemyMonNicks
+ dw wBoxMonNicks
dw W_DAYCAREMONNAME
Type1Text: ; 12aa5 (4:6aa5)
@@ -197,23 +181,19 @@ PrintStatsBox: ; 12ae4 (4:6ae4)
ld a, d
and a ; a is 0 from the status screen
jr nz, .DifferentBox ; 0x12ae6 $12
- FuncCoord 0,8
- ld hl, Coord
+ hlCoord 0, 8
ld b, $8
ld c, $8
call TextBoxBorder ; Draws the box
- FuncCoord 1,9 ; Start printing stats from here
- ld hl, Coord
+ hlCoord 1, 9 ; Start printing stats from here
ld bc, $0019 ; Number offset
jr .PrintStats ; 0x12af8 $10
.DifferentBox
- FuncCoord 9,2
- ld hl, Coord
+ hlCoord 9, 2
ld b, $8
ld c, $9
call TextBoxBorder
- FuncCoord 11, 3 ; $c3e7
- ld hl, Coord
+ hlCoord 11, 3
ld bc, $0018
.PrintStats
push bc
@@ -223,14 +203,14 @@ PrintStatsBox: ; 12ae4 (4:6ae4)
pop hl
pop bc
add hl, bc
- ld de, $cfbc
+ ld de, wcfbc
ld bc, $0203 ; three digits
call PrintStat
- ld de, $cfbe
+ ld de, wcfbe
call PrintStat
- ld de, $cfc0
+ ld de, wcfc0
call PrintStat
- ld de, $cfc2
+ ld de, wcfc2
jp PrintNumber
PrintStat
push hl
@@ -253,37 +233,32 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [$ffd7], a
ld [$ffba], a
ld bc, $0005
- ld hl, $d0dc
+ ld hl, wd0dc
call FillMemory
- ld hl, $cfa0
- ld de, $d0dc
+ ld hl, wcfa0
+ ld de, wd0dc
ld bc, $0004
call CopyData
callab Func_39b87
- FuncCoord 9,2
- ld hl, Coord
+ hlCoord 9, 2
ld bc, $050a
call ClearScreenArea ; Clear under name
- FuncCoord 19, 3 ; $c3ef
- ld hl, Coord
+ hlCoord 19, 3
ld [hl], $78
- FuncCoord 0,8
- ld hl, Coord
+ hlCoord 0, 8
ld b, $8
ld c, $12
call TextBoxBorder ; Draw move container
- FuncCoord 2,9
- ld hl, Coord
- ld de, $d0e1
+ hlCoord 2, 9
+ ld de, wd0e1
call PlaceString ; Print moves
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
ld c, a
ld a, $4
sub c
ld b, a ; Number of moves ?
- FuncCoord 11,10
- ld hl, Coord
+ hlCoord 11, 10
ld de, $0028
ld a, $72
call Func_12ccb ; Print "PP"
@@ -294,9 +269,8 @@ StatusScreen2: ; 12b57 (4:6b57)
ld a, "-"
call Func_12ccb ; Fill the rest with --
.InitPP ; 12bbb
- ld hl, $cfa0
- FuncCoord 14,10
- ld de, Coord
+ ld hl, wcfa0
+ deCoord 14, 10
ld b, $0
.PrintPP ; 12bc3
ld a, [hli]
@@ -322,16 +296,16 @@ StatusScreen2: ; 12b57 (4:6b57)
add hl, bc
ld a, [hl]
and $3f
- ld [$cd71], a
+ ld [wcd71], a
ld h, d
ld l, e
push hl
- ld de, $cd71
+ ld de, wcd71
ld bc, $0102
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, $d11e
+ ld de, wd11e
ld bc, $0102
call PrintNumber
pop hl
@@ -346,47 +320,40 @@ StatusScreen2: ; 12b57 (4:6b57)
cp $4
jr nz, .PrintPP ; 0x12c0f $b2
.PPDone
- FuncCoord 9,3
- ld hl, Coord
+ hlCoord 9, 3
ld de, EXPPointsText
call PlaceString
- ld a, [$cfb9] ; level
+ ld a, [wcfb9] ; level
push af
- cp 100
+ cp MAX_LEVEL
jr z, .Level100 ; 0x12c20 $4
inc a
- ld [$cfb9], a ; Increase temporarily if not 100
+ ld [wcfb9], a ; Increase temporarily if not 100
.Level100
- FuncCoord 14,6
- ld hl, Coord
+ hlCoord 14, 6
ld [hl], $70 ; 1-tile "to"
inc hl
inc hl
call PrintLevel
pop af
- ld [$cfb9], a
- ld de, $cfa6
- FuncCoord 12,4
- ld hl, Coord
+ ld [wcfb9], a
+ ld de, wcfa6
+ hlCoord 12, 4
ld bc, $0307
call PrintNumber ; exp
call .asm_12c86
- ld de, $cfa6
- FuncCoord 7,6
- ld hl, Coord
+ ld de, wcfa6
+ hlCoord 7, 6
ld bc, $0307
call PrintNumber
- FuncCoord 9,0
- ld hl, Coord
+ hlCoord 9, 0
call Func_12cc3
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call Func_12cc3
- ld a, [$d0b8]
- ld [$d11e], a
+ ld a, [W_MONHDEXNUM]
+ ld [wd11e], a
call GetMonName
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call PlaceString
ld a, $1
ld [$ffba], a
@@ -394,20 +361,20 @@ StatusScreen2: ; 12b57 (4:6b57)
call WaitForTextScrollButtonPress ; wait for button
pop af
ld [$ffd7], a
- ld hl, $d72c
+ ld hl, wd72c
res 1, [hl]
ld a, $77
ld [$ff24], a
call GBPalWhiteOut
jp ClearScreen
.asm_12c86 ; This does some magic with lvl/exp?
- ld a, [$cfb9] ; Load level
- cp $64
+ ld a, [wcfb9] ; Load level
+ cp MAX_LEVEL
jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100
inc a
ld d, a
callab CalcExperience
- ld hl, $cfa8
+ ld hl, wcfa8
ld a, [$ff98]
sub [hl]
ld [hld], a
@@ -419,7 +386,7 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [hld], a
ret
.asm_12ca7
- ld hl, $cfa6
+ ld hl, wcfa6
xor a
ld [hli], a
ld [hli], a
diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm
index 1f0ed084..c2968e2f 100755
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -2,41 +2,38 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, VendingMachineText1
call PrintText
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $3
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $5
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld hl, $d730
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld hl, wd730
set 6, [hl]
- FuncCoord 0, 3 ; $c3dc
- ld hl, Coord
+ hlCoord 0, 3
ld b, $8
ld c, $c
call TextBoxBorder
call UpdateSprites
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
ld de, DrinkText
call PlaceString
- FuncCoord 9, 6 ; $c421
- ld hl, Coord
+ hlCoord 9, 6
ld de, DrinkPriceText
call PlaceString
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call HandleMenuInput
bit 1, a
jr nz, .asm_74f93
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $3
jr z, .asm_74f93
xor a
@@ -69,12 +66,11 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, VendingMachineText5
call PrintText
ld hl, $ffde
- ld de, wPlayerMoney + 2 ; $d349
+ ld de, wPlayerMoney + 2 ; wd349
ld c, $3
- ld a, $c
- call Predef ; indirect jump to Func_f836 (f836 (3:7836))
+ predef SubBCDPredef
ld a, $13
- ld [$d125], a
+ ld [wd125], a
jp DisplayTextBoxID
.BagFull
ld hl, VendingMachineText6
@@ -116,7 +112,7 @@ VendingMachineText7: ; 74fe2 (1d:4fe2)
Func_74fe7: ; 74fe7 (1d:4fe7)
ld hl, VendingPrices
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
add a
add a
ld d, $0
diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm
index eb95d9bd..e05bdd55 100755
--- a/engine/mon_party_sprites.asm
+++ b/engine/mon_party_sprites.asm
@@ -1,16 +1,16 @@
AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7)
xor a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld b, a
inc a
jr GetAnimationSpeed
-; $cf1f contains the party mon's health bar colors
+; wcf1f contains the party mon's health bar colors
; 0: green
; 1: yellow
; 2: red
AnimatePartyMon: ; 716ff (1c:56ff)
- ld hl, $cf1f
+ ld hl, wcf1f
ld a, [wCurrentMenuItem]
ld c, a
ld b, $0
@@ -21,13 +21,13 @@ GetAnimationSpeed: ; 7170a (1c:570a)
ld c, a
ld hl, PartyMonSpeeds
add hl, bc
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
add [hl]
ld c, a
add a
ld b, a
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
and a
jr z, .resetSprites
cp c
@@ -38,11 +38,11 @@ GetAnimationSpeed: ; 7170a (1c:570a)
jr nz, .resetTimer
xor a
.resetTimer
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp DelayFrame
.resetSprites
push bc
- ld hl, $cc5b
+ ld hl, wcc5b
ld de, wOAMBuffer
ld bc, $60
call CopyData
@@ -51,7 +51,7 @@ GetAnimationSpeed: ; 7170a (1c:570a)
jr .incTimer
.animateSprite
push bc
- ld hl, $c302 ; OAM tile id
+ ld hl, wOAMBuffer + $02 ; OAM tile id
ld bc, $10
ld a, [wCurrentMenuItem]
call AddNTimes
@@ -156,155 +156,155 @@ MonPartySpritePointers: ; 717c0 (1c:57c0)
dw SlowbroSprite + $c0
db $40 / $10 ; 40 bytes
db BANK(SlowbroSprite)
- dw $8000
+ dw vSprites
dw BallSprite
db $80 / $10 ; $80 bytes
db BANK(BallSprite)
- dw $8040
+ dw vSprites + $40
dw ClefairySprite + $c0
db $40 / $10 ; $40 bytes
db BANK(ClefairySprite)
- dw $80C0
+ dw vSprites + $c0
dw BirdSprite + $c0
db $40 / $10 ; $40 bytes
db BANK(BirdSprite)
- dw $8100
+ dw vSprites + $100
dw SeelSprite
db $40 / $10 ; $40 bytes
db BANK(SeelSprite)
- dw $8140
+ dw vSprites + $140
dw MonPartySprites + $40
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8180
+ dw vSprites + $180
dw MonPartySprites + $50
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81A0
+ dw vSprites + $1a0
dw MonPartySprites + $60
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81C0
+ dw vSprites + $1c0
dw MonPartySprites + $70
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81E0
+ dw vSprites + $1e0
dw MonPartySprites + $80
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8200
+ dw vSprites + $200
dw MonPartySprites + $90
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8220
+ dw vSprites + $220
dw MonPartySprites + $A0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8240
+ dw vSprites + $240
dw MonPartySprites + $B0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8260
+ dw vSprites + $260
dw MonPartySprites + $100
db $40 / $10 ; $40 bytes
db BANK(MonPartySprites)
- dw $8380
+ dw vSprites + $380
dw SlowbroSprite
db $40 / $10 ; $40 bytes
db BANK(SlowbroSprite)
- dw $8400
+ dw vSprites + $400
dw BallSprite
db $80 / $10 ; $80 bytes
db BANK(BallSprite)
- dw $8440
+ dw vSprites + $440
dw ClefairySprite
db $40 / $10 ; $40 bytes
db BANK(ClefairySprite)
- dw $84C0
+ dw vSprites + $4c0
dw BirdSprite
db $40 / $10 ; $40 bytes
db BANK(BirdSprite)
- dw $8500
+ dw vSprites + $500
dw SeelSprite + $C0
db $40 / $10 ; $40 bytes
db BANK(SeelSprite)
- dw $8540
+ dw vSprites + $540
dw MonPartySprites
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8580
+ dw vSprites + $580
dw MonPartySprites + $10
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85A0
+ dw vSprites + $5a0
dw MonPartySprites + $20
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85C0
+ dw vSprites + $5c0
dw MonPartySprites + $30
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85E0
+ dw vSprites + $5E0
dw MonPartySprites + $C0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8600
+ dw vSprites + $600
dw MonPartySprites + $D0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8620
+ dw vSprites + $620
dw MonPartySprites + $E0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8640
+ dw vSprites + $640
dw MonPartySprites + $F0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8660
+ dw vSprites + $660
dw MonPartySprites + $140
db $40 / $10 ; $40 bytes
db BANK(MonPartySprites)
- dw $8780
+ dw vSprites + $780
Func_71868: ; 71868 (1c:5868)
push hl
push de
push bc
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call GetPartyMonSpriteID
- ld [$cd5b], a
+ ld [wcd5b], a
call Func_718c3
pop bc
pop de
@@ -314,23 +314,23 @@ Func_71868: ; 71868 (1c:5868)
Func_71882: ; 71882 (1c:5882)
xor a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, [$cd5d]
+ ld a, [wcd5d]
call GetPartyMonSpriteID
- ld [$cd5b], a
+ ld [wcd5b], a
jr Func_718c3
Func_71890: ; 71890 (1c:5890)
- ld a, [$cf91]
+ ld a, [wcf91]
call GetPartyMonSpriteID
push af
- ld hl, $8000
+ ld hl, vSprites
call Func_718ac
pop af
add $54
- ld hl, $8040
+ ld hl, vSprites + $40
call Func_718ac
xor a
- ld [$cd5d], a
+ ld [wcd5d], a
jr Func_71882
Func_718ac: ; 718ac (1c:58ac)
@@ -356,7 +356,7 @@ Func_718ac: ; 718ac (1c:58ac)
Func_718c3: ; 718c3 (1c:58c3)
push af
ld c, $10
- ld h, $c3
+ ld h, wOAMBuffer / $100
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
swap a
ld l, a
@@ -371,15 +371,14 @@ Func_718c3: ; 718c3 (1c:58c3)
call Func_71281
.asm_718dd
ld hl, wOAMBuffer
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $60
jp CopyData
GetPartyMonSpriteID: ; 718e9 (1c:58e9)
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
ld c, a
dec a
srl a
diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm
index a671c553..e54741f2 100755
--- a/engine/oak_speech.asm
+++ b/engine/oak_speech.asm
@@ -1,11 +1,11 @@
SetDefaultNames: ; 60ca (1:60ca)
- ld a, [$d358]
+ ld a, [wd358]
push af
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
push af
- ld a, [$d732]
+ ld a, [wd732]
push af
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
ld bc, $d8a
xor a
call FillMemory
@@ -14,20 +14,20 @@ SetDefaultNames: ; 60ca (1:60ca)
xor a
call FillMemory
pop af
- ld [$d732], a
+ ld [wd732], a
pop af
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
pop af
- ld [$d358], a
- ld a, [$d08a]
+ ld [wd358], a
+ ld a, [wd08a]
and a
call z, Func_5bff
ld hl, NintenText
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
ld hl, SonyText
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
ld bc, $b
jp CopyData
@@ -41,20 +41,19 @@ OakSpeech: ; 6115 (1:6115)
call ClearScreen
call LoadTextBoxTilePatterns
call SetDefaultNames
- ld a,$18
- call Predef ; indirect jump to InitializePlayerData
- ld hl,$D53A
+ predef InitPlayerData2
+ ld hl,wNumBoxItems
ld a,POTION
- ld [$CF91],a
+ ld [wcf91],a
ld a,1
- ld [$CF96],a
+ ld [wcf96],a
call AddItemToInventory ; give one potion
- ld a,[$D07C]
- ld [$D71A],a
+ ld a,[W_ANIMATIONID]
+ ld [wd71a],a
call Func_62ce
xor a
ld [$FFD7],a
- ld a,[$D732]
+ ld a,[wd732]
bit 1,a ; XXX when is bit 1 set?
jp nz,Func_61bc ; easter egg: skip the intro
ld de,ProfOakPic
@@ -66,11 +65,10 @@ OakSpeech: ; 6115 (1:6115)
call GBFadeOut2
call ClearScreen
ld a,NIDORINO
- ld [$D0B5],a ; pic displayed is stored at this location
- ld [$CF91],a
+ ld [wd0b5],a ; pic displayed is stored at this location
+ ld [wcf91],a
call GetMonHeader ; this is also related to the pic
- FuncCoord 6, 4 ; $c3f6
- ld hl,Coord ; position on tilemap the pic is displayed
+ hlCoord 6, 4 ; position on tilemap the pic is displayed
call LoadFlippedFrontSpriteByMonIndex ; displays pic?
call MovePicLeft
ld hl,OakSpeechText2
@@ -101,7 +99,7 @@ Func_61bc: ; 61bc (1:61bc)
ld bc,(Bank(RedPicFront) << 8) | $00
call IntroPredef3B
call GBFadeIn2
- ld a,[$D72D]
+ ld a,[wd72d]
and a
jr nz,.next
ld hl,OakSpeechText3
@@ -117,7 +115,7 @@ Func_61bc: ; 61bc (1:61bc)
ld c,4
call DelayFrames
ld de,RedSprite ; $4180
- ld hl,$8000
+ ld hl,vSprites
ld bc,(BANK(RedSprite) << 8) | $0C
call CopyVideoData
ld de,ShrinkPic1
@@ -131,27 +129,26 @@ Func_61bc: ; 61bc (1:61bc)
call ResetPlayerSpriteData
ld a,[H_LOADEDROMBANK]
push af
- ld a,2
- ld [$C0EF],a
- ld [$C0F0],a
+ ld a, BANK(Music_PalletTown)
+ ld [wc0ef],a
+ ld [wc0f0],a
ld a,$A
ld [wMusicHeaderPointer],a
ld a,$FF
- ld [$C0EE],a
+ ld [wc0ee],a
call PlaySound ; stop music
pop af
ld [H_LOADEDROMBANK],a
ld [$2000],a
ld c,$14
call DelayFrames
- FuncCoord 6, 5 ; $c40a
- ld hl,Coord
+ hlCoord 6, 5
ld b,7
ld c,7
call ClearScreenArea
call LoadTextBoxTilePatterns
ld a,1
- ld [$CFCB],a
+ ld [wcfcb],a
ld c,$32
call DelayFrames
call GBFadeOut2
@@ -211,28 +208,25 @@ MovePicLeft: ; 6288 (1:6288)
jr .next
Predef3B: ; 62a1 (1:62a1)
- call Load16BitRegisters
+ call GetPredefRegisters
IntroPredef3B: ; 62a4 (1:62a4)
; bank of sprite given in b
push bc
ld a,b
call UncompressSpriteFromDE
ld hl,S_SPRITEBUFFER1
- ld de,$A000
- ld bc,$0310
+ ld de,S_SPRITEBUFFER0
+ ld bc,$310
call CopyData
- ld de,$9000
+ ld de,vFrontPic
call InterlaceMergeSpriteBuffers
pop bc
ld a,c
and a
- FuncCoord 15, 1 ; $c3c3
- ld hl,Coord
+ hlCoord 15, 1
jr nz,.next
- FuncCoord 6, 4 ; $c3f6
- ld hl,Coord
+ hlCoord 6, 4
.next
xor a
ld [$FFE1],a
- ld a,1
- jp Predef
+ predef_jump Func_3f0c6
diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm
index 697a268d..9d994047 100755
--- a/engine/oak_speech2.asm
+++ b/engine/oak_speech2.asm
@@ -2,20 +2,20 @@ LoadDefaultNamesPlayer: ; 695d (1:695d)
call Func_6a12
ld de, DefaultNamesPlayer ; $6aa8
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_697a
ld hl, DefaultNamesPlayerList ; $6af2
call Func_6ad6
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
call Func_69ec
jr .asm_6999
.asm_697a
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
xor a
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_697a
call ClearScreen
@@ -35,20 +35,20 @@ LoadDefaultNamesRival: ; 69a4 (1:69a4)
call Func_6a12 ; 0x69a4 call 0x6a12
ld de, DefaultNamesRival
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_69c1
ld hl, DefaultNamesRivalList
call Func_6ad6
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
call Func_69ec
jr .asm_69e1
.asm_69c1
- ld hl, W_RIVALNAME ; $d34a
+ ld hl, W_RIVALNAME ; wd34a
ld a, $1
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_69c1
call ClearScreen
@@ -72,19 +72,17 @@ Func_69ec: ; 69ec (1:69ec)
ld c, $a
call DelayFrames
pop de
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $b
call CopyData
call Delay3
- FuncCoord 12, 4 ; $c3fc
- ld hl, Coord
+ hlCoord 12, 4
ld de, $67d
ld a, $ff
jr asm_6a19
Func_6a12: ; 6a12 (1:6a12)
- FuncCoord 5, 4 ; $c3f5
- ld hl, Coord
+ hlCoord 5, 4
ld de, $67d
xor a
asm_6a19: ; 6a19 (1:6a19)
@@ -161,25 +159,23 @@ DisplayIntroNameTextBox: ; 6a6c (1:6a6c)
ld b, $a
ld c, $9
call TextBoxBorder
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
+ hlCoord 3, 0
ld de, .namestring ; $6aa3
call PlaceString
pop de
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
call PlaceString
call UpdateSprites
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
inc a
- ld [wTopMenuItemX], a ; $cc25
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
inc a
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
inc a
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
jp HandleMenuInput
.namestring ; 6aa3 (1:6aa3)
@@ -235,7 +231,7 @@ Func_6ad6: ; 6ad6 (1:6ad6)
.asm_6ae7
ld h, d
ld l, e
- ld de, $cd6d
+ ld de, wcd6d
ld bc, $14
jp CopyData
IF _RED
diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm
new file mode 100644
index 00000000..3de4d773
--- /dev/null
+++ b/engine/oam_dma.asm
@@ -0,0 +1,25 @@
+WriteDMACodeToHRAM:
+; Since no other memory is available during OAM DMA,
+; DMARoutine is copied to HRAM and executed there.
+ ld c, $ff80 % $100
+ ld b, DMARoutineEnd - DMARoutine
+ ld hl, DMARoutine
+.copy
+ ld a, [hli]
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .copy
+ ret
+
+DMARoutine:
+ ; initiate DMA
+ ld a, wOAMBuffer / $100
+ ld [$ff46], a
+
+ ; wait for DMA to finish
+ ld a, $28
+.wait dec a
+ jr nz, .wait
+ ret
+DMARoutineEnd:
diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm
index 88bf177f..9ae5b508 100755
--- a/engine/overworld/cable_club_npc.asm
+++ b/engine/overworld/cable_club_npc.asm
@@ -1,7 +1,7 @@
CableClubNPC: ; 71c5 (1:71c5)
ld hl, CableClubNPCText1
call PrintText
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jp nz, Func_71e1
ld c, $3c
@@ -12,9 +12,9 @@ CableClubNPC: ; 71c5 (1:71c5)
Func_71e1: ; 71e1 (1:71e1)
ld a, $1
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
ld a, $5a
- ld [$cc47], a
+ ld [wcc47], a
.asm_71eb
ld a, [$ffaa]
cp $2
@@ -29,9 +29,9 @@ Func_71e1: ; 71e1 (1:71e1)
ld [$ffad], a
ld a, $80
ld [$ff02], a
- ld a, [$cc47]
+ ld a, [wcc47]
dec a
- ld [$cc47], a
+ ld [wcc47], a
jr z, .asm_7287 ; 0x720b $7a
ld a, $1
ld [$ff01], a
@@ -48,11 +48,11 @@ Func_71e1: ; 71e1 (1:71e1)
ld hl, CableClubNPCText2
call PrintText
xor a
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
call YesNoChoice
ld a, $1
- ld [$cc34], a
- ld a, [$cc26]
+ ld [wMenuJoypadPollCount], a
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_728f ; 0x723e $4f
callab SaveSAVtoSRAM
@@ -61,15 +61,15 @@ Func_71e1: ; 71e1 (1:71e1)
call PlaySoundWaitForCurrent
ld hl, CableClubNPCText3
call PrintText
- ld hl, $cc47
+ ld hl, wcc47
ld a, $3
ld [hli], a
xor a
ld [hl], a
ld [$ffa9], a
- ld [$cc42], a
+ ld [wcc42], a
call Func_227f
- ld hl, $cc47
+ ld hl, wcc47
ld a, [hli]
inc a
jr nz, Func_72a8 ; 0x726b $3b
@@ -98,13 +98,13 @@ Func_71e1: ; 71e1 (1:71e1)
Func_7298: ; 7298 (1:7298)
xor a
- ld hl, $cc47
+ ld hl, wcc47
ld [hli], a
ld [hl], a
- ld hl, $d72e
+ ld hl, wd72e
res 6, [hl]
xor a
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
ret
Func_72a8: ; 72a8 (1:72a8)
diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm
index 658f4712..f48c26f4 100755
--- a/engine/overworld/card_key.asm
+++ b/engine/overworld/card_key.asm
@@ -8,9 +8,8 @@ PrintCardKeyText: ; 52673 (14:6673)
ret z
cp b
jr nz, .asm_5267a
- ld a, $35
- call Predef ; indirect jump to Func_c586 (c586 (3:4586))
- ld a, [$cfc6]
+ predef Func_c586
+ ld a, [wcfc6]
cp $18
jr z, .asm_5269c
cp $24
@@ -35,12 +34,12 @@ PrintCardKeyText: ; 52673 (14:6673)
srl d
ld a, d
ld b, a
- ld [$d73f], a
+ ld [wd73f], a
srl e
ld a, e
ld c, a
- ld [$d740], a
- ld a, [W_CURMAP] ; $d35e
+ ld [wd740], a
+ ld a, [W_CURMAP] ; W_CURMAP
cp SILPH_CO_11F
jr nz, .asm_526c8
ld a, $3
@@ -48,10 +47,9 @@ PrintCardKeyText: ; 52673 (14:6673)
.asm_526c8
ld a, $e
.asm_526ca
- ld [$d09f], a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e
- ld hl, $d126
+ ld [wd09f], a
+ predef Func_ee9e
+ ld hl, wd126
set 5, [hl]
ld a, (SFX_1f_57 - SFX_Headers_1f) / 3
jp PlaySound
@@ -84,11 +82,11 @@ CardKeyFailText: ; 526f8 (14:66f8)
db "@"
Func_526fd: ; 526fd (14:66fd)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld d, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld e, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr nz, .asm_5270d
inc d
diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm
index 4087b334..eefa2176 100755
--- a/engine/overworld/cinnabar_lab.asm
+++ b/engine/overworld/cinnabar_lab.asm
@@ -1,18 +1,18 @@
GiveFossilToCinnabarLab: ; 61006 (18:5006)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
- ld a, [$cd37]
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld a, [wcd37]
dec a
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $2
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld a, [$cd37]
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld a, [wcd37]
dec a
ld bc, $2
ld hl, $3
@@ -24,13 +24,13 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
call TextBoxBorder
call UpdateSprites
call Func_610c2
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call HandleMenuInput
bit 1, a
jr nz, .asm_610a7
- ld hl, $cc5b
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wcc5b
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld d, $0
ld e, a
add hl, de
@@ -55,7 +55,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
ld hl, LabFossil_610ae
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_610a7
ld hl, LabFossil_610b3
@@ -65,7 +65,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
callba RemoveItemByID
ld hl, LabFossil_610b8
call PrintText
- ld hl, $d7a3
+ ld hl, wd7a3
set 0, [hl]
set 1, [hl]
ret
@@ -91,7 +91,7 @@ LabFossil_610bd: ; 610bd (18:50bd)
db "@"
Func_610c2: ; 610c2 (18:50c2)
- ld hl, $cc5b
+ ld hl, wcc5b
xor a
ld [$ffdb], a
.asm_610c8
@@ -99,14 +99,13 @@ Func_610c2: ; 610c2 (18:50c2)
cp $ff
ret z
push hl
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld a, [$ffdb]
ld bc, $28
call AddNTimes
- ld de, $cd6d
+ ld de, wcd6d
call PlaceString
ld hl, $ffdb
inc [hl]
@@ -116,10 +115,10 @@ Func_610c2: ; 610c2 (18:50c2)
; loads the names of the fossil item and the resulting mon
LoadFossilItemAndMonName: ; 610eb (18:50eb)
ld a, [W_FOSSILMON]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
call CopyStringToCF4B
ld a, [W_FOSSILITEM]
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
ret
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 6c888e7f..29b52eb9 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -1,18 +1,18 @@
UsedCut: ; ef54 (3:6f54)
xor a
- ld [$cd6a], a
- ld a, [W_CURMAPTILESET] ; $d367
+ ld [wcd6a], a
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
and a ; OVERWORLD
jr z, .asm_ef6b
cp GYM
jr nz, .asm_ef77
- ld a, [$cfc6]
+ ld a, [wcfc6]
cp $50 ; gym cut tree
jr nz, .asm_ef77
jr asm_ef82
.asm_ef6b
dec a
- ld a, [$cfc6]
+ ld a, [wcfc6]
cp $3d ; cut tree
jr z, asm_ef82
cp $52 ; grass
@@ -26,16 +26,16 @@ NothingToCutText: ; ef7d (3:6f7d)
db "@"
asm_ef82: ; ef82 (3:6f82)
- ld [$cd4d], a
+ ld [wcd4d], a
ld a, $1
- ld [$cd6a], a
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld [wcd6a], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
call Func_3dbe
ld a, $90
ld [$ffb0], a
@@ -49,17 +49,17 @@ asm_ef82: ; ef82 (3:6f82)
ld hl, UsedCutText
call PrintText
call LoadScreenTilesFromBuffer2
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld a, $ff
- ld [$cfcb], a
+ ld [wcfcb], a
call AnimateCutTree
ld de, CutTreeBlockSwaps ; $7100
call Func_f09f
call Func_eedc
callba Func_79e96
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, (SFX_02_56 - SFX_Headers_02) / 3
call PlaySound
ld a, $90
@@ -73,32 +73,32 @@ UsedCutText: ; eff2 (3:6ff2)
AnimateCutTree: ; eff7 (3:6ff7)
xor a
- ld [$cd50], a
+ ld [wcd50], a
ld a, $e4
ld [rOBP1], a ; $ff49
- ld a, [$cd4d]
+ ld a, [wcd4d]
cp $52
jr z, .asm_f020
ld de, Overworld_GFX + $2d0 ; $42d0 ; cuttable tree sprite top row
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
ld bc, (BANK(Overworld_GFX) << 8) + $02
call CopyVideoData
ld de, Overworld_GFX + $3d0 ; $43d0 ; cuttable tree sprite bottom row
- ld hl, $8fe0
+ ld hl, vChars1 + $7e0
ld bc, (BANK(Overworld_GFX) << 8) + $02
call CopyVideoData
jr asm_f055
.asm_f020
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
call LoadCutTreeOAM
- ld hl, $8fd0
+ ld hl, vChars1 + $7d0
call LoadCutTreeOAM
- ld hl, $8fe0
+ ld hl, vChars1 + $7e0
call LoadCutTreeOAM
- ld hl, $8ff0
+ ld hl, vChars1 + $7f0
call LoadCutTreeOAM
call asm_f055
- ld hl, $c393
+ ld hl, wOAMBuffer + $93
ld de, $4
ld a, $30
ld c, e
@@ -125,7 +125,7 @@ CutTreeOAM: ; f060 (3:7060)
db $FE,$10,$FF,$10
Func_f068: ; f068 (3:7068)
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
ld a, [hli]
ld b, a
inc hl
@@ -137,7 +137,7 @@ Func_f068: ; f068 (3:7068)
srl a
ld e, a
ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
- ld a, [$cd50]
+ ld a, [wcd50]
and a
ld hl, CutTreeAnimationOffsets ; $708f
jr z, .asm_f084
@@ -173,39 +173,39 @@ CutTreeAnimationOffsets2: ; f097 (3:7097)
Func_f09f: ; f09f (3:709f)
push de
- ld a, [W_CURMAPWIDTH] ; $d369
+ ld a, [W_CURMAPWIDTH] ; wd369
add $6
ld c, a
ld b, $0
ld d, $0
- ld hl, $d35f
+ ld hl, wd35f
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr z, .asm_f0c7
cp $4
jr z, .asm_f0cf
cp $8
jr z, .asm_f0d7
- ld a, [W_XBLOCKCOORD] ; $d364
+ ld a, [W_XBLOCKCOORD] ; wd364
and a
jr z, .asm_f0e0
jr .asm_f0ec
.asm_f0c7
- ld a, [W_YBLOCKCOORD] ; $d363
+ ld a, [W_YBLOCKCOORD] ; wd363
and a
jr z, .asm_f0e0
jr .asm_f0df
.asm_f0cf
- ld a, [W_YBLOCKCOORD] ; $d363
+ ld a, [W_YBLOCKCOORD] ; wd363
and a
jr z, .asm_f0e1
jr .asm_f0e0
.asm_f0d7
- ld a, [W_XBLOCKCOORD] ; $d364
+ ld a, [W_XBLOCKCOORD] ; wd364
and a
jr z, .asm_f0e6
jr .asm_f0e0
diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm
index c83e571b..08f6d651 100755
--- a/engine/overworld/cut2.asm
+++ b/engine/overworld/cut2.asm
@@ -1,18 +1,18 @@
Func_79e96: ; 79e96 (1e:5e96)
- ld a, [$cd4d]
+ ld a, [wcd4d]
cp $52
jr z, .asm_79ec8
ld c, $8
.asm_79e9f
push bc
- ld hl, $c391
+ ld hl, wOAMBuffer + $91
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld c, $2
call Func_79339
- ld hl, $c399
+ ld hl, wOAMBuffer + $99
ld a, $ff
- ld [$d08a], a
+ ld [wd08a], a
ld c, $2
call Func_79339
ld a, [rOBP1] ; $ff49
@@ -33,9 +33,9 @@ Func_79e96: ; 79e96 (1e:5e96)
ld c, $8
call Func_79eed
call Func_79f30
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
ld a, $2
- ld [$d08a], a
+ ld [wd08a], a
ld c, $4
call Func_79352
pop bc
@@ -45,24 +45,24 @@ Func_79e96: ; 79e96 (1e:5e96)
Func_79eed: ; 79eed (1e:5eed)
push bc
- ld hl, $c391
+ ld hl, wOAMBuffer + $91
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c395
+ ld hl, wOAMBuffer + $95
ld a, $2
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c399
+ ld hl, wOAMBuffer + $99
ld a, $fe
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c39d
+ ld hl, wOAMBuffer + $9d
ld a, $ff
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
ld a, [rOBP1] ; $ff49
@@ -75,15 +75,15 @@ Func_79eed: ; 79eed (1e:5eed)
ret
Func_79f30: ; 79f30 (1e:5f30)
- ld hl, $c390
- ld de, $cee9
+ ld hl, wOAMBuffer + $90
+ ld de, wHPBarMaxHP
ld bc, $8
call CopyData
- ld hl, $c398
- ld de, $c390
+ ld hl, wOAMBuffer + $98
+ ld de, wOAMBuffer + $90
ld bc, $8
call CopyData
- ld hl, $cee9
- ld de, $c398
+ ld hl, wHPBarMaxHP
+ ld de, wOAMBuffer + $98
ld bc, $8
jp CopyData
diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm
index ff58b752..42ebb174 100755
--- a/engine/overworld/doors.asm
+++ b/engine/overworld/doors.asm
@@ -1,7 +1,7 @@
HandleDoors: ; 1a609 (6:6609)
push de
ld hl, DoorTileIDPointers ; $662c
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld de, $3
call IsInArray
pop de
@@ -10,8 +10,7 @@ HandleDoors: ; 1a609 (6:6609)
ld a, [hli]
ld h, [hl]
ld l, a
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
ld b, a
.asm_1a621
ld a, [hli]
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index e483e0c3..10b3b003 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -34,14 +34,14 @@ ShakeElevator: ; 7bf15 (1e:7f15)
ld a, (SFX_02_5f - SFX_Headers_02) / 3
call PlayMusic
.asm_7bf57
- ld a, [$c02a]
+ ld a, [wc02a]
cp $b9
jr z, .asm_7bf57
call UpdateSprites
jp Func_2307
Func_7bf64: ; 7bf64 (1e:7f64)
- ld hl, $d527
+ ld hl, wd527
ld a, [hld]
push af
ld a, [hl]
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
index b480c06d..ae7702b4 100755
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -1,5 +1,5 @@
-PrintEmotionBubble: ; 17c47 (5:7c47)
- ld a, [$cd50]
+EmotionBubble: ; 17c47 (5:7c47)
+ ld a, [wcd50]
ld c, a
ld b, $0
ld hl, EmotionBubblesPointerTable ; $7caf
@@ -8,20 +8,20 @@ PrintEmotionBubble: ; 17c47 (5:7c47)
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $8f80
+ ld hl, vChars1 + $780
ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04
call CopyVideoData
- ld a, [$cfcb]
+ ld a, [wcfcb]
push af
ld a, $ff
- ld [$cfcb], a
- ld a, [$d736]
+ ld [wcfcb], a
+ ld a, [wd736]
bit 6, a
- ld hl, $c38f
- ld de, $c39f
+ ld hl, wOAMBuffer + $8f
+ ld de, wOAMBuffer + $9f
jr z, .asm_17c7a
- ld hl, $c37f
- ld de, $c38f
+ ld hl, wOAMBuffer + $7f
+ ld de, wOAMBuffer + $8f
.asm_17c7a
ld bc, $90
.asm_17c7d
@@ -33,8 +33,8 @@ PrintEmotionBubble: ; 17c47 (5:7c47)
ld a, c
or b
jr nz, .asm_17c7d
- ld hl, $c104
- ld a, [$cd4f]
+ ld hl, wSpriteStateData1 + 4
+ ld a, [wcd4f]
swap a
ld c, a
ld b, $0
@@ -51,7 +51,7 @@ PrintEmotionBubble: ; 17c47 (5:7c47)
ld c, $3c
call DelayFrames
pop af
- ld [$cfcb], a
+ ld [wcfcb], a
call DelayFrame
jp UpdateSprites
@@ -65,4 +65,4 @@ EmotionBubblesOAM: ; 17cb5 (5:7cb5)
db $FA,$00,$FB,$00
EmotionBubbles: ; 17cbd (5:7cbd)
- INCBIN "gfx/emotion_bubbles.w16.2bpp"
+ INCBIN "gfx/emotion_bubbles.2bpp"
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index 77ff4ccc..9c93583d 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -1,9 +1,9 @@
AnimateHealingMachine: ; 70433 (1c:4433)
ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7
- ld hl, $87c0
+ ld hl, vChars0 + $7c0
ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03
call CopyVideoData
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -12,19 +12,19 @@ AnimateHealingMachine: ; 70433 (1c:4433)
push af
ld a, $e0
ld [rOBP1], a ; $ff49
- ld hl, $c384
+ ld hl, wOAMBuffer + $84
ld de, PokeCenterOAMData ; $44d7
call Func_70503
ld a, $4
ld [wMusicHeaderPointer], a
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.asm_70464
ld a, [wMusicHeaderPointer]
and a
jr nz, .asm_70464
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
ld b, a
.asm_7046e
call Func_70503
@@ -34,23 +34,23 @@ AnimateHealingMachine: ; 70433 (1c:4433)
call DelayFrames
dec b
jr nz, .asm_7046e
- ld a, [$c0ef]
+ ld a, [wc0ef]
cp $1f
- ld [$c0f0], a
+ ld [wc0f0], a
jr nz, .asm_70495
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, Bank(Func_9876)
- ld [$c0ef], a
+ ld a, BANK(Music_PkmnHealed)
+ ld [wc0ef], a
.asm_70495
ld a, MUSIC_PKMN_HEALED
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld d, $28
call Func_704f3
.asm_704a2
- ld a, [$c026]
+ ld a, [wc026]
cp MUSIC_PKMN_HEALED
jr z, .asm_704a2
ld c, $20
diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm
index db6bf1cd..77bd8fe6 100755
--- a/engine/overworld/hidden_items.asm
+++ b/engine/overworld/hidden_items.asm
@@ -1,21 +1,20 @@
HiddenItems: ; 76688 (1d:6688)
ld hl, HiddenItemCoords
call Func_76857
- ld [$cd41], a
- ld hl, $d6f0
- ld a, [$cd41]
+ ld [wTrainerScreenX], a
+ ld hl, wd6f0
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $2
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, c
and a
ret nz
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
- ld a, [$cd3d] ; item ID
- ld [$d11e], a
+ ld [wcc3c], a
+ ld a, [wWhichTrade] ; item ID
+ ld [wd11e], a
call GetItemName
ld a, $24
jp PrintPredefTextID
@@ -26,17 +25,16 @@ FoundHiddenItemText: ; 7675b (1d:675b)
; XXX where is the pointer to this?
TX_FAR _FoundHiddenItemText
db $8
- ld a, [$cd3d] ; item ID
+ ld a, [wWhichTrade] ; item ID
ld b, a
ld c, 1
call GiveItem
jr nc, .BagFull
- ld hl, $d6f0
- ld a, [$cd41]
+ ld hl, wd6f0
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $1
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, (SFX_02_3b - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
call WaitForSoundToFinish ; wait for sound to finish playing
@@ -44,7 +42,7 @@ FoundHiddenItemText: ; 7675b (1d:675b)
.BagFull
call WaitForTextScrollButtonPress ; wait for button press
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, HiddenItemBagFullText
call PrintText
jp TextScriptEnd
@@ -55,20 +53,18 @@ HiddenItemBagFullText: ; 76794 (1d:6794)
HiddenCoins: ; 76799 (1d:6799)
ld b, COIN_CASE
- ld a, $1c
- call Predef
+ predef IsItemInBag_
ld a, b
and a
ret z
ld hl, HiddenCoinCoords
call Func_76857
- ld [$cd41], a
- ld hl, $d6fe
- ld a, [$cd41]
+ ld [wTrainerScreenX], a
+ ld hl, wd6fe
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $2
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, c
and a
ret nz
@@ -76,7 +72,7 @@ HiddenCoins: ; 76799 (1d:6799)
ld [$ff9f], a
ld [$ffa0], a
ld [$ffa1], a
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
sub COIN
cp 10
jr z, .bcd10
@@ -101,17 +97,15 @@ HiddenCoins: ; 76799 (1d:6799)
ld a, $1
ld [$ffa0], a
.bcddone
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
- ld hl, $d6fe
- ld a, [$cd41]
+ predef AddBCDPredef
+ ld hl, wd6fe
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $1
- ld a, $10
- call Predef
+ predef FlagActionPredef
call EnableAutoTextBoxDrawing
ld a, [wPlayerCoins]
cp $99
@@ -139,9 +133,9 @@ DroppedHiddenCoinsText: ; 7684d (1d:684d)
db "@"
Func_76857: ; 76857 (1d:6857)
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
ld d, a
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld e, a
ld a, [W_CURMAP]
ld b, a
diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm
index e4777a84..d2114293 100755
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -1,16 +1,16 @@
Func_46981: ; 46981 (11:6981)
xor a
- ld [$d71e], a
- ld a, [$d72d]
+ ld [wd71e], a
+ ld a, [wd72d]
bit 4, a
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade] ; $cd3d
- ld [$d71e], a
- ld hl, $d72d
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd71e], a
+ ld hl, wd72d
set 4, [hl]
- ld hl, $d732
+ ld hl, wd732
set 4, [hl]
ret
@@ -28,7 +28,7 @@ Func_469a0: ; 469a0 (11:69a0)
ld b, a
cp $ff
jr z, .asm_469fc
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp b
jr z, .asm_469be
inc de
@@ -41,7 +41,7 @@ Func_469a0: ; 469a0 (11:69a0)
ld h, [hl]
ld l, a
push hl
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld [hli], a
@@ -51,10 +51,10 @@ Func_469a0: ; 469a0 (11:69a0)
ld a, [hli]
cp $ff
jr z, .asm_469fc
- ld [$cd40], a
+ ld [wTrainerScreenY], a
ld b, a
ld a, [hli]
- ld [$cd41], a
+ ld [wTrainerScreenX], a
ld c, a
call Func_46a01
ld a, [$ffea]
@@ -65,15 +65,15 @@ Func_469a0: ; 469a0 (11:69a0)
inc hl
inc hl
push hl
- ld hl, $cd3f
+ ld hl, wTrainerFacingDirection
inc [hl]
pop hl
jr .asm_469ce
.asm_469f0
ld a, [hli]
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld a, [hli]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, [hli]
ld h, [hl]
ld l, a
@@ -84,37 +84,37 @@ Func_469a0: ; 469a0 (11:69a0)
ret
Func_46a01: ; 46a01 (11:6a01)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr z, .asm_46a16
cp $8
jr z, .asm_46a25
cp $c
jr z, .asm_46a2b
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
inc a
jr .asm_46a1a
.asm_46a16
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
dec a
.asm_46a1a
cp b
jr nz, .asm_46a3b
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
cp c
jr nz, .asm_46a3b
jr .asm_46a38
.asm_46a25
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
dec a
jr .asm_46a2f
.asm_46a2b
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
inc a
.asm_46a2f
cp c
jr nz, .asm_46a3b
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
cp b
jr nz, .asm_46a3b
.asm_46a38
diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm
new file mode 100644
index 00000000..a69ec106
--- /dev/null
+++ b/engine/overworld/item.asm
@@ -0,0 +1,54 @@
+PickupItem:
+ call EnableAutoTextBoxDrawing
+
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld b, a
+ ld hl, W_MISSABLEOBJECTLIST
+.missableObjectsListLoop
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp b
+ jr z, .isMissable
+ inc hl
+ jr .missableObjectsListLoop
+
+.isMissable
+ ld a, [hl]
+ ld [$ffdb], a
+
+ ld hl, W_MAPSPRITEEXTRADATA
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ dec a
+ add a
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld b, a ; item
+ ld c, 1 ; quantity
+ call GiveItem
+ jr nc, .BagFull
+
+ ld a, [$ffdb]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, 1
+ ld [wcc3c], a
+ ld hl, FoundItemText
+ jr .print
+
+.BagFull
+ ld hl, NoMoreRoomForItemText
+.print
+ call PrintText
+ ret
+
+FoundItemText:
+ TX_FAR _FoundItemText
+ db $0B
+ db "@"
+
+NoMoreRoomForItemText:
+ TX_FAR _NoMoreRoomForItemText
+ db "@"
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index d2f248cd..43df82e2 100755
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -1,18 +1,16 @@
HandleLedges: ; 1a672 (6:6672)
- ld a, [$d736]
+ ld a, [wd736]
bit 6, a
ret nz
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
and a ; OVERWORLD
ret nz
- ld a, $35
- call Predef ; indirect jump to Func_c586 (c586 (3:4586))
- ld a, [$c109]
+ predef Func_c586
+ ld a, [wSpriteStateData1 + 9]
ld b, a
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
ld c, a
- ld a, [$cfc6]
+ ld a, [wcfc6]
ld d, a
ld hl, LedgeTiles ; $66cf
.asm_1a691
@@ -38,19 +36,19 @@ HandleLedges: ; 1a672 (6:6672)
inc hl
jr .asm_1a691
.asm_1a6a9
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
and e
ret z
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
set 6, [hl]
call Func_3486
ld a, e
- ld [$ccd3], a
- ld [$ccd4], a
+ ld [wccd3], a
+ ld [wccd4], a
ld a, $2
- ld [$cd38], a
+ ld [wcd38], a
call LoadHoppingShadowOAM
ld a, (SFX_02_4e - SFX_Headers_02) / 3
call PlaySound
@@ -69,7 +67,7 @@ LedgeTiles: ; 1a6cf (6:66cf)
db $FF
LoadHoppingShadowOAM: ; 1a6f0 (6:66f0)
- ld hl, $8ff0
+ ld hl, vChars1 + $7f0
ld de, LedgeHoppingShadow ; $6708
ld bc, (BANK(LedgeHoppingShadow) << 8) + $01
call CopyVideoDataDouble
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index a734319d..81443c9f 100755
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -4,7 +4,7 @@
; This is also called after displaying text because loading
; text tile patterns overwrites half of the sprite tile pattern data.
; Note on notation:
-; $C1X* and $C2X* are used to denote $C100-$C1FF and $C200-$C2FF sprite slot
+; $C1X* and $C2X* are used to denote wSpriteStateData1-wSpriteStateData1 + $ff and wSpriteStateData2 + $00-wSpriteStateData2 + $ff sprite slot
; 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.
@@ -13,7 +13,7 @@ InitMapSprites: ; 1785b (5:785b)
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)
ld hl,wSpriteStateData1
- ld de,$c20d
+ ld de,wSpriteStateData2 + $0d
; Loop to copy picture ID's from $C1X0 to $C2XD for LoadMapSpriteTilePatterns.
.copyPictureIDLoop
ld a,[hl] ; $C1X0 (picture ID)
@@ -37,7 +37,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
.spritesExist
ld c,a ; c = [W_NUMSPRITES]
ld b,$10 ; number of sprite slots
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
xor a
ld [$ff8e],a ; 4-tile sprite counter
.copyPictureIDLoop ; loop to copy picture ID from $C2XD to $C2XE
@@ -48,9 +48,9 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld l,a
dec b
jr nz,.copyPictureIDLoop
- ld hl,$c21e
+ ld hl,wSpriteStateData2 + $1e
.loadTilePatternLoop
- ld de,$c21d
+ ld de,wSpriteStateData2 + $1d
; 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.
@@ -70,7 +70,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld e,a
jr .checkIfAlreadyLoadedLoop
.notAlreadyLoaded
- ld de,$c20e
+ ld de,wSpriteStateData2 + $0e
ld b,$01
; loop to find the highest tile pattern VRAM slot (among the first 10 slots) used by a previous sprite slot
; this is done in order to find the first free VRAM slot available
@@ -126,7 +126,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
push af
push de
push bc
- ld hl,$8000 ; VRAM base address
+ ld hl,vNPCSprites ; VRAM base address
ld bc,$c0 ; number of bytes per VRAM slot
ld a,[$ff8d]
cp a,11 ; is it a 4-tile sprite?
@@ -141,12 +141,12 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
jr nz,.calculateVRAMAddrLoop
jr .loadStillTilePattern
.fourTileSpriteVRAMAddr
- ld hl,$87c0 ; address for second 4-tile sprite
+ ld hl,vSprites + $7c0 ; address for second 4-tile sprite
ld a,[$ff8e] ; 4-tile sprite counter
and a ; is it the first 4-tile sprite?
jr nz,.loadStillTilePattern
; if it's the first 4-tile sprite
- ld hl,$8780 ; address for first 4-tile sprite
+ ld hl,vSprites + $780 ; address for first 4-tile sprite
inc a
ld [$ff8e],a ; 4-tile sprite counter
.loadStillTilePattern
@@ -159,7 +159,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld l,e
pop de
ld b,a
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.skipFirstLoad ; if so, skip loading data into the lower half
ld a,b
@@ -180,7 +180,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
jr nc,.noCarry3
inc d
.noCarry3
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadWhileLCDOn
pop af
@@ -216,7 +216,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld l,a
dec c
jp nz,.loadTilePatternLoop
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
ld b,$10
; the pictures ID's stored at $C2XD are no longer needed, so zero them
.zeroStoredPictureIDLoop
@@ -264,7 +264,7 @@ InitOutsideMapSprites: ; 1797b (5:797b)
cp a,$f0 ; does the map have 2 sprite sets?
call nc,GetSplitMapSpriteSetID ; if so, choose the appropriate one
ld b,a ; b = spriteSetID
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadSpriteSet ; if so, forcibly reload the sprite set
ld a,[W_SPRITESETID]
@@ -288,7 +288,7 @@ InitOutsideMapSprites: ; 1797b (5:797b)
jr nc,.noCarry2
inc d
.noCarry2
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
ld a,SPRITE_RED
ld [hl],a
ld bc,W_SPRITESET
@@ -324,7 +324,7 @@ InitOutsideMapSprites: ; 1797b (5:797b)
call LoadMapSpriteTilePatterns
pop af
ld [W_NUMSPRITES],a ; restore number of sprites
- ld hl,$c21e
+ ld hl,wSpriteStateData2 + $1e
ld b,$0f
; The VRAM tile pattern slots that LoadMapSpriteTilePatterns set are in the
; order of the map's sprite set, not the order of the actual sprites loaded
@@ -338,7 +338,7 @@ InitOutsideMapSprites: ; 1797b (5:797b)
dec b
jr nz,.zeroVRAMSlotsLoop
.skipLoadingSpriteSet
- ld hl,$c110
+ ld hl,wSpriteStateData1 + $10
; 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
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
new file mode 100644
index 00000000..f08a20cb
--- /dev/null
+++ b/engine/overworld/movement.asm
@@ -0,0 +1,856 @@
+UpdatePlayerSprite: ; 4e31 (1:4e31)
+ ld a, [wSpriteStateData2]
+ and a
+ jr z, .asm_4e41
+ cp $ff
+ jr z, .asm_4e4a
+ dec a
+ ld [wSpriteStateData2], a
+ jr .asm_4e4a
+.asm_4e41
+ aCoord 8, 9
+ ld [$ff93], a
+ cp $60
+ jr c, .asm_4e50
+.asm_4e4a
+ ld a, $ff
+ ld [wSpriteStateData1 + 2], a
+ ret
+.asm_4e50
+ call Func_4c70
+ ld h, $c1
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ jr nz, .asm_4e90
+ ld a, [wd528]
+ bit 2, a
+ jr z, .asm_4e65
+ xor a
+ jr .asm_4e86
+.asm_4e65
+ bit 3, a
+ jr z, .asm_4e6d
+ ld a, $4
+ jr .asm_4e86
+.asm_4e6d
+ bit 1, a
+ jr z, .asm_4e75
+ ld a, $8
+ jr .asm_4e86
+.asm_4e75
+ bit 0, a
+ jr z, .asm_4e7d
+ ld a, $c
+ jr .asm_4e86
+.asm_4e7d
+ xor a
+ ld [wSpriteStateData1 + 7], a
+ ld [wSpriteStateData1 + 8], a
+ jr .asm_4eab
+.asm_4e86
+ ld [wSpriteStateData1 + 9], a
+ ld a, [wcfc4]
+ bit 0, a
+ jr nz, .asm_4e7d
+.asm_4e90
+ ld a, [wd736]
+ bit 7, a
+ jr nz, .asm_4eb6
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ cp $4
+ jr nz, .asm_4eab
+ xor a
+ ld [hl], a
+ inc hl
+ ld a, [hl]
+ inc a
+ and $3
+ ld [hl], a
+.asm_4eab
+ ld a, [wSpriteStateData1 + 8]
+ ld b, a
+ ld a, [wSpriteStateData1 + 9]
+ add b
+ ld [wSpriteStateData1 + 2], a
+.asm_4eb6
+ ld a, [$ff93]
+ ld c, a
+ ld a, [W_GRASSTILE]
+ cp c
+ ld a, $0
+ jr nz, .asm_4ec3
+ ld a, $80
+.asm_4ec3
+ ld [wSpriteStateData2 + $07], a
+ ret
+
+Func_4ec7: ; 4ec7 (1:4ec7)
+ push bc
+ push af
+ ld a, [$ffda]
+ ld c, a
+ pop af
+ add c
+ ld l, a
+ pop bc
+ ret
+
+Func_4ed1: ; 4ed1 (1:4ed1)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ swap a
+ dec a
+ add a
+ ld hl, W_MAPSPRITEDATA ; wd4e4
+ add l
+ ld l, a
+ ld a, [hl] ; read movement byte 2
+ ld [wCurSpriteMovement2], a
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc l
+ ld a, [hl] ; c1x1
+ and a
+ jp z, InitializeSpriteStatus
+ call CheckSpriteAvailability
+ ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc l
+ ld a, [hl] ; c1x1
+ bit 7, a
+ jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80
+ ld b, a
+ ld a, [wcfc4]
+ bit 0, a
+ jp nz, notYetMoving
+ ld a, b
+ cp $2
+ jp z, UpdateSpriteMovementDelay ; c1x1 == 2
+ cp $3
+ jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
+ call InitializeSpriteScreenPosition
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ inc a
+ jr z, .asm_4f59 ; value $FF
+ inc a
+ jr z, .asm_4f59 ; value $FE
+ dec a
+ ld [hl], a ; (temporarily) increment movement byte 1
+ dec a
+ push hl
+ ld hl, wcf0f
+ dec [hl] ; decrement wcf0f
+ pop hl
+ ld de, wcc5b
+ call LoadDEPlusA ; a = [wcc5b + movement byte 1]
+ cp $e0
+ jp z, ChangeFacingDirection
+ cp $ff
+ jr nz, .asm_4f4b
+ ld [hl], a ; reset movement byte 1 to initial value
+ ld hl, wd730
+ res 0, [hl]
+ xor a
+ ld [wcd38], a
+ ld [wcd3a], a
+ ret
+.asm_4f4b
+ cp $fe
+ jr nz, .asm_4f5f
+ ld [hl], $1 ; set movement byte 1 to $1
+ ld de, wcc5b
+ call LoadDEPlusA ; a = [wcc5b + $fe] (?)
+ jr .asm_4f5f
+.asm_4f59
+ call getTileSpriteStandsOn
+ call Random
+.asm_4f5f
+ ld b, a
+ ld a, [wCurSpriteMovement2]
+ cp $d0
+ jr z, .moveDown ; movement byte 2 = $d0 forces down
+ cp $d1
+ jr z, .moveUp ; movement byte 2 = $d1 forces up
+ cp $d2
+ jr z, .moveLeft ; movement byte 2 = $d2 forces left
+ cp $d3
+ jr z, .moveRight ; movement byte 2 = $d3 forces right
+ ld a, b
+ cp $40 ; a < $40: down (or left)
+ jr nc, .notDown
+ ld a, [wCurSpriteMovement2]
+ cp $2
+ jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
+.moveDown
+ ld de, 2*20
+ add hl, de ; move tile pointer two rows down
+ ld de, $100
+
+ ld bc, $400
+ jr TryWalking
+.notDown
+ cp $80 ; $40 <= a < $80: up (or right)
+ jr nc, .notUp
+ ld a, [wCurSpriteMovement2]
+ cp $2
+ jr z, .moveRight ; movement byte 2 = $2 only allows left or right
+.moveUp
+ ld de, -2*20 ; $ffd8
+ add hl, de ; move tile pointer two rows up
+ ld de, $ff00
+ ld bc, $804
+ jr TryWalking
+.notUp
+ cp $c0 ; $80 <= a < $c0: left (or up)
+ jr nc, .notLeft
+ ld a, [wCurSpriteMovement2]
+ cp $1
+ jr z, .moveUp ; movement byte 2 = $1 only allows up or down
+.moveLeft
+ dec hl
+ dec hl ; move tile pointer two columns left
+ ld de, $ff
+ ld bc, $208
+ jr TryWalking
+.notLeft ; $c0 <= a: right (or down)
+ ld a, [wCurSpriteMovement2]
+ cp $1
+ jr z, .moveDown ; movement byte 2 = $1 only allows up or down
+.moveRight
+ inc hl
+ inc hl ; move tile pointer two columns right
+ ld de, $1
+ ld bc, $10c
+ jr TryWalking
+
+; changes facing direction by zeroing the movement delta and calling TryWalking
+ChangeFacingDirection: ; 4fc8 (1:4fc8)
+ ld de, $0
+ ; fall through
+
+; b: direction (1,2,4 or 8)
+; c: new facing direction (0,4,8 or $c)
+; d: Y movement delta (-1, 0 or 1)
+; e: X movement delta (-1, 0 or 1)
+; hl: pointer to tile the sprite would wlak onto
+; set carry on failure, clears carry on success
+TryWalking: ; 4fcb (1:4fcb)
+ push hl
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld [hl], c ; c1x9 (update facing direction)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $3
+ ld l, a
+ ld [hl], d ; c1x3 (update Y movement delta)
+ inc l
+ inc l
+ ld [hl], e ; c1x5 (update X movement delta)
+ pop hl
+ push de
+ ld c, [hl] ; read tile to walk onto
+ call CanWalkOntoTile
+ pop de
+ ret c ; cannot walk there (reinitialization of delay values already done)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hl] ; c2x4: Y position
+ add d
+ ld [hli], a ; update Y position
+ ld a, [hl] ; c2x5: X position
+ add e
+ ld [hl], a ; update X position
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ ld [hl], $10 ; c2x0=16: walk animation counter
+ dec h
+ inc l
+ ld [hl], $3 ; c1x1: set movement status to walking
+ jp UpdateSpriteImage
+
+; update the walking animation parameters for a sprite that is currently walking
+UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl] ; c1x7 (counter until next walk animation frame)
+ inc a
+ ld [hl], a ; c1x7 += 1
+ cp $4
+ jr nz, .noNextAnimationFrame
+ xor a
+ ld [hl], a ; c1x7 = 0
+ inc l
+ ld a, [hl] ; c1x8 (walk animation frame)
+ inc a
+ and $3
+ ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
+.noNextAnimationFrame
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $3
+ ld l, a
+ ld a, [hli] ; c1x3 (movement Y delta)
+ ld b, a
+ ld a, [hl] ; c1x4 (screen Y position)
+ add b
+ ld [hli], a ; update screen Y position
+ ld a, [hli] ; c1x5 (movement X delta)
+ ld b, a
+ ld a, [hl] ; c1x6 (screen X position)
+ add b
+ ld [hl], a ; update screen X position
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc h
+ ld a, [hl] ; c2x0 (walk animantion counter)
+ dec a
+ ld [hl], a ; update walk animantion counter
+ ret nz
+ ld a, $6 ; walking finished, update state
+ add l
+ ld l, a
+ ld a, [hl] ; c2x6 (movement byte 1)
+ cp $fe
+ jr nc, .initNextMovementCounter ; values $fe and $ff
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ dec h
+ ld [hl], $1 ; c1x1 = 1 (movement status ready)
+ ret
+.initNextMovementCounter
+ call Random
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld a, [hRandomAdd]
+ and $7f
+ ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f]
+ dec h ; note that value 0 actually makes the delay $100 (bug?)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $2 ; c1x1 = 2 (movement status)
+ inc l
+ inc l
+ xor a
+ ld b, [hl] ; c1x3 (movement Y delta)
+ ld [hli], a ; reset movement Y delta
+ inc l
+ ld c, [hl] ; c1x5 (movement X delta)
+ ld [hl], a ; reset movement X delta
+ ret
+
+; update delay value (c2x8) for sprites in the delayed state (c1x1)
+UpdateSpriteMovementDelay: ; 5057 (1:5057)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ inc l
+ inc l
+ cp $fe
+ jr nc, .tickMoveCounter ; values $fe or $ff
+ ld [hl], $0
+ jr .moving
+.tickMoveCounter
+ dec [hl] ; c2x8: frame counter until next movement
+ jr nz, notYetMoving
+.moving
+ dec h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
+notYetMoving: ; 5073 (1:5073)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld [hl], $0 ; c1x8 = 0 (walk animation frame)
+ jp UpdateSpriteImage
+
+InitializeSpriteFacingDirection: ; 507f (1:507f)
+ ld a, [wd72d]
+ bit 5, a
+ jr nz, notYetMoving
+ res 7, [hl]
+ ld a, [wd52a]
+ bit 3, a
+ jr z, .notFacingDown
+ ld c, $0 ; make sprite face down
+ jr .facingDirectionDetermined
+.notFacingDown
+ bit 2, a
+ jr z, .notFacingUp
+ ld c, $4 ; make sprite face up
+ jr .facingDirectionDetermined
+.notFacingUp
+ bit 1, a
+ jr z, .notFacingRight
+ ld c, $c ; make sprite face right
+ jr .facingDirectionDetermined
+.notFacingRight
+ ld c, $8 ; make sprite face left
+.facingDirectionDetermined
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld [hl], c ; c1x9: set facing direction
+ jr notYetMoving
+
+InitializeSpriteStatus: ; 50ad (1:50ad)
+ ld [hl], $1 ; $c1x1: set movement status to ready
+ inc l
+ ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, $8
+ ld [hli], a ; $c2x2: set Y displacement to 8
+ ld [hl], a ; $c2x3: set X displacement to 8
+ ret
+
+; calculates the spprite's scrren position form its map position and the player position
+InitializeSpriteScreenPosition: ; 50bd (1:50bd)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [W_YCOORD] ; wd361
+ ld b, a
+ ld a, [hl] ; c2x4 (Y position + 4)
+ sub b ; relative to player position
+ swap a ; * 16
+ sub $4 ; - 4
+ dec h
+ ld [hli], a ; c1x4 (screen Y position)
+ inc h
+ ld a, [W_XCOORD] ; wd362
+ ld b, a
+ ld a, [hli] ; c2x6 (X position + 4)
+ sub b ; relative to player position
+ swap a ; * 16
+ dec h
+ ld [hl], a ; c1x6 (screen X position)
+ ret
+
+; tests if sprite is off screen or otherwise unable to do anything
+CheckSpriteAvailability: ; 50dc (1:50dc)
+ predef IsObjectHidden
+ ld a, [$ffe5]
+ and a
+ jp nz, .spriteInvisible
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ cp $fe
+ jr c, .skipXVisibilityTest ; movement byte 1 < $fe
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld b, [hl] ; c2x4: Y pos (+4)
+ ld a, [W_YCOORD] ; wd361
+ cp b
+ jr z, .skipYVisibilityTest
+ jr nc, .spriteInvisible ; above screen region
+ add $8 ; screen is 9 tiles high
+ cp b
+ jr c, .spriteInvisible ; below screen region
+.skipYVisibilityTest
+ inc l
+ ld b, [hl] ; c2x5: X pos (+4)
+ ld a, [W_XCOORD] ; wd362
+ cp b
+ jr z, .skipXVisibilityTest
+ jr nc, .spriteInvisible ; left of screen region
+ add $9 ; screen is 10 tiles wide
+ cp b
+ jr c, .spriteInvisible ; right of screen region
+.skipXVisibilityTest
+ call getTileSpriteStandsOn
+ ld d, $60
+ ld a, [hli]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile)
+ ld a, [hld]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
+ ld bc, -20 ; $ffec
+ add hl, bc ; go back one row of tiles
+ ld a, [hli]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile)
+ ld a, [hl]
+ cp d
+ jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile)
+.spriteInvisible
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld [hl], $ff ; c1x2
+ scf
+ jr .done
+.spriteVisible
+ ld c, a
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ jr nz, .done ; if player is currently walking, we're done
+ call UpdateSpriteImage
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [W_GRASSTILE]
+ cp c
+ ld a, $0
+ jr nz, .notInGrass
+ ld a, $80
+.notInGrass
+ ld [hl], a ; c2x7
+ and a
+.done
+ ret
+
+UpdateSpriteImage: ; 5157 (1:5157)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld a, [hli] ; c1x8: walk animation frame
+ ld b, a
+ ld a, [hl] ; c1x9: facing direction
+ add b
+ ld b, a
+ ld a, [$ff93] ; current sprite offset
+ add b
+ ld b, a
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld [hl], b ; c1x2: sprite to display
+ ret
+
+; tests if sprite can walk the specified direction
+; b: direction (1,2,4 or 8)
+; c: ID of tile the sprite would walk onto
+; 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: ; 516e (1:516e)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6 (movement byte 1)
+ cp $fe
+ jr nc, .canMove ; values $fe and $ff
+ and a
+ ret
+.canMove
+ ld a, [W_TILESETCOLLISIONPTR]
+ ld l, a
+ ld a, [W_TILESETCOLLISIONPTR+1]
+ ld h, a
+.tilePassableLoop
+ ld a, [hli]
+ cp $ff
+ jr z, .impassable
+ cp c
+ jr nz, .tilePassableLoop
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; $c2x6 (movement byte 1)
+ inc a
+ jr z, .impassable ; if $ff, no movement allowed (however, changing direction is)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hli] ; c1x4 (screen Y pos)
+ add $4 ; align to blocks (Y pos is always 4 pixels off)
+ add d ; add Y delta
+ cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow)
+ jr nc, .impassable ; don't walk off screen
+ inc l
+ ld a, [hl] ; c1x6 (screen X pos)
+ add e ; add X delta
+ cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow)
+ jr nc, .impassable ; don't walk off screen
+ push de
+ push bc
+ call Func_4c70
+ pop bc
+ pop de
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $c
+ ld l, a
+ ld a, [hl] ; c1xc (forbidden directions flags(?))
+ and b ; check against chosen direction (1,2,4 or 8)
+ jr nz, .impassable ; direction forbidden, don't go there
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go)
+ bit 7, d ; check if going upwards (d=$ff)
+ jr nz, .upwards
+ add d
+ cp $5
+ jr c, .impassable ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites
+ jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck
+.upwards ; whenever they walked upwards 5 steps
+ sub $1 ; on the other hand, the amount a sprite can walk out to the
+ jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows)
+.checkHorizontal
+ ld d, a
+ ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go)
+ bit 7, e ; check if going left (e=$ff)
+ jr nz, .left
+ add e
+ cp $5 ; compare, but no conditional jump like in the vertical check above (bug?)
+ jr .passable
+.left
+ sub $1
+ jr c, .impassable ; if d2x3 == 0, don't go
+.passable
+ ld [hld], a ; update c2x3
+ ld [hl], d ; update c2x2
+ and a ; clear carry (marking success)
+ ret
+.impassable
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $2 ; c1x1 = 2 (set movement status to delayed)
+ inc l
+ inc l
+ xor a
+ ld [hli], a ; c1x3 = 0 (clear Y movement delta)
+ inc l
+ ld [hl], a ; c1x5 = 0 (clear X movement delta)
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ call Random
+ ld a, [hRandomAdd]
+ and $7f
+ ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0)
+ scf ; set carry (marking failure to walk)
+ ret
+
+; 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: ; 5207 (1:5207)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hli] ; c1x4: screen Y position
+ add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top)
+ and $f0 ; in case object is currently moving
+ srl a ; screen Y tile * 4
+ ld c, a
+ ld b, $0
+ inc l
+ ld a, [hl] ; c1x6: screen Y position
+ srl a
+ srl a
+ srl a ; screen X tile
+ add $14 ; screen X tile + 20
+ ld d, $0
+ ld e, a
+ ld hl, wTileMap
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile
+ ret
+
+; loads [de+a] into a
+LoadDEPlusA: ; 522f (1:522f)
+ add e
+ ld e, a
+ jr nc, .noCarry
+ inc d
+.noCarry
+ ld a, [de]
+ ret
+
+Func_5236: ; 5236 (1:5236)
+ ld a, [wd730]
+ bit 7, a
+ ret z
+ ld hl, wd72e
+ bit 7, [hl]
+ set 7, [hl]
+ jp z, Func_52a6
+ ld hl, wcc97
+ ld a, [wcd37]
+ add l
+ ld l, a
+ jr nc, .asm_5251
+ inc h
+.asm_5251
+ ld a, [hl]
+ cp $40
+ jr nz, .asm_525f
+ call Func_52b2
+ ld c, $4
+ ld a, $fe
+ jr .asm_5289
+.asm_525f
+ cp $0
+ jr nz, .asm_526c
+ call Func_52b2
+ ld c, $0
+ ld a, $2
+ jr .asm_5289
+.asm_526c
+ cp $80
+ jr nz, .asm_5279
+ call Func_52b7
+ ld c, $8
+ ld a, $fe
+ jr .asm_5289
+.asm_5279
+ cp $c0
+ jr nz, .asm_5286
+ call Func_52b7
+ ld c, $c
+ ld a, $2
+ jr .asm_5289
+.asm_5286
+ cp $ff
+ ret
+.asm_5289
+ ld b, a
+ ld a, [hl]
+ add b
+ ld [hl], a
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld a, c
+ ld [hl], a
+ call Func_52c3
+ ld hl, wcf18
+ dec [hl]
+ ret nz
+ ld a, $8
+ ld [wcf18], a
+ ld hl, wcd37
+ inc [hl]
+ ret
+
+Func_52a6: ; 52a6 (1:52a6)
+ xor a
+ ld [wcd37], a
+ ld a, $8
+ ld [wcf18], a
+ jp Func_52c3
+
+Func_52b2: ; 52b2 (1:52b2)
+ ld a, $4
+ ld b, a
+ jr asm_52ba
+
+Func_52b7: ; 52b7 (1:52b7)
+ ld a, $6
+ ld b, a
+asm_52ba: ; 52ba (1:52ba)
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add l
+ add b
+ ld l, a
+ ret
+
+Func_52c3: ; 52c3 (1:52c3)
+ ld hl, wSpriteStateData2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $e
+ ld l, a
+ ld a, [hl]
+ dec a
+ swap a
+ ld b, a
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld a, [hl]
+ cp $0
+ jr z, .asm_52ea
+ cp $4
+ jr z, .asm_52ea
+ cp $8
+ jr z, .asm_52ea
+ cp $c
+ jr z, .asm_52ea
+ ret
+.asm_52ea
+ add b
+ ld b, a
+ ld [$ffe9], a
+ call Func_5301
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, [$ffe9]
+ ld b, a
+ ld a, [$ffea]
+ add b
+ ld [hl], a
+ ret
+
+Func_5301: ; 5301 (1:5301)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ cp $4
+ ret nz
+ xor a
+ ld [hl], a
+ inc l
+ ld a, [hl]
+ inc a
+ and $3
+ ld [hl], a
+ ld [$ffea], a
+ ret
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 54d7321b..2cf6fea9 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -1,47 +1,47 @@
Func_1a3e0: ; 1a3e0 (6:63e0)
- ld hl, $d730
+ ld hl, wd730
res 1, [hl]
call HandleDoors
jr nc, .asm_1a406
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
set 1, [hl]
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
xor a
- ld [$c102], a
+ ld [wSpriteStateData1 + 2], a
call Func_3486
ret
.asm_1a406
xor a
- ld [$cd3a], a
- ld [$cd38], a
- ld [$ccd3], a
- ld hl, $d736
+ ld [wcd3a], a
+ ld [wcd38], a
+ ld [wccd3], a
+ ld hl, wd736
res 0, [hl]
res 1, [hl]
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
ret
Func_1a41d: ; 1a41d (6:641d)
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d736
+ ld hl, wd736
res 0, [hl]
res 1, [hl]
xor a
- ld [$cf17], a
- ld [$cc57], a
- ld [$cf10], a
- ld [$cd3a], a
- ld [$cd38], a
- ld [$ccd3], a
+ ld [wcf17], a
+ ld [wcc57], a
+ ld [wcf10], a
+ ld [wcd3a], a
+ ld [wcd38], a
+ ld [wccd3], a
ret
PointerTable_1a442: ; 1a442 (6:6442)
@@ -52,74 +52,73 @@ PointerTable_1a442: ; 1a442 (6:6442)
dw Func_1a4f4
Func_1a44c: ; 1a44c (6:644c)
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
sub $a
- ld [$cca1], a
+ ld [wcca1], a
jr z, .asm_1a475
ld b, $0
ld c, a
- ld hl, $cc97
+ ld hl, wcc97
ld a, $80
call FillMemory
ld [hl], $ff
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld de, $cc97
+ ld de, wcc97
call MoveSprite
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
jr .asm_1a47a
.asm_1a475
ld a, $3
- ld [$cf10], a
+ ld [wcf10], a
.asm_1a47a
ld hl, W_FLAGS_D733
set 1, [hl]
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
Func_1a485: ; 1a485 (6:6485)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
- ld a, [$cca1]
- ld [$cd38], a
+ ld a, [wcca1]
+ ld [wcd38], a
ld [$ff95], a
- ld a, $23
- call Predef
+ predef Func_f9a0
call Func_3486
ld a, $2
- ld [$cf10], a
+ ld [wcf10], a
ret
Func_1a4a1: ; 1a4a1 (6:64a1)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
Func_1a4a6: ; 1a4a6 (6:64a6)
xor a
- ld [$cd3b], a
- ld a, [$cf13]
+ ld [wcd3b], a
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
xor a
- ld [$c206], a
- ld hl, $ccd3
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wccd3
ld de, RLEList_1a4e9
call DecodeRLEList
dec a
- ld [$cd38], a
- ld hl, $cc97
+ ld [wcd38], a
+ ld hl, wcc97
ld de, RLEList_1a4dc
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $4
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_1a4dc: ; 1a4dc (6:64dc)
@@ -140,16 +139,15 @@ RLEList_1a4e9: ; 1a4e9 (6:64e9)
db $FF
Func_1a4f4: ; 1a4f4 (6:64f4)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $0
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
- ld hl, $d730
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
jp Func_314e
@@ -158,32 +156,31 @@ PointerTable_1a510: ; 1a510 (6:6510)
dw Func_1a56b
Func_1a514: ; 1a514 (6:6514)
- ld a, Bank(Func_9876)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_MuseumGuy)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_MUSEUM_GUY
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
call Func_3486
- ld hl, $ccd3
+ ld hl, wccd3
ld de, RLEList_PewterMuseumPlayer
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$d12f], a
- ld a, $4f
- call Predef
- ld hl, $cc97
+ ld [wd12f], a
+ predef PewterGuys
+ ld hl, wcc97
ld de, RLEList_PewterMuseumGuy
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_PewterMuseumPlayer: ; 1a559 (6:6559)
@@ -201,12 +198,12 @@ RLEList_PewterMuseumGuy: ; 1a562 (6:6562)
db $FF
Func_1a56b: ; 1a56b (6:656b)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
jp Func_314e
@@ -215,35 +212,34 @@ PointerTable_1a57d: ; 1a57d (6:657d)
dw Func_1a56b
Func_1a581: ; 1a581 (6:6581)
- ld a, Bank(Func_9876)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_MuseumGuy)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_MUSEUM_GUY
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
xor a
- ld [$c206], a
- ld hl, $ccd3
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wccd3
ld de, RLEList_PewterGymPlayer
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld a, $1
- ld [$d12f], a
- ld a, $4f
- call Predef
- ld hl, $cc97
+ ld [wd12f], a
+ predef PewterGuys
+ ld hl, wcc97
ld de, RLEList_PewterGymGuy
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_PewterGymPlayer: ; 1a5cd (6:65cd)
@@ -266,7 +262,7 @@ RLEList_PewterGymGuy: ; 1a5da (6:65da)
; XXX why would this function want to return on POKEMONTOWER_7?
Func_1a5e7: ; 1a5e7 (6:65e7)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POKEMONTOWER_7
ret z
ld hl, RivalIDs ; $6605
@@ -280,7 +276,7 @@ Func_1a5e7: ; 1a5e7 (6:65e7)
ret z
jr .loop
.notRival
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp SetSpriteMovementBytesToFF
diff --git a/engine/overworld/oaks_aide.asm b/engine/overworld/oaks_aide.asm
index ca2c6726..68135287 100755
--- a/engine/overworld/oaks_aide.asm
+++ b/engine/overworld/oaks_aide.asm
@@ -2,13 +2,13 @@ OaksAideScript ; 0x59035
ld hl, OaksAideHiText
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_59086 ; 0x59042 $42
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
ld [$ffdd], a
ld b, a
ld a, [$ffdb]
diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm
new file mode 100644
index 00000000..63495d22
--- /dev/null
+++ b/engine/overworld/oam.asm
@@ -0,0 +1,178 @@
+PrepareOAMData:
+; Determine OAM data for currently visible
+; sprites and write it to wOAMBuffer.
+
+ ld a, [wcfcb]
+ dec a
+ jr z, .asm_4b1e
+
+ cp 0 - 1
+ ret nz
+ ld [wcfcb], a
+ jp HideSprites
+
+.asm_4b1e
+ xor a
+ ld [$ff90], a
+.asm_4b21
+ ld [$ff8f], a
+
+ ld d, wSpriteStateData1 / $100
+ ld a, [$ff8f]
+ ld e, a
+ ld a, [de] ; c1x0
+ and a
+ jp z, .asm_4bad
+
+ inc e
+ inc e
+ ld a, [de] ; c1x2 (facing/anim)
+ ld [wd5cd], a
+ cp $ff ; off-screen (don't draw)
+ jr nz, .visible
+
+ call Func_4bd1
+ jr .asm_4bad
+
+.visible
+ cp $a0
+ jr c, .usefacing
+ and $f
+ add $10
+ jr .asm_4b48
+
+.usefacing
+ and $f
+.asm_4b48
+ ld l, a
+
+ push de
+ inc d
+ ld a, e
+ add $5
+ ld e, a
+ ld a, [de] ; c2x7
+ and $80
+ ld [$ff94], a ; temp store sprite priority
+ pop de
+
+ ld h, 0
+ ld bc, SpriteFacingAndAnimationTable
+ add hl, hl
+ add hl, hl
+ add hl, bc
+
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ call Func_4bd1
+
+ ld a, [$ff90]
+ ld e, a
+ ld d, wOAMBuffer / $100
+.tile
+ ld a, [$ff92] ; temp for sprite Y position
+ add $10 ; Y=16 is top of screen (Y=0 is invisible)
+ add [hl] ; add Y offset from table
+ ld [de], a ; write new sprite OAM Y position
+ inc hl
+ ld a, [$ff91] ; temp for sprite X position
+ add $8 ; X=8 is left of screen (X=0 is invisible)
+ add [hl] ; add X offset from table
+ inc e
+ ld [de], a ; write new sprite OAM X position
+ inc e
+ ld a, [bc] ; read pattern number offset (accomodates orientation (offset 0,4 or 8) and animation (offset 0 or $80))
+ inc bc
+ push bc
+ ld b, a
+
+ ld a, [wd5cd] ; temp copy of c1x2
+ swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs)
+ and $f
+
+ ; Sprites $a and $b have one face (and therefore 4 tiles instead of 12).
+ ; As a result, sprite $b's tile offset is less than normal.
+ cp $b
+ jr nz, .offset
+ ld a, $a * 12 + 4
+ jr .gotoffset
+
+.offset
+ ; a *= 12
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+.gotoffset
+ add b ; which frame
+ pop bc
+ ld [de], a ; tile id
+ inc hl
+ inc e
+ ld a, [hl]
+ bit 1, a ; sprite priority
+ jr z, .fg
+ ld a, [$ff94] ; facing priority
+ or [hl]
+.fg
+ inc hl
+ ld [de], a
+ inc e
+ bit 0, a ; OAMFLAG_ENDOFDATA
+ jr z, .tile
+
+ ld a, e
+ ld [$ff90], a
+
+.asm_4bad
+ ld a, [$ff8f]
+ add $10
+ cp $100 % $100
+ jp nz, .asm_4b21
+
+ ; Clear unused OAM.
+ ld a, [$ff90]
+ ld l, a
+ ld h, wOAMBuffer / $100
+ ld de, $4
+ ld b, $a0
+ ld a, [wd736]
+ bit 6, a
+ ld a, $a0
+ jr z, .clear
+ ld a, $90
+.clear
+ cp l
+ ret z
+ ld [hl], b
+ add hl, de
+ jr .clear
+
+Func_4bd1: ; 4bd1 (1:4bd1)
+ inc e
+ inc e
+ ld a, [de] ; c1x4
+ ld [$ff92], a
+ inc e
+ inc e
+ ld a, [de] ; c1x6
+ ld [$ff91], a
+ ld a, $4
+ add e
+ ld e, a
+ ld a, [$ff92]
+ add $4
+ and $f0
+ ld [de], a ; c1xa (y)
+ inc e
+ ld a, [$ff91]
+ and $f0
+ ld [de], a ; c1xb (x)
+ ret
diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm
index 7c5779a2..2f3001fb 100755
--- a/engine/overworld/pewter_guys.asm
+++ b/engine/overworld/pewter_guys.asm
@@ -1,15 +1,15 @@
PewterGuys: ; 37ca1 (d:7ca1)
- ld hl, $ccd3
- ld a, [$cd38]
+ ld hl, wccd3
+ ld a, [wcd38]
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld d, 0
ld e, a
add hl, de
ld d, h
ld e, l
ld hl, PointerTable_37ce6
- ld a, [$d12f]
+ ld a, [wd12f]
add a
ld b, 0
ld c, a
@@ -37,9 +37,9 @@ PewterGuys: ; 37ca1 (d:7ca1)
ret z
ld [de], a
inc de
- ld a, [$cd38]
+ ld a, [wcd38]
inc a
- ld [$cd38], a
+ ld [wcd38], a
jr .asm_37cd2
.asm_37ce1
inc hl
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index 1af178c7..a0d8175f 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -1,7 +1,7 @@
Func_70510: ; 70510 (1c:4510)
call Func_706ef
ld a, $ec
- ld [$c104], a
+ ld [wSpriteStateData1 + 4], a
call Delay3
push hl
call GBFadeIn2
@@ -11,7 +11,7 @@ Func_70510: ; 70510 (1c:4510)
jr nz, .asm_70568
ld a, (SFX_02_4c - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d732
+ ld hl, wd732
bit 4, [hl]
res 4, [hl]
pop hl
@@ -23,7 +23,7 @@ Func_70510: ; 70510 (1c:4510)
ld a, b
and a
jr nz, .asm_7055b
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
inc a
@@ -31,7 +31,7 @@ Func_70510: ; 70510 (1c:4510)
ld a, $8
ld [hli], a
ld [hl], $ff
- ld hl, $cd48
+ ld hl, wcd48
call Func_70730
.asm_70558
call Func_2307
@@ -45,13 +45,13 @@ Func_70510: ; 70510 (1c:4510)
.asm_70568
pop hl
ld de, BirdSprite ; $4d80
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
call Func_706d7
ld a, (SFX_02_50 - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld a, $c
@@ -80,7 +80,7 @@ FlyAnimationEnterScreenCoords: ; 70592 (1c:4592)
db $3C, $40
Func_705aa: ; 705aa (1c:45aa)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $10
ld [hli], a
ld a, $3c
@@ -89,7 +89,7 @@ Func_705aa: ; 705aa (1c:45aa)
ld [hl], a
jp Func_70755
-_DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
+_LeaveMapAnim: ; 705ba (1c:45ba)
call Func_706ef
call Func_70787
ld a, b
@@ -100,7 +100,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
.asm_705c8
ld a, (SFX_02_4b - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $f0
ld [hli], a
ld a, $ec
@@ -120,10 +120,10 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
.asm_705ef
ld a, $4
call StopMusic
- ld a, [$d732]
+ ld a, [wd732]
bit 6, a
jr z, .asm_70610
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $10
ld [hli], a
ld a, $ff
@@ -131,12 +131,12 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
xor a
ld [hli], a
ld [hl], $a1
- ld hl, $cd48
+ ld hl, wcd48
call Func_70730
jr .asm_705c8
.asm_70610
call Func_706d7
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $ff
ld [hli], a
ld a, $8
@@ -145,7 +145,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
call Func_706ae
ld a, (SFX_02_50 - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld a, $c
@@ -155,7 +155,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
call Func_706ae
ld c, $28
call DelayFrames
- ld hl, $cd3e
+ ld hl, wTrainerEngageDistance
ld a, $b
ld [hli], a
ld [hl], $8
@@ -200,34 +200,34 @@ FlyAnimationScreenCoords2: ; 70667 (1c:4667)
Func_7067d: ; 7067d (1c:467d)
ld a, $ff
- ld [$cfcb], a
- ld a, [$c302]
- ld [$c30a], a
- ld a, [$c306]
- ld [$c30e], a
+ ld [wcfcb], a
+ ld a, [wOAMBuffer + $02]
+ ld [wOAMBuffer + $0a], a
+ ld a, [wOAMBuffer + $06]
+ ld [wOAMBuffer + $0e], a
ld a, $a0
ld [wOAMBuffer], a
- ld [$c304], a
+ ld [wOAMBuffer + $04], a
ld c, $2
call DelayFrames
ld a, $a0
- ld [$c308], a
- ld [$c30c], a
+ ld [wOAMBuffer + $08], a
+ ld [wOAMBuffer + $0c], a
call GBFadeOut2
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
jp Func_70772
Func_706ae: ; 706ae (1c:46ae)
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
xor $1
- ld [$cd3f], a
- ld [$c102], a
+ ld [wTrainerFacingDirection], a
+ ld [wSpriteStateData1 + 2], a
call Delay3
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $ff
jr z, .asm_706cd
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
ld a, [de]
inc de
ld [hli], a
@@ -236,33 +236,33 @@ Func_706ae: ; 706ae (1c:46ae)
inc de
ld [hl], a
.asm_706cd
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
dec a
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
jr nz, Func_706ae
ret
Func_706d7: ; 706d7 (1c:46d7)
ld de, BirdSprite ; $4d80
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite
- ld hl, $8800
+ ld hl, vNPCSprites2
ld bc, (BANK(BirdSprite) << 8) + $0c
jp CopyVideoData
Func_706ef: ; 706ef (1c:46ef)
- ld a, [$c102]
- ld [$cd50], a
- ld a, [$c104]
- ld [$cd4f], a
+ ld a, [wSpriteStateData1 + 2]
+ ld [wcd50], a
+ ld a, [wSpriteStateData1 + 4]
+ ld [wcd4f], a
ld hl, PlayerSpinningFacingOrder ; $4713
- ld de, $cd48
+ ld de, wcd48
ld bc, $4
call CopyData
- ld a, [$c102]
- ld hl, $cd48
+ ld a, [wSpriteStateData1 + 2]
+ ld hl, wcd48
.asm_7070d
cp [hl]
inc hl
@@ -277,32 +277,32 @@ PlayerSpinningFacingOrder: ; 70713 (1c:4713)
Func_70717: ; 70717 (1c:4717)
ld a, [hl]
- ld [$c102], a
+ ld [wSpriteStateData1 + 2], a
push hl
- ld hl, $cd48
- ld de, $cd47
+ ld hl, wcd48
+ ld de, wcd47
ld bc, $4
call CopyData
- ld a, [$cd47]
- ld [$cd4b], a
+ ld a, [wcd47]
+ ld [wcd4b], a
pop hl
ret
Func_70730: ; 70730 (1c:4730)
call Func_70717
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
and $3
jr nz, .asm_70743
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
cp $ff
call nz, PlaySound
.asm_70743
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
add c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld c, a
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
cp c
ret z
call DelayFrames
@@ -310,29 +310,29 @@ Func_70730: ; 70730 (1c:4730)
Func_70755: ; 70755 (1c:4755)
call Func_70717
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
- ld a, [$c104]
+ ld a, [wSpriteStateData1 + 4]
add c
- ld [$c104], a
+ ld [wSpriteStateData1 + 4], a
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
cp c
ret z
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
ld c, a
call DelayFrames
jr Func_70755
Func_70772: ; 70772 (1c:4772)
- ld a, [$cd4f]
- ld [$c104], a
- ld a, [$cd50]
- ld [$c102], a
+ ld a, [wcd4f]
+ ld [wSpriteStateData1 + 4], a
+ ld a, [wcd50]
+ ld [wSpriteStateData1 + 2], a
ret
Func_7077f: ; 7077f (1c:477f)
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
inc a
inc a
@@ -341,7 +341,7 @@ Func_7077f: ; 7077f (1c:477f)
Func_70787: ; 70787 (1c:4787)
ld b, 0
ld hl, DataTable_707a9 ; $47a9
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld c, a
.asm_70790
ld a, [hli]
@@ -349,8 +349,7 @@ Func_70787: ; 70787 (1c:4787)
jr z, .asm_707a4
cp c
jr nz, .asm_7079e
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
cp [hl]
jr z, .asm_707a2
.asm_7079e
@@ -362,10 +361,10 @@ Func_70787: ; 70787 (1c:4787)
ld b, [hl]
.asm_707a4
ld a, b
- ld [$cd5b], a
+ ld [wcd5b], a
ret
-; format: db tileset id, tile id, value to be put in $cd5b
+; format: db tileset id, tile id, value to be put in wcd5b
DataTable_707a9: ; 707a9 (1c:47a9)
db FACILITY, $20, 1 ; warp pad
db FACILITY, $11, 2 ; hole
@@ -376,26 +375,26 @@ DataTable_707a9: ; 707a9 (1c:47a9)
Func_707b6: ; 707b6 (1c:47b6)
ld c, $a
call DelayFrames
- ld hl, $d736
+ ld hl, wd736
set 6, [hl]
ld de, RedSprite ; $4180
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(RedSprite) << 8) + $0c
call CopyVideoData
ld a, $4
ld hl, RedFishingTiles ; $4866
call Func_71771
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
ld c, a
ld b, $0
ld hl, FishingRodGfxProperties ; $4856
add hl, bc
- ld de, $c39c
+ ld de, wOAMBuffer + $9c
ld bc, $4
call CopyData
ld c, $64
call DelayFrames
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
and a
ld hl, NoNibbleText
jr z, .asm_70836
@@ -404,35 +403,34 @@ Func_707b6: ; 707b6 (1c:47b6)
jr z, .asm_70836
ld b, $a
.asm_707fe
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
call Func_70842
- ld hl, $c39c
+ ld hl, wOAMBuffer + $9c
call Func_70842
call Delay3
dec b
jr nz, .asm_707fe
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
cp $4
jr nz, .asm_7081c
ld a, $a0
- ld [$c39c], a
+ ld [wOAMBuffer + $9c], a
.asm_7081c
- ld hl, $cd4f
+ ld hl, wcd4f
xor a
ld [hli], a
ld [hl], a
- ld a, $4c
- call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
- ld a, [$c102]
+ predef EmotionBubble
+ ld a, [wSpriteStateData1 + 2]
cp $4
jr nz, .asm_70833
ld a, $44
- ld [$c39c], a
+ ld [wOAMBuffer + $9c], a
.asm_70833
ld hl, ItsABiteText
.asm_70836
call PrintText
- ld hl, $d736
+ ld hl, wd736
res 6, [hl]
call LoadFontTilePatterns
ret
@@ -468,51 +466,51 @@ FishingRodGfxProperties: ; 70856 (1c:4856)
RedFishingTiles: ; 70866 (1c:4866)
dw RedFishingTilesFront
- db $02, $1E
- dw $8020
+ db 2, BANK(RedFishingTilesFront)
+ dw vNPCSprites + $20
dw RedFishingTilesBack
- db $02, $1E
- dw $8060
+ db 2, BANK(RedFishingTilesBack)
+ dw vNPCSprites + $60
dw RedFishingTilesSide
- db $02, $1E
- dw $80A0
+ db 2, BANK(RedFishingTilesSide)
+ dw vNPCSprites + $a0
dw RedFishingRodTiles
- db $03, $1E
- dw $8FD0
+ db 3, BANK(RedFishingRodTiles)
+ dw vNPCSprites2 + $7d0
_HandleMidJump: ; 7087e (1c:487e)
- ld a, [$d714]
+ ld a, [wd714]
ld c, a
inc a
cp $10
jr nc, .asm_70895
- ld [$d714], a
+ ld [wd714], a
ld b, $0
ld hl, PlayerJumpingYScreenCoords ; $48ba
add hl, bc
ld a, [hl]
- ld [$c104], a ; player's sprite y coordinate
+ ld [wSpriteStateData1 + 4], a ; player's sprite y coordinate
ret
.asm_70895
- ld a, [wWalkCounter] ; $cfc5
+ ld a, [wWalkCounter] ; wcfc5
cp $0
ret nz
call UpdateSprites
call Delay3
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_NEWLYRELEASEDBUTTONS], a
- ld [$d714], a
- ld hl, $d736
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ld [wd714], a
+ ld hl, wd736
res 6, [hl]
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
PlayerJumpingYScreenCoords: ; 708ba (1c:48ba)
diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm
index 45599498..3c640d8e 100755
--- a/engine/overworld/pokecenter.asm
+++ b/engine/overworld/pokecenter.asm
@@ -2,7 +2,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
call SaveScreenTilesToBuffer1 ; save screen
ld hl, PokemonCenterWelcomeText
call PrintText
- ld hl, $d72e
+ ld hl, wd72e
bit 2, [hl]
set 1, [hl]
set 2, [hl]
@@ -19,22 +19,22 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
ld hl, NeedYourPokemonText
call PrintText
ld a, $18
- ld [$c112], a ; make the nurse turn to face the machine
+ ld [wSpriteStateData1 + $12], a ; make the nurse turn to face the machine
call Delay3
- PREDEF HealPartyPredef
+ predef HealParty
callba AnimateHealingMachine ; do the healing machine animation
xor a
ld [wMusicHeaderPointer], a
- ld a, [$c0f0]
- ld [$c0ef], a
- ld a, [$d35b]
- ld [$cfca], a
- ld [$c0ee], a
+ ld a, [wc0f0]
+ ld [wc0ef], a
+ ld a, [wd35b]
+ ld [wcfca], a
+ ld [wc0ee], a
call PlaySound
ld hl, PokemonFightingFitText
call PrintText
ld a, $14
- ld [$c112], a ; make the nurse bow
+ ld [wSpriteStateData1 + $12], a ; make the nurse bow
ld c, a
call DelayFrames
jr .done
diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm
index 6e6f5ee2..3b06bd2c 100755
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -1,30 +1,30 @@
DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld a,[wListScrollOffset]
- ld [$d07e],a
+ ld [wd07e],a
call UpdateSprites ; move sprites
xor a
- ld [$cf0a],a ; flag that is set if something is sold or bought
+ ld [wcf0a],a ; flag that is set if something is sold or bought
.loop
xor a
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
- ld [$cc2f],a
+ ld [wPlayerMonNumber],a
inc a
- ld [$cf93],a
+ ld [wcf93],a
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld a,$15
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; do buy/sell/quit menu
- ld hl,$d128 ; pointer to this pokemart's inventory
+ ld hl,wd128 ; pointer to this pokemart's inventory
ld a,[hli]
ld l,[hl]
ld h,a ; hl = address of inventory
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jp z,.done
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
and a ; buying?
jp z,.buyMenu
dec a ; selling?
@@ -33,9 +33,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
jp z,.done
.sellMenu
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld a,$02
- ld [$d11b],a
+ ld [wd11b],a
callab Func_39bd5
ld a,[wNumBagItems]
and a
@@ -46,15 +46,15 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.sellMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld hl,wNumBagItems
ld a,l
- ld [$cf8b],a
+ ld [wcf8b],a
ld a,h
- ld [$cf8c],a
+ ld [wcf8c],a
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld [wCurrentMenuItem],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
@@ -62,10 +62,10 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
jp c,.returnToMainPokemartMenu ; if the player closed the menu
.confirmItemSale ; if the player is trying to sell a specific item
call IsKeyItem ; check if item is unsellable
- ld a,[$d124]
+ ld a,[wd124]
and a
jr nz,.unsellableItem
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
jr c,.unsellableItem
ld a,PRICEDITEMLISTMENU
@@ -77,24 +77,23 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld hl,PokemartTellSellPriceText
ld bc,$0e01
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jr z,.sellMenuLoop ; if the player pressed the B button
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
dec a
jr z,.sellMenuLoop ; if the player chose No
.sellItem
- ld a,[$cf0a] ; flag that is set if something is sold or bought
+ ld a,[wcf0a] ; flag that is set if something is sold or bought
and a
jr nz,.skipSettingFlag1
inc a
- ld [$cf0a],a
+ ld [wcf0a],a
.skipSettingFlag1
call AddAmountSoldToMoney
ld hl,wNumBagItems
@@ -111,9 +110,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
jp .returnToMainPokemartMenu
.buyMenu
ld a,$01
- ld [$cf93],a
+ ld [wcf93],a
ld a,$03
- ld [$d11b],a
+ ld [wd11b],a
callab Func_39bd5
ld hl,PokemartBuyingGreetingText
call PrintText
@@ -121,44 +120,43 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.buyMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
- ld hl,$cf7b
+ ld hl,wStringBuffer2 + 11
ld a,l
- ld [$cf8b],a
+ ld [wcf8b],a
ld a,h
- ld [$cf8c],a
+ ld [wcf8c],a
xor a
ld [wCurrentMenuItem],a
inc a
- ld [$cf93],a
+ ld [wcf93],a
inc a ; a = 2 (PRICEDITEMLISTMENU)
ld [wListMenuID],a
call DisplayListMenuID
jr c,.returnToMainPokemartMenu ; if the player closed the menu
ld a,$63
- ld [$cf97],a
+ ld [wcf97],a
xor a
ld [$ff8e],a
call DisplayChooseQuantityMenu
inc a
jr z,.buyMenuLoop ; if the player closed the choose quantity menu with the B button
- ld a,[$cf91] ; item ID
- ld [$d11e],a ; store item ID for GetItemName
+ ld a,[wcf91] ; item ID
+ ld [wd11e],a ; store item ID for GetItemName
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,PokemartTellBuyPriceText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jp z,.buyMenuLoop ; if the player pressed the B button
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
dec a
jr z,.buyMenuLoop ; if the player chose No
.buyItem
@@ -168,11 +166,11 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call AddItemToInventory
jr nc,.bagFull
call SubtractAmountPaidFromMoney
- ld a,[$cf0a] ; flag that is set if something is sold or bought
+ ld a,[wcf0a] ; flag that is set if something is sold or bought
and a
jr nz,.skipSettingFlag2
ld a,$01
- ld [$cf0a],a
+ ld [wcf0a],a
.skipSettingFlag2
ld a,(SFX_02_5a - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
@@ -183,7 +181,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.returnToMainPokemartMenu
call LoadScreenTilesFromBuffer1 ; restore save screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld hl,PokemartAnythingElseText
call PrintText
@@ -205,9 +203,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld hl,PokemartThankYouText
call PrintText
ld a,$01
- ld [$cfcb],a
+ ld [wcfcb],a
call UpdateSprites ; move sprites
- ld a,[$d07e]
+ ld a,[wd07e]
ld [wListScrollOffset],a
ret
diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm
index e8060810..8fd8f99a 100755
--- a/engine/overworld/ssanne.asm
+++ b/engine/overworld/ssanne.asm
@@ -1,10 +1,10 @@
Func_79f54: ; 79f54 (1e:5f54)
ld a, $1
- ld [$cd50], a
- ld a, [$cfcb]
+ ld [wcd50], a
+ ld a, [wcfcb]
push af
ld a, $ff
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, $e4
ld [rOBP1], a ; $ff49
call LoadSmokeTileFourTimes
@@ -26,24 +26,24 @@ Func_79f54: ; 79f54 (1e:5f54)
dec c
jr nz, .asm_79f73
pop af
- ld [$cfcb], a
+ ld [wcfcb], a
jp LoadPlayerSpriteGraphics
Func_79f92: ; 79f92 (1e:5f92)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
ld hl, PointerTable_79fb0 ; $5fb0
ld c, a
ld b, $0
add hl, bc
ld a, [hli]
- ld [$d08a], a
+ ld [wd08a], a
ld a, [hli]
ld e, a
ld a, [hli]
ld h, [hl]
ld l, a
push hl
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
ld d, $0
add hl, de
ld e, l
@@ -65,7 +65,7 @@ PointerTable_79fb0: ; 79fb0 (1e:5fb0)
dw Func_79337
LoadSmokeTileFourTimes: ; 79fc0 (1e:5fc0)
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
ld c, $4
.loop
push bc
diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm
index 8968332a..b05ddbf1 100755
--- a/engine/overworld/trainers.asm
+++ b/engine/overworld/trainers.asm
@@ -1,7 +1,7 @@
Func_567f9: ; 567f9 (15:67f9)
ld hl, wSpriteStateData1
ld de, $4
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [hli]
@@ -20,26 +20,26 @@ Func_567f9: ; 567f9 (15:67f9)
Func_56819: ; 56819 (15:6819)
ld hl, wSpriteStateData1
ld de, $0004
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [hli]
- ld [$d130], a
+ ld [wd130], a
inc hl
ld a, [hl]
- ld [$d131], a
+ ld [wd131], a
ld de, $00fe
add hl, de
ld a, [hli]
- ld [$d132], a
+ ld [wd132], a
ld a, [hl]
- ld [$d133], a
+ ld [wd133], a
ret
Func_5683d: ; 5683d (15:683d)
ld hl, wSpriteStateData1
ld de, $4
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [$ffeb]
@@ -58,26 +58,26 @@ Func_5683d: ; 5683d (15:683d)
Func_5685d: ; 5685d (15:685d)
ld hl, wSpriteStateData1
ld de, $0004
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
- ld a, [$d130]
+ ld a, [wd130]
ld [hli], a
inc hl
- ld a, [$d131]
+ ld a, [wd131]
ld [hl], a
ld de, $00fe
add hl, de
- ld a, [$d132]
+ ld a, [wd132]
ld [hli], a
- ld a, [$d133]
+ ld a, [wd133]
ld [hl], a
ret
TrainerWalkUpToPlayer: ; 56881 (15:6881)
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
call ReadTrainerScreenPosition
ld a, [wTrainerFacingDirection]
and a
@@ -127,7 +127,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld a, $c0 ; a = direction to go to
jr .writeWalkScript
.facingLeft
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld b, a
ld a, $40 ; (fixed) player screen X pos
call CalcDifference
@@ -139,11 +139,11 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld b, $0
ld a, $80 ; a = direction to go to
.writeWalkScript
- ld hl, $cc97
- ld de, $cc97
+ ld hl, wcc97
+ ld de, wcc97
call FillMemory ; write the necessary steps to reach player
ld [hl], $ff ; write end of list sentinel
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp MoveSprite_
@@ -159,10 +159,10 @@ Func_56903: ; 56903 (15:6903)
ret
; tests if this trainer is in the right position to engage the player and do so if she is.
-CheckEngagePlayer: ; 5690f (15:690f)
+TrainerEngage: ; 5690f (15:690f)
push hl
push de
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $2
ld d, $0
ld e, a
@@ -173,21 +173,21 @@ CheckEngagePlayer: ; 5690f (15:690f)
jr nz, .spriteOnScreen ; test if sprite is on screen
jp .noEngage
.spriteOnScreen
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $9
ld d, $0
ld e, a
ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x9: facing direction
- ld [$cd3f], a
+ ld [wTrainerFacingDirection], a
call ReadTrainerScreenPosition
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
ld b, a
ld a, $3c
cp b
jr z, .linedUpY
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
ld b, a
ld a, $40
cp b
@@ -195,7 +195,7 @@ CheckEngagePlayer: ; 5690f (15:690f)
xor a
jp .noEngage
.linedUpY
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
ld b, a
ld a, $40 ; (fixed) player X position
call CalcDifference ; calc distance
@@ -205,7 +205,7 @@ CheckEngagePlayer: ; 5690f (15:690f)
xor a
jr .noEngage
.linedUpX
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
ld b, a
ld a, $3c ; (fixed) player Y position
call CalcDifference ; calc distance
@@ -216,7 +216,7 @@ CheckEngagePlayer: ; 5690f (15:690f)
jp .noEngage
.engage
call CheckPlayerIsInFrontOfSprite
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
and a
jr z, .noEngage
ld hl, wFlags_0xcd60
@@ -224,29 +224,29 @@ CheckEngagePlayer: ; 5690f (15:690f)
call EngageMapTrainer
ld a, $ff
.noEngage: ; 56988 (15:6988)
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
pop de
pop hl
ret
-; reads trainer's Y position to $cd40 and X position to $cd41
+; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX
ReadTrainerScreenPosition: ; 5698e (15:698e)
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $4
ld d, $0
ld e, a
ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
- ld [$cd40], a
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld [wTrainerScreenY], a
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $6
ld d, $0
ld e, a
ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
- ld [$cd41], a
+ ld [wTrainerScreenX], a
ret
; 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
@@ -259,7 +259,7 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
jr nc, .checkIfLinedUp
jr .notInLine ; player too far away
.checkIfLinedUp
- ld a, [$cd3f] ; sprite facing direction
+ ld a, [wTrainerFacingDirection] ; sprite facing direction
cp $0 ; down
jr z, .checkXCoord
cp $4 ; up
@@ -270,13 +270,13 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
jr z, .checkYCoord
jr .notInLine
.checkXCoord
- ld a, [$cd41] ; sprite screen X position
+ ld a, [wTrainerScreenX] ; sprite screen X position
ld b, a
cp $40
jr z, .inLine
jr .notInLine
.checkYCoord
- ld a, [$cd40] ; sprite screen Y position
+ ld a, [wTrainerScreenY] ; sprite screen Y position
ld b, a
cp $3c
jr nz, .notInLine
@@ -289,10 +289,10 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
; tests if the player is in front of the sprite (rather than behind it)
CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POWER_PLANT
jp z, .engage ; XXX not sure why bypass this for power plant (maybe to get voltorb fake items to work?)
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $4
ld d, $0
ld e, a
@@ -303,38 +303,38 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
jr nz, .notOnTopmostTile ; special case if sprite is on topmost tile (Y = $fc (-4)), make it come down a block
ld a, $c
.notOnTopmostTile
- ld [$cd40], a
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld [wTrainerScreenY], a
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $6
ld d, $0
ld e, a
ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x6 (sprite screen X pos)
- ld [$cd41], a
- ld a, [$cd3f] ; facing direction
+ ld [wTrainerScreenX], a
+ ld a, [wTrainerFacingDirection] ; facing direction
cp $0
jr nz, .notFacingDown
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
cp $3c
jr c, .engage ; sprite above player
jr .noEngage ; sprite below player
.notFacingDown
cp $4
jr nz, .notFacingUp
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
cp $3c
jr nc, .engage ; sprite below player
jr .noEngage ; sprite above player
.notFacingUp
cp $8
jr nz, .notFacingLeft
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
cp $40
jr nc, .engage ; sprite right of player
jr .noEngage ; sprite left of player
.notFacingLeft
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
cp $40
jr nc, .noEngage ; sprite right of player
.engage
@@ -343,5 +343,5 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
.noEngage
xor a
.done
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
ret
diff --git a/engine/palettes.asm b/engine/palettes.asm
index 71f01a97..eafd8ef6 100755
--- a/engine/palettes.asm
+++ b/engine/palettes.asm
@@ -1,9 +1,9 @@
Func_71ddf: ; 71ddf (1c:5ddf)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, b
cp $ff
jr nz, .asm_71dea
- ld a, [$cf1c]
+ ld a, [wcf1c]
.asm_71dea
cp $fc
jp z, Func_71fc2
@@ -27,23 +27,23 @@ SendPalPacket_Black: ; 71dff (1c:5dff)
; uses PalPacket_Empty to build a packet based on mon IDs and health color
BuildBattlePalPacket: ; 71e06 (1c:5e06)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
ld a, [W_PLAYERBATTSTATUS3]
- ld hl, W_PLAYERMONID
+ ld hl, wBattleMonSpecies
call DeterminePaletteID
ld b, a
ld a, [W_ENEMYBATTSTATUS3]
- ld hl, W_ENEMYMONID
+ ld hl, wEnemyMonSpecies2
call DeterminePaletteID
ld c, a
- ld hl, $cf2e
- ld a, [$cf1d]
+ ld hl, wcf2e
+ ld a, [wcf1d]
add PAL_GREENBAR
ld [hli], a
inc hl
- ld a, [$cf1e]
+ ld a, [wcf1e]
add PAL_GREENBAR
ld [hli], a
inc hl
@@ -52,10 +52,10 @@ BuildBattlePalPacket: ; 71e06 (1c:5e06)
inc hl
ld a, c
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_Battle
ld a, $1
- ld [$cf1c], a
+ ld [wcf1c], a
ret
SendPalPacket_TownMap: ; 71e48 (1c:5e48)
@@ -66,42 +66,42 @@ SendPalPacket_TownMap: ; 71e48 (1c:5e48)
; uses PalPacket_Empty to build a packet based the mon ID
BuildStatusScreenPalPacket: ; 71e4f (1c:5e4f)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
- ld a, [$cf91]
+ ld a, [wcf91]
cp VICTREEBEL + 1
jr c, .pokemon
ld a, $1 ; not pokemon
.pokemon
call DeterminePaletteIDOutOfBattle
push af
- ld hl, $cf2e
- ld a, [$cf25]
+ ld hl, wcf2e
+ ld a, [wcf25]
add $1f
ld [hli], a
inc hl
pop af
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_StatusScreen
ret
SendPalPacket_PartyMenu: ; 71e7b (1c:5e7b)
ld hl, PalPacket_PartyMenu
- ld de, $cf2e
+ ld de, wcf2e
ret
SendPalPacket_Pokedex: ; 71e82 (1c:5e82)
ld hl, PalPacket_Pokedex
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
- ld a, [$cf91]
+ ld a, [wcf91]
call DeterminePaletteIDOutOfBattle
- ld hl, $cf30
+ ld hl, wcf30
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_Pokedex
ret
@@ -130,13 +130,13 @@ SendPalPacket_GameFreakIntro: ; 71ebb (1c:5ebb)
ld hl, PalPacket_GameFreakIntro
ld de, BlkPacket_GameFreakIntro
ld a, $8
- ld [$cf1c], a
+ ld [wcf1c], a
ret
; uses PalPacket_Empty to build a packet based on the current map
BuildOverworldPalPacket: ; 71ec7 (1c:5ec7)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
ld a, [W_CURMAPTILESET]
@@ -163,11 +163,11 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7)
ld a, PAL_ROUTE - 1
.town
inc a ; a town's pallete ID is its map ID + 1
- ld hl, $cf2e
+ ld hl, wcf2e
ld [hld], a
ld de, BlkPacket_WholeScreen
ld a, $9
- ld [$cf1c], a
+ ld [wcf1c], a
ret
.PokemonTowerOrAgatha
ld a, PAL_GREYMON - 1
@@ -184,7 +184,7 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7)
SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17)
push bc
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
pop bc
@@ -192,21 +192,21 @@ SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17)
and a
ld a, $1e
jr nz, .asm_71f31
- ld a, [$cf1d]
+ ld a, [wcf1d]
call DeterminePaletteIDOutOfBattle
.asm_71f31
- ld [$cf2e], a
- ld hl, $cf2d
+ ld [wcf2e], a
+ ld hl, wcf2d
ld de, BlkPacket_WholeScreen
ret
BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b)
ld hl, BlkPacket_TrainerCard
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $40
call CopyData
ld de, LoopCounts_71f8f
- ld hl, $cc5d
+ ld hl, wcc5d
ld a, [W_OBTAINEDBADGES]
ld c, $8
.asm_71f52
@@ -235,7 +235,7 @@ BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b)
dec c
jr nz, .asm_71f52
ld hl, PalPacket_TrainerCard
- ld de, $cc5b
+ ld de, wcc5b
ret
PointerTable_71f73: ; 71f73 (1c:5f73)
@@ -264,14 +264,13 @@ DeterminePaletteID: ; 71f97 (1c:5f97)
ret nz
ld a, [hl]
DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d)
- ld [$D11E], a
+ ld [wd11e], a
and a
jr z, .idZero
push bc
- ld a, $3A
- call Predef ; turn Pokemon ID number into Pokedex number
+ predef IndexToPokedex ; turn Pokemon ID number into Pokedex number
pop bc
- ld a, [$D11E]
+ ld a, [wd11e]
.idZero
ld e, a
ld d, $00
@@ -282,13 +281,13 @@ DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d)
SendBlkPacket_PartyMenu: ; 71fb6 (1c:5fb6)
ld hl, BlkPacket_PartyMenu ; $62f4
- ld de, $cf2e
+ ld de, wcf2e
ld bc, $30
jp CopyData
Func_71fc2: ; 71fc2 (1c:5fc2)
- ld hl, $cf1f
- ld a, [$cf2d]
+ ld hl, wcf1f
+ ld a, [wcf2d]
ld e, a
ld d, $0
add hl, de
@@ -304,9 +303,9 @@ Func_71fc2: ; 71fc2 (1c:5fc2)
ld e, $f
.asm_71fdb
push de
- ld hl, $cf37
+ ld hl, wcf37
ld bc, $6
- ld a, [$cf2d]
+ ld a, [wcf2d]
call AddNTimes
pop de
ld [hl], e
@@ -379,14 +378,14 @@ SendSGBPacket: ; 71feb (1c:5feb)
; else send 16 more bytes
jr .loop2
-LoadSGBBorderAndPalettes: ; 7202b (1c:602b)
+LoadSGB: ; 7202b (1c:602b)
xor a
- ld [$cf1b], a
+ ld [wcf1b], a
call Func_7209b
ret nc
ld a, $1
- ld [$cf1b], a
- ld a, [$cf1a]
+ ld [wcf1b], a
+ ld a, [wGBC]
and a
jr z, .asm_7203f
ret
@@ -395,22 +394,22 @@ LoadSGBBorderAndPalettes: ; 7202b (1c:602b)
call Func_72075
ei
ld a, $1
- ld [$cf2d], a
- ld de, PalPacket_72508
+ ld [wcf2d], a
+ ld de, ChrTrnPacket
ld hl, SGBBorderGraphics
call Func_7210b
xor a
- ld [$cf2d], a
- ld de, PalPacket_72518
+ ld [wcf2d], a
+ ld de, PctTrnPacket
ld hl, BorderPalettes
call Func_7210b
xor a
- ld [$cf2d], a
- ld de, PalPacket_724d8
+ ld [wcf2d], a
+ ld de, PalTrnPacket
ld hl, SuperPalettes
call Func_7210b
- call ZeroVram
- ld hl, PalPacket_72538
+ call ClearVram
+ ld hl, MaskEnCancelPacket
jp SendSGBPacket
Func_72075: ; 72075 (1c:6075)
@@ -431,18 +430,18 @@ Func_72075: ; 72075 (1c:6075)
ret
PointerTable_72089: ; 72089 (1c:6089)
- dw PalPacket_72528
- dw PalPacket_72548
- dw PalPacket_72558
- dw PalPacket_72568
- dw PalPacket_72578
- dw PalPacket_72588
- dw PalPacket_72598
- dw PalPacket_725a8
- dw PalPacket_725b8
+ dw MaskEnFreezePacket
+ dw DataSnd_72548
+ dw DataSnd_72558
+ dw DataSnd_72568
+ dw DataSnd_72578
+ dw DataSnd_72588
+ dw DataSnd_72598
+ dw DataSnd_725a8
+ dw DataSnd_725b8
Func_7209b: ; 7209b (1c:609b)
- ld hl, PalPacket_724f8
+ ld hl, MltReq2Packet
di
call SendSGBPacket
ld a, $1
@@ -493,7 +492,7 @@ Func_7209b: ; 7209b (1c:609b)
ret
Func_72102: ; 72102 (1c:6102)
- ld hl, PalPacket_724e8
+ ld hl, MltReq1Packet
call SendSGBPacket
jp Wait7000
@@ -503,8 +502,8 @@ Func_7210b: ; 7210b (1c:610b)
call DisableLCD
ld a, $e4
ld [rBGP], a ; $ff47
- ld de, $8800
- ld a, [$cf2d]
+ ld de, vChars1
+ ld a, [wcf2d]
and a
jr z, .asm_72122
call Func_72188
@@ -513,7 +512,7 @@ Func_7210b: ; 7210b (1c:610b)
ld bc, $1000
call CopyData
.asm_72128
- ld hl, $9800
+ ld hl, vBGMap0
ld de, $c
ld a, $80
ld c, $d
@@ -551,7 +550,7 @@ Wait7000: ; 7214a (1c:614a)
ret
Func_72156: ; 72156 (1c:6156)
- ld a, [$cf1a]
+ ld a, [wGBC]
and a
jr z, .asm_72165
push de
diff --git a/engine/play_time.asm b/engine/play_time.asm
index 6eb8bc17..db7d6f67 100755
--- a/engine/play_time.asm
+++ b/engine/play_time.asm
@@ -1,43 +1,43 @@
Func_18dee: ; 18dee (6:4dee)
call Func_18e36
- ld a, [$d732]
+ ld a, [wd732]
bit 0, a
ret z
- ld a, [W_PLAYTIMEMINUTES] ; $da42
+ ld a, [W_PLAYTIMEMINUTES] ; wda42
and a
ret nz
- ld a, [W_PLAYTIMEFRAMES] ; $da45
+ ld a, [W_PLAYTIMEFRAMES] ; wda45
inc a
- ld [W_PLAYTIMEFRAMES], a ; $da45
+ ld [W_PLAYTIMEFRAMES], a ; wda45
cp 60
ret nz
xor a
- ld [W_PLAYTIMEFRAMES], a ; $da45
- ld a, [W_PLAYTIMESECONDS] ; $da44
+ ld [W_PLAYTIMEFRAMES], a ; wda45
+ ld a, [W_PLAYTIMESECONDS] ; wda44
inc a
- ld [W_PLAYTIMESECONDS], a ; $da44
+ ld [W_PLAYTIMESECONDS], a ; wda44
cp 60
ret nz
xor a
- ld [W_PLAYTIMESECONDS], a ; $da44
- ld a, [$da43]
+ ld [W_PLAYTIMESECONDS], a ; wda44
+ ld a, [W_PLAYTIMEMINUTES + 1]
inc a
- ld [$da43], a
+ ld [W_PLAYTIMEMINUTES + 1], a
cp 60
ret nz
xor a
- ld [$da43], a
- ld a, [$da41]
+ ld [W_PLAYTIMEMINUTES + 1], a
+ ld a, [W_PLAYTIMEHOURS + 1]
inc a
- ld [$da41], a
+ ld [W_PLAYTIMEHOURS + 1], a
cp $ff
ret nz
ld a, $ff
- ld [W_PLAYTIMEMINUTES], a ; $da42
+ ld [W_PLAYTIMEMINUTES], a ; wda42
ret
Func_18e36: ; 18e36 (6:4e36)
- ld a, [$d13a]
+ ld a, [wd13a]
and a
jr nz, .asm_18e40
ld a, $ff
@@ -45,17 +45,17 @@ Func_18e36: ; 18e36 (6:4e36)
.asm_18e40
dec a
.asm_18e41
- ld [$d13a], a
+ ld [wd13a], a
and a
ret nz
- ld a, [$d730]
+ ld a, [wd730]
res 1, a
res 2, a
bit 5, a
res 5, a
- ld [$d730], a
+ ld [wd730], a
ret z
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
ret
diff --git a/engine/pokedex_rating.asm b/engine/pokedex_rating.asm
index f3aeeb42..080025c6 100755
--- a/engine/pokedex_rating.asm
+++ b/engine/pokedex_rating.asm
@@ -2,12 +2,12 @@ DisplayDexRating: ; 44169 (11:4169)
ld hl, wPokedexSeen
ld b, wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld a, [$D11E] ; result of CountSetBits (seen count)
+ ld a, [wd11e] ; result of CountSetBits (seen count)
ld [$FFDB], a
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$D11E] ; result of CountSetBits (own count)
+ ld a, [wd11e] ; result of CountSetBits (own count)
ld [$FFDC], a
ld hl, DexRatingsTable
.findRating
@@ -23,10 +23,10 @@ DisplayDexRating: ; 44169 (11:4169)
ld a, [hli]
ld h, [hl]
ld l, a ; load text pointer into hl
- ld a, [$D747]
+ ld a, [wd747]
bit 3, a
res 3, a
- ld [$D747], a
+ ld [wd747], a
jr nz, .label3
push hl
ld hl, PokedexRatingText_441cc
@@ -36,7 +36,7 @@ DisplayDexRating: ; 44169 (11:4169)
callba Func_7d13b
jp WaitForTextScrollButtonPress ; wait for button press
.label3
- ld de, $CC5B
+ ld de, wcc5b
ld a, [$FFDB]
ld [de], a
inc de
diff --git a/engine/predefs.asm b/engine/predefs.asm
index 4550a562..3ac99585 100755
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -1,25 +1,20 @@
-GetPredefPointer: ; 4fe49 (13:7e49)
-; stores hl in $CC4F,$CC50
-; stores de in $CC51,$CC52
-; stores bc in $CC53,$CC54
-; grabs a byte "n" from $CC4E,
-; and gets the nth (3-byte) pointer in PredefPointers
-; stores the bank of said pointer in [$D0B7]
-; stores the pointer in hl and returns
- ; ld $CC4F,hl
+GetPredefPointer:
+; Store the contents of the register
+; pairs (hl, de, bc) at wPredefRegisters.
+; Then put the bank and address of predef
+; wPredefID in [wPredefBank] and hl.
+
ld a,h
- ld [$CC4F],a
+ ld [wPredefRegisters],a
ld a,l
- ld [$CC50],a
+ ld [wPredefRegisters + 1],a
- ; ld $CC51,de
- ld hl,$CC51
+ ld hl,wPredefRegisters + 2
ld a,d
ld [hli],a
ld a,e
ld [hli],a
- ; ld $CC53,bc
ld a,b
ld [hli],a
ld [hl],c
@@ -27,11 +22,10 @@ GetPredefPointer: ; 4fe49 (13:7e49)
ld hl,PredefPointers
ld de,0
- ; de = 3 * [$CC4E]
- ld a,[$CC4E]
+ ld a,[wPredefID]
ld e,a
- add a,a
- add a,e
+ add a
+ add e
ld e,a
jr nc,.next
inc d
@@ -43,7 +37,7 @@ GetPredefPointer: ; 4fe49 (13:7e49)
; get bank of predef routine
ld a,[de]
- ld [$D0B7],a
+ ld [wPredefBank],a
; get pointer
inc de
@@ -55,129 +49,105 @@ GetPredefPointer: ; 4fe49 (13:7e49)
ret
-PredefPointers: ; 4fe79 (13:7e79)
+PredefPointers:: ; 4fe79 (13:7e79)
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
- dbw BANK(Func_3cd60),Func_3cd60
- dbw BANK(Func_3f0c6),Func_3f0c6
- dbw BANK(Func_3f073),Func_3f073
- dbw BANK(ScaleSpriteByTwo), ScaleSpriteByTwo
- db BANK(LoadMonBackSprite) ; dbw macro gives an error for some reason
- dw LoadMonBackSprite
- dbw BANK(Func_79aba),Func_79aba
- dbw BANK(Func_f132),Func_f132
-HealPartyPredef: ; 4fe8e (13:7e8e)
- dbw BANK(HealParty),HealParty
-MoveAnimationPredef: ; 4fe91 (13:7e91)
- dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f81d),Func_f81d
- dbw BANK(Func_f836),Func_f836
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f71e),Func_f71e
- db BANK(InitializePlayerData)
- dw InitializePlayerData
- dbw BANK(HandleBitArray),HandleBitArray
- db BANK(RemoveMissableObject)
- dw RemoveMissableObject
- db BANK(IsMissableObjectHidden)
- dw IsMissableObjectHidden
- dbw BANK(Func_c69c),Func_c69c
- db BANK(AnyPlayerPokemonAliveCheck)
- dw AnyPlayerPokemonAliveCheck
- db BANK(AddMissableObject)
- dw AddMissableObject
- db BANK(AddMissableObject)
- dw AddMissableObject
- dbw BANK(Func_ee9e),Func_ee9e
- db BANK(InitializePlayerData)
- dw InitializePlayerData
- dbw BANK(Func_c754),Func_c754
- dbw BANK(Func_3af5b),Func_3af5b
- dbw BANK(LearnMove),LearnMove
- dbw BANK(IsItemInBag_),IsItemInBag_; 1C, used in Pokémon Tower
+ add_predef Func_3cd60
+ add_predef Func_3f0c6
+ add_predef Func_3f073
+ add_predef ScaleSpriteByTwo
+ add_predef LoadMonBackPic
+ add_predef Func_79aba
+ add_predef Func_f132
+ add_predef HealParty
+ add_predef MoveAnimation; 08 play move animation
+ add_predef DivideBCDPredef
+ add_predef DivideBCDPredef2
+ add_predef AddBCDPredef
+ add_predef SubBCDPredef
+ add_predef DivideBCDPredef3
+ add_predef DivideBCDPredef4
+ add_predef InitPlayerData
+ add_predef FlagActionPredef
+ add_predef HideObject
+ add_predef IsObjectHidden
+ add_predef Func_c69c
+ add_predef AnyPartyAlive
+ add_predef ShowObject
+ add_predef ShowObject2
+ add_predef Func_ee9e
+ add_predef InitPlayerData2
+ add_predef Func_c754
+ add_predef Func_3af5b
+ add_predef LearnMove
+ add_predef IsItemInBag_ ; 1C, used in Pokémon Tower
dbw $03,Func_3eb5 ; for these two, the bank number is actually 0
dbw $03,GiveItem
- dbw BANK(Func_480eb),Func_480eb
- dbw BANK(Func_f8ba),Func_f8ba
- dbw BANK(Func_480ff),Func_480ff
- dbw BANK(Func_f929),Func_f929
- dbw BANK(Func_f9a0),Func_f9a0
- dbw BANK(Func_48125),Func_48125
- dbw BANK(UpdateHPBar),UpdateHPBar
- db BANK(UpdateHPBar_LoadRegisters)
- dw UpdateHPBar_LoadRegisters
- dbw BANK(Func_5ab0),Func_5ab0
- dbw BANK(Func_3ed02),Func_3ed02
- db BANK(DisplayPokedexMenu_)
- dw DisplayPokedexMenu_
- dbw BANK(Func_3ad1c),Func_3ad1c
- dbw BANK(SaveSAVtoSRAM0),SaveSAVtoSRAM0
- dbw BANK(InitOpponent),InitOpponent
- dbw BANK(Func_5a5f),Func_5a5f
- dbw BANK(DrawBadges), DrawBadges
- dbw BANK(Func_410f3),Func_410f3
- dbw BANK(Func_7096d),Func_7096d
- dbw BANK(Func_79dda),Func_79dda
- dbw BANK(PlayIntro),PlayIntro
- dbw BANK(Func_79869),Func_79869
- dbw BANK(Func_70b5d),Func_70b5d
- dbw BANK(Func_c586),Func_c586
- dbw BANK(StatusScreen),StatusScreen ; 37 0x12953
- dbw BANK(StatusScreen2),StatusScreen2 ; 38
- dbw BANK(Func_410e2),Func_410e2
- db BANK(CheckEngagePlayer)
- dw CheckEngagePlayer
- dbw BANK(IndexToPokedex),IndexToPokedex
- dbw BANK(Predef3B),Predef3B; 3B display pic?
- dbw BANK(UsedCut),UsedCut
- dbw BANK(ShowPokedexData),ShowPokedexData
- dbw BANK(WriteMonMoves),WriteMonMoves
- dbw BANK(SaveSAV),SaveSAV
- db BANK(LoadSGBBorderAndPalettes)
- dw LoadSGBBorderAndPalettes
- dbw BANK(Func_f113),Func_f113
- dbw BANK(SetPartyMonTypes),SetPartyMonTypes
- db BANK(TestMonMoveCompatibility)
- dw TestMonMoveCompatibility
- dbw BANK(TMToMove),TMToMove
- dbw BANK(Func_71ddf),Func_71ddf
- db BANK(DisplayStarterMonDex)
- dw DisplayStarterMonDex; 46 load dex screen
- db BANK(_AddPokemonToParty)
- dw _AddPokemonToParty
- dbw BANK(UpdateHPBar),UpdateHPBar
- dbw BANK(Func_3cdec),Func_3cdec
- dbw BANK(LoadTownMap_Nest),LoadTownMap_Nest
- dbw BANK(Func_27d6b),Func_27d6b
- db BANK(PrintEmotionBubble)
- dw PrintEmotionBubble; 4C player exclamation
- dbw BANK(Func_5aaf),Func_5aaf; return immediately
- db BANK(AskForMonNickname)
- dw AskForMonNickname
- dbw BANK(PewterGuys),PewterGuys
- dbw BANK(SaveSAVtoSRAM2),SaveSAVtoSRAM2
- dbw BANK(LoadSAVCheckSum2),LoadSAVCheckSum2
- dbw BANK(LoadSAV),LoadSAV
- dbw BANK(SaveSAVtoSRAM1),SaveSAVtoSRAM1
- dbw BANK(Predef54),Predef54 ; 54 initiate trade
- db BANK(HallOfFameComputer)
- dw HallOfFameComputer
- dbw BANK(DisplayDexRating),DisplayDexRating
- db $1E ; uses wrong bank number
- dw _DoFlyOrTeleportAwayGraphics
- db $1E ; uses wrong bank number
- dw Func_70510
- dbw BANK(Func_c5be),Func_c5be
- dbw BANK(Func_c60b),Func_c60b
- db BANK(PrintUsedStrengthText)
- dw PrintUsedStrengthText
- dbw BANK(PickupItem),PickupItem
- dbw BANK(Func_27d98),Func_27d98
- dbw BANK(LoadMovePPs),LoadMovePPs
-DrawHPBarPredef: ; 4ff96 (13:7f96)
- dbw BANK(Func_128ef),Func_128ef ; 5F draw HP bar
- dbw BANK(Func_128f6),Func_128f6
- dbw BANK(Func_1c9c6),Func_1c9c6
- dbw BANK(OaksAideScript),OaksAideScript
+ add_predef Func_480eb
+ add_predef Func_f8ba
+ add_predef Func_480ff
+ add_predef Func_f929
+ add_predef Func_f9a0
+ add_predef Func_48125
+ add_predef UpdateHPBar
+ add_predef HPBarLength
+ add_predef Func_5ab0
+ add_predef Func_3ed02
+ add_predef ShowPokedexMenu
+ add_predef Func_3ad1c
+ add_predef SaveSAVtoSRAM0
+ add_predef InitOpponent
+ add_predef Func_5a5f
+ add_predef DrawBadges
+ add_predef Func_410f3
+ add_predef BattleTransition
+ add_predef Func_79dda
+ add_predef PlayIntro
+ add_predef Func_79869
+ add_predef FlashScreen
+ add_predef Func_c586
+ add_predef StatusScreen
+ add_predef StatusScreen2
+ add_predef Func_410e2
+ add_predef TrainerEngage
+ add_predef IndexToPokedex
+ add_predef Predef3B; 3B display pic?
+ add_predef UsedCut
+ add_predef ShowPokedexData
+ add_predef WriteMonMoves
+ add_predef SaveSAV
+ add_predef LoadSGB
+ add_predef Func_f113
+ add_predef SetPartyMonTypes
+ add_predef CanLearnTM
+ add_predef TMToMove
+ add_predef Func_71ddf
+ add_predef StarterDex ; 46
+ add_predef _AddPartyMon
+ add_predef UpdateHPBar2
+ add_predef Func_3cdec
+ add_predef LoadTownMap_Nest
+ add_predef Func_27d6b
+ add_predef EmotionBubble; 4C player exclamation
+ add_predef Func_5aaf; return immediately
+ add_predef AskName
+ add_predef PewterGuys
+ add_predef SaveSAVtoSRAM2
+ add_predef LoadSAVCheckSum2
+ add_predef LoadSAV
+ add_predef SaveSAVtoSRAM1
+ add_predef Predef54 ; 54 initiate trade
+ add_predef HallOfFamePC
+ add_predef DisplayDexRating
+ dbw $1E, _LeaveMapAnim ; wrong bank
+ dbw $1E, Func_70510 ; wrong bank
+ add_predef Func_c5be
+ add_predef Func_c60b
+ add_predef PrintStrengthTxt
+ add_predef PickupItem
+ add_predef Func_27d98
+ add_predef LoadMovePPs
+ add_predef DrawHP ; 5F
+ add_predef Func_128f6
+ add_predef Func_1c9c6
+ add_predef OaksAideScript
diff --git a/engine/predefs12.asm b/engine/predefs12.asm
index ac305c04..380cfc1c 100755
--- a/engine/predefs12.asm
+++ b/engine/predefs12.asm
@@ -1,5 +1,5 @@
Func_480eb: ; 480eb (12:40eb)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, [rBGP] ; $ff47
or b
ld [rBGP], a ; $ff47
@@ -11,9 +11,9 @@ Func_480eb: ; 480eb (12:40eb)
ret
Func_480ff: ; 480ff (12:40ff)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, $1
- ld [$d0a0], a
+ ld [wd0a0], a
xor a
.asm_48108
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
@@ -23,7 +23,7 @@ Func_480ff: ; 480ff (12:40ff)
ld a, b
jr nz, .asm_48108
xor a
- ld [$d0a0], a
+ ld [wd0a0], a
ret
Func_48119: ; 48119 (12:4119)
@@ -35,7 +35,7 @@ Func_48119: ; 48119 (12:4119)
jp DelayFrames
Func_48125: ; 48125 (12:4125)
- call Load16BitRegisters
+ call GetPredefRegisters
xor a
.asm_48129
ld [$ff97], a
diff --git a/engine/predefs17.asm b/engine/predefs17.asm
index d261804a..74977ee8 100755
--- a/engine/predefs17.asm
+++ b/engine/predefs17.asm
@@ -1,10 +1,9 @@
; this function temporarily makes the starters (and Ivysaur) seen
; so that the full Pokedex information gets displayed in Oak's lab
-DisplayStarterMonDex: ; 5c0dc (17:40dc)
+StarterDex: ; 5c0dc (17:40dc)
ld a, %01001011 ; set starter flags
- ld [wPokedexOwned], a ; $d2f7
- ld a, $3d
- call Predef ; indirect jump to ShowPokedexData (402d1 (10:42d1))
+ ld [wPokedexOwned], a ; wPokedexOwned
+ predef ShowPokedexData
xor a ; unset starter flags
- ld [wPokedexOwned], a ; $d2f7
+ ld [wPokedexOwned], a ; wPokedexOwned
ret
diff --git a/engine/predefs17_2.asm b/engine/predefs17_2.asm
index a1c4ff30..a2dac120 100755
--- a/engine/predefs17_2.asm
+++ b/engine/predefs17_2.asm
@@ -1,10 +1,10 @@
-; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in $d11e
+; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
SetPartyMonTypes: ; 5db5e (17:5b5e)
- call Load16BitRegisters
- ld bc, W_PARTYMON1_TYPE1 - W_PARTYMON1DATA ; $5
+ call GetPredefRegisters
+ ld bc, wPartyMon1Type - wPartyMon1 ; $5
add hl, bc
- ld a, [$d11e]
- ld [$d0b5], a
+ ld a, [wd11e]
+ ld [wd0b5], a
push hl
call GetMonHeader
pop hl
diff --git a/engine/predefs7.asm b/engine/predefs7.asm
index a52a71cc..469fe0c4 100755
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -1,28 +1,28 @@
Func_1c9c6: ; 1c9c6 (7:49c6)
ld hl, WhichFloorText
call PrintText
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
- ld a, [wListScrollOffset] ; $cc36
+ ld [wcf8c], a
+ ld a, [wListScrollOffset] ; wcc36
push af
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld [$cf93], a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld [wcf93], a
ld a, $4
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
pop bc
ld a, b
- ld [wListScrollOffset], a ; $cc36
+ ld [wListScrollOffset], a ; wcc36
ret c
- ld hl, $d126
+ ld hl, wd126
set 7, [hl]
- ld hl, $cc5b
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wcc5b
+ ld a, [wWhichPokemon] ; wWhichPokemon
add a
ld d, $0
ld e, a
@@ -31,7 +31,7 @@ Func_1c9c6: ; 1c9c6 (7:49c6)
ld b, a
ld a, [hl]
ld c, a
- ld hl, $d3af
+ ld hl, wd3af
call Func_1ca0d
Func_1ca0d: ; 1ca0d (7:4a0d)
diff --git a/engine/random.asm b/engine/random.asm
new file mode 100755
index 00000000..2fc83f6f
--- /dev/null
+++ b/engine/random.asm
@@ -0,0 +1,13 @@
+Random_::
+; Generate a random 16-bit value.
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomAdd]
+ adc b
+ ld [hRandomAdd], a
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomSub]
+ sbc b
+ ld [hRandomSub], a
+ ret
diff --git a/engine/rng.asm b/engine/rng.asm
deleted file mode 100755
index a0e0daa7..00000000
--- a/engine/rng.asm
+++ /dev/null
@@ -1,13 +0,0 @@
-GenRandom_: ; 13a8f (4:7a8f)
-; generate a random 16-bit integer and store it at $FFD3,$FFD4
- ld a,[rDIV]
- ld b,a
- ld a,[H_RAND1]
- adc b
- ld [H_RAND1],a
- ld a,[rDIV]
- ld b,a
- ld a,[H_RAND2]
- sbc b
- ld [H_RAND2],a
- ret
diff --git a/engine/save.asm b/engine/save.asm
index bf2ec037..fcfbd133 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -13,7 +13,7 @@ LoadSAV: ; 735e8 (1c:75e8)
ld a, $2 ; good checksum
jr .goodsum
.badsum
- ld hl, $d730
+ ld hl, wd730
push hl
set 6, [hl]
ld hl, FileDataDestroyedText
@@ -24,7 +24,7 @@ LoadSAV: ; 735e8 (1c:75e8)
res 6, [hl]
ld a, $1 ; bad checksum
.goodsum
- ld [$d088], a ; checksum flag
+ ld [wd088], a ; checksum flag
ret
FileDataDestroyedText: ; 7361e (1c:761e)
@@ -54,14 +54,14 @@ LoadSAVCheckSum: ; 73623 (1c:7623)
.Func_73652 ; 73652 (1c:7652)
ld hl, $a598
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
ld hl, $a5a3
- ld de, wPokedexOwned ; $d2f7
+ ld de, wPokedexOwned ; wPokedexOwned
ld bc, $789
call CopyData
- ld hl, W_CURMAPTILESET ; $d367
+ ld hl, W_CURMAPTILESET ; W_CURMAPTILESET
set 7, [hl]
ld hl, $ad2c
ld de, wSpriteStateData1
@@ -70,7 +70,7 @@ LoadSAVCheckSum: ; 73623 (1c:7623)
ld a, [$b522]
ld [$ffd7], a
ld hl, $b0c0
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld bc, $462
call CopyData
and a
@@ -90,7 +90,7 @@ LoadSAVCheckSum1: ; 73690 (1c:7690)
cp c
jr nz, SAVBadCheckSum
ld hl, $b0c0
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld bc, $462
call CopyData
and a
@@ -110,11 +110,11 @@ LoadSAVCheckSum2: ; 736bd (1c:76bd)
cp c
jp nz, SAVBadCheckSum
ld hl, $af2c
- ld de, W_NUMINPARTY ; $d163
+ ld de, wPartyCount ; wPartyCount
ld bc, $194
call CopyData
ld hl, $a5a3
- ld de, wPokedexOwned ; $d2f7
+ ld de, wPokedexOwned ; wPokedexOwned
ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData
and a
@@ -140,7 +140,7 @@ SaveSAV: ;$770a
call SaveSAVConfirm
and a ;|0 = Yes|1 = No|
ret nz
- ld a,[$d088]
+ ld a,[wd088]
dec a
jr z,.save
call SAVCheckRandomID
@@ -151,12 +151,10 @@ SaveSAV: ;$770a
ret nz
.save ;$772d
call SaveSAVtoSRAM ;$7848
- FuncCoord 1,13
- ld hl,Coord
+ hlCoord 1, 13
ld bc,$0412
call ClearScreenArea ; clear area 4x12 starting at 13,1
- FuncCoord 1,14
- ld hl,Coord
+ hlCoord 1, 14
ld de,NowSavingString
call PlaceString
ld c,$78
@@ -174,13 +172,12 @@ NowSavingString:
SaveSAVConfirm: ; 73768 (1c:7768)
call PrintText
- FuncCoord 0, 7
- ld hl,Coord
+ hlCoord 0, 7
ld bc,$0801 ;arrow's coordinates |b = Y|c = X|
ld a,$14 ;one line shifting ($28 = 2 lines)
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ;handle Yes/No KeyPress
- ld a,[$cc26]
+ ld a,[wCurrentMenuItem]
ret
WouldYouLikeToSaveText: ; 0x7377d
@@ -201,11 +198,11 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c)
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
ld de, $a598
ld bc, $b
call CopyData
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld de, $a5a3
ld bc, $789
call CopyData
@@ -213,7 +210,7 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c)
ld de, $ad2c
ld bc, $200
call CopyData
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
ld de, $b0c0
ld bc, $462
call CopyData
@@ -235,7 +232,7 @@ SaveSAVtoSRAM1: ; 737e2 (1c:77e2)
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
ld de, $b0c0
ld bc, $462
call CopyData
@@ -254,7 +251,7 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
ld de, $af2c
ld bc, $194
call CopyData
@@ -273,7 +270,7 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
SaveSAVtoSRAM: ; 73848 (1c:7848)
ld a, $2
- ld [$d088], a
+ ld [wd088], a
call SaveSAVtoSRAM0
call SaveSAVtoSRAM1
jp SaveSAVtoSRAM2
@@ -312,7 +309,7 @@ Func_73863: ; 73863 (1c:7863)
Func_7387b: ; 7387b (1c:787b)
ld hl, PointerTable_73895 ; $7895
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $6
ld b, $2
@@ -341,10 +338,10 @@ Func_738a1:: ; 738a1 (1c:78a1)
ld hl, WhenYouChangeBoxText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
ret nz
- ld hl, $d5a0
+ ld hl, wd5a0
bit 7, [hl]
call z, Func_73a29
call Func_7393f
@@ -359,16 +356,16 @@ Func_738a1:: ; 738a1 (1c:78a1)
call Func_7387b
ld e, l
ld d, h
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_7390e
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
set 7, a
- ld [$d5a0], a
+ ld [wd5a0], a
call Func_7387b
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
call Func_7390e
- ld hl, W_MAPTEXTPTR ; $d36c
- ld de, wWhichTrade ; $cd3d
+ ld hl, W_MAPTEXTPTR ; wd36c
+ ld de, wWhichTrade ; wWhichTrade
ld a, [hli]
ld [de], a
inc de
@@ -376,7 +373,7 @@ Func_738a1:: ; 738a1 (1c:78a1)
ld [de], a
call Func_3f05
call SaveSAVtoSRAM
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
call Func_3f0f
ld a, (SFX_02_5d - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
@@ -416,61 +413,55 @@ Func_7393f: ; 7393f (1c:793f)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $b
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $1
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $c
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [$cc37], a
- ld a, [$d5a0]
+ ld [wcc37], a
+ ld a, [wd5a0]
and $7f
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld hl, wTileMap
ld b, $2
ld c, $9
call TextBoxBorder
ld hl, ChooseABoxText
call PrintText
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
+ hlCoord 11, 0
ld b, $c
ld c, $7
call TextBoxBorder
ld hl, $fff6
set 2, [hl]
ld de, BoxNames ; $79d9
- FuncCoord 13, 1 ; $c3c1
- ld hl, Coord
+ hlCoord 13, 1
call PlaceString
ld hl, $fff6
res 2, [hl]
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_739a6
sub $9
- FuncCoord 8, 2 ; $c3d0
- ld hl, Coord
+ hlCoord 8, 2
ld [hl], $f7
add $f6
jr .asm_739a8
.asm_739a6
add $f7
.asm_739a8
- FuncCoord 9, 2 ; $c3d1
- ld [Coord], a
- FuncCoord 1, 2 ; $c3c9
- ld hl, Coord
+ Coorda 9, 2
+ hlCoord 1, 2
ld de, BoxNoText
call PlaceString
call Func_73a84
- FuncCoord 18, 1 ; $c3c6
- ld hl, Coord
- ld de, wWhichTrade ; $cd3d
+ hlCoord 18, 1
+ ld de, wWhichTrade ; wWhichTrade
ld bc, $14
ld a, $c
.asm_739c2
@@ -554,7 +545,7 @@ Func_73a7f: ; 73a7f (1c:7a7f)
ret
Func_73a84: ; 73a84 (1c:7a84)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
push hl
ld a, $a
ld [$0], a
@@ -570,12 +561,12 @@ Func_73a84: ; 73a84 (1c:7a84)
ld [$6000], a
ld [$0], a
pop hl
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
ld c, a
ld b, $0
add hl, bc
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
ld [hl], a
ret
@@ -597,7 +588,7 @@ Func_73ab8: ; 73ab8 (1c:7ab8)
SAVCheckRandomID: ;$7ad1
;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 $d359-d35a)
+;(which are stored at wPlayerID)
ld a,$0a
ld [$0000],a
ld a,$01
@@ -617,10 +608,10 @@ SAVCheckRandomID: ;$7ad1
ld a,[hli]
ld h,[hl]
ld l,a
- ld a,[$d359]
+ ld a,[wPlayerID]
cp l
jr nz,.next
- ld a,[$d35a]
+ ld a,[wPlayerID + 1]
cp h
.next
ld a,$00
@@ -628,38 +619,40 @@ SAVCheckRandomID: ;$7ad1
ld [$0000],a
ret
-Func_73b0d: ; 73b0d (1c:7b0d)
- ld a, [$d5a2]
+SaveHallOfFameTeams: ; 73b0d (1c:7b0d)
+ ld a, [wd5a2]
dec a
- cp $32
+ cp NUM_HOF_TEAMS
jr nc, .asm_73b28
- ld hl, $a598
- ld bc, $60
+ ld hl, sHallOfFame
+ ld bc, HOF_TEAM
call AddNTimes
ld e, l
ld d, h
- ld hl, $cc5b
- ld bc, $60
- jr CopyToSRAM0
+ ld hl, wcc5b
+ ld bc, HOF_TEAM
+ jr HallOfFame_Copy
+
.asm_73b28
- ld hl, $a5f8
- ld de, $a598
- ld bc, $1260
- call CopyToSRAM0
- ld hl, $cc5b
- ld de, $b7f8
- ld bc, $60
- jr CopyToSRAM0
-
-Func_73b3f: ; 73b3f (1c:7b3f)
- ld hl, $a598
- ld bc, $60
- ld a, [wWhichTrade] ; $cd3d
+ ld hl, sHallOfFame + HOF_TEAM
+ ld de, sHallOfFame
+ ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ call HallOfFame_Copy
+ ld hl, wcc5b
+ ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ ld bc, HOF_TEAM
+ jr HallOfFame_Copy
+
+LoadHallOfFameTeams: ; 73b3f (1c:7b3f)
+ ld hl, sHallOfFame
+ ld bc, HOF_TEAM
+ ld a, [wWhichTrade] ; wWhichTrade
call AddNTimes
- ld de, $cc5b
- ld bc, $60
+ ld de, wcc5b
+ ld bc, HOF_TEAM
; fallthrough
-CopyToSRAM0: ; 73b51 (1c:7b51)
+
+HallOfFame_Copy: ; 73b51 (1c:7b51)
ld a, $a
ld [$0], a
ld a, $1
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index a3c83e64..e43cc9ab 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1,7 +1,7 @@
PromptUserToPlaySlots: ; 3730e (d:730e)
call SaveScreenTilesToBuffer2
ld a, BANK(DisplayTextIDInit)
- ld [$cf0c], a
+ ld [wcf0c], a
ld b, a
ld hl, DisplayTextIDInit
call Bankswitch
@@ -12,13 +12,12 @@ PromptUserToPlaySlots: ; 3730e (d:730e)
and a
jr nz, .skip
dec a
- ld [$cfcb], a
- ld hl, $cd4f
+ ld [wcfcb], a
+ ld hl, wcd4f
xor a
ld [hli], a
ld [hl], $2
- ld a, $4c
- call Predef
+ predef EmotionBubble
call GBPalWhiteOutWithDelay3
call LoadSlotMachineTiles
call LoadFontTilePatterns
@@ -27,7 +26,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e)
call GBPalNormal
ld a, $e4
ld [$ff48], a
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
ld [W_SUBANIMSUBENTRYADDR], a
@@ -35,13 +34,13 @@ PromptUserToPlaySlots: ; 3730e (d:730e)
ld bc, $0014
call FillMemory
call MainSlotMachineLoop
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
xor a
ld [W_SUBANIMSUBENTRYADDR], a
call GBPalWhiteOutWithDelay3
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
call GoPAL_SET_CF1C
call Func_3e08
call ReloadTilesetTilePatterns
@@ -49,7 +48,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e)
call LoadScreenTilesFromBuffer2
call Delay3
call GBPalNormal
- ld a, [$cc5e]
+ ld a, [wcc5e]
push af
jp CloseTextDisplay
@@ -60,7 +59,7 @@ PlaySlotMachineText: ; 37390 (d:7390)
MainSlotMachineLoop: ; 37395 (d:7395)
call SlotMachine_37754
xor a
- ld hl, $cd4a
+ ld hl, wcd4a
ld [hli], a
ld [hl], a
call SlotMachine_3775f
@@ -79,12 +78,12 @@ MainSlotMachineLoop: ; 37395 (d:7395)
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld [$cc37], a
- ld hl, $c48a
+ ld [wcc37], a
+ ld hl, wTileMap + $ea
ld b, $5
ld c, $4
call TextBoxBorder
- ld hl, $c4a0
+ ld hl, wTileMap + $100
ld de, CoinMultiplierSlotMachineText
call PlaceString
call HandleMenuInput
@@ -94,7 +93,7 @@ MainSlotMachineLoop: ; 37395 (d:7395)
ld b, a
ld a, $3
sub b
- ld [$cd50], a
+ ld [wcd50], a
ld hl, wPlayerCoins
ld c, a
ld a, [hli]
@@ -112,7 +111,7 @@ MainSlotMachineLoop: ; 37395 (d:7395)
call SlotMachine_377d5
call SlotMachine_37480
ld a, $4
- ld hl, $cd4d
+ ld hl, wcd4d
ld [hli], a
ld [hli], a
ld [hl], a
@@ -134,12 +133,12 @@ MainSlotMachineLoop: ; 37395 (d:7395)
.skip2
ld hl, OneMoreGoSlotMachineText
call PrintText
- ld hl, $c49e
+ ld hl, wTileMap + $fe
ld bc, $0d0f
xor a
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld a, [wCurrentMenuItem]
and a
@@ -173,17 +172,17 @@ OneMoreGoSlotMachineText: ; 3747b (d:747b)
db "@"
SlotMachine_37480: ; 37480 (d:7480)
- ld hl, $cd4c
+ ld hl, wcd4c
bit 7, [hl]
ret nz
ld a, [W_SUBANIMSUBENTRYADDR]
and a
jr nz, .skip1
- call GenRandom
+ call Random
and a
jr z, .skip2
ld b, a
- ld a, [$cc5b]
+ ld a, [wcc5b]
cp b
jr c, .skip3
ld a, $d2
@@ -222,7 +221,7 @@ SlotMachine_374ad: ; 374ad (d:74ad)
call SlotMachine_374fb
call SlotMachine_37517
ret c
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
inc a
ld c, a
@@ -237,7 +236,7 @@ SlotMachine_374df: ; 374df (d:74df)
ld a, [de]
rra
jr nc, .skip
- ld hl, $cd4d
+ ld hl, wcd4d
ld a, [hl]
and a
ret z
@@ -255,7 +254,7 @@ SlotMachine_374fb: ; 374fb (d:74fb)
ld a, [de]
rra
jr nc, .skip
- ld hl, $cd4e
+ ld hl, wcd4e
ld a, [hl]
and a
ret z
@@ -283,7 +282,7 @@ SlotMachine_37517: ; 37517 (d:7517)
SlotMachine_3752c: ; 3752c (d:752c)
call SlotMachine_GetWheelOneTile
ld hl, wTrainerScreenX
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $80
jr nz, .skip1
inc hl
@@ -302,13 +301,13 @@ SlotMachine_3752c: ; 3752c (d:752c)
ret
.skip2
inc a
- ld hl, $cd4d
+ ld hl, wcd4d
ld [hl], $0
ret
SlotMachine_37552: ; 37552 (d:7552)
call SlotMachine_GetWheelTwoTile
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $80
jr nz, .skip1
call SlotMachine_3756e
@@ -321,12 +320,12 @@ SlotMachine_37552: ; 37552 (d:7552)
ret nc
.skip2
xor a
- ld [$cd4e], a
+ ld [wcd4e], a
ret
SlotMachine_3756e: ; 3756e (d:756e)
ld hl, wTrainerScreenX
- ld de, $cd44
+ ld de, wcd44
ld a, [de]
cp [hl]
ret z
@@ -350,42 +349,42 @@ SlotMachine_3756e: ; 3756e (d:756e)
SlotMachine_37588: ; 37588 (d:7588)
call SlotMachine_GetWheelThreeTile
- ld a, [$cd50]
+ ld a, [wcd50]
cp $2
jr z, .skip1
cp $1
jr z, .skip2
ld hl, wTrainerScreenX
- ld de, $cd45
- ld bc, $cd49
+ ld de, wcd45
+ ld bc, wcd49
call SlotMachine_CheckForMatch
jp z, .skip5
- ld hl, $cd43
- ld de, $cd45
- ld bc, $cd47
+ ld hl, wcd43
+ ld de, wcd45
+ ld bc, wcd47
call SlotMachine_CheckForMatch
jr z, .skip5
.skip1
- ld hl, $cd43
- ld de, $cd46
- ld bc, $cd49
+ ld hl, wcd43
+ ld de, wcd46
+ ld bc, wcd49
call SlotMachine_CheckForMatch
jr z, .skip5
ld hl, wTrainerScreenX
- ld de, $cd44
- ld bc, $cd47
+ ld de, wcd44
+ ld bc, wcd47
call SlotMachine_CheckForMatch
jr z, .skip5
.skip2
- ld hl, $cd42
- ld de, $cd45
- ld bc, $cd48
+ ld hl, wcd42
+ ld de, wcd45
+ ld bc, wcd48
call SlotMachine_CheckForMatch
jr z, .skip5
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $c0
jr z, .skip3
- ld hl, $cd4f
+ ld hl, wcd4f
dec [hl]
jr nz, .skip4
.skip3
@@ -393,7 +392,7 @@ SlotMachine_37588: ; 37588 (d:7588)
call PrintText
.loop
xor a
- ld [$c002], a
+ ld [wc002], a
ret
.skip4
call SlotMachine_37833
@@ -402,7 +401,7 @@ SlotMachine_37588: ; 37588 (d:7588)
call DelayFrame
jp SlotMachine_37588
.skip5
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $c0
jr z, .skip4
and $80
@@ -426,7 +425,7 @@ SlotMachine_37588: ; 37588 (d:7588)
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $cf4b
+ ld de, wcf4b
ld bc, $0004
call CopyData
pop hl
@@ -442,7 +441,7 @@ SlotMachine_37588: ; 37588 (d:7588)
call DelayFrames
dec b
jr nz, .asm_37638
- ld hl, $cd4a
+ ld hl, wcd4a
ld [hl], d
inc hl
ld [hl], e
@@ -512,13 +511,13 @@ SlotMachine_CheckForMatch: ; 376a2 (d:76a2)
ret
SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8)
- ld de, $cd47
+ ld de, wcd47
ld hl, SlotMachineWheel3
ld a, [wTrainerScreenY]
call SlotMachine_GetWheelTile
SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4)
- ld de, $cd44
+ ld de, wcd44
ld hl, SlotMachineWheel2
ld a, [wTrainerFacingDirection]
call SlotMachine_GetWheelTile
@@ -568,7 +567,7 @@ SlotReward100Func: ; 376f3 (d:76f3)
ld a, (SFX_1f_42 - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$cd4c], a
+ ld [wcd4c], a
ld b, $8
ld de, 100
ret
@@ -578,11 +577,11 @@ SlotReward300Func: ; 37702 (d:7702)
call PrintText
ld a, (SFX_1f_3b - SFX_Headers_1f) / 3
call PlaySound
- call GenRandom
+ call Random
cp $80
ld a, $0
jr c, .skip
- ld [$cd4c], a
+ ld [wcd4c], a
.skip
ld [W_SUBANIMSUBENTRYADDR], a
ld b, $14
@@ -594,7 +593,7 @@ YeahText: ; 37722 (d:7722)
db $0a, "@"
SlotMachine_37728: ; 37728 (d:7728)
- ld hl, $c4ba
+ ld hl, wTileMap + $11a
ld a, [wTrainerScreenX]
add $25
ld [hli], a
@@ -606,38 +605,37 @@ SlotMachine_37728: ; 37728 (d:7728)
ld [hli], a
inc a
ld [hl], a
- ld hl, $c4f2
+ ld hl, wTileMap + $152
ld [hl], $ee
ret
SlotMachine_37741: ; 37741 (d:7741)
- ld hl, $cd4b
- ld a, [$cd50]
+ ld hl, wcd4b
+ ld a, [wcd50]
ld [hld], a
xor a
ld [hli], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld c, $2
- ld a, $c
- call Predef
+ predef SubBCDPredef
SlotMachine_37754: ; 37754 (d:7754)
- ld hl, $c3b9
+ ld hl, wTileMap + $19
ld de, wPlayerCoins
ld c, $2
jp PrintBCDNumber
SlotMachine_3775f: ; 3775f (d:775f)
- ld hl, $c3bf
- ld de, $cd4a
+ ld hl, wTileMap + $1f
+ ld de, wcd4a
ld bc, $8204
jp PrintNumber
SlotMachine_3776b: ; 3776b (d:776b)
ld a, $1
- ld [$c002], a
+ ld [wc002], a
call WaitForSoundToFinish
- ld hl, $cd46
+ ld hl, wcd46
xor a
ld [hli], a
inc a
@@ -645,23 +643,22 @@ SlotMachine_3776b: ; 3776b (d:776b)
ld a, $5
ld [W_SUBANIMTRANSFORM], a
.loop
- ld a, [$cd4b]
+ ld a, [wcd4b]
ld l, a
- ld a, [$cd4a]
+ ld a, [wcd4a]
ld h, a
or l
ret z
ld de, $ffff
add hl, de
ld a, l
- ld [$cd4b], a
+ ld [wcd4b], a
ld a, h
- ld [$cd4a], a
- ld hl, $cd47
- ld de, $d5a5
+ ld [wcd4a], a
+ ld hl, wcd47
+ ld de, wPlayerCoins + 1
ld c, $2
- ld a, $b
- call Predef
+ predef AddBCDPredef
call SlotMachine_37754
call SlotMachine_3775f
ld a, (SFX_1f_65 - SFX_Headers_1f) / 3
@@ -686,35 +683,35 @@ SlotMachine_3776b: ; 3776b (d:776b)
SlotMachine_377ce: ; 377ce (d:77ce)
ld a, $23
- ld [$d08a], a
+ ld [wd08a], a
jr SlotMachine_377e3
SlotMachine_377d5: ; 377d5 (d:77d5)
ld a, $14
- ld [$d08a], a
- ld a, [$cd50]
+ ld [wd08a], a
+ ld a, [wcd50]
dec a
jr z, SlotMachine_377fb
dec a
jr z, SlotMachine_377ef
SlotMachine_377e3: ; 377e3 (d:77e3)
- ld hl, $c3cb
+ ld hl, wTileMap + $2b
call SlotMachine_377fe
- ld hl, $c46b
+ ld hl, wTileMap + $cb
call SlotMachine_377fe
SlotMachine_377ef: ; 377ef (d:77ef)
- ld hl, $c3f3
+ ld hl, wTileMap + $53
call SlotMachine_377fe
- ld hl, $c443
+ ld hl, wTileMap + $a3
call SlotMachine_377fe
SlotMachine_377fb: ; 377fb (d:77fb)
- ld hl, $c41b
+ ld hl, wTileMap + $7b
SlotMachine_377fe: ; 377fe (d:77fe)
- ld a, [$d08a]
+ ld a, [wd08a]
ld [hl], a
ld bc, $000d
add hl, bc
@@ -739,7 +736,7 @@ SlotMachine_37813: ; 37813 (d:7813)
SlotMachine_37823: ; 37823 (d:7823)
ld bc, SlotMachineWheel2
ld de, wTrainerFacingDirection
- ld hl, $c330
+ ld hl, wOAMBuffer + $30
ld a, $50
ld [W_BASECOORDX], a
jr SlotMachine_37841
@@ -747,7 +744,7 @@ SlotMachine_37823: ; 37823 (d:7823)
SlotMachine_37833: ; 37833 (d:7833)
ld bc, SlotMachineWheel3
ld de, wTrainerScreenY
- ld hl, $c360
+ ld hl, wOAMBuffer + $60
ld a, $70
ld [W_BASECOORDX], a
@@ -799,17 +796,17 @@ SlotMachine_3784e: ; 3784e (d:784e)
SlotMachine_37882: ; 37882 (d:7882)
call DelayFrame
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
and $1
ret z
ld hl, wTrainerSpriteOffset
ld a, [hl]
dec a
- ld de, $cd4d
+ ld de, wcd4d
jr z, .skip
dec a
- ld de, $cd4e
+ ld de, wcd4e
jr z, .skip
.loop
inc [hl]
@@ -824,18 +821,18 @@ SlotMachine_37882: ; 37882 (d:7882)
LoadSlotMachineTiles: ; 378a8 (d:78a8)
call DisableLCD
ld hl, SlotMachineTiles2
- ld de, $8000
- ld bc, $01c0
+ ld de, vChars0
+ ld bc, $1c0
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineTiles1
- ld de, $9000
- ld bc, $0250
+ ld de, vChars2
+ ld bc, $250
ld a, BANK(SlotMachineTiles1)
call FarCopyData2
ld hl, SlotMachineTiles2
- ld de, $9250
- ld bc, $01c0
+ ld de, vChars2 + $250
+ ld bc, $1c0
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineMap
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm
index 113a55a8..10c5fad4 100755
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -5,21 +5,21 @@ CopyFixedLengthText: ; 42b1 (1:42b1)
SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7)
ld hl, NintenText
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
call CopyFixedLengthText
ld hl, SonyText
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
call CopyFixedLengthText
xor a
ld [$ffb0], a
- ld [$d358], a
- ld hl, $d732
+ ld [wd358], a
+ ld hl, wd732
ld [hli], a
ld [hli], a
ld [hl], a
- ld a, Bank(Func_7d8ea)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_TitleScreen)
+ ld [wc0ef], a
+ ld [wc0f0], a
LoadTitlescreenGraphics: ; 42dd (1:42dd)
call GBPalWhiteOut
@@ -36,40 +36,39 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
call DisableLCD
call LoadFontTilePatterns
ld hl, NintendoCopyrightLogoGraphics ; $60c8
- ld de, $9410
+ ld de, vTitleLogo2 + $100
ld bc, $50
ld a, BANK(NintendoCopyrightLogoGraphics)
call FarCopyData2
ld hl, GamefreakLogoGraphics ; $61f8
- ld de, $9460
+ ld de, vTitleLogo2 + $100 + $50
ld bc, $90
ld a, BANK(GamefreakLogoGraphics)
call FarCopyData2
ld hl, PokemonLogoGraphics ; $5380
- ld de, $8800
+ ld de, vTitleLogo
ld bc, $600
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; first chunk
ld hl, PokemonLogoGraphics+$600 ; $5980
- ld de, $9310
+ ld de, vTitleLogo2
ld bc, $100
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; second chunk
ld hl, Version_GFX ; $402f
IF _RED
- ld de,$9600 ; where to put redgreenversion.2bpp in the VRAM
- ld bc,$50 ; how big that file is
+ ld de,vChars2 + $600
+ ld bc,$50
ENDC
IF _BLUE
- ld de,$9610 ; where to put blueversion.2bpp in the VRAM
- ld bc,$40 ; how big that file is
+ ld de,vChars2 + $600 + $10
+ ld bc,$50 - $10
ENDC
ld a, BANK(Version_GFX)
call FarCopyDataDouble
call Func_4519
- FuncCoord 2, 1 ; $c3b6
- ld hl, Coord
+ hlCoord 2, 1
ld a, $80
ld de, $14
ld c, $6
@@ -85,8 +84,7 @@ ENDC
add hl, de
dec c
jr nz, .asm_434d
- FuncCoord 2, 7 ; $c42e
- ld hl, Coord
+ hlCoord 2, 7
ld a, $31
ld b, $10
.asm_4361
@@ -95,11 +93,10 @@ ENDC
dec b
jr nz, .asm_4361
call Func_44dd
- ld hl, $c328
+ ld hl, wOAMBuffer + $28
ld a, $74
ld [hl], a
- FuncCoord 2, 17 ; $c4f6
- ld hl, Coord
+ hlCoord 2, 17
ld de, .titlescreenTilemap ; $437f
ld b, $10
.asm_4377
@@ -124,7 +121,7 @@ IF _BLUE
ld a,SQUIRTLE ; which Pokemon to show first on the title screen
ENDC
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
call Func_4524
ld a, $9b
call Func_4533
@@ -206,10 +203,10 @@ ENDC
call Delay3
call WaitForSoundToFinish
ld a, MUSIC_TITLE_SCREEN
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
.asm_443b
ld c, $c8
call CheckForUserInterruption
@@ -222,11 +219,11 @@ ENDC
call Func_4496
jr .asm_443b
.asm_4459
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call PlayCry
call WaitForSoundToFinish
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
xor a
ld [$ffb0], a
inc a
@@ -238,7 +235,7 @@ ENDC
call Func_4533
call Delay3
call LoadGBPal
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
ld b, a
and $46
cp $46
@@ -256,14 +253,14 @@ Func_4496: ; 4496 (1:4496)
.new
; Generate a new TitleMon.
- call GenRandom
+ call Random
and $f
ld c, a
ld b, 0
ld hl, TitleMons
add hl, bc
ld a, [hl]
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
; Can't be the same as before.
cp [hl]
@@ -275,12 +272,12 @@ Func_4496: ; 4496 (1:4496)
ld a, $90
ld [$ffb0], a
ld d, 1 ; scroll out
- callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258))
+ callba TitleScroll
ret
Func_44c1: ; 44c1 (1:44c1)
ld d, 0 ; scroll in
- callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258))
+ callba TitleScroll
xor a
ld [$ffb0], a
ret
@@ -302,13 +299,13 @@ Func_44cf: ; 44cf (1:44cf)
Func_44dd: ; 44dd (1:44dd)
ld hl, PlayerCharacterTitleGraphics ; $66a8
- ld de, $8000
+ ld de, vSprites
ld bc, $230
ld a, BANK(PlayerCharacterTitleGraphics)
call FarCopyData2
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, wOAMBuffer
ld de, $605a
ld b, $7
@@ -322,10 +319,10 @@ Func_44dd: ; 44dd (1:44dd)
ld [hli], a
add $8
ld e, a
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld [hli], a
inc a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
inc hl
dec c
jr nz, .asm_44fd
@@ -338,16 +335,15 @@ Func_44dd: ; 44dd (1:44dd)
ret
Func_4519: ; 4519 (1:4519)
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $800
ld a, $7f
jp FillMemory
Func_4524: ; 4524 (1:4524)
- ld [$cf91], a
- ld [$d0b5], a
- FuncCoord 5, 10 ; $c46d
- ld hl, Coord
+ ld [wcf91], a
+ ld [wd0b5], a
+ hlCoord 5, 10
call GetMonHeader
jp LoadFrontSpriteByMonIndex
@@ -363,11 +359,10 @@ LoadCopyrightAndTextBoxTiles: ; 4538 (1:4538)
LoadCopyrightTiles: ; 4541 (1:4541)
ld de, NintendoCopyrightLogoGraphics ; $60c8
- ld hl, $9600
+ ld hl, vChars2 + $600
ld bc, (BANK(NintendoCopyrightLogoGraphics) << 8) + $1c
call CopyVideoData
- FuncCoord 2, 7 ; $c42e
- ld hl, Coord
+ hlCoord 2, 7
ld de, CopyrightTextString ; $4556
jp PlaceString
@@ -381,8 +376,7 @@ INCLUDE "data/title_mons.asm"
; prints version text (red, blue)
PrintGameVersionOnTitleScreen: ; 4598 (1:4598)
- FuncCoord 7, 8 ; $c447
- ld hl, Coord
+ hlCoord 7, 8
ld de, VersionOnTitleScreenText
jp PlaceString
diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm
index f81d8bb8..dc1c633a 100755
--- a/engine/titlescreen2.asm
+++ b/engine/titlescreen2.asm
@@ -89,7 +89,7 @@ TitleBallYTable: ; 372a0 (d:72a0)
Func_372ac: ; 372ac (d:72ac)
; Animate the TitleBall if a starter just got scrolled out.
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp STARTER1
jr z, .ok
cp STARTER2
@@ -115,6 +115,6 @@ GetTitleBallY: ; 372c4 (d:72c4)
pop de
and a
ret z
- ld [$c328], a
+ ld [wOAMBuffer + $28], a
inc e
ret
diff --git a/engine/town_map.asm b/engine/town_map.asm
index db12c18f..2cd37284 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -1,30 +1,29 @@
DisplayTownMap: ; 70e3e (1c:4e3e)
call LoadTownMap
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
push hl
ld a, $1
ld [$ffb7], a
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
push af
ld b, $0
call Func_711c4
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 0
+ ld de, wcd6d
call PlaceString
ld hl, wOAMBuffer
ld de, wTileMapBackup
ld bc, $10
call CopyData
- ld hl, $8040
+ ld hl, vSprites + $40
ld de, TownMapCursor ; $4f40
ld bc, (BANK(TownMapCursor) << 8) + $04
call CopyVideoDataDouble
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
pop af
jr Func_70e92
@@ -33,41 +32,40 @@ Func_70e7e: ; 70e7e (1c:4e7e)
ld bc, $114
call ClearScreenArea
ld hl, TownMapOrder ; $4f11
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
Func_70e92: ; 70e92 (1c:4e92)
- ld de, $cee9
+ ld de, wHPBarMaxHP
call Func_712f1
ld a, [de]
push hl
call Func_71258
ld a, $4
- ld [$cd5b], a
- ld hl, $c310
+ ld [wcd5b], a
+ ld hl, wOAMBuffer + $10
call Func_71279
pop hl
- ld de, $cd6d
+ ld de, wcd6d
.asm_70eac
ld a, [hli]
ld [de], a
inc de
cp $50
jr nz, .asm_70eac
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 0
+ ld de, wcd6d
call PlaceString
- ld hl, $c310
- ld de, $c518
+ ld hl, wOAMBuffer + $10
+ ld de, wTileMapBackup + 16
ld bc, $10
call CopyData
.asm_70ec8
call Func_716c6
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
ld b, a
and $c3
@@ -79,31 +77,31 @@ Func_70e92: ; 70e92 (1c:4e92)
bit 7, b
jr nz, .asm_70f01
xor a
- ld [$d09b], a
+ ld [wd09b], a
ld [$ffb7], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
call Func_711ab
pop hl
pop af
ld [hl], a
ret
.asm_70ef2
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
inc a
cp $2f
jr nz, .asm_70efb
xor a
.asm_70efb
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
jp Func_70e7e
.asm_70f01
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
dec a
cp $ff
jr nz, .asm_70f0b
ld a, $2e
.asm_70f0b
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
jp Func_70e7e
INCLUDE "data/town_map_order.asm"
@@ -113,15 +111,14 @@ TownMapCursor: ; 70f40 (1c:4f40)
LoadTownMap_Nest: ; 70f60 (1c:4f60)
call LoadTownMap
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
push hl
call Func_711ef
call GetMonName
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
call PlaceString
ld h, b
ld l, c
@@ -138,20 +135,20 @@ MonsNestText: ; 70f89 (1c:4f89)
db "'s NEST@"
LoadTownMap_Fly: ; 70f90 (1c:4f90)
- call CleanLCD_OAM
+ call ClearSprites
call LoadTownMap
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
ld de, BirdSprite ; $4d80
- ld hl, $8040
+ ld hl, vSprites + $40
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
ld de, TownMapUpArrow ; $5093
- ld hl, $8ed0
+ ld hl, vChars1 + $6d0
ld bc, (BANK(TownMapUpArrow) << 8) + $01
call CopyVideoDataDouble
call Func_71070
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -159,43 +156,38 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
ld hl, wTileMap
ld de, ToText
call PlaceString
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, $0
call Func_711c4
- ld hl, $cd3e
- FuncCoord 18, 0 ; $c3b2
- ld de, Coord
+ ld hl, wTrainerEngageDistance
+ deCoord 18, 0
.townMapFlyLoop
ld a, $7f
ld [de], a
push hl
push hl
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
+ hlCoord 3, 0
ld bc, $10f
call ClearScreenArea
pop hl
ld a, [hl]
ld b, $4
call Func_711c4
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 3, 0
+ ld de, wcd6d
call PlaceString
ld c, $f
call DelayFrames
- FuncCoord 18, 0 ; $c3b2
- ld hl, Coord
+ hlCoord 18, 0
ld [hl], $ed
- FuncCoord 19, 0 ; $c3b3
- ld hl, Coord
+ hlCoord 19, 0
ld [hl], $ee
pop hl
.asm_71004
push hl
call DelayFrame
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
ld b, a
pop hl
@@ -214,22 +206,21 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
ld a, (SFX_02_3e - SFX_Headers_02) / 3
call PlaySound
ld a, [hl]
- ld [$d71a], a
- ld hl, $d732
+ ld [wd71a], a
+ ld hl, wd732
set 3, [hl]
inc hl
set 7, [hl]
.asm_71037
xor a
- ld [$d09b], a
+ ld [wd09b], a
call GBPalWhiteOutWithDelay3
pop hl
pop af
ld [hl], a
ret
.asm_71042
- FuncCoord 18, 0 ; $c3b2
- ld de, Coord
+ deCoord 18, 0
inc hl
ld a, [hl]
cp $ff
@@ -238,11 +229,10 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
jr z, .asm_71042
jp .townMapFlyLoop
.asm_71052
- ld hl, $cd3e
+ ld hl, wTrainerEngageDistance
jp .townMapFlyLoop
.asm_71058
- FuncCoord 19, 0 ; $c3b3
- ld de, Coord
+ deCoord 19, 0
dec hl
ld a, [hl]
cp $ff
@@ -251,19 +241,19 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
jr z, .asm_71058
jp .townMapFlyLoop
.asm_71068
- ld hl, $cd49
+ ld hl, wcd49
jr .asm_71058
ToText: ; 7106d (1c:506d)
db "To@"
Func_71070: ; 71070 (1c:5070)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld [hl], $ff
inc hl
- ld a, [$d70b]
+ ld a, [W_TOWNVISITEDFLAG]
ld e, a
- ld a, [$d70c]
+ ld a, [W_TOWNVISITEDFLAG + 1]
ld d, a
ld bc, $b
.asm_71081
@@ -294,12 +284,12 @@ LoadTownMap: ; 7109b (1c:509b)
call TextBoxBorder
call DisableLCD
ld hl, WorldMapTileGraphics ; $65a8
- ld de, $9600
+ ld de, vChars2 + $600
ld bc, $100
ld a, BANK(WorldMapTileGraphics)
call FarCopyData2
ld hl, MonNestIcon ; $56be
- ld de, $8040
+ ld de, vSprites + $40
ld bc, $8
ld a, BANK(MonNestIcon)
call FarCopyDataDouble
@@ -329,9 +319,9 @@ LoadTownMap: ; 7109b (1c:509b)
call Delay3
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
inc a
- ld [$d09b], a
+ ld [wd09b], a
ret
CompressedMap: ; 71100 (1c:5100)
@@ -340,10 +330,10 @@ CompressedMap: ; 71100 (1c:5100)
Func_711ab: ; 711ab (1c:51ab)
xor a
- ld [$d09b], a
+ ld [wd09b], a
call GBPalWhiteOut
call ClearScreen
- call CleanLCD_OAM
+ call ClearSprites
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
call UpdateSprites
@@ -352,16 +342,16 @@ Func_711ab: ; 711ab (1c:51ab)
Func_711c4: ; 711c4 (1c:51c4)
push af
ld a, b
- ld [$cd5b], a
+ ld [wcd5b], a
pop af
- ld de, $cee9
+ ld de, wHPBarMaxHP
call Func_712f1
ld a, [de]
push hl
call Func_71258
call Func_7126d
pop hl
- ld de, $cd6d
+ ld de, wcd6d
.asm_711dc
ld a, [hli]
ld [de], a
@@ -377,7 +367,7 @@ Func_711ef: ; 711ef (1c:51ef)
callba Func_e9cb
call Func_712d9
ld hl, wOAMBuffer
- ld de, $cee9
+ ld de, wHPBarMaxHP
.asm_71200
ld a, [de]
cp $ff
@@ -402,18 +392,16 @@ Func_711ef: ; 711ef (1c:51ef)
ld a, l
and a
jr nz, .asm_71236
- FuncCoord 1, 7 ; $c42d
- ld hl, Coord
+ hlCoord 1, 7
ld b, $2
ld c, $f
call TextBoxBorder
- FuncCoord 2, 9 ; $c456
- ld hl, Coord
+ hlCoord 2, 9
ld de, AreaUnknownText
call PlaceString
jr .asm_7123e
.asm_71236
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, $0
call Func_711c4
.asm_7123e
@@ -442,11 +430,11 @@ Func_71258: ; 71258 (1c:5258)
ret
Func_7126d: ; 7126d (1c:526d)
- ld a, [$cd5b]
+ ld a, [wcd5b]
and a
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
jr z, Func_71279
- ld hl, $c380
+ ld hl, wOAMBuffer + $80
Func_71279: ; 71279 (1c:5279)
push hl
@@ -466,10 +454,10 @@ Func_71281: ; 71281 (1c:5281)
ld [hli], a
ld a, c
ld [hli], a
- ld a, [$cd5b]
+ ld a, [wcd5b]
ld [hli], a
inc a
- ld [$cd5b], a
+ ld [wcd5b], a
xor a
ld [hli], a
inc d
@@ -489,7 +477,7 @@ Func_71281: ; 71281 (1c:5281)
Func_712a6: ; 712a6 (1c:52a6)
xor a
- ld [$cd5c], a
+ ld [wcd5c], a
ld de, $202
.asm_712ad
push de
@@ -499,12 +487,12 @@ Func_712a6: ; 712a6 (1c:52a6)
ld [hli], a
ld a, c
ld [hli], a
- ld a, [$cd5b]
+ ld a, [wcd5b]
ld [hli], a
- ld a, [$cd5c]
+ ld a, [wcd5c]
ld [hli], a
xor $20
- ld [$cd5c], a
+ ld [wcd5c], a
inc d
ld a, $8
add c
@@ -514,7 +502,7 @@ Func_712a6: ; 712a6 (1c:52a6)
pop bc
pop de
push hl
- ld hl, $cd5b
+ ld hl, wcd5b
inc [hl]
inc [hl]
pop hl
@@ -526,7 +514,7 @@ Func_712a6: ; 712a6 (1c:52a6)
ret
Func_712d9: ; 712d9 (1c:52d9)
- ld de, $cee9
+ ld de, wHPBarMaxHP
.asm_712dc
ld a, [de]
inc de
@@ -583,7 +571,7 @@ MonNestIcon: ; 716be (1c:56be)
INCBIN "gfx/mon_nest_icon.1bpp"
Func_716c6: ; 716c6 (1c:56c6)
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
inc a
cp $19
jr z, .asm_716e1
@@ -606,5 +594,5 @@ Func_716c6: ; 716c6 (1c:56c6)
jr nz, .asm_716e9
ld a, $19
.asm_716f1
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp DelayFrame
diff --git a/engine/trade.asm b/engine/trade.asm
index fa579cc7..54abdab6 100755
--- a/engine/trade.asm
+++ b/engine/trade.asm
@@ -1,27 +1,27 @@
Func_410e2: ; 410e2 (10:50e2)
- ld a, [wWhichTrade] ; $cd3d
- ld [$cd5e], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcd5e], a
ld a, [wTrainerEngageDistance]
- ld [$cd5f], a
+ ld [wcd5f], a
ld de, PointerIDs_41138 ; $5138
jr Func_41102
Func_410f3: ; 410f3 (10:50f3)
ld a, [wTrainerEngageDistance]
- ld [$cd5e], a
+ ld [wcd5e], a
ld a, [wTrainerSpriteOffset]
- ld [$cd5f], a
+ ld [wcd5f], a
ld de, PointerIDs_41149
Func_41102: ; 41102 (10:5102)
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
push af
ld a, [$ffaf]
push af
ld a, [$ffae]
push af
xor a
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
ld [$ffaf], a
ld [$ffae], a
push de
@@ -49,7 +49,7 @@ Func_41102: ; 41102 (10:5102)
pop af
ld [$ffaf], a
pop af
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
ret
; these bytes refer to the $00th through $10th pointer of PointerTable_4115f
@@ -104,25 +104,25 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
call Func_41196
call DisableLCD
ld hl, TradingAnimationGraphics ; $69be
- ld de, $9310
+ ld de, vChars2 + $310
ld bc, $310
ld a, BANK(TradingAnimationGraphics)
call FarCopyData2
ld hl, TradingAnimationGraphics2 ; $6cce
- ld de, $87c0
+ ld de, vSprites + $7c0
ld bc, $40
ld a, BANK(TradingAnimationGraphics2)
call FarCopyData2
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $800
ld a, $7f
call FillMemory
- call CleanLCD_OAM
+ call ClearSprites
ld a, $ff
- ld [$cfcb], a
- ld hl, $d730
+ ld [wcfcb], a
+ ld hl, wd730
set 6, [hl]
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, $e4
jr z, .asm_411e5
@@ -132,15 +132,15 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
call EnableLCD
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [wWhichTrade] ; $cd3d
- ld [$d11e], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, $cf4b
+ ld hl, wcd6d
+ ld de, wcf4b
ld bc, $b
call CopyData
- ld a, [$cd3e]
- ld [$d11e], a
+ ld a, [wTrainerEngageDistance]
+ ld [wd11e], a
jp GetMonName
Func_4120b: ; 4120b (10:520b)
@@ -151,12 +151,12 @@ Func_4120b: ; 4120b (10:520b)
jp Bankswitch
Func_41217: ; 41217 (10:5217)
- ld hl, W_PLAYERNAME
+ ld hl, wPlayerName
ld de, wHPBarMaxHP
ld bc, $000b
call CopyData
ld hl, W_GRASSRATE
- ld de, W_PLAYERNAME
+ ld de, wPlayerName
ld bc, $000b
call CopyData
ld hl, wHPBarMaxHP
@@ -167,7 +167,7 @@ Func_41217: ; 41217 (10:5217)
Func_4123b: ; 4123b (10:523b)
xor a
call LoadGBPal
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ret
@@ -181,8 +181,7 @@ Func_41245: ; 41245 (10:5245)
ld [$ffae], a
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 4, 0 ; $c3a4
- ld hl, Coord
+ hlCoord 4, 0
ld b, $6
ld c, $a
call TextBoxBorder
@@ -190,7 +189,7 @@ Func_41245: ; 41245 (10:5245)
ld b, $98
call CopyScreenTileBufferToVRAM
call ClearScreen
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call Func_415a4
ld a, $7e
.asm_41273
@@ -208,7 +207,7 @@ Func_41245: ; 41245 (10:5245)
call Func_41676
ld a, $aa
call Func_41676
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call PlayCry
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -220,15 +219,14 @@ Func_41298: ; 41298 (10:5298)
call CopyScreenTileBufferToVRAM
ld b, $8
call GoPAL_SET
- ld hl, $9c8c
+ ld hl, vBGMap1 + $8c
call Func_414ae
ld a, $a0
ld [$ffae], a
call DelayFrame
ld a, $8b
ld [rLCDC], a ; $ff40
- FuncCoord 6, 2 ; $c3ce
- ld hl, Coord
+ hlCoord 6, 2
ld b, $7
call Func_41842
call Func_41186
@@ -251,18 +249,18 @@ Func_412d2: ; 412d2 (10:52d2)
ld a, $e4
ld [rOBP0], a ; $ff48
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $2060
.asm_412e7
push bc
xor a
ld de, UnknownOAM_4132e ; $532e
call WriteOAMBlock
- ld a, [$d09f]
+ ld a, [wd09f]
xor $1
- ld [$d09f], a
+ ld [wd09f], a
add $7e
- ld hl, $c302
+ ld hl, wOAMBuffer + $02
ld de, $4
ld c, e
.asm_41300
@@ -281,7 +279,7 @@ Func_412d2: ; 412d2 (10:52d2)
call PlaySound
jr .asm_412e7
.asm_41318
- call CleanLCD_OAM
+ call ClearSprites
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call ClearScreen
@@ -300,8 +298,7 @@ Func_41336: ; 41336 (10:5336)
ld a, $ac
call Func_41676
call Func_415c8
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld b, $6
ld c, $a
call TextBoxBorder
@@ -309,17 +306,16 @@ Func_41336: ; 41336 (10:5336)
call Func_41186
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
call Func_415a4
ld a, $ad
call Func_41676
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
call PlayCry
call Func_41181
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld bc, $80c
call ClearScreenArea
jp PrintTradeTakeCareText
@@ -327,20 +323,20 @@ Func_41336: ; 41336 (10:5336)
Func_41376: ; 41376 (10:5376)
call Func_41411
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld a, $e4
ld [rOBP0], a ; $ff48
ld a, $54
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $1c
- ld [W_BASECOORDY], a ; $d082
- ld a, [$cd5e]
- ld [$cd5d], a
+ ld [W_BASECOORDY], a ; wd082
+ ld a, [wcd5e]
+ ld [wcd5d], a
call Func_41505
call Func_4142d
call Func_41186
call Func_4149f
- ld hl, $9c8c
+ ld hl, vBGMap1 + $8c
call Func_414ae
ld b, $6
call Func_414c5
@@ -355,23 +351,23 @@ Func_41376: ; 41376 (10:5376)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Func_41525
- jp CleanLCD_OAM
+ jp ClearSprites
Func_413c6: ; 413c6 (10:53c6)
call Func_41411
xor a
- ld [$d08a], a
+ ld [wd08a], a
ld a, $64
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $44
- ld [W_BASECOORDY], a ; $d082
- ld a, [$cd5f]
- ld [$cd5d], a
+ ld [W_BASECOORDY], a ; wd082
+ ld a, [wcd5f]
+ ld [wcd5d], a
call Func_41505
call Func_4145c
call Func_41186
call Func_4149f
- ld hl, $9c94
+ ld hl, vBGMap1 + $94
call Func_414ae
call Func_41525
ld b, $6
@@ -386,7 +382,7 @@ Func_413c6: ; 413c6 (10:53c6)
call Func_414c5
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- jp CleanLCD_OAM
+ jp ClearSprites
Func_41411: ; 41411 (10:5411)
ld a, $1
@@ -406,8 +402,7 @@ Func_41411: ; 41411 (10:5411)
Func_4142d: ; 4142d (10:542d)
call Func_41196
- FuncCoord 11, 4 ; $c3fb
- ld hl, Coord
+ hlCoord 11, 4
ld a, $5d
ld [hli], a
ld a, $5e
@@ -416,25 +411,21 @@ Func_4142d: ; 4142d (10:542d)
ld [hli], a
dec c
jr nz, .asm_4143a
- FuncCoord 5, 3 ; $c3e1
- ld hl, Coord
+ hlCoord 5, 3
ld b, $6
call Func_41842
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld b, $2
ld c, $7
call TextBoxBorder
- FuncCoord 5, 14 ; $c4bd
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 5, 14
+ ld de, wPlayerName ; wd158
call PlaceString
jp DelayFrame
Func_4145c: ; 4145c (10:545c)
call Func_41196
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld a, $5e
ld c, $e
.asm_41466
@@ -458,25 +449,21 @@ Func_4145c: ; 4145c (10:545c)
ld [hld], a
ld a, $5d
ld [hl], a
- FuncCoord 7, 8 ; $c447
- ld hl, Coord
+ hlCoord 7, 8
ld b, $6
call Func_41842
- FuncCoord 6, 0 ; $c3a6
- ld hl, Coord
+ hlCoord 6, 0
ld b, $2
ld c, $7
call TextBoxBorder
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
- ld de, W_GRASSRATE ; $d887
+ hlCoord 7, 2
+ ld de, W_GRASSRATE ; W_GRASSRATE
call PlaceString
jp DelayFrame
Func_4149f: ; 4149f (10:549f)
call Func_41196
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld a, $5e
ld c, $14
.asm_414a9
@@ -487,12 +474,11 @@ Func_4149f: ; 4149f (10:549f)
Func_414ae: ; 414ae (10:54ae)
push hl
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
call ScheduleRowRedrawHelper
pop hl
ld a, h
- ld [$ffd2], a
+ ld [H_SCREENEDGEREDRAWADDR + 1], a
ld a, l
ld [H_SCREENEDGEREDRAWADDR], a ; $ffd1
ld a, $2
@@ -501,7 +487,7 @@ Func_414ae: ; 414ae (10:54ae)
jp DelayFrames
Func_414c5: ; 414c5 (10:54c5)
- ld a, [$d08a]
+ ld a, [wd08a]
ld e, a
ld d, $8
.asm_414cb
@@ -531,7 +517,7 @@ Func_414e8: ; 414e8 (10:54e8)
ld a, [rBGP] ; $ff47
xor $3c
ld [rBGP], a ; $ff47
- ld hl, $c302
+ ld hl, wOAMBuffer + $02
ld de, $4
ld c, $14
.asm_414f9
@@ -554,10 +540,10 @@ Func_41510: ; 41510 (10:5510)
ld hl, wOAMBuffer
ld c, $14
.asm_41515
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add [hl]
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add [hl]
ld [hli], a
inc hl
@@ -567,7 +553,7 @@ Func_41510: ; 41510 (10:5510)
ret
Func_41525: ; 41525 (10:5525)
- ld a, [$d08a]
+ ld a, [wd08a]
and a
jr z, .asm_41536
ld bc, $400
@@ -580,9 +566,9 @@ Func_41525: ; 41525 (10:5525)
ld bc, $fc00
.asm_4153f
ld a, b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, c
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld d, $4
.asm_41549
call Func_41510
@@ -645,9 +631,9 @@ UnknownOAM_4159c: ; 4159c (10:559c)
db $39,$70,$38,$70
Func_415a4: ; 415a4 (10:55a4)
- ld [$cf91], a
- ld [$d0b5], a
- ld [$cf1d], a
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wcf1d], a
ld b, $b
ld c, $0
call GoPAL_SET
@@ -655,8 +641,7 @@ Func_415a4: ; 415a4 (10:55a4)
xor $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call GetMonHeader
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
call LoadFlippedFrontSpriteByMonIndex
ld c, $a
jp DelayFrames
@@ -763,8 +748,7 @@ TradeforText: ; 41671 (10:5671)
db "@"
Func_41676: ; 41676 (10:5676)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
xor a
- ld [$cc5b], a
- ld a, $8
- jp Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e))
+ ld [wcc5b], a
+ predef_jump MoveAnimation
diff --git a/engine/trade2.asm b/engine/trade2.asm
index 9f793fac..b13a18b6 100755
--- a/engine/trade2.asm
+++ b/engine/trade2.asm
@@ -1,56 +1,44 @@
Func_42769: ; 42769 (10:6769)
- FuncCoord 5,0
- ld hl,Coord
+ hlCoord 5, 0
ld de,OTString67E5
call PlaceString
- ld a,[$CD3D]
- ld [$D11E],a
- ld a,$3A
- call Predef
- FuncCoord 9, 0 ; $c3a9
- ld hl,Coord
- ld de,$D11E
+ ld a,[wWhichTrade]
+ ld [wd11e],a
+ predef IndexToPokedex
+ hlCoord 9, 0
+ ld de,wd11e
ld bc,$8103
call PrintNumber
- FuncCoord 5,2
- ld hl,Coord
- ld de,$CF4B
+ hlCoord 5, 2
+ ld de,wcf4b
call PlaceString
- FuncCoord 8,4
- ld hl,Coord
- ld de,$CD41
+ hlCoord 8, 4
+ ld de,wTrainerScreenX
call PlaceString
- FuncCoord 8, 6 ; $c420
- ld hl,Coord
- ld de,$CD4C
+ hlCoord 8, 6
+ ld de,wcd4c
ld bc,$8205
jp PrintNumber
Func_427a7: ; 427a7 (10:67a7)
- FuncCoord 5,10
- ld hl,Coord
+ hlCoord 5, 10
ld de,OTString67E5
call PlaceString
- ld a,[$CD3E]
- ld [$D11E],a
- ld a,$3A
- call Predef
- FuncCoord 9, 10 ; $c471
- ld hl,Coord
- ld de,$D11E
+ ld a,[wTrainerEngageDistance]
+ ld [wd11e],a
+ predef IndexToPokedex
+ hlCoord 9, 10
+ ld de,wd11e
ld bc,$8103
call PrintNumber
- FuncCoord 5,12
- ld hl,Coord
- ld de,$CD6D
+ hlCoord 5, 12
+ ld de,wcd6d
call PlaceString
- FuncCoord 8,14
- ld hl,Coord
- ld de,$CD4E
+ hlCoord 8, 14
+ ld de,wcd4e
call PlaceString
- FuncCoord 8, 16 ; $c4e8
- ld hl,Coord
- ld de,$CD59
+ hlCoord 8, 16
+ ld de,wcd59
ld bc,$8205
jp PrintNumber