From a37a19e40d88409d05131c729e5133cf0befccab Mon Sep 17 00:00:00 2001 From: meancoot Date: Wed, 6 Feb 2013 09:54:15 -0500 Subject: [PATCH] First revision of iOS port. Only tested on simulator thus far. --- gfx/context/ioseagl_ctx.m | 175 ++++ gfx/gfx_context.c | 3 + gfx/gfx_context.h | 1 + gfx/gl_common.h | 9 +- gfx/shader_glsl.c | 5 +- ios/RetroArch.xcodeproj/project.pbxproj | 987 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + ios/RetroArch/AppDelegate.h | 18 + ios/RetroArch/AppDelegate.m | 70 ++ ios/RetroArch/Default-568h@2x.png | Bin 0 -> 18594 bytes ios/RetroArch/Default.png | Bin 0 -> 6540 bytes ios/RetroArch/Default@2x.png | Bin 0 -> 16107 bytes ios/RetroArch/RetroArch-Info.plist | 47 + ios/RetroArch/RetroArch-Prefix.pch | 14 + ios/RetroArch/ViewController.h | 13 + ios/RetroArch/en.lproj/InfoPlist.strings | 2 + .../en.lproj/ViewController_iPad.xib | 112 ++ .../en.lproj/ViewController_iPhone.xib | 127 +++ ios/RetroArch/main.mm | 17 + retroarch.c | 2 +- 20 files changed, 1606 insertions(+), 3 deletions(-) create mode 100644 gfx/context/ioseagl_ctx.m create mode 100644 ios/RetroArch.xcodeproj/project.pbxproj create mode 100644 ios/RetroArch.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/RetroArch/AppDelegate.h create mode 100644 ios/RetroArch/AppDelegate.m create mode 100644 ios/RetroArch/Default-568h@2x.png create mode 100644 ios/RetroArch/Default.png create mode 100644 ios/RetroArch/Default@2x.png create mode 100644 ios/RetroArch/RetroArch-Info.plist create mode 100644 ios/RetroArch/RetroArch-Prefix.pch create mode 100644 ios/RetroArch/ViewController.h create mode 100644 ios/RetroArch/en.lproj/InfoPlist.strings create mode 100644 ios/RetroArch/en.lproj/ViewController_iPad.xib create mode 100644 ios/RetroArch/en.lproj/ViewController_iPhone.xib create mode 100644 ios/RetroArch/main.mm 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 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/ios/RetroArch/Default.png b/ios/RetroArch/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8ca6f693f96d511e9113c0eb59eec552354e42 GIT binary patch literal 6540 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ZD2OMlbkt;o0To@QwR5G2N13aCb6#|O#(=u~X z85k@CTSM>X-wqM6>&y>YB4)1;;ojbLbbV-W^iFB1wa3^zCog^LCAReC4K0-?R_2{6 zrP*)4+_uWUy3w5N52M3PW_}MFMP9a~>YLvVZ1D_k*IMQ2QT^fwzoOb(*3gH$%aYWC zkHmcab=va2<#X%jakpJ;<1@F;k__#bwtC&%^D0v(FBh9K&$sK+<}2RJS609D)17$w ztdQP8(eLM8Ka}m_IQ@3wyMKP)l=oM4-?`YS_*P?4V_ORLPxsj&7Ju#kH;>6^Kp?T7~ zl+q?{UOOqV==?+d{=)5s|M~T1mwtH@+Z^$G&eEO9JNP^AX@3jZ*J*!!>lc|1-W%fA z@AOQpXZ_Lt>rxFXrGp*zLPiW@uo_c7C{As>j zWeX)wi+LTp_)@KYZCX{j;H?|1yXT4DnlS(Fr8gyP5|uaX_gLvaW0ScZdnG7o+u{T6 zFI-%d{ls*WuCDa5UJ@|RXv&ejZe}*BMkiWY51&pnRPw(hlykSzvj6e%mYz-GdvzBD zF10?szF_~!jS=?2HyQuPCvARXAe}C}WP|yQ*>5~~=*Nxq8+HHW1~FMDRCP^TcacKuk$ z(U#REVv)D!PhJ*ecH-ELFUrfyV&*)Z)>UCOuS?yd^L@Afk>ihynYPc{^CRwu+JHX+#$@YsC4c|l0tGigsn@jy) zXD($Ouk>H+V(Mr6NQT0S9BFM~V6nkj;1OBOz`zY;a|<&v%$g$sEJPk;hD4M^`1)8S z=jZArrsOB3>Q&?x097+E*i={nnYpPYi3%0DIeEoa6}C!X6;?ntNLXJ<0j#7X+g2&U zH$cHTzbI9~RL@Y)NXd>%K|#T$C?(A*$i)q+9mum)$|xx*u+rBrFE7_CH`dE9O4m2E zw6xSWFw!?N(gmu}Ew0QfNvzP#D^`XW0yD=YwK%ybv!En1KTiQ3|)OBHVcpi zp&D%TL4k-AsNfg_g$9~9p}$+4Ynr|VULLgiakg&)DD)EWO!OHC@snXr}UI${nVUP zpr1>Mf#G6^ng~;pt%^&NvQm>vU@-wn)!_JWN=(;B61LIDR86%A1?G9U(@`={MPdPF zbOKdd`R1o&rd7HmmZaJl85kPr8kp-EnTHsfS{ayIfdU*&4N@e5WSomq6HD@oLh|!- z?7;Dr3*ssm=^5w&a}>G?yzvAH17L|`#|6|0E4}QvA~xC{V_*wu2^AHZU}H9f($4F$btFf{}TLQXUhF5fht1@YV$^ z9BUdFV+73^nIsvRXRM40U}6b7z_6}kHbY}i1LK(xT@6Mi?F5GKBfbp|ZU-3BR*6kv zXcRSQ(0-)mprD+wTr)o_4I;(%zOu)+jEgNB)_SXCVoSa}|F?cfwR!69+L=W3IX z!UiU`0@ph%94Rb33Cpq^IY*r_8XBW%V>G9XmK&p`=xCiXTEmXEH%41uqixaAmicH0 zVYIt6!aI*K%s=kP-v##6IXGZ2Cama>{@)81;C?K-P&M2k<0!GL}5+H~XTq*@SQi|Ft z2*0X`$`8S!qO#)xBeJRkf?;t189=ZB6Imw-h=`q;FP(2UpWZvmJ@=k-@45M(dtb7r zyVEiaLk$=Vw#>zu;st}j6Jf9=m1+nXCFe!$1PrEZ%5Ze_ba8YX_9-*rJujiLuQmJo&2v+Cxes}ec zU|qeux&7*yz#W=X_|wGQskL7*OHNjwFs@sEC+64Hb$Z(#H21Gh$Pe2WzOubdr6fzg z{l{!k%OD?N5Z7j33SoK?YdV6Scm>})U+MIQLNRgIvkZQEc^mP9XBPg%y|S$~Br|;N zk?-!-(Qqh_mQ|6WINQ{hHAjBRV#O#!FkAJ+oxy`L#f8V45*VvWMJFBB5m zG6vOLtDvgoDjHlSq-*h5xM56O>Jjau2f2IxKItIb@coX4XTyf$^{LZG&lI|D95wN1 z!fo0)q>WV7-V;q|A?HR!*bgozJw%j98-~gwBKVV0;=hZIF>7oJSr2YjOWO*rSxz#& z;KXnDrJVZp;Yduiy1-H%s$ZFz6Q=x@$V_B@Tqwl?>6e;EHt|MiK<(#hXQMuj@Jseeh&eN{FxsQ$iw>D1aX1HMMlUbh?Z zmhY4eHffn5&LUbL_}o8|$JYz&$WFiLWmEg0ZPX+;W>@CxQz-%{E5+P7dH9&ey_y$R z@Zzje>2B%z!i!7Brqi{t5Y)~5>vpqRs~2aXD8DVE8vKl=`k(`duI1-k@?!pJ^HA6S zS;3WpuhjQHyoC>X>Xf8gze%_8^#+^RTV>V9&YPAWMjd~%xpSg?ON?kK^X*Pb(o8jR zz;DmaOWMMr6=M~K?MFx4_xDkARTxLJ@W@ohAx z5RD0jGgk?QL@H`VubD2k4}?VtB8@g`%hHBA$2pJ(gK5g1HMNysXEF_BNu-p!&+Qa8_APgopHWnRgg=TZZF*sXWTMQPD z!Q(Au5|+F;7M~`tWbsU98~NA{h0Y7%GB|t&n}w9OOABU4^X*V5xuN;rY(M#ouuqm) zyt!e?28fY!FgP?8GvBsMl_aM^UUVKiGFsleFN?t^<46kO#pF-cX0;sIOb(aM z)^jQgX^Z6pKA9mC@N)_aiHj9HxD2|?A@Y9B_h}(*v3%ek8CXc1Qy^jFPF&zrMa1OZ zSVaF{&ZY|(|H0XE&X>-XQz1`=fF2n@VKC_|h3jlKVM&-jmyMavllcYr`6LVtfq2ou zd+8zkkCB+2)rxq0Lkq_&Ad@g(O8;pAm96>tu79?81T@Z<;gm^3ZtPG-SR94Mr<3tm z9NrR3u*4I5aMlo(09g@8m_;%Rf+XiSa_KZao9n}7N0JrsV#;5Ucr+F*TTzQ8{%f3O zeIUy?WDS|-$LvMc@Z7320)tr}bfIka5hx9H;8H|%our=C+Do0CSFRWue14o5#r8v2 zw=|&r4*eMX%lgCV(ka?*j%H^UuP4LmBC(ON`)&7>NF-|PDRU{-7o`CU0HNbd&c~))@yl9IKu_ zXA+A-!khpP_yx=f#qt2_0ptmgBf4gF!{Y)MW6R$cC1d7@$Yb?+_j zYwfE^5_e`vhT zX=u3r>4$fsxP&apbm@Rcbyuc2T=giqZiMo9@9=oua6#YH0hO-1ak9^rJTPMM qY4Yr5Cu^v99p{E9VdroUHKlRW;M8#BJ^AOQE?e9wSHJo8(7yq;BYKSh literal 0 HcmV?d00001 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 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1856 + + + IBProxyObject + IBUIView + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + + IBFilesOwner + IBIPadFramework + + + IBFirstResponder + IBIPadFramework + + + + 274 + {{0, 20}, {768, 1004}} + + + + + 3 + MQA + + 2 + + + + 2 + + IBIPadFramework + + + + + + + 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.