View on GitHub

ym2151-log-player

ym2151-log-player

ym2151-log-player

Japanese English

YM2151レジスタイベントログをJSONファイルから読み込んで、リアルタイム再生とWAVファイル出力を行うプログラム。

状況

アーカイブします。後継のRust版を開発します。

このリポジトリの用途は、C言語による最小限のコードを提供する用です。

概要

このプログラムはYM2151(OPM)のレジスタ操作ログをJSON形式で読み込み、Nuked-OPMエミュレータを使用して音声を再生します。

機能

ビルド

Linux (gcc)

gcc -o player src/player.c opm.c -lm -lpthread -ldl -fwrapv

Linux (zig cc) / Windows

python build.py build-phase4

または

python build.py build-phase4-gcc  # Linux with gcc
python build.py build-phase4-windows  # Windows cross-compile

使用方法

./player <json_log_file>

例:

./player events.json

入力JSON形式

YM2151ログJSONファイルは以下の形式である必要があります:

{
  "event_count": 8,
  "events": [
    {"time": 0, "addr": "0x08", "data": "0x00"},
    {"time": 100, "addr": "0x20", "data": "0xC7"},
    ...
  ]
}

各イベントフィールド:

注意: プログラムは自動的にレジスタ書き込みを2段階(アドレス書き込み→データ書き込み)に分割し、必要な遅延を追加します。 JSONファイルにis_dataフィールドが含まれていても無視されます。入力は常にpass1形式(単純なレジスタ書き込み)として扱われます。

出力

利用ライブラリ

ライセンス

MIT License