mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Merge pull request #20794 from hrydgard/project-8-fix
Correct error codes from sceUtilityLoadAvModule / UnloadAvModule.
This commit is contained in:
5 files changed
+19
-14
No files matched your search
@@ -302,6 +302,8 @@ enum PSPErrorCode : u32 {
|
||||
SCE_ERROR_MODULE_ALREADY_LOADED = 0x80111102,
|
||||
SCE_ERROR_MODULE_NOT_LOADED = 0x80111103,
|
||||
SCE_ERROR_AV_MODULE_BAD_ID = 0x80110F01,
|
||||
SCE_ERROR_AV_MODULE_ALREADY_LOADED = 0x80110F02,
|
||||
SCE_ERROR_AV_MODULE_NOT_LOADED = 0x80110F03,
|
||||
|
||||
SCE_ERROR_UTILITY_INVALID_STATUS = 0x80110001,
|
||||
SCE_ERROR_UTILITY_INVALID_PARAM_SIZE = 0x80110004,
|
||||
|
||||
@@ -1313,10 +1313,13 @@ const char *KernelErrorToString(u32 err) {
|
||||
case SCE_ERROR_MODULE_ALREADY_LOADED: return "MODULE_ALREADY_LOADED";
|
||||
case SCE_ERROR_MODULE_NOT_LOADED: return "MODULE_NOT_LOADED";
|
||||
case SCE_ERROR_AV_MODULE_BAD_ID: return "AV_MODULE_BAD_ID";
|
||||
case SCE_ERROR_AV_MODULE_ALREADY_LOADED: return "AV_MODULE_ALREADY_LOADED";
|
||||
case SCE_ERROR_AV_MODULE_NOT_LOADED: return "AV_MODULE_NOT_LOADED";
|
||||
|
||||
case SCE_ERROR_UTILITY_INVALID_STATUS: return "UTILITY_INVALID_STATUS";
|
||||
case SCE_ERROR_UTILITY_INVALID_PARAM_SIZE: return "UTILITY_INVALID_PARAM_SIZE";
|
||||
case SCE_ERROR_UTILITY_WRONG_TYPE: return "UTILITY_WRONG_TYPE";
|
||||
case SCE_ERROR_UTILITY_STRING_TOO_LONG: return "UTILITY_STRING_TOO_LONG";
|
||||
case SCE_ERROR_UTILITY_INVALID_ADHOC_CHANNEL: return "UTILITY_INVALID_ADHOC_CHANNEL";
|
||||
case SCE_ERROR_UTILITY_INVALID_SYSTEM_PARAM_ID: return "UTILITY_INVALID_SYSTEM_PARAM_ID";
|
||||
|
||||
|
||||
+12
-12
@@ -525,8 +525,8 @@ bool __UtilityModuleGetMemoryRange(int moduleID, u32 *startPtr, u32 *sizePtr) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static int LoadModuleInternal(u32 module);
|
||||
static int UnloadModuleInternal(u32 module);
|
||||
static int LoadModuleInternal(u32 module, bool av);
|
||||
static int UnloadModuleInternal(u32 module, bool av);
|
||||
|
||||
// Same as sceUtilityLoadModule, just limited in categories.
|
||||
// It seems this just loads module 0x300 + module & 0xFF..
|
||||
@@ -536,7 +536,7 @@ static u32 sceUtilityLoadAvModule(u32 module) {
|
||||
return hleLogError(Log::sceUtility, SCE_ERROR_AV_MODULE_BAD_ID);
|
||||
}
|
||||
|
||||
int result = LoadModuleInternal(0x300 | module);
|
||||
int result = LoadModuleInternal(0x300 | module, true);
|
||||
return hleDelayResult(hleLogDebugOrError(Log::sceUtility, result), "utility av module loaded", 25000);
|
||||
}
|
||||
|
||||
@@ -546,12 +546,12 @@ static u32 sceUtilityUnloadAvModule(u32 module) {
|
||||
return hleLogError(Log::sceUtility, SCE_ERROR_AV_MODULE_BAD_ID);
|
||||
}
|
||||
|
||||
int result = UnloadModuleInternal(0x300 | module);
|
||||
int result = UnloadModuleInternal(0x300 | module, true);
|
||||
return hleDelayResult(hleLogDebugOrError(Log::sceUtility, result), "utility av module unloaded", 800);
|
||||
}
|
||||
|
||||
static u32 sceUtilityLoadModule(u32 module) {
|
||||
int result = LoadModuleInternal(module);
|
||||
int result = LoadModuleInternal(module, false);
|
||||
// TODO: Each module has its own timing, technically, but this is a low-end.
|
||||
if (module == 0x3FF) {
|
||||
return hleDelayResult(hleLogDebugOrError(Log::sceUtility, result), "utility module loaded", 130);
|
||||
@@ -561,7 +561,7 @@ static u32 sceUtilityLoadModule(u32 module) {
|
||||
}
|
||||
|
||||
static u32 sceUtilityUnloadModule(u32 module) {
|
||||
int result = UnloadModuleInternal(module);
|
||||
int result = UnloadModuleInternal(module, false);
|
||||
// TODO: Each module has its own timing, technically, but this is a low-end.
|
||||
if (module == 0x3FF) {
|
||||
return hleDelayResult(hleLogDebugOrError(Log::sceUtility, result), "utility module unloaded", 110);
|
||||
@@ -570,14 +570,14 @@ static u32 sceUtilityUnloadModule(u32 module) {
|
||||
}
|
||||
}
|
||||
|
||||
static int LoadModuleInternal(u32 module) {
|
||||
static int LoadModuleInternal(u32 module, bool av) {
|
||||
const ModuleLoadInfo *info = __UtilityModuleInfo(module);
|
||||
if (!info) {
|
||||
return SCE_ERROR_MODULE_BAD_ID;
|
||||
return av ? SCE_ERROR_AV_MODULE_BAD_ID : SCE_ERROR_MODULE_BAD_ID;
|
||||
}
|
||||
|
||||
if (currentlyLoadedModules.find(module) != currentlyLoadedModules.end()) {
|
||||
return SCE_ERROR_MODULE_ALREADY_LOADED;
|
||||
return av ? SCE_ERROR_AV_MODULE_ALREADY_LOADED : SCE_ERROR_MODULE_ALREADY_LOADED;
|
||||
}
|
||||
|
||||
// Some games, like Kamen Rider Climax Heroes OOO, require an error if dependencies aren't loaded yet.
|
||||
@@ -601,15 +601,15 @@ static int LoadModuleInternal(u32 module) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int UnloadModuleInternal(u32 module) {
|
||||
static int UnloadModuleInternal(u32 module, bool av) {
|
||||
const ModuleLoadInfo *info = __UtilityModuleInfo(module);
|
||||
if (!info) {
|
||||
return SCE_ERROR_MODULE_BAD_ID;
|
||||
return av ? SCE_ERROR_AV_MODULE_BAD_ID : SCE_ERROR_MODULE_BAD_ID;
|
||||
}
|
||||
|
||||
auto iter = currentlyLoadedModules.find(module);
|
||||
if (iter == currentlyLoadedModules.end()) {
|
||||
return SCE_ERROR_MODULE_NOT_LOADED;
|
||||
return av ? SCE_ERROR_AV_MODULE_NOT_LOADED : SCE_ERROR_MODULE_NOT_LOADED;
|
||||
}
|
||||
if (iter->second != 0) {
|
||||
userMemory.Free(iter->second);
|
||||
|
||||
@@ -570,7 +570,7 @@ public abstract class NativeActivity extends AppCompatActivity implements Sensor
|
||||
if (decorView != null) {
|
||||
decorView.setSystemUiVisibility(flags);
|
||||
} else {
|
||||
Log.e(TAG, "updateSystemUiVisibility: decor view not yet created, ignoring for now");
|
||||
Log.i(TAG, "updateSystemUiVisibility: decor view not yet created, ignoring for now");
|
||||
}
|
||||
sizeManager.checkDisplayMeasurements();
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ public class SizeManager implements SurfaceHolder.Callback {
|
||||
return;
|
||||
}
|
||||
|
||||
Log.w(TAG, "Surface changed. Resolution: " + width + "x" + height + " Format: " + format);
|
||||
Log.i(TAG, "Surface changed. Resolution: " + width + "x" + height + " Format: " + format);
|
||||
// The window size might have changed (immersive mode, native fullscreen on some devices)
|
||||
NativeApp.backbufferResize(width, height, format);
|
||||
updateDisplayMeasurements();
|
||||
|
||||
Reference in new issue
Block a user