--- usage: ---
emulationstation-wine <action> <rom> [-cfg path/to/sourceable/wine/envconfig] [-- args for <effective executable>, also works for installation]
A re-implementation of batocera-wine which tries to keep the same API, in addition to new capabilities.
Flags that only exist for backwards-compatibility: 'play', '.w'tgz, '.w'squashfs, '.pc'
* <action>: one of (run|play, install, import, config, tricks, explore, patch, cmd, mkAutorun)
* run <rom>: path/to/rom[.wine|.pc|.(w)squashfs|.exe|.(w)tgz] - run directly
* install <rom>: path/to/rom[.exe|.(w)tgz|.msi|.iso] - create prefix in library and guide through installation setup
* import <rom>: path/to/rom.(w)tgz or directory - create prefix in library and copy content from given source. For zipped games without installers.
* <effective executable>: value of ${CMD}, either provided by autorun.cmd in game folder or passed in config file.
* <-cfg file>: a file that must be sourceable by bash containing wine/proton env variables.
Can also be used to override values in autorun.cmd (if existing)
when no -cfg is given, this script will request config from emulatorlauncher to assure necessary args are set up correctly
(Directly retrieved from the executable’s help function)
wrapper script for handling of wine, reading batocera config files and handling all game file types
Dealing with wine for a (potentially) shared game library introduces 2 issues that have to be solved.
emulationstation-wine will work around both limitations with the following approach:
libraryPrefix
and a userPrefix
.libraryPrefix
: The game installations themselves, placed under the corresponding system’s rom directory.userPrefix
: These are based on library prefixes, but use fuse and overlay mounts to create user-specific directory structures when starting a game.While the game runs, all of its writes go into the overlay. This overlay will be decoupled when it stops. With that, it becomes possible to update/modify the library prefix with invalidating user saves in the overlay.
This approach has its limits and can fail when a file exists in both the library and the save and is modified differently in both.
This function is responsible for configuring an action that targets a library prefix
This normally only means to set WINEPREFIX
to the game’s directory under ROMS_ROOT_DIR/system/...
.
emulationstation-wine install
will be isolated from the linux user’s home directory.
This is an important measure the handle correct redirection and capturing of save games.
Please do not directory create a library prefix manually without this step.This is an internal function that can not be called from the outside. Mentioned for documentation reasons here
This function sets up user prefixes from the given library rom prefix. As mentioned above, these are overlay-fs constructs (going from lowest to highest):
After the game ended, the overlay fs will be deconstructed and the save directory converted back into a ‘clean’ directory structure without overlay fs meta informations. This makes it possible to allow modifications to the library prefix again.
This is an internal function that can not be called from the outside. Mentioned for documentation reasons here
The following actions can be passed to emulationstation-wine.
All of these functions take the same argument line format:
emulationstation-wine <function-name> <path/to/rom> [-cfg path/to/sourceable/wine/envconfig] [-- args for real executable]"
-cfg
is optional and usually an internal implementation detail--
and anything following it is optional and will be passed to the real *.exe
that will be launched at the endHowever, these functions run against different targets (=WINEPREFIX), as explained in the section about prefixes.
The main function: Start a game.
Targes user prefix, derived from the given library rom path.
Install a game. Asks a few questions to guide and improve automatic installation.
This is a guided utility that can be used to create autorun.cmd
files for wine applications.
Will automatically be started at the end of a new installation, but can also be triggered manually later on.
Targets library prefixes.
If the autorun.cmd
file shall be different for a user, it has to be patched manually.
Note: When changed manually for a user, changes in the file within the library prefix will NOT propagate to that user anymore.
Generated with shdoc