aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.libretro7
-rw-r--r--frontend/cspace.c22
2 files changed, 29 insertions, 0 deletions
diff --git a/Makefile.libretro b/Makefile.libretro
index fb13657..de818aa 100644
--- a/Makefile.libretro
+++ b/Makefile.libretro
@@ -53,6 +53,13 @@ else ifeq ($(platform), osx)
fpic += -mmacosx-version-min=10.1
# iOS
+else ifeq ($(platform),$(filter $(platform),ios9 ios-arm64))
+ ARCH := arm64
+ USE_DYNAREC = 0
+ HAVE_NEON = 0
+ BUILTIN_GPU = peops
+ TARGET := $(TARGET_NAME)_libretro_ios.dylib
+
else ifneq (,$(findstring ios,$(platform)))
ARCH := arm
USE_DYNAREC ?= 1
diff --git a/frontend/cspace.c b/frontend/cspace.c
index 33a981d..26f311f 100644
--- a/frontend/cspace.c
+++ b/frontend/cspace.c
@@ -34,6 +34,28 @@ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
#endif
+#ifndef __ARM64__
+
+void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
+{
+ const unsigned char *src = src_;
+ unsigned int *dst = dst_;
+ unsigned int r1, g1, b1, r2, g2, b2;
+
+ for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
+ r1 = src[0] & 0xf8;
+ g1 = src[1] & 0xfc;
+ b1 = src[2] & 0xf8;
+ r2 = src[3] & 0xf8;
+ g2 = src[4] & 0xfc;
+ b2 = src[5] & 0xf8;
+ *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
+ (r1 << 8) | (g1 << 3) | (b1 >> 3);
+ }
+}
+
+#endif
+
#ifndef __ARM_NEON__
void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)