TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.19k stars 384 forks source link

Unable to convert .gmv to .bk2 - Null Core #3797

Open Meerkov opened 1 year ago

Meerkov commented 1 year ago

Tested in 2.9.1 and 2.8

1) Load El Viento 2) Try converting the .gmv from tasvideos to .bk2 using the "Import" menu. 3) Try loading the movie (various ways, drag an drop, open in TAStudio, etc) 4) Warning about a null core, then a null reference exception is thrown and it gives up.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at BizHawk.Client.Common.MovieConversionExtensions.ToTasMovie(IMovie old)
   at BizHawk.Client.Common.MovieSession.ConvertToTasProj()
   at BizHawk.Client.EmuHawk.TAStudio.ConvertCurrentMovieToTasproj()
   at BizHawk.Client.EmuHawk.TAStudio.LoadMovieFile(String filename, Boolean askToSave)
   at BizHawk.Client.EmuHawk.TAStudio.OpenTasMenuItem_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.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.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Meerkov commented 1 year ago

For whatever reason, this does work 1) load El Viento 2) Drag and drop the .gmv movie into 2.9.1 3) Then open TasStudio

This doesn't throw an exception, but trying to convert from .gmv to .bk2 first does.

YoshiRulz commented 1 year ago

CNR on 2.9.1 or master at ac3913ded. Rom hash is SHA1:B53E9017... and I presume you were using this movie.

Meerkov commented 1 year ago

Socket (U) [!].zip Here's another old Genesis movie that I can't seem to get converted.

In this case, the behavior is a little different, but similar. The converted .bk2 seems to have no input log key, and crashes if you advance 1 frame.

Meerkov commented 1 year ago

image Trying to open in TasStudio throws this error forever until you force quit

Meerkov commented 1 year ago

I was able to eventually get it working by manually fixing the Input Log file, as the conversion only converted controller 2 to a 6 button input, but not controller 1. And as a result the input file was totally messed up.

Morilli commented 1 year ago

Can also not reproduce.

YoshiRulz commented 1 year ago

The Socket sample failed for me.

edit for future humans: This hasn't been fixed as of beee1eb82065cf0d840b65de8fcc84ded73a6d58. It should be as simple as widening the 3-button part if the other is 6-button.

Morilli commented 1 year ago

Okay that's apparently due to the importer (correctly) importing the first controller as 3-button controller and the second as 6-button, which is not supported by the sync setting that toggles 3/6 for both controllers.