Tips and tricks

I arranged this like an FAQ, except there are no questions.  Just answers.


There are different aspects to this emulator that work better on some platforms than others, and most of that is because the Java runtime varies from platform to platform.  Some things work really well (for example, this and other java programs run very smooth in Windows) and in other platforms fall apart (such as sound support in some Linux distros).

Getting sound to work properly in Linux:

The Oracle/Sun JRE is behind the times in driver support and this makes it a nightmare to get audio working properly.  I've not had much luck with the Oracle JRE when using Ubuntu 11.10 64-bit.  I've had a lot better luck using OpenJDK for running the emulator -- your mileage may vary.

Mockingboard playback:

Some programs and games assume the mockingboard is in slot 4.  (e.g. Firefox)  Other games like Ultima V don't care what slot it is in.  Currently, it is technically possible to add more than one Mockingboard to the emulation.  However, because of how the mockingboard was implemented this would be a bad idea and will cause the emulator to slow dramatically.  Official AE Phasor support is coming in a later release, and is already implemented for the most part (but has a really unusual bug causing it to sound incorrectly.)

Midi sound emulation:

To get MIDI emulation to sound correctly, you will need to download and install a file as well if one is not provided in your JRE's /lib/audio directory.  See the official Java site for details on this.  Here is a demonstration of how to configure MIDI emulation for Ultima V: 

JACE Midi Demo

Mac users, it will work with FN keys...

If you cannot use the FN keys with JACE, this might help:  Many thanks to Joshua Smith for this well-written blog post explaining how to get past this issue.

Using Hardware Acceleration:

If you want to play games at a larger resolution, you may have to explicitly ask Java to use hardware acceleration on some platforms.  The following apply to the Sun/Oracle JRE.  Check the documentation for the version you are using to see if there is anything more applicable to your setup.  Note: In my experience, this can actually cause things to slow to a crawl, especially in Linux with OpenJDK.  Your mileage may vary, and in some cases the JVM might already be optimized as best as it can be to suit your platform.

java -jar jace.jar -Dsun.java2d.opengl=true 

Or, alternatively in windows you can try activating Direct3D acceleration with the following:

java -jar jace.jar -Dsun.java2d.d3d=true

Because Jace renders into an offscreen buffer and then scales that buffer to the full window, this can drastically improve performance in games that generate a lot of screen updates.  Jace is generally smart enough to skip this extra step if there haven't been any changes to the screen in a while, so this setting won't have as much effect if using programs with little or no animation.


Some graphics accelerators work better when scaling the video by whole numbers, coincidentally the result is easier on the eye as well.  Press F8 to adjust the aspect ratio of the emulator window.

This emulator is architecturally dependent on threads to manage separate simultaneous operations.  Because of this, JACE will always perform better on multi-core machines.  When in doubt, make sure your JVM of choice is capable of utilizing your hardware's maximum potential (e.g. use 64-bit if you are running a 64-bit OS).

Disable hardware that is not in use.  Storage devices aren't a big deal because they don't do anything unless they are used by the computer, but the super serial card can cause a little bit of drag because it remains active all the time.  Also disable the MetaCheat feature if you have no intention of using it.  For the most part, though, metacheat will disable more expensive parts of its user interface when the search and heatmap windows are closed.

Also, sound shuts off after a second or two of inactivity.  Some games play sounds intermittently and the effect of this starts and stops sound causing emulation lurches.  To get past this, increase the "idle cycles before sleep" speaker option.  (for example, the default is 2000000, try adding a zero to that).  Alternatively, disable sound altogether.