[P6mkII]ピーガー音プレイヤー2
PC-6001mkII用の自作データーレコーダーです。SDカードからの再生、SDカードへの録音が可能です。リモート端子による分割ロードにも対応しています。
SDカード内にはバイナリファイル(CAS/P6)で保存します。バイナリファイルとはカセットテープのイメージファイルです。
再生時はバイナリをピーガー音に変換します。録音時はピーガー音をバイナリに変換します。変換はリアルタイムで行われるので、途中でWAVファイルに変換する必要はありません。これにより、実機とエミュレータとの間で容易にファイルのやり取りができるようになります。
接続方法は以下のとおりです。
・PC-6001mkII CMTIN←プレイヤーOUT
・PC-6001mkII CMTOUT→プレイヤーIN
・PC-6001mkII REMOTE→プレイヤーREMOTE
リモート端子はデータレコーダを制御するための端子です。リモート端子がオフの状態ではプレイヤーは停止します。オンの状態では再生します。市販のゲームはこのリモート端子を使って、複数のファイルを分割ロードします。
モードは3つあります。トップメニューではUP/DWボタンでモードを切り替えて、PLAYボタンで決定します。
・PLAYモードではUP/DWボタンでファイルを選択して、PLAYボタンで再生します。STOPボタンで再生の中断が可能です。
・REMOTE PLAYモードではUP/DWボタンでファイルを選択するだけです。PC-6001mkIIのリモート端子がオンになると、再生を開始します。再生中にリモート端子がオフになると一時停止です。STOPボタンで再生の中断が可能です。
CLOADコマンドが終了しない、または「TR Error」が出る場合にはVR1を調整してください。
・RECモードではUP/DWボタンでファイル番号(0~65535の範囲)で選択します。PLAYボタンを押すと録音開始です。STOPボタンで録音を終了します。録音したファイル名は「SAV00000~65535.CAS」になります。
ATmega328Pには書き込み装置を使ってArduinoのブートローダーを書き込みます。
テープをバイナリファイル化
テープからバイナリファイルを作成する例です。データレコーダでテープを再生して、ライン入力付きのMP3プレイヤーで録音しています。WAVファイル化して、CASまたはP6ファイルに変換します。
https://github.com/nicotakuya/hsp_tapetool
いくつかコツがあります。音が割れる場合にはデータレコーダの出力に抵抗を入れること、音の振幅をきちんと-127~+127まで使い切っていること、音の位相がプラス側から始まっていること、22kHzより44kHzのほうが成功率が高いことなどがあります。
分割ロードへの対応
分割してロードする場合には、バイナリファイル内のデータとデータの間に「0」を入れてください。
プレイヤーは「3.4秒のピー音」→「データ」→「1秒のピー音」→「データ」の順に送信します。
たとえば、TINY XEVIOUSの場合、実際のテープは次のような構成になっています。
・ピー音
・LOADER(データが21秒くらい)
・(3秒くらい無音)
・ピー音
・「C9」の羅列と「XEVIOUS」
・(3秒くらい無音)
・ピー音
・「9C」の羅列
・本編データ(データが3分弱)
最初に「LOADER」のロードが終わると、リモートがオフになって再生を中断します。この時、プレイヤー側が反応して止まるまでデータの「0」が必要になります。プログラムを実行すると、リモートがオンに戻って、再生を続行します。再開時はまた「ピー音3.4秒」「データ」「ピー音1秒」の順に再生します。
プログラム(Arduino IDE)