スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


X68000エミュレータPX68KをiOSに移植する(準備編その1)

おぉ、一か月以上間があいて広告が追加されていますが、こんばんは。

twitterではちょこちょこと作業報告していましたが、iPhoneやiPad等、iOSデバイス向けにX68Kエミュのpx68kを移植しています。
現状Mac OS Xで動作するiOSシミュレータ上でpx68kが動作するところまで作業は完了しています。

その後、実機で動作させるのはどうするんだっけ?とか、
あー、ここまでの作業内容を記録しておかないとまた忘れるな、でもドキュメント書き面倒くさいなーとか、
考えているうちに二週間ほど過ぎてしまいました。

とりあえず忘れないうちに、今回と次回は作業メモです。

■SDLライブラリを作成する

px68kはSDL(Simple DirectMedia Layer)というライブラリを利用し、さまざまなデバイスへ移植しやすいエミュレータを目指しています。

今回は、このSDLライブラリをiOS向けにビルドする手順を説明していきます。
なお、Mac OS X 10.9 (Mavericks)、Xcode 5.0.2 を使用しています。

■SDLのソース入手

http://www.libsdl.org/download-2.0.php よりSDL2のソースアーカイブを取得します。
今回使ったのはSDL2-2.0.1.tar.gz

これを展開します。
今回は~/src/に展開しました。

■SDLプロジェクトをXcodeで開く

Finderで~/src/SDL2-2.0.1/Xcode-iOS/SDL/SDL.xcodeprojをダブルクリックしてXcodeを起動します。

Xcodeがインデックス作成などが終わり、落ち着くのを待ちます。以下の様にReadyとかになっていれば大丈夫そう。

スクリーンショット 2013-11-27 午後2-33-59

SDL:Ready の欄の右端のビックリマークをクリックすると、左側のツリーに「Validate Project Settings」とか出て、気になるのでクリックしてみます。

スクリーンショット 2013-11-27 午後2-46-45

Architectureの選別に関するBuild Settingの変更を勧められるので、よく分からないが「Perform Changes」をクリックします。

■ターゲットにするiOSバージョンの選択

hissoriiの手持ちのiPod touch 4Gが6.1.3なので、iOS Deployment Targetは6.1にしておきます。

スクリーンショット 2013-11-27 午後3-21-53


[Product]->[Scheme]はlibSDLがチェックされていることを確認しておきます。

スクリーンショット 2013-11-27 午後2-54-11


■実機デバイス向け、iOSシミュ向け、二つのライブラリの作成

ここから、実際にSDLのスタティックリンクライブラリを作成しますが、欲しいものは以下の二つです。
・armプロセッサ用にコンパイルされた、実機デバイス向けのライブラリ
・x86プロセッサ用にコンパイルされた、iOSシミュレータ向けのライブラリ

また、ビルドの仕方としては、DebugとReleaseがあるようです。
Debugビルドでは、ソースコードデバッグ用のコンパイルがされたり、コンパイル時の警告が出やすくなるのでしょう。

arm/x86、Debug/Releaseの組み合わせで4つのビルドパターンが考えられますが、
実機向けとしてarm/Release、iOSシミュ向けとしてx86/Debugの二つの組み合わせでビルドしたいと思います。


■実機デバイス向けライブラリ作成

まずは、実機向けのライブラリを作成します。

[Product]->[Destination]はiOS Deviceをチェック。

スクリーンショット 2013-11-27 午後2-56-27



[Product]->[Build]を選択すると
~/Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Products/Debug-iphoneos/libSDL2.a
が生成されました。

hissoriis-Mac:~ hissorii$ find . -name "libSDL2.a" -ls | grep Debug
569373 6032 -rw-r--r-- 1 hissorii staff 3086200 Nov 27 15:00 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/SDL.build/Debug-iphoneos/libSDL.build/Objects-normal/armv7/libSDL2.a
569374 6064 -rw-r--r-- 1 hissorii staff 3100952 Nov 27 15:00 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/SDL.build/Debug-iphoneos/libSDL.build/Objects-normal/armv7s/libSDL2.a
569376 12088 -rw-r--r-- 1 hissorii staff 6187200 Nov 27 15:00 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Products/Debug-iphoneos/libSDL2.a
hissoriis-Mac:~ hissorii$



[Product]->[Archive]を選択すると
~/Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/BuildProductsPath/Release-iphoneos/libSDL2.a (実際にはシンボリックリンク)が生成されました。

hissoriis-Mac:~ hissorii$ find . -name "libSDL2.a" -ls | grep -v Debug
569419 8 lrwxr-xr-x 1 hissorii staff 189 Nov 27 15:05 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/BuildProductsPath/Release-iphoneos/libSDL2.a -> /Users/hissorii/Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/IntermediateBuildFilesPath/UninstalledProducts/libSDL2.a
569987 6864 -rw-r--r-- 1 hissorii staff 3511512 Nov 27 15:06 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/IntermediateBuildFilesPath/SDL.build/Release-iphoneos/libSDL.build/Objects-normal/armv7/libSDL2.a
569988 6864 -rw-r--r-- 1 hissorii staff 3512784 Nov 27 15:06 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/IntermediateBuildFilesPath/SDL.build/Release-iphoneos/libSDL.build/Objects-normal/armv7s/libSDL2.a
570359 3072 -rw-r--r-- 1 hissorii staff 1572288 Nov 27 15:06 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/IntermediateBuildFilesPath/UninstalledProducts/libSDL2.a
hissoriis-Mac:~ hissorii$



今回はarm/Releaseが欲しいので、以下のライブラリを使用します。
~/Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Intermediates/ArchiveIntermediates/libSDL/BuildProductsPath/Release-iphoneos/libSDL2.a


ちなみに、[Product]->[Build]を選ぶとDebugビルドになり、[Product]->[Archive]を選ぶとReleaseビルドになりますが、
[Product]->[Scheme]->[Edit Scheme...]を選択すると、[Build]時や[Archive]時に何を実行するかを設定できるようです。


スクリーンショット 2013-11-27 午後3-29-10


■iOSシミュレータ向けライブラリ作成

次に、iOSシミュレータ用のライブラリを作成します。[Product]->[Destination]-> iOS Simulatorの[iPhone Retina (3.5-inch)] を選択します。
とりあえず上記デバイスを選びましたが、どれを選んでも大丈夫だと思います。

デバッグ用ビルドをしたいので、[Product]->[Build]を選択します。
以下にiOSシミュ向けのlibSDL2.aが作成されました。

hissoriis-Mac:~ hissorii$ find . -name "libSDL2.a" -ls | grep simulator
572387 6664 -rw-r--r-- 1 hissorii staff 3410152 Nov 27 15:36 ./Library/Developer/Xcode/DerivedData/SDL-bydmekuazgquqgarccdpapcovtbe/Build/Products/Debug-iphonesimulator/libSDL2.a
hissoriis-Mac:~ hissorii$



以上で、実機向け、iOSシミュ向けの二つのSDLライブラリ libSDL2.a が作成できました。
これらはpx68k本体のビルド時にリンクされます。

次回は、px68k本体のXcodeプロジェクトを作成し、iOSシミュレータ上で動かすまでの手順を追っていきます。


Comment

[276]

すみません。ブログ更新する間にずっとtweeterしてたんですね。知らなかった。ほぼ毎日、ブログの更新がないか見ていました。iosに移植頑張ってください。僕はandroidだから気長にandroidの更新、待ち続けます。
元気で何よりです。
マウスが実装する日を気長に待つています。

コメントの投稿


管理者にだけ表示を許可する

Trackback

http://hissorii.blog45.fc2.com/tb.php/240-a0ec8e45

«  | HOME |  »

プロフィール

ひっそりぃ

Author:ひっそりぃ
Twitter:@hissorii_com
GitHub:hissorii


月別アーカイブ


最新記事


カテゴリ



最新コメント


最新トラックバック




RSSリンクの表示


Amazon


QRコード

QRコード

Amazon


ブログランキング

ブログランキング【くつろぐ】
にほんブログ村 ゲームブログ×PlayNCBlogへ

メールフォーム

名前:
メール:
件名:
本文:


カウンタ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。