mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-12-05 19:10:07 +13:00
lots of bug fixes
added a log for them in the readme
This commit is contained in:
parent
7c6bbb630f
commit
648289d4a9
28
README.md
28
README.md
|
|
@ -2,6 +2,30 @@ Kanto Expansion Pak
|
||||||
===================
|
===================
|
||||||
This is a ROM Hack of Pokémon Red and Blue, aiming to expand the dex with
|
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
|
Credits
|
||||||
====
|
====
|
||||||
* Plague von Karma - Creator of the Showdown Mod, Developer
|
* Plague von Karma - Creator of the Showdown Mod, Developer
|
||||||
|
|
@ -11,11 +35,11 @@ Credits
|
||||||
* Paulluxx - Showdown Mod assistance
|
* Paulluxx - Showdown Mod assistance
|
||||||
* DuoM2 - Showdown Mod assistance
|
* DuoM2 - Showdown Mod assistance
|
||||||
* Albatross - Much of the new sprites used in the hack
|
* Albatross - Much of the new sprites used in the hack
|
||||||
|
* ZumiIsawhat? - Restorations of beta OST
|
||||||
* Helix Chamber, RacieBeep, et al - Prototype Pokémon sprites
|
* 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;
|
Original README.md proceeding;
|
||||||
====
|
|
||||||
# Pokémon Red and Blue [![Build Status][ci-badge]][ci]
|
# Pokémon Red and Blue [![Build Status][ci-badge]][ci]
|
||||||
|
|
||||||
This is a disassembly of Pokémon Red and Blue.
|
This is a disassembly of Pokémon Red and Blue.
|
||||||
|
|
|
||||||
|
|
@ -1339,8 +1339,7 @@ AdjustOAMBlockYPos2:
|
||||||
add b
|
add b
|
||||||
cp 112
|
cp 112
|
||||||
jr c, .skipSettingPreviousEntrysAttribute
|
jr c, .skipSettingPreviousEntrysAttribute
|
||||||
dec hl
|
ld a, 160 ; fixes the smoke puff bug - PvK
|
||||||
ld a, 160 ; bug, sets previous OAM entry's attribute
|
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
.skipSettingPreviousEntrysAttribute
|
.skipSettingPreviousEntrysAttribute
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
|
||||||
|
|
@ -2375,6 +2375,8 @@ PartyMenuOrRockOrRun:
|
||||||
predef StatusScreen
|
predef StatusScreen
|
||||||
predef StatusScreen2
|
predef StatusScreen2
|
||||||
; now we need to reload the enemy mon pic
|
; now we need to reload the enemy mon pic
|
||||||
|
ld a, 1
|
||||||
|
ldh [hWhoseTurn], a
|
||||||
ld a, [wEnemyBattleStatus2]
|
ld a, [wEnemyBattleStatus2]
|
||||||
bit HAS_SUBSTITUTE_UP, a ; does the enemy mon have a substitute?
|
bit HAS_SUBSTITUTE_UP, a ; does the enemy mon have a substitute?
|
||||||
ld hl, AnimationSubstitute
|
ld hl, AnimationSubstitute
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ HiddenCoins:
|
||||||
cp 20
|
cp 20
|
||||||
jr z, .bcd20
|
jr z, .bcd20
|
||||||
cp 40
|
cp 40
|
||||||
jr z, .bcd20 ; should be bcd40
|
jr z, .bcd40 ; fixes the 40 coin stash thing - PvK
|
||||||
jr .bcd100
|
jr .bcd100
|
||||||
.bcd10
|
.bcd10
|
||||||
ld a, $10
|
ld a, $10
|
||||||
|
|
@ -87,7 +87,7 @@ HiddenCoins:
|
||||||
ld a, $20
|
ld a, $20
|
||||||
ldh [hCoins + 1], a
|
ldh [hCoins + 1], a
|
||||||
jr .bcdDone
|
jr .bcdDone
|
||||||
.bcd40 ; due to a typo, this is never used
|
.bcd40
|
||||||
ld a, $40
|
ld a, $40
|
||||||
ldh [hCoins + 1], a
|
ldh [hCoins + 1], a
|
||||||
jr .bcdDone
|
jr .bcdDone
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,9 @@ HiddenItemNear:
|
||||||
ld a, [wYCoord]
|
ld a, [wYCoord]
|
||||||
call Sub5ClampTo0
|
call Sub5ClampTo0
|
||||||
cp d
|
cp d
|
||||||
|
jr z, .y_zflag ; starts to fix the y/x coord 0 no find bug - PvK
|
||||||
jr nc, .loop
|
jr nc, .loop
|
||||||
|
y_zflag
|
||||||
ld a, [wYCoord]
|
ld a, [wYCoord]
|
||||||
add 4
|
add 4
|
||||||
cp d
|
cp d
|
||||||
|
|
@ -35,7 +37,9 @@ HiddenItemNear:
|
||||||
ld a, [wXCoord]
|
ld a, [wXCoord]
|
||||||
call Sub5ClampTo0
|
call Sub5ClampTo0
|
||||||
cp e
|
cp e
|
||||||
|
jr z, .x_zflag
|
||||||
jr nc, .loop
|
jr nc, .loop
|
||||||
|
.x_zflag
|
||||||
ld a, [wXCoord]
|
ld a, [wXCoord]
|
||||||
add 5
|
add 5
|
||||||
cp e
|
cp e
|
||||||
|
|
@ -45,7 +49,7 @@ HiddenItemNear:
|
||||||
|
|
||||||
Sub5ClampTo0:
|
Sub5ClampTo0:
|
||||||
; subtract 5 but clamp to 0
|
; subtract 5 but clamp to 0
|
||||||
sub 5
|
sub 4
|
||||||
cp $f0
|
cp $f0
|
||||||
ret c
|
ret c
|
||||||
xor a
|
xor a
|
||||||
|
|
|
||||||
|
|
@ -326,9 +326,7 @@ DisplayNamingScreen:
|
||||||
LoadEDTile:
|
LoadEDTile:
|
||||||
ld de, ED_Tile
|
ld de, ED_Tile
|
||||||
ld hl, vFont tile $70
|
ld hl, vFont tile $70
|
||||||
ld bc, (ED_TileEnd - ED_Tile) / $8
|
lb bc, BANK(ED_Tile), (ED_TileEnd - ED_Tile) / $8 ; bad emulators work fine w/ this
|
||||||
; to fix the graphical bug on poor emulators
|
|
||||||
;lb bc, BANK(ED_Tile), (ED_TileEnd - ED_Tile) / $8
|
|
||||||
jp CopyVideoDataDouble
|
jp CopyVideoDataDouble
|
||||||
|
|
||||||
ED_Tile:
|
ED_Tile:
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ AnimateShootingStar:
|
||||||
ld a, [wMoveDownSmallStarsOAMCount]
|
ld a, [wMoveDownSmallStarsOAMCount]
|
||||||
cp 24
|
cp 24
|
||||||
jr z, .next2
|
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
|
ld [wMoveDownSmallStarsOAMCount], a
|
||||||
.next2
|
.next2
|
||||||
call MoveDownSmallStars
|
call MoveDownSmallStars
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
AnimateHealingMachine:
|
AnimateHealingMachine:
|
||||||
ld de, PokeCenterFlashingMonitorAndHealBall
|
ld de, PokeCenterFlashingMonitorAndHealBall
|
||||||
ld hl, vChars0 tile $7c
|
ld hl, vChars0 tile $7c
|
||||||
lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), 3 ; should be 2
|
lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), 2 ; fixed from 3 - PvK
|
||||||
call CopyVideoData
|
call CopyVideoData
|
||||||
ld hl, wUpdateSpritesEnabled
|
ld hl, wUpdateSpritesEnabled
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ PlayerSpinWhileMovingDown:
|
||||||
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
|
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
|
||||||
call GetPlayerTeleportAnimFrameDelay
|
call GetPlayerTeleportAnimFrameDelay
|
||||||
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
|
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
|
||||||
|
ld hl, wFacingDirectionList ; this fixes the jp characters on dmg/sgb - PvK
|
||||||
jp PlayerSpinWhileMovingUpOrDown
|
jp PlayerSpinWhileMovingUpOrDown
|
||||||
|
|
||||||
_LeaveMapAnim::
|
_LeaveMapAnim::
|
||||||
|
|
@ -108,6 +109,7 @@ _LeaveMapAnim::
|
||||||
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
|
ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY
|
||||||
call GetPlayerTeleportAnimFrameDelay
|
call GetPlayerTeleportAnimFrameDelay
|
||||||
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
|
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
|
||||||
|
ld hl, wFacingDirectionList ; this fixes the thing too - PvK
|
||||||
call PlayerSpinWhileMovingUpOrDown
|
call PlayerSpinWhileMovingUpOrDown
|
||||||
call IsPlayerStandingOnWarpPadOrHole
|
call IsPlayerStandingOnWarpPadOrHole
|
||||||
ld a, b
|
ld a, b
|
||||||
|
|
@ -202,6 +204,9 @@ FlyAnimationScreenCoords2:
|
||||||
db $F0, $00
|
db $F0, $00
|
||||||
|
|
||||||
LeaveMapThroughHoleAnim:
|
LeaveMapThroughHoleAnim:
|
||||||
|
ld a, [wLastMusicSoundID]
|
||||||
|
cp MUSIC_BIKE_RIDING
|
||||||
|
call z, PlayDefaultMusic ; this fixes the bike music persisting - PvK
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [wUpdateSpritesEnabled], a ; disable UpdateSprites
|
ld [wUpdateSpritesEnabled], a ; disable UpdateSprites
|
||||||
; shift upper half of player's sprite down 8 pixels and hide lower half
|
; shift upper half of player's sprite down 8 pixels and hide lower half
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,7 @@ SlotMachine_StopWheel1Early:
|
||||||
.loop
|
.loop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
cp HIGH(SLOTS7)
|
cp HIGH(SLOTS7)
|
||||||
jr c, .stopWheel ; condition never true
|
jr z, .stopWheel ; now works properly - PvK
|
||||||
dec c
|
dec c
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
@ -329,9 +329,13 @@ SlotMachine_StopWheel2Early:
|
||||||
; player's odds.
|
; player's odds.
|
||||||
.sevenAndBarMode
|
.sevenAndBarMode
|
||||||
call SlotMachine_FindWheel1Wheel2Matches
|
call SlotMachine_FindWheel1Wheel2Matches
|
||||||
|
ret nz
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
cp HIGH(SLOTSBAR) + 1
|
cp HIGH(SLOTSBAR) + 1
|
||||||
ret nc
|
jr c, .stopWheel
|
||||||
|
ld a, [wSlotMachineFlags]
|
||||||
|
bit 6, a
|
||||||
|
ret z
|
||||||
.stopWheel
|
.stopWheel
|
||||||
xor a
|
xor a
|
||||||
ld [wSlotMachineWheel2SlipCounter], a
|
ld [wSlotMachineWheel2SlipCounter], a
|
||||||
|
|
@ -850,7 +854,7 @@ LoadSlotMachineTiles:
|
||||||
call DisableLCD
|
call DisableLCD
|
||||||
ld hl, SlotMachineTiles2
|
ld hl, SlotMachineTiles2
|
||||||
ld de, vChars0
|
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)
|
ld a, BANK(SlotMachineTiles2)
|
||||||
call FarCopyData2
|
call FarCopyData2
|
||||||
ld hl, SlotMachineTiles1
|
ld hl, SlotMachineTiles1
|
||||||
|
|
@ -860,7 +864,7 @@ LoadSlotMachineTiles:
|
||||||
call FarCopyData2
|
call FarCopyData2
|
||||||
ld hl, SlotMachineTiles2
|
ld hl, SlotMachineTiles2
|
||||||
ld de, vChars2 tile $25
|
ld de, vChars2 tile $25
|
||||||
ld bc, $1c tiles ; should be SlotMachineTiles2End - SlotMachineTiles2, or $18 tiles
|
ld bc, SlotMachineTiles2End - SlotMachineTiles2
|
||||||
ld a, BANK(SlotMachineTiles2)
|
ld a, BANK(SlotMachineTiles2)
|
||||||
call FarCopyData2
|
call FarCopyData2
|
||||||
ld hl, SlotMachineMap
|
ld hl, SlotMachineMap
|
||||||
|
|
|
||||||
|
|
@ -34,14 +34,20 @@ _UncompressSpriteData::
|
||||||
ld [wSpriteLoadFlags], a
|
ld [wSpriteLoadFlags], a
|
||||||
call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
|
call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
|
||||||
ld b, a
|
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
|
add a
|
||||||
add a
|
add a
|
||||||
ld [wSpriteHeight], a
|
ld [wSpriteHeight], a
|
||||||
ld a, b
|
ld a, b
|
||||||
swap a
|
swap a
|
||||||
and $f
|
and $7
|
||||||
|
jr nz, .skip2
|
||||||
|
inc a
|
||||||
|
.skip2
|
||||||
add a
|
add a
|
||||||
add a
|
add a
|
||||||
add a
|
add a
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
|
#
|
||||||
|
|
||||||
Loading…
Reference in a new issue