SNES NSPC question

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
User avatar
dougeff
Posts: 3079
Joined: Fri May 08, 2015 7:17 pm

SNES NSPC question

Post by dougeff »

I've been trying to wrap my head around the SNES APU stuff...and I found out that most Nintendo games used the same music engine "N-SPC". I was wondering if anyone has written any tools for writing songs for that music engine? Or really ANY tool for writing SNES songs.

I see tools for making BRR samples. I just kinda don't want to write my own SNES music code. Just the song data.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
Khaz
Posts: 314
Joined: Thu Dec 25, 2014 10:26 pm
Location: Canada

Re: SNES NSPC question

Post by Khaz »

The only existing tool I know of is "SNES GSS". It seems to do the job, though I have yet to learn how to do anything practical with it.
93143
Posts: 1718
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES NSPC question

Post by 93143 »

There's also SNESMod, which is kinda the industry standard right now, but as I understand it it's more for chiptunes than games, and it's a pain because it's just a converter and doesn't do hardware simulation for playback. Thus if you want to use a native SPC effect, you have to just use the tracker command SNESMod assigns to it and hope it sounds right after conversion.

A couple of WYHIWYG trackers (besides SNESGSS) are in the works, but I haven't heard much in a while. KungFuFurby is apparently working on a custom engine with a lot of cool features, but I don't know if it will involve tools or if he just prefers to sit down and knock out a track in hex (after whipping up some BRR samples the same way)...

Oh yeah - AddMusicK (well, any variant of AddMusic) seems to target the SMW engine specifically, but with enhancements. There's been a fair amount of work done with that.
User avatar
dougeff
Posts: 3079
Joined: Fri May 08, 2015 7:17 pm

Re: SNES NSPC question

Post by dougeff »

Thanks guys. I'll give them a try.

It's amazing how many pages of documents I've had to read to be able to do ALMOST NOTHING with the SNES. But, I will persist.
nesdoug.com -- blog/tutorial on programming for the NES
93143
Posts: 1718
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES NSPC question

Post by 93143 »

I should note that there seems to be more than one version of SNESMod floating around. KungFuFurby and Augustus Blackheart have been adding features:

viewtopic.php?f=12&t=13072
KungFuFurby
Posts: 275
Joined: Wed Jul 09, 2008 8:46 pm

Re: SNES NSPC question

Post by KungFuFurby »

93143 wrote:There's also SNESMod, which is kinda the industry standard right now, but as I understand it it's more for chiptunes than games, and it's a pain because it's just a converter and doesn't do hardware simulation for playback. Thus if you want to use a native SPC effect, you have to just use the tracker command SNESMod assigns to it and hope it sounds right after conversion.

A couple of WYHIWYG trackers (besides SNESGSS) are in the works, but I haven't heard much in a while. KungFuFurby is apparently working on a custom engine with a lot of cool features, but I don't know if it will involve tools or if he just prefers to sit down and knock out a track in hex (after whipping up some BRR samples the same way)...

Oh yeah - AddMusicK (well, any variant of AddMusic) seems to target the SMW engine specifically, but with enhancements. There's been a fair amount of work done with that.
Addmusic is the one that's closest to creating N-SPC material.

My engine is delayed due to college work. I've got lots of concepts, just don't have the proper time to do so. Not to mention I never tested the thing even though it compiles... although I'll have to redo it anyways because of my misunderstanding with PCALL opcodes. :oops:

I have a few ideas for making converters that will go to this format so that I don't have to code everything in hex, but with no functional engine, then I can't make the converters. Plus, I'm increasingly curious about bass (although I want the original Z80-like syntax rather than the 65816-style syntax... yes, I saw some similarities in SPC700 assembly syntax to the Z80), although I'll have to compile it first (if possible).

I've also done some reverse-engineering of other sound engines, although I don't intend on making custom music for them. In one case, I reverse-engineered the sound engine because I wanted to pull off a feat thought impossible: playing back music from Paperboy 2 on the SPC700. I'm using the original sound engine, and I have already determined that I can in theory pull it off because memory constraints are not a problem (No conversions from original format are needed... not even extra commands for compression!). You can find my WIP SPC files here.
Post Reply