WonX
〜 WonderWitch on X 〜



あなたは 人目のお客様です.

mmap() を実装しました!(2002/2/4)

カラー対応しました!(2001/1/3)

ワンべぇを FreeBSD 上で WonX を使用して コンパイルすることができました!

WonX は,WonderWitch 用のプログラムを X アプリケーションとしてコンパイルする ための,ライブラリです.
WonderWitch 用のプログラムを,FreeBSD や Linux 上で動かすための, エミュレータのようなものです.(正しくは,互換ライブラリと言うべきかな?)

以下の特徴があります.

以下のものにはまだ対応してません.したがって,例えばサウンド関連の 関数を呼び出しても,何も起こりません.(空の関数になっている) バグ情報やアドバイスがあれば,坂井弘亮まで,どんどんメールください. また,リリース版ができるまでは,アップデートは頻繁に行い, 随時公開していきます.

現在は坂井が一人で製作していますが,ひとりでは細かい点の整合性 (初期化しなかった場合の動作の違いなど.WonderWitch と WonX では 微妙に異なっていると思う)を追いきれないのが現状です.
とくにマニュアルに書いてない部分に関しては,WonderWitch ではどのように 動作するのか,ひとりではチェックしきれません. 情報をお待ち(ていうか期待)しています.
また,テストもなかなか手がまわりません.ゲームなどでまとまったテストを したいのですが,WonderWitch 関連はソースコード配布しているソフトウエアが 少ないため,テスト題材がなかなか手に入りません.
「動いた」「動かなかった」 「この関数は使えた」「この関数はバグがある」というような情報でも 結構ですので,情報をお持ちのかたは,連絡ください.
ご意見,ご要望なども歓迎します.どしどしお寄せください. (ただし,返事を書くとは限らないし,要望を反映するとも限りませんので その点はご容赦ください)

WonX の正しい使いかた

その1: grep と組み合わせる

WonX はデバッグ情報をすべて標準出力に出力します.
これらの情報は,grep で引っかけやすいように,すべて,なんらかの 文字列を入れてあります.(例: 関数呼出はすべて call という文字列で始まる)

これらの出力を grep で拾うか捨てるかして,デバッグします.
たとえば,WonX を使用して,SpeedMac をコンパイルして,smac という UNIX 用の実行形式を作成したとすれば,

> smac | grep call | grep palette_set_color > smac.log
のようにして実行すれば,palette_set_color() 関数の呼出だけのログを取ることが できます.また,
> smac | grep "character\[0\]" > smac.log
のようにして起動して,起動後に F3 を押すことにより,0 番のキャラクターの ビットマップデータを得ることができます. (grep しないと,0 〜 511 までの全部のキャラクタデータが出力されてしまう)

このように,grep を巧みに使ってデバッグを進めます.

その2: WonX でなんでもやろうとしない

WonX はあくまでデバッグ支援用のライブラリ集であり,これだけで開発が 行えるものではありません.実装していない関数も,いっぱいあります.

しかし,UNIXの強力なデバッグ環境が使用できるのと,デバッグ用情報を 出力してくれるので,開発の初期段階でのデバッグには,非常に有効です.
だから,はじめのうちは WonX を使ってプログラミング&デバッグして,あるていど 仕上ってきたら WonderWitch に移してチューニングしていくのがいいでしょう.
はじめから WonderWitch で書いて,いざ動かそうとしたら動かなくて, それから WonX のほうでデバッグしようとしても, プログラムが WonX では実装していない関数を使用している場合には, 面倒なことになるかもしれません.
つまり,プログラムの立ち上げ時には WonX 使って書いて (WonX で実装していないような関数を使用する部分については後回しにして, とりあえず WonX で動くものを作成する), 立ち上がった後には WonderWitch でチューニングしていけばいいと思います.

注意してほしいのは,WonX で最後の最後まで開発していこうとしないことです.

その3: ソースを改造する

作者は,「自分で改造する」ということも,WonXの使いかたのひとつであると 考えているので,「改造しやすさ」ということもサポートの範疇であると 思っています.やりたいことができない場合には,ソースを直接改造しましょう. (ライセンスはGPLなので,改造は自由です) 有益な修正ならば,改良点を作者までプットバックしましょう.

できるだけ改造しやすいように,ソース自体もシンプルな構成にしてあります. 画面描画まわりは,もっとも手を入れるだろう可能性が高いので, 高速性よりもわかりやすさを重視して書いてあります. この方針は,今後もおそらく変わりません. (たとえば,画面描画まわりは,変更された部分だけ描画するようにすれば 劇的に速くなると思われるが,それによってソースが難解になるようならば, 読みやすさのほうを優先する)


メールは kozos(アットマーク)kozos.jp まで