[gnome-games] retro-runner: Load sram after boot and not before for no-snapshot cases
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] retro-runner: Load sram after boot and not before for no-snapshot cases
- Date: Sat, 20 Mar 2021 16:55:39 +0000 (UTC)
commit b65df10f1f885e28137f1da80e3f9719087bc81e
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Fri Mar 19 19:46:08 2021 +0500
retro-runner: Load sram after boot and not before for no-snapshot cases
Welp. I suppoes Citra just doesn't use sram and that's the only reason it
works.
plugins/nintendo-64/src/nintendo-64-runner.vala | 2 +-
plugins/nintendo-ds/src/nintendo-ds-runner.vala | 2 +-
src/retro/retro-runner.vala | 27 ++++++++++++-------------
3 files changed, 15 insertions(+), 16 deletions(-)
---
diff --git a/plugins/nintendo-64/src/nintendo-64-runner.vala b/plugins/nintendo-64/src/nintendo-64-runner.vala
index 3ecd922b..ca45cf41 100644
--- a/plugins/nintendo-64/src/nintendo-64-runner.vala
+++ b/plugins/nintendo-64/src/nintendo-64-runner.vala
@@ -112,7 +112,7 @@ private class Games.Nintendo64Runner : RetroRunner {
pak4 = n64_snapshot.pak4;
}
- protected override void reset_with_snapshot (Snapshot? last_snapshot) throws Error {
+ protected override void reset_with_snapshot (Snapshot last_snapshot) throws Error {
base.reset_with_snapshot (last_snapshot);
if (last_snapshot == null) {
diff --git a/plugins/nintendo-ds/src/nintendo-ds-runner.vala b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
index 400f3658..d34d9da0 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-runner.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
@@ -190,7 +190,7 @@ private class Games.NintendoDsRunner : RetroRunner {
view_bottom_screen = ds_snapshot.view_bottom_screen;
}
- protected override void reset_with_snapshot (Snapshot? last_snapshot) throws Error {
+ protected override void reset_with_snapshot (Snapshot last_snapshot) throws Error {
base.reset_with_snapshot (last_snapshot);
screen_layout = ScreenLayout.TOP_BOTTOM;
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index 11891a8b..1e47d10b 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -219,27 +219,29 @@ public class Games.RetroRunner : Object, Runner {
tmp_save_dir = create_tmp_save_dir ();
- if (snapshot != null)
+ if (snapshot != null) {
snapshot.copy_save_dir_to (tmp_save_dir);
- else {
+ } else {
var path = get_fallback_save_directory_path ();
-
- var save_ram_path = Path.build_filename (path, "save");
var save_dir = File.new_for_path (Path.build_filename (path, "save-dir"));
- if (FileUtils.test (save_ram_path, FileTest.EXISTS) &&
- core.get_memory_size (Retro.MemoryType.SAVE_RAM) > 0)
- core.load_memory (Retro.MemoryType.SAVE_RAM, save_ram_path);
-
FileOperations.copy_contents (save_dir, File.new_for_path (tmp_save_dir));
}
prepare_core ();
- reset_with_snapshot (snapshot);
+ if (snapshot != null) {
+ reset_with_snapshot (snapshot);
- if (snapshot != null)
preview_snapshot (snapshot);
+ } else {
+ var path = get_fallback_save_directory_path ();
+ var save_ram_path = Path.build_filename (path, "save");
+
+ if (FileUtils.test (save_ram_path, FileTest.EXISTS) &&
+ core.get_memory_size (Retro.MemoryType.SAVE_RAM) > 0)
+ core.load_memory (Retro.MemoryType.SAVE_RAM, save_ram_path);
+ }
}
catch (RetroError.MODULE_NOT_FOUND e) {
debug ("%s\n", e.message);
@@ -536,10 +538,7 @@ public class Games.RetroRunner : Object, Runner {
media_set.selected_media_number = snapshot.get_media_data ();
}
- protected virtual void reset_with_snapshot (Snapshot? last_snapshot) throws Error {
- if (last_snapshot == null)
- return;
-
+ protected virtual void reset_with_snapshot (Snapshot last_snapshot) throws Error {
load_save_ram (last_snapshot.get_save_ram_path ());
if (last_snapshot.has_media_data ())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]