• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: Pokemon Crystal Randofuser

170
Posts
11
Years
Pokemon Crystal Randofuser

This is a special randomizer tool compatible with Pokemon Crystal. It fuses each Pokemon with another existing one at random with matching evolution stage. All the data and characteristics of the Pokemon such as moves and base stats are combined in different ways, as described below.

How Pokemon data gets fused

The base Pokemon retains the Pokedex number, sprite, cry, and first half of the name, while the secondary Pokemon can be identified by its palette and second half of its name. Each Pokemon has been assigned a prefix and a suffix so that the names are properly merged and the secondary Pokemon can be easily identified.

Evolutions
Pokemon will only be merged with another Pokemon of the same evolution category. For example, Charmander might be fused with Mareep, but not with Ekans. The combinations will be consistent across an evolutionary line; say Venonat is merged with Slugma, then Venomoth will be merged with Magcargo. Evolution categories can be further filtered before the randomization, for example to make Legendary Pokemon independent from other 1/1 evolution Pokemon.

Branched evolutions have been removed. Which Pokemon retains its evolutionary line is selectable. For example, if the user chooses Politoed to be the evolution of Poliwhirl, Poliwrath will be independent and will be merged with another independent Pokemon like Heracross or Mr. Mime. Note that the independent Pokemon will most likely be unobtainable due to not appearing as a wild Pokemon.

Trade evolutions have been replaced with reasonable level-based evolutions. If selected by the user, happiness evolutions will also be replaced with reasonable level-based evolutions.

If two Pokemon with level-based evolutions are fused, the resulting Pokemon will evolve at the average of the two. If the "Average Base Stat patterns only" setting is selected, however, the base Pokemon's evolution level will weigh 80% of the total. Refer to the *Settings* section for more information. If either Pokemon evolves through other method (happiness, stone), the evolution type of the base Pokemon will be tranferred to the resulting Pokemon unchanged.

Types
The resulting Pokemon will have a type taken from the base Pokemon and a type taken from the secondary Pokemon whenever possible. If either Pokemon is dual-type, the type chosen from it will be scored according to the custom type priorities (the type with the higher priority of the two will be chosen). If both types have the same priority, the primary type will be chosen. If both Pokemon are of the same single type, the resulting Pokemon will also be of only that type.

If the resulting Pokemon is dual-type, its primary type will be the one with the higher score of the two, and its secondary type will be the one with the lower (second-highest) score. If both types have the same priority, the primary type will be the one that was taken from the base Pokemon and the secondary type will be the one coming from the secondary Pokemon, unless the base Pokemon passed its secondary type and the secondary Pokemon passed its primary type.

Consider for example a Gyarados (base Pokemon) + Lanturn (secondary Pokemon) fusion. If Water type's priority is 7, Flying type's priority is 8, and Electric type's priority is 9, the resulting Pokemon will be Electric/Flying. If Electric's priority was 8 instead, the resulting Pokemon would be Flying/Electric. If the priorities were Water=10, Flying=8, and Electric=9, the fusion would be Water/Electric. If they were Water=10, Flying=9, and Electric=9, the fusion would be Water/Flying, just like if all three types had the same priority value.

Moves
Learnsets are combined, including level-up, egg, and TM/HM moves. For example, if Cyndaquil gets fused with Gastly, it will learn Ember at level 12 and Mean Look at level 13, and will be able to learn both Fire Blast and Shadow Ball via TM. Moreover, level-up moves are arranged by level. When the moveset of a wild or trainer Pokemon is filled, it will end up with the last four moves that the two original Pokemon could learn by that level. For example, a level 30 "Gyarasect", will show up with Bite, Dragon Rage, Spore and Leer. Trainers no longer may have custom movesets.

Pokemon such as Raichu, Arcanine or Starmie that could only learn a subset of moves compared to their pre-evolutions have had their movesets updated to match the moves learnable by their pre-evolutions, although with a small level delay similar to the patterns found in other evolved Pokemon.

Base Stats
The user can choose whether each Base Stat is averaged or whether only the base stat patterns are averaged, keeping the BST (base stat total) of the base Pokemon unchanged. The second option differs from the first in that the resulting values of the base stats are then multiplied by a "BST factor", which is the quotient of the BST of the base Pokemon and the BST of the secondary Pokemon. This way, trainer and wild Pokemon can keep their original strength.

Growth rates
If 'average base stat patterns only' is chosen, the Growth Rate of the base Pokemon is retained. If not, yet either Pokemon's Growth Rate is parabolic, the base Pokemon's Growth Rate is also retained. The parabolic Growth Rate is a special one related to Pokemon that appear early in the game (such as the starters) in order to make them grow fast at lower levels and slow-ish at higher levels. Otherwise, that is, when the Growth Rates of both original Pokemon are linear, the experience requirement to grow levels is averaged, introducing two sub-types of Growth Rates for this purpose.

Additionally, there is a selectable option to homogenize Growth Rates, ignoring all the other rules. This option will make all Pokemon use a custom Growth Rate with characteristics from the parabolic and fast growth rates. It makes all Pokemon grow relatively fast at all level ranges, which is ideal to soften any necessity of grinding.

Other data
- Base Experience: the average of the two original Pokemon. If 'average base stat patterns only' is selected, the base experience value of the base Pokemon weighs 80% of the total.
- Catch Rates: calculated with the geometric mean of the catch rate of the original Pokemon, i.e. the square root of the product of the two values. If 'average base stat patterns only' is selected, the catch rate value of the base Pokemon weighs 80% of the total.
- Gender: if neither of the two original Pokemon is genderless, the average of the two. For example, if one Pokemon has a 2/16 chance to be female and the other Pokemon a 8/16 chance, the resulting Pokemon will be female 5/16 of the times. If either is genderless, the gender rate of the base Pokemon is kept.
- Wild Held Items: follow the same logic used to obtain the types
- Egg Groups: follow the same logic used to obtain the types
- Hatch Cycles: the average of the two orginal Pokemon. If 'average base stat patterns only' is selected, the hatch cycles value of the base Pokemon weighs 80% of the total.

Settings

Base Stat Total
Select whether the base stat total should be retained from the base Pokemon or also averaged, as described above. Choose "Average Base Stats and BST" if you prefer unpredictability and variability, or choose "Average Base Stat patterns only" for a more stable experience.

Homogenize Growth Rates
As described above, choose this option if you want all Pokemon to grow at the same speed and also relatively fast. A good idea if you are planning to bump the trainer Pokemon levels and/or looking for a nuzlocke run.

Replace Happiness evolutions
If this option is selected, Pokemon that evolve via happiness will be replaced with level-based evolutions, evolving at a reasonable level based on their overall strength. It's especially useful for balancing baby Pokemon like Togepi and Pichu.

Trainer Level increase
Choose whether you'd like to increase the level of all trainer Pokemon by a custom percentage. Kanto trainers include all post-League content except the battle against Red. This part is known for being considerably easier than the Johto part, so increasing the levels in Kanto can be a good idea to maintain a decent challenge.

Evolution category filters
Choose whether you'd like to further filter which Pokemon can be fused with which Pokemon. The legendary filter is good for purity while the other two are intended to provide stability if averaging BST is selected. A total of 16 Pokemon are included in the 1-stage filter (BST-based, up to Tangela) and a total of just 5 in the 3-stage evolution filter (Pichu, Cleffa, Igglybuff, Caterpie, and Weedle lines). Keep in mind that these filters cut versatility in the randomization, especially the 3-stage one.

Randomize Wild encounters & Randomize trainer Pokemon
Select these options if you want to completely randomize the species of wild and trainer Pokemon, respectively. Before being fused, Pokemon will be arranged in groups based on overall strength and other factors such as rarity and evolution stage. 6 groups are used for trainer parties and only 4 groups are used for wild encounters (less exclusiveness of strong Pokemon to ensure variety). Each wild Pokemon slot and/or trainer Pokemon will be replaced with another that belongs to the same group. This arrangement has nothing to do with how Pokemon get fused with each other. Note that this strength classification may lose accuracy once the Pokemon are fused if "Average Base Stat patterns only" was not selected, although the evolution stage was also factored in for this reason. Logic and consistency are not preserved; for example, you will be able to find Fire-type Pokemon in the sea and Grass-type Pokemon in caves, and as for trainers, leaders and other trainer classes will no longer be type themed and your rival will not retain his party across battles. The randomization of wild Pokemon includes fishing, Headbutt, Rock Smash and Bug Catching Contest encounters, but does not include static encounters and roaming legendaries. Unown is not randomized in either mode.

Defaults
There are some suggested defaults available to be chosen.
- Classic: A stable option with unchanged BSTs and unrandomized wild and trainer encounters, that also stays true to the trainer leves of the original game.
- Balanced: Like classic, but balances the Kanto trainers and homogenizes the growth rates to soften grinding. A good idea for nuzlocke and similar runs.
- Difficult: A more challenging setup that averages the BSTs, but adds additional filters to prevent extreme combinations.
- Crazy: The toughest and least predictable option. Trainer levels are considerably raised. Hardcore players may try this along with "Homogenize Growth Rates" for a very challenging nuzlocke run.

Evolutionary Lines
These settings are independent from the other ones and let the user choose which Pokemon follow its original evolutionary line. It also includes an option to separate Scyther and Scizor, as they have the same BST. Keep in mind that the Pokemon that you leave unselected are not obtainable, and may only show up in trainer parties.

Type priorities
Assign a different priority to each type to determine how the types should be fused, as detailed in the *Types* subsection above. You can use this to favor the appearance of rare types like Dark, Ice, Steel or Dragon, or just your favorites. You could lower the priority of generic types with lots of monotype Pokemon like Water or Normal so that they become a little less common. Be careful with type priorities though, as decreasing the priority of certain types could make them extinct. For example, if the Flying type is tied for the lowest priority, it will never show up given that there's no Pokemon with Flying as its primary type. This is the reason why the Normal type priority defaults to one point below all the other types; this way Normal/Flying Pokemon will pass their Flying type, while Pokemon like Xatu, Butterfree or Dragonite pass their other type.

Catch 'Em All mode
Two Pokemon Crystal ROMs are provided in the download. *crystal-notcea.gbc* is the regular one, while *crystal-cea.gbc* incorporates additional changes to make all 251 Pokemon obtainable, including those that may become unattainable as a result of the *Evolutionary Line* settings. Even if you're not interested in completing the Pokédex, the Catch 'Em All option provides more variety to the Pokemon you can capture and therefore build your team with. In the Catch 'Em All mode you will also be able to purchase the evolutionary stones, except Moon and Sun, in the Ecruteak Mart. For information on where the new Pokemon can be found in the Catch 'Em All mode, refer to the *catchemall.txt* file provided in the download.

About combining this mode with the Randomize Wild encounters option:
The Catch 'Em All mode was not made with the possibility of randomizing wild encounters in mind. At first glance, both modes seem contradictory, and in a way, they are. Randomizing wild encounters will override most of the changes provided by the Catch 'Em All mode. In practice, the only differences between both ROMs would be that with Catch 'Em All, evolutionary stones will be available in the Ecruteak Mart and that the Celebi event in the Ilex Forest will be active. If you're planning to turn on wild encounter randomization, choose one ROM or the other depending on if you wish to activate any of these two changes. Ironically, the Catch 'Em All mode won't ensure that the Pokedex can be completed if you randomize wild encounters, but due to all the wild Pokemon slots (up to 21 per area/map), it would be rare that a Pokemon (or a pre-evolution) doesn't appear anywhere.

Other notes

- There may be hardcoded references to Pokemon in the games that still use non-fused names. If so, they refer to the base Pokemon.
- Unown is not fused with any Pokemon, and neither any Pokemon may be fused with Unown.
- The Battle Tower is not available.
- The odd egg Pokemon has random DVs.

Download & How to use

- Download crystal-randofuser.zip and extract the .jar file and the two .gbc files
- Rename either crystal-notcea.gbc or crystal-cea.gbc, depending on which mode you want to play, to crystal.gbc. Note that in crystal.gbc, .gbc is the extension. If your system doesn't display the extension suffix as part of the filename, name the file just crystal instead.
- Execute crystal-randofuser.jar. Choose your desired settings and click on the "Randofuse!" button to generate a ready-to-play "randofused" ROM that will named crystal_randofused.gbc
- Do not combine this tool with any other hacking tool or randomizer

Some pics

pic1.png
pic5.png
pic3.png
pic4.png
pic6.png
pic2.png
pic7.png
pic8.png


Changelog

v1.1
- Added catch 'em all mode
- Added option to turn happiness evolutions into level-based evolutions
- Minor bug fixes and improvements

v1.2
- Fixed wrong species bug with special evolutions
- Johto starters are now available to be caught in the catch 'em all mode

v1.3
- Added type priorities
- Ready-to-randofuse ROMs are provided rather than .ips patch files. Don't tell your uncle who works at Nintendo about this!

v2.0
- Added separate options to randomize species of wild and trainer Pokemon
 
Last edited:
170
Posts
11
Years
Are you sure you patched the ips patch into crystal.gbc? It also changes the header a little, so that the tool can filter out unpatched roms. Another possibility is that you downloaded crystal v1.1 instead of v1.0 as noted in the readme.md file. I know other people have got it working already (in Windows too).
 
1
Posts
7
Years
  • Age 32
  • Seen Jun 8, 2023
I was having the same problem as SpikeJolteon and i finally find the answer

The rom has to be named "crystal" simply and not "crystal.gbc",at least that work with me...

Great tool anyway
 
170
Posts
11
Years
By crystal.gbc I meant filename.extension. If your OS is hiding the .gbc extension from the file name, then naming it crystal.gbc would make it crystal.gbc.gbc. In WIndows, if you have a default open program assigned to .gbc files, the extension will be hidden. That said I should've guessed that this was probably the issue though.
 
3
Posts
7
Years
  • Age 25
  • Seen Aug 21, 2021
I've also had troubles trying to get this to work. I've downloaded Pokemon Crystal (V1.0) from multiple sites (none of which with the exact title, except for a disassembly of both v1.0 and v1.1) and none of them worked. Renamed them crystal.gbc (filename.extension, of course), patched them with the .ips file using LIPS, and in the same folder as the .jar. I did them one at a time. No matter what I do, none work. Help?
 
170
Posts
11
Years
I've also had troubles trying to get this to work. I've downloaded Pokemon Crystal (V1.0) from multiple sites (none of which with the exact title, except for a disassembly of both v1.0 and v1.1) and none of them worked. Renamed them crystal.gbc (filename.extension, of course), patched them with the .ips file using LIPS, and in the same folder as the .jar. I did them one at a time. No matter what I do, none work. Help?

Sorry, I hadn't noticed your post until now. Have you had any luck since then?
 
3
Posts
7
Years
  • Age 25
  • Seen Aug 21, 2021
No, no luck. Tried downloading from a couple more sources and even the v1.0 from the disassembly, but nothing.
 
4
Posts
7
Years
  • Age 28
  • Seen May 22, 2018
hey this randomizer is great, original and quite fun, i've enjoyed my run a lot!

to not be a useless post i have some feedback:

- you could fix the trasnform glitch? it happened to me when i catched a "HERAMEW", and dragged me out for a while until i caught it.

- some suffixes are similar and confusion, especially on the case of gyarados/ariados share the same "-ADOS" i think. i know the palette also tells you which pokemon it is, but when you are playing faster you don't realize about that on sight.

bonus (my team after defeating red):
Spoiler:
 
170
Posts
11
Years
hey this randomizer is great, original and quite fun, i've enjoyed my run a lot!

to not be a useless post i have some feedback:

- you could fix the trasnform glitch? it happened to me when i catched a "HERAMEW", and dragged me out for a while until i caught it.

- some suffixes are similar and confusion, especially on the case of gyarados/ariados share the same "-ADOS" i think. i know the palette also tells you which pokemon it is, but when you are playing faster you don't realize about that on sight.

bonus (my team after defeating red):
Spoiler:

You mean it turned into a Ditto? I'll write these two things down in case I do an update in the future.
 
170
Posts
11
Years
A new version of the Pokemon Crystal Randofuser is up. Now includes a Catch 'Em All mode among other things!
 
4
Posts
11
Years
  • Seen Apr 21, 2024
Found a couple of bugs:

1) The odd egg doesn't seem to hatch shinies, went over 40 eggs with not a single shiny.

2) Breeding just doesn't work…at all. I tried to breed an Ekans with a Gyarados and it said they had no interest so yeah kind of a problem.
 
1
Posts
6
Years
  • Age 21
  • Seen Aug 1, 2018
Looks interesting, but I'm having an issue where no matter what I name the file, the randofuser says that it's either not in the directory or isn't a correct ROM. I've tested this with the ROMs you provided and with my own version of Crystal, but neither work. (Yes, they were both named crystal and I even tried crystal.gbc)
 

Kitsune_XIII

Electric Afficianado
1
Posts
12
Years
  • Seen Apr 18, 2019
I'm having the same issue as Eddiemate, no matter what I try. A friend randomized my file for me so I think I was able to get around it but nothing worked to get it to recognize the ROM or that it was in the same directory.
 
Back
Top