This archive contains all you need to get Picasso96 up and running on your
Amiga. Picasso96 offers support for many different Amiga graphics boards,
has builtin HiColor and TrueColor support for intuition screens and many
- Kickstart and Workbench 3.0 (V39) or later,
- Motorola MC68020 processor or better,
- Altais, CyberVision64, CyberVision64/3D, Domino, Merlin, oMniBus,
PicassoII, PicassoII+, PicassoIV, Piccolo, Piccolo SD64, Pixel64,
Retina BLT Z3, Spectrum or uaegfx (for UAE, the UNIX/unusable/usable
Picasso96 is ShareWare. Requested fee US$20 or DM30, free to use for
PicassoIV and Pixel64 users (the manufacturers of those cards already
paid for these licences) and the really few ones that already have
sent us a donation.
No distribution restrictions as long as the the archive is complete
and none of the files within is changed. BBS notes may be added.
Changes in 2.0:
- version bump due to large improvements.
- first Draco Altais support.
- all Amiga graphics functions using the blitter now have working fallback
routines using the CPU instead if necessary.
- *NEW FEATURE*: added functionality to patch the most common native
Amiga chipset screen modes to use a Picasso96 board to ease use and
installation of Picasso96 on systems that don't have a native Amiga
chipset (like the Macrosystem Draco) or that have no monitor attached
to the native chip set signal connector or that don't have a flicker
fixer and no 15 kHz capable monitor. To enable this feature add the
tool type "FakeNativeModes=Yes" to the monitor driver of one of your
cards (defaults to "Yes" with the Draco Altais and "No" for all other
cards) and remove all native Amiga monitor drivers (!). Now, when the
system uses one of the native Amiga screen modes (currently only
LowRes, HighRes and SuperHighRes and their interlaced counter parts),
a 640x480 31kHz 60Hz screen mode on the graphics card will be used.
Note: this mode is not configurable and it is not intended to be,
because you should use real Picasso96 screen mode IDs whenever you
can. Its only intention is to get the workbench on a VGA compatible
screen when the current screenmode.prefs contains an invalid mode
id. May also be useful for some (stupid) programs that default to a
custom screen with a native Amiga screen mode after installation.
- added checks and patches to support Draco (thanks go to Jürgen
Döffinger for doing a big part of the work).
- fixed BltBitMap rendering bug when blitting from 24 bit RGB to 32 bit
BGRA (and also BGR to RGBA) (discovered by Niels Knoop).
- fixed wrong line drawing on clipped planar Amiga bitmaps (thanks
to Thomas Richter for finding and describing the bug).
- found a wrong CyberFMT assignment that could cause HiColor bitmaps
to get the wrong color format when used with programs using the
- fixed slightly wrong MonitorSpec->ratio* values.
- rearranged main library files and linking to ease replacing object
files with own routines for programmers participating in the
Picasso96 rtg.library development.
- added support for non-disk based board drivers (for drivers that
will be launched automatically by UAE).
- board drivers can now suppress the loading of settings and the
creation of the edit screen mode used by Picasso96Mode. This is
useful for drivers that generate their own display ids like UAEgfx.
- fixed a possible race condition problem with the rtg.library memory
pool management functions.
- *NEW FEATURE*: software sprite routines will use on-board blitter
when available. Therefore boards which have a blitter reserve about
12 KB of their memory for sprite and back buffers. This might affect
the size of the largest screen that can be opened in some systems
(mostly with 1MB cards).
- fixed rendering problem with softsprites on Hi/TrueColor screens
where transparent part was visible.
- *NEW FEATURE*: alerts (Alert(), DisplayAlert(), TimedDisplayAlert())
now are rendered into the front most screen if it is a Picasso96 one.
After termination of the alert, the display is restored.
- *NEW FEATURE*: board drivers can now prevent the loading and attaching
of settings files. Useful for the UAEgfx driver that creates its own
modes and cannot use standard settings definitions at all.
- *NEW FEATURE*: new environment variable "DisableAmigaBlitter" which
even forces blits on standard planar Amiga bitmaps to be performed
by the CPU. Set to 'yes' to enable this feature. If you don't use
native Amiga screens, this could improve some operations on fast
processors. On the other hand, Amiga screens will be slower.
Defaults to 'No'.
- *NEW FEATURE*: new environment variable "PlanesToFast" which when
set to 'Yes' will allocate planar bitplanes to fast memory except
when the caller requested a visible or standard bitmap. Defaults
- Flood() patch added (our thanks go to Olaf Barthel for the code).
- BitMapScale() now scales between all combinations of RGB formats
but needs to allocate some temporary memory, if this fails, nothing
will be scaled... we should do a simple, braindead and slow fallback
routine that needs no buffer for that case.
- some internal optimisations, removal of unused code etc.
- implemented CPU version of AreaEnd() which is important for the
Draco, but with 68040 and 68060 systems this one is also faster
than the original using the blitter (at least with ECS).
- fixed bug in AreaEnd() which caused crashes (e.g. IconEdit filled
ellipses that extended into negative rastport coordinates).
- fixed BltMaskBitMapRastPort() bug with standard planar Amiga bitmaps.
- fixed bogus softsprite savebuffer restoration in upper left corner.
- fixed bugs that caused CVision 3D to clear a small odd rectangle
- added functionality to our custom semaphore routines and found a
bad bug, too. Rechecked all possible scenarios.
- fixed BltPattern bug which sometimes caused wierd results when the
DisableAmigaBlitter environment variable was set.
- fixed a small problem with LoadView that led to incomplete wakeup
after a program had temporarily changed the display with LoadView(0).
Thanks to Pavel Narozny and Thomas Richter for pointing that out.
- possible enforcer hit in AllocBitMap() fixed by Thomas Richter.
- Draw() bug with line pattern on obscured clip rects and another
possible race condition issue in Draw() fixed by Thomas Richter.
- fixed a rare but serious bug triggered by Picasso96Mode, causing it
- PicassoIV, PicassoII, Piccolo, Piccolo SD64, Pixel64, Spectrum (all
Cirrus based boards):
- fixed mouse sprite rendering problem at top of the screen when
BIGSPRITE was selected (also Thomas Richter).
- fixed yet another sprite rendering problem that could cause illegal
memory accesses with autoscroll screens (again Thomas Richter).
- more and finer pixel clocks for better mode adjustment.
- fixed ZorroII YUV422 PIP problem using the wrong memory aperture
- extended memory clock range from 45 to 77 MHz - still defaults to
- implemented hardware acceleration for 2D line drawing
- RetinaBLT Z3 and Draco Altais (NCR chip driver changes by Jürgen
- small changes with masked blits (less overhead).
- implemented hardware support for BltPattern.
- hardware sprite uses color 3 as inverted color now (unlike all other
- added Draco checks to monitor driver.
- InstallScript and Installation:
- Added the Draco Altais.
- Added PVS, the Picasso96 Variable Setter by Ralph Torchia (requires MUI).
- Creates ENV:Picasso96 and ENVARC:Picasso96 during installation and
updates. Also creates all supported variables and sets them to the
default values. Deletes everything during uninstall, too.
- if the install script is activated and the system language is not
properly selected (no or invalid ENV:Language) or there is no
translation of the install script for that language, you now will
be asked to choose a language first.
- therefore only one 'Install' icon necessary.
- added icon for the Picasso96.readme file so that the users can
read about the recent changes more easily.
- renamed the Installer script icon to 'Setup' to better reflect that
the script handles installation, updates and deinstallation
- added nederlands and norsk translations (Pieter Roodnat and Uwe Kubosch)
- fixed bug in 1.43 that caused the width and height parameters of PIPs
to be ignored when opening the PIP.
- *NEW FEATURE* user can now allocate private bitmaps that do not need
to be locked. Especially useful for programs that need temporary fast
memory bitmaps for rendering.
- p96WritePixel(): fixed softsprite image trashing bug.
- moved some functionality to the rtg.library.
- cybergraphics.library emulation:
- WriteRGBPixel(): fixed softsprite image trashing bug.
- fixed some CGX API function return values to be more compatible with
the public documentation.
- DoCDrawMethodTagList(): fixed bug with obscured cliprects.
- moved some functionality to the rtg.library.
Changes in 1.43b:
- fixed "DOpus crawling ants" bug (clipped lines with patterns
- removed some potential problems in the InstallPicasso96 script
- included current printer patch
Changes in 1.43a:
- fixed silly bug introduced with changes in WritePixel().
Changes in 1.43:
- fixed and optimized DrawEllipse() in TrueColor
- fixed complement Draw() in TrueColor (crawling ants bug)
- fixed missing WaitBlit() in WriteChunkyPixels(), WritePixelArray8()
and WritePixelLine8() subroutine
- included optimized 24 bit CPU routines for BltTemplate() and
BltPattern() by Niels Knoop (thanks a lot!)
- fixed handling of the "ENV:Picasso96/PlanarOnlyDIPFDBUF" environment
variable (cut'n'paste error, could therefore not work... :-)))
- changed WritePixel() to gain a small speedup (thanks to Didier Levet
for the suggestions)
- PIP can now scale down vertically to some degree by skipping lines
- added some synchronisation in PIP setup to prevent board from running
amok with PalomaTV sometimes
- rearranged init function to behave better on ZorroIII systems
- fixed scan doubler init and switch setting
- BltPattern() no longer produces wrong patterns
- fixed a stack problem when blitting in 32bit modes
- doublescan modes are no fully visible
- leftmost column of pixels is now visible again in 8bit modes
- fixed memory clock setup which defaulted to ~6 MHz due to a bug
- doubleclocked 8bit modes were accidently disabled (wrong refresh rates)
- scan doubler access logic should now be correct (finally)
- fixed interlace problems if vertical parameters had odd values
- fixed mode setting bug that prevented modes with vtotals greater
than 1024 from working at all
- fixed another bug with double scan modes
Changes in 1.42:
- rtg.library: fixed small bug with the "ShowModes" environment variable
which did not work when switching from custom flag setting to "all"
- added new environment variable "ENV:Picasso96/PlanarOnlyDIPFDBUF"
which when set to "yes" removes the DIPF_IS_DBUFFER attribute form all
non-planar Picasso96 modes. This is intended for Personal Paint users
that work with animations. PPaint (at least upto version 7.2) does not
check the screen bitmap format properly and assumes it to be planar
which causes severe problems with chunky bitmaps. Using this variable
prevents PPaint to use chunky screen modes for double buffer animations.
- corrected some cases within the new Hi/TrueColor CPU conversion
functions which caused wrong results or crashes especially when no
blitter was available
- optimized CPU line drawing routines (speed increases upto 50% depending
on type of display and line) as well as 24bit ellipse drawing code
- fixed garbled text on 8 bit screens (e.g. when typing in CON:), was
caused by blitter running amok when doing too small expansion blits
- added hardware video window (PIP), works now, but still needs some
little work, please test but don't complain :-))
- default memory clock is now 55 MHz (again)
- fixed scan doubler handling
- Pixel64: included correct driver in archive
- Documentation: changed URL to the Picasso96 home page to reflect the
new server location (http://picasso96.cogito.de/)
- new P96Speed (version 1.0) included in archive
Changes in 1.41a:
- fixed integration of new Hi/TrueColor CPU conversion functions
causing severe errors by wrong jumps generated by linker
- CyberVision: fixed bugs in hardware line algorithm (lines were
not drawn in some cases, result was different from CPU routine)
and added support for textured lines.
Changes in 1.41:
- Draw() support in the hardware abstraction layer and can now be
- added new Hi/TrueColor CPU conversion functions developed by Stefan
Sommerfeld (thanks a lot!)
- AttachSettings: added support for CVision3D (don't know why I forgot
that in the first place... :-)))
- emulation.library: found at least four wrong conversions in the
- implemented 24bit TrueColor modes (more economical and faster than
32bit and can use blitter in all cases)
- hardware interrupt added in ZorroIII (ZorroII not yet possible)
- minimum memory clock (default) now set to 55MHz
- CyberVision: implemented hardware accelerated line algorithm (solid
- Merlin: added some NOPs to avoid color expansion problems (thanks to
Jan-Willem van Wieren for investigating that issue)
- PicassoII: Code adjusted to avoid pixel errors in hicolor fonts and
patterns on some cards. If it still doesn't suffice, activate the
new tooltype "FONTSFIX=Yes" to switch from blitter to CPU rendering
of the afflicted operations which should solve the problem for good.
- RetinaBLTZ3: added support for external MacroSystem video switch, is
now used automatically used. NOTE: if you DON'T own such a device,
add the tool type "DisplayChain=No" to the monitor driver icon!!!
- Picasso96API has three new functions:
new Develop.lha archive is available
- french documentation added (unfortunately not quite up to date)
- suomi installation and documentation added (thanks to Mikko Virtanen)
Changes in 1.40:
- fixed bug in rtg.library which could cause Enforcer hits during boot
- fixed bug in rtg.library and PicassoIV.chip which caused crashes if a
PicassoIV with 7.4 ROM was used without p4specials.library
- fixed bug that caused screens sometimes to be black
- new tags for mode id query functions for video output support
- install script changed for ease of installation:
- detects PicassoII's in segmented mode and issues a warning
- new AttachSettings tool for basic settings file maintenance making
things easier for first time Picasso96 users
- Picasso96 is now ShareWare for users who don't own PicassoIV or
Pixel64 boards and the installer script gives a hint about that
- CVision3D: driver now working in ZorroII based Amigas as well
- new environment variable "Picasso96/ShowModes":
- "all": show all possible modes (including multiple modes of the same
depth that are only different in their RGB format)
- "essential": (default) the same behaviour as before, show only modes
that are really different from each other
- user supplied mask of RGB formats: decimal, hex($) or binary(%) value,
see includes section about color formats; example: $e=%1110=14
allows only 24 bit true color and chunky modes
Changes in 1.39:
- implemented CPU function for planar BltPattern() with rp->AreaPtrn (still
no support for bltmask and rp->AreaPtrn together)
- fixed bug that caused enforcer hits with planar bitmaps in fast memory
- remove some stupid mask considerations for Hi/TrueColor bitmaps (which
caused problems on such screens using less than 256 colors)
- Picasso96Mode has some extra features now:
- corrected algorithm to look for unused DisplayIDs when cloning settings
- new menue entry "Setting/Batch change IDs" which is used to renumber
all of the DisplayIDs for the current settings
- menu entry "Mode/Print mode" now prints mode lines for NetBSD 1.3, too
Changes in 1.38:
- fixed a dangerous bug in the clipping code (hi-words of some data
registers were trashed)
- implemented blitter emulation routines for planar bitmaps in fast memory
except for: BltPattern() with rp->AreaPtrn as well as Flood() and Area#?()
calls with rp->TmpRas->RasPtr pointing to fast memory; QBlit functionality
is also missing for all bitmaps in fast memory
- corrected BltBitMap() behavior to be same on all boards when blitting
from bitmaps with less planes than the destination bitmaps has
- new monitor tooltype "GrantDirectAccess": use this if you have problems
with programs that use direct display memory access without using locking
mechanisms like ShapeShifter on ZorroII Amigas with PicassoIV or with any
Amiga using a CyberVision64 board; this tooltype when set to "yes" prevents
bitmaps with different byte swapping requirements to be on the board
simultaneously if they cannot be accessed at the same time without
reconfiguring the board; when using PIP applications on ZorroII PicassoIV
this tool type should be set to "no" (default) to allow all combinations
of screen and PIP color formats
- fixed a small bug that was possibly causing wrong colors with CLUT screens
- PicassoIV: PIP handling (bandwidth calculations) improved, PIP windows
on TrueColor screens are back, now switched off when window is occluded
- Merlin: fixed a bug in blitter accelerated BltPattern causing enforcer
hits in some cases
- Merlin: planar to chunky blits wait for blitter ready flag between planes
- Retina BLT Z3: minimum memory clock is now 55 MHz
- CyberVision64: sprite colors are now set correctly when the mode changes
Changes in 1.37:
- removed SwapBitsRastPortClipRect bug (aka FastLayers/PictureManager bug)
- removed bug causing crashes with PMTNG while editing the test screen
- cybergraphics.library emulation now v41 compatible
- included an emulation of the cgxvideo.library using the video overlay
of the PicassoIV (not tested well, no CV64/3D overlay support yet, will
not work with Isis because of tests for emulation)
- added new board tool type "MemoryClock" which sets the memory clock
(in MHz) of the board within the allowed ranges (you can check with
CheckBoards to see the effectively used clock value). Boards that
support variable memory clocks and the supported ranges (exceeding values
will be clipped):
- CyberVision64: 54-65
- CyberVision3D: 55-65
- Retina BLT Z3: 60-85
Note: Cirrus based boards already run at maximum speed and therefore do
not support this tool type, Tseng based boards do not support variable
- PicassoII: added support for Pablo (all modes with 15 kHz and 50/60 Hz
switch on the video encoder) and possibly fixed a bug with wrong colors
- Retina BLT Z3: fixed a bug causing some blitter trash on 68030 based
- extended PIP-API:
- CLUT PIPs on Hi/TrueColor screens can have their own color table
- PIP does no longer have to use the complete window interior