summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordannye <corrnondacqb@yahoo.com>2016-07-16 11:11:50 -0500
committerdannye <corrnondacqb@yahoo.com>2016-07-16 11:11:50 -0500
commit707ba908f780d42e1f26af85bef0bf0eb478b877 (patch)
tree88fba78e2d9c590c4860a2e63eed00a2e29d4005
parentce3ec76762d9e2f0c560e2ea7868678418883143 (diff)
parent28de20b9f6e1db97ec69643a907f78562f90ec74 (diff)
Merge branch 'master' of https://github.com/pret/pokeyellow
-rw-r--r--INSTALL.md23
-rw-r--r--constants.asm2
-rwxr-xr-xdata/trainer_types.asm3
-rwxr-xr-xengine/cable_club.asm4
-rwxr-xr-xengine/hall_of_fame.asm2
-rw-r--r--home.asm69
-rw-r--r--home/audio.asm16
-rw-r--r--home/init.asm2
-rw-r--r--home/overworld.asm82
-rw-r--r--home/pic.asm4
-rw-r--r--home/serial.asm40
-rw-r--r--home/vblank.asm2
-rw-r--r--text/maps/celadon_dept_store_3f.asm2
-rw-r--r--text/maps/lance.asm2
-rw-r--r--text/maps/lorelei.asm1
-rw-r--r--text/maps/reds_house_1f.asm2
-rw-r--r--text/maps/route_22.asm2
-rw-r--r--text/maps/silph_co_11f.asm2
-rw-r--r--text/maps/underground_path_route_7_entrance_unused.asm3
-rw-r--r--text/maps/vermilion_dock.asm3
-rwxr-xr-xwram.asm6
21 files changed, 122 insertions, 150 deletions
diff --git a/INSTALL.md b/INSTALL.md
index 2b8419ab..3748db48 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,17 +1,15 @@
# Linux
- sudo apt-get install make gcc bison git python python-pip
- sudo pip install pypng
+ sudo apt-get install make gcc bison git python
git clone https://github.com/bentley/rgbds
- cd rgbds
- sudo make install
- cd ..
+ sudo make -C rgbds install
git clone --recursive https://github.com/pret/pokeyellow
cd pokeyellow
To build **pokeyellow.gbc**:
+
make
@@ -20,18 +18,13 @@ To build **pokeyellow.gbc**:
In **Terminal**, run:
xcode-select --install
- sudo easy_install pypng
git clone https://github.com/bentley/rgbds
- cd rgbds
- sudo make install
- cd ..
+ sudo make -C rgbds install
git clone --recursive https://github.com/pret/pokeyellow
cd pokeyellow
-Copy the ROM "Pokemon Yellow (U) [C][!].gbc" to the same directory as the disassembly under the name "baserom.gbc".
-
Then run (in the shell):
make
@@ -39,24 +32,18 @@ Then run (in the shell):
# Windows
-To build on Windows, use [**Cygwin**](http://cygwin.com/install.html). Use the default settings.
+To build on Windows, use [**Cygwin**](http://cygwin.com/install.html). Use the default settings in the installer.
In the installer, select the following packages: `make` `git` `python` `gettext`
Then get the most recent version of [**rgbds**](https://github.com/bentley/rgbds/releases/).
Extract the archive and put `rgbasm.exe`, `rgblink.exe` and `rgbfix.exe` in `C:\cygwin\usr\local\bin`.
-
In the **Cygwin terminal**:
- lynx -source bootstrap.pypa.io/get-pip.py | python
- pip install pypng
-
git clone --recursive https://github.com/pret/pokeyellow
cd pokeyellow
-Copy the ROM "Pokemon Yellow (U) [C][!].gbc" to the same directory as the disassembly under the name "baserom.gbc".
-
Then run (in the Cygwin terminal):
make
diff --git a/constants.asm b/constants.asm
index 554f89ca..cc636558 100644
--- a/constants.asm
+++ b/constants.asm
@@ -29,5 +29,5 @@ INCLUDE "constants/tilesets.asm"
INCLUDE "constants/starter_mons.asm"
INCLUDE "constants/event_constants.asm"
INCLUDE "constants/event_macros.asm"
-INCLUDE "constants/pikachu_emotion_constants.asm"
INCLUDE "constants/text_constants.asm"
+INCLUDE "constants/pikachu_emotion_constants.asm"
diff --git a/data/trainer_types.asm b/data/trainer_types.asm
index ef02c8a8..cc7ca605 100755
--- a/data/trainer_types.asm
+++ b/data/trainer_types.asm
@@ -14,5 +14,4 @@ EvilTrainerList::
db OPP_SCIENTIST
db OPP_GIOVANNI
db OPP_ROCKET
-
- db $ff
+ db $FF
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index d7b5bdc8..88f7b2f7 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -907,9 +907,9 @@ CableClub_Run:
call CableClub_DoBattleOrTrade
ld hl, Club_GFX
ld a, h
- ld [wTilesetGFXPtr + 1], a
+ ld [wTilesetGfxPtr + 1], a
ld a, l
- ld [wTilesetGFXPtr], a
+ ld [wTilesetGfxPtr], a
ld a, Bank(Club_GFX)
ld [wTilesetBank], a
ld hl, Club_Coll
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index 61ed65c8..f0749a06 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -58,7 +58,7 @@ AnimateHallOfFame:
ld c, 80
call DelayFrames
coord hl, 2, 13
- lb bc, $3, $e
+ lb bc, 3, 14
call TextBoxBorder
coord hl, 4, 15
ld de, HallOfFameText
diff --git a/home.asm b/home.asm
index a7ad4e5b..c1caab75 100644
--- a/home.asm
+++ b/home.asm
@@ -154,7 +154,7 @@ Start::
xor a
jr .ok
.gbc
- ld a, $1
+ ld a, 1
.ok
ld [hGBC], a
jp Init
@@ -300,7 +300,7 @@ DrawHPBar::
; OUTPUT:
; [wcf91] = pokemon ID
; wLoadedMon = base address of pokemon data
-; W_MONHDEXNUM = base address of base stats
+; wMonHeader = base address of base stats
LoadMonData::
jpab LoadMonData_
@@ -648,11 +648,11 @@ GetMonHeader::
predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number
ld a, [wd11e]
dec a
- ld bc, 28
+ ld bc, MonBaseStatsEnd - MonBaseStats
ld hl, BaseStats
call AddNTimes
ld de, wMonHeader
- ld bc, 28
+ ld bc, MonBaseStatsEnd - MonBaseStats
call CopyData
jr .done
.specialID
@@ -1064,21 +1064,20 @@ ResetPlayerSpriteData::
ResetPlayerSpriteData_ClearSpriteData::
ld bc, $10
xor a
- call FillMemory ; XXX why replaced with call + ret?
+ call FillMemory
ret
- ;jp FillMemory
FadeOutAudio::
ld a, [wAudioFadeOutControl]
- and a
- jr nz, .asm_27d3
+ and a ; currently fading out audio?
+ jr nz, .fadingOut
ld a, [wd72c]
bit 1, a
ret nz
ld a, $77
ld [rNR50], a
ret
-.asm_27d3
+.fadingOut
ld a, [wAudioFadeOutCounter]
and a
jr z, .counterReachedZero
@@ -1089,8 +1088,8 @@ FadeOutAudio::
ld a, [wAudioFadeOutCounterReloadValue]
ld [wAudioFadeOutCounter], a
ld a, [rNR50]
- and a
- jr z, .asm_27fa
+ and a ; has the volume reached 0?
+ jr z, .fadeOutComplete
ld b, a
and $f
dec a
@@ -1103,7 +1102,7 @@ FadeOutAudio::
or c
ld [rNR50], a
ret
-.asm_27fa
+.fadeOutComplete
ld a, [wAudioFadeOutControl]
ld b, a
xor a
@@ -1143,7 +1142,7 @@ DisplayTextID::
ld [wSpriteIndex], a
and a
jp z, DisplayStartMenu
- cp TEXT_PIKACHU_ANIM ; new yellow asm
+ cp TEXT_PIKACHU_ANIM
jp z, DisplayPikachuEmotion
cp TEXT_SAFARI_GAME_OVER
jp z, DisplaySafariGameOverText
@@ -1204,7 +1203,7 @@ DisplayTextID::
callba VendingMachineMenu ; jump banks to vending machine routine
jr AfterDisplayingTextID
.notVendingMachine
- cp $f7 ; slot machine
+ cp $f7 ; prize menu
jp z, FuncTX_GameCornerPrizeMenu
cp $f6 ; cable connection NPC in Pokemon Center
jr nz, .notSpecialCase
@@ -1269,7 +1268,7 @@ DisplayPokemartDialogue::
inc hl
call LoadItemList
ld a, PRICEDITEMLISTMENU
- ld [wListMenuID], a ; selects between subtypes of menus
+ ld [wListMenuID], a
homecall DisplayPokemartDialogue_
jp AfterDisplayingTextID
@@ -1393,9 +1392,9 @@ AddAmountSoldToMoney::
ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID ; redraw money text box
- ld a, $b2 ; SFX_PURCHASE
- call PlaySoundWaitForCurrent ; play sound
- jp WaitForSoundToFinish ; wait until sound is done playing
+ ld a, SFX_PURCHASE
+ call PlaySoundWaitForCurrent
+ jp WaitForSoundToFinish
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
@@ -1432,7 +1431,7 @@ DisplayListMenuID::
ld a, $01 ; hardcoded bank
jr .bankswitch
.specialBattleType ; Old Man battle
- ld a, $f ; BANK(DisplayBattleMenu)
+ ld a, BANK(DisplayBattleMenu)
.bankswitch
call BankswitchHome
ld hl, wd730
@@ -1793,7 +1792,7 @@ PrintListMenuEntries::
ld a, [wListMenuID]
and a
jr z, .pokemonPCMenu
- cp $01
+ cp MOVESLISTMENU
jr z, .movesMenu
.itemMenu
call GetItemName
@@ -1946,7 +1945,7 @@ GetMonName::
push hl
ld a, [H_LOADEDROMBANK]
push af
- ld a, BANK(MonsterNames) ; 3a
+ ld a, BANK(MonsterNames)
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
ld a, [wd11e]
@@ -2206,6 +2205,7 @@ IsKeyItem::
; function to draw various text boxes
; INPUT:
; [wTextBoxID] = text box ID
+; b, c = y, x cursor position (TWO_OPTION_MENU only)
DisplayTextBoxID::
homecall_sf DisplayTextBoxID_
ret
@@ -3209,12 +3209,13 @@ YesNoChoicePokeCenter::
lb bc, 8, 12
jr DisplayYesNoChoice
-Func_361d::
+WideYesNoChoice:: ; unused
call SaveScreenTilesToBuffer1
ld a, WIDE_YES_NO_MENU
ld [wTwoOptionMenuID], a
coord hl, 12, 7
lb bc, 8, 13
+
DisplayYesNoChoice::
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
@@ -3352,7 +3353,7 @@ SaveScreenTilesToBuffer2::
LoadScreenTilesFromBuffer2::
call LoadScreenTilesFromBuffer2DisableBGTransfer
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ret
@@ -3378,7 +3379,7 @@ LoadScreenTilesFromBuffer1::
coord de, 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyData
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ret
@@ -3515,9 +3516,9 @@ GetItemPrice::
ld a, [wListMenuID]
cp MOVESLISTMENU
ld a, BANK(ItemPrices)
- jr nz, .asm_37e0
+ jr nz, .ok
ld a, $f ; hardcoded Bank
-.asm_37e0
+.ok
call BankswitchCommon
ld hl, wItemPrices
ld a, [hli]
@@ -3527,10 +3528,10 @@ GetItemPrice::
cp HM_01
jr nc, .getTMPrice
ld bc, $3
-.asm_37f3
+.loop
add hl, bc
dec a
- jr nz, .asm_37f3
+ jr nz, .loop
dec hl
ld a, [hld]
ld [hItemPrice + 2], a
@@ -3538,10 +3539,10 @@ GetItemPrice::
ld [hItemPrice + 1], a
ld a, [hl]
ld [hItemPrice], a
- jr .asm_380b
+ jr .done
.getTMPrice
callbs GetMachinePrice
-.asm_380b
+.done
ld de, hItemPrice
pop af
call BankswitchCommon
@@ -3656,7 +3657,7 @@ ManualTextScroll::
jr z, .inLinkBattle
call WaitForTextScrollButtonPress
call WaitForSoundToFinish
- ld a, $90 ; SFX_PRESS_AB
+ ld a, SFX_PRESS_AB
jp PlaySound
.inLinkBattle
ld c, 65
@@ -4076,7 +4077,7 @@ HandleMenuInputPokemonSelection::
ld a, [wPartyMenuAnimMonEnabled]
and a ; is it a pokemon selection menu?
jr z, .getJoypadState
- callba AnimatePartyMon ; shake mini sprite of selected pokemon (1c:578c)
+ callba AnimatePartyMon ; shake mini sprite of selected pokemon
.getJoypadState
pop hl
call JoypadLowSensitivity
@@ -4156,8 +4157,8 @@ HandleMenuInputPokemonSelection::
bit 5, [hl]
pop hl
jr nz, .skipPlayingSound
- ld a, $90 ; SFX_PRESS_AB
- call PlaySound ; play sound
+ ld a, SFX_PRESS_AB
+ call PlaySound
.skipPlayingSound
pop af
ld [H_DOWNARROWBLINKCNT2], a
diff --git a/home/audio.asm b/home/audio.asm
index e360aab2..3cd2ffd0 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -17,6 +17,7 @@ PlayDefaultMusicFadeOutCurrent::
ld [wLastMusicSoundID], a
ld c, 8
ld d, c
+
PlayDefaultMusicCommon::
ld a, [wWalkBikeSurfState]
and a
@@ -35,7 +36,7 @@ PlayDefaultMusicCommon::
ld b, a
ld a, d
and a ; should current music be faded out first?
- ld a, $1f ; BANK(Music_BikeRiding)
+ ld a, BANK(Music_BikeRiding)
jr nz, .next2
; Only change the audio ROM bank if the current music isn't going to be faded
@@ -87,7 +88,7 @@ CheckForNoBikingMusicMap::
ret
UpdateMusic6Times::
- ld c, $6
+ ld c, 6
UpdateMusicCTimes::
.loop
push bc
@@ -165,16 +166,17 @@ PlaySound::
ld [wChannelSoundIDs + CH7], a
.next
ld a, [wAudioFadeOutControl]
- and a
+ and a ; has a fade-out length been specified?
jr z, .noFadeOut
ld a, [wNewSoundID]
- and a
- jr z, .done
+ and a ; is the new sound ID 0?
+ jr z, .done ; if so, do nothing
xor a
ld [wNewSoundID], a
ld a, [wLastMusicSoundID]
- cp $ff
- jr nz, .fadeOut
+ cp $ff ; has the music been stopped?
+ jr nz, .fadeOut ; if not, fade out the current music
+; If it has been stopped, start playing the new music immediately.
xor a
ld [wAudioFadeOutControl], a
.noFadeOut
diff --git a/home/init.asm b/home/init.asm
index cd073279..da354aa6 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -3,6 +3,8 @@ SoftReset::
call GBPalWhiteOut
ld c, 32
call DelayFrames
+ ; fallthrough
+
Init::
; Program init.
diff --git a/home/overworld.asm b/home/overworld.asm
index 9989891b..382f90f9 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -70,7 +70,6 @@ OverworldLoopLessDelay::
jr z, .notSimulating
ld a, [hJoyHeld]
jr .checkIfStartIsPressed
-
.notSimulating
ld a, [hJoyPressed]
.checkIfStartIsPressed
@@ -80,7 +79,6 @@ OverworldLoopLessDelay::
xor a
ld [hSpriteIndexOrTextID], a ; start menu text ID
jp .displayDialogue
-
.startButtonNotPressed
bit 0, a ; A button
jp z, .checkIfDownButtonIsPressed
@@ -118,15 +116,6 @@ OverworldLoopLessDelay::
xor a
ld [wLinkTimeoutCounter], a
jp EnterMap
-
-; predef LoadSAV
-; ld a, [wCurMap]
-; ld [wDestinationMap], a
-; call SpecialWarpIn
-; ld a, [wCurMap]
-; call SwitchToMapRomBank ; switch to the ROM bank of the current map
-; ld hl, wCurMapTileset
-; set 7, [hl]
.checkForOpponent
ld a, [wCurOpponent]
and a
@@ -139,7 +128,7 @@ OverworldLoopLessDelay::
res 2, [hl]
xor a
ld [wd435], a
- ld a, $1
+ ld a, 1
ld [wCheckFor180DegreeTurn], a
ld a, [wPlayerMovingDirection] ; the direction that was pressed last time
and a
@@ -179,9 +168,10 @@ OverworldLoopLessDelay::
.checkIfRightButtonIsPressed
bit 4, a ; right button
jr z, .noDirectionButtonsPressed
- ld a, $1
- ld [wSpriteStateData1 + 5], a
- ld a, $1
+ ld a, 1
+ ld [wSpriteStateData1 + 5], a ; delta X
+ ld a, 1
+
.handleDirectionButtonPress
ld [wPlayerDirection], a ; new direction
ld a, [wd730]
@@ -234,6 +224,7 @@ OverworldLoopLessDelay::
.surfing
call CollisionCheckOnWater
jp c, OverworldLoop
+
.noCollision
ld a, $08
ld [wWalkCounter], a
@@ -242,7 +233,8 @@ OverworldLoopLessDelay::
.moveAhead
call IsSpinning
- call UpdateSprites ; move sprites
+ call UpdateSprites
+
.moveAhead2
ld hl, wFlags_0xcd60
res 2, [hl]
@@ -343,6 +335,7 @@ NewBattle::
and a
ret
+; function to make bikes twice as fast as walking
DoBikeSpeedup::
ld a, [wWalkBikeSurfState]
dec a ; riding a bike?
@@ -354,7 +347,7 @@ DoBikeSpeedup::
and a
ret nz
ld a, [wCurMap]
- cp ROUTE_17 ; cycling road
+ cp ROUTE_17 ; Cycling Road
jr nz, .goFaster
ld a, [hJoyHeld]
and D_UP | D_LEFT | D_RIGHT
@@ -444,7 +437,6 @@ CheckWarpsCollision::
ld a, [hl]
ld [hWarpDestinationMap], a
jr WarpFound2
-
.retry1
inc hl
.retry2
@@ -502,7 +494,6 @@ WarpFound2::
ld hl, wd732
set 3, [hl]
jr .skipMapChangeSound
-
.notWarpPad
call PlayMapChangeSound
.skipMapChangeSound
@@ -653,14 +644,13 @@ CheckMapConnections::
ld [wCurrentTileBlockMapViewPointer], a ; pointer to upper left corner of current tile block map section
ld a, h
ld [wCurrentTileBlockMapViewPointer + 1], a
-.loadNewMap
-; load the connected map that was entered
+.loadNewMap ; load the connected map that was entered
ld hl, wPikachuOverworldStateFlags
set 4, [hl]
ld a, $2
ld [wPikachuSpawnState], a
call LoadMapHeader
- call PlayDefaultMusicFadeOutCurrent ; music
+ call PlayDefaultMusicFadeOutCurrent
ld b, SET_PAL_OVERWORLD
call RunPaletteCommand
; Since the sprite set shouldn't change, this will just update VRAM slots at
@@ -680,13 +670,12 @@ PlayMapChangeSound::
cp CEMETERY
jr z, .didNotGoThroughDoor
aCoord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on
- cp UNDERGROUND ; door tile in tileset 0
+ cp $0b ; door tile in tileset 0
jr nz, .didNotGoThroughDoor
- ld a, $ad ; SFX_GO_INSIDE
+ ld a, SFX_GO_INSIDE
jr .playSound
-
.didNotGoThroughDoor
- ld a, $b5 ; SFX_GO_OUTSIDE
+ ld a, SFX_GO_OUTSIDE
.playSound
call PlaySound
ld a, [wMapPalOffset]
@@ -732,7 +721,6 @@ ExtraWarpCheck::
.useFunction1
ld hl, IsPlayerFacingEdgeOfMap
jr .doBankswitch
-
.useFunction2
ld hl, IsWarpTileInFrontOfPlayer
.doBankswitch
@@ -869,9 +857,9 @@ INCLUDE "data/bike_riding_tilesets.asm"
; load the tile pattern data of the current tileset into VRAM
LoadTilesetTilePatternData::
- ld a, [wTilesetGFXPtr]
+ ld a, [wTilesetGfxPtr]
ld l, a
- ld a, [wTilesetGFXPtr + 1]
+ ld a, [wTilesetGfxPtr + 1]
ld h, a
ld de, vTileset
ld bc, $600
@@ -1078,7 +1066,7 @@ IsSpriteOrSignInFrontOfPlayer::
.extendRangeOverCounter
; check if the player is front of a counter in a pokemon center, pokemart, etc. and if so, extend the range at which he can talk to the NPC
predef GetTileAndCoordsInFrontOfPlayer ; get the tile in front of the player in c
- ld hl, wTileSetTalkingOverTiles ; list of tiles that extend talking range (counter tiles)
+ ld hl, wTilesetTalkingOverTiles ; list of tiles that extend talking range (counter tiles)
ld b, 3
ld d, $20 ; talking range in pixels (long range)
.counterTilesLoop
@@ -1267,14 +1255,13 @@ CollisionCheckOnLand::
jr nc, .noCollision
.collision
ld a, [wChannelSoundIDs + CH4]
- cp $b4 ; SFX_COLLISION ; check if collision sound is already playing
+ cp SFX_COLLISION ; check if collision sound is already playing
jr z, .setCarry
- ld a, $b4 ; SFX_COLLISION
+ ld a, SFX_COLLISION
call PlaySound ; play collision sound (if it's not already playing)
.setCarry
scf
ret
-
.noCollision
and a
ret
@@ -1297,8 +1284,7 @@ CheckForJumpingAndTilePairCollisions::
predef GetTileAndCoordsInFrontOfPlayer ; get the tile in front of the player
push de
push bc
- callba HandleLedges
- ; check if the player is trying to jump a ledge
+ callba HandleLedges ; check if the player is trying to jump a ledge
pop bc
pop de
pop hl
@@ -1327,7 +1313,6 @@ CheckForTilePairCollisions::
.retry
inc hl
jr .tilePairCollisionLoop
-
.tilesetMatches
ld a, [wTilePlayerStandingOn] ; tile the player is on
ld b, a
@@ -1339,14 +1324,12 @@ CheckForTilePairCollisions::
cp b
jr z, .currentTileMatchesSecondInPair
jr .retry
-
.currentTileMatchesFirstInPair
inc hl
ld a, [hl]
cp c
jr z, .foundMatch
jr .tilePairCollisionLoop
-
.currentTileMatchesSecondInPair
dec hl
ld a, [hli]
@@ -1356,7 +1339,6 @@ CheckForTilePairCollisions::
.foundMatch
scf
ret
-
.noMatch
and a
ret
@@ -1584,9 +1566,9 @@ ScheduleWestColumnRedraw::
; Input: c = tile block ID, hl = destination address
DrawTileBlock::
push hl
- ld a, [wTileSetBlocksPtr] ; pointer to tiles
+ ld a, [wTilesetBlocksPtr] ; pointer to tiles
ld l, a
- ld a, [wTileSetBlocksPtr + 1]
+ ld a, [wTilesetBlocksPtr + 1]
ld h, a
ld a, c
swap a
@@ -1705,13 +1687,7 @@ GetSimulatedInput::
; function to check the tile ahead to determine if the character should get on land or keep surfing
; sets carry if there is a collision and clears carry otherwise
-; It seems that this function has a bug in it, but due to luck, it doesn't
-; show up. After detecting a sprite collision, it jumps to the code that
-; checks if the next tile is passable instead of just directly jumping to the
-; "collision detected" code. However, it doesn't store the next tile in c,
-; so the old value of c is used. 2429 is always called before this function,
-; and 2429 always sets c to 0xF0. There is no 0xF0 background tile, so it
-; is considered impassable and it is detected as a collision.
+; This function had a bug in Red/Blue, but it was fixed in Yellow.
CollisionCheckOnWater::
ld a, [wd730]
bit 7, a
@@ -1720,7 +1696,7 @@ CollisionCheckOnWater::
ld d, a
ld a, [wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code)
and d ; check if a sprite is in the direction the player is trying to go
- jr nz, .collision ; bug?
+ jr nz, .collision
ld hl, TilePairCollisionsWater
call CheckForJumpingAndTilePairCollisions
jr c, .collision
@@ -1733,9 +1709,9 @@ CollisionCheckOnWater::
jr nc, .stopSurfing
.collision
ld a, [wChannelSoundIDs + CH4]
- cp $b4 ; SFX_COLLISION
+ cp SFX_COLLISION ; check if collision sound is already playing
jr z, .setCarry
- ld a, $b4 ; SFX_COLLISION
+ ld a, SFX_COLLISION
call PlaySound ; play collision sound (if it's not already playing)
.setCarry
scf
@@ -1815,7 +1791,7 @@ LoadSurfingPlayerSpriteGraphics2::
jr LoadPlayerSpriteGraphicsCommon
LoadSurfingPlayerSpriteGraphics::
- ld b, BANK(RedSprite) ; not sure, but probably same bank (5)
+ ld b, BANK(SeelSprite)
ld de, SeelSprite
jr LoadPlayerSpriteGraphicsCommon
@@ -2150,7 +2126,7 @@ IgnoreInputForHalfSecond:
ld [wIgnoreInputCounter], a
ld hl, wd730
ld a, [hl]
- or %00100110 ; $26
+ or %00100110
ld [hl], a ; set ignore input bit
ret
diff --git a/home/pic.asm b/home/pic.asm
index 61a8001c..353d0f58 100644
--- a/home/pic.asm
+++ b/home/pic.asm
@@ -528,9 +528,9 @@ ReverseNybble::
ld de, NybbleReverseTable
add e
ld e, a
- jr nc, .asm_2735
+ jr nc, .noCarry
inc d
-.asm_2735
+.noCarry
ld a, [de]
ret
diff --git a/home/serial.asm b/home/serial.asm
index 6f3c72ff..5fe7fb81 100644
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -94,79 +94,79 @@ Serial_ExchangeByte::
ld [hSerialReceivedNewData], a
ld a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
- jr nz, .asm_2003
+ jr nz, .loop
ld a, START_TRANSFER_INTERNAL_CLOCK
ld [rSC], a
-.asm_2003
+.loop
ld a, [hSerialReceivedNewData]
and a
- jr nz, .asm_204d
+ jr nz, .ok
ld a, [hSerialConnectionStatus]
cp USING_EXTERNAL_CLOCK
- jr nz, .asm_2028
+ jr nz, .doNotIncrementUnknownCounter
call IsUnknownCounterZero
- jr z, .asm_2028
+ jr z, .doNotIncrementUnknownCounter
call WaitLoop_15Iterations
push hl
ld hl, wUnknownSerialCounter + 1
inc [hl]
- jr nz, .asm_201f
+ jr nz, .noCarry
dec hl
inc [hl]
-.asm_201f
+.noCarry
pop hl
call IsUnknownCounterZero
- jr nz, .asm_2003
+ jr nz, .loop
jp SetUnknownCounterToFFFF
-.asm_2028
+.doNotIncrementUnknownCounter
ld a, [rIE]
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
cp (1 << SERIAL)
- jr nz, .asm_2003
+ jr nz, .loop
ld a, [wUnknownSerialCounter2]
dec a
ld [wUnknownSerialCounter2], a
- jr nz, .asm_2003
+ jr nz, .loop
ld a, [wUnknownSerialCounter2 + 1]
dec a
ld [wUnknownSerialCounter2 + 1], a
- jr nz, .asm_2003
+ jr nz, .loop
ld a, [hSerialConnectionStatus]
cp USING_EXTERNAL_CLOCK
- jr z, .asm_204d
+ jr z, .ok
ld a, 255
.waitLoop
dec a
jr nz, .waitLoop
-.asm_204d
+.ok
xor a
ld [hSerialReceivedNewData], a
ld a, [rIE]
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
sub (1 << SERIAL)
- jr nz, .asm_2060
+ jr nz, .skipReloadingUnknownCounter2
ld [wUnknownSerialCounter2], a
ld a, $50
ld [wUnknownSerialCounter2 + 1], a
-.asm_2060
+.skipReloadingUnknownCounter2
ld a, [hSerialReceiveData]
cp SERIAL_NO_DATA_BYTE
ret nz
call IsUnknownCounterZero
- jr z, .asm_207b
+ jr z, .done
push hl
ld hl, wUnknownSerialCounter + 1
ld a, [hl]
dec a
ld [hld], a
inc a
- jr nz, .asm_2075
+ jr nz, .noBorrow
dec [hl]
-.asm_2075
+.noBorrow
pop hl
call IsUnknownCounterZero
jr z, SetUnknownCounterToFFFF
-.asm_207b
+.done
ld a, [rIE]
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
cp (1 << SERIAL)
diff --git a/home/vblank.asm b/home/vblank.asm
index 9cc8d42f..764e5277 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -55,8 +55,8 @@ VBlank::
jr z, .skipDec
dec a
ld [H_FRAMECOUNTER], a
-.skipDec
+.skipDec
call FadeOutAudio
callbs Music_DoLowHealthAlarm
diff --git a/text/maps/celadon_dept_store_3f.asm b/text/maps/celadon_dept_store_3f.asm
index 4006a3bb..7de4a826 100644
--- a/text/maps/celadon_dept_store_3f.asm
+++ b/text/maps/celadon_dept_store_3f.asm
@@ -80,7 +80,7 @@ _TM18PreReceiveText::
prompt
_ReceivedTM18Text::
- text $52, " received"
+ text "<PLAYER> received"
line "@"
TX_RAM wcf4b
text "!@@"
diff --git a/text/maps/lance.asm b/text/maps/lance.asm
index 9c7bd677..22cc0dcd 100644
--- a/text/maps/lance.asm
+++ b/text/maps/lance.asm
@@ -1,6 +1,6 @@
_LanceBeforeBattleText::
text "Ah! I heard about"
- line "you, ", $52, "!"
+ line "you, <PLAYER>!"
para "I lead the ELITE"
line "FOUR! You can"
diff --git a/text/maps/lorelei.asm b/text/maps/lorelei.asm
index 666aa47f..fdbb55b4 100644
--- a/text/maps/lorelei.asm
+++ b/text/maps/lorelei.asm
@@ -30,6 +30,7 @@ _LoreleiAfterBattleText::
text "You're better"
line "than I thought!"
cont "Go on ahead!"
+
para "You only got a"
line "taste of #MON"
cont "LEAGUE power!"
diff --git a/text/maps/reds_house_1f.asm b/text/maps/reds_house_1f.asm
index e93450da..633075bb 100644
--- a/text/maps/reds_house_1f.asm
+++ b/text/maps/reds_house_1f.asm
@@ -10,7 +10,7 @@ _MomWakeUpText::
done
_MomHealText1::
- text "MOM: ",$52,", if"
+ text "MOM: <PLAYER>, if"
line "you drive your"
cont "#MON too hard,"
cont "they'll dislike"
diff --git a/text/maps/route_22.asm b/text/maps/route_22.asm
index 52d1a4c7..342d5015 100644
--- a/text/maps/route_22.asm
+++ b/text/maps/route_22.asm
@@ -78,7 +78,7 @@ _Route22RivalBeforeBattleText2::
cont "That's cool!"
para "Then I'll whip"
- line "you, ", $52, ", as"
+ line "you, <PLAYER>, as"
cont "a warmup for"
cont "#MON LEAGUE!"
diff --git a/text/maps/silph_co_11f.asm b/text/maps/silph_co_11f.asm
index 6be83c5d..2fb84f17 100644
--- a/text/maps/silph_co_11f.asm
+++ b/text/maps/silph_co_11f.asm
@@ -58,7 +58,7 @@ _SilphCo11Text2::
done
_SilphCo11Text3::
- text "Ah, ", $52, "!"
+ text "Ah, <PLAYER>!"
line "So we meet again!"
para "The PRESIDENT and"
diff --git a/text/maps/underground_path_route_7_entrance_unused.asm b/text/maps/underground_path_route_7_entrance_unused.asm
index 02c95a5c..4e0dc3ca 100644
--- a/text/maps/underground_path_route_7_entrance_unused.asm
+++ b/text/maps/underground_path_route_7_entrance_unused.asm
@@ -17,14 +17,17 @@ _UGPathRoute7EntranceUnusedText_5d778::
_UGPathRoute7EntranceUnusedText_5d77d::
text "You're here to"
line "shop in CELADON?"
+
para "Just step outside"
line "and head west!"
done
+
_UGPathRoute7EntranceUnusedText_5d782::
text "The UNDERGROUND"
line "PATH goes beneath"
cont "SAFFRON and leads"
cont "to LAVENDER."
+
para "If you're heading"
line "to CERULEAN, go"
cont "to the building"
diff --git a/text/maps/vermilion_dock.asm b/text/maps/vermilion_dock.asm
index 034de399..5d998e82 100644
--- a/text/maps/vermilion_dock.asm
+++ b/text/maps/vermilion_dock.asm
@@ -1,2 +1,3 @@
_VermilionDockText1::
- db $0, $57
+ text ""
+ done
diff --git a/wram.asm b/wram.asm
index db658ec9..0d6c3251 100755
--- a/wram.asm
+++ b/wram.asm
@@ -2981,18 +2981,18 @@ wPlayerDirection:: ; d529
wTilesetBank:: ; d52a
ds 1
-wTileSetBlocksPtr:: ; d52b
+wTilesetBlocksPtr:: ; d52b
; maps blocks (4x4 tiles) to tiles
ds 2
-wTilesetGFXPtr:: ; d52d
+wTilesetGfxPtr:: ; d52d
ds 2
wTilesetCollisionPtr:: ; d52f
; list of all walkable tiles
ds 2
-wTileSetTalkingOverTiles:: ; d531
+wTilesetTalkingOverTiles:: ; d531
ds 3
wGrassTile:: ; d534