Jump to content

DMDExt (freezy) and Future Pinball (real and virtual DMD support)


Recommended Posts

Future Pinball doesn't natively support displaying it's DMD on a separate window or on a real DMD for cabinet users.

 

Until now, the solution to this was to use  FP-Intercept (for real DMD only), or to use FutureDMD to display on a virtual DMD. While both solutions did work, there were limitations and quirks with each. For years, Visual Pinball, Pinball FX3/2 and The Pinball Arcade have been using DMDext (freezy) to display their DMD to a real DMD or a virtual DMD.

 

Now thanks to the work of MrMoose74 and freezy, Future Pinball can now join the fun with DMDExt!

 

 

4hrSBXG.png

 

 

DRxjPjz.png

 

 

 

 

 

What can DMDExt do for Future Pinball tables?

 

  • it can mirror the backglass DMD from a FP table and display it on a real DMD or a virtual DMD on a monitor

 

What are the benefits over other solutions?

 

  • supports both real and virtual DMD in one application
  • works with all types of DMD hardware
  • can be used only when you want to use it, not just forced to autorun on all tables (this is handy if you don't want to use this while playing PinEvent tables)
  • it's up to date
  • allows for all the benefits and features of DMDext

 

What are some of the extra features of DMDExt?

 

  • new DMDExt "styles" that allow for "glow" effects, dots or square pixels, size of pixels, and more (virtual DMD only)
  • change colour of the DMD for virtual or real DMDs
  • settings can be changed on a "per table" basis (size / position / colour / effects, etc)

 

What can't it do?

 

  • you can only mirror and display the "DMD" from the table's "backglass" (not the HUD DMD used for desktop view)
  • you cannot mirror any Gas Segment (alphanumeric) displays or EM Reels

 

 

Future Pinball support is only available with DMDExt 1.9 or higher!

 

 

 

********   Download DMDExt 1.9   ********

 

- download the x86 (32 bit) version at the DMDExt site (DO NOT use the 64 bit version)

 

https://github.com/freezy/dmd-extensions

 

 

 

 

Where do the DMDExt files go?

 

  • you can use either the installer, or extract files from the zip file
  • if using the installer, it "should" know where you have everything installed (but you can make changes if needed)
  • if you already have Visual Pinball installed with VPinMAME, most people will have DMDExt files installed in the VPinMAME folder
  • if you don't use Visual Pinball, then you can install DMDExt wherever you want
  • the OpenGL.dll file goes where the Future Pinball.exe is located (main Future Pinball folder)

 

 

What do we use to make it work?

 

  • you are using dmdext.exe (used for Future Pinball, Pinball FX3/2, TPA)
  • we do not use dmddevice.dll (that is only used with Visual Pinball and TerryRed's PinEvent tables (when using real dmd option))
  • we will launch dmdext.exe from a front-end

 

 

For information about the command line parameters of DMDExt goto this page:

 

https://github.com/freezy/dmd-extensions/blob/2fd9f3c61acbaf1bcceed2e61038ab3bbb883a3b/README.md#future-pinball

 

 

 

 

 

How to use DMDExt with Future Pinball

 

  • the following examples are used in Pinup Popper front-end
  • you will need to change [GAMENAME] to [TABLEFILE] for Pinball X or Pinball Y (and add in launch paramters, etc correctly for those apps)
  • *** IMPORTANT *** you may need to change the drive letter and path and folders to point to where dmdext.exe and dmddevice.ini files are located!!!

 

 

Virtual DMD example:

 

  • display to a virtual DMD window
  • enable advanced DMDExt options menu (right-click on the DMD window) by using dmddevice.ini
  • use the table's [GAMENAME] to save "per table" settings (for style, colour, size position, etc)
  • update the DMD window at 60 fps
  • close dmdext when exiting the table and closing Future Pinball

 

c:
cd "C:\vPinball\VisualPinball\VPinMAME"
start /min "" "dmdext.exe" mirror --source=futurepinball -q --virtual-stay-on-top --fps 60 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini"

 

 

Pin2DMD example:

 

  • display to a Pin2DMD
  • use the table's [GAMENAME] to save "per table" settings
  • update the DMD at 60 fps
  • close dmdext when exiting the table and closing Future Pinball

 

c:
cd "C:\vPinball\VisualPinball\VPinMAME"
start /min "" "dmdext.exe" mirror --source=futurepinball -q --fps 60 -d pin2dmd -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini"

 

 

PinDMD2 example:

 

  • display to a PinDMD2
  • use the table's [GAMENAME] to save "per table" settings
  • update the DMD at 60 fps
  • close dmdext when exiting the table and closing Future Pinball

 

c:
cd "C:\vPinball\VisualPinball\VPinMAME"
start /min "" "dmdext.exe" mirror --source=futurepinball -q --fps 60 -d pindmd2 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini"

 

 

PinDMD3 example:

 

  • display to a PinDMD3
  • use the table's [GAMENAME] to save "per table" settings (colour)
  • update the DMD at 60 fps
  • close dmdext when exiting the table and closing Future Pinball

 

c:
cd "C:\vPinball\VisualPinball\VPinMAME"
start /min "" "dmdext.exe" mirror --source=futurepinball -q --fps 60 -d pindmd3 --port com3 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini"

 

 

 

 

On your Close script in your front-end, you may need to close out dmdext forcefully if for whatever reason it won't close out on it's own.

 

taskkill /f /im "dmdext.exe"

 

 

 

 

 

How to make the DMDExt DMD look awesome with glow effects and slick DMDExt styles! (virtual DMD only)

 

  • make sure you use the --use-ini= option to point to your dmddevice.ini
  • this will enable the advanced options menu
  • now you can right-click on the DMD window
  • here you can save your settings per table, or globally
  • you can also choose Styles which brings up this window

 

 

wD0ZZ8N.png

 

 

Damn... now those are some settings!

 

Now you can play around with these settings to give a really cool glow effect, change the dots size, change the pixels to squares, change the colours... lots of amazing options.

 

 

....and that's about it!

 

 

Now you have some amazing DMD options for Future Pinball "DMD" tables!

 

 

Important things to know about how DMD mirroring works with Future Pinball

 

  • you can only mirror from "DMD" based Future Pinball tables
  • you can only mirror from the Backglass / Translite DMD, not the HUD DMD (meant for desktop only)
  • some tables only have code for the HUD DMD (desktop only) and nothing shows up on the Future Pinball backglass in game. To get these tables to work with DMDExt, you need to change the name of the Translite DMD to that of the HUD DMD (and change HUD DMD name to something else)
  • some tables use a 128x16 DMD. You "might" need to change the translite DMD to 128x32 for it to work with DMDExt
  • some tables may have background images used on the DMD that may show up corrupted in DMDExt. There is nothing that can be done to correct this (has nothing to do with DMDExt)

 

 

 

 

****** FAQ ******

 

Some tables like Tutenkham, Ghostbusters and others show nothing on the DMDExt DMD, and show nothing on the FP Backglass in game. How do I get them to work?

 

  • some table authors only added code in the script for the HUD DMD (Desktop).
  • you need to change it so that name of HUD DMD (for desktop) is used on the Backglass / Translite DMD.
  • on the Translite Editor, rename the HUD DMD to something else, and rename the DMD on the Backbox to the original name used for the HUD DMD
  • now it should work

 

Some tables have a slim DMD (128x16) which won't display anything on DMDExt

 

  • on the Translite Editor, change all DMDs to 128x32

 

On some tables like Robocop, the background image looks corrupted on DMDExt, or on others like Superman it isn't visible at all on DMDExt

 

  • this is normal and can't yet be remedied. This has nothing to do with DMDExt, but more the OpenGL.DLL used for FP with DMDExt

 

I can't get tables with Gas Segment (alphanumeric) displays to work on DMDext

 

  • for Future Pinball tables, only the "DMD" can be displayed on DMExt

 

I still have problems getting anything to display on DMDExt with FP

 

  • having FPLoader.exe (BAM) or dmdext.exe set to Run as Administrator (or not), or the wrong settings for either in this regard may prevent DMDExt from being able to access and mirror the Future Pinball DMD
  • ideally you shouldn't need to have either set to Run as Administrator for everything to work correctly. This will depend on your system's security settings

 

  • Like 4
  • Upvote 1
Link to comment
Share on other sites

  • TerryRed changed the title to DMDExt (freezy) and Future Pinball (real and virtual DMD support)

 

UPDATE: changed commands to include quotes around [GAMENAME] so they should look like this:

 


start /min "" "dmdext.exe" mirror --source=futurepinball -q --fps 60 -d pindmd2 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini"

 

 

All Pin2DMd, PinDMD, PinDMD2, PinDMD3 owners.... please let me know if the commands above work for you!

  • Like 2
  • Upvote 1
Link to comment
Share on other sites

Added a FAQ

 

****** FAQ ******

 

Some tables like Tutenkham, Ghostbusters and others show nothing on the DMDExt DMD, and show nothing on the FP Backglass in game. How do I get them to work?

  • some table authors only added code in the script for the HUD DMD (Desktop).
  • you need to change it so that name of HUD DMD (for desktop) is used on the Backglass / Translite DMD.
  • on the Translite Editor, rename the HUD DMD to something else, and rename the DMD on the Backbox to the original name used for the HUD DMD
  • now it should work

 

Some tables have a slim DMD (128x16) which won't display anything on DMDExt

 

  • on the Translite Editor, change all DMDs to 128x32

 

On some tables like Robocop, the background image looks corrupted on DMDExt, or on others like Superman it isn't visible at all on DMDExt

 

  • this is normal and can't yet be remedied. This has nothing to do with DMDExt, but more the OpenGL.DLL used for FP with DMDExt

 

I can't get tables with Gas Segment (alphanumeric) displays to work on DMDext

 

  • for Future Pinball tables, only the "DMD" can be displayed on DMExt

 

I still have problems getting anything to display on DMDExt with FP

 

  • having FPLoader.exe (BAM) or dmdext.exe set to Run as Administrator (or not), or the wrong settings for either in this regard may prevent DMDExt from being able to access and mirror the Future Pinball DMD
  • ideally you shouldn't need to have either set to Run as Administrator for everything to work correctly. This will depend on your system's security settings
  • Like 2
Link to comment
Share on other sites

It's been a while since I've done much with Future Pinball.  This and all of the other cool stuff going on with FP is re-peaking my interest.  Thanks Terry for all of the excellent guides and work you've put in to the hobby!  I for one appreciate it!!

  • Like 2
Link to comment
Share on other sites

  • TerryRed pinned this topic
  • 3 weeks later...

Hey Terry, thanks for the guide. Got it up and running nicely, but I have a weird issue that is happening with FP (and maybe FX2/FX3 as well). Everything works correctly, the DMD is mirrored and all functions seem to work as they should, but I happened to press alt+tab after testing some tables and noticed some lingering command prompt windows in the background. I didn't even see these as I was playing and laughing tables through Popper. Here's a pic of said windows. They will keep appearing if more tables are launched. Any idea what could be causing this? 

185147533_164561378844055_5120647158917635733_n.jpg

185293754_568835540748528_4493823885110681615_n.jpg

Link to comment
Share on other sites

1 hour ago, TerryRed said:

You are most likely not closing out DMDext completely in your Popper close script.

 

 

 

Hi Terry, I have the correct taskkill command in my exit script. I will post my launch and exit scripts, maybe you can spot something. I just tested a few things including a process close ahk script to kill dmdext.exe just for the sake of troubleshooting but still got the command prompt window. Happens every single time, testing with 3 Angels in FP. When checking task manager, dmdext.exe isn't shown under processes even with that command prompt window still open. 

 

 

Launch script:

 

rem switch dmddevice.ini to 1.7.1 if table file name includes frz17, otherwise switch to dmddevice.ini 1.9.0
@echo off
(echo("[GAMENAME]")|find /i "frzy17" >nul && (
  START /min "" "[STARTDIR]Launch\Freezy1.7.1.bat"
)||(
  START /min "" "[STARTDIR]Launch\Freezy1.9.0.bat"
)
timeout 1

rem Run DOFLinx ONLY IF "Custom Var #3" DOES NOT = NO_DOFLinx

if NOT "[custom3]"=="NO_DOFLinx" (cd /d "C:\directoutput")
if NOT "[custom3]"=="NO_DOFLinx" (START "" "DOFLinx.exe")

rem Enable FP Backglass and Arcade Mode

REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "ArcadeMode" /t REG_DWORD /d 1 /f
REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "SecondMonitorEnable" /t REG_DWORD /d 1 /f

rem Disable FP Backglass and Arcade Mode if "Custom Launch Param" = NO_BackGlass

if "[custom1]"=="NO_BackGlass" (REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "ArcadeMode" /t REG_DWORD /d 0 /f)
if "[custom1]"=="NO_BackGlass" (REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "SecondMonitorEnable" /t REG_DWORD /d 0 /f)

rem Run FutureDMD ONLY IF "Custom Var #2" DOES NOT = NO_FutureDMD

rem if NOT "[custom2]"=="NO_FutureDMD" (cd "c:\Games\Future Pinball")
rem if NOT "[custom2]"=="NO_FutureDMD" (START "" "FutureDMD.exe" table="[GAMENAME]" close=1)
rem if NOT "[custom2]"=="NO_FutureDMD" (timeout /t 1)

rem Disable DOFLinx if "Custom Var #3" = NO_DOFLinx

if "[custom3]"=="NO_DOFLinx" (cd /d "C:\directoutput")
if "[custom3]"=="NO_DOFLinx" (taskkill /f /im "DOFLinx.exe")

c:
cd "C:\Visual Pinball\VPinMAME"
start /min "" "dmdext.exe" mirror --source=futurepinball -q --fps 60 -d pin2dmd -g "[GAMENAME]" --use-ini="C:\Visual Pinball\VPinMAME\DmdDevice.ini"


rem Launch Future Pinball

START "" "[STARTDIR]Launch\VPXSTARTER.exe" 10 5 60 "BSP Software*"
START "" "[DIREMU]\FPLoader.exe" /open "[GAMEFULLNAME]" /play /exit /arcaderender /STAYINRAM

 

Exit script:

 

"[STARTDIR]LAUNCH\PUPCLOSER.EXE" WINTIT "Future Pinball" 2 1

taskkill /f /im "DOFLinx.exe" /im "dmdext.exe"

REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "ArcadeMode" /t REG_DWORD /d 1 /f
REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "SecondMonitorEnable" /t REG_DWORD /d 1 /f

 

Link to comment
Share on other sites

Did you try rem'ing out your DMDExt section and confirming the window is going away?  Are you using the 32-bit version of DMDext?  Also, I use a modified version of the standard popper script and in there DOFLinx is assumed to be running with windows startup and you change whether it listens for the Future Pinball process to enable/disable its activity. If you can I would try that approach to see if it makes a difference.  I would also just try rem'ing out the dmddevice.ini section at the top and see if that makes a difference.

 

Sorry I cant be more help, but when I encounter these issues its usually trial and error until I find a fix.

Link to comment
Share on other sites

21 hours ago, movieguy said:

Did you try rem'ing out your DMDExt section and confirming the window is going away?  Are you using the 32-bit version of DMDext?  Also, I use a modified version of the standard popper script and in there DOFLinx is assumed to be running with windows startup and you change whether it listens for the Future Pinball process to enable/disable its activity. If you can I would try that approach to see if it makes a difference.  I would also just try rem'ing out the dmddevice.ini section at the top and see if that makes a difference.

 

Sorry I cant be more help, but when I encounter these issues its usually trial and error until I find a fix.


thanks, I actually figured it out a day or two ago. It was the dmddevice portion of the script. Weird since it works fine with VPX. I simplified the script and it’s working fine now. Curious about your method for DOFLinx integration, mind sharing your script. 

Link to comment
Share on other sites

36 minutes ago, yardley said:


thanks, I actually figured it out a day or two ago. It was the dmddevice portion of the script. Weird since it works fine with VPX. I simplified the script and it’s working fine now. Curious about your method for DOFLinx integration, mind sharing your script. 

https://www.nailbuster.com/wikipinup/doku.php?id=emulator_future_pinball#typical_emulator_setup_for_future_pinball

Link to comment
Share on other sites

Just take a look at the part of the script that outthere linked to.  You will see in that script that rather than running and kiling DOFLinx, it simply sends commands to remove Future Pinball from something DOFLinx listens for and then adds it back when the table closes.  This is the recommended way to run DOFLinx (with it loaded at startup and always on in the background). 

Link to comment
Share on other sites

  • 2 weeks later...

I got Future Pinball all setup, tables imported into popper and all they load. But I haven’t gotten one to display the DMD with freezy 1.9. It launches and closes with the tables and I click and drag it, but it’s just a black screen. Any ideas?

Link to comment
Share on other sites

10 hours ago, mrbrightside80 said:

I got Future Pinball all setup, tables imported into popper and all they load. But I haven’t gotten one to display the DMD with freezy 1.9. It launches and closes with the tables and I click and drag it, but it’s just a black screen. Any ideas?

 

Can you post your launch script, if using Pinup Popper?  You should be starting dmdext with a line that looks something very close to the following:

 

start /min "" "dmdext.exe" mirror --source=futurepinball -q --virtual-stay-on-top --fps 60 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini

Link to comment
Share on other sites

11 hours ago, movieguy said:

 

Can you post your launch script, if using Pinup Popper?  You should be starting dmdext with a line that looks something very close to the following:

 

start /min "" "dmdext.exe" mirror --source=futurepinball -q --virtual-stay-on-top --fps 60 -g "[GAMENAME]" --use-ini="C:\vPinball\VisualPinball\VPinMAME\DmdDevice.ini

Rem :Enable FP Backglass and Arcade Mode

REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "ArcadeMode" /t REG_DWORD /d 1 /f
REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "SecondMonitorEnable" /t REG_DWORD /d 1 /f

 :Disable FP Backglass and Arcade Mode if "Custom Launch Param" = PinEvent

if "[custom1]"=="PinEvent" (REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "ArcadeMode" /t REG_DWORD /d 0 /f)
if "[custom1]"=="PinEvent" (REG ADD "HKCU\Software\Future Pinball\GamePlayer" /v "SecondMonitorEnable" /t REG_DWORD /d 0 /f)

Rem :If you use DOFLinx then un-rem the 2 Lines
 if "[custom1]"=="PinEvent" (cd /d "C:\directoutput")
 if "[custom1]"=="PinEvent" (DOFLinxMsg "PROCESSES=")

Rem :Run DMDExt only if "Custom Var #2" DOES NOT = NO_DMDExt

if NOT "[custom2]"=="NO_DMDExt" (c:)
if NOT "[custom2]"=="NO_DMDExt" (cd "D:\Pinball\Visual Pinball\VPinMAME")
if NOT "[custom2]"=="NO_DMDExt" (start /min "" "dmdext.exe" mirror --source=futurepinball -q --virtual-stay-on-top --fps 60 -g "[GAMENAME]" --use-ini="D:\Pinball\Visual Pinball\VPinMAME\DmdDevice.ini")
if NOT "[custom2]"=="NO_DMDExt" (timeout /t 1)

Rem :Launch Future Pinball

START "" "[STARTDIR]Launch\VPXSTARTER.exe" 10 5 60 "BSP Software*"
START "" "[DIREMU]C:\Future Pinball\BAM\FPLoader.exe" /open "[GAMEFULLNAME]" /play /exit /arcaderender /STAYINRAM

Link to comment
Share on other sites

14 minutes ago, outhere said:

Did you try changing the C to a D
if NOT "[custom2]"=="NO_DMDExt" (c:)

Okay I will try both. Where do I put the (start /min "" "dmdext.exe" mirror -s futurepinball -g "[GAMENAME]" --use-ini=" in the script? Or does mine already ahve that?

Link to comment
Share on other sites

24 minutes ago, mrbrightside80 said:

Okay I will try both. Where do I put the (start /min "" "dmdext.exe" mirror -s futurepinball -g "[GAMENAME]" --use-ini=" in the script? Or does mine already ahve that?

 

40 minutes ago, outhere said:

Did you try changing the C to a D
if NOT "[custom2]"=="NO_DMDExt" (c:)

I figured it out! It looks like the open.gl file was not with my future pinball exe

Link to comment
Share on other sites

So I got this working an I love it. I like it better than FutureDMD. But I have a couple of oddities......

 

I can get the DMD position to save globally but not the size. Actually, It does seem to write the DMD size to the ini file but for some reason does not apply it when launching the DMD. I do have a strange DMD screen that I can only run at 1366x768 resolution (which is not even the native res of the display....but that's a long story). Could the res be the problem since it's not 4:1????

 

Also, just FYI for anyone testing this. When I installed 1.9 to my vpinmame folder as directed, it broke Pup Pack functionality with FX3. Even though I use PuPDMD, nailbuster's instructions seem to indicate that is still relies on DmdDevice.ini and DmdDevice.dll files, which I overwrote the 1.8 versions when I installed 1.9. So basically I am unsure if DMDExt 1.9 is compatible with PuPDMD.

But once I re-installed DMDExt 1.8 into my vpinmame folder it was working again.

So basically I just made a DMDExt folder under Future Pinball folder and put 1.9 there, since that is the only thing I am going to use it for right now. I just changed the path in the Launch Script to point to this new folder. SO I basically have two versions of DMDExt installed right now.

 

Link to comment
Share on other sites

  • 2 weeks later...

Works Great!  I love the glow effect in my VPX DMD with 1.9.  Looks very different but really cool once I adapted to the change.  Thanks so much.  This also got Goonies Pup Pack and GB Pup Pack working correctly along with the installation of the latest PuP version 1.4.6

 

Thanks Guys!

Link to comment
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
 Share

×
×
  • Create New...