Moon Bugs

moon bugs windmill software 1983 screenshot title loading screen imagemoon bugs windmill software 1983 gameplay snapshot level 10moon bugs windmill software 1983 gameplay combat round snapshot

Created in 1983

35 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.

160 x 100 16-color mode (text mode indeed)

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.

Bonus round

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.

New lives

After you reach score 20.000, you get an extra life   .

Hacks, tricks and cheats

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).

moon bugs windmill software 1983 ad poster text
moon bugs windmill software 1983 ad poster intro screen

Found bug (a Moon Bugs bug :) )

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:

moon bugs windmill software 1983 assembler level number

The beauty of it

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...

How to run Moon Bugs in DOSBox emulator

Download MOONBUGS.ZIP file and unpack the 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:

  • cycles=300 instead of auto speed, this will set the processor emulation to 4.7MHz
  • machine=cga required to display video output correctly
  • [autoexec] in autoexec section, add these two lines, make sure the path is correct:
    mount d c:\games\moonbugs

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
Use F1 key to fire.


moon bugs windmill software dosbox

Filling screen with  0xDE  character "" (disassembled code example):

moon bugs windmill software 1983 assembler clearing screen

Initial level and lives values (disassembled code example):

moon bugs windmill software 1983 assembler init lives and level values

See also , a web page related to Windmill Software and especially the game called Digger.