Flynn - v0.94.1 / 2004-08-24
A graphical front-end for XMAME
Adam D. Moss, adam@gimp.org / adam@foxbox.org
There are several fairly decent front-ends around. Why did I make
another one?
- This is primarily designed with the considerations of a
converted arcade cabinet in mind. If you use and enjoy Flynn as
general-purpose desktop XMAME front-end then that is nice but
incidental.
- I wanted something driven entirely by the default XMAME keys, so
it would be fully operational from the controls of my MAME cabinet.
None of this mouse nonsense...
- I wanted a front-end that saves its state, completely goes away and gives up
all of its memory when a game is chosen. The PC in my cabinet
isn't so wildly overspec'd that I have memory to
spare.
- I wanted something that looked suitably fun, arcadey and graphical
without being confused with text and menus
- I wanted something with easy and very flexible configuration
- It was fun.
Recent Noteworthy Changes (newest first)
- User-contributed analogue joystick and forking patches
- 'Various stuff'
- Larger default 'jiggliness', smooth-snapping of selected option
- Flynn sleeps based on a real-world time, not a stupid frame-count
- Smoother jiggling, code clean-ups
- Joystick support by Ben Saylor
- Segfault fix
Download
Get flynn-0.94.1.tar.gz here (7K).
I strongly recommend also downloading flynn-testdir.tar.gz (2.5MB) which is
a bumper pack of icons and configuration files to serve as an example
of a Flynn configuration tree (more info below). These are merely
examples; do bear in mind the issues of the legality of using any
given ROM set.
Compilation / Requirements
Flynn requires GTK (mostly for gdkrgb). A Makefile is included in the
Flynn package, so to compile Flynn just typing 'make' should suffice.
There are very few user-servicable parts in the Makefile, but there
will be in some future release.
Note: There are several #defines to adjust at the top of
flynn.c, if you feel inclined. These control animation speed, Flynn
window dimensions and such.
Usage
Use the cursor keys to select a game/option from the spooky scrolly
wiggly gamescape, then press any key except
for ESC. ESC will exit Flynn.
An active Flynn will go to sleep after a few minutes of inactivity to help keep
your (my) CPU cool. Press a key to re-awaken Flynn.
Flynn saves its state to the file /tmp/flynn.state between
invokations. From a security point of view that's not excellent, so
for now at least I can advise that you don't run Flynn on a multi-user
machine unless /tmp/flynn.state is chowned by you and chmod 644.
Configuration
For a quick start I recommend that you have a look at the flynn-testdir.tar.gz
from the download section above and learn by example; that file sets
up a large number of selectable games and also provides an example
('HELP.conf') of using xv to animate a simple help-screen for a
converted arcade cabinet. Most global configuration options (paths to
ROMs, XMAME, etc) are in the 'defaultenv' file in this tar-ball. Here
follow more detailed instructions:
Flynn reads its list of icons from a directory name given to it on the
command line. For example, to start Flynn with the configuration tree
supplied in flynn-testdir.tar.gz one would unpack the configuration tree and then execute
'flynn PATH_TO_CONFIG_DIRECTORY', e.g. 'flynn
/usr/local/share/flynn/test'
Flynn will then load the gamelist file in the config directory.
Each line in this file is simply the name of an option on the menu
which is to be presented to the user. For each option, Flynn will try to
use the icon games/OPTION_NAME.ppm or will default to
default.ppm. All files mentioned here are relative to the
config directory supplied on the command-line. These PPM files should
be 24-bit raw PPM files of a precise dimension (154x106 pixels by
default), as writeable with (for example) GIMP and xv.
When an option is selected, Flynn shuts down and 'run_game'
(again, in the configuration directory) is called with four
parameters: (1) the option/game name, (2) the working directory of
Flynn, (3) Flynn's executable name, (4) Flynn's parameter (ie. the
config dir). Parameters 2-4 are passed through so that Flynn may be
restarted by the run_game script after the game has been run.
A simple and flexible run_game script is included in the
aforementioned flynn-testdir.tar.gz. It grabs default
parameters for executing a game/option from defaultenv and then
sources a per-option games/OPTION_NAME.conf file, if it
exists, which can override default XMAME command-line options on a per-game
basis and even override the whole command-line (so as, for example, to
do something completely different from running XMAME -- see the
games/HELP.conf example).
To do
This release is a quick 'getting it out there' release, and at the
source level currently shows its
roots as an evening's hack. These things are needing attention as
time permits:
- physical grouping of options?
- Take a lot of the tweakable settings in flynn.c and make them:
- configurable in the Makefile, and/or
- configurable on the command-line, and/or
- auto-tuning
- Select and Unselect triggers for options
- readppm love
Feedback
Do let me know if Flynn is / was / will be of any interest.
adam@gimp.org / adam@foxbox.org / Adam D. Moss