Braze Asteroids Multigame Installation Instructions

 

Note: This kit installation requires 2 wires to be soldered (attached) to the Asteroids game PCB.

AST Kit

Asteroids Multigame Kit

 

 


 

Step 0: Make sure the Asteroids game is fully working!

Before installing this kit, make sure the Asteroids game is fully functional. The Asteroids Multigame kit can only work on a fully functional unmodified Atari Asteroids board. If the game board has any special modifications such as speed up hacks, input swaps, it is possible this kit will not function correctly. This is a good time to enter test mode, make sure the RAM test passes, make sure the test mode screen does not indicate any other failures. Make sure the game can enter and exit testmode. Verify that all the game play functions, switches, LEDs, and all game sounds are working correctly. Pay close attention and make sure all the vectors are displayed correctly without any flickering or glitches. It is important to have a solid stable working Asteroids game before installing the kit.

You are now ready to start the installation.

Note: If the Asteroids board contains the Braze Technologies Asteroids High Score Save Kit then see: how to transfer high scores for instructions on a special one-time procedure for transferring (importing) the high scores from the Asteroids HS save kit to the Asteroids Multigame.

 


 

Step 1: Remove the game PCB from the cabinet

Make sure the game is turned OFF. Locate the main game PCB. Refer to the Asteroids manual for the location of this boardset. For Asteroids upright and cabaret, the game PCB is attached to the right hand side of the cabinet (as viewed from the back). For Asteroids cocktail, the game PCB is mounted to the back of the access panel. The board may have one more screws attaching the boardset to the side of the cabinet. These screws will beed to be removed so that the boardset can be safely removed for easy access. When removing the boardset it is recommended to label the connector faces with something like "parts side" or "solder side" to insure when re-installing the boardset that everything gets hooked up correctly.

Tip: Take your time! Remove the gameboard so the work can be done in a well lighted area. There are two simple solder connections that need to be made so a soldering iron and solder are required. Do not attempt to install this kit without removing the gameboard from the cabinet.

 

 
Asteroids Upright PCB location
 
Asteroids Cocktail PCB location
(Click images for a larger view)

 

AST PCB 
Asteroids PCB - Key Component Locations

 

Step 2: Locate and remove the 6502 CPU chip

6502 CPU Location

Locate and remove the 6502 CPU chip on the boardset. Use the images below to assist in locating it. See 6502 Chip Identification for additional information. The 6502 CPU chip is a 40 pin (large) chip, located in the corner of the board at location C3. It is the only 40 pin chip on the boardset and on some earlier revisions is located in column 2. See the yellow square in the picture above. It is adjacent to the smaller "catbox" connector.

Gently remove the 6502 chip by using a flat head screwdriver to pry it out of its socket from each end.

Caution: Some of the Atari boardsets have open frame sockets which do not protect the PCB traces. Be careful not to scratch any of the PCB traces underneath the socket. Be careful not to bend any of the pins. If any pins do get inadvertently bent they will need to straightened out before the next step.

 


 

Step 3: Insert the 6502 CPU into the Multigame Kit

Insert the just removed 6502 CPU into the empty 40 pin socket on the Multigame Kit. Make sure pin-1 is correctly oriented. Pin-1 is marked on the 6502 CPU chip by some type of indentation or circle molded into the plastic. The end of the chip with the marking, needs to match up with the socket on the daughter card that also has a marking on the plastic. Pin-1 is also labelled on the kit pcb with a large "1". If the 6502 chip is installed backwards it may cause permanent damage to the 6502 chip or the multigame.

 


 

Step 4: Insert the Multigame CPU into the boardset

Insert the mulitgame CPU daughter card into the 6502 CPU socket on the Asteroids boardset where the 6502 CPU chip was originally removed from. Check to make sure pin-1 of the 6502/daughter card is oriented to correctly match pin-1 on the boardset. Use the photos as a guide.

Be careful not to bend any of the tiny pins on the multigame. Do not force the multigame into the socket.

 


 

Step 5: Locate and remove the vector ROM chip

VECROM

Locate and remove the Asteroids vector ROM chip on the boardset. The vector ROM is located at grid location N/P3 and is a 24 pin device usually on the same column as the 6502 CPU. On some earlier revisions this chip is located in column 2.

Remove the chip gently by using a flat head screwdriver to pry it out of its socket from each end just like done in step 2 when removing the 6502 chip.

The Asteroids vector ROM chip is not used once the multigame is installed. It is suggested to save this chip in the Multigame antistatic bag. It may be needed for trouble shooting and if ever the Multigame kit is to be uninstalled and reverted back.

 


 

Step 6: Locate pin-20 of unpopulated socket at R3

Closeup

Next to the vector eprom socket should be an unpopulated vector socket at board location R3. Counting carefully, locate pin-20 of this unpopulated socket. The unpopulated R3 vector rom socket layout has 24 pins. Use the photo as a guide. It is important that this signal is correctly located as the multigame vector wire will attach to this hole. This signal corresponds to schematic signal VROM1.

Tip: Prepare this hole for soldering. Using a solder sucker or solder braid, remove the solder in the hole of pin-20. This is best done before inserting the Multigame vector pcb in order to have full access to this pin. The vector daughter card will partially over this pin.

 

 


 

Step 7: Attach the VROM1 wire to the boardset

Closeup

The short wire from the Asteroids Multigame vector board will need to be soldered to the asteroids PCB. This signal corresponds to schematic signal VROM1. This signal is an output of the 74LS139 chip at L3 pin-11. On most asteroids boards this signal is only accessible in two places. One where the signal originates directly on this 74LS139 chip and the other at pin-20 of the the unpopulated 24-pin vector socket as identified in the previous step. The VROM1 signal trace only follows the top of the PCB and there are no via holes on this signal trace. Solder this wire into the pin-20 hole of the unpopulated vector rom socket.

Solder the wire from the vector daughter card into this hole on the solder side of the PCB and clip off any excessive wire that pokes through. Inspect your work, checking to make sure the wire is in the correct pin location and that the solder joint is good and that there are no solder shorts or excess solder blobs.

Alternate location for VROM1 If for some reason the VROM1 signal (hole) is not accessible on the unpopulated vector socket, then the mulitgame vector wire will need be attached directly to pin-11 of the 74LS139 chip at L3. In this case carefully clean pin-11 of the 74LS139 chip. Then place (melt) a small solder dab on pin-11. Solder tin the vector wire on the multigame kit by placing a small solder dab on it. Then solder the vector wire to pin-11 of the 74LS139 making a strong physical and electrical connection. This alternate method should only be used if the VROM1 signal (hole) on the spare vector socket cannot be used.

 


 

Step 8: Insert the Vector board into the boardset

VECROM

 

Install the vector daughter card into the N/P3 socket. Make sure no pins get inadvertently bent and make sure that no pins overlap the ends of the socket. At this point both Multigame pcbs should be installed into their respective sockets. You may want to use a few strips of tape to secure the wires to the board so that they do not easily get caught or snag on something. The long audio wire still needs to be attached and that is covered later.

 


 

Step 9: Locate the LM324 audio amp chip at P11

LM324

Locate the LM324 audio amp which is located in the audio section of the Asteroids board. On the most Asteroids boards, this chip is located at grid location P11. The audio wire from the Asteroids Multigame CPU board will connect to the schematic signal that is pin-9 of the LM324. This provides a connection between the POKEY chip on the Asteroids Multigame kit and the input to audio pre-amp on the Asteroids board. 

PIC2

As seen in the schematic, this signal is also connected to several nearby resistors. Using the photos locate the cluster of 6 resistors that are connected to pin-9 of the LM324. Select one of those resistor and attach the long audio wire from the asteroids multigame to the common end shared by this group of resistors.

 

Tip: Since the audio wire is long, it is suggested to secure it to the Asteroids board or neatly tuck it around the chips such that it does not dangle or snag on anything. One way to do this, is to 'thread' the wire underneath a few components on its way from the kit to the LM324 audio area. Start at the kit, thread the wire through the GND test point at grid location J4. From there, thread the wire down and around the RAM chip at P3. Continuing toward the audio area, thread the wire underneath the electrolytic capacitor at C19 next to the DIP switch. Continuing toward the audio area there are several other capacitors which you can selectively thread the wire through until the wire is within a few inches of the LM324 area, Alternatively you can use tape or a glue gun to attach the wire to the pcb in order to keep things tidy.

 


 

Step 10: Solder the audio wire to LM324 resistor cluster

PIC1

If needed, cut the audio wire to a shorter length such that there is not any excess wire. Place a small solder dab on the resistor cluster where the audio wire is going to be attached and also solder tin the wire before crimping it around the resistor. This will make for a cleaner and stronger connection. It is suggested to loop the wire underneath one of the resistors and secure it to the resistor lead without shorting to any other component. Check your work afterwards to make sure the wire is soldered to the correct group of resistors and that there are not any shorts between them. Use a magnifying glass for an up close look.

Congratulations - This completes the Asteroids Multigame kit installation process!

Alternate location for audio wire Alternatively this long wire can be connected directly to pin-9 of the LM324. This method should only be used if the wire is unable to be connected to the cluster of resistors.

 


 

Step 11: Double check your work

Review the steps and double check that 6502 CPU is properly installed into the daughter card with no bent pins and that it is correctly oriented for pin-1. Check that the daughter card is also installed snug into the 6052 CPU socket at C3 with pin-1 matched up. Check to make sure the daughter card is not inadvertently off by one row such that one pin on each side is off the end of the socket. Repeat the checks for the vector board. Examine the solder connections looking for any cold or broken solder connections or any solder shorts. REPEAT: If any of these devices are installed incorrectly it may cause permanent damage to the boardset or kit.

 


 

Step 12: Power-up the game and enjoy!

Re-install your board into the cabinet, hookup the edge connector with the original orientation and then power-up your game. This is a good time to review the power-up selftest description.

After the game has booted up and appears to be working that is a good time to enter testmode and to configure the game settings to your personal preference. If the game does not come up, turn power off immediately, double check your work, and read over the trouble shooting section and the power-up selftest description.

Note: If you are transferring your Asteroids high scores from a previously installed Asteroids High Score Save Kit review the transferring high scores procedure.

 

Diagnostics 
Multigame power on diagnostics
Setup 
Multigame configuration setup from testmode

 


 

Step 13: Optional - Remove the CPU ROMS - "ROM SAVER"

As a side note, if you want, you can also remove the original AST CPU eproms, hence the expression "ROM SAVER". I personally like to remove the eproms so that the board will consume slightly less power and generate a little less heat. This however is optional. The three eproms are located at the edge of the board near the 6502 CPU location in row 1.

It is suggested that this step is done after verifying the Asteroids Multigame is working. That is because in the trouble shooting section one of the procedures depending on the problem is to un-install the multigame kit and revert it back to Asteroids for verification.

Trouble Shooting

General Overview and Strategy

Not trying to sound like an old nag, but the first step to trouble shooting the Asteroids Multigame is to throughly review the install instructions and double check all of your work checking for bent pins, checking that the kit is not overlapping the socket by one pin, checking for backwards CPU, and that the 2 wires are indeed soldered to the correct locations on the board. This is also a good time to review the multigame Power On Self Test (POST) and testmode procedures.

The two Start LEDs and audio sounds are used to help debug problems. It is essential that your machine's start LEDs and Audio are all fully working.

The general approach for trouble shooting the multikit is to determine what (if any) signs of life the game indicates and from that determine how far into the startup sequence the game as progressed. This can greatly narrow down the scope of the problem and how to debug it. The multikit has enhanced diagnostic functions not found on the original asteroids board and also performs diagnostic tests in a more extensive and exhaustive manner. In some cases it is possible the multikit will detect existing problems not previously detected by the original asteroids software.

Looking for signs of life

Try putting the game in and out of testmode to see if there is any behavior change, such as LED patterns, audio tones, messages on screen. Attempt to get a full assessment of the state of the machine, then look over the following sections to see what topics match with the problem(s) seen.

Game appears dead - Leds are always off

What are looking for in this section is for any signs of life such as even a brief flash of the start LEDS.

Check to see if the red +5V LED on the game board itself is on. Make sure the game board is probably installed with the correct orientation of the edge connector. If the pcb LED is off, the board does not have power

The game board will powerup with both the two Start LEDS ON. As well if the game is resetting (eg watchdogging), each reset should cause the LEDs to come back on, even if just briefly. Try both test mode on and test mode off switch settings.

If the LEDs do light, even if just briefly, check out the section Game appears dead - Both LEDs are always ON. If you cannot get the start LEDs to light at all, then focus back on the board installation, power supply, etc. As it appears the problem is probably not related to the kit.

 

Game appears dead - Leds are always ON

The game board will powerup with both the two Start LEDS ON. As well if the game is resetting (eg watchdogging), each reset should cause the LEDs to come back on, even if just briefly. Look closely and see if the LEDs flash, even if very briefly. See if testmode switch on or off changes the behavior.

What we are looking for here is any sign that the 6502 CPU complex has started executing instructions. One of the very first things the multigame software does during bootup is to turn off player-1 start LED (but leave on the player-2 start LED). It does this very early in the bringup sequence to indicate the first signs of life. If the game board resets, it still should cause a quick flickering of LED-1. Determine if the LEDs never turn off or if they flicker or flash.

Try both test mode on and test mode off switch settings.

 

Game not running - LEDs flicker or flash quickly

Game is probaby running for just a split second and then the watchdog is resetting the game (eg. watchdogging). Since the game powers up with both LEDs ON and the early boot sequence turns off LED-1, a reset can appear to make it look like LED-1 is flickering. If the game is resetting, the strategy is to figure out what is causing it to reset.

Try both test mode on and test mode off switch settings and see if that changes the behavior any. Testmode will do a series of exhaustive memory tests, and if any of the tests fail it will pulse out a code using high and low tones as well it will flash the LEDs in conjunction with the pulses. If you are seeing this behavior check out section Game not running - series of beeps in testmode.

 

The multigame diagnostic software makes many uses of the LEDs during selftest operations to indicate progress and or failures. The use of the LEDs is different for testmode versus the normal powerup boot sequence. In addition to the LEDs, audio tones may accompany the failure pattern to provide additional information. The following table shows the failure codes.

Normal Bootup LED patterns
LED-1 LED-2 Notes
Off
(never ON)
Off
(never ON)
Most likely board does not have power. See dead.
ON ON Initial powerup status. CPU is not running. See stuck.
Off ON Game has started to run. Indicates progressed to state "running CPU tests". The game should not stay hung in this state.
Flickering ON Game may be watchdogging (resetting) and causing LED-1 to appear to flash very quickly. This is not the same as a slow blinking LED-1 pattern. It could be a CPU RAM failure. Put the game in testmode for more exhaustive testing, as testmode is able to better test and isolate CPU RAM failures. See flicker.
Off Slow Blink Game has failed atleast one of the CPU tests. It is likely the game may reset (watchdog) and thus interrupt this blinking pattern and restart the tests. Disabling the watchdog reset circuit may allow this pattern to be continually displayed thus giving information that there is a problem in the CPU area. Also trying testmode should provide additional information.
ON Off Game has passed the CPU tests. Indicates progressed to state "running VECTOR tests". The game should not stay hung in this state.
Slow Blink Off Game has failed atleast one of the VECTOR tests.
Slow Blink
Alternating
Slow Blink
Alternating
Game has failed atleast one of the selftests, but the CPU and VECTOR tests passed. The test failure is displayed on the screen. The game is prohibited from entering gameplay mode due to the failing hardware and remains in this state.
Slow Blink
Synchronized
Slow Blink
Synchronized
Selftest has passed and is performing the countdown while displaying the bootup splash screen test results. Or it has finished the countdown, transitioned to the multigame, AND the multigame is configured for FREE PLAY (default). The LEDs are flashing to indicate you may start a 1-player or 2-player game.
Off Off Selftest has passed and has finished showing the countdown bootup splash screen. It has transitioned to the multigame and the multigame is configured for coinage LEDs are off indicating that coins need to be added before a game can be started.
Test Mode LED patterns
LED-1 LED-2 Notes

Game not running - series of beeps in testmode

The multigame software has exhaustive memory tests which are run at the beginning of testmode on both the CPU RAM and the VECTOR RAM. The multigame completely tests all of the RAM and if there are any failures it beeps out a code using high and low tones just like the original asteroids testmode does. See section test mode memory failures.

Hidden factory erase sequence

When in configuration settings mode pressing LEFT + RIGHT + FIRE + THRUST will cause the entire contents of the serial eeprom to be completely erased. All high scores and settings will be lost! This is a hidden backdoor way to resetting the game to its factory defaults and should be used with caution.

RAM failure codes

This from REV-05 board. low beep good. medium tone beep bad. led2=on good. led1=on bad.

  • 1 beep CPU RAM location xx.
  • 2 beeps CPU RAM location xx.
  • 3 Beeps VEC RAM location L4??
  • 4 beeps VEC RAM location R4.
  • 5 beeps VEC RAM location N4.
  • 6 beeps VEC RAM location P4.

bad vec ram (not testmode) LED1=blink, LED2=solid ON.

Importing Asteroids High Scores

This page describes how to transfer high scores from the Asteroids HS Save Kit into the Asteroids Multigame kit.

There are two parts to the procedure. Part 1 involves moving the HS chip from the AST HS kit to the Multigame kit. Part 2 takes place when the Multigame starts up for the first time.

 

Part 1: Swap HS chips

All Braze Technologies kits use a small serial eeprom (type 93c46) to save high scores and settings. This chip is the only 8-pin chip on the kit and is socketed. In order to transfer your Asteroids high scores to the Multigame you will need to swap the 8-pin serial eeprom on the Multigame with the serial eeprom from the Braze Technologies Asteroids HS kit.

Use the photos below as a guide to locating the small 8-pin serial eeprom chip. When swapping the chips pay attention to pin-1 orientation and make sure none of the pins get inadvertantly bent. Use a small screwdriver to gently pry the chips out of their sockets.

 

 
Asteroids HS kit eeprom location
 
Multigame eeprom location

 

 

 

Part 2: Automatic Import at first bootup

The Multigame and the AST HS score kit use two different data formats to save the high scores within the chip. There is special software in the Multigame which will convert the AST HS data into the newer multigame format. This conversion will happen automatically the first time setup mode is entered or the first time Asteroids is started.

The Multigame provides visual feedback that the AST HS conversion is to take place. The powerup selftest screen and the testmode screen both indicate that the multigame software has detected an AST HS serial eeprom by displaying the text 'IMPORT' on the screen. See the screen shots below.

 

  1. Swap serial eeproms between the kits
  2. Install the multigame kit
  3. Bootup the multigame kit, look for 'IMPORT' on the screen
  4. Let the multigame start Asteroids
  5. Verify your AST high scores are displayed

 

 
Power On Self Test showing import mode
 
testmode showing import mode


Tip: After swapping the serial eprom to the Asteroids HS kit, sell the old Asteroids HS kit to help recoupe the cost!

Configuration Settings

The Asteroids Multigame on-screen configuration setup menu allows you to configure your personal game options without crawling into the cabinet to set dip switches and allows separate configuration for all three games. This is also where the high score tables can be erased.

To enter setup mode, place the game in self-test mode. For the upright cabinet, the self-test switch is located inside the cabinet accessible by opening the coin door. For the cocktail cabinet, the self-test switch is located behind the access panel on the left side.

Once in self-test mode, following the on screen instructions, press both start buttons buttons at the same time. The game should now be in configuration setup mode and a top-level menu structure will appear.

 

self-test mode 
Multigame self-test mode
Setup 
Multigame Top-Level Configuration

Once in the configuration setup mode, use the left and right buttons to move the selector up and down within the menus. The current selected item is indicated by a saucer icon character on the left side of the screen and the current line is also bold (brighter). If the current line is a menu item, pressing the fire button will open (or close) that particular sub-menu.

 

 
All Games Sub-Menu Selected
 
All Games Sub-Menu Contents
 
Asteroids Sub-Menu Selected
 
Asteroids Sub-Menu Contents
 
Deluxe Sub-Menu Selected
 
Deluxe Sub-Menu Contents
 
Lunar Lander Sub-Menu Selected
 
Lunar Lander Sub-Menu Contents

Within the sub-menu for each fire button press, the current selected field will advance through all of the possible settings for that particular sub item. In this example there are two options for coinage, namely freeplay and 1-coin 1-play.

 

 
Freeplay
 
1 Coin 1 Play

To save the settings and return to main menu, scroll down to the bottom item SAVE SETTINGS and press the fire button. At this point the current active settings will be saved and the game will return to the main menu. It is at this point that high scores are erased if you selected that option.

If for some reason you wish to cancel your changes without saving them, simply take the game out of self-test mode without executing the "SAVE SETTINGS" option!

To return to game play mode, return to the main menu, then select EXIT. That will return you to the testmode screen. At that point take the game out of self-test mode. The new settings will now have taken affect and the configured powerup game will be started.

 

 
Save Settings
Setup 
Select EXIT

 

 

Erasing High Scores

To erase high scores, select the game menu for Asteroids or Asteroids Deluxe, depending on which score table you want to erase. Within the game menu, select the HIGH SCORES sub item. Press fire to toggle through the 3 possible actions.

  • KEEP ALL - No change to high score table
  • RESET ALL - All high scores will be reset to 0
  • RESET LOW 7 - The low 7 scores will be reset to 0, the top 3 scores will be preserved

The high scores will not be erased until you select SAVE SETTINGS. If you wish to cancel your changes, simply exit test mode WITHOUT selecting SAVE SETTINGS

 

 

 
High Scores Remain Unchanged
 
High Scores Get Cleared when Save Settings

Power On Diagnostic Sequences

Power On Self Test (POST)

The Multigame has TWO special power on diagnostic sequences which are automatically executed at startup when the game is turned on. One sequence if the self-test switch is ON (test mode) and a different sequence if the self-test switch is off (game mode). The two test sequences are very different and the use of LEDS, sounds, and the display are different. The first step in trouble shooting will be to run each diagnostic sequence and observe any results. In order to help clarify each sequence, the following names are used. Boot sequence refers to when the game is powered up in game mode. Testmode sequence reference to when the game is powered up with the self-test switch on.

These sequences are very different and much more extensive from the original game. Additionally the multigame can run these tests and make use of the vector display even in absence of a valid vector rom.

 

Boot (game mode) diagnostic sequence Self-test (test mode) diagnostic sequence
  1. Hardware reset forces both LEDS ON.
  2. Multigame game software starts executing and turns off LED1. LED2 is still on. This indicates life.

     


     

  3. Item x.
  1. Hardware reset forces both LEDS ON. 4msec Non-maskable interrupt (NMI) is disabled by hardware.
  2. Multigame game software starts executing and turns off LED1. LED2 is still on. This indicates life.

     


     

  3. Extensive memory testing begins. All tests are run to completion even if there is a failure in order to provide as much information as possible. This is an added enhancement from the original game.
    1. CPU RAM is entirely tested using multiple algorithms (2 chips)
    2. VECTOR RAM is entirely tested using multiple algorithms (4 chips)
    3. A simple VECTOR ENGINE test is performed.
    If any of the above tests fail, a series of tones is pulsed out indicating all of the failures detected. At the same time the LEDS are blinked in conjunction with the tones. At end of the pulse sequence, the game pauses, then spins expecting at watchdog timeout to reset the board and repeat. See RAM Failure Codes. If all of the above primary tests pass, the sequence continues with the next step.
  4. 3Khz tone is turned ON. This also indicates the memory tests have passed and that the software is getting ready to use the display. This will cause a short beep when it is later turned off after the first frame is displayed. For asteroids it is the analog life sound, for asteroids deluxe this sound is generated by the pokey chip. The audio circuits must be working properly to hear this tone.
  5. After initializing in preperation for using the vector display, BOTH LEDS are turned OFF. This also indicates the memory tests have passed and that the software is getting ready to use the display.
  6. The multigame software transistions into testmode, the self-test diagnostics sequence is now complete. The display should be showing the diagonal cross hatch pattern and various status information. The 3khz tone is turned off causing a short beep to be heard (normal).

When the game is in testmode, the multigame executes the standard Atari testmode diagnostics with a few modifications for the multigame.

During the poweron selftest (boot), the Multigame boot code performs 4 basic diagnostic tests before attempting to use the display. If any of these 4 diagnostics fail, the P1/P2-start LEDS will flash in a pattern to indicate which test has failed.

At powerup, the Asteroids hardware automatically turns the start1 and start2 LEDS ON. One of the very first things the Multigame selftest does is to turn off LED1. This indicates that the 6502 CPU is executing instructions, the first signs of life. Next the Multigame selftest will verify in the CPU RAM. The CPU RAM test is a simple test and not intended to be exhaustive. Note: For technical reasons not discussed here, interactions with the Non Maskable Interrupt (NMI), make it so it is not possible to reliably perform a CPU RAM test when the game is not in testmode. If the CPU RAM test fails, the game will either watchdog reset and start over, or it may just stay stuck with the current LED pattern (LED1=xx, LED2=yy). Assuming the CPU RAM test passes, the selftest updates the LEDS to the next state (LED1=xx, LED2=yy).

The next test is

then perform a CPU ROM checksum, and then perform the VECTOR RAM and ROM checkum tests. Any failure is indicated by a flashing LED code.

Assuming the above tests pass, the multigame selftest then sets the progress LEDS to LED1=ON, LED2=OFF to indicate it is starting the next phase. during this phase of test, attempts are made to show progress and results on the vector display itself.

Once all selftests have passed, both LEDS are turned off. If there is a failure during phase 2, the LEDS will both flash together and the display should indicate the problem.

In the event the selftest fails, pressing P1+P2 will cause the selftest to attempt to continue the initialization sequence.

Once the selftest has completed, if there are any selftest failures, the selftest results remain on the screen until user intervention. If the selftest passes, the selftest success results are displayed for about 15 seconds before switching to the configured powerup game. At anytime during this period pressing any button will cause the multigame to startup the configured powerup game.

 

Selftest LED codes (boot)

 

LED CODES (boot)
LED1 LED2 Indication
ON ON Selftest never started
Off ON Selftest phase 1 started, but never completed
ON Off Selftest phase 2 started, but never completed
Off Off Selfest Passed!
ON Flashing CPU RAM selftest failed
Off Flashing CPU ROM checksum failed
Flashing ON VECTOR RAM selftest failed
Flashing Off VECTOR ROM checksum failed
flashing flashing Selfest failed, see display for details

 

Testmode enhancements

This kit includes several enhancements over the original Asteroids/Deluxe testmode. The improvements include better indication of failures (for example, instead of just forcing a watchdog reset indicate the failure other ways). Better RAM failure testing and chip identification. A new input test which shows visually all the active inputs (switches). A new sound test which allows ALL sounds to be played (tested). No dependancy on the vector ROM, in fact the testmode can run entirely without ANY vector ROM present.

 

Testmode Memory Test Improvements

The multigame has an entirely new testmode memory test that replaces the simple one originally in the game. Some of the issues with the original memory test are:

  1. The original memory test would stop on first failure. Thus valuable information about additional memory chips which could be bad might have been masked. Knowing for example that all 6 RAM chips have tested bad prior to replacing any could be valueable information in that one might determine that the memory chips are not the problem but that other circuitry such as the decode logic or buffers could be causing the problem.
  2. The original memory test was exposed to aliasing problems, that is the same value was written to each memory location and done one at a time, in theory to pass all you needed was ONE memory location working. Shorted address lines or faulty ram chips could have passed this simple test.
  3. The original memory test would exercise the first 256 bytes of CPU RAM. Then it used that RAM to test the remaining bytes of CPU RAM and the vector RAM. So the same RAM device was being used and assumed good while another part of that same RAM device was being tested.
  4. The original memory test would exercise the memory chips in pairs and if either of those chips failed, the test would stop at that point and attempt to beep out the failure code. This preventing further testing of the remaining chips until after the first failure has been fixed.
  5. The original memory test required that the 3Khz signal to the CPU was working properly in order to beep out the RAM failure codes. If the 3khz was not pulsing testmode would simply spin, then watchdog reset. Or with the watchdog disabled, it would never finish the beep sequence.
  6. On the original games asteroids and deluxe had different failure sequences to identify the failing rams in terms of low and high pitched tones. The multigame uses one common sequence for both platforms similar to the original asteroids identication sequence.
  7. The original testmode would watchdog reset if the VG_HALT signal was not working correctly or the vector engine never finished. No indication was given as to why testmode would reset.

scottb fixme leds...

The multigame testmode sequence uses a very different approach. This allows the multigame to be yet another tool in debugging failing boardsets. The mulitgame testmode starts by testing ALL 1K of CPU RAM using a uniq changing memory pattern to avoid aliasing issues. It writes the entire 1K, then verifies back the 1K pattern. If keeps a "running" bit mask of all the failures seen as it performs multiple passes across the RAM. At the end of the test, it determines which is any CPU RAM chips have failed and saves that result away in a register for later use. This allows the memory tests to continue even when the CPU RAM has failed. Next the 1st 1K of VECTOR RAM is tested using the same algorithm and "running" failures mechanism. Just like with the CPU RAM this is then mapped onto the chips that may have failed and that result is saved away. Lastly the 2nd 1K of VECTOR RAM is tested.

At this point the save register (SP) has a bit mask of 6 bits indicating which if any RAM chips are faulty. No RAM has been required to be functioning to get to this point.

The last test before the main testmode loop is invoked is a simple VG_HALT test. The purpose of this test is to make sure VG_HALT is not stuck and that the vector engine can run a few minimal instructions. If in the previous steps the VECTOR RAM had FAILED, then the VG_HALT test is not executed, but skipped. The VG_HALT test requires that upon entry the vector machine must indicate it is halted. A few instructions are poked into vector RAM and then the vector engine is started. The VG_HALT signal must then go inactive briefly while the vector engine runs those few instructions. Then the VG_HALT signal must become active again assuming the vector engine completed. If those transitions do not occur within a very short amount of time then the VG_HALT test is considered a failure.

Should a failure occur in the CPU RAM, VECTOR RAM or VG_HALT, then no attempt is made at using the vector engine to display any results, as these failures are considered fatal. The fatal failure code(s) are beeped out using both the audio section of the board AND the LEDS and like the original asteroids testmode the pattern consists of low and high pitched beeps (tones). As the tones are beeped out, the LEDS are set to indicate the same failure (ie. LED1-ON means low tone, LED2-ON means high tone). The corresponding memory chip locations is the same as the original asteroids code and is listed before. Note some memory chips have alternate chip locations on the board depending on the hardware level or hardware configuation of that board. If there are multiple failures one should consider that it might be possible that the RAM chips are ok and that some other hardware problem is contributing to the RAM being unable to respond (such as memory address decodes, memory data and address buffers, etc). It is also possible (but unlikely) that the original asteroids memory test passed, but now that the multigame is installed which does a much more extensive test that it is possible that a memory failure has been found that has been masked before. The failing chip(s) will need to be replaced before the multigame can continue, there is no bypass of the memory tests as that hardware is critical to a functioning multigame.

input test

The multigame testmode input test will show on the screen each possible input. There are 12 inputs that can be shown. p1-start, p2-start, coin-left, coin-center, coin-right, slam, rotate-left, rotate-right, hyperspace/shields, fire, thrust, diagstep. When the input is active text that corresponds to that input is displayed on the screen. See screen image below for where all 12 inputs show up. DIP switch settings are ignored by the multigame and not shown in testmode. The analog thrust input if configured is shown separately. Note: some of the input buttons are also used to trigger the sound test.

 

sound test

The multigame sound test is activated by various inputs. All possible sources of sounds can be tested. Asteroids hardware has more analog sounds than does Deluxe hardware. In deluxe mode some of these tests are not available and pressing that input key does nothing (other than show the input is active).

Button Sound test action
p1-start Each press (and release) toggles LED1 on-off
p2-start Each press (and release) toggles LED2 on-off
p1-start + p2-start Pressing BOTH p1-start and p2-start enters setup mode
rotate-left left
rotate-right right
hyperspace/shields hyper
thrust Sequence through sounds
fire Sequence through sub-sounds

pokey test

During testmode the pokey chip is continually queried. The tests attempts to verify the pokey is present and minimally performing. One of the tests is to continually poll for random numbers from the chip and make sure the random numbers are changing and not stuck. Another test simply verifies some of the registers are reading values consistent with what is expected. Failing of this test means the pokey chip is bad or not present. Just because the test passes does not mean the pokey chip is fully functional, it could still have audio problems and those should be tested using the pokey sound test. The display continually shows the random number provided by the chip.

thrust interface test

When the multigame is configured for external thrust, testmode will then show the value provided by the external thrust interface circuit. The value is shown in hex and should change as the external thruster is moved. It should be noted that Lunar Lander does not make use of the full range of 256 values, in fact only uses about 25% of the range. This is consistent with how original lunar lander works.

high score save test

The high score save test is a simple test similar to all other Braze Technologies kits that save high scores. For the Asteroids multigame this is a single byte read/write test performed on a spare memory location in the serial eeprom. The test simply reads and writes a few patterns to one location and captures the result. The test is performed just once when entering test mode and the result is saved for display purposes. Failure could indicate a problem with the chip itself, the chip not present, or a problem on the multigame kit. This test is specific to the multigame and not related to the gameboard. This field also displays a status information about the high score save chip if it is erased or if it contains the older asteroids high score save data (see: Import Asteroids High Scores)

 

RAM Failure Codes (testmode)

Testmode RAM Failure is indicated by a sequence of 1 to 6 tones. A low-frequency tone is heard for each good RAM chip. A much lower frequency is heard for a failing RAM chip. At the same time the tone is played, the LEDS are updated. LED1 ON corresponds to a failing RAM, LED2 ON corresponds to a good RAM.

Example: 2 good (high) tones followed by 1 bad (low) tone indicates RAM #3 is bad. 3 low tones without any high tones would indicate RAMS #1, #2 and #3 are all bad, but that RAMS #4, #5 and #6 passed.

Note: this is an improvement from the original game software which would sometimes stop on first failure and not test the remaining RAMs. The multigame software always fully tests all 6 RAMs even when one or more fails.

 

Tone # RAM Asteroids PCB Asteroids Deluxe PCB
1 CPU RAM lower 4 bits D2 L1
2 CPU RAM upper 4 bits E2 M1
3 VEC RAM lower 4 bits M4 M3
4 VEC RAM upper 4 bits R4 R3
5 VEC RAM lower 4 bits N4 N3
6 VEC RAM upper 4 bits P4 P3
7 HALT/GO/HALT failure Vector Engine FAIL Vector Engine FAIL