Shredz64 – Battling with SIDs

Well, some good news and some bad news. The bad news is I can’t figure out any good way of silencing or changing the frequency of SID data being played. I’ve tried silencing the SID right before/after/both each call to the player interrupt, and the most I can achieve is it making the song sound crackly. I’ve tried turning filters on and lots of other stuff, but unfortunately since the play interrupt is doing its own thing and playing the data the way it wants to (which is also using the SID and its filter in unique ways for every song), and I cant touch the SID chip until after its done, I can’t figure out a way to intercept data before it hits the SID registers. There’s always an option of running NMIs off CIA2 at a really high frequency which could interrupt the IRQ playing the SID file (could someone confirm the behavior/possibility of an NMI interrupting an IRQ?), but then I was thinking that the speed necessary to ensure the NMI hit the SID fast enough would completely eat up the processor, and the SID would still probably start playing something for a millisecond first that would make it sound like crackle or whatever. SID files are a blessing and a curse. They’re a blessing because there are a ton of them out there, and allow this game to be a possibility, and are low-sized ways of playing songs. They’re a curse because there’s no “outside” way of affecting them – short of reprogramming the SID you can’t really touch it. And building a mini emulator to examine instructions in the SID in realtime is pretty impossible as well. So, this may spell doom for the whammy bar doing anything or audible feedback when you get a note wrong / miss it.

The GOOD news is this really doesn’t take away from the game as much – and the game is pretty much done! There are still a few little bugs to fix and graphical improvements to make, but it’s rockin’ right now – and it’s actually fun to play! A few bugs fixed tonight, the shredocity meter was decreasing at an accelerated rate when a CIA timed SID was playing – this was because I was decreasing the shredocity meter relative to song “ticks”, and ticks weren’t constant for CIA timed songs. I moved the decrease code over to an interrupt triggered by Timer B on CIA1, which is fixed regardless of the speed of the song, so life is good there.

So what’s left now? Here’s the OFFICIAL LIST (not necessarily in order):

1. Fix up random little bugs
2. Make some more minor graphic improvements. Nice titles for each screen, maybe some (simple) fretboard artwork if I can manage it.
3. Make a practical note editor for Windows. Again, the curse of SID files, but you can’t rewind or preanalyze these things on a C64 (it will be hard enough to do on a fast machine). I’m leaving the “mini note recorder” in the game though, you can bang out notes for a new song quickly (just don’t make mistakes!)
4. Decide on the final lineup of SIDs to be included on the disk, and record notes for them. This includes trying to get ahold of the authors just to get a blessing. I’ve got some cool songs so far, they’re fun to play. HVSC is a freaking awesome resource.
5. Setup a place on the website for people to share their note files for SIDs with other people, so we can build up a library of songs.
6. PSX64 stuff. I have a few safety fixes to add, a few things I need to update in the firmware, then I’m going to get some prototype PCBs printed, tested, some enclosures manufactured, put the schematics up, sell premade units, etc.
7. Put a video up of Shredz64 in action!

Things are moving very quickly now, so I don’t expect any of it to take much longer. My poor C64 programmers reference guide has definitely gotten a beating the last few months.

Leave a Reply

Your email address will not be published.