Electronics, coding and hacking. And ADD.

SID chip replacement project


The TDA1543's finally arrived yesterday, after almost about a months wait. I bet, that if I were to race the package home from China, I would win by walking... blindfolded... on my hands.

The ultimate test for the breadboard SID chip, is to hook it up to a genuine Commodore 64 and see if it works, and how well it does the job. Since I now have all the parts required, it's a matter of assembling and testing. If I'm satisfied, I will design a PCB for it with the footprint of a DIP28 package, resembling the SID chip as much as possible.

Unfortunately, as you know, I don't have much playtime these days due to refurbishing the new house and moving. These days I'm installing laminate flooring, cutting and fitting boards until late night. Hopefully, the SID project will see the light of day this weekend...

The jungle of synthesized design


I finally got my Altera CPLD board in the mail yesterday. I was really looking forward to start playing with it immediately, but as it turned out, I had to download 3 gigabytes(!) worth of development tools in order to start. With an intensively shared internet connection, the playtime had to wait until tonight. I can't wait until I have my own private line.

What I received was an Altera board with a MAXII family (more specifically the EPM240T100C5) CPLD, coupled with an external 50MHz clock available to turn the wheel around. The programmer itself is a Chinese knock-off which is, supposedly, compatible with the original USB-Blaster from Altera. From what I have heard, it works just fine. Here's the hardware I'm playing with:

CPLD board and USB-Blaster

After installing the software, the first impressions vary from "WOW!" to "holy shit, how the hell am I going to learn this?" - but I'm determined to master this, once and for all.

After fiddling around with the controls for a bit, I finally got the essence of it and wrote a simple program that divided the clock down to blink an LED. This simple Youtube clip shows the board in action:

(I just had a mild cold, and I'm sniffing like crazy, so I did a short audioswap on Youtube to spare you the nasal sounds)

All in all, I'm quite pleased with the progress - a couple of hours from installing to having the first synthesized design up and running is more than satisfying. Really looking forward to play some more with it tomorrow.

We made it!


The C64 demo was finished at the party, several hours after the deadline. I didn't realize so much work remained; finishing the twist scroller, implementing the loader, adding and fading out the music, etc. I guess I spent about 12 hours coding at the party, in total. We were happy with the product, and landed on a 4th place in the Oldskool Demo Compo. Without further ado, here is our most recent demo, Naked Grinder by Hoaxers. A longplay of the demo can be seen on Youtube.

We will now be getting ready for X'2012. We'll have the demo ready before the party next time.

Meanwhile, a lot of goodies arrived. The ATmega, 24MHz crystals, PCB's and more, actually most parts for the Swinsid chip are in, so I'll probably start soldering up some prototypes tonight. Still haven't received the TDA1543's, so unless I do some creative hacking with the Swinsid code, I won't be hearing any sound just yet.

Pause for one week


Can someone please hit the pause button for, say, one week?

I really have to focus on my part for the C64 demo now. All other projects are put on hold, despite the fact that I received my video chip crystals and an Altera FPGA programmer in the mail the other day. And a lot of other components are also expected in the mail the next few days, so I'll have to stay strong.

The party I'm attending is Kindergarden 2011, and I'll be coding a (hopefully) spectacular shaded twistscroller on the C64. I'll really have to punish that 6502 and the VIC in order to get it done.

A lot of work still remains, and I guess that I will be coding on this party as well, just like every year before. And, hey, to top it all we're starting moving into the new house this week too. My precious evenings are shortened even more.

I'll let you know how it went next week.

Breadboard SID player (part deux)


I should be kept on a leash for my own safety, because I'm apparently quite stupid. I intentionally chose to avoid using RAM in this project, because I wanted a minimalist design with less wires, thus easier to debug. I also thought that the 6502 would work fine without RAM (which it theoretically does) since all the code is in ROM.

Guess what the first thing I do in my ROM code? Why, JSR to $E000, naturally, where the SID player is initialized. This instruction pushes the caller's address to the stack which is in... ah yes, RAM. Since this failed, the CPU could never return properly from the RTS and went into a very unpredictable state where it eventually got stuck.

Last night I started wiring up everything from scratch, this time with the complete quartet; RAM, ROM, SID and CPU. I'll try again and will let you know how it turns out this time.

Unless I'm choking on my leash, of course.

Add to Google