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

Annotation of projects/fnaify/README.md, Revision 1.58

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

Contact: <mail@mail.thfr.info>