4 ms·
Given there's no need to run any code on the 68K bus it's probably actually possible to do the palette calculations per line and use the copper to reprogram the
by mjg59 1y ago
Given there's no need to run any code on the 68K bus it's probably actually possible to do the palette calculations per line and use the copper to reprogram the colour registers every line, getting way more colours than plain EHB without the HAM side-effects
- nxobject 1y ago"Racing the scanline"?
- actionfromafar 1y agoYes, but without the hassle of counting instructions. The copper is made for that purpose.
- egypturnash 1y agoThis was known as “Sliced HAM” back in the day. I don’t recall anyone doing anything more than pre-processed still images with it though I wouldn’t be surprised to see a few demos with some real-time SHAM effects.
- mjg59 1y agoHmm 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)