Tuesday, November 19, 2013

M.U.L.E. - The PC Port on Real Hardware

1985 was the last year that IBM was known to have published any games for its IBM PC family.  It had seen games as one of the things that consumers could do with their PCs, and had released Microsoft Adventure at the launch of the original IBM PC Model 5150.  However, by 1985 IBM no longer looked to the home consumer market as a primary market, and thus the number of games it published dwindled to nothing.  One of the last titles it published was a port of Electronic Arts and Ozark Softscape's classic M.U.L.E.  This port was ported by K-Byte Software and released very quietly.  In fact, until 2012, no one had probably played it for 15 years.  It remained a mystery and completely unavailable until someone opened up a box of old IBM games, found it, became aware of its significance and allowed it to be cracked and distributed.  The story is recited here : http://www.worldofmule.net/tiki-index.php?page=IBM+PC  Others have analyzed it for differences between it and the Atari 400/800 original and Commodore 64 port, read here : http://bringerp.free.fr/forum/viewtopic.php?f=1&t=166  In this port I will discuss how it actually plays on the systems it was intended for.

Speed

M.U.L.E. for the IBM PC requires 128KB of RAM and a CGA card.  It only supports PC speaker sound and music and one physical joystick.  The cover explicitly lists the IBM PC (Model 5150) IBM PC/XT, IBM PC Portable and IBM PCjr. as supported systems.  Note that it does not mention the IBM PC AT, which was released in 1984 and used a 6MHz 80286 CPU.  This game is speed sensitive and the game will probably run to fast on the AT, which is roughly three times as fast as the PC or XT.  Running on more modestly upgraded or faster systems, like a V20 IBM PC, XT or PCjr. or a Tandy 1000EX, SX or HX at 7.16MHz will not give such a noticeable effect on speed to make the game unplayable.

On the packaging, there is no explicit mention of the IBM Personal Computer AT.  This is probably not an oversight, as some other IBM released games from 1984-85 explicitly included the AT in the list of supported systems on the box.  The AT was released in 1984 and thus its omission was almost certainly intentional.  (K-Byte does not seem like an outfit that could afford an AT).  The game adjusts its speed for a PCjr., so if you have an exotic speedup method in your PCjr. (V20 is fine), the game will probably run too fast.

Graphics

IBM PC with CGA on an RGB Monitor



On an IBM PC, XT or 100% compatible system with a CGA card, the game will use the 320x200 Mode 4, Palette 0 (cyan, magenta, white) in low intensity with a bright white background/border.  While the game is playable on an RGB monitor, it was clearly meant to be connected to a TV or color composite monitor.  Instead of stripey cyan and magenta graphics for the four players and their plots, composite color gives brown-gold, orange, red and light blue.  It seems clear that a late CGA card was intended because the text (white/light gray against bright white) on a real color composite monitor or TV is almost totally illegible with an early CGA card (without adjustments to the brightness and contrast).  EGA and VGA cards probably will not display the intended colors.

IBM PC with Old CGA on a Composite Monitor 



It was a long-standing myth that this game was either released solely for the PCjr. or took advantage of the PCjr.'s advanced graphics and sound capabilities compared to the IBM PC with CGA and PC Speaker.  The sound is exactly the same on either the IBM PC or PCjr.

IBM PC with New CGA on a Composite Monitor



On an IBM PCjr., the game uses a 320x200 resolution four color mode with colors similar to CGA.  The bright white background is the same, but the RGB colors are now light cyan, light magenta and white.  The pixel patterns are not the same as with a non-PCjr., but still show that the game was meant to be displayed on a color composite monitor or TV.  The PCjr. artifact colors the programmers chose are not as distinct as on a CGA card, there are two shades of magenta or purple and two shades of cyan or blue-green to choose from.

IBM PCjr. with an RGB Monitor



Control

This section requires a digression.  When M.U.L.E. was released for the Atari home computer systems in 1983, officially it could only run on the Atari 800 with 48KB of RAM.  The Atari 400 was not easily upgradeable to 48KB (but when upgraded was indistinguishable from an 800 to software) and the 1200XL, 600XL, 800XL and later machines only had two joystick ports.  For the Atari original, there was no keyboard control of the characters.  At least one joystick was required, and a pair of paddles could be used by two players in the auctions.  If there were fewer joysticks than human players, the players had to share the joystick for each player's main turn.

IBM PCjr. on a Composite Monitor



The Commodore 64 only had two joystick ports, and its port of MULE did not support paddles.  Thus, players three and four had to use a pair of keyboard keys during the auctions, and the joysticks had to be shared during the player's main turns.

The IBM port only supported one joystick, notwithstanding the IBM Game Control Adapter could support two joysticks with a Y-splitter and the IBM PCjr. had two distinct joystick ports.  Unlike the Atari and Commodore versions, it did not require a joystick to play the game.  If you did not have a joystick, the arrow keys could be used to control the player during his or her main turn.  Only the main four cardinal directions could be used, the "diagonals", 1, 3, 7 and 9, do nothing on the PC keyboard.  The PCjr.'s keyboard has no numberpad, only dedicated cursor keys.

For the auction phase, the keyboard controls for each player on the IBM PC are as follows :

Player -  1  2  3  4

Up     - F1  W  O  

Down   - F5  X  .  

On the PCjr., the keyboard controls are different, due to the differing layout of the PCjr.'s keyboard :

Player -  1  2  3  4

Up     -  W  Y  [  

Down   -  Z  B  /  

There is a game crashing bug when selecting joystick control with four planeteers.  The Alt key is pressed to determine which player will use the joystick.  However, if players 1-3 use the joystick, the game will not allow you to press key to select player 4.  Player 4 must use the joystick in this case.

This game was designed for the IBM PC 83-key keyboard.  On the 83-key keyboard, Player 1's auction up key, F1 is above the down key, F5, by one key, just like the keys for Players 2-4.  On a 101-key keyboard, F1 is three keys to the left of F5.  This arrangement simply does not work well with three other people.

The keyboard handling takes some getting used to.  The Enter key corresponds to the joystick button.  When doing anything requiring a button press like selecting a land plot, beginning your turn or installing a M.U.L.E., it is best to hold the button down until the game acknowledges the input.

The Alt key functions essentially as a speedup key in the game.  It can end auctions after everybody has bought and sold what they can.  It can bypass the summary screen and the chance animations.

The Esc key acts as a pause key.  Unfortunately, it will cause the game to freeze on a Tandy 1000 90-key keyboard.  If you are going to play M.U.L.E. on a Tandy 1000, I would advise using the joystick and setting the speed machine to slow (if an EX, HX, SX or faster) at boot time.  On the Tandy 1000 90-key keyboard, the Esc key is right below the F1 key, making it too easy to press if you are controlling Player 1.  The composite colors on a Tandy with an RCA video jack (TX or earlier) will look different than on an IBM PC with a CGA card.

Finally, the game can be saved in progress by pressing Ctrl-Q.  This does not appear to be a feature of the earlier versions.

No comments: