-
Notifications
You must be signed in to change notification settings - Fork 0
A frontend for launching emulators and other programs using a gamepad
License
ToxicFrog/EmuFun
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Contents ======== 1. Overview 2. Requirements 3. Invocation 4. Usage 5. Game Library Structure 6. Configuration File Format 1. Overview =========== EmuFun is a frontend for gamepad control of computers, specifically for easily launching various programs and shutting down the system using the gamepad. As the name implies, it is primarily intended for launching emulators and similar programs, allowing a single computer connected to a TV to take the place of several physical gaming consoles. However, it can also be easily used for launching native games, non-game applications, or media players. EmuFun is game-agnostic; it doesn't actually know anything about different games or emulators, instead relying on user-provided configuration files to launch games and do any other tasks required (such as configuring gamepad->keyboard mappers for games that lack gamepad support). Sample configuration files for some common emulators, games, and tasks are included. Although primarily developed for (and only tested on) Linux, it should work on Windows and OSX as well with minimal changes. 2. Requirements =============== EmuFun is written in Lua, using the LOVE gaming library and LuaFileSystem filesystem access library. To run it, you will need the following: * EmuFun itself (either as a source tree or as a .love file) * LOVE 0.8.x (available from love2d.org) * LuaFileSystem (available from keplerproject.github.com/luafilesystem) If you are on Linux, both of these are likely available in your package manager. If you are on Windows, you will probably have to install the LuaFileSystem module (lfs.dll) into the same directory as love.exe - not the system-wide Lua install (if any) or the same location as the .love file. 3. Invocation ============= If you have EmuFun installed as a .love file, you can run it with: $ love /path/to/EmuFun.love If you have it installed as an unpacked directory, run it with: $ love /path/to/EmuFun In either case, it accepts an optional argument, the path to your game directory; for example: $ love EmuFun.love $HOME/Games If this is omitted, it will use the GAMEDIR environment variable; if that is unset, it will default to ./, the current working directory. Thus, either of these are equivalent to the above: $ env GAMEDIR="$HOME/Games" love EmuFun.love $ cd $HOME/Games && love EmuFun.love 4. Usage ======== When EmuFun starts up, it will present you with a calibration screen asking you to press buttons for the four directions, OK (used to enter directories and launch games), and Cancel (used to leave directories). It will do this each time it runs. Once calibration is complete, you will be presented with a list of games, and a system name at the top. Press Left or Right to change system; press Up or Down to scroll through the list of games. Press OK to launch a game or enter a directory; press Cancel to leave a directory you've previously entered. 5. Game Library Structure ========================= EmuFun expects a fairly simple structure in $GAMEDIR: each directory in $GAMEDIR is expected to correspond to a system or category, and everything inside those is either a game or a directory full of games. Dotfiles are hidden; anything ending in ".config" is also hidden. When loading a game, EmuFun first looks for a game-specific config file, with the same name and location as the game but with a ".config" extension. If it doesn't find one, it then looks for a file named ".config" in the same directory as the game, then for a ".config" in the parent directory, and so forth until it finishes by looking for $GAMEDIR/.config. A sample game library might look something like this (comments prefixed with #): $GAMEDIR/ SNES/ .config # configuration file common to all SNES games Super Aleste # Super Aleste ROM image Super Metroid # Super Metroid ditto Lemmings # SNES version of Lemmings needs special options Lemmings.config # ...so it gets its own .config file Linux/ .config # this probably just runs the game of the same # name in /usr/bin or whatever Tux Racer StepMania xKobo PlayStation/ .config # probably launches PCSX or similar Megaman X4 # actually an ISO image Final Fantasy VII/ # keeps the discs organized .config # custom emulator config for FF7 Disc 1 Disc 2 Disc 3 6. Configuration File Format ============================ The examples/ directory in the EmuFun source tree contains a number of sample configuration files for common programs and tasks (but no games, of course). The actual format of the configuration files depends on the loader defined (in emufun.cfg). However, by default, they are simple Bash scripts. When the corresponding game is chosen, the configuration file is executed by bash with the following environment variables defined: * GAMEDIR - the path to the game library, originally passed to EmuFun * GAME - the path to the game file (eg, $GAMEDIR/SNES/Super Metroid) * CONFIG - the path to the configuration file (eg, $GAMEDIR/SNES/.config) A typical configuration file simply launches a system-appropriate emulator passing it $GAME as the file to execute. :wrap=soft:
About
A frontend for launching emulators and other programs using a gamepad
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published