summaryrefslogtreecommitdiff
path: root/libretro
diff options
context:
space:
mode:
authoraliaspider2015-11-09 21:47:09 +0100
committeraliaspider2015-11-09 21:47:09 +0100
commitc58c0dc40c1288b5fd5d9e06667e40afd6465a1d (patch)
tree1874f1a707636170bf5e59dd0823576d04438a6d /libretro
parent909963506109d475732feeff367e5e2a74974344 (diff)
downloadsnes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.tar.gz
snes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.tar.bz2
snes9x2002-c58c0dc40c1288b5fd5d9e06667e40afd6465a1d.zip
(3ds) fix build.
add a frameskip build option for testing.
Diffstat (limited to 'libretro')
-rw-r--r--libretro/libretro.c16
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();