So I spoke a bit with Youkai on stream about the possibility of manipulating the RNG for things like chest loot. The RNG in FF12 interests me, and as a side project I have been working on a tool that helps you find your position in the RNG. While this isn't the first tool created for this purpose, it is pretty decent, as it uses the same code for the 1998 version of the Mersenne Twister RNG and theoretically can find your position in the RNG no matter how long your current play session is (good for speedrunning).
While a more in depth explanation of the FF12s RNG can be found here, I'll just post a quick summary of how the RNG (and this program) works:
The PS2 always seeds the RNG with the same seed.
Healing yourself always consumes one value from the RNG.
By healing yourself repeatedly, and plugging those numbers into the program, you can find your position in the RNG.
Once you know your position, there are many factors of the game that can be easily manipulated (particularly chest drops).
Ok with that short explanation out of the way, a few disclaimers about the program:
No range checking: if you put in an impossible cure value for the entered character stats, the program will enter an infinite loop searching the RNG. Dont fat-finger your inputs.
Sloppy code: I banged out this code over the course of a couple late-night programming sessions. Dont expect anything to be particularly readable or organized.
Unfinished features: I was in the middle of researching using background workers/multithreading operations to prevent the GUI from hanging during long operations (like entering impossible cure values), so some things probably wont behave as expected.
Basic usage:
1. Enter in your stats (level, mag, power, if you have serenity).
2. Heal yourself
3. Report how much you were healed to the program using the RNG search section
4. Repeat steps 2 and 3 untill you are confident you are at the Correct RNG position.
5. Use the proceeding RNG values to manipulate chest drops/rare steals/etc. The % column is most likely what you want to use for this as many manipulable events use the rng value mod 100 to determine success or failure.
With that said, here's the program. I'll probably be improving things in the future if time and interest permits. If you want more information on manipulating the RNG, there is a plethora of information that can be googled. There is plenty of information that hasn't been discovered yet though.
Enjoy.
While a more in depth explanation of the FF12s RNG can be found here, I'll just post a quick summary of how the RNG (and this program) works:
The PS2 always seeds the RNG with the same seed.
Healing yourself always consumes one value from the RNG.
By healing yourself repeatedly, and plugging those numbers into the program, you can find your position in the RNG.
Once you know your position, there are many factors of the game that can be easily manipulated (particularly chest drops).
Ok with that short explanation out of the way, a few disclaimers about the program:
No range checking: if you put in an impossible cure value for the entered character stats, the program will enter an infinite loop searching the RNG. Dont fat-finger your inputs.
Sloppy code: I banged out this code over the course of a couple late-night programming sessions. Dont expect anything to be particularly readable or organized.
Unfinished features: I was in the middle of researching using background workers/multithreading operations to prevent the GUI from hanging during long operations (like entering impossible cure values), so some things probably wont behave as expected.
Basic usage:
1. Enter in your stats (level, mag, power, if you have serenity).
2. Heal yourself
3. Report how much you were healed to the program using the RNG search section
4. Repeat steps 2 and 3 untill you are confident you are at the Correct RNG position.
5. Use the proceeding RNG values to manipulate chest drops/rare steals/etc. The % column is most likely what you want to use for this as many manipulable events use the rng value mod 100 to determine success or failure.
With that said, here's the program. I'll probably be improving things in the future if time and interest permits. If you want more information on manipulating the RNG, there is a plethora of information that can be googled. There is plenty of information that hasn't been discovered yet though.
Enjoy.