ラリーXに音楽をつけるの巻(DumpListEditor その4)

→  ダンプリスト入力
→  昔のテープからのゲーム取り出し
→  PasocomMiniで音楽を楽しむ(New!!)
→  ラリーXに音楽をつけるの巻(New!!)
→  ゲーム改造
→  E-mail















Yahoo!ジオシティーズ
→ Home    → Emulator    → AutoStart    → Software    → Download    → Link

目次

 

ラリーXに音楽をつける

PUCKMANに音楽をつける

ICE WORLD 2に音楽をつける(New!!)

BASICからのPCG音楽プレイヤ機能の呼び出し方法

マシン語からのPCG音楽プレイヤ機能の呼び出し方法

謝辞

   

ラリーXに音楽をつける

 

 PasocomMiniのPCGを使った音楽プレイヤを作ってみた所、なかなか良い感じの音楽動画はこちら)ができたので、当時やりまくっていたラリーX(を真似たゲーム)を改造して音楽プレイヤーの曲を鳴らしてみました。BGMは若干テンポが変動しますが、とても良い感じだったので、公開しておきます。

 

動画で、2面目以降は時間短縮のため改造パッチ(アクセル機能)を使っています。

 

ダウンロードはこちら

Rally-X BGM改造セット(3/20版:bugを修正しました。ハイスコア曲追加済。)

 

DumpListEditorのダウンロードはこちらから

 

【使い方】

ダウンロードしたrallyx_bgm.zipを展開すると、rallyx_bgm.cmtが出てきます。これをDumpListEditor(のボタンが並んでいる所)にDropして下さい。BINファイルが4つ出てきます。

次に、いつも遊んでいるラリーXのcmtをDropして下さい。C500から始まるBINファイルが出てくると思います。それ以外のファイルは不要なので削除して下さい。

ファイルが全部で5つ並ぶと思います。EA68-EAE1.BINはオートスタートファイルなので、これを一番先頭にして下さい。残りの順番はどうでも良いです

 

この状態で、[cmt書出し]ボタンを押して、cmtファイルを作成して下さい(ファイル指定時に拡張子を.wavに変更すれば、実機用のwavファイルが作成できます)。

作成したcmtファイルを実行すれば音楽付でラリーXが遊べます。MON+Lでオートスタートです。音を出すにはPCG8100やPSAと繋いだPC-8001か、PasomMiniなどのPCG8100に対応したエミュレータが必要です。

 

【ラリーX自体の入手方法について】

ラリーXのテープが残っている人は、cmtファイルに変換できます。やり方は→こちら

テープも無くなっちゃった人は、国や県の図書館でコピーサービスを申し込めば楽です。コピーして郵送してくれます。OCRを使うことでダンプリスト入力は楽になっていますので、ぜひ入力してみて下さい→こちら

 

【改造対応について】

改造(アクセル・ブレーキ対応)したラリーXもそのまま使えます。アクセル(SHIFT)を押した時には、曲のテンポも速くなるように調整しています。

 

(2020/03/15追記)PCGをONにするとFUEL表示にゴミが出るのですが、出ないものに差し替えておきました(PCGのキャラクタを設定してからラリーX本体を起動します)。

(2020/03/20追記)ちくらっぺさんがハイスコア画面を作られたようなので、ハイスコア曲を入れておきます(曲だけ)。ちくらっぺさんのpatchが必要です。

 

◆◆◆◆◆◆

(2020/04/11追記)ちくらっぺさんがさらなる改良をしてくれました(bugも直ってる!?)。最新版のダウンロードはちくらっぺさんのGitHubからお願いします。

◆◆◆◆◆◆

 

 

PUCKMANに音楽をつける

 

 PACMANの音楽をMML化しました。効果音については楽譜が無いため、波形の周期を計って音階に変換するなどとても大変でした(動画はこちら)。デモとして、当時やりまくっていたPUCKMAN(PACMANを真似たゲーム)を改造して音楽プレイヤーの曲を鳴らしてみましたので、公開します。

 

 

もともとBEEPを使ったすばらしい効果音がついていましたが、PCG3音を使うことで、雰囲気が変わります(うるさくなりますw)。PCG8100(PSA、GB-20、他)やPasocomMiniをお持ちの方はぜひお試し下さい。

 

ダウンロードはこちら

PUCKMAN BGM改造セット

 

PUCKMAN BGM改造セット ver.2(キャラクタデータ付)(2020/4/27New!!)→動画

 ちくらっぺさんから素晴らしいキャラクタデータをいただきました。

 ※PasocomMiniの方は、PCG8100をONにして下さい。

 

PUCKMAN BGM改造セット ver.3(BLINK対応)(2020/4/29New!!)

 ゲーム中はソフトウェアでBLINKさせ、死んだ時からハードBLINKに切り替えています。死んだ瞬間にパワーえさの右隣にモンスターがいると青になってしまうと思いますが仕様ですw。

 

PUCKMAN BGM改造セット ver.4(ドット白対応)(2020/5/3New!!)動画

 モ〜リンさんからドット白対応パッチをご提供いただきました。私の都合で、READY中はBLINKしなくなりましたが、仕様(演出)ですw。

 

PUCKMAN BGM改造セット ver.5(PCG8200、PCG8800対応)(2020/5/27New!!)

 PCG8100モードにするためにOUT3,8を自動で入力しただけです。機能は変わっていません。

 

DumpListEditorのダウンロードはこちらから

 

【使い方】

ダウンロードしたpuckman_bgm.zipを展開すると、puckman_bgm.cmtが出てきます。これをDumpListEditor(のボタンが並んでいる所)にDropして下さい。BINファイルが2つ出てきます。

次に、いつも遊んでいるPUCKMANのcmtをDropして下さい。BASファイルとD000から始まるBINファイルが出てくると思います。それ以外のファイルは不要なので削除して下さい。

ファイルが全部で4つ並ぶと思います。EA68-EADB.BINはオートスタートファイルなので、これを一番先頭にして下さい。

BASファイルは2番目にして下さい。ただし、ファイル名が「PUCK」以外の場合には、「PUCK」に書き換えて下さい(下図の説明を参照)。

 

この状態で、[cmt書出し]ボタンを押して、cmtファイルを作成して下さい(ファイル指定時に拡張子を.wavに変更すれば、実機用のwavファイルが作成できます)。

作成したcmtファイルを実行すればPCG効果音付でPUCKMANが遊べます。MON+Lでオートスタートです。音を出すにはPCG8100(PSA、GB-20)と繋いだPC-8001か、PasomMiniなどのPCG8100に対応したエミュレータが必要です。

#おまけでコーヒーブレイクのアニメを追加しておきました(1パターンのみ)。

 

【PUCKMAN自体の入手方法について】

PUCKMANのテープが残っている人は、cmtファイルに変換できます。やり方は→こちら

テープも無くなっちゃった人は、国や県の図書館でコピーサービスを申し込めば楽です。コピーして郵送してくれます。OCRを使うことでダンプリスト入力は楽になっていますので、ぜひ入力してみて下さい→こちら

※I/O 1981年4月号(p137-142)PC-8001発掘隊様情報

 

 

IceWorld2に音楽をつける

 

 PENGOの音楽をMML化しました。(動画はこちら)。ということで、勝手にBGMシリーズの第3弾です。当時やりまくっていた(割にはうまくならない)ICE WORLD 2(PENGOっぽいゲーム)を改造して音楽プレイヤーの曲を鳴らしてみましたので、公開します。

 

 

もともとBEEPを使ったすばらしい効果音がついていましたが、PCG3音を使うことで、雰囲気が変わります(音がうるさくなって、ゲームとしては難しくなりますw)。PCG8100(PSA、GB-20、他)やPasocomMiniをお持ちの方はぜひお試し下さい。

 

ダウンロードはこちら

IceWorld2 BGM改造セット

 

DumpListEditorのダウンロードはこちらから

 

【使い方】

ダウンロードしたIceWorld2_BGM.zipを展開すると、IceWorld2_BGM.cmtが出てきます。これをDumpListEditor(のボタンが並んでいる所)にDropして下さい。BINファイルが2つ出てきます。

次に、いつも遊んでいるIceWorld2のcmtをDropして下さい。BASファイルとB480から始まるBINファイルが出てくると思います。それ以外のファイルは不要なので削除して下さい。

ファイルが全部で4つ並ぶと思います。EA68-EADB.BINはオートスタートファイルなので、これを一番先頭にして下さい。

BASファイルは2番目にして下さい。また、ファイル名が「ICE2」以外の場合には、「ICE2」に書き換えて下さい(下図の説明を参照)。

 

この状態で、[cmt書出し]ボタンを押して、cmtファイルを作成して下さい(ファイル指定時に拡張子を.wavに変更すれば、実機用のwavファイルが作成できます)。

作成したcmtファイルを実行すればPCG効果音付でICE WORLD 2が遊べます。MON+Lでオートスタートです。音を出すにはPCG8100(PSA、GB-20)と繋いだPC-8001か、PasomMiniなどのPCG8100に対応したエミュレータが必要です。

#おまけでコーヒーブレイクのアニメを追加しておきました(1パターンのみ、テンポが安定しないのはご容赦)。

 

【ICE WORLD 2自体の入手方法について】

ICE WORLD 2のテープが残っている人は、cmtファイルに変換できます。やり方は→こちら

テープも無くなっちゃった人は、国や県の図書館でコピーサービスを申し込めば楽です。コピーして郵送してくれます。OCRを使うことでダンプリスト入力は楽になっていますので、ぜひ、入力してみて下さい→こちら

※I/O 1983年3月号(p269-274)、1983年5月号(deBUG,p173)

 

 

BASICからのPCG音楽プレイヤ機能の呼び出し方法

 

Ver0.22からDumpListEditorで作成したPCG音楽プレイヤが外から曲を鳴らせるようになりました。→こんな感じです。(前半が通常PLAY、後半がBASICからの呼び出し)

 

変換には、t88tool.exeが必要です。同梱されているt88tool.exeをDumpListEditor.exeと同じフォルダに置いて下さい。→DumpListEditorのダウンロードはこちらから

 

【BASICからの曲再生】

1.まずはMMLを使って、曲を作って下さい。→こちら

2.複数の曲をまとめる方法は→こちら

3.BASICプログラムとぶつからないように、「設定」「mml変換設定」のアドレスを8040からC000などに変更してから、cmtファイルを作成して下さい

4.作成したcmtファイルをDumpListEditorにDropすると、2つのマシン語が出てきます。(プレイヤーと音楽データ)

5.BASIC入力モードに切り替えてBASICプログラムを入力します。

6.ユーザー関数などで、下記の番地をコールすることで、音楽プレイヤーの機能が使えます。

    (例)音楽プレイヤーのアドレスをC000に設定した場合

      C010番地:1曲再生(引数は曲番号)   ESCキーで曲を終了します。

      C013番地:BGM再生用初期化(引数は曲番号)

      C016番地:BGM再生1Tick再生(引数は再生Tick回数)

      C019番地:PCG8100初期化(音止めにも使用可能)

      C01B番地:曲数取得(関数戻り値に曲数)

      C01F番地:設定するチャンネル数(デフォルト=3) 部分的な曲変更に

      C020番地:曲停止制御用アドレス(キャリーフラグのセットで曲終了)

    (使い方例)

      DEFUSR=&HC010:A=USR(2)   ←曲番号2(3曲目)を再生

7.[ファイル整理画面にPaste]ボタンで、ファイル整理画面に、BASIC.BASファイルを並べて下さい

8.マシン語ロード数を2に設定して、「設定」「cmtファイル設定」で、[自動生成]ボタンを押すと、MON+Lでのオートスタートが可能になります

9.[cmt書出し]ボタンで、cmtファイルを作成して下さい。

 

引数には、変数も使えますが、整数型(N%とか)を使って下さい

BGM再生時のテンポは、1Tick再生をコールする頻度で変わります。1秒間に50〜100回程度コールする必要がありますが、BASICだと厳しいと思います。その場合は、引数に繰り返し回数を指定して下さい。引数に10を指定すれば10倍速いテンポになります。

 

【サンプル1】

単純に曲を再生するサンプルです。→BASICプログラム、詰め合わせ

 

曲を終了させたい時には、ESCキーを押してから何かのキーを押して下さい。

 

【サンプル2】

0〜7のキーボードを押すことでプレイできます。→BASICプログラム、詰め合わせ動画

 

1Tick分の処理をするごとに、曲停止制御用アドレス(上の例では、C020)がコールされます。デフォルトでは(C9,00,00)=RETERN,NOP,NOPになっていますので、ここから任意のアドレスに飛ばして、キーチェックが可能です。キャリーフラグをセットしてからリターンすることで、ESC以外のキーでも再生を停止することが可能になります。サンプル2の詰め合わせに入っているkey_check.asmを参考にして下さい。

 

マシン語からのPCG音楽プレイヤ機能の呼び出し方法

 

Ver0.22からDumpListEditorで作成したPCG音楽プレイヤが外から曲を鳴らせるようになりました。

変換には、t88tool.exeが必要です。同梱されているt88tool.exeをDumpListEditor.exeと同じフォルダに置いて下さい。→DumpListEditorのダウンロードはこちらから

 

【マシン語ゲームからの曲再生】

1.まずはMMLを使って、曲を作って下さい。→こちら

2.複数の曲をまとめる方法は→こちら

3.ゲームプログラムとアドレスがぶつかる場合は、「設定」「mml変換設定」のアドレスを8040からC000などに変更してから、cmtファイルを作成して下さい

4.作成したcmtファイルをDumpListEditorにDropすると、2つのマシン語が出てきます。(プレイヤーと音楽データ)

5.ゲームプログラムを改造して、下記の番地をコールするようにすることで、音楽プレイヤーの機能が使えます。

    (例)音楽プレイヤーのアドレスをC000に設定した場合

      C010番地:1曲再生(引数は曲番号)   ESCキーで曲を終了します。

      C013番地:BGM再生用初期化(引数は曲番号)

      C016番地:BGM再生1Tick再生(引数は再生Tick数)

      C019番地:PCG8100初期化(音止めにも使用可能)

      C01B番地:曲数取得(関数戻り値に曲数)

      C01F番地:設定するチャンネル数(デフォルト=3) 部分的な曲変更に

      C020番地:曲停止制御用アドレス(キャリーフラグのセットで曲終了)

    (使い方例)

      BASICの時と同じやり方((HL)に引数の値)になるようにして下さい。

        LD HL,0FFFFH    ←適当なワークエリア

        LD (HL),2      ←曲番号2(3曲目)を指定

        CALL 0C010H     ←1曲再生

6.ファイル整理画面に、改造したゲームのBINファイルもしくは、元ゲームとゲームを改造するプログラムのBINファイルを置いて下さい。

7.実行アドレスとマシン語ロード数を設定してから、「設定」「cmtファイル設定」で、[自動生成]ボタンを押すと、MON+Lでのオートスタートが可能になります

8.[cmt書出し]ボタンで、cmtファイルを作成して下さい。

 

BGM再生時のテンポは、1Tick再生をコールする頻度で変わります。1秒間に50〜100回程度コールする必要がありますが、テンポが遅い場合は、引数に繰り返し回数を指定して下さい。引数に10を指定すれば10倍速いテンポになります。

 

【改造するアドレスのサーチ方法】

ゲームのBINファイルを指定して、[アセンブラ入力に送る]ボタンを押すと、逆アセンブル結果がアセンブラ入力画面に出力されます。

プログラムの頭から解析して行っても良いですが、CTRL-Fで検索パネルを出して、IN命令やOUT命令を検索すると、ヒントが見つかることが多いです。

 

 

逆アセンブル時にコメントが付くので、「BIT 7,A」でRETキーのチェックをしていることがすぐにわかります。ラリーXの改造ではここからオープニング再生ルーチンに飛ばしました。Rally-X BGM改造セットに入っているstart.asmなどを参考にして下さい。

 

 

謝辞

 

下記のツール/情報を使わせていただきました。いつもありがとうございます。

 

HAL 8999様(j80作成&公開、PC-8001発掘隊のラリーX掲載情報)

きらびぃ様(PCG音楽プレーヤーの再生動画公開、PUCKMAN動画公開、実験いろいろ)

久保ちゃん様(イメージ映像作成、PC-8001実機動作確認)

Enri様(PCG8100キャラクタ設定方法公開)

ちくらっぺ様(ラリーXパッチ改良公開、PUCKMANキャラデータ作成、実験いろいろ)

内藤時浩様(デュアルパッチ動作確認&不具合報告、PUCKMANブリンク提案)

モ〜リン様(PUCKMANドット白色化patch公開)

LinearDrive様(PENGOの神MMLデータ作成)