C64 Keyboard Prototype
breadbox64.com
breadbox64.com
There's one part in C64 that's becoming more and more rare — the amazing SID sound chip.
I wonder whether it'd be possible to have production runs of truly new 6581 and/or 8580 SID chips. Does someone still have the old masks?
Other chips you could emulate with an FPGA. But SID is partially analog, so it's special. Some say no two SIDs sound the same.
Btw, recent C64 music demo playing off 1 MB Ocean style (= ROM) cartridge (not REU):
https://www.youtube.com/watch?v=7qxxnJVU4jQ
https://www.youtube.com/watch?v=UYAf_awh5XA
Yes, it's real. Not particularly good example of SID though, but still impressive for 1982/83 technology.
But this one does show off SID; C64 "Cubase", realtime DSP (timestretch, low/high pass filter, distortion, etc.) pretty amazing:
You can probably reverse the masks with a microscope with a little elbow grease. Not trivial by any means, but doable by someone in a garage as a hobby.
The real question, does a fab that can work with that process still exist?
http://forum.6502.org/viewtopic.php?f=8&t=4150
Lots of interesting analog chip level stuff, it’s all new to me as I’ve only dealt with things at the digital level, but very interesting to see how the fabrication technology works in an analog way..
The author of "Cubase64" (Pex "Mahoney" Tufvesson) has written an interesting explanation of how it is made: https://livet.se/mahoney/c64-files/Cubase64_White_Paper_by_P...
The technique used in the two first links of parent comment, is, as I understand it, based on another work of Pex : https://livet.se/mahoney/c64-files/Musik_RunStop_Technical_D...
For digitized sound, the SID isn't different from something like a PC beeper.
Fair enough. Although cubase64 does use SID features in an innovate way.
> For digitized sound, the SID isn't different from something like a PC beeper.
C64 is way superior for playing samples compared to PC beeper. Only commonality is that it takes high amount of CPU cycles, in the linked example all of it.
Mostly I remember this type of sound, even at higher sample rate: https://www.youtube.com/watch?v=1fErwWtkMS4
I wrote a noise shaping PC-beeper PWM converter in the nineties, oversampling at maybe 500 kHz or so. It still sounded very tinny. (First version was without shaping, and it had an annoying high frequency pitch.)
> Basically; the faster the PC, the higher the sampling rate you can go.
Not really, io-port (outb) encounters a brick wall pretty early. So no matter how fast the CPU is, you can't toggle the speaker any faster.
Set pixel (x,y) to color (r,g,b)
I wish today’s kids had this with as little overhead as possible
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;
ctx.fillRect(x, y, 1, 1);
I say it's pretty close. <canvas id="canvas" width="400" height="400"></canvas>
<script>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var width = canvas.width;
var height = canvas.height;
var imagedata = ctx.createImageData(width, height);
function draw(r, g, b, x, y){
var pixelindex = (y * width + x) * 4;
imagedata.data[pixelindex] = r;
imagedata.data[pixelindex+1] = g;
imagedata.data[pixelindex+2] = b;
imagedata.data[pixelindex+3] = 255; //alpha
ctx.putImageData(imagedata, 0, 0);
}
</script>
This gives you a 400x400 space to draw on. Open the console and call draw(). draw(0,0,0,15,15);And then people wonder why computers feel slower than they did 15 years ago.
Interestingly, by abusing some architectural oddities, people have been able to create new graphics modes on the 64 that support more colors than the original 16 and in hi-res. But it's still not as easy as set pixel (x, y).
Flicker free 320x200 high res on C64 (flicker free starts at 42s):
https://www.youtube.com/watch?v=Vcm0ecni5d4
This one's flickery, but still pretty nice:
Video RAM was expensive back then, so the common "gaming" hardware worked around the issues in ways that made use of graphics as independently colored pixels very difficult, and this includes things like the game consoles, Amigas and Atari STs and their lack of chunky graphics modes.
A Macintosh II with a full-color display card and an RGB display from 1987 could be one of the oldest commodity hardware setups that could do what you ask for; simple fully buffered frame buffer supporting 24bit RGB colors. VRAM-wise they were 32bit really, but 8 bits per pixel were wasted, because RGBA wasn't supported and it wasn't until early 90s Apple supported 16bit modes; 1/2/4/8/24bit graphics were your only options on Macs until then. They had accelerated 2D drawing primitives from the OS / graphics card firmware-driver (Color QuickDraw) supporting with APIs doing what you describe and in a way where your software wasn't dependent on the hardware implementation; software written for them would work until 2006 and the Intel Macs, and discontinuation of the Classic environment in Mac OS X 10.5 Leopard on the PPC Macs.
Some nonstandard "extended" VGA cards before VESA standardization of "SVGA modes" could also do it by late 80s/early 90s, but those were pretty much hardware-dependent and you had to use them at bare metal until OS / driver support for such came around in Windows 3 times. Some MS-DOS software, like Deluxe Paint would support many of them though.
[1]: https://www.geekzone.fr/wp-content/uploads/2015/09/Minila-Ai...