diff options
author | notaz | 2012-08-03 00:43:56 +0300 |
---|---|---|
committer | notaz | 2012-08-03 01:45:11 +0300 |
commit | 5b9f1b9e4aa51af5712cf1d90552ace57d9f486b (patch) | |
tree | abc9b1f815eaf72c83313b4b35e4619f5891de51 | |
parent | 4ea086f6049c3f2c286f1a4e1e23b5763629067a (diff) | |
download | pcsx_rearmed-5b9f1b9e4aa51af5712cf1d90552ace57d9f486b.tar.gz pcsx_rearmed-5b9f1b9e4aa51af5712cf1d90552ace57d9f486b.tar.bz2 pcsx_rearmed-5b9f1b9e4aa51af5712cf1d90552ace57d9f486b.zip |
frontend/pollux: wiz: move tables to upper memory to free some RAM
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | frontend/pl_gun_ts.h | 1 | ||||
-rw-r--r-- | frontend/plat_pollux.c | 16 | ||||
-rw-r--r-- | libpcsxcore/new_dynarec/pcsxmem.c | 6 |
4 files changed, 24 insertions, 0 deletions
@@ -145,6 +145,7 @@ endif ifeq "$(PLATFORM)" "caanoo" OBJS += frontend/plat_pollux.o frontend/in_tsbutton.o frontend/blit320.o OBJS += frontend/gp2x/in_gp2x.o frontend/warm/warm.o +libpcsxcore/new_dynarec/pcsxmem.o: CFLAGS += -DCUSTOM_MEMMAPS USE_FRONTEND = 1 endif ifeq "$(PLATFORM)" "maemo" diff --git a/frontend/pl_gun_ts.h b/frontend/pl_gun_ts.h index 4e15f00..4e3d195 100644 --- a/frontend/pl_gun_ts.h +++ b/frontend/pl_gun_ts.h @@ -13,5 +13,6 @@ int pl_gun_ts_get_fd(struct tsdev *ts); #define pl_gun_ts_init() NULL #define pl_gun_ts_update(...) do {} while (0) +#define pl_set_gun_rect(...) do {} while (0) #endif diff --git a/frontend/plat_pollux.c b/frontend/plat_pollux.c index 589049c..1dafb7c 100644 --- a/frontend/plat_pollux.c +++ b/frontend/plat_pollux.c @@ -653,6 +653,22 @@ void plat_finish(void) close(memdev); } +/* WIZ RAM lack workaround */ +void *memtab_mmap(void *addr, size_t size) +{ + void *ret; + + if (gp2x_dev_id != GP2X_DEV_WIZ) + return mmap(addr, size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + + ret = mmap(addr, size, PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_FIXED, memdev, 0x03000000); + if (ret != MAP_FAILED) + warm_change_cb_range(WCB_C_BIT | WCB_B_BIT, 1, ret, size); + return ret; +} + /* Caanoo stuff, perhaps move later */ static const char * const caanoo_keys[KEY_MAX + 1] = { [0 ... KEY_MAX] = NULL, diff --git a/libpcsxcore/new_dynarec/pcsxmem.c b/libpcsxcore/new_dynarec/pcsxmem.c index 99b1efa..47b876e 100644 --- a/libpcsxcore/new_dynarec/pcsxmem.c +++ b/libpcsxcore/new_dynarec/pcsxmem.c @@ -299,9 +299,15 @@ void new_dyna_pcsx_mem_init(void) { int i; +#ifdef CUSTOM_MEMMAPS + // WIZ lack-of-RAM hack + extern void *memtab_mmap(void *addr, size_t size); + mem_readtab = memtab_mmap((void *)0x08000000, 0x200000 * 4); +#else // have to map these further to keep tcache close to .text mem_readtab = mmap((void *)0x08000000, 0x200000 * 4, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); +#endif if (mem_readtab == MAP_FAILED) { fprintf(stderr, "failed to map mem tables\n"); exit(1); |