ParaJVE : Parabellum's Java Vectrex Emulator   

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

Tuesday, September 22, 2009  

Funny Bug

Just a quick post to show some odd ParaJVE rendering I've got last evening, due to combined bugs...

I was coding a kind of generator for the emulator, so that its GLSL shaders get automatically generated/compiled whenever some significant parameter is dynamically changed (such as the window size, or the filter kernel size and/or values).

The generated shaders obviously had a bug in the coordinates computation (that made the texture lookup fetch texels too far along the X axis).
This bug alone had nothing uncommon... until for some reason I forgot to clear the content of the back-buffer before each rendering loop. This then gave this strange feedback effect that I'd like to share :



It's even more amusing when you see it moving in real-time. But I guess you'll never see it alive, since I'm about to eradicate those nasty bugs... ;o) 

Labels: ,

Tuesday, January 23, 2007  

Error in the Linux packaging

Just a quick note to inform you that there's an error in the Linux packaging, that prevents ParaJVE from working (it terminates silently as soon as you click "Run Game"). Thanks to Jörg for reporting this bug!

If this happens to you, all you have to do to fix the error is to edit the launch script (called "ParaJVE") and add the following string as the first argument on the command line :
-Djava.library.path=libs/natives

Thus, once edited, the launch file should read (one single line):
java -Djava.library.path=libs/natives
-cp libs/ParaJVE.jar:libs/jogl.jar:libs/gluegen-rt.jar
ParaJVE "$1" "$2"

If you feel lazy, the fixed launch file can be downloaded here: ParaJVE's linux startup file.

There have also been several reports of ParaJVE hanging at startup on Windows. Although I cannot reproduce the problem on my machines, I'll try to work out a fix for the next release (well, hopefully).
If you experience this problem, please contact me as I need as much feedback as possible on this issue... Thanks!

Labels: , ,

Thursday, January 04, 2007  

Broken with Java 5.0 update 10

Right, the holidays are now over, and it's time get back to vectrex emulation coding (a task I completely put on hold during the past 3 weeks - hence no progress).

Well, 2007 starts with a bug report from Samuel - thanks for the report, dude! :)

The emulator window would not open once the game has been chose and the selector dialog has been validated by clicking the "Run Game" button. For the technically inclined, the log file in data/temp is also filled with an exception stack explaining the problem...

After a few investigation, it appears that this problem is due to an incompatibility between JOGL (the OpenGL library) and the latest java 5.0 update 10 (that was released about a month or two earlier). If you're interested, you can find more about the issue in this thread at the javagaming forum.

Long story short, ParaJVE + Java 5.0 update 10 = NO GOOD

I'll try and correct this problem with either a new library or a code fix (this should give me the incentive to build a new release by the way), but till then, I see only two options for you to keep ParaJVE running:

  • Either you stick (or get back) to an update 9, or earlier - An official Java 5.0 update 9 download is still available at Sun's website,

  • Alternatively, You could download and install the brand new Java 6.0 runtime. ParaJVE has been tested with this JRE, and apparently it works correctly. Should you want to grab the latest JRE, here's a link to Sun's main download page.
Stay tuned, and Happy New Year! :)
 

Labels:

Tuesday, October 24, 2006  

Version 0.3.1 - Sound fix release

Although the sound emulation is still broken on Linux, the annoying sound bug that emitted High-Frequency garbage on the channels in some games has just been corrected, thus a new minor release has been built.

John Dondzila allowed me to include his games in the packaging, so I've added a whole bunch of new excellent entries to the list of available roms.

This version also comes with two additional display features that could come in handy if ParaJVE was to be used in arcade cabinets like environments :

  • Full-screen mode support

    In the game selector dialog, you can select a checkbox to make ParaJVE run in full-screen mode. Of course, pressing F1 (by default) still hides the menu-bar, so it's the way to go if you want each pixel of your screen to be dedicated to the vectrex graphics rendering! :)

    I've made a few tests on a Linux box, and it seems that full-screen mode is not supported by the 1.5 JRE on such platforms (in such a case, the full-screen checkbox will be disabled). From what I've read here and there, it should work with a 1.6 JRE, though...

  • Display rotation

    I've added a menu to select the current orientation of the rendering. By default it's still 0° (standard display), but you can also select 90° (left rotated), 270° (right rotated), or even 180° (top-down). I'm not sure it will of any use, but as it cost virtually nothing to implement, there it is...

As for the near future of ParaJVE's development, I'd now like to focus on the graphics rendering for a month or two. Especially, I'm currently in the process of learning GLSL (OpengGL Shading Language), in order to experiment how fragment shaders could help the emulation to become more visually attractive.

That's why, unless I find some nasty bug to fix, I do not foresee any new release anytime soon (that is, until I'm satisfied with the graphics results).

But until then, I'll keep this blog updated with the experiments :)

Labels: , , ,