Category Archives: Shredz64

Shredz64 – PSX64 Firmware Released

Firmware (v 1.0) for the PSX64 is now available here. This version supports improved analog stick functionality, second button support for the Amiga and Sega Master System, and improved macro handling.

Shredz64 – PSX64 Schematics Online

For those wanting to build the PSX64 interface, the schematics are now online. The plans include an ICSP port for uploading firmware to the Atmega 8 MCU. Please note, these plans assume the DIP package version of the Atmega 8 – the pinout is different for the surface mount packages. Firmware will be online within the next day or two.

If you don’t have any kind of Atmel programmer, you can build a really cheap parallel programmer using these plans. It works like a champ for programming the Atmega8.

Shredz64 – Button Two Enabled for Amiga/SMS

I needed to incorporate a few safety features into the final (for now) revision of the PSX64 design, so while I was changing hardware around, I decided to add support for the second button on Amiga and Sega systems which required more than just a firmware change (I needed to share pin 9 with both the second digital pot and a direct mapping into the MCU, so now in guitar mode the digital pot takes control of pin 9 and the MCU goes into high impedance on that pin, and vice versa when in normal controller mode.)

I tested it out with a little Mortal Kombat II on my A1200. Button one is mapped over to X, and button two is mapped over to square. Both kicking and punching worked great in MKII! I’ll be putting the schematics of this final version up tonight/tomorrow. Back to the PCB printers again!

Shredz64 – Thanks For All the Positive Feedback!

First off, I want to thank everyone who has sent me letters through this site, and YouTube comments. It’s always exciting to know there are other people out there who appreciate having fun with older computers (especially the C64!).

Also, just a heads up, don’t be upset if I don’t respond to you quickly this week – I am extremely sick right now with a bad fever and am pretty much in bed all day except when I work up enough energy to sit at the computer for a few minutes. Once my brain clears up I’ll be sure to respond to everyone that I haven’t already.

Thanks guys!

Shredz64 – YouTube Video, EGM Interview, Updates

First off, as you can see, I’ve moved the Shredz64 project to, along with my other projects. I’m not quite sure why I didn’t use blogging software in the first place, but no matter now. I’ve tried to make sure everything on the old site is here on the new, along with all the new items (mentioned below). The website for my development business Synthetic Dreams is done as well, and linked at the top ( Special thanks to Leah Shaver for a great job on the website.

From, users can download both the NTSC and PAL versions of Shredz64, as well as look for user uploaded songs. The PSX64 interface is available for preorder from the site as well. Schematics and firmware will be up within the next week.

Other big updates – I was fortunate enough to be interviewed by Michael Donahoe from Electronic Gaming Monthly (EGM) about Shredz64 a while back – the interview is in April’s issue (now out). Check it out, page 16. Just a quick interview, but very exciting none-the-less!

Also, want to actually see Shredz64 in action? Check out two YouTube videos I uploaded, one with the Zelda Overworld Theme SID by Sascha Zeidler, and the continuation with “Ex State of Mind” by Michal Hoffmann

Shredz64 in Action – Part 1
Shredz64 in Action – Part 2

Shredz64 – All Songs Done, PSX64 Updates

More updates – things are moving along nicely. All the songs are done now, and any bugs that I can find have been fixed up, so Shredz64 is good to go now. I made an image of the NTSC version of it, I need to make a PAL version as well, but I need to test out the PAL values a little more before thats ready.

Additionally, I uploaded a new version of firmware to the PSX64 that has a couple fixes in it. First, I put the lines out to the C64 into a high impedence state now when they’re not active, which allows you to type on the keyboard when the joystick is plugged on (before it would keep the lines high in a low-impedence state, which would block most keyboard input due to the way the CIAs work). It was irritating as you’d have to unplug the adapter while typing, then plug it back in when it was time to use it. No more of that. Also, I moved the encoding of the lift-up sensor from the pot that handles the strumming to the pot that handles the whammy bar. This allows the user to strum while lifting the guitar up, which wasn’t possible before. This is pretty necessary, as when you activate shred mode, you want to be able to play while the guitar is still lifted up, lest you miss some buttons coming quickly. This is much more important than being able to lift the guitar up while using the whammy bar, especially since the whammy bar is only used in edit mode.

So two things left to do with the next PSX64 prototype – I need to add diodes in on both the DC plug so people can’t plug an adapter with reverse polarity in, and also add diodes to the power on the digital pots. For some reason, it appears that the adapter still works when you don’t have it plugged into DC power. The only power is coming from the C64 5v line (and logic lines). The logic lines go directly into the MCU, so I don’t think that is the issue, but the 5v line goes into the digital pots to drive the pot pins on the C64. I think the digital pots are leaking this power up through their Vdd line into the rest of the circuit, which is bad – most 9 pin joystick ports put out max 50 mA, and the total power consumpution of the interface (and any playstation adapters plugged in) is more than this. If someone accidentally forgot to plug in dc power, it would work fine and they wouldn’t realize it, but there would be a chance of damaging the device/computer. Hopefully by blocking current in the opposite direction of the power pin of the digital pots it will fix this. We’ll see, I have an order in for more playstation extender cables to build another prototype. Once that design checks out, I’ll put the schematics up and get PCBs printed.

Shredz64 – More Songs Done

I’ve been working every night on this, but I haven’t had time to update the blog until tonight. First off, I have notes done for 4 songs now, so 6 more to go. I’ve noticed that I’ve made every song I’ve done so far akin to hard/expert level on Guitar Hero in complexity, so I’m going to tone it down for the last 4 songs or so to more like medium level. Since you can’t choose different levels, this at least gives a good mix of difficult songs and easier songs, and then if people want harder/easier for the other songs, they can simply make their own notes (and upload them for others :)).

Also, I quickly found out that the note editor still needed some design issues worked out. I found that unless I was dealing with a tricky part, it was actually easier to record at full speed than in 1/3X slow-mo, as in slow mode you’re always hitting the button too soon, and its so slow you can’t always tell if the sounds you’re hearing are the actual note or just a weird effect before the note, or another note, just due to the way people generally craft SIDs to get lots of good sounds out of 3 channels. So I reversed the functionality of the whammy bar. When you’re not pressing it, the song plays at full speed – the harder you press it, the slower the song goes. So fully depressed it goes at 1/3X slow-mo and half depressed its at 1/2X. Also – I found a constant need to wipe out all notes after a certain point – like, I would finish a section up, and the next section would start up, and I wouldn’t be ready and I’d play notes waay off base and then I would need to delete 5-6 of them. So, I changed the functionality of the full-clear to clear past the current point. E.g. if I was at tick 5600 and I hit the Green,Red,Yellow and Blue and strummed up, it would delete any notes recorded after tick 5600 and restart the song. This still allowed me to use it as a full song clear – if I wanted to fully clear the song, I simply did this right when the song started, so everything past tick 1 was deleted. Double the functionality!

In PSX64 news, I have the plans into Eagle and I’m working out the two issues I was having – both (I believe, I need to wire up a test on a protoboard) are due to sinking lines off the atmega8 instead of floating them. We’ll see – I’m looking to get it debugged and some safety features put on (i.e. diodes) and it put off for a prototype PCB printing asap so we can get some boards printed up. I suspect I will have the fixes and final plans done by this weekend, so I’ll be putting the plans and firmware up soon for those handy with a soldering iron.

Lastly, with the game mere days away from “complete completion” (e.g. all the note data recorded), I’ve been readying both a nice wordpress version of this blog for more behind-the-scenes stuff as well as a beautiful site developed by my girlfriend Leah for Synthetic Dreams (since the current website is a bit lame). All plans, downloads (game and songs), and purchase info for the PSX64 will be available between those two sites within the next week or so. I hope everyone enjoys the game as much as I do! ๐Ÿ™‚

Shredz64 – Started Recording Notes

I started recording note data tonight, but I quickly ran into a weird problem that I hadn’t seen before, mainly because I hadn’t previously been loading in so many songs (in the past I’d loaded in 4-5, now I’m loading in 10). Anyway, after a debug session of good length I found a just plain stupid mistake I’d made with pointer arithmetic – it happens to us all sometimes. The issue was I was saving high score data into the area of RAM where I’d copied the kernel into, and needless to say things weren’t working right.

Anyway, fixed that and got the notes recorded for 1 song, 9 more to go. Most will be fairly easy to record for, but there are a few SIDs from the demo scene that will be a little more difficult. Hopefully it won’t be too bad overall.

Shredz64 – SID speed handler

Okayyyy, so I added a little more in. I got more space by taking all the text for the credits screen out of the program and putting it onto disk, then writing a very lightweight loader for it to pop directly into screen memory. That freed up 300 bytes. I needed space as I wanted to add support for playing PAL SIDs on NTSC systems at the right speed and vice versa. Don’t get too excited, it only works for SIDs that have the system speed specified in the file (which isn’t all of them by any means), and it doesn’t alter the frequency, only the playing speed. So NTSC users playing PAL songs will hear the song at a slightly higher frequency, but the song will still play the right speed (and the notes will go at the right speed). Not a big deal, but there were a few really great SIDs I’m including in the game that are PAL and have their system speed specified in the file, and they sounded so much better at their right speed, so it was worth it just for those (and future) SIDs.

So, I will be distributing a NTSC binary and a PAL binary of the game. They’re the exact same thing except a few constants defined which allow what’s mentioned above to work right. Again, this is only for a very small subset of SIDs, but at least its a help for those.

Shredz64 – Pretty much done!

Stick a fork in it, it’s done. Well, the program is anyway, I still need to record button data for all of the songs. That will take me a week or so. I’m sure there are bugs in the game, I haven’t done a super in depth testing session yet. However, while having to fight 3 times tonight to reclaim 200 bytes from the heap, I realized that only having (less than) 64K to work with is kind of a blessing. It definitely prevents feature creep, which is a pet peeve of mine, even when I cause it. I was thinking of including a easy/medium/hard selection on each song, but the amount of code involved would push me waaay over, especially considering I have 7 bytes free in memory right now. Really, it comes down to if I ever want to make major additions to the game, I’ll have to take the note editor out and put it in its own executable. For now though its nice to have both the game and the editor in the same program, and until I need the space that’s how it will remain.

More updates when the note data has been recorded!