Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Works for me. Try killing the greenzone.
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
: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?
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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?
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
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.
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.
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.