Vectrex Programming TOC
Using the emulator to program vectrex programs
In general, the vectrex emulator does it's job fairly well. BUT you can't rely entirely on it. Most of the time if you do things like you are supposed to, you'll be allright. If you use the BIOS routines you won't get into any trouble (unless you really ask for it). For one BIOS trouble maker, look at the dot-plotting section, and why to insert a delay loop.
What the emulator can not cope with:
- time critical programming of VIA registers, vector hardware (this probably only applies to hardcore optimized vector routines) (might try recompiling the emulator, with different analog section enabled, this gives you <some> more accuracy) (But :-) the right things will allways be right on the emulator too)
- e-function style integrator stuff, watchable with a real vectrex mainly by switching the ~BLANK to enable while zeroing
- 3D imager programming, if done in no timecritical way, using the timing parameters for a known 3d game (Narrow Escape preferably), should be ok, on the other side, perhaps not, I have no Imager, so I can't test it very well...
- using different VIA Shift register settings than 4, which is now the only used one
- Integrator offset stuff implemented, but never tested, probably not 100% correct
- fixed vector wobbling if not drawn in a 30,000 cycle update round
- flicker not corresponding to vectrex update frequency (might change DVE update frequency though)
- analog hardware failures/differences because of age (not all anyway)
- some parts of vectrex test program are not correctly handled
- weird stuff I can't think of now
This sounds as if the emulator is of no use. WRONG.
As I said, the emulator is quite good. It runs by now every available commercial and non commercial program nearly perfectly, this includes weird ones, like lightpen using ArtMaster (with RAM expension), Pole Position (which changes DAC values while drawing a vector), Spike (digital sound), Clean Sweep (different vector drawing routines)...
Vectrex Frogger was programmed using the emulator till I got my vectrex hooked up. There was only one stupid mistake I (not the emulator) made. It caused a small offset of all vectors, that was all. Well one other thing, the wobble effect, when not updated in a 30,000 cycle round. But in many respects the emulator can be of invaluable help. Cycle counting, there is a function in the monitor, that calculates the cycles per update round (when using Wait_Recal function), with it you can test the speed of your program, it should be under all circumstances under 30,000 in order to have a solid image. You have a debugger, can set breakpoints, watch all registers, change values of registers and ROM/RAM locations online. Set watch points for memory locations and and and.
If you use the assembler I use, you can create automatically control files for use with DVE. This enables you to use all variables, function names, and constants while in the DVE monitor! Just write something like:
And a window will pop up, which will allways show the RAM location frog_x, which might be something like $c8f5 (or whatever???).
IMHO, the vectrex emulator is not perfect, nor will it ever be perfect, since there are many analog parts that cannot be (easily) emulated, but it is of great use for programming vectrex.
Vectrex Programming TOC