Alright, so I'm going to be doing Pokemon Crystal. I'm in the middle of watching FractalFusions's (what a cool username) Gold run, and I'm playing the game through myself the first time. I'm also gonna be looking at the resources and other things available. I hate to ask again, but does anyone have any advice?
Woah, all of the vets are posting in my humble topic... I feel so honored ;_;
So this was my game plan, thanks to you guys:
-Finish reading all of the great resources that you guys have helped me find
-Find a game (that I love)
-Learn how to use that game's console emulator inside and out
-Play through the game non-TAS (and record it)
-Learn Lua, and get a feel for RAM searching by picking up a bit of asm
-TAS the game
-Hopefully publish :D
For the actual TASing, now that I think of it, I don't know how to hex/splice in new input (like if an improvement is found in a part that I've already done, the improvement can be grafted in, without disturbing any other parts of the run, I forget what this is called). If there's no tutorial in the resources section, could someone please give me a brief rundown of how to do this?
Thanks, rhebus. I've never programmed in ASM before, so would ARM Thumb be a good start, or should I start with PC architecture and then shift over after I know it?
Warning heeded. I just wanted to have the abilities as resources, as supplements to the normal TAS methods; I've noticed that most major publications have game-breaking glitches (such as Yoshi's Island (30 second, iirc) run), that I assume to be found by looking into the game coding; otherwise, how else would they be found out?
Advice taken. And thanks for the links, will read now. Again, I want to use ASM and RAM stepping as supplements, maybe not necessarily as the main tools (unless I really love the game)
Btw, I'd just like to say that while I am a newbie to TASing, I'm no newbie to coding and programming, (2.5 year programmer), so don't be afraid to recommend me some more advanced stuff. Also, what language are bots usually written in? But thanks for all of your help so far, guys.
Well not just for TASing, cause I've been meaning to learn ASM for a while now. But anyway, I've been wanting to use ASM for TAS projects (because I have some free time now; and you may know me as the guy who bailed on the Golden Sun TAS... twice... >_>) because I think it would be really beneficial to look into the code and look at glitches and stuff.
All of this comes with the assumptions that ASM is actually the language that's used to look into and decipher the hex in the RAM and of the ROM, look into programming errors and whatnot.
So my question are:
-Should I learn ASM for TASing?
-If so, which architecture?
-If not, which language am I looking for?
Also, slightly unrelated, but what language are route optimizing and glitch finding programs in? I was thinking anywhere from Lua to C, but I could be wrong...
Thanks guys.
Thanks for the encouragement. Although it won't be perfect, I've decide to reinstitute this TAS, and post WIPs and whatnot here (assuming no one else has started it). But guys, before I try again, what should I know beforehand, like right now?
I think you shouldn't fear about all the "knowledge stuff"... in fact this it's almost useless to getting "frameperfect" on the first run on a such complicated game, because my thought is that this is absolutly IMPOSSIBLE to get the best route, right at the first attempt. Even an expert player can't do this.
Go use the turbo, forget about all the lua stuff for now. Maybe just using frame by frame feature is enought... simply for getting a gameplay that look "enought TAS".
This isn't like that website was enought asshole to reject a such long game, while your gameplay look good and it beat any other non-TAS run, even if not 'perfect' at the first publication.
Hey, thanks for all of this encouragement. I've decide to restart this, and with your guys' help, I'll see how well I can do. Thanks again :)
okay. Honestly, I don't feel suited for this run... I fell like I need more knowledge that I don't have. I'll put this to the side for now, and go acquire that knowledge. If anyone wants it, they can have it.
I vote no baby coins. You have to go back and re-beat levels all over again, would get boring, which is not what we want. Hurry up and finish! I want to see it!
Okay, thanks, I'll look at it now. :D
And I might have missed it, so I'll check now, but is there a guide to the movie editor?
TIA
EDIT: After watching that, all I can say is wow. How do you keep the button input so clear, or put more clearly, when do know when to press A for like that one frame that you do?
It is worth noting that Garet's "*Hah* *Hah*" Text right at the beginning can be prompted to go faster by hitting B after the first *Hah*. The fastest way to clear it is B One frame and A the next. (B two frames in a row is the same as holding it. B on alternating frames is rapid pressing, so alternating B and A in this case allows it to clear faster.)
Autofire A and B on opposing frames causes problems in some dialogs. I'm trying to find a good way to do this.
Wall of text regarding memory:
--------------------------------
Counter until text autoskips: (150 if waiting for user input, 0 if yes/no confirmation.) The button needs to be hit about 2 frames before this becomes nonzero.
0x020330f0
0x020330f1: If Value = 3 Text can clear, if staying 0 probably waiting for yes/no confirmation:
0x020330fc: If Value = 1: Yes, No confirmation
0x02000060: If 16 it seems that we are either transitioning screens or in a dialog.
Note: Most of the time the button needs to be hit two frames before these values appear, so I'm going to write a script to do that.
As a general rule it seems if you hit A 2 frames before 0x020330f0 becomes 150, the phrase seems to clear as soon as possible.
X Position Double Word: 0x02030ec4
Y Position Double Word: 0x02030ecc
--------------------------------
Walking Straight Right and Straight Up takes exactly as long as walking Diagonally "Up and Right". The game measures this accurately enough that I wouldn't worry about any subpixel gains, you might gain a frame after hours of effort.
I made an automatic text skipping lua script that still needs some polishing, I'll probably put it up when I get it working much better.
It is worth noting that holding B doesn't "Speed up text", it only clears out time waits like Garet's "Hah ......... Hah"
Anyway regarding your test run, I'm not really sure why your rerecord count is so low unless you're only doing things one time through. 12 rerecords isn't exactly a TAS, unless you managed to reset them messing around with the file. If you're trying to be optimal that segment should take more than 100. If you're just testing things, don't worry about it obviously.
The screen you exited at 6465, I was able to exit at 6427. Part of the difference might have come from the fact that I better lined up Garet to join me, the other part was simply exiting text boxes accurately. I'm going to to to clean up my text skipping script so it doesn't take a minute to run through every conversation. It also managed to get 6000 rerecords in quite a short time, which I can clean up.
Yeah, I was just testing things out because you said that I need to redo it turbo alternating A and then B. 38 frames saved with 6000 rerecords? Wow, that's pretty... amazing. Anyway, you seem better suited to handle this TAS, if at any point you want to take it over feel free to. I get that vibe that you might, but don't want to discourage me. It's cool though. :D Hey, could you also post you .vbm file of your run please?
Assembly might be a bit much if you've never done it before. We will need to use it to decode battle mechanics later though. I'm not very effective at it currently.
You should have VBA 21.
Here's a bunch of resources for SNES9x:
http://dehacked.2y.net/snes9x-lua/http://dehacked.2y.net/snes9x-lua.html
Here's the commands as applied to VBA (also the emulator if you don't have it):
http://code.google.com/p/vba-rerecording/wiki/LuaScriptingFunctions
Memory watch is mostly in the emulator. I made a post explaining an example here:
http://tasvideos.org/forum/viewtopic.php?t=8169
You can use lua to read and write bytes. I use SciTE to write my lua scripts http://www.scintilla.org/SciTEDownload.html, but you can do them in Notepad if you want. Save files explicitly as "FileName.lua".
I have really generalized examples of most things you'll want to do if you want me to post them somewhere. If you want to discuss this a bit more quickly, feel free to hop on IRC and private message me: irc://irc.freenode.net/tasvideos
EDIT: Try not to double post in a short amount of time, just edit onto your previous post.
Okay to everything, and thanks (except, I might not be able to get onto IRC atm). But about assembly, I'll be fine, I know java, html, I've worked with other languages briefly. Programming is no problem for me, except maybe GUIs, which I know assembly doesn't have (and even if it does, we're not working with them).
And I'd like to not let you guys do all of the work/I want to be able to look into memory and all of that good stuff too. Could you guys point me in the direction of a good assem guide (and or lua/anything else I'll need).
Thanks in advance
Oh, I see. I thought turboing was every frame, that's why. Unfortunately, b doesn't close text boxes, holding B like I was, however makes it speed up. Here, i'll post what I have so far (try not to laugh):
http://dehacked.2y.net/microstorage.php/info/365531763/upload2.vbm
I made a mistake at the end, but I'll just rerecord over it later. And no, that battle is unavoidable, and is a scripted encounter, so is the second one, and there is one more after that.
And thanks to your awesome script, Kirkq, the first RNG is set to 57 for the first battle, and the second is set to 48. Also, if I'm right, then you also always attack first.
It should come up when you open the movie file in VBA. We don't really care how many rerecords a good TAS has, it's just sort of a reference value. You don't need to pay attention to it at all when TASing.
I was able to view the file taking the period off the url.
Good Things:
- You changed the message speed.
- You didn't walk all the way over to Garet.
Bad Things:
- You aren't going to be able to use turbo during conversations in the final product. Since it only attempts to close the box every other frame, you lose a frame half the time.
-This may be a game where you can turbo A and B on *opposing* frames and close the dialog optimally, which is acceptable if you're sure it closes as fast as possible every time.
What does everyone think about leaving the "speech" on? I personally like the silly voices, but I could see how it would get annoying to some.
Okay, I'll start with the easiest thing first by saying, I like the voices too.
And sorry for being so newbie/inquisitive, but turbo'ing A and B at the same time would be faster that holding B? I'm sorry, I don't quite understand what you mean by this. And why can't turbo in the final product? I'm really sorry for being so new and not knowing this stuff, when I feel like I somehow should.
It should come up when you open the movie file in VBA. We don't really care how many rerecords a good TAS has, it's just sort of a reference value. You don't need to pay attention to it at all when TASing.
I was able to view the file taking the period off the url.
Good Things:
- You changed the message speed.
- You didn't walk all the way over to Garet.
Bad Things:
- You aren't going to be able to use turbo during conversations in the final product. Since it only attempts to close the box every other frame, you lose a frame half the time.
-This may be a game where you can turbo A and B on *opposing* frames and close the dialog optimally, which is acceptable if you're sure it closes as fast as possible every time.
What does everyone think about leaving the "speech" on? I personally like the silly voices, but I could see how it would get annoying to some.
Okay, I'll start with the easiest thing first by saying, I like the voices too.
And sorry for being so newbie/inquisitive, but turbo'ing A and B at the same time would be faster that holding B? I'm sorry, I don't quite understand what you mean by this. I'm really sorry for being so new and not knowing this stuff, when I feel like I somehow should.
Thanks! Also, sorry if I'm asking too many questions. And was the video playable for anyone?
EDIT: Is there an faq on how to use the video editor, I checked, but I couldn't find anything.
Then the Web of Trust is literally worse than useless. :(
This community has been privileged to use microstorage for years without incident. I don't know why it would be generating a false positive, but seeing as it doesn't use JavaScript or require cookies, there's really nothing "malicious" it can do, even in theory.
Oh wow, sorry then. I wonder then, if it doesn't use javascript, then why did they rate it badly? I should rate it well then to try to balance it out.
EDIT: Okay, so the file that I'm using is called upload, with no extension. It plays with the emulator just fine. But now, if I make the extension .vbm, it doesn't play. I'll upload it anyway, maybe IM DOIN IT RONG
The file is located here: http://dehacked.2y.net/microstorage.php/info/1064777233/upload1.vbm.
Sorry guys for all of the trouble.
I was going to upload my vba file to: http://dehacked.2y.net/microstorage.php, but Web of Trust rated it badly. Is there any other way to upload what I have? The vid's only ~2 minutes, but I want to see what people think, and get some help on walking optimization; and unfortunately, I waste a few frames here and there... :(
Okay, I have some questions:
1.) How can you view re-record count?
2.) When playing a movie, is there a way to just change the button input of just one frame or so, without changing the rest?
EDIT: Wouldn't this be possible if one were to open up the movie file, and change the button input on the frame that you wanted?
Thanks in advance.