Posts for TASeditor

Editor, Experienced Forum User, Published Author, Skilled player (1508)
Joined: 7/9/2010
Posts: 1317
Alyosha: User movie #36384914702768785 and User movie #36385002662688000 True: You did use the latest BizHawk release? And set it up to NESHawk, 1 controller connected? After importing you need to delete one frame before reset.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Run it with only player 1 connected.
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 (1508)
Joined: 7/9/2010
Posts: 1317
I removed inputs on all lag frames, that could be why it doesn't sync. It's probably very sensitive to PPU state. At the beginning of the second room delaying the movement interupt and inserting a D press gives same position at first, but then causes a desync at the point where BizHawk also desyncs. I got the run to sync but it had overall 9 frames of delay.
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: Update to submission file
Editor, Experienced Forum User, Published Author, Skilled player (1508)
Joined: 7/9/2010
Posts: 1317
Please update the submission with this 8 frame faster run: User movie #36341054517440931 I couldn't get it to a glitched ending, so those who wanted a clean ending are lucky.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Yeah unfortunately the lag in this game is not very cooperative. Everytime you change lag, the next instance lag will appear is different from before. I haven't done any work for other rooms, so give me 3 or 4 days until I completed a new version. As it looks interupts weren't even used in the published run.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Room 1 is now 5 frames faster: User movie #36277810643532219
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 (1508)
Joined: 7/9/2010
Posts: 1317
Masterjun works on removing the last button presses. It's dependend from PPU cycle count. And I will try to improve other rooms by testing more interupts, might code a semi-automatic bot for, since it this point it's nearly impossible. So, please set it to delayed for a while.
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 (1508)
Joined: 7/9/2010
Posts: 1317
It's already used all over the place, nothing new.
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 (1508)
Joined: 7/9/2010
Posts: 1317
I tased a game which had a frame-advance feauture build in and it saves a frame when manipulating luck with pausing
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 (1508)
Joined: 7/9/2010
Posts: 1317
Frame war is unrealistic. This is the best I could do:User movie #36213916995294957 Saves 192 subpx and 3 lagframes at frame 1231.
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 (1508)
Joined: 7/9/2010
Posts: 1317
What a 25 min game and only 3 month of worktime? Count me in for never finishing. Actually count me in.
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: Re: Improvements to Bizhawk
Editor, Experienced Forum User, Published Author, Skilled player (1508)
Joined: 7/9/2010
Posts: 1317
Wow, that's one of worst experiences with BizHawk I have ever seen. Did you even use it for longer than two minutes? Most of the things you described already exist, the rest is plain nonsense.
blackbombchu wrote:
Bizhawk should provide it's own tutorial on how to use it that's easy for anyone to understand.
The only one who has difficulties using BizHawk is you. The worst thing about it you didn't even try to search for documentation. Help.
It should emulate all games properly and the emulation should not have glitches that the original game didn't have.
No shit.
Not only should it have the feature of being able to save or load a state. There should also be a way to suddenly switch to TAS mode in the middle of game play by opening TAS studio which already exists but TAS mode should work in a different way.
You can't just write random terms without ever describing them.
There should be a way to start recording your gameplay when ever you want by clicking a certain option.
You can configure many hotkeys, including one for this.
You should be required to have your gameplay be in the middle of getting recorded in order to enter TAS mode. Once you enter TAS mode, it should list the entire sequence of controller inputs since you started recording and you should be able to see what the game looks like on a specific frame by clicking that frame making it be the only highlighted one.
That's exactly what TAStudio is doing.
When you make an edit to the sequence of controller inputs, nothing should happen until you click "Save changes" and after you do so, the earliest frame that changed should be the one highlighted.
What? There are ways to store your best attempt to branches.
There should also be a button to play the movie in the TAS studio, but if you haven't saved the changes you made to the sequence of controller inputs, a box should open up asking you if you'd like to save those changes and if you pick no, they should be lost.
I give up. You apparantely never opened TAStudio.
Exiting TAS studio should also make you play in real time from the highlighted frame but once you reenter TAS studio, the change in controller inputs as a result of exiting TAS studio should be treated like a single edit that can be undone.
Why would one ever close TAStudio to record inputs and then start TAStudio again when there is a record option inside TAStudio.
Finally, TAS studio should also have a button for saving the video you're making and for closing it in a way that deletes the temporary record of what edits you made to the video and enables you to start making another video in the same way.
Ctrl+S for saving tasproj files. And branching for storing best attempt/tests/etc.
Clicking "Save changes " should really save changes in the sense of saving a video. It should just change the temporary record of what edits you made to the sequence of controller inputs.
And yes, you never used BizHawk for longer than 2 minutes.
Once you open a video you already made, you should also be able to edit that video and save it with a different file name without deleting the video you already made.
Again already possible.
The tutorial should give long instructions on how to use that version of Bizhawk that anyone can understand and actually learn how to do what ever they want to do in that program and there should be a clear warning to people before they download it that they will probably completely know how to use it if they take the time to read the big long tutorial and that they might even end up accidentally losing an edit that they regret losing if they don't read the whole thing.
Is that program really that complicated. I used far more complicated software when I was 10 and I didn't mess anything up. If you're not willing to search for documentation or get used to BizHawk before starting a serious TAS, then it's your fault. Only yours.
They should also have tutorial on how to download it and there should be a simpler way to download it so that there won't have to be as long a tutorial on how to download it that peo ple who aren't computer experts can understand.
My mom isn't a computer expert and she can download things from the internets.
It should also be possible to load a gamecube controller profile just like in Project 64. Bizhawk should provide a tutorial on how to create one and there should be a way to create one in Bizhawk so that the tutorial won't have to be as long and still be understandable to people who aren't computer experts.
You can save and load controller config files, nothing new.
There should also be a way to save a screenshot as a PNG image file. Also, also files that were a saved state that wasn't saved in Bizhawk itself should be able to be converted into a PNG image.
Ever used BizHawk?
I think tasvideos.org should get help from a high level research group to figure out how to make an even better version of Bizhawk.
How would that help? An outside research group wouldn't help, they're not familiar with what we do and what we want. The developers of TAStudio are the researchers already. They try to improve the usability depending on what users say. Along with that much research already happened in 2011/2012 when AnS created TAS Editor. And I recently did some research for more semi-automatic TASing. But we could get more good programmers from outside, but they then act as programmers only. I think what you wanted to say is that you don't know the TASVideos community.
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 (1508)
Joined: 7/9/2010
Posts: 1317
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 (1508)
Joined: 7/9/2010
Posts: 1317
What you described isn't abusing floating point precision. It is just regular strafing. Abusing floats leads to a fractional small increase of the speed. In Chameleon Twister it's about 0.000002u (can't remember the exact value), it's so precise that no one does that. except me. But since there's already strafing in this game, the float abuse would fall into strafing optimization anyways.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Neat WIP. There might not be strafing, but can you abuse floating point precision to get better speed? It's somewhat like strafing, but more precise and doesn't gain as much speed. And if BizHawk doesn't display lag, there's an option called "Non VI Lag". BizHawk 1.11.8.2 had some N64 core changes, maybe that would help with the desyncs. Or you used a bad setting.
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 (1508)
Joined: 7/9/2010
Posts: 1317
There's an IRC channel.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Today I made some tests with branch lua functions I added. I implemented functions that can save and load branches, I changed a lua script that I originally wrote for NESPack and replaced clicking on a button with saving the current branch. Saves clicking five times on a button, but not the best solution, better would be to have seperate emulation threats for the input testing. The actual input assignment for this is pretty primitive, simply counting up. Many multiple equal valued input sets will apear. Video for people interessted what's happening. Link to video Ingore the rerecords; It's from month ago from when I used the script to optimize 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 (1508)
Joined: 7/9/2010
Posts: 1317
Challenger wrote:
Yes vote for Vault.
You accidentally voted yes instead of no.
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 (1508)
Joined: 7/9/2010
Posts: 1317
I probably can do the one lua function, but definitaly not output log and costum columns, I don't know any C++ unfortunately. Something I would like to try out is to have a window where the user can set game-rules in a intuitive way, so programming wouldn't be needed...
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 (1508)
Joined: 7/9/2010
Posts: 1317
Yes, it works fine. I changed the marker control a lot. Added a routine that checks for all markers that contain "start" on script load, so the script always knows when it should do auto input. The control string "fjf" is removed, now when incrementing/decrementing jump height, the frame where the jump will be applied is first frame of selection. A free speed-up for the script would be to use taseditor.submitinsertframes() and taseditor.submitdeleteframes() when input is shifted after landing earlier/later, but that would require an output log to see changes. The marker controls for setting properties could be columns in TAS Editor instead, so that properties can be set quicker and easier, but that wont happen.
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 (1508)
Joined: 7/9/2010
Posts: 1317
From the documentation I don't find it obvious that taseditor.getmarker() can be applied outside a marked frame and still return a valid index. And for my request taseditor.markedframe(), whose function name already exist whoops, I want to get the frame number of a marker with a given index. It would be equivalent to taseditor.getnote(int index), but would return the frame number instead.
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 (1508)
Joined: 7/9/2010
Posts: 1317
So, I created a lua script that automatically assigns input in TAS Editor depending on the current game state and setting. The player is no longer controlled by drawing into the input roll, but by setting properties into markers or using a hotkey or the small provided window. The marker can have the following strings in it which set the properties:
    start: Sets a flag that allows the script to do automatic input modification end: Unsets the flag and prevents the script from doing automatic input modification mov r: Sets the direction to right mov l: Sets the direction to left jmp n: Sets the jump height, where n is the jump height provided from a table fjf: Forces the frame that will modify the jump height, normally it's the frame from the last jump. Unforced if a marker doesn't contain that string.
The window has three different buttons, that allow switching direction, changing jump height or disabling jumping alltogether, the player will then walk on the ground. There's also a label with the current direction and one the jump height and the jump pattern coded into decimal representation, it's a 12 bit long number. The automatic input for left/right movement works as follows:
    Get the currently pressed buttons, except B, L, R and store them into a variable Get B, L, R and store them into another variable Check game state. Depending on the game state the input will be modified differently Check wheter input needs to be modified. Not doing it slows the script massively down, because it would always modify the input. If it needs to modified, then modify the input
So here is part of the inputMovement function in the script as an example: Note that correctly assigning the input can be quite the challenge.
Language: lua

local preInput = AND(taseditor.getinput(movie.framecount(), 1), 61) -- A, S, T, U, D, local i = AND(taseditor.getinput(movie.framecount(), 1), 194) -- B,L, R if groundflag == 0 then if XSpeed < 405 then if XSpeed < 304 then if AND(i,2)==2 or AND(i,192)==192 or AND(i,64)*left==0 and AND(i,128)*(1-left)==0 -- check pressed B, L, R buttons then taseditor.submitinputchange(movie.framecount(), 1, 128-left*64+preInput); taseditor.applyinputchanges(); end else if AND(i,2)==0 or AND(i,192)==192 or AND(i,64)*left==0 and AND(i,128)*(1-left)==0 then taseditor.submitinputchange(movie.framecount(), 1, 130-left*64+preInput); taseditor.applyinputchanges(); end end
The jumping does mostly the same logic as the movement, except when changing the jump height it modifies multiple frames at once. The jump pattern is created by modifing into into a table which contain either one or zero, for pressing a or not. Like converting a decimal number into binary. So here's part of the changeJumpPattern function:
Language: lua

while (x > 0) do local y = math.floor((x / 2)) local z = x % 2 x = y inputT[i] = z i = i + 1 end local m = i-1 for i = 0, m, 1 do preInput = AND(taseditor.getinput(jf+11-i,1), 254) taseditor.submitinputchange(jf+11-i, 1, inputT[i]*1+preInput) end taseditor.applyinputchanges()
feos asked me if there are more lua functions needed to make that easier. There are:
    Get the string of the current marker where the playback courser is. It is the string that is visible at the top in TAS Editor Get the index of the current marker where the playback courser is. Get the string of the current marker where the selection courser is. It is the string that is visible at the bottom in TAS Editor Get the index of the current marker where the selection courser is. int taseditor.markedframe(int index) returns the the frame number of a marker with the corresponding index, nil if the index doesn't exist
My goal is to make such script expandable for all different kinds of games. Right now it's just a playfield to research the usability of semi-automatic tools. There are many things that could be many things to be added to make it easier.
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: Re: Psxjin Save state graphics screw ups
Editor, Experienced Forum User, Published Author, Skilled player (1508)
Joined: 7/9/2010
Posts: 1317
[quote="I like bleach 64"][video][movie][userfile][post][/post][/userfile][/movie][/video][/quote]
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: Re: TASStudio, How to change the start of my TAS ?
Editor, Experienced Forum User, Published Author, Skilled player (1508)
Joined: 7/9/2010
Posts: 1317
Arcree2 wrote:
I just started to do my first TAS using Tasstudio but I want to change a few frames without restarting.
So much irony.
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 (1508)
Joined: 7/9/2010
Posts: 1317
Reminder for feos: "auto adjust lag doesn't work when turbo-seek is on", "it also stops playback at the lag frame and not the auto-restore frame when auto restore is enabled on lag remove"
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