I gotta try those bugs you posted there neo.
I suppose that lowest character means the one in 4th position and it has not to do with stats, like experience or speed, correct? (I know it should say in the link you provide, but I can only read it with a translator :P)
Not sure if he has posted here before, but I do remember Yu-ki(Hs) from his Kirby Super Star TASes (another game I love), always hoping to see an update on that TAS.
Yes. It's the 4th character. Sorry for my bad English.
edit: Btw, there is another time saver. Shopping should be done at Kelb after getting a Hiryuu Sou. PhoenixDowns for ZombieDragons can be obtained from a box in AncientLibrary and MoogleVillage.
-Opening the box: 33 x 2 = 66 frames
-Shopping at Bal: 36 steps detour
-Shopping at Kelb: 16 steps detour
i.e. (36-16)x8 - 66 = 94 frames faster
(Note: NPC's RNG needs to be researched again.)
I was going to ask you if you had any info about this TAS, but it seems that is already mentioned inside the video (which you might want to include on the post).
Ironically I cannot ready Japanese at all (despite being me who've made a couple of TASes for this game XD) so I cannot understand what it mentioned on the video (well, some are obvious like stats). However I can see that adding the Reset to the run made it possible to skip more battles. Wonder what else is different from the published run & the one neo_omegon made with SNES9x.
Anyways, congrats to Yu-ki(Hs) for making this run :)
Greetings,
I'm currently looking for information to figure out, whether some form of RNG manipulation is possible.
I'm currently theory-crafting a potential way to complete a Solo character-Berserker-only-run on console, and try to look into, whether that is viable.
As some of you may know, a solo-berserker run is supposed to be theoretically beatable, as this video demonstrates: https://www.youtube.com/watch?v=HtXNPuTpja0
However, it apparently took a tremendous amount of retries to get this completed, which makes it not quite reasonable to attempt on console, by just attempting to rely on sheer luck.
In short, what I'm hoping to do is
- Create a LUA script to figure out possible RNG-values that would lead to a successful fight
- Figure out what the current RNG-state is on a savefile on console
- From there, figure out some manipulation to reach the successful RNG values and execute it on console
Well... I don't actually know, whether this is even possible. But you may hopefully enlighten me
Hello Yagamoth, indeed is possible to manipulate RNG in a Solo Berserker run, but the problem is that only the start of the run can be done, everything else will be fixed no matter what you do (e.g. trying to run or pause the game).
In theory, you will need to change the values of addresses 7E003A & 7E003B (Battle RNG counter A [Byte-sum of first 1000 bytes of RAM] & Battle RNG counter B [Byte-sum of first 2000 bytes of RAM]). What I found it easily works is that you can either keep a button pressed when the battle is loading or access the menu and scramble it (e.g change cursor position, item order, players order, etc.)
Note: You can take a look at my file, which is basically a RAM map, to find about other addresses in that range:
http://erick.guillen.com.mx/Codes/SNES%20Final%20Fantasy%20V.txt
AFAIK, I'm the second person next to Not Dave who has beaten the game like this (I have a few replays, so is no wonder almost no one knew about this):
Link to video
I was a bit skeptical about whether or not the video you shared was possible in a better emulator (I still remember Not Dave's post back then in GameFAQs when he did it using Zsnes). I did mine using Snes9x 1.43 and some Lua script I made to automatically run through every single combination of buttons pressed before the battle started (in an attempt to changed the seeds) & after 20k attempts or so, it finally happened!
Since this is still away from what would really happen in a real console (since due to loading times, attacks would start to differ greatly) I was on a quest to do it now on Bizhawk; but since I chose to repeat the feat by using Faris, I stopped at the start of world 3 against antlion (It was a nightmare, but still possible to do without any level up when I did it using Snes9x) because I don't want level up just for that battle...
Hello \o/
First of all, thank you so much for the detailed response, also the the pm with the files, this is really awesome. I didn't realize there was already someone looking into this :D
Antlion is a real pain with low level characters, I agree. And from what you told me, you actually do that with a solo Berserker as well... That's crazy o_o;
So, from what I gathered when you dropped by my stream earlier and also write, there's the 2 RNGs we need to manipulate in order to achieve the end-result. Now, I have a few questions:
- You mentioned the RNG changing depending on how much time we spend on the titlescreen. Is this just a framecounter?
- What makes the RNG change, that is just purely gameplay-related? Let's say, I have a Save at Necrophobias spot, load it, walk over to Exdeath, scroll through the dialogue, and start the fight. What would be factors?
- You posted the RAM map. So, the RNG is affected by all values up to:
-- RNG A: 7E03E8
-- RNG B: 7E07D0
-- I don't think I'm starting in the right place, do I?
- What's the "SHA1" thing when I try to play back the movies? something doesn't work for me °-°;
SHA1 is a hashing algorithm used to compare files to see if they're the same. The SHA1 hash of most ROMs is included in movie files so you can verify that you have the same ROM the author did when they made their movie. If your SHA1 doesn't match the movie file, whether or not it syncs is a crapshoot.
How large are the RNG values? 1byte? 2 bytes? 4 bytes? Or maybe more?
Edit: I've done a bit of testing, and came up with a few questions we would need to answer to figure out whether manipulating RNG to any extent is doable:
- What determines the initial state of the battle?
- Which addresses are relevant for inside the battle once it's running?
- Can we predict what the next RNG number change is going to be, based on knowing the current RNG?
- Can we work backwards from ingame numbers (damage done/received, action taken, enemy formation, etc.) in order to figure out the current state of RNG we are on?
I did a bit of testing with a battle, to see whether I could figure out anything by just looking at some numbers and see what changed when I changed stuff, and whether I could reproduce certain behaviors consistently. I created a savestate with a solo berserker just 1 step away from a battle
=> Opening a menu and moving around the cursor changes what initially happens in the battle. That much is already known
=> Opening and just closing the menu sets a few values I've been watching to a set state. However, even if I have the same numbers in the addresses I'm watching, I can get different results. Basically, I'm not watching everything there is to see in addresses °-°
The current ones I'm looking at is:
000150
000152
000153
000155
000156
000158
Sorry for my late reply and maybe it is not useful at all.
I basically manipulated luck by trial and error by a lot of re-recordings when I was making a tas of this game.
Btw, the whole run of Samurai Goroh's old published tas[942M] is set on the right side of these comparison videos.
part1 -> https://www.nicovideo.jp/watch/sm33304474
part2 -> https://www.nicovideo.jp/watch/sm33312587
part3 -> https://www.nicovideo.jp/watch/sm33320582
I suspect that it is an excessive citation.
Another problem of these videos is that the uploader failed to mention Samurai Goroh's newly published tas[2882M]. The upload date of these videos is June 2018 while the published date of Samurai Goroh's new tas is July 2015.
P.S. The video title is also wrong. The oldest tas of this game is not the published one but the test run posted here if it is included.
Plus, to begin with, for the purpose of reviewing the development of the strategy of the speedrun of this game, it is more suitable to make reference to SDA's Alex's run and Dominator's run.
I think you might have already stumbled with the answer Yagamoth, but let me post what I know anyway.
A Raving Loon made a script for this called "Thinkzerker.lua" back around the time of your post, were he was trying to simulate the outcome of fighting Exdeath as a Berzerker without actually playing the game. This could be possible because Berzerkers always attack at the same time, as they don't need any input (as the output would always be the same if the start values doesn't change). Last thing I remember is that it was accurate only for the first phase but not for the second (it needed some adjustments for some prediction attacks which would desync and deviate from the actual result).
I have no idea if he improved on it, but here's the code he shared with me long time ago:
https://pastebin.com/4jQYxRwt