The main updates include:
- added Screen dragging
- added CyberVision drivers
- Warp3D API compatibility
thorfdbg, via A1K.org:
- This is a BIG change. This release provides one new (important) feature, and
that is screen dragging. It requires support from the chipset, namely the
VGA line compare register, and updated drivers to include the new API.
- Drivers for the Cirrus chips, the S3 chips, the NCR chip and the Tseng
chipset have been updated accordingly to provide the new API.
- Note that screen dragging has certain restrictions that all stem from the
limitation of the VGA chips and the corresponding boards:
- There must be enough memory to hold at least two screens in the graphics
- The two screens must share the same pixel layout (i.e. truecolor, hicolor
or indexed colors)
- The colors of the topmost screen will not be correct for indexed screens
as VGA chipsets do not include a copper, hence only one palette can be
loaded at a time.
- autoscroll screens that allow horizontal panning cannot be dragged. This
is a limitation of the VGA panning mechanism.
- Planar screens (16 colors planar) can only be dragged if the depth is
- At most two screen can be displayed at once, with the top most screen
being aligned to the top of the monitor.
- Memory management is completely new. In particular, P96 attempts to keep
screen on the board if possible. The older code could have erraneously
removed special features from the board without deactivating them first.
- Memory management for planar modes was completely broken. It always allocated
4 times as much memory as requested. Instead, it should have limited
the memory to the available legacy VGA max memory of 256K.
- Updated the chip API to allow signalling of max planar memory.
- Bitmap allocation and management was cleaned up a lot, going now through
a unified allocator, and modularized functions quite a bit.
- In case bitmap allocation failed, a proper error code is now reported
back to intuition V47.
- Intuition V47 communicates now colors into P96 which allows proper
backfilling of true color and hi-color bitmaps, without peeking into
private intuition structures.
- Bitmap on- and offloading had a bug and failed to safe back bitmaps
to be off-loaded in some cases. In particular, the bitmap allocation
and offload checking could have disagreed, removing a bitmap from the
board even if not necessary.
- Memory mode handling was fixed. The old code could have attempted to fill
a bitmap with a color with the previous mode still active, causing
defects when switching from planar to chunky or reverse.
- Undersized true-color screens are now filled with the background color
to reflect what palette modes would do.
- Cursor drawing on undersized bitmaps was fixed. The cursor can now enter
the out-of-bitmap areas, except for planar bitmaps. This allows
proper scrolling of the upper screen in split-screen arrangements.
- Pixel aspect ratio computation was always assuming a 4:3 screen, even
though VGA knows other aspects, such as 5:4, or (today) 16:9 and 16:10.
This release tries to be smart and guess the right monitor screen ratio
to create "nice" pixel aspect ratios.
- Aligned bitmaps are now aligned to MMU page sizes (not necessarily 4K),
and waste less memory.
- Flood fill failed on rastports larger than 1024x1024 pixels. It was
also optimized a bit.
- Disabling the Amiga blitter unfortunately also disabled native VSprites,
even though Bobs remained working. Now VSprites operate indepedent of
- Made some minor improvements in BltPattern and Area functionst to use
proper rounding. This cuts the code size down a bit.
- Palette update for planar modes was partially broken and could overwrite
- If the depth of a planar mode was changed, it could happen that the
code forgot to update the sprite colors.
- The Cirrus542x and Cirrus5446 drivers did not enable the double
vertical flag correctly. If double scan is set, the critical limit
is already at 512 lines, not 1024 lines. The Cirrus5434 driver did
this correctly already.
- The S3Virge and S3Trio chip drivers now support overclocking. To enable
this feature, add the OVERCLOCK=yes tooltype to the monitor icon.
Beware! Overclocking may result in artefacts, pixel noise and potentially
reduced life time of the graphics chips due to overheating. No warranty,
and use at your own risk.
- The pixel clock adjustment functions for the Tseng-chips are now set
to no-ops instead of letting the CPU run into a crash when the rtg.lib
attempts to use them.
- In case an overly large sprite is requested, the sprite height is now
clamped before attempting to load it into the hardware.
- As LoadRGB32() and SetRGB32() are implemented over the VecTable anyhow,
both functions do not require patching, thus the superfluous patch
was removed. Also, some programs called SetRGB32() or LoadRGB32()
incorrectly within an interrupt. The rtg.library includes now
precautions to ignore such calls instead of crashing.
- The CyberVision driver forgot to remove the int server again in case
no memory was found on the board.
- New chips and card drivers are included in this release. The CVisionPPC
and 3DLabsPermedia2 drivers are new in this release.
- DisplayAlert() did not remove the hardware sprite from the display and
did not time the alert properly. The alert could be gone so fast that
you could not read it.
- CalculcateBytesPerRow() can now return 0, indicating a failure. This
may be used to indicate that a bitmap is too wide for a particular
chip. For example, the Cirrus chips cannot take bitmaps wider than
4096 bytes (not pixels!)
- The computation of the P96 video mode pixel sizes is now a lot smarter
and not only uses the width and height of the video mode, but tries
to guess the target monitor aspect ratio (5:4,4:3,16:9 to name some
of the candidates). Provided your monitor is adjusted correctly, this
would give more reliable results.
- As intuition privates changed in Os 3.2, the hires sprite pointer is
no longer available in this version of the Os. Also, you should not
attempt to drag screens with the right Amiga key as this may leave
intuition in a confused state. Works ok in 3.1.4 and below.
- Added the mntmn graphics cards to P96Mode and the board info name
- Fixed a MuForce hit when a user attempts to attach board to a non-
existing settings in P96Mode.
- Added mntmn graphics cards to P96Mode.