forked from MeloNX/MeloNX
Fix Mario Kart 8 Crash and SMO Glitching Issues :3
This commit is contained in:
parent
160a58e127
commit
2901f462aa
@ -24,13 +24,13 @@ namespace ARMeilleure.Native
|
|||||||
public static unsafe void Copy(IntPtr dst, IntPtr src, ulong n) {
|
public static unsafe void Copy(IntPtr dst, IntPtr src, ulong n) {
|
||||||
// When NativeAOT is in use, we can toggle per-thread write protection without worrying about breaking .NET code.
|
// When NativeAOT is in use, we can toggle per-thread write protection without worrying about breaking .NET code.
|
||||||
|
|
||||||
//pthread_jit_write_protect_np(0);
|
// pthread_jit_write_protect_np(0);
|
||||||
|
|
||||||
var srcSpan = new Span<byte>(src.ToPointer(), (int)n);
|
var srcSpan = new Span<byte>(src.ToPointer(), (int)n);
|
||||||
var dstSpan = new Span<byte>(dst.ToPointer(), (int)n);
|
var dstSpan = new Span<byte>(dst.ToPointer(), (int)n);
|
||||||
srcSpan.CopyTo(dstSpan);
|
srcSpan.CopyTo(dstSpan);
|
||||||
|
|
||||||
//pthread_jit_write_protect_np(1);
|
// pthread_jit_write_protect_np(1);
|
||||||
|
|
||||||
// Ensure that the instruction cache for this range is invalidated.
|
// Ensure that the instruction cache for this range is invalidated.
|
||||||
sys_icache_invalidate(dst, (IntPtr)n);
|
sys_icache_invalidate(dst, (IntPtr)n);
|
||||||
|
@ -91,7 +91,15 @@ namespace ARMeilleure.Translation.Cache
|
|||||||
|
|
||||||
if (OperatingSystem.IsIOS())
|
if (OperatingSystem.IsIOS())
|
||||||
{
|
{
|
||||||
Marshal.Copy(code, 0, funcPtr, code.Length);
|
// Marshal.Copy(code, 0, funcPtr, code.Length);
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
fixed (byte* codePtr = code)
|
||||||
|
{
|
||||||
|
JitSupportDarwinAot.Copy(funcPtr, (IntPtr)codePtr, (ulong)code.Length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (deferProtect)
|
if (deferProtect)
|
||||||
{
|
{
|
||||||
_deferredRxProtect.Enqueue((funcOffset, code.Length));
|
_deferredRxProtect.Enqueue((funcOffset, code.Length));
|
||||||
|
@ -615,7 +615,7 @@
|
|||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = F4QL9A2T88;
|
DEVELOPMENT_TEAM = 95J8WZ4TN8;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
ENABLE_TESTABILITY = NO;
|
ENABLE_TESTABILITY = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@ -632,6 +632,7 @@
|
|||||||
"$(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",
|
||||||
);
|
);
|
||||||
GCC_OPTIMIZATION_LEVEL = fast;
|
GCC_OPTIMIZATION_LEVEL = fast;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@ -796,9 +797,13 @@
|
|||||||
"$(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 = 0.0.8;
|
MARKETING_VERSION = 0.0.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX1;
|
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h";
|
||||||
@ -816,7 +821,7 @@
|
|||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = F4QL9A2T88;
|
DEVELOPMENT_TEAM = 95J8WZ4TN8;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@ -833,6 +838,7 @@
|
|||||||
"$(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",
|
||||||
);
|
);
|
||||||
GCC_OPTIMIZATION_LEVEL = fast;
|
GCC_OPTIMIZATION_LEVEL = fast;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@ -997,9 +1003,13 @@
|
|||||||
"$(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 = 0.0.8;
|
MARKETING_VERSION = 0.0.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX1;
|
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h";
|
||||||
|
Binary file not shown.
@ -12,12 +12,12 @@
|
|||||||
<key>Ryujinx.xcscheme_^#shared#^_</key>
|
<key>Ryujinx.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>2</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_</key>
|
<key>com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>2</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>SuppressBuildableAutocreation</key>
|
<key>SuppressBuildableAutocreation</key>
|
||||||
|
@ -44,7 +44,6 @@ struct ContentView: View {
|
|||||||
_config = State(initialValue: defaultConfig)
|
_config = State(initialValue: defaultConfig)
|
||||||
|
|
||||||
let defaultSettings: [MoltenVKSettings] = [
|
let defaultSettings: [MoltenVKSettings] = [
|
||||||
MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "2"),
|
|
||||||
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "1"),
|
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "1"),
|
||||||
MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1")
|
MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1")
|
||||||
]
|
]
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
//
|
|
||||||
// DeviceMemory.swift
|
|
||||||
// MeloNX
|
|
||||||
//
|
|
||||||
// Created by Tech Guy on 12/31/24.
|
|
||||||
//
|
|
||||||
import SwiftUI
|
|
||||||
import Foundation
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
enum DeviceMemory {
|
|
||||||
/// Check if device has 8GB or more RAM
|
|
||||||
static var has8GBOrMore: Bool {
|
|
||||||
#if targetEnvironment(simulator)
|
|
||||||
return ProcessInfo.processInfo.physicalMemory >= 7 * 1024 * 1024 * 1024 // 8GB in bytes
|
|
||||||
#else
|
|
||||||
return ProcessInfo.processInfo.physicalMemory >= 7 * 1024 * 1024 * 1024 // 8GB in bytes
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get total RAM in GB (rounded)
|
|
||||||
static var totalRAM: Int {
|
|
||||||
Int(ProcessInfo.processInfo.physicalMemory / 1024 / 1024 / 1024) + 1
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,95 +0,0 @@
|
|||||||
//
|
|
||||||
// InfoView.swift
|
|
||||||
// MeloNX
|
|
||||||
//
|
|
||||||
// Created by Tech Guy on 12/31/24.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
import SwiftUI
|
|
||||||
|
|
||||||
struct InfoView: View {
|
|
||||||
@AppStorage("entitlementExists") private var entitlementExists: Bool = false
|
|
||||||
@AppStorage("increaseddebugmem") private var increaseddebugmem: Bool = false
|
|
||||||
@AppStorage("extended-virtual-addressing") private var extended: Bool = false
|
|
||||||
@State var gd = false
|
|
||||||
let infoDictionary = Bundle.main.infoDictionary
|
|
||||||
|
|
||||||
var body: some View {
|
|
||||||
ScrollView {
|
|
||||||
VStack {
|
|
||||||
Text("Welcome to MeloNX!")
|
|
||||||
.font(.largeTitle)
|
|
||||||
Divider()
|
|
||||||
Text("Entitlements:")
|
|
||||||
.font(.title)
|
|
||||||
.font(Font.headline.weight(.bold))
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Group {
|
|
||||||
Text("Required:")
|
|
||||||
.font(.title2)
|
|
||||||
.foregroundColor(.red)
|
|
||||||
.font(Font.headline.weight(.bold))
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Text("Increased Memory Limit: \(String(describing: entitlementExists))")
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
}
|
|
||||||
Group {
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Text("Reccomended (paid):")
|
|
||||||
.font(.title2)
|
|
||||||
.font(Font.headline.weight(.bold))
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Text("Increased Debugging Memory Limit: \(String(describing: increaseddebugmem))")
|
|
||||||
.padding()
|
|
||||||
Text("Extended Virtual Addressing: \(String(describing: extended))")
|
|
||||||
}
|
|
||||||
|
|
||||||
Divider()
|
|
||||||
Text("Memory:")
|
|
||||||
.font(.title)
|
|
||||||
.font(Font.headline.weight(.bold))
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Group {
|
|
||||||
Text("Current:")
|
|
||||||
.font(.title2)
|
|
||||||
.foregroundColor(.blue)
|
|
||||||
.font(Font.headline.weight(.bold))
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
Text(String(DeviceMemory.totalRAM) + "GB")
|
|
||||||
Spacer()
|
|
||||||
.frame(height: 10)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
.padding()
|
|
||||||
|
|
||||||
HStack {
|
|
||||||
Text("Version: \(getAppVersion())")
|
|
||||||
.foregroundColor(.white)
|
|
||||||
.font(.system(size: 12))
|
|
||||||
.onTapGesture {
|
|
||||||
gd.toggle()
|
|
||||||
}
|
|
||||||
if getAppVersion() == "2.2", gd {
|
|
||||||
Text("Geometry Dash????? ;)")
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
.font(.system(size: 5))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func getAppVersion() -> String {
|
|
||||||
guard let version = infoDictionary?["CFBundleShortVersionString"] as? String else {
|
|
||||||
return "Unknown"
|
|
||||||
}
|
|
||||||
return version
|
|
||||||
}
|
|
||||||
}
|
|
@ -298,10 +298,6 @@ struct SettingsView: View {
|
|||||||
} label: {
|
} label: {
|
||||||
Text("Advanced Options")
|
Text("Advanced Options")
|
||||||
}
|
}
|
||||||
NavigationLink(destination: InfoView()) {
|
|
||||||
Text("About")
|
|
||||||
|
|
||||||
}
|
|
||||||
} header: {
|
} header: {
|
||||||
Text("Advanced")
|
Text("Advanced")
|
||||||
.font(.title3.weight(.semibold))
|
.font(.title3.weight(.semibold))
|
||||||
|
@ -24,9 +24,7 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
|
|||||||
config.UseMetalArgumentBuffers = true;
|
config.UseMetalArgumentBuffers = true;
|
||||||
|
|
||||||
config.SemaphoreSupportStyle = MVKVkSemaphoreSupportStyle.MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE;
|
config.SemaphoreSupportStyle = MVKVkSemaphoreSupportStyle.MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE;
|
||||||
config.SynchronousQueueSubmits = false;
|
// config.SynchronousQueueSubmits = false;
|
||||||
|
|
||||||
config.MaxActiveMetalCommandBuffersPerQueue = 192;
|
|
||||||
|
|
||||||
config.ResumeLostDevice = true;
|
config.ResumeLostDevice = true;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user