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. Thank you for your support. Tom Speirs

Patreon

Zaccaria Direct Launch for PBX


GAH1068

Recommended Posts

Success!  - I have Zaccaria tables launching from PinballX.    I have tested about 20 different tables and things are working great  for me.     I will probably do some more cleanup and improvements down the road but for now I am content.

My sample shows how to launch a table from each Zaccaria pinball table  type.

They have EM, SS, Retro, Remake and Award and Deluxe     

I still need to go through and confirm all the table names for each and every table but I wanted to get this script out there for others to test so please as you add to PBX lets keep a running list of all the table names with the "group" they are under.

The key to using the script is in game manager make sure to put the correct table name in and most importantly the Type.    My scripts looks for EM,SS,RT,RM and AW.    The script will exit if you do not put the type in Game manager correctly.  ( I am converting the case to upper so EM, em, Em, eM are all valid)

EM=Electro Mag, SS=Solid State, RT=Retro, RM=Remake, AW=Award,DX=Deluxe

 

Update: 11/21/19  -   Modified script to handle new Deluxe table types.     Ust DX as  Type in game manager to use.

Update: 12/20/18  -   Added latest PinballX Zaccaria Database file

Update: 12/1/18  -  There is a optional change you can make to your script if you normally leave your playfield in landscape mode and then rotate to portrait when playing Zacarria.     If your playfield is already in portrait then you will not need to modify this.    There is a parameter to Zaccaria to automatically rotate the screen. (Stopping the need to rotate it via a launch before/after script) 

Original line:


Run, "%SteamDirPath%\Steam.exe" -applaunch 444930 

 

Change to: 

Run, "%SteamDirPath%\Steam.exe" -applaunch 444930 -rotate right    (Or -rotate left depending on your configuration)

 

NoteThere will be one thing that needs to be changed in the LaunchZaccaria.ahk script.    On Line 17 you will need to update the directory/filename of your Zaccaria PBX database file.   Make sure to save your changes and compile again.

Line to edit:

FileRead, xmldata, C:\Pinball\PinballX\Databases\Zaccaria\Zaccaria.xml ;change to your zaccaria PBX database

 

PBX config for Zaccaria:

zac-settings.png

A single table from each "group" configured.

zac-game-list-manager.png


 

 

 

 

LaunchZaccaria.ahk Zaccaria.xml

  • Like 4
  • Thanks 5
Link to comment
Share on other sites

I'd love to get this to work as well, but I have some issues. The game does start, but it doesn't go to the table (I only have Time Machine right now, to test things). PBX says it can't find the game.

Also, I have my 2nd screen set up to be on the right side of my 1st screen, so the backglass doesn't work either, since it needs to be on the left side for Zaccaria, but not for VP or FP. So I'd need a script to change that before launching, and changing it back afterwards. I figured I'm probably not the only one with this setup, so this might be helpful for a lot of people. Thank you.

Link to comment
Share on other sites

Upload your pinballx.ini and database file and zaccaria settings. Xml file.  Sounds like you config is off somehow. 

If you mean Zacacaris in game backglass there isn't anything I can really do script wise. 

I have a three monitors plus a real dmd on my system.  I only use 2 monitors for my cabinet but I have a 27" 4K monitor that I use on the PC for other stuff as a 3rd screen.    The 4K monitor would always set itself as monitor 1 and my playfield and backglass were 2 and 3.  With monitor 2 set as primary display.   This made the zaccaria backglass always display on monitor 1 no matter where I set the monitor positions in windows.  Unfortunately there is no options in zaccaria to define your second screen so your at windows mercy. 

It took me about 2 hours but after moving display cables around, deleting registry settings multiple times and countless reboots I finally got this problem fixed by getting the 4K playfield set to monitor 3.

Now my backglass works in zaccaria and I just had to quickly go back and change display settings for all VPX, VP9, TPA, etc

 

Link to comment
Share on other sites

There you go. Nevermind the screen setup, I figured that out.

So, if I press "Launch" on any of these tables in the Game Manager, first Game Manager says "Game not found", and than  the pop-up LaunchZaccaria.exe says "Invalid Table type: Valid types are SS,EM,RT,RM,AW".

If I try to launch the table from PinballX the game does start, but that's it.

Yeah... i got no idea why it doesn't work. Thanks a lot for having a look.

PinballX.ini

Zaccaria.xml

Link to comment
Share on other sites

@JammitNothing is jumping out at me on your Settings.Ini file or your Databse.XML.   I have a feeling it is probably because it can't find your PBX Zaccaria.XML file

Did you edit your LaunchZaccaria.AHK and confirm you are pointing to where it is stored on your system?    See underlined text below.    Look at line 17 and confirm that the script is pointing to the right directory/filename for your system.   That is the only line everyone will have to update for their system.

If not, edit the file and update the directory, recompile the file and I bet you will be good to go.

 

; Updated launcher for Zaccarai by GAH1068  10/16/18.     
; Modified from original Gigalula
; Tested with PBX V3.29
; Update path to your Zaccaria XML file as needed.   No other modification should be needed by default
;--------Run Before (Need to be compiled)----Start------

#SingleInstance force
SetTitleMatchMode 2
DetectHiddenWindows On
DetectHiddenText, On
; User inputs
SetWorkingDir %A_ScriptDir%

table = %1%
xml_table = %1%

FileRead, xmldata, C:\Pinball\PinballX\Databases\Zaccaria\Zaccaria.xml ;change to your zaccaria PBX database

Link to comment
Share on other sites

Hmmmm, the error about the invalid type means that it isn't parsing out your zacarria PBX database to get the type. 

 

Two more things to try wouid be to make sure to run the launcher as Administrator.    Another is to delete you database file and create it again in game list manager. 

You should be able to run the launcher right from a command prompt too just to make sure it isn't something in PBX.   

Example:  LaunchZacaaria.Exe timemachine 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

11 minutes ago, GAH1068 said:

Hmmmm, the error about the invalid type means that it isn't parsing out your zacarria PBX database to get the type. 

 

Two more things to try wouid be to make sure to run the launcher as Administrator.    Another is to delete you database file and create it again in game list manager. 

You should be able to run the launcher right from a command prompt too just to make sure it isn't something in PBX.   

Example:  LaunchZacaaria.Exe timemachine 

 

 

 

 

 

 

 

 

 

 

 

Running the launcher from cmd works just fine, but also doesn't launch the table, just the game. I'm more concerned about Line 63, "Settings_File=%A_MyDocuments%\Zaccaria_Pinball\settings.xml", since I don't have that file anywhere on my system... ?

Link to comment
Share on other sites

That's the actual zaccaria game file that saves its Config and the file my script modifies to launch the table directly .   By default it is created in the documents folder in a directory called zaccaria_pinball.   Not sure why yours would not be there.  You can see if you can locate it elsewhere on your system and update the path here to point to it instead of it using the variable name. 

Link to comment
Share on other sites

@hawkeyez88 I was seeing the same thing.   I have made a few changes to the script so give this version a try.    One is to make sure the Zaccaria window is active and then set the mouse cursor on top of the Zaccaria logo.  Instead of sending an enter button press I have it send a left mouse click instead.   I also changed some of the delays in sending keys using the sleep command.   Things working reliably for me. I haven't had a table fail to start again now.

I kept having problems today where I could hear the beeps (rem'd out in the script by putting ; in front)  sending the keys but it wouldn't leave the opening menu.   I finally figured out if the mouse cursor wasn't on the logo things were working sporadically.   I am calling SetCursorPos to move the mouse to my playfield and then sending a mouse click instead of an Pressing enter.   

For the SetCursor position on MY cabinet.   This puts the mouse clear in the Zaccaria logo.   I am running 1080X1920 on my playfield and it is monitor 1.   You may have to change this value to suit your system.    You can easily create a new script with just the DLL("SetCursorPos..." line and test values and see where it goes on your system.   Once you get it dialed in you can update your Launcher .   The input is the X and Y coordinate.

 

Sleep, 15000

DllCall("SetCursorPos", int, 560, int, 920)  ; The first number is the X-coordinate and the second is the Y (relative to the screen).

WinActivate, ahk_class GLFW30
;SoundBeep, 440, 200 
MouseClick , left
Sleep, 600
;SoundBeep, 400, 200 
Send {Enter down}{Enter up}
Sleep, 600
;SoundBeep, 400, 200 
Send {Enter down}{Enter up}
;SoundBeep, 500, 200 

 

Link to comment
Share on other sites

Final version for tonight.    I really believe it is a timing issue with the way keypresses are being sent to Zacarria.    This version has launched 10 tables from PBX in a row without getting stuck after the opening  menu where the table is highlighted.

Based on your computer you may need to change these but hopefully this cleans things up a bit more and makes it more stable.   I am going to keep on seeing what else can be done.

 

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, GAH1068 said:

Final version for tonight.    I really believe it is a timing issue with the way keypresses are being sent to Zacarria.    This version has launched 10 tables from PBX in a row without getting stuck after the opening  menu where the table is highlighted.

Based on your computer you may need to change these but hopefully this cleans things up a bit more and makes it more stable.   I am going to keep on seeing what else can be done.

 

LaunchZaccaria.ahk

I'll keep beating this version up too - thanks for all of your work on this - this is beyond cool.

Link to comment
Share on other sites

Yes, it is high scores.  There is a menu screen to turn if off.   I believe it was the same one screen where you could choose if you wanted commas or periods in the score seperatorm.  There is also a good setting there to turn off a lot of the other onscreen menu items 

Link to comment
Share on other sites

42 minutes ago, GAH1068 said:

Final version for tonight.    I really believe it is a timing issue with the way keypresses are being sent to Zacarria.    This version has launched 10 tables from PBX in a row without getting stuck after the opening  menu where the table is highlighted.

Based on your computer you may need to change these but hopefully this cleans things up a bit more and makes it more stable.   I am going to keep on seeing what else can be done.

 

LaunchZaccaria.ahk

Thanks a lot for improve this!!!

Link to comment
Share on other sites

51 minutes ago, GAH1068 said:

Yes, it is high scores.  There is a menu screen to turn if off.   I believe it was the same one screen where you could choose if you wanted commas or periods in the score seperatorm.  There is also a good setting there to turn off a lot of the other onscreen menu items 

AHHH I see it now! Thanks!

Link to comment
Share on other sites

8 hours ago, GAH1068 said:

That's the actual zaccaria game file that saves its Config and the file my script modifies to launch the table directly .   By default it is created in the documents folder in a directory called zaccaria_pinball.   Not sure why yours would not be there.  You can see if you can locate it elsewhere on your system and update the path here to point to it instead of it using the variable name. 

Huh. I looked for it on a different pc where zaccaria is installed and it's right there. So the question is, why doesn't zaccaria create the file on my system, and if it's not able to, why doesn't it generate an error message. But I guess I'll just create the folder myself and take the files from the other pc, see if that works. Thanks again for the help.

Link to comment
Share on other sites

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