From 9e0630ab54cbf6b6e3ec525f1088aa54e163c938 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 9 Oct 2011 22:15:00 +0300 Subject: add caanoo frontend files, move pandora files --- Makefile | 6 +- Makefile.caanoo | 22 ++ frontend/320240/caanoo.gpe | 8 + frontend/320240/pcsx26.png | Bin 0 -> 4763 bytes frontend/320240/pcsx_rearmed.ini | 5 + frontend/320240/pollux_set.c | 389 +++++++++++++++++++++++++++++++++++ frontend/320240/skin/background.png | Bin 0 -> 36069 bytes frontend/320240/skin/font.png | Bin 0 -> 3185 bytes frontend/320240/skin/readme.txt | 8 + frontend/320240/skin/selector.png | Bin 0 -> 261 bytes frontend/320240/skin/skin.txt | 4 + frontend/pandora/pcsx.png | Bin 0 -> 7981 bytes frontend/pandora/pcsx.pxml.templ | 40 ++++ frontend/pandora/pcsx.sh | 16 ++ frontend/pandora/picorestore.c | 109 ++++++++++ frontend/pandora/skin/background.png | Bin 0 -> 183772 bytes frontend/pandora/skin/font.png | Bin 0 -> 11264 bytes frontend/pandora/skin/readme.txt | 8 + frontend/pandora/skin/selector.png | Bin 0 -> 386 bytes frontend/pandora/skin/skin.txt | 4 + pandora/pcsx.png | Bin 7981 -> 0 bytes pandora/pcsx.pxml.templ | 40 ---- pandora/pcsx.sh | 16 -- pandora/picorestore.c | 109 ---------- pandora/readme.txt | 256 ----------------------- pandora/skin/background.png | Bin 183772 -> 0 bytes pandora/skin/font.png | Bin 11264 -> 0 bytes pandora/skin/readme.txt | 8 - pandora/skin/selector.png | Bin 386 -> 0 bytes pandora/skin/skin.txt | 4 - readme.txt | 256 +++++++++++++++++++++++ 31 files changed, 872 insertions(+), 436 deletions(-) create mode 100755 frontend/320240/caanoo.gpe create mode 100644 frontend/320240/pcsx26.png create mode 100644 frontend/320240/pcsx_rearmed.ini create mode 100644 frontend/320240/pollux_set.c create mode 100644 frontend/320240/skin/background.png create mode 100644 frontend/320240/skin/font.png create mode 100644 frontend/320240/skin/readme.txt create mode 100644 frontend/320240/skin/selector.png create mode 100644 frontend/320240/skin/skin.txt create mode 100644 frontend/pandora/pcsx.png create mode 100644 frontend/pandora/pcsx.pxml.templ create mode 100755 frontend/pandora/pcsx.sh create mode 100644 frontend/pandora/picorestore.c create mode 100644 frontend/pandora/skin/background.png create mode 100644 frontend/pandora/skin/font.png create mode 100644 frontend/pandora/skin/readme.txt create mode 100644 frontend/pandora/skin/selector.png create mode 100644 frontend/pandora/skin/skin.txt delete mode 100644 pandora/pcsx.png delete mode 100644 pandora/pcsx.pxml.templ delete mode 100755 pandora/pcsx.sh delete mode 100644 pandora/picorestore.c delete mode 100644 pandora/readme.txt delete mode 100644 pandora/skin/background.png delete mode 100644 pandora/skin/font.png delete mode 100644 pandora/skin/readme.txt delete mode 100644 pandora/skin/selector.png delete mode 100644 pandora/skin/skin.txt create mode 100644 readme.txt diff --git a/Makefile b/Makefile index fdf3724..4fc970d 100644 --- a/Makefile +++ b/Makefile @@ -192,8 +192,8 @@ PND_MAKE ?= $(HOME)/dev/pnd/src/pandora-libraries/testdata/scripts/pnd_make.sh VER ?= $(shell git describe master) rel: pcsx $(PLUGINS) \ - pandora/pcsx.sh pandora/pcsx.pxml.templ pandora/pcsx.png \ - pandora/picorestore pandora/readme.txt pandora/skin COPYING + frontend/pandora/pcsx.sh frontend/pandora/pcsx.pxml.templ frontend/pandora/pcsx.png \ + frontend/pandora/picorestore frontend/pandora/skin readme.txt COPYING rm -rf out mkdir -p out/plugins cp -r $^ out/ @@ -201,4 +201,4 @@ rel: pcsx $(PLUGINS) \ rm out/pcsx.pxml.templ mv out/*.so out/plugins/ mv out/plugins/gpu_neon.so out/plugins/gpuPEOPS2.so - $(PND_MAKE) -p pcsx_rearmed_$(VER).pnd -d out -x out/pcsx.pxml -i pandora/pcsx.png -c + $(PND_MAKE) -p pcsx_rearmed_$(VER).pnd -d out -x out/pcsx.pxml -i frontend/pandora/pcsx.png -c diff --git a/Makefile.caanoo b/Makefile.caanoo index 54e478c..e9228f5 100644 --- a/Makefile.caanoo +++ b/Makefile.caanoo @@ -3,3 +3,25 @@ export ARM_CORTEXA8=0 PLATFORM=caanoo include Makefile + +PLUGINS = plugins/spunull/spunull.so plugins/gpu_unai/gpuPCSX4ALL.so \ + plugins/gpu_neon/gpu_neon.so + +# ----------- release ----------- + +rel_caanoo: pcsx $(PLUGINS) \ + frontend/320240/caanoo.gpe frontend/320240/pcsx26.png \ + frontend/320240/skin \ + frontend/warm/bin/warm_2.6.24.ko frontend/320240/pollux_set \ + frontend/320240/pcsx_rearmed.ini readme.txt COPYING + rm -rf out + mkdir -p out/pcsx_rearmed/plugins + cp -r $^ out/pcsx_rearmed/ + mv out/pcsx_rearmed/*.so out/pcsx_rearmed/plugins/ + mv out/pcsx_rearmed/plugins/gpu_neon.so out/pcsx_rearmed/plugins/gpuPEOPS2.so + mv out/pcsx_rearmed/caanoo.gpe out/pcsx_rearmed/pcsx.gpe + mv out/pcsx_rearmed/pcsx_rearmed.ini out/ + mkdir out/pcsx_rearmed/lib/ + cp ./lib/libbz2.so.1 out/pcsx_rearmed/lib/ + cd out && zip -9 -r ../pcsx_rearmed_$(VER)_caanoo.zip * + diff --git a/frontend/320240/caanoo.gpe b/frontend/320240/caanoo.gpe new file mode 100755 index 0000000..f6e72e5 --- /dev/null +++ b/frontend/320240/caanoo.gpe @@ -0,0 +1,8 @@ +#!/bin/sh + +./pollux_set "ram_timings=3,9,4,1,1,1,1" + +./pcsx "$@" + +cd /usr/gp2x +exec ./gp2xmenu diff --git a/frontend/320240/pcsx26.png b/frontend/320240/pcsx26.png new file mode 100644 index 0000000..ed220a0 Binary files /dev/null and b/frontend/320240/pcsx26.png differ diff --git a/frontend/320240/pcsx_rearmed.ini b/frontend/320240/pcsx_rearmed.ini new file mode 100644 index 0000000..aeba53d --- /dev/null +++ b/frontend/320240/pcsx_rearmed.ini @@ -0,0 +1,5 @@ +[info] +name="PCSX ReARMed" +icon="/pcsx_rearmed/pcsx26.png" +path="/pcsx_rearmed/pcsx.gpe" +group="GAMES" diff --git a/frontend/320240/pollux_set.c b/frontend/320240/pollux_set.c new file mode 100644 index 0000000..f49e777 --- /dev/null +++ b/frontend/320240/pollux_set.c @@ -0,0 +1,389 @@ +/* + * quick tool to set various timings for Wiz + * + * Copyright (c) Gražvydas "notaz" Ignotas, 2009 + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the organization nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * HTOTAL: X VTOTAL: 341 + * HSWIDTH: 1 VSWIDTH: 0 + * HASTART: 37 VASTART: 17 + * HAEND: 277 VAEND: 337 + * + * 120Hz + * pcd 8, 447: + 594us + * pcd 9, 397: + 36us + * pcd 10, 357: - 523us + * pcd 11, 325: +1153us + * + * 'lcd_timings=397,1,37,277,341,0,17,337;dpc_clkdiv0=9' + * 'ram_timings=2,9,4,1,1,1,1' + */ + +#include +#include +#include +//#include "pollux_set.h" +#define BINARY + +/* parse stuff */ +static int parse_lcd_timings(const char *str, void *data) +{ + int *lcd_timings = data; + const char *p = str; + int ret, c; + ret = sscanf(str, "%d,%d,%d,%d,%d,%d,%d,%d", + &lcd_timings[0], &lcd_timings[1], &lcd_timings[2], &lcd_timings[3], + &lcd_timings[4], &lcd_timings[5], &lcd_timings[6], &lcd_timings[7]); + if (ret != 8) + return -1; + /* skip seven commas */ + for (c = 0; c < 7 && *p != 0; p++) + if (*p == ',') + c++; + if (c != 7) + return -1; + /* skip last number */ + while ('0' <= *p && *p <= '9') + p++; + + return p - str; +} + +static int parse_ram_timings(const char *str, void *data) +{ + int *ram_timings = data; + const char *p = str; + int ret, c; + float cas; + + ret = sscanf(p, "%f,%d,%d,%d,%d,%d,%d", + &cas, &ram_timings[1], &ram_timings[2], &ram_timings[3], + &ram_timings[4], &ram_timings[5], &ram_timings[6]); + if (ret != 7) + return -1; + if (cas == 2) + ram_timings[0] = 1; + else if (cas == 2.5) + ram_timings[0] = 2; + else if (cas == 3) + ram_timings[0] = 3; + else + return -1; + for (c = 0; c < 6 && *p != 0; p++) + if (*p == ',') + c++; + if (c != 6) + return -1; + while ('0' <= *p && *p <= '9') + p++; + + return p - str; +} + +static int parse_decimal(const char *str, void *data) +{ + char *ep; + + *(int *)data = strtoul(str, &ep, 10); + if (ep == str) + return -1; + + return ep - str; +} + +/* validate and apply stuff */ +static int apply_lcd_timings(volatile unsigned short *memregs, void *data) +{ + int *lcd_timings = data; + int i; + + for (i = 0; i < 8; i++) { + if (lcd_timings[i] & ~0xffff) { + fprintf(stderr, "pollux_set: invalid lcd timing %d: %d\n", i, lcd_timings[i]); + return -1; + } + } + + for (i = 0; i < 8; i++) + memregs[(0x307c>>1) + i] = lcd_timings[i]; + + return 0; +} + +static const struct { + signed char adj; /* how to adjust value passed by user */ + signed short min; /* range of */ + signed short max; /* allowed values (inclusive) */ +} +ram_ranges[] = { + { 0, 1, 3 }, /* cas (cl) */ + { -2, 0, 15 }, /* trc */ + { -2, 0, 15 }, /* tras */ + { 0, 0, 15 }, /* twr */ + { 0, 0, 15 }, /* tmrd */ + { 0, 0, 15 }, /* trp */ + { 0, 0, 15 }, /* trcd */ +}; + +static int apply_ram_timings(volatile unsigned short *memregs, void *data) +{ + int *ram_timings = data; + int i, val; + + for (i = 0; i < 7; i++) + { + ram_timings[i] += ram_ranges[i].adj; + if (ram_timings[i] < ram_ranges[i].min || ram_timings[i] > ram_ranges[i].max) { + fprintf(stderr, "pollux_set: invalid RAM timing %d\n", i); + return -1; + } + } + + val = memregs[0x14802>>1] & 0x0f00; + val |= (ram_timings[4] << 12) | (ram_timings[5] << 4) | ram_timings[6]; + memregs[0x14802>>1] = val; + + val = memregs[0x14804>>1] & 0x4000; + val |= (ram_timings[0] << 12) | (ram_timings[1] << 8) | + (ram_timings[2] << 4) | ram_timings[3]; + val |= 0x8000; + memregs[0x14804>>1] = val; + + for (i = 0; i < 0x100000 && (memregs[0x14804>>1] & 0x8000); i++) + ; + + return 0; +} + +static int apply_dpc_clkdiv0(volatile unsigned short *memregs, void *data) +{ + int pcd = *(int *)data; + int tmp; + + if ((pcd - 1) & ~0x3f) { + fprintf(stderr, "pollux_set: invalid lcd clkdiv0: %d\n", pcd); + return -1; + } + + pcd = (pcd - 1) & 0x3f; + tmp = memregs[0x31c4>>1]; + memregs[0x31c4>>1] = (tmp & ~0x3f0) | (pcd << 4); + + return 0; +} + +static int apply_cpuclk(volatile unsigned short *memregs, void *data) +{ + volatile unsigned int *memregl = (volatile void *)memregs; + int mhz = *(int *)data; + int adiv, mdiv, pdiv, sdiv = 0; + int i, vf000, vf004; + + // m = MDIV, p = PDIV, s = SDIV + #define SYS_CLK_FREQ 27 + pdiv = 9; + mdiv = (mhz * pdiv) / SYS_CLK_FREQ; + if (mdiv & ~0x3ff) + return -1; + vf004 = (pdiv<<18) | (mdiv<<8) | sdiv; + + // attempt to keep AHB the divider close to 250, but not higher + for (adiv = 1; mhz / adiv > 250; adiv++) + ; + + vf000 = memregl[0xf000>>2]; + vf000 = (vf000 & ~0x3c0) | ((adiv - 1) << 6); + memregl[0xf000>>2] = vf000; + memregl[0xf004>>2] = vf004; + memregl[0xf07c>>2] |= 0x8000; + for (i = 0; (memregl[0xf07c>>2] & 0x8000) && i < 0x100000; i++) + ; + + printf("clock set to %dMHz, AHB set to %dMHz\n", mhz, mhz / adiv); + return 0; +} + +static int lcd_timings[8]; +static int ram_timings[7]; +static int dpc_clkdiv0; +static int cpuclk; + +static const char lcd_t_help[] = "htotal,hswidth,hastart,haend,vtotal,vswidth,vastart,vaend"; +static const char ram_t_help[] = "CAS,tRC,tRAS,tWR,tMRD,tRP,tRCD"; + +static const struct { + const char *name; + const char *help; + int (*parse)(const char *str, void *data); + int (*apply)(volatile unsigned short *memregs, void *data); + void *data; +} +all_params[] = { + { "lcd_timings", lcd_t_help, parse_lcd_timings, apply_lcd_timings, lcd_timings }, + { "ram_timings", ram_t_help, parse_ram_timings, apply_ram_timings, ram_timings }, + { "dpc_clkdiv0", "divider", parse_decimal, apply_dpc_clkdiv0, &dpc_clkdiv0 }, + { "clkdiv0", "divider", parse_decimal, apply_dpc_clkdiv0, &dpc_clkdiv0 }, /* alias */ + { "cpuclk", "MHZ", parse_decimal, apply_cpuclk, &cpuclk }, +}; +#define ALL_PARAM_COUNT (sizeof(all_params) / sizeof(all_params[0])) + +/* + * set timings based on preformated string + * returns 0 on success. + */ +int pollux_set(volatile unsigned short *memregs, const char *str) +{ + int parsed_params[ALL_PARAM_COUNT]; + int applied_params[ALL_PARAM_COUNT]; + int applied_something = 0; + const char *p, *po; + int i, ret; + + if (str == NULL) + return -1; + + memset(parsed_params, 0, sizeof(parsed_params)); + memset(applied_params, 0, sizeof(applied_params)); + + p = str; + while (1) + { +again: + while (*p == ';' || *p == ' ') + p++; + if (*p == 0) + break; + + for (i = 0; i < ALL_PARAM_COUNT; i++) + { + int param_len = strlen(all_params[i].name); + if (strncmp(p, all_params[i].name, param_len) == 0 && p[param_len] == '=') + { + p += param_len + 1; + ret = all_params[i].parse(p, all_params[i].data); + if (ret < 0) { + fprintf(stderr, "pollux_set parser: error at %-10s\n", p); + fprintf(stderr, " valid format is: <%s>\n", all_params[i].help); + return -1; + } + parsed_params[i] = 1; + p += ret; + goto again; + } + } + + /* Unknown param. Attempt to be forward compatible and ignore it. */ + for (po = p; *p != 0 && *p != ';'; p++) + ; + + fprintf(stderr, "unhandled param: "); + fwrite(po, 1, p - po, stderr); + fprintf(stderr, "\n"); + } + + /* validate and apply */ + for (i = 0; i < ALL_PARAM_COUNT; i++) + { + if (!parsed_params[i]) + continue; + + ret = all_params[i].apply(memregs, all_params[i].data); + if (ret < 0) { + fprintf(stderr, "pollux_set: failed to apply %s (bad value?)\n", + all_params[i].name); + continue; + } + + applied_something = 1; + applied_params[i] = 1; + } + + if (applied_something) + { + int c; + printf("applied: "); + for (i = c = 0; i < ALL_PARAM_COUNT; i++) + { + if (!applied_params[i]) + continue; + if (c != 0) + printf(", "); + printf("%s", all_params[i].name); + c++; + } + printf("\n"); + } + + return 0; +} + +#ifdef BINARY +#include +#include +#include +#include +#include + +static void usage(const char *binary) +{ + int i; + printf("usage:\n%s \n" + "set_str:\n", binary); + for (i = 0; i < ALL_PARAM_COUNT; i++) + printf(" %s=<%s>\n", all_params[i].name, all_params[i].help); +} + +int main(int argc, char *argv[]) +{ + volatile unsigned short *memregs; + int ret, memdev; + + if (argc != 2) { + usage(argv[0]); + return 1; + } + + memdev = open("/dev/mem", O_RDWR); + if (memdev == -1) + { + perror("open(/dev/mem) failed"); + return 1; + } + + memregs = mmap(0, 0x20000, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0xc0000000); + if (memregs == MAP_FAILED) + { + perror("mmap(memregs) failed"); + close(memdev); + return 1; + } + + ret = pollux_set(memregs, argv[1]); + + munmap((void *)memregs, 0x20000); + close(memdev); + + return ret; +} +#endif diff --git a/frontend/320240/skin/background.png b/frontend/320240/skin/background.png new file mode 100644 index 0000000..0efdd18 Binary files /dev/null and b/frontend/320240/skin/background.png differ diff --git a/frontend/320240/skin/font.png b/frontend/320240/skin/font.png new file mode 100644 index 0000000..c526a08 Binary files /dev/null and b/frontend/320240/skin/font.png differ diff --git a/frontend/320240/skin/readme.txt b/frontend/320240/skin/readme.txt new file mode 100644 index 0000000..dd83963 --- /dev/null +++ b/frontend/320240/skin/readme.txt @@ -0,0 +1,8 @@ +The skin images can be customized, but there are several limitations: + +background.png - must be 320x240 image with 24bit RGB colors. +font.png - must be 128x160 8bit grayscale image. +selector.png - must be 8x10 8bit grayscale image. + +Font and selector colors can be changed by editing skin.txt. + diff --git a/frontend/320240/skin/selector.png b/frontend/320240/skin/selector.png new file mode 100644 index 0000000..5062cc2 Binary files /dev/null and b/frontend/320240/skin/selector.png differ diff --git a/frontend/320240/skin/skin.txt b/frontend/320240/skin/skin.txt new file mode 100644 index 0000000..1d6979f --- /dev/null +++ b/frontend/320240/skin/skin.txt @@ -0,0 +1,4 @@ +// html-style hex color codes, ex. ff0000 is red, 0000ff is blue, etc. +text_color=ffffc0 +selection_color=808010 + diff --git a/frontend/pandora/pcsx.png b/frontend/pandora/pcsx.png new file mode 100644 index 0000000..71f36d0 Binary files /dev/null and b/frontend/pandora/pcsx.png differ diff --git a/frontend/pandora/pcsx.pxml.templ b/frontend/pandora/pcsx.pxml.templ new file mode 100644 index 0000000..5c53f24 --- /dev/null +++ b/frontend/pandora/pcsx.pxml.templ @@ -0,0 +1,40 @@ + + + + + PCSX ReARMed + + + + + + + PCSX ReARMed %PR% + + PCSX ReARMed %PR% + + + PlayStation Emulator. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/pandora/pcsx.sh b/frontend/pandora/pcsx.sh new file mode 100755 index 0000000..2077a29 --- /dev/null +++ b/frontend/pandora/pcsx.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# 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 + +./pcsx "$@" + +# restore stuff if pcsx crashes +./picorestore +sudo -n /usr/pandora/scripts/op_lcdrate.sh 60 + +echo "$nub0mode" > /proc/pandora/nub0/mode +echo "$nub1mode" > /proc/pandora/nub1/mode diff --git a/frontend/pandora/picorestore.c b/frontend/pandora/picorestore.c new file mode 100644 index 0000000..77f5720 --- /dev/null +++ b/frontend/pandora/picorestore.c @@ -0,0 +1,109 @@ +/* + * picorestore - clean up after an omapfb program crash + * + * Copyright (c) Gražvydas "notaz" Ignotas, 2010 + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the organization nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main() +{ + struct fb_var_screeninfo fbvar; + struct omapfb_plane_info pi; + struct omapfb_mem_info mi; + int ret, fbdev, kbdfd; + + fbdev = open("/dev/fb0", O_RDWR); + if (fbdev == -1) { + perror("open fb0"); + goto end_fb0; + } + + ret = ioctl(fbdev, FBIOGET_VSCREENINFO, &fbvar); + if (ret == -1) { + perror("FBIOGET_VSCREENINFO ioctl"); + goto end_fb0; + } + + if (fbvar.yoffset != 0) { + printf("fixing yoffset.. "); + fbvar.yoffset = 0; + ret = ioctl(fbdev, FBIOPAN_DISPLAY, &fbvar); + if (ret < 0) + perror("ioctl FBIOPAN_DISPLAY"); + else + printf("ok\n"); + } + +end_fb0: + if (fbdev >= 0) + close(fbdev); + + fbdev = open("/dev/fb1", O_RDWR); + if (fbdev == -1) { + perror("open fb1"); + goto end_fb1; + } + + ret = ioctl(fbdev, OMAPFB_QUERY_PLANE, &pi); + ret |= ioctl(fbdev, OMAPFB_QUERY_MEM, &mi); + if (ret != 0) + perror("QUERY_*"); + + pi.enabled = 0; + ret = ioctl(fbdev, OMAPFB_SETUP_PLANE, &pi); + if (ret != 0) + perror("SETUP_PLANE"); + + mi.size = 0; + ret = ioctl(fbdev, OMAPFB_SETUP_MEM, &mi); + if (ret != 0) + perror("SETUP_MEM"); + +end_fb1: + if (fbdev >= 0) + close(fbdev); + + kbdfd = open("/dev/tty", O_RDWR); + if (kbdfd == -1) { + perror("open /dev/tty"); + return 1; + } + + if (ioctl(kbdfd, KDSETMODE, KD_TEXT) == -1) + perror("KDSETMODE KD_TEXT"); + + close(kbdfd); + + return 0; +} diff --git a/frontend/pandora/skin/background.png b/frontend/pandora/skin/background.png new file mode 100644 index 0000000..f4b4523 Binary files /dev/null and b/frontend/pandora/skin/background.png differ diff --git a/frontend/pandora/skin/font.png b/frontend/pandora/skin/font.png new file mode 100644 index 0000000..707a5b4 Binary files /dev/null and b/frontend/pandora/skin/font.png differ diff --git a/frontend/pandora/skin/readme.txt b/frontend/pandora/skin/readme.txt new file mode 100644 index 0000000..dd83963 --- /dev/null +++ b/frontend/pandora/skin/readme.txt @@ -0,0 +1,8 @@ +The skin images can be customized, but there are several limitations: + +background.png - must be 320x240 image with 24bit RGB colors. +font.png - must be 128x160 8bit grayscale image. +selector.png - must be 8x10 8bit grayscale image. + +Font and selector colors can be changed by editing skin.txt. + diff --git a/frontend/pandora/skin/selector.png b/frontend/pandora/skin/selector.png new file mode 100644 index 0000000..a439169 Binary files /dev/null and b/frontend/pandora/skin/selector.png differ diff --git a/frontend/pandora/skin/skin.txt b/frontend/pandora/skin/skin.txt new file mode 100644 index 0000000..1d6979f --- /dev/null +++ b/frontend/pandora/skin/skin.txt @@ -0,0 +1,4 @@ +// html-style hex color codes, ex. ff0000 is red, 0000ff is blue, etc. +text_color=ffffc0 +selection_color=808010 + diff --git a/pandora/pcsx.png b/pandora/pcsx.png deleted file mode 100644 index 71f36d0..0000000 Binary files a/pandora/pcsx.png and /dev/null differ diff --git a/pandora/pcsx.pxml.templ b/pandora/pcsx.pxml.templ deleted file mode 100644 index 5c53f24..0000000 --- a/pandora/pcsx.pxml.templ +++ /dev/null @@ -1,40 +0,0 @@ - - - - - PCSX ReARMed - - - - - - - PCSX ReARMed %PR% - - PCSX ReARMed %PR% - - - PlayStation Emulator. - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pandora/pcsx.sh b/pandora/pcsx.sh deleted file mode 100755 index 2077a29..0000000 --- a/pandora/pcsx.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# 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 - -./pcsx "$@" - -# restore stuff if pcsx crashes -./picorestore -sudo -n /usr/pandora/scripts/op_lcdrate.sh 60 - -echo "$nub0mode" > /proc/pandora/nub0/mode -echo "$nub1mode" > /proc/pandora/nub1/mode diff --git a/pandora/picorestore.c b/pandora/picorestore.c deleted file mode 100644 index 77f5720..0000000 --- a/pandora/picorestore.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * picorestore - clean up after an omapfb program crash - * - * Copyright (c) Gražvydas "notaz" Ignotas, 2010 - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the organization nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int main() -{ - struct fb_var_screeninfo fbvar; - struct omapfb_plane_info pi; - struct omapfb_mem_info mi; - int ret, fbdev, kbdfd; - - fbdev = open("/dev/fb0", O_RDWR); - if (fbdev == -1) { - perror("open fb0"); - goto end_fb0; - } - - ret = ioctl(fbdev, FBIOGET_VSCREENINFO, &fbvar); - if (ret == -1) { - perror("FBIOGET_VSCREENINFO ioctl"); - goto end_fb0; - } - - if (fbvar.yoffset != 0) { - printf("fixing yoffset.. "); - fbvar.yoffset = 0; - ret = ioctl(fbdev, FBIOPAN_DISPLAY, &fbvar); - if (ret < 0) - perror("ioctl FBIOPAN_DISPLAY"); - else - printf("ok\n"); - } - -end_fb0: - if (fbdev >= 0) - close(fbdev); - - fbdev = open("/dev/fb1", O_RDWR); - if (fbdev == -1) { - perror("open fb1"); - goto end_fb1; - } - - ret = ioctl(fbdev, OMAPFB_QUERY_PLANE, &pi); - ret |= ioctl(fbdev, OMAPFB_QUERY_MEM, &mi); - if (ret != 0) - perror("QUERY_*"); - - pi.enabled = 0; - ret = ioctl(fbdev, OMAPFB_SETUP_PLANE, &pi); - if (ret != 0) - perror("SETUP_PLANE"); - - mi.size = 0; - ret = ioctl(fbdev, OMAPFB_SETUP_MEM, &mi); - if (ret != 0) - perror("SETUP_MEM"); - -end_fb1: - if (fbdev >= 0) - close(fbdev); - - kbdfd = open("/dev/tty", O_RDWR); - if (kbdfd == -1) { - perror("open /dev/tty"); - return 1; - } - - if (ioctl(kbdfd, KDSETMODE, KD_TEXT) == -1) - perror("KDSETMODE KD_TEXT"); - - close(kbdfd); - - return 0; -} diff --git a/pandora/readme.txt b/pandora/readme.txt deleted file mode 100644 index d9dc903..0000000 --- a/pandora/readme.txt +++ /dev/null @@ -1,256 +0,0 @@ - -PCSX-ReARMed - yet another PCSX fork - -http://notaz.gp2x.de/pcsx_rearmed.php - - -About ------ - -PCSX ReARMed is yet another PCSX fork based on the PCSX-Reloaded project, -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 version is also available). - -PCSX ReARMed features GPU plugin from PCSX4ALL project. - - -Usage ------ - -This version features a framebuffer driven menu that can be used to run -games and configure the emulator. - -Supported CD image formats: -- .bin/.cue -- .bin/.toc -- .img/.ccd/.sub -- .mdf/.mds -- .Z/.Z.table -- .bz/.bz.table -- .ZNX/.ZNX.table (partial) -- EBOOT.PBP (PSP, partial) - -CDDA (CD audio) only supported when .cue/.toc/.ccd/.mds files are present. -There is support for redump.org .sbi files, which can be used instead of -.sub files to save space (name it the same as .cue/.bin, just use .sbi -extension). This is required for Libcrypt copy protected game support. - -The emulator can simulate BIOS, which means BIOS files are not required, -however implementation is not complete and some games still need real BIOS -to work. To use real BIOS, copy uncompressed BIOS files to -[sd card]/pandora/appdata/pcsx_rearmed/bios/ -then select the BIOS you want to use in Options->BIOS/Plugins menu. - -Analog controllers are supported using nubs, but this is disabled by -default and needs to be enabled in 'Controls' menu. -There is also touchscreen based GunCon support, which also requires -appropriate controller selected in controls configuration. - - -Plugins -------- - -GPU (graphics) and SPU (sound) plugins can be selected in -[BIOS/Plugins] menu: - -builtin_gpu - the P.E.Op.S. GPU plugin, most accurate but slow. -gpuPCSX4ALL.so - plugin from PCSX4ALL project. Faster but has some glitches. -gpuGLES.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). -builtin_spu - P.E.Op.S. SPU plugin. -spunull.so - NULL plugin, i.e. no sound emulation. - - -Changelog ---------- - -r10 (2011-09-23) -+ added fixed frameskip option -* fixed a crash in PCSX4ALL GPU plugin -* fixed several dynarec compatibility related issues (hopefully) -* fixed several SPU regressions from r9 -* fixed frame limiter issue that sometimes caused stuttering -* fixed some minor GUI issues - -r9 (2011-08-13) -* fixed various dynarec integration issues that were causing instability -* merged latest Ari64 dynarec code for some performance improvement -* changed frameskip handling in builtin and PCSX4ALL plugins, - fixes some cases where it would not work -* merged PCSX4ALL 2.2 GPU code to it's plugin -* fixed PCSX4ALL GPU inline asm, was miscompiling for ARMv7. -+ added CDDA handling for eboot format -* improved CDDA handling for all image formats that support it -* various compatibility/accuracy improvements -* optimized PEOPS SPU core -* various menu adjustments -* changed scaling options a bit, there are now two 4:3 options: - integer and fractional -+ added some basic memory card manager, which allows to change - or remove cards (remove needed for Tenka) -+ added GunCon support -+ added gpuPEOPS2 plugin (peops rendering + new emulation code) - -r8 (2011-03-22) -* improved recompiler performance for some games -* fixed a few recompiler related compatibility issues - (also fixes broken memcard support in some games) -* fixed some graphics problems caused by frameskip. - Note that not all problems were fixed, so if you see graphics - glitches try turning off frameskip or using different GPU plugin. -+ added screenshot function -+ added some code to attempt to sync with pandora's LCD better -* merged a few compatibility fixes from PCSX-Reloaded -* fixed and issue with external controllers -* added experimental ability to use nubs as buttons - -r7 (2011-03-02) -+ implemented most used GTE operations in NEON -* merged latest Ari64's recompiler patches -* removed some code from the recompiler that is unneeded for R3k -* added some special handlers for constant reads -* some moderate builtin GPU and SPU optimizations -+ added redump.org SBI support -* tuned frameskip code again -* fixed one 'analog controller not working' issue -* fixed a crash in builtin gpu code -* fixed cdrom slowdown issue -* fixed my stupid bug in the recompiler that slowed down - recompilation a lot -* some other refactoring - -r6 (2011-02-10) -+ added analog controller support using nubs (disabled by default) -+ added control config saving -+ added support for ingame actions (eg. savestate load) -+ added 'auto' region option and made it default -+ added cd swap functionality -+ added maemo frontend from Bonapart - (with some tuning, source code only) -* reworked key configuration to be less confusing -* fixed 'SPU IRQ wait' option sometimes causing noise - and turned it on by default -* fixed mono xa masking (was causing noise) -* fixed word access macros in dfxvideo (darkness problem) -* changed GPU DMA timing back to 1.92 levels -* backported more fixes from PCSX-Reloaded project - (mostly shalma's work, see GIT) -* fixed a few more recompiler issues -+ fixed frameskip in builtin plugin - -r5 (2011-01-31) -+ added support for .bz format, also partial support for - .znx and eboot.pbp formats -+ merged latest cdrom code from PCSX-Reloaded project -* fixed remaining savestate incompatibilities between PCSX4ALL - and P.E.Op.S. GPU plugins -* fixed channel disable preventing irqs in P.E.Op.S. SPU plugin -* fixed some alignment issues -+ added handling for branches in delay slots -+ fixed some unexpected drops to menu -* fixed lots of recompiler related issues (see GIT) -+ added watchdog thread to detect emulator lockups -* minor frontend adjustments - -r4 (2011-01-15) -+ added real BIOS support (and various things for it to work) -* fixed various recompiler issues -+ added interpreter option (useful to overcome dynarec bugs) -* fixed some memory card related issues with HLE bios -* rewrote frame limiter (old was sometimes sleeping needlessly) - -r3 (2011-01-05): -+ added Pickle's port of gpu-gles from psx4m project -+ added PCSX4ALL gpu as a plugin -* improved gpu plugin support -+ added savestate preview -* various frontend fixes - -r2 (2010-12-29): -* fixed memcard paths -* fixed a keybind copy-paste bug -* properly implemented pad handling - (inputs no longer control both emulated pads at once) -* fixed a crash caused by framebuffer out of range access -* fixed SWL/SWR handling (usually resulted in graphic glitches) -* fixed BxxZAL (Medal of Honor) -* fixed alignment crash in color space conversion code (Lunar) -* fixed SWC2 occasional use of wrong address register (Parasite Eve) -* fixed firstfile() handling in HLE BIOS (broken memory cards in some games) -+ added per-game configs (controls still not saved though) -+ added simple plugin select interface to the menu - -r1 (2010-12-25): -* initial release - - -Credits / License ------------------ - -Emulator core: - -(C) 1999-2003 PCSX Team - (c) 1998 Vision Thing - Linuzappz - Shadow - Pete Bernett - NoComp - Nik3d - Akumax - -(C) 2005-2009 PCSX-df Team - (c) Ryan Schultz - (c) Andrew Burton - (c) Stephen Chao - (c) Marcus Comstedt - Stefan Sikora - -(C) 2009-2011 PCSX-Reloaded Team - edgbla (Root counters, various core/plugin fixes) - shalma (GTE Divider, many core improvements, sound plugin fixes) - Firnis (GTE code from PCSX-Revolution Project) - Gabriele Gorla (MDEC decoder) - Peter Collingbourne (Various core/psxbios fixes) - Dario, NeToU, siveritas (Various bugfixes) - Wei Mingzhi (Maintainer, input plugin, iso/cheat support, misc stuff) - -PCSX4ALL GPU plugin: - (C) 2010 PCSX4ALL Team - (C) 2010 Unai - Franxis - Chui - -GLES plugin (psx4m project): - (C) 1999-2009 by Pete Bernert - EQ - Olli Hinkka - Proger - Pickle - -builtin GPU/SPU plugin: - (C) Pete Bernert and the P.E.Op.S. team - -builtin SPU plugin: - (C) Pete Bernert and the P.E.Op.S. team - (C) SPU2-X, gigaherz, Pcsx2 Development Team - shalma - -MIPS->ARM recompiler: - (C) 2009-2011 Ari64 - -integration, optimization and frontend: - (C) 2010-2011 notaz - -some implementation ideas (and maybe code?) likely originated from -MAME/smf/pSXauthor and were integrated by various people to PCSX. - -Source code is released under GNU GPL license, version 2 or later. -See COPYING included in the archive (.pnd can be extracted using unsquashfs). -The source code is available in a GIT repository at: - -git://notaz.gp2x.de/~notaz/pcsx_rearmed.git - diff --git a/pandora/skin/background.png b/pandora/skin/background.png deleted file mode 100644 index f4b4523..0000000 Binary files a/pandora/skin/background.png and /dev/null differ diff --git a/pandora/skin/font.png b/pandora/skin/font.png deleted file mode 100644 index 707a5b4..0000000 Binary files a/pandora/skin/font.png and /dev/null differ diff --git a/pandora/skin/readme.txt b/pandora/skin/readme.txt deleted file mode 100644 index dd83963..0000000 --- a/pandora/skin/readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -The skin images can be customized, but there are several limitations: - -background.png - must be 320x240 image with 24bit RGB colors. -font.png - must be 128x160 8bit grayscale image. -selector.png - must be 8x10 8bit grayscale image. - -Font and selector colors can be changed by editing skin.txt. - diff --git a/pandora/skin/selector.png b/pandora/skin/selector.png deleted file mode 100644 index a439169..0000000 Binary files a/pandora/skin/selector.png and /dev/null differ diff --git a/pandora/skin/skin.txt b/pandora/skin/skin.txt deleted file mode 100644 index 1d6979f..0000000 --- a/pandora/skin/skin.txt +++ /dev/null @@ -1,4 +0,0 @@ -// html-style hex color codes, ex. ff0000 is red, 0000ff is blue, etc. -text_color=ffffc0 -selection_color=808010 - diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..d9dc903 --- /dev/null +++ b/readme.txt @@ -0,0 +1,256 @@ + +PCSX-ReARMed - yet another PCSX fork + +http://notaz.gp2x.de/pcsx_rearmed.php + + +About +----- + +PCSX ReARMed is yet another PCSX fork based on the PCSX-Reloaded project, +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 version is also available). + +PCSX ReARMed features GPU plugin from PCSX4ALL project. + + +Usage +----- + +This version features a framebuffer driven menu that can be used to run +games and configure the emulator. + +Supported CD image formats: +- .bin/.cue +- .bin/.toc +- .img/.ccd/.sub +- .mdf/.mds +- .Z/.Z.table +- .bz/.bz.table +- .ZNX/.ZNX.table (partial) +- EBOOT.PBP (PSP, partial) + +CDDA (CD audio) only supported when .cue/.toc/.ccd/.mds files are present. +There is support for redump.org .sbi files, which can be used instead of +.sub files to save space (name it the same as .cue/.bin, just use .sbi +extension). This is required for Libcrypt copy protected game support. + +The emulator can simulate BIOS, which means BIOS files are not required, +however implementation is not complete and some games still need real BIOS +to work. To use real BIOS, copy uncompressed BIOS files to +[sd card]/pandora/appdata/pcsx_rearmed/bios/ +then select the BIOS you want to use in Options->BIOS/Plugins menu. + +Analog controllers are supported using nubs, but this is disabled by +default and needs to be enabled in 'Controls' menu. +There is also touchscreen based GunCon support, which also requires +appropriate controller selected in controls configuration. + + +Plugins +------- + +GPU (graphics) and SPU (sound) plugins can be selected in +[BIOS/Plugins] menu: + +builtin_gpu - the P.E.Op.S. GPU plugin, most accurate but slow. +gpuPCSX4ALL.so - plugin from PCSX4ALL project. Faster but has some glitches. +gpuGLES.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). +builtin_spu - P.E.Op.S. SPU plugin. +spunull.so - NULL plugin, i.e. no sound emulation. + + +Changelog +--------- + +r10 (2011-09-23) ++ added fixed frameskip option +* fixed a crash in PCSX4ALL GPU plugin +* fixed several dynarec compatibility related issues (hopefully) +* fixed several SPU regressions from r9 +* fixed frame limiter issue that sometimes caused stuttering +* fixed some minor GUI issues + +r9 (2011-08-13) +* fixed various dynarec integration issues that were causing instability +* merged latest Ari64 dynarec code for some performance improvement +* changed frameskip handling in builtin and PCSX4ALL plugins, + fixes some cases where it would not work +* merged PCSX4ALL 2.2 GPU code to it's plugin +* fixed PCSX4ALL GPU inline asm, was miscompiling for ARMv7. ++ added CDDA handling for eboot format +* improved CDDA handling for all image formats that support it +* various compatibility/accuracy improvements +* optimized PEOPS SPU core +* various menu adjustments +* changed scaling options a bit, there are now two 4:3 options: + integer and fractional ++ added some basic memory card manager, which allows to change + or remove cards (remove needed for Tenka) ++ added GunCon support ++ added gpuPEOPS2 plugin (peops rendering + new emulation code) + +r8 (2011-03-22) +* improved recompiler performance for some games +* fixed a few recompiler related compatibility issues + (also fixes broken memcard support in some games) +* fixed some graphics problems caused by frameskip. + Note that not all problems were fixed, so if you see graphics + glitches try turning off frameskip or using different GPU plugin. ++ added screenshot function ++ added some code to attempt to sync with pandora's LCD better +* merged a few compatibility fixes from PCSX-Reloaded +* fixed and issue with external controllers +* added experimental ability to use nubs as buttons + +r7 (2011-03-02) ++ implemented most used GTE operations in NEON +* merged latest Ari64's recompiler patches +* removed some code from the recompiler that is unneeded for R3k +* added some special handlers for constant reads +* some moderate builtin GPU and SPU optimizations ++ added redump.org SBI support +* tuned frameskip code again +* fixed one 'analog controller not working' issue +* fixed a crash in builtin gpu code +* fixed cdrom slowdown issue +* fixed my stupid bug in the recompiler that slowed down + recompilation a lot +* some other refactoring + +r6 (2011-02-10) ++ added analog controller support using nubs (disabled by default) ++ added control config saving ++ added support for ingame actions (eg. savestate load) ++ added 'auto' region option and made it default ++ added cd swap functionality ++ added maemo frontend from Bonapart + (with some tuning, source code only) +* reworked key configuration to be less confusing +* fixed 'SPU IRQ wait' option sometimes causing noise + and turned it on by default +* fixed mono xa masking (was causing noise) +* fixed word access macros in dfxvideo (darkness problem) +* changed GPU DMA timing back to 1.92 levels +* backported more fixes from PCSX-Reloaded project + (mostly shalma's work, see GIT) +* fixed a few more recompiler issues ++ fixed frameskip in builtin plugin + +r5 (2011-01-31) ++ added support for .bz format, also partial support for + .znx and eboot.pbp formats ++ merged latest cdrom code from PCSX-Reloaded project +* fixed remaining savestate incompatibilities between PCSX4ALL + and P.E.Op.S. GPU plugins +* fixed channel disable preventing irqs in P.E.Op.S. SPU plugin +* fixed some alignment issues ++ added handling for branches in delay slots ++ fixed some unexpected drops to menu +* fixed lots of recompiler related issues (see GIT) ++ added watchdog thread to detect emulator lockups +* minor frontend adjustments + +r4 (2011-01-15) ++ added real BIOS support (and various things for it to work) +* fixed various recompiler issues ++ added interpreter option (useful to overcome dynarec bugs) +* fixed some memory card related issues with HLE bios +* rewrote frame limiter (old was sometimes sleeping needlessly) + +r3 (2011-01-05): ++ added Pickle's port of gpu-gles from psx4m project ++ added PCSX4ALL gpu as a plugin +* improved gpu plugin support ++ added savestate preview +* various frontend fixes + +r2 (2010-12-29): +* fixed memcard paths +* fixed a keybind copy-paste bug +* properly implemented pad handling + (inputs no longer control both emulated pads at once) +* fixed a crash caused by framebuffer out of range access +* fixed SWL/SWR handling (usually resulted in graphic glitches) +* fixed BxxZAL (Medal of Honor) +* fixed alignment crash in color space conversion code (Lunar) +* fixed SWC2 occasional use of wrong address register (Parasite Eve) +* fixed firstfile() handling in HLE BIOS (broken memory cards in some games) ++ added per-game configs (controls still not saved though) ++ added simple plugin select interface to the menu + +r1 (2010-12-25): +* initial release + + +Credits / License +----------------- + +Emulator core: + +(C) 1999-2003 PCSX Team + (c) 1998 Vision Thing + Linuzappz + Shadow + Pete Bernett + NoComp + Nik3d + Akumax + +(C) 2005-2009 PCSX-df Team + (c) Ryan Schultz + (c) Andrew Burton + (c) Stephen Chao + (c) Marcus Comstedt + Stefan Sikora + +(C) 2009-2011 PCSX-Reloaded Team + edgbla (Root counters, various core/plugin fixes) + shalma (GTE Divider, many core improvements, sound plugin fixes) + Firnis (GTE code from PCSX-Revolution Project) + Gabriele Gorla (MDEC decoder) + Peter Collingbourne (Various core/psxbios fixes) + Dario, NeToU, siveritas (Various bugfixes) + Wei Mingzhi (Maintainer, input plugin, iso/cheat support, misc stuff) + +PCSX4ALL GPU plugin: + (C) 2010 PCSX4ALL Team + (C) 2010 Unai + Franxis + Chui + +GLES plugin (psx4m project): + (C) 1999-2009 by Pete Bernert + EQ + Olli Hinkka + Proger + Pickle + +builtin GPU/SPU plugin: + (C) Pete Bernert and the P.E.Op.S. team + +builtin SPU plugin: + (C) Pete Bernert and the P.E.Op.S. team + (C) SPU2-X, gigaherz, Pcsx2 Development Team + shalma + +MIPS->ARM recompiler: + (C) 2009-2011 Ari64 + +integration, optimization and frontend: + (C) 2010-2011 notaz + +some implementation ideas (and maybe code?) likely originated from +MAME/smf/pSXauthor and were integrated by various people to PCSX. + +Source code is released under GNU GPL license, version 2 or later. +See COPYING included in the archive (.pnd can be extracted using unsquashfs). +The source code is available in a GIT repository at: + +git://notaz.gp2x.de/~notaz/pcsx_rearmed.git + -- cgit v1.2.3