Submission Text Full Submission Page

Final Fantasy "Console Verification"

The fm2 submitted is set up to run from the standard clean start. However, the true form of this run is a system that can create a TAS of the game for any starting SRAM state. All the code needed for this is available here: [dead link removed]
I got the idea for this after dwangoAC described how he and realtime FF runner Feasel attempted to run the existing Final Fantasy TAS on an NES in the practice room at AGDQ 2014. They were unsuccessful but I realized that I could work around both of the major problems. dwangoAC asked me if I would be interested in preparing this for AGDQ 2015. Even though it was determined to not be a good candidate for the event I decided I would finish it for console verification.
The first problem is that no bot can yet play back a run with resets. There are plans and projects, but nothing working yet. Since my runs on this game use many soft and hard resets, such a system would have to work reliably and consistently to make it through the current TAS.
To get around this I decided I would make a new TAS that did not use any resets or power cycles. At first I wasn't sure how much time this would add. It could be impossible to avoid a large number of unrunnable fights. Fighting those battles would take time and possibly require more healing items, getting more equipment or other setup. Or maybe I could avoid unrunnable fights but with a lot of pacing and extra random runnable battles in order to advance the encounter mechanism.
After some analysis I discovered that it wouldn't actually be that bad. This run has 184 random fights compared to 173 in any%. Some extra walking or sailing in circles is needed, but I discovered some other tricks to tweak things as well. There are only four unrunnable fights compared to two in any% and all four go pretty fast. So in the end this run is only about a minute and a half slower than the any% run.
A problem not unique to this game is that RAM is not initialized by the game at startup. Some versions of NES hardware will have cleared RAM after sitting powered down for a while. A more conclusive solution is the erase cart developed by true and Scrimpey that actively resets the RAM.
The next problem is that the seed for the battle RNG is stored in SRAM, the battery-backed memory used for the savegame. That means clearing the RAM will not get to same start state as the standard clean start state for TAS. In this case the hardware solution is much simpler: a cart eraser that deletes the SRAM memory. When I first started this did not exist, but true and others have since gotten it work.
The non-hardware solution to this is a little more complicated but pretty cool. Regardless of the SRAM state I can walk through the outer world until the first battle before desyncing. I do this and on starting that battle I hold down A, ordering my guys to attack the first enemy. That battle will consist of 3-5 imps. Four fighters beat them every time, but will take varying amounts of damage and time to do so. In the worst case it could take about 90 seconds. Anyway, by looking at what happened in that battle we can determine the value of the RNG counter. Specifically, I found that recording the final hp of everyone in the party would find the counter value about 90% of the time. Throwing in the number of enemies and the first and last party members to attack would be enough to find the value every time.
Once you know that value there are a few ways to proceed. You can hit the power and start all over with a run calibrated to that counter value. true and I were able to get the run going this way. My other idea was to let the bot know the counter value and have it tweak the run in real time. This is certainly possible and would have been a neat trick but it did require some hacking in to the bot's code and maybe some hardware tweaks to set up a port to get that info to the bot.
Continuing on from an unknown start has a few other complications. After that first fight my party members have an unknown amount of hp and in fact there is about a 5% chance that the first character dies! I deal with this variation by picking one of three different battles with first boss Garland and then going to the inn on first entering Pravoka. Still, if my first character died in the imp fight then the characters were in a different order on beating Garland and randomization of levelup stats means that my characters have different amounts of max HP. The variation is only 2-4 so I deal with it. It's only really an issue for the pirates fight.
In the end, the cart eraser is much more convenient than these tricks. But since I have everything set up I am going to release all the code needed to do this. The process involves using python scripts to generate lua that can then be used to record an fm2 tuned to a particular RNG value. As with the any% run I have also included the option to change the names used in the run. I have used lua to test that the run has synced and verified that my system can sync for any starting RNG value.

About the run

The run starts pretty close to the any% run. The first big change is skipping the treasure in Dwarf Cave and picking up some treasure in Earth Cave instead. That side trip in Earth Cave helps avoid unrunnable fights without just walking in circles. I pick up the Coral Sword for a better weapon and also a cabin for healing later. The Coral sword is used on Vampire and Lich instead of the Dragon sword. In the second trip to Lich I have my first unrunnable random fight against two Wizards. With a better weapon and a few levels compared to the fight in Marsh Cave I am able beat them much more easily.
After Earth Cave I proceed directly to Crescent Lake and Ice Cave with the exception of a short sailing excursion to prime the encounter list. This leads to no unrunnable encounters in Ice Cave. In Ice Cave I collect the Flame Sword and tent as in the any% run as well as a good chunk of gold to spend on the Bottle.
On the way to the airship is the longest set of extra pacing to set up encounters. I get on and off the ship because the ship moves faster and the encounter rate is higher on land. Even though the step on and off the ship does not increment encounters it is still worth it. This will also be the last place I need to move in circles just to set up encounters.
While using the Floater to reveal the airship I also equip the flame sword and use the cabin and tent to restore some hp.
The Sea Shrine and Waterfall are pretty straightforward. Still no unrunnable fights and about the same as any%. As usual, the robot is just where I need him to be and Dr Unne of Melmond moves down to talk to me.
The trip to Lefein is a little different because of two unrunnable ZomBull fights. ZomBulls are weak to flame and I have the flame sword. So even on a very low level I am able to beat them in one hit if I take some damage first. That was the purpose for restoring my hp earlier. This will be the last time I take damage in battle.
Moving on, I beat the Blue D without taking damage. Pick up Bane sword and use it on Tiamat as usual. Gurgu is a little different; instead of walking on lava to avoid encounters as much as possible I step on normal ground to run up the encounter list. This sets everything up for a fast trip through the final dungeon.
Temple of Fiends: Revisited actually goes quite a bit faster than in any% run. Because of how encounters fall, I can use Bane Sword on Phantom with no worries. The only and last unrunnable random encounter is one WORM that is quickly dispatched with Bane Sword. The rest of the dungeon is straightforward Bane Swording.
There were a couple spots where taking more damage would be convenient. But after looking into it, nothing was worth the time it would take to shop and use items or visit an inn. Unlike any% I don't need to use tents or cabins to save before reset, so I don't have any excuses to visit item shops or even open the menu.

Thanks

Special thanks to true for playing this on his bot to verify. He also verified that the RNG finding method worked on console.
Also thanks to dwangoAC for including this as an option for AGDQ though it wasn't accepted. Since it is so easy to set the character names I was hoping we could auction or raffle off the names in the verification movie to raise money for his AGDQ 2015 efforts. This will take some more planning and discussion though.

adelikat: I'll handle this one

adelikat: Nevermind, backing out of judging this.
Noxxa: I'll take this submission, then.
Noxxa: This submission is made with console verification in mind, by avoiding resets that require the console's RAM to be cleared when console verifying. The justification given is that, when console verifying the run, the resets would cost time, as the cart would have to be removed, the RAM-clearing cart inserted and run, and reinserting the game cart before the verification process can resume. This would, in the end, make this run faster on console than the currently published run. However, we don't account for this when timing runs; this is because it is impossible to time the cart-swapping, clearing etc. for TAS timing purposes. Therefore, this added time is disregarded. As such, as this run is slower than the currently published run and the run does not meaningfully add to the current published runs, rejecting.
As a side-note, given this run's goal to showcase a bot that has to figure out RNG on the fly from any SRAM by letting a fight run while holding a button, I have doubts whether this is an optimal run, compared to a proper TAS that would use savestates to know the RNG in advance.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15642
Location: 127.0.0.1
Spikestuff
They/Them
Editor, Publisher, Expert player (2665)
Joined: 10/12/2011
Posts: 6451
Location: The land down under.
I like a Console Verification encode for this. From Solarplex: Link to video
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Console verification video will come in when I get my input display boards, which will probably be mid to late October. If there is high demand for recording this without input display I can do it but I think the wait will be worth it. EDIT: Actually, I could run this with my old bot and old display board if people want to see this run on console with input display. To clarify on the console erasing: erasing console RAM is REQUIRED. I haven't ever been able to sync FF without first erasing the console RAM to match FCEUX's empty RAM pattern (which isn't empty by the way). I wrote the RAM eraser ROM which is really very simple. To get this input file to sync as-is, without scripts, code written by scrimpy can be burned and put on a cart. This code runs in RAM and it will erase the cart SRAM for MMC1 or MMC3 carts with 00, FF, or FCEUX pattern (why? don't know) depending on button input. So for this run the eraser cart is then removed and the Final Fantasy cart put in, P1 button A is hit, and if the screen turns blue the cart is erased and ready to go. A toploader or modified frontloader (10NES disabled) is required to hotswap the cart. This was all tested late last night; TheAxeMan and I watched the run verify in its entirety. One or two others people even saw the whole erasure setup.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Joined: 9/8/2014
Posts: 19
I honestly don't think that this is a good branch idea. Although i like console verification of runs as well as the next person, having a slower branch with a different route just to get it to verify correctly seems rather arbitrary to me, especially because the issue is not an emulator bug and it is the verification process that is buggy. As such, i see no difference between having a separate branch for ( demonstrably inaccurate) console verification and having a separate branch for a buggy emulator. This should probably go to gruefoood delight though.
Joined: 3/12/2013
Posts: 36
Location: Bullhead City, AZ
I'm gonna have to vote no on this, since it's a somewhat arbitraty goal and doesn't bring anything new to the table. However, I'd still love to see this console verified. Perhaps update the current run's notes to a link with the verification video?
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Sirmola wrote:
I honestly don't think that this is a good branch idea. Although i like console verification of runs as well as the next person, having a slower branch with a different route just to get it to verify correctly seems rather arbitrary to me, especially because the issue is not an emulator bug and it is the verification process that is buggy
The verification process is not buggy. Right now we have to compensate for the emulator that is buggy in that it does not behave as a console does in order for the run to sync. Every power cycle in-game will require an erase pass on the console to make it match the incorrect emulator. I also thought we strive to TAS games, not the emulators they run on (well, usually anyway)? Also, when playing back, this run will likely be faster, as the erase process and cart swapping for power cycling takes time - it isn't an instant process like shown in the emulator.
Antronach wrote:
I'm gonna have to vote no on this, since it's a somewhat arbitraty goal
How so? Isn't the goal to TAS games? Isn't having a run that is confirmed to also work on console an extension of that - again, TASing the game, not the emulator? The goal choice seems very clear, concise and well-defined to me. For most games, this branch simply wouldn't exist as either the fastest run would verify, or no runs would verify. Final Fantasy is currently a technical and possibly also a practical exception.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Joined: 9/8/2014
Posts: 19
oh. i see. Is it theoretically possible for the ram to clear itself after a short amount of time given the right environmental conditions, because if so, we can follow the same logic used in the acceptance of the "chetahmen two" tas, which used a bug that meant that a certain uninitialized ram state skipped half the game. The conclusion there was that the hypothetical tas superhuman could manipulate the eniornment to cause the necessary starting ram state. As such, this sounds like a case where the bot simply does not have the environmental manipulation skills required to pull off the tas.
Ambassador, Experienced player (710)
Joined: 7/17/2004
Posts: 985
Location: The FLOATING CASTLE
The goal here isn't to set an initial state that helps execute a glitch or speed things up, but rather to be able to finish from any initial state. I am thinking "any SRAM" rather than just "dirty SRAM" as in Cheetahmen 2, Chrono Trigger New Game+ and others. Another possible branch description is "No Resets or Power Cycles". That doesn't give the whole story though because some tradeoffs are made to be able to sync from any starting state. So maybe "No Resets, any SRAM". The main reason to submit this was to have a Final Fantasy run that could be console verified. I'll leave it to the community to decide on the classification.
Joined: 9/8/2014
Posts: 19
TheAxeMan wrote:
The goal here isn't to set an initial state that helps execute a glitch or speed things up, but rather to be able to finish from any initial state. I am thinking "any SRAM" rather than just "dirty SRAM" as in Cheetahmen 2, Chrono Trigger New Game+ and others. Another possible branch description is "No Resets or Power Cycles". That doesn't give the whole story though because some tradeoffs are made to be able to sync from any starting state. So maybe "No Resets, any SRAM". The main reason to submit this was to have a Final Fantasy run that could be console verified. I'll leave it to the community to decide on the classification.
But the chetahmen run does not start from dirty sram in the new game pluss sense. the uninitalised values are found in other parts on the ram which have essentially random values on a console. My general point is that a console verifiable run does not deserve its own catagory it no other distinguishing characteristics are preasent.
Player (54)
Joined: 11/20/2013
Posts: 103
I vote yes. I'm a fan of console verification in general and I'm very interested in more runs where it is possible. At least until the gap between emulation and hardware is better resolved I think it could be a category, for games where it requires a distinct strategy. If nothing else this makes for an educational and fascinating submission to read. I would love to someday see a TAS that solves the game from any arbitrary starting state with one ordinary movie file, if it's even possible.
Joined: 3/12/2013
Posts: 36
Location: Bullhead City, AZ
Antronach wrote:
I'm gonna have to vote no on this, since it's a somewhat arbitraty goal
How so? Isn't the goal to TAS games? Isn't having a run that is confirmed to also work on console an extension of that - again, TASing the game, not the emulator? The goal choice seems very clear, concise and well-defined to me. For most games, this branch simply wouldn't exist as either the fastest run would verify, or no runs would verify. Final Fantasy is currently a technical and possibly also a practical exception.[/quote] I was saying that the video wasn't faster that a previous existing strat nor is it enjoyable enough to warrant it's own. I did say I'd love to see this played back on an NES, but as a publication on this website, I get the feeling it just wouldn't fit.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Sirmola wrote:
oh. i see. Is it theoretically possible for the ram to clear itself after a short amount of time given the right environmental conditions,
Clear to mostly 0x00, yes,
because if so, we can follow the same logic used in the acceptance of the "chetahmen two" tas, which used a bug that meant that a certain uninitialized ram state skipped half the game.
FCEUX does not initialize to all 0x00; there is a 4bytes 0x00, 4bytes 0xFF pattern in console RAM.
Sirmola wrote:
As such, this sounds like a case where the bot simply does not have the environmental manipulation skills required to pull off the tas.
It is an emulator problem. Without this emulator problem then only an initial cart clear would be required, and some time....but that also means that without multiple consoles that replay would 1) not be deterministic and 2) would take longer than this run does.
My general point is that a console verifiable run does not deserve its own catagory it no other distinguishing characteristics are preasent.
Why not?
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Joined: 10/1/2013
Posts: 100
Location: My Basement
I just wanted to pop in to say that this is an amazing idea! However, I must refrain from participating in the category discussion.
Joined: 9/8/2014
Posts: 19
Fishaman P wrote:
I just wanted to pop in to say that this is an amazing idea! However, I must refrain from participating in the category discussion.
I think so too, i just think the category is no good is all. Honestly, this situation is really without Precident that i am aware of, so i exrapolated from the chetahmen 2 case. The fact tha uninitialised system ram causes desynchs on existing runs was noted in that run's thread as well and iirc the consensuses was that a runner could pick the best starting state, if it was vaugle reasonable for some actual console. also brought up was the fact that the theoretical tas superhuman could configure the external enviornment so that the system ram started in the right way. This also applies to decay on poweroff as far as i can tell, so the current run could be done on a console by said superman. Therefore, the fault lies in the setup for not being able to do things that are theoreticaly possible but practically impossible.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Sirmola wrote:
...was the fact that the theoretical tas superhuman could configure the external enviornment so that the system ram started in the right way. This also applies to decay on poweroff as far as i can tell, so the current run could be done on a console by said superman.
I take it you didn't read my post.
Therefore, the fault lies in the setup for not being able to do things that are theoreticaly possible but practically impossible.
This is incorrect. It is not theoretically possible for the NES to have the same starting state as FCEUX unless directly outwardly manipulated. Time will not give you this state, ever. If you have some factual basis on the topic for which you have written, please provide it. Otherwise you have contributed nothing but opinion to a factual conversation.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Joined: 9/8/2014
Posts: 19
It isn't? that wasn't quite clear from your reply, and the other thread that i read seemed to imply otherwise. However, my argument applies just as well if you start at all zero (which the cheetahmen discussion mentioned that it is permisable to do.) That run would theoreticaly be verifiabe on actual console. But said run would probably be essentaly equivelent to the current any%.
Joined: 6/24/2007
Posts: 119
nicely done and good that it works on console
Joined: 1/8/2014
Posts: 55
True wrote:
This is incorrect. It is not theoretically possible for the NES to have the same starting state as FCEUX unless directly outwardly manipulated. Time will not give you this state, ever.
Well... wouldn't individual bits in the RAM randomly switch back to 1, even if it's waaaayyyy less likely than them switching to 0? If so, there would be a theoretical chance that, given enough infinite time, the RAM would eventually be in FCEUX startup state. It'd be incredibly unlikely to happen, but since we'd have infinite time, it would happen eventually. And the superhuman TASer should be able to wait an infinite timespan for their console verification, right?! [/sarcasm]
LOAD TO SUNRISE
Joined: 3/17/2011
Posts: 24
Someone else mentioned it but I think the best thing to do is provide a link to a video of the machine performing the emulation (like a video of the AGDQ stream where the bot finishing this game debuts), as well as including a note that the current run is technically impossible because a bot can't soft/hard reset with the same precision it can press controls.
Player (13)
Joined: 6/17/2006
Posts: 510
In my opinion, to approve this type of submission, it needs to be tested against all possible dirty RAM and SRAM states. Simply impossible. Not to mention that True already mentioned that this test would fail. But even if that was possible and the test passed, I still wouldn't approve it because it foregoes using Reset and Power, even though this is definitely possible for a bot to perform. I like what the author is trying to do here, but it's a tech demo designed to work around technological constraints that can theoretically be bypassed. It only has value until a realistic solution to bypass those technological constraints is found. As for entertainment, I'm voting No as it is slower than the current publication (thus not as entertaining for me), and because it's not the input that I would find entertaining in this case, but a successful recording on an actual NES.
Post subject: Why am I even responding
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
FriendChckn wrote:
Someone else mentioned it but I think the best thing to do is provide a link to a video of the machine performing the emulation
What emulation?
SmashManiac wrote:
In my opinion, to approve this type of submission, it needs to be tested against all possible dirty RAM and SRAM states. Simply impossible. Not to mention that True already mentioned that this test would fail.
Why must this test be run? Why don't other verifications have this requirement? It makes no practical or statistical sense. Can you elaborate? If we were to plug the cart SRAM into an emulator or run either run on hardware, neither this run nor the power/resets run will sync somewhere around 1/256th of the time because the RNG value in cart SRAM will typically be unknown to the runner. A neat property of this run is that it can be modified to sync and run in similar time to this original run (if you don't count this setup phase) after running the first couple of minutes and performing an offline calculation. This is true for any cart SRAM value and true for emulator or console. However the cart can be erased to match what the technology used in the SRAM does for "empty" (thus acting like a typical dead battery situation; it also happens to be the default for FCEUX) and it WILL sync as-is. This is acceptable for verification because this is practically possible on real hardware on its own, and also possible to force it with an unmodified console and custom code as a separate setup event. (See accepted dirty SRAM runs with verification videos for prior art.) I do the latter for these runs. Unless the emulator zeroes WRAM, all console runs of this game will require setting up the console WRAM to match the emulator's WRAM pattern which, for FCEUX's pattern, is a statistical impossibility to ever happen naturally on any NES console*. (Don't give me "theory" shit about that; if you have a rebuttal, bring content.) I'm not great with statistics but I'm sure I could get some help to run some practical tests put the numbers together to substantiate this theory, rather than "DO THIS BECAUSE I SAID SO" theory. Please remember, the emulator assumes a specific cold console state which is important to playback of this game. One can tweak the emulator to match possible values in hardware (a previously mentioned Cheetahmen 2) but we aren't doing this. We are instead making the console match the emulator as best we can, and using the same setup state as almost every other NES run on this site, just so we can run this run properly on a real console. What we have to do to make this sync isn't "natural" and for syncing purposes it wouldn't matter if it was the power/resets run or this one. What could be done instead is the WRAM in the emulator could better emulate a typical cold power NES, in which case the console RAM erase wouldn't be necessary. But without this step, unless using multiple consoles, it is highly likely any run using power cycles would not sync, and a certain amount of time may need to pass between power cycles, thus making a power/resets run longer. (Unlike what you wrote, this is a valid and testable theory) This game is not like other commercial NES games. The RNG in WRAM and the battle RNG in SRAM is a unique combination that currently warrant a run of this type.
But even if that was possible and the test passed, I still wouldn't approve it because it foregoes using Reset and Power, even though this is definitely possible for a bot to perform.
No, it isn't possible for the bot to perform, yet. You are welcome to make one that does to prove your point. But even when (if) my bot or another bot can, the runtime as executed on console from first power-up (you decide if setup time counts) to final input will likely be longer than this run, unless very fast theoretical NES hardware cart manipulator robots did it or multiple consoles were used, in which case it would at least still be slower than the posted time. (And it wouldn't any longer be a bot just playing a game...it would be a meta-playback of sorts.) Unless the clock has drifted. Theery.
I like what the author is trying to do here, but it's a tech demo designed to work around technological constraints that can theoretically be bypassed. It only has value until a realistic solution to bypass those technological constraints is found.
For the first sentence, I'm still not understanding why unsubstantiated theory trumps repeatable, proven facts and practicality when nothing stops said theory from obsoleting this when (or if) it isn't theory anymore. But for the second sentence you basically finally state what the point of this run is about, and simultaneously invalidate your main argument. Congratulations.
As for entertainment, I'm voting No as it is slower than the current publication (thus not as entertaining for me),
If power cycles and SRAM setting takes 0 time, OK. But I guess the illusion of speed gives you "theoretical entertainment."
and because it's not the input that I would find entertaining in this case, but a successful recording on an actual NES.
Again, this is coming, and for your "entertainment" I am waiting to do this for when I have visual input aids. These are currently in production and I should get them in 2-3 weeks. I'm sorry, I just don't understand why you say this run needs to pass arbitrary practical tests, but still you "wouldn't approve" because of theory. Runs have been accepted here that could be "theoretically" as well as practically improved. If we waited for practicality to meet theory we might just be finally accepting the first run of SMB in another 5-150 years (FMA theoretical calculation). On another note, I swear people don't read discussion threads on TASVideos, as shown by the repeat posts under different names. (*) For specific write-before-read address values, see what RAM is accessed without init. Maybe someone can post these, and determine which are important.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Joined: 3/17/2011
Posts: 24
I'm a bit more awake right now, so I can elaborate a bit more on what I make of this. What I understand about the run: 1. It's a slower run than the current published run. 2. It can fully complete the game from start to finish from any starting state on any unmodded cartridge. 3. It forgoes using timesavers that are currently impossible for a bot to use in real-time (in this case, resets) Based on (1), I don't think this run should obsolete any runs of this game (but that was obvious... right?) Normally, the deliberation would end there, but because of (2) this run is unique in that is possesses a feature that the published run doesn't- it can be replayed on a console. People who aren't part of the TASing community don't really understand the mechanics behind these god-like runs they are seeing, and I'm sure all of us have groaned in annoyance whenever we read a comment or hear someone say that a TAS is "cheating!" Seeing the run accomplished a real console shows that such superplay is possible without mods, and makes the community more accessible to outsiders. But maybe you really hate new people, and think the TASes published on this site should cater only to members of the community. You argue that the only runs accepted should be as fast as possible, and the best tool-assisted speedrun should be the best run in ideal circumstances. The folly in the argument is that even when using an emulator, ideal circumstances cannot be achieved. (compared to a console verified TAS, where ideal circumstances are nigh-impossible to achieve). A year or two back on this site, there was a discussion about some games that displayed different cutscenes/background gameplay during the start screen, but the emulator would always start with the same cutscene/background. I think it was around the time the acronym TAS got changed from "Tool-Assisted Speedrun" to "Tool-Assisted Superplay." Anyway, where I'm going with this is that even with an emulator it is impossible to achieve ideal circumstances for a flawless run-through of a game (and choosing an ideal startup state would violate another (somewhat arbitrary) rule). Ultimately, since you already cannot achieve an ideal run, saying that this console-verifiable run has less merit is a hypocrisy. Another lesser argument for the publication of the movie is that there is an impressive technical achievement in creating a run that can be replayed from any start-up (even from an older save-file from a ROM). Based on these points, I think (3) is a similar, weaker argument akin to (2). I enjoyed the movie, I think it's a breakthrough in console verification and a milestone in showing that even the most complex RNGs can be overcome. I believe the movie should be published based on these merits. Yes vote.
Joined: 6/4/2009
Posts: 893
i did not watch the movie yet (hence i didn't vote) but as i read, this movie seems slower than the published one and made only for console verification. i see this movie as a "verification movie" like the unsubmited movie we make to submit "new game+" runs, we already have 2 movies published final fantasy movies the any % and the white mage one made both by TheAxeMan. i think that this movie should not be submited as a standalone but as a verification movie in one of the submition... also why not produce a verification movie that would set the sram so the current tas could run correctly on console ?
Ambassador, Experienced player (710)
Joined: 7/17/2004
Posts: 985
Location: The FLOATING CASTLE
Sorry if it wasn't clear but my "any start state" claim only applies to the SRAM. The console RAM needs to be cleared. And to make this sound even less impressive I should point out that most of the SRAM gets cleared on starting a new game. As far as I can tell, the only thing that doesn't that matters is that RNG counter. As for testing whether it will sync from any SRAM, I've only tested changes to that value. My computer can turbo through the run in about 5 minutes so I could test every value of that counter in less than a day. It might be interesting to try totally random SRAM changes, but like I said, most of those changes will get fixed when you start your new game. I'm glad so many people liked this run! I'll be looking forward to seeing the responses to the console verification video. I might have to see if I can do a similar adaptation for the white mage run.
Ambassador, Experienced player (710)
Joined: 7/17/2004
Posts: 985
Location: The FLOATING CASTLE
nicos wrote:
also why not produce a verification movie that would set the sram so the current tas could run correctly on console ?
The problem is the resets and power cycles. SRAM is just as much a problem here. As true pointed out, a bot would need to do resets and power cycles very quickly or else the console replay of the any% run would be quite a bit longer than a console replay of this one. On the emulator the power cycle instantly clears all the RAM, something that is probably impossible on an actual hardware. That run has 5 hard resets and even more soft resets and is only 90 seconds faster, so you can see that the resets would have to be pretty fast.