GBA RNG Randomizer


Looked at a tutorial for it (involved Pokemon Firered, won’t be useful to you), those numbers are the offsets. So I looked around a bit more, and found a Markyjoe tutorial for offsets. So I think I’m set now. Thank you for helping me out and being patient, though!


Nice hack. I’ve always hated GBA FE’s broken RNG, and from some testing this completely solves the problem.

Unfortunately, it also seems to completely break suspend/resume when combined with the Skill System. Any chance of a fix?


The skill system is a bit complex and I didn’t design this with that in mind. Potentially I could but it’s not a high priority. Try taking out parts of the skill system if there are things you don’t need and perhaps that will help. Most likely something else changed a part of the ROM that I did (probably the suspend/resume part).


I’d imagine there are a lot of things in the skill system that need to alter suspend data, since it can apply buffs and debuffs. Not sure I’m willing to lose that capability.

What about the other way around? Could I remove the parts of RNG Randomizer that alter suspend/resume? I’m not terribly concerned about people abusing by resetting/resuming in the middle of attacks (since if they really want to cheat they can just save state/load state until they get the desired result).

Either way, I guess it’s yet another reason to add to the ‘list of reasons to learn ASM hacking’.


Sure you could probably remove the part of it that writes to the resume function and it would still function, but it would have the problem you said.


Good enough for now. Maybe I’ll try my hand at a better fix later, but for now I want to focus on just learning the basics (since I’ve been doing this for less than a week), rather than trying to make ASM hacks compatible.

Thanks for the help.


Do you know how the randomizer works during enemy phase/battles? I know it advances per frame on player phase, but what about then?

Here’s the context if you need it:

In a hack I’m working on, the hit rates are from 1-99 instead of 0-100.
My goal is to make a boss that teleports before moving, ambush spawn-style. However, I want to have both sides guaranteed to miss the first time he teleports - this will allow the player to know this will happen and not punish them for not knowing beforehand.
Assuming I can code the teleporting the way I want it to and figure out how to insert 100s into the RNG, when/where would I do it to make sure that the battle is affected by the 100s?


The code only burns random numbers if the phase is set to 00 aka player phase.


Finally got around to taking another look at this, and… I have no clue what was going on before, I must have broken something else or my ancient vba-m was the problem (have since updated).

However, I’m testing a vanilla fe8 rom with just RNGRandomizer applied, and if I restart mid battle and then resume I end up with different results. Specifically, restarting the game during the enemy phase and resuming gives me different results. It seems to work fine during player phase.


I did some preliminary testing on it earlier and I was able to get different results on player phase but not enemy phase. I will look into it more later to try to see what’s going on.


Fixed code that was causing the FE8 RNG to become incorrect when resuming your game. No$GBA doesn’t like my fix but VBA and Bizhawk do fine and are working properly.