atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
セプテントリオン/SOS攻略wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
セプテントリオン/SOS攻略wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
セプテントリオン/SOS攻略wiki
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • セプテントリオン/SOS攻略wiki
  • 音声処理

セプテントリオン/SOS攻略wiki

音声処理

最終更新:2025年08月09日 00:43

angel_p57

- view
メンバー限定 登録/ログイン

音声処理

音声の種類とデータ

本ゲームでは、13種類の曲と44種類の効果音が用意されています。
これらを演奏・出力するために、APU(スーパーファミコンの音声処理ユニット、SONY SPC700)で処理するためのバイナリデータがそのままの形でROM内に収録されています。詳細は未解析ですが、おそらくAPU制御用のプログラム、音声そのもの、楽器・音色等の割り当てを分離した管理データからなるものと推測しています。これらは ID 0~17 (欠番あり) で管理され、必要に応じて APU に転送されます。
これら音声データは、先頭にサイズ(2バイト)、APU転送先メモリアドレス※(2バイト)、末尾にゼロ(2バイト)が付加される形でROM内の各所に保存されており、その先頭アドレス(3バイト絶対アドレス)は、0x80fc65 ( この下位アドレスは 0x80f806 に保持) からの配列に保存されています。
※データによって、APUのメモリのどこに転送するかを固定して使用しているということを意味します。

内訳は次の通りです。
ID アドレス範囲 サイズ
※本体のみ
APU転送先
アドレス
内容
0 8c8158~8c8dc4 3175 0x380 サウンドドライバプログラムコードと推定
1 8c8dc7~8c997b 2991 0x3000 効果音詰め合わせデータ
2 8d8000~8d8041 60 0x3e00 管理データA
3 8f9430~8f945f 42 0x3e00 管理データB
4 8e8000~8e8059 84 0x3e00 管理データC
5 8dd65c~8de23a 3033 0x1000 曲ID 0,1,2の本体詰め合わせデータ
6 8dff3e~※ - - 無効データのため欠番と推定
7 8dff3e~※ - - 無効データのため欠番と推定
8 8de751~8deaab 853 0x1000 曲ID 3の本体データ
9 8de23b~8de750 1296 0x1000 曲ID 4の本体データ
10 8dff3e~※ - - 無効データのため欠番と推定
11 8deaac~8dfab1 4096 0x1000 曲ID 5,6,12の本体詰め合わせデータ
12 8ed324~8edde8 2751 0x1000 曲ID 7の本体データ
13 8dfab2~8dff3d 1158 0x1000 曲ID 8の本体データ
14 8edde9~8ee079 651 0x1000 曲ID 9の本体データ
15 8ee07a~8ee27f 512 0x1000 曲ID 10の本体データ
16 8ee280~8ef4f5 4720 0x1000 曲ID 11の本体データ
17 8fc48a~8fc67b 492 0x1000 未使用データ(曲ID 12の本体データの分離版)

BGM演奏

BGMは、上記音声データの内、管理データと本体データおよびパート番号(0~2)により管理しています。パート番号は、複数の曲を詰め合わせたデータになっている時のパートを区別するもので、単一の曲で構成される場合は0番を指定します。
APU転送先アドレスがそれぞれ重複していることから分かる通り、BGMを切り替える際は、都度APUに該当するデータを転送しています。
※パート番号が異なるだけなら転送は行わず、パートの切り替えのみで対処します。

BGM毎の管理データ・本体データの組は、0x80c7fbからのワード配列で管理しています。ワードのうち先頭バイトが管理データのID(2,3,4)、後尾バイトが曲本体データのIDです。パート番号は、0x80c815からのバイト配列で管理しています。
以下、曲の対応です。正式な曲名は分からないのですが、世間一般的には ニコニコ動画のsm6647924 のような曲名で知られているようなので、本wikiでもそちらを採用します。

曲ID 音声データID パート
番号
曲名 内容
管理 本体
0 2 5 0 Main Theme 電源ON/リセット後に流れるテーマ
1 2 5 1 Opening Story 導入部分のストーリー説明時に流れる曲
2 2 5 2 Survivors 一部重要人物救出イベント時の曲
3 3 8 0 Four Separate Lives 主人公選択画面の曲
4 2 9 0 Calm Before the Storm プロローグ時の曲
5 2 11 2 Tidal Wave! 転覆時に流れる曲
6 2 11 0 The Sinking Ship 転覆後のアクション中に流れるメインの曲
7 2 12 0 Boiler Room ボイラー室で流れる曲
8 3 13 0 Rescuers 生存エンディングや一部エピローグで流れる曲
9 3 14 0 Chapel 教会や、その他悲劇的なシーンで流れるレクイエム調の曲
10 3 15 0 Game Over ゲームオーバー画面の曲
11 4 16 0 Staff Roll エンディング後のスタッフロールの曲
12 2 11 1 Grefiure ミッシェルのバイオリン演奏時の曲

音声データのロード

音声データのAPUへの転送を司るサブルーチンは、0x8094d6 と 0x80955f の2系統あります。
しかし、実質として後者は呼ばれることがないため、前者のみが利用されているものとして解説を進めます。

この機能は、音声データ0のAPU制御コードをロードする前から使用できるため、APU組み込みの機能を利用したものと思われます。詳細は https://wiki.superfamicom.org/transferring-data-from-rom-to-the-snes-apu をご覧ください。

音声データ0(サウンドドライバ)に関しては、ゲーム開始時にサブルーチン 0x8096fc を通じて1度だけロードします。
その他(BGM用管理データ・本体データ)については、サブルーチン 0x809707 を通じて、必要に応じてロードします。
ただし、音声データ 1(SE詰め合わせ) に関してはゲーム開始時に1度だけロードします。

APUの制御

制御概要

APUの制御は、サブルーチン 0x8095ce をコアとして、IOポート $2140, $2141 への書き込みによって実現します。
※両IOポートの読み込みは、制御指令の終了確認、チャンネル使用状況の確認に使われているものと推測しています。
※なお、サブルーチン 0x8095ce には、$2142 を使用したデータ転送の処理 ( 間接的に 0x80955f を呼ぶ処理含む ) も含まれますが、ゲーム中に呼ばれることはないようです。

両IOポートは、対象および操作内容の指定($2140)と、処理に使用するデータ($2141)とに役割が分かれていますが、コード上はこの2ポート分のデータをまとめたワード値を「指令」の単位として使用します。
0x8095ce のサブルーチンは、$1e0a~$1e19 の領域をキューとみなした、最大8つの指令を個々に処理する働きを持ちます。ただ実際には、キューに指令を追加する 0x809631 と、キュー内の指令を全て実行する 0x8095bd を経由して使用します。
※0x809631 のサブルーチンは、$1e00 の「指令転送保留」が無効であれば、キューへの指令の追加と同時にキュー内の指令を全て実行する効果も持ちます。

対象と操作

※これはコード上の操作体系から推測した内容であることにご注意ください!

SFCのAPUは8つの出力チャンネルを持っていますが、SEはいずれかのチャンネル(実際は4~7)を1つ使用して出力します。複数のSEを同時に出力する場合は、その分チャンネルを必要とします。このチャンネルが操作対象となります。
それとは別に、BGM出力用の仮想的なチャンネルが操作対象となります。実際には、0~7のうち必要なチャンネルをまとめて扱っているものと思いますが、内訳は不明です。
※複数の楽器を組み合わせるような演奏方式を採るため、BGMには複数のチャンネルが必要なことにご注意ください。なお、SE出力が複数同時に発生すると(典型的には複数キャラの落下による悲鳴発生)、経験上BGMの方に影響が出ることを確認しています。

以下、$2140 に指定する操作および、$2141 に指定するデータを挙げます。

  • BGM用仮想チャンネル対象
    • 停止あるいは無音化 ( 操作 0x10 )
      データ 0 を指定することで、演奏停止あるいは無音化を行うものと推定しています。( 未確認 )
    • パート指定 ( 操作 0x20 )
      データ 0~2 を指定することで、演奏するためのパート番号を設定します。
      データ 0x80 を指定すると、実際に設定したパート番号の曲を演奏します。
    • 音量設定 ( 操作 0x60 )
      データとして、音量数値を指定します。
      本ゲームでは 0xcd ( 205 ) を標準の音量として使用しています。
  • SE用個別チャンネル対象
    各操作共通で、操作の下3bit部分をチャンネル番号として解釈します。
    • 停止あるいは無音化 ( 操作 0x90~0x97 )
      データ 0 を指定することで、演奏停止あるいは無音化を行うものと推定しています。( 未確認 )
    • SE出力 ( 操作 0xa0~0xa7 )
      SEのIDをデータとして指定することで、SEを出力します。
    • チャンネル音声設定 ( 操作 0xe0~0xe7 )
      データとして、音量数値を指定します。

API毎の制御内容


  • サブルーチン 0x80969e ( 音量リセット )
    操作 0x60, 0xe0~0xe7 にそれぞれデータ 0xcd を指定することで、音量をデフォルト値にリセットします。
  • サブルーチン 0x8096e7 ( チャンネル音量設定 )
    Yレジスタの値に0xe0を加算した値を操作として、Aレジスタで指定した音量を設定します。
    なお、0 指定時はデフォルトの 0xcd と解釈します。
    メモリ上の $1e6a~$1e71 に設定済みの音量を保持しておくことで、値が変わらない場合は処理をスキップします。
  • サブルーチン 0x809715 ( 全チャンネル無効? )
    操作 0x90~0x97 により、全チャンネルに対し停止あるいは無音化を行います。
  • サブルーチン 0x80972b ( BGM開始 )
    操作 0x20 によるパート番号の設定、0x60 による音量設定 ( デフォルトの 0xcd )、操作 0x20 による演奏開始を順次処理します。
  • サブルーチン 0x809745 ( 空きチャンネルSE出力 )
    IOポート $2141 を読み取り、4~6 の中で空きのチャンネルを探索した上で、当該チャンネルを指定してSEを出力します。( 空きがなければチャンネル6を使用します )
    Aレジスタの上位バイトを 0x8096e7 に渡すことで、先に音量設定を行い、その後 0xa0+チャンネル番号の操作で、Aレジスタの下位バイトをIDとするSEの出力を行います。
  • サブルーチン 0x809778, 0x80977d, 0x809782, 0x809785 ( SE出力 )
    順に、チャンネル4,5,7,7を指定してSEを出力します。
    チャンネルが固定となる以外は、上述の 0x809745 と指令内容は同じです。
    なお、0x809782 のみ、音量・SEのIDの組 (Aレジスタ指定値) を $1e83 に保存します。
  • サブルーチン 0x80978a ( BGM無効? )
    操作 0x10 を処理します。
  • サブルーチン 0x809799 ( APUチャンネル6,7無効? )
    操作 0x96,0x97 を処理します。
  • サブルーチン 0x8097ae ( APU指定チャンネル無効? )
    Aレジスタで指定したチャンネル番号に対し、0x90 を加算した値を操作とします。
  • サブルーチン 0x8097bd ( 音量ダウン? )
    startボタンによるポーズを行った際の音量ダウン処理を行うものです。
    操作 0x60 にデータ 0x64 ( 100 ) を指定した BGM の音量低下と、操作 0x97 によるチャンネル 7 停止または無音化を行います。
  • サブルーチン 0x8097d8 ( 音量復帰? )
    startボタンによるポーズから抜ける際の音量復帰処理を行うものです。
    操作 0x60 にデータ 0xcd ( 205 ) を指定した BGM の音量復帰と、条件によっては操作 0xa7 にデータ 0 を指定した SE の出力を行います。
    ※ただし、その条件に該当する場合、このSE出力は直後の 0x809785 呼び出し ( $1e83 が対象 ) で上書きされるので意味がありません。
  • サブルーチン 0x8097eb ( BGM音量倍率設定? )
    Xレジスタの値÷256を倍率として、操作 0x60 によりBGM音量を 0xcd×倍率の値に設定します。
  • サブルーチン 0x809863 ( 謎なBGM音量調整? )
    計算方法の詳細は追っていませんが、操作 0x60 によりBGM音量を設定します。
    計算した音量値が十分でない場合は、捜査 0x10 により停止あるいは無音化を行います。

効果音の種類

効果音は、ID 0~44 の45種類が存在し、最大チャンネル4~7の4種類を同時に使用します。
これら効果音は、サブのBGM的な位置付けで流し続けるもの、一時的に鳴らすだけのものとに大別できます。前者は主にチャンネル7で、後者は4~6の中で都度空いているチャンネルを使用して鳴らすのが一般的です。
※通常はチャンネル7を使う場合でも、イベントのコマンド129番の機能で鳴らす場合(プロローグ外)、4~6を使うようになります。ジェフリーEDでのID12が該当します。

以下に一覧を挙げます。

ID ch 内容 場面 備考
0 4,7 嵐 エレベータ等BGMのない場所全般や、
プロローグでの上層やブリッジ
BGMがない場所ではチャンネル4を使う傾向がある
1 4~6 雷鳴 プロローグの上層やブリッジ、休憩室等 音量200,150の強弱使い分けがある
2 - 波のうねり? 未使用
3 5 暴雨 ルークプロローグ
4 7 迫る波 転覆直前 同時にID10も使用する
5 7 汽笛 開始時・ブリッジでのルークプロローグ
6 4~6 傾く船B 傾きパターンB時の折り返し
7 4~6 傾く船A1 傾き変化時 音量240、ID7,8は同時に鳴らす
8 4~6 傾く船A2 傾き変化時
9 - 傾く船C? 未使用
10 4~6 船の振動 傾きの予兆の揺れや転覆、時間切れ直前 ボイラー爆発直後、傾き変化が始まるまで音量一時的に254
11 4~6 爆発音B ジェフリーEDの1つ
12 7 爆発音A1 ボイラー爆発、裏エリア吹き抜け部での爆発演出、
ボイラー室での炎吹き上がり
ID12,13は同時に鳴らす。繰り返し機能を使う場合は12のみ。ジェフリーのEDの1つでは両方チャンネル4~6を使う。
13 4~6 爆発音A2
14 4~6/7 離着水 浸水した水に接触、あるいは水中から脱出時
15 7 水流 上層等の水流ギミックのある場所
16 7 潜水 水中で泳いでいるとき
17 4~6 放電 制御室等
18 4~6 入退室 ドアを通じて入室する時 シャッという音
19 4~6 ドア開閉 ドアを開ける時や退室する時 バタンという音
20 4~6 衝突 障害物との接触
21 4~6 打撃音 底層等で障害物が降ってくる時
一部エピローグで船底を叩くシーンでも使用する
22 4~6 水蒸気 ボイラー室の水蒸気が収まる時
23 4~6 壊れ物 ショップで皿のような障害物が降る時 ガシャーンという音
24 7 火災 爆発前の表エリア中層、
ルークプロローグでのボイラー室前
25 4~6 焼身 炎に接触してミスになる場合
ボイラーの水蒸気沸き上がりにも使用
26 4~6 銃声 ルークEDの1つ
27 4~6 水滴 配管エリア等水滴の発生する場所 ボイラー室での水滴では使われない
28 7 通信機操作1 ルークプロローグ モールス符号のような機械音
29 - 通信機操作2 未使用
30 - 鈍音1 未使用
31 - 鈍音2 未使用
32 - 鈍音3 未使用
33 4~6 落下 ミス後床等に落下する時
34 4~6 悲鳴(女性一般) キャラ落下ミス時、
傾き変化時(7種からランダムに決定、音量48)
他に該当しない女性用
35 4~6 悲鳴(年配男性) レドウィン、イスメイ、クーパー、ミラー、テンダー、ペインズ、レイトンが該当
36 4~6 悲鳴(男児) ハリー、ジャックが該当
37 4~6 悲鳴(若年男性) 他に該当しない男性が該当
38 4~6 悲鳴(一部男性) ジェフリー、ラットラーが該当
39 4~6 悲鳴(年配女性) アデラのみ該当
40 4~6 悲鳴(女児) エイミー、ステラ、マリーが該当
41 7 ポーズ startボタンでポーズした時
42 7 キャラ決定 主人公決定時
43 7 キャラ切替 主人公選択で次の候補に移る時
44~ - 無効 サウンドテストで選択できるが効果なし
「音声処理」をウィキ内検索
LINE
シェア
Tweet
セプテントリオン/SOS攻略wiki
記事メニュー

メニュー

  • トップページ
  • 基本情報
    • まとめ
    • ゲーム概要
    • 基本操作
    • 取説紹介
  • 攻略情報(ネタバレ注意)
    • ゲームの流れ
    • 基本方針
    • 船内マップ
    • ボイラー室内マップ
    • 要救助者一覧
    • 詳細攻略
    • 裏技・ネタ
  • 海外版SOS情報
  • タイムアタック関連
    • タイムアタック記録
    • 最速ルート考察
  • 外部サイト紹介
  • 内部動作分析
    • メモリ一覧
    • データ構造
    • 個別処理
    • イベント処理
    • 音声処理
    • Luaスクリプト
    • キャラクターデータ
    • メッセージ一覧
      • カテゴリ1,3,4
      • カテゴリ2,5
      • カテゴリ6
      • カテゴリ7c
      • カテゴリ7r
      • カテゴリ7l
      • カテゴリ7j
    • メッセージチャンク一覧
      • チャンクc
      • チャンクr
      • チャンクl
      • チャンクj
      • チャンクp
    • イベント関連情報
      • イベント基礎情報
      • イベント情報ダンプ1
      • イベント情報ダンプ2
      • イベント情報ダンプ3
      • イベント情報ダンプ4
  • その他
    • トリビア
    • チートコード
    • 用語集



リンク

  • @wiki
  • @wikiご利用ガイド




ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. 音声処理
  2. メモリ一覧
  3. イベント基礎情報
  4. チートコード
  5. イベント処理
  6. 個別処理
  7. 外部サイト紹介
  8. チャンクj
  9. 船内マップ
  10. 基本方針
もっと見る
最近更新されたページ
  • 22時間前

    個別処理
  • 23時間前

    音声処理
  • 1日前

    イベント処理
  • 2日前

    メモリ一覧
  • 2日前

    データ構造
  • 3日前

    チートコード
  • 4日前

    メニュー
  • 4日前

    裏技・ネタ
  • 14日前

    海外版SOS情報
  • 19日前

    Luaスクリプト
もっと見る
人気記事ランキング
  1. 音声処理
  2. メモリ一覧
  3. イベント基礎情報
  4. チートコード
  5. イベント処理
  6. 個別処理
  7. 外部サイト紹介
  8. チャンクj
  9. 船内マップ
  10. 基本方針
もっと見る
最近更新されたページ
  • 22時間前

    個別処理
  • 23時間前

    音声処理
  • 1日前

    イベント処理
  • 2日前

    メモリ一覧
  • 2日前

    データ構造
  • 3日前

    チートコード
  • 4日前

    メニュー
  • 4日前

    裏技・ネタ
  • 14日前

    海外版SOS情報
  • 19日前

    Luaスクリプト
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. まどドラ攻略wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ヒカマーWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. AviUtl2のWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. 初音ミク Wiki
  6. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 発車メロディーwiki
  9. Abiotic Factor 日本語攻略Wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  3. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. 女神アルテミス - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 市長補佐 - ストグラ まとめ @ウィキ
  7. 山下 ひろし - ストグラ まとめ @ウィキ
  8. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  9. 無幻銃士ダルタン - モンスター烈伝オレカバトル2@wiki
  10. 危険度7 - 検索してはいけない言葉 @ ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.