RIGG(1) - General Commands Manual
rigg - run independent games
rigg
[-v]
[-u strict | permissive | none]
engine
file
[game arguments]
rigg
[-hl]
rigg serves as a thin, OpenBSD-adapted runtime wrapper for independent games based on certain engines (see engine) . rigg handles visibility of files by using unveil(2) to hide those that conflict with execution on OpenBSD. This solves a common problem with commercial games based on open-source frameworks like FNA, LibGDX, or HashLink. In addition, rigg also enforces a minimum-necessary filesystem view by default via unveil(2). Some basic engine configuration for OpenBSD like dllmap for mono(1) is included. More complex configuration like filesystem changes or game-specific environment variables are out of scope.
The arguments are as follows:
engine
Specify the engine to use. Can select from: mono, hl.
file
The file to launch with the engine, e.g. Game.exe (mono) or hlboot.dat (hl).
-h
Show usage information.
-l
List the binaries of supported engines.
-u
Set unveil mode. strict is the default and reduces read/write/create/execute permissions to a limited set of paths and hides game files that interfere with execution on OpenBSD. permissive only hides game files when needed for engine execution, but otherwise doesn't restrict filesystem access. none disables all uses of unveil and is generally equivalent to running the engine's own binary.
-v
Enable verbose output.
The rigg utility exits 0 on success, and >0 if an error occurs. After successful launch of the engine, the engine's exit status is returned. See engine-specific documentation.
Run Mono game Game.exe with a game-specific flag -windowed:
$ rigg mono Game.exe -windowed
Run HashLink game hlboot.dat with verbose output:
$ rigg -v hl hlboot.dat
mono(1), unveil(2)
Thomas Frohwein <[email protected]>
The selection of directories that are unveil(2)ed may not cover all potential use cases. Some games fail to launch or have bugs in strict mode if they try to stat(2) /home or other hidden directories.
OpenBSD 7.5 - April 28, 2024