Table of Contents
SAGA Video Core
Overview
Current SAGA Video Core provides a Chunky Screenmode that supports 8/15/16/24/32-bits and YUV422
.
Final version will have full Planar
modes like in original Commodore AGA Chipset but with enhanced specifications.
Features
- Chunky plane that can be displayed on its own by any dedicated RTG Driver.
- Supports the following Pixel Formats:
CLUT8
,RGB15
,RGB16
,RGB24
,RGB32
,YUV422
. - Supports the following Resolutions: Any valid mode from
320×200
to1920×1080
. - FrameBuffer can be any address from accessible FastRAM.
- FrameBuffer can be Read and Write, for Direct Hardware drawings.
Not yet implemented Features :
- Planar mode that supports all AGA Chipset modes.
- Planar mode that supports new enhanced modes.
- Chunky plane that can be displayed together with 8 planar planes or alone on its own.
Chunky VIDEO Registers
The FrameBuffer of the Chunky Video Mode can be any address from accessible FastRAM, by specifying the SAGA_VIDEO_PLANEPTR
register. The FrameBuffer is Readable and Writable, for faster Direct Hardware drawings.
Register | Name | Access | Size | Description |
---|---|---|---|---|
DFF1EC | saga_video_planeptr | W | ULONG | Set the SAGA Video FrameBuffer Address |
DFF1F4 | saga_video_mode | W | UWORD | Set the SAGA Video Mode |
The Chunky Video mode can accept virtually any resolution from 320×200 (LowRes) to 1920×1080 (1080p).
The video engine can be dynamically reconfigured at any time by filling a valid ModeLine
.
Register | Name | Access | Size | Description |
---|---|---|---|---|
DFF1F8 | saga_video_pllw | W | UWORD | Set the SAGA ModeLine PIXELCLOCK |
DFF1FA | saga_video_pllr | R | UWORD | Set the SAGA ModeLine PIXELCLOCK |
DFF300 | saga_video_hpixel | W | UWORD | Set the SAGA ModeLine HPIXEL |
DFF302 | saga_video_hsstrt | W | UWORD | Set the SAGA ModeLine HSSTRT |
DFF304 | saga_video_hsstop | W | UWORD | Set the SAGA ModeLine HSSTOP |
DFF306 | saga_video_htotal | W | UWORD | Set the SAGA ModeLine HTOTAL |
DFF308 | saga_video_vpixel | W | UWORD | Set the SAGA ModeLine VPIXEL |
DFF30A | saga_video_vsstrt | W | UWORD | Set the SAGA ModeLine VSSTRT |
DFF30C | saga_video_vsstop | W | UWORD | Set the SAGA ModeLine VSSTOP |
DFF30E | saga_video_vtotal | W | UWORD | Set the SAGA ModeLine VTOTAL |
DFF310 | saga_video_hvsync | W | UWORD | Set the SAGA ModeLine HVSYNC |
When the SAGA_VIDEO_MODE
is set to SAGA_VIDEO_FORMAT_CLUT8
, a palette should be defined by filling the 256-color lookup table. Each color is 32-bits long, in the ARGB
format.
Register | Name | Access | Size | Description |
---|---|---|---|---|
DFF400 | saga_video_clut [0] | W | ULONG | Set the SAGA CLUT8 Color #001 |
DFF7FC | saga_video_clut [255] | W | ULONG | Set the SAGA CLUT8 Color #256 |
Chunky ModeLine Description
Universal ModeLine Calculator (UMC
for AmigaOS 3.x, available on Aminet) can be used to generate a valid ModeLine
for a given resolution. For example, we can ask UMC
for a valid ModeLine
for a 800×600@60Hz
resolution. Just type the following line (add the --rbt
option for a reduced framebuffer):
Example of a standard ModeLine
:
> umc 800 600 60
"MODENAME" PIXELCLOCK HPIXEL HSSTRT HSSTOP HTOTAL VPIXEL VSSTRT VSSTOP VTOTAL HVSYNC Modeline "800x600@60" 38.400000 800 832 912 1024 600 604 608 625 -HSync +VSync
Example of a reduced ModeLine
:
> umc 800 600 60 --rbt
"MODENAME" PIXELCLOCK HPIXEL HSSTRT HSSTOP HTOTAL VPIXEL VSSTRT VSSTOP VTOTAL HVSYNC Modeline "800x600@60R" 35.500000 800 848 880 960 600 603 607 618 -HSync +VSync
ModeLine
values description:
Attribute | Short | Description |
---|---|---|
PIXELCLOCK | Bandwidth (MHz) | How many dots it can output per second. |
HPIXEL | Width | Number of horizontal pixels drawn to the visible part of the screen. |
HSSTRT -HPIXEL | Front Porch | Amount of black pixels drawn to the right of the screen. |
HSSTOP -HSSTRT | Sync Pulse | Amount of time it takes to start another line. |
HTOTAL -HSSTOP | Back Porch | Amount of black pixels drawn to the left of the screen. |
VPIXEL | Height | Number of vertical pixels drawn to the visible part of the screen. |
VSSTRT -VPIXEL | Front Porch | Amount of black pixels drawn on the bottom of the screen. |
VSSTOP -VSSTRT | Vertical Sync | Amount of time it takes to move back up to the first line of the screen. |
VTOTAL -VSSTOP | Back Porch | Amount of black pixels drawn to the top of the screen. |
HVSYNC | Flags | Sync Polarity. HSync on High Byte, VSync on Low Byte. |