Skip to content

Commit b70b93e

Browse files
committed
build: Add x86_64 ABI support
1 parent a023f8d commit b70b93e

4 files changed

Lines changed: 20 additions & 7 deletions

File tree

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ android {
2020

2121
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2222
ndk {
23-
abiFilters += listOf("arm64-v8a" /*, "x86_64" */)
23+
abiFilters += listOf("arm64-v8a", "x86_64")
2424
}
2525

2626
buildConfigField("String", "Version", "\"v${versionName}\"")

app/src/main/cpp/native-lib.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ Java_net_rpcsx_RPCSX_getVersion(JNIEnv *env, jobject) {
286286
extern "C" JNIEXPORT jboolean JNICALL
287287
Java_net_rpcsx_RPCSX_setCustomDriver(JNIEnv *env, jobject, jstring jpath,
288288
jstring jlibraryName, jstring jhookDir) {
289+
#ifdef __aarch64__
289290
if (rpcsxLib.setCustomDriver == nullptr) {
290291
return false;
291292
}
@@ -318,4 +319,7 @@ Java_net_rpcsx_RPCSX_setCustomDriver(JNIEnv *env, jobject, jstring jpath,
318319
}
319320

320321
return true;
321-
}
322+
#else
323+
return false;
324+
#endif // __aarch64__
325+
}

app/src/main/java/net/rpcsx/ui/navigation/AppNavHost.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,6 @@ fun AppNavHost() {
368368
composable(
369369
route = "rpcsx_channels"
370370
) {
371-
var downloadArch by remember { mutableStateOf(RpcsxUpdater.getArch()) }
372371
UpdateChannelListScreen(
373372
navigateBack = navController::navigateUp,
374373
title = stringResource(R.string.rpcsx_download_channel),
@@ -426,7 +425,11 @@ fun AppNavHost() {
426425
}
427426
},
428427
isDeletable = { isValidChannel(it, ReleaseRpcsxChannel, DevRpcsxChannel) },
429-
actions = {
428+
actions = actions@{
429+
if (RpcsxUpdater.getAbi() != "arm64-v8a") {
430+
return@actions
431+
}
432+
var downloadArch by remember { mutableStateOf(RpcsxUpdater.getArch()) }
430433
var expanded by remember { mutableStateOf(false) }
431434

432435
TextButton(onClick = { expanded = true }) {

app/src/main/java/net/rpcsx/utils/RpcsxUpdater.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package net.rpcsx.utils
22

33
import android.content.Context
44
import android.content.Intent
5+
import android.os.Build
56
import android.util.Log
67
import kotlinx.coroutines.Dispatchers
78
import kotlinx.coroutines.withContext
@@ -40,8 +41,13 @@ object RpcsxUpdater {
4041
return "$version-$arch"
4142
}
4243

44+
fun getAbi(): String = Build.SUPPORTED_64_BIT_ABIS[0]
45+
4346
fun getArch(): String {
44-
return GeneralSettings["rpcsx_arch"] as? String ?: "armv8-a"
47+
return when (getAbi()) {
48+
"x86_64" -> "x86-64"
49+
else -> GeneralSettings["rpcsx_arch"] as? String ?: "armv8-a"
50+
}
4551
}
4652

4753
fun setArch(arch: String) {
@@ -57,7 +63,7 @@ object RpcsxUpdater {
5763
val release = fetchResult.content as GitHub.Release
5864
val releaseVersion = "${release.name}-${arch}"
5965

60-
if (release.assets.find { it.name == "librpcsx-android-arm64-v8a-${arch}.so" }?.browser_download_url == null) {
66+
if (release.assets.find { it.name == "librpcsx-android-${getAbi()}-${arch}.so" }?.browser_download_url == null) {
6167
return null
6268
}
6369

@@ -85,7 +91,7 @@ object RpcsxUpdater {
8591
is GitHub.FetchResult.Success<*> -> {
8692
val release = fetchResult.content as GitHub.Release
8793
val releaseVersion = "${release.name}-${arch}"
88-
val releaseAsset = release.assets.find { it.name == "librpcsx-android-arm64-v8a-$arch.so" }
94+
val releaseAsset = release.assets.find { it.name == "librpcsx-android-${getAbi()}-$arch.so" }
8995

9096
if (releaseVersion != getCurrentVersion() && releaseAsset?.browser_download_url != null) {
9197
val target = File(destinationDir, "librpcsx-android_${arch}_${release.name}.so")

0 commit comments

Comments
 (0)