Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Alyosha wrote:
Getting this error in NESHawk when trying to use TAStudio. It happens when I hit the '<<' button.
Works for me. Try killing the greenzone.
Alyosha wrote:
Also it seems like 'recording mode' is defaulting to on even though the check box is not checked (if I just open TAStudio and play a movie it deletes all the inputs.)
Everything works fine for me, and it's off by default too. What if you remove the config? EDIT: Fixed clipboard indication.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
^ seems to work with a clean config. My computer just seems to not play nicely with TAStudio.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
http://tasvideos.org/userfiles/info/36685975026438434 feos I narrowed down what was causing the apparent 'recording mode' bug. I made this movie conversion from the original fm2 (after just deleting the config.ini) When I open the bk2 in TAStudio and hit play it overwrites the inputs as though its in recording mode. When I click the check box, it does not make a check mark appear, but after a second click a check mark does appear. Can you open that bk2 file and see if you get the same results? I also get the same exception as I mentioned before if I let this movie play a bit then hit the '<<' button.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
It crashes when I try to open this movie in tastudio. WTF?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
oh, I forgot that deleting the config file defaults NES back to QuickNES. So that movie was converted with the QuickNES core. That movie is only compatible with QuickNES then. I guess TAStudio should also pick the correct nes core as well? Either way I get the same errors opening it in QuickNES.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
With qicknes it opens and runs perfectly, no recording mode by default, no erasing of inputs, no crash after <<.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
Ok, I tracked down the bug to right after the dialog box:
'This is a regular movie, a new project must be created from it, in order to use TAStudio. Proceed?'
After you click 'ok' this function is called (line 604 of TAStudio.cs):
ConvertCurrentMovieToTasproj();
here is that code:
private void ConvertCurrentMovieToTasproj()
		{
			Global.MovieSession.Movie.Save();
			Global.MovieSession.Movie = Global.MovieSession.Movie.ToTasMovie();
			Global.MovieSession.Movie.Save();
			Global.MovieSession.Movie.SwitchToRecord();
			Settings.RecentTas.Add(Global.MovieSession.Movie.Filename);
		}
Notice the 'SwitchToRecord' there. This is where the recording bug comes from I think. The exception comes from ToTasMovie(), from right here:
...
tas.TasStateManager.MountWriteAccess();
...
which contains:
States = new SortedList<int>(limit);
Thie erases state 0, which was already created at this point, and thereafter state 0 does not get reinitiialized, so the key 0 in the list will never exist. So when you hit '<<' and it tries to find States[0].state it doesn't exist (it doesn't show up as darker colored in the piano roll indicating a state is there) so naturally there is an error. This should definitely result in an error. @feos: can you see if you are ending up in the same code path? Or if you are somehow getting state 0 re-made somewhere after this point? EDIT: If I change 'SwitchToRecord()' to 'SwitchToPlay()' in the above then that is clears up the recording bug. Not sure what to run to fix the savestate bug.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
A bit busy right now, please check what happens if you open the bk2 converted from fm2 right from tastudio file menu.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
A bit busy right now, please check what happens if you open the bk2 converted from fm2 right from tastudio file menu.
This is what I have been doing all along. Is there even another way to do it?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Load the movie in bizhawk and then launch tastudio?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
:O I didn't even know you could do that. Just tried it now and there are no errors. So whatever is happening differently when it gets loaded from TAStudio must be the cause. Have you tried loading it from TAStudio?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
When I refined loading the project directly, I had no idea things would break with a converted movie. It doesn't happen with a regular bizhawk movie does it?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
When I refined loading the project directly, I had no idea things would break with a converted movie. It doesn't happen with a regular bizhawk movie does it?
When I do this: Open BizHawk->Open Rom->Play Movie->Load Bk2-> Open TAStudio I do not get any errors. When I do this: Open BizHawk->Open Rom-> Open TAStudio->OpenBK2 from TAStudio I get the errors mentioned before. It happens even for native Bk2s (not just ones converted from somewhere else.) TASProj files seem to be fine.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
And what exactly happens even if you change 'SwitchToRecord()' to 'SwitchToPlay()' and then do "Open TAStudio->OpenBK2 from TAStudio", again?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
And what exactly happens even if you change 'SwitchToRecord()' to 'SwitchToPlay()' and then do "Open TAStudio->OpenBK2 from TAStudio", again?
If I do that then I can play the movie without it over-writing all the inputs that are already in the Bk2. Also the recording mode check box then works as expected. Doesn't fix the non-existent frame 0 state though.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Test now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
Test now.
State 0 is back now and the recording mode bug is gone, thank you feos! I do notice a couple different behaviours now. The frame 0 marker is no longer made, and a TASproj movie is not automatically made from the BK2. Are these the expected behaviours?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Obviously not. These 2 ways don't like to be walked at once. Need to figure out.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Test!
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
Test!
Frame zero marker is back! It now also makes a .tasproj file from the .bk2 on opening. However, the title at the top of TAStudio still says 'default.tasproj' I'm not sure if this is just not being upodated, or if it is actually running in default.tasproj.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Fixed.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
feos wrote:
Fixed.
Thank you feos! Those bugs were really annoying, glad they are fixed.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
In Aerofighters Assault, the ear-bleeding sound is a bug in the Audio plugin of Mupen64plus. It normally dies down, but using TAStudio, it doesn't! I want the next version of BizHawk to have the option to select an audio plugin.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
I found a bug in when cloning inputs to frames that haven't been processed, it creates junk input which may cause the recording to desync.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
Sorry for triple posting, but I have to tell you this. I went to Config > Customize... and clicked the Advanced tab and checked the following: Store movie working data on disk instead of RAM Store movie working data in extended > 1GB RAM I restarted the emulator, opened the ROM, Opened TAStudio, Went to Metadata > Savestate history settings... and entered the following: Memory capacity 1 MB Disk capacity 65536 MB I receive error: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at System.Collections.Generic.SortedList`2.GetByIndex(Int32 index) at System.Collections.Generic.SortedList`2.ValueList.get_Item(Int32 index) at BizHawk.Client.Common.TasStateManager.StateToRemove() at BizHawk.Client.Common.TasStateManager.MaybeRemoveStates() at BizHawk.Client.Common.TasStateManager.SetState(Int32 frame, Byte[] state, Boolean skipRemoval) at BizHawk.Client.Common.TasStateManager.Capture(Boolean force) at BizHawk.Client.Common.TasMovie.GreenzoneCurrentFrame() at BizHawk.Client.Common.MovieSession.HandleMovieAfterFrameLoop() at BizHawk.Client.EmuHawk.MainForm.StepRunLoop_Core(Boolean force) at BizHawk.Client.EmuHawk.MainForm.ProgramRunLoop() at BizHawk.Client.EmuHawk.Program.SubMain(String[] args) It works fine on Memory capacity 2 MB, but it always goes to frame 0 every time you do something. It treats the savestate capacity as 0 instead of the actual number. The clipboard function is not work And when I try to save selection to macro, I get this: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at BizHawk.Client.Common.Bk2LogEntryGenerator.CreateLogEntry(Boolean createEmpty, Boolean forInputDisplay) at BizHawk.Client.EmuHawk.MovieZone..ctor(IMovie movie, Int32 start, Int32 length, String key) at BizHawk.Client.EmuHawk.TAStudio.saveSelectionToMacroToolStripMenuItem_Click(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) No matter what I do, there's no way to combat memory leaks. Edited by feos: Don't include loaded assemblies in bug reports.