ParaJVE : Parabellum's Java Vectrex Emulator   

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

Wednesday, December 29, 2010  

Release 0.7.0 available

As promised earlier, the latest release is now officialy available for download for the 3 supported platforms : Linux, MacOS-X, as well as Windows (XP, Vista or 7), be it 32 or 64 bits.

Please note that the download site URL has changed, and is now http://www.vectrex.fr/ParaJVE.

I hope you'll like the new features, and that you'll find the emulation gets a bit closer to the real thing since the old release! 

Labels:

Thursday, November 06, 2008  

Linux release uploaded

ParaJVE 0.6.0 Linux packaging has been uploaded.

I must say that I'm not that happy with the Linux version as it seems to be the OS where ParaJVE has the most problems (on my system at least). I've tested it with a standard Ubuntu 8.04.1 (freshly installed), and the problems I've noticed so far are :

  • Chopped sound output. I had to turn sound emulation off.

  • Major graphical problems when using the sun-java5-jre (empty or black windows and so on...). After installing the sun-java6-jre package and selecting it, most of these bugs vanished.

  • The GUI (the default that comes with ubuntu - I think it's Gnome) is sometimes acting weird, and I get many unexpected warnings in the console, unless I run ParaJVE with root privileges (which is not acceptable)

  • Fullscreen still doesn't seem to be supported by the JRE (java 6)
Needless to say, I'm quite puzzled at the amount of issues I'm having when using not so "advanced" java on a linux platform (unless you consider OpenGL and Sound an advanced java feature, that is). Switching from Windows to Mac OS X is nearly as painless as it could be, but switching to Linux is such an hassle!

Now, I don't pretend to be a Linux guru, so of course, my box was maybe not properly configured... But what the heck, I just installed Ubuntu, downloaded all the available upgrades, installed the java runtime engine. With that you would expect java to work as expected ... And you would be wrong!

So well, I've uploaded the Linux build as is ; I hope it will work correctly for most Linux boxes. If it doesn't run on yours then I'm truly sorry, but I can't loose time to fight these compatibility issues.

<end-of-rant>  ;o) 

Labels:

Tuesday, November 04, 2008  

Mac OS X release uploaded

I have just built, tested, and uploaded the Mac OS X build for ParaJVE 0.6.0.

It was the very first time I had the opportunity to test it on a Mac platform, and I've just noticed a small problem right out of the box : the emulator loose the keyboard focus whenever you use its menu. So, after using the menu, you'll have to click once in the emulation window to give back the focus (otherwise ParaJVE won't intercept any keypress anymore!).

Also, on the MacBook I tested on, I had to disable the persistence option because it was preventing the emulation (both display and sound) to run smoothly. I'm not sure if it's because the Mac drivers weren't up to date or something... So if any Mac user has any idea, feel free to enlighten me! ;)

Other than that, everything went well ; the physical gamepad mapping behaved as expected, the sound and display rendering seem right... So all in all I'm quite pleased with the outcome! :)

So, enjoy! 

Labels:

Saturday, November 01, 2008  

Release 0.6.0 is available

The announced release is finally ready, and can be downloaded on the official download site - try to clear your browser's cache if you cannot see this latest version... ;)

Please note that I hadn't had the time to build the Linux, nor Mac OS X packages yet ; only the Windows package is available at the time being. I'll make my best to upload the builds for the missing platforms in the next few days.

The major changes since version 0.5.0 have already been described in the previous posts, but here is an extract of the release notes history section:

  • Added several command line switches & parameters to ease offline invocation & integration in third-party launchers.

  • Fixed some errors in the 6809 CPU emulation core (flag V incorrectly computed by INC/DEC instructions)

  • Added VecVoice emulation, as well as a vecvoice aware game (Verzerk).

  • Added Lightpen emulation, and included the Lightpen enabled games (Animaction, Art Master, Melory Master, Engine Analyzer).

  • Implemented support for cartridge's onboard RAM (For Animaction).

  • Introduced automatic peripheral selection for games that have special requirements (lightpen, vecvoice).

  • Fixed a major frame timing problem when T2 was used by the program for something else than the standard use (frame timing).

  • Tweaked the rendering algorithm to reduce flicker in special cases (when frames are not T2-driven, like when Spike speaks for instance).

  • Updated the third-party native libraries (JOGL and JInput).

  • Written a basic User Guide documentation.

As you can see, this release also includes for the first time a basic User Guide (you can also access it online). It's a first draft of the guide ; if there are topics you'd like to see covered in a next version, feel free to tell me about it!

Have fun! :)
 

Labels:

Friday, April 13, 2007  

Version 0.5.0 is out!

As promised, the latest release is now available for download. Since its content and changes have already been described in the previous posts, I won't bother writing some release notes here...

Just grab the build of your choice, and have fun with your preferred gamepad! :o)

If you're a Linux or MacOS-X user, please feel free to report any problem, it will help me to make better builds for these platforms in the future.

Labels:

Thursday, January 11, 2007  

Version 0.4.0 released

I've just finished uploading the latest release, so you can now jump to the download site, and grab your version! :)

Most of the additions were already listed in the previous posts, so let's just review them quickly...

First come the major changes and additions:

  • Updated the JOGL library embedded within ParaJVE, in order to make the emulator work with the latest 1.5 java runtime (update 10).

  • Alex of Vectorzoa.com kindly allowed me to add one of his game, Star Sling 4K (Turbo Edition), within the distribution. This game, coded in 2006, features a mode with two simultaneous players, and makes a perfect use of the analog joysticks, in as few as 4 kilobytes ... so don't miss it! And by the way, if you like cool homebrew Vectrex productions, then by all means, be sure to check out Vectorzoa's site.

    A small reminder about analog mode within ParaJVE : to enter analog mode, simply double click the game area with the left mouse button (click the button again to exit this mode).

  • I completely rewrote the way the game ports are handled. You can now plug and unplug different peripherals into both game ports (through a special menu). For now, the only available peripherals are the Joystick and the Keyboard Adapter (see next point), but more devices should be implemented as the versions come out...

  • Added emulation of a new peripheral : the PS/2 Keyboard Adapter. This new device, realised in 2006 by Richard Hutchinson, let you connect any PS/2 keyboard to the Vectrex! Since it's a brand new hardware, there is not any application making use of it yet, but ParaJVE is now ready for the developers who want to have a go at it (don't forget to set it up through the "Key Mapping" menu). If you're interested, you can find more information in this discussion.

  • Implemented direct DAC write to Sound Resistive Network (as described in this post), to complete sound emulation.
And finally, this release comes with a few minor fixes:

  • Implemented VIA6522 SR Mode 101.
  • Fixed a regression introduced in 0.3.2 where the command line argument -GAME=xxx was not handled correctly.
I hope you'll have fun with this version!

Labels:

Wednesday, November 08, 2006  

Version 0.3.2

As promised, here is the latest version.

It includes all the stuff described in the previous post, as well as a slight change made to the dots removal heuristic (you can learn more about this in this old post).

Now that nearly every remaining dot is likely to be demanded by the programmer, their size has been increased a bit, so that they get more in evidence. This is rather useful in games like MineStorm (the inactive mines are clearly visible), or Cosmic-Chasm (now you can see the flashing dot on the caves plan!).

In a future version I'll do more tweaking and set a different optimal size for each game and/or add a dialog where the user can tweak the lines/dots width by his own means.

Enjoy the release!

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: , , ,

Wednesday, October 18, 2006  

Version 0.3.0 released

Finally, the third public release of ParaJVE is now available for download.

This release comes with additional homebrew game roms, and now embeds an HTML documentation for each game ; but it does not include any new (brighter) overlay yet, since I did not have the time to work on that.

Anyway, as said previously, the big feature of this version is the sound emulation. Although I've just noticed a slight bug today (some kind of high-frequency parasite in Scramble), the emulation is still good enough.

As it stands, the audio rendering is hooked on the emulation's framerate (that's why it plays too fast). This explains why the sound will sometime appear distorted on slow machines, or when performing simultaneous tasks (navigating through the emulator's menu, for instance). Clearly, any background process using a fair part of the CPU is likely to completely ruin the sound effects. Other than that, for the average gaming session, the audio experience should be alright.

At the time, there are only three packaging available : one for Windows, and two for Linux (i586 generic & AMD64 specific). I'll try to build one for the Mac platform in the next few days.
Speaking of this OS, I'd really like to thank "GrandGibus" on the macgeneration.com forums for his invaluable help and tests regarding Mac OS X packaging. Cheers Fred! :)

I hope you enjoy this release, and as usual, feel free to drop a line if you have any suggestion and/or bug report!


Breaking News :
It appears that the sound does not work as expected on some linux platforms.
My bad, I had not checked the audio on my linux box yet... I'll investigate this problem as soon as possible.
 

Labels:

Sunday, September 10, 2006  

Version 0.2.0 released

It was about time! :)

The new release is ready for download here.

The good news is that the packaging embeds the roms and overlays, so no extra download is needed to install the emulator. It should be also easier to install since no manual edition of the launch scripts is needed anymore (well, in most situations).

I also added a few goodies that were not planned initially : a screenshot fonctionality (available only when the emulator is paused), and a menu item that checks online if a new version is available.

As said in the previous post, there are different packagings for different operating systems :
  • Windows
  • Linux i586 (generic linux bundle)
  • Linux for AMD64 (linux bundle optimised for AMD64)
As you can see, no release is available for the Mac plateform, due to the general lack of support. Maybe I'll build one eventually, if I have more time to investigate this OS.

The default keymapping is :
  • Joystick buttons 1 to 4 : Keys "1" to "4"
  • Joystick axis : direction keys
  • Pause = "ENTER"
  • Hide menu = "F1"
  • Exit = "ESCAPE"
It's likely that the first thing you may want to do is redefine this mapping. You can easily do that through the emulator's menu.

Enjoy!

Labels:

Friday, July 21, 2006  

Now also available for Linux, MacOS X and Solaris

Well, hopefully, that is... :)

Here are the native libraries for these platforms ; with that you should be able to run the emulator on these targets too. As I have none of these systems available for testing, I can't check that it works properly. If you have a chance to try it, please tell me if it's ok or not.

To install the native libraries, download the right archive, unzip it directly into the emulator's directory, and you're nearly done!

Of course, as you can't launch the emulator with the vectrex.bat script, 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)

JOGL native libraries for Mac OS X 10.3+
JOGL native libraries for Linux/x86
JOGL native libraries for Solaris/SPARC 2.8+
JOGL native libraries for Solaris/x86 2.9+

Alternatively, you can get these files (as a JAR archive) from the JOGL 1.1.1 download page.

Labels: , ,

Wednesday, July 19, 2006  

First public release

As I wanted to gather different feedback from potential users, I've decided to build and release a quick and dirty packaging for the emulator. Hopefully, everybody having a very minimal java knowledge should be able to run it without too much hassle! :)

You can download the emulator here : ParaJVE 0.1.0.060718

All that it needs to work properly is an installed Java Runtime Environment 5.0 (yes, a 1.5 JRE ; no, it won't work with a 1.4 JRE), and a windows platform (because of JOGL, a native OpenGL library I use atm).
If some of you want to try it on a mac, though, I think I can find the mac native libs, but I never tested them (ask me if you're willing to try that).

Once unzipped, all you need to do is :
  • edit "vectrex.bat" to make the JAVADIR variable refer to the good path.
  • edit "vectrex.properties" to set the various ROM paths, and also the keymapping (the file is self-commented)
  • run the emulator "vectrex.bat"
As you will see, the project is far from completion, a lot of stuff is not implemented (sound,overlays) or not working properly (vectors alignment & drifts, frame limiter code, SAVE and LOAD won't work in this build).
Don't worry if it seems too slow on your machine as the code is not optimized at all (there will be huge room for speed improvement when I will come to profiling/optimisation).

Also, don't be disapointed by the awful GUI, as it's only a temporary one for this fast release... Still, nearly all original games seem to work, only clean-sweep is crashing at startup (working on that).

Of course, comments and ideas from everybody are most than welcome!

Labels: