見出し画像

MSXマガジンのゲームもAIで読み取る

これまでPasocomMini PC-8801mkIISRで遊びたいゲームをマイコン雑誌から読み取ってきました。かなりの数のゲームがそろってきたので、今度はPC-8801以外の機種のゲームでも遊んでみたくなりました。

せっかく無料で閲覧できるMSXマガジンがあるので、ここからゲームの読み取りを行ってみることにします。

個人的にはMSX実機のBIOSがあるのでOpenMSXなどでゲームを動かしてもいいのですが、WebMSXならMSX~TurboRまでのエミュレータが動くので今回はこちらで遊びます。


それではMSXマガジンからゲームを読み取っていきましょう。

まずは1985年7月号のEARTH TREKから。これはもともと1981年4月号のASCIIのパロディ版「AhSKII !」に掲載されていたものの移植版です。オリジナルは「最密充填リスト」という一つのカラムで上下両方から印刷されたリスト(しかも横に印刷)で読み取りは無理と思いあきらめていました。

MSXマガジンでは、まともなリストになっていたので読み取ります。オールBASICで549行あります。1985年9月号にデバッグ情報があるので、こちらも適用する必要があります。

アカシックライブラリーのMSXマガジンは閲覧はできてもダウンロードは出来ません。そこでプログラムリストは画面キャプチャーで取得します。

Windowsの解像度を最大に上げ(今回は3840x2160にしました)プログラムリストを画面いっぱいに拡大してPrint Screenキーを押します。

原稿の状態があまりよくないのでGimpに読み込み、リストがまっすぐになるように微妙に回転させ、トリミング、グレースケール化、コントラスト、明るさの調整まで手動で行いました。

面倒ですが、少しでもAiの認識率を上げておくと後の修正箇所が減るので手抜きはしません。

すべてのリストをキャプチャー・加工したら前回同様GeminiとGrokに読み取ってもらいます。DumpListEditorでの作業は対象機種をMSXにする以外はこれまでと一緒です。

TextDiffでの差分チェックの結果、カナ文字の間違い以外の修正は数個しかありませんでした。

DumpListEditorでフロッピーイメージにしてWebMSXに読み込ませると自動起動します。

エラーはまったく出ませんでした。懐かしのスタートレックゲームのパロディで、内容は「エンタープライズ出版社」の編集者が時間内に都内で原稿を集めてくるというものです。


続いては1985年9月号のPIYOです。

敵をよけながら鍵をとって扉から出るゲームですが、いろいろ仕掛けがあって楽しそうなので選んでみました。オールBASICで373行あります。読み取りは上記と一緒でGeminiとGrokです。リスト後半に大量のDATA文があるので修正位置を特定するのが大変でした。

最終的にフロッピーイメージにして起動してみるとエラーも出ず、ちゃんと遊べました。


もうひとつオールBASICのゲームを。1987年10月号のPUT UPです。

敵をよけながらゴールに向かうゲームです。273行のプログラムで、こちらも後半に大量のDATA文があるので少し面倒です。

差分チェック後、フロッピーイメージにしてWebMSXで起動すると問題なく動作しました。


次は1988年4月号のLegionです。

縦スクロールタイプのシューティングゲームです。オールマシン語で、メモリアドレス8800~CF7Fとなる17KBの大作です。

最初の1カラムでテストしたらGeminiが完璧に読み取ってくれたので、こちらを使います。大変ですがダンプリストを1カラムごとに切り取り、画質の調整を行いました。読み取り後にDumpListEditorで修正し、フロッピーイメージ化してWebMSXにロードすると問題なく起動しました。

ただし、MSXマシンをMSX2以上にしないとアルファベットが表示されませんでした。

また、DumpListEditorが出力したフロッピーイメージでは、マシン語プログラムが自動起動できないのでフロッピーの中にあるAUTOEXEC.BASを以下のように書き換えてセーブしておきます。

セーブ後にフロッピーイメージをダウンロードしておかないと修正内容が消えてしまいます。WebMSXのメニュー「Save Disk Image」を選びます。

以後はダウンロードしたフロッピーイメージを使えばゲームが自動起動してきます。


最後は1988年5月号のADONISです。

今度は横スクロールタイプのシューティングゲームです。これもオールマシン語で、メモリアドレス8800~D16Fでサイズ18KBの超大作です。

こちらのリストもGeminiで読み取りました。フロッピーイメージもLegionと同様に自動起動にしました。



今回、BASICの読み取りは全てメインにGemini、チェックにGrokを使い、マシン語はどれもGeminiを使いました。

BASICに関してGeminiとGrokに優劣はないのですが、Grokは一日の利用回数(数なのか?)に制限があるので、無制限に使えるGeminiをメインにしただけです。(有料にすればいいのですが、個人的には無料で使うというのが基本方針です)

マシン語に関しては、明らかにGeminiの方が優れていました。ただしアスキー形式のダンプリストなどの行方向だけのチェックサムでは検出できない変換ミスを起こすことがあるので、トラブル発生時のGrokによるサポートは切り離せません。

一つのリストを複数のAiに読ませるのは二度手間で面倒な感じはありますが、これによるチェック作業削減の恩恵の方がはるかに大きいので、当面はこのやり方を続けていくことになりそうです。


いいなと思ったら応援しよう!