Post subject: Outside factors (real time) question
Joined: 12/7/2013
Posts: 13
Sup, I am totally new here and hopefully I will start making my own TAS runs. I'm just planning to start simple and work my way up but for now I have what may be a slightly advance question. I'm not planning to use the knowledge right away but I also don't want it to bug me to hell and back at the current moment. I had read all of the links including the rules and look at all of the guides already. Still have to take a deeper look at the common tricks page. I did a search for this question but didn't find anything though it is quite possible I may have simply missed it or type in the wrong key words in which case sorry in advance. As far as I can understand because no game is truly random is exactly what allow TAS runs to exist and allow the runs themselves be repeatable which is why only inputs are recorded and nothing else. http://tasvideos.org/1123S.html Even though the game use real time a TAS run is still possible assuming you input what time you want or just go with the default (though it seem like the system month and day time also play a role as the linked TAS needed to be replay with VBA system clock set on May 19) But how exactly can you take a break or save state without screwing the whole thing up? Wouldn't the time be your current computer time as soon as you load the savestate and start working on it again? Is there a way to disable your own system clock from effecting the game clock? Sorry but this have been bugging me a lot lately. Also a related question, with real time being a huge factor when it come to catching Pokemon on the 2nd gen Pokemon would using real time (turning the game completely off and coming back to it day later) be impossible to do on a TAS? Even if you go by ingame clock as your time you can't really input what time you turn the game back on so when you go to replay it the NPC/Pokemon won't be there and just screw the whole thing up right? One of my later goals once I become somewhat decent was to do a 100% glitchless/corruption-free run of one of the 2nd gen Pokemon games just because it was something I wanted to do even if it may not be worth uploading anywhere but currently it seem like such a thing would be impossible with real time being a huge factor on that game.
Editor, Experienced player (608)
Joined: 11/8/2010
Posts: 4012
Because VBA emulates the whole system, the real time clock only runs when emulation is running. If you were to pause emulation, the real time clock would pause as well, and if you loaded an earlier or later savestate, the real time clock would be set back or forward to that time. This is in contrast to a real GBC, where the clock would continue to run whether the game is on or off. This means the answer to your second question would be yes, you can't turn off the game and have the clock still run, because emulation would stop along with the game.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Please note that the May 19 thing (which actually requires setting your operating system's clock) was a glitch in VBA-rr 17 and an error on my part. Stuff like this does not happen with more recent versions of VBA-rr. There are other things that may influence the TAS, such as DS Firmware or emulated RTC. As CoolKirby stated, savestates handle these issues so that there isn't supposed to be a problem. The input files should contain any information that is important for sync. As for the second question, the input files for VBA (vbm) do not allow changing the RTC in the middle of the movie. It may be possible to change the RTC using Lua scripting, but no one has tried yet, and it breaks the rules anyway.
Joined: 12/7/2013
Posts: 13
CoolKirby wrote:
Because VBA emulates the whole system, the real time clock only runs when emulation is running. If you were to pause emulation, the real time clock would pause as well, and if you loaded an earlier or later savestate, the real time clock would be set back or forward to that time. This is in contrast to a real GBC, where the clock would continue to run whether the game is on or off.
So these emulators were built with everything in mind. I honestly thought they were basically just like any other emulator but with added tools and the not-so-useful-for-TASers stuff taken away. Maybe I was underestimating the emulators and the thought put into them and just was generally being ignorance. Funny enough I tested to see if save stating won't stop time just to be safe on a normal emulator before I make a fool out of myself but I didn't take the time to do so on the specially made emulator. I should have honestly just take the 5 mins to try it out now that I think about it. Thanks for answering. I feel kinda silly now that I think of what I could have done.
FractalFusion wrote:
and it breaks the rules anyway.
Yea, I guess it wouldn't make sense to wait for a day anyway when your goal is to beat the game as fast as possible even if it may be beneficial when it come to in-game time. That was more or less something I was just curious about. Thanks for answering. At the moment I have a simple goal of doing a TAS on a simple puzzle game for the Gameboy. While this thread is up is there any other special "beneath the hood" features that I should be aware of when it come to these emulators that isn't pointed out on the tutorial videos or on the guides?
Emulator Coder, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Lord Zelkova wrote:
While this thread is up is there any other special "beneath the hood" features that I should be aware of when it come to these emulators that isn't pointed out on the tutorial videos or on the guides?
Well, there is memory watch and Lua scripting (the first might be pointed out by tutorials, the latter can be used to do the former). Those are very helpful (especially memory watching). Making a good TAS without memory watch is very difficult. What is shown on the screen just isn't accurate enough.
Joined: 12/7/2013
Posts: 13
Ilari wrote:
Well, there is memory watch and Lua scripting (the first might be pointed out by tutorials, the latter can be used to do the former). Those are very helpful (especially memory watching). Making a good TAS without memory watch is very difficult. What is shown on the screen just isn't accurate enough.
I believe I already seen the video tutorial about the memory watch. That is how you find out how fast character X is during some of his actions and his exact spot on the level right? The guy who did the video tutorials really did a great job on them. Lua scripting I haven't gotten into at all but I seen a few videos that use it to keep the RNG from being annoying. I can see how it can be useful when it come to RPGs. Honestly at the moment I just trying to get used to inputting stuff at the right time without wasting frames so I kinda been just ignoring memory watch. I want to take it one step at a time or else I might get bored of his little hobby before it even get started. The game I am currently testing this stuff out on is Mario & Yoshi. So it isn't really even necessary as it is a simple game. I may move on to a platformer later but I guess you could say that I am just testing the waters before diving too deep.
Active player (306)
Joined: 8/21/2012
Posts: 429
Location: France
Lord Zelkova wrote:
So it isn't really even necessary as it is a simple game. I may move on to a platformer later but I guess you could say that I am just testing the waters before diving too deep.
And that is a very good approach :) You're testing and playing with the tools before starting your project, you're even asking some good questions to really understand how it works. So, have fun with TASing, and welcome here, too ^^.
Joined: 12/7/2013
Posts: 13
Thanks There a movie I want to watch on an emulator that was made by someone else. Would I need to download the emulator that the guy used to be able to see it? The SNES emulator that I want to use save movie files in a different format. Even if I change the format is there a chance that it would screw up the movie because I am watching on a different emulator?
Active player (306)
Joined: 8/21/2012
Posts: 429
Location: France
Lord Zelkova wrote:
Thanks There a movie I want to watch on an emulator that was made by someone else. Would I need to download the emulator that the guy used to be able to see it? The SNES emulator that I want to use save movie files in a different format. Even if I change the format is there a chance that it would screw up the movie because I am watching on a different emulator?
Ah, I'm no expert of SNES emulation (and TASing), but to be safe, the best option is to use the same emulator, and the same version of that emulator. You can have the possibility to read or convert different movie file formats (depending on the emulators), but I really don't know which format can be read or converted with which emu... For more info, you should tell the format that you want to read, your emulator, and wait for someone that knows the subject better to give a verdict :P (or just try with the emulator used by the author)
Joined: 12/7/2013
Posts: 13
I already try the emulator they used but I really dislike it personally. It did look neat though. The emulator I use for SNES is lsnes and the emulator they used is Snes9x. My emulator seem to save in the same format but add a l in front of it. So my emulator play lsmv movie files while they have a normal smv file. Honestly I just want to watch this: http://tasvideos.org/3813S.html but with the ability to speed things up or slow things down for a closer look. Hopefully with lsnes if possible. Sorry I been asking so many questions. I'm sure I just missed a guide or something explaining different format somewhere. I'm trying my best to not be discouraged from learning TAS though just because I am well...Learning. At the same time I don't want to use that as an excuse to be lazy.
Editor, Experienced player (608)
Joined: 11/8/2010
Posts: 4012
Unfortunately yes, you would need snes9x v1.43 to play that movie file. It won't work in lsnes or even newer rerecording snes9x versions. Maybe you can download one of the encodes for that run and watch it in a media player that allows you to slow down and speed up the video?
Joined: 12/7/2013
Posts: 13
There are media players that allow that? I will search for such unless you have a recommendation.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
Lord Zelkova wrote:
There are media players that allow that? I will search for such unless you have a recommendation.
VLC has speed up, slow down and frame advance.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 12/7/2013
Posts: 13
Looking at this page: http://tasvideos.org/DesyncHelp.html The GoodTools link take you to a blog page with "Sorry, the page you were looking for in this blog does not exist." Who should I report this problem to? The last time the page seem to be edited was earlier of this year by a user named henke37 who seem to still be quite active but I want to make sure that the right person I should report it to before I start PMing random users. For all I know the site could use some kind of weird Wikia system and he just fixed a typo at the time.
Patashu wrote:
VLC has speed up, slow down and frame advance.
O, that sound perfect. Frame advance is a must for me and being free isn't something I can complain about. Thanks for the recommendation.
Emulator Coder, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Lord Zelkova wrote:
Looking at this page: http://tasvideos.org/DesyncHelp.html The GoodTools link take you to a blog page with "Sorry, the page you were looking for in this blog does not exist." Who should I report this problem to?
Delinked. TODO: Find a new link.
Site Admin, Skilled player (1237)
Joined: 4/17/2010
Posts: 11274
Location: RU
How to access VLC's frame advance?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
SNES9X v1.51 had its' sound emulation core completely rewritten from v1.43's, which caused differences in emulator timing; that's why you can't play movies from v1.43 on v1.51. Movies and savestates from v1.51 and newer should be cross compatible between those versions. lsnes, on the other hand, uses emulation cores from byuu's emulator bsnes, which was coded with emulation accuracy as its top priority. It's far more accurate than any version of SNES9X; enough that console-verifying movies made with it is possible. (I think so far it's only been done for Super Mario World's glitched run.)
Previous Name: boct1584
Emulator Coder, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
boct1584 wrote:
(I think so far it's only been done for Super Mario World's glitched run.)
Also, Two Super Mario Lost Levels runs are verified.
Editor, Experienced player (608)
Joined: 11/8/2010
Posts: 4012
The complete GoodTools suite is available here. Also, the DesyncHelp page has been updated with this new link, thanks for reporting that problem.
CAR912
He/Him
Joined: 7/2/2010
Posts: 2
feos wrote:
How to access VLC's frame advance?
By default, I believe pressing E will pause the video (if it's not already), and advance one frame. It's sometimes glitchy and freezes if you press it too rapidly. The brackets - [ and ] - will decrease and increase playback speed.
Masterjun
He/Him
Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
feos wrote:
How to access VLC's frame advance?
View -> Advanced Controls Frame advance is the rightmost button of the 4 appearing.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Joined: 12/7/2013
Posts: 13
feos wrote:
How to access VLC's frame advance?
Not sure if there is a simpler way of doing it but I found View > Advance Controls > Frame by Frame I haven't got too deep into it yet myself. EDIT: Seem like two people Ninja'ed me. Nice.
CoolKirby wrote:
The complete GoodTools suite is available here. Also, the DesyncHelp page has been updated with this new link, thanks for reporting that problem.
No problem. You guys been helping me so I don't mind helping back. It isn't like I am just sitting on my thumb asking questions at random, I am exploring the site and hopefully have all of the knowledge it can give sink into my head. I really want to get into making TAS runs and normally I would be the type of person who only look but never posts. Sadly I am also an active visual learner and reading text often don't sink in as well as it should for me. So you can see how that can be an issue. So instead of trying it for a day then giving up I decided I should just take a risk and dive into the community for once. You have no idea how against my personality that was.
boct1584 wrote:
SNES9X v1.51 had its' sound emulation core completely rewritten from v1.43's, which caused differences in emulator timing; that's why you can't play movies from v1.43 on v1.51. Movies and savestates from v1.51 and newer should be cross compatible between those versions. lsnes, on the other hand, uses emulation cores from byuu's emulator bsnes, which was coded with emulation accuracy as its top priority. It's far more accurate than any version of SNES9X; enough that console-verifying movies made with it is possible. (I think so far it's only been done for Super Mario World's glitched run.)
O, it seem like I pick a winner with lsnes then. I now can see how different emulators can give give different results. I guess it would be hard to make a perfect emulator and still have added features to it. I guess even the most minor differences between the emulator and the real hardware can potentially screw with a movie by the RNG alone.
Emulator Coder, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Lord Zelkova wrote:
I guess it would be hard to make a perfect emulator and still have added features to it.
There is still loads of work on rerecording emulators besides emulation cores. Oh, and pretty much the only good thing I can say about bsnes core is that it is accurate.
Lord Zelkova wrote:
I guess even the most minor differences between the emulator and the real hardware can potentially screw with a movie by the RNG alone.
And on SNES, there's also lag differences that are not compensatable. So if initial state affects lag, it can't be verified. That's the reason why my Speedy Gonzales runs are not verifiable.
Joined: 12/7/2013
Posts: 13
Ilari wrote:
That's the reason why my Speedy Gonzales runs are not verifiable.
Watched it and it reminded me of Sonic but without going faster then the speed of walls. Quite enjoyable and the only dull moment was with the 2nd boss but I'm guessing you have your reasons for what you did and why you choose to not goof around there. The 3rd boss was quite entertaining when you attack him without getting hurt in the progress and easily make up for that though. It is a shame it isn't verifiable.
Emulator Coder, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Lord Zelkova wrote:
Quite enjoyable and the only dull moment was with the 2nd boss but I'm guessing you have your reasons for what you did and why you choose to not goof around there.
The 2nd boss has annoying tendency to lag. It gets worse than just visible lag. The boss has loading times. Lag there can cause time loss. There is actually one place in cycle where just one or two lag frames (that won't even show up on lag counter, because the game still reads the controllers) produces over half seconds(!) of time loss.
Lord Zelkova wrote:
It is a shame it isn't verifiable.
It is also not because of ROM version. While all submitted runs are v1.0 (which is unobtabnium on real cart), Sonny Jim tried it by burning the ROM into EPROM cart. Also, the situation on SNES should be contrasted to NES. The lag differences in most NES games can be compensated, because the polling is in game control, lack of polls can be used to detect lag frames.