---
generated_at: 2026-02-22 00:15:00
metrics:
  claims_total: 80
  claims_with_evidence: 75
  claims_without_evidence: 5
confidence_derived: 0.94
---

# 根拠レポート：結合テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された結合テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：75 / 80、根拠なし：5
- 優先レビュー（高）
  1. **IT-014 KSON形式譜面読み込み**：kson.dllの実際の呼び出し箇所がソース上で確認できない（開発版で削除の可能性）
  2. **IT-068 IRスコア送信**：ソースコード開発版で機能削除済み（ir_send_score/ir_send_chartが空実装）
  3. **IT-070 ビデオ再生同期**：MCI制御の実際の動作確認が困難
  4. **IT-026 SwitchAudioリンク**：BASS_ChannelSetLink失敗時のフォールバック処理の網羅性
  5. **IT-074 マウスXY入力**：感度計算式の正確性検証が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `kshootmania.hsp` (メインエントリ、シーン管理、初期化)
- E-02: `src/scene/title.hsp` (タイトル画面)
- E-03: `src/scene/select.hsp` (選曲画面)
- E-04: `src/scene/play.hsp` (プレイ画面includeハブ)
- E-05: `src/scene/result.hsp` (リザルト画面)
- E-06: `src/scene/course_result.hsp` (コースリザルト画面)
- E-07: `src/scene/option.hsp` (オプション画面)
- E-08: `src/scene/gate.hsp` (ゲート画面)
- E-09: `src/scene/play/play_init.hsp` (プレイ初期化)
- E-10: `src/scene/play/play_update.hsp` (プレイ更新メインループ)
- E-11: `src/scene/play/play_key_input.hsp` (キー入力処理)
- E-12: `src/scene/play/play_button_note.hsp` (ボタンノート判定)
- E-13: `src/scene/play/play_laser_note.hsp` (レーザーノート判定)
- E-14: `src/scene/play/play_chart_load.hsp` (譜面読み込み)
- E-15: `src/scene/play/play_game_logic.hsp` (ゲームロジック)
- E-16: `src/scene/play/play_audio.hsp` (オーディオ処理)
- E-17: `src/scene/play/play_audio_effects.hsp` (オーディオエフェクト)
- E-18: `src/scene/play/play_video.hsp` (ビデオ再生)
- E-19: `src/scene/play/play_splash_screen.hsp` (スプラッシュスクリーン)
- E-20: `src/ksmcore.as` (ksmcore.dll連携)
- E-21: `src/kson.as` (kson.dll連携)
- E-22: `src/ir.hsp` (Internet Ranking)
- E-23: `src/audio/key_sound.as` (キーサウンド)
- E-24: `src/audio/laser_slam_sound.as` (レーザースラムサウンド)
- E-25: `src/audio/fxdef.hsp` (FXエフェクト定義)
- E-26: `src/filesystem_utils.as` (ファイルシステムユーティリティ)
- E-27: `src/bass.as` (BASSライブラリ)
- E-28: `src/bass_vst.as` (BASS VSTプラグイン)

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (IT-001) | タイトル→IRサインイン遷移 | E-02 title.hsp L631 | ○ |
| C-02 (IT-002) | タイトル→オプション遷移 | E-02 title.hsp L641 | ○ |
| C-03 (IT-003) | タイトル→ゲート遷移 | E-02 title.hsp L649 | ○ |
| C-04 (IT-004) | 選曲→タイトル戻り遷移 | E-03 select.hsp L181-191 | ○ |
| C-05 (IT-005) | 選曲→プレイ遷移 | E-01 kshootmania.hsp L1013 | ○ |
| C-06 (IT-006) | プレイ→リザルト遷移 | E-11 play_key_input.hsp L131 | ○ |
| C-07 (IT-007) | リザルト→選曲遷移 | E-05 result.hsp L15-24 | ○ |
| C-08 (IT-008) | コースモード連続遷移 | E-05 result.hsp L8-19 | ○ |
| C-09 (IT-009) | コースリザルト遷移 | E-01 kshootmania.hsp L1082 | ○ |
| C-10 (IT-010) | IRサインイン→選曲遷移 | E-01 kshootmania.hsp L1143-1155 | ○ |
| C-11 (IT-011) | config.ini読み込み | E-01 kshootmania.hsp L416-681 | ○ |
| C-12 (IT-012) | config.ini書き込み | E-11 play_key_input.hsp L147-173 | ○ |
| C-13 (IT-013) | KSH譜面読み込み | E-14 play_chart_load.hsp L254-300 | ○ |
| C-14 (IT-014) | KSON譜面変換読み込み | E-21 kson.as L6 | △ |
| C-15 (IT-015) | スコアファイル保存 | E-05 result.hsp L341-468 | ○ |
| C-16 (IT-016) | コースモードスコア保存 | E-06 course_result.hsp L265-370 | ○ |
| C-17 (IT-017) | ksmcore.dll初期化 | E-01 kshootmania.hsp L754-757 | ○ |
| C-18 (IT-018) | GameSystemカメラ計算 | E-20 ksmcore.as L5-8 | ○ |
| C-19 (IT-019) | キーサウンド生成再生 | E-20 ksmcore.as L9-11, E-23 key_sound.as L56-75 | ○ |
| C-20 (IT-020) | kson.dll初期化 | E-01 kshootmania.hsp L759-761 | ○ |
| C-21 (IT-021) | KSON_ToKSH変換 | E-21 kson.as L6-8 | △ |
| C-22 (IT-022) | BASS初期化 | E-01 kshootmania.hsp L771-873 | ○ |
| C-23 (IT-023) | 楽曲再生開始 | E-16 play_audio.hsp L96-138 | ○ |
| C-24 (IT-024) | マルチトラック同期 | E-16 play_audio.hsp L140-148 | ○ |
| C-25 (IT-025) | VSTエフェクト適用 | E-17 play_audio_effects.hsp L1-183 | ○ |
| C-26 (IT-026) | SwitchAudioエフェクト | E-17 play_audio_effects.hsp L185-199 | ○ |
| C-27 (IT-027) | 直角レーザーサウンド | E-24 laser_slam_sound.as L32-59, E-16 play_audio.hsp L150-193 | ○ |
| C-28 (IT-028) | キーサウンド再生 | E-23 key_sound.as L56-75, E-16 play_audio.hsp L195-200 | ○ |
| C-29 (IT-029) | マスターボリューム反映 | E-02 title.hsp L578 | ○ |
| C-30 (IT-030) | BT CRITICAL判定 | E-12 play_button_note.hsp L15 | ○ |
| C-31 (IT-031) | BT NEAR判定 | E-12 play_button_note.hsp L37 | ○ |
| C-32 (IT-032) | BT MISS判定 | E-12 play_button_note.hsp L76 | ○ |
| C-33 (IT-033) | FXショート判定 | E-12 play_button_note.hsp L148-238 | ○ |
| C-34 (IT-034) | BTロング判定 | E-12 play_button_note.hsp L98-143 | ○ |
| C-35 (IT-035) | FXロング判定 | E-12 play_button_note.hsp L240-291 | ○ |
| C-36 (IT-036) | レーザー追従判定 | E-13 play_laser_note.hsp L158-200 | ○ |
| C-37 (IT-037) | 直角レーザー判定 | E-16 play_audio.hsp L162 | ○ |
| C-38 (IT-038) | トータルスコア計算 | E-15 play_game_logic.hsp L252-265 | ○ |
| C-39 (IT-039) | ゲージ増減 | E-12 play_button_note.hsp L29-31, E-15 play_game_logic.hsp L239-253 | ○ |
| C-40 (IT-040) | ハードゲージ動作 | E-15 play_game_logic.hsp L53-59, E-12 play_button_note.hsp L7 | ○ |
| C-41 (IT-041) | チェインカウンター | E-12 play_button_note.hsp L24-26 | ○ |
| C-42 (IT-042) | グレード計算 | E-05 result.hsp L213-218 | ○ |
| C-43 (IT-043) | メダル判定 | E-05 result.hsp L279-302 | ○ |
| C-44 (IT-044) | タイミング同期 | E-16 play_audio.hsp L1-93 | ○ |
| C-45 (IT-045) | sync値反映 | E-11 play_key_input.hsp L91-109 | ○ |
| C-46 (IT-046) | BTモード反映 | E-07 option.hsp L259-261, E-15 play_game_logic.hsp L95-110 | ○ |
| C-47 (IT-047) | FXモード反映 | E-07 option.hsp L262-265 | ○ |
| C-48 (IT-048) | レーザーモード反映 | E-07 option.hsp L266-269 | ○ |
| C-49 (IT-049) | 判定遅延反映 | E-09 play_init.hsp L28 | ○ |
| C-50 (IT-050) | レーザー遅延反映 | E-09 play_init.hsp L25 | ○ |
| C-51 (IT-051) | 画面解像度変更 | E-02 title.hsp L14 | ○ |
| C-52 (IT-052) | マスターボリューム即時反映 | E-07 option.hsp L253-254, L403-404 | ○ |
| C-53 (IT-053) | ハイスピード反映 | E-09 play_init.hsp L96 | ○ |
| C-54 (IT-054) | キーバインド反映 | E-07 option.hsp L79-118 | ○ |
| C-55 (IT-055) | アナログ入力デバイス変更 | E-07 option.hsp L271-281, L422-432 | ○ |
| C-56 (IT-056) | 譜面→ノートオブジェクト変換 | E-14 play_chart_load.hsp L4-62 | ○ |
| C-57 (IT-057) | BPM変化リストと時刻計算 | E-15 play_game_logic.hsp L112-126 | ○ |
| C-58 (IT-058) | 判定→描画連携 | E-12 play_button_note.hsp L32-36 | ○ |
| C-59 (IT-059) | チェイン数表示更新 | E-12 play_button_note.hsp L27 | ○ |
| C-60 (IT-060) | レーザー→カメラ傾き | E-13 play_laser_note.hsp L21-151 | ○ |
| C-61 (IT-061) | レーザー→フィルターエフェクト | E-13 play_laser_note.hsp L36-44 | ○ |
| C-62 (IT-062) | レーン回転(Spin) | E-15 play_game_logic.hsp L186-250 | ○ |
| C-63 (IT-063) | 選曲→プレイデータ引き渡し | E-01 kshootmania.hsp L1037-1074 | ○ |
| C-64 (IT-064) | プレイ→リザルトデータ引き渡し | E-05 result.hsp L79-158 | ○ |
| C-65 (IT-065) | コーススコア集約 | E-05 result.hsp L9, E-06 course_result.hsp L243 | ○ |
| C-66 (IT-066) | safeChdir | E-26 filesystem_utils.as L42-47 | ○ |
| C-67 (IT-067) | UTF-8 BOM処理 | E-14 play_chart_load.hsp L262-266 | ○ |
| C-68 (IT-068) | IRスコア送信 | E-22 ir.hsp L38-43 | △ |
| C-69 (IT-069) | IR用譜面ハッシュ計算 | E-22 ir.hsp L51-68 | ○ |
| C-70 (IT-070) | ビデオ再生同期 | E-18 play_video.hsp L1-27 | ○ |
| C-71 (IT-071) | MIRROR/RANDOM反映 | E-15 play_game_logic.hsp L64-93 | ○ |
| C-72 (IT-072) | 表示スコアアニメーション | E-15 play_game_logic.hsp L267-278 | ○ |
| C-73 (IT-073) | ジョイスティック入力 | E-02 title.hsp L7-8 | ○ |
| C-74 (IT-074) | マウスXYレーザー入力 | E-03 select.hsp L483-498 | △ |
| C-75 (IT-075) | コースファイルパース | E-01 kshootmania.hsp L966-999 | ○ |
| C-76 (IT-076) | GameSystem毎フレーム更新 | E-10 play_update.hsp L41 | ○ |
| C-77 (IT-077) | GameSystem破棄 | E-11 play_key_input.hsp L141-142 | ○ |
| C-78 (IT-078) | 一時停止と再開 | E-11 play_key_input.hsp L1-89 | ○ |
| C-79 (IT-079) | fxdefエフェクト定義 | E-25 fxdef.hsp L1-99 | ○ |
| C-80 (IT-080) | AUTOモード判定バイパス | E-15 play_game_logic.hsp L95-110, E-05 result.hsp L6-24 | ○ |

## 4) 不足情報（Unknown / Missing）

- **IT-014/IT-021 KSON形式の実際の呼び出しフロー**: kson.asにKSON_ToKSH/KSON_FromKSHの関数定義は確認できるが、実際にこれらを呼び出している箇所がメインコード中に明示的に確認できない。エディタ(kshooteditor.hsp)側での使用の可能性がある。
  - 候補：kshooteditor.hsp / 外部ツールでの使用 / ランタイム条件分岐

- **IT-068 IRスコア送信**: ソースコード開発版でir_send_score/ir_send_chartの実装が「Note: ソースコード公開用に削除」として空になっている。実際の送信ロジックは確認不可。
  - 候補：非公開の製品版ソース / サーバーサイドAPI仕様書

- **IT-070 MCI経由ビデオ再生**: MCIコマンド("open"/"play"/"seek")の実際の動作はWindows環境依存。同期精度の検証には実機テストが必要。
  - 候補：Windows MCI仕様書 / 実機テスト

- **IT-074 マウスXY入力の感度計算**: dstat計算式 `(ginfo_mx-defx)*2*(mx*2-1)` の妥当性は数学的検証が必要。プレイ画面での処理はplay_key_input.hsp内だが、対応する処理の全貌が大きく行数が限界を超えている。
  - 候補：play_key_input.hsp全文 / ユーザーテスト

- **描画処理の詳細テスト**: play_draw_frame.hsp / play_graphics.hspの詳細な描画テストケースは、本結合テストの範囲を超えるため省略。視覚的な検証が必要。
  - 候補：play_draw_frame.hsp / play_graphics.hsp / スクリーンショットテスト

## 5) リスクフラグ（レビュー観点）

- **リスク2（高）**: IT-040 ハードゲージの判定停止条件 - `gauge/1000<=0` のチェックがplay_button_note.hsp L7にあるが、ゲージ減算処理(addgauge)の内部実装が確認できていない。ゲージが負の値になる際の挙動に注意。
- **リスク2（高）**: IT-024 マルチトラック同期 - 100ms以上のずれで `tadj=2` が設定されるが、同期復帰の再試行ロジック(play_key_input.hsp L72-87)が10回の繰り返しで収束しない場合のフォールバックが不明。
- **リスク1（中）**: IT-013 譜面パース - 131072要素の固定サイズ配列(note、analog等)を使用。この上限を超える譜面データが入力された場合のバッファオーバーフロー対策が不明。
- **リスク1（中）**: IT-044 タイミング同期 - `disableadjtimer=1` 時の `hgsettime t,INT_MAX` による強制同期が、フレームドロップ時に問題を起こす可能性。
- **リスク0（低）**: IT-066 safeChdir - dirExists内部のdirlistがワイルドカードを含むパスで誤動作する可能性（コード内コメントに注意書きあり）。

## 6) レビュアーチェックリスト（最小）

- [ ] IT-001~IT-010: 各シーン遷移でscene変数の設定値が正しいENUM値(SCENE_TITLE=0等)と一致するか確認
- [ ] IT-011~IT-012: config.iniの読み書きで全設定項目が漏れなく処理されているか確認（特にv1.32以前との互換処理 kshootmania.hsp L742-745）
- [ ] IT-013: parseKSHChartParamLines/parseKSHChartBodyの内部処理がテストケースの期待結果と整合するか確認
- [ ] IT-014/IT-021: KSON変換の実際の使用箇所をkshooteditor.hspで確認
- [ ] IT-030~IT-037: 判定閾値(43ms/113ms/260ms)がソースコードの値と一致するか確認
- [ ] IT-038: スコア計算式 `10000000/(totalcombo)/2` の精度（整数除算による端数処理）を確認
- [ ] IT-039~IT-040: addgauge関数の内部実装を確認し、ゲージ増減の具体的な値を検証
- [ ] IT-068: IR機能が製品版で有効化される場合のテスト手順を別途策定
- [ ] IT-075: コースファイルで相対パス(`./`、`.\`)が含まれる場合のセキュリティチェック(f=4で中断)を確認
- [ ] 全テストケース: グローバル変数を介したデータ連携が多いため、変数名の競合・意図しない上書きがないか確認
