Roll Eyes
Lips Sealed
<- 1  -   of 21 ->
List results:
Search options:
Use \ before commas in usernames
Edit history:
Tranquilite: 2015-03-08 03:37:17 pm
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.

A Quick update to the program:
Added range checking on heal values (no longer accepts impossible heal values).
Added spell potency selections for IZJS values.
Added steal results with and without thief cuffs to display.
Don't know what to speedrun :(
Cool man. I'll take a look some time. I think it's going to take me some serious noodling to figure out how the RNG class works and understand it. Still cool though. Maybe I can help you develop it some once I have an understanding of it.
My suggestion is to not try and understand the RNG class, and just treat it as a black box (that's what I did). sgenrand() seeds the random number generator (the equivalent of a PS2 hard reboot) and genrand() fetches a random number and advances the sequence by one. Because of the way the RNG works, you cannot go to any arbitrary position in the sequence and must start at the beginning and and move forward one value at a time until you arrive at the desired position. However, I also tossed in a couple methods that will let you save and load the internal state of the RNG in case you want go back to a specific point.

Good luck!
Don't know what to speedrun :(
Ok guys you want to check this out. I updated Tranquilite's program to help you force chest appearance as well as the items you get from them. See the proof of concept here:

One thing to note is that it does not work on any zone with an NPC as they completely foobar the RNG. So Golden Amulet's wont be able to be manipulated due to the Chocobo.
Edit history:
Melodia: 2015-03-11 07:37:33 am
This is really neat. It's crazy it took this long to make such a program really (well it says it's not the first tool but if others have been why havn't people tried using it for runs?), I know the RNG stuff has been known for a quite a long time.

Will this work on PCSX2? Or does it use a different seed?
You can never run enough games
Wow, it's going to be really cool to see how the route changes from this, especially if its cutting out some of the farming, that's going to make it much nicer to both run and watch. Can't wait for attempts with this being used to start up!
Don't know what to speedrun :(
Yes it will work on PCSX2 Melodia. I have tested it on both console and emulator.

There is currently some debate among FFXII speedrunners MLSTRM about if this will actually save time. My initial thought was that we could use it to cut a round of jellies. The problem is that you lose a lot of LP that way. We are going to have to do some testing to figure out if this changes the route or if it just gets is a couple items that are nice to have. There is a small chance it won't be useful at all in an any% SS run. It will definitely be useful in an Order of Ambrosia run though which someone is currently routing.
Edit history:
AlecK47: 2015-03-12 02:07:37 pm
Quote from MLSTRM:
especially if its cutting out some of the farming, that's going to make it much nicer to both run and watch.
lol, no.  Though I really, really wish you were right.

I did some number crunching on the gil needed and I do have some results to report.  It is possible to cut out one of the Jelly grinds, but doing so is not easy, and requires so much manipulation that I'm not entirely sure it would be faster (or going yolo to a degree that nobody would want to do).  I also haven't looked into how things would change for LP and magic stats with the inevitably lower levels yet.

Assuming three Golden Amulets are acquired before Jellies this should work just fine.  With only two, Basch’s LP could suffer too much (which I will look into soon) and gil would be tight enough that you couldn’t miss any of the chests in the first group I’m about to list.  And yes, I realize how rough this sounds.  If When the run becomes optimized enough that these strats are mandatory to hope for a record (assuming they actually save time, of course)… yeah, it won’t be fun.  Especially because the wayward chocobo in the area with the Golden Amulet chest makes it impossible to manipulate the chest's contents.  Also, in order to manipulate the chest to spawn you would need to go three zones deep into Henne Mines (or just leave it after Tiamat), kill some bats near the exit, then finally manipulate the spawn - waaaay to much time for what would still be a 22.5% shot at the amulet.

Chests between Jelly farming and the Phon Coast Camp
Ice Shield (Paramina Rift, Icebound Flow): If you can’t reasonably manipulate both the Glacial Staff chest and this one to spawn, so be it, but if it does spawn, it’s easy to manipulate the shield.  Sells for 1250 gil and is nice to have against Mateus.
Glacial Staff (Paramina Rift, Icebound Flow): Saves 2400 gil over purchasing one.
Golden Armor (Paramina Rift, Freezing Gorge): Sells for 1600 gil and isn’t far off the main path.
Megalixir (Stillshrine of Miriam, Ward of Velitation): Instead of just hoping for the coin flip, you can kill the Miriam Guardian with reflected Aero and manipulate it.
Firefly (Stillshrine of Miriam, Walk of Reason): The least valuable chest (sells for 2500) in an area with three chests to manipulate.
Sorcerer’s Hat (Stillshrine of Miriam, Walk of Reason): Saves 4000 gil over buying one – definitely get this one.
Lamia’s Tiara (Stillshrine of Miriam, Walk of Reason): Sells for 3200 gil.
Pirate Hat (Mosphoran Highwaste, Northern Skirts): Saves 4000 gil over buying one.
Bone Mail (Salikawood, Trunkwall Road): Sells for 2950 gil.

Of these chests, you can miss about 5,000 gil worth (unless, as mentioned, you couldn’t afford a third GA).  Practically speaking, this probably means the Ice Shield chest and one of the three in Walk of Reason.  For several of these chests, Immobilize despawns will probably be used to help manipulate either the chest contents or whether it spawns.  However the zombies by the first statue in the Stillshrine will have to be killed, either with Phoenix Downs or magic, so that the chest spawns for Walk of Reason are possible because they don’t despawn.

Chests between Phon Coast Camp and Archades
Francisca (Tchita Uplands, Fields of Eternity): Because this one is before Mandies, it’s probably best to ignore this one because of the step manipulation, but it sells for 5750 gil.
Gokuu Pole (Sochen Cave Palace, Mirror of the Soul): Sells for 4500 gil and you can set up the spawn in the zone after Mandies, but manipulating the chest contents may not work nicely.  If only the chest spawn is manipulated, you only have a 25% chance for the pole.  Also, you can easily set up Traveler just after getting the chest.
Officer’s Hat (Sochen Cave Palace, Falls of Time): Sells for 3500 gil and should be easy to manipulate (though you may have to kill/despawn some things to manipulate the chest to appear).  Assuming this one isn’t blocked by the waterfalls (something I haven’t checked yet), it’s right on the path, too.
Gaia Hat (Sochen Cave Palace, Hall of Shadowlight): Sells for 3500 gil, always spawns, and is easily manipulated after the Ahriman fight.

You really only need enough to be able to afford Aero (6800 gil) from these chests.  The Gaia Hat is a gimme, so at most you only need to get one of the other three chests.

Chests between Archades and Balfonheim (pre-Pharos)
5040 gil (Balfonheim, Sea Breeze Lane): Figured I should mention this one, if only to show that I didn’t forget about it. Tongue
Deathbringer (Feywood, The Edge of Reason): Sells for 8000 gil and you go near the chest anyway.  Worst case you have to double back after getting Giruveganus to stop chasing you.
Black Mask (The Great Crystal, Kabonii Jilaam Pratii’vaa): Sells for 6200 gil and always spawns.  Pretty much the only thing that can go wrong here is if the Oses mess up the rng by attacking you before you grab the chest (remember to toss a float mote to avoid the trap).
White Robes (The Great Crystal, Bhrum Pis Avaa): Sells for 6750 gil and always spawns, though it does require going through an additional zone.

Thanks to the 5040 gil chest and the equipment you can sell here you only need a bit shy of 4k to be able to afford everything you need, so just get any one of the other three chests.  Quality Stones and such from Brainpans should get you enough for the Bahamut.

As a final note, if you only manipulate a chest to spawn (I'm ignoring the 100% spawn chests here, naturally), the only one in this list with a 50% chance to give you what you want is the Deathbringer chest; all the others are 30% or below.
Don't know what to speedrun :(
Ok so here is version 1 of Yokai's chest manipulator tool. When you open it go to the file menu and choose "Chest Manipulation". You can enter up to 3 party members but whichever ones you entered you have to make sure you cast using all members and in the order that they are entered. Please let me know if you find any bugs or if you have ideas about how to improve it.
OK, so my last post about gil was slightly inaccurate because I missed the gil you have to pay to Jules (I used notes that don’t mention that as a reference and was honestly more focused on chests and the manipulations they’d require).  As a result, one additional chest would be required in the Phon Coast Camp to Archades section.  FWIW, the Officer’s Hat chest is not blocked.

The LP and XP work out reasonably well, though a couple fights would be riskier because of lower magic stats on the casters (especially the round 1 takedown of the first Rook in Cid 1).  Even having only 2 Golden Amulets for Jellies would be OK because fortunately Basch’s LP isn’t super important and in a pinch, Vaan can do Shemhazai for him (which would only save 40 LP, but when things are that tight…).  I’m not going to post licenses for this route, though, because I just don’t think it’s worth the tradeoffs.

So how much time would all this manipulation cost?  A fair amount.  Even with the ability to test three rng numbers at a time, I figure a good average manipulation time would be something like 30 seconds; it would naturally be very luck-heavy, but there’s enough of it to even out somewhat regardless.  The route requires 11 chest manipulations and 5 to 8 spawn manipulations (doing fewer of these would require a lot of luck, in addition to some extra running to make the strats at all feasible – they’re still far from guaranteed though).  So that’s somewhere from 8-9.5 minutes just for the chests.  Add in the extra running the chests would require (1-2 minutes or so) and the extra stuff you’d have to do to kill or despawn enemies for the manipulations to be possible (1-3 minutes, I’d say), and you’re looking at 10-14.5 minutes as a conservative estimate that assumes everything goes well; and that’s only after you get two early Golden Amulets, which, as any FFXII runner could tell you is anything but likely.  For reference, a good split for a second round of Jellies could be as low as 15 minutes (though 17+ minutes is significantly more likely).  Simply having lower levels and fewer LP – and the lower magic stats on the casters that go with that – would mean a good chance of losing time against later bosses, and the lower HP for Basch would mean a few already treacherous running sections would be more dangerous as well.  Long story short, this route would be RNG hell in a game that is already very unforgiving for minimal gains that would in all likelihood be lost in the rest of the run.

If anyone wants to do some more precise testing on the timing for all of this, be my guest, but based on the admittedly rough work I’ve already done, I’m not sure this route will ever be used as it is now.  From what I can tell it’s far more likely that you’d save 5 minutes over the course of a run with the current route than you would save the same amount of time by doing the manipulations to skip a round of jellies.
Don't know what to speedrun :(
Yeah I think you are right Aleck. Too bad. Still though you will be able to use the RNG helper in OoA which is a very long run so hopefully it will actually save time there. Though I guess I'm not exactly positive of that at this point either. Would a guaranteed second Z-Spear and Brave suit save as much time as it takes to get them? I suppose possibly. Brave suit alone probably saves a fair amount of time on Yiazmat right?
Edit history:
AlecK47: 2015-06-16 10:48:18 pm
AlecK47: 2015-06-16 10:24:19 pm
Well, the last post talks about Order of Ambrosia (and to answer it, yes, using it for a second Z-Spear and a Brave Suit is planned), and although I haven't really posted anything about the routing in a public place, I have been working on it from time to time.  Enough people have shown interest, that I suppose I may as well, especially now that I've ironed out a couple things that I've been procrastinating.

The "Notes" doc is a general overview of the route so far, written with the intent that somebody familiar with the any% speedrun could at least get the gist of it all.  "LP" and "Licenses" should be pretty self-explanatory, though unlike in "Notes" I made no effort to explain anything in them beyond their basic function.  Also, only the first sheet in "LP" is relevant; the random-seeming stuff on the second page is just a reference for XP totals that I didn't feel warranted its own document.

As of now, the main question is how best to grind levels in the later middle of the game.  Up to that point, it's mostly Jellies because of their gil yield.  But once the expensive purchases at the end of the current route are made, rates of XP and LP gain are more important than gil yield, and said expensive purchases (along with a Zodiac Spear) open up some more options.  The main objectives are to go into the Zalera fight at level 49 so that it can't do crap to you, and to get to the point where grinding Abysteels in the deep Henne Mines is at least somewhat reliable (not to mention that unlocking that area is fast and reliable).  It may just be that doing one more round of Jellies is the way to go, perhaps ignoring chain level and killing other things when resetting them, but it's worth exploring other options.

Edit: ...And I don't have anything terribly specific for gil on hand.  Not sure what I did with it, but I know what I posted here works out and should be pretty consistent.
Edit 2:  Just realized that I messed up the licenses at the end; the weapon licenses Vaan and Ashe get are for Deathbringers, not Defenders.  I'll fix that tomorrow and post updates for those two.
Edit history:
AlecK47: 2015-06-17 12:20:45 pm
I was thisclose to sleeping on the stuff I posted last night, and I probably should have...  I've made some improvements, and discovered that a fourth round of Jellies with Embroidered Tippets is very nearly a necessity (used old saves when I did my math last night, and they had very good gil luck).  The additional round of Jellies also helps with the LP shortage caused by the derp I mentioned in the second edit in my last post.

I should probably mention, for the sake of clarity, that the intended party is Basch as the tank, with Vaan and Ashe as the casters and Penelo as the initial Nihopalaoa user.  Vaan can very easily be swapped with Penelo, but he has better Strength, and that helps at higher levels.  All in all it's likely to be a wash between them, so I'm seriously debating the swap, but depending how strats end up in the late game it might effect DPS, so I'm not going to decide just yet.
Rather than continually posting attached documents like I did above, I've decided to move it to googledocs.  The notes will be actively updated as the routing progresses, but I believe the licenses will not, simply because beyond the point that doc gets to, specifics don't matter that much.

And yes, I've figured out what the best grind spot is and am, as of the time of this post, working on writing up things after Zalera.  Surprisingly enough, that grind (Dead Bones at Overlooking Eternity in the Nabreus Deadlands) may actually be the single fastest place to grind all the way up to level 99, according to a rough estimate I did.  It's even 15-20% faster leveling than grinding Abysteels in Henne Mines, according to my data.
Edit history:
Youkai: 2015-09-25 01:14:49 am
Youkai: 2015-09-25 01:13:41 am
Don't know what to speedrun :(
Ok guys the RNG helper has been upgraded. Here is the new version. This version works with areas that have NPC in them. You will have to determine how many RNG the NPC action consumes. For the GA chest the Appears Percent is 45 and the RNG Position is 7. You can use that to manipulate the chest when entering from within the mine. To get the GA you want to use 55 and 45 for gill and item 1 percents and leave the box unchecked. Every time the chocobo moves it consumes 4 numbers so 4 is your "Consume next". I still don't know when exactly the numbers are consumed or if they are all consumed on the same frame. I do know they are consumed while the chocobo is stationary. If you start your cure cast just after the chocobo stops then it will execute after the chocobo has consumed all 4 of it's numbers.

While playing around with it I found that the timing is pretty tight on the chest. The chocobo takes between 4 and 6 seconds per movement cycle and 2 seconds of that is stationary. That means you realistically have a 2 second window to trigger the chest. I found the best way to do it was to immobilize someone while they were facing the chest with the open option on screen. Then run off with your other characters and get the RNG. That way you don't have to try and time the run back. As soon as the chocobo starts to move you just party swap and open the chest.

The tool has been upgraded since I streamed the demo. Now the +1, 2, and 3 consume show a number instead of "Yes/No". The way it works now if you see a "1" as the value next to "+2 consume" that means you need to cure once and the chocobo needs to move twice. At that point you can open the chest. Let me know if you have any questions.

Here is the highlight of the demo if you are curious:
Don't know what to speedrun :(
Updated RNG helper. Now with new features!
Don't know what to speedrun :(
Updated version. Fixes a bug when only entering data for one chest.
Don't know what to speedrun :(
Bug fix again. This fixes a bug with the "Consume" function. Also number of consumed values are now shown in curly braces in the output.
Don't know what to speedrun :(
Bug fix again. This fixes a bug when you don't enter the chest gil amount.
Greetings from the future. With FF12: The Zodiac Age recently released, I thought I would revisit the RNG manipulation mechanics of this new PS4 HD port. After spending a bit of time over the past couple days I feel like I have learned enough to share.

For starters, the bad news is that the PS4 version of Final Fantasy XII: The Zodiac Age does not use the same PRNG algorithm as the original PS2 version (no surprise there, really). The good news is that I have already figured out the new algorithm, and the seed used, and seem to be able to use cure to find my place in the PRNG and accurately predict future cure values. I assume the rest of the Psuedo random aspects of the game remain unchanged, but I haven't had time to find out for certain. While I don't have anything particularly usable to release, I can at least share my findings for the more CS-minded folks to enjoy.

While the PS2 version used the old 1998 version of the Mersenne Twister algorithm, the PS4 remake uses the "new" (or at least newer) 2002 version of the MT algorithm. Both the PS2 and PS4 initialize their respective algorithms with the same seed of 4537 (Phew. I was NOT looking forward to brute-forcing the seed). The PS4/FF12:TZA seems to reinitialize the PRNG whenever you restart the app, so at least at first look, it seems that you dont need to restart the PS4 hardware to reset the PRNG.

Over the next week or so I plan on refactoring/rewriting my FF12RNGHelper app and pushing it to a proper git repo or something. I'll update this thread if I find any other interesting differences in how the RNG is handled in FF12:TZA. While it seems that manipulating the RNG hasn't gained much traction for speedrunning, at least I'll be able to casually manip Zodiac spears to my heart's content.
Done. Latest version is up on my github repo. You can grab the binary directly here. I've confirmed that the RNG works exactly the same as the IZJS version, but with the updated MT algorithm, so most RNG information on the web should also apply to TZA.
Great job, thank you for all the hard work!
Greetings from... the present? I took the github repo that Tranquilite worked on (fantastic work, btw) and added several features and optimizations. It should be a lot easier to do a lot more with this tool now. Let me know if you have any questions/comments/concerns!

github repo:
I've been trying to get the seitengrate for about a week. I finally discovered that when i create a Rex file it always puts be the the 500's as the starting rng position. Neither the 88,97,90 or the 97,94,95 strings work this far in.  I've created about 10 Rex files and this is always true. Rex is at level 3 and magic power 23 and is alone. Any ideas?