Happy September/October of 2015, everyone! I'm about 40 minutes into the run, which I have officially upgraded from "test run" to "final run" since with the help of some very lovely people (and GameFAQs posts from a decade ago), I've found out essentially everything I need to produce an optimized run. I've chosen to do Claude's story, as it has the faster RTA run, I'm more familiar with it, and it'll likely end up being the faster TAS. I don't know if both stories are publishable since a huge amount of the game is the same (probably about 90% of the game, mostly in dialogue), though in the future I may do Rena's story just for kicks.
Here's a fun thing I didn't know until I started: (U) is waaaaaay faster. For text reasons. I wish I was making this up. (J) text is full of unskippable pauses, meaning that longer dialogues could end up being close to a minute longer than comparable scenes in (U), which has absolutely no pauses. To put this into perspective, I did the first 15 minutes of the game on both (U) and (J), except not really because I did 15 minutes on (J) and roughly
12 minutes on (U) to reach the same point. This pattern isn't consistent over the entire course of the game, the intro is just extremely text heavy, but I'd estimate that a TAS on (J) would be somewhere between 20-30 minutes slower due to text alone, perhaps only a minute of which would be negated by the few faster things it has.
Here's a second, either more or less fun thing depending on the kind of person you are: This game uses Knuth's subtractive RNG, which has been described on Discord as "pretty bad lol". 56 values are used for it. One value serves as the index and increases linearly from 1-55 (though not always 1 at a time), and the other 55 are the actual random numbers that get generated as an array. Whenever the index is called, it advances and chooses the corresponding value in the array. When the index moves past 55, it wraps back around to 1 and some cool math games are performed on the numbers in the array.
Here's a dang example in Lua!
Language: lua
function SubGen(seed)
local n, r, s = 54, {}, { [0]=seed, 1 }
for n = 2,54 do s[n] = (s[n-2] - s[n-1]) % 1e9 end
for n = 0,54 do r[n] = s[(34*(n+1))%55] end
local next = function()
n = (n+1) % 55
r[n] = (r[(n-55)%55] - r[(n-24)%55]) % 1e9
return r[n]
end
for n = 55,219 do next() end
return next
end
subgen = SubGen(292929)
for n = 220,229 do print(n,subgen()) end
I'm currently
forcing smart people to code for me working on getting a prediction script for when I need to actually manipulate RNG extensively, in roughly 20-30 game minutes from where I currently am. Actually advancing the RNG in-game is extremely limited to the best of my current knowledge (though I will be investigating it closely): There's a known way of RNG manipulation through the Oracle skill, but this is a lengthy process that, depending on what you want to manipulate, can potentially take hundreds of uses to get to the result you want.
The index will advance every frame on the title screen, which pretty much means that every 55 frames you'll get a new set of values, but the problem there is that the RNG gets seeded the exact same way upon the game starting/soft resets, so you're essentially throwing the RNG back to the beginning if you want to try and save scum it. My goal is to not have to save scum at all, though with the nature of the RNG this could be much easier said than done, and it may mean that I will have to open the menu far more often than I already have to open the menu just because the RNG happened to line up in the exact way that I want to do what I need to do without losing time overall.
I don't know if I'll post full WIPs, a large portion of the TAS is just clearing text ASAP, but once I have more actual TAS-y stuff done I'll put together some videos of battles and all the manipulation necessary for them. I just finished talking to the king of Cross, sitting at a current TAS time of
39:12.60 and an approximate RTA time of
38:35.56. The
RTA WR of 4:49:23 reaches the same point in 39:32, so I'm about a full minute ahead of it so far. I should be making up a lot of time in RNG manipulation and battles, though.
EDIT:
Aw, heck, have a Streamable for the Alen-Tax fight, AKA "what I posted here several years ago, but better":
JK IT GONE
EDIT2: Had a minor desync issue which was quickly fixed. Updated times. Also, here's a userfile for my progress, since what I meant by "posting full WIPs" was "posting full encodes", because I am an idiot:
User movie #69484968390313208