Jump to content

Converting Scarface To Hyperdmd


Recommended Posts

  • Administrators

I'm slowly, but surely, learning how HyperDMD really functions.  Scarface is one of the tables that SCREAMS HyperDMD.  HyperDMD was actually suggested early in this build, but JP and Hassanchop decided to use what they already knew.  Unfortunately, their solution is not very cabinet friendly.


Using HyperDMD will enable people with multiple screens to move the DMD to their DMD positions.  It will also allow/enable the user of a real DMD display to have the Scarface DMD displayed on their real DMD.  The below video is only the first sequence, from table boot and intro.  I had to convert all of the RED DMD images to Black/White and I'm not sure if I did it the right way, so I don't think this looks near as good as it can with proper images.  There is still a LOT that I need to learn, and a LOT that still needs to be done on this in order to really convert this table completely to HyperDMD.


Link to comment
Share on other sites

  • Content Provider

Maybe this can help a little. I have located the places in the DMD script where the upper text row, lower text row and DMD Animations are updated. Look for '***** ROSVE ***** in the code.


One problem that you will encounter is that the animation sequences aren't really sequenses at all in the table script. Each frame is a separate 1 frame animation. This allows the programmer (JP) to mix the frames anyway he wants during runtime but it makes the job very hard for you.



'************* ROSVE *************'
dim oldtx1,oldtx2
Sub DisplayHead()
    DispEffectCountT1 = 0
    DispEffectCountT2 = 0
    DisplayEffectTimer.Interval = DispEffectSpeed
    DispEffectCountT2Dly = DispQueueEffectOnT2Dly(DispQueueHead)

    Select Case(DispQueueEffectOnT1(DispQueueHead) )
        Case eNone:DispEffectCountT1End = 1
        Case eScrollLeft:DispEffectCountT1End = Len(DispQueueText1(DispQueueHead) )
        Case eScrollRight:DispEffectCountT1End = Len(DispQueueText1(DispQueueHead) )
        Case eBlink:DispEffectCountT1End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
            DispEffectBlinkCycleT1 = 0
        Case eBlinkFast:DispEffectCountT1End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
            DispEffectBlinkCycleT1 = 0
    End Select

    Select Case(DispQueueEffectOnT2(DispQueueHead) )
        Case eNone:DispEffectCountT2End = 1
        Case eScrollLeft:DispEffectCountT2End = Len(DispQueueText2(DispQueueHead) )
        Case eScrollRight:DispEffectCountT2End = Len(DispQueueText2(DispQueueHead) )
        Case eBlink:DispEffectCountT2End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
            DispEffectBlinkCycleT2 = 0
        Case eBlinkFast:DispEffectCountT2End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
            DispEffectBlinkCycleT2 = 0
    End Select


    If DispQueueText3(DispQueueHead) <> "          " Then
        ActivateAnimationFrame 1
        DMDAnim DispQueueText3(DispQueueHead)
        '********************** ROSVE ********************************'
        ' DispQueueText3(DispQueueHead)' Is the name of the DMD FRAME to show

        ActivateAnimationFrame 0
    End If
'********************** ROSVE *****************************'
    If DispQueueText1(DispQueueHead) <> oldtx1 Then
    ' DispQueueText1(DispQueueHead)IS THE TEXT STRING FOR THE UPPER ROW '  


    End If
    If DispQueueText2(DispQueueHead) <> oldtx2 Then
    ' DispQueueText2(DispQueueHead)IS THE TEXT STRING FOR THE lOWER ROW '

    End If

    if(DispQueueSound(DispQueueHead) <> "") Then
        PlaySound(DispQueueSound(DispQueueHead) )
    End If
    DisplayEffectTimer.Enabled = True
End Sub


Link to comment
Share on other sites

  • Administrators

Looks great so far Dazz! :) Not sure how you converted it but the shading is looking like it's carried over well.

Roughly how long did it take to convert this short sequence?

This took me roughly 2 hours to do. It really isn't difficult to do but a little time consuming watching the sequences over and over. I'm just learning how HyperDMD works so that adds a bit of time. I still need to look into the script aspects. My graphic skills suck so trying to convert the images to B/W took me time to figure out. While this isnt a necessary step the red images JP used once the dmd filters were added made it look bad.

Im sure if someone was familiar with the app and scripting; this could have been done in 30 minutes.

Thanks for the script, Roseve. I saw that the images were called one by one. This animation sequence is actually done using about 10 different scenes. Im going to be playing around with that more today.

Link to comment
Share on other sites

Hi Dazz,


did you already tried HyperDMD with your real DMD? The movies seems to show a screen emulation.

I also tried to convert a JPSalas table (Spiderman) to use HyperDMD, it works fine on screen, but I get nothing on the real DMD, using pinDMD-2.

If it works for you, do you use pinDMD-1 or -2?


Link to comment
Share on other sites


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

  • Create New...