XEROX PACMAN 2 4 1 PACMAN 1 4 By: Michel Denber (Denber.WBST@Xerox.COM) Requires CMLARRAY.DCOM INTRODUCTION PACMAN is an Interlisp-D implementation of the arcade game PACMAN. It is fairly faithful to the arcade version, in terms of screen appearance and game dynamics. It runs equally well on 1132's, 1108's, and 1100's (Dorados, Dandelions, and Dolphins). It can run in color for 1132's and 1100's with color boards. Several different methods of user input are supported. This document describes implementation details only. I assume that you know what Pacman is and how to play it. To load the game, type LOAD ({fs}PACMAN.DCOM) where fs is the name of the file server containing your local Lispusers directory. To start the game, type (PACMAN). It will prompt you via menus for input mode, speed, color, and high scores. The menus are described in the next section. OPTIONS Input mode: there are currently four ways to control the Pacman, depending on what hardware you have. Although you are asked to pick a mode whenever you start the game, you may switch modes freely at any point during the game. Mouse - to use this mode, move the mouse in the direction you want the Pacman to go. You only need to move the mouse when you want to change directions. Keyboard - uses the I, J, K, and space bar as cursor control keys. I is up, J is left, L is right, and space-bar is down. If you look at the arrangement of these keys on the keyboard, you will see that they form an approximate cross. Using the space bar for down (rather than M or ",") lets you control each key comfortably with your right hand; use your thumb for space, and index, middle, and ring fingers for J, I, and L respectively. Note that you must use the upper-case letters. Joystick - this mode lets you connect an Atari joystick to the keyset port on the Alto keyboard of your 1100 or 1132. See the appendix below for details on constructing the interface cable needed. This is the input mode of choice, since the arcade game also uses a joystick. You can, if you want, plug a keyset (if you can find one) into the keyset port, but it is not clear that this offers any particular advantages for data input. I have heard that it is possible to kludge a keyset port on an 1108, but I don't know how to do that. Voice - perhaps the most exotic input mode, this requires that you have an Interstate Electronics voice recognition board connected to the serial port of your machine. If you possess such a device, call me for specific interfacing details. The commands are "up", "down", "left", and "right". People walking by in the hall will wonder what's going on in your office. Speed: You can choose one of four speeds for the game. Some effort has gone into making these values similar across different machines, but there's no guarantee they will stay that way. Note that the speed of the game itself will increase (just like the arcade version) as you progress from board to board. Fast - challenging. Medium - not unreasonable. Slow - luser mode. Snail - suitable only for debugging or drugged-out hippies. Color (y/n): will run the game on your color display (if you have one). The b/w display is blanked out during color mode. Read high scores (y/n): this option is only available to users on the Xerox Internet, since the high score repository is on this net. If you are an outside or stand-alone user, always answer no to this. The high score list contains the names and score of the top ten players. Note that with the more recent addition of a speed option, this list is somewhat bogus anyway. Once you have selected your menu options, the game window will appear, along with the message "Insert quarter to start game". You will note a "quarter icon" in the window. Click this to start the game, or click anywhere else to exit. You can skip the introduction screen by clicking the mouse anywhere inside the window while the introduction is in progress. All of the standard Pacman boards are supported, along with bonus fruit and relative ghost "blue times". You get the right number of point for eating various objects. On the b/w screen, the ghosts simply invert-video when you eat an energizer; in color they turn blue. This game is adapted from the author's PDP-11 Fortran version. Call me if you want that one. Please direct all comments, questions, and bug reports to me, Denber.WBST@Xerox.COM. KNOWN BUGS ÿÿïfÿ Pieces of characters are occasionally left lying about the board following collisions. LIMITATIONS ÿÿïfÿ No sound (that's planned) ÿÿïfÿ The ghosts do not gain on you as they're chasing you. (You however, can gain on them when you're chasing them). ÿÿïfÿ The ghosts do not go around turns slower than you do. ÿÿïfÿ You can't scare ghosts off by feinting at them. ÿÿïfÿ Only the first intermission is implemented. APPENDIX: PACMAN CONTROL VIA JOYSTICK 1. You must use a switch-closing type joystick (not a pot type). The Atari 2600 (ie. "Video Computer System") or 400/800 computer joystick works fine. The pinouts given below are for this joystick. Signal descriptions are given too, so you can use other similar devices. 2. You will need a male mouse connector (the pins are embedded in the shell, so it's hard to the the sex of this type of connector), a 9 pin male D connector, and a short length of six conductor cable. 3. I will use the following convention for pin numbers since the connectors are not clearly labeled. The views below are from the pin-side of the connectors, ie. not the side that the wires are soldered to. 4. I recommend you check the completed assembly for shorts with a VOM and by running KeyTest (available to 1100's and 1132's from the NetExec) before trying it out on the game. Shorts or opens won't hurt the machine, but they will keep the joystick from working properly (obviously). Keyset connector: ----------------------------------- \ 1 2 3 4 5 6 / \ 7 8 9 10 11 12 13 / \ 14 15 16 17 18 19 / --------------------------- Atari connector: ---------------------- \ 1 2 3 4 5 / \ 6 7 8 9 / ----------------- Description: Atari Keyset Pin Signal Pin Signal 2 East 9 PAD1 3 West 10 PAD2 4 South 11 PAD3 5 North 12 PAD4 7 Ground 13 PAD5 9 Fire 14 Ground Connections: Atari Keyset 2 10 3 11 4 12 5 13 7 14 9 9 (not used in PACMAN) (LIST ((PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))((¶ (È(ŠŠ8(È (ŠŠ8DÈÈ PAGEHEADING RUNNINGHEAD?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8)) TERMINAL MODERN MODERN MODERN MODERNMODERN LOGO HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN + qqé Ù•¼#l/7 n^j´ [ u:4/%ËÑ*)("!        {Ízº