From 5f089051090587671b8720bc20aa434018b4257b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 23 Nov 2012 07:19:21 +0100 Subject: [PATCH] (PSP1) Add Makefile --- Makefile.psp1 | 21 +++++++++++++++++++++ general.h | 5 ++++- psp/psp_input.c | 4 +++- psp/sdk_defines.h | 15 +++++++++++---- psp1/psp1_video.c | 10 +++++++--- psp2/psp2_video.c | 4 ++-- 6 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 Makefile.psp1 diff --git a/Makefile.psp1 b/Makefile.psp1 new file mode 100644 index 0000000000..2ca983bfe2 --- /dev/null +++ b/Makefile.psp1 @@ -0,0 +1,21 @@ +RARCH_VERSION = "0.9.8-beta2" + +TARGET = retroarch_psp +OBJS = console/griffin/griffin.o + +INCDIR = +CFLAGS = -O2 -G0 -Wall -std=gnu99 +CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti +ASFLAGS = $(CFLAGS) + +RARCH_DEFINES = -DPSP -DHAVE_DEFAULT_RETROPAD_INPUT -DRARCH_CONSOLE -DHAVE_FILEBROWSER -DHAVE_RARCH_MAIN_WRAP -DHAVE_ZLIB -DWANT_RZLIB -DHAVE_CONFIGFILE=1 -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"$(RARCH_VERSION)\" -Dmain=rarch_main +CFLAGS += $(RARCH_DEFINES) + +LIBDIR = +LDFLAGS = +LIBS = -lpspaudiolib -lpspaudio + +#EXTRA_TARGETS = EBOOT.PBP +#PSP_EBOOT_TITLE = RetroArch PSP1 + +include $(PSPSDK)/lib/build.mak diff --git a/general.h b/general.h index ee4e8b3e05..f9b295d7ea 100644 --- a/general.h +++ b/general.h @@ -45,7 +45,10 @@ #include "android/native/jni/android_general.h" #endif -#if defined(XENON) || defined(__CELLOS_LV2__) +/* FIXME - If PATH_MAX is not defined, can we instead define + * it here? Could get rid of this long if conditional here + * which is a maintenance hazard */ +#if defined(XENON) || defined(__CELLOS_LV2__) || defined(PSP) #undef PATH_MAX #define PATH_MAX 4096 #endif diff --git a/psp/psp_input.c b/psp/psp_input.c index 89c8006b60..1a6ac5b22c 100644 --- a/psp/psp_input.c +++ b/psp/psp_input.c @@ -35,6 +35,8 @@ #define ANALOGSTICK_DEADZONE_LOW (0x40) #define ANALOGSTICK_DEADZONE_HIGH (0xc0) +#define MAX_PADS 1 + static uint64_t state; static void psp_input_poll(void *data) @@ -42,7 +44,7 @@ static void psp_input_poll(void *data) (void)data; SceCtrlData state_tmp; - int ret = sceCtrlReadBufferPositive(0, &state_tmp, 1); + int ret = CtrlReadBufferPositive(0, &state_tmp, 1); if (ret == SCE_OK) { diff --git a/psp/sdk_defines.h b/psp/sdk_defines.h index e2a40e824d..de09a7e1c0 100644 --- a/psp/sdk_defines.h +++ b/psp/sdk_defines.h @@ -32,13 +32,15 @@ #if defined(SN_TARGET_PSP2) #define PSP_DISPLAY_PIXEL_FORMAT_8888 (SCE_DISPLAY_PIXELFORMAT_A8B8G8R8) -#define sceDisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) sceDisplaySetFrameBuf(topaddr, sync) +#define DisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) sceDisplaySetFrameBuf(topaddr, sync) #define PSP_FB_WIDTH 960 #define PSP_FB_HEIGHT 544 #define PSP_PITCH_PIXELS 1024 #elif defined(PSP) +#define DisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) sceDisplaySetFrameBuf(topaddr, bufferwidth, pixelformat, sync) + #define SCE_DISPLAY_UPDATETIMING_NEXTVSYNC 1 #define PSP_FB_WIDTH 512 @@ -73,17 +75,22 @@ #define PSP_CTRL_L SCE_CTRL_L #define PSP_CTRL_R SCE_CTRL_R -#define sceCtrlReadBufferPositive(port, pad_data, bufs) sceCtrlReadBufferPositive(port, pad_data, bufs) +#define CtrlReadBufferPositive(port, pad_data, bufs) sceCtrlReadBufferPositive(port, pad_data, bufs) #elif defined(PSP) +#define PSP_CTRL_L PSP_CTRL_LTRIGGER +#define PSP_CTRL_R PSP_CTRL_RTRIGGER + #define STATE_BUTTON(state) ((state).Buttons) #define STATE_ANALOGLX(state) ((state).Lx) -#define STATE_ANALOGLX(state) ((state).Ly) +#define STATE_ANALOGLY(state) ((state).Ly) #define STATE_ANALOGRX(state) ((state).Rx) #define STATE_ANALOGRY(state) ((state).Ry) #define DEFAULT_SAMPLING_MODE (PSP_CTRL_MODE_ANALOG) -#define sceCtrlReadBufferPositive(port, pad_data, bufs) sceCtrlReadBufferPositive(pad_data, bufs) +#define CtrlReadBufferPositive(port, pad_data, bufs) sceCtrlReadBufferPositive(pad_data, bufs) +#endif + #endif diff --git a/psp1/psp1_video.c b/psp1/psp1_video.c index 0f7fa9dd36..7744532669 100644 --- a/psp1/psp1_video.c +++ b/psp1/psp1_video.c @@ -1,5 +1,6 @@ /* RetroArch - A frontend for libretro. * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis * * RetroArch is free software: you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Found- @@ -15,7 +16,8 @@ #include #include -#include +#include +#include #include "../psp/sdk_defines.h" #include "../general.h" @@ -37,6 +39,8 @@ static unsigned int __attribute__((aligned(16))) list[262144]; static void init_texture(void *data, const video_info_t *video) { + psp1_video_t *vid = (psp1_video_t*)data; + sceGuInit(); sceGuStart(GU_DIRECT, list); @@ -51,7 +55,7 @@ static void init_texture(void *data, const video_info_t *video) sceGuScissor(0, 0, PSP_SCREEN_WIDTH, PSP_SCREEN_HEIGHT); sceGuEnable(GU_SCISSOR_TEST); sceGuTexMode(vid->rgb32 ? GU_PSM_8888 : GU_PSM_5650, 0, 0, GU_FALSE); - sceGuTxFunc(GU_TFX_REPLACE, GU_TCC_RGBA); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGBA); sceGuTexFilter(GU_LINEAR, GU_LINEAR); sceGuEnable(GU_TEXTURE_2D); @@ -130,7 +134,7 @@ static bool psp_gfx_frame(void *data, const void *frame, sceGuFinish(); sceDisplayWaitVblankStart(); - sceDisplaySetFrameBuf(frame, pitch, + DisplaySetFrameBuf(frame, pitch, vid->rgb32 ? PSP_DISPLAY_PIXEL_FORMAT_8888 : PSP_DISPLAY_PIXEL_FORMAT_565, PSP_DISPLAY_SETBUF_IMMEDIATE); diff --git a/psp2/psp2_video.c b/psp2/psp2_video.c index c5540aa224..68fa34913d 100644 --- a/psp2/psp2_video.c +++ b/psp2/psp2_video.c @@ -187,9 +187,9 @@ static void disp_callback(const void *callback_data) framebuf.width = PSP_FB_WIDTH; framebuf.height = PSP_FB_HEIGHT; - ret = sceDisplaySetFrameBuf(&framebuf, PSP_FB_WIDTH, PSP_DISPLAY_PIXELFORMAT_8888, SCE_DISPLAY_UPDATETIMING_NEXTVSYNC); + ret = DisplaySetFrameBuf(&framebuf, PSP_FB_WIDTH, PSP_DISPLAY_PIXELFORMAT_8888, SCE_DISPLAY_UPDATETIMING_NEXTVSYNC); #elif defined(PSP) - ret = sceDisplaySetFrameBuf(&display_data->address, PSP_FB_WIDTH, PSP_DISPLAY_PIXELFORMAT_8888, SCE_DISPLAY_UPDATETIMING_NEXTVSYNC); + ret = DisplaySetFrameBuf(&display_data->address, PSP_FB_WIDTH, PSP_DISPLAY_PIXELFORMAT_8888, SCE_DISPLAY_UPDATETIMING_NEXTVSYNC); #endif /* TODO - Don't bother with error checking for now in here */