mirror of
https://github.com/OpenEmu/PCSX2-Core.git
synced 2025-11-01 11:07:36 +00:00
Fix Savestates
This commit is contained in:
+40
-34
@@ -70,6 +70,7 @@ PCSX2GameCore *_current;
|
||||
@package
|
||||
bool hasInitialized;
|
||||
NSString* gamePath;
|
||||
NSString* stateToLoad;
|
||||
std::unique_ptr<INISettingsInterface> s_base_settings_interface;
|
||||
std::unique_ptr<HostDisplay> hostDisplay;
|
||||
|
||||
@@ -146,30 +147,13 @@ static NSString *binCueFix(NSString *path)
|
||||
return true;
|
||||
}
|
||||
|
||||
- (void)loadStateFromFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block
|
||||
{
|
||||
// FIXME: fix save states.
|
||||
bool success = true; //VMManager::LoadState(fileName.fileSystemRepresentation);
|
||||
//block(success, success ? nil : [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotLoadStateError userInfo:@{NSFilePathErrorKey: fileName}]);
|
||||
block(success, nil);
|
||||
}
|
||||
|
||||
- (void)saveStateToFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block
|
||||
{
|
||||
// FIXME: fix save states.
|
||||
Console.Error("SaveState Requested");
|
||||
bool success = true ; //VMManager::SaveState(fileName.fileSystemRepresentation);
|
||||
//block(success, success ? nil : [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotSaveStateError userInfo:@{NSFilePathErrorKey: fileName}]);
|
||||
block(success, nil);
|
||||
}
|
||||
|
||||
- (void)setupEmulation
|
||||
{
|
||||
const std::string pcsx2ini(Path::CombineStdString([self.supportDirectoryPath stringByAppendingPathComponent:@"/inis"].fileSystemRepresentation, "PCSX2.ini"));
|
||||
s_base_settings_interface = std::make_unique<INISettingsInterface>(std::move(pcsx2ini));
|
||||
Host::Internal::SetBaseSettingsLayer(s_base_settings_interface.get());
|
||||
|
||||
//EmuConfig = Pcsx2Config();
|
||||
EmuConfig = Pcsx2Config();
|
||||
EmuFolders::SetDefaults();
|
||||
|
||||
SettingsInterface& si = *s_base_settings_interface.get();
|
||||
@@ -272,21 +256,23 @@ static NSString *binCueFix(NSString *path)
|
||||
params.batch_mode = std::nullopt;
|
||||
|
||||
if(!hasInitialized){
|
||||
hostDisplay = HostDisplay::CreateDisplayForAPI(OpenGLHostDisplay::RenderAPI::OpenGL);
|
||||
WindowInfo wi;
|
||||
wi.type = WindowInfo::Type::MacOS;
|
||||
wi.surface_width = 640 ;
|
||||
wi.surface_height = 448 ;
|
||||
hostDisplay->CreateRenderDevice(wi,
|
||||
Host::GetStringSettingValue("EmuCore/GS", "Adapter", ""),
|
||||
VsyncMode::Adaptive,
|
||||
Host::GetBoolSettingValue("EmuCore/GS", "ThreadedPresentation", false),
|
||||
Host::GetBoolSettingValue("EmuCore/GS", "UseDebugDevice", false));
|
||||
|
||||
hostDisplay = HostDisplay::CreateDisplayForAPI(OpenGLHostDisplay::RenderAPI::OpenGL);
|
||||
WindowInfo wi;
|
||||
wi.type = WindowInfo::Type::MacOS;
|
||||
wi.surface_width = 640 ;
|
||||
wi.surface_height = 448 ;
|
||||
hostDisplay->CreateRenderDevice(wi,
|
||||
Host::GetStringSettingValue("EmuCore/GS", "Adapter", ""),
|
||||
VsyncMode::Adaptive,
|
||||
Host::GetBoolSettingValue("EmuCore/GS", "ThreadedPresentation", false),
|
||||
Host::GetBoolSettingValue("EmuCore/GS", "UseDebugDevice", false));
|
||||
|
||||
|
||||
if(VMManager::Initialize(params)){
|
||||
hasInitialized = true;
|
||||
hasInitialized = true;
|
||||
VMManager::SetState(VMState::Running);
|
||||
if ([stateToLoad length] > 0)
|
||||
VMManager::LoadState(stateToLoad.fileSystemRepresentation);
|
||||
[NSThread detachNewThreadSelector:@selector(runVMThread) toTarget:self withObject:nil];
|
||||
}
|
||||
}
|
||||
@@ -317,10 +303,7 @@ static NSString *binCueFix(NSString *path)
|
||||
|
||||
- (void)executeFrame
|
||||
{
|
||||
//Console.Error("UpScale Multiplier: %d", GSConfig.UpscaleMultiplier);
|
||||
// if(VMManager::HasValidVM()){
|
||||
// VMManager::Execute();
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
#pragma mark Video
|
||||
@@ -392,6 +375,29 @@ static NSString *binCueFix(NSString *path)
|
||||
g_key_status.Set(u32(player - 1), ps2keymap[button].ps2key, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark Save States
|
||||
- (void)loadStateFromFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block
|
||||
{
|
||||
if (!VMManager::HasValidVM()){
|
||||
stateToLoad = fileName;
|
||||
return;
|
||||
}
|
||||
|
||||
bool success = VMManager::LoadState(fileName.fileSystemRepresentation);
|
||||
block(success, success ? nil : [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotLoadStateError userInfo:@{NSLocalizedDescriptionKey : @"PCSX2 Could not load the current state.",NSFilePathErrorKey: fileName}]);
|
||||
}
|
||||
|
||||
- (void)saveStateToFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block
|
||||
{
|
||||
if (!VMManager::HasValidVM())
|
||||
return;
|
||||
bool success = VMManager::SaveState(fileName.fileSystemRepresentation);
|
||||
|
||||
block(success, success ? nil : [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotSaveStateError userInfo:@{NSLocalizedDescriptionKey : @"PCSX2 Could not save the current state.",NSFilePathErrorKey: fileName}]);
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Discs
|
||||
|
||||
- (NSUInteger)discCount
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -597,7 +597,6 @@
|
||||
5564D76D279A0CEA00EECDEC /* Program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5564D76B279A0CEA00EECDEC /* Program.cpp */; };
|
||||
5564D771279A0D1500EECDEC /* MD5Digest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5564D770279A0D1500EECDEC /* MD5Digest.cpp */; };
|
||||
5564D772279A0EB000EECDEC /* error.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5564D6DC279A0A0500EECDEC /* error.cpp */; };
|
||||
5564D779279A12FB00EECDEC /* SaveState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5517FDFA263D49BC000219EC /* SaveState.cpp */; };
|
||||
556FBB29279E0EAB007B4F88 /* VMManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 556FBB28279E0E76007B4F88 /* VMManager.cpp */; };
|
||||
556FBB47279E1067007B4F88 /* INISettingsInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 556FBB35279E1067007B4F88 /* INISettingsInterface.cpp */; };
|
||||
556FBB48279E1067007B4F88 /* InputManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 556FBB36279E1067007B4F88 /* InputManager.cpp */; };
|
||||
@@ -655,6 +654,7 @@
|
||||
DD0302C927C549730006ABDC /* StateManagement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5580639727AB3261008CD5D2 /* StateManagement.cpp */; };
|
||||
DD03FFD827B721F20006ABDC /* GSTextureMTL.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD03FFB927B70F0C0006ABDC /* GSTextureMTL.mm */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
DD03FFD927B721FC0006ABDC /* MTLDrawableFetcher.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD03FFB327B70F0C0006ABDC /* MTLDrawableFetcher.mm */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
DD1134E927CBCE8F00C2E60B /* SaveState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DD1134E827CBCE8900C2E60B /* SaveState.cpp */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -3210,6 +3210,7 @@
|
||||
DD03FFCE27B719E40006ABDC /* AppConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = gui/AppConfig.h; sourceTree = "<group>"; };
|
||||
DD03FFD227B720610006ABDC /* MetalHostDisplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MetalHostDisplay.h; path = Frontend/MetalHostDisplay.h; sourceTree = "<group>"; };
|
||||
DD03FFD327B720610006ABDC /* MetalHostDisplay.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MetalHostDisplay.mm; path = Frontend/MetalHostDisplay.mm; sourceTree = "<group>"; };
|
||||
DD1134E827CBCE8900C2E60B /* SaveState.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SaveState.cpp; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -3684,6 +3685,7 @@
|
||||
5517E8B6263D4213000219EC /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DD1134E727CBCE8900C2E60B /* SaveState */,
|
||||
DD0302B827C491160006ABDC /* Video */,
|
||||
DD0302B327C491020006ABDC /* Audio */,
|
||||
DD0302B627C491020006ABDC /* Input */,
|
||||
@@ -7573,6 +7575,14 @@
|
||||
path = Metal;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DD1134E727CBCE8900C2E60B /* SaveState */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DD1134E827CBCE8900C2E60B /* SaveState.cpp */,
|
||||
);
|
||||
path = SaveState;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
@@ -8245,7 +8255,6 @@
|
||||
551BF57426420E720008C529 /* VU0microInterp.cpp in Sources */,
|
||||
551BF57226420E720008C529 /* VUmicro.cpp in Sources */,
|
||||
551BF6B8264249D00008C529 /* Patch.cpp in Sources */,
|
||||
5564D779279A12FB00EECDEC /* SaveState.cpp in Sources */,
|
||||
551AA4AE27935E9100658151 /* DNS_Packet.cpp in Sources */,
|
||||
551BF58726420E9A0008C529 /* pgif.cpp in Sources */,
|
||||
551BF6A5264244340008C529 /* WavFile.cpp in Sources */,
|
||||
@@ -8282,6 +8291,7 @@
|
||||
551BF6A92642444F0008C529 /* DplIIdecoder.cpp in Sources */,
|
||||
551BF5AF26420FA50008C529 /* IopDma.cpp in Sources */,
|
||||
551AA1232792AB1700658151 /* GSRendererSW.cpp in Sources */,
|
||||
DD1134E927CBCE8F00C2E60B /* SaveState.cpp in Sources */,
|
||||
5580652F27AB507C008CD5D2 /* DEV9Config.cpp in Sources */,
|
||||
551BF69E264243BC0008C529 /* ATA_SCE.cpp in Sources */,
|
||||
551BF58F26420E9A0008C529 /* R5900.cpp in Sources */,
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
<dict>
|
||||
<key>OEGameCoreHasGlitches</key>
|
||||
<true/>
|
||||
<key>OEGameCoreSaveStatesNotSupported</key>
|
||||
<true/>
|
||||
<key>OEGameCoreSupportsCheatCode</key>
|
||||
<false/>
|
||||
<key>OEGameCoreSupportsMultipleDiscs</key>
|
||||
|
||||
+1
-1
Submodule pcsx2 updated: df7ee0cd26...328d4bebeb
Reference in New Issue
Block a user