Jump to content



Photo
* * * * * 6 votes

FlexDMD, an UltraDMD alternative

UltraDMD DMD

  • Please log in to reply
835 replies to this topic

#161 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 30 March 2020 - 04:08 PM

Champions League 2018 uses a shared script located in Visual Pinball's scripts folder, called 'UltraDMD_Options.vbs'. You need to modify this file to add support for this GameName feature. If you replace the corresponding lines in the file by the one provided below, it will pass the game name to FlexDMD.

 

With this, Champion's league 2018 have a game name of 'uefa_cl18' and 2017 has a game name of 'uefa_cl17', which are given to FlexDMD and hence can be used in dmddevice.ini

'Function to initialize UltraDMD
Function LoadUltraDMD(ProjectFolderName,TableOptName)
	Dim FlexDMD
	Set FlexDMD = CreateObject("FlexDMD.FlexDMD")
	FlexDMD.GameName = TableOptName
	Set UltraDMD = FlexDMD.NewUltraDMD()
	' Set UltraDMD = CreateObject("UltraDMD.DMDObject")
	' A Major version change indicates the version is no longer backward compatible
    If Not UltraDMD.GetMajorVersion = 1 Then
        MsgBox "Incompatible Version of UltraDMD found."
        QuitPlayer:Exit Function
    End If
	'Check if UMD v1.4 is running
    If UltraDMD.GetMinorVersion<4 AND optUseFullColor=1 Then
        MsgBox "Full Color not supported. Please upgrade to UltraDMD v1.4" & VbCrLf & "Exiting so changes will take effect..."
        Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
        WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","False","REG_SZ"
		SaveValue TableOptName, "DMD Options", 1
        QuitPlayer:Exit Function
    End If
	UltraDMD.Init
    'Sets the project folder and video stretch mode
	Dim fso,curDir
	Set fso = CreateObject("Scripting.FileSystemObject")
	curDir = fso.GetAbsolutePathName(".")
    UltraDMD.SetProjectFolder curDir & "\"& ProjectFolderName &".UltraDMD"
	If NOT fso.FolderExists(curDir & "\"& ProjectFolderName &".UltraDMD") Then
		MsgBox ProjectFolderName & ".UltraDMD" & " not found." & VbCrLf & "Please copy it in the same folder as this table" & VbCrLf & "DMD animations can't be shown!!" 
	End If
    UltraDMD.SetVideoStretchMode UltraDMD_VideoMode_Middle
End Function

 'Function to reset the DMD color settings and close UltraDMD on table exit
Function ExitUltraDMD
	On Error Resume Next
	If UltraDMD.IsRendering Then UltraDMD.CancelRendering
	UltraDMD.Uninit
	If Error.Number<>0 Then UltraDMD = Null:Exit Function
	Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
	WshShell.RegWrite "HKCU\Software\UltraDMD\color",DMDOldColor,"REG_SZ"
	WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor",DMDOldFullColor,"REG_SZ"
	UltraDMD = Null
End Function


Edited by vbousquet, 30 March 2020 - 08:25 PM.


#162 davidcd13

davidcd13

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: France

  • Favorite Pinball: ac:dc

Posted 30 March 2020 - 04:39 PM

Champions League 2018 uses a shared script located in Visual Pinball's scripts folder, called 'UltraDMD_Options.vbs'. You need to modify this file to add support for this GameName feature. If you replace the corresponding lines in the file by the one provided below, it will pass the game name to FlexDMD.
 
With this, Champion's league 2018 have a game name of 'uefa_cl18' and 2017 has a game name of 'uefa_cl17', which are given to FlexDMD and hence can be used in dmddevice.ini

'Function to initialize UltraDMD
Function LoadUltraDMD(ProjectFolderName,TableOptName)
	Dim FlexDMD
	Set FlexDMD = CreateObject("FlexDMD.FlexDMD")
	FlexDMD.GameName = cGameName
	Set UltraDMD = FlexDMD.NewUltraDMD()
	' Set UltraDMD = CreateObject("UltraDMD.DMDObject")
	' A Major version change indicates the version is no longer backward compatible
    If Not UltraDMD.GetMajorVersion = 1 Then
        MsgBox "Incompatible Version of UltraDMD found."
        QuitPlayer:Exit Function
    End If
	'Check if UMD v1.4 is running
    If UltraDMD.GetMinorVersion<4 AND optUseFullColor=1 Then
        MsgBox "Full Color not supported. Please upgrade to UltraDMD v1.4" & VbCrLf & "Exiting so changes will take effect..."
        Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
        WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","False","REG_SZ"
		SaveValue TableOptName, "DMD Options", 1
        QuitPlayer:Exit Function
    End If
	UltraDMD.Init
    'Sets the project folder and video stretch mode
	Dim fso,curDir
	Set fso = CreateObject("Scripting.FileSystemObject")
	curDir = fso.GetAbsolutePathName(".")
    UltraDMD.SetProjectFolder curDir & "\"& ProjectFolderName &".UltraDMD"
	If NOT fso.FolderExists(curDir & "\"& ProjectFolderName &".UltraDMD") Then
		MsgBox ProjectFolderName & ".UltraDMD" & " not found." & VbCrLf & "Please copy it in the same folder as this table" & VbCrLf & "DMD animations can't be shown!!" 
	End If
    UltraDMD.SetVideoStretchMode UltraDMD_VideoMode_Middle
End Function

 'Function to reset the DMD color settings and close UltraDMD on table exit
Function ExitUltraDMD
	On Error Resume Next
	If UltraDMD.IsRendering Then UltraDMD.CancelRendering
	UltraDMD.Uninit
	If Error.Number<>0 Then UltraDMD = Null:Exit Function
	Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
	WshShell.RegWrite "HKCU\Software\UltraDMD\color",DMDOldColor,"REG_SZ"
	WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor",DMDOldFullColor,"REG_SZ"
	UltraDMD = Null
End Function



thank you so much. I'll try that tomorrow after work.

#163 davidcd13

davidcd13

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: France

  • Favorite Pinball: ac:dc

Posted 30 March 2020 - 05:18 PM


there would not be a solution to make FlexDMD automatically retrieve the name in the original table using the line Const cGameName = "..." which is in the script of the table? and send it to DmdDevice.
that would simplify a lot.

Edited by davidcd13, 30 March 2020 - 05:28 PM.


#164 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 30 March 2020 - 08:02 PM

:juggle:  UpDate - See Post 178 for updated info on the color :juggle:

 

Thank you for the update worked like a charm

I added it this to the DmdDevice.ini and it Relocate the DMD for that game
[uefa_cl18]
virtualdmd left = 120
virtualdmd top = 820
virtualdmd width = 500
virtualdmd height = 250

 

 

I added this line to the UltraDMD_Options.vbs file, Gave the game full color
        FlexDMD.RenderMode = 2

 

 

What can be changed or added to Restore the ability of changed the color of the text in Champions League 2018?


Edited by Outhere, 02 April 2020 - 07:50 PM.


#165 davidcd13

davidcd13

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: France

  • Favorite Pinball: ac:dc

Posted 30 March 2020 - 09:58 PM

Thank you so much. Thanks to all your advice, I succeeded.

#166 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,000 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 30 March 2020 - 10:03 PM

@outhere is just awesome - simple as that.


From now on. I won't help anyone here at VPF. Please ask Noah why that is.


#167 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 31 March 2020 - 04:43 AM

Thank you so much. Thanks to all your advice, I succeeded.

@davidcd13 - After you made the changes what color is your text, Is it still powderblue or is it red?
 



#168 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 31 March 2020 - 06:15 AM

On my desktop I could not get the Text color to change
So I went down on my pinball cab did the exact same changes and if I change the color in the table script it changes the color of the Text Like it should
I have no idea But tomorrow who knows



#169 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 31 March 2020 - 09:29 AM

On my desktop I could not get the Text color to change
So I went down on my pinball cab did the exact same changes and if I change the color in the table script it changes the color of the Text Like it should
I have no idea But tomorrow who knows

I think you are not using the latest release on your desktop. Text coloring was added lately, so you should try to download the latest on your desktop and it should work.

In the latest version, it works like UltraDMD ; either you are in monochrome and everything use the same color, either you are in full color and the color is used to render the text,

Note that if you use CreateObject("UltraDMD.DMDObject"), the color is taken from the UltraDMD registry settings (like UltraDMD), while if you use CreateObject("FlexDMD.FlexDMD"), the color is defined from the script


Edited by vbousquet, 31 March 2020 - 11:28 AM.


#170 davidcd13

davidcd13

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: France

  • Favorite Pinball: ac:dc

Posted 31 March 2020 - 02:54 PM

 

Thank you so much. Thanks to all your advice, I succeeded.

@davidcd13 - After you made the changes what color is your text, Is it still powderblue or is it red?
 

 

The dmd is in color, the text is orange for the score, blue for the team selection, but also white. It works perfectly on all tables. The rendering is much better than ultra dmd. In addition with the latest dmdext 1.7.3-snapshot-r108, you can directly resize with the mouse and a simple right click on the dmd and a menu appears to save the position directly.
Thank you again for your help and especially for this good program.

Edited by davidcd13, 31 March 2020 - 02:56 PM.


#171 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 31 March 2020 - 03:13 PM

 

 

Thank you so much. Thanks to all your advice, I succeeded.

@davidcd13 - After you made the changes what color is your text, Is it still powderblue or is it red?
 

 

The dmd is in color, the text is orange for the score, blue for the team selection, but also white. It works perfectly on all tables. The rendering is much better than ultra dmd. In addition with the latest dmdext 1.7.3-snapshot-r108, you can directly resize with the mouse and a simple right click on the dmd and a menu appears to save the position directly.
Thank you again for your help and especially for this good program.

 

Thanks for the response and the new options in freezy are especially great for somebody that has a 2 screen set up
 


 

On my desktop I could not get the Text color to change
So I went down on my pinball cab did the exact same changes and if I change the color in the table script it changes the color of the Text Like it should
I have no idea But tomorrow who knows

I think you are not using the latest release on your desktop. Text coloring was added lately, so you should try to download the latest on your desktop and it should work.

In the latest version, it works like UltraDMD ; either you are in monochrome and everything use the same color, either you are in full color and the color is used to render the text,

Note that if you use CreateObject("UltraDMD.DMDObject"), the color is taken from the UltraDMD registry settings (like UltraDMD), while if you use CreateObject("FlexDMD.FlexDMD"), the color is defined from the script

 

That's the weird part, The only difference between the 2 is 1 has more monitors than the other otherwise Both windows 10, Same software changes, Same software
I use the latest Freezy, dmdext-1.7.3-SNAPSHOT-r108-x86 and I tried your dll
The cab is important part but it's still don't make sense


Edited by Outhere, 31 March 2020 - 07:28 PM.


#172 mrjcrane

mrjcrane

    Pinball Fan

  • Members
  • PipPipPipPip
  • 546 posts
  • Location:USA

  • Flag: United States of America

  • Favorite Pinball: Monster Bash

Posted 31 March 2020 - 08:14 PM

HOWDY !! a side question about DMD positioning for JP'S v1.0 Minions table (non Registry Rom tables), installed in Cabinet  Trying to find out where the DMD size and positioning is really being retrieved from. No matter what I try, it still seems the DMD want to reset back to default location and size with x and y at 0,0, Screen 1. Since JP's custom table was initially designed with Ultra DMD in mind, there is no dedicated Rom/Registry entry for this table and I can't get the x y size and position to retrieve from UltraDMD registry entry as well. I can get FlexDMD to take over the DMD but can's seem to save my custom positioning of it.  In addition I can't get it to believe/obey the DeviceDmd.ini file postion settings for the dmd. So on games like JP Minions, JP Ghostbusters, Wizard of OZ, with no dedicated Rom/Registry, where is it really looking for the DMD size and positioning ??? Thanks in advance.

 

I have the following applications installed in my cabinet:

1) VpinMame 3.2

2) UltraDMD - Not sure my version (probably the latest)

3) Freezy v1.7.2 (32 Bit version installed)

4) FlexDMD Latest version 0.1.5 (competed "registration process")

 

I am intending to globally position all my DMD displays to Screen 2 with X = 1300, Y=700, H=200, W= 1000 (On a 1440x900 HP Monitor for my Backglass). My Primary Payfield Screen 1 is 1080x1920 (O/S is in Portrait mode, unlike most of you who run your cabinets in Landscape Mode 1920 x 1080). I like Portrait OS so I can modify and adjust tables directly at the cabinet if I need to.

 

DMD desired global position for X location is based on my Screen 1 + 1/2 of the black space on my Screen #2 =[1080 Screen 1 + 220 offset from screen 2 = 1300]. Y Position @ 700 on Screen 2 is based on the last 200 pixels of my Screen @2. Thanks in advance everyone. This is a great forum !!



#173 vbousquet

vbousquet

    Enthusiast

  • Members
  • PipPipPip
  • 108 posts

  • Flag: France

  • Favorite Pinball: Cue Ball Wizard, Tron Legacy, Terminator 2

Posted 31 March 2020 - 08:28 PM

If it's the same layout for all, just define it in dmdevice.ini (see Freezy's instruction on Github) like this ;

 

[virtualdmd]
useregistry = false
left = 1300
top = 700
width = 1000
height = 200
 



#174 Oldschool4

Oldschool4

    Enthusiast

  • Members
  • PipPipPip
  • 65 posts

  • Flag: Australia

  • Favorite Pinball: Metallica

Posted 31 March 2020 - 08:38 PM

HOWDY !! a side question about DMD positioning for JP'S v1.0 Minions table (non Registry Rom tables), installed in Cabinet  Trying to find out where the DMD size and positioning is really being retrieved from. No matter what I try, it still seems the DMD want to reset back to default location and size with x and y at 0,0, Screen 1. Since JP's custom table was initially designed with Ultra DMD in mind, there is no dedicated Rom/Registry entry for this table and I can't get the x y size and position to retrieve from UltraDMD registry entry as well. I can get FlexDMD to take over the DMD but can's seem to save my custom positioning of it.  In addition I can't get it to believe/obey the DeviceDmd.ini file postion settings for the dmd. So on games like JP Minions, JP Ghostbusters, Wizard of OZ, with no dedicated Rom/Registry, where is it really looking for the DMD size and positioning ??? Thanks in advance.

 

I have the following applications installed in my cabinet:

1) VpinMame 3.2

2) UltraDMD - Not sure my version (probably the latest)

3) Freezy v1.7.2 (32 Bit version installed)

4) FlexDMD Latest version 0.1.5 (competed "registration process")

 

I am intending to globally position all my DMD displays to Screen 2 with X = 1300, Y=700, H=200, W= 1000 (On a 1440x900 HP Monitor for my Backglass). My Primary Payfield Screen 1 is 1080x1920 (O/S is in Portrait mode, unlike most of you who run your cabinets in Landscape Mode 1920 x 1080). I like Portrait OS so I can modify and adjust tables directly at the cabinet if I need to.

 

DMD desired global position for X location is based on my Screen 1 + 1/2 of the black space on my Screen #2 =[1080 Screen 1 + 220 offset from screen 2 = 1300]. Y Position @ 700 on Screen 2 is based on the last 200 pixels of my Screen @2. Thanks in advance everyone. This is a great forum !!

 

 

Your using Freezy v.1.7.2 ?



#175 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 31 March 2020 - 08:40 PM

HOWDY !! a side question about DMD positioning for JP'S v1.0 Minions table (non Registry Rom tables), installed in Cabinet  Trying to find out where the DMD size and positioning is really being retrieved from. No matter what I try, it still seems the DMD want to reset back to default location and size with x and y at 0,0, Screen 1. Since JP's custom table was initially designed with Ultra DMD in mind, there is no dedicated Rom/Registry entry for this table and I can't get the x y size and position to retrieve from UltraDMD registry entry as well. I can get FlexDMD to take over the DMD but can's seem to save my custom positioning of it.  In addition I can't get it to believe/obey the DeviceDmd.ini file postion settings for the dmd. So on games like JP Minions, JP Ghostbusters, Wizard of OZ, with no dedicated Rom/Registry, where is it really looking for the DMD size and positioning ??? Thanks in advance.

 

I have the following applications installed in my cabinet:

1) VpinMame 3.2

2) UltraDMD - Not sure my version (probably the latest)

3) Freezy v1.7.2 (32 Bit version installed)

4) FlexDMD Latest version 0.1.5 (competed "registration process")

 

I am intending to globally position all my DMD displays to Screen 2 with X = 1300, Y=700, H=200, W= 1000 (On a 1440x900 HP Monitor for my Backglass). My Primary Payfield Screen 1 is 1080x1920 (O/S is in Portrait mode, unlike most of you who run your cabinets in Landscape Mode 1920 x 1080). I like Portrait OS so I can modify and adjust tables directly at the cabinet if I need to.

 

DMD desired global position for X location is based on my Screen 1 + 1/2 of the black space on my Screen #2 =[1080 Screen 1 + 220 offset from screen 2 = 1300]. Y Position @ 700 on Screen 2 is based on the last 200 pixels of my Screen @2. Thanks in advance everyone. This is a great forum !!

Put the FlexDMD Files in your VPinMame  -- If they are not you will have to unregister and re-register flex

 

Try the New Freezy 1.73 -- Try r108
New options, Right click Menu and Always display Grip on hover.

Edited by Outhere, 31 March 2020 - 08:41 PM.


#176 mrjcrane

mrjcrane

    Pinball Fan

  • Members
  • PipPipPipPip
  • 546 posts
  • Location:USA

  • Flag: United States of America

  • Favorite Pinball: Monster Bash

Posted 31 March 2020 - 10:56 PM

Thanks Outhere, appreciate the assistance. You nailed it with suggesting version 1.7.3. Freezy if you monitor this thread, really appreciate the new Menu Option-Right Click, Global Save and Ignore Aspect Ratio features; All 3 I hoped would be added and here they are now in 1.7.3. Thanks !!


Edited by mrjcrane, 01 April 2020 - 11:55 PM.


#177 mrjcrane

mrjcrane

    Pinball Fan

  • Members
  • PipPipPipPip
  • 546 posts
  • Location:USA

  • Flag: United States of America

  • Favorite Pinball: Monster Bash

Posted 02 April 2020 - 12:19 AM

An interesting Surprise with Freezy V.1.7.3, I did notice it will actually allow for a global position of the X coordinate to be a negative number via the DmdDevice.ini file. So on a 2 screen Desktop scenario, we can now have screen #2 to the left or right of the Playfield Screen ... at least is the case for Dirty Harry and probably most of the other Rom/Registry games. Much appreciated Freezy, thanks.



#178 Outhere

Outhere

    Pinball Wizard

  • Platinum Supporter
  • 4,807 posts

  • Flag: United States of America

  • Favorite Pinball: M M

Posted 02 April 2020 - 07:46 PM

These color ideas also work with games That the script is coded for FlexDMD

 

For Champions League 2018 -- UltraDMD_Options.vbs

Add these 2 lines to change the color of the text and to add full color
FlexDMD.Color = RGB(255, 255, 0)   <-- to change the color of the text

       FlexDMD.RenderMode = 2   <--  For full color
 

'Function to initialize UltraDMD
Function LoadUltraDMD(ProjectFolderName,TableOptName)
    Dim FlexDMD
    Set FlexDMD = CreateObject("FlexDMD.FlexDMD")
FlexDMD.Color = RGB(255, 255, 0)
    FlexDMD.GameName = TableOptName
    Set UltraDMD = FlexDMD.NewUltraDMD()

       FlexDMD.RenderMode = 2

    ' Set UltraDMD = CreateObject("UltraDMD.DMDObject")
    ' A Major version change indicates the version is no longer backward compatible
    If Not UltraDMD.GetMajorVersion = 1 Then
        MsgBox "Incompatible Version of UltraDMD found."
        QuitPlayer:Exit Function
    End If

 

Thanks to Wizball for the idea from post 254  --- https://www.vpforums...=43569&p=453302

Change this part to ---> 255, 255, 0   Using FlexDMD.Color = RGB(255, 255, 0) <---  change the color of the text
 
Color pellet with RGB colors
http://www.javascrip...aq/rgbtohex.htm
 
RGB to Hex color conversion
https://www.rapidtab...rgb-to-hex.html

Edited by Outhere, 19 June 2020 - 09:18 PM.


#179 Thalamus

Thalamus

    VPF Veteran

  • Platinum Supporter
  • 5,000 posts

  • Flag: Norway

  • Favorite Pinball: GOT, Alien Star, LOTR, TOM

Posted 04 April 2020 - 02:24 PM

@vbousquet I didn't have many problems getting regular ultradmd tables to work with flexdmd. But, this one https://vpinball.com...-original-2020/ - crashes as it calls ultradmd.init - I wonder, if you've got time, can take a peek at the script ?


From now on. I won't help anyone here at VPF. Please ask Noah why that is.


#180 sydaroa

sydaroa

    Neophyte

  • Members
  • Pip
  • 9 posts

  • Flag: Spain

  • Favorite Pinball: Addams Family

Posted 04 April 2020 - 04:23 PM

First of all I feel sorry for my English.

I am not able to place the DMD correctly. Whenever I run a table it stays in the same position in the playfield


Edited by sydaroa, 04 April 2020 - 04:31 PM.






Also tagged with one or more of these keywords: UltraDMD, DMD