- Notifications
You must be signed in to change notification settings - Fork5
Clone of SourceForge CVS repository for myman
License
NotificationsYou must be signed in to change notification settings
kragen/myman
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
README - basic documentation for the MyMan video gameCopyright 1997-2009, Benjamin C. Wiley Sittler <bsittler@gmail.com>Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.Website:http://myman.sourceforge.net/ NOTE: !!! LICENSE CHANGE !!! MyMan is no longer in the public domain. It is now distributed under a BSD-style license (see LICENSE for details.)Legal Notice------------MyMan is an unofficial and unlicensed clone of the original Pac-Manand Puckman games and of their sequels and imitators, and is notendorsed by Namco Bandai Games Inc., owners of the Pac-Man and Puckmanregistered trademarks and copyrights. Any trademarks used herein arethe property of their respective owners. No mention of a trademark,trademark owner, or other party shall be construed as an endorsementof MyMan or any other product by any party. If you believe that byusing or posessing MyMan the rights of others would be infringed, youare strongly encouraged to cease using MyMan and its derivatives anddelete all copies of the MyMan software and its derivatives, and toinform the author or authors of MyMan and the distributor ordistributors from whom you obtained MyMan of the reasons for suchbelief so that the infringing part may be removed or replaced. Anyimitation by MyMan of other software is intended to be purely forpurposes of humor and amusement.Please see the file LICENSE for author contact information.History-------MyMan was written on a dare on Sunday, 1998-06-28. The originalversion had no color or attribute support and only supported largetiles (equivalent to -z big.) It was 742 lines of ANSI C and usedthree data files: a maze file (equivalent to -v pac), a tile file anda sprite file. It worked with ncurses on Linux and cygwin. Severalvariations using other maze layouts were created over the followinghours. Color came in December of that year, as did support for smalltiles (equivalent to -z small.) The mygetopt argument parser is a bitolder, having been started in 1997 as part of the SMOKE-16 project.Acknowledgements----------------Toru Iwatani had the original idea for Namco's 'Pac-Man'/'Puck-Man',which in turn served as inspiration for this game.Innumerable others have written their own variants of the originalgame which in turn inspired variants for this game, and I have triedto credit them where authorship is known. Credits for each variant arelisted in the in-game help screen reachable by pressing ? or Ctrl-H.Description-----------Basic premise of the MyMan video game: "Those scary ghosts are back, and this time they've spotted you! What's worse is that they've mistaken you for their old rival Pac, and they're out for (yellow) blood!"MyMan displays (A) on a text terminal or terminal emulator (usingncurses, slang, PDCurses, SysV curses, BSD curses, old VMS curses, orthe raw stdio terminal driver), (B) on an X Window System display(using PDCurses for X, a.k.a. XCurses), (C) on any terminal or displaysupported by PDCurses for SDL, libcaca, LibGGI/LibGII, Allegro, TWin,aalib, Carbon/Toolbox, newt, GTK+, FLTK, <disp.h>, Borland-styleCONIO, or the Extensible Firmware Interface (EFI) or (D) in a Win32command prompt window (using the raw Win32 terminal driver). SinceMyMan is fairly fast-moving, you'll need a reasonably fast computerand display. It once ran acceptably fast on a 486-66 under Linux, andmay still.Installation------------Installation instructions are in the file INSTALL.License and Version-------------------The MyMan version number is recorded in the file VERSION inside thesource package. To determine the version number of an installed MyManexecutable, run e.g. 'myman -V'.This version of MyMan has a BSD-like license; see the file LICENSE fordetails. Earlier versions were placed in the public domain.MyMan includes a bundled copy of the 'mygetopt' argument parser,which is licensed under the same terms as MyMan; see the README filein the 'mygetopt' subdirectory of the MyMan source distributionfor details.Note that the contents of the MyMan datafiles (tiles, sprites andmazes) are in the public domain.The file 'start.xm' is by Raina / Titan and was originally created in2007 for an AmigaOS 4.0 port of MyMan 0.6. See:http://os4depot.net/index.php?function=showfile&file=game/action/pfp-myma.lhaTo Do-----See TODO for notes on desired features and bugfixes.A Note on Text Encoding and the B.O.M.--------------------------------------Note that many files in the MyMan distribution are distributed asUnicode/UCS text in the UTF-8 encoding with an explicit "byte-ordermark" (B.O.M.) at the beginning. This three-byte sequence (0xEF, 0xBB,0xBF in hexadecimal notation) allows many web browsers and texteditors on Windows, Mac OS X, and other operating systems toautomatically select the correct character encoding when displaying orediting the files. Please try to preserve this sequence when furtherredistributing the files or sending in patches so that others will beable to read the files painlessly.Environment Variables---------------------Some configurations of MyMan are influenced by the values ofenvironment variables, in addition to those behaviors documented forthe underlying display libraries: Display Library Variable Effect----------------- ---------- -------- AA-Lib AACURSES_BITMAP Nonempty value causes pseudo-bitmap rendering AAOPTS Presence of variable inhibits auto-sizing DISPLAY Absence or empty value inhibits auto-sizing libcaca 0.x CACA_DRIVER Absence or value other than "x11" (case-insensitive) inhibits auto-sizing to large geometries CACA_FONT Absence or value other than "nil2" (case-insensitive) inhibits auto-sizing to large geometries CACA_GEOMETRY Nonempty value inhibits auto-sizing CACACURSES_ACS Nonzero value forces use of font positions 0-31 for VT100 alternate character set (XTerm-style) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display libcaca 1.x CACACURSES_BITMAP Nonempty value causes pseudo-bitmap rendering CACACURSES_FIXEDPAL Nonempty value disables custom color palette CACA_DRIVER Absence or value other than "x11" (case-insensitive) inhibits auto-sizing to large geometries CACA_FONT Absence or value other than "nil2" (case-insensitive) inhibits auto-sizing to large geometries CACACURSES_BITMAP_BRIGHTNESS Floating-point brightness for pseudo-bitmap rendering CACACURSES_BITMAP_GAMMA Floating-point gamma value for pseudo-bitmap rendering CACACURSES_BITMAP_CONTRAST Floating-point contrast for pseudo-bitmap rendering CACACURSES_BITMAP_ANTIALIAS Antialiasing mode for pseudo-bitmap rendering; one of "none", "prefilter" or "default" CACACURSES_BITMAP_COLOR Color mode for pseudo-bitmap rendering; one of "mono", "gray", "8", "16", "fullgray", "full8", "full16", or "default" CACACURSES_BITMAP_CHARSET Character set for pseudo-bitmap rendering; one of "ascii", "shades", "blocks", or "default" CACACURSES_BITMAP_ALGORITHM Error diffusion mode for pseudo-bitmap rendering; one of "none", "ordered2", "ordered4", "ordered8", "random", or "fstein" CACACURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height CACACURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display LibGGI/LibGII GGICURSES_BITMAP Nonempty value causes bitmap rendering GGICURSES_SWAPRB Nonempty value interchanges red and blue color channels GGICURSES_ASCII Nonempty value forces ASCII-only rendering GGICURSES_FLUSHALL Nonempty value disables selective rectangular region updates in favor of complete refreshes GGICURSES_FIXEDPAL Nonempty value disables custom color palette GGICURSES_DIRECT Nonempty value enables use of directbuffer rendering GGICURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height by scanline simulation GGICURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Allegro ALLEGROCURSES_BITMAP Nonempty value causes bitmap rendering ALLEGROCURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height by scanline simulation ALLEGROCURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height ALLEGROCURSES_SWAPRB Nonempty value interchanges red and blue color channels ALLEGROCURSES_FIXEDPAL Nonempty value disables custom color palette ALLEGROCURSES_FONT Font for non-bitmap rendering; must be a format supported by load_font(3); chr8.fnt in the MyMan distribution works ALLEGROCURSES_TXT_FONT Font for non-bitmap rendering; must be a format supported by load_txt_font(3); chr8.afn in the MyMan distribution works OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Win32 Console/CONIO/TOS/AROS/VMS/*nix TTY RAWCURSES_RAW Nonzero value causes raw UTF-8 character output (Unicode) or CP-437 byte output (CP-437) RAWCURSES_WCWIDTH Nonzero value causes builtin character width data to be used as a fallback for characters not handled by locale data; a positive integer value causes all non-ASCII characters to assume that width (in cells) RAWCURSES_STDIO Nonzero value forces use of stdio (Win32/CONIO) RAWCURSES_CONIO Nonzero value forces use of Borland- style CONIO RAWCURSES_CONIO_INPUT Nonzero value forces use of CONIO input RAWCURSES_UTF8 Nonzero value forces UTF-8 output when using stdio RAWCURSES_DEBUG_UTF8 Nonzero value forces UTF-8 debugging output when using stdio RAWCURSES_ACS Nonzero value forces use of the VT100 alternate character set when using stdio RAWCURSES_CP437 Nonzero value forces use of CP-437 alternate character set when using stdio (ESC[11m) RAWCURSES_ISO2022 Zero value disables use of ISO 2022 character set selection sequences RAWCURSES_WIDE Nonzero value forces use of the VT100 double-width characters when using stdio RAWCURSES_H19 Nonzero value forces use of the H-19 alternate character set when using stdio RAWCURSES_VT52 Nonzero value forces use of the VT52 escape sequences when using stdio RAWCURSES_ST52 Nonzero value forces use of the ST52 escape sequences when using stdio RAWCURSES_VWMTERM Nonzero value forces use of the vwmterm escape sequences when using stdio RAWCURSES_AMIGA Nonzero value forces use of the Amiga console escape sequences when using stdio RAWCURSES_DECTERM Nonzero value forces use of the DECterm escape sequences when using stdio RAWCURSES_ADM3A Nonzero value forces use of the ADM3A escape sequences when using stdio RAWCURSES_COLOR Nonzero value enables color RAWCURSES_16COLOR Nonzero value enables use of the 16 colors rather than 8 RAWCURSES_BLINK Nonzero value forces use of the blink attribute for bright background colors when using stdio RAWCURSES_88COLOR Nonzero value enables use of the XTerm-style 88-color static palette (an XTerm compile-time option) when using stdio RAWCURSES_256COLOR Nonzero value enables use of the XTerm-style 256-color static palette (an XTerm compile-time option) when using stdio RAWCURSES_CCC Nonzero value forces use of the XTerm dynamic color palette when using stdio RAWCURSES_LINUX Nonzero value forces use of the Linux console dynamic color palette when using stdio RAWCURSES_FIXEDPAL Nonzero value disables custom color palette changes and use of more than 16 colors RAWCURSES_NOBULLET Nonzero value disables use of the alternate character set bullet when using stdio RAWCURSES_NOCOLORBOLD Nonzero value disables use of the bold attribute in conjunction with color when using stdio RAWCURSES_CIVIS Zero value disables the use of cursor-hiding escape sequences when using stdio RAWCURSES_RELCUP Nonzero value forces use of relative cursor addressing when using stdio RAWCURSES_TRANSPARENT Zero value forces use of color for all attributes RAWCURSES_LINES Overrides LINES RAWCURSES_COLUMNS Overrides COLUMNS OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Carbon/Toolbox MACCURSES_FONT Font name MACCURSES_FONTSIZE Initial font size in pixels MACCURSES_FONTENCODING Font encoding name, possibly one of: CP437 MacRoman MacJapanese MacVT100 US-ASCII OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display GTK+ GTKCURSES_FONT Font name GTKCURSES_ICON Icon graphic GTKCURSES_BITMAP Nonzero value causes psuedo-bitmap rendering OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display FLTK FLTKCURSES_FONT Font face FLTKCURSES_FONTSIZE Font size OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Open Watcom-style graph.h GRAPHCURSES_BITMAP Nonzero value causes bitmap rendering GRAPHCURSES_MODE Display mode number: -3 graphics, highest res -2 graphics, most colors -1 original mode or any MDA/CGA/HGC/EGA/VGA/MCGA/VESA mode number GRAPHCURSES_ROWS Display height in text rows or: -1 maximum height 0 default height for mode GRAPHCURSES_COLOR Zero disables color GRAPHCURSES_CCC Zero disables EGA/VGA/MCGA/SVGA/VESA palette remapping GRAPHCURSES_PALETTE Select palette for CGA mode 4/5: -1 current palette 0 dark green/red/brown 1 dark cyan/magenta/white 2 light green/red/yellow 3 light cyan/magenta/white GRAPHCURSES_BRIGHTBG Zero disables use of bright background on CGA/EGA/VGA/MCGA/SVGA under MS-DOS OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display <disp.h> DISPCURSES_USEBIOS Nonzero value forces use of BIOS routines for display I/O (DOS) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display newt or Borland-style CONIO or Extensible Firmware Interface (EFI) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode displayDetailed Notes--------------For basic usage information, refer to the text version of the MyManmanual page, myman.txt (generated from myman.man by 'make docs' usinggroff.)A. When Power Pellets Look Strange:The compile-time option -DSWAPDOTS=1 or the equivalent command-lineoption '-o' or in-game command 'O' or '0' is often necessary for adecent display. This depends greatly on what font you use.B. More Authentic Colors:If you have a color X server and the XFree XTerm terminal emulator,you can try the included xmyman script which should start MyMan in awindow of its own, with proper colors. If you have the rxvt terminalemulator, you can try the xmyman2 script for a similar effect. Andfinally, if you have XFree86 XTerm and a font for IBM codepage 437,you can try the included xmyman3 script for more different types ofpseudo-graphic characters (single and double lines, dots, and powerpellets.)Alternatively, you can get the "ctheme" package fromhttp://sourceforge.net/project/?group_id=2640and then run the included 'myman.ct' color theme script in your XTermor on the Linux console.Changing your terminal's palette can greatly improve the experience;recommended RGB values for each palette entry are listed at the end ofthis file.If you're using the Mac OS X Terminal application, you may installTerminalColors to get customizable colors:http://www.culater.net/software/TerminalColors/TerminalColors.phpThe myman.term file in the MyMan distribution takes advantage ofTerminalColors (if installed) to set the MyMan color palette.If you're using the Darwin/Mac OS X console (this is a "text mode"with no GUI or windowing system and is very rarely used,) you mayinstall utl/mach_mypal to switch your console to an appropriatepalette and utl/mach_acs to enable alternate character set (linedrawing) support. These have only been tested in Mac OS X 10.4 "Tiger"so far.C. Window Size:A terminal height of 34 or more lines works quite nicely, but 24 or 25(or even less) will work. Similarly, a width of 58 or more charactersis nice, but not required. If you're a real pro (or lacking screenreal-estate) you can play MyMan in a terminal window with 7 lines of12 characters each... it's actually playable!D. Keyboard Map: The following case-insensitive keystroke commands are recognized during the game: Q or Ctrl-C: quit the game P or ESC: pause the game Ctrl-Q: re-enable output (after Ctrl-S) R, Ctrl-L or Ctrl-R: refresh (redraw) the screen @: reset the display subsystem and refresh (redraw) the screen Ctrl-S: inhibit output until Ctrl-Q is typed S: toggle sound on/off W: warp to the next level (after consuming the next dot) C: toggle color on/off (if enabled at compile-time) B: toggle use of dim and bold attributes for missing colors U: toggle underlining of walls on/off (if enabled at compile-time) D: toggle maze debugging on/off T: save an HTML screenshot to the file snap####.html, where #### is a four-digit sequence number, and flash the screen briefly; a plain text version is saved as snap####.txt using backspacing to represent underlined and bold text O or 0: toggle appearance of power pellets and dots A: toggle between ASCII altcharset translations and your terminal's altcharset translations I: toggle between using your terminal's vertical scrolling capabil- ities and redrawing the screen X: toggle between raw tile characters (CP437 or UCS/Unicode charac- ter graphics) and altcharset translations (VT100-style graphics) E: toggle between UCS/Unicode and CP437 for internal representation of raw tile characters H, 4, Ctrl-B or LEFT: move left J, 2, Ctrl-N or DOWN: move down K, 8, Ctrl-P or UP: move up L, 6, Ctrl-F or RIGHT: move right , (comma) or <: cancel pending vertical move . (full stop) or >: cancel pending horizontal move / or \: toggle diagonal maze reflection !: display information about the maze, tileset and spriteset ? or Ctrl-H: display help screen The pager recognizes the following special commands: SPACE: display next page or finish ESC: finish immediately Move left then right with no intervening keystrokes: equivalent to ESCE. Configuration at Start-Up:Several of the game's settings can be changed at startup usingcommand-line parameters; use the '-h' parameter for more information.F. Configuration at Compile-Time:There are several properties of the game which may be altered usingcompile-time options:Compile-time option Default value DescriptionMYMANDELAY 25000 Delay is between updates. (in microseconds)SPEEDUP 1000 Amount delay decreases after each level.Values other than the default and 0 don't work particularly well. Thisuses the usleep library function.Boolean Compile-time option Default value DescriptionUSE_ATTR (automatic) Try to use attributes.USE_COLOR (automatic) Enable color support.USE_PALETTE 1 (except under Enable support for slang) color palette manipulation.USE_KEYPAD (automatic) Try to use the keypad.USE_ACS 1 Use your terminal's altcharset translations by default.USE_RAW 0 Output untranslated CP437 character graphics by default.The preceding options affect which curses features MyMan uses. MyManwas developed using ncurses, primarily under GNU/Linux. It should befairly portable to other operating systems and other SysV-like cursesimplementations. A partial port to old BSD curses has been completed,and uses the FIONREAD ioctl to simulate nodelay(). A port to old VMScurses has also been completed bypassing getch() and using raw QIO.Options with automatic default values will be enabled if your cursesimplementation seems to support them. Support is verified by checkingfor relevant #defines; if your curses implementation doesn't providethe relevant #defines, the default value will likely be wrong. Thisguessing process is pessimistic, meaning that features are more likelyto be erroneously disabled than erroneously enabled.Boolean Compile-time option Default DescriptionSWAPDOTS 0 Use 'o' for power pellets and ACS_BULLET for dots. (useful for vt100/latin-1 terminals and emulations)This compile-time option can be modified on the command-line or at run-time.Boolean Compile-time option Default DescriptionCOLORIZE 1 Try to use color. (somewhat slower than monochrome)This compile-time option can be modified on the command-line, andtoggled at run-time using 'c', provided USE_COLOR is non-zero.Compile-time option Default value DescriptionTILEFILE "chr/chr5x2.txt" File containing maze tiles.A tile file contains a dimension specifier followed by some tiles. Thedimension specifier is of the form WxH, where W and H are decimalintegers corresponding to the width and height of the tiles. This mayoptionally be followed by ~F, where F is a flag bitmap written as adecimal integer. The flag bits defined so far are "2", which indicatesinvertable bitmap tiles, and "4", which indicates that allnon-inverted wall parts should have their background color set. Theline may optionally end with tile file arguments ' arg1=value1arg2=value2 ...'.Tile Argument DescriptionABOUT Textual description of this tile fileNOTE Additional notes for this tile fileFIXME Known problems with this tile fileEach maze tile is described as follows:XX~Y <- two-digit hex code; corresponds roughly to CP437 character code. ^___ optional: '~' followed by 1-digit hex code; corresponds to color.:cccc...cc <- ':' followed by W characters; further characters ignored.(repeated H times)Blank lines are ignored.Hex codes with special meaning:20(' '),FF: walkable tile2E('.'),F9: edible dot6F('o'),FE: power pellet3D('='),3A(':'),F0,FF: door (to ghost house)7E('~'): secret door in horizontal wall6C('l'): secret door in vertical wall3C('<'),AE: zap left to matching right zap3E('>'),AF: zap right to matching left zap76('v'): zap down to matching up zap5E('^'): zap up to matching down zap10,11,18-1B,1E,1F,2B('+'),2D('-'),7C('|'),B3-DA,F0: wallsColor codes:0: white (def.) 8: dim white1: blue 9: bold blue2: green A: bold green3: cyan B: bold cyan4: red C: bold red5: magenta D: bold magenta6: yellow E: bold yellow7: white F: bold whiteCompile-time option Default value DescriptionSPRITEFILE "spr/spr7x3.txt" File containing sprites.A sprite file contains a dimension specifier followed by someframes. The dimension specifier is of the form WxH, where W and H aredecimal integers corresponding to the width and height of spriteframes. This may optionally be followed by ~F, where F is a flagbitmap written as a decimal integer. The only flag bit currentlydefined is "1", which indicates that ghost eyes are invisible. Theline may optionally end with sprite file arguments ' arg1=value1arg2=value2 ...'.Note that ghost eyes are always visible while a ghost is returninghome (after being eaten.) Setting the "1" flag bit is a good idea ifyour ghost eye sprite totally obsures your "mean" ghost sprite.Sprite Argument DescriptionABOUT Textual description of this sprite fileNOTE Additional notes for this sprite fileFIXME Known problems with this sprite fileThe sprite frame format is similar to the maze tile format, with thefollowing differences: a literal NUL (ASCII 0) in the description istreated as a transparent character, and the hex codes are as follows:00-07: level indicators (fruit, keys, etc.)08-09: "mean" ghost body animation0a: ghost eyes looking up0b: ghost eyes looking left0c: ghost eyes looking down0d: ghost eyes looking right0e-0f: "scared" ghost animation10-13: MyMan walking up animation14-17: MyMan walking left animation18-1b: MyMan dying animation1c-1f: MyMan walking right animation20-23: MyMan walking down animation24-28: (unused)29: 100 points2A: 300 points2B: 500 points2C: 700 points2D: 1000 points2E: 2000 points2F: 3000 points30: 5000 points31: 200 points32: 400 points33: 800 points34: 1600 points35-36: "white/scared" ghost animation37: life counter38-3B: large MyMan walking right animation (upper-left quadrant)3C-3F: large MyMan walking right animation (upper-right quadrant)40-43: large MyMan walking right animation (lower-left quadrant)44-47: large MyMan walking right animation (lower-right quadrant)48-FF: (unused)Compile-time option Default value DescriptionMAZEFILE "lvl/maze.txt" Maze description file.The maze description file starts with a line containing 'N WxH' or 'NWxH~F' and optional maze arguments ' arg1=value1 arg2=value2 ...', andthe remaining lines are an ASCII picture of the maze. If present, F isa flag bitmap written as a decimal integer. The flag bits defined sofar are "1", which indicates that maze changes only occur at gameintermissions, "2", which indicates whether to repeat the FLIP_TO mazeafter showing the last maze, and "4", which indicates that wall colorchoice should be based on wall thickness, rather than whether a walledge or a filled wall section is being drawn.NOTE: The Python program scripts/asc2txt.py can be used to automatically convert plain-ASCII ".asc" mazes to UTF-8 ".txt" mazes. The output of scripts/asc2txt.py often needs some manual cleanup.Maze argument Default value DescriptionABOUT (none) Textual description of this maze fileNOTE (none) Additional notes for this maze fileFIXME (none) Known problems with this maze fileCHERO (W * 0.5) MyMan's start column.RHERO 23.5 MyMan's start row.CFRUIT CHERO Prize column.RFRUIT 17.5 Prize row.RGHOST (RFRUIT - 3.0) Ghost start row.ROGHOST 3 Ghost offset rows.COGHOST 2 Ghost offset columns.RTOP (RFRUIT - 5.0) Ghost door row.CMSG 9 Message column.RMSG 17 Message row.CMSG2 9 Player Message column.RMSG2 11 Player Message row.PLAYER1 "PLAYER ONE"PLAYER2 "PLAYER TWO"READY " READY! " Ready message.GAMEOVER "GAME OVER" Game over message.PAUSE " - PAUSED - " Pause string.GHOSTS 4 Number of ghosts.Set this palette if you can (Red/Grn/Blu values are on a scale of0-255; colors listed in VGA order):Red Grn Blu Hex# R% G% B% MyMan color VGA color ANSI color===-===-===--======--===-===-===--============-================--=============== 0 0 0 000000 0 0 0 Black 0 Black 0 Black 0 0 221 0000DD 0 0 86 Blue 1 Blue 4 Blue 0 183 0 00B700 0 71 0 Green 2 Green 2 Green 0 221 221 00DDDD 0 86 86 Cyan 3 Cyan 6 Cyan221 150 70 DD9646 86 58 27 Brown 4 Red 1 Red255 32 150 FF2096 100 12 58 Magenta 5 Magenta 5 Magenta255 183 70 FFB746 100 71 27 Salmon 6 Brown 3 Yellow255 183 150 FFB796 100 71 58 Light Yellow 7 Light Grey 7 White102 102 102 666666 40 40 40 Grey 8 Dark Grey 8 Bold Black 32 32 221 2020DD 12 12 86 Light Blue 9 Light Blue 12 Bold Blue150 255 0 96FF00 58 100 0 Light Green 10 Light Green 10 Bold Green 0 255 221 00FFDD 0 100 86 Light Cyan 11 Light Cyan 14 Bold Cyan255 0 0 FF0000 100 0 0 Light Red 12 Light Red 9 Bold Red249 178 215 F9B2D7 98 70 84 Pink 13 Light Magenta 13 Bold Magenta255 255 0 FFFF00 100 100 0 Yellow 14 Yellow 11 Bold Yellow221 221 221 DDDDDD 86 86 86 Light Grey 15 White 15 Bold WhiteIf your terminal only supports eight distinct colors, set this paletteinstead (colors listed in ANSI order):Red Grn Blu Hex# R% G% B% MyMan color(s) ANSI color===-===-===--======--===-===-===--=========================--========== 0 0 0 000000 0 0 0 Black 0 Black 238 75 35 EE4B23 93 29 13 Brown + Light Red 1 Red 75 219 0 4BDB00 29 85 0 Green + Light Green 2 Green 255 219 35 FFDB23 100 85 13 Salmon + Yellow 3 Yellow 16 16 221 1010DD 6 6 86 Blue + Light Blue 4 Blue 252 105 182 FC69B6 98 41 71 Magenta + Pink 5 Magenta 0 238 221 00EEDD 0 93 86 Cyan + Light Cyan 6 Cyan 238 202 185 EECAB9 93 79 72 Light Yellow + Light Grey 7 White