2011年2月12日土曜日

Flappy のための Windows 3.1 with VirtualBox

様々な事情で Flappy をやってみたいなあ,と思ったのが発端.そういえば持ってたなあ,と思いだした.

あちこち探してパッケージを見つけたが,Windows 3.1 版 だった.しかも FD 1 枚 だった.
FD の中を見てみると WING.DLL とか入っている.当時は DirectX なんてなかったので,個別にこういう直接レンダリングができるツールを入れてたんだよなあ,MicroImages が配っていた MI/X という Free の Xserver にも付いていたっけかなあ,MicroImages は GIS の有名どころの TNTMips を作っている会社だけど,未だに Xserver 経由で動かすバージョンがメインなんだよなあ... とか考えたが解決にはならない.こういうシステムに近いツールを想定されてないバージョンに突っこむのは怖すぎるよなあ.そもそも 16bit だから,動かないか.

ぐらいまで考えたあたりで,Virtualbox 使って Win3.1 を入れればいいんじゃね?と思いついた.昔,FD を廃棄する前に全部 dd でコピーしていたから,FD image はあるはず.
で,ディスクをひっくりかえしてみるとイメージが見つかった.1.44FD 12 枚.小さい.さらにこれが英語版なら 1.44FD 7 枚組みで,しかも 1 枚は最後まで要求されないという小ささ (実質 6 枚).ちなみに日本語版で増えている分は,半分以上がフォントだ.
VirtualBox に新しい仮想マシンを追加,ストレージとして FD のデバイスを足して FD image (Win 3.1 の disk1) をマウントして起動... しようとしたがシステムが無い,と言われてしまった.遠い記憶を探ってみると,そういえば DOS が起動しているところからインストーラを動かしたような気がする.DOS は別売 (というか大抵の人が持ってた) だったよな.
ところが不思議な事に (?),DOS の FD image はどこにもない.どうも作っておかなかったようだ.インストールで使うだけだから,最小限だけあればいいんだけど.
更に探すと bootable FD image みたいなのが出てきた.IBM-DOS7 とか,Win95 の起動イメージだ.disk1 というわけでもなく,非常用に作った奴で,最小限の DOS にツールが入っている.DOS7 は,Win3.1 に対して新しすぎるので,どんなもんかなあ.でも Win95 の起動ディスクなんてほとんど DOS なので,これでいけるかもしれん.

Win95 の image をマウントして起動する.当然 OK.日本語 Windows を入れるためには 日本語環境ではならないが,肝心の CONFIG.SYS はこんなかんじ.

FILES=50
BUFFERS=30
DOS=HIGH,UMB
STACKS=9,256
DEVICE=HIMEM.SYS    (1MB 以上のメモリを使うためのドライバ
DEVICE=BILING.SYS    (バイリンガル環境構築
DEVICE=JFONT.SYS /MSG=OFF    (日本語フォントをメモリにロード
DEVICE=JDISP.SYS /HS=LC    (グラフィックモードに移行して日本語を表示
DEVICE=JKEYB.SYS /106    (キーボードドライバ,US キーボードなら /101 に

FILES と BUFFERS は大きめにしておく必要があるようだ.DOS で使うなら半分でいいけどね.

VirtualBOX の設定は,メモリ 64MBに,HDD 500MB.贅沢だなあ.実機でやっている頃は,この半分以下だったよな.

FD から起動できたら,fdisk で HDD の領域確保,再起動して format C:,sys C: でシステムを転送して,上記の CONFIG.SYS とそこに書いてある必要なファイルをコピー.そしたら再起動して,こんどは HDD から起動する.
必要なファイルは IO.SYS MSDOS.SYS COMMAND.COM ANK16.FNT ANK19.FNT BILING.SYS CONFIG.SYS HIMEM.SYS JDISP.SYS JFONT.SYS JKEYB.SYS JKEYBRD.SYS KANJI16.FNT ぐらいだと思う.最初の 3 つは sys C: の段階で自動で入る.
試行錯誤の結果,途中で FD を抜き差ししていると止まりやすいので,あらかじめ md C:\inst して,そこに win3.1 の FD の中身をどんどん入れていく.FD imageを開放して,新しいのを指定して,copy a:*.* していくわけだが,FD image のマウント後に F3 を押すと,直前のコマンドが再入力されるので便利だ.それでも FD 12 枚はなかなかきつい.
コピーが終了したら,setup を起動して,運が良ければインストール出来る.運が悪いと (何度も運が悪かったが),単にフリーズしたり,ファイルの展開が不十分なのかファイルが見付からなかったり,これが多かったが スタンダードモード:MS-DOSエクステンダ外のエラーです なるエラーが出て止まる.PC が速すぎるのが問題なのかもしれない.なんとなく,FILES,BUFFERS を多めにしておくと止まり難いように思う.(後は,Linux よりも Win 環境のほうが良さげ)
上手く入ったらそれなりに動く.でも最初に Win95 のロゴが出て次に Win3.1 のロゴが出るのは変なかんじ.

Win3.1 が入れば Flappy は簡単に入る.WING.DLL も問題ない.SB16 のドライバを入れれば音も出る.ハードの設定はデフォルトの I/O 0x220,IRQ 5.動きがひっかかるような時は全画面モードで.
昔のゲームだが,今でも十分におもしろい.そうそう,昔 200 面までクリアしたんだよな... 1999 年か.OS は Win95/98 だったようだ.


PC-DOS7 でもインストールしてみた.CONFIG.SYS は以下のとおり.

files=40
buffers=20,0
dos=high,umb
stacks=9,256
device=\himem.sys
country=081,932,\country.sys
devicehigh=\$font.sys /p=\  (インストール時は device= のほうがいいかも
devicehigh=\$disp.sys  (同上
rem device=\$ansi.sys

キーボードドライバが入ってないが,106 キーで使うときは,フリーの jis_a01.com をロードしていたようだ.もっとも,Win が起動してしまえばキーボードドライバは Win のものを使うし,インストールのときだけ我慢できればどうでもいい話だ.
こっちで必要なファイルは IBMBIO.COM IBMDOS.COM COMMAND.COM CONFIG.SYS $ANSI.SYS $DISP.SYS $FONT.SYS COUNTRY.SYS HIMEM.SYS $JPNHN16.FNT $JPNHN19.FNT $JPNZN16.FNT ぐらいか.この $JPNZN16.FNT が非常に綺麗で,pcf フォントに変換して長く使っているんだよな.
入れてみると少々起動が遅いものの,こちらのほうが安定しているように思う.


ここまで来たら,ということで英語版の Win3.1 も入れた.英語環境で入れればいいので,CONFIG.SYS は HIMEM.SYS の行まででいい.英語版はずいぶんと安定して入る.ユーザの数の差かねえ.


そうそう,ひとつ困ったことがあった.日本語 Win を入れる途中で,ユーザ名を入れる画面があるのだが,そこではカナキーが押された状態になっているのだ.101 キーボードでカナを解除するのってどうやるんだ?
CTRL + Shift + CapsLock らしい.思いつかんわ,そんなの.
いろいろ試したが,直らないなあ.ゲームするには十分だが,文字入力はできんな.

2011年2月11日金曜日

plone 4.03 インストール

web の管理をするのに,ローカルで CMS 的なものを動かして外向きにはそこから作った static な html を見せるようにしたら楽かなあ,とか思ったのでちょっと調査してみた.ところ,それなりに好みに会いそうに思ったのが plone だった.

opensouce だし debian なら apt で入るだろう,と考えていたのだが,パッケージはなくなっていた.うーん,と思いつつインストール記をググっていろいろやるが (ってのは zope を入れて plone を入れて... みたいなこと) なんだか上手くない.
さらにググっていると squeeze のリリースノートの 4.9. 時代遅れ (Obsolete) のパッケージ にあたった.そこには Unified Installer for Linux を使ってほしい、という開発者の要求に従って 削除された,とある.Unified Installer ... ってのは上でコンパイルしたパッケージのようだが,何か違うの?
そっちでググると Unified Installer 3.2.1 README.txt 日本語版 に当たった.これによれば,Unified Installer を入れれば,plone 用の zope やら python やらをまとめて (システムのものとは別に) インストールしてくれるらしい.
そういえばどこかで「バージョン依存性が高く面倒」みたいなのを見たが,その解決策が Unified Installer ということか.そこで前のを全部消して,Unified Installer だけ入れる.tar ball を展開して,

sudo ./install.sh --target=/opt/Plone standalone

とやる.最初に libssl-dev とか zlib-dev とかを要求されたが,その後はすんなり終了.管理ユーザをパスワードが勝手に生成されて表示されるので忘れずに記録,さらに /opt/Plone/zinstance/README.html を見ろ,と言われる.

それによれば,まず instance を作成して... instance って何?
instance ってのは,データやらツールやらをまとめて入れて置くところらしい.今コンパイルしたのをコピーして動かすってことかな?デフォルトでは /opt/Plone/zinstance にコピーまでは済んでいるとのことなので

$ sudo vi /opt/Plone/zinstance/buildout.cfg
$ sudo /opt/Plone/zinstance/bin/buildout

として初期設定とその反映をしてやる (のだと思う)
ここまで来たら起動できる.起動と終了は

$ sudo -u plone /opt/Plone/zinstance/bin/plonectl start
$ sudo -u plone /opt/Plone/zinstance/bin/plonectl stop

とやる.plone というユーザは,Unified Installer が作ってくれている.
起動したところでデフォルトの 8080 port にアクセスすると,どうやら起動してくれているようだ.