バグリスト

SMW SPCエンジンに関するバグのまとめです。


HURRY UP!時の音楽速度の低速化

マリオワールドでは、残り時間が100を切ると、警告(HURRY UP!)音がなるが、これが1つのステージ内で複数回以上鳴る場合に、音楽のテンポがどんどん速くなる。
そして、一定以上上昇した後、音楽のテンポがガクンと落ちる。
この現象の原因は、音楽テンポのオーバーフローである。
この現象は、SMWオリジナルのコースでは、「チャンピオンシップのコース2」で、残り時間が100秒切る毎にヨッシーに緑色の木の実を食べさせることで再現可能である。

命令未割り当て

ARAM:$0e6dにはピッチエンベロープ(eb・ec)解除用と思わしきコマンド処理がある。
が、この処理はどこからも参照されていないので、使われることはない。

おそらく本来のED命令で動くはずだった処理と思われる。

(出典:悟茶辞苑ッ - SMW音楽フォーマット(リンク切れ)

この命令は、後にMore.binでADSR変更用コマンド(ご存知EDコマンド)として使用されることになる。

トレモロバグ

既存SMWのSPCエンジンはE5コマンドのトレモロがまともに機能しない。
原因はトレモロに使うメモリアドレス指定が間違っている為。

addmusicでは、MORE.asmでこの問題に対しての修正が行われている。

(出典:悟茶辞苑ッ - SMW音楽フォーマット(リンク切れ)

ノイズ鳴動によるフラグレジスタクリアバグ

エコー未使用のステージでバブル出現などによってノイズ効果音が鳴ると、突然エコーが機能し始めることがあるバグ。エコー無効フラグとノイズ周波数指定が同一デジスタで管理されていることに起因する。

SMWのSPCエンジンではノイズ周波数をセットする時に他のフラグメモリを全部クリアしていることが原因。

既存の音楽ではエコーを使用する曲はほとんどなく、フラグメモリはあまり考慮されていないようである。

効果音の音色テーブルデータに、未使用データが含まれる

SMWの音色テーブルは、音楽の場合、以下の構造になっている。
No. 内容
01 SRCN
02 ADSR(1)
03 ASDR(2)
04 GAIN
05 ピッチ倍率

パーカッションノート(@21~)に関しては、これに以下を加えた構造になっている。
06 ノート(0x80~0xCX)

効果音で使用する音色テーブルは、以下の構造である。
No. 内容
01 VOL(L)
02 VOL(R)
03 P(L)
04 P(H)
05 SRCN
06 ADSR(1)
07 ASDR(2)
08 GAIN
09 ピッチ倍率
このうち、始めの4バイトは、音色セット時に一応設定はされてはいるものの、その後効果音データにより上書きされるため、実質意味のないデータとなっている。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2016年05月21日 17:33