Fix onscreen controller and optimize stuff

This commit is contained in:
Stossy11 2024-12-01 22:38:05 +11:00
parent 73f14cf59c
commit bb4e7314a5
5 changed files with 34 additions and 27 deletions

View File

@ -494,7 +494,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportsDocumentBrowser = YES; INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.6; IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
@ -559,6 +559,12 @@
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
@ -591,7 +597,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportsDocumentBrowser = YES; INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.6; IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
@ -656,6 +662,12 @@
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;

View File

@ -150,20 +150,19 @@ struct ContentView: View {
private func setupEmulation() { private func setupEmulation() {
virtualController?.disconnect() virtualController?.disconnect()
guard let game = game else { return }
if controllersList.first(where: { $0 == onscreencontroller}) != nil { if controllersList.first(where: { $0 == onscreencontroller}) != nil {
controllerCallback = { controllerCallback = {
DispatchQueue.main.async { DispatchQueue.main.async {
controllersList = Ryujinx.shared.getConnectedControllers() controllersList = Ryujinx.shared.getConnectedControllers()
print(currentControllers) print(currentControllers)
start(displayid: 1) start(displayid: 1)
} }
} }
showVirtualController() showVirtualController()
} else { } else {
DispatchQueue.main.async { DispatchQueue.main.async {
print(currentControllers) print(currentControllers)
start(displayid: 1) start(displayid: 1)
@ -172,16 +171,17 @@ struct ContentView: View {
} }
private func refreshControllersList() { private func refreshControllersList() {
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
controllersList = Ryujinx.shared.getConnectedControllers() DispatchQueue.main.async {
var controller = controllersList.first(where: { $0.name.hasPrefix("Apple")}) controllersList = Ryujinx.shared.getConnectedControllers()
self.onscreencontroller = (controller ?? Controller(id: "", name: "")) var controller = controllersList.first(where: { $0.name.hasPrefix("Apple")})
if controllersList.count > 2 { self.onscreencontroller = (controller ?? Controller(id: "", name: ""))
let controller = controllersList[2] if controllersList.count > 2 {
currentControllers.append(controller) let controller = controllersList[2]
currentControllers.append(controller)
} else if let controller = controllersList.first(where: { $0.id == onscreencontroller.id }), !controllersList.isEmpty { } else if let controller = controllersList.first(where: { $0.id == onscreencontroller.id }), !controllersList.isEmpty {
currentControllers.append(controller) currentControllers.append(controller)
}
} }
} }
} }
@ -200,7 +200,6 @@ struct ContentView: View {
config.gamepath = game.path config.gamepath = game.path
config.inputids = currentControllers.map(\.id) config.inputids = currentControllers.map(\.id)
allocateMemory()
do { do {
try Ryujinx.shared.start(with: config) try Ryujinx.shared.start(with: config)
@ -209,16 +208,6 @@ struct ContentView: View {
} }
} }
private func allocateMemory() {
let physicalMemory = ProcessInfo.processInfo.physicalMemory
let totalMemoryInGB = Double(physicalMemory) / (1024 * 1024 * 1024)
let pointer = UnsafeMutableRawPointer.allocate(
byteCount: Int(totalMemoryInGB),
alignment: MemoryLayout<UInt8>.alignment
)
pointer.initializeMemory(as: UInt8.self, repeating: 0, count: Int(totalMemoryInGB))
}
private func setMoltenVKSettings() { private func setMoltenVKSettings() {
if let configs = loadSettings() { if let configs = loadSettings() {

View File

@ -9,6 +9,7 @@ import UIKit
import MetalKit import MetalKit
import SDL2 import SDL2
/*
class SDLView: UIView { class SDLView: UIView {
var sdlwin: OpaquePointer? var sdlwin: OpaquePointer?
@ -82,3 +83,6 @@ class SDLView: UIView {
syncSDLWindowPosition() syncSDLWindowPosition()
} }
} }
*/

View File

@ -9,7 +9,7 @@ import UIKit
import SwiftUI import SwiftUI
import SDL2 import SDL2
import GameController import GameController
/*
struct SDLViewRepresentable: UIViewRepresentable { struct SDLViewRepresentable: UIViewRepresentable {
let configure: (UInt32) -> Void let configure: (UInt32) -> Void
func makeUIView(context: Context) -> SDLView { func makeUIView(context: Context) -> SDLView {
@ -25,3 +25,5 @@ struct SDLViewRepresentable: UIViewRepresentable {
} }
} }
*/