You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TAStudio error: Index was out of range & System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
#606
Closed
Niamek opened this issue
Mar 24, 2016
· 4 comments
Alright, got it more reliably. I tseems that it's the deleting that breaks.
Steps I do:
->Open a ROM(I tested with a GBA game, but I got the same bug with a GBC rom too.
->Open TAStudio
->Let the movie play some frames(idealy an 100 so you have some rooms)
->Save a branch
->Delete a chunk of frames(like 20 frames in one delete)
->During the seeking, save a branch
->Select branches
->Error should be thrown.
Doing the same thing with cloning gives me this error:
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 System.Collections.Generic.SortedList2.GetByIndex(Int32 index) at System.Collections.Generic.SortedList2.ValueList.get_Item(Int32 index)
at BizHawk.Client.Common.TasStateManager.stateHasDuplicate(Int32 frame, Int32 branchHash)
at BizHawk.Client.Common.TasStateManager.RemoveState(Int32 frame, Int32 branch)
at BizHawk.Client.Common.TasStateManager.Invalidate(Int32 frame)
at BizHawk.Client.Common.TasMovie.InvalidateAfter(Int32 frame)
at BizHawk.Client.Common.TasMovie.ToggleBoolState(Int32 frame, String buttonName)
at BizHawk.Client.EmuHawk.TAStudio.TasView_MouseDown(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseDown(MouseEventArgs e)
at BizHawk.Client.EmuHawk.InputRoll.OnMouseDown(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.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)
EDIT: Removed the duplicate exception text.
The text was updated successfully, but these errors were encountered:
Finally, it seems that it's not relied only to deleting/cloning a group of frames since I got it by TASing and avoiding deleting groups of frames by deleting one by one. Won't give repro steps since it's the same bug.
EDIT: It seems that even if I don't clone/delete, I eventually get this bug too, it just takes a longer time.(I just had it without doing cloning or deleting), so I guess it's pretty much the branches that are busted. :(
Thank you in advance Vadosnaprimer for looking eventually into this bug.
That error always happens for me when I update a branch and then try to edit anything in the greenzone after that, so that's probably a more reliable reproduction assuming I'm not the only one it happens to.
Branch manipulation during seeking. All of these will get lost if I stop using bg threads for seeking and saving. it was a bad idea, taseditor uses a special Proc for progressbar and it handles events separately, also separately updating.
It looked like a nice feature here, but it was designed utterly wrong. Maybe someday someone wants to do it right, until then I'll kill it.
EDIT:
Woops, it's not progressbar related at all! It's branch states related ONCE FUCKING AGAIN. Jeez, that's what we want to kill since forever.
Alright, got it more reliably. I tseems that it's the deleting that breaks.
Steps I do:
->Open a ROM(I tested with a GBA game, but I got the same bug with a GBC rom too.
->Open TAStudio
->Let the movie play some frames(idealy an 100 so you have some rooms)
->Save a branch
->Delete a chunk of frames(like 20 frames in one delete)
->During the seeking, save a branch
->Select branches
->Error should be thrown.
Doing the same thing with cloning gives me this error:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
EDIT: Removed the duplicate exception text.
The text was updated successfully, but these errors were encountered: