Skip to content

Latest commit

 

History

History
executable file
·
435 lines (364 loc) · 26.1 KB

changelog_from_v1.23.md

File metadata and controls

executable file
·
435 lines (364 loc) · 26.1 KB

New features exclusively for the master branch

  • Added nuzlocke mode

  • Hold SELECT and press START while on the bag menu or PC item box menu to auto-sort your items

  • The girl in Oak's lab toggles a built-in randomizer for wild pokemon and your starters

    • Shuffles all pokemon that can be gained through walking, surfing, fishing, or from the game corner
    • If activated early enough, your starter pokemon options are shuffled as well
    • Randomizes using a saved seed value, so the shuffled order is always preserved between play sessions
    • A new random seed is generated upon each new game
    • There are three pokemon lists based on base-stat-total; A, B, and C tiers
    • Pokemon are only shuffled within their own list in order to maintain some modicum of balance
    • Scripted events are unaffected (gifts, in-game trades, static encounters, etc)
    • The game's five legendary pokemon are excluded from randomization
    • The AREA feature of the pokedex automatically adjusts to show the new pokemon locations
  • Relocated one of the rocket grunts in celadon city, and he now sells bulk coins in the post-game

  • Trade evolutions no longer evolve at level 45

  • Trade evolutions now alternately evolve with a stone at a certain level with some new hinting NPC text

    • Kadabra
      • Use a moon stone at level 35
      • Hinted at by a NPC in the Pewter Museum that comments on the moon stone
    • Haunter
      • Use a thunder stone at level 35
      • Hinted at by the Lavender Town NPC that asks if you believe in ghosts
    • Graveler
      • Use a fire stone at level 35
      • Hinted at by a NPC on Cinnabar Island that talks about the mansion
    • Machoke
      • Use a leaf stone at level 35
      • Hinted at by a house NPC in Pewter City that talks about trainers teaching pokemon
  • A new NPC is in the north-south underground path for post-game mirror matches

  • Added a new Clause Brother for activating the Trapping Move Clause

    • A counter tracks if the player or the opponent use trapping moves like Wrap multiple times in a row
    • The counter increments only if a trapping effect move is selected to be used and it does not miss
    • After the counter has incremented to 2,
      • selecting a trapping effect move additional times will make the move to go 2nd in the round
      • this is the same priority as the move Counter
    • The counter only gets reset by switching or using a move that does not have the trapping effect
    • Reseting the counter will restore normal priority to trapping effect moves.
  • Added a fifth Clause Brother for the hyper beam clause; hyper beam will recharge if it KOs the opponent

  • A new drink stand on the route 19 beach sells vending machine drinks

  • Paras is gifted in the Route 2 house in case the player has no pokemon that can learn Cut

  • Unused beedrill trade has been restored and placed on Route 22

  • Added cloning and gene splicing

  • Added shiny mercy

    • When a player encounters an AI trainer shiny pokemon, the next wild encounter will be shiny
    • Side effect: Because trainer 'mons can't be shiny in regular difficulty, hard mode gives more chances to find wild shinies
  • Added new superboss at the seafoam shore (activated the same as the existing missingno fight)

  • Beating the seafoam missingo battle will certify you as a pokemon master on your diploma

  • Show Mewtwo to Mr. Fuji after beating the Elite 4 for a M.GENE

  • Added Bill's secret garden behind his house

    • Put Mew in your top spot and show Bill to gain access
    • You will encounter the starter pokemon plus some other rarer pokemon
    • Shiny rates are 1-in-128 in this area
  • Added the MIST STONE

    • It will max-out all the stat exp of the lvl > 30 pokemon on which it is used
    • If all the stat exp is already at max, then it will set all the DVs to maximum instead
  • Defeat Lance with a Dragonite in your top spot and it will be given a catch rate of 168

    • Dragonite's cry will play to confirm that this has happened
    • You can swap with another Dragonite in your party and listen to his after-battle text again to repeat the process
    • In this rom hack, a dragonite with this catch rate can be taught Fly via HM
    • This catch rate makes it hold a gorgeous box if transferred to Gen 2
    • Likewise, a dragonite holding a gorgeous box can learn fly if transferred into this rom hack
  • Implemented the old Down+B urban legend for pokeballs as a cheat code

    • The timing is different. You have to hold Down+B before the "[PLAYER] used [ITEM]" text finishes printing.
    • If successful, the ball tossed will be twice as effective as normal
  • Scaled back fishing, reduced its randomness, and made it more map-dependent

  • When using the old rod, press and hold B within about 1 second to always hook a magikarp

  • Improved itemfinder function

    • If an item is detected, it will play 1 to 3 chimes depending on how close it is (more chimes means closer to the item).
    • Lines will point in the direction of the item and flash with the chimes.
    • If the player is right on top of the item, no lines will show and the chime till play four times.
    • If the SELECT button is held while selecting to USE the itemfinder, then the original itemfinder function is used.
  • Added spaceworld-style trainer back sprites for consistency with the spaceworld 'mon back sprites

  • Blue-JP has spaceworld-style back sprites, and a corresponding _origback patch has been added

  • The silhouette effect at the start of battle now displays when playing on a DMG gameboy

  • Recalibrated the experience gain at the daycare

  • the daycare lets you select moves to forget (if any) upon retreiving your pokemon

  • Retrieving a daycare pokemon that could have evolved via level will trigger evolution and learn any missed-out moves

  • Added a PC to the daycare

  • The daycare can now support two evolutions back-to-back

  • Teaching a TM as a field move (Dig/Teleport) no longer consumes the TM

  • Added visual indicator when swapping bag space

  • Tweaked a flag for shinies so it can be used as a debugging toggle

  • Organized the female trainer code to be activated via assembler tags in the makefile (for easy reference)

  • Added max revives to post-game shop on celadon mart 3f

  • Cerulean mart sells escape rope per Yellow version

  • Fuschia mart sells hyper potions per Yellow version

  • Added a hidden max revive in celadon city

  • Added a hidden super potion in celadon city

  • Added a hidden moon stone in diglett's cave

  • Added a hidden nugget in diglett's cave

  • Added hidden potion on route 22

  • Additional hidden potion in viridian city

  • Added two hidden repels to pewter city

  • Added a hidden great ball and pokedoll on route 6

  • Added hidden max revive on route 11

  • Added hidden ultra ball on route 8

  • Lance now has 2 hyper potions per pokemon like the rest of the elite 4

  • The Rival battles from the SS Anne through Pokemon Tower use super potions

  • The Rival battles after Pokemon Tower and up through Route 22 2nd-round use hyper potions

  • The Champion can use Full Heals in response to a status effect with a 25% chance

  • All trainers that use any kind of potion now use it with a 50% chance if their HP is low enough

    • Gym Leaders and mid-game Rival: below 1/5th total
    • Elite-4 and Champion: below 1/3th total
  • Added "The Shimmer", a cheat feature for those who want viability when using certain low-regarded pokemon.

    • Toggled ON/OFF via the glass pokeball decoration in the rival's house.
    • Pokemon Eligible: EKANS, CATERPIE, METAPOD, WEEDLE, KAKUNA, ZUBAT, PSYDUCK, PARAS, PONYTA, RATTATA, SANDSHREW, HORSEA, GOLDEEN, VENONAT, JIGGLYPUFF, ARBOK, BEEDRILL, BUTTERFREE, DITTO, FARFETCHD, GOLBAT, GOLDUCK, HITMONCHAN, LICKITUNG, ONIX, PARASECT, PINSIR, PORYGON, RAPIDASH, RATICATE, SANDSLASH, SEADRA, SEAKING, VENOMOTH, WIGGLYTUFF
    • The shimmer factor appears randomly and secretly, and is more likely to occur if you favor sending out eligible 'mons.
    • The shimmer only manifests in 'mons that are fully evolved, even if their pre-evos gained the secret shimmer factor.
    • When the shimmer manifests as a 'mon gets sent out, that 'mon gets a large boost to stats that are low-to-poor.
  • Technical details of the shimmer

    • A 'mon eligible for shimmer that is sent out, either by player or enemy trainer, can get the shimmer factor.
    • The chance of getting the shimmer factor is 1-in-256 per send-out, rewarding a player that uses the 'mon frequently.
    • The odds increase by +(1-in-256) per 2048 HP-StatExp that the sent-out pokemon has, encouraging player investment.
    • The shimmer factor is defined via the pokemon's catch rate byte and is a value of $6D (held Miracle Berry in Gen-2).
    • The manifestation of the shimmer boosts one-to-four of a 'mons unmodified stats.
      • If 3/8ths of an unmodified stat is less than the mon's level, then the level value is added to that stat.
      • Stats that can be boosted are: attack, defense, speed, or special.

Hack-related fixes exclusively for the master branch

  • Fixed gift pokemon not having above-average DVs if sent to the box
  • Adjusted Oak's pokemon moves
  • Fixed text overlap for trainer Seiga
  • The static wild encounters (voltorbs and legendaries) now respond to the Chansey cheat for shiny hunting
  • Fixed an issue where the shiny animation has the wrong palette for the opponent on the GBC
  • Fixed an oversight to make it so 648 stat exp / lvl function maxes out at lvl 100
  • RemoveItemByID is now able to remove items from the backup bag space
  • Repels can no longer waste the mew encounter
  • Fixed bug in low HP alarm: Some sfx no longer get cut off when the player is at low HP
  • Holding start or select will no longer print strange HP numbers when not on the status screen
  • Decreased time to encounter missingno by an exponential amount
  • Fixed a scripting error on route 20
  • Removal of the limits on vitamins in the post-game now only applies to pokemon lvl > 30
  • Adjusted the level-up moves of starmie, cloyster, poliwrath, and exeggcutor for legality with gen-2 time-capsule
  • Enemy trainer level scaling biases the levels upwards for determining if a pokemon should be evolved
  • Strength hotkey requires facing a boulder to activate
  • Trapping moves no longer apply a speed penalty
  • If trainer scaling is on, you do not need to beat the 1st route 22 rival solo to get oak's pokeballs
  • Fixed an issue with the level scaling feature that inadvertantly biased non-special trainers to higher levels
  • Fixed a problem where the champion whould not work with level scaling
  • Fixed a minor bug when forfeiting a rival battle

Hack-related fixes exclusively for the lite branch

  • Cleaned up compiler tags and made it easy to compile with spaceworld-style sprites
  • Female trainer can be activated by compiling with the _FPLAYER tag
  • TMs and HMs have their names determined by a list now
  • Fixed the wrong text pointer in vermilion city

New features and adjustments for both branches

  • Decoupled the harder difficulty to its own option bit and added the hard mode to the Lite branch

    • Pressing RIGHT while the cursor is in the BATTLE STYLE box will toggle the feature on/off
    • Contrasting this, pressing LEFT will let you select a battle style without toggling difficulty
  • Hard mode adjustments

    • Trainer stat exp has been re-scaled to be more realistic to attainable amounts per level
    • No longer gives an exp bonus
    • Critical hit chance in non-link battles use the Stadium 1 formula
    • Oak's pokeballs will be upgraded to great balls if you beat the route 22 rival in hard mode
    • Wild pokemon DVs get 1 re-roll each if less than 4, biasing them upwards a little bit
    • Trainers now roll their DVs twice and use the better result
    • Only boss trainers (giovanni, elite 4, gym leaders, later-game rival) cannot have DVs below 8 in hard mode
  • Vanilla Options Reset: Deactivates all special options (such as in preparation to update to a new patch)

    • go to the start menu and put the cursor on the top option (usually POKEDEX)
    • press and hold UP on the d-pad (the cursor will now be on EXIT)
    • while continuing to hold UP, press and hold SELECT
    • while continuing to hold those two buttons, press B
    • the start menu should close and you will hear a jingle confirming that the option reset worked
  • Debug Damage Display: Damage values will be displayed in battle as the UI updates as a debug cheat

    • Toggled on/off the same way as the softlock warp, but by using 'A' instead of 'B'.
    • Zero damage is not displayed
    • Damage is not displayed if either pokemon has zero HP remaining
  • Press and hold A+SELECT at the title screen to print the current RNG seed at the main menu

  • Switched over to the xor-shift method of RNG

  • If a zero-value random seed is detected, a new random seed gets generated using the original DIV register method

  • Gamma shader is now 23% faster thanks to optimizations by easyaspi314

  • The 60fps mode has better performance when playing in GBC-mode

    • Does this by using the double-speed feature of the GBC's processor
    • Uses more battery as a trade-off
  • Improved fade-in and fade-out to black/white transitions when playing on GBC in 60FPS mode

  • Adjustments to multi-attack moves animation and messaging to improve battle flow

    • Multi-attack moves only print the effectiveness message after the last attack
    • 2-attack moves do not print "hit 2 times" because its obvious that they always hit twice
    • Multi-attack moves hide the substitute sprite on the first attack and only restore it after the last attack
    • Twineedle is unaffected by all this due to how it swaps out its effect on the fly to a poison side-effect
  • Added optimizations to how OAM data is prepared so that overworld sprites wobble less

  • DelayFrame now manualy calls VBlank if it runs while the LCD is disabled

  • Added rom hack version tracking for save files

    • It's a single byte in the save file that gets incremented each version
    • If the save byte does not match, the player is automatically warped back to Pallet Town
    • Helps prevent crashes and glitches when updating an older save file
  • You will now be given the choice to warp if the rom hack version does not match

  • If on GBC, intitializing options in a New Game turns 60 fps ON

  • In GBC-mode, when a pokemon is caught, the resting ball now has a defined color

  • Tossing pokeballs have color in GBC mode

  • Increased the maximum game clock to 32767 hours

  • Using X-Accuracy with a OHKO move now allows it to hit faster opponents

  • HP-UP item now preserves your HP ratio

  • The position of both switches in Vermilion Gym are now determined at the same time

  • The switches in Vermilion Gym can now be discovered independently from one another

  • Switches in Vermilion Gym will now properly take into acount vertical adjacents

  • Restored unused text in the vermilion gym puzzle for finding the 2nd switch

  • Daycare allows HM moves on entered pokemon

  • Green and Red-JP have the original front sprites for fossil kabutops and fossil aerodactyl

  • Green and Red-JP have the original text box corners

  • Restored intro "Presents" for all builds

  • Adapted the japanese title screen logo, sfx, and motion for the jp builds

  • Re-added the reference to the Kanto region in the JP translation

  • Restored SHOP and POKE building tiles in Blue-JP

  • SGB borders for JP versions are restored (with fixed centering for text)

  • Added more text corrections for JP versions

  • Added sfx variations unique to JP versions

  • Swapped a trade NPC to a gentleman in Green and RedJP

  • Restored the saucy innuendo for the Nugget bridge dialogue in the jp builds

  • Restored the religious text in the Pewter museum in the jp builds

  • Adjusted intro and title screen and palettes slightly in JP red & green for accuracy

  • Fixed pokemon category translation: "Rat" to "Mouse"

  • Fixed pokemon category translation: "Shellfish" to "Shell"

  • Fixed translation: Route 14 trainer's comment about the legendary birds

  • Fixed text giving the wrong description of guard spec.

  • Fixed woman on silph co 10F having a blank line in her text

  • The function that shows the dex entry for starter pokemon is now more robust

    • It now works for any pokemon (like if the starters are changed or randomized)
    • It keeps a backup of the pokedex-owned flags instead of erasing them
    • Removed the unused Ivysaur flag
  • The female trainer pic will now display on the diploma if applicable

  • AI can now handle fly/dig loops between the two pokemon

  • Adjusted some AI anti-spam for status moves

  • AI switch scoring applies an extra penalty for possibly switching a pokemon into a super-effective move

  • AI layer 1: If the player used and item or switched, AI is blind to the player's sleep counter when considering dream eater

  • AI layer 3 will slightly discourage a move 25% of the time if it hits neutral with no STAB

    • Wherein a special move is being used on a 'mon with greater attack than special stat
    • Wherein a physical move is being used on a 'mon with greater special than attack stat
  • AI layer 3: The enemy is blind to the player type if considering a poisoning effect move and the player just switched

  • AI layer 3: There is a 90.625% chance per damaging move that AI is blind to player type after player switches

    • Prevents situations where AI will always pick the ideal move against a switch-in
    • 'Blind' in this case means the AI will act as if the move being considered has neutral effectiveness
    • The AI might still favor a STAB move or a move that works better with its own stats
  • Withdrawing or depositing a key item from/to the player's PC will default its quantity to 1

  • Item evolutions having a level requirement is now supported

  • Tweaked the fly menu to be more responsive and snappy

  • Battle sprite organization updates and extra backs

  • Organized front and back battle sprites to be controlled via assembler tags in the makefile

  • The move relearner and move deleter code is now tethered to the _MOVENPCS makefile tag

  • The running shoes code is now tethered to the _RUNSHOES makefile tag

  • Original flashing move animations from Red-JP and Green are tethered to the (unused) _JPFLASHING makefile tag

  • Version encounters, trades, and game corner prizes are now tied to their own dedicated assembler tags

  • The enemy trainer's HUD is now updated after it uses a healing item

  • Removed restore sfx from the AI x-accuracy item

  • Added the restore sfx to all AI hp-recovery items

  • Trainer switching (ai routine #4)can now be deactivated

    • This feature disallows enemy trainers to switch intelligently, just like in the original retail games.
    • With the cursor in the TEXT SPEED section of the option menu, press A to toggle this feature on and off.
    • the letters "x sw" will appear in the corner of the option menu to indicate that trainer switching is inactive.
    • Note that Jugglers are unaffected because their official gimmick is that they switch randomly.

New fixes for original game bugs for both branches

  • Fixed a grass tile in the Forest tileset not counting for encounter generation

  • Changed border block on route 16 to water to make it consistent with route 17

  • Fixed a graphical error when Bide unleashes energy against a 'mon that is not being displayed

  • Fixed screen tearing in battle when player or 'mon slides off the screen

  • Fixed a bug from the vanilla game where boulder dust clouds do not show up well when pushing downwards

  • Changed border block in cerulean city to field to make it consistent with route 5

  • Fixed reading the route 16 sign from the other side on route 17

  • Added missing dungeon maps to battle transition functions

  • Fixed using a ledge to land on a NPC

  • Exit won't block you when warped to Fuji's house from Pokemon Tower

  • Can no longer get blocked at the cinnabar gym door

  • Player now faces up instead of left when stopped in the route 8 guard house

  • Wavy line animation (psychic/psywave/night shade) now scrolls the top three screen lines (by easyaspi314)

  • Fixed glitchy trainer card transition screens on GB-DMG

  • Can no longer change facing while pushing a boulder

  • Downward-moving sprites now get hidden behind text boxes

  • NPC walking animation now updates during player movement

  • Fixed NPCs treating the last visible screen column/row as off-screen

  • Fixed a graphical bug on the naming screen that apears on cheapo flash carts

  • Fixed double-edge animation being off-center for the enemy pokemon

  • Fixed a wall in cerulean cave level 3 that violated the mapping rules so was walkable

  • Improved the tile block replacement function (improves cinnabar gym lag)

  • On battle slide-in, fixed the bottom window disappearing for 1 frame when playing on a DMG gameboy

  • White 1-frame flash on battle load (affecting DMG and GBC modes) as been removed

  • White 1-frame flash on map load (affecting DMG and GBC modes) as been removed

  • Fixed garbage tiles display for 1 frame after a battle on the DMG

  • Fixed a bug where HP bar animation can print the wrong tile for 1 frame

  • Fixed junk tiles displaying for 1 frame when the game resets after displaying THE END

  • Fixed transitions when entering and exiting Rock Tunnel

  • The proper forget-move poof sfx plays during battle

  • Fixed a bug having to do with rare instances of bending the audio pitch

  • Victory music won't play if a wild 'mon faints but the player has no 'mons remaining; it's a blackout

  • The jingle for finding a hidden item will no longer be skipped during an audio fadeout

  • Fixed ball toss sfx not resetting the pitch envelope settings

  • Added protection against oak's lab music cutting a channel off

  • Fixed thud sfx playing when exiting via a warp tile

  • Fixed certain text sfx not playing when using zero-delay text

  • Meet Trainer jingle should not play before loading into the gym leader battle music

  • AI using dire hit item now plays a SFX

  • Fixed input priority on menus

  • Fixed A-button input priority on the left side of the scrolling pokedex list

  • Cannot surf from the party menu if a NPC is in front of the player (entering or exiting surf)

  • The player can now select a move even if frozen, and this fixes a PP underflow and link desync glitch

  • Made many TextIDs close when pressing A instead of releasing A

  • Binoculars can no longer pause the overworld by holding A from the wrong side

  • Fixed an issue where pressing a button on a menu while holding A is treated as an A-press

  • Fixed the pokeflute posting the wrong message in wild pokemon battles

  • Cannot use poison to black yourself out of the cable club because entering the club now heals your party

  • Cannot use poison to black yourself out of the safari zone because the safari minigame now stops poison damage

  • Cannot perform the 99-stack glitch anymore

  • RAM adress D732 now gets cleared upon a new game

  • The party heal function now detects glitch moves and loads 0 PP for them

  • Closed 255 clone pokemon glitch and reduced saving delay to 15 frames

  • Fixed trainer escape glitch via blacking out from a wild battle

  • Minor code correction to Twineedle to prevent future errors

  • Fixed an issue where the counter for the Disable effect had the wrong distribution if the target was slower

  • You can now get Oak's pokeballs even if you evolve your starter

  • The eating/angry message in safari battles will no longer display incorrectly when returning to neutral

  • The eating/angry safari state counter correctly increases by 1-5 turns instead of 0-4 turns

  • Safari battles correctly reset the catch rate when either eating/angry state returns to neutral

  • Fixed a bug from the vanilla game where random NPC walk delay can underflow to 255 ticks

  • Fixed an offset bug with the lucky game corner machine

  • Applied the pokeyellow fix for in-game trade evolutions

  • Accounted for underflow with switch-out messages

  • Added an error trap to _Divide function for divide-by-zero calls

  • Fixed hidden coins not giving the correct amount

  • Slot machine no longer copies too much tile data

  • Corrected and clarified the quiz text in the cinnabar gym

  • Clarified the text for the super repel on 2F of the celadon dept store

  • Viridian gym statue will not spoil the gym leader's name reveal

  • Fixed increment bug in CheckForTilePairCollisions

  • Fixed inaccurate text when getting the rock slide TM

  • Fixed the tiles in Mt. Moon floor 3 that prevent encounters

  • Fixed picking a fossil causing all trainers on Mt. Moon floor 3 to lose line of sight

  • Fixed an underflow issue which caused trainers above the player to not see beyond 3 spaces downward


Hack-related fixes for both branches

  • Minor timing fix to title object palette loading
  • Fixed Raticate not appearing in Unknown Dungeon 2F in Blue-Jp
  • Fixed incorrect encounters on route 13 in Blue-Jp
  • Fixed an invalid apostrophe
  • Fixed pewter npc following distance in 60 fps mode
  • Fixed rom hack byte not getting set on new game
  • Fixed an issue with trapping moves being allowed on switch-in
  • Fixed typo causing incorrect game corner prizes
  • Minor adjustments to title screen and intro
  • Leech seed health drain animation now has correct coloring on GBC
  • Fixed screen whiteouts not looking very smooth in GBC mode (like when entering the 'mon status screen)
  • Re-fixed the celadon vending machine code
  • More fixes for AI switching
  • Made adjustment to EXP All message
  • Holding B in zero delay text mode will not revert the text to FAST speed
  • Major cleanup of options constants
  • Fixed a minor issue where the first pokemon an opponent sends out can't be switched
  • TM/HM name list fixed so it can be in any bank
  • Fixed extra options not getting initialized correctly
  • Updated Makefile organization
  • Added script that verifies the RGBDS version when compiling
  • Updated the project to build with RGBDS 0.6.0
  • Readjusted enemy stat exp accumulation and removed reduntant lines in CriticalHitTest
  • Updating a save to a new hack version now checks to see if the elite-4 were already defeated
  • Fixed problem with the menu selection byte changing if opponent switches first (affects mimic and others)
  • If Transform copies an opponent's Transform move, and the the PP of that move is < 6, it will copy that move's instantaneous PP less 1.
  • Fixed a problem where multi-hit moves could overflow the damage effectiveness multiplier
  • Restored the gray pokemon coloring used in red/blue/green versions if using red/blue/green-style front sprites.
  • Made the speed of japanese flashing animations more accurate to the original
  • Systems that generate above-average DVs now use a statistical bias instead of using 9,8,8,8 minimum
  • Updated installation instructions and RBGDS version checking
  • Minor tweaks to saving/loading code
  • Added a sfx and symbol for the color correction