puggsoy / GMS-Explorer

Game Maker Studio data.win explorer
6 stars 0 forks source link

"Invalid PNG header!" exception opening The Slormancer #2

Closed Senryoku closed 12 months ago

Senryoku commented 2 years ago

Opening the data.win file of The Slormancer (v0.3.1071) results in an "Invalid PNG header!" exception. (it's 0x072917594D524F46 instead of the expected 0x0A1A0A0D474E5089)

For some context, I was successfully using GMExtract with this title until their latest update when it started to give me this error, and I tried GMS-Explorer instead. I know they've updated the engine version a while back, but I'm not a 100% sure it coincided with GMExtract not working anymore. I also unsure which version they're currently using, I can try to work this out if you tell me where to look, and if it can help you understand the problem :)

Full stack trace:

System.Exception
  HResult=0x80131500
  Message=Invalid PNG header!
  Source=GMS Explorer
  StackTrace:
   at GMS_Explorer.Extensions.GetPNGLength(BinaryReader br, Int64 offset) in GMS-Explorer-master\GMS Explorer\Extensions.cs:line 86
   at GMS_Explorer.Spritesheet.Load(BinaryReader br, UInt32 address) in GMS-Explorer-master\GMS Explorer\ChunkItems\Spritesheet.cs:line 23
   at GMS_Explorer.ListChunk`1.LoadData(BinaryReader br) in GMS-Explorer-master\GMS Explorer\ListChunk.cs:line 30
   at GMS_Explorer.TXTR.Load(BinaryReader br) in GMS-Explorer-master\GMS Explorer\Chunks\TXTR.cs:line 21
   at GMS_Explorer.MainWindow.Open_Click(Object sender, RoutedEventArgs e) in \GMS-Explorer-master\GMS Explorer\MainWindow.xaml.cs:line 69
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at GMS_Explorer.App.Main()
puggsoy commented 12 months ago

Finally starting to take a look at this. Further discussion should go here https://github.com/puggsoy/GMS-Explorer/issues/4