Trying making a TAS on a real game now.
I have a question about the auto hold and auto fire for the VBA mainly.
For the auto fire isn't it technically possible for it to be always one frame off of the perfect time of hitting the button? Wouldn't this feature only encourage laziness? Maybe I am understanding it wrong which is why I am asking. I am assuming it is impossible to press a button twice in two frames as that would be seen as the same as pressing the button and holding it down for an extra frame by the game.
As for auto hold if I am playing a game where B button is use only for running and canceling out of menus (which it must be pressed then) then is it acceptable for me just to have the whole movie have that one button pressed down permanently or could this cause issues during the run and/or is generally frown upon? I'm playing a overview RPG so there is no reason for the character not be running as there are no platforming tricks or such available anyway.
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
Excessive use of auto-fire and auto-hold can induce lag in some games, so even if you can hold a button through-out the entire TAS, it might save frames not to hold it when it isn't needed, and also it looks more professional if it's only held when necessary. If you have a movement where you need to press a button on every other frame for 4-5 seconds, auto-fire can make that section faster instead of going frame-advance, hold button, frame advance, release button, frame advance, hold button ... Same goes for auto hold.
These tools were added for comfort, this is also why we have LUA scripts despite there being RAM watch etc. Because it can be so much nicer seeing things as images or following the object they're representing on screen, specially when keeping track of many addresses. Also it gives you the power to write bots that do things for you if it's a very repetitive thing. I cannot speak for how Kriole TASed Aria Of Sorrow and Dawn Of Sorrow, but such movement can be an example of when you might want to write a short bot.
Bots can also become more advanced like the scripts used in the current NES Rockman TAS, or even to the point where the bot no longer is a LUA script, but a program specially designed to TAS a certain game (MrWint's Pokemon Blue for example)
There are some games where two different buttons do the same job (advancing through text, menus, whatever it is you're thinking about). In those games you can alternate between the two buttons and get frame perfect everything.
(Even better case - in Paper Mario, all you have to do to skip text frame perfect is hold down one button. Perfect for RTA speedruns!)
I didn't think about lag so I will make sure not to abuse it. You basically answered my question fully and then some. I really need to learn how to use LUA scripting as it sound extremely useful. There is a moving image that appears in the chat and I am able to move the chat along two frames before that image appears. Any chance a script can catch something like that? That would basically remove any worrying about dialog on a very text heavy game and would make my life much easier.
Yea I saw that and understand that but sadly my game only allow one button to move the text along. I also was a huge fan of AGDQ before I ever thought about doing TAS so I am fully aware of Paper Mario. In fact I started to want to do TAS as I have the reaction time of a dead cow but still want to do speed runs. I assume the time it take to get everything frame perfect is more or less the time RTA speed runners would have spent getting better themselves. So either way you use up a lot of time before getting something decent as an end result.
Seem like in my case I'm just better off finding the exact frame, go back two frames then act on it unless I can find/create a script that does so for me if it is even possible.
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
If it is somehow represented in memory and you can find the responsible address(es), then you can have a script that informs you of such an upcoming event.
Otherwise it becomes more difficult but may still be doable. One way such a bot can predict it is if the image info doesn't exist in memory until the frame you can see it, find the info when it is on screen, write a bot that saves state, goes forward 2-3 frames, checks for the image related info, then loads state and if the info was found, write a heads-up on screen.
If it is somehow represented in memory and you can find the responsible address(es), then you can have a script that informs you of such an upcoming event.
Otherwise it becomes more difficult but may still be doable. One way such a bot can predict it is if the image info doesn't exist in memory until the frame you can see it, find the info when it is on screen, write a bot that saves state, goes forward 2-3 frames, checks for the image related info, then loads state and if the info was found, write a heads-up on screen.
I will try that then. I want to see if I can do it myself first though. Would be hard to learn if someone just give me what I wanted. Also the fact that I have a goal in mind that will help me overall save time will push me to learn what seem to be a very useful feature.