Entire source code for my PR8 NES Drum Machine. I'm not actively maintaining this so feel free to modify, use or abuse it as you like.
I was going to attempt to document the code a little better but given there's about 25000 lines of code and, well, it's been a while, I thought I'd leave it up to you to decypher some of the more esoteric bits!
If you have any questions you could try emailing me at info@marmotaudio.co.uk but I will only give limited support. I won't help you to program the NES and so you should be expert-level already before taking on this project.
- Initial commit of code wasn't actually buildable with the most up-to-date version of CC65/CA65 due to a known issue with negative 8-bit numbers and range checking. I've changed the code to get around this so it is buildable again now
Bug Fixes:
Thanks to @infu_av for bringing these to my attention
- Bug: NTSC/PAL versioning was not actually working so the note pitches were off. Fixed.
- Bug: It was possible to modify a note value outside of valid range. Fixed.
- Bug: It was possible to change a Phrase number a make it go outside of valid range which in turn corrupted your save file. Fixed.
The code is written for CA65/CC65 so you'll need that on your platform of choice. You'll need a good emulator to run it but it will also run on a physical donor cartridge (I've seen it for real but don't ask me how!) or something like a Powerpak developement cartrdige.
There are two build scripts:
- BUILD (for building as you code)
- BUILDRELEASE (for building a releasable package)
Check them out and see how it's actually assembled and linked with CA65 etc. It's fairly straightforward.
The full HTML manual is included in the package too.
There are a few files that are either redundant or, honestly, I have no clue what they're for. Probably temporary stuff when I was developing new ideas etc.
You're free to use the code and all files in whatever way you like. If you do manage to do anything interesting drop me a line.
Public domain, for education, research and the curious.
Be cool though, if you make anything with this make sure you credit me as the originator. It's the nice thing to do.
Neil