AgonConsole8 / agon-vdp

Official Firmware for the Agon Console8: ESP32 VDP
MIT License
38 stars 17 forks source link

updates to support all GCOL and PLOT “modes” #148

Closed stevesims closed 7 months ago

stevesims commented 7 months ago

supports all of Acorn's "basic" GCOL modes, 0-7 (0-4 from the Beeb, 5-7 from the Archimedes)

also support the "invert pixels" PLOT "mode", which operates the same as GCOL mode 4

stevesims commented 7 months ago

tested behaviour of GCOL modes in a 64-colour mode seems to essentially match Acorn

exact pixel positioning on PLOTs are slightly difficult to judge whether they match properly, owing to differences in screen resolutions and coordinate rounding. Agon's relative PLOT coordinate calculations are pre-rounded - this can cause mis-matches in positioning, with Agon losing pixels when relative move values get repeatedly rounded down. if Agon tracked positions of graphics cursor points using OS coordinates this would resolve that issue, but making such a change may be tricky

Acorn systems also seem to track two GCOL modes - one for foreground, the other background, and picks the relevant mode according to the PLOT command (whether it's using foreground or background colour)

stevesims commented 7 months ago

tests in all depths work - Acorn's 16 colour modes by default use flashing colours tho for 8 of the colours - lolz

relative positioning issue fixed

stevesims commented 7 months ago

line-fill plots didn't quite match up with respect to where cursor position was left after plot operations - now fixed

"move" plot on Acorn systems does a "set" operation to background colour, ignoring whatever gcol paint mode may have been set for bg colour plots, so that's now behaviour on Agon too