Releases: ValentinoAbate/Pokemon-Randomizer
Releases · ValentinoAbate/Pokemon-Randomizer
v1.0-beta.7
New
Standalone application
- The application is now standalone and shouldn't need additional .NET installations to function
- There are now two separate downloads for x86 (32bit) and x64 (64bit)
Special Variants
- Special variant logic can now be applied for some unique pokemon
- Variant Castform will always be a dual Normal / Variant Type
- When Variant Castform changes form via Forecast, it will always retain its secondary variant type
- For example, if Castform became a Electric variant (NRM/ELE), its Rain form would be WAT/ELE, etc.
- Variant Castform will always learn any weather-related move of its variant type
- Variant Castform will now apply color palette modifications to its weather forms
- Variant Ditto will not gain any additional moves
- Variant Smeargle will not gain any additional moves
- Variant Unown will only gain 1 STAB attacking move for each variant type
Special Trainer Pokemon Moveset Generation Strategies
- Smeargle will now have random moves (up to the number of times it could have learned SKETCH at its current level)
- Occasionally, Smeargle will use another moveset generation strategy (such as attacking or low attack)
- Several low-attack pokemon (Shuckle, Chansey, etc.) will now use a strategy that prioritizes passive damage when possible
- Wobbufett now will prioritize counterattacking moves
Type Effectiveness Chart Modifications
- Added an option to invert or swap the type effectiveness chart
- Other settings, such as starter type triangles and safe starter movesets will take the updated type effectiveness chart into account
Keyboard Shortcuts
- Added keyboard shortcuts for several common operations (like opening roms and randomizing)
Other
- Added a setting that causes eggs to hatch quickly
- Added a setting to distribute Drought and Drizzle to pokemon that get them in later generations (Pelliper, Ninetales, etc.)
- Added a setting to "upgrade" Unown by giving it access to all "power" moves (SECRET POWER, NATURE POWER, etc.)
- Added a setting to "updrade" Castform by giving it earlier access to WEATHER BALL and level-up access to certain weather moves
- Sold items such as lava cookies and soda pop will now have their prices and texts remapped (with discount options)
Improved
Trainer Organization Randomization
- Clarified type theme option names and choices for all trainer orgnanizations
- Villainous team trainers' in-battle sprites will now have their palettes match their type theme when randomized
- Overworld palettes remain unchanged, as they are much more difficult to modify
- Villainous teams can now be randomized to be single or dual-typed instead of only dual-typed
Safe Starter Movesets
- Safe starter movesets will now be able to hit any opposing pokemon for at least resisted damage, factoring in Type immunities and abilities
- Pokemon that would miss moves at level 5 due to the added safety moves will now learn those moves at level 6 so they are not missed
- Safe starter movesets can now be applied even if starters are not randomized
Impossible Evolution Fix
- (FRLG) Pokemon that evolve by friendship (night) like Umbreon will now evolve by moon stone (FRLG do not have RTC functionality)
- (FRLG) Pokemon that evolve by friendship (day) like Espeon will now evolve by sun stone (FRLG do not have RTC functionality)
Intelligent Move Compatibility
- Castform will now be compatible with TMs and Tutors of its weather form types (WAT/FIR/ICE), as well as ELE type moves
- Bug-type variants will now always be able to learn CUT
- Fighting-type variants will now always be able to learn STRENGTH
Info File
- Info file now contains starters
- Info file now contains the type effectiveness chart
User Interface
- Separators now have consistent height
- Checkbox labels now dim when disabled
- Improved several tooltips
- Added more complete rom support info to the about screen, and generally improved its layout
- Randomization flows can now be navigated entirely by keyboard
Other
- Added several move synergies to trainer moveset generation and improved some existing ones
- Adding mystery gift items to the PC now uses a cleaner repoint method which reduces rom write times significantly
- Applying Dunsparse plague to friendship-based evolutions is now optional (where supported)
Fixed
- .NET Requirement is faulty (#1) should be resolved by the switch to standalone application
- (FRLG) Sun overworld weather now functions properly and has been unbanned
- (FRLG) RainSometimes weather will no longer be used (FRLG do not have RTC functionality)
- (FRLG) The Dunsparse plague will no longer use friendship day/ night evolutions (FRLG do not have RTC functionality)
- Safe wonder guard code will now properly prevent variant pokemon with wonder guard from having no weaknesses
- Forecast now works correctly for type-variant Castform due to special variant logic
- Level-up learnsets are now correctly limited to 25 moves
Known Issues
- When pokemon are randomized, always generate movesets is selected, and starters are randomized, the first rival battle's starter will have an incorrect moveset. This also applies to Wally's ace pokemon in the first wally battle (RSE) if Wally's ace pokemon is randomized
v1.0-beta.6.2
Fixed
Weather Randomization
- Banned the Strong Sunlight Weather from appearing in FRLG
- This weather causes a black screen after battle and doesn't appear correctly in the FRLG overworld
- I will hopefully be able to re-enable this weather in future builds with an ASM hack
v1.0-beta.6.1
Fixed
Rom Corruption
- Removed unnecessary unsafe repoints of pokemon learnsets if any setting that expands learnsets is used
- Removed unnecessary unsafe repoints of trainer party pokemon if using "Always Generate Movesets"
- These changes fix these issues, and potentially others that were yet to be found:
- (Ruby v1.1/v1.2) Game crashes when saving if learnsets are expanded
- (Sapphire) Game crashes after the first move of a contest if learnsets are expanded
- (Sapphire) Game crashes on opening the pokenav or shows a black background in the pokenav screen (depending on the emulator used) if learnsets are expanded
Other
- Don't reformat TM item descriptions for moves that aren't randomized
- (Ruby/Sapphire) Override Tate&Liza to psychic type (they have an equal amount of psychic and rock types in Ruby/Sapphire)
v1.0-beta.6
New
Full Gen III Compatibility
- The randomizer is now compatible with all unmodified English gen III roms
- This includes, Emerald, Fire Red/Leaf Green v1.0 and v1.1, and Ruby/Sapphire v1.0, v1.1, and v1.2
- See the repository's readme or the help->about tab in the randomizer for specific compatibility info
Static Wild Encounter Randomization
- Static wild encounters including legendaries and event legendaries can now be randomized
- Special settings can be applied to skip randomizing legendaries or ensure they randomize to other legendaries
- Encounters can be randomized individually, or every encounter of a certain pokemon can be remapped to a new one
- Duplicate static wild pokemon can be prevented
Mystery Gift Event Unlock
- There is now a randomizer setting to enable Birth Island, Southern Island, and Navel Rock without Mystery Gift/Event
- You still need the required items and all other conditions to be fulfilled
- The Mystery Gift Event Items can be set to appear in item randomization or start in the player's PC
Trainer Pokemon Duplicate Reduction
- Reduces the chance that a trainer will have more than one of the same pokemon
- Multiple levels (none/weak/moderate/strong/strict)
- Defaults to moderate
Other
- (FRLG + Emerald) Added an option to apply a hack that makes non-event Mew and Deoxys obedient
- (Emerald) The Steven ally battle's ally pokemon are now randomized
Improved
Trainer Pokemon Moveset Generation
- Trainer pokemon moveset generation now only considers pre-evolution moves valid at the pre-evolution learn level if they are not in the evolved pokemon's learnset
- For example, a Charmeleon will now consider flamethrower a valid move at level 34 (the level it would learn it) instead of 31 (the level Charmander learns flamethrower). However, Wigglytuff will still consider body slam a valid move at level 34 even though it doesn't learn body slam by leveling up
- Trainer pokemon moveset generation now uses pre-evolution learnset data to determine the effective learn level for a move when choosing moves if the pre-evolution learns the move at a higher level than the evolved pokemon, but not for determining valid move.
- For example, a Wigglytuff will consider doubleslap a level 24 move (the level Jigglypuff learns it) rather than a level 1 move for the purposes of move choice, but will still consider it a valid move at level 1
- Splash is no longer considered a status move for the purposes of moveset generation and will now only be chosen if there are no other alternatives
- Metronome, Nature Power, and Assist are now considered attacking moves for the purposes of moveset generation. This should vastly improve movesets generated for Togetic
- Added new move synergies, including endure + flail, endure + endeavor, and charge + electric attacking move
- Rain and Sun move synergies no longer apply for water/fire status moves
Script Randomization
- Trigger event scripts are now parsed, randomized, and written, which adds several item randomizations
- Sign scripts are now parsed, randomized, and written, which adds several item randomizations
- Call and callif branches are now parsed, which makes gym leader rewards properly randomize, along with several other item randomizations
- Scripts used by multiple NPCs/Signs/Triggers are now only randomized once, which reduces "missing" randomized items
Weather Randomization
- Weather randomization now works as expected for maps that use trigger events and map scripts instead of the map header
- Weather randomization now has access to the RainSometimes1 and RainSometimes2 weathers
- (Emerald) Weather randomization now has access to the alternating Rain/Sun weather normally seen during the Groudon/Kyogre fight
- Weather randomization now works on Ocean Route maps
- (RSE) Weather randomization now considers the desert as a separate route
- Added an option to ban flashing weather from being chosen as a random weather (any weather with strong sunlight or lightning)
User Interface
- Renamed "Noise" in wild encounter randomization UI to match other ignore restriction chance UI
- Updated ignore restriction chance UI to have lower limits and more granular control
- Renamed "Force Custom Movesets" to "Always Generate Movesets", defaulted it to on, and added a more descriptive tooltip
- Item selection dropdown UI is now actually based off of which items are available in the current open ROM
- Weather randomization options UI is now disabled when the "Unchanged" option is selected
Other
- Exception error logs now include stack traces
- Pokemon egg moves are now included in the info file
- Rom version is now included in the rom open message and info file
- Bird Keepers now have their type overridden to flying
- Struggle no longer counts as a valid move for TM, Bonus Move, or Variant Learnset selection
- Sandstorm now counts as a rock/ground move for Variant Learnset generation and move compatibility
- Recurring trainer pokemon randomization has been significantly optimized
- (Debug) Save clean rom debug option no longer applies hacks
- (Debug) Added an option to save a clean rom and diff in one action
Fixed
- (Emerald) Snow overworld weather now behaves properly after battle
- The minimum trainer pokemon IV setting now works as intended (before it was a maximum trainer pokemon IV setting unless set to 0)
- Trainer pokemon moveset generation now properly factors in pre-evolution moves for fully evolved pokemon
- Fixed an issue where the bonus pokemon feature could cause trainers to have 7 pokemon, which would cause errors
- The bonus pokemon feature now only applies when pokemon are randomized as the UI indicates
- The force custom moves feature now only applies when pokemon are randomized as the UI indicates. This also fixes an issue where most trainer pokemon could only struggle if force custom moves was on and pokemon were not randomized
- Ignore restriction chance on trainer and wild encounter randomization now properly ignores all restrictions (including evolution legality)
- The "Individual" wild encounter randomization strategy now properly reacts to evolution legality restrictions
- All wild encounter randomization strategies now properly react to the Force Highest Legal Evolution setting
- Fixed Zigzagoon's variant palette data
- (Emerald) Curse TM now uses the normal type palette to match FRLG instead of the palette of the move it was before randomization
- (FRLG) TMs and HMs can no longer be selected as custom shop items (FRLG cannot have TMs/HMs and normal items in the same shop)
v1.0-beta.5
New
Trainer Organization Type Randomization
- Gym and elite four type randomization
- Villainous team type randomization
- Randomized trainer organizations have their types written to the info file
Difficulty Options
- Trainer pokemon level modifier
- Base EXP yield modifier
- Bonus trainer pokemon options (can be applied selectively to bosses and/or minibosses)
- Minimum trainer pokemon IV options
- Smart trainer AI option (applies smart(er) AI to all trainers)
- Force custom movesets option (specifically choose moves for all trainer pokemon)
- Zero EV yields option
Settings Strings
- Settings can be saved to clipboard as a settings string
- Settings can now be loaded from settings strings
- The randomization info file now contains a settings string with the settings used for the randomization
Berry Tree Randomization (Emerald)
- Randomizes which berries each berry tree starts with (with associated options)
- Only applies to new save files (loaded a save state past the tutorial, etc. will skip the berry tree initialization script)
Other
- Item duplicate reduction strength options (strong/moderate/weak)
- Added an option to randomize or maximize IVs of pokemon received from in-game trades
- Added an option in the UI to reset to the default settings
- Updated to C# 9 and .NET 5
Improved
Trainer Randomization
- Completely overhauled trainer randomization UI to be simpler and clearer
- Gym trainers now have pokemon that fit their gym's type theme, even when they are classes that would normally have alternate rules, such as ace trainers
- Several trainers and trainer classes that should have specific type themes even though the majority of their pokemon are not that type (Lance, Agatha, etc.) now have overridden type themes
- The "Force Highest Evolution" option now pre-filters pokemon choices. This prevents cases like Shedinja appearing on a ground type trainer because Nincada is ground type
Variant Moveset Generation
- Replace all instances of a given replaced move with the same new move
- Use type overrides to determine moves to be replaced
- No longer select HM moves as new variant moves
- No longer select selfdestruct moves as new variant moves if the disable sefdestruct setting is on
Move Compatibility
- Completely overhauled move compatibility options UI to be simpler and clearer
- Add details on how the Intelligent Move Compatibility works to tooltips
- Intelligent HM compat now adds HM moves of variant types to compatibility. For example, if Hitmonchan becomes FTG/FLY, it will be able to learn fly. However, if Gyarados becomes ELE/FLY, it will not be able to learn fly, as it was originally flying type and unable to learn fly
Seed Selection + Post-Randomization UI
- Seed selection is now part of the Randomization UI flow
- Seeds are no longer saved as part of a settings string / file
- Removed the save settings file dialogue from the post-randomization UI flow (as settings strings are now saved to the info file). A separate settings file can still be manually saved
Info File
- Info file now contains settings string and randomized trainer org types (as noted above)
- Info file now contains the Dream Team if one is generated
- Info file now contains the TM and Tutor moves when randomized
- Info file now contains TM/HM/Tutor compatibility for all pokemon
Other
- Completely overhauled in-game trade randomization UI to be simpler and clearer
- Post-battle trainer scripts are now parsed, randomized, and written
- Improved keep important TMs settings to have separate lists for each game
- Added dig to the RSE important TMs list, as it is needed to unlock the regis
- Improved/added tooltips for Item Categories and related UI
- NPCs that give the same item in multiple branches (such as the Soda Pop man in RSE) will give the same new item in those branches when items are randomized
- Better error handling / text for opening unsupported ROMs
- Better move type overrides for Poisonpowder, Flash, and Will-O-Wisp
Fixed
- Fixed Huntail's palette data (primary and secondary colors were swapped)
- Properly classify Belue Berry as a Minigame Berry
- Fix several free space writing bugs
- Fix bag space checks on some randomized items
- Fix an issue where the main UI enables itself after a failed attempt to open a ROM
v1.0-beta.4.1
Fixed
- Fixed a bug where string seeds would not reproduce the same randomization results across an application restart
- Fixed a bug that made the item category UI unreliable
- Fixed a bug where variant pokemon that evolve from baby pokemon that are added in later generations (hitmons, etc) would have their move compatibility set incorrectly
- Fixed a bug where pokemon recieved from in-game trades could have no ability
- Fixed a bug where the Random option in weather randomization would give the ClearWithCloudsInWater weather, which is unstable on maps that aren't specifically layered for it
- Corrected the ROM support information to be accurate and more specific
v1.0-beta.4
New
- Individual fully evolved BST limit (min + max) in Dream Team generation
- Option to prioritize variants in Dream Team generation
Improved
- Better Item Randomization default settings
- Better Item Randomization tooltips
Fixed
- Fixed an issue with the Lucky Egg item category UI that would cause it to display its tooltip in place of its header
Known Issues
- Using the same string seed after restarting the application will not generate the same randomization, even with the same base ROM and settings. Using a number as a seed will produce the same results every time (also present in all previous versions)
v1.0-beta.3
New
- Type-Variant Pokemon Generation (with matching Color Palettes, Movesets, Base Stats and more)!
- Per-Category Item Banning, Skipping, Duplicate Reduction, and Category Preservation
- Post-Randomization UI flow that asks if you'd like to save the info dump or a copy of the settings you used
- Pickup (Ability) Item Randomization
- Option to update Wrap, Bind, Fire Spin, Sand Tomb, Whirlpool, and Clamp to their Gen V power/accuracy/PP
- Option to add an Item of choice to all Pokemarts and set its price
Improved
- Pokemon randomization no longer allows pokemon that would be the right type at a later evolution but aren't high enough level to have evolved yet
- Intelligent move compatibility now takes into account known incompatibilities from original TM/HM/Tutor learns
- Intelligent move compatibility now uses special logic for pokemon who aren't supposed to learn any TMs/HMs/Tutors (Ditto, Magikarp, etc.) and pokemon who are supposed to learn all TMs (Mew)
- Intelligent move compatibility now uses override types for certain moves (allowing GHOST pokemon to always be compatible with Curse, etc.)
- Seed input is now trimmed to remove white space at the start and end of the seed
- TM texts that are too long for the UI to display are now abbreviated
- The seed used is now recorded in the info dump file even when a random seed is used
Fixed
- Fixed a bug where a randomized Emerald ROM would crash at the catching tutorial if the randomized pokemon was genderless or all-female
- Fixed a bug with expanded movesets that could overwrite data past the end of the original movesets on the ROM
- Fixed a bug where the application would crash if an exception was thrown on a background thread (during randomization, etc.)
- Fixed a bug where items that become evolution stones through the "Use Item" impossible evolution fix were not functioning properly when obtained as hidden items
- Fixed a bug that would cause recurring trainers to not have battle type randomization applied to battles after the first, and pokemon randomization when using the "None" strategy
- Fixed an issue where data written in free space that ended with the free space byte could have data overwritten (most easily reproducible with variable-length strings written in FRLG)
v1.0-beta.2
New
- "Open Download Page" option in help menu and Download Page link in about menu
Fixed
- Fixed the Starter Pokemon, Gift Pokemon, and In-Game Trade settings not properly loading from settings files
- Fixed the "Random Battle Weather" weather randomization option (would give no weather on Fire Red and just steady snow on Emerald)
- Fixed bonus moves being applied twice to pokemon that evolve by an impossible evolution when fix impossible evos is enabled
Known Issues
- When using the "Use Item" option for the impossible evolution fix, items that are turned into evolution stones (Metal Coat, etc.) that are found in hidden item pickups will have a '?' at the end of their names and will not properly function as evolution stones. They will still have their normal functionality (also present in all previous versions)
v1.0-beta.1
Improved
- Improved Weighted Set UI
- Intelligent move compatibility now allows TM moves, etc to be learned when they are in the pokemon's original TM/HM/Tutor learn list
Fixed
- The "Evolve Without National Dex" setting for Fire Red now works properly for stone-based evolutions
- TMs now have the proper palette for the type of move they teach after randomization
- TM item descriptions properly contain the description of the new move they teach after randomization
- Removed the minimum bonus moves UI, as it didn't connect to any functionality yet