Anima wrote: Tue May 16, 2023 6:35 pmUh, Vampire would be worth a try. In fact it'll work with 12 MB ST-RAM for sure but I am looking for 14 MB specifically, doh!
At this point, no VIDEL/SHIFTER video hw regs. So it's either VsetScreen(-1,phys,-1,-1)/VsetMode(mode)/Physbase()/Vset/setRGB() etc, or use SAGA hw registers directly:
#define SAGA_VIDEO_PALV4SA *(volatile ULONG*)0xdff388 /* only 1 register format : IRGB where I is index on 8 bits */
#define SAGA_SET_VIDEO_MODE *(volatile UWORD*)0xdff1f4 /* set video mode */
#define SAGA_GET_VIDEO_MODE *(volatile UWORD*)0xdfe1f4 /* get video mode */
#define SAGA_SET_VIDEO_MODULO *(volatile UWORD*)0xdff1e6 /* set video modulo */
#define SAGA_GET_VIDEO_MODULO *(volatile UWORD*)0xdfe1e6 /* get video modulo */
#define SAGA_SET_VIDEO_PHYSBASE *(volatile ULONG*)0xdff1ec /* write chunky plane ptr */
#define SAGA_GET_VIDEO_PHYSBASE *(volatile ULONG*)0xdfe1ec /* read chunky plane ptr */
Note that there's only a single palette register; upper byte is the palette index, palette is write only. Separate registers to read/write physbase, modulo, mode.
Video mode as follows:
Code: Select all
+-------+----------+-------------------------------------------+
| BIT# | FUNCTION | DESCRIPTION |
+-------+----------+-----------------------------------------+
| 15.08 | Resolution | $00 |
| | $01 = 320x200 |
| | $02 = 320x240 |
| | $03 = 320x256 |
| | $04 = 640x400 |
| | $05 = 640x480 |
| | $06 = 640x512 |
| | $07 = 960x540 |
| | $08 = 480x270 |
| | $09 = 304x224 |
| | $0A = 1280x720 |
| | $0B = 640x360 |
| | $0C = 800x600 |
| | $0D = 1024x768 |
| | $0E = 720x576 |
| | $0F = 848x480 |
| | $10 = 640x200 |
| | $11 = 1920x1080 |
| | $12 = 1280x1024 |
| | $13 = 1280x800 |
| | $14 = 1440x900 |
+-------+----------+-----------------------------------------+
| 07.00 | Pixelformat | $00 |
| | $01 = 8bit CHUNKY (indexed) |
| | $02 = 16bit R5G6B5 |
| | $03 = 15bit 1R5G5B5 |
| | $04 = 24bit R8G8B8 |
| | $05 = 32bit A8R8G8B8 |
| | $06 = YUV |
| | $07 = |
| | $08 = PLANAR 1BIT ATARI |
| | $09 = PLANAR 2BIT ATARI |
| | $0A = PLANAR 4BIT ATARI |
| | $0B = PLANAR 8BIT ATARI |
+-------+----------+-----------------------------------------+
Note: Not sure 8bit Atari planar is available yet, it's in the pipeline (perhaps it's already in the latest firmware, has yet to be tested).
VsetMode()/VsetScreen() either use Falcon/VIDEL/TOS4 format, or SAGA-specific format (0x4000 | SAGA_MODE_VALUE) (equals hw reg value above).
EDIT: SDMA-XBIOS APIs are available, but again no SDMA hw regs.