Custom soundtracks replacing SPC music keeping sound FX

General area for talk about ZSNES. The best place to ask for related questions as well as troubleshooting.

Moderator: ZSNES Mods

Post Reply
MisterDNA
New Member
Posts: 5
Joined: Sun Jan 18, 2009 4:43 am

Custom soundtracks replacing SPC music keeping sound FX

Post by MisterDNA »

If it's been discussed, I'm sorry. I wasn't able to find it.

The idea is to take the fingerprint of each chunk of background music and assign it to instead play a digital music file. For example, playing a Pantera MP3 while thrashing a course in FZero.

The sound effects would still play, of course, so it's not like disabling sound and cranking the MP3. While that is easier than coding, the music doesn't change with the game.

Based on what tracks I've heard at OCRemix, it's a shame such a function hasn't been added already. That, and the fact I've yet to see someone take an SPC700 module from a broken SNES and interface it with a PC. I could be speaking too soon, though. I wish I was.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

That's not going to work. Music from the SPC tends to be dynamic, like in SMW while getting on and off Yoshi.

The short answer is no.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Additionally, sound effects can be mixed in with the music, so you can't just "separate" the two.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
MisterDNA
New Member
Posts: 5
Joined: Sun Jan 18, 2009 4:43 am

Post by MisterDNA »

Thanks for the reply.

Why not just ignore the minor changes such as mount and dismount of Yoshi?

I mean, using SMW as an example: map, outdoor, underground, ghost house, castle and boss fight music are all different.

I don't understand the SPC700 all that well, but there has to be a set of commands to say "okay, Mario is riding Yoshi. Add the bongos."
MisterDNA
New Member
Posts: 5
Joined: Sun Jan 18, 2009 4:43 am

Post by MisterDNA »

Deathlike2 wrote:Additionally, sound effects can be mixed in with the music, so you can't just "separate" the two.
Sure you can. If you know what you're looking for in order to allow or disallow it. That's the part that could be incredibly tedious to map out.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

I'm not sure you paid attention to the word dynamic.

This includes fading in songs, and other examples that I can't think off the top of my head. You're assuming things are static, but that simply isn't the case.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

each game handles music differently, so one method working in one game, wont in another.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
WolfWings
Hazed
Posts: 52
Joined: Wed Nov 02, 2005 1:31 pm

Post by WolfWings »

More explicitly for those that "don't know much about the SPC700" in laymans terms: It's an entire CPU, with an assembly language it's programmed with and the ability to talk with the main CPU on the SNES. It's why SPC files exist, they're emulating the SPC700 from a given fixed state in the past. It's also why SPC files don't(didn't?) work for some things like Tales of Phantasia songs very well, because some games dynamically keep re-uploading new data to the SPC700 from the main cartridge.

It's not a 'dumb audio buffer' the main game uploads to, nor is it a simple 'play music track X from this buffer' thing. It's a more-or-less fully programable computer on par with, say, the C64 but geared entirely around audio output.
[img]http://wolfwings.us/sigs/WolfWings.jpg[/img]
MisterDNA
New Member
Posts: 5
Joined: Sun Jan 18, 2009 4:43 am

Post by MisterDNA »

Deathlike2 wrote:I'm not sure you paid attention to the word dynamic.

This includes fading in songs, and other examples that I can't think off the top of my head. You're assuming things are static, but that simply isn't the case.
I know the difference. Just not the implementation, though I'd have liked to up to now. No big deal.

Looks like anyone with this in mind would essentially be porting the game to a different platform with a new game engine. Hard to like any game enough for that.
MisterDNA
New Member
Posts: 5
Joined: Sun Jan 18, 2009 4:43 am

Post by MisterDNA »

WolfWings wrote:More explicitly for those that "don't know much about the SPC700" in laymans terms: It's an entire CPU, with an assembly language it's programmed with and the ability to talk with the main CPU on the SNES. It's why SPC files exist, they're emulating the SPC700 from a given fixed state in the past. It's also why SPC files don't(didn't?) work for some things like Tales of Phantasia songs very well, because some games dynamically keep re-uploading new data to the SPC700 from the main cartridge.

It's not a 'dumb audio buffer' the main game uploads to, nor is it a simple 'play music track X from this buffer' thing. It's a more-or-less fully programable computer on par with, say, the C64 but geared entirely around audio output.
Now this is what I was looking for and it makes a lot more sense now. All posts should be this helpful.

Righty-right me droogies.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

WolfWings wrote:It's also why SPC files don't(didn't?) work for some things like Tales of Phantasia songs very well
There's only one such track in ToP.
The rest were just tough to dump because the samples aren't all uploaded at the first keyon, which is used to detect tune beginning (and spc dump). Fortunately caitsith2 RE'd the code and found the 'start pointers' of sort - so you can dump the spc in the middle (after all the samples are up in the spcram) and rewind the tune by altering this value.
However, other games have all tunes need constant interaction with the 5a22, like lost vikings iinm.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Post Reply