diff options
author | aliaspider | 2015-11-09 21:47:09 +0100 |
---|---|---|
committer | aliaspider | 2015-11-09 21:47:09 +0100 |
commit | c58c0dc40c1288b5fd5d9e06667e40afd6465a1d (patch) | |
tree | 1874f1a707636170bf5e59dd0823576d04438a6d /libretro/libretro.c | |
parent | 909963506109d475732feeff367e5e2a74974344 (diff) | |
download | snes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.tar.gz snes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.tar.bz2 snes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.zip |
(3ds) fix build.
add a frameskip build option for testing.
Diffstat (limited to 'libretro/libretro.c')
-rw-r--r-- | libretro/libretro.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libretro/libretro.c b/libretro/libretro.c index b7aa69b..930053b 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -26,8 +26,8 @@ #include "../src/os9x_asm_cpu.h" #ifdef _3DS -extern "C" void* linearMemAlign(size_t size, size_t alignment); -extern "C" void linearFree(void* mem); +void* linearMemAlign(size_t size, size_t alignment); +void linearFree(void* mem); #endif #define MAP_BUTTON(id, name) S9xMapButton((id), S9xGetCommandT((name)), false) @@ -391,14 +391,26 @@ static void report_buttons (void) } } +//#define FRAME_SKIP + void retro_run (void) { +#ifdef FRAME_SKIP + IPPU.RenderThisFrame = !IPPU.RenderThisFrame; +#else IPPU.RenderThisFrame = TRUE; +#endif + S9xMainLoop(); // asm_S9xMainLoop(); S9xMixSamples(audio_buf, avail); audio_batch_cb((int16_t *) audio_buf, avail >> 1); +#ifdef FRAME_SKIP + if(!IPPU.RenderThisFrame) + video_cb(NULL, IPPU.RenderedScreenWidth, IPPU.RenderedScreenHeight, GFX_PITCH); +#endif + poll_cb(); report_buttons(); |