「WonderWitch(ワンダーウィッチ)」を久々に触ってみました。WonderWitchは発売から20年以上が経過していて、現在はそのままでは動作しませんが、少しの工夫で動くようになります。
「WonderWitch」は2000年に発売したバンダイ公式のワンダースワン用の開発キットです。ゲーム機用の開発キットといえば、だいたいは高額で企業向けなものですが、WonderWitchの場合は低価格で一般用として販売されたことが特徴です。当時としては画期的な試みでした。
専用カートリッジはSRAMやRTCを内蔵していたり、システム(FreyaOS/BIOS)の更新機能があったり、恵梨沙フォントが搭載されていたりと、高度な技術を有していました。企画と開発はQute。発売当時の価格は17,640円(税込)。この他にコンパイラを取り除いて価格を抑えたWonderWitchプレーヤーや専用カートリッジ単体が販売されました。
ちなみにWonderWitchのコンテストでグランプリを受賞した「ジャッジメントシルバーソード」や「DicingKnight(だんしんぐないと)」は、のちに商品化されて、現在はプレミアソフトとなっています。
話を戻します。
WonderWitchでプログラムを作る流れは次の通りです。
ソースファイル(c)
↓lcc86でコンパイル
オブジェクトファイル(obj)
↓mkfentでバイナリ化
バイナリファイル(fx)
この一連の処理(ビルド)はkmmake(make)というツールで行います。ビルドの手順はmakefileに記述します。
WonderWitchのコンパイラは現在のWindowsでは動きません。原因はコンパイラなどがDOSプログラムであるためです。しばらく使っていなかったので、Windowsのどのバージョンで動かなくなったのか理解していません。
たとえば、kmmakeを実行しようとすると、「このアプリはお使いのPCでは実行できません」または「~は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」というエラーメッセージが表示されてしまいます。
デフォルトでは開発キットは「C:¥WWitch」に存在します。自分の場合、Cドライブの直下には置きたくないので、Gドライブにして、フォルダ名を「G:¥ww¥~」に変更しました。これは好みに応じて直しましょう。
対策したのは以下の4点。
(対策その1)
「MSDOS Player」を使ってDOSプログラムを動かします。MSDOS PlayerはフリーソフトのDOSプログラムのエミュレータです。
MS-DOS Player for Win32-x64 謎WIPページ
MSDOS Player「msdos.exe」を開発キットの存在する階層(sampleフォルダの階層)に置きます。
(対策その2)
「lcc86ww¥bin16」フォルダにある「_lcc86ww」をテキストエディタで開いて、「C:¥WWitch」の5か所のパスを修正します。
「C:¥WWitch」の場所を変えていない場合、修正は不要です。
(対策その3)
「lcc86ww¥bin16」フォルダにある「mkfent16.exe」のファイル名を変更します。
「mkfent16.exe」 → 「mkfent.exe」
この逆の方法として、テキストエディタでメイクファイル「sample¥makefile.inc」の中身を書き換えてもいいです(「mkfent」→「mkfent16」に変更)。
(対策その4)
最後にビルド用のバッチファイル「_build.bat」を作ります。
ここでは例としてサンプルの「sample¥hello」をビルドします。
「hello.c」はHello Worldを表示するだけのシンプルなプログラムです。
「_build.bat」の中身は以下の通りです。
set MSDOS_PATH=G:¥ww¥lsic86ww¥bin16;G:¥ww¥bin16;
Set TZ = JST - 9
..¥..¥msdos.exe kmmake.exe
pause
kmmakeを実行するための命令を記述しています。
パスは「MSDOS_PATH」という環境変数で指定するようです。
MSDOS Playerは16bitのDOSプログラムしか実行できない(「This program cannot be run in DOS mode.」というエラーが出る)ので、パスは「bin」ではなく「bin16」を指定します。
(ビルド)
「_build.bat」を実行して、ビルドします。
kmmakeが呼び出され、makefileが参照されて、lcc86やmkfentが実行されます。
最終的にバイナリファイルの「hello.fx」が 出力されたら成功です。
(実行)
あとは専用の通信ケーブルを使ってPCとワンダースワンと接続して、
通信ソフトの「TransMagic」を立ち上げます。TransMagic.exeはbinフォルダにあります。
「hello.fx」を専用カートリッジに転送すれば、ワンダースワンで実行することができます。
こちらは「MiracleMage」というWonderWitchエミュレータで実行した例です(Tomoyuki 'ZRY' Nakanoさん作)。WonderWitchの挙動をエミュレーションしています。ワンダースワンのエミュレータではありません。
あと、実機で動かす場合ですが、カートリッジの電池が切れていると正常に起動しません。トルクスドライバーでカートリッジのガワを開けて、リチウムコイン電池を交換します。CR1616が使われています。極性を間違えないようにしましょう。CR1616はヨドバシで200円で売ってます。
補足的な情報