DmdExt failing test with pindmdv3 after upgrade to 2.2
Reinstalled Freezy 1.9 from scratch and then copied relevant files from 2.2 over it. Getting the following DmdExt errors on test run (DmdDevice.ini only has pindmdv3 = true)
C:\Games\Visual Pinball\VPinMAME>dmdext test -d auto
[1] 2023/08/31 08:27:57.405 INFO | Launching console tool v2.2.0
[1] 2023/08/31 08:27:58.794 INFO | PinDMDv1 device not found.
[1] 2023/08/31 08:27:58.794 WARN | Device PinDMDv1 is not available.
[1] 2023/08/31 08:27:58.847 INFO | PinDMDv2 device not found.
[1] 2023/08/31 08:27:58.847 WARN | Device PinDMDv2 is not available.
[1] 2023/08/31 08:27:58.847 INFO | Checking port COM1 for PinDMDv3...
[1] 2023/08/31 08:27:58.867 ERROR | Error: The parameter is incorrect.
[1] 2023/08/31 08:27:58.867 INFO | Checking port COM3 for PinDMDv3...
[1] 2023/08/31 08:27:58.984 INFO | Found PinDMDv3 device on COM3.
[1] 2023/08/31 08:27:58.984 DEBUG | Firmware: REV-vPin-01014R
[1] 2023/08/31 08:27:58.984 DEBUG | Resolution: 128x32
[1] 2023/08/31 08:27:58.984 DEBUG | Revision: 1014
[1] 2023/08/31 08:27:58.984 INFO | Colored 4-bit frames for PinDMDv3 enabled.
[1] 2023/08/31 08:27:59.100 INFO | Added PinDMDv3 renderer.
[4] 2023/08/31 08:27:59.100 INFO | Starting ZeDMD frame thread.
[1] 2023/08/31 08:27:59.133 INFO | ZeDMD device not found
[1] 2023/08/31 08:27:59.133 WARN | Device LibDmd.Output.ZeDMD.ZeDMD is not available.
[1] 2023/08/31 08:27:59.133 WARN | Device PIN2DMD is not available.
[1] 2023/08/31 08:27:59.145 WARN | Device PIN2DMDXL is not available.
[1] 2023/08/31 08:27:59.145 WARN | Device PIN2DMDHD is not available.
[1] 2023/08/31 08:27:59.145 INFO | Checking port COM1 for Pixelcade...
[1] 2023/08/31 08:27:59.366 ERROR | Error: The operation has timed out.
[1] 2023/08/31 08:27:59.489 INFO | Checking port COM3 for Pixelcade...
[1] 2023/08/31 08:27:59.598 ERROR | Error: Access to the port 'COM3' is denied.
[1] 2023/08/31 08:27:59.598 INFO | Pixelcade device not found.
[1] 2023/08/31 08:27:59.598 WARN | Device Pixelcade is not available.
[1] 2023/08/31 08:27:59.711 INFO | Added virtual DMD renderer.
[1] 2023/08/31 08:27:59.722 INFO | Setting up Render Graph for 2 destination(s) [ PinDMD v3, Virtual DMD ]
[1] 2023/08/31 08:27:59.722 INFO | -> Connecting Image Source to PinDMD v3 (Bitmap => Rgb24)
[1] 2023/08/31 08:27:59.722 INFO | -> Connecting Image Source to Virtual DMD (Bitmap => Bitmap)
[1] 2023/08/31 08:27:59.737 INFO | Press CTRL+C to close.
[17] 2023/08/31 08:27:59.737 ERROR | The calling thread cannot access this object because a different thread owns it.
[18] 2023/08/31 08:27:59.737 ERROR | The calling thread cannot access this object because a different thread owns it.
[17] 2023/08/31 08:27:59.737 ERROR | System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapSource.get_PixelWidth()
at LibDmd.Frame.FrameExtensions.Dimensions(BitmapSource bmp)
at LibDmd.Frame.BmpFrame.Clone()
at LibDmd.RenderGraph.<>c__63`2.<Subscribe>b__63_0(TIn frame)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
--- End of stack trace from previous location where exception was thrown ---
at System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception)
at System.Reactive.Stubs.<.cctor>b__1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
at System.Reactive.ScheduledObserver`1.Dispatch(ICancelable cancel)
at System.Reactive.Concurrency.Scheduler.<ScheduleLongRunning>b__72(Action`1 a, ICancelable c)
at System.Reactive.Concurrency.DefaultScheduler.LongRunning.<>c__DisplayClassc`1.<ScheduleLongRunning>b__b(Object arg)
at System.Reactive.Concurrency.DefaultConcurrencyAbstractionLayer.<>c__DisplayClass5.<StartThread>b__4()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
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 System.Threading.ThreadHelper.ThreadStart()
[18] 2023/08/31 08:27:59.737 ERROR | System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapSource.get_PixelWidth()
at LibDmd.Frame.FrameExtensions.Dimensions(BitmapSource bmp)
at LibDmd.Frame.BmpFrame.Clone()
at LibDmd.RenderGraph.<>c__63`2.<Subscribe>b__63_0(TIn frame)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
--- End of stack trace from previous location where exception was thrown ---
at System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception)
at System.Reactive.Stubs.<.cctor>b__1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
at System.Reactive.ScheduledObserver`1.Dispatch(ICancelable cancel)
at System.Reactive.Concurrency.Scheduler.<ScheduleLongRunning>b__72(Action`1 a, ICancelable c)
at System.Reactive.Concurrency.DefaultScheduler.LongRunning.<>c__DisplayClassc`1.<ScheduleLongRunning>b__b(Object arg)
at System.Reactive.Concurrency.DefaultConcurrencyAbstractionLayer.<>c__DisplayClass5.<StartThread>b__4()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
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 System.Threading.ThreadHelper.ThreadStart()
[1] 2023/08/31 08:28:00.055 INFO | Creating FBOs for 128x32
Unhandled Exception: System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapSource.get_PixelWidth()
at LibDmd.Frame.FrameExtensions.Dimensions(BitmapSource bmp)
at LibDmd.Frame.BmpFrame.Clone()
at LibDmd.RenderGraph.<>c__63`2.<Subscribe>b__63_0(TIn frame)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
--- End of stack trace from previous location where exception was thrown ---
at System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception)
at System.Reactive.Stubs.<.cctor>b__1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
at System.Reactive.ScheduledObserver`1.Dispatch(ICancelable cancel)
at System.Reactive.Concurrency.Scheduler.<ScheduleLongRunning>b__72(Action`1 a, ICancelable c)
at System.Reactive.Concurrency.DefaultScheduler.LongRunning.<>c__DisplayClassc`1.<ScheduleLongRunning>b__b(Object arg)
at System.Reactive.Concurrency.DefaultConcurrencyAbstractionLayer.<>c__DisplayClass5.<StartThread>b__4()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
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 System.Threading.ThreadHelper.ThreadStart()
Unhandled Exception: System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapSource.get_PixelWidth()
at LibDmd.Frame.FrameExtensions.Dimensions(BitmapSource bmp)
at LibDmd.Frame.BmpFrame.Clone()
at LibDmd.RenderGraph.<>c__63`2.<Subscribe>b__63_0(TIn frame)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
--- End of stack trace from previous location where exception was thrown ---
at System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception)
at System.Reactive.Stubs.<.cctor>b__1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value)
at System.Reactive.ScheduledObserver`1.Dispatch(ICancelable cancel)
at System.Reactive.Concurrency.Scheduler.<ScheduleLongRunning>b__72(Action`1 a, ICancelable c)
at System.Reactive.Concurrency.DefaultScheduler.LongRunning.<>c__DisplayClassc`1.<ScheduleLongRunning>b__b(Object arg)
at System.Reactive.Concurrency.DefaultConcurrencyAbstractionLayer.<>c__DisplayClass5.<StartThread>b__4()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
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 System.Threading.ThreadHelper.ThreadStart()
You'll need to add --use-ini to the command line so it takes in its configuration.
Does it work through VPM?
Still didn't work. I've been seeing inconsistencies with my DMD display since this update. Random resetting of the pindmd3 display.
To add insult to injury, certain pac files are will cause the pindmd3 display to reset and stay stuck on the pindmd.com logo. I'm not completely sure this is software related because I hear a USB disconnect sound right at the time of reset.
Fixed