Configuration
This chapter covers the preferences utility TurboEVDPrefs. For more
information about configuring the ShapeShifter side of things refer
to the Shapeshifter's manual and
usage chapter.
When adding features to the TurboEVD driver I noticed that some
of the features should be optional or otherwise configurable. To solve
this problem I wrote a little utility called TurboEVDPrefs. It can be
started from shell or by clicking its icon. You must also have
MUI
(Magic user interface) by Stefan Stuntz installed.
All the features in TurboEVDPrefs should work like their counterparts in
the AmigaOS preferences programs. So it should be pretty obvious how to
use it except for the configuration of course. Here is a screenshot
of the preferences utility.
- Border blank - If selected the border of the Macintosh emulation
screen will appear as pitch black instead of the background colour.
- Optimize chip mem performance - This radiobutton controls
the choice whether TurboEVD changes the cache mode bits in the MMU
tables. This might have dramatic effect on the 68060 CPU. For example
here are the test results of running the 8 bpl chunky to planar routine
with and without imprecise memory model.
Name Count Mid. time (ms)
--------------------------------------
amlaukka_c2p8_cpu5_blit0: 66 29.69
--------------------------------------
amlaukka_c2p8_cpu5_blit0: 66 21.36
- Change fast mem cache mode - You have a choice to change the
cache operation for the fast mem buffers which TurboEVD uses. The
default is copyback operation which allocates a new cache line even when
writing to a line missing from the cache. In the selected state TurboEVD
will use a write through cache model. This has the effect that writes
will be written directly to the bus without allocating a cache line.
This might be helpful in cases where lots of vertical writing occurs
(like in Doom clones).
- Own refresh - TurboEVD will replace the refreshing system
which Shapeshifter uses with its own. There is a known deficiency with
the Shapeshifter refreshing system that it doesn't allow refresh rate of
zero (0). This refresh rate allows using of completely smooth mouse
pointers and instant feed back.
- Refresh rate - This slider lets you select the refresh rate
which is to be used with TurboEVD's internal refreshing system. If you
haven't selected own refresh this slider will be ghosted.
- HAM8 palette handling - This is a major new feature of
TurboEVD. It now supports hicolour (32878) mode which is converted to
HAM8 in realtime. The algorithm is highly tuned for performance and uses
a 96 kB lookup table. This table is precalculated by the preferences
utility from the given base palette and a magic epsilon value.
Base palette refers to the 64 colour palette which is a specialty of the
HAM8 mode.
A HAM8 display has a special pixel encoding scheme where the upper
two bitplanes of a pixel contain control information. The display
hardware decides how to use the lower six bits from these two bits.
There are four possibilities: change red, change green, change blue or
use a colour from the base palette. This palette is essential for the
conversion routine because it minimizes the fringing phenomenon often
associated with HAM displays and enables very sharp colour changes which
normally wouldn't be possible.
In short this base palette must be carefully chosen to get as clean HAM8
display as possible. Also there is no single best palette so there's a
facility in TurboEVD to have several base palettes and associated
information. These palettes are all listed in the listview on the right.
You can create, edit and delete a palette. When clicking on edit or
double clicking an entry a new editing window will appear. This window
has several options.
- Import - Import a new palette. The palette is a 256 bytes long
file containing 64 palette entries in a raw 0x00RRGGBB format. This kind
of file can be exported for example by
piccon.
- The two string gadgets let you change the name of the palette by
which it appears in the listview and the name of the precalculated lookup
table.
- Epsilon - This is the special epsilon value referred above.
The value refers to a cut out threshold used by the table calculation
function. To best understand this you might want to experiment by
entering different numbers. Negative numbers are not allowed. Entering
zero means that you don't want to use the base palette at all and any
larger value will change the treshold which controls how loosely a base
palette colour can be chosen instead of altering one component in HAM
style. A very big value (like something over one million) means that all
the colours will be chosen to be presented by the base palette. This
doesn't look too pretty in most cases as can be seen from the following
example.
-
Picture 1) agaevd.pal with epsilon 0

-
Picture 2) agaevd.pal with epsilon 240

-
Picture 3) agaevd.pal with epsilon 100000
