Why doesn't SPC2ROM work with Super Metroid SPCs?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#119839)
Does anyone have any idea why none of the Super Metroid SPCs from SNESmusic.org work with SPC2ROM? They also don't work with vspcplay.

http://snesmusic.org/v2/profile.php?profile=set&selected=2759

The other SPC sets that I've tried all work fine, but these don't.
Re: Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#119944)
I'm not sure about Super Metroid, but certain SNES games (Clay Fighter and Earthworm Jim 2) don't work as extracted SPC files. However if they are listed in an archive on a site like that, I would think they should work.
Re: Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#119956)
Part of the problem may be the echo. Echo initialization I believe is handled incorrectly by SPC2ROM (I have never used SPC2ROM myself, because I know of a different player that handles .spc files and puts them in .smc files)...

_mic made spcplayer, which handles .spcs much better (and thus should play Super Metroid SPCs).
Re: Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#119957)
So I actually figured out exactly what the problem is just last night and I'm going to make a video of how I figured it out and post it on youtube. It's pretty interesting - at least I think so. Will update this post once the video is uploaded.
Re: Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#119970)
As promised, here is the video: http://www.youtube.com/watch?v=o5TFvf3JqG0
You'll need to watch it in HD to make out all the text.

I would appreciate any feedback that anyone might have. Cya!
Re: Why doesn't SPC2ROM work with Super Metroid SPCs?
by on (#126568)
I know this is a bit of a bump but thought this info was worth sharing. I thought I had figured out the primary reason that some SPCs wouldn't work with SPC2ROM, but there still appears to be some weirdness that's not been accounted for.

In summary, _both_ Alpha-II's spc2rom and _mic's spcplayer appear to work with the vast majority of SPCs that I've downloaded. However, there are a few SPCs that do absolutely nothing at all when built with spc2rom but work fine with spcplayer. I was able to find one extremely short SPC (1 second long) which uses only 1 channel and does not use the echo feature of the SPC hardware - it's the "Nintendo Logo" sound from Super Mario World (i.e. smw-01.spc).

Here are my test results:
Code:
spc2rom.sfc created by Alpha-II's spc2rom v1.1 utility:
- Higan v092 64-bit (ROM loads and title screen is shown, but no sound is ever heard)
- Mess v1.52b 32-bit (ROM loads and title screen is shown, but no sound is ever heard)
- Mess v1.52b 64-bit (ROM loads and title screen is shown, but no sound is ever heard)
- Snes9X v1.53 64-bit (ROM loads and title screen is shown, but no sound is ever heard)
- No$Sns v1.5 32-bit (ROM loads and title screen is shown, but no sound is ever heard)

spcplay.smc created with _mic's spcplayer v1.4 utility:
- All emulators that I've tested execute this ROM properly and the sound is heard.

I have provided the SPC, the ROMs, and everything needed to build them at this location.

When I run either spc2rom.sfc or spcplay.smc they both seem to execute the same (as far as the SPC-700 execution flow goes) after the two bootloaders finish their job and the actual SPC code starts running. So it's hard to pinpoint where exactly the difference is and why the spc2rom.sfc doesn't work.

Does anyone have any ideas why the spc2rom version won't work with such a simple SPC as this one? If anyone has any ideas I could look into it and do some digging. It would be nice to fix whatever bug the spc2rom tool has that's breaking a small subset of SPCs. I'd be willing to fix the spc2rom tool's source if I could just pinpoint the issue. Whatever the problem is with spc2rom it's probably a very minor one since 90% of SPCs work just fine with it.