diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp index 57e9e4262c..85ca496213 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp @@ -571,15 +571,14 @@ static NEVER_INLINE s32 savedata_op(ppu_thread& ppu, u32 operation, u32 version, // Stat Callback funcStat(ppu, result, statGet, statSet); - if (result->result < 0) + if (result->result != CELL_SAVEDATA_CBRESULT_OK_NEXT) { cellSaveData.warning("savedata_op(): funcStat returned result=%d.", result->result); - return CELL_SAVEDATA_ERROR_CBRESULT; - } - if (result->result == CELL_SAVEDATA_CBRESULT_OK_LAST || result->result == CELL_SAVEDATA_CBRESULT_OK_LAST_NOCONFIRM) - { - return CELL_OK; + if (result->result < CELL_SAVEDATA_CBRESULT_OK_NEXT) + { + return CELL_SAVEDATA_ERROR_CBRESULT; + } } if (statSet->setParam) diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.h b/rpcs3/Emu/Cell/Modules/cellSaveData.h index a1cebdbca7..bed5d7fae9 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.h +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.h @@ -92,6 +92,15 @@ enum CELL_SAVEDATA_RECREATE_YES = 2, CELL_SAVEDATA_RECREATE_YES_RESET_OWNER = 3, CELL_SAVEDATA_RECREATE_MASK = 0xffff, + + // Version + CELL_SAVEDATA_VERSION_OLD = 0, + CELL_SAVEDATA_VERSION_420 = 1, + + // Error Dialog + CELL_SAVEDATA_ERRDIALOG_NONE = 0, + CELL_SAVEDATA_ERRDIALOG_ALWAYS = 1, + CELL_SAVEDATA_ERRDIALOG_NOREPEAT = 2, }; // CellSaveDataListNewData::iconPosition