The highest frequency the chip can output is 3906Hz, which is the equivalent of changing the video output every four rasterlines. Similar with ADSR, for which the smallest possible configurable attack time is 2 ms, so about 32 rasterlines. But thankfully, there's also circuitry that is wired more directly and and gives instant output: the volume register ($d418)! This has been used in the past to generate samples at high frequencies (16+ khz), and is a good choice for generating video, as well.
Talking about GCR decoding, I found it tedious to handcode the decoding tables, so we instead wrote a solver that generates them given the code that uses the tables, and the desired input/output.
I was surprised that there isn't even a mention of pulse-width modulation. Did that turn out to be entirely unusable for the purposes of this demo?
Also, i see more adds than shifts in the read+decode loop. Could it be you applied something like i outlined in Bitwise GCR decoding based on reordered GCR mappings and such?
0 -> 01001 1 -> 01010 2 -> 01011 3 -> 01101 4 -> 01110 5 -> 01111 6 -> 10010 7 -> 10011 8 -> 10101 9 -> 10110 A -> 10111 B -> 11001 C -> 11010 D -> 11011 E -> 11101 F -> 11110
Waveforms as a whole turned out to not be very useful for video. For starters, every waveform triggers negative voltages, but video out is supposed to be between +0V and ~+1V.
But even ignoring that, whatever pattern you generate using pulse widths, filters etc., would still only repeat every 4 lines, since that's the highest frequency you get.
With this, for some combinations (like read-1-bit-then-4-bits or read-3-bits-then-2-bits) the table lookups become separable.
And a holy grail would be to on-the-fly checksum while being able to write anywhere.
Okay, so you're using $d418 "samples" to force a DC bias in the output stage
And wouldn't this work _on top_ of waveforms, too?
(How is that "plasma" on the X-rotator done?)
I was thinking of pulse-width modulation, as in having the CPU change square wave pulse width or duty cycles at high frequency - PWM samples at 7.8 KHz (2 lines) or higher have been done, ofc.
Which benefits does the 1 KB block buffer in Signal Carnival's custom loader give?
User Comment Submitted by Jammer [PM] on 26 April 2025 I can only warn that Bitfunx Retroscaler doesn't like it and I probably fucked it for good but that's on me xD
It shouldn't be a problem for either - as long as the voltages are within range (and they are) and the frequencies too (they are) there is no problem at all.
I was also too lazy as of yet and a little too coward to try it here on real CRT. Now I read: Quoting 'Jammer in Comments'User Comment Submitted by Jammer [PM] on 26 April 2025 I can only warn that Bitfunx Retroscaler doesn't like it and I probably fucked it for good but that's on me xD My idea was using an old real CRT monitor (would not risk my very best Trinitron but a small studio JVS). What do the hardware gurus say... a) Can do no harm or b) Don't try this at home @Jammer: Would be interesting if you did hotplugging or turned off power before you toasted your hardeare