diff --git a/README.md b/README.md index f00a9764..b42fa59a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ QoL Enhancements Bug Fixes ==== -May non-multiplayer, non-battle related bugs have been fixed. The aforementioned have been preserved for the RBY battle experience. Bugs that are fixed are ones that objectively hurt the gameplay experience. +May non-multiplayer, non-battle related bugs have been fixed. The aforementioned have been preserved for the RBY battle experience. Bugs that are fixed are ones that objectively hurt the gameplay experience. Much of this can be attributed to [the tutorials](https://github.com/pret/pokered/wiki/Bugs-and-Glitches) made by the good people at pret. - Blaine is no longer addicted to Super Potions. - CoolTrainerF no longer switches a lot. - Transformed Pokemon aren't presumed to be Dittos! (very important given Animon) @@ -20,7 +20,7 @@ May non-multiplayer, non-battle related bugs have been fixed. The aforementioned - The Item Finder will correctly find items at X/Y 0.0 - Glitch Pokémon will no longer corrupt the Hall of Fame. - Strength smoke puffs now show properly. -- Game Corner slots no longer load too many tiles; the lucky machine stops when it should if there's a 7, few other objective issues. Also, the 40-coin hidden item is fixed. +- Game Corner slots no longer load too many tiles; the lucky machine stops when it should if there's a 7, few other objective issues. Also, the 40-coin hidden item is fixed, and there can always be a lucky machine. - 2 invisible stars that show on the title screen are cut off; also, the "presents" logo from RG is re-used! - The healing machine animates correctly! - Using Minimize or Substitute, looking at the Pokedex, and then battling won't cause sprite corruption. @@ -28,6 +28,12 @@ May non-multiplayer, non-battle related bugs have been fixed. The aforementioned - Trainer Card transition no longer shows weird garbage on DMGs; this was due to not having enough time to load properly. - Battle victory music plays at the right time; there were some situations where it would happen when you lost. - Music in Oak's Lab is delayed a frame so it always plays with the correct channels; V-Blank could otherwise interrupt it. +- The hidden item sfx no longer gets cut off sometimes +- The audio engine no longer borrows from the high bytes of the wrong frequency. +- Oak no longer has his line overwrite itself when giving Poke Balls. +- Player correctly faces the Route 8 guard when stopped. +- Weird behaviour when going to 11F in Silph Co. and forcing a player to leave despite not moving is fixed. +- Fixed weirdness in Pokemon Tower where saving Mr. Fuji won't immediately let you leave. Also fixed coord termination on 2F which could cause some terribleness. and more! Credits diff --git a/audio/engine_1.asm b/audio/engine_1.asm index 8b30fb1a..a69e4418 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -1190,13 +1190,13 @@ Audio1_InitPitchSlideVars: ; This means that the result will be 0x200 greater than it should be if the ; low byte of the current frequency is greater than the low byte of the ; target frequency. - ld a, d - sbc b - ld d, a - +; kep fixes this - PvK + push af ld hl, wChannelPitchSlideTargetFrequencyHighBytes add hl, bc + pop af ld a, [hl] + sbc b sub d ld d, a ld b, 0 diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 8783c4c6..b1736db1 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -1253,13 +1253,13 @@ Audio2_InitPitchSlideVars: ; This means that the result will be 0x200 greater than it should be if the ; low byte of the current frequency is greater than the low byte of the ; target frequency. - ld a, d - sbc b - ld d, a - +; kep fixes this - PvK + push af ld hl, wChannelPitchSlideTargetFrequencyHighBytes add hl, bc + pop af ld a, [hl] + sbc b sub d ld d, a ld b, 0 diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 404e6e7c..9babe62b 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -1190,13 +1190,13 @@ Audio3_InitPitchSlideVars: ; This means that the result will be 0x200 greater than it should be if the ; low byte of the current frequency is greater than the low byte of the ; target frequency. - ld a, d - sbc b - ld d, a - +; kep fixes this - PvK + push af ld hl, wChannelPitchSlideTargetFrequencyHighBytes add hl, bc + pop af ld a, [hl] + sbc b sub d ld d, a ld b, 0 diff --git a/data/tilesets/door_tile_ids.asm b/data/tilesets/door_tile_ids.asm index 4b4a65ed..a49c2ff7 100644 --- a/data/tilesets/door_tile_ids.asm +++ b/data/tilesets/door_tile_ids.asm @@ -12,6 +12,7 @@ DoorTileIDPointers: dbw LAB, .LabDoorTileIDs dbw FACILITY, .FacilityDoorTileIDs dbw PLATEAU, .PlateauDoorTileIDs + dbw INTERIOR, .InteriorDoorTileIDs ; fixes weirdness in silph co. db -1 ; end MACRO door_tiles @@ -53,3 +54,6 @@ ENDM .PlateauDoorTileIDs: door_tiles $3b, $1b + +.InteriorDoorTileIDs: + door_tiles $04, $15 \ No newline at end of file diff --git a/engine/events/hidden_items.asm b/engine/events/hidden_items.asm index 40472f9d..635e6682 100644 --- a/engine/events/hidden_items.asm +++ b/engine/events/hidden_items.asm @@ -33,9 +33,15 @@ FoundHiddenItemText:: ld c, a ld b, FLAG_SET predef FlagActionPredef + ld a, [wAudioFadeOutControl] ; this stops it from getting cut off - PvK + push af + xor a + ld [wAudioFadeOutControl], a ld a, SFX_GET_ITEM_2 call PlaySoundWaitForCurrent call WaitForSoundToFinish + pop af + ld [wAudioFadeOutControl], a jp TextScriptEnd .bagFull call WaitForTextScrollButtonPress ; wait for button press diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm index 04c8504e..47de3d9c 100644 --- a/scripts/GameCorner.asm +++ b/scripts/GameCorner.asm @@ -15,7 +15,7 @@ CeladonGameCornerScript_48bcf: ldh a, [hRandomAdd] cp $7 jr nc, .asm_48be2 - ld a, $8 + ld a, $7 ; no longer makes the lucky machine a nonexistent one .asm_48be2 srl a srl a diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm index be3b5b89..73799e68 100644 --- a/scripts/PokemonTower2F.asm +++ b/scripts/PokemonTower2F.asm @@ -60,7 +60,7 @@ ENDC CoordsData_6055e: dbmapcoord 15, 5 dbmapcoord 14, 6 - db $0F ; end? (should be $ff?) + db -1 ; fixes coord termination which can have adverse effects PokemonTower2Script1: ld a, [wIsInBattle] diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm index 5ed5aabd..dc4ee36c 100644 --- a/scripts/PokemonTower7F.asm +++ b/scripts/PokemonTower7F.asm @@ -77,6 +77,8 @@ PokemonTower7Script4: ld [wDestinationWarpID], a ld a, LAVENDER_TOWN ld [wLastMap], a + ld hl, wd736 + set 2, [hl] ; fixes some weirdness when saving fuji - PvK ld hl, wd72d set 3, [hl] ld a, $0 diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm index 3167cd76..359a3257 100644 --- a/scripts/Route8Gate.asm +++ b/scripts/Route8Gate.asm @@ -27,7 +27,7 @@ Route8GateScript0: ld hl, CoordsData_1e22c call ArePlayerCoordsInArray ret nc - ld a, PLAYER_DIR_LEFT + ld a, PLAYER_DIR_UP ; fix - PvK ld [wPlayerMovingDirection], a xor a ldh [hJoyHeld], a diff --git a/text/OaksLab.asm b/text/OaksLab.asm index 74804841..5f52251e 100644 --- a/text/OaksLab.asm +++ b/text/OaksLab.asm @@ -137,7 +137,7 @@ _OaksLabGivePokeballsText2:: para "Just throw a #" line "BALL at it and try" - line "to catch it!" + cont "to catch it!" ; this prevents the text overwriting weirdness para "This won't always" line "work, though."