Post subject: TAS Movie Generator + Genesis / VBA autoplay movie bot
gia
Player (109)
Joined: 5/3/2006
Posts: 223
These are the ones used for Kings Bounty + source code, in case anyone has a case of having to brute force a movie. The movie generator should support whatever tas-movie-editor supports, Gens, VBA, Snes9x, you name it. It only supports controller 1 though. The gens "autoplay" bot, plays movies automatically and checks addresses values while playing. The vba "autoplay" bot does the same. Learn one and you learned the other. BOT_README explains everything. Modified Gens (Genesis) http://rapidshare.com/files/112818253/gens9j-bot.rar.html Modified Visual Boy Advance 19.3 (Game boy+) http://rapidshare.com/files/113541113/vba193_bot.rar.html Modified Visual Boy Advance 20 (Game boy+) http://rapidshare.com/files/113724848/vba20_bot.rar.html Modified TAS-Movie-Editor (several emulators): http://rapidshare.com/files/118701084/tas-movie-editor.rar.html EDIT: Updated tas-movie-editor movie generator, quick description a couple posts below, full description after reading generator.config inside. I believe this kind of stuff should be done with LUA, or whatever scripting language you prefer. Or maybe dlls or at least interfaces. _
Editor, Expert player (2479)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
If gia or anybody is planning to develop the playback bot further, here is one idea: Currently, with long movies, it takes a lot of time to playback the movies, so a good addition would be savestate support. Even our short King's Bounty movie might have benefited, if each attempt would have begun from a savestate instead of the beginning of the movie. With longer movies, beginning from a savestate becomes more relevant. I think these tools have lots of potential. If the movie generator can be adjusted to produce any kind of input patterns, then it (together with the playback bot) might become a killer tool for luck-manipulation purposes in many games.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Your base movie is supposed to start from savestate if you want to do that :P Play your movie, stop it, record from savestate then open both on tas-movie-editor and copy the input to the new one. When you are done botting copy the final input to the base one. What could be done (using this workflow, but using another workflow so you don't have to do this would be better I guess) is having an "splice" option on the emulator so it plays automatically until the point and creates two movies, one up to there and another from savestate. Then another, "merge" option. Don't look this way though, at least in a while. If I ever do a full bot it will have a default mode (all configured inputs, all configured frames), and a custom mode using LUA that will need the person to code the generation logic.
Player (121)
Joined: 2/11/2007
Posts: 1522
gia, have you seen the snes9x + Lua that DeHacked put together? Could you implement something similar in another emulator?
I make a comic with no image files and you should read it. While there is a lower class, I am in it, and while there is a criminal element I am of it, and while there is a soul in prison, I am not free. -Eugene Debs
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Yes I could, no I don't want to, sorry. On the other hand, I revamped the movie generator: http://rapidshare.com/files/113345949/tas-movie-editor_generator.rar.html It will: INSERT Will add new frames to the movie with all combinations of buttons you tell it to use (or idle frames). It will add these new frames at specific points or it will automatically search for good zones to do this on your movie (before existing input). Use: When about to give the final blow to the boss but have to wait 'n' idle frames, or 'n' frames while holding left and/or right to manipulate the drops. REPLACE Will replace existing frames with new input. You define the buttons to press and can let the program generate all combinations possible, or you can give hardcoded input combinations, or you could leave it empty and the program will use all possible inputs from the console (dont do this, seriously). Again you also tell what frames to change, or can let the input search do its job. Use: When you want to manipulate the rng but don't want to waste frames (insert). REMOVE Will remove frames from the movie. You define the frames, or can let the input search do the job for you. You may also tell it to only look for for certain input when searching. Use: When you swear your movie is optimal, well, double check with this. In all cases it will test all possible combinations given your configuration. But... don't go crazy, its better to always reduce the scope (ie from 10 bajillions to just 10 thousand) so the number of movies created is easier to work with. For generations that create thousand of thousands of files, the generator will stop after creating 'n' files and create a "savestate" file so the job can be resumed later. The program will only need this file and the original movie (the config is not needed). Your only problem is that you will have to READ the config file which has a lot of text explaining how to change each parameter. Oh and also since I did this in one day, you will have to help finding bugs, most of them are just me using a variable from remove when doing replace and the like. I tested... many... of the features, so there's room for errors. ie. In theory you can use all three generation modes at once but I didn't test it doesn't crash or does something funny. So now just push people to add automatic movie play with address check on their emulators, and you could have a basic bot. _
Skilled player (1652)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
This is pretty damn awesome. Gia, you saved me tons of work. I've run probably close to 500K movies, just for a few frames here and there at the start of my run. I don't know how I would have done this without your help. Thanks.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
No problem, I had an insert and remove versions that I needed for myself, and was completely annoyed by how I had to keep recompiling the two programs with new parameters (+do the same with VBA). With this I am set. Grabbed my VBA hardcoded bot and upgraded it with Gens modifications, so now VBA v19 bot is up. The code was updated to VS2005 and directx9, keep that in mind when compiling. It comes with a basic ini for speed. Also, while frameskip greatly helps Gens, it only affects the displaying of video on VBA, so high skips won't help much. VBA's speed is affected by throttle, the bot keeps the speed button held while working for this. Since the ini and exe have different names you can keep it along your normal vba. I use this for GBC, which uses a different codepath than GBA, so if you use this with GBA games, double check for possible bugs.
Joined: 3/7/2006
Posts: 720
Location: UK
I've been trying to make a VBA Bot using windows commands for ages, and you just made one? Coo. One thing though... can you make it work with VBA v20? I'd like to try improving the pokemon green TAS, and the trick doesn't work on v19 because its emulation is a bit wrong. Not that v20 isn't either, but somewhat less wrong. I hope.
Voted NO for NO reason
gia
Player (109)
Joined: 5/3/2006
Posts: 223
vba20_bot http://rapidshare.com/files/113724848/vba20_bot.rar.html You mean like *.bat? ew These bots are just three files, a header and a cpp on the emulator and one C# file on the movie generator, and were done quick because I didn't have to write an emulator, movie support(play) or movie editor(load/save) :) And beyond compare did the job for vba20.
Joined: 3/7/2006
Posts: 720
Location: UK
Hmm, the generator crashes on write for me, so I wrote my own simpler version with a smaller featureset. And... that v20 doesn't sync with movies the real v20 does. In fact, the 19.3_bot exe loses sync in exactly the same way, which suggests somethin is wrong. Edit: Oops, no, it plays them back fine... unless it's running in Bot Mode! What's going on?
Voted NO for NO reason
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Cool, send me a sample of your files so I can check the crash. I had desynch problems with v19 waaay back but I obviously had to fix it to continue, afaik it works fine with yellow, v20 may have something like that yet different, and or the sources I used could be different. Hmm, I just made a movie in v20_bot, made multiple copies and kept them playing with the bot and it never desynched and it plays the same in v20. Just in case this is it, don't load any movie, just push start bot after loading the rom. EDIT: Never sent the files, can't fix. EDIT: Updated tas-movie-editor, now it has all the functionality of the old one plus the generator, plus notepad functions Find/Replace, GoTo.
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I know this is an old thread, but do you still have the vba "autoplay" bot? because I think I need to use it to mainipulate an encounter in a certain game, but the download links don't work =(
Active player (279)
Joined: 4/30/2009
Posts: 791
Hm, these seem to have disappeared from Rapidshare. I was hoping to make use of them to aid in Fire Emblem TASing. Any chance of a re-upload?
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Ok for the modified TAS Movie Editor, just go to its own thread and download from sourceforge since those changes are on the main program now. For the vba bot that plays the generated movies use this: http://rapidshare.com/files/374817440/vba_bot.rar.html If you need the gens bot let me know. For all these programs open the readme/config/etc files with notepad to check the configurations and the comments on how to use them, I think I made them detailed because I knew I would forget how they work. You may also read the King's Bounty (genesis) thread. After you do those if you still don't understand something send me a PM.
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"