改革アーケードエミュレータMAME(アンドロイド版)

githubの上のオープンソースプロジェクトは、MAME4all MAMEできるエミュレータのiOSとAndroid上で動作しているが、理由は(7--8年プロジェクト前)より遠くの年の、コードは基本的なクローンダウンをコンパイルしません。

元githubのオープンソースのプロジェクトではなく、元のプロジェクトのディレクトリ構造で見ることができますが、SVNバージョン管理を行っているが、すべてのその時間はgithubのに引っ掛かっていない後、これは、正常です。まず、アップグレード、クローン、読者の便宜の記録処理を容易にするためにコードクローンダウン、ソースプロジェクト部門の著者。最後のタグに基づいて、私のGitHub上で持つようにコードを変更する「1.9.2(0.139u1)をMAME4droid」MAME4Mobileこの資料では、このコンピレーションに基づいて変更されます

環境:

  1. マックOS X 10.14.4
  2. Androidのスタジオ3.5.2
  3. NDK 17.2.4988734

まず、Androidのメーカーのインポート

  オリジナルのAndroidプロジェクトは、Eclipseに基づくべきです。Androidのスタジオメニューファイルと - >新規 - > [インポートプロジェクトは... ASプロジェクトにインポートし、最終的なプロジェクトは、私はgithubのにされています

第二に、コンパイルlibMAME4droid

  このステップでは、あまりにも面倒で、主な仕事は、このステップに焦点を当てています。

  1. 配置makefile

  ここで挫折した後、mrpostiga / imame4all様々なルートを設定するには、ローカルNDKのメイクファイルの構成環境に依存する必要性、ldflagが含まれます。など試してみましたGCC、打ち鳴らす、コンパイルが失敗し、ファイルが受け入れ打ち鳴らすの書き込みが多く、およびmakefileのコンパイラオプションではありませんGNU(0_0)です。ソースは、ファイルの拡張子に基づいて言語の種類は、コンパイルエラーになりますかどうかを判断するために、CおよびC ++コンパイラの究極のミックスです通り。私は両方のCをコンパイルすることができますし、C ++をコンパイルすることができ、++グラムを使用することにしました。  

  私はので、NDK NDK 17.2.4988734を使用  NDK-R18からアンドリュースは、GCCから取り出し、完全にgnustl、ガビ++とのSTLportを削除します。シミュレータのソースコードは、STLを使用します。

  githubのメイクファイルの特定の設定ファイルを参照してください。

  2.コンパイル

(直接勧告の実施における長い間ここにコンパイルされ、私のgitのルートディレクトリを作り、そして時には、makeコマンドが自動的に何度も再コンパイルにつながる、道OBJファイルを更新していない、あまりにも多くの時間を変更遭遇)

コンパイルエラーopensl_snd.c:51:30:ERROR: 'のmemcpy' はこのスコープで宣言されていなかった、memcpyのを見つけることができません。opensl_snd.cでのソリューション追加する#include <string.hの>

aarch64-linuxの - アンドロイド/ビン/ ldは:そのようなファイルやディレクトリとaarch64-linuxの - アンドロイド/ビン/ LDを::crtbegin_so.oを見つけることはできませんcrtend_so.oを見つけることができません:ldは常に見つけることができませんなぜそのようなファイルやディレクトリは知っているんではありませんこの構成では2 .oの-Lオプションは、メイクファイルに通じリンクと同じディレクトリにコピーするcrtend_so.o、crtbegin_so.oにない仕事、そして最終的には決してしません。(その後のln -sソフトの接続が自動的にLN armv7aメイクとarmv8aに設定されている方法に変更。

libMAME4droid.so:失敗のdlopen:このシンボルを見つけられませんシンボル「_ZNSs4_Rep20_S_empty_rep_storageE」_ZNSs4_Rep20_S_empty_rep_storageEを見つけることができない、捜査はC ++文字列型のデフォルト値であり、この感覚は、携帯電話で発見されていない、私はAPKバッグlibgnustl_shared.soをヒットしてみてください実行して解決しました。(私はApplication.mkでAS-3.4.1が設定されているAPP_STLの古いバージョンを使用します。= gnustl_shared後、NKD-ビルドは自動的にlibgnustl_shared.so 3.5アップグレードは、この動作を持っていないとした後、LIBS / armeabi-XXXディレクトリにコピーします、私は知っている)機能として、この点では変更されませんしないでください

 

コンパイルされた最終結果はMAMEまたはmame64バイナリ当社libMAME4droid.soライブラリという名前が付けられます。

もちろん、また、JNIファイルをコンパイルするためのプロジェクトを設定する必要性がある、あなたはNDKビルドまたはcmakeの使用を選択することができます。私は2つの種類、次のアプリは2つのbuild.gradleのコンパイル・モードを切り替えることができ変更について書きました。

 

 

3.適応

横向きで電話アップを実行した後、ロッカーはAを見つけるだろう、B、X、Yは、ゲーム画面をブロックしているが、多くの空白領域が両側にあります。図:

水平方向のスクリーンショット

 

ここで私は単に何最終的な結果を適応させる、プラグ

適応した後、

 

 目にはこの楽しいです。解像度の下の生のディレクトリに配置された設定ファイルの書き込みインタフェースのレイアウト構成。最初の列は、デジタル制御のタイプを示し、2番目の列は興味のある学生がMainHelperを見て制御ID、3列目...のx座標を表し、 - > inputHandler.readControllerValues

  原作者のためのconfigure画面スペースにAndroidデバイスを基づいていました。現在のAndroid携帯電話は明らかにフィットしていないで、単に私の名誉のV10の効果に、生で16_9コンテンツに生大のコピーの弟の上に示すように。

  4.ファイル名を指定して実行  

  最後に幸せになることができ、プレイを開始すると、コイン。

  レンダリング

 

第三に、要約

  MAMEアーケードエミュレータエンジンは、クロスプラットフォームですが、最新バージョンでは、互換性のあるモバイルデバイスとは見なされないようです。本明細書中で使用される、コアのソースコードが0.139u1旧バージョンであるため、ROMのオンライン時間も次のバージョンとの互換性に注意を払う見つけます。

  私は次の時間までにコンパイルされていないのiOSのバージョンがあります~~(プロジェクト忙しく)

 

  過去6ヶ月の間に私はAndroidは、iOSのは、長い時間に従事していなかった彼らが追加された新機能何ああ迅速、Xcodeのああを知らない取得することとなっています。アップルので、画面の前髪の外に、より多くのとAppleを参照するのを待つ〜

 

おすすめ

転載: www.cnblogs.com/ciml/p/12028435.html