SPC File Format looks like S***

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.
User avatar
Firebrandx
Posts: 50
Joined: Fri Aug 26, 2011 3:20 am

Re: SPC File Format looks like S***

Post by Firebrandx »

So I tested out several SPC files with the internal player on the SD2SNES, and it's not perfect. It seems 1 in 10 or 15 tracks will not play properly and has glitched sound. Bummer.
User avatar
Ramsis
Posts: 341
Joined: Sun Jul 01, 2012 6:44 am
Location: Lion's den :3
Contact:

Re: SPC File Format looks like S***

Post by Ramsis »

Firebrandx wrote:So I tested out several SPC files with the internal player on the SD2SNES, and it's not perfect.
There is no "perfect" SPC uploader/player. There probably can't ever be. ;)
mrehkopf a.k.a. ikari_01 wrote:That aside the APU state simply cannot be restored as precisely on a running SNES as it can in an emulator - the SPC700 CPU state is restored after the DSP registers have been set, so there's a slight delay after setting the DSP registers before the actual SPC file is "resumed". An emulator can just preload the entire state and start emulation afterwards. Therefore some differences may appear. I can try tweaking the timing a bit but a 100% accurate solution probably just isn't possible.
(Source: https://github.com/mrehkopf/sd2snes/issues/26, comment #1)
Some of my projects:
Furry RPG!
Unofficial SNES PowerPak firmware
(See my GitHub profile for more)
User avatar
Firebrandx
Posts: 50
Joined: Fri Aug 26, 2011 3:20 am

Re: SPC File Format looks like S***

Post by Firebrandx »

Ramsis wrote:
Firebrandx wrote:So I tested out several SPC files with the internal player on the SD2SNES, and it's not perfect. It seems 1 in 10 or 15 tracks will not play properly and has glitched sound. Bummer.
There is no "perfect" SPC uploader/player. There probably can't ever be. ;)
What I mean is, these files play fine in other PC-based SPC players, so it's not a case of the expected lack of perfection. See the part of my post you edited out (that I have now put back in).
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: SPC File Format looks like S***

Post by tepples »

PC-based SPC players can load all of RAM and all DSP registers in one cycle. Hardware cannot. Furthermore, some SPC rips were designed for defective PC-based SPC players that fail to emulate the S-DSP accurately, and they rely on said players' bugs.
User avatar
Ramsis
Posts: 341
Joined: Sun Jul 01, 2012 6:44 am
Location: Lion's den :3
Contact:

Re: SPC File Format looks like S***

Post by Ramsis »

What tepples said. :)

Plus:
Firebrandx wrote:I wanted to make direct-hardware ripped soundtracks
vs.
Firebrandx wrote:What I mean is, these files play fine in other PC-based SPC players
So what? SNES != emulator, as tepples explained. :wink:
Some of my projects:
Furry RPG!
Unofficial SNES PowerPak firmware
(See my GitHub profile for more)
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: SPC File Format looks like S***

Post by Revenant »

Apparently I've managed to create the opposite of what was being discussed earlier in this thread: a SPC dump that plays back perfectly on the sd2snes, but fails in every PC-based player I've tried, as well as mic_'s spcplayer. (spc2rom almost works fine, but I think it screws up the echo buffer and clobbers some of the instruments, which is probably an unrelated issue).

Here's a dump of a music track from the Super Wild Card DX firmware:
https://dl.dropboxusercontent.com/u/43107309/swcdx.spc

Here's the spcplayer version:
https://dl.dropboxusercontent.com/u/431 ... x-tune.sfc

Apparently at various points the driver tries to jump to $FFFB in the IPL ROM, except by that point it's not actually enabled, so you can probably guess what happens next. Is the SPC file missing something that causes the IPL to get disabled when loaded by most players?

(I know about the part of the SPC file that's supposed to contain a copy of the IPL ROM, but filling that in vs. leaving it blank didn't seem to make a difference in any players.)
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Re: SPC File Format looks like S***

Post by ikari_01 »

Firebrandx wrote:So I tested out several SPC files with the internal player on the SD2SNES, and it's not perfect. It seems 1 in 10 or 15 tracks will not play properly and has glitched sound. Bummer.
Should be fixed:
https://github.com/mrehkopf/sd2snes/com ... 3fb931bb7a
SPC upload routine had a bug - SPC700 would occasionally grab a byte too early at the beginning of a transfer chunk because the original SPC upload code didn't account for CPU stalls during HDMA.
fred
Posts: 67
Joined: Fri Dec 30, 2011 7:15 am
Location: Sweden

Re: SPC File Format looks like S***

Post by fred »

Revenant wrote:Here's a dump of a music track from the Super Wild Card DX firmware:
https://dl.dropboxusercontent.com/u/43107309/swcdx.spc
Oh man, I recognize the one note that did manage to play on my PC! I've been looking for that track, haha. Does it exist as a "working on PC" spc?
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: SPC File Format looks like S***

Post by Revenant »

I can try to hack one up later, but I'd rather figure out what's wrong with my own dumps first.

(by the way, if anyone who actually owns a SWC DX can give that and the other tune a better description than "unknown song", please do. Getting the menu ROMs to actually run properly under emulation is a pain)
User avatar
koitsu
Posts: 4201
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: SPC File Format looks like S***

Post by koitsu »

Several things to cover here:

The song in question was composed by The Doctor of Anthrox (ATX). Anthrox did a *lot* of SNES stuff (cracks/intros/demos). But given that it was distributed in a grey-market commercial product owned by Front Fareast Co. of Taiwan *with Anthrox's permission*, I would strongly suggest you use this for the SPC fields:

Song title: SWC DX Menu Music
Game title: (c) Front Fareast Co.
Artist: The Doctor/ATX

The SPC700 music driver used by the copier was written by, and I quote, "His Assistant" (referring tongue-in-cheek to "an assistant" of a doctor). Who that is I do not know; it may be a SPC700 player that was ripped from a commercial title and the sequence format data reverse-engineered; I really don't know.

I don't remember if it was available on the SWC DX2 (64mbit) or not; it's been a very long time.

If you want references for my claims, the easiest place to get them from is the copier itself: the SWC DX had some built-in features that a lot of people didn't use: one was a PCX picture/image viewer, another was a tile game, and finally a demo/intro by mostly Anthrox that had chiptune-like music and provided credits of who did what (for FFE itself -- I know this is the case because JSI of FFE is in fact the guy who wrote the original MS-DOS transfer utility called VGS that let you dump carts + send SMC images to the SWC DX via an LPT port -- I later wrote my own in Pascal + x86 assembly). Someone was kind enough to make a recording of this demo in the copier, so you can see it in the text scroller yourself -- and I assure you it refers to the menu music and not just the intro/demo you see (you'll understand when you read the credits): https://www.youtube.com/watch?v=Qm7qA3sLJYc

Hope this helps. If not, let me know and maybe I can track down some of the Anthrox guys, particularly Pan, who I had talked to a few times back in the 90s. Consider me amazed that nobody's done this in 22+ years. *chuckle*

Also, I don't know if this is helpful but in the Alpha-II SPC player plugin for Winamp, attempting to play "Super Wild Card DX - Unknown Song 2.spc" plays a frame or so of audio (too short to make anything out), then claims the SPC700 has crashed at $7C07.

Edit: P.S. -- If you need someone to actually pull or "do something" with an actual working SWC DX (32mbit) using the latest firmware (from 1996, not 1994), one guy I know who has one -- because I sent mine to him in Germany, and he repaired it (many corroded solder points; I told him he could keep it) -- is Ramsis here on the forum. :-)
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: SPC File Format looks like S***

Post by ccovell »

Very cool trivia anyway, Koitsu, please share anything else you know.

Wasn't Pan a dude out of New York who espoused some, erhm, unconventional views in an interview? :-)
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: SPC File Format looks like S***

Post by Revenant »

koitsu wrote:Several things to cover here:

The song in question was composed by The Doctor of Anthrox (ATX). Anthrox did a *lot* of SNES stuff (cracks/intros/demos). But given that it was distributed in a grey-market commercial product owned by Front Fareast Co. of Taiwan *with Anthrox's permission*, I would strongly suggest you use this for the SPC fields:

Song title: SWC DX Menu Music
Game title: (c) Front Fareast Co.
Artist: The Doctor/ATX
Yeah, aside from not having a song title, that's pretty much how they are tagged already. The credits page on the menu itself (not the cooler-looking ATX intro) lists The Doctor as doing the sound; plus, their style is pretty unmistakable so it would have definitely been my first guess either way :P

But, is there normally supposed to be any music playing on the main menu at all? Aside from the little jingle when the Super Wild Card logo appears, there's normally no BGM when I emulate it. But I'm not currently able to actually access all of the menu's features (like the PCX viewer / built-in game), hence wondering if someone who actually owned the unit could clarify that a bit.

(I knew what the ATX intro looked/sounded like from having seen the YouTube capture you mention later in the post, but that's a different/older piece of music that I don't think is ever loaded in APU RAM when the menu itself is running)
koitsu wrote:The SPC700 music driver used by the copier was written by, and I quote, "His Assistant" (referring tongue-in-cheek to "an assistant" of a doctor). Who that is I do not know; it may be a SPC700 player that was ripped from a commercial title and the sequence format data reverse-engineered; I really don't know.
I speculated on these facts several months ago in this thread - tl;dr: it's the Argonaut Software sound driver and I strongly suspect The Doctor and Assistant were actually two of Argonaut's actual employees. I tried contacting one of them about it once but he never responded.

(I also had assumed both of their handles were a Doctor Who reference, especially given that they might be British :P)
I don't remember if it was available on the SWC DX2 (64mbit) or not; it's been a very long time.
The DX2 has totally different audio by someone else (iirc another FFE person whose name I don't remember).
Hope this helps. If not, let me know and maybe I can track down some of the Anthrox guys, particularly Pan, who I had talked to a few times back in the 90s. Consider me amazed that nobody's done this in 22+ years. *chuckle*
That would be awesome if you could - if nothing else, surely just because he could shred some light on my theories from the aforementioned thread :D

Really, it'd be cool to see something like a "where are they now" with some of those big names from the 90s SNES scene, but I guess that's a little ahead of the subject :P
Also, I don't know if this is helpful but in the Alpha-II SPC player plugin for Winamp, attempting to play "Super Wild Card DX - Unknown Song 2.spc" plays a frame or so of audio (too short to make anything out), then claims the SPC700 has crashed at $7C07.
Yeah, thanks to mic_'s SPC->ROM converter and my debugger I was able to figure out why that is (pretty sure it's entirely caused by the IPL ROM being disabled when it shouldn't be) but the mystery is why that's the case to begin with, or why it works on the sd2snes player but not others.
Edit: P.S. -- If you need someone to actually pull or "do something" with an actual working SWC DX (32mbit) using the latest firmware (from 1996, not 1994), one guy I know who has one -- because I sent mine to him in Germany, and he repaired it (many corroded solder points; I told him he could keep it) -- is Ramsis here on the forum. :-)
Like I said before, I just need some proper context for where these two bits of music are actually used. I'm only able to half-assedly-emulate it enough to get the logo jingle and a silent menu with sound effects, plus reboots when I try to access any of the "bonus" features (built-in games/the ATX intro/whatever else), which is what I assume the music may be related to.

The SPCs actually were dumped from a 1996 version of the firmware, but they seem to be totally identical audio-wise (except for the SWC DX2).

Anyway, I appreciate the reply. I had a feeling you'd have plenty of knowledge on this specific subject :)
ccovell wrote:Wasn't Pan a dude out of New York who espoused some, erhm, unconventional views in an interview? :-)
Yep, according to the interview with him in the first (only) issue of SNES Trainer Charts, if I remember right.

The only real non-SNES-related things I know about him are being the namesake/original author of a certain Game Boy doc, plus his neat C64 work.
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Re: SPC File Format looks like S***

Post by ikari_01 »

Revenant wrote: Yeah, thanks to mic_'s SPC->ROM converter and my debugger I was able to figure out why that is (pretty sure it's entirely caused by the IPL ROM being disabled when it shouldn't be) but the mystery is why that's the case to begin with, or why it works on the sd2snes player but not others.
Just guessing now but I wonder how many SPC players emulate the $F1 register correctly. Bit 7 controls IPL ROM mapping.
What's the value in your .spc at file offset 0x1f1?
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: SPC File Format looks like S***

Post by Revenant »

It's 0xC3 in all of them.
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Re: SPC File Format looks like S***

Post by ikari_01 »

In that case the IPL ROM should be mapped (unless the SPC700 code changes it later on)
Post Reply