From 5b8b51ad0da787a57f123c11db396442adedcb8b Mon Sep 17 00:00:00 2001 From: zilmar Date: Sun, 30 Apr 2017 19:24:38 +1000 Subject: [PATCH] [Android] Fix load game at start --- Android/src/emu/project64/GalleryActivity.java | 2 +- Android/src/emu/project64/jni/SettingsID.java | 1 + Source/Project64-core/N64System/N64Class.cpp | 6 ++++++ Source/Project64-core/Settings/Settings.h | 1 + Source/Project64-core/Settings/SettingsClass.cpp | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Android/src/emu/project64/GalleryActivity.java b/Android/src/emu/project64/GalleryActivity.java index 1f430a600..a642035cb 100644 --- a/Android/src/emu/project64/GalleryActivity.java +++ b/Android/src/emu/project64/GalleryActivity.java @@ -929,8 +929,8 @@ public class GalleryActivity extends AppCompatActivity implements IabBroadcastLi if (ResumeGame) { NativeExports.SettingsSaveDword(SettingsID.Game_CurrentSaveState.getValue(), 0); - NativeExports.ExternalEvent(SystemEvent.SysEvent_LoadMachineState.getValue()); } + NativeExports.SettingsSaveBool(SettingsID.Game_LoadSaveAtStart.getValue(), ResumeGame); // Launch the game activity boolean isXperiaPlay = false; diff --git a/Android/src/emu/project64/jni/SettingsID.java b/Android/src/emu/project64/jni/SettingsID.java index d549f16bc..bcfbc9ddb 100644 --- a/Android/src/emu/project64/jni/SettingsID.java +++ b/Android/src/emu/project64/jni/SettingsID.java @@ -143,6 +143,7 @@ public enum SettingsID Game_CRC_Recalc, Game_Transferpak_ROM, Game_Transferpak_Sav, + Game_LoadSaveAtStart, // General Game running info GameRunning_LoadingInProgress, diff --git a/Source/Project64-core/N64System/N64Class.cpp b/Source/Project64-core/N64System/N64Class.cpp index 906f0a67f..cf79b074b 100644 --- a/Source/Project64-core/N64System/N64Class.cpp +++ b/Source/Project64-core/N64System/N64Class.cpp @@ -118,6 +118,12 @@ CN64System::CN64System(CPlugins * Plugins, bool SavesReadOnly, bool SyncSystem) { m_Recomp = new CRecompiler(m_MMU_VM, m_Reg, m_EndEmulation); } + + if (g_Settings->LoadBool(Game_LoadSaveAtStart)) + { + LoadState(); + g_Settings->SaveBool(Game_LoadSaveAtStart, false); + } } WriteTrace(TraceN64System, TraceDebug, "Done"); diff --git a/Source/Project64-core/Settings/Settings.h b/Source/Project64-core/Settings/Settings.h index 097f47bbf..87c6a619b 100644 --- a/Source/Project64-core/Settings/Settings.h +++ b/Source/Project64-core/Settings/Settings.h @@ -148,6 +148,7 @@ enum SettingID Game_CRC_Recalc, Game_Transferpak_ROM, Game_Transferpak_Sav, + Game_LoadSaveAtStart, // General Game running info GameRunning_LoadingInProgress, diff --git a/Source/Project64-core/Settings/SettingsClass.cpp b/Source/Project64-core/Settings/SettingsClass.cpp index e4bfe03dc..8a5042b87 100644 --- a/Source/Project64-core/Settings/SettingsClass.cpp +++ b/Source/Project64-core/Settings/SettingsClass.cpp @@ -221,6 +221,7 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory) AddHandler(Game_CRC_Recalc, new CSettingTypeGame("CRC-Recalc", Rdb_CRC_Recalc)); AddHandler(Game_Transferpak_ROM, new CSettingTypeGame("Tpak-ROM-dir", Default_None)); AddHandler(Game_Transferpak_Sav, new CSettingTypeGame("Tpak-Sav-dir", Default_None)); + AddHandler(Game_LoadSaveAtStart, new CSettingTypeTempBool(false)); //User Interface AddHandler(UserInterface_ShowCPUPer, new CSettingTypeApplication("", "Display CPU Usage", (uint32_t)false));