After finishing up some other projects going on, I’ve finally been able to work on Shredz64 again, which I’m pretty happy about. Lots of good updates, and even a movie (please read disclaimer before watching!)
First off, I had to abandon my work with the SID converter. It was a neat idea and was kind of working, but the files it made were waaaay too huge for a C64, the timing didn’t work properly (and was never going to), and would require an extra step whenever I (or anyone else) wanted to add a new SID to the game. So instead I decided to focus more on having Shredz64 support (most) SID files with no conversion necessary.
As mentioned before, sid files, unlike other music files, are actually executable code (with a header) and not just music data. They have hard coded addresses in them and must be loaded at an exact address or nothing will work properly. I modified Shredz64 to reserve a 10K block in memory (leaving a little room for the loader, but up to $2FFF is for the SID) which allows most SIDs that execute within that space to work. I then wrote a few quick assembly routines to initialize and play the sid, and inserted them in the appropriate places in code. The result was that a sid file can now be placed on disk and read by Shredz64, and played, with correct timing (well, correct timing when nothing else is happening).
Below is a link to a video that shows Shredz64 in action. It’s fairly painful at the moment, but I was so excited to finally get the SID code working properly that I wanted to upload it. If you take a gander at it, please keep the following in mind:
1. I haven’t optimized any of the code yet, and it lags the song. There are a number of places where I can save a lot of processing time, so I’m not too worried.
2. Except for some note-buttons at the beginning, I just plugged in the same two notes over and over again for test purposes. Plus, the note-button timing is working off the old system and zips by. It will obviously go slower when the game is done.
3. I wasn’t playing the guitar while this demo was recording, so no score will increase and the crowd meter falls. Also, thanks to Marc Fischer for creating the SID
I’m very excited, I see this new sid code working out a lot better than the old. Also, I’ve got a few SIDs in mind for the final product that are going to be freaking sweet. ๐
Leave a Reply