PC6001V 移植日記 [Windy's room]


TOP > PC-6001のお部屋 > PC6001V 移植日記 1

上から下へ 並んでいます。

初めに

ついに、移植してしまいました。 PC6001V が、Macでも動いちゃいます。(^^;

何故、移植したかというと、私のMacノートでは、動くソフトが少ないので、 なら、移植してしまおう!というのが始まりでした。

ここで、なぜ、iP6 Plus じゃないかというと、全然移植できるような段階に無いからです。(汗)

幸いにして、PC6001Vは、ソースリストが公開されていますし、 SDLベースで作られているので、移植しやすいのでは?と思っていました。 ただし、Win32に依存した部分がかなりあるので、それをどうにかする必要がありました。

Win32 API

2004年7月頃

Win32 APIの大半は、グラフィカルユーザインターフェイスの部分ですが、 一部、エミュレータの実行に必要な、フォントファイルを練成・・もとい、作成するのに、 使われています。

その部分はさすがに、そのままというわけにも行かないので、とりあえず、空の関数にして 急場をしのいでいきます。 すると、フォントファイルがないので、起動しないということに・・。 仕方が無いので、とりあえず、Windowsマシンにあった、フォントファイルを、Macにコピーしたら、 なんとか動いてくれました。

といっても、この部分はこのままというわけには行きません。。。

CPUがおかしい。

2004年7月頃

エミュレータのウインドウだけは、表示されるところまできました。が、まだウインドウの枠だけ しか表示されていない状態です。 ほえほえ〜〜。なんでやねん。。 これは、Z80 CPUのレジスタの順番が間違っていたからでした。 というより、Macだとビッグエンディアンなので、Winと反対になってしまうんです。 この辺は、iP6 をいじっていたので、すぐに分かりました。(^^;;

ついに画面が出ました。

2004年7月頃

音は出るんだけど、エミュレータの画面が全く表示されないという状態に陥り、 参っていました。

これ、なんでかというと、パレットのカラー値が、全部0だったからみたいですね。(汗) つまり、描画自体は行われているんだけど、闇夜のカラスで、見えないぞ。と。

設定ファイルがほとんど空になっていると、そうなってしまうようです。 これは、一旦設定ファイルを削除することで、治りました。 結局、今回で一番大変だったかもしれませんね。(^^;;

ついに、出ました。(^^;;

音が正常に鳴りました。

2004年7月頃

BASICも使える!ということで、真っ先に試したのは、音楽機能でしたが、 かなり震えていますよ。(汗) その次に、音声合成ですが、何を言っているのか、分かりませんでした。(汗)

これも、しばらく不思議だったのですが、 ついに治りました。 これも、エンディアン問題で、音源の初期化するときに、 バイトオーダーを、ビッグエンディアンにしたら、さくっと治りました。(^^;

キー入力

2004年7月頃

なんか、キー入力がおかしいです。 大体は、日本語キーボードで認識しているのですが、一部のキーが変な入力のされ方に なります。

SDLのWindows版では、キー入力が正しく行えないバグがあるので、対処コードがありましたが、 カットしたら、さくっと治りました。(^^;

フォントファイルの作成が出来ない

フォントファイル作成プログラムの作成ですが、 初めは、Cocoaでやっていました。(^^; 何度もやりなおしても、だめだったのですが、ついに、フォントファイルを作成できた! と思って、エミュレータに読み込ませても、全然認識してくれません。(汗)

これは、256カラーになっていないからでした。(汗) でも、Cocoaで、256カラーにする方法が、全然分かりませんでしたので、このままストップしていました。

画面の崩れ

2004年8月頃

一部の画面が崩れてしまっていました。 これは、リトルエンディアン前提で組まれていたからです。 バイトの並びを入れ替えることで、治りました。 それにしても、変更点がたくさんあるので、結構大変でしたね。(^^;

.app パッケージ化

2004年9月8日

.appにパッケージ化したことにより、Finderからダブルクリックで起動できるようになりました。 これは、悲願でした。(^^;

ちなみに、内部的には、pc6001v.app ディレクトリの下の、Contents ディレクトリの下の、MacOSというディレクトリの下に、実行ファイルを置きます。

Makeするときは、コマンドライン上で、普通に、メイクを行いますが、実行ファイルは、 ../pc6001v.app/Contents/MacOS/ に書き出すようにします。 それが、Finderからみると、pc6001v.app の.app がとれて、pc6001vというアイコンが ひとつあるだけに見えるんです。

Macでの実行ファイルのパッケージ方法は、感心してしまいました。(^^; コマンドライン版でも、簡単にFinderから起動できるように出来るだけでなく、 リソースや、ライブラリとかも、簡単にパッケージに含められます。

SDLを配布ファイルに含める

2004年9月19日

これも、悲願だったわけですが、ついに実現しました。(^^; .appパッケージの中にframeworkというディレクトリを作って、SDL のframework をコピー。 リンクするときに、-framework SDL とするだけです。

これも、isioさんの日記が参考になりました。(^^; ありがとうございました。

エラーをポップアップ表示する

2004年9月19日

実を言うと、この時点では、まだエラーがおこっても 何も表示されないまま、終了するだけ でした。(汗) このままでは、いくら出来が良くても、アプリケーションとしては失格です。

これは、西田さんに助けていただけました。 本当にありがとうございました。(_)

Rel.1を公開

2004年9月26日

ついに、Rel.1 を公開してしまいました。(汗) この時点では、まだ、フォント作成プログラムも、設定変更プログラムも出来てなかったわけですが、 とりあえず、動かすことが出来たので、公開してしまいました。

うーん。とはいえ、やっぱり使いにくいですね。(汗) 設定変更は、全部設定ファイルをいじる必要があります。(汗) 申し訳ないです。(_)

でも、西田さんの手助けがなければ、無理だったと思います。 本当にありがとうございました。

2004年10月7日頃

なんと、Cocoa iP6 の西田さんに、フォント作成プログラムを作成していただくことができました。 これで、ステータスバーなどの文字が、正しく表示されるようになります。 ありがとうございました。

ちなみに、256色のPNGファイルは、 Cocoaではなく、Carbonでないと、できないということでした。(汗)

2004年10月19日

な、なんと、西田さんに、GUIのプログラムを作成していただくことが出来ました。(^^; これで、pc6001vにも、Windowsと同じようなメニューが使えるようになります。 すごい。。。を通り越して、感動してしまいました。(汗)

本当に、西田さんには、足を向けて寝れないです。 ありがとうございました。(_)

一通り出来るみたいです。 本当にすごいです。

インデックスに戻る