From 59d13c713115e04769a8a6c1cca1fe73be1de125 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?=
 <frangarcj@gmail.com>
Date: Sun, 2 Oct 2016 14:02:37 +0200
Subject: [PATCH 1/3] (VITA) Fix actuator

---
 input/drivers_joypad/psp_joypad.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/input/drivers_joypad/psp_joypad.c b/input/drivers_joypad/psp_joypad.c
index 039d45bc73..b2ebea5104 100644
--- a/input/drivers_joypad/psp_joypad.c
+++ b/input/drivers_joypad/psp_joypad.c
@@ -304,12 +304,12 @@ static bool psp_joypad_rumble(unsigned pad,
       case RETRO_RUMBLE_WEAK:
          if (strength > 1)
             strength = 1;
-         params.unk = strength;
+         params.small = strength;
          break;
       case RETRO_RUMBLE_STRONG:
          if (strength > 255)
             strength = 255;
-         params.enable = strength;
+         params.large = strength;
          break;
       case RETRO_RUMBLE_DUMMY:
       default:

From 1a967c42d7b1e1b2ba673550ba5144c1cf638340 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?=
 <frangarcj@gmail.com>
Date: Sun, 2 Oct 2016 14:03:15 +0200
Subject: [PATCH 2/3] (VITA) Remove warnings

---
 bootstrap/vita/sbrk.c | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/bootstrap/vita/sbrk.c b/bootstrap/vita/sbrk.c
index e960060b66..a36d56cfd7 100644
--- a/bootstrap/vita/sbrk.c
+++ b/bootstrap/vita/sbrk.c
@@ -1,6 +1,6 @@
 #include <errno.h>
 #include <reent.h>
-
+#include "../../defines/psp_defines.h"
 static int _newlib_heap_memblock;
 static unsigned _newlib_heap_size;
 static char *_newlib_heap_base, *_newlib_heap_end, *_newlib_heap_cur;
@@ -11,19 +11,19 @@ static int _newlib_vm_memblock;
 extern int _newlib_vm_size_user __attribute__((weak));
 
 void * _sbrk_r(struct _reent *reent, ptrdiff_t incr) {
-	if (sceKernelLockLwMutex(_newlib_sbrk_mutex, 1, 0) < 0)
+	if (sceKernelLockLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, 1, 0) < 0)
 		goto fail;
 	if (!_newlib_heap_base || _newlib_heap_cur + incr >= _newlib_heap_end) {
-		sceKernelUnlockLwMutex(_newlib_sbrk_mutex, 1);
+		sceKernelUnlockLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, 1);
 fail:
 		reent->_errno = ENOMEM;
-		return -1;
+		return (void*)-1;
 	}
 
 	char *prev_heap_end = _newlib_heap_cur;
 	_newlib_heap_cur += incr;
 
-	sceKernelUnlockLwMutex(_newlib_sbrk_mutex, 1);
+	sceKernelUnlockLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, 1);
 	return (void*) prev_heap_end;
 }
 
@@ -35,7 +35,7 @@ void _init_vita_heap(void) {
 	  _newlib_vm_memblock = sceKernelAllocMemBlockForVM("code", _newlib_vm_size_user);
 
 	  if (_newlib_vm_memblock < 0){
-	    sceClibPrintf("sceKernelAllocMemBlockForVM failed\n");
+	    //sceClibPrintf("sceKernelAllocMemBlockForVM failed\n");
 			goto failure;
 		}
 	}else{
@@ -44,15 +44,11 @@ void _init_vita_heap(void) {
 	
   
 	// Create a mutex to use inside _sbrk_r
-	if (sceKernelCreateLwMutex(_newlib_sbrk_mutex, "sbrk mutex", 0, 0, 0) < 0) {
+	if (sceKernelCreateLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, "sbrk mutex", 0, 0, 0) < 0) {
 		goto failure;
 	}
-	if (&_newlib_heap_size_user != NULL) {
-		_newlib_heap_size = _newlib_heap_size_user;
-	} else {
-		// Create a memblock for the heap memory, 32MB
-		_newlib_heap_size = 32 * 1024 * 1024;
-	}
+	
+	_newlib_heap_size = _newlib_heap_size_user;
 	
 	_newlib_heap_size -= _newlib_vm_size; 
 	
@@ -60,7 +56,7 @@ void _init_vita_heap(void) {
 	if (_newlib_heap_memblock < 0) {
 		goto failure;
 	}
-	if (sceKernelGetMemBlockBase(_newlib_heap_memblock, &_newlib_heap_base) < 0) {
+	if (sceKernelGetMemBlockBase(_newlib_heap_memblock, (void**)&_newlib_heap_base) < 0) {
 		goto failure;
 	}
 	_newlib_heap_end = _newlib_heap_base + _newlib_heap_size;
@@ -81,7 +77,7 @@ int getVMBlock(){
 void _free_vita_heap(void) {
 	
 	// Destroy the sbrk mutex
-	sceKernelDeleteLwMutex(_newlib_sbrk_mutex);
+	sceKernelDeleteLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex);
 
 	// Free the heap memblock to avoid memory leakage.
 	sceKernelFreeMemBlock(_newlib_heap_memblock);

From 6dabe48e882c2607dfc7e2e5e4d7d52cb24d4014 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?=
 <frangarcj@gmail.com>
Date: Sun, 2 Oct 2016 14:04:09 +0200
Subject: [PATCH 3/3] (VITA) Change DEBUG define

---
 deps/libvita2d/source/vita2d.c | 74 +++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 37 deletions(-)

diff --git a/deps/libvita2d/source/vita2d.c b/deps/libvita2d/source/vita2d.c
index 14658ef545..c9242580fb 100644
--- a/deps/libvita2d/source/vita2d.c
+++ b/deps/libvita2d/source/vita2d.c
@@ -11,9 +11,9 @@
 
 #ifdef DEBUG_BUILD
 #  include <stdio.h>
-#  define DEBUG(...) printf(__VA_ARGS__)
+#  define VITA2D_DEBUG(...) printf(__VA_ARGS__)
 #else
-#  define DEBUG(...)
+#  define VITA2D_DEBUG(...)
 #endif
 
 /* Defines */
@@ -160,7 +160,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 	UNUSED(err);
 
 	if (vita2d_initialized) {
-		DEBUG("libvita2d is already initialized!\n");
+		VITA2D_DEBUG("libvita2d is already initialized!\n");
 		return 1;
 	}
 
@@ -173,7 +173,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 	initializeParams.parameterBufferSize		= SCE_GXM_DEFAULT_PARAMETER_BUFFER_SIZE;
 
 	err = sceGxmInitialize(&initializeParams);
-	DEBUG("sceGxmInitialize(): 0x%08X\n", err);
+	VITA2D_DEBUG("sceGxmInitialize(): 0x%08X\n", err);
 
 	// allocate ring buffer memory using default sizes
 	void *vdmRingBuffer = gpu_alloc(
@@ -217,7 +217,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 	contextParams.fragmentUsseRingBufferOffset	= fragmentUsseRingBufferOffset;
 
 	err = sceGxmCreateContext(&contextParams, &_vita2d_context);
-	DEBUG("sceGxmCreateContext(): 0x%08X\n", err);
+	VITA2D_DEBUG("sceGxmCreateContext(): 0x%08X\n", err);
 
 	// set up parameters
 	SceGxmRenderTargetParams renderTargetParams;
@@ -232,7 +232,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 
 	// create the render target
 	err = sceGxmCreateRenderTarget(&renderTargetParams, &renderTarget);
-	DEBUG("sceGxmCreateRenderTarget(): 0x%08X\n", err);
+	VITA2D_DEBUG("sceGxmCreateRenderTarget(): 0x%08X\n", err);
 
 	// allocate memory and sync objects for display buffers
 	for (i = 0; i < DISPLAY_BUFFER_COUNT; i++) {
@@ -346,45 +346,45 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 	patcherParams.fragmentUsseOffset	= patcherFragmentUsseOffset;
 
 	err = sceGxmShaderPatcherCreate(&patcherParams, &shaderPatcher);
-	DEBUG("sceGxmShaderPatcherCreate(): 0x%08X\n", err);
+	VITA2D_DEBUG("sceGxmShaderPatcherCreate(): 0x%08X\n", err);
 
 	// check the shaders
 	err = sceGxmProgramCheck(clearVertexProgramGxp);
-	DEBUG("clear_v sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear_v sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(clearFragmentProgramGxp);
-	DEBUG("clear_f sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear_f sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(colorVertexProgramGxp);
-	DEBUG("color_v sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("color_v sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(colorFragmentProgramGxp);
-	DEBUG("color_f sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("color_f sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(textureVertexProgramGxp);
-	DEBUG("texture_v sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_v sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(textureFragmentProgramGxp);
-	DEBUG("texture_f sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_f sceGxmProgramCheck(): 0x%08X\n", err);
 	err = sceGxmProgramCheck(textureTintFragmentProgramGxp);
-	DEBUG("texture_tint_f sceGxmProgramCheck(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_tint_f sceGxmProgramCheck(): 0x%08X\n", err);
 
 	// register programs with the patcher
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, clearVertexProgramGxp, &clearVertexProgramId);
-	DEBUG("clear_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, clearFragmentProgramGxp, &clearFragmentProgramId);
-	DEBUG("clear_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, colorVertexProgramGxp, &colorVertexProgramId);
-	DEBUG("color_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("color_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, colorFragmentProgramGxp, &colorFragmentProgramId);
-	DEBUG("color_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("color_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, textureVertexProgramGxp, &textureVertexProgramId);
-	DEBUG("texture_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_v sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, textureFragmentProgramGxp, &textureFragmentProgramId);
-	DEBUG("texture_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherRegisterProgram(shaderPatcher, textureTintFragmentProgramGxp, &textureTintFragmentProgramId);
-	DEBUG("texture_tint_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_tint_f sceGxmShaderPatcherRegisterProgram(): 0x%08X\n", err);
 
 	// Fill SceGxmBlendInfo
 	static const SceGxmBlendInfo blend_info = {
@@ -421,7 +421,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		1,
 		&clearVertexProgram);
 
-	DEBUG("clear sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherCreateFragmentProgram(
 		shaderPatcher,
@@ -432,7 +432,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		clearVertexProgramGxp,
 		&clearFragmentProgram);
 
-	DEBUG("clear sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("clear sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
 
 	// create the clear triangle vertex/index data
 	clearVertices = (vita2d_clear_vertex *)gpu_alloc(
@@ -461,10 +461,10 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 	clearIndices[2] = 2;
 
 	const SceGxmProgramParameter *paramColorPositionAttribute = sceGxmProgramFindParameterByName(colorVertexProgramGxp, "aPosition");
-	DEBUG("aPosition sceGxmProgramFindParameterByName(): %p\n", paramColorPositionAttribute);
+	VITA2D_DEBUG("aPosition sceGxmProgramFindParameterByName(): %p\n", paramColorPositionAttribute);
 
 	const SceGxmProgramParameter *paramColorColorAttribute = sceGxmProgramFindParameterByName(colorVertexProgramGxp, "aColor");
-	DEBUG("aColor sceGxmProgramFindParameterByName(): %p\n", paramColorColorAttribute);
+	VITA2D_DEBUG("aColor sceGxmProgramFindParameterByName(): %p\n", paramColorColorAttribute);
 
 	// create color vertex format
 	SceGxmVertexAttribute colorVertexAttributes[2];
@@ -495,7 +495,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		1,
 		&_vita2d_colorVertexProgram);
 
-	DEBUG("color sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("color sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherCreateFragmentProgram(
 		shaderPatcher,
@@ -506,14 +506,14 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		colorVertexProgramGxp,
 		&_vita2d_colorFragmentProgram);
 
-	DEBUG("color sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("color sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
 
 
 	const SceGxmProgramParameter *paramTexturePositionAttribute = sceGxmProgramFindParameterByName(textureVertexProgramGxp, "aPosition");
-	DEBUG("aPosition sceGxmProgramFindParameterByName(): %p\n", paramTexturePositionAttribute);
+	VITA2D_DEBUG("aPosition sceGxmProgramFindParameterByName(): %p\n", paramTexturePositionAttribute);
 
 	const SceGxmProgramParameter *paramTextureTexcoordAttribute = sceGxmProgramFindParameterByName(textureVertexProgramGxp, "aTexcoord");
-	DEBUG("aTexcoord sceGxmProgramFindParameterByName(): %p\n", paramTextureTexcoordAttribute);
+	VITA2D_DEBUG("aTexcoord sceGxmProgramFindParameterByName(): %p\n", paramTextureTexcoordAttribute);
 
 	// create texture vertex format
 	SceGxmVertexAttribute textureVertexAttributes[2];
@@ -544,7 +544,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		1,
 		&_vita2d_textureVertexProgram);
 
-	DEBUG("texture sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture sceGxmShaderPatcherCreateVertexProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherCreateFragmentProgram(
 		shaderPatcher,
@@ -555,7 +555,7 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		textureVertexProgramGxp,
 		&_vita2d_textureFragmentProgram);
 
-	DEBUG("texture sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
 
 	err = sceGxmShaderPatcherCreateFragmentProgram(
 		shaderPatcher,
@@ -566,20 +566,20 @@ int vita2d_init_advanced(unsigned int temp_pool_size)
 		textureVertexProgramGxp,
 		&_vita2d_textureTintFragmentProgram);
 
-	DEBUG("texture_tint sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
+	VITA2D_DEBUG("texture_tint sceGxmShaderPatcherCreateFragmentProgram(): 0x%08X\n", err);
 
 	// find vertex uniforms by name and cache parameter information
 	_vita2d_clearClearColorParam = sceGxmProgramFindParameterByName(clearFragmentProgramGxp, "uClearColor");
-	DEBUG("_vita2d_clearClearColorParam sceGxmProgramFindParameterByName(): %p\n", _vita2d_clearClearColorParam);
+	VITA2D_DEBUG("_vita2d_clearClearColorParam sceGxmProgramFindParameterByName(): %p\n", _vita2d_clearClearColorParam);
 
 	_vita2d_colorWvpParam = sceGxmProgramFindParameterByName(colorVertexProgramGxp, "wvp");
-	DEBUG("color wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_colorWvpParam);
+	VITA2D_DEBUG("color wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_colorWvpParam);
 
 	_vita2d_textureWvpParam = sceGxmProgramFindParameterByName(textureVertexProgramGxp, "wvp");
-	DEBUG("texture wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_textureWvpParam);
+	VITA2D_DEBUG("texture wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_textureWvpParam);
 
 	_vita2d_textureTintColorParam = sceGxmProgramFindParameterByName(textureTintFragmentProgramGxp, "uTintColor");
-	DEBUG("texture wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_textureWvpParam);
+	VITA2D_DEBUG("texture wvp sceGxmProgramFindParameterByName(): %p\n", _vita2d_textureWvpParam);
 
 	// Allocate memory for the memory pool
 	pool_size = temp_pool_size;
@@ -614,7 +614,7 @@ int vita2d_fini()
 	unsigned int i;
 
 	if (!vita2d_initialized) {
-		DEBUG("libvita2d is not initialized!\n");
+		VITA2D_DEBUG("libvita2d is not initialized!\n");
 		return 1;
 	}