Jump to content
Sign in to follow this  

Malzbie's Pinball Collection - On my cabinet

Recommended Posts


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


Share this post

Link to post
Share on other sites

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

Share this post

Link to post
Share on other sites

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

Share this post

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

Share this post

Link to post
Share on other sites

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.)


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

Share this post

Link to post
Share on other sites

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 :-)




Share this post

Link to post
Share on other sites

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

Share this post

Link to post
Share on other sites

Hey guys, more great news, the author was kind enough to release a high resolution blackglass media pack.


Also the update where the camera positions are remembered should be live, as well as an attempt to fix the joystick problem i had but i have yet to test it, currently at the pub

Share this post

Link to post
Share on other sites

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)


Share this post

Link to post
Share on other sites

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



Share this post

Link to post
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
Sign in to follow this