ワンダーウィッチ
ワンダーウィッチ (WonderWitch) は、キュート (ソフトウェア会社)による、ワンダースワン上で動作するソフトの開発環境。2000年7月18日発売。16,800円。当初は本体がモノクロだったために環境もモノクロ対応のみだったが2000年12月24日にはカラー対応のライブラリが追加で公開されている。
携帯ゲーム機ワンダースワン上で実行可能なソフトウェア開発キット。家庭用のゲーム機で動作するソフトウェアの本格的な開発環境として当時話題を呼んだ。PC-8800シリーズ、MSX、PC-9800シリーズ時代のホビープログラマにとっては扱いやすいハードで、コンセプトも評価され、発売当時はソフトウェア系の雑誌などで連載が組まれ、大々的に取り扱われた。ほとんどのゲーム売り場には置かれず、一部のパソコンショップの店頭や、通信販売で入手できた。
ワンダーウィッチの長所は、ライセンスを受けたメーカー公認のツールでありながら、C言語やアセンブリ言語による開発が可能なことで、機械語コードによる、市販のソフトとなんら遜色の無い高速な実行スピードを得ることができる。もっともリバースエンジニアリングはマニュアルの冒頭で「禁止」と書かれている。
家庭用ゲーム機のゲーム開発環境にはASCIIのツクールシリーズ等の限定的なもの(ジャンル固定)が主流で、ほかにファミリーコンピュータにはファミリーベーシック、セガサターンにはGAME BASIC for SEGASATURN、PlayStation 2にはBASIC STUDIO等、BASIC言語を基本とした開発環境もあった。ただし開発は制約の多い閉じたものであり、使い勝手も今ひとつだった。なお、BASIC言語以外で開発できるものとしては、リバースエンジニアリングの結果が公開されたファミリーベーシックのほか、マイナーなところではPCエンジンやPC-FXの開発環境が、また非公式なところではゲームボーイの開発ツールがあった。
後に開発環境を含まず実行環境のみの(ランタイムバージョン的な)WonderWitch プレーヤーも発売された。また、専用カートリッジの販売はシリアルナンバー登録(無料)を行えば自由となり、バルクのカートリッジ販売も行われた。
各製品は2004年3月26日に販売終了が告知された後、2005年9月16日に再発売し、完売した。その後、ユーザーの要望もあり、2006年7月23日から一部製品が再発売される。
スワンケーブル&クロスケーブル
CD-ROM(コンパイラ、転送ソフト、ライブラリ等)
取扱説明書 (Magical Book)
専用カートリッジは別売もされた。
PC側はPC/AT互換機でRS-232C DSUB-9シリアルポートがあることが求められる。対応OSはWindows 98, NT 4.0, 2000, Me, XPとなっている。コンパイラとしてLSI C-86とTurbo C 2.0 英語版が付属していて、ライブラリも別個に用意されている(通常は前者を使用した方が開発し易い)。標準では統合開発環境は使わずMakeファイルを記述してDOSプロンプトから開発する形をとる。実行ファイルは.fx、データファイルはfrの拡張子を持つ。
外部へのアクセス手段としてワンダースワン本体の通信コネクタをRS-232C準拠のシリアルポートに変換するケーブルが付属しており、カートリッジ内のフラッシュメモリやSRAMへの読み書きにも使用するほか、自作アプリケーションからも制御できる。フラッシュメモリはユーザーによるアップデートが可能となっている。PCからは付属のソフト「TransMagic」により操作し、バイナリはXMODEMにより転送する。転送速度は38400bpsまたは9600bpsを選択できる。(赤外線通信などでは9600bps)
カートリッジのフラッシュメモリの容量は512KBで、システム領域を除いた384KBがユーザーのプログラムやデータコード用に割り当てられている(モノクロでも不足気味で、カラー化するとさらに不足した)。ファイルを消してもOSがフラッシュメモリ上のファイルの再配置を自動では行わず、空き容量を捻出するにはシェルから「せいとん」コマンドを使用する必要がある。また、カートリッジ内のボタン電池(交換は分解すれば可能)でバッテリバックアップされたSRAMが256KBあり、そのうち64KBがプログラム以外のデータファイルの保存用として使用できる。各メモリはCPU空間にリニアにマップされる。またカートリッジにRTCを内蔵する。
OSには独自のFreyaOSが、シェルとしてこれまた独自のMegがそれぞれ載っている。これによってハードウェアの生の情報を外部に晒すことなく性能を生かすことが可能になっている(シェルは他に開発関係者自身の手による「Ged」が別に公開されていて、差し替えも可能)。文字フォントは恵梨沙フォントが採用されておりJIS 第二水準までの英数字、記号、かな漢字が扱える。このフォントはモノクロではライブラリのサポートがあるが、カラーではフォントデータを各自で取り出す必要がある。
ワンダースワンのCPUはIntel 8086互換の16ビットCPU(V30MZ 3.072MHz/8086の12MHz相当の性能)である。ワンダーウィッチ(というかFreya OSの仕様)では8086 CPUでの一般的なCコンパイラのメモリモデルとは違い、データセグメント (DS) とスタックセグメント (SS) が異なる仕様で(いわゆるDS!=SS)、自動変数(スタックに確保される)のアドレスをnearポインタ(データセグメント内を指す)にとることができないなどの制約があった(なお、他にDS!=SSモデルを採用したものとして、Win16のDLLがある)。一方、OSレベルでスタティック形式のインダイレクトライブラリ(IL形式)をサポートする。ライブラリファイルがセグメント単位で配置されることで、いわゆる「64KBの壁」を有効活用している。
ハードウェア情報がOSレイヤーによって隠蔽され賛否が分かれるが、それ自体 (Freya BIOS) は薄いラッパーライブラリと言ってもよく、性能をあまり制限することも無く使いやすい仕上がりになっている。追加されたカラーライブラリの内容はFreya BIOSのアップデートには含まれていない。
サウンドドライバとして「SoundIL」が付属する。配布ファイルへの添付は別条件となっていたが、後に条件つきで自由となった。
開発環境にフリーソフト化された「Digital Mars C」を使用する方法も有志により考案され、高い最適化を行うこのコンパイラを利用すると、付属のコンパイラよりもさらに高速に実行させることが出来た。
ROMカートリッジが特殊なため、いわゆるエミュレータソフトではイメージだけを抜き出しても動作しないと思われる。(動作させる方法自体は存在する)
CPUが8086でもMS-DOSが実行される訳ではなく、Freya OSはMS-DOSとの互換性もない。なお、Tera Termなどの通信ソフトで直接接続すると使用できるコマンドシェルはUNIXライクなものになっている。
発売直後は、アマチュアのみならず一部のプロのプログラマをも巻き込み、Web上を中心として大いに盛り上がったものの、ブームの盛り下がりも早かった。その理由としては、
VRAM空間を直接アクセスできず、描画にライブラリを通す必要があり、使い勝手が今ひとつな部分もあったこと
付属のサウンドドライバにバグが散見されたこと、そのサウンドドライバとラスタースクロールの混在が難しかったこと(割り込みタイミングの競合により画面が、ちらついてしまう)
母体が本来ライセンス形態で開発するゲーム機ゆえの問題である。しかし8ビット機時代からの多くのプログラマにとってリバースエンジニアリングは手段の一つであり、これを禁止とするのは無理だった
ポータルサイト「WonderWitch.com」の初期の混乱。半分放置状態でユーザー同士のフレームが多発した。いくぶん下火になってからマイコンBASICマガジンのライターによるリニューアルが実施された
ワンダーウィッチと違いオープンハードウェアとした競合製品「PIECE」の発売
C言語を採用したこともあって、純粋な開発「初心者」が寄りつきにくかったこと
ブームは下火になったが、それまでに各種のゲームやツール、サウンドドライバを始め「GPSを読み取るソフト」「BASIC言語での開発環境」「低速なファミコンエミュレータ」「ワンダーウィッチ自体のエミュレータ」など大量のソフトが開発された。その後、開発環境を含まない形の「WonderWitch プレーヤー」が発売され、これを利用するとプログラマの技能がなくても、既に開発されたソフトを安価に遊ぶことができた。
一方で、キュート主催でソフトウェアコンテスト「WWGP」が年々規模を縮小しつつ、三回実施された。本選はバンダイ本社を使用し、その模様は動画ファイルや広報誌などで公開された。一回目の最優秀作品(JUDGEMENT SILVERSWORD)と二回目の最優秀作品は改良してROMカートリッジで製品化、キュートから数量限定で通販された。この両作品の製品版は、完売して入手困難になったことから、ネットオークションや中古量販店などでプレミア価格がつけられた。
「ゲームラボ」誌上でワンダーウィッチを使ったオリジナルゲームを製作する企画があったが、諸般の事情が重なり開発中止の形で終了した。なお、内容はゲームラボで連載中のピョコタンがキャラクターデザインのすごろくゲームだった。