lots of bug fixes

added a log for them in the readme
This commit is contained in:
May Evans 2022-08-31 15:18:16 +01:00
parent 7c6bbb630f
commit 648289d4a9
12 changed files with 61 additions and 19 deletions

View file

@ -2,6 +2,30 @@ Kanto Expansion Pak
===================
This is a ROM Hack of Pokémon Red and Blue, aiming to expand the dex with
QoL Enhancements
====
- PC added to Celadon Hotel where the event usually is. Why not?
- Artificial Save Delay has been removed.
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.
- 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)
- Status curing items don't remove modifiers anymore.
- Learning new moves plays the sound in the correct bank.
- Falling through a hole on a bike now properly resets the music, as you fall off a bike when going down.
- Using an Escape Rope no longer shows weird characters on DMG and spins correctly on DMG.
- 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.
- 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.
and more!
Credits
====
* Plague von Karma - Creator of the Showdown Mod, Developer
@ -11,11 +35,11 @@ Credits
* Paulluxx - Showdown Mod assistance
* DuoM2 - Showdown Mod assistance
* Albatross - Much of the new sprites used in the hack
* ZumiIsawhat? - Restorations of beta OST
* Helix Chamber, RacieBeep, et al - Prototype Pokémon sprites
* pret et al - Pokémon Red and Blue Disassembly Project
* pret et al - Pokémon Red and Blue Disassembly Project, many tutorials helped us!
Original README.md proceeding;
====
# Pokémon Red and Blue [![Build Status][ci-badge]][ci]
This is a disassembly of Pokémon Red and Blue.

View file

@ -1339,8 +1339,7 @@ AdjustOAMBlockYPos2:
add b
cp 112
jr c, .skipSettingPreviousEntrysAttribute
dec hl
ld a, 160 ; bug, sets previous OAM entry's attribute
ld a, 160 ; fixes the smoke puff bug - PvK
ld [hli], a
.skipSettingPreviousEntrysAttribute
ld [hl], a

View file

@ -2375,6 +2375,8 @@ PartyMenuOrRockOrRun:
predef StatusScreen
predef StatusScreen2
; now we need to reload the enemy mon pic
ld a, 1
ldh [hWhoseTurn], a
ld a, [wEnemyBattleStatus2]
bit HAS_SUBSTITUTE_UP, a ; does the enemy mon have a substitute?
ld hl, AnimationSubstitute

View file

@ -77,7 +77,7 @@ HiddenCoins:
cp 20
jr z, .bcd20
cp 40
jr z, .bcd20 ; should be bcd40
jr z, .bcd40 ; fixes the 40 coin stash thing - PvK
jr .bcd100
.bcd10
ld a, $10
@ -87,7 +87,7 @@ HiddenCoins:
ld a, $20
ldh [hCoins + 1], a
jr .bcdDone
.bcd40 ; due to a typo, this is never used
.bcd40
ld a, $40
ldh [hCoins + 1], a
jr .bcdDone

View file

@ -27,7 +27,9 @@ HiddenItemNear:
ld a, [wYCoord]
call Sub5ClampTo0
cp d
jr z, .y_zflag ; starts to fix the y/x coord 0 no find bug - PvK
jr nc, .loop
y_zflag
ld a, [wYCoord]
add 4
cp d
@ -35,7 +37,9 @@ HiddenItemNear:
ld a, [wXCoord]
call Sub5ClampTo0
cp e
jr z, .x_zflag
jr nc, .loop
.x_zflag
ld a, [wXCoord]
add 5
cp e
@ -45,7 +49,7 @@ HiddenItemNear:
Sub5ClampTo0:
; subtract 5 but clamp to 0
sub 5
sub 4
cp $f0
ret c
xor a

View file

@ -326,9 +326,7 @@ DisplayNamingScreen:
LoadEDTile:
ld de, ED_Tile
ld hl, vFont tile $70
ld bc, (ED_TileEnd - ED_Tile) / $8
; to fix the graphical bug on poor emulators
;lb bc, BANK(ED_Tile), (ED_TileEnd - ED_Tile) / $8
lb bc, BANK(ED_Tile), (ED_TileEnd - ED_Tile) / $8 ; bad emulators work fine w/ this
jp CopyVideoDataDouble
ED_Tile:

View file

@ -124,7 +124,7 @@ AnimateShootingStar:
ld a, [wMoveDownSmallStarsOAMCount]
cp 24
jr z, .next2
add 6 ; should be 4, but the extra 2 aren't visible on screen
add 4 ; fixes the invisible extra 2 stars that can take up ram
ld [wMoveDownSmallStarsOAMCount], a
.next2
call MoveDownSmallStars

View file

@ -1,7 +1,7 @@
AnimateHealingMachine:
ld de, PokeCenterFlashingMonitorAndHealBall
ld hl, vChars0 tile $7c
lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), 3 ; should be 2
lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), 2 ; fixed from 3 - PvK
call CopyVideoData
ld hl, wUpdateSpritesEnabled
ld a, [hl]

View file

@ -88,6 +88,7 @@ PlayerSpinWhileMovingDown:
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
call GetPlayerTeleportAnimFrameDelay
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
ld hl, wFacingDirectionList ; this fixes the jp characters on dmg/sgb - PvK
jp PlayerSpinWhileMovingUpOrDown
_LeaveMapAnim::
@ -108,6 +109,7 @@ _LeaveMapAnim::
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
call GetPlayerTeleportAnimFrameDelay
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
ld hl, wFacingDirectionList ; this fixes the thing too - PvK
call PlayerSpinWhileMovingUpOrDown
call IsPlayerStandingOnWarpPadOrHole
ld a, b
@ -202,6 +204,9 @@ FlyAnimationScreenCoords2:
db $F0, $00
LeaveMapThroughHoleAnim:
ld a, [wLastMusicSoundID]
cp MUSIC_BIKE_RIDING
call z, PlayDefaultMusic ; this fixes the bike music persisting - PvK
ld a, $ff
ld [wUpdateSpritesEnabled], a ; disable UpdateSprites
; shift upper half of player's sprite down 8 pixels and hide lower half

View file

@ -304,7 +304,7 @@ SlotMachine_StopWheel1Early:
.loop
ld a, [hli]
cp HIGH(SLOTS7)
jr c, .stopWheel ; condition never true
jr z, .stopWheel ; now works properly - PvK
dec c
jr nz, .loop
ret
@ -329,9 +329,13 @@ SlotMachine_StopWheel2Early:
; player's odds.
.sevenAndBarMode
call SlotMachine_FindWheel1Wheel2Matches
ret nz
ld a, [de]
cp HIGH(SLOTSBAR) + 1
ret nc
jr c, .stopWheel
ld a, [wSlotMachineFlags]
bit 6, a
ret z
.stopWheel
xor a
ld [wSlotMachineWheel2SlipCounter], a
@ -850,7 +854,7 @@ LoadSlotMachineTiles:
call DisableLCD
ld hl, SlotMachineTiles2
ld de, vChars0
ld bc, $1c tiles ; should be SlotMachineTiles2End - SlotMachineTiles2, or $18 tiles
ld bc, SlotMachineTiles2End - SlotMachineTiles2 ; fixes loading too many tiles - PvK
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineTiles1
@ -860,7 +864,7 @@ LoadSlotMachineTiles:
call FarCopyData2
ld hl, SlotMachineTiles2
ld de, vChars2 tile $25
ld bc, $1c tiles ; should be SlotMachineTiles2End - SlotMachineTiles2, or $18 tiles
ld bc, SlotMachineTiles2End - SlotMachineTiles2
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineMap

View file

@ -34,14 +34,20 @@ _UncompressSpriteData::
ld [wSpriteLoadFlags], a
call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
ld b, a
and $f
and $7 ; this stops the hall of fame from being corrupted by missingno. - PvK
jr nz, .skip1
inc a
.skip1
add a
add a
add a
ld [wSpriteHeight], a
ld a, b
swap a
and $f
and $7
jr nz, .skip2
inc a
.skip2
add a
add a
add a

View file

@ -1,2 +1,2 @@

#