Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

MSX版「仮装大賞パネル」

【2022.2.22更新】 ver.2.01をリリースしました。

 巷によくある仮装大賞のパネルをMSXパソコンで再現しました。皆さんの、謎の努力と技術の結晶により作られた、謎のコンテンツ。

https://p.gigamix.jp/kasoutaisho/cg/kasoutaisho_title.png

ダウンロード

ソフト名MSX版「仮装大賞パネル」ver.2.01
ハードMSX2(VRAM 128KB)、MSX2+MSX turbo R
要:MSX-MUSIC及びその互換品、コナミのSCCカートリッジ及びその互換品
対応OSMSX-BASIC ver.2.0 以降
作者プログラミング・グラフィック:nf_ban(Gigamix)
BGMデータ作成:焼飯太郎、たかを、gary、らいきんぐ!
BGMデータ制作環境(MSXplay)提供:DSA
SEドライバ提供:鈴見咲君高
協力:ものすごく沢山
(敬称略)
リソース ディスクイメージ KASOU.DSK 2022.02.22, 737280 Bytes

バージョンアップ履歴

  • 2022.02.22:ver.2.01をリリース。らいきんぐ!さんのスタートSE最新版を実装しました。
  • 2022.02.14:ver.2をリリース。システム改良による処理速度の向上、らいきんぐ!さんのスタートSEを実装しました。
  • 2022.02.07:ver.1をリリース。

マニュアル

  • スペースキー または ジョイパッドのAボタン…1点ずつカウントします。15点以上で「合格」。15点未満の状態で4秒間カウントしないと「不合格」。上限は20点です。
  • ESCキー または ジョイパッドのBボタン…リセットします。

BGMデータが誕生するまで

 日本人なら誰でも一度は観ているかもしれない歴史のあるテレビ番組「欽ちゃん&香取慎吾の仮装大賞」の各種サウンドエフェクトを、よりによってMSXパソコンの3大メジャー音源(PSG・OPLL・SCC)を使ってどこまで実物に近づけるか?という識者の方々による謎のチャレンジプロジェクトtwitterMSXクラスタで発生していました。

 昔懐かしの技術「MML」で作曲されたBGMデータは当クラブでメンテナンスしているMSX用ミュージックドライバ「MGSDRV」で再生可能なデータ形式であり、MMLの制作・実行環境であるWebサイト「MSXplay」上で次々とシェアされてゆくBGMデータのクオリティが日に日に向上していくさまをリアルタイムで見ていたため、ワクワクしながら行く末を見守っていました。行き着く先には、何が待っているのか…

伝説の始まり

 伝説はここからはじまる。

 元マイクロキャビンの新田さんに話が振られる(新田さんは最近MSXFM音源を用いた音楽活動を再開していた)。

不合格ジングルの誕生

 焼飯太郎さんがMMLを書き始める。

 初版のデータがついに公開される。ここから怒涛の勢いで識者の皆さんがわいのわいの語り始める(追いきれませんので上のツイートでTLを見てください)。

 たかをさんが、鐘の音を作り始める。

 ここで二人の合作になる。

 斯くして「不合格ジングル」完成!実機で鳴る音とは思えないクオリティ!

合格ジングルの誕生

 「不合格」があるのなら、「合格」も欲しくなる機運が高まる。

 焼飯さん、けっきょく作り始める(笑)

 合格ジングルに含まれるボワボワ…という特徴的な音。garyさんが波形を測定し始める。

 ここで、3人の合作となる。

 ティンパニが追加。これが隠し味のように効いてくる。

 「合格ジングル」完成!こちらも凄い完成度!

スタートSEの誕生

 たかをさん、「スタートSE」を作り始める(笑)

 今回は音が複雑に入り組んでいて難儀なようです。

 ほぼ完璧な音が完成したと思ったら。

 おもむろに新素材が投入される。その音源はとてもクリア。

 素材の音質向上で見えなかった要素が見えるようになり、今までの根底が覆る。

 試行錯誤を経ていよいよ完成に近づいたと誰もが思っていたタイミングで。

 らいきんぐ!さんが飛び道具を出してくる。使用トラックが a から e までということは、OPLL 5音で再生している!?

 原曲とほとんど見分けが付かない驚愕のMML

 一同騒然とする中、俺(nf_ban)がver.2をリリースするに伴い、らいきんぐ!さんのデータを実装。

 他の実機でも動いた!

 WebMSXでも動きます(turbo R推奨)。

 スマホiPhoneAndroid)でも、いけます!

 らいきんぐ!さんによる、スタートSEの改良版、リリース。ver.2.01にて実装。

次のミッション!?

 俺、一旦釘を刺す。

 DMシステム2開発者・ごりぽんさんの飛び道具が飛んでくる(笑)。デバイスデバイスドライバが作られちゃったら対応せざるを得ない!

つづく

MSXplayというツールで複数人での共作が出来るのはすごい件

 この一連の流れは、MSXplayで作ったデータを皆でシェアして改善点を出し合うというインターネット(SNS)と再生環境(スマホ・PC)があればこそ実現したことであり、MSXの実機そしてMGSDRVが全盛だった1990年代のパソコン通信ではこのスピード感は到底出せなかったわけです。MSXであれ技術が常に進化していることを肌で実感しました。

 MSXplayのWebサイトはこちら。→ https://msxplay.com/

「仮装大賞パネル」をMSXで作ってみる

 おもちゃメーカーのタカラが2004年頃に「仮装大賞パネル」という玩具というか一種のパロディグッズを発売していました。動画を一通り確認したところで、これは「DMシステム2」を使えば早く実装できるんじゃないか?という算段がありました。

 もう、作る気マンマンで作業する日曜日ですね。

 現状揃ってる素材でロジックを組んだ状態を動画で仮公開。想像以上にハッタリ度が高い!というか元のMGSデータのクオリティが凄すぎて、MSXから出る音の時点でもう面白くて笑える状態。

 焼飯さんからカウント音の素材をいただく。SEの素材が揃ったので、SE用のMMLを書きはじめる…

ver.1 公開

 せっかくだからMSXの実機で動作する様子をスマホで撮ってツイートしました。

 BGMデータ制作スタッフの皆さんからの喜びのコメント。俺(nf_ban)が勝手に組み込んだだけなんですけどね…

 音と映像のミックスでこんなに面白コンテンツになろうとは。

 いやね、ホント、こっちが聞きたい。

 ホントこれです。これ。

 ファッ!?!?

カウント音のバグ発見と修正

 9点の音、A+(B-) ではなく A ではないかという。

 なんと、A が正解でした。デバッグしなきゃ!!(ver.2で修正しました)

お店で展示されていた

懐かしの「へぇボタン」ムーブメントを思い出した

 実は去る2000年初頭に「トリビアの泉」の「へぇボタン」をコンピュータで再現する謎のムーブメントがインターネットで発生していました。

www.dfnt.net

 実は俺(nf_ban)も当時MSX版「へぇボタン」を作ってこのお祭りに参加していたのですが、今回の勢いは、かなりそれに近かったです!

gigamix.hatenablog.com

 ついでにMSX用へぇボタンで仮装大賞パネルを操作するという暴挙。「へぇ」するたびに仮装大賞パネルで音が出てくる。リセットボタンで再起動。奇しくもどちらも20点満点。UIが同じ!

MSX版「仮装大賞パネル」制作の裏側

 なお、コンテンツ制作時に作成した各種素材データはディスクイメージの「MAKING」ディレクトリに保存してありますので、興味がある方はどうぞご確認ください。

ミドルウェア:DMシステム2

 MSX BASICに拡張命令を追加することでプログラミングしやすくなる、MSXパソコン用ミドルウェアです。今回は元々のBGMデータ(MSXplay=MGSDRV用楽曲データ)を再生するだけでなく、鈴見咲君高さんのSEドライバによる効果音発声、VDPマクロ機能によるパレットアニメーション・フェードイン処理、キー入力機能(DMM)、圧縮データの展開(BPE)、BSAVEヘッダの付かないバイナリデータを直接メモリへ転送するなど多方面に活躍し、開発期間を大幅に短縮できました。

ver.1 メモリマップ

アドレス サイズ 用途
0000 - 2FFF 12288 DMシステム2本体(その1)
3000 - 30FF 256 パレットアニメーション用データ(KASOU.PL5)
3100 - 317F 128 VDPマクロ用データ(KASOUMCR.BIN)
3300 - 37FF 1152 不合格ジングル(KASOU1.MGS)
3900 - 3EFF 1536 合格ジングル(KASOU2.MGS)
4000 - 7FFF 16384 DMシステム2本体(その2)
8000 - BFFF 16384 MSX BASIC用フリーエリア
C000 - FFFF 16384 MSXシステムが使用

 関連データは基本的にいわゆる裏RAMへ配置し、BASICフリーエリアの消費を抑えるようにしました。DMシステム2の場合、3000h~3FFFhまでの4KBに空きエリアがあります。

 ちなみにこれらのバイナリデータはすべてBSAVEヘッダが存在していませんので、通常のMSX BASICでこれらをメモリへロードすることはなかなか容易ではないはずです。DMシステム2には「CALL LOAD」というなんでもかんでもファイルをメモリへロードする拡張命令が用意されていますので、BSAVEヘッダの有無を問わず出来上がったファイルをそのまま利用できます。

 パレットアニメーション用パレットデータ(KASOU.PL5)は、VRAMのパレットテーブル(32 bytes)と同一形式のデータを8個つなげたもので、グラフサウルスと同じ仕様です。

今回はパレットデータが分離されているので、画像パーツデータ(KASOU.SR5)はSCREEN5の256×212pxのビットマップデータしか入っていません(グラフサウルスでKASOU.SR5+KASOU.PL5をロードすると真っ黒のみのパレットが反映されて画面がブラックアウトするので地獄を見ると思います)。

 VDPマクロというのは、 BASICの処理と並列して独自にVDP操作を行うDMシステム2の機能の一つです。今回は画面のフェードインと合格時にパネルのランプを回転点灯する処理(パレットアニメーション)に用いています。ランプの点灯はVDPマクロで実行し、BASIC上ではキー入力の待機をしています。

ver.2 メモリマップ

アドレス サイズ 用途
0000 - 2FFF 12288 DMシステム2本体(その1)
3000 - 3FFF 4096 スタートSE(START.MGS)
4000 - 7FFF 16384 DMシステム2本体(その2)
8000 - CAFF 19200 MSX BASIC用フリーエリア
CB00 - CEFF 1024 不合格ジングル(FAILURE.MGS)
CF00 - D3FF 1280 合格ジングル(PASS.MGS)
D400 - D7FF 128 VDPマクロデータ領域(KASOUMCR.BIN)
D480 - D5FF 384 パレットデータ領域(KASOUPLT.BIN)
D600 - D7FF 512 SE用データ領域(KASOUSE.BIN)
D800 - FFFF 10240 MSXシステムが使用
  • 皆さんおまちかね「スタートSE」を実装しました。らいきんぐ!さんの2月11日付けの内容を採用しました。
  • 裏RAMだけでデータを配置することが不可能となったため、「スタートSE」以外のデータはすべてメインRAMへ配置しました。
  • メモリ管理を再設計し、かつBASICフリーエリアを拡大しました。
  • 素材画像は使用する領域で2分割して、DMシステム2のデータ圧縮・展開機能「BPE(Byte Pair Encoding)」を採用しました。27KB程度のベタ画像データが3KB程度の圧縮画像になりました。
  • 合格時の演出であるランプの点灯速度(パレットアニメーション)を速めました。実は、実際はもっと速い。
  • スタート時に合格ラインのランプが点灯するアニメーションも追加したのですが、ドットが足りずによく見えません!つらい。
  • アニメーション一つ追加によりパレットデータも一つ追加となりグラフサウルスとの互換性が失われたので、ファイルの拡張子も「.PL5」から「.BIN(単なるバイナリーデータ扱い)」へ変更しました。

 DMシステム2はどなたでも無料でご利用いただけます。→ https://gigamix.jp/ds2/

BGMドライバ:MGSDRV

 1990年代のパソコン通信の頃に流行した、MSX用ミュージックドライバです。PSG・FM音源(OPLL)・SCCの3音源に対応し、多彩な音楽表現を可能としました。前述のDMシステム2にMGSDRV(サブセット版)が内蔵されていますので、MSXplayで作成したBGMデータを実機のBASIC環境上で再生することができます。

 今回これを作ろうと思ったのも、完成度の高いMGSDRV形式BGMデータがMSXplayでシェアされていたからに他なりません。

 なお、KASOU1・KASOU2それぞれ元のMML内にカウント音(と演奏までの待ち時間)も含まれていましたが当方で削除し、すぐに演奏する状態でリコンパイルしたMGSDRV形式データをコンテンツで用いています。オリジナルのデータは「MAKING」ディレクトリへ保存しました。

 MGSDRVはどなたでも無料でご利用いただけます。→ https://gigamix.jp/mgsdrv/

SEドライバ:DM2SZMKO(SE-SZMK)

 得点をカウントする度に鳴る効果音の発声処理にDMシステム2のSE機能を用いています。今回採用した鈴見咲君高さんのドライバは当クラブ製のものとは違いMMLで記述することができるので、手軽にSEを発声することができました。合計20個のSEをBASICプログラムのDATA文で定義しています。

 DM2SZMKO(SE-SZMK)は以下のURLで配布中です。→ https://hp.vector.co.jp/authors/VA011751/MSXHIKID.HTM

製品情報

  • 初出:2022年
  • 対応ハードウェア:MSX2(VRAM 128KB)、MSX2+MSX turbo R
  • メディア:2DDフロッピーディスク 1枚
  • コピーライト表記:DM-SYSTEM2 © Gigamix All rights reserved. MGSDRV © Ain./Gigamix