Game Engines and Launch Files - RetroGFX/UnofficialOS GitHub Wiki

Game Engine Launch Files

Game engines such as id Tech Software, GZDoom, Pico8, and ScummVM use launch files for launching the game with the specified files and mods. Most are configurable to enable different configurations of game files and mods per game.

Note: the extensions for game engine launch files are case-sensitive, so make sure the launch extensions (.doom, .scummvm, etc) are lower case, and make sure any references to game files match the case of the game files exactly (e.g. if the game file is DOOM.WAD then trying to launch it as doom.wad won't work).

id Tech Software

This covers id Software games, namely Doom, Quake and Wolfenstein 3D engines.

Game folders

Running the scrpt in Tools -> Scan id Tech Files before adding game files will create the following folder structure:

/storage/roms/idtech
├── doom
│   ├── doom
│   ├── doom2
│   ├── doomu
│   ├── plutonia
│   ├── sigil
│   ├── sigil2
│   ├── tnt
├── doom3
│   ├── base
│   ├── d3xp
├── quake
│   ├── dopa
│   ├── hipnotic
│   ├── id1
│   └── rogue
│   ├── malice
├── quake2
│   ├── baseq2
│   ├── rogue
│   ├── xatrix
│   └── zaero
├── quake3
│   ├── baseq3
└── wolf3d
    ├── sod
    └── wolf3d

Adding Game Files

Following the above folder structure, these are the required files and naming for the scan script to populate. Be aware these aren't always the only files required for the emulator/core to run the game.

Game Folder Game Files
Doom doom doom.wad
Doom 2 doom2 doom2.wad
The Ultimate Doom doomu doomu.wad
The Plutonia Experiment plutonia plutonia.wad
SIGIL sigil sigil.wad
SIGIL II sigil2 sigil2.wad
TNT Evilution tnt tnt.wad
Doom 3 base pak000.pk4
Doom 3 - Resurrection of Evil d3xp pak000.pk4
Quake id1 pak0.pak
Quake - Scourge of Armagon hipnotic pak0.pak
Quake - Dissolution of Eternity rogue pak0.pak
Quake - Dimension of the Past dopa pak0.pak
Malice malice pak0.pak
Quake 2 baseq2 pak0.pak
Quake 2 - The Reckoning xatrix pak0.pak
Quake 2 - Ground Zero rogue pak0.pak
Quake 2 - Zaero zaero pak0.pak
Quake 3 baseq3 pak0.pk3
Wolfenstein 3D wolf3d vswap.wl6
Wolfenstein 3D - Spear of Destiny sod vswap.sod

Launcher scripts

Run Tools -> Scan id Tech Files to create launch scripts, and EmulationStation should restart automatically and populate the gamelists. If you don't see the id Tech system in ES, then rescan gamelists, restart EmulationStation, or reboot the unit. This can be re-run at any time should you add additional game files.

Emulators/Cores

Name Documentation
prboom docs.libretro.com/library/prboom
boom3
boom3_xp
docs.libretro.com/library/boom3
tyrquake docs.libretro.com/library/tyrquake
vitaquake2
vitaquake2-xatrix
vitaquake2-rogue
vitaquake2-zaero
None available
ecwolf docs.libretro.com/library/ecwolf

NOTE

Doom3 and Quake3 are only for x86-64 based devices.

Doom ShareWare will be preinstalled after running Tools -> Scan id Tech Files.

GZDoom

GZDoom will detect the analog stick automatically, this makes menus navigatable. UnofficialOS does not provide any controls mapping for GZDoom, as there is no obvious default mapping as with console emulators. Users have to map their own preferred controls.

.doom files

These files must be created for each WAD that you want to load with GZDoom. The file contains IWAD variables and optional MOD variables. Multiple IWAD and MOD variables can be used in the same file to load multiple wads, mods and packages. Therefore, multiple .doom files can be created for the same WAD for each configuration of the game.

It is recommended to store WAD files in a iwads subfolder and MODs in a mods subfolder and include the full path to each file in the .doom file.

/roms/doom/
    ├─ doom2.doom
    ├─ heretic-mod.doom
    ├─ iwads/
    │   ├─ doom2.wad
    │   ├─ heretic.wad
    │   └─ IWMPP_Heretic.wad
    └─ mods/
        ├─ precise-crosshair-v1.4.1.pk3
        └─ target-spy-v2.0.1.pk3

Example: Doom 2 (no mods)

Example: /storage/roms/doom/doom2.doom contains

IWAD=/storage/roms/doom/iwads/doom2.wad

to load vanilla Doom 2

Note: don't leave any space between GRP or PATH and = and enclose filenames containing spaces with "quotes"

Example Heretic (with mods)

Example: /storage/roms/doom/heretic-mod.doom contains

IWAD=/storage/roms/doom/iwads/heretic.wad
IWAD=/storage/roms/doom/iwads/IWMPP_Heretic.wad
MOD=/storage/roms/doom/mods/precise-crosshair-v1.4.1.pk3
MOD=/storage/roms/doom/mods/target-spy-v2.0.1.pk3
-- end --

to load Heretic with additional patches and mods.

Note: add -- end -- to the end of the file when it contains multiple lines

Pico-8

Option 1: Running Pico-8 through the native engine

Pico-8 games are best played with the default emulator as it supports all native features without any limitations. You need to purchase it from Lexaloffle and we do recommend that you buy a copy if you can. Its an awesome piece of software and it also comes with the tools to make your own games.

Setup

Once you have purchased a license; the files you need will depend on the device you are using. These instructions will walk through how to set things up to work on all of our supported devices.

  • Go to Lexaloffle's download page
  • From that page download the Linux 64-bit zip file and the Raspberry Pi zip file
  • From the Linux 64-bit zip file...
    • Create a directory in roms/pico-8 called x86_64
    • Upload the pico8_dyn and pico8.dat from the Linux 64-bit zip to this directory (you do not need any other files)
  • From the Raspberry Pi zip file...
    • Create a directory in roms/pico-8 called aarch64
    • Upload the pico8_64 and pico8.dat from the Raspberry Pi zip to this directory (you do not need any other files)
/roms/pico-8/
    ├─ x86_64/
    │   ├─ pico8_dyn
    │   ├─ pico8.dat
    ├─ aarch64/
    │   ├─ pico8_64
    │   ├─ pico8.dat
    └─ Splore.png

Playing a game

Once the above is set up is you have 2 options for playing games through Pico-8's native engine:

  1. Using Splore
    • Splore is awesome as it allows you to browse and play the entire library of user created games with an internet connection.
    • To use this method simply launch Splore from the gamelist.
    • Note that you will need an internet connection to browse the pico-8 BBS (If you don't have an internet connection you can still use it to launch games you have downloaded previously)
    • To exit a game and return to EmulationStation you can either (1) press the ++"START"++ button while highlighting a game in Splore then selecting Options > Shutdown or (2) Press ++"L1"++ + ++"SELECT"++ + ++"START"++
  2. Through .png or .p8 files added directly roms/pico-8 or roms/pico-8/carts
    • Browse the list of games (aka. "Carts") on Lexaloffle's website
    • Download the .png or .p8 file for any game you are interested in playing and upload it to either roms/pico-8 or roms/pico-8/carts
      • roms/pico-8 is recommended if you want to have your games show up directly when you open the Pico-8 system in ES
      • roms/pico-8/carts is recommended if you plan to use Splore directly and also want to see your downloaded carts in the Splore interface.
    • Refresh EmulationStation by pressing ++"START"++ to open the Main Menu then select Game Settings > Update Gamelists.
    • You should now be able to launch the game by selecting it from the gamelist.
    • To exit a game and return to EmulationStation you can either (1) press the ++"START"++ button then selecting Options > Shutdown or (2) Press ++"L1"++ + ++"SELECT"++ + ++"START"++

Option 2: Running through RetroArch Fake-08

!!! warning "Fake-08 does not support all the native features of Pico-8 so its not guaranteed that every game will work with it."

  • Set the default emulator for Pico-8 to Fake-08
  • Browse the list of games (aka. "Carts") on Lexaloffle's website
  • Download the .png file for any game you are interested in playing and upload it to roms/pico-8
  • Refresh EmulationStation by pressing ++"START"++ to open the Main Menu then select Game Settings > Update Gamelists.
  • You should now be able to launch the game by selecting it from the gamelist.

SCUMMVM

.scummvm or .svm files

These files are created by _Scan ScummVM Games.sh script in /storage/.config/scummvm folder (which is also displayed in EmuStation). The script scans for game folders and generates the relevant .scummvm files to launch those games. The files are stored in /storage/.config/scummvm/games.

.scummvm files are named using the common name of the game and the Game Short Name in brackets (e.g. Beneath a Steel Sky (sky).scummvm).

.scummvm files contain a single line in the form:

  • --path= variable and the path to the folder containing the game, followed by
  • Game Short Name

Example: /storage/.config/scummvm/games/Beneath a Steel Sky (sky).scummvm contains

--path="/storage/roms/scummvm/Beneath a Steel Sky (CD VGA)" sky

Note: enclose filenames containing spaces with "quotes"

Note: .scummvm and .svm files are identical and interchangeable

Note: the .scummvm files are NOT stored in /storage/roms/scummvm and any .scummvm files stored there will not be displayed by EmuStation. EmuStation only displays .scummvm files that are in /storage/.config/scummvm/games.

Note: to display metadata and media within EmuStation, put gamelist.xml in /storage/.config/scummvm/games and media into relevant subfolders (e.g. /storage/.config/scummvm/games/media folder with boxart, images and videos subfolders)

⚠️ **GitHub.com Fallback** ⚠️