Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
delt31

VPX Crashing Upon Startup w/external DMD turned on (dmddevice freezy)

Recommended Posts

After exhausting many options I've decided to create this topic.  I have successfully loaded and played many games with color ROM via freezy DMDdevice.  Here's the issue

If I load a colored rom first (which has external DMD turned on) in vpx the app crashes.  If I load a non colored rom with no external DMD checked it loads and if I close the table and load that same color ROM, it will load fine and color works great.

 

Problem is bc it won't load first I can't load these color ROMs through PinballX either bc vpx crashes in background.

 

I've been troubleshooting for two nights no luck.  Anyone have suggestion as to why this is happening?

Btw what an amazing add on.  Simply incredible having color option even on par with my team color dmd

 

Share this post


Link to post
Share on other sites

Maybe you can find something out using Windows Event Viewer. Take a look at it after you have a crash.

Some people have had to copy dmddevice.dll to Windows Syswow64 folder. Have you tried that?

Freezy's dmddevice.dll uses .NET. There was a recent update distributed by Microsoft to v4.7. If you have updated maybe you can roll it back. If you have not updated then maybe you can go ahead and install the update.

If all else fails reboot.

If reboot fails then you may have to resort to a clean Windows re-install.

That's all I can suggest short of submitting a bug report and waiting for freezy to have some time to get back to the project


Sent from my iPad using Tapatalk

Share this post


Link to post
Share on other sites
44 minutes ago, lucky1 said:

I had these crashes too with the dmddevice.dll from freeze but it is working with my dll. Seems that vpx is timing critical.
Hope @freezy can reproduce these crashes to fix the problem.

Appreciate the response lucky.  What dll are you referring too that works and can you share here?  You mention vpx is timing critical - wasn't following.

Share this post


Link to post
Share on other sites

oh ok - just to be clear, that will only work on pin2dmd hardware not the virtual dmd right?  I only have the virtual dmd option

On my end, still troubleshooting and now it works just randomly.  I just open table, it crashes, repeat and now it opens. But it's not repeatable.  I get an error from VP but not sure that's helpful.  What's the best thing to look for to report this bug?

Share this post


Link to post
Share on other sites

Turn on debugging for the dmddevice. Try the same tables, untick the use external dmd - doesn't it happen then, well, then the log might be something freezy would be interested in looking at one time in the future. Bugs should be posted on github. You have to remember - you're running bleeding edge software where there will be bugs, so, if this IS related to that dll, well, then you're kind of out of luck because the programmer doesn't have time right now to work on the project. We have to respect that, it is after all something he does for free out of love for pinball and this community.

Share this post


Link to post
Share on other sites

Yeah totally understand.  Tech is very impressive

Tables work perfectly when external is not checked.  How do I turn on debugging?

For now I'm defaulting to no external checked, loading though Pinballx and then F1 to change to external than f3.  Work around for now.  Not sure if they're are shortcuts to uncheck/check. Also noticed that powered by mame is showing when the table loads. Before it would just load without showing screen. Likely due to me deleting the rom name in registry during troubleshooting. Need to figure out how to change that back.

Share this post


Link to post
Share on other sites

SOLUTION!

Change this registry line item from 1 to 0 fixed it!!!

at91jit

For others with the same issue - check this out first.  It would have saved me 12 hours!  Line item at91jit which is in the individual roms settings under vpmame in registry.  Who the F would have thought to change that?  User STV recommended it.  Thanks!

Share this post


Link to post
Share on other sites

Glad you have it running and sorry I didn't respond earlier, 

@DJRobX Do you have any idea how I could fix crashes with JIT turned off? It seems in this case the crash isn't originating from dmddevice.dll but from VPM itself. Any way we can debug this?

Share this post


Link to post
Share on other sites

Happy to see you back Freezy!    Your virtual color DMD driver has been one of the best things to hit my cab!  

For the JIT crashing - Please try the latest SAM beta builds.

I believe there are issues with long memory jumps in the JIT code.   My theory is that JIT starts up, allocates a small pool of memory, opens up DMDDevice.dll, and its dependent libraries, and then finally starts running the ROM.  It then allocates more memory for generated code on the fly, but when DMDDevice is in use, the new blocks end up further away from the code it generated in the first page and this sometimes results in crashing.    When you don't use DMDDevice the dynamically generated pages end up closer to the initial code page, so they don't crash.   In x86 assembly you use different JMP instructions depending on the distance. 

 I very recently changed it to pre-allocate a larger block on startup to prevent this issue, and it stopped crashing in TWD on my cab.   There's still a bug in there somewhere.   It's not an easy problem to solve.    I'm far from an expert on dynamic recompliers (frankly I'm pretty proud of myself for having found and fixed as many issues with it as I have :) ).    

There's a reason I've put a bunch of effort into the JIT core in the first place - The serial LED support used in the LE games requires precise, responsive handling of IRQ events.  The C++ core doesn't check for these events as frequently as the checks are costly.     If JIT is off you may experience timing failures in the serial LED stuff which results in the lights dying, and the DMD frames running slow.  

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×