mjrgh / PinballY

A table browser and launcher ("front end") for virtual pinball cabinets.
Other
47 stars 22 forks source link

DMDDevice.dll not detected in any location #5

Closed kaicherry closed 6 years ago

kaicherry commented 6 years ago

My DMD the (infamous?) PINDMDv3 works just fine with VPinMame, etc, with the supplied, as well as DMD Extensions "Freezy" DLL, however, these are not detected, neither in the vpinmame folder nor the PinballY folder. I would expect them to de detected in the program's folder.

Any guidance?

mjrgh commented 6 years ago

You probably already did this, but did you go to the options and enable DMD detection? I disabled that as the default because the dmd-extensions DLL has a bug that was crashing it for anyone with that DLL installed. I've since found a workaround that avoids the crash until he can get a fixed version out (at the cost of losing the VPinMAME auto-coloring feature), so you should be able to use either DLL, and yes, it should find it in the VPinMAME folder.

If you did already explicitly enable the DMD in the options, try turning on DMD logging on the "Log File" page of the options, then take a look at the log file (PinballY.log, in the install folder) to see what it's reporting. That will give you a detailed account of the DLL search/load process.

Regards,

Mike


From: kaicherry notifications@github.com Sent: Tuesday, August 14, 2018 10:10:58 PM To: mjrgh/PinballY Cc: Subscribed Subject: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

My DMD the (infamous?) PINDMDv3 works just fine, with the supplied, as well as DMD Extensions "Freezy" DLL, however, these are not detected, neither in the vpinmame folder nor the PinballY folder. I would expect them to de detected in the program's folder.

Any guidance?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41bR_GjhEd34GXef9j7KTHsEgo86yOks5uQ61igaJpZM4V9ksW.

kaicherry commented 6 years ago

Ok so, I think maybe the Installer on your site has the wrong version for 64bit? It's Alpha 6, but labeled as the latest it appears. These options are not present.

Thanks for the quick response, Mike!

-K

mjrgh commented 6 years ago

Yeah, looks like the MSI build somehow got screwed up - something must have gone wrong in the build process that I missed. It looks like the ZIP version has the right build, though. You can grab the "minimal update" ZIP and unzip the contents into the PinballY folder - that should give you the latest. I'll have to look into what went wrong with the MSI.

Regards, Mike


From: kaicherry notifications@github.com Sent: Tuesday, August 14, 2018 11:36:47 PM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

Ok so, I think maybe the Installer on your site has the wrong version for 64bit? It's Alpha 6, but labeled as the latest it appears. These options are not present.

Thanks for the quick response, Mike!

-K

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-413107470, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41bUUwcwFTDZN5ZXqh10aP4GPWuxeJks5uQ8F_gaJpZM4V9ksW.

kaicherry commented 6 years ago

More to report, pre-update to August 16 build:

Mike, I was able to get the DMD working; essentially, I needed to run Setup64. After doing this, the software still did not fully recognize the DLLs in the PinMame location - I ultimately had to copy them all for PinballY's location.

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :)

When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I will update to the latest and report back if the issue remains.

Would you consider publishing Changelogs with the updates?

Thanks btw. This has become my Go-to launcher.

mjrgh commented 6 years ago

If you could send me a log file with DMD logging enabled, that might help explain why it's not finding the VPinMAME copy. It might also offer some hints about why the DMD isn't working once it loads.

It makes sense about having to install the 64-bit version of the DLL. One of the rules on Windows is that EXE and DLL "bitness" always have to match - a 64-bit EXE will only work with 64-bit DLLs, and 32-bit only works with 32-bit.

There actually is a change log in the source tree on github - look for VersionHistory.txt in the root folder. But now that you point it out, I should add it to the binary build package as well.

Regards, Mike


From: kaicherry notifications@github.com Sent: Friday, August 17, 2018 10:56:10 AM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

More to report, pre-update to August 16 build:

Mike, I was able to get the DMD working; essentially, I needed to run Setup64. After doing this, the software still did not fully recognize the DLLs in the PinMame location - I ultimately had to copy them all for PinballY's location.

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :)

When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I will update to the latest and report back if the issue remains.

Would you consider publishing Changelogs with the updates?

Thanks btw. This has become my Go-to launcher.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-413942656, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41bWRRFZ3TcSfT7H7S7wzVK9Mg0-T7ks5uRwO6gaJpZM4V9ksW.

mjrgh commented 6 years ago

Oh, I think I misunderstood this part...

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :) When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I read that as "DMD isn't working at all", but that's rather different!

I'll have to think about what could be going on. Which DLL are you using? I wonder if there's some USB locking conflict where the 64-bit and 32-bit versions of the DLL can't open the device simultaneously, so the fact that PBY is sitting in memory with the 64-bit DLL loaded is preventing 32-bit VPinMAME from simultaneously opening the device. Maybe I need to unload the DLL whenever a game is launched. But, eek, that would be a bit of a snag, because dmd-extensions has a bug right now that makes it crash and burn if I try to unload it. I passed it along to Freezy about a week ago, but I don't know if he's going to be able to look into it; it seems like a rather difficult issue with C#/.Net threading that I wasn't able to make any headway debugging.

Anyway, if you could fill me in on some of the details about which DLL(s) are involved, that would give me some more to think about.

Regards,

Mike


From: Mike Roberts mjr_@hotmail.com Sent: Friday, August 17, 2018 1:51:34 PM To: mjrgh/PinballY Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

If you could send me a log file with DMD logging enabled, that might help explain why it's not finding the VPinMAME copy. It might also offer some hints about why the DMD isn't working once it loads.

It makes sense about having to install the 64-bit version of the DLL. One of the rules on Windows is that EXE and DLL "bitness" always have to match - a 64-bit EXE will only work with 64-bit DLLs, and 32-bit only works with 32-bit.

There actually is a change log in the source tree on github - look for VersionHistory.txt in the root folder. But now that you point it out, I should add it to the binary build package as well.

Regards, Mike


From: kaicherry notifications@github.com Sent: Friday, August 17, 2018 10:56:10 AM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

More to report, pre-update to August 16 build:

Mike, I was able to get the DMD working; essentially, I needed to run Setup64. After doing this, the software still did not fully recognize the DLLs in the PinMame location - I ultimately had to copy them all for PinballY's location.

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :)

When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I will update to the latest and report back if the issue remains.

Would you consider publishing Changelogs with the updates?

Thanks btw. This has become my Go-to launcher.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-413942656, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41bWRRFZ3TcSfT7H7S7wzVK9Mg0-T7ks5uRwO6gaJpZM4V9ksW.

mjrgh commented 6 years ago

Yet another thought: as far as I know, that crash bug I mentioned actually only affects dmd-extensions in virtual DMD mode, so it actually should be safe to close the session when a physical device is in play. I built a test version for you that does just that - "minimal update" version is here, 64-bit:

http://mjrnet.org/pinscape/downloads/PinballY/PinballY-64bit-Min-20180817.zip

Just unpack that to replace your existing files.

Regards, Mike


From: Mike Roberts mjr_@hotmail.com Sent: Friday, August 17, 2018 8:14:35 PM To: mjrgh/PinballY Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

Oh, I think I misunderstood this part...

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :) When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I read that as "DMD isn't working at all", but that's rather different!

I'll have to think about what could be going on. Which DLL are you using? I wonder if there's some USB locking conflict where the 64-bit and 32-bit versions of the DLL can't open the device simultaneously, so the fact that PBY is sitting in memory with the 64-bit DLL loaded is preventing 32-bit VPinMAME from simultaneously opening the device. Maybe I need to unload the DLL whenever a game is launched. But, eek, that would be a bit of a snag, because dmd-extensions has a bug right now that makes it crash and burn if I try to unload it. I passed it along to Freezy about a week ago, but I don't know if he's going to be able to look into it; it seems like a rather difficult issue with C#/.Net threading that I wasn't able to make any headway debugging.

Anyway, if you could fill me in on some of the details about which DLL(s) are involved, that would give me some more to think about.

Regards,

Mike


From: Mike Roberts mjr_@hotmail.com Sent: Friday, August 17, 2018 1:51:34 PM To: mjrgh/PinballY Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

If you could send me a log file with DMD logging enabled, that might help explain why it's not finding the VPinMAME copy. It might also offer some hints about why the DMD isn't working once it loads.

It makes sense about having to install the 64-bit version of the DLL. One of the rules on Windows is that EXE and DLL "bitness" always have to match - a 64-bit EXE will only work with 64-bit DLLs, and 32-bit only works with 32-bit.

There actually is a change log in the source tree on github - look for VersionHistory.txt in the root folder. But now that you point it out, I should add it to the binary build package as well.

Regards, Mike


From: kaicherry notifications@github.com Sent: Friday, August 17, 2018 10:56:10 AM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

More to report, pre-update to August 16 build:

Mike, I was able to get the DMD working; essentially, I needed to run Setup64. After doing this, the software still did not fully recognize the DLLs in the PinMame location - I ultimately had to copy them all for PinballY's location.

After doing this, I was in fact able to get the Real DMD going in PinballY...BUT :)

When I launch a table, the DMD is dead. Turning off DMD functionality in PinballY restored the DMD when I launched tables.

I will update to the latest and report back if the issue remains.

Would you consider publishing Changelogs with the updates?

Thanks btw. This has become my Go-to launcher.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-413942656, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41bWRRFZ3TcSfT7H7S7wzVK9Mg0-T7ks5uRwO6gaJpZM4V9ksW.

kaicherry commented 6 years ago

OK Mike, more to report that will likely be helpful. I can also provide the log, but it doesn't really indicate a failure. Here's what's going on now:

With the new build (previous reply) there are two outcomes:

  1. If all of the dlls are in the PinballY location, everything starts up, Real DMD is working in PinballY. When a table is launched, it doesn't crash, however the DMD doesn't display the rom. It is running however; you can hear it and play the table. Instead, it displays the Pinball info/data.

  2. If the DLLs are removed from the PinballY folder, the software is logging that it is attempting to do this from the PinMame location, logs that the dll is loaded, crashes.

What is interesting is that it logs the exact same thing, in either case, as they are the same dlls.

mjrgh commented 6 years ago

1 - oops, it looks like when I added the code to close the device session, I inadvertantly took out the code that stopped the DMD updates. So it's closing the session but then opening it right back up again. I'll get both bits of code back in there and send you another build to try.

2 - what kind of crash are you getting in that case? Do you think there's a chance that the DLL it's finding in the PinMAME folder is the 32-bit version? In other words, do the 32-bit and 64-bit DLLs have the identical name, apart from the path? I'm assuming they must, because I didn't make any provision for a different name for the 64-bit version, and it seems to be finding it properly when it's in the PBY folder.

So what I'm thinking is that you have DMDDEVICE.DLL - 64-bit in the PBY folder, and DMDEVICE.DLL - 32-bit in the VPinMAME folder, so the crash is coming from trying to load the 32-bit DLL into the 64-bit EXE. But if so I don't think it should actually crash the process; I think it should just be getting an error from the DLL loader saying that the DLL isn't valid.

If you could clarify all those details - DLL paths, filenames, 32/64 type of each, and nature of the crash - it would help explain if I'm on the right track or if this is something else entirely.

Regards,

Mike


From: kaicherry notifications@github.com Sent: Saturday, August 18, 2018 10:43:26 AM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

OK Mike, more to report that will likely be helpful. I can also provide the log, but it doesn't really indicate a failure. Here's what's going on now:

With the new build (previous reply) there are two outcomes:

  1. If all of the dlls are in the PinballY location, everything starts up, Real DMD is working in PinballY. When a table is launched, it doesn't crash, however the DMD doesn't display the rom. It is running however; you can here it and play the table. Instead, it displays the Pinball info/data.

  2. If the DLLs are removed from the PinballY folder, the software is logging that it is attempting to do this from the PinMame location, logs that the dll is loaded, crashes.

What is interesting is that it logs the exact same thing, in either case.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-414074779, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41be3sBUpIeA-5e5vAqHnlDyMCdqo1ks5uSFI-gaJpZM4V9ksW.

mjrgh commented 6 years ago

Okay, update posted (Alpha 12) with the fix. Let me know if that clears up the contention issue.

Regards,

Mike


From: Mike Roberts mjr_@hotmail.com Sent: Saturday, August 18, 2018 2:08:31 PM To: mjrgh/PinballY Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

1 - oops, it looks like when I added the code to close the device session, I inadvertantly took out the code that stopped the DMD updates. So it's closing the session but then opening it right back up again. I'll get both bits of code back in there and send you another build to try.

2 - what kind of crash are you getting in that case? Do you think there's a chance that the DLL it's finding in the PinMAME folder is the 32-bit version? In other words, do the 32-bit and 64-bit DLLs have the identical name, apart from the path? I'm assuming they must, because I didn't make any provision for a different name for the 64-bit version, and it seems to be finding it properly when it's in the PBY folder.

So what I'm thinking is that you have DMDDEVICE.DLL - 64-bit in the PBY folder, and DMDEVICE.DLL - 32-bit in the VPinMAME folder, so the crash is coming from trying to load the 32-bit DLL into the 64-bit EXE. But if so I don't think it should actually crash the process; I think it should just be getting an error from the DLL loader saying that the DLL isn't valid.

If you could clarify all those details - DLL paths, filenames, 32/64 type of each, and nature of the crash - it would help explain if I'm on the right track or if this is something else entirely.

Regards,

Mike


From: kaicherry notifications@github.com Sent: Saturday, August 18, 2018 10:43:26 AM To: mjrgh/PinballY Cc: mjrgh; Comment Subject: Re: [mjrgh/PinballY] DMDDevice.dll not detected in any location (#5)

OK Mike, more to report that will likely be helpful. I can also provide the log, but it doesn't really indicate a failure. Here's what's going on now:

With the new build (previous reply) there are two outcomes:

  1. If all of the dlls are in the PinballY location, everything starts up, Real DMD is working in PinballY. When a table is launched, it doesn't crash, however the DMD doesn't display the rom. It is running however; you can here it and play the table. Instead, it displays the Pinball info/data.

  2. If the DLLs are removed from the PinballY folder, the software is logging that it is attempting to do this from the PinMame location, logs that the dll is loaded, crashes.

What is interesting is that it logs the exact same thing, in either case.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/mjrgh/PinballY/issues/5#issuecomment-414074779, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH41be3sBUpIeA-5e5vAqHnlDyMCdqo1ks5uSFI-gaJpZM4V9ksW.

mjrgh commented 6 years ago

Hi - is any of this still an issue with the latest (Alpha 20) and my updated version of the dmdext DLLs (https://github.com/mjrgh/dmd-extensions/releases/tag/v1.7.1+mjr20180915)? I think all of the dmdext hiccups have been sorted out now, so I'll assume I can close this out, but let me know if there's anything still unresolved vis-a-vis dmdext operation.