Skip to content

Commit 98551b3

Browse files
committed
misc: add support for android-arm64-v8a
1 parent e6cce38 commit 98551b3

File tree

9 files changed

+265
-10
lines changed

9 files changed

+265
-10
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ jobs:
2525
rid: ios-arm64
2626
- os: ubuntu-latest
2727
rid: linux-x64
28+
- os: ubuntu-latest
29+
rid: android-arm64-v8a
2830
steps:
2931
- uses: actions/checkout@v2
3032
- uses: actions/setup-dotnet@v1

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ In order to not accidentally commit those files, we recommend to ignore them:
3737
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/PinMame.dll.meta
3838
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/VisualPinball.Engine.PinMAME.dll.meta
3939
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/libpinmame.so.3.5.meta
40+
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/PinMame.dll.meta
41+
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/VisualPinball.Engine.PinMAME.dll.meta
42+
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/libpinmame.3.5.so.meta
4043
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx-x64/PinMame.dll.meta
4144
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx-x64/VisualPinball.Engine.PinMAME.dll.meta
4245
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx-x64/libpinmame.3.5.dylib.meta

VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/PinMame.dll.meta

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/VisualPinball.Engine.PinMAME.dll.meta

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/libpinmame.3.5.so.meta

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VisualPinball.Engine.PinMAME.Unity/Plugins/ios-arm64/libpinmame.3.5.dylib.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VisualPinball.Engine.PinMAME.Unity/Runtime/PinMameGamelogicEngine.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@
2020

2121
using System;
2222
using System.Collections.Generic;
23+
using System.IO;
2324
using System.Linq;
2425
using System.Runtime.InteropServices;
2526
using NLog;
2627
using PinMame;
2728
using UnityEngine;
29+
using UnityEngine.Networking;
2830
using VisualPinball.Engine.Game.Engines;
2931
using VisualPinball.Unity;
3032
using Logger = NLog.Logger;
@@ -141,16 +143,34 @@ public void OnInit(Player player, TableApi tableApi, BallManager ballManager)
141143
OnLampChanged?.Invoke(this, new LampEventArgs(lamp.Id, 0));
142144
}
143145

144-
Logger.Info($"New PinMAME instance at {(double)AudioSettings.outputSampleRate / 1000}kHz");
145-
146146
string vpmPath = null;
147147

148-
#if UNITY_IOS && !UNITY_EDITOR
149-
vpmPath = Application.dataPath + "/pinmame";
148+
#if (UNITY_IOS || UNITY_ANDROID) && !UNITY_EDITOR
149+
vpmPath = Path.Combine(Application.persistentDataPath, "pinmame");
150+
Directory.CreateDirectory(Path.Combine(vpmPath, "roms"));
151+
152+
byte[] data = null;
153+
154+
#if UNITY_IOS
155+
data = File.ReadAllBytes(Path.Combine(Application.streamingAssetsPath, $"{romId}.zip");
156+
#else
157+
UnityWebRequest webRequest = new UnityWebRequest(Path.Combine(Application.streamingAssetsPath, $"{romId}.zip"));
158+
159+
webRequest.downloadHandler = new DownloadHandlerBuffer();
160+
webRequest.SendWebRequest();
161+
162+
while (!webRequest.isDone) { };
163+
164+
data = webRequest.downloadHandler.data;
165+
#endif
166+
167+
File.WriteAllBytes(Path.Combine(vpmPath, "roms", $"{romId}.zip"), data);
150168
#endif
151169

170+
Logger.Info($"New PinMAME instance at {(double)AudioSettings.outputSampleRate / 1000}kHz");
171+
152172
_pinMame = PinMame.PinMame.Instance(PinMameAudioFormat.AudioFormatFloat, AudioSettings.outputSampleRate, vpmPath);
153-
173+
154174
_pinMame.SetHandleKeyboard(false);
155175
_pinMame.SetHandleMechanics(DisableMechs ? 0 : 0xFF);
156176

VisualPinball.Engine.PinMAME/VisualPinball.Engine.PinMAME.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
<RuntimeIdentifier Condition="$([MSBuild]::IsOSPlatform('Linux'))">linux-x64</RuntimeIdentifier>
1414
</PropertyGroup>
1515
<ItemGroup>
16-
<PackageReference Include="PinMame" Version="0.2.0-preview.3" />
17-
<PackageReference Include="PinMame.Native" Version="3.5.0-preview.9" />
18-
<PackageReference Include="VisualPinball.Engine" Version="0.0.1-preview.83" />
16+
<PackageReference Include="PinMame" Version="0.2.0-preview.5" />
17+
<PackageReference Include="PinMame.Native" Version="3.5.0-preview.14" />
18+
<PackageReference Include="VisualPinball.Engine" Version="0.0.1-preview.87" />
1919
<!-- Uncomment when doing local dev -->
2020
<!--
2121
<Reference Include="VisualPinball.Engine">
@@ -27,7 +27,7 @@
2727
<ItemGroup>
2828
<Plugins Include="$(OutDir)$(AssemblyName).dll" />
2929
<Plugins Include="$(OutDir)PinMame.dll" />
30-
<Plugins Include="$(NuGetPackageRoot)\pinmame.native.$(RuntimeIdentifier)\3.5.0-preview.9\runtimes\$(RuntimeIdentifier)\native\*" />
30+
<Plugins Include="$(NuGetPackageRoot)\pinmame.native.$(RuntimeIdentifier)\3.5.0-preview.14\runtimes\$(RuntimeIdentifier)\native\*" />
3131
</ItemGroup>
3232
<Message Text="PluginsDeploy: @(Plugins)" />
3333
<Copy SourceFiles="@(Plugins)" DestinationFolder="..\VisualPinball.Engine.PinMAME.Unity\Plugins\$(RuntimeIdentifier)" SkipUnchangedFiles="true" />

0 commit comments

Comments
 (0)