lucky1

SAM Build with modular DMD drivers for pindmd1,2,3 and PIN2DMD

551 posts in this topic

Here is a testing version based on the latest version of Carny´s SamBuild for pindmd3 and pindmd1 

It uses a modular driver interface for external DMD devices I have been working on. Simply put the dmddevice.dll and other related dlls into your 

vpinmame directory according to the device you have attached to your cab, pindmd2 driver is already tested and should work.

Please report if pindmd3 and pindmd1 are also working since I couldn´t test.. If it works it could save Carny and Toxie a little time

needed to make different builds 

Now also includes DLLs for PinballX and UltraDMD which support the dmddevice.dll driver interface

PIN2DMD driver looks for pin2dmd.pal file in a subdirectory of your pinMame installation directory called altcolor/GameName 
e.g. you have to copy your palette file for TZ_92 into PinMame/altcolor/tz_92/ named pin2dmd.pal

 

 

 

 

 

 

 

 

 

 

vpinmame_sam_latest.zip

vpinmame_sam_2.36.zip

Share this post


Link to post
Share on other sites

BTW:  I think this is a fantastic idea.  It not only makes it easier to release updates, but it also eases concerns down the road that your device will no longer be supported.  I thinki its a win all around!

 

Share this post


Link to post
Share on other sites
38 minutes ago, CarnyPriest said:

Yeah! But does it work for you? There's a report here that the previous test build did not work:

 

Why was it only reported to you Carny ?

Previous test build had several problems. Biggest was that it was looking for the dll in the current working directory instead of the pinmame directory which stopped it from working with vpm (unless you were clever enough to copy the dmddevice.dll into your tables folder):D
However, it worked fine with the test in pinmame setup.exe.

This release  got successfully tested by another pindmd3 user with several machine types.

Share this post


Link to post
Share on other sites

I had pointed that user from VPinball.com to that older thread. Hopefully he will find his way to this thread and try again with the newest build.

Great that the new build is working! There is no way for me to test it for myself.

Share this post


Link to post
Share on other sites

I just set this up for pinDMD3.  The current build also wants the DLL file in the tables directory.  It took me a bit to figure that out.  Once I did, I've had no issues with it, other than figuring out I had to turn off the software DMD through the menu, rather than  by right clicking the backglass.  The B2S menu no longer has and effect on it.  Certainly not a deal breaker by any means.  So far, everything I've tried has worked perfectly.  I've played pre-SSM DMD games, pre-DMD games and Fren's Star Trek LE.  Everything is working great.  This concept is definitely a winner.

 

Share this post


Link to post
Share on other sites

 

2 hours ago, dstott said:

I just set this up for pinDMD3.  The current build also wants the DLL file in the tables directory.  It took me a bit to figure that out.  Once I did, I've had no issues with it, other than figuring out I had to turn off the software DMD through the menu, rather than  by right clicking the backglass.  The B2S menu no longer has and effect on it.  Certainly not a deal breaker by any means.  So far, everything I've tried has worked perfectly.  I've played pre-SSM DMD games, pre-DMD games and Fren's Star Trek LE.  Everything is working great.  This concept is definitely a winner.

 

Which DLL did you have to copy to the tables folder ?  The dmddevice.dll or the pindmd.dll or both ?

Share this post


Link to post
Share on other sites

I copied the new pinDMD.dll into the tables folder to make it work.  And it works great!  Are there any tables or types of tables you would like me to test?  I've been concentrating on VPX tables, so far.  I will try some PM5 tables next.  I also made sure the DMD extensions program running my Pinball FX2  was still working and it is fine.

 

Share this post


Link to post
Share on other sites

Please check the new version in the first post which should look for the pindmd.dll in the pinmame directory.
Please remove the pindmd.dll from the tables folder. Since all VPM versions use VpinMame the same way, there
should be now difference in that. There are basically three methods used :
16shades (Stern, Gottlieb, AlvinG), 
4shades (WPC etc)
Alphanumeric (preDMD)
and you tested them all already

Share this post


Link to post
Share on other sites

That was me who didn't post in this thread, sorry about that...

I've just tested this out and my pinDMD3 is working... but I've run into a couple of issues. The Star Trek LE plays fine but I've got no lights on the playfield. I am using the latest version of Beta 2 (rev2800) which I believe has the latest controller changes in it.

Edit: I had an old version of the table... grabbed the latest and no problem with my lights... TWD still crashes though :)

I thought I'd try another SAM game so I loaded up TWD and it actually is crashing VPX. That game is using rom twd_156. The B2S loads, the table loads, but then nothing to my DMD, a couple of seconds later VPX crashes and I'm left with just my B2S. I reverted back to my previous version of vpinmame and the game loads fine. There are some vpinmame.dll entries in my crash.txt.

I also tried Metallica to see how that was working and that one worked fine.

Crash report VPX rev2800
============
Process: vpinballx.exe
Reason: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION at 0023:5550C987
Attempt to read from 0x61698038
Thread ID: 0x1B74 [7028]

Call stack
==========
5550C987 vpinmame.dll DllCanUnloadNow + 0xC2A82 (0x007DFFF8 0x00000F86 0x0003FFB0 0x04fdfff8)
556E4727 vpinmame.dll DllCanUnloadNow + 0x29A822 (0x04FDFFF8 0x04FDFFF8 0x556E5604 0x5968f8d4)
03AF1029  (0x0000249C 0x5968FABC 0x5968FB98 0x4de93d78)
55486D0E vpinmame.dll DllCanUnloadNow + 0x3CE09 (0x00000000 0x0000249C 0x5968FB90 0x5968fb98)
5548142A vpinmame.dll DllCanUnloadNow + 0x37525 (0x5968FC7C 0x5968FB98 0x4DE93D78 0xffffffffcccccccc)
55480F25 vpinmame.dll DllCanUnloadNow + 0x37020 (0x5968FD74 0x5968FE60 0x4DE93D78 0xffffffffcccccccc)
55508CE8 vpinmame.dll DllCanUnloadNow + 0xBEDE3 (0x5968FE54 0x5968FE60 0x4DE93D78 0xffffffffcccccccc)
55508B16 vpinmame.dll DllCanUnloadNow + 0xBEC11 (0x5968FF74 0x5968FE60 0x4DE93D78 0xffffffffcccccccc)
55508939 vpinmame.dll DllCanUnloadNow + 0xBEA34 (0x00000591 0xFFFFFFFFCE931BA7 0x55446C7E 0x55446c7e)
5585942B vpinmame.dll DllCanUnloadNow + 0x40F526 (0x4DE93D78 0x750A3720 0xFFFFFFFFC79BB6C7 0x5968ffdc)
750A3744 KERNEL32.DLL BaseThreadInitThunk + 0x24 (0x4DE93D78 0x3B10914D 0x00000000 0x00000000)
77CF9E54 ntdll.dll RtlSetCurrentTransaction + 0xD4 (0xFFFFFFFFFFFFFFFF 0x77D1D71B 0x00000000 0x00000000)
77CF9E1F ntdll.dll RtlSetCurrentTransaction + 0x9F (0x55446C7E 0x4DE93D78 0x00000000 0x00000000)

Environment
===========
Date/time: 15/10/2016, 08:22:43:825
Number of CPUs: 4
Processor type: 586
System: Unknown Windows version - 6.2 ()

Memory status
=============
Total Reserved: 893908K (872M) bytes
Total Commited: 2134736K (2084M) bytes
Total Free: 1165596K (1138M) bytes
Largest Free: 279104K (272M) bytes

Registers
=========
EAX=00000001 EBX=04FDFFF8 ECX=60EB8040 EDX=007DFFF8
ESI=0003FFB0 EDI=5968F6C0 EBP=5968FFEC ESP=5968FFE4 EIP=77CF9E1F
FLG=00210297 CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B


Failed to save minidump.

 

 

Share this post


Link to post
Share on other sites

I think this is most likely caused by the changes in Sam emulation and not by the changes I made . Do you get the same errors when you run pin mane without the external dmd checkbox on ? 

Share this post


Link to post
Share on other sites

I loaded the new version and removed the pinDMD.dll from the tables folder.  Everything now works as expected.  Thanks for the tune-up.

 

 

Share this post


Link to post
Share on other sites

@roar Look here for tuning the latest SAM settings to make your tables work (at91jit)

@Dstott Thanks for the feedback

Share this post


Link to post
Share on other sites

I'll update DMD Extensions to a loadable .dll as well, this would give you PIN2DMD as well as PinDMD1-3 and virtual DMD support in one DLL. Need to figure out how to let people configure it (no command line options since it's called by PinMAME), but these are details.

Props to Lucky1 for pushing this and my lazy butt :) 

Share this post


Link to post
Share on other sites

My games play fine, with the exception of TWD, which has developed intermittent flipper failure, but I did notice crash dump reports piling up in my tables directory.  I tried  changing  at91jit to 0 and I now have double speech on those tables.  It didn't really help the TWD flipper issue, either.

 

Share this post


Link to post
Share on other sites

I tried setting  at91jit  to 0 as well and it still crashes on me, I don't make it as far as dstott. @dstott, what rom are you using? twd_156?

I unchecked Use External DMD and tried again with Show DMD window checked and the same problem occurs, should I be posting this over in the other SAM thread? I will go and try the version of vpinmame from that thread... I don't get the dmd on my pinDMD but at least I can test to see if it crashes... I tried to include the dmp file but it was over 600MB.

Edit: I just tried TWD with the vpinmame build from the other thread (Build  VPM101116) and the game played, DMD showed up fine. I did get a .NET Framework crash after 10 shots to the Prison with the following in the details (This was with at91jit set to 0):

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidCastException: Conversion from string "

Share this post


Link to post
Share on other sites

Thanks for testing guys. I´m pretty sure that it is not a problem of the changes I made, since most of the tables play fine and from the DMD side there is made no difference wether you play TWD or any other Stern table. You can also try tables like pistol poker or mystery castle which also use the 16 shades routine. Since I just implemented AlvinG for real pinball machines in pin2dmd I also updated the shade calculation routine in PinMame. The old code was really crazy. I still don´t understand what they did before :wacko:.

Share this post


Link to post
Share on other sites

I made the test myself, using twd_156h and it crashed. I found out that I missed patch r4020 from toxie in my sources.:blink:
I uploaded the binary in the first post. Please check it out.

Share this post


Link to post
Share on other sites

I was still having problems with this build... then I thought to try and disable my b2s and switch back to VPinMAME in the script of the table and that actually got things working for me. No feedback naturally so I've got to wonder if I've got a bad b2s? I'll download another one and see what happens.

 

I grabbed the latest B2S from here and things appear to be working well!

Share this post


Link to post
Share on other sites

Yeah , it seems that B2S is not quite ready for all the new stuff that came with DJRobx´s code changes.
Glad you settled it out.

Curious when Freezys new dll build of dmdext is ready for testing , which was one of the main reasons to
make the interface modular and will bring some fancy stuff to onscreen dmd and other supported systems.

Share this post


Link to post
Share on other sites

The newest version fixed my TWD flipper problem but did not help the double sound issue.   Setting at91jit back to 1 stopped the double speech, but I am still getting dumps named after the ROM.  Fortunately, it does not seem to affect play.  Continuing to play,,, I mean, test.  I sure do like Fren's Star Trek.

Share this post


Link to post
Share on other sites

New Build based on the latest version of DJRobX commits in the first post

PIN2DMD driver looks for pin2dmd.pal file in a subdirectory of your pinMame installation directory called altcolor/GameName 
e.g. you have to copy your palette file for TZ_92 into PinMame/altcolor/tz_92/ named pin2dmd.pal

 

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