I posted this over at Hyperspin forums, but figure I'll put it here too.
This thread is for integrating HyperDMD into Hyperpin for use with the PinDMD. I wanted to start a new thread dedicated to this portion as this was not the intended use of HyperDMD, and it's a very specific use case. The instructions below will work for people using HyperDMD without a PinDMD, however they are not really necessary or optimal if not using a PinDMD.
**Note: at this time HyperDMD does NOT work with PinDMD2!
The idea here is to accomplish this without having to edit every table script. Eventually, I'd like to see a standalone ahk that does all this via DLL calls or within FPlaunch. Unfortunately, it seems that due to timings and the way the program works, that will be difficult. The PinDMD is quite finicky about what is controlling it.
Feel free to change and improve upon this initial idea and please share them here.
Disclaimer: I am not a programmer, I can muddle through scripts, but that's about it. This method isn't perfect or the fastest way. Sometimes you need to reload a Future Pinball table to get the DMD to work because the timings were off(it took longer to initiallize for some reason but rarely once timings are adjusted to your system), other times some B2S tables require the same thing. There are probably much more elegant ways to accomplish this via dll calls, and I'm sure once this is out there for people to scrutinize, someone will post a faster more reliable way to do this, however for now this is what we have. This program has great potential, and while the instructions are nice, they are really only written for tables, and I wanted to accomplish this w/o having to edit scripts for every table I already have. I tested about 50 tables one after another without issue. Depend9ing on how a table is scripted or if it uses a ROM or not, you will still have a blank DMD when the game starts because the ROM call clears the DMD. At this time there is no way around it unless you make a call from within the table script itself calling to a scene. I do not go into this here yet but will be looking into it in the future for custom DMD's for every table that doesn't use a DMD.
What the script as written does:
Loads Hyper Pin
Loads HyperDMD with initial Attraction Scene that runs while in Hyperpin
Loads a custom logo or scene (I suggest logo) that can be set to be different for VP or FP while table is loading, and in some cases will stay there if DMD is not used in game (varies by how table was written)
Loads Attraction scene on table exit
Will close out of HyperDMD when Hyperpin is closed
Now on to whats needed:
Grab BBB's Hyper DMD and install it and play around with it to create a scene or 2. I really suggest playign with this as it is a great and fun tool!! I suggest for starters create a main animation, and 2 static images (one for FP one for VP) Name your animation set "Attract", name your primary animation "Attract", and each static image FP and VP respectively.
You will also need a non L version of Autohotkey - You can get it here and install it on your cabinet PC. http://www.autohotke....asic-versions/
Instructions:
1. Right click on your desktop and in the menu there should be a "new" option, highlight it and click on "new autohotkey script"
2. An icon will appear on your desktop. Right click on it and click "edit script"
3. Paste the following into it, replacing the paths in the first 2 lines with your paths to Hyperpin and HyperDMD. I suggest putting HyperDMD inside your Hyperpin folder. (credit to Horsey as this is really what he posted in another thread)
HyperPin = C:\Hyperpin\Hyperpin.exe ; change to match your path to Hyperpin
HyperDMD = C:\Hyperpin\HyperDMD\HyperDMD.exe ; change to match your path to HyperDMD
Run, %Hyperpin%
Sleep, 4000 ; this waits for hyperpin to load before starting HyperDMD. Change this to match when yours loads (generally lower value)
Run, %HyperDMD% -set Attract -scene Attract -start -silent ; change the -set and -scene names to whatever you named your scenes
Process, WaitClose, Hyperpin.exe
Run, %HyperDMD% -exit
return
5. Once it is edited to your needs, save it. Right click on it and click "compile script" This file will now be your startup file. Name it something like "pinballstartup and place the exe it creates in the root of your C:\ drive . Create a shortcut and place that in your startup folder (and remove Hyperpin from your startup folder).
6. Now make a backup of your fplaunch.ahk file then right click on it and click edit script.
Due to each version of fplaunch being a bit different, this needs to be manually edited and compiled rather than me posting the entire script. These are the places where these commands must be placed right now, but may change in the future (and hopefully at some point will be included in fplaunch).
For ease of finding, I will post the lines above and below each line that is being added and the added part will be in red. Every line with a path needs edited to your paths
bigbossfp:
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -scene fp ; optional if you want a "loading" screen while table loads
Sleep, 500
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -kill ; Kills DMD attract mode feed from HyperDMD so FP can take over
Sleep, 1000 ; Necessary sleep before FP takes over DMD May need adjusted higher if there are tables that don't pick up DMD
toLog("bigbossfp Called")
========================
bigboss:
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -scene vp ; optional if you want a loading screen while table loads
Sleep, 150 ; optional and adjust according to length of above line animation time -shorter is better
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -kill ; Kills DMD attract mode feed from HyperDMD so VP can take over
toLog("bigboss Called")
========================
ExitScript:
toLog("ExitScript Called")
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -start ; Gives HyperDMD control DMD scene for all exiting tables
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -scene Attract ; if setting a different scene it must be on a different line otherwise comment this out
ExitApp
=========================
OPTIONAL if you have Slamit installed
Run, "..\slamit\go.bat", "..\SlamIt"
Run, C:\Hyperpin\HyperDMD\HyperDMD.exe -kill ; Kills HyperDMD attract scene for Slamit - not tested as I don't have this installed, might need -exit instead and a timer
WinWait, ahk_class SlamIt Pinball - Big Score
========================
7. Save and right click it to compile it (make sure to backup your original fplaunch.exe!! and replace it)
That's it. You should now be able to click your pinballstartup file and it should load hyperpin and you can test.
I would suggest testing a few tables of each type (VP normal, UVP, B2S, FP) and verify they work as expected. If they don't, you may need to adjust the "sleep" commands timings some to account for the speed of your PC. You could even lower all those values if they are too high by lowering them until it breaks something.
Again, this is in no way perfect, but it is pretty damn cool
This is more or less what the final product will look like. I'm hoping to see some really cool attaction animations come out of this!!
Edited by Zablon, 18 February 2013 - 07:13 AM.