diff --git a/CHANGES b/CHANGES index ff4c90b27..01fc4dfb9 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,8 @@ Bugfixes: - GBA Memory: Fix mirror on non-overdumped Classic NES games - Util: Fix realloc semantics in utf16to8 - PSP2: Fix GPU crash while exiting + - PSP2: Fix VSync + - ARM7: Fix decoding of Thumb ADD (variants 5 and 6) Misc: - 3DS: Use blip_add_delta_fast for a small speed improvement - OpenGL: Log shader compilation failure diff --git a/src/arm/decoder-thumb.c b/src/arm/decoder-thumb.c index 538773ec7..707324023 100644 --- a/src/arm/decoder-thumb.c +++ b/src/arm/decoder-thumb.c @@ -143,7 +143,7 @@ DEFINE_DECODER_WITH_HIGH_THUMB(MOV3, MOV, ARM_OPERAND_AFFECTED_1, 0) #define DEFINE_IMMEDIATE_WITH_REGISTER_DATA_THUMB(NAME, MNEMONIC, REG) \ DEFINE_THUMB_DECODER(NAME, MNEMONIC, \ - info->op1.reg = (opcode >> 6) & 0x0007; \ + info->op1.reg = (opcode >> 8) & 0x0007; \ info->op2.reg = REG; \ info->op3.immediate = (opcode & 0x00FF) << 2; \ info->operandFormat = ARM_OPERAND_REGISTER_1 | \ diff --git a/src/core/config.c b/src/core/config.c index 07b3a7cb3..c83def2cf 100644 --- a/src/core/config.c +++ b/src/core/config.c @@ -207,7 +207,7 @@ void mCoreConfigDirectory(char* out, size_t outLength) { WideCharToMultiByte(CP_UTF8, 0, wpath, -1, out, outLength, 0, 0); #elif defined(PSP2) UNUSED(portable); - snprintf(out, outLength, "cache0:/%s", projectName); + snprintf(out, outLength, "ux0:/%s", projectName); sceIoMkdir(out, 0777); #elif defined(GEKKO) UNUSED(portable); diff --git a/src/platform/psp2/main.c b/src/platform/psp2/main.c index f757889d2..f6eee91a7 100644 --- a/src/platform/psp2/main.c +++ b/src/platform/psp2/main.c @@ -34,7 +34,7 @@ static void _drawEnd(void) { int vcount = oldVCount; vita2d_end_drawing(); oldVCount = sceDisplayGetVcount(); - vita2d_set_vblank_wait(oldVCount == vcount); + vita2d_set_vblank_wait(oldVCount + 1 >= vcount); vita2d_swap_buffers(); } diff --git a/src/platform/psp2/sce-vfs.c b/src/platform/psp2/sce-vfs.c index 2dac02319..89adf4152 100644 --- a/src/platform/psp2/sce-vfs.c +++ b/src/platform/psp2/sce-vfs.c @@ -137,7 +137,7 @@ bool _vfsceSync(struct VFile* vf, const void* buffer, size_t size) { sceIoLseek(vfsce->fd, cur, SEEK_SET); } // TODO: Get the right device - return sceIoSync("cache0:", 0) >= 0; + return sceIoSync("ux0:", 0) >= 0; } struct VDir* VDirOpen(const char* path) {