Compare commits

...

8 Commits

Author SHA1 Message Date
Rosalie Wanders d9e2ed2b9a Package: v0.4.3 2023-07-11 14:46:06 +02:00
Rosalie Wanders 81015e086c 3rdParty: update mupen64plus-core 2023-07-11 14:43:06 +02:00
Rosalie Wanders a0e31029d1 RMG-Core: set mupen64plus-rsp-parallel as mupen64plus-rsp-hle fallback 2023-07-11 14:14:29 +02:00
Rosalie Wanders 53f87d0793 RMG-Core: introduce & use CoreUpdateCachedRomHeaderAndSettings() 2023-07-11 14:00:24 +02:00
Rosalie Wanders 1e6c906300 3rdParty: update mupen64plus-core 2023-07-11 10:06:45 +02:00
Rosalie Wanders b76023209c 3rdParty: update mupen64plus-core 2023-07-10 16:03:33 +02:00
Rosalie Wanders b4c7821630 3rdParty: update GLideN64 2023-07-10 16:03:01 +02:00
Rosalie Wanders e86261e2dc Package: update screenshots 2023-07-07 19:48:35 +02:00
11 changed files with 96 additions and 6 deletions
+1 -1
View File
@@ -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>
+2 -2
View File
@@ -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);
+4
View File
@@ -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;
+18 -3
View File
@@ -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());
}
+3
View File
@@ -180,6 +180,9 @@ enum class SettingsID
Audio_Muted,
Audio_Synchronize,
// HLE RSP Plugin Settings
RSP_Fallback,
// Input Plugin Settings
Input_Profiles,
Input_UseProfile,