Posts for gia

1 2
7 8 9
Post subject: TAS Movie Generator + Genesis / VBA autoplay movie bot
gia
Experienced Forum User, Published Author, 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. _
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
cool!, since the bot starts with the shortest combination and progresses to the longest ones, that one's optimal unless you later find something new that alters the rng and requires rerunning ;o and the little rng decoding could help a 100% run later Am I right calculating 14 frames takes it below 10 seconds?
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Dont make me calculate please, calculating itself would take a while. 9 and 10 frames should be already huge enough, so think of millions or billions. It hasn't finished but so far (28 out of 45k) I have gotten several 0,c,4s (and only 04cs which I find weird), the first on movie 1716, which corresponds with I have no idea (last input is on 350, so 6 frames over optimal). I think i will have to make another modification to the movie creator so not only you define the frames to use but also after how many calculations to stop (and save to a file where it stopped so it can start from there next time), because creating a couple billion files at once won't be cool for your pc. EDIT: Finished, 1716 remains best: http://dehacked.2y.net/microstorage.php/info/1526553404/1716.gmv
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
lol? maybe i... hardcoded it wrong? like I said its hardcoded so the config is useless I was adding all inputs myself, I'll give it a glance. lol, I had left the movie creator running with 10 frames just for kicks, and now its 5 minutes the dos window is deleting movies and still nothing ok, tas-movie-editor starts with frame 1 and gets to frame 63, so in index 0 format it would be frame 62, but i hardcoded frame 63, get it? as soon as the dos win clears my movies (hopefully it will finish someday i left the creator running like one hour...), ill check if the first input does change stuff or not, and make the changes. 195,000 more files to go! EDIT: 0,C,4? open the movie with the ___normal___ tas-movie-editor, right click frame 1 and use Remove Frame, that will shift all frames. so you'll have start on 63 and the rest of frames relative to that. And I got those values. If you only hexedited frames 63 and 64 without shifting the rest then that's your desynch. This very small error however has had a huge impact on the search I suggest you stop because it has to be done again (with lower ceiling however given that movie). Mind tell the new maximum frames? I'll run 1 to 7 frames and that will be it, the easy part :P Fixed tas-movie-editor: http://rapidshare.com/files/112618445/tas-movie-editor.rar.html
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
No, 4K movies and the log is perfect. Wait until the bot is done then close it and open the txt file, I don't flush the stream (erm that's like updating the file) maybe thats it, when I open the log file mid-run it shows as a blank file, same there? Disk space left? min 1 and max 5 frames the best one is movie 3321 0,d,4 movie 3653 is 0,e,4 hmm i forgot to close the file when the bot finishes, and maybe your os acts different to mine: this will close the log file when the bot says it can't open the next file: http://rapidshare.com/files/112582691/gens.rar.html
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
hmm, i haven't tested the new bot, but never had an incomplete log before, let me finish the test (btw you opening with notepad?, try something bulkier like word or notepad++)
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Ok this tas-movie-editor is custom for your movie and won't work with anything else, in fact the inputs are hard coded (but still load the optimal movie because it gets the length and header from there, try to use the movie already included in the bot folder). The other one can add idle frames to any other optimal movie for any other game. http://rapidshare.com/files/112573342/gens9j-bot.rar.html The gens bot has the frame skip config added. Im using directions that only take 1 frame and not two, so there will be extra cases but you will also be sure that you dont slip one special case. There should also be desynchs associated to that.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
I see no problem with having to check extra movies rather than possibly missing one. You say every 4th frame starting 339?, but if I insert 2 idle frames at 281. That 339 gets pushed to 341, would it still be 0-4-8-etc frames inserted at 441 or 2-6-10, or 1-5-9, etc, if you are completely sure it remains 0-4-8 then ok. Instead of add use insert please, that gives me the idea that the presses/idles are added to that frame and the old contents of that frame get pushed forward. Your movie has input on 341 but not on 343 (it is on 344), are your instructions correct? Added a config value for the second line, frame skip, the bigger the number the faster the bot, although really big numbers won't have much difference. Will upload it with the new movie editor after you answer. With 50 it is running 1000 movies in just a couple minutes since they are very short.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Cool, so if the asm checks for valid positions it must give hint to what those valid positions are and tell if 0,11,5 is valid or not. Aqfaq are you saying that the only way to "modify" the rng is by adding idle frames before valid input? no more left right? I was waiting to know if other buttons had effect, because if one "extra" press of left has the same effects as two idle frames then there's no need for pressing extra lefts. The other way, if an extra left has a different effect then why not another button, and what buttons specifically. If it is only about idle frames then my pkmn yellow edit will suffice. And since there are fewer inputs then the bot won't take that much. And if you want to test different difficulties then you can make different "optimal" movies and test them separately. Anyway you missed a number as the first thing on the bot config, if you miss it it will always start at movie 1.gmv I edited the config so it has your settings, and added the idle frame generator to the bot folder along with its config and quick readme. I believe I edited the optimal movie there so replace it. http://rapidshare.com/files/112520145/gens9j-bot.rar.html After 5 frames the best one is 0,14,4, and 6 frames got 200 combinations so it will start getting heavy with 8 frames. _
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
lol, I'll repeat just in case. That bot only plays movies already created, not so useful except that it automatically checks rules you put on its config. To "complete" the bot it needs the modification to tas-movie-editor so that program creates the movies to play. To do that I need all my doubts solved however, well at least if you want to be sure the answer is optimal (because all combinations were tested). This is a trace of the asm that sets the data. The instructions to search are at the beginning. The continent is set only once but the other addresses are set 14 times for some reason(i only included two loops) I know nothing of genesis architecture and nothing of 68k instructions and little of assembler so that's as far as I can go. I did notice some division, and the modulo becomes one of the coordinates of the scepter. but can't tell what affects the dividend and divisor. http://rapidshare.com/files/112400124/kingbountyasm.rar.html On kb optimal the continent is defined at frame 366. 1. Random input AFTER the last input clearly affects the coordinates and continent. Please note that you wouldn't be losing frames here (unless the game lags?). The hell? I added a lot of random input right after the last start, and it completely changed the data. But then I removed the input I gave the next frame after start (leaving the rest of input there) and the data did not change at all from the "normal" values. 2. Random input before the first input doesn't seem to affect anything.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
The how to is in a text file inside. and it is configured so you load King's bounty and start the bot. The bot is just a movie player though. http://rapidshare.com/files/112373150/gens9j-bot.rar.html oh i screwed the readme, the syntax is missing the "-"s, bah just check the config <framestart>tab<frameend>tab-tab<addressstart>tab<addressend>tab-tab<valuestart>tab<valueend>tab<0/1 success>tab<0/1 fail>
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Make a movie file without the luck manipulation frames, it obviously won't have the scepter where you want but that will be the base. Check where the scepter is located on this movie file. Adding idle frames to the starting screens should affect the randomness since you say that the press of START at char selection affects the rng, and in theory you aren't wasting frames up to that point. In other words if you add an idle frame at 00 then start can't be pushed at 339 can it? Now, test this if you haven't: for frame 0 to 338 check if rapid firing another button modifies the scepter's position. let's say start, up, left, whatever, just test one button per try. Then check if holding buttons during the waiting frames modify the location differently (ie. you find that pressing up once is enough to change the data, then try if holding it for 2 frames has a difference). What you have to test is if the game cares where you waste idle frames, in other words at 357 you give the last input. If you add 10 frames before this last input, is the effect exactly the same as if you added those frames before 350 or before 339? If not then it works like pokemon yellow in that sense and complicates things. What I get right now is that it only cares for frame 339 and then onwards. At 340 you have an idle frame but you aren't including it in the manipulation why? Aren't you able to do Start, Left for example? And finally between 357 and 380 are you able to modify by rapid firing buttons? The bot can create text files in excel friendly format (tabbed data) so yeah I use that to tell me which ones desynched, failed or succeeded.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Ok... first I will need the code for the emulator that is going to be used. I mean I see the official gens which I bet is not the one. Then we got upthorn's? but there's a version for every letter of the alphabet so I'm not sure which is "the one" used and where is its source code, and that's what I would need because that's what you need. I got this file "gens_movie_9jsrc.zip", if that's the one then cool. The way I have it working is that it uses an "optimal" movie file and tests changes to it until it finds a successful run. If you organize I can make it so you don't run the same combinations. If you explain what you do manually to do the checking of every combination then I can make a bot that does the same as you. But since you left open spots you aren't sure of, first answer them so what you say is correct. For example on my yellow run I had a base movie which was "optimal", and to manipulate I decided I had to test every combination of inserting blank frames before the inputs present on the movie. Anything before frame 3000 did not need to be tackled (3010 was first input), and I did not have to add frames after frame 5390 (5388 was last input). Then at frame 5440 it would check if the movie was successful or not. Define what is the first possible moment on which you can start manipulating, you left that open. Then define the last moment, then what you can do while manipulating, you left that open too. Then get an optimal movie of all inputs before you know the placement of the scepter.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Uh if you check third post of 3rd page its that old you just didn't notice. The comments have the explanation.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
No idea, but unless the event of getting the pokedex clears the pokedex data it should work, the pokedex data is just bitflags, and you set them all to true on that pkmn switch. They are not visible but they are the FF pokemon, one with value 255, and all its data is full of FFs so its stats are 65535 hp, att, def etc, and that includes their name, the poison will take ages to faint the pokes so don't bother. The first one is fainted because it partially comes from your item data (which is empty = full of 00s). Btw on the same sense, don't wait until the burn/poison animation ends, with that much life it takes a long while ;o As you go down you start reading other memory values (the same I read while opening the items menu), so you start getting other pokemon. About their name, names have 11 characters, and require the value "50" to mark the end of the name (that means your name can be max 10 chars), since all addresses get overwritten, that's why you get the 99999999999999... poke, because it keeps going since it doesn't find the ending marker. It gets displayed as blank on the party menu because FF is used as cancel button on menus and has a cloaking effect, any pokemon after the FF poke doesn't get displayed even if it is there, so we don't get to see its name (or pikachu's if you get it), move a pokemon before FF and its name will get displayed.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Chamale, when I tested those rooms I tested them separately and didn't notice difference, but after doing both I got two frames when after exiting the house. I'm not sure I get what is not turning into the staircase though since it can be accessed from all four sides, I'll take it means having kept the direction for more than that step. Now I haven't handcrafted the movie again yet but just by removing the two frames gained I was not able to start walking earlier once I entered Route 1. ZZAZZ is done by invoking pkmn FE/FB during trainer fly, with the help of ditto. It is supposed to be a turn off/on while saving, not a reset button. To keep playing... ok this is an easy way, open Memory Viewer and type D162, the data will jump to that address. The first value should say FF and there should be a lot of those. Change the first one to "02". Now your belt won't have 255 pokemon, just 2. Now get pikachu, open the belt and switch your first with your third "blank" pokemon and pikachu will pop up, now you can play. You can also lvl up the glitched pokemon if you have them participate in the battle. If you put another number instead of 02 dont put 01 because you'll end up only with the first poke and it is fainted so you wont be able to move. Also make a savestate because if you start toying with the items you will crash a lot. If you want to toy with the 255 "glitched" pokemons you'll crash a lot more, just keep track of where you are until you hopefully find one you can switch to and end the battle with, the first/second/etc ones don't have usable moves.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Uh is there anything beyond v20? It uses v19.3, v20 desynchs. Accurate Emulation Speed, synchronize emulation speed, real time clock, lag reduction. Power on, no bios, GBC, no borders. Automatic / Flash 64K save type. I do have a route for a longer run and even manipulated a pikachu that would do it but I will definitely not run it, it would require precise luck manipulation which I found out with this gets very expensive. About kings bounty I'm not interested on researching it :P (in turn I'm not interested in authoring it), so if Aqfaq wishes to feed me the data by hand (starting by answering the questions he left open) he could keep his findings and thank me for the tools which are not a big deal anyway. I'll see if I can get Gens to compile. EDIT: Yes but this is not the rerecording version damn, and I cant find source code for that, there also seem to be a thousand genesis emulators so I'm not sure which source code would have to be obtained. I can make a bot for this one but then I can't assure the resulting input would work on the "tas emulator", so getting the source code for the emulator to be used would be another requirement...
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
There's a huge pikachu, ash, gary, rattata leaving pallet and rocket with special music at the end and the lame story I wrote to fit the stuff together :P Basically, to me Ash+Blue didn't make sense, it was Yellow+Blue (and Red+Blue and Blue+Red) or Ash+Gary. But if more people would prefer it that way you can voice now and I'll edit the movie, it would only be a problem if there's no random battle within two frames, because 3 frames on this pc would take like 2 weeks straight and I have to use it. If somebody wants to offer processing power to search for a pidgey within 3 frames though say it now. About Kings Bounty I had just read that topic a couple days ago!, my bot is for VBA not Genesis, if the emulator's code is public I suppose I could write a quick movie bot provided I don't get lost in the code, but I'd definitely not run it, Aqfaq might be interested though. btw why am I given the option to vote on my run.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
I got into this with pokemon yellow so I finished a tas of it instead of red or blue, its also more colorful. I guess I will be submitting it unless you got a good objection to the route. Part 1: http://www.youtube.com/watch?v=gr3L597dZFM&fmt=18 _
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
TGB Dual can link games, or you can do it through project64 + pokemon stadium, theres also a vba link version, I dont know if it works for this and I dont think it has re-recording. And if you were to do that, the time it took to start the other game, get the pokemon with cut and trade would be added I guess. Found out that when scrolling dialogs that have no "arrow" its faster to release than to press. So instead of having only A the first possible frame, you have to press B the frame before, and then A the actual frame (it seems the game doesnt care what you release). You seem to get almost a frame (a fraction), so just removing one frame of the following data wont synch your movie (it will desynch sometime later). In the following frames where it looks like you didnt "gain" 1 frame after doing BA, you have to do AB instead and you'll get another frame, repeat during all your movie to get extra frames. Didn't check if it works for movement (edit: doesnt look like so).
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Is there a way to get out of cerulean without going to bill's house? or disable the trainers on the way? In case not, what do you think is faster, climbing to the sixth floor of Pokemon Tower to battle a wild pokemon (getting to lavender wastes no time) or getting the cascade badge + ss anne for cut, I guess cut cant be skipped EDIT: Oh forgot you need silph scope to catch wild pokemon at pkmn tower...
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Oh, lol ty
Post subject: GBC Instruction A7 - AND A (Disassembling)
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Hi, first I am not experienced at all on this but I was disassembling with bgb and noticed the instruction AND A, which sounds a bit pointless because the docs say it does A = A&A... unless its just for setting the Z flag... whatever. Anyway, after executing it, the A register was untouched, thats ok, but the F register changed and I can't tell exactly what operation it was supposed to do. Same thing happens with XOR A btw. //AF = 0140 AND A //AF = 0120 XOR A //AF = 0180 (...) //AF = 0080 AND A //AF = 00A0 (...) //AF = 0070 AND A //AF = 00A0 wtf Then I googled and found several game boy technical faqs, and all of them say that A7 means AND A, then googled for Z80 opcodes and they also say the same thing and add that its supposed to do A=A&A. So could someone explain how it is supposed to work or if it is a bug on the emulator please? Also, whats the cnt register, does it get reduced by the time in clocks the instruction was supposed to take?
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
A little question, I was checking fractal fusion's yellow run on both VBA v19 and v20 and the frames differ, ie. on v19 he exits the copyright screen at frame 251, and on v20 it is at frame 260, so 9 frames diff. Then the game freak intro has the same issue, but this time is it 10 frames difference. And then the game's logo exit is at 17 frames difference. So which one of the vbas is wrong. EDIT: forget it I left it playing and it completely desynched on v20
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
ah, wait so the upper part is faster or the middle one on level 3, I destroy the attacking force (protect the generators objective), but in tas you can turn your back as soon as the transmission ends and finish the level without caring about that objective, you just have to claim the ship before the "explosion" animation ends a question, I found that random crates set their item when they enter the "screen", but i tried entering at different times (from a starting position) and the item was always the same. Trying different things it seemed like the b button was the one that changed the item. Do you know anything about the rng? i'd like to manipulate it if possible or at least increase my chances of rockets on mission 6-2 (i practically never get rockets specifically on that level and tend to get antigravity/hp there so it must be something i always do before loading the crate).
1 2
7 8 9