Worked on this pretty much all day today and got a ton done, the game is 90%-95% done at this point. I fixed up bugs in the “3D” routines so things go at the right speed and there aren’t any weird flashes of sprites (was a issue before that was just distracting while playing). Also added the crowd meter, had to create a few extra custom characters in the game set for it, but made it a thin bar ala Rockband as its easy to work with. It will turn red when in danger, yellow when in the middle and green when doing good (e.g. 0-33, 33-66, 66-100). Also fixed a bug so you can’t go past 100% (I forgot to limit it so if you kept doing good it would just keep adding bars until it went off the screen).
Also moved the score to the top middle of the screen, added a comma to make it centered with the fretboard. Then I added the shredocity meter, and did the same kind of thing I did with the crowd meter, except it only has two color modes, cyan when you’re in the lower 50%, and purple when you’re in the upper. When the meter turns purple, you can enter “shred mode” (official name to be determined later ๐ ). Also made a score multiplier that increases up to a maximum of 4X for every 8 notes you get right in a row. If you get a note wrong, it goes back to 1X. Put this underneath the shredocity meter.
Allsooo – I have it throw in shred notes every period of time indicated by purple notes on the board. If you hit these notes, your shredocity goes up. Then, when you’re in the purple, I have it detect if you lift the guitar up, then it goes into shred mode. At this point, it doubles whatever your multiplier is (so maximum of 8X), flashes all the notes rapidly (through all 16 colors), and turns the border red. Then it slowly decreases the shredocity meter until its back down to 0 and shred mode ends.
Everything works great, the only issue is, the way I encoded lifting up the guitar into the PSX64 interface, it doesn’t allow you to strum while the guitar is lifted up. This was a stupid oversight on my part and easily fixed, but I need to go back and write the fix into the firmware and reupload to the PSX64. I’ll do that when I’m done with the game, as I have a few more things to do with the interface that I want to tackle at the same time.
So anyway, below is a picture of how everything looks (with a crowd score in the middle, no shredocity, no score and a 1X multiplier)
That’s about as good as this game is going to look (which really isn’t too bad), but I apologize to the people who were hoping for bitmap graphics on the game screen. There are a few reasons why this can never happen, but the biggest is memory. Bitmaps take up 8K, and I just don’t have 8 extra kilobytes and I never will. I got away with it on the loading screen as I load the bitmap into the same memory space I reserve for SID data later on. I can’t do that on the game screen, as it needs the SID data at this point, so I would need to allocate 8K in a bank OTHER than bank 0, which is all the juicy RAM where my program actually executes. It would also require overwriting my custom character sets and reloading them each time, and would severely limit how many different kind of SIDs the program could play, and they’re just too damn slow to load. It’s not happening. I’ve got lots of characters left over in my game set so I can definitely add more graphics via 8×8 character blocks, but that’s it. I’m not displeased with the graphics above though, if you see it in action (which you will pretty soon!) it looks pretty good.
So, what’s left to do? There’s still a tiny bug I missed on the song selection screen that doesn’t refresh the score display portion of the screen right. Then there’s just adding audio clues that indicate a bad note was hit. This is going to be tricky given the nature of SID data, the fact that its executable code and not just music data. I’m going to have to do some fancy ETL (to use a database term) work with the SID registers, e.g. save the values, tranform them to a scratch or whatever, then reload the original values. We’ll see how that goes. I’d also like to include whammy functionality for fun, which also is the same kind of save/transform/load functionality. Then that’s really it for the base game. The song editor needs a lot to make it actually reasonably functional, but I’m not sure what to do at this point as SIDs dont give you a lot of room for editing, seeming as though you can’t really rewind or pre-analyze on the C64. I’ll figure something out. But it won’t be long now, only a few things left!
Leave a Reply