Till then, have fun! :)
vectrex.batscript, you'll have to write your own script to run the java command line (if you write one, I'd be very grateful if you could send me a copy, so that I can include it in the next distrib)
"vectrex.bat"to make the
JAVADIRvariable refer to the good path.
"vectrex.properties"to set the various ROM paths, and also the keymapping (the file is self-commented)
|Without persistence||With persistence|
* According to the 6809 docs, it seems that the CWAI mask should
* be applied to the CC register before saving it onto the stack;
* but for some reason it prevents Bedlam from working properly
* (the only game around that makes use the CWAI instruction).
* unless it becomes a problem with another game, it is likely
* to stay this way until I've got the time to check it out!
* BEDLAM problem (when CWAI is implemented properly) :
* the main game loop at $00FD starts with "CWAI #$EF" that in
* fact waits for the refresh timeout to occur on T2. Before the
* program is resumed at $00FF, the IRQ routine at $09B9 is
* called. This routine is the rendering code, as it seems to
* draw everything. When this routine is done, it ends with an
* RTI (at $0C1D) that will return the control to the main loop,
* just after the CWAI. The problem is that when the main loop
* gains control, a T2 timeout already occured, and the next IRQ
* is pending (and handled since CC now has the I bit reset).
* Thus the main loop code is NEVER executed because the CPU is
* constantly executing the IRQ routine!
* Maybe the problem is not in the CPU emul code, but in the VIA
* T2 handling and IRQ handling instead...
* TODO - When things have settled down, investigate for this bug
<port_bin both registers A and B, instead of
<port_bin register A and
<port_ain register B.
* We fill with $01 to bypass a bug in MineStorm (invalid
* reference to the ROM area, when a fireball mine is hit by
* a bullet while it is not yet moving). This could be fixed
* around here in the ROM :
* EC17 [86.04.........] LDA #4
* EC19 [A7.41.........] STA 1,U
* EC1B [0A.EA.........] DEC <$EA ; $C8EA
* EC1D [7E.EB.53......] JMP check_next_bullet ; $EB53
* Somewhere in this routine there should have been :
* LDA #8 ; mark fireball as active
* STA ,U ; store mine state (if it wasn't moving, state was $10)
* Actually, when a stationnary fire mine is hit, the program ends
* up drawing a VL located at $3408 (because it assumes that an
* object that's not moving is either a dumb / fire / magnet /
* magnet+fire mine, whereas here it's a fireball!
* So to fix this we just fill the ROM with ones so that it
* becomes a big empty vector list.