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

How to setup EXE systems?


PcTeknic

Recommended Posts

When we create a custom system, we can create it for EXE files, system type 4.
This is great, however I can't find information on how to make it work correctly.
I have found an external program capable of creating the PinCabView system that works correctly with some specific games.
But my intention is to create a "Pinball PC Games" or "Steam Pinball Games" system that shows several games that are only 1 table, such as Timeshock Ultra, SlamTilt, Pinball Wicked or Demons Tilt among others.

Link to comment
Share on other sites

So you want one 'system' that has multiple different single table executables?

I think you'd have to use the alternateexe flag in the database xml to set the alternate executables for all but one game (which would use the default system exe). There's details in the pinballx documentation about the <alternateexe> flag.

Sorry if i've misunderstood..

Link to comment
Share on other sites

No, altenate exe tag don´t work.

I need a PC Games System, this database have TimeShock Ultra, SlamTilt, Pinball Wicked, Demons Tilt... each game has its executable, parameters, process to monitor, pre-launch, post-launch...

Now I have managed to do it with external programs (unrelated to PinballX), such as PinCabView Launcher, RocketLauncher or other launchers.

But I find it very strange that when adding a system in PinballX it offers us to select if it is a system si a Custom System, Future Pinball System, Visual Pinball System, or a Custom EXE Files System (Type 4) and that the latter cannot work without 3rd party programs other than PinballX.

Link to comment
Share on other sites

I have added those same games so far in PinballX, each game as a system.
This is ugly because you have to enter the system and it shows you the same game 5 times since there is only one table in that game.
If you at least run it directly from the system list, without accessing that system, it might work, but it doesn't do that either even though you choose the custom exe file system option.
In addition, you have several systems that are not really a system, they are a single table game and the best way I think it would be is to create the "Pinball Pc Games" or "Steam Pinball Games" system and have all those games displayed and run on that single system.

Link to comment
Share on other sites

.lnk files in one table folder named as you like and setting as TablePath don´t wok.

.exe files compiled from .ahk in table folder don´t work.

I have ussing [TABLEFILE] parameter.

AlternateEXE tag on database don´t Work.

Only can it mede to work with external software as PinCabView or RocketLauncher or made a Custon Launcher.

If you create a custon launcher with AutoHotkey based on tablenames and files to ejecute and compile as .exe then work.

I can made it to work with 2 or 3 external solutions, but I think that this should be much easier for any user, I think that if PinballX offers us the possibility to create these systems, there must be a way to make it work without external software or additional programming.

Link to comment
Share on other sites

3 hours ago, Mike_da_Spike said:

Sounds like a feature request?

I've given the scenario a bit of thought and i tend to agree. As far as i can see the easiest way to achieve what @PcTeknic wants would be to use 'groups' of systems (pinballx\databases\groups). So adding each single table exe as its own system with its own launch parameters and launch before/after etc, but that would show still all the individual systems in the 'systems' list and the 'group' would only be visible from the 'lists' menu....   so the feature request would be to add an option / tag in system setup / xml to hide or show individual systems in the systems wheel, and then a similar tag in the database group xml to make that group visible in the systems wheel (and also hide it from the lists menu).

Think that would work and be fairly flexible (it would work with other systems that aren't single table too), but there might be a better way i haven't thought of and i've no idea how many changes it would need in PinballX.

Edit - one problem with the above i hadn't considered would be what to do about database group media (wheel image etc) if they were to be used as a system, where would PinballX store it?

  • Like 1
Link to comment
Share on other sites

On 4/5/2023 at 13:56, Mike_da_Spike said:

¿Suena como una solicitud de función?

What happens is that the function already exists, it is not a function request, what I want is information on how we should use this function.
Before PinballX only allowed adding systems based on Future Pinball, on Visual Pinball or Custom, for some time it has allowed type 4, custom with .exe files, but there is no information about it.

Link to comment
Share on other sites

10 hours ago, PcTeknic said:

What happens is that the function already exists, it is not a function request, what I want is information on how we should use this function.
Before PinballX only allowed adding systems based on Future Pinball, on Visual Pinball or Custom, for some time it has allowed type 4, custom with .exe files, but there is no information about it.

Sorry buddy. Your first question was clear, but all the reactions on it, made your question looks like you asked something different. 

It is not much, but this is the information I have

 

So, you can only use direct EXE files as table name, with no parameter's at all.
And the exe must be exact the same what you launch, other wise it cannot monitor the process and goes back to PinballX.

So no go for Steams app that needs steam.exe to launch (maybe a feature request for adding Steam games would be a nice to have ?)

I would update the PinballX documentation with the following note :

System Type
Specify a system type. If other than Custom, PinballX will treat it as the specified in built system and allow features such as high score support.

Note: ‘Custom – Exe Files’ doesn’t require any of the next parameters. This type just points in Game Manager to the full path of an EXE file and monitors this process until it stops. Pressing the exit button will exit this process as well. No Parameters can be used

 

  • Like 2
Link to comment
Share on other sites

Thanks, Mike.
At the moment, I see that RocketLauncher is still the best option, it's a shame that PinballX doesn't support this type of system and we have to resort to external launchers.

Link to comment
Share on other sites

I think it would be great if when we select a type 4 system (exe files), PinballX read an .ini file with the name of that system that includes the parameters of each of the games (Steam.ini, Pinball PC Games.ini or whatever our system is called).

This .ini file would have a structure similar to this:

[Pinball Wicked]
WorkingPath=C:\Program Files (x86)\Steam\steamapps\common\Pinball Wicked\PinballWicked\Binaries\Win32
TablePath=
Executable=PinballWicked-Win32-Shipping.exe
Parameters=
WaitForProcess=PinballWicked-Win32-Shipping.exe
LaunchBeforeEnabled=False
LaunchBeforeWorkingPath=
LaunchBeforeExecutable=
LaunchBeforeParameters=
LaunchBeforeWaitForExit=True
LaunchBeforeHideWindow=True
LaunchAfterEnabled=False
LaunchAfterWorkingPath=
LaunchAfterExecutable=
LaunchAfterParameters=
LaunchAfterWaitForExit=True
LaunchAfterHideWindow=True

[SlamIt Pinball]
WorkingPath=C:\PinballX\Scipts
Executable=LauncherSlamIt.exe
Parameters=
WaitForProcess=BigScore.exe
TablePath=
LaunchBeforeEnabled=True
LaunchBeforeWorkingPath=C:\PinballX\Scipts
LaunchBeforeExecutable=BeforeSlamIt.bat
LaunchAfterEnabled=True
LaunchAfterWorkingPath=C:\PinballX\Scipts
LaunchAfterExecutable=AfterSlamIt.bat

[Demons Tilt]
WorkingPath=C:\Program Files (x86)\Steam
TablePath=
Executable=Steam.exe
Parameters=-applaunch 22510
WaitForProcess=DEMON'S TILT.exe
LaunchBeforeEnabled=True
LaunchBeforeWorkingPath=C:\PinballX\Scripts
LaunchBeforeExecutable=BeforeDemonsTilt.bat
LaunchBeforeWaitForExit=False
LaunchBeforeHideWindow=True
LaunchBeforeParameters=
LaunchAfterEnabled=True
LaunchAfterWorkingPath=C:\PinballX\Scripts
LaunchAfterExecutable=AfterDemonsTilt.bat
LaunchAfterWaitForExit=True
LaunchAfterHideWindow=True

[Worms Pinball]
......... etc

I think something like this might work if PinballX, knowing it's an .exe file system, were to look for the corresponding .ini file.

  • Like 1
Link to comment
Share on other sites

After all, that's basically how systems based on PC games work on other frontends.

For emulator-based systems, the database makes the emulator run the roms that are all in one folder, but for PC game-based systems, the database tells which game to look for in the file. ini which is the one that contains routes and parameters for each game.

Link to comment
Share on other sites

Here i create a simple autohotkey script just for this so you can launch .url and .lnk files. 

if your game is named pinbal.exe create a shortcut with name pinball.exe.lnk or if you want to start a steam game (which seem to use .url files) name it [game.exe].url where [game.exe] is the name of the process you want to monitor and also want to close when pressing ESC key. Basically you provide in the name of the shortcut also the name of the process to monitor (and thus name of exe of the game). and you put all these shortcuts (lnk) or url files in the same directory.

here is the script for download (compile to exe) LaunchLnkFile.ahk

This how you set it up in pinballx, the launchlnkfile.exe will keep running as long as the game runs or until your press ESC key so you can set the script exe as process to monitor

image.thumb.png.07a898ce109eb24a469497e6832c5583.png

This is my `M:\Pinball\PinballX\Launch files` directory with LNK and URL files containing the game exe filename
image.thumb.png.de440ba82ebc2f83188cdb670327a289.png

And this is how you set it up in game manager:
image.thumb.png.8594e3344e629001be432dec97689d05.png

 

doing it using this simple script and workaround way you can just create one single system for all your LNK or URL files for games to launch and you can provide any parameters for the game inside the LNK (shortcut) and basically launch any single exe, url, bat, com etc file you want. It's also easy to backup as you only need to backup the script and the folder containing all the LNK or URL files, There is however one downside to the script if multiple games use same name for their exe you won't be able to launch them using this system but normally each game have an almost unique exe name. If that ever is the case we could adapt the script so that you can name your files [game.exe.01].lnk [game.exe.02].lnk until [game.exe.99].lnk in case of duplicate game.Exe's it should not be that hard todo. Let me know if that is needed or not and i'll adapt the script but first see if it'll suit your needs and if you can get it working

 

  • Thanks 2
Link to comment
Share on other sites

5 hours ago, joyrider3774 said:

Here i create a simple autohotkey script just for this so you can launch .url and .lnk files. 

if your game is named pinbal.exe create a shortcut with name pinball.exe.lnk or if you want to start a steam game (which seem to use .url files) name it [game.exe].url where [game.exe] is the name of the process you want to monitor and also want to close when pressing ESC key. Basically you provide in the name of the shortcut also the name of the process to monitor (and thus name of exe of the game). and you put all these shortcuts (lnk) or url files in the same directory.

here is the script for download (compile to exe) LaunchLnkFile.ahk

This how you set it up in pinballx, the launchlnkfile.exe will keep running as long as the game runs or until your press ESC key so you can set the script exe as process to monitor

image.thumb.png.07a898ce109eb24a469497e6832c5583.png

This is my `M:\Pinball\PinballX\Launch files` directory with LNK and URL files containing the game exe filename
image.thumb.png.de440ba82ebc2f83188cdb670327a289.png

And this is how you set it up in game manager:
image.thumb.png.8594e3344e629001be432dec97689d05.png

 

doing it using this simple script and workaround way you can just create one single system for all your LNK or URL files for games to launch and you can provide any parameters for the game inside the LNK (shortcut) and basically launch any single exe, url, bat, com etc file you want. It's also easy to backup as you only need to backup the script and the folder containing all the LNK or URL files, There is however one downside to the script if multiple games use same name for their exe you won't be able to launch them using this system but normally each game have an almost unique exe name. If that ever is the case we could adapt the script so that you can name your files [game.exe.01].lnk [game.exe.02].lnk until [game.exe.99].lnk in case of duplicate game.Exe's it should not be that hard todo. Let me know if that is needed or not and i'll adapt the script but first see if it'll suit your needs and if you can get it working

 

If yoy get this working, would you mind publishing it and use description in the User Projects subforum?

Link to comment
Share on other sites

I'll try it and tell you, although if I'm not mistaken, we couldn't put different custom parameters for each game, such as launch before or after.
I think in most cases it would work.

Link to comment
Share on other sites

49 minutes ago, PcTeknic said:

I'll try it and tell you, although if I'm not mistaken, we couldn't put different custom parameters for each game, such as launch before or after.
I think in most cases it would work.

You can put the parameters inside the shortcut itself

 

image.png.351ab467d1239988fdcffc879d6b56ea.png

but launch before and launch after is indeed not possible but i could probably edit the script to run a specific batch file before and after launching the game but not sure if it work ok it would not be 100% the same as in pinballx (like it won't wait or at least don't know yet how to make it wait)

Link to comment
Share on other sites

1 hour ago, Draco1962 said:

If yoy get this working, would you mind publishing it and use description in the User Projects subforum?

sure will do but will first see if it suits pctechnics needs, for me at least it works but i could probably expand it a bit to do what i suggested in case multiple games use same filename for exe files as well perhaps add launch before and after batch file support

  • Like 2
Link to comment
Share on other sites

This is great and work fine with standart games or or many steam games.

But some Standart or Steam games, may need prelaunch and postlaunch to mount and unmount the corresponding CD-Rom (ISO), may also need prelaunch and postlaunch to rotate the screen to portrait before and landscape after or to run scripts we already use in PinballX.

I think it may be worth it and I will do more tests, but if we do not have the specific options for each game, as I mentioned before, an .ini with all the parameters for each game, integrating Rocket Launcher in PinballX may be the best option.

I have to test more things over time using this launch script, it probably allows more things than I think.

A lot of thanks for your excellent work.

Link to comment
Share on other sites

47 minutes ago, PcTeknic said:

This is great and work fine with standart games or or many steam games.

But some Standart or Steam games, may need prelaunch and postlaunch to mount and unmount the corresponding CD-Rom (ISO), may also need prelaunch and postlaunch to rotate the screen to portrait before and landscape after or to run scripts we already use in PinballX.

I think it may be worth it and I will do more tests, but if we do not have the specific options for each game, as I mentioned before, an .ini with all the parameters for each game, integrating Rocket Launcher in PinballX may be the best option.

I have to test more things over time using this launch script, it probably allows more things than I think.

A lot of thanks for your excellent work.

I have a version with launch before and launch after batch file support i'm currently documenting it in the user projects section will tag you

Edit here is the link to the improved version of the script with launch before & after support as well as going around the issue if multiple exe filenames have the same name (or in case someone stumbles on this topic)

 

  • Like 1
Link to comment
Share on other sites

just offtopic and i broke it now but what were chances of this ever happening lol (that nr is total nr of posts posted) pcteknic had exactly 555 and i had exactly 777 and we even posted in same topic right after each other reaching these numbers :)

image.thumb.png.ac46e2f6d7e2392529d2774bdb3caa28.png

  • Haha 2
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...