diff --git a/gfx/context/ioseagl_ctx.m b/gfx/context/ioseagl_ctx.m
new file mode 100644
index 0000000000..85c3c0f4bc
--- /dev/null
+++ b/gfx/context/ioseagl_ctx.m
@@ -0,0 +1,175 @@
+/* RetroArch - A frontend for libretro.
+ * Copyright (C) 2010-2013 - Hans-Kristian Arntzen
+ * Copyright (C) 2011-2013 - Daniel De Matteis
+ *
+ * RetroArch is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Found-
+ * ation, either version 3 of the License, or (at your option) any later version.
+ *
+ * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with RetroArch.
+ * If not, see .
+ */
+
+#include "../../driver.h"
+#include "../gfx_common.h"
+#include "../gl_common.h"
+#include "../image.h"
+
+#include "../fonts/gl_font.h"
+#include
+
+#ifdef HAVE_GLSL
+#include "../shader_glsl.h"
+#endif
+
+#import "../../ios/RetroArch/ViewController.h"
+
+static GLKView *gl_view;
+
+// Objective-C interface used to interact with the GLES context and display.
+@interface ViewController ()
+
+@property (strong, nonatomic) EAGLContext *context;
+@property (strong, nonatomic) GLKView *view;
+
+@end
+
+@implementation ViewController
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+ self.view = [[GLKView alloc] initWithFrame:CGRectMake(0, 0, 640, 480) context:self.context];
+
+ [EAGLContext setCurrentContext:self.context];
+
+ gl_view = self.view;
+}
+
+- (void)dealloc
+{
+ if ([EAGLContext currentContext] == self.context) [EAGLContext setCurrentContext:nil];
+}
+
+@end
+
+
+// C interface
+static void gfx_ctx_set_swap_interval(unsigned interval)
+{
+ RARCH_LOG("gfx_ctx_set_swap_interval not supported.\n");
+}
+
+static void gfx_ctx_destroy(void)
+{
+ RARCH_LOG("gfx_ctx_destroy().\n");
+}
+
+static void gfx_ctx_get_video_size(unsigned *width, unsigned *height)
+{
+ *width = gl_view.bounds.size.width;
+ *height = gl_view.bounds.size.height;
+}
+
+static bool gfx_ctx_init(void)
+{
+ return true;
+}
+
+static void gfx_ctx_swap_buffers(void)
+{
+ [gl_view setNeedsDisplay];
+ [gl_view bindDrawable];
+}
+
+static void gfx_ctx_check_window(bool *quit,
+ bool *resize, unsigned *width, unsigned *height, unsigned frame_count)
+{
+ (void)frame_count;
+
+ *quit = false;
+
+ while (CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, TRUE) == kCFRunLoopRunHandledSource);
+
+ unsigned new_width, new_height;
+ gfx_ctx_get_video_size(&new_width, &new_height);
+ if (new_width != *width || new_height != *height)
+ {
+ *width = new_width;
+ *height = new_height;
+ *resize = true;
+ }
+}
+
+static void gfx_ctx_set_resize(unsigned width, unsigned height)
+{
+ (void)width;
+ (void)height;
+}
+
+static void gfx_ctx_update_window_title(bool reset)
+{
+}
+
+static bool gfx_ctx_set_video_mode(
+ unsigned width, unsigned height,
+ bool fullscreen)
+{
+ (void)width;
+ (void)height;
+ (void)fullscreen;
+ return true;
+}
+
+static void gfx_ctx_input_driver(const input_driver_t **input, void **input_data)
+{
+ *input = NULL;
+ *input_data = NULL;
+}
+
+static bool gfx_ctx_bind_api(enum gfx_ctx_api api)
+{
+ return api == GFX_CTX_OPENGL_ES_API;
+}
+
+static bool gfx_ctx_has_focus(void)
+{
+ return true;
+}
+
+static bool gfx_ctx_init_egl_image_buffer(const video_info_t *video)
+{
+ return false;
+}
+
+static bool gfx_ctx_write_egl_image(const void *frame, unsigned width, unsigned height, unsigned pitch, bool rgb32, unsigned index, void **image_handle)
+{
+ return false;
+}
+
+const gfx_ctx_driver_t gfx_ctx_ios = {
+ gfx_ctx_init,
+ gfx_ctx_destroy,
+ gfx_ctx_bind_api,
+ gfx_ctx_set_swap_interval,
+ gfx_ctx_set_video_mode,
+ gfx_ctx_get_video_size,
+ NULL,
+ gfx_ctx_update_window_title,
+ gfx_ctx_check_window,
+ gfx_ctx_set_resize,
+ gfx_ctx_has_focus,
+ gfx_ctx_swap_buffers,
+ gfx_ctx_input_driver,
+ NULL,
+ gfx_ctx_init_egl_image_buffer,
+ gfx_ctx_write_egl_image,
+ NULL,
+ "ios",
+};
diff --git a/gfx/gfx_context.c b/gfx/gfx_context.c
index 2c00351d01..0b43698fb2 100644
--- a/gfx/gfx_context.c
+++ b/gfx/gfx_context.c
@@ -48,6 +48,9 @@ static const gfx_ctx_driver_t *gfx_ctx_drivers[] = {
#if defined(ANDROID)
&gfx_ctx_android,
#endif
+#if defined(IOS)
+ &gfx_ctx_ios,
+#endif
};
const gfx_ctx_driver_t *gfx_ctx_find_driver(const char *ident)
diff --git a/gfx/gfx_context.h b/gfx/gfx_context.h
index 3a4453e49a..55f2be318e 100644
--- a/gfx/gfx_context.h
+++ b/gfx/gfx_context.h
@@ -136,6 +136,7 @@ extern const gfx_ctx_driver_t gfx_ctx_ps3;
extern const gfx_ctx_driver_t gfx_ctx_xdk;
extern const gfx_ctx_driver_t gfx_ctx_wgl;
extern const gfx_ctx_driver_t gfx_ctx_videocore;
+extern const gfx_ctx_driver_t gfx_ctx_ios;
const gfx_ctx_driver_t *gfx_ctx_find_driver(const char *ident); // Finds driver with ident. Does not initialize.
const gfx_ctx_driver_t *gfx_ctx_init_first(enum gfx_ctx_api api); // Finds first suitable driver and initializes.
diff --git a/gfx/gl_common.h b/gfx/gl_common.h
index 2617f84d28..27c5cb9547 100644
--- a/gfx/gl_common.h
+++ b/gfx/gl_common.h
@@ -34,7 +34,10 @@
#include
#endif
-#if defined(__APPLE__)
+#if defined(IOS)
+#include
+#include
+#elif defined(__APPLE__)
#include
#include
#elif defined(HAVE_PSGL)
@@ -324,7 +327,11 @@ extern PFNGLACTIVETEXTUREPROC pglActiveTexture;
#ifndef GL_BGRA_EXT
#define GL_BGRA_EXT 0x80E1
#endif
+#ifdef IOS
+#define RARCH_GL_INTERNAL_FORMAT32 GL_RGBA // Stupid Apple
+#else
#define RARCH_GL_INTERNAL_FORMAT32 GL_BGRA_EXT
+#endif
#define RARCH_GL_INTERNAL_FORMAT16 GL_RGB
#define RARCH_GL_TEXTURE_TYPE32 GL_BGRA_EXT
#define RARCH_GL_TEXTURE_TYPE16 GL_RGB
diff --git a/gfx/shader_glsl.c b/gfx/shader_glsl.c
index 4de50804a2..4bb7ff2667 100644
--- a/gfx/shader_glsl.c
+++ b/gfx/shader_glsl.c
@@ -27,7 +27,10 @@
#include "../config.h"
#endif
-#if defined(__APPLE__) // Because they like to be "oh, so, special".
+#if defined(IOS)
+#include
+#include
+#elif defined(__APPLE__) // Because they like to be "oh, so, special".
#include
#include
#elif defined(HAVE_PSGL)
diff --git a/ios/RetroArch.xcodeproj/project.pbxproj b/ios/RetroArch.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..c0ba76bca0
--- /dev/null
+++ b/ios/RetroArch.xcodeproj/project.pbxproj
@@ -0,0 +1,987 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 968A572A16C2A06800BE12F8 /* test.img in Resources */ = {isa = PBXBuildFile; fileRef = 968A572816C2A06800BE12F8 /* test.img */; };
+ 968A572B16C2A06800BE12F8 /* libretro.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 968A572916C2A06800BE12F8 /* libretro.a */; };
+ 96AFAE2A16C1D4EA009DE44C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2916C1D4EA009DE44C /* UIKit.framework */; };
+ 96AFAE2C16C1D4EA009DE44C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */; };
+ 96AFAE2E16C1D4EA009DE44C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */; };
+ 96AFAE3016C1D4EA009DE44C /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */; };
+ 96AFAE3216C1D4EA009DE44C /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */; };
+ 96AFAE3816C1D4EA009DE44C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE3616C1D4EA009DE44C /* InfoPlist.strings */; };
+ 96AFAE3A16C1D4EA009DE44C /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAE3916C1D4EA009DE44C /* main.mm */; };
+ 96AFAE3E16C1D4EA009DE44C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAE3D16C1D4EA009DE44C /* AppDelegate.m */; };
+ 96AFAE4016C1D4EA009DE44C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE3F16C1D4EA009DE44C /* Default.png */; };
+ 96AFAE4216C1D4EA009DE44C /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE4116C1D4EA009DE44C /* Default@2x.png */; };
+ 96AFAE4416C1D4EA009DE44C /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE4316C1D4EA009DE44C /* Default-568h@2x.png */; };
+ 96AFAE4E16C1D4EA009DE44C /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE4C16C1D4EA009DE44C /* ViewController_iPhone.xib */; };
+ 96AFAE5116C1D4EA009DE44C /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 96AFAE4F16C1D4EA009DE44C /* ViewController_iPad.xib */; };
+ 96AFAECA16C1D9A9009DE44C /* autosave.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAE9D16C1D9A9009DE44C /* autosave.c */; };
+ 96AFAECB16C1D9A9009DE44C /* cheats.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEA016C1D9A9009DE44C /* cheats.c */; };
+ 96AFAECC16C1D9A9009DE44C /* command.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEA216C1D9A9009DE44C /* command.c */; };
+ 96AFAECD16C1D9A9009DE44C /* driver.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEA716C1D9A9009DE44C /* driver.c */; };
+ 96AFAECE16C1D9A9009DE44C /* dynamic.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEA916C1D9A9009DE44C /* dynamic.c */; };
+ 96AFAECF16C1D9A9009DE44C /* fifo_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEAB16C1D9A9009DE44C /* fifo_buffer.c */; };
+ 96AFAED016C1D9A9009DE44C /* file_extract.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEAD16C1D9A9009DE44C /* file_extract.c */; };
+ 96AFAED116C1D9A9009DE44C /* file_path.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEAF16C1D9A9009DE44C /* file_path.c */; };
+ 96AFAED216C1D9A9009DE44C /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEB016C1D9A9009DE44C /* file.c */; };
+ 96AFAED316C1D9A9009DE44C /* hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEB316C1D9A9009DE44C /* hash.c */; };
+ 96AFAED416C1D9A9009DE44C /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEB616C1D9A9009DE44C /* message.c */; };
+ 96AFAED516C1D9A9009DE44C /* movie.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEB816C1D9A9009DE44C /* movie.c */; };
+ 96AFAED716C1D9A9009DE44C /* patch.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEBD16C1D9A9009DE44C /* patch.c */; };
+ 96AFAED816C1D9A9009DE44C /* performance.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEBF16C1D9A9009DE44C /* performance.c */; };
+ 96AFAED916C1D9A9009DE44C /* retroarch.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEC216C1D9A9009DE44C /* retroarch.c */; };
+ 96AFAEDA16C1D9A9009DE44C /* rewind.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEC316C1D9A9009DE44C /* rewind.c */; };
+ 96AFAEDB16C1D9A9009DE44C /* screenshot.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEC516C1D9A9009DE44C /* screenshot.c */; };
+ 96AFAEDC16C1D9A9009DE44C /* settings.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEC716C1D9A9009DE44C /* settings.c */; };
+ 96AFAEDD16C1D9A9009DE44C /* thread.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEC816C1D9A9009DE44C /* thread.c */; };
+ 96AFAEE416C1DBDB009DE44C /* config_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEE116C1DBDB009DE44C /* config_file.c */; };
+ 96AFAF0B16C1DC73009DE44C /* null.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEEE16C1DC73009DE44C /* null.c */; };
+ 96AFAF1816C1DC73009DE44C /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEFD16C1DC73009DE44C /* utils.c */; };
+ 96AFAF1F16C1DF0A009DE44C /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAF1E16C1DF0A009DE44C /* OpenAL.framework */; };
+ 96AFAF2016C1DF3A009DE44C /* openal.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEEF16C1DC73009DE44C /* openal.c */; };
+ 96AFAF2216C1DF88009DE44C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAF2116C1DF88009DE44C /* libz.dylib */; };
+ 96AFAF2D16C1DFC8009DE44C /* compat.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF2416C1DFC8009DE44C /* compat.c */; };
+ 96AFAF2F16C1DFC8009DE44C /* rxml.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF2916C1DFC8009DE44C /* rxml.c */; };
+ 96AFAF8D16C1E00A009DE44C /* bitmapfont.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF4816C1E00A009DE44C /* bitmapfont.c */; };
+ 96AFAF8F16C1E00A009DE44C /* fonts.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF4B16C1E00A009DE44C /* fonts.c */; };
+ 96AFAF9116C1E00A009DE44C /* gl_font.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF4E16C1E00A009DE44C /* gl_font.c */; };
+ 96AFAF9216C1E00A009DE44C /* gl_raster_font.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5016C1E00A009DE44C /* gl_raster_font.c */; };
+ 96AFAF9616C1E00A009DE44C /* gfx_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5416C1E00A009DE44C /* gfx_common.c */; };
+ 96AFAF9716C1E00A009DE44C /* gfx_context.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5616C1E00A009DE44C /* gfx_context.c */; };
+ 96AFAF9816C1E00A009DE44C /* gl.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5816C1E00A009DE44C /* gl.c */; };
+ 96AFAF9916C1E00A009DE44C /* image.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5A16C1E00A009DE44C /* image.c */; };
+ 96AFAF9A16C1E00A009DE44C /* matrix.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5D16C1E00A009DE44C /* matrix.c */; };
+ 96AFAF9B16C1E00A009DE44C /* matrix_3x3.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF5F16C1E00A009DE44C /* matrix_3x3.c */; };
+ 96AFAF9C16C1E00A009DE44C /* null.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF6116C1E00A009DE44C /* null.c */; };
+ 96AFAF9F16C1E00A009DE44C /* rpng.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF6716C1E00A009DE44C /* rpng.c */; };
+ 96AFAFA116C1E00A009DE44C /* filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF6B16C1E00A009DE44C /* filter.c */; };
+ 96AFAFA216C1E00A009DE44C /* pixconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF6D16C1E00A009DE44C /* pixconv.c */; };
+ 96AFAFA316C1E00A009DE44C /* scaler.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF6F16C1E00A009DE44C /* scaler.c */; };
+ 96AFAFA416C1E00A009DE44C /* scaler_int.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF7116C1E00A009DE44C /* scaler_int.c */; };
+ 96AFAFA716C1E00A009DE44C /* shader_glsl.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF7716C1E00A009DE44C /* shader_glsl.c */; };
+ 96AFAFAC16C1E279009DE44C /* state_tracker.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAF7B16C1E00A009DE44C /* state_tracker.c */; };
+ 96AFAFAD16C1EEE9009DE44C /* sinc.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAEF716C1DC73009DE44C /* sinc.c */; };
+ 96AFAFD416C1FBC0009DE44C /* input_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAFC916C1FBC0009DE44C /* input_common.c */; };
+ 96AFAFD716C1FBC0009DE44C /* null.c in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAFCD16C1FBC0009DE44C /* null.c */; };
+ 96AFAFDD16C2149A009DE44C /* ioseagl_ctx.m in Sources */ = {isa = PBXBuildFile; fileRef = 96AFAFDC16C2149A009DE44C /* ioseagl_ctx.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 968A572816C2A06800BE12F8 /* test.img */ = {isa = PBXFileReference; lastKnownFileType = file; path = test.img; sourceTree = ""; };
+ 968A572916C2A06800BE12F8 /* libretro.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libretro.a; sourceTree = ""; };
+ 96AFAE2516C1D4EA009DE44C /* RetroArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArch.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 96AFAE2916C1D4EA009DE44C /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
+ 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 96AFAE3516C1D4EA009DE44C /* RetroArch-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RetroArch-Info.plist"; sourceTree = ""; };
+ 96AFAE3716C1D4EA009DE44C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
+ 96AFAE3916C1D4EA009DE44C /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; };
+ 96AFAE3B16C1D4EA009DE44C /* RetroArch-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RetroArch-Prefix.pch"; sourceTree = ""; };
+ 96AFAE3C16C1D4EA009DE44C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 96AFAE3D16C1D4EA009DE44C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 96AFAE3F16C1D4EA009DE44C /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; };
+ 96AFAE4116C1D4EA009DE44C /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
+ 96AFAE4316C1D4EA009DE44C /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
+ 96AFAE4916C1D4EA009DE44C /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
+ 96AFAE4D16C1D4EA009DE44C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPhone.xib; sourceTree = ""; };
+ 96AFAE5016C1D4EA009DE44C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPad.xib; sourceTree = ""; };
+ 96AFAE9D16C1D9A9009DE44C /* autosave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = autosave.c; path = ../autosave.c; sourceTree = ""; };
+ 96AFAE9E16C1D9A9009DE44C /* autosave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autosave.h; path = ../autosave.h; sourceTree = ""; };
+ 96AFAE9F16C1D9A9009DE44C /* boolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = boolean.h; path = ../boolean.h; sourceTree = ""; };
+ 96AFAEA016C1D9A9009DE44C /* cheats.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cheats.c; path = ../cheats.c; sourceTree = ""; };
+ 96AFAEA116C1D9A9009DE44C /* cheats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cheats.h; path = ../cheats.h; sourceTree = ""; };
+ 96AFAEA216C1D9A9009DE44C /* command.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = command.c; path = ../command.c; sourceTree = ""; };
+ 96AFAEA316C1D9A9009DE44C /* command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = command.h; path = ../command.h; sourceTree = ""; };
+ 96AFAEA416C1D9A9009DE44C /* config.def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.def.h; path = ../config.def.h; sourceTree = ""; };
+ 96AFAEA516C1D9A9009DE44C /* config.features.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.features.h; path = ../config.features.h; sourceTree = ""; };
+ 96AFAEA616C1D9A9009DE44C /* driver_funcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = driver_funcs.h; path = ../driver_funcs.h; sourceTree = ""; };
+ 96AFAEA716C1D9A9009DE44C /* driver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = driver.c; path = ../driver.c; sourceTree = ""; };
+ 96AFAEA816C1D9A9009DE44C /* driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = driver.h; path = ../driver.h; sourceTree = ""; };
+ 96AFAEA916C1D9A9009DE44C /* dynamic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic.c; path = ../dynamic.c; sourceTree = ""; };
+ 96AFAEAA16C1D9A9009DE44C /* dynamic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic.h; path = ../dynamic.h; sourceTree = ""; };
+ 96AFAEAB16C1D9A9009DE44C /* fifo_buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fifo_buffer.c; path = ../fifo_buffer.c; sourceTree = ""; };
+ 96AFAEAC16C1D9A9009DE44C /* fifo_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fifo_buffer.h; path = ../fifo_buffer.h; sourceTree = ""; };
+ 96AFAEAD16C1D9A9009DE44C /* file_extract.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file_extract.c; path = ../file_extract.c; sourceTree = ""; };
+ 96AFAEAE16C1D9A9009DE44C /* file_extract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_extract.h; path = ../file_extract.h; sourceTree = ""; };
+ 96AFAEAF16C1D9A9009DE44C /* file_path.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file_path.c; path = ../file_path.c; sourceTree = ""; };
+ 96AFAEB016C1D9A9009DE44C /* file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file.c; path = ../file.c; sourceTree = ""; };
+ 96AFAEB116C1D9A9009DE44C /* file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file.h; path = ../file.h; sourceTree = ""; };
+ 96AFAEB216C1D9A9009DE44C /* general.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = general.h; path = ../general.h; sourceTree = ""; };
+ 96AFAEB316C1D9A9009DE44C /* hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hash.c; path = ../hash.c; sourceTree = ""; };
+ 96AFAEB416C1D9A9009DE44C /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hash.h; path = ../hash.h; sourceTree = ""; };
+ 96AFAEB516C1D9A9009DE44C /* libretro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libretro.h; path = ../libretro.h; sourceTree = ""; };
+ 96AFAEB616C1D9A9009DE44C /* message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = message.c; path = ../message.c; sourceTree = ""; };
+ 96AFAEB716C1D9A9009DE44C /* message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = message.h; path = ../message.h; sourceTree = ""; };
+ 96AFAEB816C1D9A9009DE44C /* movie.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = movie.c; path = ../movie.c; sourceTree = ""; };
+ 96AFAEB916C1D9A9009DE44C /* movie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = movie.h; path = ../movie.h; sourceTree = ""; };
+ 96AFAEBA16C1D9A9009DE44C /* netplay_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netplay_compat.h; path = ../netplay_compat.h; sourceTree = ""; };
+ 96AFAEBB16C1D9A9009DE44C /* netplay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netplay.c; path = ../netplay.c; sourceTree = ""; };
+ 96AFAEBC16C1D9A9009DE44C /* netplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netplay.h; path = ../netplay.h; sourceTree = ""; };
+ 96AFAEBD16C1D9A9009DE44C /* patch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = patch.c; path = ../patch.c; sourceTree = ""; };
+ 96AFAEBE16C1D9A9009DE44C /* patch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = patch.h; path = ../patch.h; sourceTree = ""; };
+ 96AFAEBF16C1D9A9009DE44C /* performance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = performance.c; path = ../performance.c; sourceTree = ""; };
+ 96AFAEC016C1D9A9009DE44C /* performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = performance.h; path = ../performance.h; sourceTree = ""; };
+ 96AFAEC116C1D9A9009DE44C /* retroarch_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = retroarch_logger.h; path = ../retroarch_logger.h; sourceTree = ""; };
+ 96AFAEC216C1D9A9009DE44C /* retroarch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = retroarch.c; path = ../retroarch.c; sourceTree = ""; };
+ 96AFAEC316C1D9A9009DE44C /* rewind.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rewind.c; path = ../rewind.c; sourceTree = ""; };
+ 96AFAEC416C1D9A9009DE44C /* rewind.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rewind.h; path = ../rewind.h; sourceTree = ""; };
+ 96AFAEC516C1D9A9009DE44C /* screenshot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = screenshot.c; path = ../screenshot.c; sourceTree = ""; };
+ 96AFAEC616C1D9A9009DE44C /* screenshot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = screenshot.h; path = ../screenshot.h; sourceTree = ""; };
+ 96AFAEC716C1D9A9009DE44C /* settings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = settings.c; path = ../settings.c; sourceTree = ""; };
+ 96AFAEC816C1D9A9009DE44C /* thread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = thread.c; path = ../thread.c; sourceTree = ""; };
+ 96AFAEC916C1D9A9009DE44C /* thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = thread.h; path = ../thread.h; sourceTree = ""; };
+ 96AFAEE116C1DBDB009DE44C /* config_file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = config_file.c; sourceTree = ""; };
+ 96AFAEE216C1DBDB009DE44C /* config_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config_file.h; sourceTree = ""; };
+ 96AFAEE316C1DBDB009DE44C /* config_file_macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config_file_macros.h; sourceTree = ""; };
+ 96AFAEE616C1DC73009DE44C /* alsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alsa.c; sourceTree = ""; };
+ 96AFAEE716C1DC73009DE44C /* alsathread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alsathread.c; sourceTree = ""; };
+ 96AFAEE816C1DC73009DE44C /* coreaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = coreaudio.c; sourceTree = ""; };
+ 96AFAEE916C1DC73009DE44C /* dsound.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dsound.c; sourceTree = ""; };
+ 96AFAEEB16C1DC73009DE44C /* rarch_dsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rarch_dsp.h; sourceTree = ""; };
+ 96AFAEEC16C1DC73009DE44C /* hermite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hermite.c; sourceTree = ""; };
+ 96AFAEED16C1DC73009DE44C /* jack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = jack.c; sourceTree = ""; };
+ 96AFAEEE16C1DC73009DE44C /* null.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = null.c; sourceTree = ""; };
+ 96AFAEEF16C1DC73009DE44C /* openal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = openal.c; sourceTree = ""; };
+ 96AFAEF016C1DC73009DE44C /* opensl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opensl.c; sourceTree = ""; };
+ 96AFAEF116C1DC73009DE44C /* oss.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = oss.c; sourceTree = ""; };
+ 96AFAEF216C1DC73009DE44C /* pulse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pulse.c; sourceTree = ""; };
+ 96AFAEF316C1DC73009DE44C /* resampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resampler.h; sourceTree = ""; };
+ 96AFAEF416C1DC73009DE44C /* roar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = roar.c; sourceTree = ""; };
+ 96AFAEF516C1DC73009DE44C /* rsound.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rsound.c; sourceTree = ""; };
+ 96AFAEF616C1DC73009DE44C /* sdl_audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_audio.c; sourceTree = ""; };
+ 96AFAEF716C1DC73009DE44C /* sinc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sinc.c; sourceTree = ""; };
+ 96AFAEF816C1DC73009DE44C /* sinc_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = sinc_neon.S; sourceTree = ""; };
+ 96AFAEFA16C1DC73009DE44C /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; };
+ 96AFAEFB16C1DC73009DE44C /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; };
+ 96AFAEFC16C1DC73009DE44C /* snr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = snr.c; sourceTree = ""; };
+ 96AFAEFD16C1DC73009DE44C /* utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = utils.c; sourceTree = ""; };
+ 96AFAEFE16C1DC73009DE44C /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; };
+ 96AFAEFF16C1DC73009DE44C /* utils_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = utils_neon.S; sourceTree = ""; };
+ 96AFAF0116C1DC73009DE44C /* xaudio-c.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xaudio-c.cpp"; sourceTree = ""; };
+ 96AFAF0216C1DC73009DE44C /* xaudio-c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xaudio-c.h"; sourceTree = ""; };
+ 96AFAF0316C1DC73009DE44C /* xaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xaudio.h; sourceTree = ""; };
+ 96AFAF0416C1DC73009DE44C /* xaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xaudio.c; sourceTree = ""; };
+ 96AFAF1E16C1DF0A009DE44C /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+ 96AFAF2116C1DF88009DE44C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+ 96AFAF2416C1DFC8009DE44C /* compat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = compat.c; sourceTree = ""; };
+ 96AFAF2516C1DFC8009DE44C /* getopt_rarch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = getopt_rarch.h; sourceTree = ""; };
+ 96AFAF2616C1DFC8009DE44C /* posix_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_string.h; sourceTree = ""; };
+ 96AFAF2816C1DFC8009DE44C /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; };
+ 96AFAF2916C1DFC8009DE44C /* rxml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rxml.c; sourceTree = ""; };
+ 96AFAF2A16C1DFC8009DE44C /* rxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rxml.h; sourceTree = ""; };
+ 96AFAF2B16C1DFC8009DE44C /* rxml_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rxml_test.c; sourceTree = ""; };
+ 96AFAF2C16C1DFC8009DE44C /* strl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strl.h; sourceTree = ""; };
+ 96AFAF3316C1E00A009DE44C /* androidegl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = androidegl_ctx.c; sourceTree = ""; };
+ 96AFAF3416C1E00A009DE44C /* drm_egl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = drm_egl_ctx.c; sourceTree = ""; };
+ 96AFAF3516C1E00A009DE44C /* glx_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glx_ctx.c; sourceTree = ""; };
+ 96AFAF3616C1E00A009DE44C /* ps3_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ps3_ctx.c; sourceTree = ""; };
+ 96AFAF3716C1E00A009DE44C /* sdl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_ctx.c; sourceTree = ""; };
+ 96AFAF3816C1E00A009DE44C /* vc_egl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vc_egl_ctx.c; sourceTree = ""; };
+ 96AFAF3916C1E00A009DE44C /* wgl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wgl_ctx.c; sourceTree = ""; };
+ 96AFAF3A16C1E00A009DE44C /* x11_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x11_common.c; sourceTree = ""; };
+ 96AFAF3B16C1E00A009DE44C /* x11_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x11_common.h; sourceTree = ""; };
+ 96AFAF3C16C1E00A009DE44C /* xdk_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xdk_ctx.c; sourceTree = ""; };
+ 96AFAF3D16C1E00A009DE44C /* xegl_ctx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xegl_ctx.c; sourceTree = ""; };
+ 96AFAF3F16C1E00A009DE44C /* config_file.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = config_file.hpp; sourceTree = ""; };
+ 96AFAF4016C1E00A009DE44C /* d3d9.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = d3d9.cpp; sourceTree = ""; };
+ 96AFAF4116C1E00A009DE44C /* d3d9.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = d3d9.hpp; sourceTree = ""; };
+ 96AFAF4216C1E00A009DE44C /* render_chain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_chain.cpp; sourceTree = ""; };
+ 96AFAF4316C1E00A009DE44C /* render_chain.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = render_chain.hpp; sourceTree = ""; };
+ 96AFAF4516C1E00A009DE44C /* bitmap.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = bitmap.bin; sourceTree = ""; };
+ 96AFAF4616C1E00A009DE44C /* bitmap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bitmap.bmp; sourceTree = ""; };
+ 96AFAF4716C1E00A009DE44C /* bitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitmap.h; sourceTree = ""; };
+ 96AFAF4816C1E00A009DE44C /* bitmapfont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitmapfont.c; sourceTree = ""; };
+ 96AFAF4916C1E00A009DE44C /* d3d_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = d3d_font.c; sourceTree = ""; };
+ 96AFAF4A16C1E00A009DE44C /* d3d_font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = d3d_font.h; sourceTree = ""; };
+ 96AFAF4B16C1E00A009DE44C /* fonts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fonts.c; sourceTree = ""; };
+ 96AFAF4C16C1E00A009DE44C /* fonts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fonts.h; sourceTree = ""; };
+ 96AFAF4D16C1E00A009DE44C /* freetype.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = freetype.c; sourceTree = ""; };
+ 96AFAF4E16C1E00A009DE44C /* gl_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gl_font.c; sourceTree = ""; };
+ 96AFAF4F16C1E00A009DE44C /* gl_font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl_font.h; sourceTree = ""; };
+ 96AFAF5016C1E00A009DE44C /* gl_raster_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gl_raster_font.c; sourceTree = ""; };
+ 96AFAF5116C1E00A009DE44C /* ps_libdbgfont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ps_libdbgfont.c; sourceTree = ""; };
+ 96AFAF5216C1E00A009DE44C /* xdk1_xfonts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xdk1_xfonts.c; sourceTree = ""; };
+ 96AFAF5316C1E00A009DE44C /* xdk360_fonts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xdk360_fonts.cpp; sourceTree = ""; };
+ 96AFAF5416C1E00A009DE44C /* gfx_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gfx_common.c; sourceTree = ""; };
+ 96AFAF5516C1E00A009DE44C /* gfx_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_common.h; sourceTree = ""; };
+ 96AFAF5616C1E00A009DE44C /* gfx_context.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gfx_context.c; sourceTree = ""; };
+ 96AFAF5716C1E00A009DE44C /* gfx_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gfx_context.h; sourceTree = ""; };
+ 96AFAF5816C1E00A009DE44C /* gl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gl.c; sourceTree = ""; };
+ 96AFAF5916C1E00A009DE44C /* gl_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl_common.h; sourceTree = ""; };
+ 96AFAF5A16C1E00A009DE44C /* image.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = image.c; sourceTree = ""; };
+ 96AFAF5B16C1E00A009DE44C /* image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = image.h; sourceTree = ""; };
+ 96AFAF5D16C1E00A009DE44C /* matrix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = matrix.c; sourceTree = ""; };
+ 96AFAF5E16C1E00A009DE44C /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = matrix.h; sourceTree = ""; };
+ 96AFAF5F16C1E00A009DE44C /* matrix_3x3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = matrix_3x3.c; sourceTree = ""; };
+ 96AFAF6016C1E00A009DE44C /* matrix_3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = matrix_3x3.h; sourceTree = ""; };
+ 96AFAF6116C1E00A009DE44C /* null.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = null.c; sourceTree = ""; };
+ 96AFAF6316C1E00A009DE44C /* py_state.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = py_state.c; sourceTree = ""; };
+ 96AFAF6416C1E00A009DE44C /* py_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = py_state.h; sourceTree = ""; };
+ 96AFAF6616C1E00A009DE44C /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; };
+ 96AFAF6716C1E00A009DE44C /* rpng.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rpng.c; sourceTree = ""; };
+ 96AFAF6816C1E00A009DE44C /* rpng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rpng.h; sourceTree = ""; };
+ 96AFAF6916C1E00A009DE44C /* rpng_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rpng_test.c; sourceTree = ""; };
+ 96AFAF6B16C1E00A009DE44C /* filter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = filter.c; sourceTree = ""; };
+ 96AFAF6C16C1E00A009DE44C /* filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter.h; sourceTree = ""; };
+ 96AFAF6D16C1E00A009DE44C /* pixconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pixconv.c; sourceTree = ""; };
+ 96AFAF6E16C1E00A009DE44C /* pixconv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pixconv.h; sourceTree = ""; };
+ 96AFAF6F16C1E00A009DE44C /* scaler.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scaler.c; sourceTree = ""; };
+ 96AFAF7016C1E00A009DE44C /* scaler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scaler.h; sourceTree = ""; };
+ 96AFAF7116C1E00A009DE44C /* scaler_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scaler_int.c; sourceTree = ""; };
+ 96AFAF7216C1E00A009DE44C /* scaler_int.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scaler_int.h; sourceTree = ""; };
+ 96AFAF7316C1E00A009DE44C /* sdl_gfx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_gfx.c; sourceTree = ""; };
+ 96AFAF7416C1E00A009DE44C /* shader_cg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = shader_cg.c; sourceTree = ""; };
+ 96AFAF7516C1E00A009DE44C /* shader_cg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shader_cg.h; sourceTree = ""; };
+ 96AFAF7616C1E00A009DE44C /* shader_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shader_common.h; sourceTree = ""; };
+ 96AFAF7716C1E00A009DE44C /* shader_glsl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = shader_glsl.c; sourceTree = ""; };
+ 96AFAF7816C1E00A009DE44C /* shader_glsl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shader_glsl.h; sourceTree = ""; };
+ 96AFAF7916C1E00A009DE44C /* shader_hlsl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = shader_hlsl.c; sourceTree = ""; };
+ 96AFAF7A16C1E00A009DE44C /* shader_hlsl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shader_hlsl.h; sourceTree = ""; };
+ 96AFAF7B16C1E00A009DE44C /* state_tracker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = state_tracker.c; sourceTree = ""; };
+ 96AFAF7C16C1E00A009DE44C /* state_tracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = state_tracker.h; sourceTree = ""; };
+ 96AFAF7D16C1E00A009DE44C /* vg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vg.c; sourceTree = ""; };
+ 96AFAF7E16C1E00A009DE44C /* xvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xvideo.c; sourceTree = ""; };
+ 96AFAFC816C1FBC0009DE44C /* dinput.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dinput.c; sourceTree = ""; };
+ 96AFAFC916C1FBC0009DE44C /* input_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = input_common.c; sourceTree = ""; };
+ 96AFAFCA16C1FBC0009DE44C /* input_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = input_common.h; sourceTree = ""; };
+ 96AFAFCB16C1FBC0009DE44C /* linuxraw_input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = linuxraw_input.c; sourceTree = ""; };
+ 96AFAFCC16C1FBC0009DE44C /* linuxraw_joypad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = linuxraw_joypad.c; sourceTree = ""; };
+ 96AFAFCD16C1FBC0009DE44C /* null.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = null.c; sourceTree = ""; };
+ 96AFAFCE16C1FBC0009DE44C /* overlay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = overlay.c; sourceTree = ""; };
+ 96AFAFCF16C1FBC0009DE44C /* overlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = overlay.h; sourceTree = ""; };
+ 96AFAFD016C1FBC0009DE44C /* sdl_input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_input.c; sourceTree = ""; };
+ 96AFAFD116C1FBC0009DE44C /* sdl_joypad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdl_joypad.c; sourceTree = ""; };
+ 96AFAFD216C1FBC0009DE44C /* x11_input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x11_input.c; sourceTree = ""; };
+ 96AFAFDC16C2149A009DE44C /* ioseagl_ctx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ioseagl_ctx.m; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 96AFAE2216C1D4EA009DE44C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 96AFAF2216C1DF88009DE44C /* libz.dylib in Frameworks */,
+ 96AFAF1F16C1DF0A009DE44C /* OpenAL.framework in Frameworks */,
+ 96AFAE2A16C1D4EA009DE44C /* UIKit.framework in Frameworks */,
+ 96AFAE2C16C1D4EA009DE44C /* Foundation.framework in Frameworks */,
+ 96AFAE2E16C1D4EA009DE44C /* CoreGraphics.framework in Frameworks */,
+ 96AFAE3016C1D4EA009DE44C /* GLKit.framework in Frameworks */,
+ 96AFAE3216C1D4EA009DE44C /* OpenGLES.framework in Frameworks */,
+ 968A572B16C2A06800BE12F8 /* libretro.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 96AFAE1A16C1D4EA009DE44C = {
+ isa = PBXGroup;
+ children = (
+ 968A572816C2A06800BE12F8 /* test.img */,
+ 968A572916C2A06800BE12F8 /* libretro.a */,
+ 96AFAF2116C1DF88009DE44C /* libz.dylib */,
+ 96AFAF1E16C1DF0A009DE44C /* OpenAL.framework */,
+ 96AFAE9C16C1D976009DE44C /* core */,
+ 96AFAE3316C1D4EA009DE44C /* RetroArch */,
+ 96AFAE2816C1D4EA009DE44C /* Frameworks */,
+ 96AFAE2616C1D4EA009DE44C /* Products */,
+ );
+ sourceTree = "";
+ };
+ 96AFAE2616C1D4EA009DE44C /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAE2516C1D4EA009DE44C /* RetroArch.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 96AFAE2816C1D4EA009DE44C /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAE2916C1D4EA009DE44C /* UIKit.framework */,
+ 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */,
+ 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */,
+ 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */,
+ 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 96AFAE3316C1D4EA009DE44C /* RetroArch */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAE3C16C1D4EA009DE44C /* AppDelegate.h */,
+ 96AFAE3D16C1D4EA009DE44C /* AppDelegate.m */,
+ 96AFAE4916C1D4EA009DE44C /* ViewController.h */,
+ 96AFAE4C16C1D4EA009DE44C /* ViewController_iPhone.xib */,
+ 96AFAE4F16C1D4EA009DE44C /* ViewController_iPad.xib */,
+ 96AFAE3416C1D4EA009DE44C /* Supporting Files */,
+ );
+ path = RetroArch;
+ sourceTree = "";
+ };
+ 96AFAE3416C1D4EA009DE44C /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAE3516C1D4EA009DE44C /* RetroArch-Info.plist */,
+ 96AFAE3616C1D4EA009DE44C /* InfoPlist.strings */,
+ 96AFAE3916C1D4EA009DE44C /* main.mm */,
+ 96AFAE3B16C1D4EA009DE44C /* RetroArch-Prefix.pch */,
+ 96AFAE3F16C1D4EA009DE44C /* Default.png */,
+ 96AFAE4116C1D4EA009DE44C /* Default@2x.png */,
+ 96AFAE4316C1D4EA009DE44C /* Default-568h@2x.png */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 96AFAE9C16C1D976009DE44C /* core */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAFC716C1FBB3009DE44C /* input */,
+ 96AFAF3116C1E00A009DE44C /* gfx */,
+ 96AFAF2316C1DFC8009DE44C /* compat */,
+ 96AFAEE516C1DC73009DE44C /* audio */,
+ 96AFAEE016C1DBDB009DE44C /* conf */,
+ 96AFAE9D16C1D9A9009DE44C /* autosave.c */,
+ 96AFAE9E16C1D9A9009DE44C /* autosave.h */,
+ 96AFAE9F16C1D9A9009DE44C /* boolean.h */,
+ 96AFAEA016C1D9A9009DE44C /* cheats.c */,
+ 96AFAEA116C1D9A9009DE44C /* cheats.h */,
+ 96AFAEA216C1D9A9009DE44C /* command.c */,
+ 96AFAEA316C1D9A9009DE44C /* command.h */,
+ 96AFAEA416C1D9A9009DE44C /* config.def.h */,
+ 96AFAEA516C1D9A9009DE44C /* config.features.h */,
+ 96AFAEA616C1D9A9009DE44C /* driver_funcs.h */,
+ 96AFAEA716C1D9A9009DE44C /* driver.c */,
+ 96AFAEA816C1D9A9009DE44C /* driver.h */,
+ 96AFAEA916C1D9A9009DE44C /* dynamic.c */,
+ 96AFAEAA16C1D9A9009DE44C /* dynamic.h */,
+ 96AFAEAB16C1D9A9009DE44C /* fifo_buffer.c */,
+ 96AFAEAC16C1D9A9009DE44C /* fifo_buffer.h */,
+ 96AFAEAD16C1D9A9009DE44C /* file_extract.c */,
+ 96AFAEAE16C1D9A9009DE44C /* file_extract.h */,
+ 96AFAEAF16C1D9A9009DE44C /* file_path.c */,
+ 96AFAEB016C1D9A9009DE44C /* file.c */,
+ 96AFAEB116C1D9A9009DE44C /* file.h */,
+ 96AFAEB216C1D9A9009DE44C /* general.h */,
+ 96AFAEB316C1D9A9009DE44C /* hash.c */,
+ 96AFAEB416C1D9A9009DE44C /* hash.h */,
+ 96AFAEB516C1D9A9009DE44C /* libretro.h */,
+ 96AFAEB616C1D9A9009DE44C /* message.c */,
+ 96AFAEB716C1D9A9009DE44C /* message.h */,
+ 96AFAEB816C1D9A9009DE44C /* movie.c */,
+ 96AFAEB916C1D9A9009DE44C /* movie.h */,
+ 96AFAEBA16C1D9A9009DE44C /* netplay_compat.h */,
+ 96AFAEBB16C1D9A9009DE44C /* netplay.c */,
+ 96AFAEBC16C1D9A9009DE44C /* netplay.h */,
+ 96AFAEBD16C1D9A9009DE44C /* patch.c */,
+ 96AFAEBE16C1D9A9009DE44C /* patch.h */,
+ 96AFAEBF16C1D9A9009DE44C /* performance.c */,
+ 96AFAEC016C1D9A9009DE44C /* performance.h */,
+ 96AFAEC116C1D9A9009DE44C /* retroarch_logger.h */,
+ 96AFAEC216C1D9A9009DE44C /* retroarch.c */,
+ 96AFAEC316C1D9A9009DE44C /* rewind.c */,
+ 96AFAEC416C1D9A9009DE44C /* rewind.h */,
+ 96AFAEC516C1D9A9009DE44C /* screenshot.c */,
+ 96AFAEC616C1D9A9009DE44C /* screenshot.h */,
+ 96AFAEC716C1D9A9009DE44C /* settings.c */,
+ 96AFAEC816C1D9A9009DE44C /* thread.c */,
+ 96AFAEC916C1D9A9009DE44C /* thread.h */,
+ );
+ name = core;
+ sourceTree = "";
+ };
+ 96AFAEE016C1DBDB009DE44C /* conf */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAEE116C1DBDB009DE44C /* config_file.c */,
+ 96AFAEE216C1DBDB009DE44C /* config_file.h */,
+ 96AFAEE316C1DBDB009DE44C /* config_file_macros.h */,
+ );
+ name = conf;
+ path = ../conf;
+ sourceTree = "";
+ };
+ 96AFAEE516C1DC73009DE44C /* audio */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAEE616C1DC73009DE44C /* alsa.c */,
+ 96AFAEE716C1DC73009DE44C /* alsathread.c */,
+ 96AFAEE816C1DC73009DE44C /* coreaudio.c */,
+ 96AFAEE916C1DC73009DE44C /* dsound.c */,
+ 96AFAEEA16C1DC73009DE44C /* ext */,
+ 96AFAEEC16C1DC73009DE44C /* hermite.c */,
+ 96AFAEED16C1DC73009DE44C /* jack.c */,
+ 96AFAEEE16C1DC73009DE44C /* null.c */,
+ 96AFAEEF16C1DC73009DE44C /* openal.c */,
+ 96AFAEF016C1DC73009DE44C /* opensl.c */,
+ 96AFAEF116C1DC73009DE44C /* oss.c */,
+ 96AFAEF216C1DC73009DE44C /* pulse.c */,
+ 96AFAEF316C1DC73009DE44C /* resampler.h */,
+ 96AFAEF416C1DC73009DE44C /* roar.c */,
+ 96AFAEF516C1DC73009DE44C /* rsound.c */,
+ 96AFAEF616C1DC73009DE44C /* sdl_audio.c */,
+ 96AFAEF716C1DC73009DE44C /* sinc.c */,
+ 96AFAEF816C1DC73009DE44C /* sinc_neon.S */,
+ 96AFAEF916C1DC73009DE44C /* test */,
+ 96AFAEFD16C1DC73009DE44C /* utils.c */,
+ 96AFAEFE16C1DC73009DE44C /* utils.h */,
+ 96AFAEFF16C1DC73009DE44C /* utils_neon.S */,
+ 96AFAF0016C1DC73009DE44C /* xaudio-c */,
+ 96AFAF0416C1DC73009DE44C /* xaudio.c */,
+ );
+ name = audio;
+ path = ../audio;
+ sourceTree = "";
+ };
+ 96AFAEEA16C1DC73009DE44C /* ext */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAEEB16C1DC73009DE44C /* rarch_dsp.h */,
+ );
+ path = ext;
+ sourceTree = "";
+ };
+ 96AFAEF916C1DC73009DE44C /* test */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAEFA16C1DC73009DE44C /* main.c */,
+ 96AFAEFB16C1DC73009DE44C /* Makefile */,
+ 96AFAEFC16C1DC73009DE44C /* snr.c */,
+ );
+ path = test;
+ sourceTree = "";
+ };
+ 96AFAF0016C1DC73009DE44C /* xaudio-c */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF0116C1DC73009DE44C /* xaudio-c.cpp */,
+ 96AFAF0216C1DC73009DE44C /* xaudio-c.h */,
+ 96AFAF0316C1DC73009DE44C /* xaudio.h */,
+ );
+ path = "xaudio-c";
+ sourceTree = "";
+ };
+ 96AFAF2316C1DFC8009DE44C /* compat */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF2416C1DFC8009DE44C /* compat.c */,
+ 96AFAF2516C1DFC8009DE44C /* getopt_rarch.h */,
+ 96AFAF2616C1DFC8009DE44C /* posix_string.h */,
+ 96AFAF2716C1DFC8009DE44C /* rxml */,
+ 96AFAF2C16C1DFC8009DE44C /* strl.h */,
+ );
+ name = compat;
+ path = ../compat;
+ sourceTree = "";
+ };
+ 96AFAF2716C1DFC8009DE44C /* rxml */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF2816C1DFC8009DE44C /* Makefile */,
+ 96AFAF2916C1DFC8009DE44C /* rxml.c */,
+ 96AFAF2A16C1DFC8009DE44C /* rxml.h */,
+ 96AFAF2B16C1DFC8009DE44C /* rxml_test.c */,
+ );
+ path = rxml;
+ sourceTree = "";
+ };
+ 96AFAF3116C1E00A009DE44C /* gfx */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF3216C1E00A009DE44C /* context */,
+ 96AFAF3E16C1E00A009DE44C /* d3d9 */,
+ 96AFAF4416C1E00A009DE44C /* fonts */,
+ 96AFAF5416C1E00A009DE44C /* gfx_common.c */,
+ 96AFAF5516C1E00A009DE44C /* gfx_common.h */,
+ 96AFAF5616C1E00A009DE44C /* gfx_context.c */,
+ 96AFAF5716C1E00A009DE44C /* gfx_context.h */,
+ 96AFAF5816C1E00A009DE44C /* gl.c */,
+ 96AFAF5916C1E00A009DE44C /* gl_common.h */,
+ 96AFAF5A16C1E00A009DE44C /* image.c */,
+ 96AFAF5B16C1E00A009DE44C /* image.h */,
+ 96AFAF5C16C1E00A009DE44C /* math */,
+ 96AFAF6116C1E00A009DE44C /* null.c */,
+ 96AFAF6216C1E00A009DE44C /* py_state */,
+ 96AFAF6516C1E00A009DE44C /* rpng */,
+ 96AFAF6A16C1E00A009DE44C /* scaler */,
+ 96AFAF7316C1E00A009DE44C /* sdl_gfx.c */,
+ 96AFAF7416C1E00A009DE44C /* shader_cg.c */,
+ 96AFAF7516C1E00A009DE44C /* shader_cg.h */,
+ 96AFAF7616C1E00A009DE44C /* shader_common.h */,
+ 96AFAF7716C1E00A009DE44C /* shader_glsl.c */,
+ 96AFAF7816C1E00A009DE44C /* shader_glsl.h */,
+ 96AFAF7916C1E00A009DE44C /* shader_hlsl.c */,
+ 96AFAF7A16C1E00A009DE44C /* shader_hlsl.h */,
+ 96AFAF7B16C1E00A009DE44C /* state_tracker.c */,
+ 96AFAF7C16C1E00A009DE44C /* state_tracker.h */,
+ 96AFAF7D16C1E00A009DE44C /* vg.c */,
+ 96AFAF7E16C1E00A009DE44C /* xvideo.c */,
+ );
+ name = gfx;
+ path = ../gfx;
+ sourceTree = "";
+ };
+ 96AFAF3216C1E00A009DE44C /* context */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAFDC16C2149A009DE44C /* ioseagl_ctx.m */,
+ 96AFAF3316C1E00A009DE44C /* androidegl_ctx.c */,
+ 96AFAF3416C1E00A009DE44C /* drm_egl_ctx.c */,
+ 96AFAF3516C1E00A009DE44C /* glx_ctx.c */,
+ 96AFAF3616C1E00A009DE44C /* ps3_ctx.c */,
+ 96AFAF3716C1E00A009DE44C /* sdl_ctx.c */,
+ 96AFAF3816C1E00A009DE44C /* vc_egl_ctx.c */,
+ 96AFAF3916C1E00A009DE44C /* wgl_ctx.c */,
+ 96AFAF3A16C1E00A009DE44C /* x11_common.c */,
+ 96AFAF3B16C1E00A009DE44C /* x11_common.h */,
+ 96AFAF3C16C1E00A009DE44C /* xdk_ctx.c */,
+ 96AFAF3D16C1E00A009DE44C /* xegl_ctx.c */,
+ );
+ path = context;
+ sourceTree = "";
+ };
+ 96AFAF3E16C1E00A009DE44C /* d3d9 */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF3F16C1E00A009DE44C /* config_file.hpp */,
+ 96AFAF4016C1E00A009DE44C /* d3d9.cpp */,
+ 96AFAF4116C1E00A009DE44C /* d3d9.hpp */,
+ 96AFAF4216C1E00A009DE44C /* render_chain.cpp */,
+ 96AFAF4316C1E00A009DE44C /* render_chain.hpp */,
+ );
+ path = d3d9;
+ sourceTree = "";
+ };
+ 96AFAF4416C1E00A009DE44C /* fonts */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF4516C1E00A009DE44C /* bitmap.bin */,
+ 96AFAF4616C1E00A009DE44C /* bitmap.bmp */,
+ 96AFAF4716C1E00A009DE44C /* bitmap.h */,
+ 96AFAF4816C1E00A009DE44C /* bitmapfont.c */,
+ 96AFAF4916C1E00A009DE44C /* d3d_font.c */,
+ 96AFAF4A16C1E00A009DE44C /* d3d_font.h */,
+ 96AFAF4B16C1E00A009DE44C /* fonts.c */,
+ 96AFAF4C16C1E00A009DE44C /* fonts.h */,
+ 96AFAF4D16C1E00A009DE44C /* freetype.c */,
+ 96AFAF4E16C1E00A009DE44C /* gl_font.c */,
+ 96AFAF4F16C1E00A009DE44C /* gl_font.h */,
+ 96AFAF5016C1E00A009DE44C /* gl_raster_font.c */,
+ 96AFAF5116C1E00A009DE44C /* ps_libdbgfont.c */,
+ 96AFAF5216C1E00A009DE44C /* xdk1_xfonts.c */,
+ 96AFAF5316C1E00A009DE44C /* xdk360_fonts.cpp */,
+ );
+ path = fonts;
+ sourceTree = "";
+ };
+ 96AFAF5C16C1E00A009DE44C /* math */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF5D16C1E00A009DE44C /* matrix.c */,
+ 96AFAF5E16C1E00A009DE44C /* matrix.h */,
+ 96AFAF5F16C1E00A009DE44C /* matrix_3x3.c */,
+ 96AFAF6016C1E00A009DE44C /* matrix_3x3.h */,
+ );
+ path = math;
+ sourceTree = "";
+ };
+ 96AFAF6216C1E00A009DE44C /* py_state */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF6316C1E00A009DE44C /* py_state.c */,
+ 96AFAF6416C1E00A009DE44C /* py_state.h */,
+ );
+ path = py_state;
+ sourceTree = "";
+ };
+ 96AFAF6516C1E00A009DE44C /* rpng */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF6616C1E00A009DE44C /* Makefile */,
+ 96AFAF6716C1E00A009DE44C /* rpng.c */,
+ 96AFAF6816C1E00A009DE44C /* rpng.h */,
+ 96AFAF6916C1E00A009DE44C /* rpng_test.c */,
+ );
+ path = rpng;
+ sourceTree = "";
+ };
+ 96AFAF6A16C1E00A009DE44C /* scaler */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAF6B16C1E00A009DE44C /* filter.c */,
+ 96AFAF6C16C1E00A009DE44C /* filter.h */,
+ 96AFAF6D16C1E00A009DE44C /* pixconv.c */,
+ 96AFAF6E16C1E00A009DE44C /* pixconv.h */,
+ 96AFAF6F16C1E00A009DE44C /* scaler.c */,
+ 96AFAF7016C1E00A009DE44C /* scaler.h */,
+ 96AFAF7116C1E00A009DE44C /* scaler_int.c */,
+ 96AFAF7216C1E00A009DE44C /* scaler_int.h */,
+ );
+ path = scaler;
+ sourceTree = "";
+ };
+ 96AFAFC716C1FBB3009DE44C /* input */ = {
+ isa = PBXGroup;
+ children = (
+ 96AFAFC816C1FBC0009DE44C /* dinput.c */,
+ 96AFAFC916C1FBC0009DE44C /* input_common.c */,
+ 96AFAFCA16C1FBC0009DE44C /* input_common.h */,
+ 96AFAFCB16C1FBC0009DE44C /* linuxraw_input.c */,
+ 96AFAFCC16C1FBC0009DE44C /* linuxraw_joypad.c */,
+ 96AFAFCD16C1FBC0009DE44C /* null.c */,
+ 96AFAFCE16C1FBC0009DE44C /* overlay.c */,
+ 96AFAFCF16C1FBC0009DE44C /* overlay.h */,
+ 96AFAFD016C1FBC0009DE44C /* sdl_input.c */,
+ 96AFAFD116C1FBC0009DE44C /* sdl_joypad.c */,
+ 96AFAFD216C1FBC0009DE44C /* x11_input.c */,
+ );
+ name = input;
+ path = ../input;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 96AFAE2416C1D4EA009DE44C /* RetroArch */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 96AFAE5416C1D4EA009DE44C /* Build configuration list for PBXNativeTarget "RetroArch" */;
+ buildPhases = (
+ 96AFAE2116C1D4EA009DE44C /* Sources */,
+ 96AFAE2216C1D4EA009DE44C /* Frameworks */,
+ 96AFAE2316C1D4EA009DE44C /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = RetroArch;
+ productName = RetroArch;
+ productReference = 96AFAE2516C1D4EA009DE44C /* RetroArch.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 96AFAE1C16C1D4EA009DE44C /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0450;
+ ORGANIZATIONNAME = RetroArch;
+ };
+ buildConfigurationList = 96AFAE1F16C1D4EA009DE44C /* Build configuration list for PBXProject "RetroArch" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 96AFAE1A16C1D4EA009DE44C;
+ productRefGroup = 96AFAE2616C1D4EA009DE44C /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 96AFAE2416C1D4EA009DE44C /* RetroArch */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 96AFAE2316C1D4EA009DE44C /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 96AFAE3816C1D4EA009DE44C /* InfoPlist.strings in Resources */,
+ 96AFAE4016C1D4EA009DE44C /* Default.png in Resources */,
+ 96AFAE4216C1D4EA009DE44C /* Default@2x.png in Resources */,
+ 96AFAE4416C1D4EA009DE44C /* Default-568h@2x.png in Resources */,
+ 96AFAE4E16C1D4EA009DE44C /* ViewController_iPhone.xib in Resources */,
+ 96AFAE5116C1D4EA009DE44C /* ViewController_iPad.xib in Resources */,
+ 968A572A16C2A06800BE12F8 /* test.img in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 96AFAE2116C1D4EA009DE44C /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 96AFAE3A16C1D4EA009DE44C /* main.mm in Sources */,
+ 96AFAE3E16C1D4EA009DE44C /* AppDelegate.m in Sources */,
+ 96AFAECA16C1D9A9009DE44C /* autosave.c in Sources */,
+ 96AFAECB16C1D9A9009DE44C /* cheats.c in Sources */,
+ 96AFAECC16C1D9A9009DE44C /* command.c in Sources */,
+ 96AFAECD16C1D9A9009DE44C /* driver.c in Sources */,
+ 96AFAECE16C1D9A9009DE44C /* dynamic.c in Sources */,
+ 96AFAECF16C1D9A9009DE44C /* fifo_buffer.c in Sources */,
+ 96AFAED016C1D9A9009DE44C /* file_extract.c in Sources */,
+ 96AFAED116C1D9A9009DE44C /* file_path.c in Sources */,
+ 96AFAED216C1D9A9009DE44C /* file.c in Sources */,
+ 96AFAED316C1D9A9009DE44C /* hash.c in Sources */,
+ 96AFAED416C1D9A9009DE44C /* message.c in Sources */,
+ 96AFAED516C1D9A9009DE44C /* movie.c in Sources */,
+ 96AFAED716C1D9A9009DE44C /* patch.c in Sources */,
+ 96AFAED816C1D9A9009DE44C /* performance.c in Sources */,
+ 96AFAED916C1D9A9009DE44C /* retroarch.c in Sources */,
+ 96AFAEDA16C1D9A9009DE44C /* rewind.c in Sources */,
+ 96AFAEDB16C1D9A9009DE44C /* screenshot.c in Sources */,
+ 96AFAEDC16C1D9A9009DE44C /* settings.c in Sources */,
+ 96AFAEDD16C1D9A9009DE44C /* thread.c in Sources */,
+ 96AFAEE416C1DBDB009DE44C /* config_file.c in Sources */,
+ 96AFAF0B16C1DC73009DE44C /* null.c in Sources */,
+ 96AFAF1816C1DC73009DE44C /* utils.c in Sources */,
+ 96AFAF2016C1DF3A009DE44C /* openal.c in Sources */,
+ 96AFAF2D16C1DFC8009DE44C /* compat.c in Sources */,
+ 96AFAF2F16C1DFC8009DE44C /* rxml.c in Sources */,
+ 96AFAF8D16C1E00A009DE44C /* bitmapfont.c in Sources */,
+ 96AFAF8F16C1E00A009DE44C /* fonts.c in Sources */,
+ 96AFAF9116C1E00A009DE44C /* gl_font.c in Sources */,
+ 96AFAF9216C1E00A009DE44C /* gl_raster_font.c in Sources */,
+ 96AFAF9616C1E00A009DE44C /* gfx_common.c in Sources */,
+ 96AFAF9716C1E00A009DE44C /* gfx_context.c in Sources */,
+ 96AFAF9816C1E00A009DE44C /* gl.c in Sources */,
+ 96AFAF9916C1E00A009DE44C /* image.c in Sources */,
+ 96AFAF9A16C1E00A009DE44C /* matrix.c in Sources */,
+ 96AFAF9B16C1E00A009DE44C /* matrix_3x3.c in Sources */,
+ 96AFAF9C16C1E00A009DE44C /* null.c in Sources */,
+ 96AFAF9F16C1E00A009DE44C /* rpng.c in Sources */,
+ 96AFAFA116C1E00A009DE44C /* filter.c in Sources */,
+ 96AFAFA216C1E00A009DE44C /* pixconv.c in Sources */,
+ 96AFAFA316C1E00A009DE44C /* scaler.c in Sources */,
+ 96AFAFA416C1E00A009DE44C /* scaler_int.c in Sources */,
+ 96AFAFA716C1E00A009DE44C /* shader_glsl.c in Sources */,
+ 96AFAFAC16C1E279009DE44C /* state_tracker.c in Sources */,
+ 96AFAFAD16C1EEE9009DE44C /* sinc.c in Sources */,
+ 96AFAFD416C1FBC0009DE44C /* input_common.c in Sources */,
+ 96AFAFD716C1FBC0009DE44C /* null.c in Sources */,
+ 96AFAFDD16C2149A009DE44C /* ioseagl_ctx.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 96AFAE3616C1D4EA009DE44C /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 96AFAE3716C1D4EA009DE44C /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "";
+ };
+ 96AFAE4C16C1D4EA009DE44C /* ViewController_iPhone.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 96AFAE4D16C1D4EA009DE44C /* en */,
+ );
+ name = ViewController_iPhone.xib;
+ sourceTree = "";
+ };
+ 96AFAE4F16C1D4EA009DE44C /* ViewController_iPad.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 96AFAE5016C1D4EA009DE44C /* en */,
+ );
+ name = ViewController_iPad.xib;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 96AFAE5216C1D4EA009DE44C /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = ../;
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_CFLAGS = (
+ "-DHAVE_GRIFFIN",
+ "-DIOS",
+ "-DHAVE_DYNAMIC",
+ "-DHAVE_OPENGL",
+ "-DHAVE_FBO",
+ "-DHAVE_OPENGLES",
+ "-DHAVE_VID_CONTEXT",
+ "-DHAVE_OPENGLES2",
+ "-DHAVE_GLSL",
+ "-DINLINE=inline",
+ "-DLSB_FIRST",
+ "-DHAVE_THREAD",
+ "-D__LIBRETRO__",
+ "-DRARCH_PERFORMANCE_MODE",
+ "-DPACKAGE_VERSION=\\\"1.0\\\"",
+ "-std=gnu99",
+ );
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 96AFAE5316C1D4EA009DE44C /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = ../;
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ OTHER_CFLAGS = (
+ "-DNS_BLOCK_ASSERTIONS=1",
+ "-DNDEBUG",
+ "-DHAVE_GRIFFIN",
+ "-DIOS",
+ "-DHAVE_DYNAMIC",
+ "-DHAVE_OPENGL",
+ "-DHAVE_FBO",
+ "-DHAVE_OPENGLES",
+ "-DHAVE_VID_CONTEXT",
+ "-DHAVE_OPENGLES2",
+ "-DHAVE_GLSL",
+ "-DINLINE=inline",
+ "-DLSB_FIRST",
+ "-DHAVE_THREAD",
+ "-D__LIBRETRO__",
+ "-DRARCH_PERFORMANCE_MODE",
+ "-DPACKAGE_VERSION=\\\"1.0\\\"",
+ "-std=gnu99",
+ );
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 96AFAE5516C1D4EA009DE44C /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LIBRARY = "libstdc++";
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "RetroArch/RetroArch-Prefix.pch";
+ INFOPLIST_FILE = "RetroArch/RetroArch-Info.plist";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_CFLAGS = (
+ "-DHAVE_RARCH_MAIN_WRAP",
+ "-DIOS",
+ "-DHAVE_OPENGL",
+ "-DHAVE_FBO",
+ "-DHAVE_OPENGLES",
+ "-DHAVE_VID_CONTEXT",
+ "-DHAVE_OPENGLES2",
+ "-DHAVE_GLSL",
+ "-DINLINE=inline",
+ "-DLSB_FIRST",
+ "-DHAVE_THREAD",
+ "-D__LIBRETRO__",
+ "-DRARCH_PERFORMANCE_MODE",
+ "-DPACKAGE_VERSION=\\\"1.0\\\"",
+ "-DHAVE_AL",
+ "-DHAVE_NULLINPUT",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 96AFAE5616C1D4EA009DE44C /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_CXX_LIBRARY = "libstdc++";
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "RetroArch/RetroArch-Prefix.pch";
+ INFOPLIST_FILE = "RetroArch/RetroArch-Info.plist";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_CFLAGS = (
+ "-DNS_BLOCK_ASSERTIONS=1",
+ "-DNDEBUG",
+ "-DHAVE_RARCH_MAIN_WRAP",
+ "-DIOS",
+ "-DHAVE_OPENGL",
+ "-DHAVE_OPENGLES",
+ "-DHAVE_VID_CONTEXT",
+ "-DHAVE_OPENGLES2",
+ "-DHAVE_GLSL",
+ "-DINLINE=inline",
+ "-DLSB_FIRST",
+ "-DHAVE_THREAD",
+ "-D__LIBRETRO__",
+ "-DRARCH_PERFORMANCE_MODE",
+ "-DPACKAGE_VERSION=\\\"1.0\\\"",
+ "-DHAVE_AL",
+ "-DHAVE_NULLINPUT",
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 96AFAE1F16C1D4EA009DE44C /* Build configuration list for PBXProject "RetroArch" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 96AFAE5216C1D4EA009DE44C /* Debug */,
+ 96AFAE5316C1D4EA009DE44C /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 96AFAE5416C1D4EA009DE44C /* Build configuration list for PBXNativeTarget "RetroArch" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 96AFAE5516C1D4EA009DE44C /* Debug */,
+ 96AFAE5616C1D4EA009DE44C /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 96AFAE1C16C1D4EA009DE44C /* Project object */;
+}
diff --git a/ios/RetroArch.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/RetroArch.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000000..6bce578a7f
--- /dev/null
+++ b/ios/RetroArch.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ios/RetroArch/AppDelegate.h b/ios/RetroArch/AppDelegate.h
new file mode 100644
index 0000000000..afcb44d684
--- /dev/null
+++ b/ios/RetroArch/AppDelegate.h
@@ -0,0 +1,18 @@
+//
+// AppDelegate.h
+// RetroArch
+//
+// Copyright (c) 2013 RetroArch. All rights reserved.
+//
+
+#import
+
+@class ViewController;
+
+@interface AppDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow *window;
+
+@property (strong, nonatomic) ViewController *viewController;
+
+@end
diff --git a/ios/RetroArch/AppDelegate.m b/ios/RetroArch/AppDelegate.m
new file mode 100644
index 0000000000..001cd70399
--- /dev/null
+++ b/ios/RetroArch/AppDelegate.m
@@ -0,0 +1,70 @@
+//
+// AppDelegate.m
+// RetroArch
+//
+// Copyright (c) 2013 RetroArch. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+#import "ViewController.h"
+
+#include "general.h"
+
+@implementation AppDelegate
+
+- (void)runMain:(id)sender
+{
+ const char* filename = [[[NSBundle mainBundle] pathForResource:@"test" ofType:@"img"] UTF8String];
+
+ const char* argv[] = {"retroarch", filename, 0};
+ if(rarch_main_init(2, argv) == 0)
+ {
+ while(rarch_main_iterate());
+ }
+}
+
+
+- (void)applicationDidFinishLaunching:(UIApplication *)application
+{
+ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+ // Override point for customization after application launch.
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
+ } else {
+ self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
+ }
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+
+ [self performSelector:@selector(runMain:) withObject:nil afterDelay:0.2f];
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
diff --git a/ios/RetroArch/Default-568h@2x.png b/ios/RetroArch/Default-568h@2x.png
new file mode 100644
index 0000000000..0891b7aabf
Binary files /dev/null and b/ios/RetroArch/Default-568h@2x.png differ
diff --git a/ios/RetroArch/Default.png b/ios/RetroArch/Default.png
new file mode 100644
index 0000000000..4c8ca6f693
Binary files /dev/null and b/ios/RetroArch/Default.png differ
diff --git a/ios/RetroArch/Default@2x.png b/ios/RetroArch/Default@2x.png
new file mode 100644
index 0000000000..35b84cffeb
Binary files /dev/null and b/ios/RetroArch/Default@2x.png differ
diff --git a/ios/RetroArch/RetroArch-Info.plist b/ios/RetroArch/RetroArch-Info.plist
new file mode 100644
index 0000000000..858508d759
--- /dev/null
+++ b/ios/RetroArch/RetroArch-Info.plist
@@ -0,0 +1,47 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ ${PRODUCT_NAME}
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ libretro.${PRODUCT_NAME:rfc1034identifier}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0
+ LSRequiresIPhoneOS
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarHidden
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/ios/RetroArch/RetroArch-Prefix.pch b/ios/RetroArch/RetroArch-Prefix.pch
new file mode 100644
index 0000000000..7a94ed3c55
--- /dev/null
+++ b/ios/RetroArch/RetroArch-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'RetroArch' target in the 'RetroArch' project
+//
+
+#import
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import
+ #import
+#endif
diff --git a/ios/RetroArch/ViewController.h b/ios/RetroArch/ViewController.h
new file mode 100644
index 0000000000..77f2dfafb3
--- /dev/null
+++ b/ios/RetroArch/ViewController.h
@@ -0,0 +1,13 @@
+//
+// ViewController.h
+// RetroArch
+//
+// Copyright (c) 2013 RetroArch. All rights reserved.
+//
+
+#import
+#import
+
+@interface ViewController : UIViewController
+
+@end
diff --git a/ios/RetroArch/en.lproj/InfoPlist.strings b/ios/RetroArch/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..477b28ff8f
--- /dev/null
+++ b/ios/RetroArch/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/ios/RetroArch/en.lproj/ViewController_iPad.xib b/ios/RetroArch/en.lproj/ViewController_iPad.xib
new file mode 100644
index 0000000000..103cc68cb7
--- /dev/null
+++ b/ios/RetroArch/en.lproj/ViewController_iPad.xib
@@ -0,0 +1,112 @@
+
+
+
+ 1536
+ 12A206j
+ 2519
+ 1172.1
+ 613.00
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ GLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 3
+
+
+ 0
+ IBIPadFramework
+ YES
+ 3
+ YES
+ 1856
+
+
diff --git a/ios/RetroArch/en.lproj/ViewController_iPhone.xib b/ios/RetroArch/en.lproj/ViewController_iPhone.xib
new file mode 100644
index 0000000000..6b89ba8f0a
--- /dev/null
+++ b/ios/RetroArch/en.lproj/ViewController_iPhone.xib
@@ -0,0 +1,127 @@
+
+
+
+ 1536
+ 12A269
+ 2835
+ 1187
+ 624.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 1919
+
+
+ IBProxyObject
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 274
+ {320, 568}
+
+
+
+
+ 3
+ MQA
+
+ 2
+
+
+ NO
+
+ IBUIScreenMetrics
+
+ YES
+
+
+
+
+
+ {320, 568}
+ {568, 320}
+
+
+ IBCocoaTouchFramework
+ Retina 4 Full Screen
+ 2
+
+ IBCocoaTouchFramework
+
+
+
+
+
+
+ view
+
+
+
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+
+
+
+
+ ViewController
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ GLKView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 4
+
+
+ 0
+ IBCocoaTouchFramework
+ YES
+ 3
+ YES
+ 1919
+
+
diff --git a/ios/RetroArch/main.mm b/ios/RetroArch/main.mm
new file mode 100644
index 0000000000..5f122bee14
--- /dev/null
+++ b/ios/RetroArch/main.mm
@@ -0,0 +1,17 @@
+//
+// main.m
+// RetroArch
+//
+// Copyright (c) 2013 RetroArch. All rights reserved.
+//
+
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/retroarch.c b/retroarch.c
index 3c1dd6486c..58546bf090 100644
--- a/retroarch.c
+++ b/retroarch.c
@@ -45,7 +45,7 @@
#include "msvc/msvc_compat.h"
#endif
-#ifdef __APPLE__
+#if defined(__APPLE__) && !defined(IOS)
#include "SDL.h"
// OSX seems to really need -lSDLmain,
// so we include SDL.h here so it can hack our main.