
**********************************
  THE NEW ASTEROIDS DRIVER 

  for

  JAE - The Java Arcade Emulator
**********************************

  by Norbert Kehrer
	
  http://web.utanet.at/nkehrer
  norbert.kehrer@utanet.at


The graphics of the original Asteroids are made up of vectors which are drawn by the
DVG chip. The DVG interprets a DVG microcode program which was written by the 6502 CPU.
The Asteroids objects (rocks, saucers, characters) are represented by subroutines in
vector ROM.

To make new graphics for my Asteroids arcade emulator, I use a simple trick.
I manipulated the DVG interpreter in the following way:

When the interpreter has a to execute the command JSR (Jump to subroutine), it 
checks which subroutine is called. If it is subroutine for an object, do the following:
- switch off line drawing
- draw the new graphic image associated to the object at the current DVG x-y-position

When the interpreter reads the next RTS (Return from subroutine), the line drawing is
switched on again.

The important thing is to know the addresses of the object subroutines. I got them by
using my Java DVG disassembler to get vector ROM listings. Then I analyzed these listings
to find the locations of the objects. The details and subroutine addresses can be seen
from the publicly available source code distribution of JAE.

Maybe this helps you to write other JAE drivers for new graphics.

I think the EmuDX guys could use this concept to make a DX'ed version of Asteroids.


Norbert Kehrer

9th of January, 2000
