Posts for TASeditor

Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
ais523 wrote:
I'm against the "make a TAS live" method for philosophical reasons; I think that TASes are best when you have a huge, deep understanding of a game, full debug tools, and so on. With many games, there shouldn't be a need to touch the controls when making a TAS because everything is done at a higher level (e.g. look at any of MrWint's Pokémon TASes). However, I'm aware I'm in the minority on this, so it might be worthwhile disregarding my opinion.
I am sure they're about to show some basic TASing techniques (using savestates, frame-advance), without getting detailed in finding glitches, game mechanics or debugging a game. There are lot of users on Twitch, where AGDQ is usually streamed, who don't have a clue how TASes are made. Also there will be many new viewers watching the stream, that never even watched a TAS, or in some cases a speedrun. Of course it's needed to say that on tasvides we generaly put more work into TASes than this, and mention other methods of creating TASes exist (Botting, TAS Editor). I'd say that most viewers would appreciate a simple, small live TASing.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
kusoman wrote:
the thing I want to ask is how do I set the controls???
Do you know the words "configure", "settings", "controllers" and "hotkeys"? It is always the same in every emulator, with a few exeptions.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
kusoman wrote:
where is the download for this?
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Zanoab, you probably didn't read everything in the thread properly. I don't need to store anything in savestates. The framecount of a chapter isn't a fixed number, I use the marker notes to have a reference point when a chapter starts.
Zanoab wrote:
Your script just has to read the current chapter and calculate your Diff with the frame count stored in RAM. When the chapter changes (either by save state or it increments), it'll switch to the "new" current chapter.
That is literally the same as I mentioned, except I don't use any savestates. I use markers for that. You may not know what markers are. They are just marked frames where something imprortant happens, such as "level end", "item collected" and so on. If you had read this:
Language: lua

-- todo: -- Search for String in the RAMlog.txt file which is the same as the marker note -- From there use the Diff to pick the right line in the RAMlog.txt file
you would know what I need. Some function that searches a string in a txt-file and one that goes to the right line. I'm not really familiar with the io-functions, so I don't know if such thing exits.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
I need the markers for a reference point when a new level starts. After I improved 1-1 by a six frames and then proceed to the next level, the framecounter would be the same, but relative to the beginning of 1-2 it the displayed stuff would be behind by six frame, which I want to avoid. I want to compare the 1st frame of 1-2 of my run with the 1st frame of 1-2 of the old one, the 2nd one with the 2nd one, and so on. I use a delta in my script: Diff = movie.framecount() - M_frame; I just called it Diff for difference. 1. Calculate Diff. 2. Search for string of the marker note in the log file. 3. If something is found go "Diff" amounts of lines to the right line.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
At ESA2014 Tompa showed a WIP of a ACE playaround of SMB3 by Lordtom. If the final TAS is done just in time, we could show this one.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
I know this, of course. >.< I was trying to say that DarkKobold script can't handle rewinds, but I want mine to be able to do it.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
kusoman, do you ignore our posts? Or do you not understand them?
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Yeah, whenever you go to any previous frame.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
feos wrote:
http://tasvideos.org/forum/viewtopic.php?p=270971#270971
This script is only for playing back movies, not working on them. Loading a savestate or rewinding doesn't affect the display in the right way, as far as I can tell. I want my script to be able to handle rewinds.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Post subject: RAM logger for continuous movie comparison lua script (help)
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
I did some testing for the NES game called Kage (Shadow of the Ninja) and saved 6 frames on level 1-1. I continued with 1-2, but I lost 5 frames there. The game is very though to optimize, the speed is not constant and lag frames. Which means you could be faster at first, then you're slower, but in the end you end up faster, exactly what happened to me in 1-1. Taking all this into account it gets very annoying comparing a old movie with a second emulator open. So I had an idea to make comparing your work to an old movie easier. I wrote a lua script that saves all the RAM addresses I want to compare for a level/segment into a txt-file. Here is the lua script:
Language: lua

Name = "1-1 started"; -- Marker note in TAS Editor of the segment you want to compare RAMlog = io.open("RAMlog.txt", "a"); RAMlog:write(Name, "\n"); RAMlog:close(); RAMlog_values=function() XPos1 = memory.readbyte(0x0610); XPos2nd1 = memory.readbyte(0x0620); YPos1 = memory.readbyte(0x0630); YPos2nd1 = memory.readbyte(0x0640); XPosition1 = XPos2nd1*256 + XPos1; YPosition1 = YPos2nd1*256 + YPos1; RAMlog = io.open("RAMlog.txt", "a"); RAMlog:write("XP=", XPosition1, " ", "YP=", YPosition1, "\n"); -- message which is written to the txt-file and displayed later using another script RAMlog:close(); end; FCEU.registerafter(RAMlog_values);
You can change the logged RAM addresses and the message to what ever you want. This script creates a txt-file, which looks like this:
1-1 started
XP=5632 YP=8704
XP=5656 YP=8704
XP=5679 YP=8618
XP=5704 YP=8538
XP=5752 YP=8464
XP=5798 YP=8396
.
.
.
1-2 started
XP=5632 YP=8704
.
.
.
Another lua script should read a specific line from the txt-file depending on the framecounter. Note: This only works with TAS Editor due to the usage of Marker which is important. Here's the script for it so far, I need a bit of help to finish it.
Language: lua

Disp=function() if taseditor.engaged() == true then Marker = taseditor.getmarker(movie.framecount()); M_Str = taseditor.getnote(Marker); -- todo: function that finds the frame number of the Marked frame Diff = movie.framecount() - M_frame; -- Diff points at the line in the RAMlog.txt file used for the current frame RAMlog = io.open("RAMlog.txt", "r"); -- todo: -- Search for String in the RAMlog.txt file which is the same as the marker note -- From there use the Diff to pick the right line in the RAMlog.txt file RAMlog:close(); end; end; FCEU.registerafter(Disp);
How should this work: The script reads the frame number and the note of the marker where the playback cursor currently is. Then it calculates a difference between the frame where playback cursor is and the frame number of the marker. Then it searches for a string in the txt-file which is the same string as in the marker note. After something is found it uses the difference between framecounter and marker to pick up the right line. Let's say your marked frame with the note "1-1 started" is frame 300 and the playback cursor is at 305. Five lines after the string "1-1 started" in the txt-file is the right line ("XP=5752 YP=8464"), which should be read out. The marked frame would be the second line in the txt-file. On a new level another marker will point to other areas in the txt-file and read out the corresponding data. As already mentioned this one is not finished, and I would be glad if someone finishes it. I need some help with the io-functions and I couldn't find a function that returns the frame number of a marker. I hope everything is well written and understandable, if not feel free to ask.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Do you want to get banned? Everyone who writes colored text gets banned!
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
When you're in the folder where you bk2-file is, right click it, then select 7zip and click on "Open". You should now have a window with the movie data, including a file called "Input Log". Double click this one and select Notepad++.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
With 7zip.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
http://tasvideos.org/InputFileEditing.html#PlaintextFiles For BizHawk 1.7.4 you need to decompress the bk2-file, then open the part with the inputs in a text editor - notepad++ for example.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
For TASes with multiple authors, usually everyone works on a stage and then the fastest one is taken. You can share the input files via e-mail, or hand him the file on a usb-stick, if he doesn't have a e-mail and lives somewhere near you.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
There's not really much to cover, except you over-analyse the game.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
The emulation is slow because you have an ancient PC. TASes are timed by their framecount, not by their playback time on the emulator. When you make a frame dumb of your TAS, the movie will playback at the intended speed (60 fps), no matter how slow the emulation is.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Nahoc wrote:
Mothrayas wrote:
Anyway, the reason people are using Mupen for Mario 64 is that it leads to slightly faster times, which is actually really important if you try to aim for sub 5-minutes on a run like this.
I doubt it. I'm pretty sure they are just more comfortable using Mupen because you can compare frames so easily with previous runs. Talk to sonicpacker, Kyman, mkdasher and all the alike; they pretty much know any key frame number for various checkpoints (say, lakitu skip ends at 1609, key1 is frame 3400; yes I am making these up, haven't TASed SM64 in a while, but you get my point).
Everyone uses checkpoints for creating TASes. The current published run was converted, so what's the problem using the bkm version instead? Your checkpoints are at different frames, due to more accurate lag emulation. But the amount, timed from the first input of the segment to the end of segment, is still the same. I'm also currently working on a TAS of a SNES game, of which the older current published run was done on an inaccurate emulator (snes9x 1.4). That doesn't prevent me doing it on lsnes. Snes9x 1.4 is banned, but even if it would be still allowed, I'd really do it on the more accurate emulator.
Nahoc wrote:
Plus, SM64 has to be one of the best-emulated games available on Mupen so I really wouldn't have a problem if people kept using it for SM64.
This doesn't mean that the emulator is the best emulating one. The most accurate emulator should always be chosen, except it is a long time project.
Nahoc wrote:
Although, IIRC you can convert .m64 files to .bkm for SM64 because lag frames don't influence the inputs and it will still sync with some hex editing. Correct me if I'm wrong though.
Yes, you can. There's a lua script that let's you do that. You can also check everything with hex editing if input starts on the first possible frame.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Not even close to sub 5, mupen is a inaccurate shit.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Why not 69%?
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
kusoman wrote:
really it was my controls locking up I just sayd the wrong thing
Did you used aut-hold, or what? That's not neccessary for such a simple game!
kusoman wrote:
bizhawk doesn't work really well with my PC cant help it o_o
It works fine, you just aren't able to TAS properly.
kusoman wrote:
its a PAL rom what version do you have?
Write at least "uses PAL version" into the submission text!
kusoman wrote:
or maybe it depends on what version of bizhawk you use I use Bizhawk 1.7.4
No, it just depends on the game version. Watch this atleast: How to TAS
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Ok, I'll upload some basic video tutorial on copy-pasting and stuff. It needs 5 hours though... Edit: Here it is Kinda bad, but it should help at least.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Under the Config menu there's a option called "Bind markers to input", enable it. Your Markers will be affected by deleting and copying frames, which is a good thing, you don't need to reassign them all by hand. When you improve something, you resync your inputs with Ctrl+Del (delete frames) or Ctrl+Ins (paste-instert frames). You improved something, the next level will of course have all inputs on the same frame as the unimproved version. I recommend using branches for comparing strats not markers.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
When your input file is very long, saving and loading takes some time, you can disable auto-save if that helps.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch