月曜日, 8月 31, 2009

Mac OS X 版 Tokyo Railways の64ビット対応


 8月28日に発売されたばかりの最新版Mac OS X v10.6 "Snow Leopard"では、OSに含まれるプログラムがほとんど64ビット化されています。で、それなら、"Tokyo Railways コンピュータ版"も64ビットで動かそうと思って、今回のv1.67のリリースで64ビット対応をやってます。
 でも、"Tokyo Railways"はJavaで作ってるので、本来は32ビットとか64ビットとか関係ありません。そういうのはJavaのランタイムの種類に過ぎず、どっちを起動するかどうかによって決まって来ます。
 Windows版の場合、EXEファイルはLounch4Jで作っているのですが、このEXEは32ビットなのですが、64ビット版のWindows上に64ビット版のJavaランタイムをインストールしておけば、EXEは32ビットでもちゃんと64ビットのランタイムが起動されます。
 ですが、OS X版の場合は、Javaランタイムの起動は、OSに付属しているJavaアプリ起動用のスタブを利用していて、"Leopard"までのOSにはこのスタブが32ビットのJavaランタイムを起動するものを付属させているため、"Tokyo Railways"も32ビットで動作していました。

 で、今回、"Snow Leopard"がリリースされたわけですが、このOSに付属しているスタブはちゃんと64ビット版のJavaランタイムを起動しているようです。これを確かめるため、"Tokyo Railways"v1.67では、"ゲームについて"の画面に、ランタイムとOSの情報を追加しました。
 これを"Snow Leopard"で起動するとこんな情報が出てきます。

 "Java Runtime"の直後の"1.6.0_15"はランタイムのバージョンで、1.6はJava 6.0を示しています。(1.5以降は 1.5 -> 5.0、1.6 -> 6.0と読み替える必要があります)
 同じ画面を"Leopard"で見てみると、"1.5.0_13"と書いてあるので、今回の"Snow Leopard"でJavaのバージョンがやっと6.0にあがったことがわかります。
 で、さらに後にはOSのバージョンを表示しており、カッコ内にはアーキテクチャーを表示しているのですが、このアーキテクチャーが"
x86_64"と表示されていると、64ビット版のランタイムを示しているようです。
 この部分が"i386"と表示されていると32ビット版のランタイムで動作していることを示します。

 うちにある以下の3つの環境でv1.67を試してみた結果は以下の通りです。
 MacBook Air (intel Core2) + Snow Leopard → v1.6.0_15、x86_64
 MacBook Pro (intel Core2) + Leopard → v1.5.0_13、x86_64
 Mac Mini (intel Core) + Leopard → v1.5.0_13、i386

 "Snow Leopard"付属のスタブで開発しても、ちゃんとLeopardで起動することが確認できました。
 また、"Snow Leopard"でなくて"Leopard"でも、CPUが64ビットに対応していれば、このv1.67は64ビットで動作することも確認できました。もちろんCPUが64ビットに未対応な場合(intel Core)は、32ビットで動作します。

 というわけで、今回の64ビット化の話は解決。

 ちなみにWindowsの場合、64ビットだとアーキテクチャーは"amd64"、32ビットだと"x86"になります。
 なんで、同じものがMac OS XとWindowsで表記が違うんでしょうねえ。
 

0 件のコメント: