mirror of
https://github.com/Rosalie241/RMG.git
synced 2026-07-11 09:34:00 +02:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d9e2ed2b9a | |||
| 81015e086c | |||
| a0e31029d1 | |||
| 53f87d0793 | |||
| 1e6c906300 | |||
| b76023209c | |||
| b4c7821630 | |||
| e86261e2dc |
@@ -1,6 +1,6 @@
|
||||
# Maintainer: Rosalie Wanders <rosalie@mailbox.org>
|
||||
pkgname=rmg
|
||||
pkgver=0.4.2
|
||||
pkgver=0.4.3
|
||||
pkgrel=1
|
||||
pkgdesc="Rosalie's Mupen GUI"
|
||||
arch=('x86_64')
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 276 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 116 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
@@ -33,6 +33,19 @@
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<releases>
|
||||
<release version="v0.4.3" date="2023-07-11" type="stable">
|
||||
<description>
|
||||
<p>Changes:</p>
|
||||
<ul>
|
||||
<li>Fix minor corruption issues when using GLideN64 in Wave Race 64 and Space Station Silicon Valley</li>
|
||||
<li>Fix some potential issues with out of bounds RDRAM reads (thank you loganmc10)</li>
|
||||
<li>Fix ROM browser not updating entries when they've changed in the ROM database</li>
|
||||
<li>Fix mupen64plus-rsp-hle not having a fallback configured (fixes Xeno Crisis not booting with mupen64plus-rsp-hle)</li>
|
||||
<li>Fix Xeno Crisis showing an error message</li>
|
||||
<li>Add Xeno Crisis to the ROM database</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release version="v0.4.2" date="2023-07-07" type="stable">
|
||||
<description>
|
||||
<p>Changes:</p>
|
||||
|
||||
Vendored
+2
-2
@@ -39,7 +39,7 @@ endif(USE_CCACHE)
|
||||
|
||||
if(NOT NO_GIT_CLONE)
|
||||
set(MUPEN64PLUSCORE_URL "https://github.com/Rosalie241/mupen64plus-core")
|
||||
set(MUPEN64PLUSCORE_TAG "a231cb5e9a741e1893b0d7669c363d57550295a8")
|
||||
set(MUPEN64PLUSCORE_TAG "bb6949ad2ab268024ee4049279abc2f3c7fbdbb4")
|
||||
|
||||
set(MUPEN64PLUS_RSP_CXD4_URL "https://github.com/mupen64plus/mupen64plus-rsp-cxd4")
|
||||
set(MUPEN64PLUS_RSP_CXD4_TAG "39f79201baa15890c4cbae92f2215a634cc3ee6d")
|
||||
@@ -60,7 +60,7 @@ if(NOT NO_GIT_CLONE)
|
||||
set(MUPEN64PLUS_GFX_ANGRYLION_TAG "670abbc972bd430fa77291b0967dd73128314317")
|
||||
|
||||
set(MUPEN64PLUS_GFX_GLIDEN64_URL "https://github.com/Rosalie241/GLideN64")
|
||||
set(MUPEN64PLUS_GFX_GLIDEN64_TAG "34da878ce8dd2fce7135ee27fa4786613320740e")
|
||||
set(MUPEN64PLUS_GFX_GLIDEN64_TAG "2f1b358028e700fcae2502a53f4f5e6822ce0367")
|
||||
|
||||
set(MUPEN64PLUS_GFX_PARALLEL_URL "https://github.com/Rosalie241/parallel-rdp-standalone")
|
||||
set(MUPEN64PLUS_GFX_PARALLEL_TAG "2c2226517c4c8929e08ec944654867e26efe0cf5")
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
*/
|
||||
#include "CachedRomHeaderAndSettings.hpp"
|
||||
#include "Directories.hpp"
|
||||
#include "RomSettings.hpp"
|
||||
#include "RomHeader.hpp"
|
||||
#include "Error.hpp"
|
||||
|
||||
#include "osal/osal_files.hpp"
|
||||
@@ -307,6 +309,53 @@ bool CoreAddCachedRomHeaderAndSettings(std::filesystem::path file, CoreRomType t
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CoreUpdateCachedRomHeaderAndSettings(std::filesystem::path file)
|
||||
{
|
||||
l_CacheEntry cachedEntry;
|
||||
CoreRomType type;
|
||||
CoreRomHeader header;
|
||||
CoreRomSettings settings;
|
||||
|
||||
// try to find existing entry with same filename,
|
||||
// when not found, do nothing
|
||||
auto iter = get_cache_entry_iter(file, false);
|
||||
if (iter == l_CacheEntries.end())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
cachedEntry = (*iter);
|
||||
|
||||
// attempt to retrieve required information
|
||||
if (!CoreGetRomType(type) ||
|
||||
!CoreGetCurrentRomHeader(header) ||
|
||||
!CoreGetCurrentDefaultRomSettings(settings))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// check if the cached entry needs to be updated,
|
||||
// if it does, then update the entry
|
||||
if (/* rom type */
|
||||
cachedEntry.type != type ||
|
||||
/* header */
|
||||
cachedEntry.header.Name != header.Name ||
|
||||
cachedEntry.header.Region != header.Region ||
|
||||
cachedEntry.header.CRC1 != header.CRC1 ||
|
||||
cachedEntry.header.CRC2 != header.CRC2 ||
|
||||
/* settings */
|
||||
cachedEntry.settings.MD5 != settings.MD5 ||
|
||||
cachedEntry.settings.GoodName != settings.GoodName)
|
||||
{
|
||||
(*iter).type = type;
|
||||
(*iter).header = header;
|
||||
(*iter).settings.MD5 = settings.MD5;
|
||||
(*iter).settings.GoodName = settings.GoodName;
|
||||
l_CacheEntriesChanged = true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CoreClearRomHeaderAndSettingsCache(void)
|
||||
{
|
||||
l_CacheEntries.clear();
|
||||
|
||||
@@ -37,6 +37,12 @@ bool CoreGetCachedRomHeaderAndSettings(std::filesystem::path file, CoreRomType&
|
||||
// for given filename succeeds
|
||||
bool CoreAddCachedRomHeaderAndSettings(std::filesystem::path file, CoreRomType type, CoreRomHeader header, CoreRomSettings settings);
|
||||
|
||||
#ifdef CORE_INTERNAL
|
||||
// returns whether updating the cached rom header & settings
|
||||
// for given filename succeeds
|
||||
bool CoreUpdateCachedRomHeaderAndSettings(std::filesystem::path file);
|
||||
#endif // CORE_INTERNAL
|
||||
|
||||
// returns whether clearing rom header & settings cache
|
||||
// succeeds
|
||||
bool CoreClearRomHeaderAndSettingsCache(void);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#define CORE_INTERNAL
|
||||
#include "Rom.hpp"
|
||||
#include "Directories.hpp"
|
||||
#include "Error.hpp"
|
||||
@@ -15,6 +16,7 @@
|
||||
#include "RomSettings.hpp"
|
||||
#include "Cheats.hpp"
|
||||
#include "osal/osal_files.hpp"
|
||||
#include "CachedRomHeaderAndSettings.hpp"
|
||||
|
||||
// 7-Zip includes
|
||||
#include "../3rdParty/7-Zip/C/7zTypes.h"
|
||||
@@ -663,6 +665,8 @@ bool CoreOpenRom(std::filesystem::path file)
|
||||
CoreStoreCurrentDefaultRomSettings();
|
||||
// apply rom settings overlay
|
||||
CoreApplyRomSettingsOverlay();
|
||||
// update cached rom header and settings entry
|
||||
CoreUpdateCachedRomHeaderAndSettings(file);
|
||||
}
|
||||
|
||||
return l_HasRomOpen;
|
||||
|
||||
@@ -97,7 +97,8 @@ struct l_Setting
|
||||
std::string Key;
|
||||
l_DynamicValue DefaultValue;
|
||||
std::string Description = "";
|
||||
bool ForceUseSetOnce = false;
|
||||
bool ForceUseSetOnce = false;
|
||||
bool ForceUseSetAlways = false;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -123,6 +124,7 @@ static std::vector<std::string> l_keyList;
|
||||
#define SETTING_SECTION_M64P "Core"
|
||||
#define SETTING_SECTION_AUDIO SETTING_SECTION_GUI " - Audio Plugin"
|
||||
#define SETTING_SECTION_INPUT SETTING_SECTION_GUI " - Input Plugin"
|
||||
#define SETTING_SECTION_RSP "Rsp-HLE"
|
||||
|
||||
// retrieves l_Setting from settingId
|
||||
static l_Setting get_setting(SettingsID settingId)
|
||||
@@ -616,6 +618,18 @@ static l_Setting get_setting(SettingsID settingId)
|
||||
setting = {SETTING_SECTION_AUDIO, "Synchronize", false};
|
||||
break;
|
||||
|
||||
case SettingsID::RSP_Fallback:
|
||||
setting = {SETTING_SECTION_RSP, "RspFallback", CoreGetPluginDirectory().string() +
|
||||
#ifdef _WIN32
|
||||
"\\RSP\\mupen64plus-rsp-parallel.dll",
|
||||
#else
|
||||
"/RSP/mupen64plus-rsp-parallel.so",
|
||||
#endif // _WIN32
|
||||
"", false, true
|
||||
};
|
||||
break;
|
||||
|
||||
|
||||
case SettingsID::Input_Profiles:
|
||||
setting = {SETTING_SECTION_INPUT, "Profiles", ""};
|
||||
break;
|
||||
@@ -1665,11 +1679,12 @@ bool CoreSettingsSetupDefaults(void)
|
||||
{
|
||||
case M64TYPE_STRING:
|
||||
{
|
||||
if (setting.ForceUseSetOnce && !hasForceUsedSetOnce)
|
||||
if (setting.ForceUseSetAlways ||
|
||||
(setting.ForceUseSetOnce && !hasForceUsedSetOnce))
|
||||
{
|
||||
ret = config_option_set(setting.Section, setting.Key, M64TYPE_STRING, (void*)setting.DefaultValue.stringValue.c_str());
|
||||
}
|
||||
else if (!setting.ForceUseSetOnce)
|
||||
else if (!setting.ForceUseSetOnce && !setting.ForceUseSetAlways)
|
||||
{
|
||||
ret = config_option_default_set(setting.Section, setting.Key, M64TYPE_STRING, (void*)setting.DefaultValue.stringValue.c_str(), setting.Description.c_str());
|
||||
}
|
||||
|
||||
@@ -180,6 +180,9 @@ enum class SettingsID
|
||||
Audio_Muted,
|
||||
Audio_Synchronize,
|
||||
|
||||
// HLE RSP Plugin Settings
|
||||
RSP_Fallback,
|
||||
|
||||
// Input Plugin Settings
|
||||
Input_Profiles,
|
||||
Input_UseProfile,
|
||||
|
||||
Reference in New Issue
Block a user