Finding the long-lost secret
bonus in Astro Blaster
By Don Hodges
Started 1/14/2008
Last update
02/18/2017
A few years back I compiled a
list of the known secret bonuses in Astro Blaster. Here is
what I came up with:
Number 03, bonus 1000 points.
Shoot all enemies without
missing.
Number 04, bonus 700 points.
Shoot all enemies before they
wrap around to the other side of
the screen, during waves that
have the enemies that fly
horizontally or diagonally.
Number 09, bonus 500, 700, 900,
1000 or 1500 points. Don't move
at all when docking with the
mother ship (1000 points for a
PERFECTLY centered approach,
1500 points for 'the paint
scraper', when you brush a
docking clamp of the mother
ship).
Number 12, bonus 700 points.
Shoot all enemies before any
escape the screen through the
bottom (certain waves only).
Number 13, bonus 500 points.
Shoot all enemies in proper
order in sector 1.
Number 14, bonus 1000 points.
Shoot all enemies in proper
order in sector 2.
Number 15, bonus 1500 points.
Shoot all enemies in proper
order in sector 3.
Number 16, bonus 2000 points.
Shoot all enemies in proper
order in sector 4.
Number 17, bonus 2500 points.
Shoot all enemies in proper
order in sector 5.
Number 18, bonus 3000 points.
Shoot all enemies in proper
order in sector 6.
Number 19, bonus 3500 points.
Shoot all enemies in proper
order in sector 7.
Number 22, bonus 600 points.
Never get laser temperature
critical during the sector
(awarded before docking).
Number 25, bonus 500 points. Not
dying during the sector (awarded
before docking).
After creating the list, I added
it to the
arcade-history website's
entry for Astro Blaster.
As we can see, the list is
missing entries for
bonuses 01, 02, 05-08, 10, 11,
20, 21, 23, and 24 I
posted
a question to a mameworld
message board, asking for more
info. None came.
Internet searches, then and now,
come up with no new information
on these missing secret bonuses.
So I decided to examine the
game's code to see if I could
find the remaining bonuses.
Here is what I found.
Let's look at the setup for a typical
known, existing
bonus, the one for bonus #04:
2C37: 3A 56 CD LD A,($CD56) ; Load A with exit screen counter
2C3A: B7 OR A ; Is this award to be given?
2C3B: C2 45 2C JP NZ,$2C45 ; No, do next test
2C3E: 06 07 LD B,$07 ; Set points at 700
2C40: 0E 04 LD C,$04 ; Set bonus number #04
2C42: CD 4D 31 CALL $314D ; Display secret bonus #04 for shooting all before exiting
Comparing all
the calls to the subroutine at
$314D, which displays the secret
bonuses, we discover a call for
a secret bonus numbered 01.
3A64: 3A 60 CD LD A,($CD60) ; Load A with the bonus #01 indicator
3A67: B7 OR A ; Is there a bonus #01?
3A68: C2 72 3A JP NZ,$3A72 ; No, jump ahead
3A6B: 06 14 LD B,$14 ; Yes, load B with #14 (20 decimal) for 2,000 points
3A6D: 0E 01 LD C,$01 ; Set bonus number #01
3A6F: CD 4D 31 CALL $314D ; Display secret bonus #01 for doing something.
The highlighted
line of code is the important
one that shows us a bonus that
is unknown, number 01.
Next, we must find out what will
trigger this bonus.
Running a watch point on memory
location #CD60 during play reveals
the answer. It turns
out this bonus is
given for not missing any
fireballs, during the final wave
of each sector in the asteroid
field.
At first this appears to be an
extremely difficult task, if not
near impossible, to accomplish.
This may explain the fact
that there is nothing on the
Internet anywhere [according to
my latest searches anyway
- maybe I just missed it?] about
any secret bonus #01 for Astro
Blaster.
After some experimenting we
discover that the counter which
checks for this bonus is reset
each time the player's ship is
destroyed. So, an easy way
to achieve the bonus can be done
by sacrificing a life at the
very end of the asteroid field,
and then using the warp on the
rest of the shortened sector. I have
uploaded a youtube video showing
the feat:
aAlso, there is a strange
quirk in the following segment
that I can't seem to account
for. It is in the
subroutine that checks for
secret bonuses 13 through 19,
awarded for shooting enemies in the
proper order. It also
checks for secret bonus number
20.
2C53: 3A 59 CD LD A,($CD59) ; Load A with check for shooting enemies in proper order
2C56: B7 OR A ; Check for match
2C57: C2 7D 2C JP NZ,$2C7D ; No, jump out
2C5A: 3A 7B C9 LD A,($C97B) ; Yes, load A with 2nd check for shooting enemies in proper order
2C5D: E6 81 AND $81 ; Check for match
2C5F: CA 7D 2C JP Z,$2C7D ; No, jump out
2C62: 3A 7C C9 LD A,($C97C) ; Yes, load A with sector number
2C65: 0E 20 LD C,$20 ; Load C with #20 for bonus number 20
2C67: FE 08 CP $08 ; Compare sector number with 8
2C69: CA 70 2C JP Z,$2C70 ; If equal skip next 3 steps
2C6C: 0E 12 LD C,$12 ; Else load C with 12
2C6E: 81 ADD A,C ; Add wave number. C is now between 13 and 19
2C6F: 4F LD C,A ; Store C as bonus number based on wave
2C70: 3A 7C C9 LD A,($C97C) ; Load A with sector number
2C73: 47 LD B,A ; Copy to B
2C74: CB 27 SLA A
2C76: CB 27 SLA A ; Multiply A by 4
2C78: 80 ADD A,B ; Add one. Now A is 5 times the level
2C79: 47 LD B,A ; Set bonus score based on wave
2C7A: CD 4D 31 CALL $314D ; Add score for secret bonus #13 through #20
After looking
closely at the code (refer to
the highlighted lines), we see
it loads the bonus number with
20 (one of the missing bonuses)
and checks to see if its on sector number 8,
in order to award it.
Wait, this
game doesn't have 8 sectors, it
has 7.
When playing
this game, when a player
completes sector 7, the
game repeats itself again
starting at sector 1.
However, during the attract
mode, the game cycles through
8 sectors instead of just 7.
There does not appear to be any
way for a player to reach sector 8 during a regular game.
Using a MAME cheat, we can force
to 8 the memory location that is
used for the sector and observe
what happens when playing in sector 8. The
following MAME cheat can be used
to access sector 8:
Sector 8 is playable; it is
programmed to play the last six
waves of sector 5, and during
this sector, players can achieve secret bonus
#20 for 4,000 points. This
is the highest scoring secret
bonus of the lot. It
is awarded the same way as
bonuses 13 through 19, by
destroying all the enemies of a
wave in a certain order.
Here is a screen shot of secret
bonus number 20:
Comments and Conclusions
It would be cool if there was
something the player could do to
get to sector 8 without hacking.
However, close analysis of the
code does not show anything to
indicate that this is possible.
Further analysis of the game
code does not seem to reveal any
other unknown secret bonuses.
My guess is that the other
secret bonuses existed at some
point in the game's development,
but were taken out before the
game was released. Also,
it appears that initially there
were 8 sectors to play through,
and this was changed to 7 at
some point before release.
The code which plays sector 8 is
still there and is easily seen
during the attract mode.
So, we can add the following two
bonuses to the list, making the
secret bonus list for Astro
Blaster complete, at least as
far as I can tell:
Number 01, bonus
2000 points. Shoot all fireballs
in the asteroid belt.
Number 20, bonus 4000 points.
Shoot all enemies in proper
order in sector 8. (can only be
achieved by hacking the game to
play sector 8?)
In accordance with Title 17 U.S.C. Section 107,
some of the material on this site is distributed without profit to those who have expressed a prior interest in receiving the included information for research and educational purposes. For more information go to: http://www.law.cornell.edu/uscode/17/107.shtml. If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner.