Introducing BootFriend: custom firmware for the WonderSwan Color/SwanCrystal!
– "multiboot" (load software to RAM via serial port),
– backup the IPL (boot ROM),
– manage game data & saves,
– flash cartridges without an external flasher! pic.twitter.com/46ydNohDGB— asie (@cbrzeszczot) February 15, 2023
※起動画面が特殊な限定版本体へのインストールは推奨しません
これがどういうものがまだ把握していない上、一週間ほど出張で家を離れてしまうため簡単にですが、ワンダースワンカラー/クリスタル向けに「BootFriend」というカスタムファームウェアがリリースされました。
BootFriend for WS
https://wonderful.asie.pl/ws/bootfriend/
BootFriendとは
「BootFriend」はワンダースワンカラー/クリスタル向けのというカスタムファームウェアで、これを導入することで
– 起動時のロゴを変更可能
– “マルチブート” (シリアルケーブルを接続してソフトを転送、GBAのマルチブートみたいなもの)
– IPL(boot ROM)のバックアップ
– ゲームデータ、セーブの管理
– 外部の書き込み機(フラッシャー)なしにフラッシュカートリッジへの書き込み
ができるようになります!!
なるほど pic.twitter.com/H2mJS7z59J
— Nekokabu (@Nekokabu) March 13, 2023
ワンダースワンのIPLとは、起動時に表示される画面や誕生日などの個人データの画面を表示するプログラムのことで、2019年になってやっと吸い出しができましたが本体に配線を繋げたり外部機器が必要だったりととても敷居の高い方法でした。
Quick write-up on the Wonderswan boot ROM dumping (in frenchie-french but autotranslation shouldn't be too bad)https://t.co/uDJRhea2uP
Thanks for the docs @trap0xf pic.twitter.com/EZJflG8dYQ— Furrtek (@furrtek) August 19, 2019
この「BootFriend」を導入することである程度機材は必要になるもののIPLを楽に吸い出しできるようになります。
用意するもの
とりあえずIPLを吸い出すことを目的に用意するものは
・ワンダースワンカラーまたはクリスタル本体
・フラッシュカートまたはワンダーウィッチのカートリッジ
・シリアル通信ケーブル
・シリアルポート(DSUB9ピン)の使えるPC
モノクロのワンダースワン本体は対応していません。今回はワンダーウィッチのカートリッジを使ってチャレンジしましたがフラッシュカートでもできるようです(古のWonder Magicのフラッシュカートが見つからないため未確認)。またワンダーウィッチ付属のシリアルケーブルまたは同等品を持っていないため、あやすけさんのHPを参考にシリアルケーブルを自作しました。
ワンダースワン その3
https://ayasuke2.exblog.jp/24852043/
dsub9ピンのケーブルは家にあったものをぶった切って、接続コネクタはワンダーウェーブに犠牲になってもらいました。
ざっくり
「BootFriend」転送、インストール→WS Backup Tool転送→IPL吸い出し
って感じです。
やり方
やり方についてはスクラップAさん (@scrap_a_) がわかりやすくまとめてくださっています。
※インストール前にIEEPROMの内容をバックアップすることを忘れないでください!
とくに限定本体へインストールしたい場合は必ずバックアップしておいてください。
せっかくなのでBootFriendを使ったワンダースワンカラー/クリスタルのboot rom吸い出し手順(ワンダーウィッチを使う場合)をまとめておきます pic.twitter.com/sQ87eldQN0
— スクラップA (@scrap_a_) February 18, 2023
かんたん、簡単、超簡単、どっちかというとシリアルケーブル作ることと通信できる環境作る方がよっぽど大変でした。
うまくいきました!!!!!! pic.twitter.com/W8inATS1DA
— Nekokabu (@Nekokabu) February 18, 2023
また今回初めて知ったのですが、特殊な機材を使わなくともIPLを吸い出す方法がすでに確立されていたそうでこちらの方法を使えば1箇所配線が必要なもののモノクロからクリスタルまですべての本体のIPLを吸い出しできるそうです。
IPL Dumper · up-n-atom/wwsoft Wiki
https://github.com/up-n-atom/wwsoft/wiki/IPL-Dumper
追記 「BootFriend」の動作について
※2023/3/15 追記
「BootFriend」がどういう風に動いているのかなんとなくわかりました。起動時の画面を変更できることがサブの機能ではなくこれがメインというか本体でした。
ワンダースワン(モノクロ)は本体にユーザー情報を保存できる1kbit(128バイト)の内蔵EEPROM(Internal EEPROM、IEEPROMと呼ばれる)を持っていて、ワンダースワンカラー、スワンクリスタルではこれが16kbit(2048バイト)に拡張されています。
ところでワンダースワンカラー、スワンクリスタルの本体にはファイナルファンタジー、ガンダム、ワンピースなどの限定版があり、その中の一部は起動画面が特別なものに変更されている本体があります。単純に表示される画像を差し替えているわけではなく、ガンダムの頭やワンピースのどくろマークが表示されたり、ザクの目がぎょろっとうごいたりと専用の凝った起動画面を表示するようなプログラムが追加されています。
そのプログラムがどこに格納されているのかというと前述したIEEPROMの中で、IPL起動時に特定のフラグが立っていると通常の起動画面ではなくIEEPROMに保存された(起動画面を表示する)プログラムを実行する機能がワンダースワン本体にもともと組み込まれているのです。
「BootFriend」はこの本体側にもともと存在する機能を利用して起動画面を変えるついでに自作プログラムを実行できるようにしているのです。また、IPLがIPLへのアクセスをロックしカートリッジのゲームを実行する前に「BootFriend」へ制御が移るので、IPLを吸い出したりカートリッジロムを吸い出したりすることを可能にしています。
おそらくモノクロ本体が「BootFriend」に対応していないのは、モノクロのIPLが起動画面の変更に対応していないか、IEEPROMの容量が足りないためプログラムを配置できないためと思われます。
また起動画面が特殊な限定版本体へのインストールはIEEPROMのバックアップを忘れると起動画面を二度と戻せない可能性があるため推奨しません