ParaJVE : Parabellum's Java Vectrex Emulator   

Official Home of ParaJVE ... A travel through the programming of a freeware Vectrex emulator in java!

Thursday, March 13, 2008  

Hey, is it 2008 already ???

Ok, it's been almost one year since the last release. Although it's been a busy year for me (all for the good), it was rather quiet on ParaJVE's side.

Whatever ... So what has been done ?

  • I've added several parameters to the command line, so that ParaJVE can be more easily tweaked when invoked through a thrid-party front end, for instance. There are new parameters to specify a path to an external binary to be executed, to force the fullscreen, and to hide the menubar, etc...

  • There has been a couple of fixes in the CPU core : the V flag was not set correctly by the DEC and INC instructions ; also the CLR instruction did not execute a read cycle before performing the write access (thanks to Martijn for this tip!)

  • Fixed a major frame timing problem when the T2 timer was used by the program for something else than the standard use (frame timing). For instance, in MoonLander, the intro code sets it to $A0 (the 4-3-2-1 countdown in this intro now plays at the expected speed).

  • I changed the way Ticks Driven frames are displayed ("ticks driven" is a special mode, set off by the emulator when the program does not make use of the T2 timer for frames synchronization) : In this mode, ParaJVE now repaints the current AND the last frame at full bright (to avoid flicker - visible in the "Spike" game, for instance).

  • Added support for cartridge's onboard RAM (RAM embedded within the Cartridges). To my knowledge, the only game embedding some RAM that is directly accessible is ANIMACTION: its cartridge contains 8K ROM ($0000-$1FFF) followed by 2K RAM ($2000-$27FF).

    This extra RAM feature can be triggered simply by adding a <memory> tag in the target game's section of the configuration file :
    <ram address="$xxxx" size="$xxxx">

  • The memory manager now also theoretically supports banked memory (ie. image files that are larger than 32K) ; but since I cannot seem to work out when to switch the banks exactly, I have had to disable this feature for the time being.
    So at the moment, banked ROMS are loaded correctly, but will always stay locked on the first bank since the bank switching will never occur.

  • Lightpen emulation : I've started to emulate this device, used by the Animaction, Art-Master and Melody-Master games. The result is somewhat mitigated, but all in all the device can be used within ParaJVE already. More on that later, in a following post...

Now, what about a surprise ?

    Most of my coding effort this year went into creating a proper debugging framework for ParaJVE. It really starts to take shape and it has now become a side project, called ParaJVD (short for Parabellum's Java Vectrex Debugger).

    I've created another development blog for this project, so if you're interested (or just curious), you can follow the link and have a look :
So, any forthcoming release planned yet ?

    Unfortunately, no.

    It's far too early to release ParaJVD yet (although I will send preview builds for vectrex developers who would like to test it - feel free to contact me by usual means).

    As for ParaJVE, I won't release anything until I have the lightpen emulation fully working. At the actual pace, I have no idea when it could be. But I'll keep you informed whenever possible, watch this space!