Skip to content

Commit 3d49972

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

4 files changed

Lines changed: 16 additions & 43 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: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ import androidx.compose.material.icons.outlined.Info
3434
import androidx.compose.material3.CenterAlignedTopAppBar
3535
import androidx.compose.material3.CircularProgressIndicator
3636
import androidx.compose.material3.DrawerValue
37-
import androidx.compose.material3.DropdownMenu
38-
import androidx.compose.material3.DropdownMenuItem
3937
import androidx.compose.material3.ExperimentalMaterial3Api
4038
import androidx.compose.material3.FloatingActionButton
4139
import androidx.compose.material3.HorizontalDivider
@@ -47,7 +45,6 @@ import androidx.compose.material3.ModalNavigationDrawer
4745
import androidx.compose.material3.NavigationDrawerItem
4846
import androidx.compose.material3.Scaffold
4947
import androidx.compose.material3.Text
50-
import androidx.compose.material3.TextButton
5148
import androidx.compose.material3.TopAppBarDefaults
5249
import androidx.compose.material3.rememberDrawerState
5350
import androidx.compose.runtime.Composable
@@ -368,7 +365,6 @@ fun AppNavHost() {
368365
composable(
369366
route = "rpcsx_channels"
370367
) {
371-
var downloadArch by remember { mutableStateOf(RpcsxUpdater.getArch()) }
372368
UpdateChannelListScreen(
373369
navigateBack = navController::navigateUp,
374370
title = stringResource(R.string.rpcsx_download_channel),
@@ -426,37 +422,6 @@ fun AppNavHost() {
426422
}
427423
},
428424
isDeletable = { isValidChannel(it, ReleaseRpcsxChannel, DevRpcsxChannel) },
429-
actions = {
430-
var expanded by remember { mutableStateOf(false) }
431-
432-
TextButton(onClick = { expanded = true }) {
433-
Text(downloadArch)
434-
}
435-
436-
DropdownMenu(
437-
expanded = expanded,
438-
onDismissRequest = { expanded = false }
439-
) {
440-
listOf(
441-
"armv8-a",
442-
"armv8.1-a",
443-
"armv8.2-a",
444-
"armv8.4-a",
445-
"armv8.5-a",
446-
"armv9-a",
447-
"armv9.1-a",
448-
).forEach { arch ->
449-
DropdownMenuItem(
450-
text = { Text(arch) },
451-
onClick = {
452-
RpcsxUpdater.setArch(arch)
453-
downloadArch = arch
454-
expanded = false
455-
}
456-
)
457-
}
458-
}
459-
}
460425
)
461426
}
462427

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

Lines changed: 10 additions & 6 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,12 +41,15 @@ object RpcsxUpdater {
4041
return "$version-$arch"
4142
}
4243

43-
fun getArch(): String {
44-
return GeneralSettings["rpcsx_arch"] as? String ?: "armv8-a"
44+
fun getAbi(): String {
45+
return Build.SUPPORTED_64_BIT_ABIS[0]
4546
}
4647

47-
fun setArch(arch: String) {
48-
GeneralSettings["rpcsx_arch"] = arch
48+
fun getArch(): String {
49+
return when (getAbi()) {
50+
"x86_64" -> "x86-64"
51+
else -> "armv8-a"
52+
}
4953
}
5054

5155
suspend fun checkForUpdate(): String? {
@@ -57,7 +61,7 @@ object RpcsxUpdater {
5761
val release = fetchResult.content as GitHub.Release
5862
val releaseVersion = "${release.name}-${arch}"
5963

60-
if (release.assets.find { it.name == "librpcsx-android-arm64-v8a-${arch}.so" }?.browser_download_url == null) {
64+
if (release.assets.find { it.name == "librpcsx-android-${getAbi()}-${arch}.so" }?.browser_download_url == null) {
6165
return null
6266
}
6367

@@ -85,7 +89,7 @@ object RpcsxUpdater {
8589
is GitHub.FetchResult.Success<*> -> {
8690
val release = fetchResult.content as GitHub.Release
8791
val releaseVersion = "${release.name}-${arch}"
88-
val releaseAsset = release.assets.find { it.name == "librpcsx-android-arm64-v8a-$arch.so" }
92+
val releaseAsset = release.assets.find { it.name == "librpcsx-android-${getAbi()}-$arch.so" }
8993

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

0 commit comments

Comments
 (0)