3 ms·
Hmm actually the Copper probably isn't fast enough for this - it takes about 8 pixel scanout equivalent to update one register, and hblank isn't going to be lar
by mjg59 1y ago
Hmm actually the Copper probably isn't fast enough for this - it takes about 8 pixel scanout equivalent to update one register, and hblank isn't going to be large enough to update all of them. But Copper's performance is restricted by having to read instructions out of RAM before executing them, so if I just use another core on the Pi to read the scanout location I can have that update the palette during scanout much faster without blocking the main thread from continuing to render the next frame.
- amiga386 1y agoIf you're willing to do your own timing and race the beam, pump $0RGB values to $DFF180 with no bitplanes enabled at all. Alternatively, on a AGA system you could use HAM8 mode and judicious use of colour palette to get 18-bit truecolour? Every pixel is 4 HAM8 pixels, displayed in SuperHiRes mode to look like 1 lowres pixel: First is the base colour, from one of 64 palette colours, which are 4 intensities of R, G and B in the MSB (e.g. 00xxxx 40xxxx 80xxxx C0xxxx times xx00xx xx40xx xx80xx xxC0xx times xxxx00 xxxx40 xxxx80 xxxxC0; 4*4*4 combinations = 64 colours). Next, three modifier pixels, modifying R then G then B to set the lower 6 bits of each. See https://youtu.be/pjiBhrqKxk4?t=41 https://youtu.be/pjiBhrqKxk4?t=41 (or http://aminet.net/package/gfx/show/h8jpg http://aminet.net/package/gfx/show/h8jpg and http://aminet.net/package/gfx/show/h8ilbm http://aminet.net/package/gfx/show/h8ilbm if you want code)