Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: classicLauncher  (Read 1580 times)

0 Members and 1 Guest are viewing this topic.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 182
  • Last login:Today at 09:14:07 am
classicLauncher
« on: July 03, 2020, 07:40:06 pm »
Just wanted to introduce you folks to a minimalist launcher program I wrote.  It’s called classicLauncher (or just “classic” for short). 

Yes, I know there are a bunch of launchers out there, but none of them did quite what I wanted.  This one was designed to meet a few objectives I had that the other launchers didn’t quite give me.

1.   Launch any emulated game, fully configured, using a simple, uniform command-line.

         classic.exe <system key> <rom>

2.   Support arbitrarily complex launch logic via an extensible rules engine.
3.   Be capable of serving as the launch engine for graphical front ends.
4.   Be a single executable file with no UI, no databases, and text-based configuration.

Beyond this…

Since it is first and foremost a command line launch engine, it has no graphical functions other than being able to display bookend screens with logos if you want.

To use, just put the executable in an empty folder and create an ini file called classic.ini that includes some minimal configuration.  Something like this customized to your path should do.  It's not limited to mame, of course, but this could get you started.

Code: [Select]
[Front_End_OS]
fe_key=os

[Emulator_Default]
sys_key=mame
exe_full_path=D:\Emulators\MAME\mame64.exe
param_list=[rom]

From there things can get as complicated sophisticated as you like.  See the documentation.  That is where you’ll find out the fuller capabilities of the software.  The classic_tutorial.pdf document might be the best place to start.  Sorry, no web page at the moment, just the package at the link below.

Oh yes.  And there is a license file that is required to be in the folder too, but I provide it for free to hobbyist users.

Get it here
« Last Edit: August 31, 2020, 07:48:55 pm by gildahl »

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 182
  • Last login:Today at 09:14:07 am
Re: classicLauncher
« Reply #1 on: August 15, 2020, 04:12:45 pm »
Did some more work on this.  It's available at the link in the op.

**************************************************************
Updates 8/15/2020 Version 0.2.0 Beta
**************************************************************
* Added support for pass-through parameters on commandline
  - Optionally whitelist specific parameters to passthrough from the command line to a specific emulator's parameter list.
  - Support for this also added to parameter type proxy files. See configuration reference for more information.
* Fixed a DPI Scaling issue in bookend screens
  - previously, bookend screens were offset/incorrectly scaled at other than 100% (96 DPI).
* Added root/version index to bookend start screen (if change_root is used)
  - for example show [222] after the emulator key if rom is run in MAME, rev .222
* Auto create runlast.bat and launchlast.bat files in the classicLauncher folder
  - handy for testing (see readme.txt file)
* Now require use of the key "param_list=" in parameter list type proxy files to unambiguously distinguish from vector type proxies.
  - For example: param_list=-nowindow -joy -skip_gameinfo
* Finished testing and added documentation for -find and findall command line directives.
  - Performs search for roms in targeted or all emulators using full or partial names.
* Added related global search feature to the documentation (configuration reference)
  - if search_paths are used, leaving emulator out of the command line will search for rom in all configured emulators.
* Fixed documentation error in use_proxy rule (rules reference)
  - some text called it the "file_proxy" rule
* A variety of other small documentation refinements, bug fixes, and general cleanup.

[EDIT]
I found a bug that can cause param_list in classic.ini not to be read if there are spaces after the section header brackets "]". This will be fixed in the next update, but in the meantime if you are having trouble with parameters being recognized, check for extra spaces and remove them manually.
« Last Edit: August 31, 2020, 07:47:58 pm by gildahl »