ParaJVE : Parabellum's Java Vectrex Emulator   

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

Tuesday, December 15, 2009  

WIP : version 0.7.0 beta testing advancement

First, please note that the application for beta testing is closed from now on, as there is a complete enough panel of users testing the beta at this time. Thanks a lot for the quality of the feedback received so far, it has been of invaluable help for getting things right on most systems.

Since the start of the beta cycle, many things have changed in the graphics settings, and several old bugs have been identified and fixed.

  • Fixed a couple of problems that made the emulation performing too fast compared to the original games (further information on this can be found in issues #25 and #26). These bugs have been there since day one, and plagued many games that could not be played correctly so far.

    Today it's all history... but the counterpart is that the timing emulation is now so accurate that it will also emulate the original games slowdowns and low FPS.

  • Another old problem that has been addressed is the mismatch in the native libraries 'bitness' : so far, only the 32 bits version of all the required native libraries were included in the packaging. But, as more and more systems tend to use a 64-bits Java Virtual Machine (JVM) rather than a 32-bits one, this has started to grow problematic (because a 32 bits library cannot be loaded by a 64 bits JVM, and vice versa).

    The emulator now comes bundled with both the 32 and 64 bits libraries; it automatically deploys the right ones during its first execution on the target system (be it Windows, Linux or Mac OS X). This, plus the native executable launcher introduced for the Windows platforms and several other system dependant adjustments, make ParaJVE feel more integrated into the OS (and less of a hassle to install on 64 bits machines).

  • Added some protection code to handle any crashes that would occur in the game engine. This was not that useful so far, because the OpenGL code used in the previous versions was rather simple (it used only very common OpenGL features) and did not require your 3D card OpenGL drivers to be up to date. But with the addition of the new 3D shaders in the rendering engine, some crash are a bit more likely to occur in your card's native driver if it's too old.

    If this was to happen (which is very very infrequent, don't worry too much!), ParaJVE will detect the crash on the next launch, and will run in "safe" mode (with all shaders turned off), hence allowing to play on older or outdated systems without errors.

  • As said earlier, the graphics settings have gone through a redesign, merging scattered options in several centric dialogs.The "Vectors Settings" DialogIn addition to the already existing glow shader parameters, more options have also been added (points and lines thickness, luminosity and gamma correction, ...) to better let the user configure the rendering to its own preferences.

I have done quite a lot of changes over the different betas already, and although the current version is now very stable, I don't want to release it until I have fixed a very last problem that has been reported by several testers : the overlays rendering over dark areas being too bright.

In fact, the new overlays are way nicer than the previous versions, but it appears that their transparent areas are too bright (or opaque) when placed against a black background. Put simply, my problem is that I have to render transparent colors that are barely visible over a black area, but that, in the same time, should color the white vectors as much as possible.

As I could not find any acceptable way to implement this behaviour with standard OpenGL commands, I've started to write yet another shader to handle this rendering feature. The current prototype works well when run within the RenderMonkey shaders development environment and is fully parametrable (darkening factors and thresholds), but I have trouble adding it into the emulator, where it won't work as expected for some unknown reason.

without overlay shader
(in RenderMonkey)

with overlay shader
(in RenderMonkey)

As soon as this overlay rendering problem is corrected, the release will follow in the next few days ; but for the moment I really can't tell whether the official release will be ready for the end of the year (as initially planed), or not...

Keep fingers crossed! :-)

Labels: ,


  • This looks brilliant!

    I'll have to download it at home (I'm at work just now - LOL)

    There is something special about the Vectrex

    Retro Computers

    By Blogger The Retro Brothers, at 1/22/2010 5:13 PM  

  • Wow this looks great. Nice work on the shader! Makes it look really authentic. Wish I had found this site earlier as I would love to see it in action :)

    Keep up the good work!

    By Anonymous Anonymous, at 1/22/2010 11:10 PM  

  • Thanks for your comments!

    Unexpected events in late December (followed by a couple of weeks without any incentive for programming), prevented me from releasing the version before the end of the year, as initially planned.

    This week I will get back to coding again... :)

    By Blogger Parabellum, at 1/25/2010 9:53 AM  

  • I have a Vectrex. The overlay graphics were supposed to be at least somewhat apparent. While the first image may show the overlay to be too bright, the second image almost negates the graphic that was intended as a visual enhancement. Perhaps somewhere in-between would be best, but I'd go for the first one if there were no further development.

    By Blogger bellamy, at 3/04/2010 9:00 AM  

  • Yes Bellamy, you're right in saying that in the second image, the transparent colours might not be visible enough.

    I believe that it all depends whether you play on the vectrex in a lighted or unlighted area : the first picture feels like playing on a vectrex under direct sunlight, while the second looks a bit like playing in a pitch-dark room.

    Well, the overlay colour reduction factors will be entirely user-customizable anyway, so that one can set the darkening level to meet his very own preferences. :)

    The fact is, I cannot find many time to work on the emulator these days, and I feel that I've been delaying the release for too long now ...
    So I start to think about releasing v0.7.0 without this darkening shader included (and implement it for the next version)...

    By Blogger Parabellum, at 3/05/2010 2:24 PM  

  • J'aimerais avoir une clé. Merci.

    By Anonymous Spécialiste, at 8/24/2010 3:42 PM  

  • Bonjour,

    Puisque vous êtes Français, je vais vous écrire en Français, je suis de LILLE.

    Cette option graphique est l'une des plus intéressantes, j'espère que vous l'intégrerez lors d'une prochaine "Release"

    Merci par avance.

    By Anonymous 2dpixel, at 9/11/2011 2:30 AM  

  • Brought a smile to my face ... thanks! Being it's java based any chance of a Android port?

    Might make you some $$ as a APP

    By Anonymous Anonymous, at 2/13/2012 1:09 PM  

  • Actually tinted areas of the overlay is a transparency in real life. It will only effect areas where light is emitted. You shouldn't see the overlay graphics at all if played in a dark room on a real Vectrex except where the vectors are. You will see the opaque border in varying degrees depending on how much ambient light is in the room. Since the Vectrex CRT only emits light with vectors and the rest of the screen is black a transparency over black areas are mostly invisible. There would be a bit of bloom visible on the overlay as the overlay isn't crystal clear and is just painted plastic. Light will get a bit diffused and scattered in areas where it is. It will get blacker and less visible the farther away from a vector.

    The original purpose of these overlays was to colorize otherwise monochrome vectors.

    By Blogger Unknown, at 6/03/2019 7:21 AM  

Post a Comment

<< Home