From d57a9f413a270fea4375e2d4d99fdcfd275772ef Mon Sep 17 00:00:00 2001 From: Souryo Date: Sat, 20 Aug 2016 22:07:56 -0400 Subject: [PATCH] IPS: Fixed "Autoload IPS patches" option (IPS files were always loaded) + fixed and simplified IPS loading logic --- Core/Console.cpp | 11 +--- Core/Console.h | 3 +- Core/MessageManager.cpp | 10 ++++ Core/RomLoader.cpp | 1 + GUI.NET/Dependencies/Font.24.spritefont | Bin 1176520 -> 1209928 bytes GUI.NET/Forms/frmMain.cs | 66 ++++++++++-------------- GUI.NET/InteropEmu.cs | 3 +- InteropDLL/ConsoleWrapper.cpp | 3 +- 8 files changed, 43 insertions(+), 54 deletions(-) diff --git a/Core/Console.cpp b/Core/Console.cpp index d648890b..4ef40726 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -104,17 +104,10 @@ void Console::Initialize(string romFilename, stringstream *filestream, string ip } } -void Console::ApplyIpsPatch(string ipsFilename) +void Console::LoadROM(string filepath, stringstream *filestream, int32_t archiveFileIndex, string ipsFile) { Console::Pause(); - Instance->Initialize(GetROMPath(), nullptr, ipsFilename); - Console::Resume(); -} - -void Console::LoadROM(string filepath, stringstream *filestream, int32_t archiveFileIndex) -{ - Console::Pause(); - Instance->Initialize(filepath, filestream, "", archiveFileIndex); + Instance->Initialize(filepath, filestream, ipsFile, archiveFileIndex); Console::Resume(); } diff --git a/Core/Console.h b/Core/Console.h index a26eb64e..c8a4d87e 100644 --- a/Core/Console.h +++ b/Core/Console.h @@ -67,9 +67,8 @@ class Console static void LoadState(istream &loadStream); static void LoadState(uint8_t *buffer, uint32_t bufferSize); - static void LoadROM(string filepath, stringstream *filestream = nullptr, int32_t archiveFileIndex = -1); + static void LoadROM(string filepath, stringstream *filestream = nullptr, int32_t archiveFileIndex = -1, string ipsFile = ""); static bool LoadROM(string romName, uint32_t crc32Hash); - static void ApplyIpsPatch(string ipsFilename); static string GetROMPath(); static string GetRomName(); static uint32_t GetCrc32(); diff --git a/Core/MessageManager.cpp b/Core/MessageManager.cpp index ee5f7b52..affb0e50 100644 --- a/Core/MessageManager.cpp +++ b/Core/MessageManager.cpp @@ -12,6 +12,7 @@ std::unordered_map MessageManager::_enResources = { { "Error", u8"Error" }, { "GameInfo", u8"Game Info" }, { "GameLoaded", u8"Game loaded" }, + { "IPS", u8"IPS" }, { "Movies", u8"Movies" }, { "NetPlay", u8"Net Play" }, { "Region", u8"Region" }, @@ -20,6 +21,7 @@ std::unordered_map MessageManager::_enResources = { { "SoundRecorder", u8"Sound Recorder" }, { "Test", u8"Test" }, + { "ApplyingIps", u8"Applying patch: %1" }, { "CheatApplied", u8"1 cheat applied." }, { "CheatsApplied", u8"%1 cheats applied." }, { "ConnectedToServer", u8"Connected to server." }, @@ -73,6 +75,7 @@ std::unordered_map MessageManager::_frResources = { { "Error", u8"Erreur" }, { "GameInfo", u8"Info sur le ROM" }, { "GameLoaded", u8"Jeu chargé" }, + { "IPS", u8"IPS" }, { "Movies", u8"Films" }, { "NetPlay", u8"Jeu en ligne" }, { "Region", u8"Région" }, @@ -81,6 +84,7 @@ std::unordered_map MessageManager::_frResources = { { "SoundRecorder", u8"Enregistreur audio" }, { "Test", u8"Test" }, + { "ApplyingIps", u8"Fichier IPS appliqué : %1" }, { "CheatApplied", u8"%1 code activé." }, { "CheatsApplied", u8"%1 codes activés." }, { "ConnectedToServer", u8"Connecté avec succès au serveur." }, @@ -134,6 +138,7 @@ std::unordered_map MessageManager::_jaResources = { { "Error", u8"エラー" }, { "GameInfo", u8"ゲーム情報" }, { "GameLoaded", u8"ゲーム開始" }, + { "IPS", u8"IPS" }, { "Movies", u8"動画" }, { "NetPlay", u8"ネットプレー" }, { "Region", u8"地域" }, @@ -142,6 +147,7 @@ std::unordered_map MessageManager::_jaResources = { { "SoundRecorder", u8"サウンドレコーダー" }, { "Test", u8"テスト" }, + { "ApplyingIps", u8"パッチファイルを適用しました: %1" }, { "CheatApplied", u8"チートコード%1個を有効にしました。" }, { "CheatsApplied", u8"チートコード%1個を有効にしました。" }, { "ConnectedToServer", u8"サーバに接続しました。" }, @@ -195,6 +201,7 @@ std::unordered_map MessageManager::_ruResources = { { "Error", u8"Ошибка" }, { "GameInfo", u8"Информация об игре" }, { "GameLoaded", u8"Игра загружена" }, + { "IPS", u8"IPS" }, { "Movies", u8"Записи" }, { "NetPlay", u8"Игра по сети" }, { "Region", u8"Регион" }, @@ -203,6 +210,7 @@ std::unordered_map MessageManager::_ruResources = { { "SoundRecorder", u8"Запись звука" }, { "Test", u8"Тест" }, + { "ApplyingIps", u8"Applying patch: %1" }, { "CheatApplied", u8"1 Чит применён." }, { "CheatsApplied", u8"Читов применено %1" }, { "ConnectedToServer", u8"Подключение к серверу." }, @@ -256,6 +264,7 @@ std::unordered_map MessageManager::_esResources = { { "Error", u8"Error" }, { "GameInfo", u8"Info del Juego" }, { "GameLoaded", u8"Juego Cargado" }, + { "IPS", u8"IPS" }, { "Movies", u8"Videos" }, { "NetPlay", u8"Juego Online" }, { "Region", u8"Región" }, @@ -264,6 +273,7 @@ std::unordered_map MessageManager::_esResources = { { "SoundRecorder", u8"Grabadora de Sonido" }, { "Test", u8"Test" }, + { "ApplyingIps", u8"Applying patch: %1" }, { "CheatApplied", u8"1 truco aplicado." }, { "CheatsApplied", u8"%1 trucos aplicados." }, { "ConnectedToServer", u8"Conectado al servidor." }, diff --git a/Core/RomLoader.cpp b/Core/RomLoader.cpp index eac248d3..4dfb0fd7 100644 --- a/Core/RomLoader.cpp +++ b/Core/RomLoader.cpp @@ -97,6 +97,7 @@ bool RomLoader::LoadFromMemory(uint8_t* buffer, size_t length, string romName) if(!_ipsFilename.empty()) { //Apply IPS patch + MessageManager::DisplayMessage("IPS", "ApplyingIps", FolderUtilities::GetFilename(_ipsFilename, true)); fileData = IpsPatcher::PatchBuffer(_ipsFilename, fileData); } diff --git a/GUI.NET/Dependencies/Font.24.spritefont b/GUI.NET/Dependencies/Font.24.spritefont index 6743e0e963f16411525a2f6d4a6fbc724f01c919..468f9fb5009d8b0b89cebfa70f2ea1d05459190e 100644 GIT binary patch delta 73265 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 Ii+$n$2QgNTRsaA1 delta 66986 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≤wjvj8m#U(&_@8a_1;r!95$VjHTjwg;SwNicmGm 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 0) { - ofd.InitialDirectory = Path.GetDirectoryName(ConfigManager.Config.RecentFiles[0].Path); - } - if(ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { - LoadROM(ofd.FileName); - } - InteropEmu.ApplyIpsPatch(ipsFile); + if(_emuThread == null) { + if(MesenMsgBox.Show("SelectRomIps", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { + OpenFileDialog ofd = new OpenFileDialog(); + ofd.Filter = ResourceHelper.GetMessage("FilterRom"); + if(ConfigManager.Config.RecentFiles.Count > 0) { + ofd.InitialDirectory = Path.GetDirectoryName(ConfigManager.Config.RecentFiles[0].Path); } - } else if(MesenMsgBox.Show("PatchAndReset", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { - InteropEmu.ApplyIpsPatch(ipsFile); + + if(ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { + LoadROM(ofd.FileName, true, -1, ipsFile); + } } + } else if(MesenMsgBox.Show("PatchAndReset", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { + LoadROM(_currentRomPath, true, _currentRomArchiveIndex, ipsFile); } } - private void LoadROM(string filename, bool autoLoadIps = false, int archiveFileIndex = -1) + private void LoadROM(string filename, bool autoLoadIps = false, int archiveFileIndex = -1, string ipsFileToApply = null) { - _romToLoad = filename; + _currentRomPath = filename; + _currentRomArchiveIndex = -1; if(File.Exists(filename)) { string romName; if(frmSelectRom.SelectRom(filename, ref archiveFileIndex, out romName)) { + _currentRomArchiveIndex = archiveFileIndex; if(archiveFileIndex >= 0) { Interlocked.Increment(ref _romLoadCounter); ctrlNsfPlayer.Visible = false; ctrlLoading.Visible = true; } + string ipsFile = ipsFileToApply ?? Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename)) + ".ips"; + if(!File.Exists(ipsFile)) { + autoLoadIps = false; + } + Task loadRomTask = new Task(() => { lock(_loadRomLock) { - InteropEmu.LoadROM(filename, archiveFileIndex); + InteropEmu.LoadROM(filename, archiveFileIndex, autoLoadIps ? ipsFile : string.Empty); } }); @@ -512,11 +505,6 @@ namespace Mesen.GUI.Forms Interlocked.Decrement(ref _romLoadCounter); } - string ipsFile = Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename)) + ".ips"; - if(File.Exists(ipsFile)) { - InteropEmu.ApplyIpsPatch(ipsFile); - } - ConfigManager.Config.AddRecentFile(filename, romName, archiveFileIndex); UpdateRecentFiles(); })); @@ -650,7 +638,7 @@ namespace Mesen.GUI.Forms ToolStripMenuItem tsmi = new ToolStripMenuItem(); tsmi.Text = recentItem.RomName; tsmi.Click += (object sender, EventArgs args) => { - LoadROM(recentItem.Path, false, recentItem.ArchiveFileIndex); + LoadROM(recentItem.Path, ConfigManager.Config.PreferenceInfo.AutoLoadIpsPatches, recentItem.ArchiveFileIndex); }; mnuRecentFiles.DropDownItems.Add(tsmi); } @@ -1296,7 +1284,7 @@ namespace Mesen.GUI.Forms if(ofd.ShowDialog() == DialogResult.OK) { if(MD5Helper.GetMD5Hash(ofd.FileName).ToLowerInvariant() == "ca30b50f880eb660a320674ed365ef7a") { File.Copy(ofd.FileName, Path.Combine(ConfigManager.HomeFolder, "FdsBios.bin")); - LoadROM(_romToLoad); + LoadROM(_currentRomPath, ConfigManager.Config.PreferenceInfo.AutoLoadIpsPatches); } else { MesenMsgBox.Show("InvalidFdsBios", MessageBoxButtons.OK, MessageBoxIcon.Error); } diff --git a/GUI.NET/InteropEmu.cs b/GUI.NET/InteropEmu.cs index bf59f9ae..62b473f6 100644 --- a/GUI.NET/InteropEmu.cs +++ b/GUI.NET/InteropEmu.cs @@ -25,8 +25,7 @@ namespace Mesen.GUI [DllImport(DLLPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool IsRunning(); - [DllImport(DLLPath)] public static extern void LoadROM([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(UTF8Marshaler))]string filename, Int32 archiveFileIndex = -1); - [DllImport(DLLPath)] public static extern void ApplyIpsPatch([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(UTF8Marshaler))]string filename); + [DllImport(DLLPath)] public static extern void LoadROM([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(UTF8Marshaler))]string filename, Int32 archiveFileIndex, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]string ipsFile); [DllImport(DLLPath)] public static extern void AddKnowGameFolder([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(UTF8Marshaler))]string folder); [DllImport(DLLPath, EntryPoint = "GetArchiveRomList")] private static extern IntPtr GetArchiveRomListWrapper([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(UTF8Marshaler))]string filename); diff --git a/InteropDLL/ConsoleWrapper.cpp b/InteropDLL/ConsoleWrapper.cpp index 96c701e3..47f480b0 100644 --- a/InteropDLL/ConsoleWrapper.cpp +++ b/InteropDLL/ConsoleWrapper.cpp @@ -86,8 +86,7 @@ namespace InteropEmu { DllExport bool __stdcall IsRunning() { return Console::IsRunning(); } - DllExport void __stdcall LoadROM(char* filename, int32_t archiveFileIndex) { Console::LoadROM(filename, nullptr, archiveFileIndex); } - DllExport void __stdcall ApplyIpsPatch(char* filename) { Console::ApplyIpsPatch(filename); } + DllExport void __stdcall LoadROM(char* filename, int32_t archiveFileIndex, char* ipsFile) { Console::LoadROM(filename, nullptr, archiveFileIndex, ipsFile); } DllExport void __stdcall AddKnowGameFolder(char* folder) { FolderUtilities::AddKnowGameFolder(folder); } DllExport const char* __stdcall GetArchiveRomList(char* filename) {