Revenge From Mars pinball is controlled by a personal computer located in the head of the game. The Operating System controlling the PC is called XINA, which is unique in it's command structure. (Ordinary UNIX / DOS commands do not work.) A total of 99 XINA commands are available to view, alter, and execute the parameters surrounding the game. It is much easier to interface to the game PC via a keyboard, rather than using the front-door panel (which only has 4 buttons.) To hook up a keyboard, unlock and remove the artwork-panel on the head. Up above is the PC cage - plug in a standard IBM PC/AT keyboard into the keyboard port. (Note that this PC has an old-fashion 5-pin DIN plug rather than the newer 6-pin mini-DIN plug - I simply use a 6-to-5 pin pig-tail adapter.) In most cases, the PC will detect the connection of the keyboard and place the machine into the "SHELL" mode. Also note that you can "capture" all printouts / command responses by connecting a PC to the serial port (9600 baud, 8, N, 1) and by having the PC run a terminal program (HyperTerminal). Typing HELP or ? will display the list of commands shown below.
Most XINA commands are common between RFM and SW:E1 games, though the XINA
level in RFM 1.5 includes communication options and code that are not available
in released levels of SW:E1 (it appears that much of the XINA code used on the
SW:E1 during the tournament at Pinball Expo 99 was incorporated in XINA 1.17 in
RFM 1.3/1.4). In addition there are some game-specific commands in RFM.
(There were apparently some cool game-specific commands for SW:E1 that were
removed for production code build.)
Many of the XINA commands available in RFM 1.5 are useful for advanced
diagnostics or debugging of gameplay only and are of limited general
use. During the development of a Pinball 2000 game, many such commands
were added by the developers. Not all remain in the release level of
code.
There are three commands that may be of general interest: fb, attack_mars,
and scenemgr. Many others are interesting (e.g. pinevents), but these
three are likely to be the most commonly used by the average RFM home owner.
If you have additional information about XINA's command set ('cause I don't have
a complete set of information, please e-mail Jim Hicks (jimhicks@attglobal.net)
as he collects bug reports. (Thanks!)
Warning: DO NOT issue commands or alter settings using the XINA
command set unless you know what you are doing and understand the
implications. I will not be held liable for any damage caused to your
machine by using these commands.
Be sure to read the background XINA information in the section above titled XINA Background.
Warning: DO NOT issue commands or alter settings using the XINA command set unless you know what you are doing and understand the implications. I will not be held liable for any damage caused to your machine by using these commands.
Keyboard Function-Key Commands:
F1 - HelpXINA v1.18 Command List:
? | Flags | Ping |
Attack_Mars | FlapGate | Pool |
Audio | FlipRamp | Price_Current |
Bitmap | Flip | Price_Dyn |
Bootdata | FUpdate | Price_Table |
BPool | Game | PrintOut |
BS | GX | PS |
Clear | Help | PTY |
CMOS_Buffer | History | Pub |
CMOS | HSTD | Queue |
CONF | HTTPD | Ramps |
Continue | IFStat | RASYS |
Credit | IGMP | Reboot |
DCS | Info | Replay |
DeffMGR | KEvents | Reslist |
DEVS | Kill | Resources |
DGStat | LampMGR | Routes |
DipSW | Lamp | Route |
DispMGR | LeffMGR | RTC |
Diverter | LockPost | SceneMGR |
Down | Loops | SEM |
Drive | Martians | Sleep |
DropTGT | MEM | Stack |
Dump | Midas | Start |
Echo | MON | Switch |
Enter | Multi | Term |
Errors | NetStat | TimeRQ |
Escape | Net | Time |
Ether | NonFatal | UpdtMGR |
EventLOG | NSLookup | Up |
Exit | PAL | VDAI |
Fatal | PDB | ZC |
FB | PinEvents | Zombie |
Be sure to read the background XINA information in the above section titled XINA Background.
Warning: DO NOT issue commands or alter settings using the XINA command set unless you know what you are doing and understand the implications. I will not be held liable for any damage caused to your machine by using these commands.
Typing the command (with no other text) will display the proper usage of the command, parameters, acceptable values, etc. Some exceptions to this are obvious, such as commands like "HELP", "REBOOT", etc. Note: commands / arguments should be typed in all lowercase. (They are displayed here in upper/lower case for easier reading.) If a command's function is not obvious in what it performs, the listing below will say "(function unknown)" to indicate that I do not know what the command does. (If you do, please e-mail me with an explanation - thanks!)
Syntax: A <parameter> is manditory, <param1 | param2> means one of param1 or param2 is mandatory. A [parameter] is optional, [param1 | param2] means either of param1 or param2 is optional. A 'N' means a numeric value, 0 to ?, based on the command.
XINA v1.18 Command List Usage:
? | Produces a listing of commands, same as "HELP" |
Usage: |
? |
Attack_Mars | Starts / stops the Attack_Mars mode. Can be used to start Attack Mars mode for practice. |
Usage: |
attack_mars < Start | Stop | FlagRamps | FlagMS | FlagModes > |
Audio |
Adjusts audio properties |
Usage: |
AUDIO INIT |
AUDIO INFO | |
AUDIO Quiet {0-5} | |
AUDIO Volmin | |
AUDIO Voldef | |
AUDIO Volmax | |
AUDIO Vol++ | |
AUDIO Vol-- | |
Bitmap | Displays bitmap memory allocations |
Usage: |
bitmap < Info | Main | Waste > |
BOOTDATA | Change / view which boot image is booted |
Usage: |
bootdata < Current | ROM | Flash > [Verify] |
BPOOL | (function unknown) |
Usage: |
bpool |
BS | (function unknown) |
Usage: |
bs < debugon | debugoff | off | on > |
CLEAR | (function unknown) |
Usage: |
clear < cmos > |
CMOS_Buffer | Displays flash CMOS memory utilization |
Usage: |
cmos_buffer < view | headers | reset | off > |
CMOS | Displays ROM CMOS memory utilization |
Usage: |
cmos < view | headers | flash | prologue | reset | off > |
CONF | Provides XINA status / table information |
Usage: |
conf |
Continue | Used internally for continuing programming scripts |
Usage: |
continue |
Credit | Manages current credits |
Usage: |
credit < init | info | dec > |
DCS | Manages the digital sound system |
Usage: |
dcs N [track [pan]] |
dcs < + | - > | |
dcs raw <N> | |
dcs quiet [track] | |
dcs trkvol <trk vol> | |
dcs trkpan <trk pan> | |
dcs signals [clear] | |
dcs version | |
dcs [warm] reset | |
DEFFMGR | (function unknown) |
Usage: |
deffmgr < list[_N] | debug<on|off> | log<on|off> | entry<addr> | names[_N] | unreq<addr> > |
|
|
DEVS | Displays a listing of device names |
Usage: |
devs |
DGSTAT | (function unknown) |
Usage: |
dgstat |
DIPSW | Shows the dip switch value |
Usage: |
dipsw |
DISPMGR | (function unknown) |
Usage: |
dispmgr < list[_N]debug<on|off> | entry<addr> | frames | fclear | locks[_N] | log<on|off> | on | off > |
Diverter | Shows info regarding the diverter (ramp) |
Usage: |
diverter < debugon | debugoff | info > |
DOWN | Same as the Down button on the Front-door |
Usage: |
down |
DRIVE | (function unknown) |
Usage: |
drive < 0-47 | list | off | highon | highoff > |
DROPTGT | Status of right ramp drop target |
Usage: |
droptgt < debugon | debugoff | info > |
DUMP | Provides a memory dump |
Usage: |
dump <address> [count] |
ECHO | Allows a command to be echoed to the window / log |
Usage: |
echo |
ENTER | Same as the Enter button on the Front-door |
Usage: |
enter |
ERRORS | Displays a summary of known errors |
Usage: |
errors |
ESCAPE | Same as the Escape button on the Front-door |
Usage: |
escape |
ETHER | Displays Ethernet network statistics |
Usage: |
ether < info > |
EventLOG | Manages the event log buffers |
Usage: |
eventlog < dump[depth[count]] | flush | stats | types > |
EXIT | Exit a running script |
Usage: |
exit |
FATAL | Displays a listing of the fatal error log |
Usage: |
fatal |
FB | Monitor adjustments, i.e. flips display. Useful for flipping the monitor when the playfield glass is removed. |
Usage: |
fb < clear | bars | border | pillars | vsyncs | flip | sync V(0:1) H(0:1) > |
FLAGS | Displays flag values / state |
Usage: |
flags < local | global | static > |
FlapGate | Monitor status of left / right flap gates |
Usage: |
flapgate < debugon | debugoff | info > |
FlipRamp | Monitor status of up / down ramp |
Usage: |
flipramp < debugon | debugoff | info > |
FLIP | Toggle state of flippers |
Usage: |
flip disable [all|0-3] | enable[all|0-3] | player<all|0-3> | computer<all|0-3> | on<all | 0-3> | off <all | 0-3>| debug > |
FUpdate | Firmware Update |
Usage: |
fupdate < load<com1 | com2> <baudrate> [sf | sfonly] > |
fupdate enable | |
fupdate disable | |
GAME | Change / view game parameters. |
Usage: |
game < info | tilt | over | name | collect > |
GX | Displays various GX processor configuration registers |
Usage: |
gx < crs | ccrs | bcrs | mcrs | dcrs | id | cx5520 > |
HELP | Produces listing of available commands, same as "?" |
Usage: |
help |
HISTORY | Shows last commands entered from the keyboard |
Usage: |
history |
HSTD | Displays High Score To-Date Tables |
Usage: |
hstd |
HTTPD | Displays Internet hyperlink values |
Usage: |
httpd < list | stats > |
IFSTAT | Switches between interface 0 or 1 |
Usage: |
ifstat < intf > |
IGMP | Connect / disconnect via network to other machines |
Usage: |
igmp < join | leave> <group> |
INFO | (function unknown) |
Usage: |
info |
KEVENTS | Toggle values of key event settings |
Usage: |
kevents resource pid <on | off> |
kevents proc_create <on | off> | |
kevents proc_suicide <on | off> | |
kevents proc_kill <on | off> | |
kevents proc_reap <on | off> | |
kevents sem_create <on | off> | |
kevents sem_delete <on | off> | |
kevents hook_exec <on | off> | |
KILL | Terminate a process |
Usage: |
kill < process-id > |
LAMPMGR | Monitor the lamp matrix |
Usage: |
lampmgt < list[_n] | matrixes[_n] | debug<on|off> | log<on|off> | on | off > |
LAMP | Perform lamp tests, change lamp settings |
Usage: |
lamp test |
lamp lamp <all | N> <duty> | |
lamp blink <all | N> <duty> | |
lamp blink rate <time> | |
lamp effect <all | N> <duty> | |
lamp mask <all | N> <duty> | |
lamp dump <lamp | blink | effect | mask> | |
lamp saver <on | off | on_time N | off_time N> | |
LEFFMGR | (function unknown) |
Usage: |
leffmgr < list[_n] | debug<on|off> | log<on|off> | unreq <addr> | names[_n] > |
LockPost | Monitor the jet bumper exit post |
Usage: |
lockpost < debugon | debugoff | info > |
LOOPS | (function unknown) |
Usage: |
loops < debugon | debugoff | info > |
Martians | Displays parameters about the two bouncing Martians |
Usage: |
martians < debugon | debugoff | info > |
MEM | Displays current memory utilization |
Usage: |
mem < stat | free | usage <PID> | allocs [entries] | allocs_d [ entries [size]] > |
MIDAS |
(function unknown) |
Usage: |
midas <info | enable | disable> |
midas monitor [on | off] | |
midas debug_level [N] | |
midas send <ack | nack | rvi | eot> | |
midas send cash door <open | close> | |
midas send cash <5p | 10p | 20p | 50p> | |
midas send cash <L1 | L2 | L5 | L10> | |
midas send token <5p | 10p | 20p | 50p> | |
midas send token <L1 | L2 | L5 | L10> | |
midas send hstd <N> | |
MON | Reboots the machine with an extensive log displayed |
Usage: |
mon |
MULTI | Provides current status of various flags |
Usage: |
multi < list [N] > |
NetStat | Displays the current network status |
Usage: |
netstat |
NET | Control / monitor the Ethernet network capability |
Usage: |
net < start | monitor [mac] <on | off> | nif <N> > |
Example: |
net monitor 0x00 0xe0 0x29 0x0f 0xeb 0xf6 on |
NonFatal | Displays the non-fatal error log |
Usage: |
nonfatal |
NSLookup | Network Service Name Lookup |
Usage: |
nslookup |
PAL | (function unknown) |
Usage: |
pal < on | off > |
PDB | Displays current status of the Power Driver Board |
Usage: |
pdb |
PinEvents | Triggers a multitude of events |
Usage: |
pinevents game <on | off> all |
pinevents game <on | off> game_init | |
pinevents game <on | off> add_player | |
pinevents game <on | off> cycle_players | |
pinevents game <on | off> game_start | |
pinevents game <on | off> game_restart_game | |
pinevents game <on | off> game_restart_ball | |
pinevents game <on | off> ball_start | |
pinevents game <on | off> first_ball | |
pinevents game <on | off> ball_serve | |
pinevents game <on | off> ball_serve_state | |
pinevents game <on | off> outhole_made | |
pinevents game <on | off> valid_playfield | |
pinevents game <on | off> score | |
pinevents game <on | off> endball_begin | |
pinevents game <on | off> endball_kill | |
pinevents game <on | off> game_over | |
pinevents game <on | off> bonus | |
pinevents game <on | off> match | |
pinevents multi <on | off> all | |
pinevents multi <on | off> audit_complete | |
pinevents btime <on | off> all | |
pinevents btime <on | off> ball_search | |
pinevents btime <on | off> status_report | |
pinevents btime <on | off> chase_ball | |
pinevents tilt <on | off> plumb | |
pinevents tilt <on | off> ball_roll | |
pinevents tilt <on | off> game | |
pinevents tilt <on | off> slam | |
pinevents update <on | off> request | |
pinevents update <on | off> update | |
pinevents update <on | off> group | |
pinevents update <on | off> object | |
pinevents update <on | off> delay_pid | |
PING | Determine if a link / host is available |
Usage: |
ping host [size] |
POOL | (function unknown) |
Usage: |
pool < stat > |
Price_Current | Displays the current value of coins |
Usage: |
price_current |
Price_Dyn | Displays status of dynamic (multiple coins) pricing |
Usage: |
price_dyn |
Price_Table | Displays the price / coin table |
Usage: |
price_table |
PrintOut | Displays via shell various printouts / audit logs |
Usage: |
printout < audits | adjustments | hstd | hourly | daily | pricing | fatal | nonfatal | everything > |
PS | Displays CPU processes in memory |
Usage: |
ps |
PTY | Check status of COM / Printer port |
Usage: |
pty < stat [N] > |
PUB | (function unknown) |
Usage: |
pub < game | sound1 | sound8> dump <address> [<count>] > |
QUEUE | (function unknown) |
Usage: |
queue < sleep | ready > |
RAMPS | (function unknown) |
Usage: |
ramps < debugon | debugoff | info > |
RASYS | (function unknown) |
Usage: |
rasys < debugon | debugoff > |
REBOOT | Reboots (re-starts) the machine, smaller log entries |
Usage: |
reboot |
Replay | Display / change replay values |
Usage: |
replay <info | buckets | check | reset> |
replay add N [random | low | middle | high] [debug] | |
replay boost <ah | ar | coin | gs | go | rf> | |
Reslist | Displays a lengthy resource manager / system list |
Usage: |
reslist |
RESOURCES | Displays a list of resources in use |
Usage: |
resources |
ROUTES | Displays current network routing information |
Usage: |
routes |
ROUTE | Configure network routing information |
Usage: |
route add <dest> <mask> <gateway> <metric> <ttl> |
route delete <dest> <mask> | |
RTC | Access various RTC chip registers |
Usage: |
rtc < dump > |
SCENEMGR | Manage the 12+ scenes (modes) (including bonus waves) |
Usage: |
scenemgr < awardshot<id> | awardswitch<id> | debugoff | debugon | info | reset<id> | resetall | select<id>| start<id> | stopall > |
Notes: the scenemgr command can be used to
manage which scene is active in the game and/or display information on the
status of an active scene. The command can be used be used at the
beginning of the game to select the starting scene, including selecting
scenes in the middle group that are not normally selectable by the action
buttons. For example, use "scenemgr select 8" to select
"Drive-In Demolition" as your first scene. All other
gameplay continues options/rules continue normally. During gameplay scenemgr can be used to start another scene at anytime using the format: scenemgr resetall stopall start N where N = 0 - "Fuel Bonus Wave" 1 - "Saucers Bonus Wave" 2 - "Weapons Bonus Wave" 3 - "Alien Abduction" 4 - "Martian Happy Hour" 5 - "Secret Weapon" 6 - "Tower Struggle" 7 - "Question Mark" 8 - "Drive-In Demolition" 9 - "Paris In Peril" 10 - "Big-O-Beam" 11 - "Mars Kneads Women" |
|
SEM | Shows status of semaphores |
Usage: |
sem |
SLEEP | Pause execution of program by delay factor |
Usage: |
sleep < delay > |
STACK | (function unknown) |
Usage: |
stack < history > |
START | Same as the Start button on the Front-door |
Usage: |
start |
SWITCH | Perform switch diagnostics |
Usage: |
switch < debug | callbacks | timers | counters > |
switch test < on | off > | |
switch trace < on | off > | |
switch break number | |
TERM | Manage the serial (terminal) port |
Usage: |
term < on | off | capslock | control | swap > |
TIMERQ | (function unknown) |
Usage: |
timerq |
TIME | Displays the current date and time |
Usage: |
time |
UPDTMGR | Manages scenes, backgrounds, sounds, music |
Usage: |
updtmgr < list | update > |
UP | Same as the Up button on the Front-door |
Usage: |
up |
VDAI | (function unknown) |
Usage: |
vdai info |
ZC | (function unknown) |
Usage: |
zc |
ZOMBIE | (function unknown) |
Usage: |
zombie process-id |
Why?
Good question! Maybe because you saw the SW:E1 machines
network-linked together at Pinball Expo '99. Maybe because with an
Ethernet card installed you can access your RFM's internal commands via the
Internet. (To check earnings, diagnostics, etc.) Or perhaps you own
more than one PB2K machine and you're going to have your own tournament?
To tell the truth I have not installed an Ethernet card in my machine, but I
wanted to document the procedure as I know it. Again, perform this kind of
operation at your own risk.
Ethernet Card Specifications
I've been told that RFM only supports one brand of Ethernet Card, an SMC
(brand) ETHEREZ 16BIT ISA 10MBPS RJ-45 network card.
card needs to be installed into the extra ISA slot in the RFM (v1.4 or better) pinball machine motherboard. After the
settings are configured for the network adjustments, you can connect to the XINA
command shell via telnet or alternately you can connect to the machine using a
web browser (a simple httpd server is built in!).
Ethernet Configuration Instructions
Note that depending on the motherboard in the RFM machine, you may have to
adjust the BIOS setup setting prior to getting the network card working in order
to avoid an IRQ conflict. This can be determined if there is a problem by
configuring the network adjustments, setting an IP address/mask, and then using
the keyboard (or serial port) to access a command prompt and run 'ping'.
If the 'ping' works (the lights on the card blink or device on the network
responds to the ping, etc.), then you don't need to change the BIOS. If
you get some kind of "ez" error message, then you will have to do the
following:.
Remove the PRISM board, plug in a keyboard and power up the box. If you
are lucky and your monitor "syncs up" to the BIOS screen, then you can
see what you are doing. If not, you may want to temporarily plug in a PC
monitor instead of the Pin2000 monitor.
You will need to 'Disable' the 'Built in OnBoard Audio' in the 'Integrated
Peripherals' menu. On some RFM motherboards, the onboard audio uses the
IRQ that the default setting of the EtherEZ network card uses.
Here are the key strokes that should effect the change:
1. Remove the PRISM board/plug in PC monitor and keyboard
2. Power up (you will see the normal PC BIOS startup because the PRISM
card is out)
3. Press DEL to enter setup (the BIOS setup should appear)
4. Press the RIGHT ARROW key (move to the INTEGRATED PERIPHERALS menu)
5. Press the ENTER key (enter the INTEGRATED PERIPHERALS menu)
6. Press the RIGHT ARROW key (move to the right hand column of menu
items)
7. Press the DOWN ARROW key (move to the BUILT IN ONBOARD AUDIO menu)
8. Press the PAGE UP key (change the adjustment from ENABLE to DISABLE)
9. Press the ESC key (leave the INTEGRATED PERIPHERALS menu)
10. Press the DOWN ARROW key (move to the SAVE AND EXIT menu)
11. Press the DOWN ARROW key
12. Press the DOWN ARROW key
13. Press the ENTER key (SAVE AND EXIT)
14. Press the Y key (confirm)
15. Press the ENTER key (do it)
16. Replace the PRISM board
The default username / password are set to "PIN2000 / MANAGER", which you may
want to change since all RFM machines are initially set to the same
values. (But who would want to hack into a pinball machine?)