diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml b/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
index f06d650a3..1d276952e 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
@@ -32,6 +32,7 @@
+
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
index 31164f80f..3aba5b368 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
@@ -398,7 +398,7 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
mSurface = createSDLSurface(this);
mLayout = new RelativeLayout(this);
- mLayout.addView(mSurface);
+// mLayout.addView(mSurface);
// Get our current screen orientation and pass it down.
mCurrentOrientation = SDLActivity.getCurrentOrientation();
@@ -1883,15 +1883,15 @@ class SDLMain implements Runnable {
Log.v("SDL", "Running main function " + function + " from library " + library);
- SDLActivity.nativeRunMain(library, function, arguments);
+// SDLActivity.nativeRunMain(library, function, arguments);
- Log.v("SDL", "Finished main function");
-
- if (SDLActivity.mSingleton != null && !SDLActivity.mSingleton.isFinishing()) {
- // Let's finish the Activity
- SDLActivity.mSDLThread = null;
- SDLActivity.mSingleton.finish();
- } // else: Activity is already being destroyed
+// Log.v("SDL", "Finished main function");
+//
+// if (SDLActivity.mSingleton != null && !SDLActivity.mSingleton.isFinishing()) {
+// // Let's finish the Activity
+// SDLActivity.mSDLThread = null;
+// SDLActivity.mSingleton.finish();
+// } // else: Activity is already being destroyed
}
}
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so
index dbeab145e..fcd96d292 100644
Binary files a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so and b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so differ
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1 b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1
index 8c3cfa46d..3b72dcc17 100644
Binary files a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1 and b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1 differ
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so
index e236a9803..e73d30d28 100755
Binary files a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so and b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so differ
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/kotlin/Main.kt b/src/MeloNX-Skip/melonx-native/Android/app/src/main/kotlin/Main.kt
index 231462b4c..b6f918bfa 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/kotlin/Main.kt
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/kotlin/Main.kt
@@ -10,14 +10,19 @@ import android.app.Application
import androidx.activity.enableEdgeToEdge
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
+import androidx.compose.foundation.background
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.saveable.rememberSaveableStateHolder
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.app.ActivityCompat
import org.libsdl.app.SDLActivity
@@ -50,10 +55,14 @@ open class MainActivity: SDLActivity {
enableEdgeToEdge()
setContent {
- val saveableStateHolder = rememberSaveableStateHolder()
- saveableStateHolder.SaveableStateProvider(true) {
- PresentationRootView(ComposeContext())
- SideEffect { saveableStateHolder.removeState(true) }
+ Box {
+ SDLComposeSurface()
+
+ val saveableStateHolder = rememberSaveableStateHolder()
+ saveableStateHolder.SaveableStateProvider(true) {
+ PresentationRootView(ComposeContext())
+ SideEffect { saveableStateHolder.removeState(true) }
+ }
}
}
@@ -119,6 +128,15 @@ open class MainActivity: SDLActivity {
companion object {
}
+
+ @Composable
+ fun SDLComposeSurface() {
+ AndroidView(
+ factory = { context ->
+ mSurface
+ }
+ )
+ }
}
@Composable
diff --git a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
index 66430609f..8e1316346 100644
--- a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
+++ b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
@@ -139,8 +139,8 @@ private extension Ryujinx {
args.append(config.gamepath)
// Starts with vulkan
-// args.append("--graphics-backend")
-// args.append("Vulkan")
+ args.append("--graphics-backend")
+ args.append("Vulkan")
args.append(contentsOf: ["--memory-manager-mode", config.memoryManagerMode])
diff --git a/src/MeloNX-Skip/melonx-native/Sources/melonx/melonxApp.swift b/src/MeloNX-Skip/melonx-native/Sources/melonx/melonxApp.swift
index 67535a0b3..0224352b1 100644
--- a/src/MeloNX-Skip/melonx-native/Sources/melonx/melonxApp.swift
+++ b/src/MeloNX-Skip/melonx-native/Sources/melonx/melonxApp.swift
@@ -22,6 +22,7 @@ public struct melonxRootView : View {
logger.info("Welcome to Skip on \(androidSDK != nil ? "Android" : "Darwin")!")
logger.info("Skip app logs are viewable in the Xcode console for iOS; Android logs can be viewed in Studio or using adb logcat")
}
+ .opacity(0.3)
}
}
diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs
index 2ce4416f0..68c0eee81 100644
--- a/src/Ryujinx.Headless.SDL2/WindowBase.cs
+++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs
@@ -18,6 +18,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
using System.Threading;
using static SDL2.SDL;
using AntiAliasing = Ryujinx.Common.Configuration.AntiAliasing;
@@ -36,7 +37,7 @@ namespace Ryujinx.Headless.SDL2
private static readonly ConcurrentQueue _mainThreadActions = new();
- [LibraryImport("SDL2.framework/SDL2")]
+ [LibraryImport("SDL2", SetLastError = true)]
// TODO: Remove this as soon as SDL2-CS was updated to expose this method publicly
private static partial IntPtr SDL_LoadBMP_RW(IntPtr src, int freesrc);