Thanks for the welcome - glad to be here!
Yes, that's exactly the kind of thing I was thinking of. I have an arcade cabinet with several emulators running in it, and use a graphical frontend to simplify the process of finding and launching games for friends who aren't emulator-savvy. They can browse from system to system - say, from Atari 2600 to Nintendo NES to 3DO. Once in a system they can browse a list of games, and launch the game they'd like to play.
Under the hood, the frontend is scrolling through a list of games in a directory on the drive. When the user selects a game to play, the frontend can launch the required emulator, and feed it a command string. The command string at minimum must have the name of the requested ROM or ISO file. But it can also include other information, such as the path to the ROM, the file extension, a particular screen size, or whether to turn particular accessories on or off, such as a lightgun or special joystick.
Some emulators use an INI file which can contain information about whether to launch in fullscreen or windowed mode, etc. Some emulators allow the command string to override the options in the INI file. This can be handy if I want different settings in the frontend versus running the emulator manually from the desktop. Fullscreen is the best example of a setting I would want to be different depending on the circumstances.
The Z26 emulator (Atari 2600) has DOZENS of command switches, which allow you to not only specify a ROM, but also set screen resolution, turn various Atari visual effects on and off, and specify that you've got either joystick, paddle, or keypad plugged in.
http://www.whimsey.com/z26/Or here's another example: the Fusion emulator for Sega Genesis:
http://www.eidolons-inn.net/tiki-index.php?page=KegaIt emulated ALL the Sega systems prior to Saturn. When my frontend tries to launch a ROM, it needs to specify whether it's trying to start the emulator in Master System, GameGear, Genesis, 32X or SegaCD mode. The command string that my frontend executes looks like this:
c:\fusion\fusion.exe c:\fusion\roms\Sonic.zip -gen -auto -fullscreen
...where the "-gen" specifies that the emulator should start up in Sega Genesis mode.
Being able to tweak settings via command line switches is nice, but given the awesome job you've done creating a good interface for 4DO, it's not really necessary. I think the only thing I'd be looking for in a command line feature would be:
1) the ability to pass an ISO file to the emulator
2) the ability to specify fullscreen mode
Another nice option would be to have a command switch that allows the emulator to shut down when the escape key is pressed. This is a nice feature to have because most cabinets don't have a keyboard, and the user has to rely on a joystick and fire button to navigate around. Usually one key is mapped to ESCAPE as an all-purpose "back" or "exit" button for all emulators (provided they support that feature).
On my old system, I was using FreeDO v1.9. It didn't have command line support, but I was able to accomplish all this using a "wrapper" - a small executable someone wrote that would take the command line and somehow plug them into the emulator to achieve the same effect.
The old wrapper for FreeDO can be found here:
http://maximusarcade.com/index.php?opti ... edowrapperSorry for the wordy response! Also - these kinds of things might be very low on your priority list for the emulator, so I appreciate you even reading through this. Thanks so much for all your hard work, and I'll be looking forward to future releases!