Moon Bugs
Created in 198335 years later after Moon Bugs was programmed, I decided to create this simple web page describing few of its facets. As a small kid, I loved this game. Even tough this game is so very old, it is one of the first computer games ever developed, and it's playability is still and always will be excellent, especially for children, who can get really enthusiastic and passionate about navigating small tank shooting down the few-pixels aliens stealing the few-pixels uranium blocks . And to maximize the gaming experience, you can always use a true old-style analog monitor or TV. |
This rare game uses very specific resolution, i.e. a special tweak of the 80 x 25 text mode. Character height register is changed, so that only 2 lines per character are displayed. Thus the number of lines is 100. Then there are special characters with byte code 221 0xDD "" and 222 0xDE "" and there goes the fine-tuned display mode (CGA 16 colors). You can easily find more information about it in CGA specifications.
When you shoot down a small UFO ("COMBAT" text is displayed while the alien ship is moving) in the beginning of a level (starting at level 2), you can play a simple shooting at alien character, which moves faster after each hit, giving you more score. After you miss, the game round closes.
After you reach score 20.000, you get an extra life .
Some UFOs display negative value, meaning that if you hit them, your score actually descreaes (which is an interesting idea). I tried this after I reached 20.000 points (after getting a new life), UFO with negative value was shot down, my score changed back to ca 19.000, and then I thought "maybe when I reach 20.000 again, there will be another bonus life", but that did not happen :) New lives are added strictly by multipliers of 2, i.e. 20.000, 40.000, 80.000, 160.000, 320.000, etc.
Now, you can open your hex editor and change some values:
0x130h = set starting level for real play (16 bits)
0x136h = set starting lives for real play (16 bits) (use only a value between 1-7) (and during the game play make sure you don't get the 8th life -- there is a bug and the game will enter an endless loop -- which, I assume, could hardly occur in a game without cheats)
0x787h .. 0x78Ah = set these 4 bytes to 0x90h (meaning 4x no-operation instruction) (this way your lives will not be decreasing). |
If you change the code not to decrease lives, and you think it will be easy to play, it won't be. Each time you get killed, the blue unpredictable monsters are triggered more and more often, and what's worse, the red collector at the bottom of the screen will take more and more time to start collecting those uranium blocks. In other words, chances of finishing such level go to zero... Of course, it should be possible to modify the code to change this too, but that's a different story...
And finally, you can never reach level 99 :) You can check this in the code, or you can try to start at level 98, finish it (if you are lucky), you will be looped back to level 98. This is the disassembled code:
Maybe the most beautiful thing about this game is, that it is as simple as it could be, there are 50 KBs of code + data together, and that's it... there are no frameworks, no DLLs, no dependencies, no packages, no compatibility issues, no drivers, no ads, no accounts, no registrations and tons of other extrinsic factors that are ubiquitous nowadays...
Download MOONBUGS.ZIP file and unpack the moongbus.com file to your DOSBox folder.
As an alternative, you can download patched MOON98.ZIP file, without decreasing lives, starting @ level 98, starting with one life only.
Create a new DOSBox config file (copy it from existing configuration) and modify these values:
Run DOSBox e.g. via bat file using this configuration, e.g.:
"c:\Program Files (x86)\DOSBox-0.74\DOSBox.exe" -conf "c:\Program Files (x86)\DOSBox-0.74\moonbugs.conf"
and type moonbugs.com
Use F1 key to fire.
GLHF :)
See also www.digger.org , a web page related to Windmill Software and especially the game called Digger.