=================================================================== RCS file: /anoncvsroot/anoncvs/cvs/projects/fnaify/fnaify.1,v retrieving revision 1.1 retrieving revision 1.40 diff -u -r1.1 -r1.40 --- projects/fnaify/fnaify.1 2019/09/21 18:10:01 1.1 +++ projects/fnaify/fnaify.1 2020/08/08 04:29:54 1.40 @@ -1,28 +1,35 @@ -.Dd $Mdocdate: September 21 2019 $ +.Dd $Mdocdate: August 8 2020 $ .Dt FNAIFY 1 .Os .Sh NAME .Nm fnaify -.Nd script to get FNA-based games ready to run on OpenBSD +.Nd run FNA/XNA games on OpenBSD .Sh SYNOPSIS .Nm .Op Fl i | y .Op Fl hv +.Op Fl c Ar configfile .Op Fl d Ar depdir .Op Fl m Ar monopath .Op Ar gamedir .Sh DESCRIPTION .Nm sets up games based on the FNA engine to operate with OpenBSD-native -libraries and its mono(1) runtime. +libraries and its +.Xr mono 1 +runtime. .Pp As of version 2.0, .Nm has been extended to attempt configuring XNA games as well. .Nm -can be run in 3 basic modes regarding the addition of missing libraries -- restrictive, interactive, and permissive. +can be run in 3 basic modes regarding the addition of missing libraries: +restrictive, interactive, and permissive. .Pp +All games require additional libraries from ports, like SDL2. Some of +them can be found in fnaify-extralibs package, like libatomstb or +libfmod_SDL. +.Pp The arguments are as follows: .Bl -tag -width Ds .It Fl i | y @@ -32,20 +39,21 @@ be addressed with drop-in DLL replacements, or where an option needs to be selected. With -.Fl i -, +.Fl i , .Nm runs in interactive mode, meaning the user will be prompted in every case. With -.Fl y -, +.Fl y , .Nm -runs in permissive mode ( +runs in permissive mode +.Po .Fl y for -.Qq yes -to all). This means that any suggested drop-in DLLs will be installed, +.Dq yes +to all +.Pc . +This means that any suggested drop-in DLLs will be installed, and if different options are possible (like picking among several .exe files for the launch script), the first one will be selected automatically. @@ -56,147 +64,247 @@ is specified, .Nm runs in restrictive mode, that is no drop-in DLLs will be installed. +.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 .Ar depdir -to the directories to search for native library dependencies. A -directory specified this way will be searched +to the directories to search for native library dependencies. +A directory specified this way will be searched .Em before -the default locations ( -.Pa /usr/local/lib -etc.). +the default locations +.Pq Pa /usr/local/lib No etc. . .It Fl m Ar monopath Add .Ar monopath -to the directories the mono(1) runtime will search for DLLs. +to the directories the +.Xr mono 1 +runtime will search for DLLs. .It Fl h Prints help text. .It Fl v Verbose mode. .It Ar gamedir -Optional. Path to the game directory to process. If not specified, the current working directory will be used. +Optional. +Path to the game directory to process. +If not specified, the current working directory will be used. .El .Sh SUPPORTED GAMES +.Bl -item -compact +.It The Adventures of Shuggy -.br +.It +Akane the Kunoichi +.It +Amazing Princess Sarah +.It Apotheon -.br +.It +Apple Jack 1&2 +.It +Atom Zombie Smasher +.It +A Virus Named TOM [!] +.It +Before the Echo [!] +.It +Bird Assassin +.It Bleed -.br +.It Bleed 2 -.br +.It Breath of Death VII -.br +.It Brushwood Buddies -.br +.It +Camera Obscura +.It Capsized -.br +.It +Celeste (no audio) +.It Chaos Heart -.br +.It Charlie Murder -.br +.It Chasm -.br +.It CometStriker -.br +.It Cryptark -.br +.It Cthulhu Saves the World -.br +.It Curse of the Crescent Isle DX -.br +.It Dad Quest -.br -Dead Pixels II -.br +.It +Dead Pixels [!] +.It +Dead Pixels II [!] +.It The Dishwasher: Vampire Smile -.br +.It +Draw a Stickman: EPIC +.It Dust: An Elysian Tail -.br +.It +Eagle Island +.It +Eliza +.It Escape Goat -.br +.It Escape Goat 2 -.br +.It +EXAPUNKS +.It +Explosionade [!] +.It FEZ -.br +.It Fist Puncher -.br +.It Flinthook -.br +.It Flotilla -.br +.It +Game Type [!] +.It Gateways -.br +.It +Grand Class Melee 2 [!] +.It Growing Pains -.br +.It HackNet -.br -Hive -.br +.It +Hidden in Plain Sight +.It +Hive [!] - sometimes doesn't start up +.It Hyphen -.br +.It Jon Shafer's At the Gates -.br +.It +Khet 2.0 +.It LaserCat -.br +.It +Little Racers STREET +.It Mercenary Kings -.br +.It +MidBoss +.It +Molek-Syntez +.It +Mount Your Friends [!] +.It +NeuroVoider +.It Ninja Warrior -.br +.It One Finger Death Punch -.br +.It +Opus Magnum +.It Overdriven Reloaded -.br +.It Owlboy -.br +.It Paladin -.br +.It Penny Arcade's On the Rain-Slick Precipice of Darkness 3 -.br +.It Penny Arcade's On the Rain-Slick Precipice of Darkness 4 -.br +.It +Phoenix Force +.It +PlanetFriend +.It Press X to Not Die -.br +.It Rex Rocket -.br +.It Rogue Legacy -.br +.It +Ruggnar +.It Salt and Sanctuary -.br +.It +Session Seven +.It +Shenzhen I/O +.It Shipwreck -.br +.It +Signs of Life +.It Skulls of the Shogun -.br +.It Soulcaster 1 & 2 -.br +.It +SpaceChem [!] +.It SpeedRunners -.br +.It Stardew Valley -.br +.It Sumico -.br -Super Amazing Wagon Adventure -.br +.It +Super Amazing Wagon Adventure [!] +.It +Super Blood Hockey +.It Super Rad Raygun -.br +.It +Sword of the Stars: The Pit [!] +.It +Terraria +.It Timespinner -.br +.It TowerFall: Ascension -.br +.It +Ultra Hat Dimension +.It Unexplored -.br +.It Unholy Heights (no audio) -.br +.It The Useful Dead -.br +.It +Weapon of Choice [!] +.It Wizorb -.br +.It Wyv and Keep +.El .Sh FILES .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 -Configuration file to map DLLs to native libraries, based on OpenBSD -library naming. +User directory configuration file. Takes precedence if it exists. +Make sure to keep it up-to-date! .El .Sh EXIT STATUS .Nm @@ -215,12 +323,42 @@ .Pp .Dl $ fnaify -i path/to/game/directory .Sh SEE ALSO -.Xr mono 1 +.Xr mono 1 , +.Xr mono-config 5 .Sh HISTORY The .Nm 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 +.Bl -tag -width Ds +.It 3.0 +Enable modes (\fIsetup\fP, \fIrun\fP). +Support for several Zachtronics games. Add libstubborn use to dllmap. +Symlinking for MonoGame, e.g. NeuroVoider. +.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 +Add support for XNA games. +Introduce interactivity flags +.Fl i | y +to facilitate adding in needed assemblies/libraries. +.It 1.3 +Add prompt to download and replace +.Pa FNA.dll +if incompatible version is found. +Detect steamstubs directory and use Steamworks stubs if present. +.It 1.2 +FreeBSD portability fixes, account for more special cases (MidBoss, +Adventures of Shuggy, Atom Zombie Smasher), add directory path to plug +in additional libraries. +.It 1.1 +Fix bug selecting .exe by separating input variables. +.It 1.0 +Initial release. +.El .Sh AUTHORS .An -nosplit .An Thomas Frohwein Aq Mt thfr@openbsd.org