summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/battle_transition.asm4
-rwxr-xr-xengine/card_flip.asm4
-rw-r--r--engine/color.asm2
-rw-r--r--engine/diploma.asm1
-rwxr-xr-xengine/events_3.asm2
-rw-r--r--engine/item_effects.asm6
-rw-r--r--engine/link_2.asm91
-rwxr-xr-xengine/money.asm4
-rwxr-xr-xengine/move_mon.asm4
-rw-r--r--engine/phone/phone.asm4
-rw-r--r--engine/player_gfx_2.asm5
-rwxr-xr-xengine/pokegear.asm6
-rw-r--r--engine/pokerus/apply_pokerus_tick.asm (renamed from engine/pokerus_tick.asm)0
-rw-r--r--engine/pokerus/check_pokerus.asm25
-rw-r--r--engine/pokerus/pokerus.asm (renamed from engine/pokerus.asm)0
-rw-r--r--engine/routines/battlestart_copytilemapatonce.asm3
-rw-r--r--engine/routines/checkbattlescene.asm (renamed from engine/check_battle_scene.asm)0
-rw-r--r--engine/routines/checknickerrors.asm (renamed from engine/check_nick_errors.asm)0
-rw-r--r--engine/routines/checksave.asm20
-rw-r--r--engine/routines/checktime.asm (renamed from engine/check_time.asm)4
-rw-r--r--engine/routines/consumehelditem.asm (renamed from engine/consume_held_item.asm)0
-rw-r--r--engine/routines/correcterrorsinplayerparty.asm (renamed from engine/unused_correct_party.asm)0
-rw-r--r--engine/routines/drawkrispackgfx.asm (renamed from engine/pack_f.asm)0
-rw-r--r--engine/routines/emptyallsrambanks.asm (renamed from engine/empty_sram.asm)0
-rw-r--r--engine/routines/flagpredef.asm (renamed from engine/flag_predef.asm)0
-rw-r--r--engine/routines/getbreedmonlevelgrowth.asm (renamed from engine/get_breedmon_growth.asm)0
-rwxr-xr-xengine/routines/getpokeballwobble.asm (renamed from engine/pokeball_wobble.asm)0
-rw-r--r--engine/routines/getsquareroot.asm (renamed from engine/square_root.asm)4
-rw-r--r--engine/routines/initlist.asm (renamed from engine/init_list.asm)0
-rw-r--r--engine/routines/knowsmove.asm (renamed from engine/knows_move.asm)0
-rw-r--r--engine/routines/kurt_selectquantity_interpretjoypad.asm4
-rw-r--r--engine/routines/leveluphappinessmod.asm20
-rw-r--r--engine/routines/loadmappart.asm36
-rw-r--r--engine/routines/loadpushoam.asm21
-rw-r--r--engine/routines/newpokedexentry.asm (renamed from engine/new_pokedex_entry.asm)0
-rw-r--r--engine/routines/phonering_copytilemapatonce.asm80
-rw-r--r--engine/routines/placegraphic.asm (renamed from engine/place_graphics.asm)0
-rw-r--r--engine/routines/placewaitingtext.asm24
-rw-r--r--engine/routines/playslowcry.asm (renamed from engine/play_slow_cry.asm)0
-rw-r--r--engine/routines/printhoursmins.asm (renamed from engine/printhoursmins.asm)2
-rw-r--r--engine/routines/returntobattle_useball.asm19
-rw-r--r--engine/routines/savemenu_copytilemapatonce.asm77
-rwxr-xr-xengine/routines/sine.asm (renamed from engine/sine.asm)0
-rw-r--r--engine/routines/switchpartymons.asm (renamed from engine/switch_party_mons.asm)0
-rw-r--r--engine/routines/townmap_convertlinebreakcharacters.asm (renamed from engine/pokegear_2.asm)4
-rw-r--r--engine/routines/trademonfrontpic.asm (renamed from engine/trademon_frontpic.asm)0
-rw-r--r--engine/routines/updatebattlehuds.asm9
-rw-r--r--engine/routines/updateitemdescription.asm13
-rwxr-xr-xengine/rtc.asm10
-rw-r--r--engine/save.asm4
-rwxr-xr-xengine/slot_machine.asm11
-rw-r--r--engine/spawn_points.asm1
-rwxr-xr-xengine/stats_screen.asm1
-rw-r--r--engine/std_scripts.asm6
-rwxr-xr-xengine/unown_dex.asm1
55 files changed, 482 insertions, 50 deletions
diff --git a/engine/battle_transition.asm b/engine/battle_transition.asm
index 2af113ddd..bef74ad29 100644
--- a/engine/battle_transition.asm
+++ b/engine/battle_transition.asm
@@ -60,7 +60,7 @@ Predef_StartBattle: ; 8c20f
call UpdateSprites
call DelayFrame
call .NonMobile_LoadPokeballTiles
- call BattleStart_LoadEDTile
+ call BattleStart_CopyTilemapAtOnce
jr .resume
.mobile
@@ -663,7 +663,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
ld a, $1
ld [hCGBPalUpdate], a
call DelayFrame
- call BattleStart_LoadEDTile
+ call BattleStart_CopyTilemapAtOnce
.nextscene ; 8c673 (23:4673)
call StartTrainerBattle_NextScene
diff --git a/engine/card_flip.asm b/engine/card_flip.asm
index cfcd949e6..c0c4639ad 100755
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1185,14 +1185,14 @@ CardFlip_CheckWinCondition: ; e0637
.IsCoinCaseFull: ; e0833
ld a, [Coins]
- cp 9999 / $100
+ cp MAX_COINS / $100
jr c, .less
jr z, .check_low
jr .more
.check_low
ld a, [Coins + 1]
- cp 9999 % $100
+ cp MAX_COINS % $100
jr c, .less
.more
diff --git a/engine/color.asm b/engine/color.asm
index ce9e1dfaa..afa8fe2e7 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -307,7 +307,7 @@ Function8bec:
ld a, [EnemySafeguardCount] ; value
and $3
call FillBoxCGB
- call LoadEDTile
+ call CopyTilemapAtOnce
ret
ApplyMonOrTrainerPals:
diff --git a/engine/diploma.asm b/engine/diploma.asm
index 582d0cd1c..f1c67ea37 100644
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -1,4 +1,3 @@
-
_Diploma: ; 1dd702
call PlaceDiplomaOnScreen
call WaitPressAorB_BlinkCursor
diff --git a/engine/events_3.asm b/engine/events_3.asm
index eb6154f60..3d662c332 100755
--- a/engine/events_3.asm
+++ b/engine/events_3.asm
@@ -78,7 +78,7 @@ ReturnFromMapSetupScript:: ; b8000
ret z
cp LAV_RADIO_TOWER
ret z
- cp UNDERGROUND
+ cp UNDERGROUND_PATH
ret z
cp INDIGO_PLATEAU
ret z
diff --git a/engine/item_effects.asm b/engine/item_effects.asm
index 2d7aa4c69..4db1f3b7d 100644
--- a/engine/item_effects.asm
+++ b/engine/item_effects.asm
@@ -2147,8 +2147,8 @@ GetHealingItemAmount: ; f395 (3:7395)
dbw HYPER_POTION, 200
dbw SUPER_POTION, 50
dbw POTION, 20
- dbw MAX_POTION, 999
- dbw FULL_RESTORE, 999
+ dbw MAX_POTION, MAX_STAT_VALUE
+ dbw FULL_RESTORE, MAX_STAT_VALUE
dbw MOOMOO_MILK, 100
dbw BERRY, 10
dbw GOLD_BERRY, 30
@@ -3314,5 +3314,3 @@ GetMthMoveOfCurrentMon: ; f969
add hl, bc
ret
; f971
-
-INCLUDE "engine/pokeball_wobble.asm"
diff --git a/engine/link_2.asm b/engine/link_2.asm
new file mode 100644
index 000000000..72e5262b3
--- /dev/null
+++ b/engine/link_2.asm
@@ -0,0 +1,91 @@
+LinkMonStatsScreen: ; 4d319
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ call LowVolume
+ predef StatsScreenInit
+ ld a, [CurPartyMon]
+ inc a
+ ld [wMenuCursorY], a
+ call ClearScreen
+ call ClearBGPalettes
+ call MaxVolume
+ farcall LoadTradeScreenBorder
+ farcall Link_WaitBGMap
+ farcall InitTradeSpeciesList
+ farcall SetTradeRoomBGPals
+ call WaitBGMap2
+ ret
+
+Link_WaitBGMap: ; 4d354
+ call WaitBGMap
+ call WaitBGMap2
+ ret
+
+LinkTextbox2: ; 4d35b
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ call .PlaceBorder
+ pop hl
+ pop bc
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $7
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+
+.PlaceBorder: ; 4d37e
+ push hl
+ ld a, $76
+ ld [hli], a
+ inc a
+ call .PlaceRow
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+.loop
+ push hl
+ ld a, "┌"
+ ld [hli], a
+ ld a, " "
+ call .PlaceRow
+ ld [hl], "─"
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .loop
+ ld a, "┐"
+ ld [hli], a
+ ld a, "│"
+ call .PlaceRow
+ ld [hl], "└"
+ ret
+
+.PlaceRow: ; 4d3ab
+ ld d, c
+.row_loop
+ ld [hli], a
+ dec d
+ jr nz, .row_loop
+ ret
diff --git a/engine/money.asm b/engine/money.asm
index 874821814..60de97568 100755
--- a/engine/money.asm
+++ b/engine/money.asm
@@ -24,7 +24,7 @@ GiveMoney:: ; 15fd7
; 15ff7
MaxMoney: ; 15ff7
- dt 999999
+ dt MAX_MONEY
; 15ffa
@@ -192,7 +192,7 @@ GiveCoins:: ; 1606f
; 1608d
.maxcoins ; 1608d
- bigdw 9999
+ bigdw MAX_COINS
; 1608f
diff --git a/engine/move_mon.asm b/engine/move_mon.asm
index 2225a80ab..4ee283e3e 100755
--- a/engine/move_mon.asm
+++ b/engine/move_mon.asm
@@ -1579,9 +1579,9 @@ CalcPkmnStatC: ; e17b
jr c, .stat_value_okay
.max_stat
- ld a, 999 / $100
+ ld a, MAX_STAT_VALUE / $100
ld [hMultiplicand + 1], a
- ld a, 999 % $100
+ ld a, MAX_STAT_VALUE % $100
ld [hMultiplicand + 2], a
.stat_value_okay
diff --git a/engine/phone/phone.asm b/engine/phone/phone.asm
index 9b451d04a..53bb519b3 100644
--- a/engine/phone/phone.asm
+++ b/engine/phone/phone.asm
@@ -599,7 +599,7 @@ Phone_StartRinging: ; 9033f
call PlaySFX
call Phone_CallerTextbox
call UpdateSprites
- farcall PhoneRing_LoadEDTile
+ farcall PhoneRing_CopyTilemapAtOnce
ret
; 90355
@@ -609,7 +609,7 @@ HangUp_Wait20Frames: ; 90355
Phone_Wait20Frames
ld c, 20
call DelayFrames
- farcall PhoneRing_LoadEDTile
+ farcall PhoneRing_CopyTilemapAtOnce
ret
; 90363
diff --git a/engine/player_gfx_2.asm b/engine/player_gfx_2.asm
deleted file mode 100644
index d6e7791a3..000000000
--- a/engine/player_gfx_2.asm
+++ /dev/null
@@ -1,5 +0,0 @@
-ChrisBackpic: ; 2ba1a
-INCBIN "gfx/player/chris_back.2bpp.lz"
-
-DudeBackpic: ; 2bbaa
-INCBIN "gfx/battle/dude.2bpp.lz"
diff --git a/engine/pokegear.asm b/engine/pokegear.asm
index d38f8c6a8..2529e3b0e 100755
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -1688,7 +1688,7 @@ LoadStation_UnownRadio: ; 917d5 (24:57d5)
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
- ld de, UnknownStationName
+ ld de, UnownStationName
ret
LoadStation_PlacesAndPeople: ; 917ea (24:57ea)
@@ -1747,7 +1747,7 @@ LoadStation_EvolutionRadio: ; 9183e (24:583e)
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
- ld de, UnknownStationName
+ ld de, UnownStationName
ret
; 91853 (24:5853)
@@ -1821,7 +1821,7 @@ OaksPkmnTalkName: db "OAK's <PK><MN> Talk@"
PokedexShowName: db "#DEX Show@"
PokemonMusicName: db "#MON Music@"
LuckyChannelName: db "Lucky Channel@"
-UnknownStationName: db "?????@"
+UnownStationName: db "?????@"
PlacesAndPeopleName: db "Places & People@"
LetsAllSingName: db "Let's All Sing!@"
diff --git a/engine/pokerus_tick.asm b/engine/pokerus/apply_pokerus_tick.asm
index 3c97fdc5e..3c97fdc5e 100644
--- a/engine/pokerus_tick.asm
+++ b/engine/pokerus/apply_pokerus_tick.asm
diff --git a/engine/pokerus/check_pokerus.asm b/engine/pokerus/check_pokerus.asm
new file mode 100644
index 000000000..285024754
--- /dev/null
+++ b/engine/pokerus/check_pokerus.asm
@@ -0,0 +1,25 @@
+CheckPokerus: ; 4d860
+; Return carry if a monster in your party has Pokerus
+
+; Get number of monsters to iterate over
+ ld a, [PartyCount]
+ and a
+ jr z, .NoPokerus
+ ld b, a
+; Check each monster in the party for Pokerus
+ ld hl, PartyMon1PokerusStatus
+ ld de, PARTYMON_STRUCT_LENGTH
+.Check:
+ ld a, [hl]
+ and $0f ; only the bottom nybble is used
+ jr nz, .HasPokerus
+; Next PartyMon
+ add hl, de
+ dec b
+ jr nz, .Check
+.NoPokerus:
+ and a
+ ret
+.HasPokerus:
+ scf
+ ret
diff --git a/engine/pokerus.asm b/engine/pokerus/pokerus.asm
index 3e5e094e4..3e5e094e4 100644
--- a/engine/pokerus.asm
+++ b/engine/pokerus/pokerus.asm
diff --git a/engine/routines/battlestart_copytilemapatonce.asm b/engine/routines/battlestart_copytilemapatonce.asm
new file mode 100644
index 000000000..2952e833b
--- /dev/null
+++ b/engine/routines/battlestart_copytilemapatonce.asm
@@ -0,0 +1,3 @@
+BattleStart_CopyTilemapAtOnce: ; 8cf4f
+ call CGBOnly_CopyTilemapAtOnce
+ ret
diff --git a/engine/check_battle_scene.asm b/engine/routines/checkbattlescene.asm
index b63f00907..b63f00907 100644
--- a/engine/check_battle_scene.asm
+++ b/engine/routines/checkbattlescene.asm
diff --git a/engine/check_nick_errors.asm b/engine/routines/checknickerrors.asm
index 1cedca420..1cedca420 100644
--- a/engine/check_nick_errors.asm
+++ b/engine/routines/checknickerrors.asm
diff --git a/engine/routines/checksave.asm b/engine/routines/checksave.asm
new file mode 100644
index 000000000..2280f0e53
--- /dev/null
+++ b/engine/routines/checksave.asm
@@ -0,0 +1,20 @@
+CheckSave:: ; 4cffe
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
+ call GetSRAMBank
+ ld a, [sCheckValue1]
+ ld b, a
+ ld a, [sCheckValue2]
+ ld c, a
+ call CloseSRAM
+ ld a, b
+ cp SAVE_CHECK_VALUE_1
+ jr nz, .ok
+ ld a, c
+ cp SAVE_CHECK_VALUE_2
+ jr nz, .ok
+ ld c, $1
+ ret
+
+.ok
+ ld c, $0
+ ret
diff --git a/engine/check_time.asm b/engine/routines/checktime.asm
index 615b51d29..ada151dbf 100644
--- a/engine/check_time.asm
+++ b/engine/routines/checktime.asm
@@ -1,6 +1,6 @@
CheckTime:: ; c000
ld a, [TimeOfDay]
- ld hl, TimeOfDayTable
+ ld hl, .TimeOfDayTable
ld de, 2
call IsInArray
inc hl
@@ -11,7 +11,7 @@ CheckTime:: ; c000
ld c, a
ret
-TimeOfDayTable: ; c012
+.TimeOfDayTable: ; c012
db MORN_F, MORN
db DAY_F, DAY
db NITE_F, NITE
diff --git a/engine/consume_held_item.asm b/engine/routines/consumehelditem.asm
index a6f7766fb..a6f7766fb 100644
--- a/engine/consume_held_item.asm
+++ b/engine/routines/consumehelditem.asm
diff --git a/engine/unused_correct_party.asm b/engine/routines/correcterrorsinplayerparty.asm
index 2fa98a545..2fa98a545 100644
--- a/engine/unused_correct_party.asm
+++ b/engine/routines/correcterrorsinplayerparty.asm
diff --git a/engine/pack_f.asm b/engine/routines/drawkrispackgfx.asm
index f71e43db8..f71e43db8 100644
--- a/engine/pack_f.asm
+++ b/engine/routines/drawkrispackgfx.asm
diff --git a/engine/empty_sram.asm b/engine/routines/emptyallsrambanks.asm
index aa4b28e0d..aa4b28e0d 100644
--- a/engine/empty_sram.asm
+++ b/engine/routines/emptyallsrambanks.asm
diff --git a/engine/flag_predef.asm b/engine/routines/flagpredef.asm
index bd4f37882..bd4f37882 100644
--- a/engine/flag_predef.asm
+++ b/engine/routines/flagpredef.asm
diff --git a/engine/get_breedmon_growth.asm b/engine/routines/getbreedmonlevelgrowth.asm
index b029043d6..b029043d6 100644
--- a/engine/get_breedmon_growth.asm
+++ b/engine/routines/getbreedmonlevelgrowth.asm
diff --git a/engine/pokeball_wobble.asm b/engine/routines/getpokeballwobble.asm
index 7fb4d3e38..7fb4d3e38 100755
--- a/engine/pokeball_wobble.asm
+++ b/engine/routines/getpokeballwobble.asm
diff --git a/engine/square_root.asm b/engine/routines/getsquareroot.asm
index 496f66c83..009d9f4fe 100644
--- a/engine/square_root.asm
+++ b/engine/routines/getsquareroot.asm
@@ -4,7 +4,7 @@ GetSquareRoot: ; 13b87
; Rather than calculating the result, we take the index of the
; first value in a table of squares that isn't lower than de.
- ld hl, Squares
+ ld hl, .Squares
ld b, 0
.loop
; Make sure we don't go past the end of the table.
@@ -22,7 +22,7 @@ GetSquareRoot: ; 13b87
jr c, .loop
ret
-Squares: ; 13b98
+.Squares: ; 13b98
root set 1
rept $ff
dw root*root
diff --git a/engine/init_list.asm b/engine/routines/initlist.asm
index e2b7235ab..e2b7235ab 100644
--- a/engine/init_list.asm
+++ b/engine/routines/initlist.asm
diff --git a/engine/knows_move.asm b/engine/routines/knowsmove.asm
index 4ec3da347..4ec3da347 100644
--- a/engine/knows_move.asm
+++ b/engine/routines/knowsmove.asm
diff --git a/engine/routines/kurt_selectquantity_interpretjoypad.asm b/engine/routines/kurt_selectquantity_interpretjoypad.asm
new file mode 100644
index 000000000..12a43e325
--- /dev/null
+++ b/engine/routines/kurt_selectquantity_interpretjoypad.asm
@@ -0,0 +1,4 @@
+Kurt_SelectQuantity_InterpretJoypad: ; 27a28
+ call BuySellToss_InterpretJoypad
+ ld b, a
+ ret
diff --git a/engine/routines/leveluphappinessmod.asm b/engine/routines/leveluphappinessmod.asm
new file mode 100644
index 000000000..c253e8872
--- /dev/null
+++ b/engine/routines/leveluphappinessmod.asm
@@ -0,0 +1,20 @@
+LevelUpHappinessMod: ; 2709e
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CaughtLocation
+ call GetPartyLocation
+ ld a, [hl]
+ and $7f
+ ld d, a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp d
+ ld c, HAPPINESS_GAINLEVEL
+ jr nz, .ok
+ ld c, HAPPINESS_GAINLEVELATHOME
+
+.ok
+ callfar ChangeHappiness
+ ret
diff --git a/engine/routines/loadmappart.asm b/engine/routines/loadmappart.asm
new file mode 100644
index 000000000..2184ebf7e
--- /dev/null
+++ b/engine/routines/loadmappart.asm
@@ -0,0 +1,36 @@
+_LoadMapPart:: ; 4d15b
+ ld hl, wMisc
+ ld a, [wMetatileStandingY]
+ and a
+ jr z, .top_row
+ ld bc, WMISC_WIDTH * 2
+ add hl, bc
+
+.top_row
+ ld a, [wMetatileStandingX]
+ and a
+ jr z, .left_column
+ inc hl
+ inc hl
+
+.left_column
+ decoord 0, 0
+ ld b, SCREEN_HEIGHT
+.loop
+ ld c, SCREEN_WIDTH
+.loop2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop2
+ ld a, l
+ add 4
+ ld l, a
+ jr nc, .carry
+ inc h
+
+.carry
+ dec b
+ jr nz, .loop
+ ret
diff --git a/engine/routines/loadpushoam.asm b/engine/routines/loadpushoam.asm
new file mode 100644
index 000000000..6fcccbcae
--- /dev/null
+++ b/engine/routines/loadpushoam.asm
@@ -0,0 +1,21 @@
+LoadPushOAM:: ; 4031
+ ld c, hPushOAM - $ff00
+ ld b, .PushOAMEnd - .PushOAM
+ ld hl, .PushOAM
+.loop
+ ld a, [hli]
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .loop
+ ret
+
+.PushOAM: ; 403f
+ ld a, Sprites / $100
+ ld [rDMA], a
+ ld a, (SpritesEnd - Sprites) / 4 ; 40
+.pushoam_loop
+ dec a
+ jr nz, .pushoam_loop
+ ret
+.PushOAMEnd
diff --git a/engine/new_pokedex_entry.asm b/engine/routines/newpokedexentry.asm
index acf9fca7b..acf9fca7b 100644
--- a/engine/new_pokedex_entry.asm
+++ b/engine/routines/newpokedexentry.asm
diff --git a/engine/routines/phonering_copytilemapatonce.asm b/engine/routines/phonering_copytilemapatonce.asm
new file mode 100644
index 000000000..2ffa688a9
--- /dev/null
+++ b/engine/routines/phonering_copytilemapatonce.asm
@@ -0,0 +1,80 @@
+PhoneRing_CopyTilemapAtOnce: ; 4d188
+ ld a, [hCGB]
+ and a
+ jp z, WaitBGMap
+ ld a, [wSpriteUpdatesEnabled]
+ cp $0
+ jp z, WaitBGMap
+
+; What follows is a modified version of CopyTilemapAtOnce.
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+.wait
+ ld a, [rLY]
+ cp $8f
+ jr c, .wait
+
+ di
+ ld a, BANK(VBGMap2)
+ ld [rVBK], a
+ hlcoord 0, 0, AttrMap
+ call .CopyTilemapAtOnce
+ ld a, BANK(VBGMap0)
+ ld [rVBK], a
+ hlcoord 0, 0
+ call .CopyTilemapAtOnce
+.wait2
+ ld a, [rLY]
+ cp $8f
+ jr c, .wait2
+ ei
+
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+
+.CopyTilemapAtOnce: ; 4d1cb
+ ld [hSPBuffer], sp
+ ld sp, hl
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ ld l, 0
+ ld a, SCREEN_HEIGHT
+ ld [hTilesPerCycle], a
+ ld b, 1 << 1 ; not in v/hblank
+ ld c, rSTAT % $100
+
+.loop
+rept SCREEN_WIDTH / 2
+ pop de
+.loop\@
+ ld a, [$ff00+c]
+ and b
+ jr nz, .loop\@
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+endr
+
+ ld de, BG_MAP_WIDTH - SCREEN_WIDTH
+ add hl, de
+ ld a, [hTilesPerCycle]
+ dec a
+ ld [hTilesPerCycle], a
+ jr nz, .loop
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+ ret
diff --git a/engine/place_graphics.asm b/engine/routines/placegraphic.asm
index d72364776..d72364776 100644
--- a/engine/place_graphics.asm
+++ b/engine/routines/placegraphic.asm
diff --git a/engine/routines/placewaitingtext.asm b/engine/routines/placewaitingtext.asm
new file mode 100644
index 000000000..37fc2a056
--- /dev/null
+++ b/engine/routines/placewaitingtext.asm
@@ -0,0 +1,24 @@
+PlaceWaitingText:: ; 4000
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+
+ ld a, [wBattleMode]
+ and a
+ jr z, .notinbattle
+
+ call TextBox
+ jr .proceed
+
+.notinbattle
+ predef Predef_LinkTextbox
+
+.proceed
+ hlcoord 4, 11
+ ld de, .Waiting
+ call PlaceString
+ ld c, 50
+ jp DelayFrames
+
+.Waiting: ; 4025
+ db "Waiting...!@"
diff --git a/engine/play_slow_cry.asm b/engine/routines/playslowcry.asm
index 3cc347a55..3cc347a55 100644
--- a/engine/play_slow_cry.asm
+++ b/engine/routines/playslowcry.asm
diff --git a/engine/printhoursmins.asm b/engine/routines/printhoursmins.asm
index 711ff89b6..50117188c 100644
--- a/engine/printhoursmins.asm
+++ b/engine/routines/printhoursmins.asm
@@ -14,7 +14,7 @@ Function1dd6a9: ; 1dd6a9
pop bc
ret
-PrintHoursMins ; 1dd6bb (77:56bb)
+PrintHoursMins: ; 1dd6bb (77:56bb)
; Hours in b, minutes in c
ld a, b
cp 12
diff --git a/engine/routines/returntobattle_useball.asm b/engine/routines/returntobattle_useball.asm
new file mode 100644
index 000000000..e6e33f900
--- /dev/null
+++ b/engine/routines/returntobattle_useball.asm
@@ -0,0 +1,19 @@
+_ReturnToBattle_UseBall: ; 2715c
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jr z, .gettutorialbackpic
+ farcall GetBattleMonBackpic
+ jr .continue
+
+.gettutorialbackpic
+ farcall GetTrainerBackpic
+.continue
+ farcall GetEnemyMonFrontpic
+ farcall _LoadBattleFontsHPBar
+ call GetMemSGBLayout
+ call CloseWindow
+ call LoadStandardMenuDataHeader
+ call WaitBGMap
+ jp SetPalettes
diff --git a/engine/routines/savemenu_copytilemapatonce.asm b/engine/routines/savemenu_copytilemapatonce.asm
new file mode 100644
index 000000000..de7cbaa8f
--- /dev/null
+++ b/engine/routines/savemenu_copytilemapatonce.asm
@@ -0,0 +1,77 @@
+SaveMenu_CopyTilemapAtOnce: ; 4cf45 (13:4f45)
+ ld a, [hCGB]
+ and a
+ jp z, WaitBGMap
+
+; The following is a modified version of CopyTilemapAtOnce.
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+.WaitLY:
+ ld a, [rLY]
+ cp $60
+ jr c, .WaitLY
+
+ di
+ ld a, BANK(VBGMap2)
+ ld [rVBK], a
+ hlcoord 0, 0, AttrMap
+ call .CopyTilemapAtOnce
+ ld a, BANK(VBGMap0)
+ ld [rVBK], a
+ hlcoord 0, 0
+ call .CopyTilemapAtOnce
+.WaitLY2:
+ ld a, [rLY]
+ cp $60
+ jr c, .WaitLY2
+ ei
+
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+
+.CopyTilemapAtOnce: ; 4cf80 (13:4f80)
+ ld [hSPBuffer], sp ; $ffd9
+ ld sp, hl
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ ld l, 0
+ ld a, SCREEN_HEIGHT
+ ld [hTilesPerCycle], a
+ ld b, 1 << 1
+ ld c, rSTAT % $100
+
+.loop
+rept SCREEN_WIDTH / 2
+ pop de
+.loop\@
+ ld a, [$ff00+c]
+ and b
+ jr nz, .loop\@
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+endr
+
+ ld de, BG_MAP_WIDTH - SCREEN_WIDTH
+ add hl, de
+ ld a, [hTilesPerCycle]
+ dec a
+ ld [hTilesPerCycle], a
+ jr nz, .loop
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+ ret
diff --git a/engine/sine.asm b/engine/routines/sine.asm
index 89a905d2e..89a905d2e 100755
--- a/engine/sine.asm
+++ b/engine/routines/sine.asm
diff --git a/engine/switch_party_mons.asm b/engine/routines/switchpartymons.asm
index cde9c82b2..cde9c82b2 100644
--- a/engine/switch_party_mons.asm
+++ b/engine/routines/switchpartymons.asm
diff --git a/engine/pokegear_2.asm b/engine/routines/townmap_convertlinebreakcharacters.asm
index a5cceecfd..f08b436c9 100644
--- a/engine/pokegear_2.asm
+++ b/engine/routines/townmap_convertlinebreakcharacters.asm
@@ -19,7 +19,3 @@ TownMap_ConvertLineBreakCharacters: ; 1de2c5
hlcoord 9, 0
call PlaceString
ret
-
-
-PokegearGFX: ; 1de2e4
-INCBIN "gfx/pokegear/pokegear.2bpp.lz"
diff --git a/engine/trademon_frontpic.asm b/engine/routines/trademonfrontpic.asm
index 3a38688d7..3a38688d7 100644
--- a/engine/trademon_frontpic.asm
+++ b/engine/routines/trademonfrontpic.asm
diff --git a/engine/routines/updatebattlehuds.asm b/engine/routines/updatebattlehuds.asm
new file mode 100644
index 000000000..ec7f662e8
--- /dev/null
+++ b/engine/routines/updatebattlehuds.asm
@@ -0,0 +1,9 @@
+_UpdateBattleHUDs:
+ farcall DrawPlayerHUD
+ ld hl, PlayerHPPal
+ call SetHPPal
+ farcall DrawEnemyHUD
+ ld hl, EnemyHPPal
+ call SetHPPal
+ farcall FinishBattleAnim
+ ret
diff --git a/engine/routines/updateitemdescription.asm b/engine/routines/updateitemdescription.asm
new file mode 100644
index 000000000..b684dd4d8
--- /dev/null
+++ b/engine/routines/updateitemdescription.asm
@@ -0,0 +1,13 @@
+UpdateItemDescription: ; 0x244c3
+ ld a, [MenuSelection]
+ ld [CurSpecies], a
+ hlcoord 0, 12
+ ld b, 4
+ ld c, SCREEN_WIDTH - 2
+ call TextBox
+ ld a, [MenuSelection]
+ cp -1
+ ret z
+ decoord 1, 14
+ farcall PrintItemDescription
+ ret
diff --git a/engine/rtc.asm b/engine/rtc.asm
index e2699a637..dc49a9630 100755
--- a/engine/rtc.asm
+++ b/engine/rtc.asm
@@ -58,11 +58,11 @@ TimesOfDay: ; 14044
db -1, MORN_F
; 1404e
-Unknown_1404e: ; Unreferenced
- db 20, 2
- db 40, 0
- db 60, 1
- db -1, 0
+Unknown_1404e: ; unreferenced
+ db 20, NITE_F
+ db 40, MORN_F
+ db 60, DAY_F
+ db -1, MORN_F
; 14056
StageRTCTimeForSave: ; 14056
diff --git a/engine/save.asm b/engine/save.asm
index 6ee92bcee..69bbaee82 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -3,7 +3,7 @@ SaveMenu: ; 14a1a
farcall DisplaySaveInfoOnSave
call SpeechTextBox
call UpdateSprites
- farcall SaveMenu_LoadEDTile
+ farcall SaveMenu_CopyTilemapAtOnce
ld hl, Text_WouldYouLikeToSaveTheGame
call SaveTheGame_yesorno
jr nz, .refused
@@ -19,7 +19,7 @@ SaveMenu: ; 14a1a
.refused
call ExitMenu
call ret_d90
- farcall SaveMenu_LoadEDTile
+ farcall SaveMenu_CopyTilemapAtOnce
scf
ret
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index 383573c03..db5a2735f 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -471,10 +471,10 @@ Slots_LoadReelState: ; 929f6 (24:69f6)
Slot_CheckCoinCaseFull: ; 92a04 (24:6a04)
ld a, d
- cp 9999 / $100
+ cp MAX_COINS / $100
jr c, .not_full
ld a, e
- cp 9999 % $100
+ cp MAX_COINS % $100
jr c, .not_full
scf
ret
@@ -766,14 +766,15 @@ UpdateReelPositionAndOAM: ; 92b53 (24:6b53)
; 92bbe (24:6bbe)
+; unreferenced
Function92bbe: ; 92bbe
push hl
srl a
srl a
- add Unknown_92bce % $100
+ add .Unknown_92bce % $100
ld l, a
ld a, 0
- adc Unknown_92bce / $100
+ adc .Unknown_92bce / $100
ld h, a
ld a, [hl]
pop hl
@@ -781,7 +782,7 @@ Function92bbe: ; 92bbe
; 92bce
-Unknown_92bce: ; 92bce
+.Unknown_92bce: ; 92bce
db 0, 1, 2, 3, 4, 5
; 92bd4
diff --git a/engine/spawn_points.asm b/engine/spawn_points.asm
index b8637da17..daebb6159 100644
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -1,4 +1,3 @@
-
INCLUDE "data/maps/spawn_points.asm"
diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm
index 1f019c105..da02808b1 100755
--- a/engine/stats_screen.asm
+++ b/engine/stats_screen.asm
@@ -965,6 +965,7 @@ StatsScreen_LoadTextBoxSpaceGFX: ; 4e307 (13:6307)
ret
; 4e32a (13:632a)
+; unreferenced
Unknown_4e32a: ; 4e32a
; A blank tile?
ds 16
diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm
index b31f7a415..297725c60 100644
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -497,7 +497,7 @@ InitializeEventsScript:
setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
setevent EVENT_RIVAL_CHERRYGROVE_CITY
setevent EVENT_RIVAL_AZALEA_TOWN
- setevent EVENT_RIVAL_UNDERGROUND_PATH
+ setevent EVENT_RIVAL_GOLDENROD_UNDERGROUND
setevent EVENT_AZALEA_TOWN_SLOWPOKES
setevent EVENT_KURTS_HOUSE_SLOWPOKE
setevent EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
@@ -550,8 +550,8 @@ InitializeEventsScript:
setevent EVENT_ECRUTEAK_POKE_CENTER_BILL
setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
setevent EVENT_LAKE_OF_RAGE_LANCE
- setevent EVENT_WAREHOUSE_LAYOUT_1
- setevent EVENT_WAREHOUSE_BLOCKED_OFF
+ setevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_1
+ setevent EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_BLOCKED_OFF
setevent EVENT_DRAGONS_DEN_CLAIR
setevent EVENT_RIVAL_OLIVINE_CITY
setevent EVENT_RIVAL_VICTORY_ROAD
diff --git a/engine/unown_dex.asm b/engine/unown_dex.asm
index 6d14f8b3c..dc6db9dc6 100755
--- a/engine/unown_dex.asm
+++ b/engine/unown_dex.asm
@@ -48,4 +48,5 @@ PrintUnownWord: ; fba2e (3e:7a2e)
jr .loop
; fba5a (3e:7a5a)
+
INCLUDE "data/unown_words.asm"