(CTR/3DS) reduce memory usage.

build fix.
This commit is contained in:
aliaspider 2015-10-20 12:34:53 +01:00
parent 3687b29d9a
commit 8cc805c38a
5 changed files with 37 additions and 11 deletions

View File

@ -27,7 +27,7 @@ CTR_STACK_SIZE = 0x400000
else else
CTR_STACK_SIZE = 0x100000 CTR_STACK_SIZE = 0x100000
endif endif
CTR_LINEAR_HEAP_SIZE = 0xE00000 CTR_LINEAR_HEAP_SIZE = 0x600000
include ctr/Makefile.cores include ctr/Makefile.cores
@ -178,9 +178,7 @@ else
OBJS += menu/menu_entry.o OBJS += menu/menu_entry.o
OBJS += menu/menu_entries.o OBJS += menu/menu_entries.o
OBJS += menu/menu_setting.o OBJS += menu/menu_setting.o
OBJS += menu/menu_list.o
OBJS += menu/menu_cbs.o OBJS += menu/menu_cbs.o
OBJS += menu/menu_video.o
OBJS += menu/cbs/menu_cbs_ok.o OBJS += menu/cbs/menu_cbs_ok.o
OBJS += menu/cbs/menu_cbs_cancel.o OBJS += menu/cbs/menu_cbs_cancel.o
OBJS += menu/cbs/menu_cbs_select.o OBJS += menu/cbs/menu_cbs_select.o

View File

@ -11,6 +11,7 @@ ifeq ($(LIBRETRO), gambatte)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), gpsp) else ifeq ($(LIBRETRO), gpsp)
APP_TITLE = gpSP Libretro APP_TITLE = gpSP Libretro
@ -23,6 +24,7 @@ else ifeq ($(LIBRETRO), gpsp)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), fceumm) else ifeq ($(LIBRETRO), fceumm)
APP_TITLE = FCeumm Libretro APP_TITLE = FCeumm Libretro
@ -35,6 +37,7 @@ else ifeq ($(LIBRETRO), fceumm)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), nestopia) else ifeq ($(LIBRETRO), nestopia)
APP_TITLE = Nestopia Libretro APP_TITLE = Nestopia Libretro
@ -47,6 +50,7 @@ else ifeq ($(LIBRETRO), nestopia)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), nxengine) else ifeq ($(LIBRETRO), nxengine)
APP_TITLE = NXengine Libretro APP_TITLE = NXengine Libretro
@ -59,6 +63,7 @@ else ifeq ($(LIBRETRO), nxengine)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), genesis_plus_gx) else ifeq ($(LIBRETRO), genesis_plus_gx)
APP_TITLE = Genesis Plus GX Libretro APP_TITLE = Genesis Plus GX Libretro
@ -71,6 +76,7 @@ else ifeq ($(LIBRETRO), genesis_plus_gx)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), catsfc) else ifeq ($(LIBRETRO), catsfc)
APP_TITLE = CATSFC Libretro APP_TITLE = CATSFC Libretro
@ -83,6 +89,7 @@ else ifeq ($(LIBRETRO), catsfc)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), mednafen_wswan) else ifeq ($(LIBRETRO), mednafen_wswan)
APP_TITLE = Mednafen wswan Libretro APP_TITLE = Mednafen wswan Libretro
@ -95,6 +102,7 @@ else ifeq ($(LIBRETRO), mednafen_wswan)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), mednafen_vb) else ifeq ($(LIBRETRO), mednafen_vb)
APP_TITLE = Mednafen VB Libretro APP_TITLE = Mednafen VB Libretro
@ -107,6 +115,7 @@ else ifeq ($(LIBRETRO), mednafen_vb)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), mednafen_ngp) else ifeq ($(LIBRETRO), mednafen_ngp)
APP_TITLE = Mednafen NGP Libretro APP_TITLE = Mednafen NGP Libretro
@ -119,6 +128,7 @@ else ifeq ($(LIBRETRO), mednafen_ngp)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), 2048) else ifeq ($(LIBRETRO), 2048)
APP_TITLE = 2048 Libretro APP_TITLE = 2048 Libretro
@ -131,6 +141,7 @@ else ifeq ($(LIBRETRO), 2048)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), picodrive) else ifeq ($(LIBRETRO), picodrive)
APP_TITLE = Picodrive Libretro APP_TITLE = Picodrive Libretro
@ -143,6 +154,7 @@ else ifeq ($(LIBRETRO), picodrive)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), snes9x_next) else ifeq ($(LIBRETRO), snes9x_next)
APP_TITLE = Snes9x Next Libretro APP_TITLE = Snes9x Next Libretro
@ -155,6 +167,7 @@ else ifeq ($(LIBRETRO), snes9x_next)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), mgba) else ifeq ($(LIBRETRO), mgba)
APP_TITLE = mGBA Libretro APP_TITLE = mGBA Libretro
@ -167,6 +180,7 @@ else ifeq ($(LIBRETRO), mgba)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), quicknes) else ifeq ($(LIBRETRO), quicknes)
APP_TITLE = QuickNES Libretro APP_TITLE = QuickNES Libretro
@ -179,6 +193,7 @@ else ifeq ($(LIBRETRO), quicknes)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), fb_alpha_neo) else ifeq ($(LIBRETRO), fb_alpha_neo)
APP_TITLE = Neo Geo (FB Alpha) APP_TITLE = Neo Geo (FB Alpha)
@ -191,6 +206,7 @@ else ifeq ($(LIBRETRO), fb_alpha_neo)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
APP_SYSTEM_MODE = 80MB APP_SYSTEM_MODE = 80MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), fb_alpha_cps1) else ifeq ($(LIBRETRO), fb_alpha_cps1)
APP_TITLE = Final Burn Alpha - CPS-1 APP_TITLE = Final Burn Alpha - CPS-1
@ -203,6 +219,7 @@ else ifeq ($(LIBRETRO), fb_alpha_cps1)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), fb_alpha_cps2) else ifeq ($(LIBRETRO), fb_alpha_cps2)
APP_TITLE = Final Burn Alpha - CPS-2 APP_TITLE = Final Burn Alpha - CPS-2
@ -215,6 +232,7 @@ else ifeq ($(LIBRETRO), fb_alpha_cps2)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
APP_SYSTEM_MODE = 80MB APP_SYSTEM_MODE = 80MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), catsfc_plus) else ifeq ($(LIBRETRO), catsfc_plus)
APP_TITLE = CATSFC Plus Libretro APP_TITLE = CATSFC Plus Libretro
@ -227,6 +245,7 @@ else ifeq ($(LIBRETRO), catsfc_plus)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), mednafen_pce_fast) else ifeq ($(LIBRETRO), mednafen_pce_fast)
APP_TITLE = Mednafen/Beetle PCE FAST APP_TITLE = Mednafen/Beetle PCE FAST
@ -239,6 +258,7 @@ else ifeq ($(LIBRETRO), mednafen_pce_fast)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
else ifeq ($(LIBRETRO), pcsx_rearmed) else ifeq ($(LIBRETRO), pcsx_rearmed)
APP_TITLE = PCSX ReARMed APP_TITLE = PCSX ReARMed
@ -251,6 +271,7 @@ else ifeq ($(LIBRETRO), pcsx_rearmed)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
CTR_LINEAR_HEAP_SIZE = 0xE00000
else ifeq ($(LIBRETRO), fmsx) else ifeq ($(LIBRETRO), fmsx)
APP_TITLE = fMSX APP_TITLE = fMSX
@ -263,5 +284,6 @@ else ifeq ($(LIBRETRO), fmsx)
#APP_AUDIO = ctr/silent.wav #APP_AUDIO = ctr/silent.wav
#APP_SYSTEM_MODE = 64MB #APP_SYSTEM_MODE = 64MB
#APP_SYSTEM_MODE_EXT = Legacy #APP_SYSTEM_MODE_EXT = Legacy
#CTR_LINEAR_HEAP_SIZE = 0x600000
endif endif

View File

@ -34,7 +34,6 @@
#include "../../file_ext.h" #include "../../file_ext.h"
#else #else
#include "../../menu/menu.h" #include "../../menu/menu.h"
#include "../../menu/menu_list.h"
#endif #endif
const char* elf_path_cst = "sdmc:/retroarch/test.3dsx"; const char* elf_path_cst = "sdmc:/retroarch/test.3dsx";
@ -50,7 +49,7 @@ extern char* fake_heap_start;
extern char* fake_heap_end; extern char* fake_heap_end;
u32 __linear_heap; u32 __linear_heap;
u32 __heapBase; u32 __heapBase;
static u32 heap_size; u32 heap_size;
extern u32 linear_heap_size; extern u32 linear_heap_size;
extern void (*__system_retAddr)(void); extern void (*__system_retAddr)(void);

View File

@ -258,12 +258,12 @@ static void* ctr_init(const video_info_t* video,
ctr->vp.full_height = CTR_TOP_FRAMEBUFFER_HEIGHT; ctr->vp.full_height = CTR_TOP_FRAMEBUFFER_HEIGHT;
ctr->display_list_size = 0x40000; ctr->display_list_size = 0x400;
ctr->display_list = linearAlloc(ctr->display_list_size * sizeof(uint32_t)); ctr->display_list = linearAlloc(ctr->display_list_size * sizeof(uint32_t));
GPU_Reset(NULL, ctr->display_list, ctr->display_list_size); GPU_Reset(NULL, ctr->display_list, ctr->display_list_size);
ctr->texture_width = 1024; ctr->texture_width = video->input_scale * RARCH_SCALE_BASE;
ctr->texture_height = 512; ctr->texture_height = video->input_scale * RARCH_SCALE_BASE;
ctr->texture_linear = ctr->texture_linear =
linearMemAlign(ctr->texture_width * ctr->texture_height * sizeof(uint32_t), 128); linearMemAlign(ctr->texture_width * ctr->texture_height * sizeof(uint32_t), 128);
ctr->texture_swizzled = ctr->texture_swizzled =
@ -281,9 +281,9 @@ static void* ctr_init(const video_info_t* video,
ctr->menu.texture_width = 512; ctr->menu.texture_width = 512;
ctr->menu.texture_height = 512; ctr->menu.texture_height = 512;
ctr->menu.texture_linear = ctr->menu.texture_linear =
linearMemAlign(ctr->texture_width * ctr->texture_height * sizeof(uint16_t), 128); linearMemAlign(ctr->menu.texture_width * ctr->menu.texture_height * sizeof(uint16_t), 128);
ctr->menu.texture_swizzled = ctr->menu.texture_swizzled =
linearMemAlign(ctr->texture_width * ctr->texture_height * sizeof(uint16_t), 128); linearMemAlign(ctr->menu.texture_width * ctr->menu.texture_height * sizeof(uint16_t), 128);
ctr->menu.frame_coords = linearAlloc(sizeof(ctr_vertex_t)); ctr->menu.frame_coords = linearAlloc(sizeof(ctr_vertex_t));
@ -459,6 +459,11 @@ static bool ctr_frame(void* data, const void* frame,
frames = 0; frames = 0;
} }
// extern u32 __linear_heap_size;
// extern u32 gpuCmdBufOffset;
// extern u32 heap_size;
// printf("0x%08X 0x%08X 0x%08X\r", heap_size, gpuCmdBufOffset, (__linear_heap_size - linearSpaceFree() +0x3FF) & ~0x3FF);
// printf("fps: %8.4f frames: %i (%X)\r", fps, total_frames++, (__linear_heap_size - linearSpaceFree()));
printf("fps: %8.4f frames: %i\r", fps, total_frames++); printf("fps: %8.4f frames: %i\r", fps, total_frames++);
fflush(stdout); fflush(stdout);
@ -506,7 +511,7 @@ static bool ctr_frame(void* data, const void* frame,
GSPGPU_FlushDataCache(NULL, ctr->texture_linear, GSPGPU_FlushDataCache(NULL, ctr->texture_linear,
ctr->texture_width * ctr->texture_height * sizeof(uint16_t)); ctr->texture_width * ctr->texture_height * sizeof(uint16_t));
ctrGuCopyImage(false, ctr->texture_linear, ctr->texture_width, ctr->menu.texture_height, CTRGU_RGB565, false, ctrGuCopyImage(false, ctr->texture_linear, ctr->texture_width, ctr->texture_height, CTRGU_RGB565, false,
ctr->texture_swizzled, ctr->texture_width, CTRGU_RGB565, true); ctr->texture_swizzled, ctr->texture_width, CTRGU_RGB565, true);
} }

View File

@ -54,6 +54,8 @@
#ifndef DEBUG_HOLD #ifndef DEBUG_HOLD
void wait_for_input(void); void wait_for_input(void);
#define DEBUG_HOLD() do{printf("%s@%s:%d.\n",__FUNCTION__, __FILE__, __LINE__);fflush(stdout);wait_for_input();}while(0) #define DEBUG_HOLD() do{printf("%s@%s:%d.\n",__FUNCTION__, __FILE__, __LINE__);fflush(stdout);wait_for_input();}while(0)
#define DEBUG_VAR(X) printf( "%-20s: 0x%08X\n", #X, (u32)(X))
#define DEBUG_VAR64(X) printf( #X"\r\t\t\t\t : 0x%016llX\n", (u64)(X))
#endif #endif