Wednesday, March 15, 2017

Super Turrican Soundfix proposal

It seems not a lot gamers have played Super Turrican. This is my assumption and it has to be true as not much information is available on a significant bug this game has.

While playing the game more frequenty on the sd2snes to do the MSU hack I ran into issues sometimes. The sound glitched up. I was pretty certain that this was not caused by my hack as I had the same issue very rarely with my original PAL cartridge and blamed it for this. There is actually a video on YouTube showing off how it could sound like. Please turn down the volume as headphone user :3


There also do exists some discussion on that topic on some forums:

http://www.racketboy.com/forum/viewtopic.php?f=17&t=37267
http://shmups.system11.org/viewtopic.php?f=6&t=40996


Let sum this up here:

  • It happens on the NTSC and the PAL version. (I've tested this)
  • It never appeared to me on higan while developing my MSU Hack.
  • It is caused by a soundeffect and not music. (As my hack doesn't have music on levels)
  • The glitch only happens on 1chip SNES hardware. (Assumed)
  • Chances for this bug to happen are quite low. It's possible to make a complete run of the game without having issues at all.

Also there do exists a theory that the blue laser makes this happen more frequently. I can not approve that as it happend to me with the spread shot once too.

It's a mystery why this was unnoticed so long as the game has aged for quite a while and it seems to be unnoticed until 2010.


I never really intented to try to solve this issue as I can't debug it with an emulator. But a few weeks ago I've read this article.
It says:
Hardware Quirk! When writing in 16-bit values to 2140 / 2141, a noise pulse (or some technical thingy) may write data to 2143 too! Always write to 2140 / 2141 with 8-bit writes if this is undesired.

So that's some interesting stuff to look into.
I've modded higan for that purpose to detect 16 bit writes to 2140. As it turns out games like Super Turrican 2 and Super Bomberman 4 didn't have these while Super Turrican uses these writes for loading SPC data between the levels.

I've removed these instructions and replaced them by subroutines which write these values as separated bytes. I did one playthrough and no bug happend yet.

What I now really need are players that love to play Super Turrican and willing to test this patch to give me some test statistics.

Here is the download link for the PAL versions patch.
Apply using flips or some other patch tool.

Please keep it mind that this is ONLY a soundfix patch. No MSU hack is applied here. I will update the MSU version of my hack with this fix when I've finished resolving issues with sd2snes revision differences on volume levels.

The NTSC version will follow if we are able to proove that the fix is actually working.

Here the md5sums for checking:
90c9fe8386a7f69de475c58bb8de01f7  Super Turrican (Europe).sfc
d17a07bd58bf295fe09ff6d88f7d0151  SuperTurricanSoundFix_PAL.bps
5d214342d2eb3beae115471e4dbc1a6e  SuperTurricanSoundFix_PAL.sfc



4 comments:

  1. Hi there, just came by here to confirm that I have this issue. I have ntsc model snes with a 1chip (I had bought it specifically for higher quality rgb signal) and an original super Turrican cart.

    ReplyDelete
    Replies
    1. I feel with you my friend. It's a disaster Factor 5 never realized this during development.
      I cannot guarantee that my fix will work. But if you have a sd2snes lying around give it a try.
      If not then I guess buying a 2chip SNES is all you can do...


      To be honest I've rarely ever seen this with my original PAL cart which is strange.

      Delete
  2. I have been playing with this hacked rom successfully on my 1chip. No issues after 3 hours of play. Any chance you want to do that NTSC version to test that?

    I hadn't even tried playing the PAL version until I found this, but great work!

    ReplyDelete
    Replies
    1. Spoke too soon... It happened right as I killed the boss of level 2 and locked up the game :(

      Delete