Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. My bare hosting costs are currently not met so please consider donating by either clicking this text or the Patreon link on the right.

Patreon

Recommended Posts

Posted

Hi,

I Had bought some more pinball games during steam wintersale like worms pinball, pinball hd collection, retro pinball but none of these are good for cabinet. I'm not saying the games are bad some are good but they got some quirkcs that make it difficult to use in a cabinet. For example forced high score name input using keyboard and not flipper buttons and no way to cancel it decently or no options for portrait mode or relying heavily on mouse input and no keyboard support to make selections (make's it difficult for an ahk script as it needs changing depending on the resolution used).

However i did find one (free to play) game with optional buyable DLC tables that did have everything to make it work in a cabinet and it's Malzbie's Pinball Collection. https://store.steampowered.com/app/729580/Malzbies_Pinball_Collection/

while the game did work perfectly on my main pc it did not on my pinball cabinet. For some reason it had problems with the joystick it detected from my tilting / nudging system that made the menu's freak out and not usable. Luckily i eventually found the problem and the solution was to disable the joystick hid input device before launching the game and reenable it after quiting the game. I used http://www.nirsoft.net/utils/device_manager_view.html to accomplish this. When i'll release / finish everything for this game i'll make sure to explain how you can detect this problem and disable / enable the joystick device(s).

for the rest it was creating a little AHK script to launch the game, select the table and change the view of the table as it's not remembered per table and some tables need a different amount of keypresses for changing view that fit's a cabinet.  I also used my little image viewer tool again to show the backglass during gameplay after i have rotated the screen using irotate. For the rest it was creating table video's, for the backglass images i took a screenshot of the backlgass shown when the table starts it was very low res so these are not of the greatest quality but it works. For the wheel image i took a screenshot of the table and created the text logo's online using a site where you could create these (once posted here in another thread flamingtext or something). It's working fine currently and i don't need mouse or keyboard for this game to work. It even has "flipper button" input for inputting your name if you have a highscore which is a big plus if you ask me.

The only thing i might still try is to mirror the dmd using dmdext on my backglass monitor. but i have not verified if the game always postions the dmd on the same position per table, if not i'll have to specify different coordinates per table used which i think is doable as i pass the table name to the launch before batch file (it's needed to display the correct backglass image using my tool).

I'll update / change this initial post once i got all the instructions and have it finished so other can try as well and the great thing is you can try out the tables first before deciding to buy them as dlc but imo the game is not expensive only 99 cent per table dlc and i think the author is working on more tables. 

I requested on the steam forums for support for commandline parameters to launch the tables but i'm not sure he'll implement it. Someone already asked it before me but did not explain everything so the author of the game had no clue what was requested.

Here's a preview video

 

Posted

Hey an ahk script might not be needed anymore very soon. The author of the game has implemented command line options to start a table directly and when quiting the table it will quit the game. The only thing is the camera position per table to be remembered but the author said he will implement that in a next update so then i don't see any need for a ahk script anymore.

I'll be sure to test it out and see how it works and do modifications or remove my ahk script as well as rename all my media parameters to match the ones the author chose

-startTable ttfb
-startTable Carnival
-startTable garden
-startTable sheriff
-startTable ghosthouse
-startTable mudrace
-startTable playground

see topic here https://steamcommunity.com/app/729580/discussions/0/1742225999457571167/

 

  • Like 1
Posted

Great that the author is quick to add command line options! Do you think he will be open to DMD and backglass support/positioning?

Posted
6 minutes ago, Draco1962 said:

Great that the author is quick to add command line options! Do you think he will be open to DMD and backglass support/positioning?

Hi draco, i'm not sure about that, i did not request that. Adding commandline parameters usually does not take a lot of work as the game normally already has a function to launch a table directly from within the menu. So adding commandline parameters to start a table usually is not that much work just mapping a command line parameter to the launch table function call with a certain parameter for the table.

I'm still talking to him on steam forums trying to get the weird menu behaviour fixed. Its either due to the tilting sensor or the Zaxis (used for the plunger) not being centered. I can go around that by disabling the joystick used by my cabinet to show x & y & z values from the tilting sensor and analogue plunger but this will not work if people are actually using joystick as input for their cabinets. It could also be this problem might be solved when direct launching the tables as it skips the menu's.

Anyway what i was trying to say is that adding support for commandline parameters is easy and usually does not involve many changes but adding 2 monitor (or even 3) and dmd repositiong requires more work and is not always so simple. So i have not asked about it. I'm already happy with the commandline parameters (i still have to try them out though)

Posted

Ok i just tested using commandline parameters and its working without a problem and since we skip menu's i don't have the joystick problem either so i don't have to disable it before launch i only have to disable the joystick hid devices if i want to change the game options. If you notice the game menu's acting weird i would start by disabling your joystick hid input device in windows device manager and start the game set everything up (like your keys / graphic settings etc). and once done enable it again and only launch using pinballx with commandline parameters then you don't have the problem. You'll quickly notice it if the menu is acting weird. The author is going to try and fix it but if you want to play already it's not needed to disable the joystick device then and it has no impact during game play. if you are using a joystick encoder instead of keyboard encoder you might have problems getting your buttons setup if you have the problem but once you manage to set it up it wont interfere during game play when launched from pinballx

So first things first you'll still need irotate / powershell or some other commandline tool to rotate your screen before launching the game in a launch before script and rotate to orginal position in a launch after script (where you wait till the rotations is done) given your playfield is in landscape mode for portrait mode you actually don't have to do all this. That's all thats needed but you can expand if you want backglass shown during game play or even dmd mirrored using dmdext. https://www.entechtaiwan.com/util/irotate.shtm

These are the settings i have in pinballx (edit: the games appid is 729580 not 912850, 912850 is actually the appid for the dlc content of the playground table But it seems to work to launch the game as well.)

pinballxsettings.thumb.png.38d93777464dd353a4fd70adc0fe3007.png

this is the game database Malzbies Pinball Collection.xml

in the launch before and launch after script you need to call irotate to make windows sit in portrait mode before starting the game thats why i wait for the launch before & after script to finish. 
launch before to rotate screen 1 90°: 

powershell -Command "Start-Process 'irotate.exe' '/1:rotate=90 /exit' -Verb runAs -WorkingDirectory 'C:\Program Files (x86)\iRotate\'"

Launch after to rotate screen 1 back to original: 

powershell -Command "Start-Process 'irotate.exe' '/1:rotate=0 /exit' -Verb runAs -WorkingDirectory 'C:\Program Files (x86)\iRotate\'"

the only reason i'm using powershell to start it is because of the "-Verb RunAs" option wich will run irotate with elevated rights (i also have uac prompts disabled in windows settings) as irotate requires elevated rights

If you want to show a backglass during play you can use my Image_Monitor_View.zip tool. it accepts 2 parameters the first one the 0 based monitor index  (so monitor 1 = 0 , 2 = 1 etc) to where the backglass should be displayed and the 2nd parameter the full path to a jpg, gif, png or bmp filename . Do note this is only needed if your playfield screen is setup in landscape mode and because of irotate clearing the backglass screen of pinballx. if you already run in portrait mode you can set hide backglass to false and let pinballx show the backglass it will not clear the screen to black then and works just as good. I only have to use this tool because i rotate the screen & the backglass from pinballx becomes black then (which is all normal as it should not play video's / draw anything while a game is playing to not waste cpu power on things you normally don't see)

As you notice i pass the [TABLEFILE] parameter also to the batch file i do this so it can display the correct backglass per table. I do this like so:

start Image_Monitor_View.exe 1 "C:\PinballX\Media\Malzbies Pinball Collection\Backglass Images\%1.png"

Monitor 1 (is the 2nd monitor (remember 0 based) which is my backglass monitor) and the %1 part is what will be replaced with the tablename parameter i let pinballx pass to the batch file.

and in the launch after you need to kill the app:
 

taskkill /IM Image_Monitor_View.exe


And that's basically it. although you could still use dmdext to mirror the dmd on the backglass or dmd monitor 

The wheels / backglass (which are very low quality as they have been taken from ingame screenshots of the ingame backglass) and table video's are uploaded to the ftp under "/-PinballX-/Other Uploads/Joyrider3774/Malzbies Pinball Collection/"
here you can see the files (but not download) http://ftpbrowse.gameex.com/-PinballX-/Other Uploads/Joyrider3774/Malzbies Pinball Collection/
i also uploaded the gimp xcf file for the wheel images i created just in case anyone want to reuse the images but with different logo's or so

For the moment the games does not remember camera postion on the tables so you would need to have a button mapped on your cab to change the camera or use a real keyboard until it has been implemented

  • Like 2
  • Thanks 1
Posted

Lovely work , thanks for sharing and including the XML file and ill grab the artwork you have done, Many thanks. Will be installing this in my PINCAB latter :-)

 

 

 

Posted

Just checked out thetables.   Here is my DMDExt settings to get the DMD going on my PinDMDV3.    Modify as needed for your real or virtual DMD.

 

dmdext mirror --source=screen --position 382 10 318 130 --destination=pindmdv3  -p COM3 --fps=60 --no-virtual

Posted

I have uploaded & overwritten my old backglasses (which were bad quality) on the ftp with the backglasses the author provided.

Also about the camera saving. It won't save your camera position if you do it using the commandline options well actually through pinballx it may still do it if you use the games quit menu instead of pinballx ways to quit the game. You need to set your windows in portrait mode then launch the game and start each table manually, change the camera (c key) depending on the table (sometimes you need to press it once, sometimes twice to get best view for cabinet). Exit table start new one and repeat until you did all camera positions. Then cleanly exit the game using the menu's and your camera postion is saved. When you start from pinballx it will immediatly go to that view you had setup during normal play.

I also tested my joystick problem unfortunatly it's not fixed but you can go around it and it does not affect anything during gameplay (when launched from pinballx) only when setting up things and you might not even encounter the problem.
@GAH1068 did you have the same problem in the menu's when launching the game normally on your cabinet ? You especially notice it in the options menu but also on the main menu. Normally all menu buttons (play / options etc) should be the same width / size when the game is first launched and you don't press / touch anything. If they are not something is constantly activating the menu and i can't use my mouse nor my keyboard correctly in that case. You also notice it when going to the options menu it seems settings are changing randomly when moving the mouse then

Also this is the dmdext command i use with a virtual dmd placed on my backglass screen. My playfield screen is 1600x900 my backglass screen 1024x768 but because playfield screen is rotated dimensions become 900x1600 (it's important todo the calculations). On 900x1600 the dmd position is in my case (without borders)  at 323,14 and is 253 pixels wide and 103 pixels in height. I show it on my backglass monitor scaled to a width of 630x175 (yes i know i don't maintain aspect ratio) so 1024 (from backglass monitor) - 630 = 394. so that's the space left the dmd does not use on the backglass monitor then to do the center calculation you do 394 / 2 = 197 and 900 (from rotated playfield screen) + 197 = 1097 to make the dmd appear center in the backglass monitor. The height you can choose just make sure it says within backglass height if you add up y position of dmd + scaled dmd height (in my case i took 584 -> 768 (my backglass monitor height) - 175 (scaled dmd height) = 593 - 9 pixels (to have a space between lower border of backglass screen)  = 584.

To find out dmd position ingame take a screenshot using steam (f12) key while you play using the same settings as when running from pinballx (so rotated screen etc). then zoom in & using mouse find out position & width and height of dmd in some image editing program (gimp which is free for example)  

I also increase default virtual dmd dot size (being 0.8) to 1.1 to make it be better visible on my backglass (bigger dots) and i set it to stay on top because my image monitor view tool is also on top (so make sure to run dmdext after running the image monitor view tool if you display both on same monitor)
 

start "" /min dmdext.exe mirror --source=screen --position=323 14 253 103 --destination=virtual --virtual-stay-on-top --virtual-hide-grip --virtual-position=1097 584 630 175 --virtual-dotsize=1.1


Final video of my setup and yes i finally speak in a video ;) (which i don't like doing)

 

  • 2 weeks later...
Posted

Just a small follow up in my screenshot the appid is wrong. The games appid is 729580 not 912850, 912850 is actually the appid for the dlc content of the playground table But it seems to work to launch the game as well. So it's a small detail but better use 729580 (if that works as have not tested on cabinet yet) but it should normally

https://steamdb.info/app/729580/

https://steamdb.info/app/912850/

  • 3 weeks later...
Posted

Hi everyone,

i installed Malzbie's Pinball Collection Playfield backglass all right.
The dmd does not work. I have a 1080 x 1920 pincab and 3 monitors. this is my configuration with dmdext v 1.7.2:

 

powershell -Command "Start-Process" irotate.exe '' / 1: rotate = 270 / exit '-Verb runAs -WorkingDirectory' C: \ PinballX \ Plugins \ iRotate \ '"
start Image_Monitor_View.exe 1 "C: \ PinballX \ Media \ Malzbies Pinball Collection \ Backglass Images \% 1.png"
start "" / min dmdext.exe mirror --source = screen --position = 382 10 318 130 --destination = virtual --virtual-stay-on-top --virtual-hide-grip --virtual-position = 1080 1114 1366 414 --virtual-dotsize = 1.1

 

Can you help me figure out where I'm wrong?
Thanks for the VS suggestions

Sauro

Posted
15 hours ago, sauro said:

Hi everyone,

i installed Malzbie's Pinball Collection Playfield backglass all right.
The dmd does not work. I have a 1080 x 1920 pincab and 3 monitors. this is my configuration with dmdext v 1.7.2:

 

powershell -Command "Start-Process" irotate.exe '' / 1: rotate = 270 / exit '-Verb runAs -WorkingDirectory' C: \ PinballX \ Plugins \ iRotate \ '"
start Image_Monitor_View.exe 1 "C: \ PinballX \ Media \ Malzbies Pinball Collection \ Backglass Images \% 1.png"
start "" / min dmdext.exe mirror --source = screen --position = 382 10 318 130 --destination = virtual --virtual-stay-on-top --virtual-hide-grip --virtual-position = 1080 1114 1366 414 --virtual-dotsize = 1.1

 

Can you help me figure out where I'm wrong?
Thanks for the VS suggestions

Sauro

take a screenshot of the game while it's running rotated as you would run it from pinballx. And verify if these are the position + dimension of the dmd inside the screenshot: --position = 382(X) 10(Y) 318(W) 130(H) 

Next you need to calculate your 3rd monitor position (like add up any previous screen size dimensions and remember playfield screen is rotated so need to switch width + height) -virtual-position = 1080(x) 1114(y) 1366(w) 414(h)   <- those values need to change i placed between () what they mean.

If you got 3 screens and your 3rd screen is the dmd monitor for example (this is hypotetical example):
1920x1080 <- playfield = screen 1

1920x1080 <- backglass = screen 2
1280x720 <- dmd = screen 3

You need to do the following for X Position : 1080 (from playfield but screen is rotated so 1080 and not 1920) + 1920 (from backglass) = left pos of your dmd monitor.

You can not copy paste the values but need to the calcuations yourselve. Unless you are using pindmd instead of a monitor then you don't need to use a virtual destionation and position.

Only you know your setup and monitor dimension widths / heights and which monitor is used for what

Posted

"start" "/ min dmdext.exe mirror ....." should open a black window somewhere visible with alt-tab?
the command appears that it does not open any windows.

I have a  "Monitor 15.6"  1376x768 <- dmd = screen 3

Sauro

Posted
55 minutes ago, sauro said:

"start" "/ min dmdext.exe mirror ....." should open a black window somewhere visible with alt-tab?
the command appears that it does not open any windows.

I have a  "Monitor 15.6"  1376x768 <- dmd = screen 3

Sauro

Yes the commando should open dmdext. You can test the commando manually also in a cmd prompt without the start "" part and see if it gives errors. the script assumes dmdext.exe is located in same directory as the batch file in my case it was the scripts folder. If you have it installed somewhere else you need to adopt the command to start your dmdext in different directory or the commando won't do anything. You can also test by running the batch files manually...

Also your copy pasted text contains spaces on places where it should not but it could come from copy pasting... For example this is wrong : "-virtual-position = 1080 1114 1366 414" (should be "-virtual-position=1080 1114 1366 414")  or "--destination = virtual"  is also wrong (should be "destination=virtual) and it's wrong on other places... it should not contain spaces verify my supplied line for the batch file and don't add spaces where i did not do it... but i'm not certain thats your problem just run manually from cmd prompt and see what it says. It just basic running of dmdext :) the start part is only used in the batch file to not make the batchfile wait for dmdext to end but go on with the next command immediatly

And i'm not going todo the calculations for you it's just plain simple adding up dimensions. If you want someone todo the (simple) calculation for your give your complete setup so all monitor resultions (also say if they are portrait or not) + monitor order (like in exact order as windows see them) because if windows sees your dmd as 2nd monitor or 3rd monitor it affects calculations to position the dmd. But start by running dmdext manually and see that it actually runs. In your case it does not so you either messed up the commando or dmdext.exe is not located in same directory as the batch file or you did not change commando to reflect your install location of dmdext or you did not install it all

Posted

Make sure when using the tool from @GAH1068  that your screens if you need to rotate your playfield screen is rotated. Basically make sure its in same orientation as when you would play the game or it will give wrong positions otherwise because width & heigth are not switched on the playfield screen if you need to rotate your playfield screen. Its logical but just mentioning it to be sure you are aware. Also if you have your playfield already setup in portrait mode all the time in windows you don't need to do this but then you don't need irotate either

Posted
 
Thanks gah1068, thanks joyrider3774 for suggestions ...
The error was in the spaces of the script now after a few adjustments works well.
Attached the photo of my pincab.
There is one thing that still does not work for me, by exiting Pinballx the Dmdext remains active I can not close it "ctrl-c".
Do I need to add a command on MalzabiesPinballCollection Launch after ?.
Thanks again for the suggestions and best regards

Sauro

 

N.B: I answer myself to the last question alone ...
I added "taskkill / f / im dmdext.exe" to the MalzabiesPinballCollection Launchafter file and now it seems to work perfectly.

 
 
 
 
 
 
 

IMG_20190128_205158.jpg

Posted

@sauro nice one, yes indeed you need to add a launch after batch file or edit it to kill dmdext. Not sure i mentioned that in any of the previous posts, but i'm doing the same thing also using taskkill command. But watch out with spaces again it's /f /im .. not / f / im

Posted
7 hours ago, joyrider3774 said:

@sauro nice one, yes indeed you need to add a launch after batch file or edit it to kill dmdext. Not sure i mentioned that in any of the previous posts, but i'm doing the same thing also using taskkill command. But watch out with spaces again it's /f /im .. not / f / im

I use google translator, in the translation I apply the spaces after /

original : But watch out with spaces again it's /f /im .. , translation : Ma stai attento con gli spazi, è / f / im .. , English Italian .

Hi Sauro

Posted
4 hours ago, sauro said:

I use google translator, in the translation I apply the spaces after /

original : But watch out with spaces again it's /f /im .. , translation : Ma stai attento con gli spazi, è / f / im .. , English Italian .

Hi Sauro

Ah ok, that explains where your initial fault came from and why dmdext was not working intially with you :)

  • 4 weeks later...
Posted

guys Labyrinth table has been released as usual very cheap 0.79€

https://store.steampowered.com/app/989680/Malzbies_Pinball_Collection__Labyrinth/


I created new wheel image, uploaded the backglass the author released, updated database (i also added years now) and created a table video for the new table.

all available on ftp /-PinballX-/Other Uploads/Joyrider3774/Malzbies Pinball Collection/Media/Malzbies Pinball Collection

also it's now possible to hide the DMD (can be handy if you want to create video's without overlay dmd on playfield) you have to run in portrait mode and can press f11 then to hide it. Some tables in certain views show the dmd on the backbox (ingame) thats why the author added it. But i'm not going to recreate my video's, thats also why the i kept the dmd visible in my labyrinth video

New game name to use is labyrinth

updated database: 

Malzbies Pinball Collection.xml

Backglass picture:
labyrinth.thumb.png.7fd5468ee4e47bffae537effacd3d1b1.png

wheel image:

labyrinth.thumb.png.962d28956b2c59e10249d5399345999e.png

table video:

  • Like 1
  • Thanks 1
Posted
7 hours ago, abhi_maestro said:

@joyrider3774 thanks so much for all the tips and tricks. Would it be possible for you to share your batch files? I was not able to find them on the ftp.

I can upload them probably tommorow, but its not like it would work for your system. But they could be used as a reference

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...