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

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

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.60      thfr       11: \[**-hnsv**]
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.60      thfr      139: **-n**
                    140:
                    141: > Skip checks for library dependencies.
                    142:
1.54      thfr      143: **-s**
                    144:
1.55      thfr      145: > Force (re-)running setup.
1.54      thfr      146:
                    147: **-V**
1.17      thfr      148:
1.54      thfr      149: > Display version of
                    150: > **fnaify**.
1.17      thfr      151:
                    152: **-v**
                    153:
                    154: > Verbose mode.
                    155:
1.54      thfr      156: *userflags*
1.17      thfr      157:
1.18      thfr      158: > Optional.
1.54      thfr      159: > Flags that are passed to the game as arguments
1.17      thfr      160:
                    161: # SUPPORTED GAMES
                    162:
                    163: The Adventures of Shuggy
1.20      thfr      164: Akane the Kunoichi
                    165: Amazing Princess Sarah
1.17      thfr      166: Apotheon
1.20      thfr      167: Apple Jack 1&2
1.33      thfr      168: Atom Zombie Smasher
1.46      thfr      169: A Virus Named TOM \[!]
1.36      thfr      170: Before the Echo \[!]
1.50      thfr      171: Bird Assassin
1.17      thfr      172: Bleed
                    173: Bleed 2
                    174: Breath of Death VII
                    175: Brushwood Buddies
1.47      thfr      176: Camera Obscura
1.17      thfr      177: Capsized
1.47      thfr      178: Celeste (no audio)
1.17      thfr      179: Chaos Heart
                    180: Charlie Murder
                    181: Chasm
                    182: CometStriker
                    183: Cryptark
                    184: Cthulhu Saves the World
                    185: Curse of the Crescent Isle DX
                    186: Dad Quest
1.35      thfr      187: Dead Pixels \[!]
                    188: Dead Pixels II \[!]
1.61      thfr      189: Diehard Dungeon
1.17      thfr      190: The Dishwasher: Vampire Smile
1.20      thfr      191: Draw a Stickman: EPIC
1.17      thfr      192: Dust: An Elysian Tail
1.48      thfr      193: Eagle Island
1.29      thfr      194: Eliza
1.17      thfr      195: Escape Goat
                    196: Escape Goat 2
1.29      thfr      197: EXAPUNKS
1.17      thfr      198: FEZ
                    199: Fist Puncher
                    200: Flinthook
                    201: Flotilla
                    202: Gateways
1.59      thfr      203: Glitchangels
1.35      thfr      204: Grand Class Melee 2 \[!]
1.17      thfr      205: Growing Pains
                    206: HackNet
1.42      thfr      207: Hidden in Plain Sight
1.51      thfr      208: Hive
1.17      thfr      209: Hyphen
                    210: Jon Shafer's At the Gates
                    211: LaserCat
1.27      thfr      212: Little Racers STREET
1.17      thfr      213: Mercenary Kings
1.63    ! thfr      214: Miasma: Citizens of Free Thought
1.33      thfr      215: MidBoss
1.61      thfr      216: Mobius Front '83
1.29      thfr      217: Molek-Syntez
1.42      thfr      218: Mount Your Friends \[!]
1.30      thfr      219: NeuroVoider
1.17      thfr      220: Ninja Warrior
1.38      thfr      221: One Finger Death Punch
1.39      thfr      222: Opus Magnum
1.17      thfr      223: Overdriven Reloaded
                    224: Owlboy
                    225: Paladin
                    226: Penny Arcade's On the Rain-Slick Precipice of Darkness 3
                    227: Penny Arcade's On the Rain-Slick Precipice of Darkness 4
1.40      thfr      228: Phoenix Force
1.42      thfr      229: PlanetFriend
1.41      thfr      230: Press X to Not Die
1.17      thfr      231: Rex Rocket
                    232: Rogue Legacy
1.42      thfr      233: Ruggnar
1.17      thfr      234: Salt and Sanctuary
1.42      thfr      235: Session Seven
1.32      thfr      236: Shenzhen I/O
1.17      thfr      237: Shipwreck
1.49      thfr      238: Signs of Life
1.17      thfr      239: Skulls of the Shogun
                    240: Soulcaster 1 & 2
1.42      thfr      241: SpaceChem \[!]
1.17      thfr      242: SpeedRunners
                    243: Stardew Valley
1.62      thfr      244: Steel Assault
1.17      thfr      245: Sumico
1.42      thfr      246: Super Amazing Wagon Adventure \[!]
1.19      thfr      247: Super Blood Hockey
1.17      thfr      248: Super Rad Raygun
1.42      thfr      249: Sword of the Stars: The Pit \[!]
1.25      thfr      250: Terraria
1.17      thfr      251: Timespinner
                    252: TowerFall: Ascension
1.42      thfr      253: Ultra Hat Dimension
1.17      thfr      254: Unexplored
1.63    ! thfr      255: Unholy Heights
1.17      thfr      256: The Useful Dead
1.42      thfr      257: Weapon of Choice \[!]
1.46      thfr      258: Wizorb
1.17      thfr      259: Wyv and Keep
                    260:
                    261: # FILES
                    262:
1.24      thfr      263: */usr/local/share/fnaify/fnaify.dllmap.config*
1.21      thfr      264:
1.24      thfr      265: > Default configuration file to map DLLs to native libraries.
1.21      thfr      266:
1.24      thfr      267: *~/.config/fnaify/fnaify.dllmap.config*
1.17      thfr      268:
1.24      thfr      269: > User directory configuration file. Takes precedence if it exists.
1.29      thfr      270: > Make sure to keep it up-to-date!
1.17      thfr      271:
                    272: # EXIT STATUS
                    273:
                    274: **fnaify**
1.56      thfr      275: returns 1 if an error occurred, otherwise 0.
1.17      thfr      276:
                    277: # EXAMPLES
                    278:
                    279: Run in permissive mode, suitable to set up most supported games
                    280: automatically.
                    281:
1.56      thfr      282:        $ fnaify -y -d path/to/game/directory
1.17      thfr      283:
                    284: Run in interactive mode.
                    285: **fnaify**
                    286: will prompt the user if any additional DLLs are recommended, or if a
                    287: file needs to be selected for the launch script.
                    288:
1.56      thfr      289:        $ fnaify -i
1.17      thfr      290:
                    291: # SEE ALSO
                    292:
1.21      thfr      293: mono(1),
                    294: mono-config(5)
1.17      thfr      295:
                    296: # HISTORY
                    297:
                    298: The
                    299: **fnaify**
                    300: utility was originally created in December 2017 by
1.21      thfr      301: Thomas Frohwein <[thfr@openbsd.org](mailto:thfr@openbsd.org)>.
1.17      thfr      302:
                    303: # RELEASE HISTORY
                    304:
1.43      thfr      305: 3\.0
1.29      thfr      306:
1.53      thfr      307: > Stop creating launch script. Instead use fnaify for both
                    308: > setup and launch.
1.31      thfr      309: > Support for several Zachtronics games. Add libstubborn use to dllmap.
                    310: > Symlinking for MonoGame, e.g. NeuroVoider.
1.58      thfr      311: > Preferential use of installed FNA.dll over bundled one.
1.29      thfr      312:
1.28      thfr      313: 2\.2
                    314:
                    315: > Fix config for mono 6. Add support for libcestub.
                    316:
1.22      thfr      317: 2\.1
                    318:
1.26      thfr      319: > Support for additional XNA games. Add MONO\_FORCE\_COMPAT quirk.
1.22      thfr      320:
1.17      thfr      321: 2\.0
                    322:
1.18      thfr      323: > Add support for XNA games.
1.45      thfr      324: > Introduce interactivity flags
1.17      thfr      325: > **-i** | **-y**
                    326: > to facilitate adding in needed assemblies/libraries.
                    327:
                    328: 1\.3
                    329:
1.18      thfr      330: > Add prompt to download and replace
                    331: > *FNA.dll*
                    332: > if incompatible version is found.
                    333: > Detect steamstubs directory and use Steamworks stubs if present.
1.17      thfr      334:
                    335: 1\.2
                    336:
                    337: > FreeBSD portability fixes, account for more special cases (MidBoss,
                    338: > Adventures of Shuggy, Atom Zombie Smasher), add directory path to plug
                    339: > in additional libraries.
                    340:
                    341: 1\.1
                    342:
                    343: > Fix bug selecting .exe by separating input variables.
                    344:
                    345: 1\.0
                    346:
                    347: > Initial release.
                    348:
                    349: # AUTHORS
                    350:
                    351: Thomas Frohwein <[thfr@openbsd.org](mailto:thfr@openbsd.org)>
1.57      thfr      352: Mariusz Zaborski
1.17      thfr      353:
1.63    ! thfr      354: OpenBSD 7.0 - November 11, 2021

Contact: <mail@mail.thfr.info>