Android:Common Source Code Project ソース&ビルド方法

Common Source Code Project のPCエミュレータを Android で動作できるように移植しました。ソースがだいぶおちついてきたので、公開します。

元ソースとの差分でおいてあります。ビルド済みAPKファイルの公開は今のところ考えていません。(というか、公開可能なAPK作成方法もよくわかってないです…w)

Common Source Code Project for Android
https://github.com/shikarunochi/CommonSourceCodeProjectAndroid

ビルドは以下の手順となります。


AndroidStudio & NDK のインストール

こちら参考にどうぞ。

Android:はじめてのAndroid NDK
http://shikarunochi.matrix.jp/?p=4080


プロジェクトファイルをそろえる

Android版ソースファイルを一式取得。

https://github.com/shikarunochi/CommonSourceCodeProjectAndroid/tree/master/emulator

武田さんのページのソースファイルを取得。

http://takeda-toshiya.my.coocan.jp/common/history/index.html

移植ベースは、2020-04-06 版です。以下のようにソースコピーしてください。

/source/src/*.cpp → emulator/app/src/main/cpp/*.cpp
/source/src/*.h → emulator/app/src/main/cpp/*.h
/source/src/vm/* → emulator/app/src/main/cpp/vm/*

このとき同名ファイルの上書きは「しない」でください。

サウンド用 oboeライブラリソースファイルをコピー

https://github.com/google/oboe

以下のようにソースコピーしてください。

/include/oboe/* → emulator/oboe/include/oboe/*
/src/* → emulator/oboe/src/*
/CMakeLists.txt → emulator/oboe/CMakeLists.txt


AndroidStudioでプロジェクトを開く

emulatorディレクトリを開きます。

読み込みや解析が入るので、AndroidStudioが落ち着くまでしばらくまってください。

グルグル…。

View – Tool Windows の Build Variants を開きます。

ビルド対象を選択します。Debug版を選択してください。対象機種の増やし方は、またのちほど。

ビルドしてエラーが出ないことを確認してください。

初回は上のダイアログ表示の後、しばらく時間かかるかも。


Androidへのインストール

インストールするAndroid端末をPCに接続して実行してください。Android端末にインストールされます。

build.gradle で minSdkVersion 26 指定してるので、Android 8 (Oreo) 以降が対象です。minSdkVersion 21 (Android 5 Lollipop)あたりでも大丈夫かも。あんまり深く探ってないです。

インストール直後は、ストレージ権限がないために、必要なストレージにアクセスできません。アプリ権限を付与して、アプリ再起動してください。

権限付与の方式はAndroid機種ごとに微妙に違うかも?アプリ→権限→ストレージで見てみてください。

BIOS系ROMイメージファイルは「/Documents/emulator/ [エミュレータ名] + ROM/」に入れてください。MZ-1500であれば「/Documents/emulator/mz1500ROM」となります。

上記ディレクトリの下、FDイメージファイルは「DISK」、テープイメージファイルは「TAPE」、カートリッジイメージファイルは「CART」、QDイメージファイルは「QD」に入れてください。

MZ-1500のTAPEファイルであれば「/Documents/emulator/mz1500ROM/TAPE」になります。

これで、起動できると思います。起動に必要なROM等のファイルは武田さんのPC版と同じなので、まずはPC版で起動することを確認してみてください。


ビルド対象機種の追加方法

機種用のソース一覧を追加。
emulator/app/src/main/cpp/*.txt
元ソースの vc++2013/*.vcxproj を参考に、必要な *.c ファイルと *.h ファイルを列記してください。

emulator/app/src/main/cpp/CMakeLists.txt に、機種用の記載を追加

emulator/app/build.gradle に、機種用の記載を追加

いずれも、他の機種を参考に追加してください。

また、以下のファイルを用意すると、アイコンとアプリ名が表示されます。なければ、アプリ名emulatorsで、ドロイド君アイコンになります。

emulator/app/src/[機種名]/res/ 以下
minmao-***/ アイコン画像ファイル
values/string.xml アプリ名

アイコン画像ファイルは、元ソースのアイコンファイルから生成しました。おおもとは天ぷら工房さんのアイコンですね。

天ぷら工房
http://homepage2.nifty.com/tenpurako/


現状、全機種をビルドしてみてはいないので、ビルド時にエラーが出たり、動作が変になる機種もあるかもしれないです。(たぶんあります)

ふふー。充実…!