diff --git a/Core/HLE/scePsmf.cpp b/Core/HLE/scePsmf.cpp index 1cb674de3..ff21ccc9c 100644 --- a/Core/HLE/scePsmf.cpp +++ b/Core/HLE/scePsmf.cpp @@ -605,13 +605,6 @@ void __PsmfShutdown() psmfPlayerMap.clear(); } -bool isInitializedStatus(u32 status) { - if (status == PSMF_PLAYER_STATUS_NONE) { - return false; - } - return true; -} - u32 scePsmfSetPsmf(u32 psmfStruct, u32 psmfData) { if (!Memory::IsValidAddress(psmfData)) { @@ -1218,6 +1211,11 @@ int scePsmfPlayerSetPsmfOffsetCB(u32 psmfPlayer, const char *filename, int offse int scePsmfPlayerGetAudioOutSize(u32 psmfPlayer) { + PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer); + if (!psmfplayer) { + ERROR_LOG(ME, "scePsmfPlayerGetAudioOutSize(%08x): invalid psmf player", psmfPlayer); + return ERROR_PSMFPLAYER_INVALID_STATUS; + } WARN_LOG(ME, "%i = scePsmfPlayerGetAudioOutSize(%08x)", audioSamplesBytes, psmfPlayer); return audioSamplesBytes; } @@ -1415,12 +1413,10 @@ int scePsmfPlayerReleasePsmf(u32 psmfPlayer) PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer); if (!psmfplayer) { ERROR_LOG(ME, "scePsmfPlayerReleasePsmf(%08x): invalid psmf player", psmfPlayer); - return ERROR_PSMF_NOT_FOUND; + return ERROR_PSMFPLAYER_INVALID_STATUS; } - - bool isInitialized = isInitializedStatus(psmfplayer->status); - if (!isInitialized) { - ERROR_LOG(ME, "scePsmfPlayerReleasePsmf(%08x): not initialized", psmfPlayer); + if (psmfplayer->status < PSMF_PLAYER_STATUS_STANDBY) { + ERROR_LOG(ME, "scePsmfPlayerReleasePsmf(%08x): not set yet", psmfPlayer); return ERROR_PSMFPLAYER_INVALID_STATUS; } @@ -1579,9 +1575,7 @@ int scePsmfPlayerGetCurrentStatus(u32 psmfPlayer) VERBOSE_LOG(ME, "scePsmfPlayerGetCurrentStatus(%08x): invalid psmf player", psmfPlayer); return ERROR_PSMFPLAYER_INVALID_STATUS; } - - bool isInitialized = isInitializedStatus(psmfplayer->status); - if (!isInitialized) { + if (psmfplayer->status == PSMF_PLAYER_STATUS_NONE) { ERROR_LOG(ME, "scePsmfPlayerGetCurrentStatus(%08x): not initialized", psmfPlayer); return ERROR_PSMFPLAYER_INVALID_STATUS; }