Jump to content

Code change to enable SAM LE driver board support


DJRobX

Recommended Posts

  • Replies 856
  • Created
  • Last Reply
On 10/7/2016 at 4:06 AM, lucky1 said:

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 

vpinmame.zip

I just gave this a try for the first time and I'm getting a PinDMD not found error. I am running a pindmd3. What other information can I provide to be more helpful :)

Link to comment
Share on other sites

  • Content Provider
I just gave this a try for the first time and I'm getting a PinDMD not found error. I am running a pindmd3. What other information can I provide to be more helpful [emoji4]

I haven't looked too closely at this build. Maybe you still need to copy over the pindmd.dll driver to your VPinMAME folder.

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

1 hour ago, CarnyPriest said:

I haven't looked too closely at this build. Maybe you still need to copy over the pindmd.dll driver to your VPinMAME folder.

Sent from my iPhone using Tapatalk

I do indeed have the pindmd.dll in my vpinmame directory. I believe that  as required for the previous version of vpinmame.

Link to comment
Share on other sites

56 minutes ago, freneticamnesic said:

I've uploaded arngrim's DOF enabled STLE pending approval from the Dazzmeister so I can stop hijacking this thread with links :) 

You can hijack my threads any time Fren!    This would be a super boring thread without something exciting like ST:LE to make it come together! 

 

3 hours ago, Drybonz said:

I updated to the VPM101116 and it also fixed the crash on Seawitch (VPX) for me.  I did notice it has a distorted sound right as you launch the table, but that may have always been there... I can't remember.

I compared them, the LibResample stuff makes the noises sound different but there's a white noise at launch in both cases.    What that is supposed to be is the sound of waves crashing, but the noise clearly isn't emulated completely ... check this out at 1:14. 

 

(See fren, I can even hijack my own thread!) 

 

Link to comment
Share on other sites

Seawitch: Yes, the Votrax emulation is far from perfect. There is a newer MAME core, but its not exactly trivial to port over to PinMAME. Maybe at some point i'll tackle that, but i first have to finish up all the other sound stuff that i started.

Link to comment
Share on other sites

58 minutes ago, toxie said:

Seawitch: Yes, the Votrax emulation is far from perfect. There is a newer MAME core, but its not exactly trivial to port over to PinMAME. Maybe at some point i'll tackle that, but i first have to finish up all the other sound stuff that i started.

Yep.  I was primarily just trying to ensure that the "funny noise" is not indicative of some more serious uninitialized memory bug in the new code.    Now that we know what it is we can worry about it later. :)

9 hours ago, arngrim said:

now it is metallica le hijacking time :)

Heck yeah!   B)

Link to comment
Share on other sites

Great to hear, Umpa!   

I have a new build.   This one enables variable (RGB) light levels on the Tron LE ramps.    It is also built against Carny's latest update, so it has the renamed ROM names (like Iron Man).   

Someone who knows what they're doing in VPX will have to improve the actual table, but the light output appears correct now.    Use these values:

SetRGBLamp TRRampLeft, LampState(103), LampState(102), LampState(101)   
SetRGBLamp TRRampRight, LampState(106), LampState(105), LampState(104)   

Note... you need to use the full SetRGB lamp I posted earlier that calculates intensity from the RGB values.   You need the dimming aspect to be correct for the right light show!

In case you're wondering where I "found" the level values, the game rapidly toggles the light output to modulate the brightness of each channel.     It does so at 4008hz (the same frequency that it updates the sound).    I found that the bit patterns repeat every 15 cycles.    So each VBLANK, I add up the last 15 bits and pass that along as a level value.     That's why the existing implementation is so "flickery". 

You can improve the light show in the existing table by using the following code on the old table with the new VPM.  It corrects the colors and stops the flickering ... at least until someone makes VPX render it the way it ought to be. :)

If LampState(103) <= 20 and LampState(102) <= 20 and LampState(101) <= 20 then evleft.Material = "EVOff"
If LampState(103) <= 20 and LampState(102) <= 20 and LampState(101) > 20 then evleft.Material = "EVBlue"
If LampState(103) <= 20 and LampState(102) > 20 and LampState(101) <= 20 then evleft.Material = "EVGreen"
If LampState(103) <= 20 and LampState(102) > 20 and LampState(101) > 20 then evleft.Material = "EVLightBlue"
If LampState(103) > 20 and LampState(102) <= 20 and LampState(101) > 20 then evleft.Material = "EVPurple"
If LampState(103) > 20 and LampState(102) > 20 and LampState(101) <= 20 then evleft.Material = "EVYellow"
If LampState(103) > 20 and LampState(102) <= 20 and LampState(101) <= 20 then evleft.Material = "EVRed"
If LampState(103) > 20 and LampState(102) > 20 and LampState(101) > 20 then evleft.Material = "EVWhite"
If LampState(106) <= 20 and LampState(105) <= 20 and LampState(104) <= 20 then evright.Material = "EVOff"
If LampState(106) <= 20 and LampState(105) <= 20 and LampState(104) > 20 then evright.Material = "EVBlue"
If LampState(106) <= 20 and LampState(105) > 20 and LampState(104) <= 20 then evright.Material = "EVGreen"
If LampState(106) <= 20 and LampState(105) > 20 and LampState(104) > 20 then evright.Material = "EVLightBlue"
If LampState(106) > 20 and LampState(105) <= 20 and LampState(104) <= 20 then evright.Material = "EVRed"
If LampState(106) > 20 and LampState(105) <= 20 and LampState(104) > 20 then evright.Material = "EVPurple"
If LampState(106) > 20 and LampState(105) > 20 and LampState(104) <= 20 then evright.Material = "EVYellow"
If LampState(106) > 20 and LampState(105) > 20 and LampState(104) > 20 then evright.Material = "EVWhite"

 

vpm101316.zip

Link to comment
Share on other sites

I actually ran B2S through a decompiler last night.  The lamps are stored in dictionary objects, so no static array hard limit issue there.   Although, I also didn't see anything obvious that would cause it to NOT work.    Unfortunately the resulting code doesn't build so I can't run through debugger or add the DMD routine/other features to it though, at least not easily.  

I want to add similar light intensity level support to solenoids (flashers).   This would be a core level change because games that modulate flasher intensity go back at least as far as Monster Bash.   Probably want to have some way of having the table enable modulated solenoids in VPM so we don't break backwards compatibility.    

Link to comment
Share on other sites

Whatever you did with the last release fixed my problem with out of sync rom sound. When I played a SAM table a couple times, the sound from the rom started to lag behind the action on the play field and the DMD. The longer I played so longer got the delay. AC/DC was the worst. I hit the bell and the sound came two seconds later or I could launch the next ball and the sound was still from the bonus calculation.

But it seems this is gone. Played the game for 10 minutes and no problems. Thx :D

And I have to agree... A Metallica hijack would be awesome.

Link to comment
Share on other sites

 

21 minutes ago, umpa said:

Which tron table? Sorry I must have missed it.

We don't have a table that takes advantage of this feature ... YET!

The neon tubing in Tron is supposed to fade and change colors smoothly.  The old VPM code was not capable of delivering the levels, so the current tables have flickery, ugly neon tubes.    This update makes the full spectrum available, similar to Star Trek LE lights.   Now we just need a VPX wizard to figure out how to render them.   I tried asking Fuzzel for help but didn't get anywhere..   Probably for the best, my VPX skills suck!  :)

I was using light objects to test.  A helpful tester pointed out that the flashing patterns still didn't match the real thing, which lead to me finding a bug that's corrected now. 

Next step is to get the same sort of decoding into solenoids.   Even old WPC games like Scared Stiff and Monster Bash probably employ the same method to modulate the brightness of flashers.   I know for sure my real Family Guy machine has modulated flashers, for example.   When you complete the mini pinball bonus, the flashers all come on and fade out very slowly.   It's a really cool effect that table authors can't implement the way VPM is now. 

 

 

Link to comment
Share on other sites

Heya - you can do it with a light object but the placement will only work in cabinet mode as the ramp heights vary and you'll see it in desktop mode.

I threw this together quickly tonight and it looks ok but I won't have time to finish it for quite a while.   Just use a light and trace it around the outside of the ramp and make sure the falloff is large and sits outside the boundary of the light edges.   Checkout the light named neon_off in my Cirqus Voltaire table for reference.

These are being driven by your new VPM dll on ICP's Tron table.

 

Link to comment
Share on other sites

  • Content Provider

OK looks like the light object replacement is the right idea, unfortunately the ramps in that table make a lot of adjustments on the Z axis that make a single plane light very difficult to use. Even if I break it up into 20 different lights it looks wrong, since there's clearly breaks in the pattern... need to figure something else out, would be nice if we could adjust material properties on the fly but right now I just don't have a clean solution. 

Link to comment
Share on other sites

It will be tricky if a light is not used as I'm not sure if there's anything else besides a flasher that allows 255 variations of input.  A material would be good and these parameters exist in the command reference but it looks like they can;t be changed real time.

*LightAmbient(OLE_COLOR) - changes the ambient light contribution for each material, please always try to keep this at full Black
*Light0Emission(OLE_COLOR) - changes the light contribution for each material (currently light0 emission is copied to light1, too)

Link to comment
Share on other sites

  • Content Provider
2 hours ago, freneticamnesic said:

OK looks like the light object replacement is the right idea, unfortunately the ramps in that table make a lot of adjustments on the Z axis that make a single plane light very difficult to use. Even if I break it up into 20 different lights it looks wrong, since there's clearly breaks in the pattern... need to figure something else out, would be nice if we could adjust material properties on the fly but right now I just don't have a clean solution. 

You should be able to make this work. I started using an over exposed "transmit" value (I think I got the idea from you on materials).

Use a 1 wire ramp with an transparent material.
create your 20 lights(or however many) that follow the same exact shape as the ramp.
    Make sure the falloff is bigger than the entire ramp (for all of them)
    Set the falloff Power to 0.  This is what should make the segments less noticeable.
     intensity can be low 1-5
     you'll need to set the different halo heights on each light to be close to the same as the Z adjustments for each Ramp. (that is the tedious part I would guess)
     Set the Transmit power to like 10-20.  This is what will cause the 1 wire ramp to light up and glow.  

See if that gives you the effect you are looking for.

I've started using this for all the bulb primitives,  it seems to look pretty good I think.

-Mike

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...