Disassembling the Binary

I've been spending some time using Ghidra to disassemble the game program. Ghidra is an open source software reverse engineering suite written the NSA. It's an incredibly powerful tool, once you get the hang of it.

Making good progress, have figured out many of the data structures and core game loop design. Using the knowledge gained to build a level viewer and eventual editor

Contact me if you're interested in joining the effort.

Careful analysis of the code has revealed the following:

  • The message "you have hit a black hole" is the software's way of recovering from a general mathbox failure.
  • There's a hidden debug mode that displays various hardware timing values onscreen, likely used to debug performance issues when synchronizing the 6809 / mathbox / video processor
  • There are two unused game levels left over in the ROM. One of them has a "valley" much like the "mountain" on level 1.
  • There is a software flag that prevents bridges from being built after the robot jumps -- likely was used on some levels to make it harder to get to certain areas, limiting the options for travel
  • Another flag exists to force the levels to render in vector wireframe mode -- sort of a darker "nighttime" mode
  • The big "beach balls" on level 5 are destructible! However they require 30 shots to kill, which is impossible given the firing speed of the robot. If you manage to kill one it awards 1,000 points!
  • Bird behaviors:
    • The birds in the game were programmed to fly in zig-zag patterns.
    • There was also a mode where they would circle the robot from above, like a vulture. If they hit a column they could be destroyed, likely the robot could "lure" them into columns to get them off his tail.
    • The code tries to detect when players are "mining" the birds for points, and reacts by makes it less likely for birds to spawn near the robot.
    • The balls that the birds destroyed were able to bounce
  • There are provisions for "surprises" for the robot to find on the game playfield. If the robot hit a special tile certain things would happen like:
    • Award a bonus life for the player
    • Kill player on contact
    • "Get all red squares at once" to quickly end the level
    • Super-zapper / smart-bomb feature to kill all enemies at once
    • Auto bridge building (perhaps to reach hard to get to areas)
    • The unused "hand" in seen in Doodle City was part of a "blimp" feature that activates when the robot touches a special "surprise" tile. Upon activation the hand would rise up and float over to the eye, where it would cover it for about 15 seconds.
  • Many unused sound effects never made it into the final game, including a 2001 "Thus Spoke Zarathustra" theme that would have played when the robot enters the bonus pyramid.