Store crc change to u32

Should build fixed
This commit is contained in:
sum2012 2022-10-05 20:36:01 +08:00
parent 09e9488de8
commit de6d747cf0
7 changed files with 25 additions and 28 deletions

View file

@ -1147,7 +1147,6 @@ static int gzipDecompress(u8 *OutBuffer, int OutBufferLength, u8 *InBuffer) {
static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 loadAddress, bool fromTop, std::string *error_string, u32 *magic, u32 &error) { static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 loadAddress, bool fromTop, std::string *error_string, u32 *magic, u32 &error) {
u32 crc = crc32(0, Z_NULL, 0); u32 crc = crc32(0, Z_NULL, 0);
crc = crc32(crc, ptr, elfSize); crc = crc32(crc, ptr, elfSize);
const std::string crcstring = int2hexstr(crc);
PSPModule *module = new PSPModule(); PSPModule *module = new PSPModule();
kernelObjects.Create(module); kernelObjects.Create(module);
loadedModules.insert(module->GetUID()); loadedModules.insert(module->GetUID());
@ -1174,14 +1173,14 @@ static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 load
if (IsHLEVersionedModule(head->modname)) { if (IsHLEVersionedModule(head->modname)) {
int ver = (head->module_ver_hi << 8) | head->module_ver_lo; int ver = (head->module_ver_hi << 8) | head->module_ver_lo;
INFO_LOG(SCEMODULE, "Loading module %s with version %04x, devkit %08x, crc %s", head->modname, ver, head->devkitversion, crcstring.c_str()); INFO_LOG(SCEMODULE, "Loading module %s with version %04x, devkit %08x, crc %x", head->modname, ver, head->devkitversion, crc);
reportedModule = true; reportedModule = true;
if (!strcmp(head->modname, "sceMpeg_library")) { if (!strcmp(head->modname, "sceMpeg_library")) {
__MpegLoadModule(ver, crcstring); __MpegLoadModule(ver, crc);
} }
if (!strcmp(head->modname, "scePsmfP_library") || !strcmp(head->modname, "scePsmfPlayer")) { if (!strcmp(head->modname, "scePsmfP_library") || !strcmp(head->modname, "scePsmfPlayer")) {
__PsmfPlayerLoadModule(head->devkitversion, crcstring); __PsmfPlayerLoadModule(head->devkitversion, crc);
} }
} }
@ -1614,10 +1613,10 @@ static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 load
INFO_LOG(SCEMODULE, "Loading module %s with version %04x, devkit %08x", modinfo->name, modinfo->moduleVersion, devkitVersion); INFO_LOG(SCEMODULE, "Loading module %s with version %04x, devkit %08x", modinfo->name, modinfo->moduleVersion, devkitVersion);
if (!strcmp(modinfo->name, "sceMpeg_library")) { if (!strcmp(modinfo->name, "sceMpeg_library")) {
__MpegLoadModule(modinfo->moduleVersion, crcstring); __MpegLoadModule(modinfo->moduleVersion, crc);
} }
if (!strcmp(modinfo->name, "scePsmfP_library") || !strcmp(modinfo->name, "scePsmfPlayer")) { if (!strcmp(modinfo->name, "scePsmfP_library") || !strcmp(modinfo->name, "scePsmfPlayer")) {
__PsmfPlayerLoadModule(devkitVersion, crcstring); __PsmfPlayerLoadModule(devkitVersion, crc);
} }
} }

View file

@ -259,7 +259,7 @@ struct MpegContext {
static bool isMpegInit; static bool isMpegInit;
static int mpegLibVersion = 0; static int mpegLibVersion = 0;
static std::string mpegLibCrcstring = "null"; static u32 mpegLibCrc = 0;
static u32 streamIdGen; static u32 streamIdGen;
static int actionPostPut; static int actionPostPut;
static std::map<u32, MpegContext *> mpegMap; static std::map<u32, MpegContext *> mpegMap;
@ -424,10 +424,10 @@ void __MpegDoState(PointerWrap &p) {
Do(p, ringbufferPutPacketsAdded); Do(p, ringbufferPutPacketsAdded);
} }
if (s < 4) { if (s < 4) {
mpegLibCrcstring = "null"; mpegLibCrc = 0;
} }
else { else {
Do(p, mpegLibCrcstring); Do(p, mpegLibCrc);
} }
Do(p, streamIdGen); Do(p, streamIdGen);
@ -448,9 +448,9 @@ void __MpegShutdown() {
mpegMap.clear(); mpegMap.clear();
} }
void __MpegLoadModule(int version,std::string crcstr) { void __MpegLoadModule(int version,u32 crc) {
mpegLibVersion = version; mpegLibVersion = version;
mpegLibCrcstring = crcstr; mpegLibCrc = crc;
} }
static u32 sceMpegInit() { static u32 sceMpegInit() {
@ -459,7 +459,7 @@ static u32 sceMpegInit() {
// TODO: Need to properly hook module load/unload for this to work right. // TODO: Need to properly hook module load/unload for this to work right.
//return ERROR_MPEG_ALREADY_INIT; //return ERROR_MPEG_ALREADY_INIT;
} else { } else {
INFO_LOG(ME, "sceMpegInit(), mpegLibVersion 0x%0x, mpegLibcrc %s", mpegLibVersion, mpegLibCrcstring.c_str()); INFO_LOG(ME, "sceMpegInit(), mpegLibVersion 0x%0x, mpegLibcrc %x", mpegLibVersion, mpegLibCrc);
} }
isMpegInit = true; isMpegInit = true;
return hleDelayResult(0, "mpeg init", 750); return hleDelayResult(0, "mpeg init", 750);

View file

@ -79,7 +79,7 @@ void __MpegInit();
void __MpegDoState(PointerWrap &p); void __MpegDoState(PointerWrap &p);
void __MpegShutdown(); void __MpegShutdown();
void __MpegLoadModule(int version,std::string crcstr); void __MpegLoadModule(int version,u32 crc);
void Register_sceMpeg(); void Register_sceMpeg();

View file

@ -59,7 +59,7 @@ static const int audioSamplesBytes = audioSamples * 4;
static int videoPixelMode = GE_CMODE_32BIT_ABGR8888; static int videoPixelMode = GE_CMODE_32BIT_ABGR8888;
static int videoLoopStatus = PSMF_PLAYER_CONFIG_NO_LOOP; static int videoLoopStatus = PSMF_PLAYER_CONFIG_NO_LOOP;
static int psmfPlayerLibVersion = 0; static int psmfPlayerLibVersion = 0;
static std::string psmfPlayerLibcrcstring = "null"; static u32 psmfPlayerLibcrc = 0;
int eventPsmfPlayerStatusChange = -1; int eventPsmfPlayerStatusChange = -1;
@ -697,9 +697,9 @@ void __PsmfInit() {
eventPsmfPlayerStatusChange = CoreTiming::RegisterEvent("PsmfPlayerStatusChange", &__PsmfPlayerStatusChange); eventPsmfPlayerStatusChange = CoreTiming::RegisterEvent("PsmfPlayerStatusChange", &__PsmfPlayerStatusChange);
} }
void __PsmfPlayerLoadModule(int devkitVersion, std::string crcstr) { void __PsmfPlayerLoadModule(int devkitVersion, u32 crc) {
psmfPlayerLibVersion = devkitVersion; psmfPlayerLibVersion = devkitVersion;
psmfPlayerLibcrcstring = crcstr; psmfPlayerLibcrc = crc;
} }
void __PsmfDoState(PointerWrap &p) { void __PsmfDoState(PointerWrap &p) {
@ -725,9 +725,9 @@ void __PsmfPlayerDoState(PointerWrap &p) {
} }
CoreTiming::RestoreRegisterEvent(eventPsmfPlayerStatusChange, "PsmfPlayerStatusChangeEvent", &__PsmfPlayerStatusChange); CoreTiming::RestoreRegisterEvent(eventPsmfPlayerStatusChange, "PsmfPlayerStatusChangeEvent", &__PsmfPlayerStatusChange);
if (s < 3) { if (s < 3) {
psmfPlayerLibcrcstring = "null"; psmfPlayerLibcrc = 0;
} else { } else {
Do(p, psmfPlayerLibcrcstring); Do(p, psmfPlayerLibcrc);
} }
if (s < 2) { if (s < 2) {
// Assume the latest, which is what we were emulating before. // Assume the latest, which is what we were emulating before.
@ -1164,7 +1164,7 @@ static int scePsmfPlayerCreate(u32 psmfPlayer, u32 dataPtr) {
int delayUs = 20000; int delayUs = 20000;
DelayPsmfStateChange(psmfPlayer, PSMF_PLAYER_STATUS_INIT, delayUs); DelayPsmfStateChange(psmfPlayer, PSMF_PLAYER_STATUS_INIT, delayUs);
INFO_LOG(ME, "psmfplayer create, psmfPlayerLibVersion 0x%0x, psmfPlayerLibcrcstring %s", psmfPlayerLibVersion, psmfPlayerLibcrcstring.c_str()); INFO_LOG(ME, "psmfplayer create, psmfPlayerLibVersion 0x%0x, psmfPlayerLibcrc %x", psmfPlayerLibVersion, psmfPlayerLibcrc);
return hleDelayResult(0, "player create", delayUs); return hleDelayResult(0, "player create", delayUs);
} }

View file

@ -21,7 +21,7 @@ void Register_scePsmf();
void Register_scePsmfPlayer(); void Register_scePsmfPlayer();
void __PsmfInit(); void __PsmfInit();
void __PsmfPlayerLoadModule(int devkitVersion,std::string crcstr); void __PsmfPlayerLoadModule(int devkitVersion,u32 crc);
void __PsmfDoState(PointerWrap &p); void __PsmfDoState(PointerWrap &p);
void __PsmfPlayerDoState(PointerWrap &p); void __PsmfPlayerDoState(PointerWrap &p);
void __PsmfShutdown(); void __PsmfShutdown();

View file

@ -44,7 +44,6 @@
#include "UI/MainScreen.h" #include "UI/MainScreen.h"
#include "UI/BackgroundAudio.h" #include "UI/BackgroundAudio.h"
#include "Core/Reporting.h" #include "Core/Reporting.h"
#include <sstream>
GameScreen::GameScreen(const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) { GameScreen::GameScreen(const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) {
g_BackgroundAudio.SetGame(gamePath); g_BackgroundAudio.SetGame(gamePath);
@ -56,11 +55,12 @@ GameScreen::~GameScreen() {
} }
} }
const char* int2hexstr(const int a) { template <typename I> std::string int2hexstr(I w, size_t hex_len = sizeof(I) << 1) {
std::stringstream stream; static const char* digits = "0123456789ABCDEF";
stream << std::hex << a; std::string rc(hex_len, '0');
auto s = stream.str(); for (size_t i = 0, j = (hex_len - 1) * 4; i < hex_len; ++i, j -= 4)
return s.c_str(); rc[i] = digits[(w >> j) & 0x0f];
return rc;
} }
void GameScreen::update() { void GameScreen::update() {

View file

@ -29,8 +29,6 @@
// Uses GameInfoCache heavily to implement the functionality. // Uses GameInfoCache heavily to implement the functionality.
// Should possibly merge this with the PauseScreen. // Should possibly merge this with the PauseScreen.
const char* int2hexstr(const int a);
class GameScreen : public UIDialogScreenWithGameBackground { class GameScreen : public UIDialogScreenWithGameBackground {
public: public:
GameScreen(const Path &gamePath); GameScreen(const Path &gamePath);