BasiliskII(漢字Talk7)なんかより、もっとレトロフューチャーするために、MacintoshPlus on N810と洒落込んでみました。
使うのはminivmac。
WindowsやOSX、Linuxは言うに及ばず、PocketPCだとかiPhoneにも移植されているマルチな奴です(メイドロボじゃないよ)。
既にTMO(というかITTの頃のハナシだけど)で配布されてますが、画面が小さかったり、本家で新バージョンが出ていたりするので、自分でbuildしてみることにしました。
minivmacのbuildはすさまじくハッキッシュ
あ…ありのまま 起こった事を話すぜ!
「ソースコードをダウンロードしたと思ったらディスクイメージが入っていた」
な、何を言っているかわからねーと思うが、俺も何が起こったのかわからなかった。
本家に「v3.1.3のソースコードはディスクイメージの形で配布され、buildするにはv3.0.0以降のminivmacが必要」
とか書いてあって頭がどうにかなりそうだった。
が、よく考えると、もうどうにかなってるので大丈夫でした。
さて整理すると、
*各プラットフォーム向けソースコードを別々に配布するのはもうメンドーだ
→*マルチプラットフォームなconfigureみたいなのがあるといいよね
→*必要なのは共通の実行環境か
→*minivmac使いが共通して持ってるモノってなんだ?
→*一つ前のバージョンのminivmacはあるよな
→*minivmacを実行環境にしたソースコード生成アプリを書けばいいんだ!
ということなのではないでしょうか。(頭に*の付いた行は妄想です。)
なんか鶏卵問題というか、自己言及に陥りそうですが、
win/mac/linux向けには公式でバイナリ配布してるので、buildはあくまでもチューンしたい人向けのオプションということなんでしょう。
このソースコードジェネレーター(たぶん言い方があるよなぁ)はBasiliskIIなど他のエミュレータ上のみならずMacPlus実機でも動いちゃったりします。
しかしながら、minivmacを使うと出来上がったソースコードのアーカイブをホストのディスクに書き出してくれるので便利がいいです。
そういうわけで
とりあえず上記TMOのminivmacをつかってやってみます
(スクリーンショットは便宜上800x480ですが、ホントのTMO版minivmacは512x342です。)
minivmac、Disk603.dsk、vMac.romを一つのディレクトリーにまとめて、
minivmac Disk603.dsk /path/to/sourcecode/minivmac-x.x.x.src.dsk
として起動。
buildをダブルタップするとテキストウィンドウが開くので
そこに本家のマニュアルを読みつつオプションを入れます。
-t lx86 -e bgc -api xwn -no-asm -eol unx -hres 800 -vres 480 -arc tar
最終的にはこんな感じに。
-t lx86 x86とかついてますがアーキテクチャ依存のコードは吐きません。
-api gtk は微妙に機能が削れるのでやめて-api xwn。
-no-asm はpowerpc環境以外意味をなさないらしいですが気休めに。
-sound 1 だとalsaをつかって音をだしてくれるようですが、esddspも効き目無しで結局off(デフォルトでoff)
ウィンドウがアクティブでないと(前面にないと)処理が止まる?ので御注意を。
しばらくするとminivmacと同じディレクトリにソースコードのtarボールがつくられるので、tar xvfで展開してcd,make。
うまくいけばminivmacが完成。
N810上でも完成。
はしたのですが、動作速度がうまく調節できず、爆速で動いてしまうバイナリになりました。
まあどうってことはありません。使わないし(えっ)。
しかしながら、このままだと、n810ではフルスクリーン(ctrl+F)時にカーソルがヘンな動きをしてしまいます。
wmctrl でフルスクリーンにするとまともなので、windowmanagerの機能をつかってフルスクリーンになるように改造してみました。
ファイル:
*あんまり関係ないですが、appleからiTabletが送られてきました。テストして欲しいそうです。