# MYMAN

NAME
SYNOPSIS
DESCRIPTION
LEGAL NOTICE
VERSION
GETTING STARTED
ADVANCED
EXIT STATUS
OPTIONS
X TOOLKIT OPTIONS
USAGE
FILES
ENVIRONMENT
DIAGNOSTICS
SECURITY
CONFORMING TO
NOTES
BUGS
AUTHOR
HISTORY
ACKNOWLEDGEMENTS
SEE ALSO

## NAME

myman, xmyman, xmyman2, xmyman3, xmyman4, xbigman, xhugeman, xbitman, xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, xquackman, myman.ct - the MyMan video game

## SYNOPSIS

myman [-v variant ] [-z size ] [-h] [-V] [-b|-q] [-c|-n] [-B|-N] [-o|-p] [-d num ] [-g num ] [-l num ] [-u|-U] [-a|-A] [-i|-I] [-r|-R] [-e|-E] [-x|-X] [-1|-2] [-m file ] [-s file ] [-t file ] [-M] [-S] [-T] [-f file ] [-F file ] [ -- [toolkit-options]... ]

NOTE: The optional toolkit-options are only accepted when myman is built with PDCurses for X (a.k.a. XCurses)

/bin/sh /home/builder/build/pkg/myman/usr/bin/xmyman [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xmyman2 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xmyman3 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xmyman4 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbigman [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xhugeman [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman2 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman3 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman4 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman5 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xbitman6 [options]...

/bin/sh /home/builder/build/pkg/myman/usr/bin/xquackman [options]...

ctheme /home/builder/build/pkg/myman/usr/bin/myman.ct

## DESCRIPTION

Basic premise of the MyMan video game:

"Those scary monsters 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!"

This is a fast-paced video game using the curses(3) library to display on a text terminal or terminal emulator.

### LEGAL NOTICE

MyMan is an unofficial and unlicensed clone of the original Pac-Man and Puckman games and of their sequels and imitators, and is not endorsed by Namco Bandai Games Inc., owners of the Pac-Man and Puckman registered trademarks and copyrights. Any trademarks used herein are the property of their respective owners. No mention of a trademark, trademark owner, or other party shall be construed as an endorsement of MyMan or any other product by any party. If you believe that by using or posessing MyMan the rights of others would be infringed, you are strongly encouraged to cease using MyMan and its derivatives and delete all copies of the MyMan software and its derivatives, and to inform the author or authors of MyMan and the distributor or distributors from whom you obtained MyMan of the reasons for such belief so that the infringing part may be removed or replaced. Any imitation by MyMan of other software is intended to be purely for purposes of humor and amusement.

Please see the file /home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0/LICENSE for author contact information.

Please see the file /home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0/COPYRIGHT for copyright information.

Press ? or Ctrl-H during the game for help and additional notices.

### VERSION

This manual page was generated for myman 0.7.0. Please check the output of myman --version to make sure you're using a corresponding version of the myman program.

### GETTING STARTED

Start playing MyMan by typing myman (to play MyMan on a text terminal or terminal emulator), or xmyman (to play MyMan in full color inside a new window under the X Window System.) Move MyMan using the arrow keys. The alternate keys H, J, K, and L are available for vi (1) users. The alternate keys Ctrl-B, Ctrl-N, Ctrl-P, and Ctrl-F are available for emacs (1) users. Press the Q key at any time to quit. If the flashing power pellets are too small, run myman with the -o command-line parameter or press O or 0 during the game. If the maze walls are invisible or garbled, run myman with the -a command-line parameter or press A during the game.

### ADVANCED

See below, especially the OPTIONS and USAGE sections.

| myman |  | The myman program plays the MyMan video game. myman runs in text mode and displays on a text terminal or terminal emulator. myman includes several maze variants inspired by similar games, and an alternative ASCII-art display mode suitable for large terminal screens.

xmyman, xmyman2, xmyman3, xmyman4, xbigman, xhugeman, xbitman,
xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, and xquackman

The xmyman, xbigman, xhugeman, xbitman, xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, xquackman and xmyman3 shell scripts are wrappers used to launch myman inside a new window under the X Window system with approporiate colors and fonts. They accept all of myman's options. They use either PDCurses for X (a.k.a. XCurses) or the xterm(1) terminal emulator to open the new window.

The xmyman2 shell script is similar to xmyman, but uses the rxvt(1) terminal emulator instead of xterm(1).

The xmyman3 shell script is similar to xmyman, but uses the kterm(1) terminal emulator instead of xterm(1).

The xmyman and xmyman2 shell scripts use altcharset translations (VT100-style graphics). The xmyman3 script uses raw tile characters (CP437 or UCS/Unicode character graphics.) The xmyman4 script uses raw tile characters (EUC-JP character graphics.) The xbigman script uses large tiles and sprites (ASCII-art) for a more authentic appearance, but this means you either see less of the game or need to use a larger terminal emulator window (typically with a small font size.) The xhugeman script uses even larger ASCII-art and is usable only on high-resolution displays. The xbitman, xbitman3 and xbitman5 scripts use ASCII-art or UCS/Unicode graphics to approximate a bitmap display, and are only usable on high-resolution displays. The xbitman2, xbitman4 and xbitman6 scripts use ASCII-art or UCS/Unicode graphics to approximate a bitmap display, and are only usable on very high-resolution displays. The xquackman script behaves like xmyman but selects maze, tile and sprites similar to those used in YumPop.com's 'Quackman'

Any necessary terminal emulators and fonts must be installed and properly configured for these shell scripts to work.

myman.ct

The myman.ct ctheme script reconfigures the Linux console or xterm(1) color palette for use with myman.

## EXIT STATUS

| 0 |  | Exit status zero indicates normal completion of the myman program.
| 1 |  | Exit status one indicates an incomplete or damaged installation or another abnormal situation causing the myman program to exit unexpectedly.
| 2 |  | Exit status two indicates that unrecognized or unsupported command-line parameters were given to myman.
| other |  | In some cases the xmyman, xmyman2, xmyman3, xmyman4, xbigman, xhugeman, xbitman, xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, and xquackman scripts may exit with another status as a result of inability to connect to an X Window System display server, or as a result of inability to start a terminal emulator. Receipt of an unhandled signal may cause the process to exit with some other status.

## OPTIONS

The following options are accepted by myman, xmyman, xmyman2, xmyman3, xmyman4, xbigman, xhugeman, xbitman, xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, and xquackman.

Required arguments to long options are required for short options too.
-v, --variant=variant

select game variant

variants included in this build: myman catchum chomp gobble munchkin pacgal pacmanic portable msport spear pacman89 quackman tinypac2 pacmania kpacman pacjr mspp jrpac jrpac64 jrpac26 kasper scandal hangly pesco ebipac hackem pac64 mspac26 pac2600 pac26 mrpac26 ipac nespac ghost dacman babypac paczx mspaczx pacmsx pac4a pac20 mspac78 mspaclnx mspac20 mspac4a mspacnes mspacgb mspaccdi jellymon gobbler ghostman demon nokiapac mspacgg snespac pacjs pman2 pman clsweep pcman zuckman paczx2 mazeman glooper ghunt spooky ohno pacgem munchman mmproto crush pacbox tinypac hasewolf pac700 pacmanvs smartpac bugman pacman2 pacman98 snapper peerless psppac pac6001 deluxe scarfman pac8bit mspacgt newpuc2 arrange asciiman pacpunk pactac mspaccpc spook cattrax jrpac52 pcmania4 nibble crazyg chicky monster tomyport packri puckpock blinky mania eatit greedy mschomp pacpsion pacxgs paccv muncher munchy xensrvng ultrapac fhmcpac mspacatk packman nascom pacnstuf pakkman msblitz mshack lives gobbler2 pacmanpc ababa puckmon yoyopac gobble2 mmpalm gobbler0 perqman mazewar 3demon pacpdp11 apollo pacrt11 sidtool pacvms mspacln2 mspwlnx mspwlnx2 gobbler1 gobbler3 ghostma2 strange mini mstiny alien pacst pacmen sympac tituspac classmun ascpac minipac ruckman guimp hannah chompman javapac titanman hatman xfred pacgent hedges gnasher snail munchie revenge gobbleag thief plaque plaque2 sir pacmunch jrsmall jrtiny 3dpac ackman paccdi gpac gsmall hackem2 hangly26 makman pacclone scheme pcsmall pcman2 qman tman toyman salomon byh ptmx smallpac mssmall baby2 pac pac2 small upacthin blobbo tiny mc10 ghost2 nopoint gobbler4 pacgalax kcm remake guppy pepperii

-z, --size=size

select tile and sprite size

sizes included in this build: small big huge square quack bitmap bitmap2 bitmap3 bitmap4 bitmap0 bitmap1 bitmap5 bitmap6 bitmap7 bitmap8 bitmap9 bitmapa bitmapb perq perq2 perq3 perq4 perq5 kpac kpac2 kpac3 kpac4 otto otto2 otto3 otto4 custom bitmap3a kpac3a bitmap5a kpac5 bitmap6a kpac6 bitmap7a kpac7 bitmap8a kpac8 bitmap9a kpac9 otto3a

-h, --help

print a brief usage message and exit

-k, --keys

show keybindings and exit

-L, --legal

show legal notice and exit

-V, --version

print myman version and exit

| -b |  | enable sounds
| -q |  | disable sounds
| -c |  | enable color support
| -n |  | disable color support
| -B |  | use dim and bold attributes for missing colors
| -N |  | don't use dim and bold attributes for missing colors
| -o |  | use 'o' for power pellets and bullet for dots
| -p |  | use bullet for power pellets and '.' for dots
| -d num |  | delay num microseconds/refresh
| -g num |  | play against num monsters
| -l num |  | start with num lives
| -u |  | use the underline attribute for maze walls
| -a |  | use ASCII for altcharset translation
| -A |  | use your terminal's altcharset translations
| -i |  | scroll vertically by redrawing the screen
| -I |  | use your terminal's vertical scrolling capabilities
| -r |  | use raw tile characters (CP437 or UCS/Unicode character graphics)
| -R |  | use altcharset translations (VT100-style graphics)
| -e |  | use UCS/Unicode for internal representation of raw tile characters
| -E |  | use CP437 for internal representation of raw tile characters
| -x |  | reflect maze diagonally, exchanging the upper right and lower left corners
| -X |  | do not reflect maze
| -1 |  | use default UCS/Unicode mapping
| -2 |  | use CJK (fullwidth) UCS/Unicode mapping

-m file

use the maze in file

-s file

use sprites from file

-t file

use tiles from file

| -M |  | write the maze to stdout in C format and exit |
| -S |  | write sprites to stdout in C format and exit |
| -T |  | write tiles to stdout in C format and exit |

-f file

redirect stdout to file (append)

-F file

redirect stdout to file (truncate)

### X TOOLKIT OPTIONS

When myman is built with PDCurses for X (a.k.a. XCurses), standard X toolkit options and XCurses options may be passed at the end of the command line after a double dash (--). Refer to the X Window System documentation and the XCurses documentation for more information.

## USAGE

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 or 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 (UTF-8) 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 capabilities and redrawing the screen
| X: |  | toggle between raw tile characters (CP437 or UCS/Unicode character 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 <:

forget previously buffered vertical movement

. (full stop) or >:

forget previously buffered horizontal movement

/ or \f[R]:

toggle diagonal maze reflection

? 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 ESC

## FILES

The following directories are used by MyMan:
@privatelibexecdir

Directory of individual tile/sprite size and maze variant binaries. These are invoked automatically by the main myman executable in non-monolithic installations.

/home/builder/build/pkg/myman/usr/share/myman-0.7.0/lvl

Directory of maze datafiles. /home/builder/build/pkg/myman/usr/share/myman-0.7.0/chr Directory of tile datafiles. /home/builder/build/pkg/myman/usr/share/myman-0.7.0/spr Directory of sprite datafiles.

/home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0

Directory of documentation.

Refer to the curses(3) manual for additional information.

## ENVIRONMENT

Certain environment variables influence the program's behavior. See the file /home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0/README for more details. Refer to the curses(3) manual for additional information.

## DIAGNOSTICS

The following diagnostic messages may appear while trying to run myman:
Summary: myman [--help] [--version] [options]
Usage: myman [-h] [options]
myman: argument to -d must be an unsigned long integer.

Command line parameters do not conform to option language (see OPTIONS above.)

myman: compile with -DMYMANDELAY=1 to enable the -d option.
myman: compile with -DUSE_ATTR=1 to enable the -u option.
myman: compile with -DUSE_COLOR=1 to enable color support.

Support for the specified option was not included in your myman installation.

size: unrecognized size

The tile and sprite size size is not included in your myman installation (see SIZES above.) You may need to enable it and recompile.

variant: unrecognized variant

The game variant variant is not included in your myman installation (see VARIANTS above.) You may need to enable it and recompile.

... myman: command not found
... myman: not found
@privatelibexecdir/variant-size: No such file or directory
myman: game variant 'variant' not included in this binary
myman: game size 'size' not included in this binary

Your myman installation is incomplete or damaged. You need to re-install MyMan.

file: can't find an index
file: invalid index index ignored
file: duplicate definition for index
file: can't find a color for index index
file: invalid color colorcode ignored
file: premature EOF in index index

The tile or sprite file file does not follow the format required by the myman font reader. See the file /home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0/README for more details.

file: can't find a dimension specification N WxH
file: premature EOF

The maze file file does not follow the format required by the myman maze reader. See the file /home/builder/build/pkg/myman/usr/share/doc/myman-0.7.0/README for more details.

file: Permission denied
file: No such file or directory

An attempt to access the file file failed.

myman: scored points points

You quit. I hope you enjoyed the game!

Error: no DISPLAY variable set ... Killed

PDCurses for X (a.k.a. XCurses) was unable to determine the name of your X Window System display server. Refer to your X Window System documentation for further information.

Additional diagnostics generated by the xmyman, xmyman2, xmyman3, xmyman4, xbigman, xhugeman, xbitman, xbitman2, xbitman3, xbitman4, xbitman5, xbitman6, and xquackman shell scripts:
... xterm: not found
... xterm: No such file or directory
... rxvt: not found
... rxvt: No such file or directory
... kterm: not found
... kterm: No such file or directory
... /usr/bin/ctheme: not found
... /usr/bin/ctheme: No such file or directory
... /bin/sh: not found
... /bin/sh: No such file or directory
... basename: not found
... basename: No such file or directory
... rm: not found
... rm: No such file or directory

The named utility program is missing or not in your PATH search list.

xterm: unable to open font "fontname", trying "fixed"
rxvt: can't load font "fontname"

The font specified by fontname is not available on your X Window System display server.

## SECURITY

Although no vulnerabilities are known, it is recommended that myman and related programs not be installed setuid-root.

## CONFORMING TO

This is still considered a non-standard command, but by installing it you bring us one step closer to world domination.

## NOTES

The -o option or the O or 0 command is frequently needed for correct display.

## BUGS

Probably lots. Some of the more annoying known bugs:
Broken or Missing Character Graphics (i.e. Mangled Maze Walls)

MyMan uses character graphics to represent maze walls, power pellets, and other graphic elements. Usually these character graphics are rendered using altcharset translations (VT100-style graphics,) but they can be rendered using ASCII-art or raw tile characters (either CP437 bytes or UCS/Unicode characters.)

For these character graphics to be displayed properly, several pieces of software must work together: myman(6), curses(3), and a text terminal or terminal emulator (including any necessary fonts.) Interactions between these pieces of software may be affected by environment variables, locale(7) settings, command-line parameters, other configuration settings, and perhaps even the occultation of natural satellites. A misalignment between two of these pieces can cause the character graphics to become garbled, or even cause them to disappear entirely.

You may work around these problems by using the -a option or the A command to switch to plain ASCII-art.

Buggy Monster Behavior

The monsters sometimes become lost and are unable to find their way home, or fail to follow the player into obvious hiding places. Some mazes confuse the monsters more than others.

Lacking Standard Documentation Formats

There should be a Texinfo manual for MyMan, and some sort of human-readable manual should be included in the source distribution.

Inaccurate Status Line in HTML and text Screenshots

The screenshot mechanism does not accurately reflect the overlaying of the status line on top of the maze, so the screen shot may be one line too tall, and will include any parts of the maze that are actually obscured by the status line.

Inaccurate HTML and text Screenshots

The HTML and text screenshots record MyMan's internal representation of the terminal screen, which may not agree with what you see in terms of graphic characters (actual rendering varies among terminals and across curses implementations,) color (some terminals and curses libraries don't support palette manipulation,) and font (MyMan has no way to guess what your terminal font looks like.)

Also, different web browsers and fonts will affect rendering of the screenshot itself. Some browsers and fonts render line-drawing graphics characters at different visual widths from plain ASCII characters. Other browsers substitute their own inadequate ASCII replacements. A few web browsers are unable to display line-drawing graphics characters at all, or require the user to manually select the "User Defined" encoding.

If your terminal is configured to use raw CP437 tile characters, the screenshot will contain raw CP437 data. Otherwise UCS/Unicode numeric character references will be used and the document will be labeled as UTF-8. Some web browsers do not support CP437, others do not support numeric character references in UTF-8, and still others support neither!

You may work around these problems using the -a option or the A command to switch to plain ASCII-art and the -n option or the C command to disable color before taking a screenshot to be sure that what you see is what you get.

## AUTHOR

Please mail bug reports to "Benjamin C. W. Sittler" <bsittler@gmail.com>

## HISTORY

MyMan was written on a dare on Sunday, 1998-06-28. The original version had no color or attribute support and only supported large tiles (equivalent to -z big.) It was 742 lines of ANSI C and used three data files: a maze file (equivalent to -v pac), a tile file and a sprite file. It worked with ncurses on Linux and cygwin. Several variations using other maze layouts were created over the following hours. Color came in December of that year, as did support for small tiles (equivalent to -z small.) The my_getopt argument parser is a bit older, 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 original game which in turn inspired variants for this game, and I have tried to credit them where authorship is known. Credits for each variant are listed in the in-game help screen reachable by pressing ? or Ctrl-H.

## SEE ALSO

xterm(1), phoon(1), xphoon(1), curses(3), locale(7), X(7)
Home Page for 'MyMan'

<http://geocities.com/bsittler/#myman>

SourceForge Project Page for 'ctheme'

<http://sourceforge.net/project/?group_id=2640>