dmd-extensions icon indicating copy to clipboard operation
dmd-extensions copied to clipboard

DmdExt failing test with pindmdv3 after upgrade to 2.2

Open ecchodun opened this issue 2 years ago • 3 comments

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()

ecchodun avatar Aug 31 '23 13:08 ecchodun

You'll need to add --use-ini to the command line so it takes in its configuration.

Does it work through VPM?

freezy avatar Sep 07 '23 22:09 freezy

Still didn't work. I've been seeing inconsistencies with my DMD display since this update. Random resetting of the pindmd3 display. Capture

ecchodun avatar Sep 29 '23 14:09 ecchodun

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.

ecchodun avatar Sep 29 '23 20:09 ecchodun

Fixed

freezy avatar Apr 21 '24 15:04 freezy