README 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. Wonx - WonderWitch on X.
  2. ■ αバージョン配布に当たって
  3. Wonx はまだ不完全なαバージョンです.実装されていない機能や,
  4. 不完全な機能,おかしな動作をする部分などがいっぱいあります.
  5. バグ情報やアドバイスがあれば,作者の坂井弘亮まで,どんどんメールください.
  6. アドレスは,
  7. sakai@seki.ee.kagu.sut.ac.jp
  8. hsakai@pfu.co.jp
  9. です.
  10. また,リリース版ができるまでは,アップデートは頻繁に行っていきます.
  11. http://www.seki.ee.kagu.sut.ac.jp/~sakai/WonderWitch/index.html
  12. で,随時公開していきます.
  13. 現在は坂井が一人で製作していますが,ひとりでは細かい点の整合性
  14. (初期化しなかった場合の動作の違いなど.WonderWitch と Wonx では
  15. 微妙に異なっていると思う)を追いきれないのが現状です.
  16. とくにマニュアルに書いてない部分に関しては,WonderWitch ではどのように
  17. 動作するのか,ひとりではチェックしきれません.
  18. 情報をお待ち(ていうか期待)しています(そのためのα版配布です).
  19. いっしょに少しずつ,完全なものに仕上げていきましょう.
  20. 広く情報を募るために,早い段階でα版として公開します.ご意見,ご要望なども
  21. 歓迎します.どしどしお寄せください.
  22. (ただし,返事を書くとは限らないし,要望を反映するとも限りませんので
  23. その点はご容赦ください)
  24. ■ はじめに
  25. Wonx は,WonderWitch 用のプログラムを X アプリケーションとしてコンパイルする
  26. ための,ライブラリです.以下の特徴があります.
  27. ・C言語レベルで互換機能を持っているので,WonderWitch 用のプログラムを
  28. UNIX上でそのままコンパイルできる.(-lwonx でコンパイルする)
  29. ・UNIX上でデバッガを使用してデバッグできるようになる.(強力!)
  30. ・キャラクタデータやパレットデータのダンプ機能をつける予定.
  31. ・不正な引数の値や,パレットやキャラクタを初期化しないで使用するなどを
  32. 厳しくチェックし,エラーを出力する(ようにする).厳しくエラーチェックする.
  33. ・使用できない機能(関数は用意してあるが,まだ実装してなかったり,
  34. 実装が困難だったりして,中身が空のもの)はたくさんある.
  35. 徐々に追加していくつもり.
  36. ・ゲームの画面写真が簡単に撮れる.(デジカメで撮ったり,画像取り込み用の
  37. プログラムを使ったりする必要が無くなる) これはわりとべんり.
  38. ・エミュレータでなくライブラリであり,ソースコード公開しているので,
  39. 自由にカスタマイズが可能.
  40. ・描画速度は遅いが,デバッグ目的のためなので,速度を速くすることは
  41. あまり考えていない.(それよりも上記のデバッグ性を優先する)
  42. ・WonderWitch 用のプログラムを,X上で楽しむためのものではない.
  43. あくまでデバッグ目的のもの.(そういうポリシーで開発を進める)
  44. ■ 足りないもの
  45. 以下のものにはまだ対応してません.したがって,例えばサウンド関連の
  46. 関数を呼び出しても,何も起こりません.(空の関数になっている)
  47. ・文字表示関連 (ターミナルにそのまま出力する)
  48. とくに,文字だけでタイトル画面を書いてるゲームの場合などは,
  49. なにも表示されないことになってしまうので注意してください.
  50. (正常に動作していても,画面が真っ白で固まっているように見えてしまう)
  51. ・画面周りの細かいところ(ウインドウ機能など)
  52. ・サウンド
  53. ・シリアルポート
  54. ・割り込み処理関連
  55. 割り込みを使用している場合は注意してください.そのままではまともに
  56. 動かないでしょう.
  57. そのうちシグナル使ってなんとかサポートしたいと思います.
  58. ■ Wonx概要
  59. Wonx は,WonderWitch の display_control() とか display_status() といった
  60. 関数(システムコール)と互換の関数を持っています.
  61. これらの関数は,X上にウインドウを開いて,そこで WonderWitch と互換の動作を
  62. するように書いてあります.
  63. Wonx を make すると,libwonx.a というライブラリができます.
  64. で,WonderWitch 用のプログラムを,UNIX 上で -lwonx してコンパイルしてやれば,
  65. WonderWitch の display_control() とかのかわりに,Wonx の display_control() が
  66. リンクされ,X 上で動作するようになる,という仕組みです.
  67. ■ インストール
  68. インストールするには,以下のことを行う必要があります.
  69. ・Wonx のコンパイルには,WonderWitch 付属のヘッダファイル(sys/disp.h とか)が
  70. 必要なので,それらをコピーします.
  71. ・Wonx をコンパイルします.→ libwonx.a ができあがります.
  72. ・ヘッダファイル(sys/disp.h とか)と libwonx.a を,適切なディレクトリに
  73. 置きます.
  74. (アプリケーションのコンパイルには,WonderWitch 付属のヘッダファイルが必要)
  75. インストールは,以下の手順で行います.
  76. 1. Wonx を展開する.
  77. ~>% tar xvzf wonx.tar.gz
  78. ~>% cd wonx
  79. ~/wonx>%
  80. 2. WonderWitch 付属のヘッダファイルをコピーする.
  81. ~/wonx>% mkdir sys
  82. ~/wonx>% cp ~/WWitch/include/bank.h sys
  83. ~/wonx>% cp ~/WWitch/include/comm.h sys
  84. ~/wonx>% cp ~/WWitch/include/disp.h sys
  85. ~/wonx>% cp ~/WWitch/include/key.h sys
  86. ~/wonx>% cp ~/WWitch/include/sound.h sys
  87. ~/wonx>% cp ~/WWitch/include/system.h sys
  88. ~/wonx>% cp ~/WWitch/include/text.h sys
  89. ~/wonx>% cp ~/WWitch/include/timer.h sys
  90. ~/wonx>% cp ~/WWitch/include/types.h sys
  91. 3. 以下の内容のファイル(sys/service.h)を作成する.
  92. ~/wonx>% emacs sys/service.h
  93. ==== ここから ====
  94. #ifndef _service_h_INCLUDED_
  95. #define _service_h_INCLUDED_
  96. #define far /* None */
  97. #define near /* None */
  98. #endif
  99. ==== ここまで ====
  100. sys/service.h は,disp.h などの中から,
  101. #include <sys/service.h>
  102. のようにしてインクルードされますが,コンパイル時には -I. でコンパイル
  103. されるので,ばあいによっては,sys/sys/service.h にする必要があるかも
  104. しれません.(未確認)
  105. 4. Wonx を make する.
  106. ~/wonx>% make
  107. gcc -c WWCharacter.c -O -I. -I/usr/X11R6/include
  108. gcc -c WWColorMap.c -O -I. -I/usr/X11R6/include
  109. ...(中略)...
  110. gcc -c wonx.c -O -I. -I/usr/X11R6/include
  111. ar ruc libwonx.a WWCharacter.o WWColorMap.o WWDisplay.o WWLCDPanel.o WWPalette.o WWScreen.o WWSprite.o WonxDisplay.o XDisplay.o disp.o text.o key.o system.o timer.o etc.o wonx.o
  112. ~/wonx>% ls lib*
  113. libwonx.a
  114. ~/wonx>%
  115. ここまでで,ライブラリとヘッダファイルの作成は終りです.
  116. ■ WonderWitch 用アプリケーションのコンパイル
  117. 拙作の SpeedMac をコンパイルしてみます.
  118. 1. 展開する.
  119. ~/wonx>% cd
  120. ~>% unzip xvzf smac-b02.zip
  121. ...(中略)...
  122. ~>% cd smac-b02
  123. ~/smac-b02>%
  124. 2. ヘッダファイルと libwonx.a をコピーする.
  125. ~/smac-b02>% mkdir sys
  126. ~/smac-b02>% cp ~/wonx/sys/* ./sys
  127. ~/smac-b02>% cp ~/wonx/libwonx.a .
  128. ~/smac-b02>%
  129. 3. Makefile を修正する.
  130. ~/smac-b02>% emacs Makefile
  131. 以下のように修正します.
  132. ・gcc でコンパイルをするように修正する.このときに,コンパイルオプションに,
  133. -I. -I/usr/X11R6/include -L. -L/usr/X11R6/lib -lwonx -lX11 -lXt
  134. を追加する.
  135. (必要なら,-g も追加する)
  136. ・mkfent によるファイルのコンバートなどがあったら,削除する.
  137. 4. make する.
  138. ~/smac-b02>% make
  139. gcc -c chara.c -g -I.
  140. gcc -c game.c -g -I.
  141. ...(中略)...
  142. gcc -c main.c -g -I.
  143. gcc -g -o smac chara.o game.o man.o mansub.o mansub2.o map.o mapsub.o menu.o monster.o picture.o player.o smac.o stage.o dsp.o etc.o main.o -lwonx -lX11 -lXt -L. -L/usr/X11R6/lib
  144. ~/smac-b02>% ls smac
  145. smac
  146. ~/smac-b02>%
  147. 5. smac を起動する.
  148. ~/smac-b02>% ./smac
  149. ■ 操作
  150. smac を起動すると,ウインドウが開きます.また,ターミナルには,
  151. 以下のデバッグ用の情報が表示されます.
  152. ・WonderWitch の互換関数が呼ばれると,引数と戻り値を表示します.
  153. またここでは,以下の操作が行えます.
  154. ・カーソルキーが,WonderSwan のX1~X4ボタンに対応している.
  155. ・i,j,k,l キーが,WonderSwan のY1~Y4ボタンに対応している.
  156. ・スペースバーと左シフトキーが,A,Bボタンに対応している.
  157. ・sキーが,STARTボタンに対応している.
  158. ・p を押すと,表示/非表示モードを切替える.
  159. (非表示だと画面への描画を行わないが高速)
  160. 標準ではなにか関数が呼ばれるたびに画面の再描画を行うため,非常に低速です.
  161. このような場合は,非表示モードにしてください.
  162. ■ 作者
  163. Wonx は,坂井弘亮が通勤電車の中で Libretto で書いた作品です.
  164. GPLで配布します.
  165. 坂井弘亮の連絡先のメールアドレスは,
  166. sakai@seki.ee.kagu.sut.ac.jp
  167. hsakai@pfu.co.jp
  168. です.また,本ソフトウエアの最新版を,
  169. http://www.seki.ee.kagu.sut.ac.jp/~sakai/WonderWitch/index.html
  170. で配布しています.
  171. ■ このファイルはここまで