summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm3038
1 files changed, 800 insertions, 2238 deletions
diff --git a/main.asm b/main.asm
index 37213c669..b67f8aff9 100644
--- a/main.asm
+++ b/main.asm
@@ -142,8 +142,8 @@ NewGame: ; 5b6b
ld [wd001], a
ld a, $f1
- ld [$ff9f], a
- jp Function5e5d
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
; 5b8f
Function5b8f: ; 5b8f
@@ -173,12 +173,12 @@ _ResetWRAM: ; 5bae
call ByteFill
ld hl, wd000
- ld bc, PlayerID - wd000
+ ld bc, wGameData - wd000
xor a
call ByteFill
- ld hl, PlayerID
- ld bc, wdff5 - PlayerID
+ ld hl, wGameData
+ ld bc, wGameDataEnd - wGameData
xor a
call ByteFill
@@ -248,8 +248,8 @@ _ResetWRAM: ; 5bae
ld [hl], a
call CloseSRAM
- call Function5d33
- call InitializeRalphName
+ call LoadOrRegenerateLuckyIDNumber
+ call InitializeMagikarpHouse
xor a
ld [MonType], a
@@ -335,8 +335,8 @@ SetDefaultBoxNames: ; 5ca6
db "BOX@"
; 5cd3
-InitializeRalphName: ; 5cd3
- ld hl, wdfe8
+InitializeMagikarpHouse: ; 5cd3
+ ld hl, wBestMagikarpLengthFeet
ld a, $3
ld [hli], a
ld a, $6
@@ -384,30 +384,30 @@ InitializeWorld: ; 5d23
ret
; 5d33
-Function5d33: ; 5d33
- ld a, BANK(s0_ac68)
+LoadOrRegenerateLuckyIDNumber: ; 5d33
+ ld a, BANK(sLuckyIDNumber)
call GetSRAMBank
ld a, [CurDay]
inc a
ld b, a
- ld a, [s0_ac68]
+ ld a, [sLuckyNumberDay]
cp b
- ld a, [s0_ac6a]
+ ld a, [sLuckyIDNumber + 1]
ld c, a
- ld a, [s0_ac69]
+ ld a, [sLuckyIDNumber]
jr z, .skip
ld a, b
- ld [s0_ac68], a
+ ld [sLuckyNumberDay], a
call Random
ld c, a
call Random
.skip
- ld [wdc9f], a
- ld [s0_ac69], a
+ ld [wLuckyIDNumber], a
+ ld [sLuckyIDNumber], a
ld a, c
- ld [wdca0], a
- ld [s0_ac6a], a
+ ld [wLuckyIDNumber + 1], a
+ ld [sLuckyIDNumber + 1], a
jp CloseSRAM
; 5d65
@@ -419,20 +419,20 @@ Continue: ; 5d65
call Function5e85
ld a, $1
ld [hBGMapMode], a
- ld c, $14
+ ld c, 20
call DelayFrames
- call Function5e34
- jr nc, .asm_5d8c
+ call ConfirmContinue
+ jr nc, .Check1Pass
call WriteBackup
jr .FailToLoad
-.asm_5d8c
+.Check1Pass
call Function5e48
- jr nc, .asm_5d96
+ jr nc, .Check2Pass
call WriteBackup
jr .FailToLoad
-.asm_5d96
+.Check2Pass
ld a, $8
ld [MusicFade], a
ld a, MUSIC_NONE % $100
@@ -443,38 +443,38 @@ Continue: ; 5d65
call Function5df0
call WriteBackup
call ClearTileMap
- ld c, $14
+ ld c, 20
call DelayFrames
callba JumpRoamMons
callba Function105091
callba Function140ae
- ld a, [wd4b5]
- cp $1
- jr z, .asm_5dd7
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_LANCE
+ jr z, .SpawnAfterE4
ld a, $f2
- ld [$ff9f], a
- jp Function5e5d
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
.FailToLoad
ret
-.asm_5dd7
+.SpawnAfterE4
ld a, SPAWN_NEW_BARK
ld [wd001], a
- call Function5de7
- jp Function5e5d
+ call PostCreditsSpawn
+ jp FinishContinueFunction
; 5de2
-Function5de2: ; 5de2
+SpawnAfterRed: ; 5de2
ld a, SPAWN_MT_SILVER
ld [wd001], a
; 5de7
-Function5de7: ; 5de7
+PostCreditsSpawn: ; 5de7
xor a
- ld [wd4b5], a
+ ld [wSpawnAfterChampion], a
ld a, $f1
- ld [$ff9f], a
+ ld [hMapEntryMethod], a
ret
; 5df0
@@ -506,40 +506,40 @@ Function5df0: ; 5df0
ret
; 5e34
-Function5e34: ; 5e34
-.asm_5e34
+ConfirmContinue: ; 5e34
+.loop
call DelayFrame
call GetJoypad
ld hl, hJoyPressed
bit 0, [hl]
- jr nz, .asm_5e47
+ jr nz, .PressA
bit 1, [hl]
- jr z, .asm_5e34
+ jr z, .loop
scf
ret
-.asm_5e47
+.PressA
ret
; 5e48
Function5e48: ; 5e48
call Function6e3
and $80
- jr z, .asm_5e5b
+ jr z, .pass
callba Function20021
ld a, c
and a
- jr z, .asm_5e5b
+ jr z, .pass
scf
ret
-.asm_5e5b
+.pass
xor a
ret
; 5e5d
-Function5e5d: ; 5e5d
-.asm_5e5d
+FinishContinueFunction: ; 5e5d
+.loop
xor a
ld [wc2c1], a
ld [InLinkBattle], a
@@ -549,14 +549,14 @@ Function5e5d: ; 5e5d
ld hl, wd83e
set 1, [hl]
callba OverworldLoop
- ld a, [wd4b5]
- cp $2
- jr z, .asm_5e80
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_RED
+ jr z, .AfterRed
jp Reset
-.asm_5e80
- call Function5de2
- jr .asm_5e5d
+.AfterRed
+ call SpawnAfterRed
+ jr .loop
; 5e85
Function5e85: ; 5e85
@@ -721,7 +721,7 @@ DisplayGameTime: ; 5f84
ld [hl], $6d
inc hl
ld de, GameTimeMinutes
- lb bc, $81, 2
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
jp PrintNum
; 5f99
@@ -2354,7 +2354,7 @@ CheckFacingObject:: ; 6fd9
.asm_6ff1
ld bc, ObjectStructs ; redundant
ld a, 0
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
call Function7041
ret nc
ld hl, OBJECT_DIRECTION_WALKING
@@ -2382,7 +2382,7 @@ Function7009: ; 7009
; 7015
Function7015: ; 7015
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
call GetObjectStruct
call Function7021
call Function7041
@@ -2450,7 +2450,7 @@ Function7041: ; 7041
jr nz, .ok
.ok2
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
ld l, a
ld a, [$ffb0]
cp l
@@ -2467,7 +2467,7 @@ Function7041: ; 7041
ld a, [hl]
cp e
jr nz, .nope
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
ld l, a
ld a, [$ffb0]
cp l
@@ -2781,23 +2781,23 @@ endr
.Actions
db +5, +3, +2 ; Gained a level
- db +5, +3, +2 ; Used a stat-boosting item (vitamin or X-item)
- db +1, +1, +0
+ db +5, +3, +2 ; Vitamin
+ db +1, +1, +0 ; X Item
db +3, +2, +1 ; Battled a Gym Leader
db +1, +1, +0 ; Learned a move
db -1, -1, -1 ; Lost to an enemy
- db -5, -5, -10
- db -5, -5, -10 ; Lost to a much weaker enemy
- db +1, +1, +1
- db +3, +3, +1
- db +5, +5, +2
- db +1, +1, +1
- db +3, +3, +1
- db +10, +10, +4
+ db -5, -5, -10 ; Fainted due to poison
+ db -5, -5, -10 ; Lost to a much stronger enemy
+ db +1, +1, +1 ; Haircut (Y1)
+ db +3, +3, +1 ; Haircut (Y2)
+ db +5, +5, +2 ; Haircut (Y3)
+ db +1, +1, +1 ; Haircut (O1)
+ db +3, +3, +1 ; Haircut (O2)
+ db +10, +10, +4 ; Haircut (O3)
db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter)
db -10, -10, -15 ; Used Energy Root (bitter)
db -15, -15, -20 ; Used Revival Herb (bitter)
- db +3, +3, +1
+ db +3, +3, +1 ; Grooming
db +10, +6, +4 ; Gained a level in the place where it was caught
; 725a
@@ -2932,7 +2932,7 @@ SpecialGiveShuckle: ; 7305
ld a, 15
ld [CurPartyLevel], a
- predef Functiond88c
+ predef TryAddMonToParty
jr nc, .NotGiven
; Caught data.
@@ -3081,18 +3081,18 @@ Function73f7: ; 73f7
ret
; 7413
-Function7413: ; 7413
- ld hl, Data7459
- jr Function7420
+Special_YoungerHaircutBrother: ; 7413
+ ld hl, Data_YoungerHaircutBrother
+ jr MassageOrHaircut
-Function7418: ; 7418
- ld hl, Data7462
- jr Function7420
+Special_OlderHaircutBrother: ; 7418
+ ld hl, Data_OlderHaircutBrother
+ jr MassageOrHaircut
-Function741d: ; 741d
- ld hl, Data746b
+Special_DaisyMassage: ; 741d
+ ld hl, Data_DaisyMassage
-Function7420: ; 7420
+MassageOrHaircut: ; 7420
push hl
callba SelectMonFromParty
pop hl
@@ -3105,6 +3105,13 @@ Function7420: ; 7420
call CopyPokemonName_Buffer1_Buffer3
pop hl
call Random
+; Bug: Subtracting $ff from $ff fails to set c.
+; This can result in overflow into the next data array.
+; In the case of getting a massage from Daisy, we bleed
+; into CopyPokemonName_Buffer1_Buffer3, which passes
+; $d0 to ChangeHappiness and returns $73 to the script.
+; The end result is that there is a 0.4% chance your
+; Pokemon's happiness will not change at all.
.loop
sub [hl]
jr c, .ok
@@ -3127,23 +3134,23 @@ endr
ret
.egg
- ld a, $1
+ ld a, 1
ld [ScriptVar], a
ret
; 7459
-Data7459: ; 7459
- db $4c, $02, $09
- db $80, $03, $0a
- db $ff, $04, $0b
+Data_YoungerHaircutBrother: ; 7459
+ db $4c, 2, HAPPINESS_YOUNGCUT1 ; 30% chance
+ db $80, 3, HAPPINESS_YOUNGCUT2 ; 20% chance
+ db $ff, 4, HAPPINESS_YOUNGCUT3 ; 50% chance
-Data7462: ; 7462
- db $9a, $02, $0c
- db $4c, $03, $0d
- db $ff, $04, $0e
+Data_OlderHaircutBrother: ; 7462
+ db $9a, 2, HAPPINESS_OLDERCUT1 ; 60% chance
+ db $4c, 3, HAPPINESS_OLDERCUT2 ; 10% chance
+ db $ff, 4, HAPPINESS_OLDERCUT3 ; 30% chance
-Data746b: ; 746b
- db $ff, $02, $12
+Data_DaisyMassage: ; 746b
+ db $ff, 2, HAPPINESS_MASSAGE ; 99.6% chance
; 746e
CopyPokemonName_Buffer1_Buffer3: ; 746e
@@ -3205,7 +3212,7 @@ GetSpawnCoord: ; 8029
.ok
ld [hl], e
ld a, $0
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld bc, MapObjects
ld a, $0
ld [$ffb0], a
@@ -3262,7 +3269,7 @@ Function80a1:: ; 80a1
ld hl, OBJECT_MAP_Y
add hl, bc
ld e, [hl]
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
ld b, a
call Function807e
and a
@@ -3343,7 +3350,7 @@ Function811d: ; 811d
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld [hl], a
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
ld [wc2f0], a
ld hl, MAPOBJECT_SPRITE
add hl, bc
@@ -3391,7 +3398,7 @@ Function8177: ; 8177
ld bc, MapObjects + OBJECT_LENGTH
ld a, 1
.loop
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
@@ -3432,7 +3439,7 @@ Function8177: ; 8177
add hl, bc
ld b, h
ld c, l
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
inc a
cp NUM_OBJECTS
jr nz, .loop
@@ -3476,7 +3483,7 @@ Function81ea: ; 81ea
ld bc, MapObjects + OBJECT_LENGTH
ld a, 1
.loop
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
@@ -3511,7 +3518,7 @@ Function81ea: ; 81ea
add hl, bc
ld b, h
ld c, l
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
inc a
cp NUM_OBJECTS
jr nz, .loop
@@ -3534,7 +3541,7 @@ Function823e: ; 823e
ld bc, MapObjects + OBJECT_LENGTH
ld a, 1
.loop
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
@@ -3569,7 +3576,7 @@ Function823e: ; 823e
add hl, bc
ld b, h
ld c, l
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
inc a
cp NUM_OBJECTS
jr nz, .loop
@@ -4099,59 +4106,62 @@ INCLUDE "engine/specials.asm"
_PrintNum:: ; c4c7
-; Print c digits of the b-byte value at hl.
+; Print c digits of the b-byte value from de to hl.
; Allows 2 to 7 digits. For 1-digit numbers, add
; the value to char "0" instead of calling PrintNum.
; Some extra flags can be given in bits 5-7 of b.
+; Bit 5: money if set (unless left-aligned without leading zeros)
+; Bit 6: right-aligned if set
+; Bit 7: print leading zeros if set
push bc
bit 5, b
jr z, .main
bit 7, b
- jr nz, .bit_7
+ jr nz, .moneyflag
bit 6, b
jr z, .main
-.bit_7
- ld a, $f0
+.moneyflag ; 101xxxxx or 011xxxxx
+ ld a, "¥"
ld [hli], a
- res 5, b
+ res 5, b ; 100xxxxx or 010xxxxx
.main
xor a
- ld [$ffb3], a
- ld [$ffb4], a
- ld [$ffb5], a
+ ld [hPrintNum1], a
+ ld [hPrintNum2], a
+ ld [hPrintNum3], a
ld a, b
and $f
cp 1
jr z, .byte
cp 2
jr z, .word
-
+; maximum 3 bytes
.long
ld a, [de]
- ld [$ffb4], a
+ ld [hPrintNum2], a
inc de
ld a, [de]
- ld [$ffb5], a
+ ld [hPrintNum3], a
inc de
ld a, [de]
- ld [$ffb6], a
+ ld [hPrintNum4], a
jr .start
.word
ld a, [de]
- ld [$ffb5], a
+ ld [hPrintNum3], a
inc de
ld a, [de]
- ld [$ffb6], a
+ ld [hPrintNum4], a
jr .start
.byte
ld a, [de]
- ld [$ffb6], a
+ ld [hPrintNum4], a
.start
push de
@@ -4178,51 +4188,51 @@ _PrintNum:: ; c4c7
.seven
ld a, 1000000 / $10000 % $100
- ld [$ffb7], a
+ ld [hPrintNum5], a
ld a, 1000000 / $100 % $100
- ld [$ffb8], a
+ ld [hPrintNum6], a
ld a, 1000000 % $100
- ld [$ffb9], a
+ ld [hPrintNum7], a
call .PrintDigit
call .AdvancePointer
.six
ld a, 100000 / $10000 % $100
- ld [$ffb7], a
+ ld [hPrintNum5], a
ld a, 100000 / $100 % $100
- ld [$ffb8], a
+ ld [hPrintNum6], a
ld a, 100000 % $100
- ld [$ffb9], a
+ ld [hPrintNum7], a
call .PrintDigit
call .AdvancePointer
.five
xor a
- ld [$ffb7], a
+ ld [hPrintNum5], a
ld a, 10000 / $100
- ld [$ffb8], a
+ ld [hPrintNum6], a
ld a, 10000 % $100
- ld [$ffb9], a
+ ld [hPrintNum7], a
call .PrintDigit
call .AdvancePointer
.four
xor a
- ld [$ffb7], a
+ ld [hPrintNum5], a
ld a, 1000 / $100
- ld [$ffb8], a
+ ld [hPrintNum6], a
ld a, 1000 % $100
- ld [$ffb9], a
+ ld [hPrintNum7], a
call .PrintDigit
call .AdvancePointer
.three
xor a
- ld [$ffb7], a
+ ld [hPrintNum5], a
xor a
- ld [$ffb8], a
+ ld [hPrintNum6], a
ld a, 100
- ld [$ffb9], a
+ ld [hPrintNum7], a
call .PrintDigit
call .AdvancePointer
@@ -4230,11 +4240,11 @@ _PrintNum:: ; c4c7
dec e
jr nz, .two_skip
ld a, "0"
- ld [$ffb3], a
+ ld [hPrintNum1], a
.two_skip
ld c, 0
- ld a, [$ffb6]
+ ld a, [hPrintNum4]
.mod_10
cp 10
jr c, .modded_10
@@ -4244,7 +4254,7 @@ _PrintNum:: ; c4c7
.modded_10
ld b, a
- ld a, [$ffb3]
+ ld a, [hPrintNum1]
or c
jr nz, .money
call .PrintLeadingZero
@@ -4257,7 +4267,7 @@ _PrintNum:: ; c4c7
add c
ld [hl], a
pop af
- ld [$ffb3], a
+ ld [hPrintNum1], a
inc e
dec e
jr nz, .money_leading_zero
@@ -4278,7 +4288,7 @@ _PrintNum:: ; c4c7
.PrintYen: ; c5ba
push af
- ld a, [$ffb3]
+ ld a, [hPrintNum1]
and a
jr nz, .stop
bit 5, d
@@ -4296,68 +4306,68 @@ _PrintNum:: ; c4c7
dec e
jr nz, .ok
ld a, "0"
- ld [$ffb3], a
+ ld [hPrintNum1], a
.ok
ld c, 0
.loop
- ld a, [$ffb7]
+ ld a, [hPrintNum5]
ld b, a
- ld a, [$ffb4]
+ ld a, [hPrintNum2]
ld [$ffba], a
cp b
jr c, .skip1
sub b
- ld [$ffb4], a
- ld a, [$ffb8]
+ ld [hPrintNum2], a
+ ld a, [hPrintNum6]
ld b, a
- ld a, [$ffb5]
+ ld a, [hPrintNum3]
ld [$ffbb], a
cp b
jr nc, .skip2
- ld a, [$ffb4]
+ ld a, [hPrintNum2]
or 0
jr z, .skip3
dec a
- ld [$ffb4], a
- ld a, [$ffb5]
+ ld [hPrintNum2], a
+ ld a, [hPrintNum3]
.skip2
sub b
- ld [$ffb5], a
- ld a, [$ffb9]
+ ld [hPrintNum3], a
+ ld a, [hPrintNum7]
ld b, a
- ld a, [$ffb6]
+ ld a, [hPrintNum4]
ld [$ffbc], a
cp b
jr nc, .skip4
- ld a, [$ffb5]
+ ld a, [hPrintNum3]
and a
jr nz, .skip5
- ld a, [$ffb4]
+ ld a, [hPrintNum2]
and a
jr z, .skip6
dec a
- ld [$ffb4], a
+ ld [hPrintNum2], a
xor a
.skip5
dec a
- ld [$ffb5], a
- ld a, [$ffb6]
+ ld [hPrintNum3], a
+ ld a, [hPrintNum4]
.skip4
sub b
- ld [$ffb6], a
+ ld [hPrintNum4], a
inc c
jr .loop
.skip6
ld a, [$ffbb]
- ld [$ffb5], a
+ ld [hPrintNum3], a
.skip3
ld a, [$ffba]
- ld [$ffb4], a
+ ld [hPrintNum2], a
.skip1
- ld a, [$ffb3]
+ ld a, [hPrintNum1]
or c
jr z, .PrintLeadingZero
- ld a, [$ffb3]
+ ld a, [hPrintNum1]
and a
jr nz, .done
bit 5, d
@@ -4369,7 +4379,7 @@ _PrintNum:: ; c4c7
ld a, "0"
add c
ld [hl], a
- ld [$ffb3], a
+ ld [hPrintNum1], a
inc e
dec e
ret nz
@@ -4391,7 +4401,7 @@ _PrintNum:: ; c4c7
jr nz, .inc
bit 6, d ; left alignment or right alignment?
jr z, .inc
- ld a, [$ffb3]
+ ld a, [hPrintNum1]
and a
ret z
.inc
@@ -7758,7 +7768,7 @@ endr
ld a, [wd1ed]
ld [StringBuffer2], a
ld de, StringBuffer2
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
pop hl
ret
@@ -7915,40 +7925,47 @@ Functiond839: ; d839
; d88c
-Functiond88c: ; d88c
+TryAddMonToParty: ; d88c
+ ; Whose is it?
ld de, PartyCount
ld a, [MonType]
and $f
- jr z, .asm_d899
+ jr z, .getpartylocation ; PARTYMON
ld de, OTPartyCount
-.asm_d899
+.getpartylocation
+ ; Do we have room for it?
ld a, [de]
inc a
cp PARTY_LENGTH + 1
ret nc
+ ; Increase the party count
ld [de], a
- ld a, [de]
- ld [$ffae], a
+ ld a, [de] ; Why are we doing this?
+ ld [$ffae], a ; HRAM backup
add e
ld e, a
- jr nc, .asm_d8a7
+ jr nc, .loadspecies
inc d
-.asm_d8a7
+.loadspecies
+ ; Load the species of the Pokemon into the party list.
+ ; The terminator is usually here, but it'll be back.
ld a, [CurPartySpecies]
ld [de], a
+ ; Load the terminator into the next slot.
inc de
- ld a, $ff
+ ld a, -1
ld [de], a
+ ; Now let's load the OT name.
ld hl, PartyMonOT
ld a, [MonType]
and $f
- jr z, .asm_d8bc
+ jr z, .loadOTname
ld hl, OTPartyMonOT
-.asm_d8bc
- ld a, [$ffae]
+.loadOTname
+ ld a, [$ffae] ; Restore index from backup
dec a
call SkipNames
ld d, h
@@ -7958,7 +7975,7 @@ Functiond88c: ; d88c
call CopyBytes
ld a, [MonType]
and a
- jr nz, .asm_d8f0
+ jr nz, .skipnickname
ld a, [CurPartySpecies]
ld [wd265], a
call GetPokemonName
@@ -7972,19 +7989,19 @@ Functiond88c: ; d88c
ld bc, PKMN_NAME_LENGTH
call CopyBytes
-.asm_d8f0
+.skipnickname
ld hl, PartyMon1Species
ld a, [MonType]
and $f
- jr z, .asm_d8fd
+ jr z, .initializeStats
ld hl, OTPartyMon1Species
-.asm_d8fd
+.initializeStats
ld a, [$ffae]
dec a
ld bc, PartyMon2 - PartyMon1
call AddNTimes
-Functiond906: ; d906
+GeneratePartyMonStats: ; d906
ld e, l
ld d, h
push hl
@@ -7997,10 +8014,10 @@ Functiond906: ; d906
ld a, [IsInBattle]
and a
ld a, $0
- jr z, .asm_d922
+ jr z, .skipitem
ld a, [EnemyMonItem]
-.asm_d922
+.skipitem
ld [de], a
inc de
push de
@@ -8008,10 +8025,10 @@ Functiond906: ; d906
ld l, e
ld a, [IsInBattle]
and a
- jr z, .asm_d943
+ jr z, .randomlygeneratemoves
ld a, [MonType]
and a
- jr nz, .asm_d943
+ jr nz, .randomlygeneratemoves
ld de, EnemyMonMoves
rept NUM_MOVES + -1
ld a, [de]
@@ -8020,9 +8037,9 @@ Functiond906: ; d906
endr
ld a, [de]
ld [hl], a
- jr .asm_d950
+ jr .next
-.asm_d943
+.randomlygeneratemoves
xor a
rept NUM_MOVES + -1
ld [hli], a
@@ -8031,7 +8048,7 @@ Functiond906: ; d906
ld [Buffer1], a
predef FillMoves
-.asm_d950
+.next
pop de
rept 4
inc de
@@ -8058,22 +8075,22 @@ endr
inc de
xor a
ld b, $a
-.asm_d97a
+.loop
ld [de], a
inc de
dec b
- jr nz, .asm_d97a
+ jr nz, .loop
pop hl
push hl
ld a, [MonType]
and $f
- jr z, .asm_d992
+ jr z, .generateDVs
push hl
callba GetTrainerDVs
pop hl
- jr .asm_d9b5
+ jr .initializetrainermonstats
-.asm_d992
+.generateDVs
ld a, [CurPartySpecies]
ld [wd265], a
dec a
@@ -8087,13 +8104,13 @@ endr
push hl
ld a, [IsInBattle]
and a
- jr nz, .asm_d9f3
+ jr nz, .copywildmonstats
call Random
ld b, a
call Random
ld c, a
-.asm_d9b5
+.initializetrainermonstats
ld a, b
ld [de], a
inc de
@@ -8111,7 +8128,7 @@ endr
rept 4
inc de
endr
- ld a, $46
+ ld a, 70
ld [de], a
inc de
xor a
@@ -8129,7 +8146,7 @@ endr
inc de
ld [de], a
inc de
- ld bc, $000a
+ ld bc, 10
add hl, bc
ld a, $1
ld c, a
@@ -8141,9 +8158,9 @@ endr
ld a, [$ffb6]
ld [de], a
inc de
- jr .asm_da29
+ jr .next2
-.asm_d9f3
+.copywildmonstats
ld a, [EnemyMonDVs]
ld [de], a
inc de
@@ -8154,12 +8171,12 @@ endr
push hl
ld hl, EnemyMonPP
ld b, NUM_MOVES
-.asm_da03
+.wildmonpploop
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, .asm_da03
+ jr nz, .wildmonpploop
pop hl
ld a, BASE_HAPPINESS
@@ -8189,30 +8206,30 @@ endr
ld [de], a
inc de
-.asm_da29
+.next2
ld a, [IsInBattle]
dec a
- jr nz, .asm_da3b
+ jr nz, .generatestats
ld hl, EnemyMonMaxHP
- ld bc, $000c
+ ld bc, 12
call CopyBytes
pop hl
- jr .asm_da45
+ jr .next3
-.asm_da3b
+.generatestats
pop hl
ld bc, $000a
add hl, bc
ld b, $0
call Functione167
-.asm_da45
+.next3
ld a, [MonType]
and $f
- jr nz, .asm_da6b
+ jr nz, .done
ld a, [CurPartySpecies]
cp UNOWN
- jr nz, .asm_da6b
+ jr nz, .done
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
@@ -8221,8 +8238,8 @@ endr
predef GetUnownLetter
callab Functionfba18
-.asm_da6b
- scf
+.done
+ scf ; When this function returns, the carry flag indicates success vs failure.
ret
; da6d
@@ -8992,7 +9009,7 @@ GiveEgg:: ; df8c
push bc
call CheckSeenMon
push bc
- call Functiond88c
+ call TryAddMonToParty
pop bc
ld a, c
and a
@@ -9461,10 +9478,10 @@ endr
GivePoke:: ; e277
push de
push bc
- xor a
+ xor a ; PARTYMON
ld [MonType], a
- call Functiond88c
- jr nc, .asm_e2b0
+ call TryAddMonToParty
+ jr nc, .failed
ld hl, PartyMonNicknames
ld a, [PartyCount]
dec a
@@ -9489,7 +9506,7 @@ GivePoke:: ; e277
ld [hl], a
jr .asm_e2e1
-.asm_e2b0
+.failed
ld a, [CurPartySpecies]
ld [TempEnemyMonSpecies], a
callab LoadEnemyMon
@@ -9761,10 +9778,10 @@ MenuData2_0xe477: ; 0xe477
; 0xe47f
Strings_e47f: ; e47f
- db "WITHDRAW ", $e1, $e2, "@"
- db "DEPOSIT ", $e1, $e2, "@"
+ db "WITHDRAW <PK><MN>@"
+ db "DEPOSIT <PK><MN>@"
db "CHANGE BOX@"
- db "MOVE ", $e1, $e2, " W/O MAIL@"
+ db "MOVE <PK><MN> W/O MAIL@"
db "SEE YA!@"
Jumptable_e4ba: ; e4ba (3:64ba)
@@ -10113,43 +10130,43 @@ Functione6b3: ; e6b3
; e6ce
-Functione6ce: ; e6ce
- ld a, [wdf9c]
+BugContest_SetCaughtContestMon: ; e6ce
+ ld a, [wContestMon]
and a
- jr z, .asm_e6ea
+ jr z, .firstcatch
ld [wd265], a
- callba Functioncc0c7
- callba Functioncc000
+ callba DisplayAlreadyCaughtText
+ callba DisplayCaughtContestMonStats
lb bc, 14, 7
call PlaceYesNoBox
ret c
-.asm_e6ea
- call Functione6fd
+.firstcatch
+ call .generatestats
ld a, [TempEnemyMonSpecies]
ld [wd265], a
call GetPokemonName
- ld hl, UnknownText_0xe71d
+ ld hl, .caughttext
call PrintText
ret
; e6fd
-Functione6fd: ; e6fd
+.generatestats: ; e6fd
ld a, [TempEnemyMonSpecies]
ld [CurSpecies], a
ld [CurPartySpecies], a
call GetBaseData
xor a
ld bc, PartyMon2 - PartyMon1
- ld hl, wdf9c
+ ld hl, wContestMon
call ByteFill
xor a
ld [MonType], a
- ld hl, wdf9c
- jp Functiond906
+ ld hl, wContestMon
+ jp GeneratePartyMonStats
; e71d
-UnknownText_0xe71d: ; 0xe71d
+.caughttext: ; 0xe71d
; Caught @ !
text_jump UnknownText_0x1c10c0
db "@"
@@ -14255,7 +14272,7 @@ Function13256: ; 13256
jr c, .asm_132a7
ld [wd265], a
ld de, wd265
- ld bc, $0103
+ lb bc, 1, 3
call PrintNum
jr .asm_132ad
@@ -14837,7 +14854,7 @@ endr
Special_GiveParkBalls: ; 135db
xor a
- ld [wdf9c], a
+ ld [wContestMon], a
ld a, 20
ld [wdc79], a
callba Function11490
@@ -15230,7 +15247,7 @@ Function13819: ; 13819
ld hl, wd00e
ld a, 1
ld [hli], a
- ld a, [wdf9c]
+ ld a, [wContestMon]
ld [hli], a
ld a, [hProduct]
ld [hli], a
@@ -16829,51 +16846,51 @@ EmotesPointers: ; 144d
dw ShockEmote
db $40, BANK(ShockEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw QuestionEmote
db $40, BANK(QuestionEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw HappyEmote
db $40, BANK(HappyEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw SadEmote
db $40, BANK(SadEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw HeartEmote
db $40, BANK(HeartEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw BoltEmote
db $40, BANK(BoltEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw SleepEmote
db $40, BANK(SleepEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw FishEmote
db $40, BANK(FishEmote)
- dw $8f80
+ dwtile $78, VTiles1
dw FishingRodGFX + $00
db $10, BANK(FishingRodGFX)
- dw $8fc0
+ dwtile $7c, VTiles1
dw FishingRodGFX + $10
db $20, BANK(FishingRodGFX)
- dw $8fc0
+ dwtile $7c, VTiles1
dw FishingRodGFX + $30
db $20, BANK(FishingRodGFX)
- dw $8fe0
+ dwtile $7e, VTiles1
dw FishingRodGFX + $50
db $10, BANK(FishingRodGFX)
- dw $8fe0
+ dwtile $7e, VTiles1
; 14495
@@ -18714,7 +18731,7 @@ GetMartPrice: ; 15bf0
ld [StringBuffer2 + 1], a
ld hl, StringBuffer1
ld de, StringBuffer2
- lb bc, $82, 6 ; 6 digits
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits
call PrintNum
pop hl
@@ -19453,8 +19470,8 @@ MaxMoney: ; 15ff7
TakeMoney:: ; 15ffa
- ld a, $3
- call Function16035
+ ld a, 3
+ call CheckMoney2
jr nc, .asm_16009
xor a
ld [de], a
@@ -19517,33 +19534,33 @@ CheckFunds: ; 1600d
ret
; 16035
-Function16035: ; 16035
- ld a, $3
-Function16037: ; 16037
+CheckMoney2: ; 16035
+ ld a, 3
+CheckFunds2: ; 16037
push hl
push de
push bc
ld h, b
ld l, c
ld b, a
- ld c, $0
-.asm_1603f
+ ld c, 0
+.loop
dec a
- jr z, .asm_16046
+ jr z, .done
inc de
inc hl
- jr .asm_1603f
+ jr .loop
-.asm_16046
+.done
and a
-.asm_16047
+.loop2
ld a, [de]
sbc [hl]
ld [de], a
dec de
dec hl
dec b
- jr nz, .asm_16047
+ jr nz, .loop2
pop bc
pop de
pop hl
@@ -19583,14 +19600,14 @@ Function16055: ; 16055
; 1606f
GiveCoins:: ; 1606f
- ld a, $2
+ ld a, 2
ld de, Coins
call Function16055
- ld a, $2
- ld bc, Unknown_1608d
+ ld a, 2
+ ld bc, .maxcoins
call CheckFunds
jr c, .asm_1608b
- ld hl, Unknown_1608d
+ ld hl, .maxcoins
ld a, [hli]
ld [de], a
inc de
@@ -19604,15 +19621,15 @@ GiveCoins:: ; 1606f
ret
; 1608d
-Unknown_1608d: ; 1608d
+.maxcoins: ; 1608d
bigdw 9999
; 1608f
TakeCoins:: ; 1608f
- ld a, $2
+ ld a, 2
ld de, Coins
- call Function16037
+ call CheckFunds2
jr nc, .asm_1609f
xor a
ld [de], a
@@ -19635,757 +19652,7 @@ CheckCoins:: ; 160a1
INCLUDE "items/marts.asm"
-
-Special_BankOfMom: ; 16218
- ld a, [$ffaa]
- push af
- ld a, $1
- ld [$ffaa], a
- xor a
- ld [wcf63], a
-.asm_16223
- ld a, [wcf63]
- bit 7, a
- jr nz, .asm_1622f
- call Function16233
- jr .asm_16223
-
-.asm_1622f
- pop af
- ld [$ffaa], a
- ret
-; 16233
-
-Function16233: ; 16233
- ld a, [wcf63]
- ld e, a
- ld d, 0
- ld hl, Jumptable_16242
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 16242
-
-Jumptable_16242: ; 16242
- dw Function16254
- dw Function1626a
- dw Function16290
- dw Function162a8
- dw Function162e0
- dw Function16373
- dw Function16406
- dw Function1642d
- dw Function16433
-; 16254
-
-Function16254: ; 16254
- ld a, [wd854]
- bit 7, a
- jr nz, .asm_16264
- set 7, a
- ld [wd854], a
- ld a, $1
- jr .asm_16266
-
-.asm_16264
- ld a, $2
-
-.asm_16266
- ld [wcf63], a
- ret
-; 1626a
-
-Function1626a: ; 1626a
- ld hl, UnknownText_0x16649
- call PrintText
- call YesNoBox
- jr c, .asm_1627f
- ld hl, UnknownText_0x1664e
- call PrintText
- ld a, $81
- jr .asm_16281
-
-.asm_1627f
- ld a, $80
-
-.asm_16281
- ld [wd854], a
- ld hl, UnknownText_0x16653
- call PrintText
- ld a, $8
- ld [wcf63], a
- ret
-; 16290
-
-Function16290: ; 16290
- ld hl, UnknownText_0x16658
- call PrintText
- call YesNoBox
- jr c, .asm_1629f
- ld a, $3
- jr .asm_162a4
-
-.asm_1629f
- call DSTChecks
- ld a, $7
-
-.asm_162a4
- ld [wcf63], a
- ret
-; 162a8
-
-Function162a8: ; 162a8
- ld hl, UnknownText_0x1665d
- call PrintText
- call Function1d6e
- ld hl, MenuDataHeader_0x166b5
- call CopyMenuDataHeader
- call InterpretMenu2
- call WriteBackup
- jr c, .asm_162ce
- ld a, [wcfa9]
- cp $1
- jr z, .asm_162d2
- cp $2
- jr z, .asm_162d6
- cp $3
- jr z, .asm_162da
-
-.asm_162ce
- ld a, $7
- jr .asm_162dc
-
-.asm_162d2
- ld a, $5
- jr .asm_162dc
-
-.asm_162d6
- ld a, $4
- jr .asm_162dc
-
-.asm_162da
- ld a, $6
-
-.asm_162dc
- ld [wcf63], a
- ret
-; 162e0
-
-Function162e0: ; 162e0
- ld hl, UnknownText_0x16662
- call PrintText
- xor a
- ld hl, StringBuffer2
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ld a, $5
- ld [wcf64], a
- call Function1d6e
- call Function16517
- call Function1656b
- call Function16571
- call WriteBackup
- jr c, .asm_1636d
- ld hl, StringBuffer2
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- jr z, .asm_1636d
- ld de, Money
- ld bc, StringBuffer2
- callba CheckMoney
- jr c, .asm_1635f
- ld hl, StringBuffer2
- ld de, StringBuffer2 + 3
- ld bc, $0003
- call CopyBytes
- ld bc, wd851
- ld de, StringBuffer2
- callba GiveMoney
- jr c, .asm_16366
- ld bc, StringBuffer2 + 3
- ld de, Money
- callba TakeMoney
- ld hl, StringBuffer2
- ld de, wd851
- ld bc, $0003
- call CopyBytes
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- ld hl, UnknownText_0x1668a
- call PrintText
- ld a, $8
- jr .asm_1636f
-
-.asm_1635f
- ld hl, UnknownText_0x1667b
- call PrintText
- ret
-
-.asm_16366
- ld hl, UnknownText_0x16680
- call PrintText
- ret
-
-.asm_1636d
- ld a, $7
-
-.asm_1636f
- ld [wcf63], a
- ret
-; 16373
-
-Function16373: ; 16373
- ld hl, UnknownText_0x16667
- call PrintText
- xor a
- ld hl, StringBuffer2
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ld a, $5
- ld [wcf64], a
- call Function1d6e
- call Function16512
- call Function1656b
- call Function16571
- call WriteBackup
- jr c, .asm_16400
- ld hl, StringBuffer2
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- jr z, .asm_16400
- ld hl, StringBuffer2
- ld de, StringBuffer2 + 3
- ld bc, $0003
- call CopyBytes
- ld de, wd851
- ld bc, StringBuffer2
- callba CheckMoney
- jr c, .asm_163f2
- ld bc, Money
- ld de, StringBuffer2
- callba GiveMoney
- jr c, .asm_163f9
- ld bc, StringBuffer2 + 3
- ld de, wd851
- callba TakeMoney
- ld hl, StringBuffer2
- ld de, Money
- ld bc, $0003
- call CopyBytes
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- ld hl, UnknownText_0x1668f
- call PrintText
- ld a, $8
- jr .asm_16402
-
-.asm_163f2
- ld hl, UnknownText_0x16671
- call PrintText
- ret
-
-.asm_163f9
- ld hl, UnknownText_0x16676
- call PrintText
- ret
-
-.asm_16400
- ld a, $7
-
-.asm_16402
- ld [wcf63], a
- ret
-; 16406
-
-Function16406: ; 16406
- ld hl, UnknownText_0x1666c
- call PrintText
- call YesNoBox
- jr c, .asm_16422
- ld a, $81
- ld [wd854], a
- ld hl, UnknownText_0x16685
- call PrintText
- ld a, $8
- ld [wcf63], a
- ret
-
-.asm_16422
- ld a, $80
- ld [wd854], a
- ld a, $7
- ld [wcf63], a
- ret
-; 1642d
-
-Function1642d: ; 1642d
- ld hl, UnknownText_0x16694
- call PrintText
-
-Function16433: ; 16433
- ld hl, wcf63
- set 7, [hl]
- ret
-; 16439
-
-DSTChecks: ; 16439
-; check the time; avoid changing DST if doing so would change the current day
- ld a, [wDST]
- bit 7, a
- ld a, [hHours]
- jr z, .asm_16447
- and a ; within one hour of 00:00?
- jr z, .LostBooklet
- jr .loop
-
-.asm_16447
- cp 23 ; within one hour of 23:00?
- jr nz, .loop
- ; fallthrough
-
-.LostBooklet
- call Function164ea
- bccoord 1, 14
- ld hl, UnknownText_0x164f4
- call PlaceWholeStringInBoxAtOnce
- call YesNoBox
- ret c
- call Function164ea
- bccoord 1, 14
- ld hl, LostInstructionBookletText
- call PlaceWholeStringInBoxAtOnce
- ret
-
-.loop
- call Function164ea
- bccoord 1, 14
- ld a, [wDST]
- bit 7, a
- jr z, .asm_16497
- ld hl, UnknownText_0x16508
- call PlaceWholeStringInBoxAtOnce
- call YesNoBox
- ret c
- ld a, [wDST]
- res 7, a
- ld [wDST], a
- call Function164d1
- call Function164ea
- bccoord 1, 14
- ld hl, UnknownText_0x1650d
- call PlaceWholeStringInBoxAtOnce
- ret
-
-.asm_16497
- ld hl, UnknownText_0x164fe
- call PlaceWholeStringInBoxAtOnce
- call YesNoBox
- ret c
- ld a, [wDST]
- set 7, a
- ld [wDST], a
- call Function164b9
- call Function164ea
- bccoord 1, 14
- ld hl, UnknownText_0x16503
- call PlaceWholeStringInBoxAtOnce
- ret
-; 164b9
-
-Function164b9: ; 164b9
- ld a, [StartHour]
- add 1
- sub 24
- jr nc, .asm_164c4
- add 24
-.asm_164c4
- ld [StartHour], a
- ccf
- ld a, [StartDay]
- adc 0
- ld [StartDay], a
- ret
-; 164d1
-
-Function164d1: ; 164d1
- ld a, [StartHour]
- sub 1
- jr nc, .asm_164da
- add 24
-.asm_164da
- ld [StartHour], a
- ld a, [StartDay]
- sbc 0
- jr nc, .asm_164e6
- add 7
-.asm_164e6
- ld [StartDay], a
- ret
-; 164ea
-
-Function164ea: ; 164ea
- hlcoord 1, 14
- ld bc, $0312
- call ClearBox
- ret
-; 164f4
-
-UnknownText_0x164f4: ; 0x164f4
- ; Do you want to adjust your clock for Daylight Saving Time?
- text_jump UnknownText_0x1c6095
- db "@"
-; 0x164f9
-
-LostInstructionBookletText: ; 0x164f9
- ; I lost the instruction booklet for the POKéGEAR.
- ; Come back again in a while.
- text_jump UnknownText_0x1c60d1
- db "@"
-; 0x164fe
-
-UnknownText_0x164fe: ; 0x164fe
- ; Do you want to switch to Daylight Saving Time?
- text_jump UnknownText_0x1c6000
- db "@"
-; 0x16503
-
-UnknownText_0x16503: ; 0x16503
- ; I set the clock forward by one hour.
- text_jump UnknownText_0x1c6030
- db "@"
-; 0x16508
-
-UnknownText_0x16508: ; 0x16508
- ; Is Daylight Saving Time over?
- text_jump UnknownText_0x1c6056
- db "@"
-; 0x1650d
-
-UnknownText_0x1650d: ; 0x1650d
- ; I put the clock back one hour.
- text_jump UnknownText_0x1c6075
- db "@"
-; 0x16512
-
-Function16512: ; 16512
- ld de, String_1669f
- jr Function1651a
-
-Function16517: ; 16517
- ld de, String_166a8
-
-Function1651a: ; 1651a
- push de
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, $0612
- call TextBox
- hlcoord 1, 2
- ld de, String_16699
- call PlaceString
- hlcoord 12, 2
- ld de, wd851
- ld bc, $2306
- call PrintNum
- hlcoord 1, 4
- ld de, String_166b0
- call PlaceString
- hlcoord 12, 4
- ld de, Money
- ld bc, $2306
- call PrintNum
- hlcoord 1, 6
- pop de
- call PlaceString
- hlcoord 12, 6
- ld de, StringBuffer2
- ld bc, $a306
- call PrintNum
- call UpdateSprites
- call Function3238
- ret
-; 1656b
-
-Function1656b: ; 1656b
- ld c, $a
- call DelayFrames
- ret
-; 16571
-
-Function16571: ; 16571
-.asm_16571
- call Functiona57
- ld hl, hJoyPressed
- ld a, [hl]
- and $2
- jr nz, .asm_165b5
- ld a, [hl]
- and $1
- jr nz, .asm_165b7
- call Function165b9
- xor a
- ld [hBGMapMode], a
- hlcoord 12, 6
- ld bc, $0007
- ld a, $7f
- call ByteFill
- hlcoord 12, 6
- ld de, StringBuffer2
- ld bc, $a306
- call PrintNum
- ld a, [$ff9b]
- and $10
- jr nz, .asm_165b0
- hlcoord 13, 6
- ld a, [wcf64]
- ld c, a
- ld b, $0
- add hl, bc
- ld [hl], $7f
-
-.asm_165b0
- call WaitBGMap
- jr .asm_16571
-
-.asm_165b5
- scf
- ret
-
-.asm_165b7
- and a
- ret
-; 165b9
-
-Function165b9: ; 165b9
- ld hl, $ffa9
- ld a, [hl]
- and $40
- jr nz, .asm_165e3
- ld a, [hl]
- and $80
- jr nz, .asm_165f5
- ld a, [hl]
- and $20
- jr nz, .asm_165d2
- ld a, [hl]
- and $10
- jr nz, .asm_165da
- and a
- ret
-
-.asm_165d2
- ld hl, wcf64
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_165da
- ld hl, wcf64
- ld a, [hl]
- cp $5
- ret nc
- inc [hl]
- ret
-
-.asm_165e3
- ld hl, Unknown_16613
- call Function16607
- ld c, l
- ld b, h
- ld de, StringBuffer2
- callba GiveMoney
- ret
-
-.asm_165f5
- ld hl, Unknown_16613
- call Function16607
- ld c, l
- ld b, h
- ld de, StringBuffer2
- callba TakeMoney
- ret
-; 16607
-
-Function16607: ; 16607
- ld a, [wcf64]
- push de
- ld e, a
- ld d, 0
-rept 3
- add hl, de
-endr
- pop de
- ret
-; 16613
-
-Unknown_16613: ; 16613
- dt 100000
- dt 10000
- dt 1000
- dt 100
- dt 10
- dt 1
-
- dt 100000
- dt 10000
- dt 1000
- dt 100
- dt 10
- dt 1
-
- dt 900000
- dt 90000
- dt 9000
- dt 900
- dt 90
- dt 9
-; 16649
-
-UnknownText_0x16649: ; 0x16649
- ; Wow, that's a cute #MON. Where did you get it? … So, you're leaving on an adventure… OK! I'll help too. But what can I do for you? I know! I'll save money for you. On a long journey, money's important. Do you want me to save your money?
- text_jump UnknownText_0x1bd77f
- db "@"
-; 0x1664e
-
-UnknownText_0x1664e: ; 0x1664e
- ; OK, I'll take care of your money.
- text_jump UnknownText_0x1bd868
- db "@"
-; 0x16653
-
-UnknownText_0x16653: ; 0x16653
- ; Be careful. #MON are your friends. You need to work as a team. Now, go on!
- text_jump UnknownText_0x1bd88e
- db "@"
-; 0x16658
-
-UnknownText_0x16658: ; 0x16658
- ; Hi! Welcome home! You're trying very hard, I see. I've kept your room tidy. Or is this about your money?
- text_jump UnknownText_0x1bd8da
- db "@"
-; 0x1665d
-
-UnknownText_0x1665d: ; 0x1665d
- ; What do you want to do?
- text_jump UnknownText_0x1bd942
- db "@"
-; 0x16662
-
-UnknownText_0x16662: ; 0x16662
- ; How much do you want to save?
- text_jump UnknownText_0x1bd95b
- db "@"
-; 0x16667
-
-UnknownText_0x16667: ; 0x16667
- ; How much do you want to take?
- text_jump UnknownText_0x1bd97a
- db "@"
-; 0x1666c
-
-UnknownText_0x1666c: ; 0x1666c
- ; Do you want to save some money?
- text_jump UnknownText_0x1bd999
- db "@"
-; 0x16671
-
-UnknownText_0x16671: ; 0x16671
- ; You haven't saved that much.
- text_jump UnknownText_0x1bd9ba
- db "@"
-; 0x16676
-
-UnknownText_0x16676: ; 0x16676
- ; You can't take that much.
- text_jump UnknownText_0x1bd9d7
- db "@"
-; 0x1667b
-
-UnknownText_0x1667b: ; 0x1667b
- ; You don't have that much.
- text_jump UnknownText_0x1bd9f1
- db "@"
-; 0x16680
-
-UnknownText_0x16680: ; 0x16680
- ; You can't save that much.
- text_jump UnknownText_0x1bda0b
- db "@"
-; 0x16685
-
-UnknownText_0x16685: ; 0x16685
- ; OK, I'll save your money. Trust me! , stick with it!
- text_jump UnknownText_0x1bda25
- db "@"
-; 0x1668a
-
-UnknownText_0x1668a: ; 0x1668a
- ; Your money's safe here! Get going!
- text_jump UnknownText_0x1bda5b
- db "@"
-; 0x1668f
-
-UnknownText_0x1668f: ; 0x1668f
- ; , don't give up!
- text_jump UnknownText_0x1bda7e
- db "@"
-; 0x16694
-
-UnknownText_0x16694: ; 0x16694
- ; Just do what you can.
- text_jump UnknownText_0x1bda90
- db "@"
-; 0x16699
-
-String_16699: ; 16699
- db "SAVED@"
-; 1669f
-
-String_1669f: ; 1669f
- db "WITHDRAW@"
-; 166a8
-
-String_166a8: ; 166a8
- db "DEPOSIT@"
-; 166b0
-
-String_166b0: ; 166b0
- db "HELD@"
-; 166b5
-
-MenuDataHeader_0x166b5: ; 0x166b5
- db $40 ; flags
- db 00, 00 ; start coords
- db 10, 10 ; end coords
- dw MenuData2_0x166bd
- db 1 ; default option
-; 0x166bd
-
-MenuData2_0x166bd: ; 0x166bd
- db $80 ; flags
- db 4 ; items
- db "GET@"
- db "SAVE@"
- db "CHANGE@"
- db "CANCEL@"
-; 0x166d6
+INCLUDE "event/mom.asm"
Special_DayCareMan: ; 166d6
ld hl, wDaycareMan
@@ -20487,11 +19754,11 @@ Function1678f: ; 1678f
Function16798: ; 16798
ld a, [PartyCount]
- cp $2
+ cp 2
jr c, .asm_167e5
- ld a, $4
+ ld a, 4
call Function1689b
- ld b, $6
+ ld b, 6
callba Function5001d
jr c, .asm_167dd
ld a, [CurPartySpecies]
@@ -22264,10 +21531,10 @@ INCBIN "gfx/unknown/017393.2bpp"
Function173b3: ; 173b3 (5:73b3)
callba Function8cf53
ld hl, Unknown_173ef
-.asm_173bc
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_173e5
+ jr z, .done
ld e, a
ld a, [hli]
ld d, a
@@ -22292,8 +21559,8 @@ Function173b3: ; 173b3 (5:73b3)
add hl, bc
ld [hl], d
pop hl
- jr .asm_173bc
-.asm_173e5
+ jr .loop
+.done
ld de, SFX_EGG_HATCH
call PlaySFX
call Function1727f
@@ -23801,13 +23068,13 @@ Function2466f: ; 2466f
Function24673: ; 24673
ld a, [wcf91]
bit 7, a
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, [wcfa9]
dec a
call Function248d5
ld a, [MenuSelection]
cp $ff
- jp z, Function2ec8
+ jp z, xor_a_dec_a
call Function246fc
dec a
ld [wcf77], a
@@ -23819,7 +23086,7 @@ Function24673: ; 24673
Function24695: ; 24695
ld a, [wcf91]
bit 6, a
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, $8
scf
ret
@@ -23828,10 +23095,10 @@ Function24695: ; 24695
Function246a1: ; 246a1
ld hl, wcfa6
bit 7, [hl]
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, [wcf91]
bit 3, a
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, $20
scf
ret
@@ -23840,10 +23107,10 @@ Function246a1: ; 246a1
Function246b5: ; 246b5
ld hl, wcfa6
bit 7, [hl]
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, [wcf91]
bit 2, a
- jp z, Function2ec8
+ jp z, xor_a_dec_a
ld a, $10
scf
ret
@@ -23852,22 +23119,22 @@ Function246b5: ; 246b5
Function246c9: ; 246c9
ld hl, wcfa6
bit 7, [hl]
- jp z, Function2ec6
+ jp z, xor_a
ld hl, wd0e4
ld a, [hl]
and a
jr z, .asm_246dc
dec [hl]
- jp Function2ec6
+ jp xor_a
.asm_246dc
- jp Function2ec8
+ jp xor_a_dec_a
; 246df
Function246df: ; 246df
ld hl, wcfa6
bit 7, [hl]
- jp z, Function2ec6
+ jp z, xor_a
ld hl, wd0e4
ld a, [wcf92]
add [hl]
@@ -23876,10 +23143,10 @@ Function246df: ; 246df
cp b
jr c, .asm_246f9
inc [hl]
- jp Function2ec6
+ jp xor_a
.asm_246f9
- jp Function2ec8
+ jp xor_a_dec_a
; 246fc
Function246fc: ; 246fc
@@ -24516,7 +23783,7 @@ Function24ac3: ; 0x24ac3
ld [hl], $f1
inc hl
ld de, wcf75
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
.done
@@ -24544,7 +23811,7 @@ Function24b01: ; 24b01
ld de, $0015
add hl, de
ld de, Money
- ld bc, $2306
+ lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
ret
; 24b15
@@ -24567,8 +23834,8 @@ MenuDataHeader_0x24b1d: ; 0x24b1d
Function24b25: ; 24b25
hlcoord 11, 0
- ld b, $1
- ld c, $7
+ ld b, 1
+ ld c, 7
call TextBox
hlcoord 12, 0
ld de, CoinString
@@ -24577,7 +23844,7 @@ Function24b25: ; 24b25
ld de, String24b8e
call PlaceString
ld de, Coins
- ld bc, $0204
+ lb bc, 2, 4
hlcoord 13, 1
call PrintNum
ret
@@ -24593,14 +23860,14 @@ Function24b4e: ; 24b4e
call PlaceString
hlcoord 12, 1
ld de, Money
- ld bc, $2306
+ lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
hlcoord 6, 3
ld de, CoinString
call PlaceString
hlcoord 15, 3
ld de, Coins
- ld bc, $0204
+ lb bc, 2, 4
call PrintNum
ret
; 24b83
@@ -24624,7 +23891,7 @@ Function24b8f: ; 24b8f
call TextBox
hlcoord 1, 1
ld de, wdc7a
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
hlcoord 4, 1
ld de, String24bcf
@@ -24634,7 +23901,7 @@ Function24b8f: ; 24b8f
call PlaceString
hlcoord 5, 3
ld de, wdc79
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
pop af
ld [Options], a
@@ -24666,12 +23933,12 @@ Function24be7: ; 24be7
call PlaceString
hlcoord 8, 5
ld de, wdc79
- ld bc, $4102
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
hlcoord 1, 1
ld de, String24c4b
call PlaceString
- ld a, [wdf9c]
+ ld a, [wContestMon]
and a
ld de, String24c59
jr z, .asm_24c1e
@@ -24681,7 +23948,7 @@ Function24be7: ; 24be7
.asm_24c1e
hlcoord 8, 1
call PlaceString
- ld a, [wdf9c]
+ ld a, [wContestMon]
and a
jr z, .asm_24c3e
hlcoord 1, 3
@@ -25204,7 +24471,7 @@ Strings24f5f: ; 24f5f
Function24f7c: ; 24f7c
hlcoord 17, 13
ld de, wdc79
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 24f89
@@ -25236,7 +24503,7 @@ Strings24f9a: ; 24f9a
Function24fb2: ; 24fb2
hlcoord 13, 16
ld de, wdc79
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 24fbf
@@ -25381,7 +24648,7 @@ Function25072: ; 25072
ld [hl], $f1
inc hl
ld de, wd10c
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld a, [wcf86]
ld e, a
@@ -25453,7 +24720,7 @@ Function250d1: ; 250d1
pop hl
inc hl
ld de, hMoneyTemp
- ld bc, $2306
+ lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
call WaitBGMap
ret
@@ -25717,17 +24984,17 @@ Function25299: ; 25299 (9:5299)
call PlaceString
hlcoord 5, 4
ld de, PlayerID
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
hlcoord 7, 6
ld de, Money
- ld bc, $2306
+ lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
hlcoord 1, 3
ld de, Tilemap_252fc
call Function253a8
hlcoord 14, 1
- ld bc, $507
+ lb bc, 5, 7
xor a
ld [$ffad], a
predef FillBox
@@ -25758,7 +25025,7 @@ Function2530a: ; 2530a (9:530a)
call CountSetBits
ld de, wd265
hlcoord 15, 10
- ld bc, $103
+ lb bc, 1, 3
call PrintNum
call Function25415
hlcoord 2, 8
@@ -25917,11 +25184,11 @@ Function253f4: ; 253f4 (9:53f4)
Function25415: ; 25415 (9:5415)
hlcoord 11, 12
ld de, GameTimeHours
- ld bc, $204
+ lb bc, 2, 4
call PrintNum
inc hl
ld de, GameTimeMinutes
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld a, [$ff9b]
and $1f
@@ -26165,7 +25432,7 @@ ClearOakRatingBuffer: ; 0x2665a
ld bc, $000d
call ByteFill
pop hl
- ld bc, $4103
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 3
call PrintNum
ret
; 0x2666b
@@ -27788,9 +27055,9 @@ LevelUpHappinessMod: ; 2709e
ld c, a
call GetWorldMapLocation
cp d
- ld c, 1
+ ld c, HAPPINESS_GAINLEVEL
jr nz, .ok
- ld c, 19
+ ld c, HAPPINESS_GAINLEVELATHOME
.ok
callab ChangeHappiness
@@ -30957,7 +30224,7 @@ Function295d8: ; 295d8
Function295e3: ; 295e3
hlcoord 10, 0
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
ld [hl], $7f
ret
@@ -30995,7 +30262,7 @@ Unknown_2960e: ; 2960e
Function29611: ; 29611
hlcoord 7, 6
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
ret
; 2961b
@@ -33891,73 +33158,77 @@ Function2c642: ; 2c642 (b:4642)
call CloseSRAM
ld hl, OverworldMap
ld de, wc950
- ld bc, $14
+ ld bc, SCREEN_WIDTH
jp CopyBytes
Function2c6ac: ; 2c6ac (b:46ac)
push de
call Random
- cp $19
- jr c, .asm_2c6cc
+ cp $19 ; 10 percent
+ jr c, .tenpercent
call Random
and $7
ld d, a
rl d
ld e, $80
-.asm_2c6be
+.loop
rlc e
dec a
- jr nz, .asm_2c6be
+ jr nz, .loop
ld a, e
and c
- jr z, .asm_2c6c9
+ jr z, .skip
ld a, $1
-.asm_2c6c9
+.skip
add d
- jr .asm_2c706
-.asm_2c6cc
+ jr .done
+
+.tenpercent
call Random
- cp $32
- jr c, .asm_2c6ed
+ cp $32 ; 20 percent
+ jr c, .twopercent
call Random
and $3
ld d, a
rl d
ld e, $80
-.asm_2c6dd
+.loop2
rlc e
dec a
- jr nz, .asm_2c6dd
+ jr nz, .loop2
ld a, e
and b
- jr z, .asm_2c6e8
+ jr z, .skip2
ld a, $1
-.asm_2c6e8
+.skip2
add d
add $10
- jr .asm_2c706
-.asm_2c6ed
+ jr .done
+
+.twopercent
call Random
- cp $32
- jr c, .asm_2c6fd
+ cp $32 ; 50 ; 20 percent
+ jr c, .pointfourpercent
ld a, b
swap a
and $7
add $18
- jr .asm_2c706
-.asm_2c6fd
+ jr .done
+
+.pointfourpercent
ld a, b
and $80
ld a, $20
- jr z, .asm_2c706
+ jr z, .done
ld a, $21
-.asm_2c706
+
+.done
pop de
ret
-Function2c708: ; 2c708 (b:4708)
+MysteryGiftGetItem: ; 2c708 (b:4708)
ld a, c
- cp $25
+ cp $25 ; 37
jr nc, Function2c722
ld hl, Unknown_2c725
ld b, 0
@@ -33965,9 +33236,9 @@ Function2c708: ; 2c708 (b:4708)
ld c, [hl]
ret
-Function2c715: ; 2c715 (b:4715)
+MysteryGiftGetDecoration: ; 2c715 (b:4715)
ld a, c
- cp $25
+ cp $25 ; 37
jr nc, Function2c722
ld hl, Unknown_2c74a
ld b, 0
@@ -33976,32 +33247,90 @@ Function2c715: ; 2c715 (b:4715)
ret
Function2c722: ; 2c722 (b:4722)
- ld c, $4
+ ld c, DECO_POLKADOT_BED ; GREAT_BALL
ret
; 2c725 (b:4725)
Unknown_2c725: ; 2c725
; May or may not be items.
- db $ad, $4e, $54, $50, $4f
- db $4a, $29, $33, $31, $53
- db $2c, $35, $21, $b9, $ba
- db $bc, $6d, $ae, $27, $04
- db $2a, $2b, $41, $3f, $18
- db $16, $22, $17, $40, $15
- db $28, $8c, $1a, $3e, $20
- db $bb, $bd
+ db BERRY
+ db PRZCUREBERRY
+ db MINT_BERRY
+ db ICE_BERRY
+ db BURNT_BERRY
+ db PSNCUREBERRY
+ db GUARD_SPEC
+ db X_DEFEND
+ db X_ATTACK
+ db BITTER_BERRY
+ db DIRE_HIT
+ db X_SPECIAL
+ db X_ACCURACY
+ db EON_MAIL
+ db MORPH_MAIL
+ db MUSIC_MAIL
+ db MIRACLEBERRY
+ db GOLD_BERRY
+ db REVIVE
+ db GREAT_BALL
+ db SUPER_REPEL
+ db MAX_REPEL
+ db ELIXER
+ db ETHER
+ db WATER_STONE
+ db FIRE_STONE
+ db LEAF_STONE
+ db THUNDERSTONE
+ db MAX_ETHER
+ db MAX_ELIXER
+ db MAX_REVIVE
+ db SCOPE_LENS
+ db HP_UP
+ db PP_UP
+ db RARE_CANDY
+ db BLUESKY_MAIL
+ db MIRAGE_MAIL
; 2c74a
Unknown_2c74a: ; 2c74a
; May or may not be items.
- db $16, $1a, $1b, $1c, $1d
- db $1e, $1f, $20, $21, $22
- db $0d, $0e, $10, $23, $25
- db $26, $08, $09, $0f, $11
- db $17, $19, $01, $02, $04
- db $05, $06, $07, $0a, $12
- db $29, $0c, $2a, $14, $03
- db $24, $27
+ db DECO_SNES
+ db DECO_BIG_SNORLAX_DOLL
+ db DECO_BIG_ONIX_DOLL
+ db DECO_BIG_LAPRAS_DOLL
+ db DECO_1D
+ db DECO_PIKACHU_DOLL
+ db DECO_SURF_PIKACHU_DOLL
+ db DECO_CLEFAIRY_DOLL
+ db DECO_JIGGLYPUFF_DOLL
+ db DECO_BULBASAUR_DOLL
+ db DECO_TROPICPLANT
+ db DECO_JUMBOPLANT
+ db DECO_TOWN_MAP
+ db DECO_CHARMANDER_DOLL
+ db DECO_POLIWAG_DOLL
+ db DECO_DIGLETT_DOLL
+ db DECO_BLUE_CARPET
+ db DECO_YELLOW_CARPET
+ db DECO_0F
+ db DECO_PIKACHU_POSTER
+ db DECO_N64
+ db DECO_19
+ db DECO_01
+ db DECO_FEATHERY_BED
+ db DECO_POLKADOT_BED
+ db DECO_PIKACHU_BED
+ db DECO_06
+ db DECO_RED_CARPET
+ db DECO_GREEN_CARPET
+ db DECO_CLEFAIRY_POSTER
+ db DECO_ODDISH_DOLL
+ db DECO_MAGNAPLANT
+ db DECO_GENGAR_DOLL
+ db DECO_14
+ db DECO_PINK_BED
+ db DECO_SQUIRTLE_DOLL
+ db DECO_STARMIE_DOLL
; 2c76f
Function2c76f: ; 2c76f (b:476f)
@@ -34034,16 +33363,16 @@ Function2c798: ; 2c798 (b:4798)
ld [CurItem], a
ret
-Function2c7a7: ; 2c7a7 (b:47a7)
+ConvertCurItemIntoCurTMHM: ; 2c7a7 (b:47a7)
ld a, [CurItem]
ld c, a
callab GetTMHMNumber
ld a, c
- ld [wd265], a
+ ld [wCurTMHM], a
ret
GetTMHMItemMove: ; 2c7b6 (b:47b6)
- call Function2c7a7
+ call ConvertCurItemIntoCurTMHM
predef GetTMHMMove
ret
@@ -34054,23 +33383,23 @@ Function2c7bf: ; 2c7bf (b:47bf)
res 4, [hl]
ld a, [CurItem]
cp TM01
- jr c, .asm_2c7f5
+ jr c, .NotTMHM
call GetTMHMItemMove
- ld a, [wd265]
+ ld a, [wCurTMHM]
ld [wd262], a
call GetMoveName
call CopyName1
- ld hl, UnknownText_0x2c8bf
+ ld hl, UnknownText_0x2c8bf ; Booted up a TM
ld a, [CurItem]
cp HM01
- jr c, .asm_2c7e9
- ld hl, UnknownText_0x2c8c4
-.asm_2c7e9
+ jr c, .TM
+ ld hl, UnknownText_0x2c8c4 ; Booted up an HM
+.TM
call PrintText
ld hl, UnknownText_0x2c8c9
call PrintText
call YesNoBox
-.asm_2c7f5
+.NotTMHM
pop bc
ld a, b
ld [Options], a
@@ -34080,7 +33409,7 @@ Function2c7bf: ; 2c7bf (b:47bf)
Function2c7fb: ; 2c7fb
ld hl, StringBuffer2
ld de, wd066
- ld bc, $000c
+ ld bc, $c
call CopyBytes
call WhiteBGMap
@@ -34090,7 +33419,7 @@ Function2c80a: ; 2c80a
callba Function503e0
ld a, $3
ld [PartyMenuActionText], a
-.asm_2c821
+.loopback
callba WritePartyMenuTilemap
callba PrintPartyMenuText
call WaitBGMap
@@ -34100,17 +33429,17 @@ Function2c80a: ; 2c80a
push af
ld a, [CurPartySpecies]
cp EGG
- pop bc
- jr z, .asm_2c854
+ pop bc ; now contains the former contents of af
+ jr z, .egg
push bc
ld hl, wd066
ld de, StringBuffer2
- ld bc, $000c
+ ld bc, $c
call CopyBytes
- pop af
+ pop af ; now contains the original contents of af
ret
-.asm_2c854
+.egg
push hl
push de
push bc
@@ -34122,7 +33451,7 @@ Function2c80a: ; 2c80a
pop bc
pop de
pop hl
- jr .asm_2c821
+ jr .loopback
; 2c867
Function2c867: ; 2c867
@@ -34136,35 +33465,35 @@ Function2c867: ; 2c867
ld a, c
and a
- jr nz, .asm_2c88b
+ jr nz, .compatible
push de
ld de, SFX_WRONG
call PlaySFX
pop de
ld hl, UnknownText_0x2c8ce
call PrintText
- jr .asm_2c8b6
-.asm_2c88b
+ jr .nope
+.compatible
callab KnowsMove
- jr c, .asm_2c8b6
+ jr c, .nope
predef LearnMove
ld a, b
and a
- jr z, .asm_2c8b6
+ jr z, .nope
callba Function106049
ld a, [CurItem]
call IsHM
ret c
- ld c, $5
+ ld c, HAPPINESS_LEARNMOVE
callab ChangeHappiness
call Function2cb0c
jr .asm_2c8bd
-.asm_2c8b6
+.nope
and a
ret
@@ -34324,7 +33653,7 @@ Function2c9af: ; 2c9af (b:49af)
Function2c9b1: ; 2c9b1 (b:49b1)
ld a, b
bit 7, a
- jr nz, .asm_2c9c5
+ jr nz, .skip
ld hl, wd0e2
ld a, [hl]
and a
@@ -34332,19 +33661,20 @@ Function2c9b1: ; 2c9b1 (b:49b1)
dec [hl]
call Function2c9e2
jp Function2c946
-.asm_2c9c5
+
+.skip
call Function2cab5
ld b, $5
-.asm_2c9ca
+.loop
inc c
ld a, c
- cp $3a
+ cp NUM_TMS + NUM_HMS + 1
jp nc, Function2c915
ld a, [hli]
and a
- jr z, .asm_2c9ca
+ jr z, .loop
dec b
- jr nz, .asm_2c9ca
+ jr nz, .loop
ld hl, wd0e2
inc [hl]
call Function2c9e2
@@ -34357,18 +33687,18 @@ Function2c9e2: ; 2c9e2 (b:49e2)
hlcoord 5, 2
ld bc, $a0f
- ld a, $7f
+ ld a, " "
call ClearBox
call Function2cab5
ld d, $5
-.asm_2c9fa
+.loop2
inc c
ld a, c
- cp $3a
- jr nc, .asm_2ca77
+ cp NUM_TMS + NUM_HMS + 1
+ jr nc, .NotTMHM
ld a, [hli]
and a
- jr z, .asm_2c9fa
+ jr z, .loop2
ld b, a
ld a, c
ld [wd265], a
@@ -34378,24 +33708,25 @@ Function2c9e2: ; 2c9e2 (b:49e2)
call Function2ca86
push hl
ld a, [wd265]
- cp $33
- jr nc, .asm_2ca22
+ cp NUM_TMS + 1
+ jr nc, .HM
ld de, wd265
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
- jr .asm_2ca38
-.asm_2ca22
+ jr .okay
+
+.HM
push af
- sub $32
+ sub NUM_TMS
ld [wd265], a
- ld [hl], $87
+ ld [hl], "H"
inc hl
ld de, wd265
- ld bc, $4102
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
pop af
ld [wd265], a
-.asm_2ca38
+.okay
predef GetTMHMMove
ld a, [wd265]
ld [wd262], a
@@ -34409,28 +33740,29 @@ Function2c9e2: ; 2c9e2 (b:49e2)
pop bc
ld a, c
push bc
- cp $33
- jr nc, .asm_2ca6f
+ cp NUM_TMS + 1
+ jr nc, .hm2
ld bc, $1d
add hl, bc
ld [hl], $f1
inc hl
- ld a, $f6
+ ld a, "0" ; why are we doing this?
pop bc
push bc
ld a, b
ld [wd265], a
ld de, wd265
- ld bc, $102
+ lb bc, 1, 2
call PrintNum
-.asm_2ca6f
+.hm2
pop bc
pop de
pop hl
dec d
- jr nz, .asm_2c9fa
- jr .asm_2ca85
-.asm_2ca77
+ jr nz, .loop2
+ jr .done
+
+.NotTMHM
call Function2ca86
rept 3
inc hl
@@ -34439,25 +33771,25 @@ endr
ld de, String_2caae
call PlaceString
pop de
-.asm_2ca85
+.done
ret
Function2ca86: ; 2ca86 (b:4a86)
hlcoord 5, 0
ld bc, $28
- ld a, $6
+ ld a, 6
sub d
ld e, a
-.asm_2ca90
+.loop
add hl, bc
dec e
- jr nz, .asm_2ca90
+ jr nz, .loop
ret
; 2ca95 (b:4a95)
Function2ca95: ; 2ca95
pop hl
- ld bc, $0003
+ ld bc, 3
add hl, bc
predef GetTMHMMove
ld a, [wd265]
@@ -34478,14 +33810,14 @@ Function2cab5: ; 2cab5 (b:4ab5)
ld a, [wd0e2]
ld b, a
inc b
- ld c, $0
-.asm_2cabf
+ ld c, 0
+.loop
inc c
ld a, [hli]
and a
- jr z, .asm_2cabf
+ jr z, .loop
dec b
- jr nz, .asm_2cabf
+ jr nz, .loop
dec hl
dec c
ret
@@ -34507,7 +33839,7 @@ Function2cad6: ; 2cad6 (b:4ad6)
; 2cadf (b:4adf)
Function2cadf: ; 2cadf
- call Function2c7a7
+ call ConvertCurItemIntoCurTMHM
call Function2cafa
ld hl, UnknownText_0x2caf0
jr nc, .asm_2caed
@@ -34545,7 +33877,7 @@ Function2cafa: ; 2cafa
; 2cb0c
Function2cb0c: ; 2cb0c (b:4b0c)
- call Function2c7a7
+ call ConvertCurItemIntoCurTMHM
ld a, [wd265]
dec a
ld hl, TMsHMs
@@ -35216,7 +34548,7 @@ TrainerType1: ; 397eb
ld a, OTPARTYMON
ld [MonType], a
push hl
- predef Functiond88c
+ predef TryAddMonToParty
pop hl
jr .loop
; 39806
@@ -35237,7 +34569,7 @@ TrainerType2: ; 39806
ld [MonType], a
push hl
- predef Functiond88c
+ predef TryAddMonToParty
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Moves
@@ -35313,7 +34645,7 @@ TrainerType3: ; 39871
ld a, OTPARTYMON
ld [MonType], a
push hl
- predef Functiond88c
+ predef TryAddMonToParty
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Item
@@ -35344,7 +34676,7 @@ TrainerType4: ; 3989d
ld [MonType], a
push hl
- predef Functiond88c
+ predef TryAddMonToParty
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Item
@@ -36611,7 +35943,7 @@ Function4424d: ; 4424d
ld a, $5d
ld [hli], a
ld de, wd265
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
ld a, [wd265]
dec a
@@ -36641,7 +35973,7 @@ endr
ld d, h
ld e, l
hlcoord 12, 7
- ld bc, $0224
+ lb bc, 2, 36
call PrintNum
hlcoord 14, 7
ld [hl], $5e
@@ -36665,7 +35997,7 @@ endr
ld d, h
ld e, l
hlcoord 11, 9
- ld bc, $0245
+ lb bc, 2, 69
call PrintNum
pop de
@@ -38290,12 +37622,12 @@ endr
Function487ff: ; 487ff (12:47ff)
push hl
- ld a, $7f
+ ld a, " "
ld [hli], a
ld [hl], a
pop hl
- ld b, $81
- ld c, $3
+ ld b, PRINTNUM_LEADINGZEROS | 1
+ ld c, 3
call PrintNum
ret
; 4880d (12:480d)
@@ -39444,7 +38776,7 @@ Function492b9: ; 492b9
and a
jr z, .didnt_learn
- ld c, $5
+ ld c, HAPPINESS_LEARNMOVE
callab ChangeHappiness
jr .learned
@@ -40722,7 +40054,7 @@ Function49e3d: ; 49e3d
ld [hl], ":"
inc hl
ld de, hMinutes
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 49e70
@@ -44074,62 +43406,62 @@ CheckPokerus: ; 4d860
ret
; 4d87a
-Function4d87a: ; 4d87a
+Special_CheckForLuckyNumberWinners: ; 4d87a
xor a
ld [ScriptVar], a
- ld [wd265], a
+ ld [wFoundMatchingIDInParty], a
ld a, [PartyCount]
and a
ret z
ld d, a
ld hl, PartyMon1ID
ld bc, PartySpecies
-.asm_4d88d
+.PartyLoop
ld a, [bc]
inc bc
cp EGG
- call nz, Function4d939
+ call nz, .CompareLuckyNumberToMonID
push bc
ld bc, PartyMon2 - PartyMon1
add hl, bc
pop bc
dec d
- jr nz, .asm_4d88d
- ld a, BANK(sBoxMon1ID)
+ jr nz, .PartyLoop
+ ld a, BANK(sBox)
call GetSRAMBank
ld a, [sBoxCount]
and a
- jr z, .asm_4d8c8
+ jr z, .SkipOpenBox
ld d, a
ld hl, sBoxMon1ID
ld bc, sBoxSpecies
-.asm_4d8af
+.OpenBoxLoop
ld a, [bc]
inc bc
cp EGG
- jr z, .asm_4d8bf
- call Function4d939
- jr nc, .asm_4d8bf
- ld a, $1
- ld [wd265], a
+ jr z, .SkipOpenBoxMon
+ call .CompareLuckyNumberToMonID
+ jr nc, .SkipOpenBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
-.asm_4d8bf
+.SkipOpenBoxMon
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length
add hl, bc
pop bc
dec d
- jr nz, .asm_4d8af
+ jr nz, .OpenBoxLoop
-.asm_4d8c8
+.SkipOpenBox
call CloseSRAM
ld c, $0
-.asm_4d8cd
+.BoxesLoop
ld a, [wCurBox]
and $f
cp c
- jr z, .asm_4d90b
- ld hl, Unknown_4d99f
+ jr z, .SkipBox
+ ld hl, .BoxBankAddresses
ld b, 0
rept 3
add hl, bc
@@ -44138,91 +43470,91 @@ endr
call GetSRAMBank
ld a, [hli]
ld h, [hl]
- ld l, a
+ ld l, a ; hl now contains the address of the loaded box in SRAM
ld a, [hl]
and a
- jr z, .asm_4d90b
+ jr z, .SkipBox ; no mons in this box
push bc
ld b, h
ld c, l
inc bc
- ld de, $001c
+ ld de, MONS_PER_BOX + NUM_MOVES + 4
add hl, de
ld d, a
-.asm_4d8f1
+.BoxNLoop
ld a, [bc]
inc bc
cp EGG
- jr z, .asm_4d901
+ jr z, .SkipBoxMon
- call Function4d939
- jr nc, .asm_4d901
- ld a, $1
- ld [wd265], a
+ call .CompareLuckyNumberToMonID
+ jr nc, .SkipBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
-.asm_4d901
+.SkipBoxMon
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length
add hl, bc
pop bc
dec d
- jr nz, .asm_4d8f1
+ jr nz, .BoxNLoop
pop bc
-.asm_4d90b
+.SkipBox
inc c
ld a, c
cp NUM_BOXES
- jr c, .asm_4d8cd
+ jr c, .BoxesLoop
call CloseSRAM
ld a, [ScriptVar]
and a
- ret z
+ ret z ; found nothing
callba Function1060cd
- ld a, [wd265]
+ ld a, [wFoundMatchingIDInParty]
and a
push af
ld a, [CurPartySpecies]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
- ld hl, UnknownText_0x4d9c9
+ ld hl, .FoundPartymonText
pop af
- jr z, .asm_4d936
- ld hl, UnknownText_0x4d9ce
+ jr z, .print
+ ld hl, .FoundBoxmonText
-.asm_4d936
+.print
jp PrintText
; 4d939
-Function4d939: ; 4d939
+.CompareLuckyNumberToMonID: ; 4d939
push bc
push de
push hl
ld d, h
ld e, l
ld hl, Buffer1
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
- ld hl, DefaultFlypoint
- ld de, wdc9f
- ld bc, $8205
+ ld hl, LuckyNumberDigit1Buffer
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
- ld b, $5
- ld c, $0
- ld hl, EndFlypoint
- ld de, wd1ee
-.asm_4d95d
+ ld b, 5
+ ld c, 0
+ ld hl, LuckyNumberDigit5Buffer
+ ld de, Buffer5
+.loop
ld a, [de]
cp [hl]
- jr nz, .asm_4d967
+ jr nz, .done
dec de
dec hl
inc c
dec b
- jr nz, .asm_4d95d
+ jr nz, .loop
-.asm_4d967
+.done
pop hl
push hl
ld de, -6
@@ -44232,25 +43564,25 @@ Function4d939: ; 4d939
pop de
push af
ld a, c
- ld b, $1
- cp $5
- jr z, .asm_4d984
- ld b, $2
- cp $3
- jr nc, .asm_4d984
- ld b, $3
- cp $2
- jr nz, .asm_4d99b
+ ld b, 1
+ cp 5
+ jr z, .okay
+ ld b, 2
+ cp 3
+ jr nc, .okay
+ ld b, 3
+ cp 2
+ jr nz, .nomatch
-.asm_4d984
+.okay
inc b
ld a, [ScriptVar]
and a
- jr z, .asm_4d98e
+ jr z, .foundmatch
cp b
- jr c, .asm_4d99b
+ jr c, .nomatch
-.asm_4d98e
+.foundmatch
dec b
ld a, b
ld [ScriptVar], a
@@ -44261,14 +43593,14 @@ Function4d939: ; 4d939
scf
ret
-.asm_4d99b
+.nomatch
pop bc
pop bc
and a
ret
; 4d99f
-Unknown_4d99f: ; 4d99f
+.BoxBankAddresses: ; 4d99f
dbw BANK(sBox1), sBox1
dbw BANK(sBox2), sBox2
dbw BANK(sBox3), sBox3
@@ -44285,13 +43617,13 @@ Unknown_4d99f: ; 4d99f
dbw BANK(sBox14), sBox14
; 4d9c9
-UnknownText_0x4d9c9: ; 0x4d9c9
+.FoundPartymonText: ; 0x4d9c9
; Congratulations! We have a match with the ID number of @ in your party.
text_jump UnknownText_0x1c1261
db "@"
; 0x4d9ce
-UnknownText_0x4d9ce: ; 0x4d9ce
+.FoundBoxmonText: ; 0x4d9ce
; Congratulations! We have a match with the ID number of @ in your PC BOX.
text_jump UnknownText_0x1c12ae
db "@"
@@ -44299,16 +43631,16 @@ UnknownText_0x4d9ce: ; 0x4d9ce
Function4d9d3: ; 4d9d3
ld hl, StringBuffer3
- ld de, wdc9f
- ld bc, $8205
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
- ld a, $50
+ ld a, "@"
ld [StringBuffer3 + 5], a
ret
; 4d9e5
CheckPartyFullAfterContest: ; 4d9e5
- ld a, [wdf9c]
+ ld a, [wContestMon]
and a
jp z, Function4db35
ld [CurPartySpecies], a
@@ -44316,14 +43648,14 @@ CheckPartyFullAfterContest: ; 4d9e5
call GetBaseData
ld hl, PartyCount
ld a, [hl]
- cp $6
+ cp 6
jp nc, Function4daa3
inc a
ld [hl], a
ld c, a
ld b, $0
add hl, bc
- ld a, [wdf9c]
+ ld a, [wContestMon]
ld [hli], a
ld [CurSpecies], a
ld a, $ff
@@ -44335,7 +43667,7 @@ CheckPartyFullAfterContest: ; 4d9e5
call AddNTimes
ld d, h
ld e, l
- ld hl, wdf9c
+ ld hl, wContestMon
ld bc, PartyMon2 - PartyMon1
call CopyBytes
ld a, [PartyCount]
@@ -44389,7 +43721,7 @@ CheckPartyFullAfterContest: ; 4d9e5
or b
ld [hl], a
xor a
- ld [wdf9c], a
+ ld [wContestMon], a
and a
ld [ScriptVar], a
ret
@@ -44405,7 +43737,7 @@ Function4daa3: ; 4daa3
jr nc, .asm_4db08
xor a
ld [CurPartyMon], a
- ld hl, wdf9c
+ ld hl, wContestMon
ld de, wd018
ld bc, sBoxMon2 - sBoxMon1
call CopyBytes
@@ -44451,7 +43783,7 @@ Function4daa3: ; 4daa3
ld [hl], a
call CloseSRAM
xor a
- ld [wdf9c], a
+ ld [wContestMon], a
ld a, $1
ld [ScriptVar], a
ret
@@ -45078,7 +44410,7 @@ Function4deea: ; 4deea (13:5eea)
ld [hl], "."
inc hl
hlcoord 10, 0
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
ld de, wd265
call PrintNum
hlcoord 14, 0
@@ -45284,12 +44616,12 @@ Function4e013: ; 4e013 (13:6013)
hlcoord 17, 14
call Function4e0d3
hlcoord 13, 10
- ld bc, $307
+ lb bc, 3, 7
ld de, TempMonExp
call PrintNum
call Function4e0e7
hlcoord 13, 13
- ld bc, $307
+ lb bc, 3, 7
ld de, Buffer1 ; wd1ea (aliases: MagikarpLength)
call PrintNum
ld de, String_4e136
@@ -45452,7 +44784,7 @@ Function4e1cc: ; 4e1cc (13:61cc)
hlcoord 0, 12
call PlaceString
hlcoord 2, 10
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
ld de, TempMonID
call PrintNum
ld hl, Unknown_4e216
@@ -46904,7 +46236,7 @@ Function50138: ; 50138
ld d, h
pop hl
push de
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
pop de
ld a, $f3
@@ -46912,7 +46244,7 @@ Function50138: ; 50138
rept 2
inc de
endr
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
.asm_5016b
@@ -46953,7 +46285,7 @@ Function50176: ; 50176
ld [hli], a
ld bc, $4102
.asm_501a1
- ld bc, $4103
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 3
call PrintNum
.asm_501a7
@@ -47508,22 +46840,22 @@ PartyMenuStrings: ; 0x504d2
ChooseAMonString: ; 0x504e4
db "Choose a #MON.@"
UseOnWhichPKMNString: ; 0x504f3
- db "Use on which ", $e1, $e2, "?@"
+ db "Use on which <PK><MN>?@"
WhichPKMNString: ; 0x50504
- db "Which ", $e1, $e2, "?@"
+ db "Which <PK><MN>?@"
TeachWhichPKMNString: ; 0x5050e
- db "Teach which ", $e1, $e2, "?@"
+ db "Teach which <PK><MN>?@"
MoveToWhereString: ; 0x5051e
db "Move to where?@"
ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
- db "Choose a ♀", $e1, $e2, ".@"
+ db "Choose a ♀<PK><MN>.@"
ChooseAMalePKMNString: ; 0x5053b ; UNUSED
- db "Choose a ♂", $e1, $e2, ".@"
+ db "Choose a ♂<PK><MN>.@"
ToWhichPKMNString: ; 0x50549
- db "To which ", $e1, $e2, "?@"
+ db "To which <PK><MN>?@"
YouHaveNoPKMNString: ; 0x50556
- db "You have no ", $e1, $e2, "!@"
+ db "You have no <PK><MN>!@"
Function50566: ; 50566
@@ -47753,7 +47085,7 @@ Function5067b: ; 5067b
ld a, [de]
and 2
jr z, .asm_5069c
- ld c, 7
+ ld c, HAPPINESS_POISONFAINT
callba ChangeHappiness
callba GetPartyNick
ld hl, PoisonFaintText
@@ -48365,7 +47697,7 @@ DrawHP: ; 50b10
jr nz, .asm_50b66
ld de, TempMonMaxHP
.asm_50b66
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
ld a, "/"
@@ -48373,7 +47705,7 @@ DrawHP: ; 50b10
; Print max HP
ld de, TempMonMaxHP
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
pop hl
pop de
@@ -48393,7 +47725,7 @@ PrintTempMonStats: ; 50b7b
ld bc, SCREEN_WIDTH
add hl, bc
ld de, TempMonAttack
- ld bc, $0203
+ lb bc, 2, 3
call .PrintStat
ld de, TempMonDefense
call .PrintStat
@@ -48601,12 +47933,12 @@ endr
ld l, e
push hl
ld de, StringBuffer1 + 4
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
ld a, $f3
ld [hli], a
ld de, wd265
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
pop hl
ld a, [Buffer1]
@@ -50505,7 +49837,7 @@ GetMovementAction: ; 802ec
IsNPCInFront: ; 80341
ld a, 0
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld a, [MapX]
ld d, a
ld a, [WalkingX]
@@ -51358,7 +50690,7 @@ Function81adb: ; 81adb
ld [wd265], a
hlcoord 0, 1
ld de, wd265
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
ld a, [DefaultFlypoint]
and a
@@ -53994,8 +53326,8 @@ HallOfFame:: ; 0x8640e
ld a, 1
ld [wc2cd], a
call Function2ed3
- ld a, 1
- ld [wd4b5], a
+ ld a, SPAWN_LANCE
+ ld [wSpawnAfterChampion], a
; Enable the Pokégear map to cycle through all of Kanto
ld hl, StatusFlags
@@ -54022,7 +53354,7 @@ HallOfFame:: ; 0x8640e
ret
; 0x86455
-Function86455:: ; 86455
+RedCredits:: ; 86455
ld a, MUSIC_NONE % $100
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
@@ -54037,8 +53369,8 @@ Function86455:: ; 86455
ld c, $8
call DelayFrames
call Function2ed3
- ld a, $2
- ld [wd4b5], a
+ ld a, SPAWN_RED
+ ld [wSpawnAfterChampion], a
ld a, [StatusFlags]
ld b, a
callba Function109847
@@ -54381,7 +53713,7 @@ Function86692: ; 86692
call PlaceString
hlcoord 2, 2
ld de, wc608
- ld bc, $0103
+ lb bc, 1, 3
call PrintNum
hlcoord 11, 2
@@ -54487,7 +53819,7 @@ Function86748: ; 86748
ld [hl], $f2
hlcoord 3, 13
ld de, wd265
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
call GetBasePokemonName
hlcoord 7, 13
@@ -54521,7 +53853,7 @@ Function86748: ; 86748
ld [hl], $f3
hlcoord 10, 16
ld de, TempMonID
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
ret
; 86810
@@ -54592,19 +53924,19 @@ Function86810: ; 86810
ld [hl], $f3
hlcoord 4, 6
ld de, PlayerID
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
hlcoord 1, 8
ld de, .PlayTime
call PlaceString
hlcoord 3, 9
ld de, GameTimeHours
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
ld [hl], $63
inc hl
ld de, GameTimeMinutes
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
call WaitBGMap
callba Function26601
@@ -54801,7 +54133,7 @@ Function88126: ; 88126
ld [hl], $f1
inc hl
ld de, wd10c
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
jp PrintNum
; 88139
@@ -56672,7 +56004,7 @@ Function898aa: ; 898aa
push bc
hlcoord 6, 1
ld de, MenuSelection
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
pop bc
ret
@@ -56725,7 +56057,7 @@ Function898f3: ; 898f3
call Function8934a
jr c, .asm_8990a
hlcoord 5, 5
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
jr .asm_89913
@@ -56885,7 +56217,7 @@ Function899b2: ; 899b2 (22:59b2)
Function899c9: ; 899c9 (22:59c9)
ld de, PlayerID
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
ret
@@ -60265,7 +59597,7 @@ Function8b09e: ; 8b09e
ld [hli], a
ld [hld], a
pop de
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
ret
; 8b0ca
@@ -61661,7 +60993,7 @@ Function8b880: ; 8b880
ld h, d
ld l, e
ld de, MenuSelection
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 8b88c
@@ -62095,11 +61427,15 @@ endr
ret
; 8c0e5
+brightlevel: MACRO
+ db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4
+ENDM
+
Function8c0e5: ; 8c0e5
- ld hl, Unknown_8c10f
+ ld hl, .BrightnessLevels
ld a, [wc2d0]
- cp $4
- jr z, .asm_8c0fc
+ cp $4 ; Dark cave, needs Flash
+ jr z, .DarkCave
and $7
add l
ld l, a
@@ -62109,28 +61445,28 @@ Function8c0e5: ; 8c0e5
ld a, [hl]
ld [wd847], a
ret
-.asm_8c0fc
+.DarkCave
ld a, [StatusFlags]
bit 2, a
- jr nz, .asm_8c109
- ld a, $ff
+ jr nz, .UsedFlash
+ ld a, $ff ; 3, 3, 3, 3
ld [wd847], a
ret
-.asm_8c109
- ld a, $aa
+.UsedFlash
+ ld a, $aa ; 2, 2, 2, 2
ld [wd847], a
ret
; 8c10f (23:410f)
-Unknown_8c10f: ; 8c10f
- db $e4 ; 3210
- db $55 ; 1111
- db $aa ; 2222
- db $00 ; 0000
- db $ff ; 3333
- db $e4 ; 3210
- db $e4 ; 3210
- db $e4 ; 3210
+.BrightnessLevels: ; 8c10f
+ brightlevel 3, 2, 1, 0
+ brightlevel 1, 1, 1, 1
+ brightlevel 2, 2, 2, 2
+ brightlevel 0, 0, 0, 0
+ brightlevel 3, 3, 3, 3
+ brightlevel 3, 2, 1, 0
+ brightlevel 3, 2, 1, 0
+ brightlevel 3, 2, 1, 0
; 8c117
GetTimePalette: ; 8c117
@@ -62349,8 +61685,8 @@ Function8c20f: ; 8c20f
call DelayFrame
xor a
ld [hLCDStatCustom], a
- ld [$ffc7], a
- ld [$ffc8], a
+ ld [hLCDStatCustom + 1], a
+ ld [hLCDStatCustom + 2], a
ld [hSCY], a
ld a, $1
ld [rSVBK], a
@@ -62600,9 +61936,9 @@ Function8c3e8: ; 8c3e8 (23:43e8)
ld a, $43
ld [hLCDStatCustom], a ; $ff00+$c6
xor a
- ld [$ffc7], a
+ ld [hLCDStatCustom + 1], a
ld a, $90
- ld [$ffc8], a
+ ld [hLCDStatCustom + 2], a
xor a
ld [wcf64], a
ld [wcf65], a
@@ -63654,8 +62990,8 @@ Special_MagnetTrain: ; 8cc04
call WhiteBGMap
xor a
ld [hLCDStatCustom], a
- ld [$ffc7], a
- ld [$ffc8], a
+ ld [hLCDStatCustom + 1], a
+ ld [hLCDStatCustom + 2], a
ld [hSCX], a
ld [Requested2bppSource], a
ld [Requested2bppSource + 1], a
@@ -66895,9 +66231,7 @@ Unknown_8e706: ; 8e706
dbbw $10, $21, Unknown_8e72a
Unknown_8e72a:
-; 8e72a
-
-
+ ; nothing to see here
Function8e72a: ; 8e72a
add $10
@@ -68626,7 +67960,7 @@ Function90867: ; 90867 (24:4867)
ld [hli], a
ld [hl], a
pop hl
- ld bc, $4102
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ret
; 90874 (24:4874)
@@ -68699,7 +68033,7 @@ UnknownText_0x908b8: ; 0x908b8
ld [hl], ":"
inc hl
ld de, BattleMonNick + 5
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld b, h
ld c, l
@@ -69044,17 +68378,17 @@ UnknownText_0x90b13: ; 0x90b13
; 0x90b23
Function90b23: ; 90b23
- ld bc, $0103
+ lb bc, 1, 3
call PrintNum
ld [hl], "."
inc hl
inc de
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld [hl], ":"
inc hl
inc de
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 90b3e
@@ -69879,7 +69213,7 @@ Function910f9: ; 910f9 (24:50f9)
ld hl, $3
add hl, bc
ld [hl], $8
- call Function9163e
+ call _UpdateRadioStation
ld hl, wcf63
inc [hl]
ret
@@ -70534,410 +69868,7 @@ ClockTilemapRLE: ; 915db
INCBIN "gfx/unknown/0915db.tilemap.rle"
; 9163e
-Function9163e: ; 9163e (24:563e)
- jr UpdateRadioStation
-
-Function91640: ; 91640 (24:5640)
- push bc
- call Function9164e
- pop bc
- ld a, [wd958]
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-Function9164e: ; 9164e (24:564e)
- ld hl, $ffa9
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ld a, [hl]
- and D_UP
- jr nz, .up
- ret
-
-.down
- ld hl, wd958
- ld a, [hl]
- and a
- ret z
-rept 2
- dec [hl]
-endr
- jr .update
-
-.up
- ld hl, wd958
- ld a, [hl]
- cp 80
- ret nc
-rept 2
- inc [hl]
-endr
-
-.update
-
-UpdateRadioStation: ; 9166f (24:566f)
- ld hl, wd958
- ld d, [hl]
- ld hl, RadioChannels
-.asm_91676
- ld a, [hli]
- cp $ff
- jr z, .asm_91682
- cp d
- jr z, .asm_91686
-rept 2
- inc hl
-endr
- jr .asm_91676
-
-.asm_91682
- call NoRadioStation
- ret
-
-.asm_91686
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_9168e
- push de
- jp [hl]
-.asm_9168e
- ld a, [wc6d9]
- and a
- ret z
- xor a
- ld [hBGMapMode], a
- hlcoord 2, 9
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 916a1 (24:56a1)
-
-Function916a1: ; 916a1
- ld [wc6d9], a
- ld a, [hli]
- ld [wc6da], a
- ld a, [hli]
- ld [wc6db], a
- ret
-; 916ad
-
-
-RadioChannels:
-; frequencies and the shows that play on them.
-; frequency value given here = 4 × ingame_frequency − 2
- dbw 16, .PkmnTalkAndPokedexShow
- dbw 28, .PokemonMusic
- dbw 32, .LuckyChannel
- dbw 40, .BuenasPassword
- dbw 52, .RuinsOfAlphRadio
- dbw 64, .PlacesAndPeople
- dbw 72, .LetsAllSing
- dbw 78, .PokeFluteRadio
- dbw 80, .EvolutionRadio
- db $ff
-
-.PkmnTalkAndPokedexShow
-; Pokédex Show in the morning
-; Oak's Pokémon Talk in the afternoon and evening
- call .InJohto
- jr nc, .NoSignal
- ld a, [TimeOfDay]
- and a
- jp z, Function91766
- jp Function91753
-
-.PokemonMusic
- call .InJohto
- jr nc, .NoSignal
- jp Function9177b
-
-.LuckyChannel
- call .InJohto
- jr nc, .NoSignal
- jp Function91790
-
-.BuenasPassword
- call .InJohto
- jr nc, .NoSignal
- jp Function917a5
-
-.RuinsOfAlphRadio
- ld a, [wc6d8]
- cp RUINS_OF_ALPH
- jr nz, .NoSignal
- jp Function917d5
-
-.PlacesAndPeople
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp Function917ea
-
-.LetsAllSing
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp Function917ff
-
-.PokeFluteRadio
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp Function91829
-
-.EvolutionRadio
-; This station airs in the Lake of Rage area when Rocket are still in Mahogany.
-
- ld a, [StatusFlags]
- bit 4, a
- jr z, .NoSignal
-
- ld a, [wc6d8]
- cp MAHOGANY_TOWN
- jr z, .ok
- cp ROUTE_43
- jr z, .ok
- cp LAKE_OF_RAGE
- jr nz, .NoSignal
-.ok
- jp Function9183e
-
-.NoSignal
- call NoRadioStation
- ret
-
-.InJohto
-; if in Johto or on the S.S. Aqua, set carry
-; otherwise clear carry
- ld a, [wc6d8]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr c, .johto
-.kanto
- and a
- ret
-.johto
- scf
- ret
-
-
-
-Function91753: ; 91753 (24:5753)
- xor a ; OAKS_POKEMON_TALK
- ld [wd002], a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, OaksPkmnTalkName
- ret
-
-Function91766: ; 91766 (24:5766)
- ld a, POKEDEX_SHOW
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, PokedexShowName
- ret
-
-Function9177b: ; 9177b (24:577b)
- ld a, POKEMON_MUSIC
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, PokemonMusicName
- ret
-
-Function91790: ; 91790 (24:5790)
- ld a, LUCKY_CHANNEL
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, LuckyChannelName
- ret
-
-Function917a5: ; 917a5 (24:57a5)
- ld a, BUENAS_PASSWORD
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, NotBuenasPasswordName
- ld a, [StatusFlags2]
- bit 0, a
- ret z
- ld de, BuenasPasswordName
- ret
-; 917c3 (24:57c3)
-
-BuenasPasswordName: db "BUENA'S PASSWORD@"
-NotBuenasPasswordName: db "@"
-
-Function917d5: ; 917d5 (24:57d5)
- ld a, UNOWN_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, UnknownStationName
- ret
-
-Function917ea: ; 917ea (24:57ea)
- ld a, PLACES_AND_PEOPLE
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, PlacesAndPeopleName
- ret
-
-Function917ff: ; 917ff (24:57ff)
- ld a, LETS_ALL_SING
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, LetsAllSingName
- ret
-; 91814 (24:5814)
-
-Function91814: ; 91814
- ld a, ROCKET_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, LetsAllSingName
- ret
-; 91829
-
-Function91829: ; 91829 (24:5829)
- ld a, POKE_FLUTE_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, PokeFluteStationName
- ret
-
-Function9183e: ; 9183e (24:583e)
- ld a, EVOLUTION_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Function9187c
- ld de, UnknownStationName
- ret
-; 91853 (24:5853)
-
-Function91853: ; 91853
- ret
-
-RadioMusicNone: ; 91854 (24:5854)
- push de
- ld a, e
- ld [wc6dc], a
- ld de, MUSIC_NONE
- call PlayMusic
- pop de
- ld a, e
- ld [wMapMusic], a
- call PlayMusic
- ret
-
-Function91868: ; 91868 (24:5868)
- push de
- ld a, $fe
- ld [wc6dc], a
- ld de, MUSIC_NONE
- call PlayMusic
- pop de
- ld de, MUSIC_POKEMON_CHANNEL
- call PlayMusic
- ret
-
-Function9187c: ; 9187c (24:587c)
- ld [wc6d9], a
- ld a, l
- ld [wc6da], a
- ld a, h
- ld [wc6db], a
- ret
-
-NoRadioStation: ; 91888 (24:5888)
- call NoRadioMusic
- call NoRadioName
- xor a
- ld [wc6d9], a
- ld [wc6da], a
- ld [wc6db], a
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
-NoRadioMusic: ; 9189d (24:589d)
- ld de, MUSIC_NONE
- call PlayMusic
- ld a, $ff
- ld [wc6dc], a
- ret
-
-NoRadioName: ; 918a9 (24:58a9)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- hlcoord 1, 8
- ld bc, $312
- call ClearBox
- hlcoord 0, 12
- ld bc, $412
- call TextBox
- ret
-; 918bf
-
-OaksPkmnTalkName: db "OAK's ", $e1, $e2, " Talk@"
-PokedexShowName: db "#DEX Show@"
-PokemonMusicName: db "#MON Music@"
-LuckyChannelName: db "Lucky Channel@"
-UnknownStationName: db "?????@"
-PlacesAndPeopleName: db "Places & People@"
-LetsAllSingName: db "Let's All Sing!@"
-PokeFluteStationName: db "# FLUTE@"
-; 9191c
+INCLUDE "engine/radio2.asm"
Function9191c: ; 9191c
ld hl, Options
@@ -71174,14 +70105,14 @@ endr
.StationPointers: ; 91ab9
dw Function91acb
- dw Function91753
- dw Function91766
- dw Function9177b
- dw Function91790
- dw Function917d5
- dw Function917ea
- dw Function917ff
- dw Function91814
+ dw LoadStation_OaksPokemonTalk
+ dw LoadStation_PokedexShow
+ dw LoadStation_PokemonMusic
+ dw LoadStation_LuckyChannel
+ dw LoadStation_UnownRadio
+ dw LoadStation_PlacesAndPeople
+ dw LoadStation_LetsAllSing
+ dw LoadStation_RocketRadio
; 91acb
Function91acb: ; 91acb
@@ -71191,11 +70122,11 @@ Function91acb: ; 91acb
call UpdateTime
ld a, [TimeOfDay]
and a
- jp z, Function91766
- jp Function91753
+ jp z, LoadStation_PokedexShow
+ jp LoadStation_OaksPokemonTalk
.kanto
- jp Function917ea
+ jp LoadStation_PlacesAndPeople
; 91ae1
Function91ae1: ; 91ae1
@@ -72413,11 +71344,11 @@ Function927d4: ; 927d4
Function927f8: ; 927f8 (24:67f8)
hlcoord 5, 1
ld de, Coins
- ld bc, $8204
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
call PrintNum
hlcoord 11, 1
ld de, wc711
- ld bc, $8204
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
call PrintNum
ret
; 92811 (24:6811)
@@ -74421,11 +73352,14 @@ SECTION "bank2E", ROMX, BANK[$2E]
ReturnFromMapSetupScript:: ; b8000
xor a
ld [hBGMapMode], a
- callba Functionb800a
+ ; For some reson, GameFreak chose to use a callba here instead of just falling through.
+ ; No other function in the game references the function at 2E:400A, here labeled
+ ; ReturnFromMapSetupScript.inefficientcallba.
+ callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
ret
; b800a
-Functionb800a: ; b800a
+.inefficientcallba: ; b800a
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
@@ -74440,7 +73374,7 @@ Functionb800a: ; b800a
jr nz, .asm_b8029
.asm_b8024
- ld a, $ff
+ ld a, -1
ld [wc2d9], a
.asm_b8029
@@ -76437,7 +75371,7 @@ INCBIN "gfx/credits/theend.2bpp"
SECTION "bank33", ROMX, BANK[$33]
-Functioncc000: ; cc000
+DisplayCaughtContestMonStats: ; cc000
call WhiteBGMap
call ClearTileMap
@@ -76475,7 +75409,7 @@ Functioncc000: ; cc000
ld de, .Health
call PlaceString
- ld a, [wdf9c]
+ ld a, [wContestMon]
ld [wd265], a
call GetPokemonName
ld de, StringBuffer1
@@ -76500,7 +75434,7 @@ Functioncc000: ; cc000
hlcoord 11, 4
ld de, wContestMonMaxHP
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
hlcoord 11, 10
@@ -76533,13 +75467,13 @@ SwitchMonText: ; cc0c2
db "@"
; cc0c7
-Functioncc0c7: ; cc0c7
+DisplayAlreadyCaughtText: ; cc0c7
call GetPokemonName
- ld hl, AlreadyCaughtText
+ ld hl, .AlreadyCaughtText
jp PrintText
; cc0d0
-AlreadyCaughtText: ; 0xcc0d0
+.AlreadyCaughtText: ; 0xcc0d0
; You already caught a @ .
text_jump UnknownText_0x1c10dd
db "@"
@@ -77256,7 +76190,7 @@ Functione049c: ; e049c
call PlaceString
hlcoord 15, 16
ld de, Coins
- ld bc, $8204
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
call PrintNum
ret
; e04bc
@@ -79969,7 +78903,7 @@ Functione23e9: ; e23e9 (38:63e9)
call ClearSprites
call Functione2d30
call Functione2a8e
- ld de, String_e34dd
+ ld de, PCString_ChooseaPKMN
call Functione2a6e
ld a, $5
ld [wcb2d], a
@@ -80034,7 +78968,7 @@ Functione245d: ; e245d (38:645d)
ld [CurPartySpecies], a
ld a, $17
call Functione33d0
- ld de, String_e34ea
+ ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
ld [wcfa9], a
@@ -80081,7 +79015,7 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9)
ld [wcb2a], a
ret
.asm_e24c1
- ld de, String_e34ea
+ ld de, PCString_WhatsUp
call Functione2a6e
ret
@@ -80103,7 +79037,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
jr c, BillsPCDepositFuncCancel
ld a, [wcfa9]
push af
- ld de, String_e34f4
+ ld de, PCString_ReleasePKMN
call Functione2a6e
call Function1d6e
lb bc, 14, 11
@@ -80129,7 +79063,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
pop af
ret
.asm_e252c
- ld de, String_e34ea
+ ld de, PCString_WhatsUp
call Functione2a6e
pop af
ld [wcfa9], a
@@ -80213,15 +79147,15 @@ Functione2583: ; e2583 (38:6583)
Functione25c8: ; e25c8 (38:65c8)
ld a, [wcf63]
- ld hl, Jumptable_e25d2
+ ld hl, .jumptable
call Functione33df
jp [hl]
-Jumptable_e25d2: ; e25d2 (38:65d2)
+.jumptable: ; e25d2 (38:65d2)
dw Functione25dc
dw Functione2612
dw Functione2655
- dw Functione2675
+ dw BillsPC_Withdraw
dw Functione2992
@@ -80233,7 +79167,7 @@ Functione25dc: ; e25dc (38:65dc)
call ClearSprites
call Functione2d30
call Functione2a8e
- ld de, String_e34dd
+ ld de, PCString_ChooseaPKMN
call Functione2a6e
ld a, $5
ld [wcb2d], a
@@ -80299,26 +79233,26 @@ Functione2655: ; e2655 (38:6655)
ld [CurPartySpecies], a
ld a, $17
call Functione33d0
- ld de, String_e34ea
+ ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
ld [wcfa9], a
call Functione298d
ret
-Functione2675: ; e2675 (38:6675)
- ld hl, BillsPCWithdrawMenuDataHeader
+BillsPC_Withdraw: ; e2675 (38:6675)
+ ld hl, .MenuDataHeader
call CopyMenuDataHeader
ld a, [wcfa9]
call Function1d4b
call InterpretMenu2
- jp c, BillsPCWithdrawFuncCancel
+ jp c, .cancel
ld a, [wcfa9]
dec a
and 3
ld e, a
ld d, 0
- ld hl, BillsPCWithdrawJumptable
+ ld hl, .jumptable
rept 2
add hl, de
endr
@@ -80327,30 +79261,30 @@ endr
ld l, a
jp [hl]
-BillsPCWithdrawJumptable: ; e2699 (38:6699) #mark
- dw BillsPCWithdrawFuncWithdraw ; Withdraw
- dw BillsPCWithdrawFuncStats ; Stats
- dw BillsPCWithdrawFuncRelease ; Release
- dw BillsPCWithdrawFuncCancel ; Cancel
+.jumptable: ; e2699 (38:6699) #mark
+ dw .withdraw ; Withdraw
+ dw .stats ; Stats
+ dw .release ; Release
+ dw .cancel ; Cancel
-BillsPCWithdrawFuncWithdraw: ; e26a1 (38:66a1)
+.withdraw: ; e26a1 (38:66a1)
call Functione2f18
- jp c, BillsPCWithdrawFuncCancel
- call Functione30fa
- jr c, .asm_e26b9
+ jp c, .cancel
+ call TryWithdrawPokemon
+ jr c, .FailedWithdraw
ld a, $0
ld [wcf63], a
xor a
ld [wcb2b], a
ld [wcb2a], a
ret
-.asm_e26b9
- ld de, String_e34ea
+.FailedWithdraw
+ ld de, PCString_WhatsUp
call Functione2a6e
ret
-BillsPCWithdrawFuncStats: ; e26c0 (38:66c0)
+.stats: ; e26c0 (38:66c0)
call Function1d6e
call Functione2f7e
call ExitMenu
@@ -80361,12 +79295,12 @@ BillsPCWithdrawFuncStats: ; e26c0 (38:66c0)
call Functione33d0
ret
-BillsPCWithdrawFuncRelease: ; e26d8 (38:66d8)
+.release: ; e26d8 (38:66d8)
ld a, [wcfa9]
push af
call Functione2f5f
- jr c, .asm_e2720
- ld de, String_e34f4
+ jr c, .FailedRelease
+ ld de, PCString_ReleasePKMN
call Functione2a6e
call Function1d6e
lb bc, 14, 11
@@ -80375,7 +79309,7 @@ BillsPCWithdrawFuncRelease: ; e26d8 (38:66d8)
dec a
call ExitMenu
and a
- jr nz, .asm_e2720
+ jr nz, .FailedRelease
ld a, [wcb2b]
ld hl, wcb2a
add [hl]
@@ -80391,28 +79325,28 @@ BillsPCWithdrawFuncRelease: ; e26d8 (38:66d8)
ld [wcb2a], a
pop af
ret
-.asm_e2720
- ld de, String_e34ea
+.FailedRelease
+ ld de, PCString_WhatsUp
call Functione2a6e
pop af
ld [wcfa9], a
ret
-BillsPCWithdrawFuncCancel: ; e272b (38:672b)
+.cancel: ; e272b (38:672b)
ld a, $0
ld [wcf63], a
ret
; e2731 (38:6731)
-BillsPCWithdrawMenuDataHeader: ; 0xe2731
+.MenuDataHeader: ; 0xe2731
db $40 ; flags
db 04, 09 ; start coords
db 13, 19 ; end coords
- dw BillsPCWithdrawMenuData
+ dw .MenuData
db 1 ; default option
; 0xe2739
-BillsPCWithdrawMenuData: ; 0xe2739
+.MenuData: ; 0xe2739
db $80 ; flags
db 4 ; items
db "WITHDRAW@"
@@ -80484,7 +79418,7 @@ Functione27ba: ; e27ba
ld [hBGMapMode], a
call ClearSprites
call Functione2d30
- ld de, String_e34dd
+ ld de, PCString_ChooseaPKMN
call Functione2a6e
ld a, $5
ld [wcb2d], a
@@ -80560,7 +79494,7 @@ Functione283d: ; e283d
ld [CurPartySpecies], a
ld a, $17
call Functione33d0
- ld de, String_e34ea
+ ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
ld [wcfa9], a
@@ -80648,7 +79582,7 @@ Functione28df: ; e28df
xor a
ld [hBGMapMode], a
call Functione2d30
- ld de, String_e3500
+ ld de, PCString_MoveToWhere
call Functione2a6e
ld a, $5
ld [wcb2d], a
@@ -80960,7 +79894,7 @@ Functione2a8e: ; e2a8e (38:6a8e)
; e2abd (38:6abd)
String_e2abd:
- db "PARTY ", $e1, $e2, "@"
+ db "PARTY <PK><MN>@"
; e2ac6
PCMonInfo: ; e2ac6 (38:6ac6)
@@ -81587,7 +80521,7 @@ Functione2ee5: ; e2ee5
ret
.asm_e2f02
- ld de, String_e3521
+ ld de, PCString_TheresNoRoom
call Functione2a6e
ld de, SFX_WRONG
call WaitPlaySFX
@@ -81601,31 +80535,31 @@ Functione2ee5: ; e2ee5
Functione2f18: ; e2f18 (38:6f18)
ld a, [wcb2e]
and a
- jr nz, .asm_e2f3d
+ jr nz, .Okay
ld a, [wcb2c]
cp $3
- jr c, .asm_e2f49
+ jr c, .ItsYourLastPokemon
ld a, [wcb2b]
ld hl, wcb2a
add [hl]
ld [CurPartyMon], a
callba Functione538
- jr c, .asm_e2f44
+ jr c, .AllOthersFainted
ld a, [wcb32]
and a
- jr nz, .asm_e2f3f
-.asm_e2f3d
+ jr nz, .HasMail
+.Okay
and a
ret
-.asm_e2f3f
- ld de, String_e3544
- jr .asm_e2f4c
-.asm_e2f44
- ld de, String_e3531
- jr .asm_e2f4c
-.asm_e2f49
- ld de, String_e350f
-.asm_e2f4c
+.HasMail
+ ld de, PCString_RemoveMail
+ jr .NotOkay
+.AllOthersFainted
+ ld de, PCString_NoMoreUsablePKMN
+ jr .NotOkay
+.ItsYourLastPokemon
+ ld de, PCString_ItsYourLastPKMN
+.NotOkay
call Functione2a6e
ld de, SFX_WRONG
call WaitPlaySFX
@@ -81642,7 +80576,7 @@ Functione2f5f: ; e2f5f (38:6f5f)
and a
ret
.asm_e2f68
- ld de, String_e3597
+ ld de, PCString_NoReleasingEGGS
call Functione2a6e
ld de, SFX_WRONG
call WaitPlaySFX
@@ -81792,7 +80726,7 @@ Functione307c: ; e307c (38:707c)
call TextBox
call WaitBGMap
hlcoord 1, 16
- ld de, String_e3563
+ ld de, PCString_Stored
call PlaceString
ld l, c
ld h, b
@@ -81805,7 +80739,7 @@ Functione307c: ; e307c (38:707c)
and a
ret
.asm_e30e4
- ld de, String_e3575
+ ld de, PCString_BoxFull
call Functione2a6e
ld de, SFX_WRONG
call WaitPlaySFX
@@ -81815,7 +80749,7 @@ Functione307c: ; e307c (38:707c)
scf
ret
-Functione30fa: ; e30fa (38:70fa)
+TryWithdrawPokemon: ; e30fa (38:70fa)
ld a, [wcb2b]
ld hl, wcb2a
add [hl]
@@ -81829,7 +80763,7 @@ Functione30fa: ; e30fa (38:70fa)
xor a
ld [wd10b], a
predef Functiondb3f
- jr c, .asm_e316a
+ jr c, .PartyFull
ld a, $1
ld [wd10b], a
callba Functione039
@@ -81846,7 +80780,7 @@ Functione30fa: ; e30fa (38:70fa)
call TextBox
call WaitBGMap
hlcoord 1, 16
- ld de, String_e356b
+ ld de, PCString_Got
call PlaceString
ld l, c
ld h, b
@@ -81858,8 +80792,8 @@ Functione30fa: ; e30fa (38:70fa)
call DelayFrames
and a
ret
-.asm_e316a
- ld de, String_e3586
+.PartyFull
+ ld de, PCString_PartyFull
call Functione2a6e
ld de, SFX_WRONG
call WaitPlaySFX
@@ -81893,7 +80827,7 @@ Functione3180: ; e3180 (38:7180)
ld [wd265], a
call GetPokemonName
hlcoord 1, 16
- ld de, String_e3551
+ ld de, PCString_ReleasedPKMN
call PlaceString
ld c, 80
call DelayFrames
@@ -81901,7 +80835,7 @@ Functione3180: ; e3180 (38:7180)
ld bc, $112
call TextBox
hlcoord 1, 16
- ld de, String_e355e
+ ld de, PCString_Bye
call PlaceString
ld l, c
ld h, b
@@ -82227,22 +81161,22 @@ PCSelectLZ: INCBIN "gfx/pc.2bpp.lz"
PCMailGFX: INCBIN "gfx/pc_mail.2bpp"
; e34dd
-String_e34dd: db "Choose a ", $e1, $e2, ".@"
-String_e34ea: db "What's up?@"
-String_e34f4: db "Release ", $e1, $e2, "?@"
-String_e3500: db "Move to where?@"
-String_e350f: db "It's your last ", $e1, $e2, "!@"
-String_e3521: db "There's no room!@"
-String_e3531: db "No more usable ", $e1, $e2, "!@"
-String_e3544: db "Remove MAIL.@"
-String_e3551: db "Released ", $e1, $e2, ".@"
-String_e355e: db "Bye,@"
-String_e3563: db "Stored @"
-String_e356b: db "Got @"
-String_e3570: db "Non.@"
-String_e3575: db "The BOX is full.@"
-String_e3586: db "The party's full!@"
-String_e3597: db "No releasing EGGS!@"
+PCString_ChooseaPKMN: db "Choose a <PK><MN>.@"
+PCString_WhatsUp: db "What's up?@"
+PCString_ReleasePKMN: db "Release <PK><MN>?@"
+PCString_MoveToWhere: db "Move to where?@"
+PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@"
+PCString_TheresNoRoom: db "There's no room!@"
+PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@"
+PCString_RemoveMail: db "Remove MAIL.@"
+PCString_ReleasedPKMN: db "Released <PK><MN>.@"
+PCString_Bye: db "Bye,@"
+PCString_Stored: db "Stored @"
+PCString_Got: db "Got @"
+PCString_Non: db "Non.@"
+PCString_BoxFull: db "The BOX is full.@"
+PCString_PartyFull: db "The party's full!@"
+PCString_NoReleasingEGGS: db "No releasing EGGS!@"
; e35aa
Functione35aa: ; e35aa (38:75aa)
@@ -82338,7 +81272,7 @@ Functione3632: ; e3632
ld [wd265], a
hlcoord 13, 11
ld de, wd265
- ld bc, $0102
+ lb bc, 1, 2
call PrintNum
ld de, String_e3668
call PlaceString
@@ -86707,384 +85641,11 @@ UnownWord25: unownword "YIELD"
UnownWord26: unownword "ZOOM"
; fbb32
-Special_CheckMagikarpLength: ; fbb32
- callba SelectMonFromParty
- jr c, .declined
- ld a, [CurPartySpecies]
- cp MAGIKARP
- jr nz, .not_magikarp
- ld a, [CurPartyMon]
- ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
- call AddNTimes
- push hl
- ld bc, MON_DVS
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld bc, MON_ID
- add hl, bc
- ld b, h
- ld c, l
- call CalcMagikarpLength
- call Functionfbbdb
- callba Function105f33
- ld hl, UnknownText_0xfbba9
- call PrintText
- ld hl, Buffer1
- ld de, wdfe8
- ld c, $2
- call StringCmp
- jr nc, .not_long_enough
- ld hl, Buffer1
- ld de, wdfe8
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ld a, [CurPartyMon]
- ld hl, PartyMonOT
- call SkipNames
- call CopyBytes
- ld a, $3
- ld [ScriptVar], a
- ret
-
-.not_long_enough
- ld a, $2
- ld [ScriptVar], a
- ret
-
-.declined
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.not_magikarp
- xor a
- ld [ScriptVar], a
- ret
-; fbba9
-
-UnknownText_0xfbba9: ; 0xfbba9
- ; Let me measure that MAGIKARP. …Hm, it measures @ .
- text_jump UnknownText_0x1c1203
- db "@"
-; 0xfbbae
-
-Functionfbbae: ; fbbae
- ld hl, $96e0
- ld de, GFX_fbbbb
- lb bc, BANK(GFX_fbbbb), $02
- call Request2bpp
- ret
-; fbbbb
-
-GFX_fbbbb: ; fbbb
-INCBIN "gfx/unknown/0fbbbb.2bpp"
-; fbbdb
-
-Functionfbbdb: ; fbbdb
- call Functionfbbae
- ld hl, StringBuffer1
- ld de, Buffer1
- ld bc, $4102
- call PrintNum
- ld [hl], $6e
- inc hl
- ld de, Buffer2
- ld bc, $4102
- call PrintNum
- ld [hl], $6f
- inc hl
- ld [hl], "@"
- ret
-; fbbfc
-
-INCLUDE "battle/magikarp_length.asm"
-
-Special_MagikarpHouseSign: ; fbcd2
- ld a, [wdfe8]
- ld [Buffer1], a
- ld a, [wdfe9]
- ld [Buffer2], a
- call Functionfbbdb
- ld hl, UnknownText_0xfbce8
- call PrintText
- ret
-; fbce8
-
-UnknownText_0xfbce8: ; 0xfbce8
- ; "CURRENT RECORD"
- text_jump UnknownText_0x1c123a
- db "@"
-; 0xfbced
+INCLUDE "event/magikarp.asm"
INCLUDE "battle/hidden_power.asm"
-Functionfbd54: ; fbd54
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_fbd61
- call Functionfbd96
- jr .asm_fbd64
-.asm_fbd61
- call Functionfbd9d
-.asm_fbd64
- call ClearBox
- jr Functionfbd91
-
-Functionfbd69: ; fbd69 (3e:7d69)
- callba BattleCommanda6
- jr Functionfbd77
-
-Functionfbd71: ; fbd71 (3e:7d71)
- callba BattleCommanda7
-
-Functionfbd77: ; fbd77 (3e:7d77)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_fbd85
- call Functionfbd96
- xor a
- jr .asm_fbd8a
-.asm_fbd85
- call Functionfbd9d
- ld a, $31
-.asm_fbd8a
- ld [$ffad], a
- predef FillBox
-Functionfbd91: ; fbd91 (3e:7d91)
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
-Functionfbd96: ; fbd96 (3e:7d96)
- hlcoord 12, 0
- ld bc, $707
- ret
-
-Functionfbd9d: ; fbd9d (3e:7d9d)
- hlcoord 2, 6
- ld bc, $606
- ret
-
-
-DoWeatherModifiers: ; fbda4
-
- ld de, .WeatherTypeModifiers
- ld a, [Weather]
- ld b, a
- ld a, [wd265] ; move type
- ld c, a
-
-.CheckWeatherType
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_fbdc0
-
- cp b
- jr nz, .NextWeatherType
-
- ld a, [de]
- cp c
- jr z, .ApplyModifier
-
-.NextWeatherType
-rept 2
- inc de
-endr
- jr .CheckWeatherType
-
-
-.asm_fbdc0
- ld de, .WeatherMoveModifiers
-
- ld a, BATTLE_VARS_MOVE_EFFECT
- call GetBattleVar
- ld c, a
-
-.CheckWeatherMove
- ld a, [de]
- inc de
- cp $ff
- jr z, .done
-
- cp b
- jr nz, .NextWeatherMove
-
- ld a, [de]
- cp c
- jr z, .ApplyModifier
-
-.NextWeatherMove
-rept 2
- inc de
-endr
- jr .CheckWeatherMove
-
-.ApplyModifier
- xor a
- ld [hMultiplicand + 0], a
- ld hl, CurDamage
- ld a, [hli]
- ld [hMultiplicand + 1], a
- ld a, [hl]
- ld [hMultiplicand + 2], a
-
- inc de
- ld a, [de]
- ld [hMultiplier], a
-
- call Multiply
-
- ld a, 10
- ld [hDivisor], a
- ld b, $4
- call Divide
-
- ld a, [hQuotient + 0]
- and a
- ld bc, $ffff
- jr nz, .Update
-
- ld a, [hQuotient + 1]
- ld b, a
- ld a, [hQuotient + 2]
- ld c, a
- or b
- jr nz, .Update
-
- ld bc, 1
-
-.Update
- ld a, b
- ld [CurDamage], a
- ld a, c
- ld [CurDamage + 1], a
-
-.done
- ret
-
-.WeatherTypeModifiers
- db WEATHER_RAIN, WATER, 15
- db WEATHER_RAIN, FIRE, 05
- db WEATHER_SUN, FIRE, 15
- db WEATHER_SUN, WATER, 05
- db $ff
-
-.WeatherMoveModifiers
- db WEATHER_RAIN, EFFECT_SOLARBEAM, 05
- db $ff
-; fbe24
-
-
-DoBadgeTypeBoosts: ; fbe24
- ld a, [InLinkBattle]
- and a
- ret nz
-
- ld a, [InBattleTowerBattle]
- and a
- ret nz
-
- ld a, [hBattleTurn]
- and a
- ret nz
-
- push de
- push bc
-
- ld hl, .BadgeTypes
-
- ld a, [KantoBadges]
- ld b, a
- ld a, [JohtoBadges]
- ld c, a
-
-.CheckBadge
- ld a, [hl]
- cp $ff
- jr z, .done
-
- srl b
- rr c
- jr nc, .NextBadge
-
- ld a, [wd265] ; move type
- cp [hl]
- jr z, .ApplyBoost
-
-.NextBadge
- inc hl
- jr .CheckBadge
-
-.ApplyBoost
- ld a, [CurDamage]
- ld h, a
- ld d, a
- ld a, [CurDamage + 1]
- ld l, a
- ld e, a
-
- srl d
- rr e
- srl d
- rr e
- srl d
- rr e
-
- ld a, e
- or d
- jr nz, .asm_fbe6f
- ld e, 1
-
-.asm_fbe6f
- add hl, de
- jr nc, .Update
-
- ld hl, $ffff
-
-.Update
- ld a, h
- ld [CurDamage], a
- ld a, l
- ld [CurDamage + 1], a
-
-.done
- pop bc
- pop de
- ret
-
-.BadgeTypes
- db FLYING ; zephyrbadge
- db BUG ; hivebadge
- db NORMAL ; plainbadge
- db GHOST ; fogbadge
- db STEEL ; mineralbadge
- db FIGHTING ; stormbadge
- db ICE ; glacierbadge
- db DRAGON ; risingbadge
-
- db ROCK ; boulderbadge
- db WATER ; cascadebadge
- db ELECTRIC ; thunderbadge
- db GRASS ; rainbowbadge
- db POISON ; soulbadge
- db PSYCHIC ; marshbadge
- db FIRE ; volcanobadge
- db GROUND ; earthbadge
- db $ff
-; fbe91
-
+INCLUDE "battle/misc.asm"
SECTION "bank3F", ROMX, BANK[$3F]
@@ -87127,7 +85688,7 @@ NPCTrade:: ; fcba8
jr c, .done
; Select givemon from party
- ld b, $6
+ ld b, 6
callba Function5001d
ld a, TRADE_CANCEL
jr c, .done
@@ -87300,7 +85861,7 @@ Functionfcc63: ; fcc63
ld [MonType], a
ld [wd10b], a
callab Functione039
- predef Functiond88c
+ predef TryAddMonToParty
ld e, TRADE_DIALOG
call GetTradeAttribute
@@ -88399,10 +86960,10 @@ Function104263: ; 104263 (41:4263)
ld c, $0
Function104265: ; 104265 (41:4265)
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
push af
ld a, c
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ld c, $12
.asm_10426d
ld b, $14
@@ -88412,7 +86973,7 @@ Function104265: ; 104265 (41:4265)
ld [hli], a
dec b
jr nz, .asm_10426f
- ld a, [$ffaf]
+ ld a, [hConnectionStripLength]
ld b, $c
.asm_104279
ld [hli], a
@@ -88421,7 +86982,7 @@ Function104265: ; 104265 (41:4265)
dec c
jr nz, .asm_10426d
pop af
- ld [$ffaf], a
+ ld [hConnectionStripLength], a
ret
@@ -89079,30 +87640,31 @@ DoMysteryGift: ; 1048ba (41:48ba)
.asm_104963
ld a, [wc90f]
and a
- jr z, .asm_104990
+ jr z, .item
ld a, [wc911]
ld c, a
- callba Function2c715
+ callba MysteryGiftGetDecoration
push bc
call Function105069
pop bc
- jr nz, .asm_104990
+ jr nz, .item
callab GetDecorationName_c
ld h, d
ld l, e
ld de, StringBuffer1
- ld bc, $d
+ ld bc, ITEM_NAME_LENGTH
call CopyBytes
ld hl, UnknownText_0x104a20
jr Function1049c5
-.asm_104990
+
+.item
call Function105106
ld a, [wc910]
ld c, a
- callba Function2c708
+ callba MysteryGiftGetItem
ld a, c
ld [s0_abe4], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call CloseSRAM
call GetItemName
ld hl, UnknownText_0x104a1b
@@ -91092,7 +89654,7 @@ Mobile_HallOfFame2:: mobile ; 0x105ef6
ret
; 105f33
-Function105f33: mobile ; 105f33
+MagikarpLength_Mobile: mobile ; 105f33
ld a, $5
call GetSRAMBank
ld de, Buffer1
@@ -92428,7 +90990,7 @@ Function1dc381: ; 1dc381
ld [hl], $71
inc hl
ld de, TempMonMaxHP
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
ld a, [CurPartySpecies]
ld [wd265], a
@@ -92448,7 +91010,7 @@ Function1dc381: ; 1dc381
ld [hl], $e8
inc hl
ld de, wd265
- ld bc, $8103
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
hlcoord 1, 9
ld de, String1dc550
@@ -92462,7 +91024,7 @@ Function1dc381: ; 1dc381
call PlaceString
hlcoord 4, 11
ld de, TempMonID
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
hlcoord 1, 14
ld de, String1dc554
@@ -92544,7 +91106,7 @@ Function1dc47b: ; 1dc47b
; 1dc507
Function1dc507: ; 1dc507
- ld bc, $0203
+ lb bc, 2, 3
call PrintNum
ret
; 1dc50e
@@ -92640,7 +91202,7 @@ Function1dd6a9: ; 1dd6a9
ld d, h
ld e, l
pop hl
- ld bc, $8205
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
pop bc
ret
@@ -92648,7 +91210,7 @@ Function1dd6a9: ; 1dd6a9
Function1dd6bb: ; 1dd6bb (77:56bb)
ld a, b
- cp $c
+ cp 12
push af
jr c, .asm_1dd6c7
jr z, .asm_1dd6cc
@@ -92667,7 +91229,7 @@ Function1dd6bb: ; 1dd6bb (77:56bb)
pop de
pop hl
ld [hl], $7f
- ld bc, $102
+ lb bc, 1, 2
call PrintNum
ld [hl], $9c
inc hl
@@ -92678,7 +91240,7 @@ Function1dd6bb: ; 1dd6bb (77:56bb)
push hl
pop de
pop hl
- ld bc, $8102
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
pop bc
ld de, String_1dd6fc