# 風来のシレン 月影村の怪物 S1 MIDI Patcher

Windows版『風来のシレン 月影村の怪物』（旧版）のMIDI再生に起因する
フリーズを回避するため、ゲームの .s1 ファイル内にある
Channel Volume（CC#7）を修正するツールです。

## 必要なもの

- Windows
- Python 3.12 以降
- 正規にインストールした Windows版『風来のシレン 月影村の怪物』（旧版）

本ツールにはゲーム本体・S1ファイル・その他のゲームデータは含まれていません。

## ファイル

- `tsukikage_s1_patch.bat`
  - Windowsからパッチャーを起動するためのBATファイルです。
- `tsukikage_s1_patch.py`
  - パッチ処理本体です。ソースコードを確認・編集できます。

## 使い方

1. このZIPを、書き込み可能な任意のフォルダへ展開します。
2. `tsukikage_s1_patch.bat` をダブルクリックします。
3. フォルダ選択画面で、ゲームの `Gm` フォルダを指定します。

通常のインストール先の例:

    C:\Program Files (x86)\CHUNSOFT\Shiren\Gm

4. パッチャーと同じフォルダに `Gm_patched` が作成されます。
5. 処理結果を確認します。
6. `Gm_patched` の内容を、ユーザー自身でゲームの `Gm` フォルダへコピーして差し替えます。

元の `Gm` フォルダは、本ツールからは変更しません。
差し替える前に、元の `Gm` をバックアップしておくことを推奨します。

## 処理内容

各 `.s1` をStandard MIDI Fileとして解析し、MIDIチャンネルごとに
最初の Channel Volume（Control Change #7）を残して、
同じチャンネルにある2個目以降のCC#7を削除します。

それ以外のMIDIイベントは極力変更せず、
元のMIDI Format / Track構造を維持して出力します。

## 検証済み旧版での結果

未修正の `Gm`（S1ファイル30個）では、次の結果になることを確認しています。

    S1ファイル数: 30
    変更ファイル数: 9
    削除した2個目以降のCC#7: 63

対象となった9ファイル:

- D3.s1
- D5_2.s1
- Dorobou.s1
- ending_1.S1
- ending_1_2.S1
- F1.s1
- F2.s1
- M1.s1
- m2_2.S1

すでに修正済みの場合など、ゲームデータの版や状態によって結果が異なる可能性があります。

## 安全上の仕様

- 元の `Gm` フォルダは読み取りのみで、直接書き換えません。
- 出力はパッチャーと同じ場所の `Gm_patched` です。
- `Gm_patched` がすでに存在する場合は、勝手に上書きせず停止します。
- CD-ROM由来などの読み取り専用属性は出力ファイルへ引き継ぎません。
- ゲームのS1ファイルそのものは本ツールに含まれていません。

## 注意

これは非公式のユーザー作成ツールです。
ゲームメーカーおよび関係各社への問い合わせは行わないでください。

使用前に必ずゲームデータをバックアップしてください。
本ツールの使用は自己責任でお願いします。
