version 1.4, 2019/09/24 04:33:36 |
version 1.49, 2020/10/07 20:31:26 |
|
|
.Os |
.Os |
.Sh NAME |
.Sh NAME |
.Nm fnaify |
.Nm fnaify |
.Nd script to get FNA-based games ready to run on OpenBSD |
.Nd run FNA/XNA games on OpenBSD |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm |
.Nm |
.Op Fl i | y |
.Op Fl i | y |
.Op Fl hv |
.Op Fl hsv |
.Op Fl d Ar depdir |
.Op Fl c Ar configfile |
|
.Op Fl D Ar depdir |
|
.Op Fl d Ar gamedir |
|
.Op Fl f Ar frameworkfile | Fl F Ar frameworkversion |
.Op Fl m Ar monopath |
.Op Fl m Ar monopath |
.Op Ar gamedir |
.Op Ar userflags |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
.Nm |
.Nm |
sets up games based on the FNA engine to operate with OpenBSD-native |
runs games based on the FNA engine with OpenBSD-native |
libraries and its |
libraries and its |
.Xr mono 1 |
.Xr mono 1 |
runtime. |
runtime. |
|
|
has been extended to attempt configuring XNA games as well. |
has been extended to attempt configuring XNA games as well. |
.Nm |
.Nm |
can be run in 3 basic modes regarding the addition of missing libraries: |
can be run in 3 basic modes regarding the addition of missing libraries: |
restrictive, interactive, and permissive. |
restrictive |
|
.Po |
|
default |
|
.Pc |
|
, interactive, and permissive. |
.Pp |
.Pp |
|
As of version 3.0, |
|
.Nm |
|
unifies both setup and launch of supported games in one command. |
|
.Pp |
|
All games require additional libraries from ports, like SDL2. Some of |
|
them can be found in the fnaify-extralibs package, like libatomstb or |
|
libfmod_SDL. |
|
.Pp |
The arguments are as follows: |
The arguments are as follows: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl i | y |
.It Fl i | y |
|
|
is specified, |
is specified, |
.Nm |
.Nm |
runs in restrictive mode, that is no drop-in DLLs will be installed. |
runs in restrictive mode, that is no drop-in DLLs will be installed. |
.It Fl d Ar depdir |
.It Fl c Ar configfile |
|
Optional. Use |
|
.Ar configfile |
|
for the configuration of |
|
.Xr mono 1 . |
|
This sets up dllmap/dllentry settings to use the correct libraries. See |
|
.Xr mono-config 5 |
|
for details. If this option is omitted, |
|
.Nm |
|
looks first for |
|
.Pa ~/.config/fnaify/fnaify.dllmap.config |
|
and then for |
|
.Pa /usr/local/share/fnaify/fnaify.dllmap.config . |
|
If neither one is found, |
|
.Nm |
|
creates |
|
.Pa ~/.config/fnaify/fnaify.dllmap.config |
|
with default settings. |
|
.It Fl D Ar depdir |
Add |
Add |
.Ar depdir |
.Ar depdir |
to the directories to search for native library dependencies. |
to the directories to search for native library dependencies. |
|
|
.Em before |
.Em before |
the default locations |
the default locations |
.Pq Pa /usr/local/lib No etc. . |
.Pq Pa /usr/local/lib No etc. . |
|
.It Fl d Ar gamedir |
|
Path to the game's directory |
|
.Pq defaults to the current working directory . |
|
.It Fl F Ar frameworkversion |
|
Choose a specific framework version to use. |
|
.It Fl f Ar frameworkfile |
|
Framework file to use. Typically |
|
.Pa FNA.dll |
|
or |
|
.Pa MonoGame.Framework.dll . |
|
By default will automatically identify the bundled file in the |
|
game's directory. |
|
.It Fl h |
|
Prints help text. |
.It Fl m Ar monopath |
.It Fl m Ar monopath |
Add |
Add |
.Ar monopath |
.Ar monopath |
to the directories the |
to the directories the |
.Xr mono 1 |
.Xr mono 1 |
runtime will search for DLLs. |
runtime will search for DLLs. |
.It Fl h |
.It Fl s |
Prints help text. |
Force (re-)running setup. |
|
.It Fl V |
|
Display version of |
|
.Nm . |
.It Fl v |
.It Fl v |
Verbose mode. |
Verbose mode. |
.It Ar gamedir |
.It Ar userflags |
Optional. |
Optional. |
Path to the game directory to process. |
Flags that are passed to the game as arguments |
If not specified, the current working directory will be used. |
|
.El |
.El |
.Sh SUPPORTED GAMES |
.Sh SUPPORTED GAMES |
.Bl -item -compact |
.Bl -item -compact |
.It |
.It |
The Adventures of Shuggy |
The Adventures of Shuggy |
.It |
.It |
|
Akane the Kunoichi |
|
.It |
|
Amazing Princess Sarah |
|
.It |
Apotheon |
Apotheon |
.It |
.It |
|
Apple Jack 1&2 |
|
.It |
|
Atom Zombie Smasher |
|
.It |
|
A Virus Named TOM [!] |
|
.It |
|
Before the Echo [!] |
|
.It |
|
Bird Assassin |
|
.It |
Bleed |
Bleed |
.It |
.It |
Bleed 2 |
Bleed 2 |
|
|
.It |
.It |
Brushwood Buddies |
Brushwood Buddies |
.It |
.It |
|
Camera Obscura |
|
.It |
Capsized |
Capsized |
.It |
.It |
|
Celeste (no audio) |
|
.It |
Chaos Heart |
Chaos Heart |
.It |
.It |
Charlie Murder |
Charlie Murder |
|
|
.It |
.It |
Dad Quest |
Dad Quest |
.It |
.It |
Dead Pixels II |
Dead Pixels [!] |
.It |
.It |
|
Dead Pixels II [!] |
|
.It |
The Dishwasher: Vampire Smile |
The Dishwasher: Vampire Smile |
.It |
.It |
|
Draw a Stickman: EPIC |
|
.It |
Dust: An Elysian Tail |
Dust: An Elysian Tail |
.It |
.It |
|
Eagle Island |
|
.It |
|
Eliza |
|
.It |
Escape Goat |
Escape Goat |
.It |
.It |
Escape Goat 2 |
Escape Goat 2 |
.It |
.It |
|
EXAPUNKS |
|
.It |
FEZ |
FEZ |
.It |
.It |
Fist Puncher |
Fist Puncher |
|
|
.It |
.It |
Gateways |
Gateways |
.It |
.It |
|
Grand Class Melee 2 [!] |
|
.It |
Growing Pains |
Growing Pains |
.It |
.It |
HackNet |
HackNet |
.It |
.It |
|
Hidden in Plain Sight |
|
.It |
Hive |
Hive |
.It |
.It |
Hyphen |
Hyphen |
|
|
.It |
.It |
LaserCat |
LaserCat |
.It |
.It |
|
Little Racers STREET |
|
.It |
Mercenary Kings |
Mercenary Kings |
.It |
.It |
Mount Your Friends |
MidBoss |
.It |
.It |
|
Molek-Syntez |
|
.It |
|
Mount Your Friends [!] |
|
.It |
|
NeuroVoider |
|
.It |
Ninja Warrior |
Ninja Warrior |
.It |
.It |
One Finger Death Punch |
One Finger Death Punch |
.It |
.It |
|
Opus Magnum |
|
.It |
Overdriven Reloaded |
Overdriven Reloaded |
.It |
.It |
Owlboy |
Owlboy |
|
|
.It |
.It |
Penny Arcade's On the Rain-Slick Precipice of Darkness 4 |
Penny Arcade's On the Rain-Slick Precipice of Darkness 4 |
.It |
.It |
|
Phoenix Force |
|
.It |
|
PlanetFriend |
|
.It |
Press X to Not Die |
Press X to Not Die |
.It |
.It |
Rex Rocket |
Rex Rocket |
.It |
.It |
Rogue Legacy |
Rogue Legacy |
.It |
.It |
|
Ruggnar |
|
.It |
Salt and Sanctuary |
Salt and Sanctuary |
.It |
.It |
|
Session Seven |
|
.It |
|
Shenzhen I/O |
|
.It |
Shipwreck |
Shipwreck |
.It |
.It |
|
Signs of Life |
|
.It |
Skulls of the Shogun |
Skulls of the Shogun |
.It |
.It |
Soulcaster 1 & 2 |
Soulcaster 1 & 2 |
.It |
.It |
|
SpaceChem [!] |
|
.It |
SpeedRunners |
SpeedRunners |
.It |
.It |
Stardew Valley |
Stardew Valley |
.It |
.It |
Sumico |
Sumico |
.It |
.It |
Super Amazing Wagon Adventure |
Super Amazing Wagon Adventure [!] |
.It |
.It |
Super Blood Hockey |
Super Blood Hockey |
.It |
.It |
Super Rad Raygun |
Super Rad Raygun |
.It |
.It |
Sword of the Stars: The Pit |
Sword of the Stars: The Pit [!] |
.It |
.It |
|
Terraria |
|
.It |
Timespinner |
Timespinner |
.It |
.It |
TowerFall: Ascension |
TowerFall: Ascension |
.It |
.It |
|
Ultra Hat Dimension |
|
.It |
Unexplored |
Unexplored |
.It |
.It |
Unholy Heights (no audio) |
Unholy Heights (no audio) |
.It |
.It |
The Useful Dead |
The Useful Dead |
.It |
.It |
|
Weapon of Choice [!] |
|
.It |
Wizorb |
Wizorb |
.It |
.It |
Wyv and Keep |
Wyv and Keep |
.El |
.El |
.Sh FILES |
.Sh FILES |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
|
.It Pa /usr/local/share/fnaify/fnaify.dllmap.config |
|
Default configuration file to map DLLs to native libraries. |
.It Pa ~/.config/fnaify/fnaify.dllmap.config |
.It Pa ~/.config/fnaify/fnaify.dllmap.config |
Configuration file to map DLLs to native libraries, based on OpenBSD |
User directory configuration file. Takes precedence if it exists. |
library naming. |
Make sure to keep it up-to-date! |
.El |
.El |
.Sh EXIT STATUS |
.Sh EXIT STATUS |
.Nm |
.Nm |
returns 1 if an error occurred with the arguments of files provided, |
returns 1 if an error occurred, otherwise 0. |
otherwise 0. |
|
.Sh EXAMPLES |
.Sh EXAMPLES |
Run in permissive mode, suitable to set up most supported games |
Run in permissive mode, suitable to set up most supported games |
automatically. |
automatically. |
.Pp |
.Pp |
.Dl $ fnaify -y path/to/game/directory |
.Dl $ fnaify -y -d path/to/game/directory |
.Pp |
.Pp |
Run in interactive mode. |
Run in interactive mode. |
.Nm |
.Nm |
will prompt the user if any additional DLLs are recommended, or if a |
will prompt the user if any additional DLLs are recommended, or if a |
file needs to be selected for the launch script. |
file needs to be selected for the launch script. |
.Pp |
.Pp |
.Dl $ fnaify -i path/to/game/directory |
.Dl $ fnaify -i |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mono 1 |
.Xr mono 1 , |
|
.Xr mono-config 5 |
.Sh HISTORY |
.Sh HISTORY |
The |
The |
.Nm |
.Nm |
utility was originally created in December 2017 by |
utility was originally created in December 2017 by |
.An Thomas Frohwein Aq Mt thfr@openbsd.org |
.An Thomas Frohwein Aq Mt thfr@openbsd.org . |
.Sh RELEASE HISTORY |
.Sh RELEASE HISTORY |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
|
.It 3.0 |
|
Stop creating launch script. Instead use fnaify for both |
|
setup and launch. |
|
Support for several Zachtronics games. Add libstubborn use to dllmap. |
|
Symlinking for MonoGame, e.g. NeuroVoider. |
|
Preferential use of installed FNA.dll over bundled one. |
|
.It 2.2 |
|
Fix config for mono 6. Add support for libcestub. |
|
.It 2.1 |
|
Support for additional XNA games. Add MONO_FORCE_COMPAT quirk. |
.It 2.0 |
.It 2.0 |
Add support for XNA games. |
Add support for XNA games. |
Introduce modes |
Introduce interactivity flags |
.Fl i | y |
.Fl i | y |
to facilitate adding in needed assemblies/libraries. |
to facilitate adding in needed assemblies/libraries. |
.It 1.3 |
.It 1.3 |
|
|
.Sh AUTHORS |
.Sh AUTHORS |
.An -nosplit |
.An -nosplit |
.An Thomas Frohwein Aq Mt thfr@openbsd.org |
.An Thomas Frohwein Aq Mt thfr@openbsd.org |
|
.An Mariusz Zaborski |