プチコン4からMSXパソコンへのプログラム転送

f:id:nicotakuya:20210906080511j:plain

プチコン4でピーガー音を鳴らす

プチコン4からMSXパソコンへのプログラム転送ソフトを作ってみました。CASファイル(カセットテープのイメージ)をリアルタイムでピーガー音に変換して鳴らしています。プチコン4にはPCM波形を作りながら再生できるという便利な機能があるので、それを活用しています。

公開キーは「4KK4QS3Q4」です。題名は「PIGA」です。

Nintendo Switchのヘッドホン端子とMSXパソコンのデータレコーダ用の入力端子をケーブルで接続して、プログラムを実行します。MSXパソコン側は「CLOAD」コマンドを実行します。

 

f:id:nicotakuya:20210906080556j:plain

プチコン4の画面。送信中の様子

プチコン4側は送信したいCASファイルを格納しておきます。PC-6001MSXに対応しています。ヘッダを見て、PC-6001MSXかを勝手に判断して、送信方法を決めています。

このソフト、今のところまったく使い道がありません。Nintendo SwitchにCASファイルを入れる手間が増えるだけです。

(2021/09/07追記)

PC-8001の実機で確認していませんが、CMTファイルにも対応してみました。これでPC-8001エミュレータから外部へファイルを持ち出せるかもしれません。

あと、イメージファイル内に複数のファイルが混ざっている場合(00が10回連続している場合)、送信をいったんストップするようにしました。ボタンを押すと送信を再開します。

FRAM搭載カートリッジの話

突然ですが、世の中には「FRAM」を搭載したカートリッジというものがあります。電池不要で電源を切ってもセーブデータが消えない。書き込み速度が速い。フラッシュメモリのようにページ単位で消す必要もない。

という、理想的な記録メモリがFRAMです。欠点を挙げるとすると、値段が割高であることと、入手性があまり良くないこと、大容量に対応できないことでしょうか。

FRAMは珍しいものではなくて、2003年ごろからゲームに採用されています。それ以降のゲームボーイアドバンス用のカートリッジにはFRAMが搭載されている可能性があります。

 

f:id:nicotakuya:20210905011544j:plain

SRAMのバックアップ

それよりも古いゲームの場合、セーブデータをSRAMに記録するのが主流でした。ファミコンスーパーファミコンゲームボーイの時代にはSRAMを搭載したカートリッジが大量に作られました。上の写真はスーファミ用の「マリオペイント」です。たった32KBの中にユーザーの描いた画像を記録していました。

SRAMは記録の保持に電池が必要です。この手のカートリッジはリチウム電池を使っているので、数十年は持ちます。しかし、いつかセーブデータが消えるんじゃないかという不安感は残ります。

 

f:id:nicotakuya:20210904031035j:plain

FRAM搭載カートリッジ(メルカリにて)

ネットを検索すると、SRAMFRAMに交換した改造カートリッジが販売されています。値段も2000円弱から始まっていてお手頃です。

f:id:nicotakuya:20210904225229p:plain

FRAMが見えない!?

ただ、写真を見て、なにか変だな、と思ったのですが、FRAMが見えません。わざとらしく、シェルを重ねて、FRAMを隠しています。

なぜ、隠すのか? というと、FRAMの型番を知られたくないから。なぜ、型番を知られると困るのか、、、わかりません。これは深く追求しないでおきます。

 

f:id:nicotakuya:20210904031234j:plain

一個700円くらい

ちなみにFRAMをまともな方法で買おうとすると、最安値が700円くらい(1個単位の場合)。ショップの最有力候補はDigi-Keyですね。こういうのが、秋葉原で手軽に買える環境になって欲しいです。

 

f:id:nicotakuya:20210905191527p:plain

AliExpressでFRAMを検索

AliExpressで「FM16W08」で検索すると、たくさんヒットします。値段は200円くらいで、相場の三分の一以下。本当にFRAMなのかと疑うくらいの安さです。よく見ると、メーカーの表記が無かったり、塗りつぶしてたり、怪しすぎです。

秋月で売ってるABS樹脂ケース

f:id:nicotakuya:20210902000031j:plain

ABS樹脂ケース

「ABS樹脂ケース(蝶番式・中薄型) 112-TSS」(写真左)を買うつもりが、間違って「ABS樹脂ケース(蝶番式・中) 112-TS」(写真右)を買ってしまいました。最近は通販が主体になっているので、こういうミスをしてしまいます。型番が1文字違うだけなので、さらに間違えやすい。

ちなみに左が130円で、右が120円。大きいほうが10円安い。秋月で売ってます。

このABS製のケースは透明度が高くて、傷が付きにくくて、おまけに安くて、オススメです。これ使ったら、もうスチロール製のケースには戻れません。

 

f:id:nicotakuya:20210819155736j:plain

ファミコンのカートリッジを入れる

間違えて買ったケースを何かに使いたいと思ったので、ファミコンのカートリッジを入れてみました。

ほぼサイズがピッタリです。しかし、厚みに数ミリの余裕があるので、振るとカラカラしてしまいます。同様にメガドライブMSXのカートリッジもほぼピッタリでした。スーパーファミコンのカートリッジは全く入りません。

 

f:id:nicotakuya:20210819160035j:plain

カセットビジョンのカートリッジを入れる

カセットビジョンのカートリッジを入れてみました。これはカートリッジに厚みがあるので全方向にピッタリでした。「カセットビジョン専用ケースです」と言われたら信じそうなくらいの出来の良さ。純正品のケースが割れてしまったら、コレに取り替えたらいいと思います。

 

f:id:nicotakuya:20210819155847j:plain

オーディオテープのケースを入れる

最後にオーディオテープのケースを入れてみました。厚みが余りますが、ピッタリですね。ケースにケースを入れても意味ないですが。

このケース、万能じゃないかと驚いてしまったのですが、よくよく考えると、ファミコンカセットビジョンもこのオーディオテープを参考に寸法を割り出したんじゃないでしょうか。それなら、サイズが合う現象にも合点がいきます。

スマホからMSXパソコンへプログラム転送実験

f:id:nicotakuya:20210901185653j:plain

スマホをデータレコーダがわりに使う

スマホからピーガー音を鳴らして、MSXパソコンで受信してみました。

手順としてはパソコン側で「CLOAD」を実行して、スマホ側でWAVファイルを再生しますスマホ以外でも、WAVファイルを再生できるものなら何でもOKです。これ自体はよくあるネタなので、珍しいものではありません。

困ったことに、カシオ製のMSXパソコンはデータレコーダを本体に直結することができず、「FA-32」という周辺機器を途中に接続しないといけません。駿河屋で検索したところ、中古品が5600円でした。これは高すぎる。FA-32については、こちらのページに分解写真が載ってます。

Casio FA-32 - MSX Wiki

、、、ゴツい見た目に反して、FA-32の中はオペアンプとリレーとトランジスタが入ってるだけです。今回はリモート端子を使わないので、リレーとトランジスタは不要です。

結局、オペアンプさえあれば同等のものが作れるということになります。

 

f:id:nicotakuya:20210901214505p:plain

MT I/F ピンアサイ

分解写真を元にMT I/F コネクタのピンアサインを推測してみました。この仕様って、カシオのオリジナルでしょうか? MTがなんの略かわかりません。Music Tape?

コネクタの形状はMIDIと一緒なのでピン番号の数え方もMIDIに合わせてみました。

f:id:nicotakuya:20210901214211p:plain

アンプの回路

パソコン側の入力電圧の範囲を0~5Vと仮定して、オペアンプで波形を単純に増幅してみました。音の振幅を大きくしているだけです。いいかげんに考えた回路なので、自信がありません。

 

f:id:nicotakuya:20210901190005j:plain

アンプ

出来上がった回路がこちら。DIN5pinプラグは秋月で80円で買いました。プラグはMIDIケーブルを切断しても作れると思います。オペアンプは40円で売ってます。

 

f:id:nicotakuya:20210901185532p:plain

casファイルからWAVファイルに変換

CASファイルからWAVファイルに変換するツールを自作してみました。CASファイルというのは、カセットテープのイメージファイルのことです 。以前、PC-6001用に作ったものにMSXの機能を付け足しました。WAVからCASへの変換にも対応しています。

変換ツールはこちらで公開中です。「tape tool」と名付けました。

https://github.com/nicotakuya/hsp_tapetool

 

f:id:nicotakuya:20210901190210p:plain

CASファイルのデータ構造

CASファイル(BASICプログラムの場合)の仕様を図解するとこんな感じです。TINY野郎さんの「なんでもピーガーmkII」を参考にしました。CASファイルはPC-6001用とMSX用で微妙に仕様が違っています。

CASファイルをWAVファイル化できるようになれば、MSX用のエミュレータで作ったBASICプログラムを実機に持ち込めるようになります。プログラム作りの効率化に役立てることができます。

 

セブンカフェ

f:id:nicotakuya:20210830044902j:plain

間違って、カフェラテ容器にアイスコーヒーを入れてしまう

セブンカフェでアイスカフェラテを買ったのですが、間違ってアイスコーヒーを入れてしまいました。実質70円くらいの損ですけど、精神的にその10倍くらい損した気分になる。なんだ、この無駄な不幸感。

カップをセットしてボタンを押すだけの簡単オペレーションのはずですが、、、

自分は致命的にもラテ用じゃないほうに置いてしまいましたけど、これ、センサーでミスを検出してくれないんでしょうか。「ラテはこっちにセットしてください」のシールは初見だと気が付きにくい。ボタンを押した瞬間、すぐ間違いに気付いたのですが、抽出し終わるまで止まらない。キャンセルとかないのか。

あと、ボタンはRとLとホットとコールド、コーヒーとラテの組み合わせで8個あって押し間違いやすい。デザイン性を優先してるんだと思いますが、見た目が抽象的すぎます。液晶パネルでなにか補助的な情報を出せないのか。現代人が日々これを使いこなしてることに驚き。

帰りにスーパーでコーヒー牛乳買って飲みました。