Annotation of projects/fnaify/fnaify.1, Revision 1.17
1.17 ! thfr 1: .Dd $Mdocdate: June 8 2020 $
1.1 thfr 2: .Dt FNAIFY 1
3: .Os
4: .Sh NAME
5: .Nm fnaify
1.6 thfr 6: .Nd run FNA/XNA games on OpenBSD
1.1 thfr 7: .Sh SYNOPSIS
8: .Nm
9: .Op Fl i | y
10: .Op Fl hv
1.7 thfr 11: .Op Fl c Ar configfile
1.1 thfr 12: .Op Fl d Ar depdir
13: .Op Fl m Ar monopath
14: .Op Ar gamedir
15: .Sh DESCRIPTION
16: .Nm
17: sets up games based on the FNA engine to operate with OpenBSD-native
1.3 thfr 18: libraries and its
19: .Xr mono 1
20: runtime.
1.1 thfr 21: .Pp
22: As of version 2.0,
23: .Nm
24: has been extended to attempt configuring XNA games as well.
25: .Nm
1.3 thfr 26: can be run in 3 basic modes regarding the addition of missing libraries:
27: restrictive, interactive, and permissive.
1.1 thfr 28: .Pp
29: The arguments are as follows:
30: .Bl -tag -width Ds
31: .It Fl i | y
32: The mode determines how
33: .Nm
34: handles situations where compatibility problems are identified that can
35: be addressed with drop-in DLL replacements, or where an option needs to
36: be selected.
37: With
1.3 thfr 38: .Fl i ,
1.1 thfr 39: .Nm
40: runs in interactive mode, meaning the user will be prompted in every
41: case.
42: With
1.3 thfr 43: .Fl y ,
1.1 thfr 44: .Nm
1.3 thfr 45: runs in permissive mode
46: .Po
1.1 thfr 47: .Fl y
48: for
1.3 thfr 49: .Dq yes
50: to all
51: .Pc .
52: This means that any suggested drop-in DLLs will be installed,
1.1 thfr 53: and if different options are possible (like picking among several .exe
54: files for the launch script), the first one will be selected
55: automatically.
56: If neither
57: .Fl i
58: nor
59: .Fl y
60: is specified,
61: .Nm
62: runs in restrictive mode, that is no drop-in DLLs will be installed.
1.7 thfr 63: .It Fl c Ar configfile
64: Optional. Use
65: .Ar configfile
66: for the configuration of
67: .Xr mono 1 .
68: This sets up dllmap/dllentry settings to use the correct libraries. See
69: .Xr mono-config 5
70: for details. If this option is omitted,
71: .Nm
72: looks first for
1.9 thfr 73: .Pa ~/.config/fnaify/fnaify.dllmap.config
1.7 thfr 74: and then for
1.9 thfr 75: .Pa /usr/local/share/fnaify/fnaify.dllmap.config .
1.7 thfr 76: If neither one is found,
77: .Nm
78: creates
79: .Pa ~/.config/fnaify/fnaify.dllmap.config
80: with default settings.
1.1 thfr 81: .It Fl d Ar depdir
82: Add
83: .Ar depdir
1.3 thfr 84: to the directories to search for native library dependencies.
85: A directory specified this way will be searched
1.1 thfr 86: .Em before
1.3 thfr 87: the default locations
88: .Pq Pa /usr/local/lib No etc. .
1.1 thfr 89: .It Fl m Ar monopath
90: Add
91: .Ar monopath
1.3 thfr 92: to the directories the
93: .Xr mono 1
94: runtime will search for DLLs.
1.1 thfr 95: .It Fl h
96: Prints help text.
97: .It Fl v
98: Verbose mode.
99: .It Ar gamedir
1.3 thfr 100: Optional.
101: Path to the game directory to process.
102: If not specified, the current working directory will be used.
1.1 thfr 103: .El
104: .Sh SUPPORTED GAMES
1.3 thfr 105: .Bl -item -compact
106: .It
1.1 thfr 107: The Adventures of Shuggy
1.3 thfr 108: .It
1.6 thfr 109: Akane the Kunoichi
110: .It
111: Amazing Princess Sarah
112: .It
1.1 thfr 113: Apotheon
1.3 thfr 114: .It
1.6 thfr 115: Apple Jack 1&2
116: .It
1.1 thfr 117: Bleed
1.3 thfr 118: .It
1.1 thfr 119: Bleed 2
1.3 thfr 120: .It
1.1 thfr 121: Breath of Death VII
1.3 thfr 122: .It
1.1 thfr 123: Brushwood Buddies
1.3 thfr 124: .It
1.1 thfr 125: Capsized
1.3 thfr 126: .It
1.1 thfr 127: Chaos Heart
1.3 thfr 128: .It
1.1 thfr 129: Charlie Murder
1.3 thfr 130: .It
1.1 thfr 131: Chasm
1.3 thfr 132: .It
1.1 thfr 133: CometStriker
1.3 thfr 134: .It
1.1 thfr 135: Cryptark
1.3 thfr 136: .It
1.1 thfr 137: Cthulhu Saves the World
1.3 thfr 138: .It
1.1 thfr 139: Curse of the Crescent Isle DX
1.3 thfr 140: .It
1.1 thfr 141: Dad Quest
1.3 thfr 142: .It
1.6 thfr 143: Dead Pixels
144: .It
1.1 thfr 145: Dead Pixels II
1.3 thfr 146: .It
1.1 thfr 147: The Dishwasher: Vampire Smile
1.3 thfr 148: .It
1.6 thfr 149: Draw a Stickman: EPIC
150: .It
1.1 thfr 151: Dust: An Elysian Tail
1.3 thfr 152: .It
1.15 thfr 153: Eliza
154: .It
1.1 thfr 155: Escape Goat
1.3 thfr 156: .It
1.1 thfr 157: Escape Goat 2
1.3 thfr 158: .It
1.15 thfr 159: EXAPUNKS
160: .It
1.6 thfr 161: Explosionade
162: .It
1.1 thfr 163: FEZ
1.3 thfr 164: .It
1.1 thfr 165: Fist Puncher
1.3 thfr 166: .It
1.1 thfr 167: Flinthook
1.3 thfr 168: .It
1.1 thfr 169: Flotilla
1.3 thfr 170: .It
1.6 thfr 171: Game Type
172: .It
1.1 thfr 173: Gateways
1.3 thfr 174: .It
1.6 thfr 175: Grand Class Melee 2
176: .It
1.1 thfr 177: Growing Pains
1.3 thfr 178: .It
1.1 thfr 179: HackNet
1.3 thfr 180: .It
1.1 thfr 181: Hive
1.3 thfr 182: .It
1.1 thfr 183: Hyphen
1.3 thfr 184: .It
1.1 thfr 185: Jon Shafer's At the Gates
1.3 thfr 186: .It
1.1 thfr 187: LaserCat
1.3 thfr 188: .It
1.13 thfr 189: Little Racers STREET
190: .It
1.1 thfr 191: Mercenary Kings
1.3 thfr 192: .It
1.15 thfr 193: Molek-Syntez
194: .It
1.4 thfr 195: Mount Your Friends
1.16 thfr 196: .It
197: NeuroVoider
1.4 thfr 198: .It
1.1 thfr 199: Ninja Warrior
1.3 thfr 200: .It
1.1 thfr 201: One Finger Death Punch
1.3 thfr 202: .It
1.15 thfr 203: Opus Magnum
204: .It
1.1 thfr 205: Overdriven Reloaded
1.3 thfr 206: .It
1.1 thfr 207: Owlboy
1.3 thfr 208: .It
1.1 thfr 209: Paladin
1.3 thfr 210: .It
1.1 thfr 211: Penny Arcade's On the Rain-Slick Precipice of Darkness 3
1.3 thfr 212: .It
1.1 thfr 213: Penny Arcade's On the Rain-Slick Precipice of Darkness 4
1.6 thfr 214: .It
215: Phoenix Force
1.3 thfr 216: .It
1.1 thfr 217: Press X to Not Die
1.3 thfr 218: .It
1.1 thfr 219: Rex Rocket
1.3 thfr 220: .It
1.1 thfr 221: Rogue Legacy
1.3 thfr 222: .It
1.1 thfr 223: Salt and Sanctuary
1.3 thfr 224: .It
1.1 thfr 225: Shipwreck
1.3 thfr 226: .It
1.1 thfr 227: Skulls of the Shogun
1.3 thfr 228: .It
1.1 thfr 229: Soulcaster 1 & 2
1.3 thfr 230: .It
1.1 thfr 231: SpeedRunners
1.3 thfr 232: .It
1.1 thfr 233: Stardew Valley
1.3 thfr 234: .It
1.1 thfr 235: Sumico
1.3 thfr 236: .It
1.1 thfr 237: Super Amazing Wagon Adventure
1.3 thfr 238: .It
1.4 thfr 239: Super Blood Hockey
240: .It
1.1 thfr 241: Super Rad Raygun
1.4 thfr 242: .It
243: Sword of the Stars: The Pit
1.3 thfr 244: .It
1.11 thfr 245: Terraria
246: .It
1.1 thfr 247: Timespinner
1.3 thfr 248: .It
1.1 thfr 249: TowerFall: Ascension
1.3 thfr 250: .It
1.1 thfr 251: Unexplored
1.3 thfr 252: .It
1.1 thfr 253: Unholy Heights (no audio)
1.3 thfr 254: .It
1.1 thfr 255: The Useful Dead
1.3 thfr 256: .It
1.5 thfr 257: Weapon of Choice
258: .It
1.1 thfr 259: Wizorb
1.3 thfr 260: .It
1.1 thfr 261: Wyv and Keep
1.3 thfr 262: .El
1.1 thfr 263: .Sh FILES
264: .Bl -tag -width Ds
1.10 thfr 265: .It Pa /usr/local/share/fnaify/fnaify.dllmap.config
266: Default configuration file to map DLLs to native libraries.
1.9 thfr 267: .It Pa ~/.config/fnaify/fnaify.dllmap.config
1.10 thfr 268: User directory configuration file. Takes precedence if it exists.
1.15 thfr 269: Make sure to keep it up-to-date!
1.1 thfr 270: .El
271: .Sh EXIT STATUS
272: .Nm
273: returns 1 if an error occurred with the arguments of files provided,
274: otherwise 0.
275: .Sh EXAMPLES
276: Run in permissive mode, suitable to set up most supported games
277: automatically.
278: .Pp
279: .Dl $ fnaify -y path/to/game/directory
280: .Pp
281: Run in interactive mode.
282: .Nm
283: will prompt the user if any additional DLLs are recommended, or if a
284: file needs to be selected for the launch script.
285: .Pp
286: .Dl $ fnaify -i path/to/game/directory
287: .Sh SEE ALSO
1.7 thfr 288: .Xr mono 1 ,
289: .Xr mono-config 5
1.1 thfr 290: .Sh HISTORY
291: The
292: .Nm
293: utility was originally created in December 2017 by
1.7 thfr 294: .An Thomas Frohwein Aq Mt thfr@openbsd.org .
1.2 thfr 295: .Sh RELEASE HISTORY
296: .Bl -tag -width Ds
1.15 thfr 297: .It 2.3
1.17 ! thfr 298: Support for several Zachtronics games. Add libstubborn use to dllmap.
! 299: Symlinking for MonoGame, e.g. NeuroVoider.
1.14 thfr 300: .It 2.2
301: Fix config for mono 6. Add support for libcestub.
1.8 thfr 302: .It 2.1
1.12 thfr 303: Support for additional XNA games. Add MONO_FORCE_COMPAT quirk.
1.2 thfr 304: .It 2.0
1.3 thfr 305: Add support for XNA games.
306: Introduce modes
1.2 thfr 307: .Fl i | y
308: to facilitate adding in needed assemblies/libraries.
309: .It 1.3
1.3 thfr 310: Add prompt to download and replace
311: .Pa FNA.dll
312: if incompatible version is found.
313: Detect steamstubs directory and use Steamworks stubs if present.
1.2 thfr 314: .It 1.2
315: FreeBSD portability fixes, account for more special cases (MidBoss,
316: Adventures of Shuggy, Atom Zombie Smasher), add directory path to plug
317: in additional libraries.
318: .It 1.1
319: Fix bug selecting .exe by separating input variables.
320: .It 1.0
321: Initial release.
322: .El
1.1 thfr 323: .Sh AUTHORS
324: .An -nosplit
325: .An Thomas Frohwein Aq Mt thfr@openbsd.org
Contact: <mail@mail.thfr.info>