allocate gba_screen_pixels on the heap.
use linearMemAlign for the 3DS target.
This commit is contained in:
parent
5b6683bb93
commit
69b5bfc05e
17
libretro.c
17
libretro.c
|
@ -8,13 +8,17 @@
|
||||||
#include "libretro.h"
|
#include "libretro.h"
|
||||||
#include "memmap.h"
|
#include "memmap.h"
|
||||||
|
|
||||||
#if defined(_3DS) && defined(HAVE_DYNAREC)
|
#if defined(_3DS)
|
||||||
|
void* linearMemAlign(size_t size, size_t alignment);
|
||||||
|
void linearFree(void* mem);
|
||||||
|
#if defined(HAVE_DYNAREC)
|
||||||
int32_t hbInit(void);
|
int32_t hbInit(void);
|
||||||
void hbExit(void);
|
void hbExit(void);
|
||||||
int32_t HB_FlushInvalidateCache(void);
|
int32_t HB_FlushInvalidateCache(void);
|
||||||
int32_t HB_ReprotectMemory(void* addr, uint32_t pages, uint32_t mode, uint32_t* reprotectedPages);
|
int32_t HB_ReprotectMemory(void* addr, uint32_t pages, uint32_t mode, uint32_t* reprotectedPages);
|
||||||
int hb_service_available;
|
int hb_service_available;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MAX_PATH
|
#ifndef MAX_PATH
|
||||||
#define MAX_PATH (512)
|
#define MAX_PATH (512)
|
||||||
|
@ -126,6 +130,12 @@ void retro_init(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _3DS
|
||||||
|
gba_screen_pixels = (uint16_t*)linearMemAlign(GBA_SCREEN_PITCH * GBA_SCREEN_HEIGHT * sizeof(uint16_t), 128);
|
||||||
|
#else
|
||||||
|
gba_screen_pixels = (uint16_t*)malloc(GBA_SCREEN_PITCH * GBA_SCREEN_HEIGHT * sizeof(uint16_t));
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void retro_deinit(void)
|
void retro_deinit(void)
|
||||||
|
@ -141,6 +151,11 @@ void retro_deinit(void)
|
||||||
#if defined(_3DS) && defined(HAVE_DYNAREC)
|
#if defined(_3DS) && defined(HAVE_DYNAREC)
|
||||||
hbExit();
|
hbExit();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef _3DS
|
||||||
|
linearFree(gba_screen_pixels);
|
||||||
|
#else
|
||||||
|
free(gba_screen_pixels);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static retro_time_t retro_perf_dummy_get_time_usec() { return 0; }
|
static retro_time_t retro_perf_dummy_get_time_usec() { return 0; }
|
||||||
|
|
2
video.c
2
video.c
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
u16 gba_screen_pixels[GBA_SCREEN_PITCH * GBA_SCREEN_HEIGHT];
|
u16* gba_screen_pixels;
|
||||||
|
|
||||||
#define get_screen_pixels() gba_screen_pixels
|
#define get_screen_pixels() gba_screen_pixels
|
||||||
#define get_screen_pitch() GBA_SCREEN_PITCH
|
#define get_screen_pitch() GBA_SCREEN_PITCH
|
||||||
|
|
Loading…
Reference in New Issue