Jump to content

DMDExt Guide (for Future Pinball) by TerryRed


Recommended Posts

  • Content Provider

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

 

 

 

 

 

 

 

This guide is now completely updated and renamed as the DMDExt Guide (for Future Pinball)

- I now have all my guides and tutorials in PDF format
- this new guide has been created to be used with the FP and BAM Essentials AIO package
- all my guides and tutorials are now only included with the FP and BAM Essentials AIO package



You can download the FP and BAM Essentials AIO package (and DMDExt Guide) here:
 

https://vpuniverse.com/files/file/14807-future-pinball-and-bam-essentials-all-in-one-complete/




A video tutorial that walks you through this guide can be seen here
 

 

 

00:00 Start
01:25 DMDExt - What does it do?
03:14 Guide walkthrough
06:50 How to run DMDExt with FP
08:00 Copy dmddevice.ini to FP folder
09:04 dmddevice.ini settings
11:46 Run DMDExt - set it's position and size
13:16 Styles - window and settings (always appears on PF screen)
16:15 Test DMDExt with Sonic Pinball Mania
17:52 FP must be run in windowed mode to access Styles window
18:34 Test different Styles presets
22:22 Run FP and DMDExt with BAT file
23:45 Setup Popper to run DMDExt
31:04 Test launching FP table and DMDExt from Popper
33:03 Closing

 

 

 

Edited by TerryRed
Link to comment
Share on other sites

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

 

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!

Link to comment
Share on other sites

  • Content Provider

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

  • Content Provider

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!!

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...
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
×
  • Create New...