Gigamix Online

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

令和の時代、MSX用ゲームソフトのセーブデータをどこに作るべきか問題

 2020年?2021年?にMSXパソコン用の新作ゲームソフトをリリースするにあたり、ゲームのセーブデータをどこに保存するかのアンケートがtwitter上で行われていました。その反応が興味深かったので、まとめてみました。

https://p.gigamix.jp/devmsx/cg/savedata.png

 なんでそんなことで悩むんだよ(普通クラウドでオートセーブだろう)と最近の若者は思うでしょう。が、1983年に発売されたMSXを今でも利用する人だからこその悩みがそこにありました。

開発者の思い

アンケート

#MSX のゲームソフト(FD版)で「ゲームのデータを製品FDに書き込むのはやめてほしい」という人の割合が知りたいです。セーブデータの記録方法について、ぜひ皆さんの意見を聞かせてください。 — B-Cat Software (@BCatSoftware) 2020年12月15日

ゲームソフトの前提条件

  • 対応するハードはMSX2以上 → RAM64KB以上の環境が保証されていることが前提(MSX1は考慮しない)
  • 提供するメディアはフロッピーディスクFDD搭載機=DISK ROM BIOSMSX-DOSMSX Disk BASIC 含)の保有機種で動作する前提(FDDを搭載しない機種は考慮しない)
  • 2020年現在フロッピーディスクは生産が終了した → もはや貴重品と化したストレージメディアです。全世界的に品不足の状態

アンケートの結果

アンケートの最終結果が出ました。44%の回答者がPAC/FMPACへの保存を望んでいる事になります。なかなか興味深い結果になりました。 https://t.co/wMFbjXx31d pic.twitter.com/dsyv0o778I — B-Cat Software (@BCatSoftware) 2020年12月22日
 なんと、FMPACへのセーブデータ保存を望む人が一番多い結果に!

開発者の決断

MSXの場合、ゲームソフトのFD書き込みに関する落とし所はこんな感じなのかな。・FDのバックアップを強く推奨・PAC/FMPAC対応・FDへの保存は任意(手動)・可能ならパスワード形式を検討 — MA-X @ B-Cat Software (@max_2608) 2020年12月17日

我ながら汎用的に情報を整理できたと思う。 https://t.co/9nzXfetWYu — MA-X @ B-Cat Software (@max_2608) 2020年12月18日

主な手法とアピールポイント

製品のフロッピーディスクで保存

 昔はわだかまりなく製品のフロッピーディスクにゲームデータを保存したものでした。データ管理が一番簡単です。後述の「バックアップしたのち製品ディスクで保存」も含めると、この意見が多数でした。 昔の自分なら「全部」(ユーザディスク保存も含めて)だけど、どれかひとつなら製品ディスク保存かなあ。破損が怖いけど、作り手としてはゲームは遊んでなんぼで、コレクターのためのものじゃないと思ってるので。 https://t.co/ONsdM7RovL — まかべひろし (@sinpen) 2020年12月17日
ゲームディスクに書き込まれることとディスク入れ替えの手間を負うことどちらか選ぶなら、私は入れ替えくらいは許容しますが、現状ドライブ故障だけでなく、ディスクそのものが入手困難ですからゲームディスクに保存も仕方なしですかね😅 https://t.co/SsHtvcTY2r — HRA! (@thara1129) 2020年12月15日

派生:バックアップしたのち製品のフロッピーディスクで保存

 ヴィンテージ品と化したMSXではソフトウェアに「コレクション」「アーカイブ」の意味が込められるようになり、製品データを極力改変しない(製品にセーブデータを書き込まない)ことを望む人が現れ始めました。 MSXでも68でもそうですが、バックアップ取らずにマスターディスクで遊ぶのが怖いです・・・。68のイースもセーブディスクいらないと書いてるのは、ユーザーディスクの1枚がもったいないからだと思うのですが、さすがにマスターにセーブするのは怖いな。 https://t.co/OiG74kX5lo — redmax.ars (@redmax_ars) 2020年12月16日
個人的には、どちらかというと「製作者側の都合」で、極力FDにセーブ(書き込み前提の仕様で出荷)はしたく(させたく)ないですね。経験上、想定外な使い方をするユーザーが出てきて、本当は無関係なのに「バグでFATが壊れる?」というような状況に陥ると、サポートで体力を奪われますので・・・ https://t.co/zwo6ONv6zI — EXCEED. (@TransAmGTA92) 2020年12月16日
デュプリケートディスクを作るウィザードリィ方式が最強。(シングルドライブだって言ってんだろ!) https://t.co/KbE3NlG2mP — yasi001 (@yasi001) 2020年12月15日
書き込み許容派だけど可能ならノンプロテクトで自力バックアップが出来ると安心。違法コピー対策もあって難しいかもしれないけど…。セーブロード時にディスク入れ替えてアクセスするユーザーディスク方式という手も。まあユーザーディスク用の空きディスクの用意が厳しいけど…。 https://t.co/VTQbb5k1sT — ごりぽん (@goripon_tw) 2020年12月15日
バックアップが取れるのなら.dskで運用しちゃいますよね。するとゲームディスクに保存がデータの所在がバラけず一番確実かな^^; — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年12月15日
基本的に製品のディスクにセーブは書き込まないで欲しいよね。>RT ゲームの保存やっててほんと悩ましいところ。セーブデータ解析してオリジナルに戻すことは不可能ではないかもだけどオリジナル性は喪失されてるって感じるよ。 — めーちゃん (@rikyou_moe) 2020年12月15日
ディスクのバックアップ(コピー)が取れるのなら、ゲームディスクに書き込むのが手間いらずなんですけどねぇ・・・ — イノウマ (@inouma1) 2020年12月15日
バックアップを取ってバックアップディスクでプレイするので、データを書き込んでも問題なしと考えてます! — み(ゲーム・将棋・MSX) (@marumi) 2020年12月15日

 バックアップが取りやすい=複製しやすい。つまり、製品をリリースしてもコピーされ、インターネットに流出しやすくなります。開発側がそれを望まない・懸念を感じるのは至極当然のことです。 私も、コストや工期を考えるとメディアはFDで購入者にバックアップを促すよう取説に記載しようと思っています。コピーそのものよりもネットにディスクイメージを流される方が痛いですね。既にCELIA for X68000で被害に遭いましたので。 — MA-X @ B-Cat Software (@max_2608) 2020年12月17日

自分で用意したブランクディスク

 新しいブランクディスクにセーブすると、製品自体にデータ改変は起きませんがディスクの交換作業が発生します。 製品FDじゃなくてブランクFDに書き込むやつがよかった(過去形) https://t.co/upcfYJuQXl — やまかわ aka やんま ま (@yamma_ma) 2020年12月15日
製品ディスクは故障が怖いしディスクの差し替えは不便だし、PACは持ってないし、パスワードは間違える。テープは巻き戻さにゃならん。今考えと恐ろしく不便だが、楽しかった。ありがとう。 — げーにん (@geinin) 2020年12月16日
ああ、MSXって1ドライブの機種が殆どだもんなあ。個人的にはゲームディスクはライトプロテクトしときたい。ブート機能の無いゲームディスク作成する方式がいいかな。ただ、これは複数ディスクゲーがダメ。 https://t.co/oWAO4SMzuf — ゆっち(偽) via NNK (@nnk_osn) 2020年12月16日
フロッピーディスクを買ったら「すぐ全部フォーマットしておく」というMSXしぐさがあります。これはアプリ内からフォーマットが(ほぼ)できないというMSXの作りに関係しています。事前フォーマットしてないと、ゲーム等でユーザーディスクがなくなってセーブできなくて詰むのです…。 — MSX研究所長 (@yoshimatsuTUQ) 2020年12月13日

 MSXは基本的に1ドライブでの運用が前提なので、ディスクの交換作業回数は他の機種より多めです。これによって古くなったFDDで経年劣化による部材の故障や破損のリスクが発生します。 そういう作りだったんですけど、それはMSXの部材が市場に出回っていた時代だからこそ実現できた酷使っぷりで、2020年の今はディスク入れ替えを多用すると経年劣化で部材が壊れて使用不能になるリスクが高まっちゃうんですよね…つらい。 — Takashi Kobayashi (@nf_ban) 2020年12月17日

派生:ユーザーディスクを作成、ゲーム起動後はそのディスクで保存

 製品とデータの分離を考慮した折衷案。ゲーム起動は製品ディスクで行い、以後ユーザーディスクでプレイしデータ保存する手法。ディスク交換は1回で済みます。 ユーザーディスクを用意するタイプが安心かも。 — 反動 (@FF14_hando) 2020年12月15日
そのアンケ、初回にユーザーディスク作成でいいのになぁ…と思ってみてました。新規ゲームを選択するとブランクディスクにゲームデータをコピーしてセーブもそれに書く方式。起動時だけ製品ディスク(プロテクトあり)入れて、ユーザーディスクに入れ替えたらもう入れ替えは不要。 — EmiCharLounge (@EmiCharLounge) 2020年12月18日

 初回のディスク作成に時間を要するのがネック。ティル・ナ・ノーグより速いとは思うけど…

PAC(Pana Amusement Cartridge)/FMPAC

 PACは松下電器が発売した汎用のバッテリーバックアップカートリッジで、FM音源付きのFMPACは当時のログイン誌(パソコン業界の雑誌)の売上トップ10にもランクインされるなど販売数が多かった製品です。 次回作はPACのセーブ方式を検討しておこう。 https://t.co/09NLPHmzr6 — むらかたとうじ/村方凍二 (@ipheion78) 2020年12月17日
フロッピーディスクのゲームでPAC必須というのはない(ありえない)。ROMのゲームでセーブ先がPACかテープか、というのはいくつかあるが、だいたいのゲームはセーブ用SRAMを内蔵していて、PAC要求タイトルは非常に少ない。ほぼ唯一がハイドライド3なのだ。(あとキャビンADVのROMもあるにはある) — MSX研究所長 (@yoshimatsuTUQ) 2020年12月17日
必須とまでは言いませんが、テクノソフトのフィードバックは PAC があると進んだステージが随時保存されてゲームオーバーになってもコンティニュー可ですが、無いと最初からやり直しなので2周クリアするのが大変でした — tyr105店員 (@tyr105) 2020年12月17日
MSX版ハイドライドⅡはSRAM内蔵だったがハイドライド3はPAC or テープセーブでSRAM非搭載の理由として考えられるのは・4MbitROMを採用してコスト高・PanasonicとT&ESOFTの付き合いからPACを採用したあたりかな https://t.co/fy93DBb0CO — 610 (@shimako_610) 2020年12月17日

 MSX・FANの投稿プログラム「LAST WAR」もPACに対応できる程度に、実装は難しくない様子。 「拡張カートリッジSRAMへのセーブ」普通のMSXには二次記憶装置がないためプログラムやゲームデータの保存にはカセットテープが使われたが、松下が発売していたPAC/FM-PACには1KB×8の記憶領域があり、投稿プラグラムでこれを使うハックが流行りかけていた。一瞬でセーブ/ロードができるので便利なのだ pic.twitter.com/qKBlRVzhPo — 草薙 昭彦 (@nagix) 2019年2月24日

 ただ、PACのデータ管理は杜撰なイメージがあります。規格なんだけど自由、みたいな。セキュリティのセの字も無い。 MSXのPACって管理領域がなくて、何をセーブしてるんだか全く分からないのが痛い。FM-PACでバックアップは取れるけど、意味のあるデータが入ってるかどうかすら全く分からない。キャビンのゲーム間では判別してくれたりするが…(幻影都市からXakとか) — MSX研究所長 (@yoshimatsuTUQ) 2020年12月17日

 PACをアクセスできるアプリはいくつか存在します。

 拙作DMシステム2でもPACへのアクセス機能があります。

パスワード出力(ふっかつのじゅもんメソッド)

 昔は苦行だった写経作業も、今はスマートフォンという便利なアイテムがあるので書き写しミスが解消されます!入力が面倒なだけ! パスワード記録が簡単な時代になって良かった https://t.co/IDJBL3wnBc — りあるあるぱか (@giw) 2020年12月17日
超絶長い復活のじゅも・・・ — 焦がしエクレア (@SearEclair) 2020年12月16日
保存は今ならケータイのカメラがあるので書き写し間違いは無さそう。 — 超兄貴〜MSX2021〜 (@SuperAniki_MSX) 2020年12月16日
すべてのユーザーがPAC / FM-PACを所有しているわけではありません。 それに加えて、フロッピーディスクドライブは多くの場合壊れています。 パスワードが最も便利な方法だと思います。 — MSX Resource Center (@msxorg_es) 2020年12月15日

カセットテープ(データレコーダー)

 カセットテープ自体はまだメディアとして現存していますが、CMTケーブルの所有者が今は少なめということが課題。また、turbo Rでは廃止された機能です(PCMのマイク入力はありますが…)。 MSXのセーブ媒体はテープ一択やろ(嘘 — きんのじ (@v9938) 2020年12月15日
MSX側にマイクが標準だったら、マイクとスピーカでデータレコーダーも良かった — りあるあるぱか (@giw) 2020年12月17日
やはり今もも手に入る、いにしえのカセットテープ最強説(笑)(turboRは無理ですが)まとまった数を作るならマッパメモリ付きNextorSDカートリッジが1万で何とかなるのかも。 — 超兄貴〜MSX2021〜 (@SuperAniki_MSX) 2020年12月17日
ハイドライド3もテープにセーブできますよね?(補足説明書が無いとやり方がまず分からないけど)。VSハイドライド3はFDソフトでありながらPACが絶対必要ですが(汗)。 — けものびと (@jyu_jin) 2020年12月17日
turboRはMSX1より売れなかったことからも明白!まさかテープのほうが入手性が良いといわれる時代がくるとは思わないよね・・・データレコーダ本体のほうがアレだけど。ラジカセ使うならケーブルもか — しんさん (@shinsan68k) 2020年12月18日

 カセットテープのピーガー音をスマートフォンで録音・再生するソリューションは存在します。MSX2CAS です。 play.google.com

QRコード

 スマホの併用が前提なら、パスワードよりもQRコードのほうが出力できるデータ量は増えます。 いっそQRコードで表示(笑)。 — ごりぽん (@goripon_tw) 2020年12月16日

 MSX実機上でQRコードを生成するプログラムコードは、実在します。 gigamix.hatenablog.com

 でも、QRで出力したゲームデータをどうやってゲーム本体に戻すのか。 いや、セーブデータ。ゲームに戻すときにMSX側にカメラが必要だ!カメラカートリッジ(デジタイザとも言う)の製造を急ぎましょう! — Takashi Kobayashi (@nf_ban) 2020年12月17日

複数対応・全対応

 遊ぶ側からしてみれば、そりゃあできることなら複数に対応していただくのが有り難いのです。 贅沢を言えば、PAC, ディスク, パスワードの選択式なら安心私はPAC/FMPAC持ってるのでPACのが楽ですが、持ってない人も多いでしょうから。スマホでスクリーンショットとるのも容易な時代なのでパスワードも昔ほど不便じゃないですよね。 — HRA! (@thara1129) 2020年12月15日
ベストは選択式かも知れません。PACもどのセーブスロットを使うのかという問題があってちょっと大変な側面はありそうですね。ただ、ディスクセーブの場合でも個人的には困らなかったりします。昔から(可能なソフトは)起動してからバックアップに入れ替えて遊んでいました。CanCanバニーとか。 — うにスキー (@uniskie) 2020年12月15日
どれにするか迷ったら「全部」w — 後藤 浩昭 / GORRY (@gorry5) 2020年12月16日
 開発側のやる気次第なところは、あります。

その他

 コナミの10倍カートリッジで保存しよう案 「コナミの新10倍カートリッジ」のSRAMって、仕様公開されてないんだっけ? — チョンタロー (@Chontaroh) 2020年12月16日

 新しいデバイスをつけちゃおう案 msxのセーブ媒体ならコントローラー端子にsdカード直結でええんではもしくはシリアルケーブル — applesorce (@applesorce) 2020年12月16日

 ダウンロード販売のみに割り切ろう案 TLで見かけたMSXにおけるセーブ問題実ディスへの書き込みが嫌なのって凄くわかりますかといって、私はPACを使ったセーブもあまり好きじゃないMSXはエミュレーターにおける何処でもセーブが一番好きかな — Retokatsu☆usagi(裏垢ですw) (@retrokatsudou) 2020年12月17日

反則技:RTCの未使用領域

RTCのバックアップ領域に保存… — NAONORI (@naonori_msx) 2020年12月17日
RTCのバックアップ領域はファイヤーホークのセーブデータがあるのでダメ♪・・・前にステージセレクトとエネルギーマックスを書き換えるRTCセーブデータエディタ作った♪ — 焦がしエクレア (@SearEclair) 2020年12月17日
ちなみに、MSXのゲームデータのセーブ先で一番謎なのがリアルタイムクロックの空きビット(確か)で、ファイヤーホークだけが採用しています。エミュレータ開発の時に混乱を巻き起こしました。 https://t.co/lWiXMQpBcf — MSX研究所長 (@yoshimatsuTUQ) 2020年12月18日
 ファイヤーホークはクロックICの未使用領域にセーブデータを書き込むようです。ダメ!ゼッタイ!

確かペンギンくんwarsもだよ~ https://t.co/WoTIENjdTK — せいみまさみ (@masa_seimi) 2020年12月23日
 ぺんぎんくんwarsも、らしい。えっ、ぺんぎんくんwars2じゃなくて!?

こういうハードがあれば解決するのに…

 ここから先は未来の話。フロッピーディスクでの供給には限界があることは皆が認識していて、ではこの先どうしよう、という。

ハードウェアを拡張するカートリッジ

ファミコンDOOMに倣って、RaspberryPi載せますか!(笑) — HRA! (@thara1129) 2020年12月17日
マイコン載せるならPIC32MXでも相当なことが出来そう・・・。 — 焦がしエクレア (@SearEclair) 2020年12月17日
マッパタイプ切り替え機能付きNextorカートリッジ・・・自分用に何個か設計した♪ — 焦がしエクレア (@SearEclair) 2020年12月17日

PACの互換カートリッジ

クラウドSofarunみたいな感じの斜め上多機能カートリッジでお願いします!(無謀) PAC互換で考えたときに、そういや似非RAMはあるけど似非PACって無いですね。 — Takashi Kobayashi (@nf_ban) 2020年12月17日
SRAM有効化レジスタの実装が複雑なので汎用ロジックでは作りづらいんですよねPAC…。CPLD使うと単体カートリッジとしては大げさすぎるし。 — ごりぽん (@goripon_tw) 2020年12月17日

実装されるのはROMだけどディスク駆動のように見えるソリューション

 MSXなのでROMでのソフト供給に切り替えるのが今風であり、未来志向。そこで、フロッピーディスクでの動作環境をROM上でエミュレートすれば良いのでは?というアイデア(そこまで作るなら、ゲームの方をSRAM付きメガROMにする方が早い、、なんて口が裂けても言えない)Oo。😊 — HRA! (@thara1129) 2020年12月17日
ROM+SRAM混成の似非ディスク(RAMでもROMでもない(笑))カートリッジが出来たら…。 — ごりぽん (@goripon_tw) 2020年12月17日

 ここは解説が必要です。

カートリッジを開けるとICとmicroSDが付いてる構造はどう?と思うものの。カートリッジ内部でディスク起動するにはDisk ROM BIOSが必要でFDD非搭載機にBIOSが無いからBIOSの代替品も用意する必要があって、Nextorは無料で入手できるけどマッパRAMが搭載されていないと起動しないのか。そりゃ無茶だ! — Takashi Kobayashi (@nf_ban) 2020年12月17日
 1990年代当時は全然気にしていませんでしたが、90年代当時フロッピーディスク供給のMSX用市販ソフトや同人ソフトが数多くリリースされたのは、当時のMSX市場はFDD搭載機種で占められており、それイコールMSXシステムのスロットにDISK ROM BIOSが接続されている状態、ゆえにMSX-DOSやDisk BASICが利用可能でソフト開発が容易だったことが挙げられます。

Sony HBD-F1 from msx.org
 MSXではFDD非搭載機種へFDDを接続する際にはカートリッジで拡張していました。このカートリッジにはDISK ROM BIOSが含まれていました。

 令和の時代に入るとフロッピーディスクの供給が止まりFDDの劣化が目立つ始めたため、ROMカートリッジがMSXのコンテンツ配信メディアとして改めて見直されてきました。海外ではROMカートリッジでの新作ソフトが相次いでいます。そうなると、初代MSX(MSX1)やFDD非搭載機も対応機種の視野に入ってきます。

 似非RAMディスクの手法で「メガROMカートリッジなんだけど実態は外付けストレージ(似非ROMディスク)」というものを作ることは既に実現可能な技術なのですが、FDD非搭載機種(=DISK ROM BIOSを搭載しない機種)ではファイルをロードすることができません。ROMカートリッジ内にDISK ROM BIOSの働きをする機能を追加すればFDD非搭載機種でもファイルをロードできます。が、DISK ROM BIOSはメーカー各社の著作物であり、無断で転用できません。

 そこで、NextorというMSX-DOS2上位互換の新しいOSが選択肢に入ります。

www.msx.org

 NextorはOSの起動ファイルはもとよりDISK ROM BIOSの代替品となるカーネルプログラムも無料で入手できます。しかし、Nextorは多機能ゆえにマッパーRAM 128KB以上のRAM容量を必要とします。(RAMを128KB以上搭載していればMSX1でも起動できるのが強みです)

 Nextor上で起動する「メガROMカートリッジなんだけど実態は外付けストレージ」というものを作ると、128KB以上のマッパーRAM+Nextor+似非ROM(コンテンツストレージ)+ゲームセーブ用の書き換えできるストレージが必要となり、もはや本末転倒なレベルです。そういったカートリッジがもの凄く格安で開発できるようになったら採用を検討できるんでしょうけどね…。

PICマイコンとSRAMとSDカードスロットが載っていて起動時にマイコンがSDを読んでSRAMにROMイメージを書き込んでからシステム起動とか。書き込み終わるまでMSX本体側はWAIT信号で停止(笑)。— ごりぽん (@goripon_tw) 2020年12月17日
4メガ8メガROMの光栄ソフトがそんな動きっぽい(笑)実は内部はほぼFDイメージ説 — 超兄貴〜MSX2021〜 (@SuperAniki_MSX) 2020年12月17日
DISK2ROMのよう♪ — 焦がしエクレア (@SearEclair) 2020年12月17日

 Nextorは現実的ではないので、光栄のメガROMゲームのような「ROMの一部をディスクのファイルストレージっぽく振る舞うシステム」が開発されればROMカートリッジでもいけるかもしれないですね。例えば4000h以降にBASICの拡張命令を定義して、ファイルのロードは拡張BASIC(CALL LOADとかCALL RUNとか)だけで行うような…

 BASICプログラムをROMイメージ化するソリューションは存在します。DISK2ROM です。 www.msx.org  プログラム以外のコンテンツを付属できないっぽいんですよね。