From 4ea086f6049c3f2c286f1a4e1e23b5763629067a Mon Sep 17 00:00:00 2001 From: notaz Date: Thu, 2 Aug 2012 01:33:02 +0300 Subject: [PATCH] release r15 --- Makefile | 7 +------ frontend/menu.c | 30 ++++++++++++++---------------- frontend/pandora/pcsx.sh | 6 ++---- frontend/plat_pandora.c | 2 +- plugins/gpu-gles/Makefile | 1 + plugins/gpu-gles/gpulib_if.c | 12 ++++++++---- readme.txt | 32 ++++++++++++++++++++++++-------- 7 files changed, 51 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 8b7d83c5..b5442506 100644 --- a/Makefile +++ b/Makefile @@ -117,7 +117,7 @@ OBJS += plugins/gpu_unai/gpulib_if.o ifeq "$(ARCH)" "arm" OBJS += plugins/gpu_unai/gpu_arm.o endif -plugins/gpu_unai/gpulib_if.o: CFLAGS += -DREARMED +plugins/gpu_unai/gpulib_if.o: CFLAGS += -DREARMED -O3 CC_LINK = $(CXX) endif @@ -241,9 +241,6 @@ rel: pcsx $(PLUGINS) \ sed -e 's/%PR%/$(VER)/g' out/pcsx.pxml.templ > out/pcsx.pxml rm out/pcsx.pxml.templ mv out/*.so out/plugins/ - mv out/plugins/gpu_unai.so out/plugins/gpuPCSX4ALL.so - mv out/plugins/gpu_gles.so out/plugins/gpuGLES.so - mv out/plugins/gpu_peops.so out/plugins/gpuPEOPS.so $(PND_MAKE) -p pcsx_rearmed_$(VER).pnd -d out -x out/pcsx.pxml -i frontend/pandora/pcsx.png -c endif @@ -263,8 +260,6 @@ rel: pcsx $(PLUGINS) \ rm -rf out mkdir -p out/pcsx_rearmed/plugins cp -r $^ out/pcsx_rearmed/ - mv out/pcsx_rearmed/gpu_unai.so out/pcsx_rearmed/gpuPCSX4ALL.so - mv out/pcsx_rearmed/gpu_gles.so out/pcsx_rearmed/gpuGLES.so mv out/pcsx_rearmed/*.so out/pcsx_rearmed/plugins/ mv out/pcsx_rearmed/caanoo.gpe out/pcsx_rearmed/pcsx.gpe mv out/pcsx_rearmed/pcsx_rearmed.ini out/ diff --git a/frontend/menu.c b/frontend/menu.c index 6a50d167..3756c1a3 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -261,7 +261,7 @@ static const struct { void *val; } config_data[] = { CE_CONFIG_STR(Bios), - CE_CONFIG_STR_V(Gpu, 2), + CE_CONFIG_STR_V(Gpu, 3), CE_CONFIG_STR(Spu), // CE_CONFIG_STR(Cdr), CE_CONFIG_VAL(Xa), @@ -340,6 +340,7 @@ static void make_cfg_fname(char *buf, size_t size, int is_game) } static void keys_write_all(FILE *f); +static char *mystrip(char *str); static int menu_write_config(int is_game) { @@ -386,14 +387,18 @@ static int menu_do_last_cd_img(int is_get) { char path[256]; FILE *f; + int ret; snprintf(path, sizeof(path), "." PCSX_DOT_DIR "lastcdimg.txt"); f = fopen(path, is_get ? "r" : "w"); if (f == NULL) return -1; - if (is_get) - fscanf(f, "%255s", last_selected_fname); + if (is_get) { + ret = fread(last_selected_fname, 1, sizeof(last_selected_fname) - 1, f); + last_selected_fname[ret] = 0; + mystrip(last_selected_fname); + } else fprintf(f, "%s\n", last_selected_fname); fclose(f); @@ -505,10 +510,6 @@ fail: menu_sync_config(); - // caanoo old config compat hack - if (strcmp(Config.Gpu, "gpuPCSX4ALL.so") == 0) - strcpy(Config.Gpu, "gpu_unai.so"); - // sync plugins for (i = bios_sel = 0; bioses[i] != NULL; i++) if (strcmp(Config.Bios, bioses[i]) == 0) @@ -694,7 +695,7 @@ static char *mystrip(char *str) len = strlen(str); for (i = len - 1; i >= 0; i--) - if (str[i] != ' ') break; + if (str[i] != ' ' && str[i] != '\r' && str[i] != '\n') break; str[i+1] = 0; return str; @@ -1254,13 +1255,10 @@ static const char h_bios[] = "HLE is simulated BIOS. BIOS selection is sav static const char h_plugin_gpu[] = #ifdef __ARM_NEON__ "builtin_gpu is the NEON GPU, very fast and accurate\n" - "gpuPEOPS " -#else - "builtin_gpu " #endif - "is Pete's soft GPU, slow but accurate\n" - "gpuPCSX4ALL is GPU from PCSX4ALL, fast but glitchy\n" - "gpuGLES Pete's hw GPU, uses 3D chip but is glitchy\n" + "gpu_peops is Pete's soft GPU, slow but accurate\n" + "gpu_unai is GPU from PCSX4ALL, fast but glitchy\n" + "gpu_gles Pete's hw GPU, uses 3D chip but is glitchy\n" "must save config and reload the game if changed"; static const char h_plugin_spu[] = "spunull effectively disables sound\n" "must save config and reload the game if changed"; @@ -1278,8 +1276,8 @@ static menu_entry e_menu_plugin_options[] = mee_handler_h ("Configure built-in GPU plugin", menu_loop_plugin_gpu_neon, h_gpu_neon), #endif mee_handler_h ("Configure gpu_peops plugin", menu_loop_plugin_gpu_peops, h_gpu_peops), - mee_handler_h ("Configure PCSX4ALL GPU plugin", menu_loop_plugin_gpu_unai, h_gpu_unai), - mee_handler_h ("Configure GLES GPU plugin", menu_loop_plugin_gpu_peopsgl, h_gpu_peopsgl), + mee_handler_h ("Configure gpu_unai GPU plugin", menu_loop_plugin_gpu_unai, h_gpu_unai), + mee_handler_h ("Configure gpu_gles GPU plugin", menu_loop_plugin_gpu_peopsgl, h_gpu_peopsgl), mee_handler_h ("Configure built-in SPU plugin", menu_loop_plugin_spu, h_spu), mee_end, }; diff --git a/frontend/pandora/pcsx.sh b/frontend/pandora/pcsx.sh index 2077a29a..0957b945 100755 --- a/frontend/pandora/pcsx.sh +++ b/frontend/pandora/pcsx.sh @@ -3,8 +3,7 @@ # stupid nub mode thing nub0mode=`cat /proc/pandora/nub0/mode` nub1mode=`cat /proc/pandora/nub1/mode` -echo absolute > /proc/pandora/nub0/mode -echo absolute > /proc/pandora/nub1/mode +/usr/pandora/scripts/op_nubchange.sh absolute absolute ./pcsx "$@" @@ -12,5 +11,4 @@ echo absolute > /proc/pandora/nub1/mode ./picorestore sudo -n /usr/pandora/scripts/op_lcdrate.sh 60 -echo "$nub0mode" > /proc/pandora/nub0/mode -echo "$nub1mode" > /proc/pandora/nub1/mode +/usr/pandora/scripts/op_nubchange.sh $nub0mode $nub1mode diff --git a/frontend/plat_pandora.c b/frontend/plat_pandora.c index fb330561..9ec747db 100644 --- a/frontend/plat_pandora.c +++ b/frontend/plat_pandora.c @@ -57,7 +57,7 @@ static const struct in_default_bind in_evdev_defbinds[] = { { KEY_RIGHTCTRL, IN_BINDTYPE_PLAYER12, DKEY_R1 }, { KEY_Q, IN_BINDTYPE_PLAYER12, DKEY_L2 }, { KEY_P, IN_BINDTYPE_PLAYER12, DKEY_R2 }, - { KEY_TAB, IN_BINDTYPE_EMU, SACTION_MINIMIZE }, + { KEY_MENU, IN_BINDTYPE_EMU, SACTION_MINIMIZE }, { KEY_SPACE, IN_BINDTYPE_EMU, SACTION_ENTER_MENU }, { KEY_1, IN_BINDTYPE_EMU, SACTION_SAVE_STATE }, { KEY_2, IN_BINDTYPE_EMU, SACTION_LOAD_STATE }, diff --git a/plugins/gpu-gles/Makefile b/plugins/gpu-gles/Makefile index 894daec5..421a6e78 100644 --- a/plugins/gpu-gles/Makefile +++ b/plugins/gpu-gles/Makefile @@ -6,6 +6,7 @@ SRC_STANDALONE += gpuDraw.c gpuFps.c gpuPlugin.c gpuPrim.c gpuTexture.c SRC_GPULIB += gpulib_if.c CFLAGS += -I$(PREFIX)include +LDFLAGS += -Wl,--allow-multiple-definition LDLIBS += -L$(PREFIX)lib ifeq "$(PLATFORM)" "caanoo" CFLAGS += -DFAKE_WINDOW diff --git a/plugins/gpu-gles/gpulib_if.c b/plugins/gpu-gles/gpulib_if.c index ce7f00dc..c25ad8bb 100644 --- a/plugins/gpu-gles/gpulib_if.c +++ b/plugins/gpu-gles/gpulib_if.c @@ -640,6 +640,14 @@ void vout_update(void) } } +void vout_blank(void) +{ +} + +void vout_set_config(const struct rearmed_cbs *cbs) +{ +} + static struct rearmed_cbs *cbs; long GPUopen(void **dpy) @@ -696,10 +704,6 @@ void renderer_set_config(const struct rearmed_cbs *cbs_) iVRamSize = cbs->gpu_peopsgl.iVRamSize; } -void vout_set_config(const struct rearmed_cbs *cbs) -{ -} - void SetAspectRatio(void) { if (cbs->pl_get_layer_pos) diff --git a/readme.txt b/readme.txt index ff369298..ad90b45f 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ -PCSX-ReARMed - yet another PCSX fork +PCSX-ReARMed - yet another PCSX fork, ARM special http://notaz.gp2x.de/pcsx_rearmed.php @@ -12,7 +12,7 @@ which itself contains code from PCSX, PCSX-df and PCSX-Revolution. This version is ARM architecture oriented and features MIPS->ARM recompiler by Ari64, NEON GTE code and more performance improvements. It was created for Pandora handheld, but should be usable on other devices after some code -adjustments (N900, GPH Wiz/Caanoo versions are also available). +adjustments (N900, GPH Wiz/Caanoo, PlayBook versions are also available). PCSX ReARMed features ARM NEON GPU by Exophase, that in many cases produces pixel perfect graphics at very high performance. There is also Una-i's GPU @@ -60,16 +60,18 @@ GPU (graphics) and SPU (sound) plugins can be selected in [BIOS/Plugins] menu: builtin_gpu - this is either Exophase's ARM NEON GPU (accurate and fast, - available if platform supports NEON), else it's P.E.Op.S. - soft GPU (accurate but slow). -gpuPCSX4ALL.so - plugin from PCSX4ALL project. Faster than P.E.Op.S. + available if platform supports NEON, like on pandoa), + gpu_peops or gpu_unai (depends on compile options). +gpu_peops.so - P.E.Op.S. soft GPU, reasonably accurate but slow + (also found with older emulators on PC) +gpu_unai.so - Unai's plugin from PCSX4ALL project. Faster than P.E.Op.S. but has some glitches. -gpuGLES.so - experimental port of P.E.Op.S. MesaGL plugin to OpenGL ES. +gpu_gles.so - experimental port of P.E.Op.S. MesaGL plugin to OpenGL ES. Occasionally faster but has lots of glitches and seems to - be rather unstable (may crash the system). -gpuPEOPS.so - P.E.Op.S. soft GPU (in case builtin one is NEON) + be rather unstable (may crash the driver/system). builtin_spu - P.E.Op.S. SPU plugin, optimized for ARM. spunull.so - NULL plugin, i.e. no sound emulation. + May cause compatibility problems. Cheats @@ -86,6 +88,20 @@ the main menu where it is possible to enable/disable individual cheats. Changelog --------- +r15 (2012-08-02) +* various compatibility fixes +* attempts to fix various SPU issues +* Exophase fixed blending issue in his NEON GPU +* fixed some potential crashes +* gpu_unai: merged range fix from Franxis ++ added cheat support ++ menu: pressing a key in file list now seeks to a file ++ new code, fixes and refactoring to improve portability: + support RAM offset, translation cache in data segment, + SDL support, multiple sound output methods, configure script +* unified plugin names for all ports ++ initial libretro support + r14 (2012-03-04) * GLES GPU: implemented frameskip * GLES GPU: merged some changes from schtruck/FPSE -- 2.39.2