[BACK]Return to fnaify.1 CVS log [TXT][DIR] Up to [local] / projects / fnaify

Annotation of projects/fnaify/fnaify.1, Revision 1.57

1.57    ! thfr        1: .Dd $Mdocdate: November 24 2021 $
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
1.51      thfr       10: .Op Fl hnsv
1.7       thfr       11: .Op Fl c Ar configfile
1.45      thfr       12: .Op Fl D Ar depdir
                     13: .Op Fl d Ar gamedir
                     14: .Op Fl f Ar frameworkfile | Fl F Ar frameworkversion
1.1       thfr       15: .Op Fl m Ar monopath
1.45      thfr       16: .Op Ar userflags
1.1       thfr       17: .Sh DESCRIPTION
                     18: .Nm
1.45      thfr       19: runs games based on the FNA engine with OpenBSD-native
1.3       thfr       20: libraries and its
                     21: .Xr mono 1
                     22: runtime.
1.1       thfr       23: .Pp
                     24: As of version 2.0,
                     25: .Nm
                     26: has been extended to attempt configuring XNA games as well.
                     27: .Nm
1.3       thfr       28: can be run in 3 basic modes regarding the addition of missing libraries:
1.45      thfr       29: restrictive
                     30: .Po
                     31: default
                     32: .Pc
                     33: , interactive, and permissive.
                     34: .Pp
                     35: As of version 3.0,
                     36: .Nm
                     37: unifies both setup and launch of supported games in one command.
1.1       thfr       38: .Pp
1.19      thfr       39: All games require additional libraries from ports, like SDL2. Some of
1.45      thfr       40: them can be found in the fnaify-extralibs package, like libatomstb or
1.19      thfr       41: libfmod_SDL.
                     42: .Pp
1.1       thfr       43: The arguments are as follows:
                     44: .Bl -tag -width Ds
                     45: .It Fl i | y
                     46: The mode determines how
                     47: .Nm
                     48: handles situations where compatibility problems are identified that can
                     49: be addressed with drop-in DLL replacements, or where an option needs to
                     50: be selected.
                     51: With
1.3       thfr       52: .Fl i ,
1.1       thfr       53: .Nm
                     54: runs in interactive mode, meaning the user will be prompted in every
                     55: case.
                     56: With
1.3       thfr       57: .Fl y ,
1.1       thfr       58: .Nm
1.3       thfr       59: runs in permissive mode
                     60: .Po
1.1       thfr       61: .Fl y
                     62: for
1.3       thfr       63: .Dq yes
                     64: to all
                     65: .Pc .
                     66: This means that any suggested drop-in DLLs will be installed,
1.1       thfr       67: and if different options are possible (like picking among several .exe
                     68: files for the launch script), the first one will be selected
                     69: automatically.
                     70: If neither
                     71: .Fl i
                     72: nor
                     73: .Fl y
                     74: is specified,
                     75: .Nm
                     76: runs in restrictive mode, that is no drop-in DLLs will be installed.
1.7       thfr       77: .It Fl c Ar configfile
                     78: Optional. Use
                     79: .Ar configfile
                     80: for the configuration of
                     81: .Xr mono 1 .
                     82: This sets up dllmap/dllentry settings to use the correct libraries. See
                     83: .Xr mono-config 5
                     84: for details. If this option is omitted,
                     85: .Nm
                     86: looks first for
1.9       thfr       87: .Pa ~/.config/fnaify/fnaify.dllmap.config
1.7       thfr       88: and then for
1.9       thfr       89: .Pa /usr/local/share/fnaify/fnaify.dllmap.config .
1.7       thfr       90: If neither one is found,
                     91: .Nm
                     92: creates
                     93: .Pa ~/.config/fnaify/fnaify.dllmap.config
                     94: with default settings.
1.45      thfr       95: .It Fl D Ar depdir
1.1       thfr       96: Add
                     97: .Ar depdir
1.3       thfr       98: to the directories to search for native library dependencies.
                     99: A directory specified this way will be searched
1.1       thfr      100: .Em before
1.3       thfr      101: the default locations
                    102: .Pq Pa /usr/local/lib No etc. .
1.45      thfr      103: .It Fl d Ar gamedir
                    104: Path to the game's directory
                    105: .Pq defaults to the current working directory .
1.46      thfr      106: .It Fl F Ar frameworkversion
                    107: Choose a specific framework version to use.
1.45      thfr      108: .It Fl f Ar frameworkfile
                    109: Framework file to use. Typically
                    110: .Pa FNA.dll
                    111: or
                    112: .Pa MonoGame.Framework.dll .
                    113: By default will automatically identify the bundled file in the
                    114: game's directory.
                    115: .It Fl h
                    116: Prints help text.
1.1       thfr      117: .It Fl m Ar monopath
                    118: Add
                    119: .Ar monopath
1.3       thfr      120: to the directories the
                    121: .Xr mono 1
                    122: runtime will search for DLLs.
1.51      thfr      123: .It Fl n
                    124: Skip checks for library dependencies.
1.45      thfr      125: .It Fl s
1.46      thfr      126: Force (re-)running setup.
1.45      thfr      127: .It Fl V
                    128: Display version of
                    129: .Nm .
1.1       thfr      130: .It Fl v
                    131: Verbose mode.
1.45      thfr      132: .It Ar userflags
1.3       thfr      133: Optional.
1.45      thfr      134: Flags that are passed to the game as arguments
1.1       thfr      135: .El
                    136: .Sh SUPPORTED GAMES
1.3       thfr      137: .Bl -item -compact
                    138: .It
1.1       thfr      139: The Adventures of Shuggy
1.3       thfr      140: .It
1.6       thfr      141: Akane the Kunoichi
                    142: .It
                    143: Amazing Princess Sarah
                    144: .It
1.1       thfr      145: Apotheon
1.3       thfr      146: .It
1.6       thfr      147: Apple Jack 1&2
                    148: .It
1.19      thfr      149: Atom Zombie Smasher
                    150: .It
1.36      thfr      151: A Virus Named TOM [!]
                    152: .It
1.25      thfr      153: Before the Echo [!]
1.40      thfr      154: .It
                    155: Bird Assassin
1.24      thfr      156: .It
1.1       thfr      157: Bleed
1.3       thfr      158: .It
1.1       thfr      159: Bleed 2
1.3       thfr      160: .It
1.1       thfr      161: Breath of Death VII
1.3       thfr      162: .It
1.1       thfr      163: Brushwood Buddies
1.3       thfr      164: .It
1.37      thfr      165: Camera Obscura
                    166: .It
1.1       thfr      167: Capsized
1.3       thfr      168: .It
1.37      thfr      169: Celeste (no audio)
1.19      thfr      170: .It
1.1       thfr      171: Chaos Heart
1.3       thfr      172: .It
1.1       thfr      173: Charlie Murder
1.3       thfr      174: .It
1.1       thfr      175: Chasm
1.3       thfr      176: .It
1.1       thfr      177: CometStriker
1.3       thfr      178: .It
1.1       thfr      179: Cryptark
1.57    ! thfr      180: .It
        !           181: Crystal Project
1.3       thfr      182: .It
1.23      thfr      183: Cthulhu Saves the World
1.3       thfr      184: .It
1.1       thfr      185: Curse of the Crescent Isle DX
1.3       thfr      186: .It
1.1       thfr      187: Dad Quest
1.3       thfr      188: .It
1.22      thfr      189: Dead Pixels [!]
1.6       thfr      190: .It
1.22      thfr      191: Dead Pixels II [!]
1.52      thfr      192: .It
                    193: Diehard Dungeon
1.3       thfr      194: .It
1.1       thfr      195: The Dishwasher: Vampire Smile
1.3       thfr      196: .It
1.6       thfr      197: Draw a Stickman: EPIC
                    198: .It
1.1       thfr      199: Dust: An Elysian Tail
1.3       thfr      200: .It
1.38      thfr      201: Eagle Island
                    202: .It
1.15      thfr      203: Eliza
                    204: .It
1.1       thfr      205: Escape Goat
1.3       thfr      206: .It
1.1       thfr      207: Escape Goat 2
1.3       thfr      208: .It
1.15      thfr      209: EXAPUNKS
                    210: .It
1.1       thfr      211: FEZ
1.3       thfr      212: .It
1.1       thfr      213: Fist Puncher
1.3       thfr      214: .It
1.1       thfr      215: Flinthook
1.3       thfr      216: .It
1.1       thfr      217: Flotilla
1.6       thfr      218: .It
1.1       thfr      219: Gateways
1.50      thfr      220: .It
                    221: Glitchangels
1.3       thfr      222: .It
1.22      thfr      223: Grand Class Melee 2 [!]
1.6       thfr      224: .It
1.1       thfr      225: Growing Pains
1.3       thfr      226: .It
1.24      thfr      227: HackNet
1.3       thfr      228: .It
1.32      thfr      229: Hidden in Plain Sight
                    230: .It
1.42      thfr      231: Hive
1.3       thfr      232: .It
1.1       thfr      233: Hyphen
1.3       thfr      234: .It
1.1       thfr      235: Jon Shafer's At the Gates
1.3       thfr      236: .It
1.26      thfr      237: LaserCat
1.3       thfr      238: .It
1.13      thfr      239: Little Racers STREET
                    240: .It
1.1       thfr      241: Mercenary Kings
1.19      thfr      242: .It
1.56      thfr      243: Miasma: Citizens of Free Thought
                    244: .It
1.19      thfr      245: MidBoss
1.53      thfr      246: .It
                    247: Mobius Front '83
1.3       thfr      248: .It
1.15      thfr      249: Molek-Syntez
                    250: .It
1.32      thfr      251: Mount Your Friends [!]
1.16      thfr      252: .It
                    253: NeuroVoider
1.4       thfr      254: .It
1.1       thfr      255: Ninja Warrior
1.3       thfr      256: .It
1.28      thfr      257: One Finger Death Punch
1.3       thfr      258: .It
1.29      thfr      259: Opus Magnum
1.15      thfr      260: .It
1.1       thfr      261: Overdriven Reloaded
1.3       thfr      262: .It
1.1       thfr      263: Owlboy
1.3       thfr      264: .It
1.1       thfr      265: Paladin
1.3       thfr      266: .It
1.1       thfr      267: Penny Arcade's On the Rain-Slick Precipice of Darkness 3
1.3       thfr      268: .It
1.1       thfr      269: Penny Arcade's On the Rain-Slick Precipice of Darkness 4
1.6       thfr      270: .It
1.30      thfr      271: Phoenix Force
1.3       thfr      272: .It
1.32      thfr      273: PlanetFriend
                    274: .It
1.31      thfr      275: Press X to Not Die
1.3       thfr      276: .It
1.1       thfr      277: Rex Rocket
1.3       thfr      278: .It
1.1       thfr      279: Rogue Legacy
1.3       thfr      280: .It
1.32      thfr      281: Ruggnar
                    282: .It
1.1       thfr      283: Salt and Sanctuary
1.3       thfr      284: .It
1.32      thfr      285: Session Seven
                    286: .It
1.18      thfr      287: Shenzhen I/O
                    288: .It
1.1       thfr      289: Shipwreck
1.39      thfr      290: .It
                    291: Signs of Life
1.3       thfr      292: .It
1.1       thfr      293: Skulls of the Shogun
1.3       thfr      294: .It
1.1       thfr      295: Soulcaster 1 & 2
1.3       thfr      296: .It
1.32      thfr      297: SpaceChem [!]
1.20      thfr      298: .It
1.1       thfr      299: SpeedRunners
1.3       thfr      300: .It
1.1       thfr      301: Stardew Valley
1.54      thfr      302: .It
                    303: Steel Assault
1.3       thfr      304: .It
1.1       thfr      305: Sumico
1.3       thfr      306: .It
1.32      thfr      307: Super Amazing Wagon Adventure [!]
1.3       thfr      308: .It
1.4       thfr      309: Super Blood Hockey
                    310: .It
1.1       thfr      311: Super Rad Raygun
1.4       thfr      312: .It
1.32      thfr      313: Sword of the Stars: The Pit [!]
1.3       thfr      314: .It
1.11      thfr      315: Terraria
                    316: .It
1.1       thfr      317: Timespinner
1.3       thfr      318: .It
1.1       thfr      319: TowerFall: Ascension
1.3       thfr      320: .It
1.32      thfr      321: Ultra Hat Dimension
                    322: .It
1.1       thfr      323: Unexplored
1.3       thfr      324: .It
1.55      thfr      325: Unholy Heights
1.3       thfr      326: .It
1.1       thfr      327: The Useful Dead
1.3       thfr      328: .It
1.32      thfr      329: Weapon of Choice [!]
1.36      thfr      330: .It
                    331: Wizorb
1.3       thfr      332: .It
1.1       thfr      333: Wyv and Keep
1.3       thfr      334: .El
1.1       thfr      335: .Sh FILES
                    336: .Bl -tag -width Ds
1.10      thfr      337: .It Pa /usr/local/share/fnaify/fnaify.dllmap.config
                    338: Default configuration file to map DLLs to native libraries.
1.9       thfr      339: .It Pa ~/.config/fnaify/fnaify.dllmap.config
1.10      thfr      340: User directory configuration file. Takes precedence if it exists.
1.15      thfr      341: Make sure to keep it up-to-date!
1.1       thfr      342: .El
                    343: .Sh EXIT STATUS
                    344: .Nm
1.47      thfr      345: returns 1 if an error occurred, otherwise 0.
1.1       thfr      346: .Sh EXAMPLES
                    347: Run in permissive mode, suitable to set up most supported games
                    348: automatically.
                    349: .Pp
1.47      thfr      350: .Dl $ fnaify -y -d path/to/game/directory
1.1       thfr      351: .Pp
                    352: Run in interactive mode.
                    353: .Nm
                    354: will prompt the user if any additional DLLs are recommended, or if a
                    355: file needs to be selected for the launch script.
                    356: .Pp
1.47      thfr      357: .Dl $ fnaify -i
1.1       thfr      358: .Sh SEE ALSO
1.7       thfr      359: .Xr mono 1 ,
                    360: .Xr mono-config 5
1.1       thfr      361: .Sh HISTORY
                    362: The
                    363: .Nm
                    364: utility was originally created in December 2017 by
1.7       thfr      365: .An Thomas Frohwein Aq Mt thfr@openbsd.org .
1.2       thfr      366: .Sh RELEASE HISTORY
                    367: .Bl -tag -width Ds
1.33      thfr      368: .It 3.0
1.44      thfr      369: Stop creating launch script. Instead use fnaify for both
                    370: setup and launch.
1.17      thfr      371: Support for several Zachtronics games. Add libstubborn use to dllmap.
                    372: Symlinking for MonoGame, e.g. NeuroVoider.
1.49      thfr      373: Preferential use of installed FNA.dll over bundled one.
1.14      thfr      374: .It 2.2
                    375: Fix config for mono 6. Add support for libcestub.
1.8       thfr      376: .It 2.1
1.12      thfr      377: Support for additional XNA games. Add MONO_FORCE_COMPAT quirk.
1.2       thfr      378: .It 2.0
1.3       thfr      379: Add support for XNA games.
1.35      thfr      380: Introduce interactivity flags
1.2       thfr      381: .Fl i | y
                    382: to facilitate adding in needed assemblies/libraries.
                    383: .It 1.3
1.3       thfr      384: Add prompt to download and replace
                    385: .Pa FNA.dll
                    386: if incompatible version is found.
                    387: Detect steamstubs directory and use Steamworks stubs if present.
1.2       thfr      388: .It 1.2
                    389: FreeBSD portability fixes, account for more special cases (MidBoss,
                    390: Adventures of Shuggy, Atom Zombie Smasher), add directory path to plug
                    391: in additional libraries.
                    392: .It 1.1
                    393: Fix bug selecting .exe by separating input variables.
                    394: .It 1.0
                    395: Initial release.
                    396: .El
1.1       thfr      397: .Sh AUTHORS
                    398: .An -nosplit
                    399: .An Thomas Frohwein Aq Mt thfr@openbsd.org
1.48      thfr      400: .An Mariusz Zaborski

Contact: <mail@mail.thfr.info>