From 55ecfbd0b8b5da435fc134f6a456517410cbb5c2 Mon Sep 17 00:00:00 2001 From: Joseph Mattello Date: Wed, 13 Oct 2021 21:49:31 -0400 Subject: [PATCH] Add flycast core Signed-off-by: Joseph Mattello # Conflicts: # .gitmodules --- .gitmodules | 3 + Cores/Flycast/BuildFlags.xcconfig | 25 + .../PVFlycast.xcodeproj/project.pbxproj | 4661 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcschemes/PVReicast-iOS.xcscheme | 81 + .../xcschemes/PVReicast-tvOS.xcscheme | 95 + .../xcschemes/reicast-iOS.xcscheme | 67 + .../xcschemes/reicast-tvOS.xcscheme | 67 + Cores/Flycast/PVFlycast/Core.plist | 20 + Cores/Flycast/PVFlycast/Info.plist | 24 + Cores/Flycast/PVFlycast/PVFlycast.h | 19 + Cores/Flycast/PVFlycast/emu.cfg | 37 + .../PVFlycastCore/Audio/PVFlycast+Audio.h | 35 + .../PVFlycastCore/Audio/PVFlycast+Audio.mm | 467 ++ .../Audio/PVFlycast+AudioTypes.h | 30 + .../PVFlycastCore/Audio/PVFlycast+CoreAudio.h | 48 + .../Audio/PVFlycast+CoreAudio.mm | 495 ++ .../PVFlycastCore/Core/PVFlycastCore+Audio.h | 17 + .../PVFlycastCore/Core/PVFlycastCore+Audio.m | 25 + .../Core/PVFlycastCore+Controls.h | 29 + .../Core/PVFlycastCore+Controls.mm | 188 + .../PVFlycastCore/Core/PVFlycastCore+Saves.h | 17 + .../PVFlycastCore/Core/PVFlycastCore+Saves.m | 37 + .../PVFlycastCore/Core/PVFlycastCore+Video.h | 19 + .../PVFlycastCore/Core/PVFlycastCore+Video.m | 82 + .../PVFlycastCore/Core/PVFlycastCore.h | 41 + .../PVFlycastCore/Core/PVFlycastCore.mm | 378 ++ Cores/Flycast/PVFlycastCore/PVFlycast.mm | 166 + Cores/Flycast/flycast | 1 + Provenance.xcodeproj/project.pbxproj | 12 + .../contents.xcworkspacedata | 3 + 32 files changed, 7204 insertions(+) create mode 100644 Cores/Flycast/BuildFlags.xcconfig create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/project.pbxproj create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-iOS.xcscheme create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-tvOS.xcscheme create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-iOS.xcscheme create mode 100644 Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-tvOS.xcscheme create mode 100644 Cores/Flycast/PVFlycast/Core.plist create mode 100644 Cores/Flycast/PVFlycast/Info.plist create mode 100644 Cores/Flycast/PVFlycast/PVFlycast.h create mode 100755 Cores/Flycast/PVFlycast/emu.cfg create mode 100644 Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.h create mode 100644 Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.mm create mode 100644 Cores/Flycast/PVFlycastCore/Audio/PVFlycast+AudioTypes.h create mode 100644 Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.h create mode 100644 Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.mm create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.h create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.m create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.h create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.mm create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.h create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.m create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.h create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.m create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.h create mode 100644 Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.mm create mode 100644 Cores/Flycast/PVFlycastCore/PVFlycast.mm create mode 160000 Cores/Flycast/flycast diff --git a/.gitmodules b/.gitmodules index c5bfef33ff..6f5e3ac8b4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "Cores/TGBDual/tgbdual-emulator"] path = Cores/TGBDual/tgbdual-emulator url = https://github.com/libretro/tgbdual-libretro.git +[submodule "Cores/Flycast/flycast"] + path = Cores/Flycast/flycast + url = https://github.com/flyinghead/flycast.git diff --git a/Cores/Flycast/BuildFlags.xcconfig b/Cores/Flycast/BuildFlags.xcconfig new file mode 100644 index 0000000000..2cfa53553d --- /dev/null +++ b/Cores/Flycast/BuildFlags.xcconfig @@ -0,0 +1,25 @@ +// +// BuildFlags.xcconfig +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// +// + +// All +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) REICAST_VERSION=15.0 TARGET_NO_WEBUI=1 TARGET_NO_REC=1 GLES=1 NO_ASM=1 +OTHER_CFLAGS = $(inherited) -mno-thumb -mfpu=neon -fno-operator-names -fno-rtti -ffast-math -ftree-vectorize -fno-strict-aliasing -frename-registers -fno-rtti -fpermissive -fno-operator-names -fsingle-precision-constant + + // Device +GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(inherited) TARGET_IPHONE=1 +OTHER_CFLAGS[sdk=iphoneos*] = $(inherited) -fomit-frame-pointer + +// Simulator +GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) TARGET_IPHONE_SIMULATOR=1 + +// tvOS Device +GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvos*] = $(inherited) TARGET_IPHONE=1 +OTHER_CFLAGS[sdk=appletvos*] = $(inherited) -fomit-frame-pointer + +// tvOS Simulator +GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvsimulator*] = $(inherited) TARGET_IPHONE_SIMULATOR=1 diff --git a/Cores/Flycast/PVFlycast.xcodeproj/project.pbxproj b/Cores/Flycast/PVFlycast.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..861297da2f --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/project.pbxproj @@ -0,0 +1,4661 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + B30178DC207C908E0051B93D /* zip_source_filep.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426E20783CBC008DBAB4 /* zip_source_filep.c */; }; + B30178DD207C908E0051B93D /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941DD20783CBC008DBAB4 /* md5.cpp */; }; + B30178DE207C908F0051B93D /* aica.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941AA20783CBB008DBAB4 /* aica.cpp */; }; + B30178DF207C908F0051B93D /* zip_file_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426020783CBC008DBAB4 /* zip_file_error_get.c */; }; + B30178E0207C908F0051B93D /* zip_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427020783CBC008DBAB4 /* zip_strerror.c */; }; + B30178E1207C908F0051B93D /* TexCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942FC20783CBC008DBAB4 /* TexCache.cpp */; }; + B30178E2207C908F0051B93D /* chdr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424520783CBC008DBAB4 /* chdr.cpp */; }; + B30178E3207C908F0051B93D /* zip_set_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426820783CBC008DBAB4 /* zip_set_archive_comment.c */; }; + B30178E4207C908F0051B93D /* zip_fread.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427520783CBC008DBAB4 /* zip_fread.c */; }; + B30178E5207C908F0051B93D /* spg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417B20783CBB008DBAB4 /* spg.cpp */; }; + B30178E6207C908F0051B93D /* zip_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427620783CBC008DBAB4 /* zip_rename.c */; }; + B30178E7207C908F0051B93D /* zip_get_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427220783CBC008DBAB4 /* zip_get_archive_flag.c */; }; + B30178E8207C908F0051B93D /* holly_intc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413620783CBB008DBAB4 /* holly_intc.cpp */; }; + B30178E9207C908F0051B93D /* reios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432B20783CBD008DBAB4 /* reios.cpp */; }; + B30178EA207C908F0051B93D /* zip_add_dir.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426620783CBC008DBAB4 /* zip_add_dir.c */; }; + B30178EB207C908F0051B93D /* arm_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419C20783CBB008DBAB4 /* arm_mem.cpp */; }; + B30178EC207C908F0051B93D /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F420783CBC008DBAB4 /* pngread.c */; }; + B30178ED207C908F0051B93D /* zip_error_get_sys_type.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426720783CBC008DBAB4 /* zip_error_get_sys_type.c */; }; + B30178EE207C908F0051B93D /* audiobackend_pulseaudio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429420783CBC008DBAB4 /* audiobackend_pulseaudio.cpp */; }; + B30178EF207C908F0051B93D /* zip_source_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426B20783CBC008DBAB4 /* zip_source_free.c */; }; + B30178F0207C908F0051B93D /* pvr_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418720783CBB008DBAB4 /* pvr_regs.cpp */; }; + B30178F1207C908F0051B93D /* ta_ctx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417620783CBB008DBAB4 /* ta_ctx.cpp */; }; + B30178F2207C908F0051B93D /* gdrom_response.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417020783CBB008DBAB4 /* gdrom_response.cpp */; }; + B30178F3207C908F0051B93D /* sb_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413420783CBB008DBAB4 /* sb_mem.cpp */; }; + B30178F4207C908F0051B93D /* gltex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F320783CBC008DBAB4 /* gltex.cpp */; }; + B30178F5207C908F0051B93D /* zip_unchange.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426220783CBC008DBAB4 /* zip_unchange.c */; }; + B30178F6207C908F0051B93D /* ImgReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B920783CBC008DBAB4 /* ImgReader.cpp */; }; + B30178F7207C908F0051B93D /* zip_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428620783CBC008DBAB4 /* zip_free.c */; }; + B30178F8207C908F0051B93D /* zip_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427D20783CBC008DBAB4 /* zip_stat.c */; }; + B30178F9207C908F0051B93D /* _vmem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B220783CBB008DBAB4 /* _vmem.cpp */; }; + B30178FA207C908F0051B93D /* elf32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424F20783CBC008DBAB4 /* elf32.cpp */; }; + B30178FB207C908F0051B93D /* bsc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416020783CBB008DBAB4 /* bsc.cpp */; }; + B30178FC207C908F0051B93D /* zip_stat_init.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428920783CBC008DBAB4 /* zip_stat_init.c */; }; + B30178FD207C908F0051B93D /* sh4_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415020783CBB008DBAB4 /* sh4_mem.cpp */; }; + B30178FE207C908F0051B93D /* zip_source_file.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425E20783CBC008DBAB4 /* zip_source_file.c */; }; + B30178FF207C908F0051B93D /* zip_fclose.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428420783CBC008DBAB4 /* zip_fclose.c */; }; + B3017900207C908F0051B93D /* gdi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B620783CBC008DBAB4 /* gdi.cpp */; }; + B3017901207C908F0051B93D /* dmac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416520783CBB008DBAB4 /* dmac.cpp */; }; + B3017902207C908F0051B93D /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FE20783CBC008DBAB4 /* pngset.c */; }; + B3017903207C908F0051B93D /* gles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F520783CBC008DBAB4 /* gles.cpp */; }; + B3017904207C908F0051B93D /* zip_get_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425D20783CBC008DBAB4 /* zip_get_archive_comment.c */; }; + B3017905207C908F0051B93D /* sh4_core_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415920783CBB008DBAB4 /* sh4_core_regs.cpp */; }; + B3017906207C908F0051B93D /* sgc_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941AF20783CBB008DBAB4 /* sgc_if.cpp */; }; + B3017907207C908F0051B93D /* chd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941BF20783CBC008DBAB4 /* chd.cpp */; }; + B3017908207C908F0051B93D /* zip_unchange_all.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428B20783CBC008DBAB4 /* zip_unchange_all.c */; }; + B3017909207C908F0051B93D /* zip_close.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426520783CBC008DBAB4 /* zip_close.c */; }; + B301790A207C908F0051B93D /* zip_err_str.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426D20783CBC008DBAB4 /* zip_err_str.c */; }; + B301790B207C908F0051B93D /* rec_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C920783CBC008DBAB4 /* rec_arm.cpp */; }; + B301790C207C908F0051B93D /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E520783CBC008DBAB4 /* pngrio.c */; }; + B301790D207C908F0051B93D /* gdrom_hle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432F20783CBD008DBAB4 /* gdrom_hle.cpp */; }; + B301790E207C908F0051B93D /* zip_dirent.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428520783CBC008DBAB4 /* zip_dirent.c */; }; + B301790F207C908F0051B93D /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B720783CBC008DBAB4 /* common.cpp */; }; + B3017910207C908F0051B93D /* ccn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416120783CBB008DBAB4 /* ccn.cpp */; }; + B3017911207C908F0051B93D /* zip_entry_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428120783CBC008DBAB4 /* zip_entry_free.c */; }; + B3017912207C908F0051B93D /* zip_filerange_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425720783CBC008DBAB4 /* zip_filerange_crc.c */; }; + B3017913207C908F0051B93D /* maple_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419520783CBB008DBAB4 /* maple_helper.cpp */; }; + B3017914207C908F0051B93D /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E920783CBC008DBAB4 /* pngtrans.c */; }; + B3017915207C908F0051B93D /* pvr_sb_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417E20783CBB008DBAB4 /* pvr_sb_regs.cpp */; }; + B3017916207C908F0051B93D /* nixprof.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D520783CBC008DBAB4 /* nixprof.cpp */; }; + B3017917207C908F0051B93D /* sh4_opcode_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414D20783CBB008DBAB4 /* sh4_opcode_list.cpp */; }; + B3017918207C908F0051B93D /* zip_error.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426F20783CBC008DBAB4 /* zip_error.c */; }; + B3017919207C908F0051B93D /* zip_set_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427C20783CBC008DBAB4 /* zip_set_file_comment.c */; }; + B301791A207C908F0051B93D /* zip_fopen_index.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425A20783CBC008DBAB4 /* zip_fopen_index.c */; }; + B301791B207C908F0051B93D /* ta_vtx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418520783CBB008DBAB4 /* ta_vtx.cpp */; }; + B301791C207C908F0051B93D /* zip_get_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427E20783CBC008DBAB4 /* zip_get_file_comment.c */; }; + B301791D207C908F0051B93D /* zip_unchange_data.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427420783CBC008DBAB4 /* zip_unchange_data.c */; }; + B301791E207C908F0051B93D /* zip_error_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428C20783CBC008DBAB4 /* zip_error_strerror.c */; }; + B301791F207C908F0051B93D /* zip_unchange_archive.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426A20783CBC008DBAB4 /* zip_unchange_archive.c */; }; + B3017920207C908F0051B93D /* filter_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = B33941F620783CBC008DBAB4 /* filter_neon.S */; }; + B3017921207C908F0051B93D /* zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426320783CBC008DBAB4 /* zip_new.c */; }; + B3017922207C908F0051B93D /* zip_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428320783CBC008DBAB4 /* zip_error_get.c */; }; + B3017923207C908F0051B93D /* maple_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419720783CBB008DBAB4 /* maple_cfg.cpp */; }; + B3017924207C908F0051B93D /* zip_source_function.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427920783CBC008DBAB4 /* zip_source_function.c */; }; + B3017925207C908F0051B93D /* shil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413C20783CBB008DBAB4 /* shil.cpp */; }; + B3017926207C908F0051B93D /* sb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413520783CBB008DBAB4 /* sb.cpp */; }; + B3017927207C908F0051B93D /* maple_devs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419A20783CBB008DBAB4 /* maple_devs.cpp */; }; + B3017928207C908F0051B93D /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FB20783CBC008DBAB4 /* png.c */; }; + B3017929207C908F0051B93D /* audiobackend_oss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429F20783CBC008DBAB4 /* audiobackend_oss.cpp */; }; + B301792A207C908F0051B93D /* zip_fopen.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428A20783CBC008DBAB4 /* zip_fopen.c */; }; + B301792B207C908F0051B93D /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F920783CBC008DBAB4 /* pngmem.c */; }; + B301792C207C908F0051B93D /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FD20783CBC008DBAB4 /* pngrutil.c */; }; + B301792D207C908F0051B93D /* blockmanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414420783CBB008DBAB4 /* blockmanager.cpp */; }; + B301792E207C908F0051B93D /* zip_file_get_offset.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426120783CBC008DBAB4 /* zip_file_get_offset.c */; }; + B301792F207C908F0051B93D /* ta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418920783CBB008DBAB4 /* ta.cpp */; }; + B3017930207C908F0051B93D /* rec_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339430120783CBC008DBAB4 /* rec_cpp.cpp */; }; + B3017931207C908F0051B93D /* sh4_sched.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414C20783CBB008DBAB4 /* sh4_sched.cpp */; }; + B3017932207C908F0051B93D /* zip_stat_index.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427820783CBC008DBAB4 /* zip_stat_index.c */; }; + B3017933207C908F0051B93D /* cl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C420783CBC008DBAB4 /* cl.cpp */; }; + B3017934207C908F0051B93D /* zip_name_locate.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426920783CBC008DBAB4 /* zip_name_locate.c */; }; + B3017935207C908F0051B93D /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F220783CBC008DBAB4 /* pngpread.c */; }; + B3017936207C908F0051B93D /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416720783CBB008DBAB4 /* rtc.cpp */; }; + B3017937207C908F0051B93D /* ini.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C320783CBC008DBAB4 /* ini.cpp */; }; + B3017938207C908F0051B93D /* zip_error_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428820783CBC008DBAB4 /* zip_error_to_str.c */; }; + B3017939207C908F0051B93D /* elf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424C20783CBC008DBAB4 /* elf.cpp */; }; + B301793A207C908F0051B93D /* zip_get_name.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425820783CBC008DBAB4 /* zip_get_name.c */; }; + B301793B207C908F0051B93D /* gldraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F220783CBC008DBAB4 /* gldraw.cpp */; }; + B301793C207C908F0051B93D /* sb_dma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413720783CBB008DBAB4 /* sb_dma.cpp */; }; + B301793D207C908F0051B93D /* cdi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B820783CBC008DBAB4 /* cdi.cpp */; }; + B301793E207C908F0051B93D /* drkPvr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418320783CBB008DBAB4 /* drkPvr.cpp */; }; + B301793F207C908F0051B93D /* sh4_fpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415520783CBB008DBAB4 /* sh4_fpu.cpp */; }; + B3017940207C908F0051B93D /* ubc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415C20783CBB008DBAB4 /* ubc.cpp */; }; + B3017941207C908F0051B93D /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C120783CBC008DBAB4 /* cfg.cpp */; }; + B3017942207C908F0051B93D /* stdclass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941DA20783CBC008DBAB4 /* stdclass.cpp */; }; + B3017943207C908F0051B93D /* pvr_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417720783CBB008DBAB4 /* pvr_mem.cpp */; }; + B3017944207C908F0051B93D /* sh4_interrupts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415620783CBB008DBAB4 /* sh4_interrupts.cpp */; }; + B3017945207C908F0051B93D /* vbaARM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A020783CBB008DBAB4 /* vbaARM.cpp */; }; + B3017946207C908F0051B93D /* ioctl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941BC20783CBC008DBAB4 /* ioctl.cpp */; }; + B3017947207C908F0051B93D /* cpg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416B20783CBB008DBAB4 /* cpg.cpp */; }; + B3017948207C908F0051B93D /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FA20783CBC008DBAB4 /* pngget.c */; }; + B3017949207C908F0051B93D /* cdipsr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339425120783CBC008DBAB4 /* cdipsr.cpp */; }; + B301794A207C908F0051B93D /* audiobackend_alsa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942A520783CBC008DBAB4 /* audiobackend_alsa.cpp */; }; + B301794B207C908F0051B93D /* virt_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A320783CBB008DBAB4 /* virt_arm.cpp */; }; + B301794C207C908F0051B93D /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F720783CBC008DBAB4 /* filter_neon_intrinsics.c */; }; + B301794D207C908F0051B93D /* aica_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A920783CBB008DBAB4 /* aica_mem.cpp */; }; + B301794E207C908F0051B93D /* serial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416620783CBB008DBAB4 /* serial.cpp */; }; + B301794F207C908F0051B93D /* zip_set_name.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425F20783CBC008DBAB4 /* zip_set_name.c */; }; + B3017950207C908F0051B93D /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D020783CBC008DBAB4 /* common.cpp */; }; + B3017951207C908F0051B93D /* dsp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A820783CBB008DBAB4 /* dsp.cpp */; }; + B3017952207C908F0051B93D /* zip_memdup.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425420783CBC008DBAB4 /* zip_memdup.c */; }; + B3017953207C908F0051B93D /* elf64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424B20783CBC008DBAB4 /* elf64.cpp */; }; + B3017954207C908F0051B93D /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EF20783CBC008DBAB4 /* pngwtran.c */; }; + B3017955207C908F0051B93D /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E620783CBC008DBAB4 /* pngerror.c */; }; + B3017956207C908F0051B93D /* context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D220783CBC008DBAB4 /* context.cpp */; }; + B3017957207C908F0051B93D /* sh4_opcodes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415220783CBB008DBAB4 /* sh4_opcodes.cpp */; }; + B3017958207C908F0051B93D /* gdromv3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417120783CBB008DBAB4 /* gdromv3.cpp */; }; + B3017959207C908F0051B93D /* zip_delete.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427B20783CBC008DBAB4 /* zip_delete.c */; }; + B301795A207C908F0051B93D /* sha1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941E020783CBC008DBAB4 /* sha1.cpp */; }; + B301795B207C908F0051B93D /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414320783CBB008DBAB4 /* decoder.cpp */; }; + B301795C207C908F0051B93D /* mmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416920783CBB008DBAB4 /* mmu.cpp */; }; + B301795D207C908F0051B93D /* zip_source_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427720783CBC008DBAB4 /* zip_source_zip.c */; }; + B301795E207C908F0051B93D /* maple_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419420783CBB008DBAB4 /* maple_if.cpp */; }; + B301795F207C908F0051B93D /* coreio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339423D20783CBC008DBAB4 /* coreio.cpp */; }; + B3017960207C908F0051B93D /* zip_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427A20783CBC008DBAB4 /* zip_replace.c */; }; + B3017961207C908F0051B93D /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FC20783CBC008DBAB4 /* pngrtran.c */; }; + B3017962207C908F0051B93D /* zip_get_num_files.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426C20783CBC008DBAB4 /* zip_get_num_files.c */; }; + B3017963207C908F0051B93D /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429C20783CBC008DBAB4 /* audiostream.cpp */; }; + B3017964207C908F0051B93D /* zip_source_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425B20783CBC008DBAB4 /* zip_source_buffer.c */; }; + B3017965207C908F0051B93D /* arm7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419F20783CBB008DBAB4 /* arm7.cpp */; }; + B3017966207C908F0051B93D /* intc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415E20783CBB008DBAB4 /* intc.cpp */; }; + B3017967207C908F0051B93D /* sh4_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416C20783CBB008DBAB4 /* sh4_rom.cpp */; }; + B3017968207C908F0051B93D /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EE20783CBC008DBAB4 /* pngwutil.c */; }; + B3017969207C908F0051B93D /* zip_set_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427320783CBC008DBAB4 /* zip_set_archive_flag.c */; }; + B301796A207C908F0051B93D /* aica_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A620783CBB008DBAB4 /* aica_if.cpp */; }; + B301796B207C908F0051B93D /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F820783CBC008DBAB4 /* arm_init.c */; }; + B301796C207C908F0051B93D /* nullDC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C720783CBC008DBAB4 /* nullDC.cpp */; }; + B301796D207C908F0051B93D /* sh4_mmr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415A20783CBB008DBAB4 /* sh4_mmr.cpp */; }; + B301796E207C908F0051B93D /* reios_elf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432A20783CBD008DBAB4 /* reios_elf.cpp */; }; + B301796F207C908F0051B93D /* mkstemp.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427F20783CBC008DBAB4 /* mkstemp.c */; }; + B3017970207C908F0051B93D /* zip_file_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425920783CBC008DBAB4 /* zip_file_strerror.c */; }; + B3017971207C908F0051B93D /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EC20783CBC008DBAB4 /* pngwrite.c */; }; + B3017972207C908F0051B93D /* zip_add.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425620783CBC008DBAB4 /* zip_add.c */; }; + B3017973207C908F0051B93D /* Renderer_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418420783CBB008DBAB4 /* Renderer_if.cpp */; }; + B3017974207C908F0051B93D /* tmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416820783CBB008DBAB4 /* tmu.cpp */; }; + B3017975207C908F0051B93D /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E720783CBC008DBAB4 /* pngwio.c */; }; + B3017977207C908F0051B93D /* sh4_interpreter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415320783CBB008DBAB4 /* sh4_interpreter.cpp */; }; + B3017978207C908F0051B93D /* profiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942EC20783CBC008DBAB4 /* profiler.cpp */; }; + B3017979207C908F0051B93D /* zip_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425C20783CBC008DBAB4 /* zip_error_clear.c */; }; + B301797A207C908F0051B93D /* descrambl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432920783CBD008DBAB4 /* descrambl.cpp */; }; + B301797B207C908F0051B93D /* zip_file_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428720783CBC008DBAB4 /* zip_file_error_clear.c */; }; + B301797C207C908F0051B93D /* zip_entry_new.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427120783CBC008DBAB4 /* zip_entry_new.c */; }; + B301797D207C908F0051B93D /* zip_open.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428220783CBC008DBAB4 /* zip_open.c */; }; + B301797E207C908F0051B93D /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414220783CBB008DBAB4 /* driver.cpp */; }; + B301797F207C909E0051B93D /* libflycast-iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B30178D3207C901D0051B93D /* libflycast-iOS.a */; }; + B316B4E721926FE500693472 /* emu.cfg in Resources */ = {isa = PBXBuildFile; fileRef = B316B4E621926FE500693472 /* emu.cfg */; }; + B316B4E821926FE500693472 /* emu.cfg in Resources */ = {isa = PBXBuildFile; fileRef = B316B4E621926FE500693472 /* emu.cfg */; }; + B324C31C2191964F009F4EDC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B324C31B2191964F009F4EDC /* AVFoundation.framework */; }; + B33350262078619C0036A448 /* Core.plist in Resources */ = {isa = PBXBuildFile; fileRef = B3C7622720783510009950E4 /* Core.plist */; }; + B333502720786BD90036A448 /* Shader.vsh in Resources */ = {isa = PBXBuildFile; fileRef = B339438820783CC0008DBAB4 /* Shader.vsh */; }; + B333502820786BEB0036A448 /* Shader.fsh in Resources */ = {isa = PBXBuildFile; fileRef = B339438720783CC0008DBAB4 /* Shader.fsh */; }; + B339468920783F41008DBAB4 /* libpthread.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B339468820783F41008DBAB4 /* libpthread.tbd */; }; + B339468B20783F48008DBAB4 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B339468A20783F48008DBAB4 /* libz.tbd */; }; + B3447E9C218B826F00557ACE /* PVFlycast+Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447E9A218B826F00557ACE /* PVFlycast+Audio.h */; }; + B3447E9D218B826F00557ACE /* PVFlycast+Audio.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447E9B218B826F00557ACE /* PVFlycast+Audio.mm */; }; + B3447E9E218B857A00557ACE /* PVFlycastCore+Controls.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447E97218B809300557ACE /* PVFlycastCore+Controls.mm */; }; + B3447E9F218B858100557ACE /* PVFlycastCore+Controls.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447E96218B809200557ACE /* PVFlycastCore+Controls.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3447EA1218B881000557ACE /* PVFlycast.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447EA0218B881000557ACE /* PVFlycast.mm */; }; + B3447EA3218BBFBC00557ACE /* PVFlycast+AudioTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA2218BBFB700557ACE /* PVFlycast+AudioTypes.h */; }; + B3447EA5218BC36B00557ACE /* PVFlycast+CoreAudio.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447EA4218BC36B00557ACE /* PVFlycast+CoreAudio.mm */; }; + B3447EA7218BC3A600557ACE /* PVFlycast+CoreAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA6218BC3A600557ACE /* PVFlycast+CoreAudio.h */; }; + B3447EAB218BC59D00557ACE /* PVFlycastCore+Saves.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA9218BC59D00557ACE /* PVFlycastCore+Saves.h */; }; + B3447EAC218BC59D00557ACE /* PVFlycastCore+Saves.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EAA218BC59D00557ACE /* PVFlycastCore+Saves.m */; }; + B3447EAF218BC5C500557ACE /* PVFlycastCore+Video.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EAD218BC5C500557ACE /* PVFlycastCore+Video.h */; }; + B3447EB0218BC5C500557ACE /* PVFlycastCore+Video.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EAE218BC5C500557ACE /* PVFlycastCore+Video.m */; }; + B3447EB3218BC69700557ACE /* PVFlycastCore+Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EB1218BC69700557ACE /* PVFlycastCore+Audio.h */; }; + B3447EB4218BC69700557ACE /* PVFlycastCore+Audio.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EB2218BC69700557ACE /* PVFlycastCore+Audio.m */; }; + B3447EC2218BEDD200557ACE /* PVFlycast+Audio.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447E9B218B826F00557ACE /* PVFlycast+Audio.mm */; }; + B3447EC3218BEDD200557ACE /* PVFlycastCore+Controls.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447E97218B809300557ACE /* PVFlycastCore+Controls.mm */; }; + B3447EC4218BEDD200557ACE /* PVFlycastCore.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3C76224207833DE009950E4 /* PVFlycastCore.mm */; }; + B3447EC5218BEDD200557ACE /* PVFlycastCore+Saves.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EAA218BC59D00557ACE /* PVFlycastCore+Saves.m */; }; + B3447EC6218BEDD200557ACE /* PVFlycast.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447EA0218B881000557ACE /* PVFlycast.mm */; }; + B3447EC7218BEDD200557ACE /* PVFlycastCore+Video.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EAE218BC5C500557ACE /* PVFlycastCore+Video.m */; }; + B3447EC8218BEDD200557ACE /* PVFlycast+CoreAudio.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3447EA4218BC36B00557ACE /* PVFlycast+CoreAudio.mm */; }; + B3447EC9218BEDD200557ACE /* PVFlycastCore+Audio.m in Sources */ = {isa = PBXBuildFile; fileRef = B3447EB2218BC69700557ACE /* PVFlycastCore+Audio.m */; }; + B3447ECD218BEDD200557ACE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF4207CD2740040709A /* CoreAudio.framework */; }; + B3447ECE218BEDD200557ACE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF1207CD2670040709A /* AudioToolbox.framework */; }; + B3447ED0218BEDD200557ACE /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B339468A20783F48008DBAB4 /* libz.tbd */; }; + B3447ED1218BEDD200557ACE /* libpthread.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B339468820783F41008DBAB4 /* libpthread.tbd */; }; + B3447ED3218BEDD200557ACE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C7621E2078325C009950E4 /* Foundation.framework */; }; + B3447ED4218BEDD200557ACE /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C7621C20783243009950E4 /* OpenGLES.framework */; }; + B3447ED6218BEDD200557ACE /* PVFlycast.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C7621320783162009950E4 /* PVFlycast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3447ED7218BEDD200557ACE /* PVFlycastCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C76223207833DE009950E4 /* PVFlycastCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3447ED8218BEDD200557ACE /* PVFlycast+Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447E9A218B826F00557ACE /* PVFlycast+Audio.h */; }; + B3447ED9218BEDD200557ACE /* PVFlycastCore+Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EB1218BC69700557ACE /* PVFlycastCore+Audio.h */; }; + B3447EDA218BEDD200557ACE /* PVFlycastCore+Saves.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA9218BC59D00557ACE /* PVFlycastCore+Saves.h */; }; + B3447EDB218BEDD200557ACE /* PVFlycast+AudioTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA2218BBFB700557ACE /* PVFlycast+AudioTypes.h */; }; + B3447EDC218BEDD200557ACE /* PVFlycast+CoreAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EA6218BC3A600557ACE /* PVFlycast+CoreAudio.h */; }; + B3447EDD218BEDD200557ACE /* PVFlycastCore+Controls.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447E96218B809200557ACE /* PVFlycastCore+Controls.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3447EDE218BEDD200557ACE /* PVFlycastCore+Video.h in Headers */ = {isa = PBXBuildFile; fileRef = B3447EAD218BC5C500557ACE /* PVFlycastCore+Video.h */; }; + B3447EE0218BEDD200557ACE /* Shader.fsh in Resources */ = {isa = PBXBuildFile; fileRef = B339438720783CC0008DBAB4 /* Shader.fsh */; }; + B3447EE1218BEDD200557ACE /* Shader.vsh in Resources */ = {isa = PBXBuildFile; fileRef = B339438820783CC0008DBAB4 /* Shader.vsh */; }; + B3447EE2218BEDD200557ACE /* Core.plist in Resources */ = {isa = PBXBuildFile; fileRef = B3C7622720783510009950E4 /* Core.plist */; }; + B3447EEA218BEE3F00557ACE /* zip_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428620783CBC008DBAB4 /* zip_free.c */; }; + B3447EEB218BEE3F00557ACE /* holly_intc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413620783CBB008DBAB4 /* holly_intc.cpp */; }; + B3447EEC218BEE3F00557ACE /* zip_source_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426B20783CBC008DBAB4 /* zip_source_free.c */; }; + B3447EED218BEE3F00557ACE /* sh4_opcodes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415220783CBB008DBAB4 /* sh4_opcodes.cpp */; }; + B3447EEE218BEE3F00557ACE /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F220783CBC008DBAB4 /* pngpread.c */; }; + B3447EEF218BEE3F00557ACE /* bsc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416020783CBB008DBAB4 /* bsc.cpp */; }; + B3447EF0218BEE3F00557ACE /* reios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432B20783CBD008DBAB4 /* reios.cpp */; }; + B3447EF1218BEE3F00557ACE /* ubc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415C20783CBB008DBAB4 /* ubc.cpp */; }; + B3447EF2218BEE3F00557ACE /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414320783CBB008DBAB4 /* decoder.cpp */; }; + B3447EF3218BEE3F00557ACE /* zip_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425C20783CBC008DBAB4 /* zip_error_clear.c */; }; + B3447EF4218BEE3F00557ACE /* zip_dirent.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428520783CBC008DBAB4 /* zip_dirent.c */; }; + B3447EF5218BEE3F00557ACE /* reios_elf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432A20783CBD008DBAB4 /* reios_elf.cpp */; }; + B3447EF6218BEE3F00557ACE /* zip_stat_index.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427820783CBC008DBAB4 /* zip_stat_index.c */; }; + B3447EF7218BEE3F00557ACE /* zip_unchange.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426220783CBC008DBAB4 /* zip_unchange.c */; }; + B3447EF8218BEE3F00557ACE /* maple_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419720783CBB008DBAB4 /* maple_cfg.cpp */; }; + B3447EF9218BEE3F00557ACE /* sb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413520783CBB008DBAB4 /* sb.cpp */; }; + B3447EFA218BEE3F00557ACE /* dsp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A820783CBB008DBAB4 /* dsp.cpp */; }; + B3447EFB218BEE3F00557ACE /* nullDC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C720783CBC008DBAB4 /* nullDC.cpp */; }; + B3447EFC218BEE3F00557ACE /* shil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413C20783CBB008DBAB4 /* shil.cpp */; }; + B3447EFD218BEE3F00557ACE /* rec_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339430120783CBC008DBAB4 /* rec_cpp.cpp */; }; + B3447EFE218BEE3F00557ACE /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E620783CBC008DBAB4 /* pngerror.c */; }; + B3447EFF218BEE3F00557ACE /* stdclass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941DA20783CBC008DBAB4 /* stdclass.cpp */; }; + B3447F00218BEE3F00557ACE /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B720783CBC008DBAB4 /* common.cpp */; }; + B3447F01218BEE3F00557ACE /* maple_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419520783CBB008DBAB4 /* maple_helper.cpp */; }; + B3447F02218BEE3F00557ACE /* ioctl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941BC20783CBC008DBAB4 /* ioctl.cpp */; }; + B3447F03218BEE3F00557ACE /* virt_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A320783CBB008DBAB4 /* virt_arm.cpp */; }; + B3447F04218BEE3F00557ACE /* zip_unchange_all.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428B20783CBC008DBAB4 /* zip_unchange_all.c */; }; + B3447F05218BEE3F00557ACE /* zip_file_get_offset.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426120783CBC008DBAB4 /* zip_file_get_offset.c */; }; + B3447F06218BEE3F00557ACE /* pvr_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417720783CBB008DBAB4 /* pvr_mem.cpp */; }; + B3447F07218BEE3F00557ACE /* zip_error_get_sys_type.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426720783CBC008DBAB4 /* zip_error_get_sys_type.c */; }; + B3447F08218BEE3F00557ACE /* sh4_opcode_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414D20783CBB008DBAB4 /* sh4_opcode_list.cpp */; }; + B3447F09218BEE3F00557ACE /* zip_error.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426F20783CBC008DBAB4 /* zip_error.c */; }; + B3447F0A218BEE3F00557ACE /* drkPvr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418320783CBB008DBAB4 /* drkPvr.cpp */; }; + B3447F0B218BEE3F00557ACE /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941DD20783CBC008DBAB4 /* md5.cpp */; }; + B3447F0C218BEE3F00557ACE /* pvr_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418720783CBB008DBAB4 /* pvr_regs.cpp */; }; + B3447F0D218BEE3F00557ACE /* zip_stat_init.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428920783CBC008DBAB4 /* zip_stat_init.c */; }; + B3447F0E218BEE3F00557ACE /* zip_source_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427720783CBC008DBAB4 /* zip_source_zip.c */; }; + B3447F0F218BEE3F00557ACE /* sh4_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415020783CBB008DBAB4 /* sh4_mem.cpp */; }; + B3447F10218BEE3F00557ACE /* zip_entry_new.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427120783CBC008DBAB4 /* zip_entry_new.c */; }; + B3447F11218BEE3F00557ACE /* mkstemp.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427F20783CBC008DBAB4 /* mkstemp.c */; }; + B3447F12218BEE3F00557ACE /* zip_source_function.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427920783CBC008DBAB4 /* zip_source_function.c */; }; + B3447F13218BEE3F00557ACE /* gltex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F320783CBC008DBAB4 /* gltex.cpp */; }; + B3447F14218BEE3F00557ACE /* zip_unchange_archive.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426A20783CBC008DBAB4 /* zip_unchange_archive.c */; }; + B3447F15218BEE3F00557ACE /* profiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942EC20783CBC008DBAB4 /* profiler.cpp */; }; + B3447F16218BEE3F00557ACE /* cdipsr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339425120783CBC008DBAB4 /* cdipsr.cpp */; }; + B3447F17218BEE3F00557ACE /* audiobackend_pulseaudio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429420783CBC008DBAB4 /* audiobackend_pulseaudio.cpp */; }; + B3447F18218BEE3F00557ACE /* zip_entry_free.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428120783CBC008DBAB4 /* zip_entry_free.c */; }; + B3447F19218BEE3F00557ACE /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F820783CBC008DBAB4 /* arm_init.c */; }; + B3447F1A218BEE3F00557ACE /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F720783CBC008DBAB4 /* filter_neon_intrinsics.c */; }; + B3447F1B218BEE3F00557ACE /* zip_memdup.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425420783CBC008DBAB4 /* zip_memdup.c */; }; + B3447F1C218BEE3F00557ACE /* zip_filerange_crc.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425720783CBC008DBAB4 /* zip_filerange_crc.c */; }; + B3447F1D218BEE3F00557ACE /* zip_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427D20783CBC008DBAB4 /* zip_stat.c */; }; + B3447F1E218BEE3F00557ACE /* tmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416820783CBB008DBAB4 /* tmu.cpp */; }; + B3447F1F218BEE3F00557ACE /* maple_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419420783CBB008DBAB4 /* maple_if.cpp */; }; + B3447F20218BEE3F00557ACE /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EF20783CBC008DBAB4 /* pngwtran.c */; }; + B3447F21218BEE3F00557ACE /* chdr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424520783CBC008DBAB4 /* chdr.cpp */; }; + B3447F22218BEE3F00557ACE /* gdrom_hle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432F20783CBD008DBAB4 /* gdrom_hle.cpp */; }; + B3447F23218BEE3F00557ACE /* zip_source_file.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425E20783CBC008DBAB4 /* zip_source_file.c */; }; + B3447F24218BEE3F00557ACE /* zip_delete.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427B20783CBC008DBAB4 /* zip_delete.c */; }; + B3447F25218BEE3F00557ACE /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EC20783CBC008DBAB4 /* pngwrite.c */; }; + B3447F26218BEE3F00557ACE /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E720783CBC008DBAB4 /* pngwio.c */; }; + B3447F27218BEE3F00557ACE /* zip_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428320783CBC008DBAB4 /* zip_error_get.c */; }; + B3447F28218BEE3F00557ACE /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F420783CBC008DBAB4 /* pngread.c */; }; + B3447F29218BEE3F00557ACE /* ta_ctx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417620783CBB008DBAB4 /* ta_ctx.cpp */; }; + B3447F2A218BEE3F00557ACE /* Renderer_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418420783CBB008DBAB4 /* Renderer_if.cpp */; }; + B3447F2B218BEE3F00557ACE /* nixprof.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D520783CBC008DBAB4 /* nixprof.cpp */; }; + B3447F2C218BEE3F00557ACE /* coreio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339423D20783CBC008DBAB4 /* coreio.cpp */; }; + B3447F2D218BEE3F00557ACE /* zip_fclose.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428420783CBC008DBAB4 /* zip_fclose.c */; }; + B3447F2E218BEE3F00557ACE /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FC20783CBC008DBAB4 /* pngrtran.c */; }; + B3447F2F218BEE3F00557ACE /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941F920783CBC008DBAB4 /* pngmem.c */; }; + B3447F30218BEE3F00557ACE /* zip_get_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427220783CBC008DBAB4 /* zip_get_archive_flag.c */; }; + B3447F31218BEE3F00557ACE /* chd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941BF20783CBC008DBAB4 /* chd.cpp */; }; + B3447F32218BEE3F00557ACE /* serial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416620783CBB008DBAB4 /* serial.cpp */; }; + B3447F33218BEE3F00557ACE /* elf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424C20783CBC008DBAB4 /* elf.cpp */; }; + B3447F34218BEE3F00557ACE /* descrambl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339432920783CBD008DBAB4 /* descrambl.cpp */; }; + B3447F35218BEE3F00557ACE /* arm7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419F20783CBB008DBAB4 /* arm7.cpp */; }; + B3447F36218BEE3F00557ACE /* spg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417B20783CBB008DBAB4 /* spg.cpp */; }; + B3447F37218BEE3F00557ACE /* zip_file_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425920783CBC008DBAB4 /* zip_file_strerror.c */; }; + B3447F38218BEE3F00557ACE /* zip_add_dir.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426620783CBC008DBAB4 /* zip_add_dir.c */; }; + B3447F39218BEE3F00557ACE /* elf64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424B20783CBC008DBAB4 /* elf64.cpp */; }; + B3447F3A218BEE3F00557ACE /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C120783CBC008DBAB4 /* cfg.cpp */; }; + B3447F3B218BEE3F00557ACE /* gdromv3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417120783CBB008DBAB4 /* gdromv3.cpp */; }; + B3447F3C218BEE3F00557ACE /* dmac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416520783CBB008DBAB4 /* dmac.cpp */; }; + B3447F3D218BEE3F00557ACE /* zip_fopen_index.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425A20783CBC008DBAB4 /* zip_fopen_index.c */; }; + B3447F3E218BEE3F00557ACE /* cdi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B820783CBC008DBAB4 /* cdi.cpp */; }; + B3447F3F218BEE3F00557ACE /* sh4_mmr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415A20783CBB008DBAB4 /* sh4_mmr.cpp */; }; + B3447F40218BEE3F00557ACE /* zip_set_archive_flag.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427320783CBC008DBAB4 /* zip_set_archive_flag.c */; }; + B3447F41218BEE3F00557ACE /* _vmem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B220783CBB008DBAB4 /* _vmem.cpp */; }; + B3447F42218BEE3F00557ACE /* zip_get_name.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425820783CBC008DBAB4 /* zip_get_name.c */; }; + B3447F43218BEE3F00557ACE /* ccn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416120783CBB008DBAB4 /* ccn.cpp */; }; + B3447F44218BEE3F00557ACE /* blockmanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414420783CBB008DBAB4 /* blockmanager.cpp */; }; + B3447F45218BEE3F00557ACE /* aica_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A920783CBB008DBAB4 /* aica_mem.cpp */; }; + B3447F46218BEE3F00557ACE /* sb_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413420783CBB008DBAB4 /* sb_mem.cpp */; }; + B3447F47218BEE3F00557ACE /* sb_dma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339413720783CBB008DBAB4 /* sb_dma.cpp */; }; + B3447F48218BEE3F00557ACE /* zip_unchange_data.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427420783CBC008DBAB4 /* zip_unchange_data.c */; }; + B3447F49218BEE3F00557ACE /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E520783CBC008DBAB4 /* pngrio.c */; }; + B3447F4A218BEE3F00557ACE /* sh4_fpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415520783CBB008DBAB4 /* sh4_fpu.cpp */; }; + B3447F4B218BEE3F00557ACE /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941EE20783CBC008DBAB4 /* pngwutil.c */; }; + B3447F4C218BEE3F00557ACE /* zip_get_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427E20783CBC008DBAB4 /* zip_get_file_comment.c */; }; + B3447F4D218BEE3F00557ACE /* mmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416920783CBB008DBAB4 /* mmu.cpp */; }; + B3447F4E218BEE3F00557ACE /* zip_new.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426320783CBC008DBAB4 /* zip_new.c */; }; + B3447F4F218BEE3F00557ACE /* aica_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A620783CBB008DBAB4 /* aica_if.cpp */; }; + B3447F50218BEE3F00557ACE /* zip_source_filep.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426E20783CBC008DBAB4 /* zip_source_filep.c */; }; + B3447F51218BEE3F00557ACE /* sh4_interpreter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415320783CBB008DBAB4 /* sh4_interpreter.cpp */; }; + B3447F52218BEE3F00557ACE /* zip_file_error_get.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426020783CBC008DBAB4 /* zip_file_error_get.c */; }; + B3447F53218BEE3F00557ACE /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429C20783CBC008DBAB4 /* audiostream.cpp */; }; + B3447F54218BEE3F00557ACE /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941E920783CBC008DBAB4 /* pngtrans.c */; }; + B3447F55218BEE3F00557ACE /* elf32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339424F20783CBC008DBAB4 /* elf32.cpp */; }; + B3447F56218BEE3F00557ACE /* zip_add.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425620783CBC008DBAB4 /* zip_add.c */; }; + B3447F57218BEE3F00557ACE /* zip_error_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428820783CBC008DBAB4 /* zip_error_to_str.c */; }; + B3447F58218BEE3F00557ACE /* gldraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F220783CBC008DBAB4 /* gldraw.cpp */; }; + B3447F59218BEE3F00557ACE /* zip_set_name.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425F20783CBC008DBAB4 /* zip_set_name.c */; }; + B3447F5A218BEE3F00557ACE /* zip_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427020783CBC008DBAB4 /* zip_strerror.c */; }; + B3447F5B218BEE3F00557ACE /* zip_open.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428220783CBC008DBAB4 /* zip_open.c */; }; + B3447F5C218BEE3F00557ACE /* zip_fopen.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428A20783CBC008DBAB4 /* zip_fopen.c */; }; + B3447F5D218BEE3F00557ACE /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416720783CBB008DBAB4 /* rtc.cpp */; }; + B3447F5E218BEE3F00557ACE /* zip_get_num_files.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426C20783CBC008DBAB4 /* zip_get_num_files.c */; }; + B3447F5F218BEE3F00557ACE /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FD20783CBC008DBAB4 /* pngrutil.c */; }; + B3447F60218BEE3F00557ACE /* zip_error_strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428C20783CBC008DBAB4 /* zip_error_strerror.c */; }; + B3447F61218BEE3F00557ACE /* zip_close.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426520783CBC008DBAB4 /* zip_close.c */; }; + B3447F62218BEE3F00557ACE /* vbaARM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941A020783CBB008DBAB4 /* vbaARM.cpp */; }; + B3447F63218BEE3F00557ACE /* audiobackend_alsa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942A520783CBC008DBAB4 /* audiobackend_alsa.cpp */; }; + B3447F64218BEE3F00557ACE /* intc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415E20783CBB008DBAB4 /* intc.cpp */; }; + B3447F65218BEE3F00557ACE /* zip_source_buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425B20783CBC008DBAB4 /* zip_source_buffer.c */; }; + B3447F66218BEE3F00557ACE /* zip_err_str.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426D20783CBC008DBAB4 /* zip_err_str.c */; }; + B3447F67218BEE3F00557ACE /* zip_file_error_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = B339428720783CBC008DBAB4 /* zip_file_error_clear.c */; }; + B3447F68218BEE3F00557ACE /* pvr_sb_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417E20783CBB008DBAB4 /* pvr_sb_regs.cpp */; }; + B3447F69218BEE3F00557ACE /* gles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942F520783CBC008DBAB4 /* gles.cpp */; }; + B3447F6A218BEE3F00557ACE /* rec_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C920783CBC008DBAB4 /* rec_arm.cpp */; }; + B3447F6B218BEE3F00557ACE /* audiobackend_oss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339429F20783CBC008DBAB4 /* audiobackend_oss.cpp */; }; + B3447F6C218BEE3F00557ACE /* zip_get_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339425D20783CBC008DBAB4 /* zip_get_archive_comment.c */; }; + B3447F6D218BEE3F00557ACE /* zip_set_file_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427C20783CBC008DBAB4 /* zip_set_file_comment.c */; }; + B3447F6E218BEE3F00557ACE /* cpg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416B20783CBB008DBAB4 /* cpg.cpp */; }; + B3447F6F218BEE3F00557ACE /* sha1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941E020783CBC008DBAB4 /* sha1.cpp */; }; + B3447F70218BEE3F00557ACE /* zip_fread.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427520783CBC008DBAB4 /* zip_fread.c */; }; + B3447F71218BEE3F00557ACE /* gdrom_response.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339417020783CBB008DBAB4 /* gdrom_response.cpp */; }; + B3447F72218BEE3F00557ACE /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D020783CBC008DBAB4 /* common.cpp */; }; + B3447F73218BEE3F00557ACE /* maple_devs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419A20783CBB008DBAB4 /* maple_devs.cpp */; }; + B3447F74218BEE3F00557ACE /* TexCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33942FC20783CBC008DBAB4 /* TexCache.cpp */; }; + B3447F75218BEE3F00557ACE /* zip_name_locate.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426920783CBC008DBAB4 /* zip_name_locate.c */; }; + B3447F76218BEE3F00557ACE /* zip_set_archive_comment.c in Sources */ = {isa = PBXBuildFile; fileRef = B339426820783CBC008DBAB4 /* zip_set_archive_comment.c */; }; + B3447F77218BEE3F00557ACE /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414220783CBB008DBAB4 /* driver.cpp */; }; + B3447F78218BEE3F00557ACE /* ini.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C320783CBC008DBAB4 /* ini.cpp */; }; + B3447F79218BEE3F00557ACE /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FA20783CBC008DBAB4 /* pngget.c */; }; + B3447F7A218BEE3F00557ACE /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FE20783CBC008DBAB4 /* pngset.c */; }; + B3447F7B218BEE3F00557ACE /* arm_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339419C20783CBB008DBAB4 /* arm_mem.cpp */; }; + B3447F7C218BEE3F00557ACE /* ta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418920783CBB008DBAB4 /* ta.cpp */; }; + B3447F7D218BEE3F00557ACE /* sh4_sched.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339414C20783CBB008DBAB4 /* sh4_sched.cpp */; }; + B3447F7E218BEE3F00557ACE /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = B33941FB20783CBC008DBAB4 /* png.c */; }; + B3447F7F218BEE3F00557ACE /* sh4_rom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339416C20783CBB008DBAB4 /* sh4_rom.cpp */; }; + B3447F80218BEE3F00557ACE /* context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941D220783CBC008DBAB4 /* context.cpp */; }; + B3447F81218BEE3F00557ACE /* aica.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941AA20783CBB008DBAB4 /* aica.cpp */; }; + B3447F82218BEE3F00557ACE /* filter_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = B33941F620783CBC008DBAB4 /* filter_neon.S */; }; + B3447F83218BEE3F00557ACE /* ImgReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B920783CBC008DBAB4 /* ImgReader.cpp */; }; + B3447F84218BEE3F00557ACE /* ta_vtx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339418520783CBB008DBAB4 /* ta_vtx.cpp */; }; + B3447F85218BEE3F00557ACE /* sh4_core_regs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415920783CBB008DBAB4 /* sh4_core_regs.cpp */; }; + B3447F86218BEE3F00557ACE /* gdi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941B620783CBC008DBAB4 /* gdi.cpp */; }; + B3447F87218BEE3F00557ACE /* sgc_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941AF20783CBB008DBAB4 /* sgc_if.cpp */; }; + B3447F88218BEE3F00557ACE /* zip_replace.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427A20783CBC008DBAB4 /* zip_replace.c */; }; + B3447F89218BEE3F00557ACE /* zip_rename.c in Sources */ = {isa = PBXBuildFile; fileRef = B339427620783CBC008DBAB4 /* zip_rename.c */; }; + B3447F8A218BEE3F00557ACE /* cl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B33941C420783CBC008DBAB4 /* cl.cpp */; }; + B3447F8B218BEE3F00557ACE /* sh4_interrupts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B339415620783CBB008DBAB4 /* sh4_interrupts.cpp */; }; + B35E6BF2207CD2680040709A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF1207CD2670040709A /* AudioToolbox.framework */; }; + B35E6BF5207CD2740040709A /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF3207CD2730040709A /* CoreAudioKit.framework */; }; + B35E6BF6207CD2740040709A /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF4207CD2740040709A /* CoreAudio.framework */; }; + B35E6BF9207D00D00040709A /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B35E6BF8207D00D00040709A /* AVFoundation.framework */; }; + B3B104B9218F281B00210C39 /* PVSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3B104B8218F281B00210C39 /* PVSupport.framework */; }; + B3C7621520783162009950E4 /* PVFlycast.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C7621320783162009950E4 /* PVFlycast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3C7621D20783243009950E4 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C7621C20783243009950E4 /* OpenGLES.framework */; platformFilter = ios; }; + B3C7621F2078325C009950E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C7621E2078325C009950E4 /* Foundation.framework */; }; + B3C7622220783297009950E4 /* PVSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C7622120783297009950E4 /* PVSupport.framework */; }; + B3C76225207833DE009950E4 /* PVFlycastCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C76223207833DE009950E4 /* PVFlycastCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3C76226207833DE009950E4 /* PVFlycastCore.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3C76224207833DE009950E4 /* PVFlycastCore.mm */; }; + B3DDF56D26E9B90400CE47F0 /* libflycast-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B3447F91218BEE3F00557ACE /* libflycast-tvOS.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + B3DDF56E26E9B90400CE47F0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B3C7620720783162009950E4 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B3447EE8218BEE3F00557ACE; + remoteInfo = "flycast-tvOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + B30178D1207C901D0051B93D /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3447F8D218BEE3F00557ACE /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + B30178D3207C901D0051B93D /* libflycast-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libflycast-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B316B4E621926FE500693472 /* emu.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = emu.cfg; sourceTree = ""; }; + B324C31B2191964F009F4EDC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.1.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; + B339412120783CBB008DBAB4 /* rec_x64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_x64.cpp; sourceTree = ""; }; + B339412320783CBB008DBAB4 /* x86_emitter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86_emitter.h; sourceTree = ""; }; + B339412420783CBB008DBAB4 /* x86_matcher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86_matcher.h; sourceTree = ""; }; + B339412520783CBB008DBAB4 /* generated_class_names.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = generated_class_names.h; sourceTree = ""; }; + B339412620783CBB008DBAB4 /* x86_op_encoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86_op_encoder.h; sourceTree = ""; }; + B339412720783CBB008DBAB4 /* generated_indexes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = generated_indexes.h; sourceTree = ""; }; + B339412820783CBB008DBAB4 /* types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + B339412920783CBB008DBAB4 /* emitter.vcxproj */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = emitter.vcxproj; sourceTree = ""; }; + B339412A20783CBB008DBAB4 /* emitter.vcxproj.user */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = emitter.vcxproj.user; sourceTree = ""; }; + B339412B20783CBB008DBAB4 /* generated_descriptors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = generated_descriptors.h; sourceTree = ""; }; + B339412C20783CBB008DBAB4 /* x86_op_classes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86_op_classes.h; sourceTree = ""; }; + B339412D20783CBB008DBAB4 /* generated_class_names_string.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = generated_class_names_string.h; sourceTree = ""; }; + B339412E20783CBB008DBAB4 /* x86_op_table.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86_op_table.h; sourceTree = ""; }; + B339412F20783CBB008DBAB4 /* x86_emitter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = x86_emitter.cpp; sourceTree = ""; }; + B339413220783CBB008DBAB4 /* holly_intc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = holly_intc.h; sourceTree = ""; }; + B339413320783CBB008DBAB4 /* sb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sb.h; sourceTree = ""; }; + B339413420783CBB008DBAB4 /* sb_mem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sb_mem.cpp; sourceTree = ""; }; + B339413520783CBB008DBAB4 /* sb.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sb.cpp; sourceTree = ""; }; + B339413620783CBB008DBAB4 /* holly_intc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = holly_intc.cpp; sourceTree = ""; }; + B339413720783CBB008DBAB4 /* sb_dma.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sb_dma.cpp; sourceTree = ""; }; + B339413820783CBB008DBAB4 /* sb_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sb_mem.h; sourceTree = ""; }; + B339413A20783CBB008DBAB4 /* sh4_rom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_rom.h; sourceTree = ""; }; + B339413C20783CBB008DBAB4 /* shil.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = shil.cpp; sourceTree = ""; }; + B339413D20783CBB008DBAB4 /* shil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = shil.h; sourceTree = ""; }; + B339413E20783CBB008DBAB4 /* rec_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rec_config.h; sourceTree = ""; }; + B339413F20783CBB008DBAB4 /* ngen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ngen.h; sourceTree = ""; }; + B339414020783CBB008DBAB4 /* decoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decoder.h; sourceTree = ""; }; + B339414120783CBB008DBAB4 /* regalloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = regalloc.h; sourceTree = ""; }; + B339414220783CBB008DBAB4 /* driver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = driver.cpp; sourceTree = ""; }; + B339414320783CBB008DBAB4 /* decoder.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = ""; }; + B339414420783CBB008DBAB4 /* blockmanager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = blockmanager.cpp; sourceTree = ""; }; + B339414520783CBB008DBAB4 /* blockmanager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = blockmanager.h; sourceTree = ""; }; + B339414620783CBB008DBAB4 /* shil_canonical.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = shil_canonical.h; sourceTree = ""; }; + B339414720783CBB008DBAB4 /* decoder_opcodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decoder_opcodes.h; sourceTree = ""; }; + B339414820783CBB008DBAB4 /* sh4_opcode_list.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_opcode_list.h; sourceTree = ""; }; + B339414920783CBB008DBAB4 /* sh4_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_if.h; sourceTree = ""; }; + B339414A20783CBB008DBAB4 /* sh4_interpreter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_interpreter.h; sourceTree = ""; }; + B339414B20783CBB008DBAB4 /* fsca-table.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fsca-table.h"; sourceTree = ""; }; + B339414C20783CBB008DBAB4 /* sh4_sched.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_sched.cpp; sourceTree = ""; }; + B339414D20783CBB008DBAB4 /* sh4_opcode_list.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_opcode_list.cpp; sourceTree = ""; }; + B339414E20783CBB008DBAB4 /* sh4_mmr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_mmr.h; sourceTree = ""; }; + B339414F20783CBB008DBAB4 /* sh4_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_mem.h; sourceTree = ""; }; + B339415020783CBB008DBAB4 /* sh4_mem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_mem.cpp; sourceTree = ""; }; + B339415220783CBB008DBAB4 /* sh4_opcodes.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_opcodes.cpp; sourceTree = ""; }; + B339415320783CBB008DBAB4 /* sh4_interpreter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_interpreter.cpp; sourceTree = ""; }; + B339415420783CBB008DBAB4 /* sh4_opcodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_opcodes.h; sourceTree = ""; }; + B339415520783CBB008DBAB4 /* sh4_fpu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_fpu.cpp; sourceTree = ""; }; + B339415620783CBB008DBAB4 /* sh4_interrupts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_interrupts.cpp; sourceTree = ""; }; + B339415720783CBB008DBAB4 /* sh4_interrupts.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_interrupts.h; sourceTree = ""; }; + B339415820783CBB008DBAB4 /* sh4_opcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_opcode.h; sourceTree = ""; }; + B339415920783CBB008DBAB4 /* sh4_core_regs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_core_regs.cpp; sourceTree = ""; }; + B339415A20783CBB008DBAB4 /* sh4_mmr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_mmr.cpp; sourceTree = ""; }; + B339415C20783CBB008DBAB4 /* ubc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ubc.cpp; sourceTree = ""; }; + B339415D20783CBB008DBAB4 /* mmu_impl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mmu_impl.h; sourceTree = ""; }; + B339415E20783CBB008DBAB4 /* intc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = intc.cpp; sourceTree = ""; }; + B339415F20783CBB008DBAB4 /* mmu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mmu.h; sourceTree = ""; }; + B339416020783CBB008DBAB4 /* bsc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = bsc.cpp; sourceTree = ""; }; + B339416120783CBB008DBAB4 /* ccn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ccn.cpp; sourceTree = ""; }; + B339416220783CBB008DBAB4 /* tmu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tmu.h; sourceTree = ""; }; + B339416320783CBB008DBAB4 /* dmac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dmac.h; sourceTree = ""; }; + B339416420783CBB008DBAB4 /* modules.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = modules.h; sourceTree = ""; }; + B339416520783CBB008DBAB4 /* dmac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = dmac.cpp; sourceTree = ""; }; + B339416620783CBB008DBAB4 /* serial.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = serial.cpp; sourceTree = ""; }; + B339416720783CBB008DBAB4 /* rtc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rtc.cpp; sourceTree = ""; }; + B339416820783CBB008DBAB4 /* tmu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = tmu.cpp; sourceTree = ""; }; + B339416920783CBB008DBAB4 /* mmu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = mmu.cpp; sourceTree = ""; }; + B339416A20783CBB008DBAB4 /* ccn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ccn.h; sourceTree = ""; }; + B339416B20783CBB008DBAB4 /* cpg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cpg.cpp; sourceTree = ""; }; + B339416C20783CBB008DBAB4 /* sh4_rom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sh4_rom.cpp; sourceTree = ""; }; + B339416D20783CBB008DBAB4 /* sh4_core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_core.h; sourceTree = ""; }; + B339416E20783CBB008DBAB4 /* sh4_sched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sh4_sched.h; sourceTree = ""; }; + B339417020783CBB008DBAB4 /* gdrom_response.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gdrom_response.cpp; sourceTree = ""; }; + B339417120783CBB008DBAB4 /* gdromv3.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gdromv3.cpp; sourceTree = ""; }; + B339417220783CBB008DBAB4 /* gdromv3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gdromv3.h; sourceTree = ""; }; + B339417320783CBB008DBAB4 /* gdrom_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gdrom_if.h; sourceTree = ""; }; + B339417520783CBB008DBAB4 /* ta_structs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ta_structs.h; sourceTree = ""; }; + B339417620783CBB008DBAB4 /* ta_ctx.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ta_ctx.cpp; sourceTree = ""; }; + B339417720783CBB008DBAB4 /* pvr_mem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = pvr_mem.cpp; sourceTree = ""; }; + B339417820783CBB008DBAB4 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + B339417920783CBB008DBAB4 /* Renderer_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Renderer_if.h; sourceTree = ""; }; + B339417A20783CBB008DBAB4 /* ta_ctx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ta_ctx.h; sourceTree = ""; }; + B339417B20783CBB008DBAB4 /* spg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = spg.cpp; sourceTree = ""; }; + B339417C20783CBB008DBAB4 /* pvr_sb_regs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pvr_sb_regs.h; sourceTree = ""; }; + B339417D20783CBB008DBAB4 /* pvr_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pvr_mem.h; sourceTree = ""; }; + B339417E20783CBB008DBAB4 /* pvr_sb_regs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = pvr_sb_regs.cpp; sourceTree = ""; }; + B339417F20783CBB008DBAB4 /* helper_classes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = helper_classes.h; sourceTree = ""; }; + B339418020783CBB008DBAB4 /* ta.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ta.h; sourceTree = ""; }; + B339418120783CBB008DBAB4 /* spg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = spg.h; sourceTree = ""; }; + B339418220783CBB008DBAB4 /* pvr_regs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pvr_regs.h; sourceTree = ""; }; + B339418320783CBB008DBAB4 /* drkPvr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = drkPvr.cpp; sourceTree = ""; }; + B339418420783CBB008DBAB4 /* Renderer_if.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Renderer_if.cpp; sourceTree = ""; }; + B339418520783CBB008DBAB4 /* ta_vtx.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ta_vtx.cpp; sourceTree = ""; }; + B339418620783CBB008DBAB4 /* ta_const_df.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ta_const_df.h; sourceTree = ""; }; + B339418720783CBB008DBAB4 /* pvr_regs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = pvr_regs.cpp; sourceTree = ""; }; + B339418820783CBB008DBAB4 /* drkPvr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = drkPvr.h; sourceTree = ""; }; + B339418920783CBB008DBAB4 /* ta.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ta.cpp; sourceTree = ""; }; + B339418B20783CBB008DBAB4 /* flashrom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = flashrom.h; sourceTree = ""; }; + B339418D20783CBB008DBAB4 /* naomi_regs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = naomi_regs.h; sourceTree = ""; }; + B339418E20783CBB008DBAB4 /* naomi_cart.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = naomi_cart.h; sourceTree = ""; }; + B339418F20783CBB008DBAB4 /* naomi_cart.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = naomi_cart.cpp; sourceTree = ""; }; + B339419020783CBB008DBAB4 /* naomi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = naomi.h; sourceTree = ""; }; + B339419120783CBB008DBAB4 /* naomi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = naomi.cpp; sourceTree = ""; }; + B339419320783CBB008DBAB4 /* maple_helper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maple_helper.h; sourceTree = ""; }; + B339419420783CBB008DBAB4 /* maple_if.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = maple_if.cpp; sourceTree = ""; }; + B339419520783CBB008DBAB4 /* maple_helper.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = maple_helper.cpp; sourceTree = ""; }; + B339419620783CBB008DBAB4 /* maple_cfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maple_cfg.h; sourceTree = ""; }; + B339419720783CBB008DBAB4 /* maple_cfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = maple_cfg.cpp; sourceTree = ""; }; + B339419820783CBB008DBAB4 /* maple_devs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maple_devs.h; sourceTree = ""; }; + B339419920783CBB008DBAB4 /* maple_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maple_if.h; sourceTree = ""; }; + B339419A20783CBB008DBAB4 /* maple_devs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = maple_devs.cpp; sourceTree = ""; }; + B339419C20783CBB008DBAB4 /* arm_mem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = arm_mem.cpp; sourceTree = ""; }; + B339419D20783CBB008DBAB4 /* arm_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm_mem.h; sourceTree = ""; }; + B339419E20783CBB008DBAB4 /* arm7.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm7.h; sourceTree = ""; }; + B339419F20783CBB008DBAB4 /* arm7.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = arm7.cpp; sourceTree = ""; }; + B33941A020783CBB008DBAB4 /* vbaARM.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = vbaARM.cpp; sourceTree = ""; }; + B33941A120783CBB008DBAB4 /* virt_arm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = virt_arm.h; sourceTree = ""; }; + B33941A220783CBB008DBAB4 /* resource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = ""; }; + B33941A320783CBB008DBAB4 /* virt_arm.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = virt_arm.cpp; sourceTree = ""; }; + B33941A420783CBB008DBAB4 /* arm-new.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "arm-new.h"; sourceTree = ""; }; + B33941A620783CBB008DBAB4 /* aica_if.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = aica_if.cpp; sourceTree = ""; }; + B33941A720783CBB008DBAB4 /* aica.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aica.h; sourceTree = ""; }; + B33941A820783CBB008DBAB4 /* dsp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = dsp.cpp; sourceTree = ""; }; + B33941A920783CBB008DBAB4 /* aica_mem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = aica_mem.cpp; sourceTree = ""; }; + B33941AA20783CBB008DBAB4 /* aica.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = aica.cpp; sourceTree = ""; }; + B33941AB20783CBB008DBAB4 /* aica_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aica_mem.h; sourceTree = ""; }; + B33941AC20783CBB008DBAB4 /* dsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dsp.h; sourceTree = ""; }; + B33941AD20783CBB008DBAB4 /* sgc_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sgc_if.h; sourceTree = ""; }; + B33941AE20783CBB008DBAB4 /* aica_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aica_if.h; sourceTree = ""; }; + B33941AF20783CBB008DBAB4 /* sgc_if.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sgc_if.cpp; sourceTree = ""; }; + B33941B120783CBB008DBAB4 /* _vmem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _vmem.h; sourceTree = ""; }; + B33941B220783CBB008DBAB4 /* _vmem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = _vmem.cpp; sourceTree = ""; }; + B33941B320783CBB008DBAB4 /* build.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = build.h; sourceTree = ""; }; + B33941B420783CBB008DBAB4 /* types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + B33941B620783CBC008DBAB4 /* gdi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gdi.cpp; sourceTree = ""; }; + B33941B720783CBC008DBAB4 /* common.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = common.cpp; sourceTree = ""; }; + B33941B820783CBC008DBAB4 /* cdi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cdi.cpp; sourceTree = ""; }; + B33941B920783CBC008DBAB4 /* ImgReader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ImgReader.cpp; sourceTree = ""; }; + B33941BA20783CBC008DBAB4 /* gd_driver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gd_driver.h; sourceTree = ""; }; + B33941BB20783CBC008DBAB4 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + B33941BC20783CBC008DBAB4 /* ioctl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ioctl.cpp; sourceTree = ""; }; + B33941BD20783CBC008DBAB4 /* ImgReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImgReader.h; sourceTree = ""; }; + B33941BE20783CBC008DBAB4 /* SCSIDEFS.H */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = SCSIDEFS.H; sourceTree = ""; }; + B33941BF20783CBC008DBAB4 /* chd.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = chd.cpp; sourceTree = ""; }; + B33941C120783CBC008DBAB4 /* cfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cfg.cpp; sourceTree = ""; }; + B33941C220783CBC008DBAB4 /* ini.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ini.h; sourceTree = ""; }; + B33941C320783CBC008DBAB4 /* ini.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ini.cpp; sourceTree = ""; }; + B33941C420783CBC008DBAB4 /* cl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cl.cpp; sourceTree = ""; }; + B33941C520783CBC008DBAB4 /* cfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cfg.h; sourceTree = ""; }; + B33941C620783CBC008DBAB4 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + B33941C720783CBC008DBAB4 /* nullDC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = nullDC.cpp; sourceTree = ""; }; + B33941C920783CBC008DBAB4 /* rec_arm.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_arm.cpp; sourceTree = ""; }; + B33941CA20783CBC008DBAB4 /* ngen_arm.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ngen_arm.S; sourceTree = ""; }; + B33941CB20783CBC008DBAB4 /* ngen_arm64.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ngen_arm64.S; sourceTree = ""; }; + B33941CD20783CBC008DBAB4 /* sdl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sdl.cpp; sourceTree = ""; }; + B33941CE20783CBC008DBAB4 /* sdl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sdl.h; sourceTree = ""; }; + B33941D020783CBC008DBAB4 /* common.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = common.cpp; sourceTree = ""; }; + B33941D120783CBC008DBAB4 /* typedefs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = typedefs.h; sourceTree = ""; }; + B33941D220783CBC008DBAB4 /* context.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = context.cpp; sourceTree = ""; }; + B33941D320783CBC008DBAB4 /* context.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = context.h; sourceTree = ""; }; + B33941D520783CBC008DBAB4 /* nixprof.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = nixprof.cpp; sourceTree = ""; }; + B33941D720783CBC008DBAB4 /* nacl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = nacl.cpp; sourceTree = ""; }; + B33941D820783CBC008DBAB4 /* nacl_lin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = nacl_lin.cpp; sourceTree = ""; }; + B33941D920783CBC008DBAB4 /* stdclass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stdclass.h; sourceTree = ""; }; + B33941DA20783CBC008DBAB4 /* stdclass.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = stdclass.cpp; sourceTree = ""; }; + B33941DD20783CBC008DBAB4 /* md5.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = md5.cpp; sourceTree = ""; }; + B33941DE20783CBC008DBAB4 /* md5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; }; + B33941DF20783CBC008DBAB4 /* sha256.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sha256.h; sourceTree = ""; }; + B33941E020783CBC008DBAB4 /* sha1.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sha1.cpp; sourceTree = ""; }; + B33941E120783CBC008DBAB4 /* sha256.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sha256.cpp; sourceTree = ""; }; + B33941E220783CBC008DBAB4 /* sha1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sha1.h; sourceTree = ""; }; + B33941E420783CBC008DBAB4 /* pnginfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pnginfo.h; sourceTree = ""; }; + B33941E520783CBC008DBAB4 /* pngrio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngrio.c; sourceTree = ""; }; + B33941E620783CBC008DBAB4 /* pngerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngerror.c; sourceTree = ""; }; + B33941E720783CBC008DBAB4 /* pngwio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngwio.c; sourceTree = ""; }; + B33941E820783CBC008DBAB4 /* pngstruct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pngstruct.h; sourceTree = ""; }; + B33941E920783CBC008DBAB4 /* pngtrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngtrans.c; sourceTree = ""; }; + B33941EA20783CBC008DBAB4 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + B33941EB20783CBC008DBAB4 /* pngpriv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pngpriv.h; sourceTree = ""; }; + B33941EC20783CBC008DBAB4 /* pngwrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngwrite.c; sourceTree = ""; }; + B33941ED20783CBC008DBAB4 /* png.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = png.h; sourceTree = ""; }; + B33941EE20783CBC008DBAB4 /* pngwutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngwutil.c; sourceTree = ""; }; + B33941EF20783CBC008DBAB4 /* pngwtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngwtran.c; sourceTree = ""; }; + B33941F020783CBC008DBAB4 /* pnglibconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pnglibconf.h; sourceTree = ""; }; + B33941F120783CBC008DBAB4 /* pngconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pngconf.h; sourceTree = ""; }; + B33941F220783CBC008DBAB4 /* pngpread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngpread.c; sourceTree = ""; }; + B33941F320783CBC008DBAB4 /* pngdebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pngdebug.h; sourceTree = ""; }; + B33941F420783CBC008DBAB4 /* pngread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngread.c; sourceTree = ""; }; + B33941F620783CBC008DBAB4 /* filter_neon.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = filter_neon.S; sourceTree = ""; }; + B33941F720783CBC008DBAB4 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = filter_neon_intrinsics.c; sourceTree = ""; }; + B33941F820783CBC008DBAB4 /* arm_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = arm_init.c; sourceTree = ""; }; + B33941F920783CBC008DBAB4 /* pngmem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngmem.c; sourceTree = ""; }; + B33941FA20783CBC008DBAB4 /* pngget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngget.c; sourceTree = ""; }; + B33941FB20783CBC008DBAB4 /* png.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = png.c; sourceTree = ""; }; + B33941FC20783CBC008DBAB4 /* pngrtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngrtran.c; sourceTree = ""; }; + B33941FD20783CBC008DBAB4 /* pngrutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngrutil.c; sourceTree = ""; }; + B33941FE20783CBC008DBAB4 /* pngset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pngset.c; sourceTree = ""; }; + B339420020783CBC008DBAB4 /* extension.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = extension.c; sourceTree = ""; }; + B339420120783CBC008DBAB4 /* extension-deflate-stream.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "extension-deflate-stream.c"; sourceTree = ""; }; + B339420220783CBC008DBAB4 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + B339420320783CBC008DBAB4 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + B339420420783CBC008DBAB4 /* lextable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lextable.h; sourceTree = ""; }; + B339420520783CBC008DBAB4 /* extension-deflate-frame.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "extension-deflate-frame.h"; sourceTree = ""; }; + B339420620783CBC008DBAB4 /* parsers.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = parsers.c; sourceTree = ""; }; + B339420720783CBC008DBAB4 /* libwebsockets.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = libwebsockets.c; sourceTree = ""; }; + B339420820783CBC008DBAB4 /* base64-decode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "base64-decode.c"; sourceTree = ""; }; + B339420920783CBC008DBAB4 /* pollfd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pollfd.c; sourceTree = ""; }; + B339420A20783CBC008DBAB4 /* server.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = server.c; sourceTree = ""; }; + B339420B20783CBC008DBAB4 /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = ""; }; + B339420C20783CBC008DBAB4 /* lws-plat-unix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "lws-plat-unix.c"; sourceTree = ""; }; + B339420D20783CBC008DBAB4 /* sha-1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "sha-1.c"; sourceTree = ""; }; + B339420E20783CBC008DBAB4 /* client.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = client.c; sourceTree = ""; }; + B339420F20783CBC008DBAB4 /* lws-plat-win.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "lws-plat-win.c"; sourceTree = ""; }; + B339421020783CBC008DBAB4 /* server-handshake.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "server-handshake.c"; sourceTree = ""; }; + B339421120783CBC008DBAB4 /* handshake.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = handshake.c; sourceTree = ""; }; + B339421220783CBC008DBAB4 /* service.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = service.c; sourceTree = ""; }; + B339421320783CBC008DBAB4 /* extension-deflate-stream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "extension-deflate-stream.h"; sourceTree = ""; }; + B339421420783CBC008DBAB4 /* context.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = context.c; sourceTree = ""; }; + B339421520783CBC008DBAB4 /* client-parser.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "client-parser.c"; sourceTree = ""; }; + B339421620783CBC008DBAB4 /* libwebsockets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libwebsockets.h; sourceTree = ""; }; + B339421720783CBC008DBAB4 /* extension-deflate-frame.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "extension-deflate-frame.c"; sourceTree = ""; }; + B339421820783CBC008DBAB4 /* client-handshake.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "client-handshake.c"; sourceTree = ""; }; + B339421920783CBC008DBAB4 /* private-libwebsockets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "private-libwebsockets.h"; sourceTree = ""; }; + B339421A20783CBC008DBAB4 /* lws_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lws_config.h; sourceTree = ""; }; + B339421B20783CBC008DBAB4 /* output.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = output.c; sourceTree = ""; }; + B339421D20783CBC008DBAB4 /* zutil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zutil.h; sourceTree = ""; }; + B339421E20783CBC008DBAB4 /* inftrees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inftrees.h; sourceTree = ""; }; + B339421F20783CBC008DBAB4 /* inflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inflate.c; sourceTree = ""; }; + B339422020783CBC008DBAB4 /* compress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = compress.c; sourceTree = ""; }; + B339422120783CBC008DBAB4 /* deflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = deflate.c; sourceTree = ""; }; + B339422220783CBC008DBAB4 /* inffixed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inffixed.h; sourceTree = ""; }; + B339422320783CBC008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B339422420783CBC008DBAB4 /* gzread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gzread.c; sourceTree = ""; }; + B339422520783CBC008DBAB4 /* trees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = trees.h; sourceTree = ""; }; + B339422620783CBC008DBAB4 /* inffast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inffast.h; sourceTree = ""; }; + B339422720783CBC008DBAB4 /* crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = crc32.c; sourceTree = ""; }; + B339422820783CBC008DBAB4 /* infback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = infback.c; sourceTree = ""; }; + B339422920783CBC008DBAB4 /* zutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zutil.c; sourceTree = ""; }; + B339422A20783CBC008DBAB4 /* deflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = deflate.h; sourceTree = ""; }; + B339422B20783CBC008DBAB4 /* gzguts.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gzguts.h; sourceTree = ""; }; + B339422C20783CBC008DBAB4 /* zlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zlib.h; sourceTree = ""; }; + B339422D20783CBC008DBAB4 /* gzlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gzlib.c; sourceTree = ""; }; + B339423120783CBC008DBAB4 /* inflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inflate.h; sourceTree = ""; }; + B339423220783CBC008DBAB4 /* inftrees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inftrees.c; sourceTree = ""; }; + B339423320783CBC008DBAB4 /* uncompr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = uncompr.c; sourceTree = ""; }; + B339423420783CBC008DBAB4 /* gzwrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gzwrite.c; sourceTree = ""; }; + B339423520783CBC008DBAB4 /* trees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = trees.c; sourceTree = ""; }; + B339423620783CBC008DBAB4 /* gzclose.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gzclose.c; sourceTree = ""; }; + B339423720783CBC008DBAB4 /* crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = crc32.h; sourceTree = ""; }; + B339423820783CBC008DBAB4 /* inffast.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inffast.c; sourceTree = ""; }; + B339423920783CBC008DBAB4 /* adler32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = adler32.c; sourceTree = ""; }; + B339423A20783CBC008DBAB4 /* zconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zconf.h; sourceTree = ""; }; + B339423C20783CBC008DBAB4 /* coreio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = coreio.h; sourceTree = ""; }; + B339423D20783CBC008DBAB4 /* coreio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = coreio.cpp; sourceTree = ""; }; + B339423F20783CBC008DBAB4 /* xbyak_mnemonic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xbyak_mnemonic.h; sourceTree = ""; }; + B339424020783CBC008DBAB4 /* xbyak_bin2hex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xbyak_bin2hex.h; sourceTree = ""; }; + B339424120783CBC008DBAB4 /* COPYRIGHT */ = {isa = PBXFileReference; lastKnownFileType = text; path = COPYRIGHT; sourceTree = ""; }; + B339424220783CBC008DBAB4 /* xbyak.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xbyak.h; sourceTree = ""; }; + B339424320783CBC008DBAB4 /* xbyak_util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xbyak_util.h; sourceTree = ""; }; + B339424520783CBC008DBAB4 /* chdr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = chdr.cpp; sourceTree = ""; }; + B339424620783CBC008DBAB4 /* chd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = chd.h; sourceTree = ""; }; + B339424720783CBC008DBAB4 /* coretypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = coretypes.h; sourceTree = ""; }; + B339424920783CBC008DBAB4 /* debug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = ""; }; + B339424A20783CBC008DBAB4 /* elf64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = elf64.h; sourceTree = ""; }; + B339424B20783CBC008DBAB4 /* elf64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = elf64.cpp; sourceTree = ""; }; + B339424C20783CBC008DBAB4 /* elf.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = elf.cpp; sourceTree = ""; }; + B339424D20783CBC008DBAB4 /* elf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = elf.h; sourceTree = ""; }; + B339424E20783CBC008DBAB4 /* elf32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = elf32.h; sourceTree = ""; }; + B339424F20783CBC008DBAB4 /* elf32.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = elf32.cpp; sourceTree = ""; }; + B339425120783CBC008DBAB4 /* cdipsr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cdipsr.cpp; sourceTree = ""; }; + B339425220783CBC008DBAB4 /* cdipsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cdipsr.h; sourceTree = ""; }; + B339425420783CBC008DBAB4 /* zip_memdup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_memdup.c; sourceTree = ""; }; + B339425520783CBC008DBAB4 /* zipint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zipint.h; sourceTree = ""; }; + B339425620783CBC008DBAB4 /* zip_add.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_add.c; sourceTree = ""; }; + B339425720783CBC008DBAB4 /* zip_filerange_crc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_filerange_crc.c; sourceTree = ""; }; + B339425820783CBC008DBAB4 /* zip_get_name.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_get_name.c; sourceTree = ""; }; + B339425920783CBC008DBAB4 /* zip_file_strerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_file_strerror.c; sourceTree = ""; }; + B339425A20783CBC008DBAB4 /* zip_fopen_index.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_fopen_index.c; sourceTree = ""; }; + B339425B20783CBC008DBAB4 /* zip_source_buffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_buffer.c; sourceTree = ""; }; + B339425C20783CBC008DBAB4 /* zip_error_clear.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error_clear.c; sourceTree = ""; }; + B339425D20783CBC008DBAB4 /* zip_get_archive_comment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_get_archive_comment.c; sourceTree = ""; }; + B339425E20783CBC008DBAB4 /* zip_source_file.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_file.c; sourceTree = ""; }; + B339425F20783CBC008DBAB4 /* zip_set_name.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_set_name.c; sourceTree = ""; }; + B339426020783CBC008DBAB4 /* zip_file_error_get.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_file_error_get.c; sourceTree = ""; }; + B339426120783CBC008DBAB4 /* zip_file_get_offset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_file_get_offset.c; sourceTree = ""; }; + B339426220783CBC008DBAB4 /* zip_unchange.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_unchange.c; sourceTree = ""; }; + B339426320783CBC008DBAB4 /* zip_new.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_new.c; sourceTree = ""; }; + B339426420783CBC008DBAB4 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + B339426520783CBC008DBAB4 /* zip_close.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_close.c; sourceTree = ""; }; + B339426620783CBC008DBAB4 /* zip_add_dir.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_add_dir.c; sourceTree = ""; }; + B339426720783CBC008DBAB4 /* zip_error_get_sys_type.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error_get_sys_type.c; sourceTree = ""; }; + B339426820783CBC008DBAB4 /* zip_set_archive_comment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_set_archive_comment.c; sourceTree = ""; }; + B339426920783CBC008DBAB4 /* zip_name_locate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_name_locate.c; sourceTree = ""; }; + B339426A20783CBC008DBAB4 /* zip_unchange_archive.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_unchange_archive.c; sourceTree = ""; }; + B339426B20783CBC008DBAB4 /* zip_source_free.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_free.c; sourceTree = ""; }; + B339426C20783CBC008DBAB4 /* zip_get_num_files.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_get_num_files.c; sourceTree = ""; }; + B339426D20783CBC008DBAB4 /* zip_err_str.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_err_str.c; sourceTree = ""; }; + B339426E20783CBC008DBAB4 /* zip_source_filep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_filep.c; sourceTree = ""; }; + B339426F20783CBC008DBAB4 /* zip_error.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error.c; sourceTree = ""; }; + B339427020783CBC008DBAB4 /* zip_strerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_strerror.c; sourceTree = ""; }; + B339427120783CBC008DBAB4 /* zip_entry_new.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_entry_new.c; sourceTree = ""; }; + B339427220783CBC008DBAB4 /* zip_get_archive_flag.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_get_archive_flag.c; sourceTree = ""; }; + B339427320783CBC008DBAB4 /* zip_set_archive_flag.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_set_archive_flag.c; sourceTree = ""; }; + B339427420783CBC008DBAB4 /* zip_unchange_data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_unchange_data.c; sourceTree = ""; }; + B339427520783CBC008DBAB4 /* zip_fread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_fread.c; sourceTree = ""; }; + B339427620783CBC008DBAB4 /* zip_rename.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_rename.c; sourceTree = ""; }; + B339427720783CBC008DBAB4 /* zip_source_zip.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_zip.c; sourceTree = ""; }; + B339427820783CBC008DBAB4 /* zip_stat_index.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_stat_index.c; sourceTree = ""; }; + B339427920783CBC008DBAB4 /* zip_source_function.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_source_function.c; sourceTree = ""; }; + B339427A20783CBC008DBAB4 /* zip_replace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_replace.c; sourceTree = ""; }; + B339427B20783CBC008DBAB4 /* zip_delete.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_delete.c; sourceTree = ""; }; + B339427C20783CBC008DBAB4 /* zip_set_file_comment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_set_file_comment.c; sourceTree = ""; }; + B339427D20783CBC008DBAB4 /* zip_stat.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_stat.c; sourceTree = ""; }; + B339427E20783CBC008DBAB4 /* zip_get_file_comment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_get_file_comment.c; sourceTree = ""; }; + B339427F20783CBC008DBAB4 /* mkstemp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mkstemp.c; sourceTree = ""; }; + B339428020783CBC008DBAB4 /* zip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zip.h; sourceTree = ""; }; + B339428120783CBC008DBAB4 /* zip_entry_free.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_entry_free.c; sourceTree = ""; }; + B339428220783CBC008DBAB4 /* zip_open.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_open.c; sourceTree = ""; }; + B339428320783CBC008DBAB4 /* zip_error_get.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error_get.c; sourceTree = ""; }; + B339428420783CBC008DBAB4 /* zip_fclose.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_fclose.c; sourceTree = ""; }; + B339428520783CBC008DBAB4 /* zip_dirent.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_dirent.c; sourceTree = ""; }; + B339428620783CBC008DBAB4 /* zip_free.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_free.c; sourceTree = ""; }; + B339428720783CBC008DBAB4 /* zip_file_error_clear.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_file_error_clear.c; sourceTree = ""; }; + B339428820783CBC008DBAB4 /* zip_error_to_str.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error_to_str.c; sourceTree = ""; }; + B339428920783CBC008DBAB4 /* zip_stat_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_stat_init.c; sourceTree = ""; }; + B339428A20783CBC008DBAB4 /* zip_fopen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_fopen.c; sourceTree = ""; }; + B339428B20783CBC008DBAB4 /* zip_unchange_all.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_unchange_all.c; sourceTree = ""; }; + B339428C20783CBC008DBAB4 /* zip_error_strerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zip_error_strerror.c; sourceTree = ""; }; + B339428E20783CBC008DBAB4 /* ifaddrs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ifaddrs.c; sourceTree = ""; }; + B339428F20783CBC008DBAB4 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + B339429020783CBC008DBAB4 /* ifaddrs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ifaddrs.h; sourceTree = ""; }; + B339429220783CBC008DBAB4 /* audiobackend_pulseaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_pulseaudio.h; sourceTree = ""; }; + B339429320783CBC008DBAB4 /* audiobackend_alsa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_alsa.h; sourceTree = ""; }; + B339429420783CBC008DBAB4 /* audiobackend_pulseaudio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_pulseaudio.cpp; sourceTree = ""; }; + B339429520783CBC008DBAB4 /* audiobackend_coreaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_coreaudio.h; sourceTree = ""; }; + B339429620783CBC008DBAB4 /* audiobackend_oss.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_oss.h; sourceTree = ""; }; + B339429720783CBC008DBAB4 /* audiobackend_android.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_android.h; sourceTree = ""; }; + B339429920783CBC008DBAB4 /* audiobackend_coreaudio.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = audiobackend_coreaudio.mm; sourceTree = ""; }; + B339429A20783CBC008DBAB4 /* oslib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = oslib.h; sourceTree = ""; }; + B339429C20783CBC008DBAB4 /* audiostream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audiostream.cpp; sourceTree = ""; }; + B339429E20783CBC008DBAB4 /* audiostream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiostream.h; sourceTree = ""; }; + B339429F20783CBC008DBAB4 /* audiobackend_oss.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_oss.cpp; sourceTree = ""; }; + B33942A220783CBC008DBAB4 /* audiobackend_directsound.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_directsound.cpp; sourceTree = ""; }; + B33942A420783CBC008DBAB4 /* audiobackend_directsound.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audiobackend_directsound.h; sourceTree = ""; }; + B33942A520783CBC008DBAB4 /* audiobackend_alsa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_alsa.cpp; sourceTree = ""; }; + B33942D220783CBC008DBAB4 /* server.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = server.h; sourceTree = ""; }; + B33942D320783CBC008DBAB4 /* server.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = server.cpp; sourceTree = ""; }; + B33942D620783CBC008DBAB4 /* egl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = egl.h; sourceTree = ""; }; + B33942D720783CBC008DBAB4 /* eglplatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eglplatform.h; sourceTree = ""; }; + B33942D820783CBC008DBAB4 /* khrplatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = khrplatform.h; sourceTree = ""; }; + B33942DA20783CBC008DBAB4 /* gl2ext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl2ext.h; sourceTree = ""; }; + B33942DB20783CBC008DBAB4 /* gl3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl3.h; sourceTree = ""; }; + B33942DC20783CBC008DBAB4 /* gl3platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl3platform.h; sourceTree = ""; }; + B33942DE20783CBC008DBAB4 /* gl2ext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl2ext.h; sourceTree = ""; }; + B33942DF20783CBC008DBAB4 /* gl2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl2.h; sourceTree = ""; }; + B33942E020783CBC008DBAB4 /* gl2platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl2platform.h; sourceTree = ""; }; + B33942E220783CBC008DBAB4 /* khrplatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = khrplatform.h; sourceTree = ""; }; + B33942E420783CBC008DBAB4 /* egl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = egl.h; sourceTree = ""; }; + B33942E520783CBC008DBAB4 /* eglext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eglext.h; sourceTree = ""; }; + B33942E620783CBC008DBAB4 /* eglplatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = eglplatform.h; sourceTree = ""; }; + B33942E820783CBC008DBAB4 /* gl3w.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gl3w.c; sourceTree = ""; }; + B33942E920783CBC008DBAB4 /* gl3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl3.h; sourceTree = ""; }; + B33942EA20783CBC008DBAB4 /* gl3w.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gl3w.h; sourceTree = ""; }; + B33942EC20783CBC008DBAB4 /* profiler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = profiler.cpp; sourceTree = ""; }; + B33942ED20783CBC008DBAB4 /* profiler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = profiler.h; sourceTree = ""; }; + B33942F020783CBC008DBAB4 /* d3d11.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = d3d11.cpp; sourceTree = ""; }; + B33942F220783CBC008DBAB4 /* gldraw.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gldraw.cpp; sourceTree = ""; }; + B33942F320783CBC008DBAB4 /* gltex.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gltex.cpp; sourceTree = ""; }; + B33942F420783CBC008DBAB4 /* gles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gles.h; sourceTree = ""; }; + B33942F520783CBC008DBAB4 /* gles.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gles.cpp; sourceTree = ""; }; + B33942F620783CBC008DBAB4 /* rend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rend.h; sourceTree = ""; }; + B33942F720783CBC008DBAB4 /* TexCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TexCache.h; sourceTree = ""; }; + B33942F920783CBC008DBAB4 /* softrend.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = softrend.cpp; sourceTree = ""; }; + B33942FB20783CBC008DBAB4 /* norend.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = norend.cpp; sourceTree = ""; }; + B33942FC20783CBC008DBAB4 /* TexCache.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TexCache.cpp; sourceTree = ""; }; + B33942FF20783CBC008DBAB4 /* winmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = winmain.cpp; sourceTree = ""; }; + B339430120783CBC008DBAB4 /* rec_cpp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_cpp.cpp; sourceTree = ""; }; + B339430320783CBD008DBAB4 /* rec_x86_il.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_x86_il.cpp; sourceTree = ""; }; + B339430420783CBD008DBAB4 /* rec_x86_asm.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_x86_asm.cpp; sourceTree = ""; }; + B339430520783CBD008DBAB4 /* rec_x86_driver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rec_x86_driver.cpp; sourceTree = ""; }; + B339430620783CBD008DBAB4 /* rec_lin86_asm.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = rec_lin86_asm.S; sourceTree = ""; }; + B339430720783CBD008DBAB4 /* rec_x86_ngen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rec_x86_ngen.h; sourceTree = ""; }; + B339430920783CBD008DBAB4 /* E_VLoadStore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_VLoadStore.h; sourceTree = ""; }; + B339430A20783CBD008DBAB4 /* E_Parallel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Parallel.h; sourceTree = ""; }; + B339430B20783CBD008DBAB4 /* E_Status.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Status.h; sourceTree = ""; }; + B339430C20783CBD008DBAB4 /* E_VRegXfer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_VRegXfer.h; sourceTree = ""; }; + B339430D20783CBD008DBAB4 /* H_Branches.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = H_Branches.h; sourceTree = ""; }; + B339430E20783CBD008DBAB4 /* E_Misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Misc.h; sourceTree = ""; }; + B339430F20783CBD008DBAB4 /* E_Branches.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Branches.h; sourceTree = ""; }; + B339431020783CBD008DBAB4 /* H_psuedo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = H_psuedo.h; sourceTree = ""; }; + B339431120783CBD008DBAB4 /* arm_coding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm_coding.h; sourceTree = ""; }; + B339431220783CBD008DBAB4 /* arm_emitter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm_emitter.h; sourceTree = ""; }; + B339431320783CBD008DBAB4 /* E_Special.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Special.h; sourceTree = ""; }; + B339431420783CBD008DBAB4 /* E_LoadStore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_LoadStore.h; sourceTree = ""; }; + B339431520783CBD008DBAB4 /* arm_disasm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm_disasm.h; sourceTree = ""; }; + B339431620783CBD008DBAB4 /* E_Multiply.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Multiply.h; sourceTree = ""; }; + B339431720783CBD008DBAB4 /* E_VDataOp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_VDataOp.h; sourceTree = ""; }; + B339431820783CBD008DBAB4 /* H_state.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = H_state.h; sourceTree = ""; }; + B339431920783CBD008DBAB4 /* E_DataOp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_DataOp.h; sourceTree = ""; }; + B339431A20783CBD008DBAB4 /* H_LoadStore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = H_LoadStore.h; sourceTree = ""; }; + B339431B20783CBD008DBAB4 /* H_fp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = H_fp.h; sourceTree = ""; }; + B339431C20783CBD008DBAB4 /* E_Extend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = E_Extend.h; sourceTree = ""; }; + B339431D20783CBD008DBAB4 /* arm_registers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm_registers.h; sourceTree = ""; }; + B339431F20783CBD008DBAB4 /* main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; }; + B339432020783CBD008DBAB4 /* x11.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = x11.cpp; sourceTree = ""; }; + B339432120783CBD008DBAB4 /* joystick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = joystick.h; sourceTree = ""; }; + B339432220783CBD008DBAB4 /* x11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x11.h; sourceTree = ""; }; + B339432320783CBD008DBAB4 /* evdev.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = evdev.h; sourceTree = ""; }; + B339432420783CBD008DBAB4 /* joystick.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = joystick.cpp; sourceTree = ""; }; + B339432520783CBD008DBAB4 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + B339432620783CBD008DBAB4 /* evdev.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = evdev.cpp; sourceTree = ""; }; + B339432820783CBD008DBAB4 /* reios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = reios.h; sourceTree = ""; }; + B339432920783CBD008DBAB4 /* descrambl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = descrambl.cpp; sourceTree = ""; }; + B339432A20783CBD008DBAB4 /* reios_elf.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = reios_elf.cpp; sourceTree = ""; }; + B339432B20783CBD008DBAB4 /* reios.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = reios.cpp; sourceTree = ""; }; + B339432C20783CBD008DBAB4 /* reios_elf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = reios_elf.h; sourceTree = ""; }; + B339432D20783CBD008DBAB4 /* descrambl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = descrambl.h; sourceTree = ""; }; + B339432E20783CBD008DBAB4 /* gdrom_hle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gdrom_hle.h; sourceTree = ""; }; + B339432F20783CBD008DBAB4 /* gdrom_hle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gdrom_hle.cpp; sourceTree = ""; }; + B339433020783CBD008DBAB4 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + B339433520783CBD008DBAB4 /* emulator_osxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = emulator_osxTests.swift; sourceTree = ""; }; + B339433620783CBD008DBAB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B339433820783CBD008DBAB4 /* EmuGLView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmuGLView.swift; sourceTree = ""; }; + B339433920783CBD008DBAB4 /* osx-main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "osx-main.mm"; sourceTree = ""; }; + B339433B20783CBD008DBAB4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + B339433C20783CBD008DBAB4 /* emulator-osx-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "emulator-osx-Bridging-Header.h"; sourceTree = ""; }; + B339433D20783CBD008DBAB4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B339433E20783CBD008DBAB4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + B339433F20783CBD008DBAB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B339434420783CBD008DBAB4 /* flycast-ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "flycast-ios-Prefix.pch"; sourceTree = ""; }; + B339434A20783CBD008DBAB4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + B339434B20783CBD008DBAB4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + B339434C20783CBD008DBAB4 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + B339434E20783CBD008DBAB4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + B339434F20783CBD008DBAB4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + B339435020783CBD008DBAB4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + B339435120783CBD008DBAB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B339435220783CBD008DBAB4 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + B339435420783CBD008DBAB4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B339435620783CBD008DBAB4 /* EmulatorViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = EmulatorViewController.mm; sourceTree = ""; }; + B339435720783CBD008DBAB4 /* DiskViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DiskViewCell.m; sourceTree = ""; }; + B339435820783CBD008DBAB4 /* SettingsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = ""; }; + B339435920783CBD008DBAB4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + B339435A20783CBD008DBAB4 /* PadViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PadViewController.xib; sourceTree = ""; }; + B339435B20783CBD008DBAB4 /* PathsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PathsViewController.h; sourceTree = ""; }; + B339435C20783CBD008DBAB4 /* EmulatorView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmulatorView.h; sourceTree = ""; }; + B339435D20783CBD008DBAB4 /* AboutViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = ""; }; + B339435E20783CBD008DBAB4 /* InputViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InputViewController.h; sourceTree = ""; }; + B339435F20783CBD008DBAB4 /* EmulatorView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = EmulatorView.mm; sourceTree = ""; }; + B339436020783CBD008DBAB4 /* BrowserTableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BrowserTableViewController.h; sourceTree = ""; }; + B339436120783CBE008DBAB4 /* flycast-ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "flycast-ios-Prefix.pch"; sourceTree = ""; }; + B339436320783CBE008DBAB4 /* RTrigger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = RTrigger.png; sourceTree = ""; }; + B339436420783CBE008DBAB4 /* Start@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Start@2x.png"; sourceTree = ""; }; + B339436520783CBE008DBAB4 /* DPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "DPad@2x.png"; sourceTree = ""; }; + B339436620783CBE008DBAB4 /* LTrigger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = LTrigger.png; sourceTree = ""; }; + B339436720783CBE008DBAB4 /* menuicon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuicon.png; sourceTree = ""; }; + B339436820783CBF008DBAB4 /* 210-octocat@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "210-octocat@2x.png"; sourceTree = ""; }; + B339436920783CBF008DBAB4 /* 210-twitterbird.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "210-twitterbird.png"; sourceTree = ""; }; + B339436A20783CBF008DBAB4 /* disk_unknown.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disk_unknown.png; sourceTree = ""; }; + B339436B20783CBF008DBAB4 /* ABXYPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ABXYPad@2x.png"; sourceTree = ""; }; + B339436C20783CBF008DBAB4 /* 210-twitterbird@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "210-twitterbird@2x.png"; sourceTree = ""; }; + B339436D20783CBF008DBAB4 /* LTrigger@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LTrigger@2x.png"; sourceTree = ""; }; + B339436E20783CBF008DBAB4 /* DPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DPad.png; sourceTree = ""; }; + B339436F20783CC0008DBAB4 /* JoystickBackground@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "JoystickBackground@2x.png"; sourceTree = ""; }; + B339437020783CC0008DBAB4 /* JoystickButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JoystickButton.png; sourceTree = ""; }; + B339437120783CC0008DBAB4 /* menuicon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menuicon@2x.png"; sourceTree = ""; }; + B339437220783CC0008DBAB4 /* 210-octocat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "210-octocat.png"; sourceTree = ""; }; + B339437320783CC0008DBAB4 /* ABXYPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ABXYPad.png; sourceTree = ""; }; + B339437420783CC0008DBAB4 /* RTrigger@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "RTrigger@2x.png"; sourceTree = ""; }; + B339437520783CC0008DBAB4 /* JoystickBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JoystickBackground.png; sourceTree = ""; }; + B339437620783CC0008DBAB4 /* Start.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Start.png; sourceTree = ""; }; + B339437720783CC0008DBAB4 /* menuback.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuback.png; sourceTree = ""; }; + B339437820783CC0008DBAB4 /* JoystickButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "JoystickButton@2x.png"; sourceTree = ""; }; + B339437920783CC0008DBAB4 /* menuback@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menuback@2x.png"; sourceTree = ""; }; + B339437A20783CC0008DBAB4 /* SWRevealViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SWRevealViewController.h; sourceTree = ""; }; + B339437B20783CC0008DBAB4 /* PadViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PadViewController.m; sourceTree = ""; }; + B339437C20783CC0008DBAB4 /* SideDrawerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SideDrawerViewController.m; sourceTree = ""; }; + B339437D20783CC0008DBAB4 /* flycast.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = flycast.entitlements; sourceTree = ""; }; + B339437E20783CC0008DBAB4 /* CloudVMUViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CloudVMUViewController.m; sourceTree = ""; }; + B339437F20783CC0008DBAB4 /* EmulatorViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmulatorViewController.h; sourceTree = ""; }; + B339438020783CC0008DBAB4 /* DiskViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskViewCell.h; sourceTree = ""; }; + B339438120783CC0008DBAB4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + B339438220783CC0008DBAB4 /* ios_main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_main.mm; sourceTree = ""; }; + B339438320783CC0008DBAB4 /* BrowserTableViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BrowserTableViewController.m; sourceTree = ""; }; + B339438420783CC0008DBAB4 /* InputViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InputViewController.m; sourceTree = ""; }; + B339438520783CC0008DBAB4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B339438720783CC0008DBAB4 /* Shader.fsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = Shader.fsh; sourceTree = ""; }; + B339438820783CC0008DBAB4 /* Shader.vsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = Shader.vsh; sourceTree = ""; }; + B339438920783CC0008DBAB4 /* AboutViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = ""; }; + B339438A20783CC0008DBAB4 /* PathsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PathsViewController.m; sourceTree = ""; }; + B339438B20783CC0008DBAB4 /* flycast-ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "flycast-ios-Info.plist"; sourceTree = ""; }; + B339438C20783CC0008DBAB4 /* SettingsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = ""; }; + B339438D20783CC0008DBAB4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + B339438E20783CC0008DBAB4 /* SideDrawerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SideDrawerViewController.h; sourceTree = ""; }; + B339438F20783CC0008DBAB4 /* PadViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PadViewController.h; sourceTree = ""; }; + B339439020783CC0008DBAB4 /* SWRevealViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SWRevealViewController.m; sourceTree = ""; }; + B339439220783CC0008DBAB4 /* iCadeReaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iCadeReaderView.m; sourceTree = ""; }; + B339439320783CC0008DBAB4 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + B339439420783CC0008DBAB4 /* iCadeReaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iCadeReaderView.h; sourceTree = ""; }; + B339439520783CC0008DBAB4 /* iCadeState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iCadeState.h; sourceTree = ""; }; + B339439620783CC0008DBAB4 /* CloudVMUViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CloudVMUViewController.h; sourceTree = ""; }; + B339439720783CC0008DBAB4 /* MainStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainStoryboard.storyboard; sourceTree = ""; }; + B339439820783CC0008DBAB4 /* flycast.xcworkspace */ = {isa = PBXFileReference; lastKnownFileType = wrapper.workspace; path = flycast.xcworkspace; sourceTree = ""; }; + B339439920783CC0008DBAB4 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + B339439B20783CC0008DBAB4 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + B339439D20783CC0008DBAB4 /* Linux-x86.cmake */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Linux-x86.cmake"; sourceTree = ""; }; + B339439F20783CC0008DBAB4 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; }; + B33943A020783CC0008DBAB4 /* 3675.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 3675.png; sourceTree = ""; }; + B33943A320783CC0008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B33943A720783CC0008DBAB4 /* DECkeysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DECkeysym.h; sourceTree = ""; }; + B33943A820783CC0008DBAB4 /* Xos_r.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xos_r.h; sourceTree = ""; }; + B33943A920783CC0008DBAB4 /* Xutil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xutil.h; sourceTree = ""; }; + B33943AB20783CC0008DBAB4 /* Right */ = {isa = PBXFileReference; lastKnownFileType = text; path = Right; sourceTree = ""; }; + B33943AC20783CC0008DBAB4 /* Dashes */ = {isa = PBXFileReference; lastKnownFileType = text; path = Dashes; sourceTree = ""; }; + B33943AD20783CC0008DBAB4 /* gray */ = {isa = PBXFileReference; lastKnownFileType = text; path = gray; sourceTree = ""; }; + B33943AE20783CC0008DBAB4 /* wide_weave */ = {isa = PBXFileReference; lastKnownFileType = text; path = wide_weave; sourceTree = ""; }; + B33943AF20783CC0008DBAB4 /* cross_weave */ = {isa = PBXFileReference; lastKnownFileType = text; path = cross_weave; sourceTree = ""; }; + B33943B020783CC0008DBAB4 /* xfd_icon */ = {isa = PBXFileReference; lastKnownFileType = text; path = xfd_icon; sourceTree = ""; }; + B33943B120783CC0008DBAB4 /* flipped_gray */ = {isa = PBXFileReference; lastKnownFileType = text; path = flipped_gray; sourceTree = ""; }; + B33943B220783CC0008DBAB4 /* stipple */ = {isa = PBXFileReference; lastKnownFileType = text; path = stipple; sourceTree = ""; }; + B33943B320783CC0008DBAB4 /* rdblarrow */ = {isa = PBXFileReference; lastKnownFileType = text; path = rdblarrow; sourceTree = ""; }; + B33943B420783CC0008DBAB4 /* tie_fighter */ = {isa = PBXFileReference; lastKnownFileType = text; path = tie_fighter; sourceTree = ""; }; + B33943B520783CC0008DBAB4 /* cntr_ptrmsk */ = {isa = PBXFileReference; lastKnownFileType = text; path = cntr_ptrmsk; sourceTree = ""; }; + B33943B620783CC0008DBAB4 /* starMask */ = {isa = PBXFileReference; lastKnownFileType = text; path = starMask; sourceTree = ""; }; + B33943B720783CC0008DBAB4 /* letters */ = {isa = PBXFileReference; lastKnownFileType = text; path = letters; sourceTree = ""; }; + B33943B820783CC0008DBAB4 /* grid16 */ = {isa = PBXFileReference; lastKnownFileType = text; path = grid16; sourceTree = ""; }; + B33943B920783CC0008DBAB4 /* calculator */ = {isa = PBXFileReference; lastKnownFileType = text; path = calculator; sourceTree = ""; }; + B33943BA20783CC0008DBAB4 /* dot */ = {isa = PBXFileReference; lastKnownFileType = text; path = dot; sourceTree = ""; }; + B33943BB20783CC0008DBAB4 /* Excl */ = {isa = PBXFileReference; lastKnownFileType = text; path = Excl; sourceTree = ""; }; + B33943BC20783CC0008DBAB4 /* wingdogs */ = {isa = PBXFileReference; lastKnownFileType = text; path = wingdogs; sourceTree = ""; }; + B33943BD20783CC0008DBAB4 /* mailempty */ = {isa = PBXFileReference; lastKnownFileType = text; path = mailempty; sourceTree = ""; }; + B33943BE20783CC0008DBAB4 /* xlogo64 */ = {isa = PBXFileReference; lastKnownFileType = text; path = xlogo64; sourceTree = ""; }; + B33943BF20783CC0008DBAB4 /* target */ = {isa = PBXFileReference; lastKnownFileType = text; path = target; sourceTree = ""; }; + B33943C020783CC0008DBAB4 /* gray1 */ = {isa = PBXFileReference; lastKnownFileType = text; path = gray1; sourceTree = ""; }; + B33943C120783CC0008DBAB4 /* dropbar8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = dropbar8; sourceTree = ""; }; + B33943C220783CC0008DBAB4 /* black6 */ = {isa = PBXFileReference; lastKnownFileType = text; path = black6; sourceTree = ""; }; + B33943C320783CC0008DBAB4 /* Term */ = {isa = PBXFileReference; lastKnownFileType = text; path = Term; sourceTree = ""; }; + B33943C420783CC0008DBAB4 /* left_ptrmsk */ = {isa = PBXFileReference; lastKnownFileType = text; path = left_ptrmsk; sourceTree = ""; }; + B33943C520783CC0008DBAB4 /* dropbar7 */ = {isa = PBXFileReference; lastKnownFileType = text; path = dropbar7; sourceTree = ""; }; + B33943C620783CC0008DBAB4 /* dimple3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = dimple3; sourceTree = ""; }; + B33943C720783CC0008DBAB4 /* Left */ = {isa = PBXFileReference; lastKnownFileType = text; path = Left; sourceTree = ""; }; + B33943C820783CC0008DBAB4 /* weird_size */ = {isa = PBXFileReference; lastKnownFileType = text; path = weird_size; sourceTree = ""; }; + B33943C920783CC0008DBAB4 /* ldblarrow */ = {isa = PBXFileReference; lastKnownFileType = text; path = ldblarrow; sourceTree = ""; }; + B33943CA20783CC0008DBAB4 /* terminal */ = {isa = PBXFileReference; lastKnownFileType = text; path = terminal; sourceTree = ""; }; + B33943CB20783CC0008DBAB4 /* escherknot */ = {isa = PBXFileReference; lastKnownFileType = text; path = escherknot; sourceTree = ""; }; + B33943CC20783CC0008DBAB4 /* root_weave */ = {isa = PBXFileReference; lastKnownFileType = text; path = root_weave; sourceTree = ""; }; + B33943CD20783CC0008DBAB4 /* RotateLeft */ = {isa = PBXFileReference; lastKnownFileType = text; path = RotateLeft; sourceTree = ""; }; + B33943CE20783CC0008DBAB4 /* light_gray */ = {isa = PBXFileReference; lastKnownFileType = text; path = light_gray; sourceTree = ""; }; + B33943CF20783CC0008DBAB4 /* grid8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = grid8; sourceTree = ""; }; + B33943D020783CC0008DBAB4 /* 1x1 */ = {isa = PBXFileReference; lastKnownFileType = text; path = 1x1; sourceTree = ""; }; + B33943D120783CC0008DBAB4 /* menu12 */ = {isa = PBXFileReference; lastKnownFileType = text; path = menu12; sourceTree = ""; }; + B33943D220783CC0008DBAB4 /* mailfull */ = {isa = PBXFileReference; lastKnownFileType = text; path = mailfull; sourceTree = ""; }; + B33943D320783CC0008DBAB4 /* scales */ = {isa = PBXFileReference; lastKnownFileType = text; path = scales; sourceTree = ""; }; + B33943D420783CC0008DBAB4 /* noletters */ = {isa = PBXFileReference; lastKnownFileType = text; path = noletters; sourceTree = ""; }; + B33943D520783CC0008DBAB4 /* RotateRight */ = {isa = PBXFileReference; lastKnownFileType = text; path = RotateRight; sourceTree = ""; }; + B33943D620783CC0008DBAB4 /* FlipHoriz */ = {isa = PBXFileReference; lastKnownFileType = text; path = FlipHoriz; sourceTree = ""; }; + B33943D720783CC0008DBAB4 /* flagdown */ = {isa = PBXFileReference; lastKnownFileType = text; path = flagdown; sourceTree = ""; }; + B33943D820783CC0008DBAB4 /* star */ = {isa = PBXFileReference; lastKnownFileType = text; path = star; sourceTree = ""; }; + B33943D920783CC0008DBAB4 /* box6 */ = {isa = PBXFileReference; lastKnownFileType = text; path = box6; sourceTree = ""; }; + B33943DA20783CC0008DBAB4 /* Up */ = {isa = PBXFileReference; lastKnownFileType = text; path = Up; sourceTree = ""; }; + B33943DB20783CC1008DBAB4 /* vlines3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = vlines3; sourceTree = ""; }; + B33943DC20783CC1008DBAB4 /* mailemptymsk */ = {isa = PBXFileReference; lastKnownFileType = text; path = mailemptymsk; sourceTree = ""; }; + B33943DD20783CC1008DBAB4 /* left_ptr */ = {isa = PBXFileReference; lastKnownFileType = text; path = left_ptr; sourceTree = ""; }; + B33943DE20783CC1008DBAB4 /* xsnow */ = {isa = PBXFileReference; lastKnownFileType = text; path = xsnow; sourceTree = ""; }; + B33943DF20783CC1008DBAB4 /* menu6 */ = {isa = PBXFileReference; lastKnownFileType = text; path = menu6; sourceTree = ""; }; + B33943E020783CC1008DBAB4 /* vlines2 */ = {isa = PBXFileReference; lastKnownFileType = text; path = vlines2; sourceTree = ""; }; + B33943E120783CC1008DBAB4 /* menu8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = menu8; sourceTree = ""; }; + B33943E220783CC1008DBAB4 /* 2x2 */ = {isa = PBXFileReference; lastKnownFileType = text; path = 2x2; sourceTree = ""; }; + B33943E320783CC1008DBAB4 /* xlogo16 */ = {isa = PBXFileReference; lastKnownFileType = text; path = xlogo16; sourceTree = ""; }; + B33943E420783CC1008DBAB4 /* Fold */ = {isa = PBXFileReference; lastKnownFileType = text; path = Fold; sourceTree = ""; }; + B33943E520783CC1008DBAB4 /* xlogo11 */ = {isa = PBXFileReference; lastKnownFileType = text; path = xlogo11; sourceTree = ""; }; + B33943E620783CC1008DBAB4 /* sipb */ = {isa = PBXFileReference; lastKnownFileType = text; path = sipb; sourceTree = ""; }; + B33943E720783CC1008DBAB4 /* Down */ = {isa = PBXFileReference; lastKnownFileType = text; path = Down; sourceTree = ""; }; + B33943E820783CC1008DBAB4 /* hlines3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = hlines3; sourceTree = ""; }; + B33943E920783CC1008DBAB4 /* plaid */ = {isa = PBXFileReference; lastKnownFileType = text; path = plaid; sourceTree = ""; }; + B33943EA20783CC1008DBAB4 /* cntr_ptr */ = {isa = PBXFileReference; lastKnownFileType = text; path = cntr_ptr; sourceTree = ""; }; + B33943EB20783CC1008DBAB4 /* right_ptr */ = {isa = PBXFileReference; lastKnownFileType = text; path = right_ptr; sourceTree = ""; }; + B33943EC20783CC1008DBAB4 /* FlipVert */ = {isa = PBXFileReference; lastKnownFileType = text; path = FlipVert; sourceTree = ""; }; + B33943ED20783CC1008DBAB4 /* gray3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = gray3; sourceTree = ""; }; + B33943EE20783CC1008DBAB4 /* icon */ = {isa = PBXFileReference; lastKnownFileType = text; path = icon; sourceTree = ""; }; + B33943EF20783CC1008DBAB4 /* xlogo32 */ = {isa = PBXFileReference; lastKnownFileType = text; path = xlogo32; sourceTree = ""; }; + B33943F020783CC1008DBAB4 /* hlines2 */ = {isa = PBXFileReference; lastKnownFileType = text; path = hlines2; sourceTree = ""; }; + B33943F120783CC1008DBAB4 /* menu10 */ = {isa = PBXFileReference; lastKnownFileType = text; path = menu10; sourceTree = ""; }; + B33943F220783CC1008DBAB4 /* black */ = {isa = PBXFileReference; lastKnownFileType = text; path = black; sourceTree = ""; }; + B33943F320783CC1008DBAB4 /* mensetmanus */ = {isa = PBXFileReference; lastKnownFileType = text; path = mensetmanus; sourceTree = ""; }; + B33943F420783CC1008DBAB4 /* grid4 */ = {isa = PBXFileReference; lastKnownFileType = text; path = grid4; sourceTree = ""; }; + B33943F520783CC1008DBAB4 /* opendotMask */ = {isa = PBXFileReference; lastKnownFileType = text; path = opendotMask; sourceTree = ""; }; + B33943F620783CC1008DBAB4 /* opendot */ = {isa = PBXFileReference; lastKnownFileType = text; path = opendot; sourceTree = ""; }; + B33943F720783CC1008DBAB4 /* right_ptrmsk */ = {isa = PBXFileReference; lastKnownFileType = text; path = right_ptrmsk; sourceTree = ""; }; + B33943F820783CC1008DBAB4 /* mailfullmsk */ = {isa = PBXFileReference; lastKnownFileType = text; path = mailfullmsk; sourceTree = ""; }; + B33943F920783CC1008DBAB4 /* menu16 */ = {isa = PBXFileReference; lastKnownFileType = text; path = menu16; sourceTree = ""; }; + B33943FA20783CC1008DBAB4 /* woman */ = {isa = PBXFileReference; lastKnownFileType = text; path = woman; sourceTree = ""; }; + B33943FB20783CC1008DBAB4 /* flagup */ = {isa = PBXFileReference; lastKnownFileType = text; path = flagup; sourceTree = ""; }; + B33943FC20783CC1008DBAB4 /* dimple1 */ = {isa = PBXFileReference; lastKnownFileType = text; path = dimple1; sourceTree = ""; }; + B33943FD20783CC1008DBAB4 /* grid2 */ = {isa = PBXFileReference; lastKnownFileType = text; path = grid2; sourceTree = ""; }; + B33943FE20783CC1008DBAB4 /* boxes */ = {isa = PBXFileReference; lastKnownFileType = text; path = boxes; sourceTree = ""; }; + B33943FF20783CC1008DBAB4 /* keyboard16 */ = {isa = PBXFileReference; lastKnownFileType = text; path = keyboard16; sourceTree = ""; }; + B339440020783CC1008DBAB4 /* Xresource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xresource.h; sourceTree = ""; }; + B339440120783CC1008DBAB4 /* Xmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xmd.h; sourceTree = ""; }; + B339440220783CC1008DBAB4 /* Xdmcp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xdmcp.h; sourceTree = ""; }; + B339440320783CC1008DBAB4 /* Xauth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xauth.h; sourceTree = ""; }; + B339440420783CC1008DBAB4 /* ap_keysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ap_keysym.h; sourceTree = ""; }; + B339440520783CC1008DBAB4 /* Xatom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xatom.h; sourceTree = ""; }; + B339440720783CC1008DBAB4 /* Xtranstli.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xtranstli.c; sourceTree = ""; }; + B339440820783CC1008DBAB4 /* Xtranssock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xtranssock.c; sourceTree = ""; }; + B339440920783CC1008DBAB4 /* transport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = transport.c; sourceTree = ""; }; + B339440A20783CC1008DBAB4 /* Xtrans.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xtrans.h; sourceTree = ""; }; + B339440B20783CC1008DBAB4 /* Xtranslcl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xtranslcl.c; sourceTree = ""; }; + B339440C20783CC1008DBAB4 /* Xtransint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xtransint.h; sourceTree = ""; }; + B339440D20783CC1008DBAB4 /* Xtransutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xtransutil.c; sourceTree = ""; }; + B339440E20783CC1008DBAB4 /* Xtrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xtrans.c; sourceTree = ""; }; + B339440F20783CC1008DBAB4 /* Xos.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xos.h; sourceTree = ""; }; + B339441020783CC1008DBAB4 /* Xlocale.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xlocale.h; sourceTree = ""; }; + B339441120783CC1008DBAB4 /* ImUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImUtil.h; sourceTree = ""; }; + B339441220783CC1008DBAB4 /* Xarch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xarch.h; sourceTree = ""; }; + B339441320783CC1008DBAB4 /* Xlibint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xlibint.h; sourceTree = ""; }; + B339441420783CC1008DBAB4 /* Xpoll.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xpoll.h; sourceTree = ""; }; + B339441520783CC1008DBAB4 /* Xlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xlib.h; sourceTree = ""; }; + B339441620783CC1008DBAB4 /* cursorfont.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cursorfont.h; sourceTree = ""; }; + B339441720783CC1008DBAB4 /* Xproto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xproto.h; sourceTree = ""; }; + B339441820783CC1008DBAB4 /* XWDFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XWDFile.h; sourceTree = ""; }; + B339441A20783CC1008DBAB4 /* XKBsrv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKBsrv.h; sourceTree = ""; }; + B339441B20783CC1008DBAB4 /* XKBproto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKBproto.h; sourceTree = ""; }; + B339441C20783CC1008DBAB4 /* XKB.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKB.h; sourceTree = ""; }; + B339441D20783CC1008DBAB4 /* XI2proto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XI2proto.h; sourceTree = ""; }; + B339441E20783CC1008DBAB4 /* XIproto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XIproto.h; sourceTree = ""; }; + B339441F20783CC1008DBAB4 /* XI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XI.h; sourceTree = ""; }; + B339442020783CC1008DBAB4 /* XKBgeom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKBgeom.h; sourceTree = ""; }; + B339442120783CC1008DBAB4 /* XI2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XI2.h; sourceTree = ""; }; + B339442220783CC1008DBAB4 /* XKBstr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKBstr.h; sourceTree = ""; }; + B339442320783CC1008DBAB4 /* Xalloca.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xalloca.h; sourceTree = ""; }; + B339442420783CC1008DBAB4 /* Sunkeysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Sunkeysym.h; sourceTree = ""; }; + B339442520783CC1008DBAB4 /* Xfuncproto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xfuncproto.h; sourceTree = ""; }; + B339442620783CC1008DBAB4 /* Xwindows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xwindows.h; sourceTree = ""; }; + B339442720783CC1008DBAB4 /* keysymdef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = keysymdef.h; sourceTree = ""; }; + B339442820783CC1008DBAB4 /* XKBlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XKBlib.h; sourceTree = ""; }; + B339442920783CC1008DBAB4 /* Xthreads.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xthreads.h; sourceTree = ""; }; + B339442A20783CC1008DBAB4 /* Xdefs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xdefs.h; sourceTree = ""; }; + B339442B20783CC1008DBAB4 /* HPkeysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HPkeysym.h; sourceTree = ""; }; + B339442C20783CC1008DBAB4 /* Xregion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xregion.h; sourceTree = ""; }; + B339442D20783CC1008DBAB4 /* Xosdefs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xosdefs.h; sourceTree = ""; }; + B339442E20783CC1008DBAB4 /* keysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = keysym.h; sourceTree = ""; }; + B339442F20783CC1008DBAB4 /* Xwinsock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xwinsock.h; sourceTree = ""; }; + B339443020783CC1008DBAB4 /* XF86keysym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XF86keysym.h; sourceTree = ""; }; + B339443120783CC1008DBAB4 /* Xprotostr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xprotostr.h; sourceTree = ""; }; + B339443220783CC1008DBAB4 /* Xfuncs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xfuncs.h; sourceTree = ""; }; + B339443320783CC1008DBAB4 /* X.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = X.h; sourceTree = ""; }; + B339443420783CC1008DBAB4 /* Xw32defs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xw32defs.h; sourceTree = ""; }; + B339443520783CC1008DBAB4 /* XlibConf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XlibConf.h; sourceTree = ""; }; + B339443620783CC1008DBAB4 /* Xcms.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xcms.h; sourceTree = ""; }; + B339443820783CC1008DBAB4 /* seq_event.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = seq_event.h; sourceTree = ""; }; + B339443920783CC1008DBAB4 /* error.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = ""; }; + B339443A20783CC1008DBAB4 /* pcm_ioplug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_ioplug.h; sourceTree = ""; }; + B339443B20783CC1008DBAB4 /* control_external.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = control_external.h; sourceTree = ""; }; + B339443C20783CC1008DBAB4 /* input.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = input.h; sourceTree = ""; }; + B339443D20783CC1008DBAB4 /* control.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = control.h; sourceTree = ""; }; + B339443E20783CC1008DBAB4 /* version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + B339443F20783CC1008DBAB4 /* seq.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = seq.h; sourceTree = ""; }; + B339444020783CC1008DBAB4 /* pcm_external.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_external.h; sourceTree = ""; }; + B339444120783CC1008DBAB4 /* alisp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = alisp.h; sourceTree = ""; }; + B339444220783CC1008DBAB4 /* iatomic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iatomic.h; sourceTree = ""; }; + B339444320783CC1008DBAB4 /* global.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = global.h; sourceTree = ""; }; + B339444420783CC1008DBAB4 /* asoundlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = asoundlib.h; sourceTree = ""; }; + B339444520783CC1008DBAB4 /* conf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = conf.h; sourceTree = ""; }; + B339444620783CC1008DBAB4 /* seqmid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = seqmid.h; sourceTree = ""; }; + B339444720783CC1008DBAB4 /* pcm_rate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_rate.h; sourceTree = ""; }; + B339444820783CC1008DBAB4 /* seq_midi_event.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = seq_midi_event.h; sourceTree = ""; }; + B339444920783CC1008DBAB4 /* output.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = output.h; sourceTree = ""; }; + B339444A20783CC1008DBAB4 /* timer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; + B339444B20783CC1008DBAB4 /* mixer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mixer.h; sourceTree = ""; }; + B339444C20783CC1008DBAB4 /* mixer_abst.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mixer_abst.h; sourceTree = ""; }; + B339444D20783CC1008DBAB4 /* rawmidi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rawmidi.h; sourceTree = ""; }; + B339444E20783CC1008DBAB4 /* pcm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm.h; sourceTree = ""; }; + B339444F20783CC1008DBAB4 /* use-case.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "use-case.h"; sourceTree = ""; }; + B339445020783CC1008DBAB4 /* hwdep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hwdep.h; sourceTree = ""; }; + B339445120783CC1008DBAB4 /* asoundef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = asoundef.h; sourceTree = ""; }; + B339445220783CC1008DBAB4 /* pcm_old.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_old.h; sourceTree = ""; }; + B339445320783CC1008DBAB4 /* pcm_extplug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_extplug.h; sourceTree = ""; }; + B339445520783CC1008DBAB4 /* sb16_csp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sb16_csp.h; sourceTree = ""; }; + B339445620783CC1008DBAB4 /* sscape_ioctl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sscape_ioctl.h; sourceTree = ""; }; + B339445720783CC1008DBAB4 /* type_compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = type_compat.h; sourceTree = ""; }; + B339445820783CC1008DBAB4 /* emu10k1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = emu10k1.h; sourceTree = ""; }; + B339445920783CC1008DBAB4 /* asound_fm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = asound_fm.h; sourceTree = ""; }; + B339445A20783CC1008DBAB4 /* hdspm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hdspm.h; sourceTree = ""; }; + B339445B20783CC1008DBAB4 /* hdsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hdsp.h; sourceTree = ""; }; + B339445C20783CC1008DBAB4 /* pcm_plugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcm_plugin.h; sourceTree = ""; }; + B339445E20783CC1008DBAB4 /* libGLESv2.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libGLESv2.so; sourceTree = ""; }; + B339445F20783CC1008DBAB4 /* libX11.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libX11.so; sourceTree = ""; }; + B339446020783CC1008DBAB4 /* libxcb.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libxcb.so; sourceTree = ""; }; + B339446120783CC1008DBAB4 /* libasound.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libasound.so; sourceTree = ""; }; + B339446220783CC1008DBAB4 /* libXau.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libXau.so; sourceTree = ""; }; + B339446320783CC1008DBAB4 /* alibX11.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = alibX11.so; sourceTree = ""; }; + B339446420783CC1008DBAB4 /* libEGL.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libEGL.so; sourceTree = ""; }; + B339446520783CC1008DBAB4 /* libXdmcp.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libXdmcp.so; sourceTree = ""; }; + B339446620783CC1008DBAB4 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + B339446820783CC1008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B339446A20783CC1008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B339446E20783CC1008DBAB4 /* flycast-joyconfig.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = "flycast-joyconfig.1"; sourceTree = ""; }; + B339446F20783CC1008DBAB4 /* flycast.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = flycast.1; sourceTree = ""; }; + B339447120783CC1008DBAB4 /* flycast-joyconfig.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = "flycast-joyconfig.py"; sourceTree = ""; }; + B339447220783CC1008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B339447320783CC1008DBAB4 /* flycast.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = flycast.png; sourceTree = ""; }; + B339447620783CC1008DBAB4 /* libGLESv2.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libGLESv2.so; sourceTree = ""; }; + B339447720783CC1008DBAB4 /* libEGL.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libEGL.so; sourceTree = ""; }; + B339447820783CC1008DBAB4 /* libdrm.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libdrm.so; sourceTree = ""; }; + B339447920783CC1008DBAB4 /* libglapi.so */ = {isa = PBXFileReference; lastKnownFileType = file; path = libglapi.so; sourceTree = ""; }; + B339447A20783CC1008DBAB4 /* default.gcw0.desktop */ = {isa = PBXFileReference; lastKnownFileType = text; path = default.gcw0.desktop; sourceTree = ""; }; + B339447B20783CC1008DBAB4 /* icon-32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-32.png"; sourceTree = ""; }; + B339447D20783CC1008DBAB4 /* controller_pandora.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = controller_pandora.cfg; sourceTree = ""; }; + B339447E20783CC1008DBAB4 /* controller_generic.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = controller_generic.cfg; sourceTree = ""; }; + B339447F20783CC1008DBAB4 /* keyboard.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = keyboard.cfg; sourceTree = ""; }; + B339448020783CC1008DBAB4 /* controller_xpad.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = controller_xpad.cfg; sourceTree = ""; }; + B339448120783CC1008DBAB4 /* controller_gcwz.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = controller_gcwz.cfg; sourceTree = ""; }; + B339448220783CC1008DBAB4 /* controller_xboxdrv.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = controller_xboxdrv.cfg; sourceTree = ""; }; + B339448320783CC1008DBAB4 /* flycast.desktop */ = {isa = PBXFileReference; lastKnownFileType = text; path = flycast.desktop; sourceTree = ""; }; + B339448720783CC1008DBAB4 /* popup_show */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = popup_show; sourceTree = ""; }; + B339448820783CC1008DBAB4 /* popup_hide */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = popup_hide; sourceTree = ""; }; + B339448A20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339448C20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339448E20783CC1008DBAB4 /* input_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = input_fragment.xml; sourceTree = ""; }; + B339448F20783CC1008DBAB4 /* input_mod_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = input_mod_fragment.xml; sourceTree = ""; }; + B339449020783CC1008DBAB4 /* configure_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = configure_fragment.xml; sourceTree = ""; }; + B339449220783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339449420783CC1008DBAB4 /* menutile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menutile.png; sourceTree = ""; }; + B339449520783CC1008DBAB4 /* vmu_swap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vmu_swap.png; sourceTree = ""; }; + B339449620783CC1008DBAB4 /* list_selector.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = list_selector.xml; sourceTree = ""; }; + B339449720783CC1008DBAB4 /* chd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chd.png; sourceTree = ""; }; + B339449820783CC1008DBAB4 /* disc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disc.png; sourceTree = ""; }; + B339449920783CC1008DBAB4 /* disk_unknown.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disk_unknown.png; sourceTree = ""; }; + B339449A20783CC1008DBAB4 /* widescreen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = widescreen.png; sourceTree = ""; }; + B339449B20783CC1008DBAB4 /* ic_xperia_play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_xperia_play.png; sourceTree = ""; }; + B339449C20783CC1008DBAB4 /* open_folder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = open_folder.png; sourceTree = ""; }; + B339449D20783CC1008DBAB4 /* question.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = question.png; sourceTree = ""; }; + B339449E20783CC1008DBAB4 /* up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = up.png; sourceTree = ""; }; + B339449F20783CC1008DBAB4 /* mute_sound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mute_sound.png; sourceTree = ""; }; + B33944A020783CC1008DBAB4 /* toggle_r_l.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = toggle_r_l.png; sourceTree = ""; }; + B33944A120783CC1008DBAB4 /* apply.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = apply.png; sourceTree = ""; }; + B33944A220783CC1008DBAB4 /* reset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = reset.png; sourceTree = ""; }; + B33944A320783CC1008DBAB4 /* rounded.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = rounded.xml; sourceTree = ""; }; + B33944A420783CC1008DBAB4 /* gradient_bg_hover.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = gradient_bg_hover.xml; sourceTree = ""; }; + B33944A520783CC1008DBAB4 /* debug.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = debug.png; sourceTree = ""; }; + B33944A620783CC1008DBAB4 /* gradient_bg.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = gradient_bg.xml; sourceTree = ""; }; + B33944A720783CC1008DBAB4 /* toggle_a_b.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = toggle_a_b.png; sourceTree = ""; }; + B33944A820783CC1008DBAB4 /* background.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = background.xml; sourceTree = ""; }; + B33944A920783CC1008DBAB4 /* config.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = config.png; sourceTree = ""; }; + B33944AA20783CC1008DBAB4 /* frames_up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = frames_up.png; sourceTree = ""; }; + B33944AB20783CC1008DBAB4 /* print_stats.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = print_stats.png; sourceTree = ""; }; + B33944AC20783CC1008DBAB4 /* mic_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mic_icon.png; sourceTree = ""; }; + B33944AD20783CC1008DBAB4 /* cloud.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloud.png; sourceTree = ""; }; + B33944AE20783CC1008DBAB4 /* game_selector.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = game_selector.xml; sourceTree = ""; }; + B33944AF20783CC1008DBAB4 /* frames_limit_on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = frames_limit_on.png; sourceTree = ""; }; + B33944B020783CC1008DBAB4 /* enable_sound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = enable_sound.png; sourceTree = ""; }; + B33944B120783CC1008DBAB4 /* list_item_border.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = list_item_border.xml; sourceTree = ""; }; + B33944B220783CC1008DBAB4 /* image_bg.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = image_bg.xml; sourceTree = ""; }; + B33944B320783CC1008DBAB4 /* input.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = input.png; sourceTree = ""; }; + B33944B420783CC1008DBAB4 /* normal_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = normal_view.png; sourceTree = ""; }; + B33944B520783CC1008DBAB4 /* star.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = star.png; sourceTree = ""; }; + B33944B620783CC1008DBAB4 /* cd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cd.png; sourceTree = ""; }; + B33944B720783CC1008DBAB4 /* shadow.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = shadow.xml; sourceTree = ""; }; + B33944B820783CC1008DBAB4 /* disk_swap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disk_swap.png; sourceTree = ""; }; + B33944B920783CC1008DBAB4 /* gdi.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gdi.png; sourceTree = ""; }; + B33944BA20783CC1008DBAB4 /* frames_down.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = frames_down.png; sourceTree = ""; }; + B33944BB20783CC1008DBAB4 /* ic_banner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_banner.png; sourceTree = ""; }; + B33944BC20783CC1008DBAB4 /* cdi.pdn */ = {isa = PBXFileReference; lastKnownFileType = file; path = cdi.pdn; sourceTree = ""; }; + B33944BD20783CC1008DBAB4 /* profiler.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = profiler.png; sourceTree = ""; }; + B33944BE20783CC1008DBAB4 /* clear_cache.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = clear_cache.png; sourceTree = ""; }; + B33944BF20783CC1008DBAB4 /* cloud_big.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloud_big.png; sourceTree = ""; }; + B33944C020783CC1008DBAB4 /* menuback.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuback.png; sourceTree = ""; }; + B33944C120783CC1008DBAB4 /* frames_limit_off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = frames_limit_off.png; sourceTree = ""; }; + B33944C220783CC1008DBAB4 /* close.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = close.png; sourceTree = ""; }; + B33944C420783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B33944C620783CC1008DBAB4 /* mainuilayout_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = mainuilayout_fragment.xml; sourceTree = ""; }; + B33944C720783CC1008DBAB4 /* menu_popup_config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = menu_popup_config.xml; sourceTree = ""; }; + B33944C820783CC1008DBAB4 /* head_list_item.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = head_list_item.xml; sourceTree = ""; }; + B33944C920783CC1008DBAB4 /* bios_list_item.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = bios_list_item.xml; sourceTree = ""; }; + B33944CA20783CC1008DBAB4 /* menu_popup_debug.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = menu_popup_debug.xml; sourceTree = ""; }; + B33944CB20783CC1008DBAB4 /* input_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = input_fragment.xml; sourceTree = ""; }; + B33944CC20783CC1008DBAB4 /* menu_popup_main.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = menu_popup_main.xml; sourceTree = ""; }; + B33944CD20783CC1008DBAB4 /* webview.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = webview.xml; sourceTree = ""; }; + B33944CE20783CC1008DBAB4 /* about_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = about_fragment.xml; sourceTree = ""; }; + B33944CF20783CC1008DBAB4 /* app_list_item.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = app_list_item.xml; sourceTree = ""; }; + B33944D020783CC1008DBAB4 /* input_mod_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = input_mod_fragment.xml; sourceTree = ""; }; + B33944D120783CC1008DBAB4 /* toast_layout.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = toast_layout.xml; sourceTree = ""; }; + B33944D220783CC1008DBAB4 /* spinner_selected.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = spinner_selected.xml; sourceTree = ""; }; + B33944D320783CC1008DBAB4 /* dialog_item.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = dialog_item.xml; sourceTree = ""; }; + B33944D420783CC1008DBAB4 /* change_item.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = change_item.xml; sourceTree = ""; }; + B33944D520783CC1008DBAB4 /* activity_main.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = activity_main.xml; sourceTree = ""; }; + B33944D620783CC1008DBAB4 /* cloud_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = cloud_fragment.xml; sourceTree = ""; }; + B33944D720783CC1008DBAB4 /* configure_fragment.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = configure_fragment.xml; sourceTree = ""; }; + B33944D920783CC1008DBAB4 /* dimens.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = dimens.xml; sourceTree = ""; }; + B33944DA20783CC1008DBAB4 /* donottranslate.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = donottranslate.xml; sourceTree = ""; }; + B33944DB20783CC1008DBAB4 /* styles.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = styles.xml; sourceTree = ""; }; + B33944DC20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B33944DD20783CC1008DBAB4 /* ids.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = ids.xml; sourceTree = ""; }; + B33944DF20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B33944E120783CC1008DBAB4 /* ic_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_notification.png; sourceTree = ""; }; + B33944E220783CC1008DBAB4 /* ic_action_search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_action_search.png; sourceTree = ""; }; + B33944E320783CC1008DBAB4 /* ic_github.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_github.png; sourceTree = ""; }; + B33944E420783CC1008DBAB4 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = ""; }; + B33944E520783CC1008DBAB4 /* ouya_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ouya_icon.png; sourceTree = ""; }; + B33944E720783CC1008DBAB4 /* ic_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_notification.png; sourceTree = ""; }; + B33944E820783CC1008DBAB4 /* ic_github.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_github.png; sourceTree = ""; }; + B33944E920783CC1008DBAB4 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = ""; }; + B33944EB20783CC1008DBAB4 /* ic_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_notification.png; sourceTree = ""; }; + B33944EC20783CC1008DBAB4 /* ic_action_search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_action_search.png; sourceTree = ""; }; + B33944ED20783CC1008DBAB4 /* ic_github.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_github.png; sourceTree = ""; }; + B33944EE20783CC1008DBAB4 /* ic_drawer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_drawer.png; sourceTree = ""; }; + B33944EF20783CC1008DBAB4 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = ""; }; + B33944F120783CC1008DBAB4 /* ic_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_notification.png; sourceTree = ""; }; + B33944F220783CC1008DBAB4 /* ic_github.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_github.png; sourceTree = ""; }; + B33944F320783CC1008DBAB4 /* ic_drawer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_drawer.png; sourceTree = ""; }; + B33944F420783CC1008DBAB4 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = ""; }; + B33944F620783CC1008DBAB4 /* dimens.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = dimens.xml; sourceTree = ""; }; + B33944F820783CC1008DBAB4 /* activity_main.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = activity_main.xml; sourceTree = ""; }; + B33944FA20783CC1008DBAB4 /* ic_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_notification.png; sourceTree = ""; }; + B33944FB20783CC1008DBAB4 /* ic_action_search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_action_search.png; sourceTree = ""; }; + B33944FC20783CC1008DBAB4 /* ic_github.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_github.png; sourceTree = ""; }; + B33944FD20783CC1008DBAB4 /* ic_drawer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_drawer.png; sourceTree = ""; }; + B33944FE20783CC1008DBAB4 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = ""; }; + B339450020783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450220783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450420783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450620783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450820783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450A20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450C20783CC1008DBAB4 /* strings.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = strings.xml; sourceTree = ""; }; + B339450D20783CC1008DBAB4 /* build.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = build.xml; sourceTree = ""; }; + B339450E20783CC1008DBAB4 /* ic_launcher-web.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_launcher-web.png"; sourceTree = ""; }; + B339451020783CC2008DBAB4 /* dctemplate.psd */ = {isa = PBXFileReference; lastKnownFileType = file; path = dctemplate.psd; sourceTree = ""; }; + B339451120783CC2008DBAB4 /* AndroidManifest.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = AndroidManifest.xml; sourceTree = ""; }; + B339451220783CC2008DBAB4 /* project.properties */ = {isa = PBXFileReference; lastKnownFileType = text; path = project.properties; sourceTree = ""; }; + B339451320783CC2008DBAB4 /* .classpath */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = .classpath; sourceTree = ""; }; + B339451520783CC2008DBAB4 /* commons-logging-1.1.1.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "commons-logging-1.1.1.jar"; sourceTree = ""; }; + B339451620783CC2008DBAB4 /* dropbox-android-sdk-1.6.1.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "dropbox-android-sdk-1.6.1.jar"; sourceTree = ""; }; + B339451720783CC2008DBAB4 /* android-support-v4.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "android-support-v4.jar"; sourceTree = ""; }; + B339451820783CC2008DBAB4 /* commons-io-2.4.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "commons-io-2.4.jar"; sourceTree = ""; }; + B339451920783CC2008DBAB4 /* image-uniload.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "image-uniload.jar"; sourceTree = ""; }; + B339451A20783CC2008DBAB4 /* commons-lang3-3.1.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "commons-lang3-3.1.jar"; sourceTree = ""; }; + B339451B20783CC2008DBAB4 /* ouya-sdk.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "ouya-sdk.jar"; sourceTree = ""; }; + B339451C20783CC2008DBAB4 /* json_simple-1.1.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "json_simple-1.1.jar"; sourceTree = ""; }; + B339451D20783CC2008DBAB4 /* com.bda.controller.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = com.bda.controller.jar; sourceTree = ""; }; + B339451E20783CC2008DBAB4 /* bcprov-jdk16-146.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = "bcprov-jdk16-146.jar"; sourceTree = ""; }; + B339451F20783CC2008DBAB4 /* proguard-project.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "proguard-project.txt"; sourceTree = ""; }; + B339452120783CC2008DBAB4 /* org.eclipse.jdt.core.prefs */ = {isa = PBXFileReference; lastKnownFileType = text; path = org.eclipse.jdt.core.prefs; sourceTree = ""; }; + B339452220783CC2008DBAB4 /* .project */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = .project; sourceTree = ""; }; + B339452420783CC2008DBAB4 /* cd.pdn */ = {isa = PBXFileReference; lastKnownFileType = file; path = cd.pdn; sourceTree = ""; }; + B339452620783CC2008DBAB4 /* Android.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = Android.mk; sourceTree = ""; }; + B339452720783CC2008DBAB4 /* Application.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = Application.mk; sourceTree = ""; }; + B339452920783CC2008DBAB4 /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + B339452A20783CC2008DBAB4 /* utils.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cpp; sourceTree = ""; }; + B339452B20783CC2008DBAB4 /* Android.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Android.cpp; sourceTree = ""; }; + B339452C20783CC2008DBAB4 /* XperiaPlay.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = XperiaPlay.c; sourceTree = ""; }; + B339452E20783CC2008DBAB4 /* buttons.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttons.png; sourceTree = ""; }; + B339452F20783CC2008DBAB4 /* build */ = {isa = PBXFileReference; lastKnownFileType = text; path = build; sourceTree = ""; }; + B339453020783CC2008DBAB4 /* custom_rules.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = custom_rules.xml; sourceTree = ""; }; + B339453620783CC2008DBAB4 /* GLCFactory6.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GLCFactory6.java; sourceTree = ""; }; + B339453720783CC2008DBAB4 /* JNIdc.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = JNIdc.java; sourceTree = ""; }; + B339453820783CC2008DBAB4 /* OnScreenMenu.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = OnScreenMenu.java; sourceTree = ""; }; + B339453920783CC2008DBAB4 /* GLCFactory.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GLCFactory.java; sourceTree = ""; }; + B339453A20783CC2008DBAB4 /* GL2JNIView.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GL2JNIView.java; sourceTree = ""; }; + B339453C20783CC2008DBAB4 /* InputFragment.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = InputFragment.java; sourceTree = ""; }; + B339453D20783CC2008DBAB4 /* EditVJoyActivity.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = EditVJoyActivity.java; sourceTree = ""; }; + B339453E20783CC2008DBAB4 /* OptionsFragment.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = OptionsFragment.java; sourceTree = ""; }; + B339453F20783CC2008DBAB4 /* InputModFragment.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = InputModFragment.java; sourceTree = ""; }; + B339454020783CC2008DBAB4 /* Config.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = Config.java; sourceTree = ""; }; + B339454120783CC2008DBAB4 /* GL2JNIActivity.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GL2JNIActivity.java; sourceTree = ""; }; + B339454220783CC2008DBAB4 /* MainActivity.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = MainActivity.java; sourceTree = ""; }; + B339454420783CC2008DBAB4 /* VJoy.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = VJoy.java; sourceTree = ""; }; + B339454520783CC2008DBAB4 /* SipEmulator.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = SipEmulator.java; sourceTree = ""; }; + B339454620783CC2008DBAB4 /* Gamepad.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = Gamepad.java; sourceTree = ""; }; + B339454720783CC2008DBAB4 /* MogaHack.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = MogaHack.java; sourceTree = ""; }; + B339454820783CC2008DBAB4 /* VmuLcd.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = VmuLcd.java; sourceTree = ""; }; + B339454920783CC2008DBAB4 /* MOGAInput.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = MOGAInput.java; sourceTree = ""; }; + B339454A20783CC2008DBAB4 /* CloudFragment.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = CloudFragment.java; sourceTree = ""; }; + B339454B20783CC2008DBAB4 /* GL2JNINative.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GL2JNINative.java; sourceTree = ""; }; + B339454C20783CC2008DBAB4 /* AboutFragment.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = AboutFragment.java; sourceTree = ""; }; + B339454D20783CC2008DBAB4 /* FileBrowser.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = FileBrowser.java; sourceTree = ""; }; + B339454F20783CC2008DBAB4 /* GitAdapter.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GitAdapter.java; sourceTree = ""; }; + B339455020783CC2008DBAB4 /* GenerateLogs.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = GenerateLogs.java; sourceTree = ""; }; + B339455120783CC2008DBAB4 /* UploadLogs.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = UploadLogs.java; sourceTree = ""; }; + B339455220783CC2008DBAB4 /* XMLParser.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = XMLParser.java; sourceTree = ""; }; + B339455520783CC2008DBAB4 /* FileUtils.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = FileUtils.java; sourceTree = ""; }; + B339455620783CC2008DBAB4 /* DreamTime.java */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.java; path = DreamTime.java; sourceTree = ""; }; + B339455820783CC2008DBAB4 /* index.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + B339455920783CC2008DBAB4 /* background.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = background.js; sourceTree = ""; }; + B339455A20783CC2008DBAB4 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B339455B20783CC2008DBAB4 /* icon128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon128.png; sourceTree = ""; }; + B339455C20783CC2008DBAB4 /* example.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = example.js; sourceTree = ""; }; + B339455D20783CC2008DBAB4 /* common.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = common.js; sourceTree = ""; }; + B339459820783CC2008DBAB4 /* microphone support notes.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "microphone support notes.txt"; sourceTree = ""; }; + B339459920783CC2008DBAB4 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + B33945B920783CC2008DBAB4 /* gdtool.vcxproj.filters */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = gdtool.vcxproj.filters; sourceTree = ""; }; + B33945BA20783CC2008DBAB4 /* gdtool.sln */ = {isa = PBXFileReference; lastKnownFileType = text; path = gdtool.sln; sourceTree = ""; }; + B33945BB20783CC2008DBAB4 /* gdtool.vcxproj */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = gdtool.vcxproj; sourceTree = ""; }; + B33945BC20783CC2008DBAB4 /* gdtool.vcxproj.user */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = gdtool.vcxproj.user; sourceTree = ""; }; + B33945BE20783CC2008DBAB4 /* cdromfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cdromfs.h; sourceTree = ""; }; + B33945BF20783CC2008DBAB4 /* cdromfs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cdromfs.cpp; sourceTree = ""; }; + B33945C020783CC2008DBAB4 /* cdromfs_imp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cdromfs_imp.h; sourceTree = ""; }; + B33945C120783CC2008DBAB4 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + B339468820783F41008DBAB4 /* libpthread.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libpthread.tbd; path = usr/lib/libpthread.tbd; sourceTree = SDKROOT; }; + B339468A20783F48008DBAB4 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + B3447E96218B809200557ACE /* PVFlycastCore+Controls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "PVFlycastCore+Controls.h"; sourceTree = ""; }; + B3447E97218B809300557ACE /* PVFlycastCore+Controls.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "PVFlycastCore+Controls.mm"; sourceTree = ""; }; + B3447E9A218B826F00557ACE /* PVFlycast+Audio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PVFlycast+Audio.h"; sourceTree = ""; }; + B3447E9B218B826F00557ACE /* PVFlycast+Audio.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "PVFlycast+Audio.mm"; sourceTree = ""; }; + B3447EA0218B881000557ACE /* PVFlycast.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PVFlycast.mm; sourceTree = ""; }; + B3447EA2218BBFB700557ACE /* PVFlycast+AudioTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PVFlycast+AudioTypes.h"; sourceTree = ""; }; + B3447EA4218BC36B00557ACE /* PVFlycast+CoreAudio.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "PVFlycast+CoreAudio.mm"; sourceTree = ""; }; + B3447EA6218BC3A600557ACE /* PVFlycast+CoreAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "PVFlycast+CoreAudio.h"; sourceTree = ""; }; + B3447EA9218BC59D00557ACE /* PVFlycastCore+Saves.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PVFlycastCore+Saves.h"; sourceTree = ""; }; + B3447EAA218BC59D00557ACE /* PVFlycastCore+Saves.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "PVFlycastCore+Saves.m"; sourceTree = ""; }; + B3447EAD218BC5C500557ACE /* PVFlycastCore+Video.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PVFlycastCore+Video.h"; sourceTree = ""; }; + B3447EAE218BC5C500557ACE /* PVFlycastCore+Video.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "PVFlycastCore+Video.m"; sourceTree = ""; }; + B3447EB1218BC69700557ACE /* PVFlycastCore+Audio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PVFlycastCore+Audio.h"; sourceTree = ""; }; + B3447EB2218BC69700557ACE /* PVFlycastCore+Audio.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "PVFlycastCore+Audio.m"; sourceTree = ""; }; + B3447EBF218BE9DA00557ACE /* BuildFlags.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = BuildFlags.xcconfig; sourceTree = ""; }; + B3447EE6218BEDD200557ACE /* PVFlycast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PVFlycast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3447F91218BEE3F00557ACE /* libflycast-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libflycast-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B35E6BEF207CD2610040709A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + B35E6BF1207CD2670040709A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + B35E6BF3207CD2730040709A /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + B35E6BF4207CD2740040709A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + B35E6BF8207D00D00040709A /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + B3B104B8218F281B00210C39 /* PVSupport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3C7621020783162009950E4 /* PVFlycast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PVFlycast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3C7621320783162009950E4 /* PVFlycast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PVFlycast.h; sourceTree = ""; }; + B3C7621420783162009950E4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B3C7621C20783243009950E4 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + B3C7621E2078325C009950E4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + B3C7622120783297009950E4 /* PVSupport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B3C76223207833DE009950E4 /* PVFlycastCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PVFlycastCore.h; sourceTree = ""; }; + B3C76224207833DE009950E4 /* PVFlycastCore.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PVFlycastCore.mm; sourceTree = ""; }; + B3C7622720783510009950E4 /* Core.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Core.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B30178D0207C901D0051B93D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3447ECA218BEDD200557ACE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B324C31C2191964F009F4EDC /* AVFoundation.framework in Frameworks */, + B3DDF56D26E9B90400CE47F0 /* libflycast-tvOS.a in Frameworks */, + B3B104B9218F281B00210C39 /* PVSupport.framework in Frameworks */, + B3447ECD218BEDD200557ACE /* CoreAudio.framework in Frameworks */, + B3447ECE218BEDD200557ACE /* AudioToolbox.framework in Frameworks */, + B3447ED0218BEDD200557ACE /* libz.tbd in Frameworks */, + B3447ED1218BEDD200557ACE /* libpthread.tbd in Frameworks */, + B3447ED3218BEDD200557ACE /* Foundation.framework in Frameworks */, + B3447ED4218BEDD200557ACE /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3447F8C218BEE3F00557ACE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3C7620C20783162009950E4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B35E6BF9207D00D00040709A /* AVFoundation.framework in Frameworks */, + B35E6BF5207CD2740040709A /* CoreAudioKit.framework in Frameworks */, + B35E6BF6207CD2740040709A /* CoreAudio.framework in Frameworks */, + B35E6BF2207CD2680040709A /* AudioToolbox.framework in Frameworks */, + B301797F207C909E0051B93D /* libflycast-iOS.a in Frameworks */, + B339468B20783F48008DBAB4 /* libz.tbd in Frameworks */, + B339468920783F41008DBAB4 /* libpthread.tbd in Frameworks */, + B3C7622220783297009950E4 /* PVSupport.framework in Frameworks */, + B3C7621F2078325C009950E4 /* Foundation.framework in Frameworks */, + B3C7621D20783243009950E4 /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + B339411E20783CBB008DBAB4 /* flycast */ = { + isa = PBXGroup; + children = ( + B339433020783CBD008DBAB4 /* LICENSE */, + B339459920783CC2008DBAB4 /* README.md */, + B339411F20783CBB008DBAB4 /* core */, + B339459720783CC2008DBAB4 /* docs */, + B33945B820783CC2008DBAB4 /* gdtool */, + B339433120783CBD008DBAB4 /* shell */, + ); + path = flycast; + sourceTree = ""; + }; + B339411F20783CBB008DBAB4 /* core */ = { + isa = PBXGroup; + children = ( + B339412020783CBB008DBAB4 /* rec-x64 */, + B339412220783CBB008DBAB4 /* emitter */, + B339413020783CBB008DBAB4 /* hw */, + B33941B320783CBB008DBAB4 /* build.h */, + B33941B420783CBB008DBAB4 /* types.h */, + B33941B520783CBB008DBAB4 /* imgread */, + B33941C020783CBC008DBAB4 /* cfg */, + B33941C620783CBC008DBAB4 /* README.md */, + B33941C720783CBC008DBAB4 /* nullDC.cpp */, + B33941C820783CBC008DBAB4 /* rec-ARM */, + B33941CC20783CBC008DBAB4 /* sdl */, + B33941CF20783CBC008DBAB4 /* linux */, + B33941D620783CBC008DBAB4 /* nacl */, + B33941D920783CBC008DBAB4 /* stdclass.h */, + B33941DA20783CBC008DBAB4 /* stdclass.cpp */, + B33941DB20783CBC008DBAB4 /* deps */, + B339429120783CBC008DBAB4 /* oslib */, + B33942A720783CBC008DBAB4 /* webui */, + B33942D420783CBC008DBAB4 /* khronos */, + B33942EB20783CBC008DBAB4 /* profiler */, + B33942EE20783CBC008DBAB4 /* rend */, + B33942FE20783CBC008DBAB4 /* windows */, + B339430020783CBC008DBAB4 /* rec-cpp */, + B339430220783CBC008DBAB4 /* rec-x86 */, + B339430820783CBD008DBAB4 /* arm_emitter */, + B339431E20783CBD008DBAB4 /* linux-dist */, + B339432720783CBD008DBAB4 /* reios */, + ); + path = core; + sourceTree = ""; + }; + B339412020783CBB008DBAB4 /* rec-x64 */ = { + isa = PBXGroup; + children = ( + B339412120783CBB008DBAB4 /* rec_x64.cpp */, + ); + path = "rec-x64"; + sourceTree = ""; + }; + B339412220783CBB008DBAB4 /* emitter */ = { + isa = PBXGroup; + children = ( + B339412320783CBB008DBAB4 /* x86_emitter.h */, + B339412420783CBB008DBAB4 /* x86_matcher.h */, + B339412520783CBB008DBAB4 /* generated_class_names.h */, + B339412620783CBB008DBAB4 /* x86_op_encoder.h */, + B339412720783CBB008DBAB4 /* generated_indexes.h */, + B339412820783CBB008DBAB4 /* types.h */, + B339412920783CBB008DBAB4 /* emitter.vcxproj */, + B339412A20783CBB008DBAB4 /* emitter.vcxproj.user */, + B339412B20783CBB008DBAB4 /* generated_descriptors.h */, + B339412C20783CBB008DBAB4 /* x86_op_classes.h */, + B339412D20783CBB008DBAB4 /* generated_class_names_string.h */, + B339412E20783CBB008DBAB4 /* x86_op_table.h */, + B339412F20783CBB008DBAB4 /* x86_emitter.cpp */, + ); + path = emitter; + sourceTree = ""; + }; + B339413020783CBB008DBAB4 /* hw */ = { + isa = PBXGroup; + children = ( + B339413120783CBB008DBAB4 /* holly */, + B339413920783CBB008DBAB4 /* sh4 */, + B339416F20783CBB008DBAB4 /* gdrom */, + B339417420783CBB008DBAB4 /* pvr */, + B339418A20783CBB008DBAB4 /* flashrom */, + B339418C20783CBB008DBAB4 /* naomi */, + B339419220783CBB008DBAB4 /* maple */, + B339419B20783CBB008DBAB4 /* arm7 */, + B33941A520783CBB008DBAB4 /* aica */, + B33941B020783CBB008DBAB4 /* mem */, + ); + path = hw; + sourceTree = ""; + }; + B339413120783CBB008DBAB4 /* holly */ = { + isa = PBXGroup; + children = ( + B339413220783CBB008DBAB4 /* holly_intc.h */, + B339413320783CBB008DBAB4 /* sb.h */, + B339413420783CBB008DBAB4 /* sb_mem.cpp */, + B339413520783CBB008DBAB4 /* sb.cpp */, + B339413620783CBB008DBAB4 /* holly_intc.cpp */, + B339413720783CBB008DBAB4 /* sb_dma.cpp */, + B339413820783CBB008DBAB4 /* sb_mem.h */, + ); + path = holly; + sourceTree = ""; + }; + B339413920783CBB008DBAB4 /* sh4 */ = { + isa = PBXGroup; + children = ( + B339413A20783CBB008DBAB4 /* sh4_rom.h */, + B339413B20783CBB008DBAB4 /* dyna */, + B339414820783CBB008DBAB4 /* sh4_opcode_list.h */, + B339414920783CBB008DBAB4 /* sh4_if.h */, + B339414A20783CBB008DBAB4 /* sh4_interpreter.h */, + B339414B20783CBB008DBAB4 /* fsca-table.h */, + B339414C20783CBB008DBAB4 /* sh4_sched.cpp */, + B339414D20783CBB008DBAB4 /* sh4_opcode_list.cpp */, + B339414E20783CBB008DBAB4 /* sh4_mmr.h */, + B339414F20783CBB008DBAB4 /* sh4_mem.h */, + B339415020783CBB008DBAB4 /* sh4_mem.cpp */, + B339415120783CBB008DBAB4 /* interpr */, + B339415620783CBB008DBAB4 /* sh4_interrupts.cpp */, + B339415720783CBB008DBAB4 /* sh4_interrupts.h */, + B339415820783CBB008DBAB4 /* sh4_opcode.h */, + B339415920783CBB008DBAB4 /* sh4_core_regs.cpp */, + B339415A20783CBB008DBAB4 /* sh4_mmr.cpp */, + B339415B20783CBB008DBAB4 /* modules */, + B339416C20783CBB008DBAB4 /* sh4_rom.cpp */, + B339416D20783CBB008DBAB4 /* sh4_core.h */, + B339416E20783CBB008DBAB4 /* sh4_sched.h */, + ); + path = sh4; + sourceTree = ""; + }; + B339413B20783CBB008DBAB4 /* dyna */ = { + isa = PBXGroup; + children = ( + B339413C20783CBB008DBAB4 /* shil.cpp */, + B339413D20783CBB008DBAB4 /* shil.h */, + B339413E20783CBB008DBAB4 /* rec_config.h */, + B339413F20783CBB008DBAB4 /* ngen.h */, + B339414020783CBB008DBAB4 /* decoder.h */, + B339414120783CBB008DBAB4 /* regalloc.h */, + B339414220783CBB008DBAB4 /* driver.cpp */, + B339414320783CBB008DBAB4 /* decoder.cpp */, + B339414420783CBB008DBAB4 /* blockmanager.cpp */, + B339414520783CBB008DBAB4 /* blockmanager.h */, + B339414620783CBB008DBAB4 /* shil_canonical.h */, + B339414720783CBB008DBAB4 /* decoder_opcodes.h */, + ); + path = dyna; + sourceTree = ""; + }; + B339415120783CBB008DBAB4 /* interpr */ = { + isa = PBXGroup; + children = ( + B339415220783CBB008DBAB4 /* sh4_opcodes.cpp */, + B339415320783CBB008DBAB4 /* sh4_interpreter.cpp */, + B339415420783CBB008DBAB4 /* sh4_opcodes.h */, + B339415520783CBB008DBAB4 /* sh4_fpu.cpp */, + ); + path = interpr; + sourceTree = ""; + }; + B339415B20783CBB008DBAB4 /* modules */ = { + isa = PBXGroup; + children = ( + B339415C20783CBB008DBAB4 /* ubc.cpp */, + B339415D20783CBB008DBAB4 /* mmu_impl.h */, + B339415E20783CBB008DBAB4 /* intc.cpp */, + B339415F20783CBB008DBAB4 /* mmu.h */, + B339416020783CBB008DBAB4 /* bsc.cpp */, + B339416120783CBB008DBAB4 /* ccn.cpp */, + B339416220783CBB008DBAB4 /* tmu.h */, + B339416320783CBB008DBAB4 /* dmac.h */, + B339416420783CBB008DBAB4 /* modules.h */, + B339416520783CBB008DBAB4 /* dmac.cpp */, + B339416620783CBB008DBAB4 /* serial.cpp */, + B339416720783CBB008DBAB4 /* rtc.cpp */, + B339416820783CBB008DBAB4 /* tmu.cpp */, + B339416920783CBB008DBAB4 /* mmu.cpp */, + B339416A20783CBB008DBAB4 /* ccn.h */, + B339416B20783CBB008DBAB4 /* cpg.cpp */, + ); + path = modules; + sourceTree = ""; + }; + B339416F20783CBB008DBAB4 /* gdrom */ = { + isa = PBXGroup; + children = ( + B339417020783CBB008DBAB4 /* gdrom_response.cpp */, + B339417120783CBB008DBAB4 /* gdromv3.cpp */, + B339417220783CBB008DBAB4 /* gdromv3.h */, + B339417320783CBB008DBAB4 /* gdrom_if.h */, + ); + path = gdrom; + sourceTree = ""; + }; + B339417420783CBB008DBAB4 /* pvr */ = { + isa = PBXGroup; + children = ( + B339417520783CBB008DBAB4 /* ta_structs.h */, + B339417620783CBB008DBAB4 /* ta_ctx.cpp */, + B339417720783CBB008DBAB4 /* pvr_mem.cpp */, + B339417820783CBB008DBAB4 /* config.h */, + B339417920783CBB008DBAB4 /* Renderer_if.h */, + B339417A20783CBB008DBAB4 /* ta_ctx.h */, + B339417B20783CBB008DBAB4 /* spg.cpp */, + B339417C20783CBB008DBAB4 /* pvr_sb_regs.h */, + B339417D20783CBB008DBAB4 /* pvr_mem.h */, + B339417E20783CBB008DBAB4 /* pvr_sb_regs.cpp */, + B339417F20783CBB008DBAB4 /* helper_classes.h */, + B339418020783CBB008DBAB4 /* ta.h */, + B339418120783CBB008DBAB4 /* spg.h */, + B339418220783CBB008DBAB4 /* pvr_regs.h */, + B339418320783CBB008DBAB4 /* drkPvr.cpp */, + B339418420783CBB008DBAB4 /* Renderer_if.cpp */, + B339418520783CBB008DBAB4 /* ta_vtx.cpp */, + B339418620783CBB008DBAB4 /* ta_const_df.h */, + B339418720783CBB008DBAB4 /* pvr_regs.cpp */, + B339418820783CBB008DBAB4 /* drkPvr.h */, + B339418920783CBB008DBAB4 /* ta.cpp */, + ); + path = pvr; + sourceTree = ""; + }; + B339418A20783CBB008DBAB4 /* flashrom */ = { + isa = PBXGroup; + children = ( + B339418B20783CBB008DBAB4 /* flashrom.h */, + ); + path = flashrom; + sourceTree = ""; + }; + B339418C20783CBB008DBAB4 /* naomi */ = { + isa = PBXGroup; + children = ( + B339418D20783CBB008DBAB4 /* naomi_regs.h */, + B339418E20783CBB008DBAB4 /* naomi_cart.h */, + B339418F20783CBB008DBAB4 /* naomi_cart.cpp */, + B339419020783CBB008DBAB4 /* naomi.h */, + B339419120783CBB008DBAB4 /* naomi.cpp */, + ); + path = naomi; + sourceTree = ""; + }; + B339419220783CBB008DBAB4 /* maple */ = { + isa = PBXGroup; + children = ( + B339419320783CBB008DBAB4 /* maple_helper.h */, + B339419420783CBB008DBAB4 /* maple_if.cpp */, + B339419520783CBB008DBAB4 /* maple_helper.cpp */, + B339419620783CBB008DBAB4 /* maple_cfg.h */, + B339419720783CBB008DBAB4 /* maple_cfg.cpp */, + B339419820783CBB008DBAB4 /* maple_devs.h */, + B339419920783CBB008DBAB4 /* maple_if.h */, + B339419A20783CBB008DBAB4 /* maple_devs.cpp */, + ); + path = maple; + sourceTree = ""; + }; + B339419B20783CBB008DBAB4 /* arm7 */ = { + isa = PBXGroup; + children = ( + B339419C20783CBB008DBAB4 /* arm_mem.cpp */, + B339419D20783CBB008DBAB4 /* arm_mem.h */, + B339419E20783CBB008DBAB4 /* arm7.h */, + B339419F20783CBB008DBAB4 /* arm7.cpp */, + B33941A020783CBB008DBAB4 /* vbaARM.cpp */, + B33941A120783CBB008DBAB4 /* virt_arm.h */, + B33941A220783CBB008DBAB4 /* resource.h */, + B33941A320783CBB008DBAB4 /* virt_arm.cpp */, + B33941A420783CBB008DBAB4 /* arm-new.h */, + ); + path = arm7; + sourceTree = ""; + }; + B33941A520783CBB008DBAB4 /* aica */ = { + isa = PBXGroup; + children = ( + B33941A620783CBB008DBAB4 /* aica_if.cpp */, + B33941A720783CBB008DBAB4 /* aica.h */, + B33941A820783CBB008DBAB4 /* dsp.cpp */, + B33941A920783CBB008DBAB4 /* aica_mem.cpp */, + B33941AA20783CBB008DBAB4 /* aica.cpp */, + B33941AB20783CBB008DBAB4 /* aica_mem.h */, + B33941AC20783CBB008DBAB4 /* dsp.h */, + B33941AD20783CBB008DBAB4 /* sgc_if.h */, + B33941AE20783CBB008DBAB4 /* aica_if.h */, + B33941AF20783CBB008DBAB4 /* sgc_if.cpp */, + ); + path = aica; + sourceTree = ""; + }; + B33941B020783CBB008DBAB4 /* mem */ = { + isa = PBXGroup; + children = ( + B33941B120783CBB008DBAB4 /* _vmem.h */, + B33941B220783CBB008DBAB4 /* _vmem.cpp */, + ); + path = mem; + sourceTree = ""; + }; + B33941B520783CBB008DBAB4 /* imgread */ = { + isa = PBXGroup; + children = ( + B33941B620783CBC008DBAB4 /* gdi.cpp */, + B33941B720783CBC008DBAB4 /* common.cpp */, + B33941B820783CBC008DBAB4 /* cdi.cpp */, + B33941B920783CBC008DBAB4 /* ImgReader.cpp */, + B33941BA20783CBC008DBAB4 /* gd_driver.h */, + B33941BB20783CBC008DBAB4 /* common.h */, + B33941BC20783CBC008DBAB4 /* ioctl.cpp */, + B33941BD20783CBC008DBAB4 /* ImgReader.h */, + B33941BE20783CBC008DBAB4 /* SCSIDEFS.H */, + B33941BF20783CBC008DBAB4 /* chd.cpp */, + ); + path = imgread; + sourceTree = ""; + }; + B33941C020783CBC008DBAB4 /* cfg */ = { + isa = PBXGroup; + children = ( + B33941C120783CBC008DBAB4 /* cfg.cpp */, + B33941C220783CBC008DBAB4 /* ini.h */, + B33941C320783CBC008DBAB4 /* ini.cpp */, + B33941C420783CBC008DBAB4 /* cl.cpp */, + B33941C520783CBC008DBAB4 /* cfg.h */, + ); + path = cfg; + sourceTree = ""; + }; + B33941C820783CBC008DBAB4 /* rec-ARM */ = { + isa = PBXGroup; + children = ( + B33941C920783CBC008DBAB4 /* rec_arm.cpp */, + B33941CA20783CBC008DBAB4 /* ngen_arm.S */, + B33941CB20783CBC008DBAB4 /* ngen_arm64.S */, + ); + path = "rec-ARM"; + sourceTree = ""; + }; + B33941CC20783CBC008DBAB4 /* sdl */ = { + isa = PBXGroup; + children = ( + B33941CD20783CBC008DBAB4 /* sdl.cpp */, + B33941CE20783CBC008DBAB4 /* sdl.h */, + ); + path = sdl; + sourceTree = ""; + }; + B33941CF20783CBC008DBAB4 /* linux */ = { + isa = PBXGroup; + children = ( + B33941D020783CBC008DBAB4 /* common.cpp */, + B33941D120783CBC008DBAB4 /* typedefs.h */, + B33941D220783CBC008DBAB4 /* context.cpp */, + B33941D320783CBC008DBAB4 /* context.h */, + B33941D420783CBC008DBAB4 /* nixprof */, + ); + path = linux; + sourceTree = ""; + }; + B33941D420783CBC008DBAB4 /* nixprof */ = { + isa = PBXGroup; + children = ( + B33941D520783CBC008DBAB4 /* nixprof.cpp */, + ); + path = nixprof; + sourceTree = ""; + }; + B33941D620783CBC008DBAB4 /* nacl */ = { + isa = PBXGroup; + children = ( + B33941D720783CBC008DBAB4 /* nacl.cpp */, + B33941D820783CBC008DBAB4 /* nacl_lin.cpp */, + ); + path = nacl; + sourceTree = ""; + }; + B33941DB20783CBC008DBAB4 /* deps */ = { + isa = PBXGroup; + children = ( + B33941DC20783CBC008DBAB4 /* crypto */, + B33941E320783CBC008DBAB4 /* libpng */, + B33941FF20783CBC008DBAB4 /* libwebsocket */, + B339421C20783CBC008DBAB4 /* zlib */, + B339423B20783CBC008DBAB4 /* coreio */, + B339423E20783CBC008DBAB4 /* xbyak */, + B339424420783CBC008DBAB4 /* chdr */, + B339424820783CBC008DBAB4 /* libelf */, + B339425020783CBC008DBAB4 /* chdpsr */, + B339425320783CBC008DBAB4 /* libzip */, + B339428D20783CBC008DBAB4 /* ifaddrs */, + ); + path = deps; + sourceTree = ""; + }; + B33941DC20783CBC008DBAB4 /* crypto */ = { + isa = PBXGroup; + children = ( + B33941DD20783CBC008DBAB4 /* md5.cpp */, + B33941DE20783CBC008DBAB4 /* md5.h */, + B33941DF20783CBC008DBAB4 /* sha256.h */, + B33941E020783CBC008DBAB4 /* sha1.cpp */, + B33941E120783CBC008DBAB4 /* sha256.cpp */, + B33941E220783CBC008DBAB4 /* sha1.h */, + ); + path = crypto; + sourceTree = ""; + }; + B33941E320783CBC008DBAB4 /* libpng */ = { + isa = PBXGroup; + children = ( + B33941E420783CBC008DBAB4 /* pnginfo.h */, + B33941E520783CBC008DBAB4 /* pngrio.c */, + B33941E620783CBC008DBAB4 /* pngerror.c */, + B33941E720783CBC008DBAB4 /* pngwio.c */, + B33941E820783CBC008DBAB4 /* pngstruct.h */, + B33941E920783CBC008DBAB4 /* pngtrans.c */, + B33941EA20783CBC008DBAB4 /* config.h */, + B33941EB20783CBC008DBAB4 /* pngpriv.h */, + B33941EC20783CBC008DBAB4 /* pngwrite.c */, + B33941ED20783CBC008DBAB4 /* png.h */, + B33941EE20783CBC008DBAB4 /* pngwutil.c */, + B33941EF20783CBC008DBAB4 /* pngwtran.c */, + B33941F020783CBC008DBAB4 /* pnglibconf.h */, + B33941F120783CBC008DBAB4 /* pngconf.h */, + B33941F220783CBC008DBAB4 /* pngpread.c */, + B33941F320783CBC008DBAB4 /* pngdebug.h */, + B33941F420783CBC008DBAB4 /* pngread.c */, + B33941F520783CBC008DBAB4 /* arm */, + B33941F920783CBC008DBAB4 /* pngmem.c */, + B33941FA20783CBC008DBAB4 /* pngget.c */, + B33941FB20783CBC008DBAB4 /* png.c */, + B33941FC20783CBC008DBAB4 /* pngrtran.c */, + B33941FD20783CBC008DBAB4 /* pngrutil.c */, + B33941FE20783CBC008DBAB4 /* pngset.c */, + ); + path = libpng; + sourceTree = ""; + }; + B33941F520783CBC008DBAB4 /* arm */ = { + isa = PBXGroup; + children = ( + B33941F620783CBC008DBAB4 /* filter_neon.S */, + B33941F720783CBC008DBAB4 /* filter_neon_intrinsics.c */, + B33941F820783CBC008DBAB4 /* arm_init.c */, + ); + path = arm; + sourceTree = ""; + }; + B33941FF20783CBC008DBAB4 /* libwebsocket */ = { + isa = PBXGroup; + children = ( + B339420020783CBC008DBAB4 /* extension.c */, + B339420120783CBC008DBAB4 /* extension-deflate-stream.c */, + B339420220783CBC008DBAB4 /* LICENSE */, + B339420320783CBC008DBAB4 /* config.h */, + B339420420783CBC008DBAB4 /* lextable.h */, + B339420520783CBC008DBAB4 /* extension-deflate-frame.h */, + B339420620783CBC008DBAB4 /* parsers.c */, + B339420720783CBC008DBAB4 /* libwebsockets.c */, + B339420820783CBC008DBAB4 /* base64-decode.c */, + B339420920783CBC008DBAB4 /* pollfd.c */, + B339420A20783CBC008DBAB4 /* server.c */, + B339420B20783CBC008DBAB4 /* README */, + B339420C20783CBC008DBAB4 /* lws-plat-unix.c */, + B339420D20783CBC008DBAB4 /* sha-1.c */, + B339420E20783CBC008DBAB4 /* client.c */, + B339420F20783CBC008DBAB4 /* lws-plat-win.c */, + B339421020783CBC008DBAB4 /* server-handshake.c */, + B339421120783CBC008DBAB4 /* handshake.c */, + B339421220783CBC008DBAB4 /* service.c */, + B339421320783CBC008DBAB4 /* extension-deflate-stream.h */, + B339421420783CBC008DBAB4 /* context.c */, + B339421520783CBC008DBAB4 /* client-parser.c */, + B339421620783CBC008DBAB4 /* libwebsockets.h */, + B339421720783CBC008DBAB4 /* extension-deflate-frame.c */, + B339421820783CBC008DBAB4 /* client-handshake.c */, + B339421920783CBC008DBAB4 /* private-libwebsockets.h */, + B339421A20783CBC008DBAB4 /* lws_config.h */, + B339421B20783CBC008DBAB4 /* output.c */, + ); + path = libwebsocket; + sourceTree = ""; + }; + B339421C20783CBC008DBAB4 /* zlib */ = { + isa = PBXGroup; + children = ( + B339421D20783CBC008DBAB4 /* zutil.h */, + B339421E20783CBC008DBAB4 /* inftrees.h */, + B339421F20783CBC008DBAB4 /* inflate.c */, + B339422020783CBC008DBAB4 /* compress.c */, + B339422120783CBC008DBAB4 /* deflate.c */, + B339422220783CBC008DBAB4 /* inffixed.h */, + B339422320783CBC008DBAB4 /* Makefile */, + B339422420783CBC008DBAB4 /* gzread.c */, + B339422520783CBC008DBAB4 /* trees.h */, + B339422620783CBC008DBAB4 /* inffast.h */, + B339422720783CBC008DBAB4 /* crc32.c */, + B339422820783CBC008DBAB4 /* infback.c */, + B339422920783CBC008DBAB4 /* zutil.c */, + B339422A20783CBC008DBAB4 /* deflate.h */, + B339422B20783CBC008DBAB4 /* gzguts.h */, + B339422C20783CBC008DBAB4 /* zlib.h */, + B339422D20783CBC008DBAB4 /* gzlib.c */, + B339423120783CBC008DBAB4 /* inflate.h */, + B339423220783CBC008DBAB4 /* inftrees.c */, + B339423320783CBC008DBAB4 /* uncompr.c */, + B339423420783CBC008DBAB4 /* gzwrite.c */, + B339423520783CBC008DBAB4 /* trees.c */, + B339423620783CBC008DBAB4 /* gzclose.c */, + B339423720783CBC008DBAB4 /* crc32.h */, + B339423820783CBC008DBAB4 /* inffast.c */, + B339423920783CBC008DBAB4 /* adler32.c */, + B339423A20783CBC008DBAB4 /* zconf.h */, + ); + path = zlib; + sourceTree = ""; + }; + B339423B20783CBC008DBAB4 /* coreio */ = { + isa = PBXGroup; + children = ( + B339423C20783CBC008DBAB4 /* coreio.h */, + B339423D20783CBC008DBAB4 /* coreio.cpp */, + ); + path = coreio; + sourceTree = ""; + }; + B339423E20783CBC008DBAB4 /* xbyak */ = { + isa = PBXGroup; + children = ( + B339423F20783CBC008DBAB4 /* xbyak_mnemonic.h */, + B339424020783CBC008DBAB4 /* xbyak_bin2hex.h */, + B339424120783CBC008DBAB4 /* COPYRIGHT */, + B339424220783CBC008DBAB4 /* xbyak.h */, + B339424320783CBC008DBAB4 /* xbyak_util.h */, + ); + path = xbyak; + sourceTree = ""; + }; + B339424420783CBC008DBAB4 /* chdr */ = { + isa = PBXGroup; + children = ( + B339424520783CBC008DBAB4 /* chdr.cpp */, + B339424620783CBC008DBAB4 /* chd.h */, + B339424720783CBC008DBAB4 /* coretypes.h */, + ); + path = chdr; + sourceTree = ""; + }; + B339424820783CBC008DBAB4 /* libelf */ = { + isa = PBXGroup; + children = ( + B339424920783CBC008DBAB4 /* debug.h */, + B339424A20783CBC008DBAB4 /* elf64.h */, + B339424B20783CBC008DBAB4 /* elf64.cpp */, + B339424C20783CBC008DBAB4 /* elf.cpp */, + B339424D20783CBC008DBAB4 /* elf.h */, + B339424E20783CBC008DBAB4 /* elf32.h */, + B339424F20783CBC008DBAB4 /* elf32.cpp */, + ); + path = libelf; + sourceTree = ""; + }; + B339425020783CBC008DBAB4 /* chdpsr */ = { + isa = PBXGroup; + children = ( + B339425120783CBC008DBAB4 /* cdipsr.cpp */, + B339425220783CBC008DBAB4 /* cdipsr.h */, + ); + path = chdpsr; + sourceTree = ""; + }; + B339425320783CBC008DBAB4 /* libzip */ = { + isa = PBXGroup; + children = ( + B339425420783CBC008DBAB4 /* zip_memdup.c */, + B339425520783CBC008DBAB4 /* zipint.h */, + B339425620783CBC008DBAB4 /* zip_add.c */, + B339425720783CBC008DBAB4 /* zip_filerange_crc.c */, + B339425820783CBC008DBAB4 /* zip_get_name.c */, + B339425920783CBC008DBAB4 /* zip_file_strerror.c */, + B339425A20783CBC008DBAB4 /* zip_fopen_index.c */, + B339425B20783CBC008DBAB4 /* zip_source_buffer.c */, + B339425C20783CBC008DBAB4 /* zip_error_clear.c */, + B339425D20783CBC008DBAB4 /* zip_get_archive_comment.c */, + B339425E20783CBC008DBAB4 /* zip_source_file.c */, + B339425F20783CBC008DBAB4 /* zip_set_name.c */, + B339426020783CBC008DBAB4 /* zip_file_error_get.c */, + B339426120783CBC008DBAB4 /* zip_file_get_offset.c */, + B339426220783CBC008DBAB4 /* zip_unchange.c */, + B339426320783CBC008DBAB4 /* zip_new.c */, + B339426420783CBC008DBAB4 /* config.h */, + B339426520783CBC008DBAB4 /* zip_close.c */, + B339426620783CBC008DBAB4 /* zip_add_dir.c */, + B339426720783CBC008DBAB4 /* zip_error_get_sys_type.c */, + B339426820783CBC008DBAB4 /* zip_set_archive_comment.c */, + B339426920783CBC008DBAB4 /* zip_name_locate.c */, + B339426A20783CBC008DBAB4 /* zip_unchange_archive.c */, + B339426B20783CBC008DBAB4 /* zip_source_free.c */, + B339426C20783CBC008DBAB4 /* zip_get_num_files.c */, + B339426D20783CBC008DBAB4 /* zip_err_str.c */, + B339426E20783CBC008DBAB4 /* zip_source_filep.c */, + B339426F20783CBC008DBAB4 /* zip_error.c */, + B339427020783CBC008DBAB4 /* zip_strerror.c */, + B339427120783CBC008DBAB4 /* zip_entry_new.c */, + B339427220783CBC008DBAB4 /* zip_get_archive_flag.c */, + B339427320783CBC008DBAB4 /* zip_set_archive_flag.c */, + B339427420783CBC008DBAB4 /* zip_unchange_data.c */, + B339427520783CBC008DBAB4 /* zip_fread.c */, + B339427620783CBC008DBAB4 /* zip_rename.c */, + B339427720783CBC008DBAB4 /* zip_source_zip.c */, + B339427820783CBC008DBAB4 /* zip_stat_index.c */, + B339427920783CBC008DBAB4 /* zip_source_function.c */, + B339427A20783CBC008DBAB4 /* zip_replace.c */, + B339427B20783CBC008DBAB4 /* zip_delete.c */, + B339427C20783CBC008DBAB4 /* zip_set_file_comment.c */, + B339427D20783CBC008DBAB4 /* zip_stat.c */, + B339427E20783CBC008DBAB4 /* zip_get_file_comment.c */, + B339427F20783CBC008DBAB4 /* mkstemp.c */, + B339428020783CBC008DBAB4 /* zip.h */, + B339428120783CBC008DBAB4 /* zip_entry_free.c */, + B339428220783CBC008DBAB4 /* zip_open.c */, + B339428320783CBC008DBAB4 /* zip_error_get.c */, + B339428420783CBC008DBAB4 /* zip_fclose.c */, + B339428520783CBC008DBAB4 /* zip_dirent.c */, + B339428620783CBC008DBAB4 /* zip_free.c */, + B339428720783CBC008DBAB4 /* zip_file_error_clear.c */, + B339428820783CBC008DBAB4 /* zip_error_to_str.c */, + B339428920783CBC008DBAB4 /* zip_stat_init.c */, + B339428A20783CBC008DBAB4 /* zip_fopen.c */, + B339428B20783CBC008DBAB4 /* zip_unchange_all.c */, + B339428C20783CBC008DBAB4 /* zip_error_strerror.c */, + ); + path = libzip; + sourceTree = ""; + }; + B339428D20783CBC008DBAB4 /* ifaddrs */ = { + isa = PBXGroup; + children = ( + B339428E20783CBC008DBAB4 /* ifaddrs.c */, + B339428F20783CBC008DBAB4 /* README.md */, + B339429020783CBC008DBAB4 /* ifaddrs.h */, + ); + path = ifaddrs; + sourceTree = ""; + }; + B339429120783CBC008DBAB4 /* oslib */ = { + isa = PBXGroup; + children = ( + B33942A520783CBC008DBAB4 /* audiobackend_alsa.cpp */, + B339429320783CBC008DBAB4 /* audiobackend_alsa.h */, + B339429720783CBC008DBAB4 /* audiobackend_android.h */, + B339429520783CBC008DBAB4 /* audiobackend_coreaudio.h */, + B339429920783CBC008DBAB4 /* audiobackend_coreaudio.mm */, + B33942A220783CBC008DBAB4 /* audiobackend_directsound.cpp */, + B33942A420783CBC008DBAB4 /* audiobackend_directsound.h */, + B339429F20783CBC008DBAB4 /* audiobackend_oss.cpp */, + B339429620783CBC008DBAB4 /* audiobackend_oss.h */, + B339429420783CBC008DBAB4 /* audiobackend_pulseaudio.cpp */, + B339429220783CBC008DBAB4 /* audiobackend_pulseaudio.h */, + B339429C20783CBC008DBAB4 /* audiostream.cpp */, + B339429E20783CBC008DBAB4 /* audiostream.h */, + B339429A20783CBC008DBAB4 /* oslib.h */, + ); + path = oslib; + sourceTree = ""; + }; + B33942A720783CBC008DBAB4 /* webui */ = { + isa = PBXGroup; + children = ( + B33942D220783CBC008DBAB4 /* server.h */, + B33942D320783CBC008DBAB4 /* server.cpp */, + ); + path = webui; + sourceTree = ""; + }; + B33942D420783CBC008DBAB4 /* khronos */ = { + isa = PBXGroup; + children = ( + B33942D520783CBC008DBAB4 /* APPLE */, + B33942D920783CBC008DBAB4 /* GLES3 */, + B33942DD20783CBC008DBAB4 /* GLES2 */, + B33942E120783CBC008DBAB4 /* KHR */, + B33942E320783CBC008DBAB4 /* EGL */, + B33942E720783CBC008DBAB4 /* GL3 */, + ); + path = khronos; + sourceTree = ""; + }; + B33942D520783CBC008DBAB4 /* APPLE */ = { + isa = PBXGroup; + children = ( + B33942D620783CBC008DBAB4 /* egl.h */, + B33942D720783CBC008DBAB4 /* eglplatform.h */, + B33942D820783CBC008DBAB4 /* khrplatform.h */, + ); + path = APPLE; + sourceTree = ""; + }; + B33942D920783CBC008DBAB4 /* GLES3 */ = { + isa = PBXGroup; + children = ( + B33942DA20783CBC008DBAB4 /* gl2ext.h */, + B33942DB20783CBC008DBAB4 /* gl3.h */, + B33942DC20783CBC008DBAB4 /* gl3platform.h */, + ); + path = GLES3; + sourceTree = ""; + }; + B33942DD20783CBC008DBAB4 /* GLES2 */ = { + isa = PBXGroup; + children = ( + B33942DE20783CBC008DBAB4 /* gl2ext.h */, + B33942DF20783CBC008DBAB4 /* gl2.h */, + B33942E020783CBC008DBAB4 /* gl2platform.h */, + ); + path = GLES2; + sourceTree = ""; + }; + B33942E120783CBC008DBAB4 /* KHR */ = { + isa = PBXGroup; + children = ( + B33942E220783CBC008DBAB4 /* khrplatform.h */, + ); + path = KHR; + sourceTree = ""; + }; + B33942E320783CBC008DBAB4 /* EGL */ = { + isa = PBXGroup; + children = ( + B33942E420783CBC008DBAB4 /* egl.h */, + B33942E520783CBC008DBAB4 /* eglext.h */, + B33942E620783CBC008DBAB4 /* eglplatform.h */, + ); + path = EGL; + sourceTree = ""; + }; + B33942E720783CBC008DBAB4 /* GL3 */ = { + isa = PBXGroup; + children = ( + B33942E820783CBC008DBAB4 /* gl3w.c */, + B33942E920783CBC008DBAB4 /* gl3.h */, + B33942EA20783CBC008DBAB4 /* gl3w.h */, + ); + path = GL3; + sourceTree = ""; + }; + B33942EB20783CBC008DBAB4 /* profiler */ = { + isa = PBXGroup; + children = ( + B33942EC20783CBC008DBAB4 /* profiler.cpp */, + B33942ED20783CBC008DBAB4 /* profiler.h */, + ); + path = profiler; + sourceTree = ""; + }; + B33942EE20783CBC008DBAB4 /* rend */ = { + isa = PBXGroup; + children = ( + B33942EF20783CBC008DBAB4 /* d3d11 */, + B33942F120783CBC008DBAB4 /* gles */, + B33942F620783CBC008DBAB4 /* rend.h */, + B33942F720783CBC008DBAB4 /* TexCache.h */, + B33942F820783CBC008DBAB4 /* soft */, + B33942FA20783CBC008DBAB4 /* norend */, + B33942FC20783CBC008DBAB4 /* TexCache.cpp */, + ); + path = rend; + sourceTree = ""; + }; + B33942EF20783CBC008DBAB4 /* d3d11 */ = { + isa = PBXGroup; + children = ( + B33942F020783CBC008DBAB4 /* d3d11.cpp */, + ); + path = d3d11; + sourceTree = ""; + }; + B33942F120783CBC008DBAB4 /* gles */ = { + isa = PBXGroup; + children = ( + B33942F220783CBC008DBAB4 /* gldraw.cpp */, + B33942F320783CBC008DBAB4 /* gltex.cpp */, + B33942F420783CBC008DBAB4 /* gles.h */, + B33942F520783CBC008DBAB4 /* gles.cpp */, + ); + path = gles; + sourceTree = ""; + }; + B33942F820783CBC008DBAB4 /* soft */ = { + isa = PBXGroup; + children = ( + B33942F920783CBC008DBAB4 /* softrend.cpp */, + ); + path = soft; + sourceTree = ""; + }; + B33942FA20783CBC008DBAB4 /* norend */ = { + isa = PBXGroup; + children = ( + B33942FB20783CBC008DBAB4 /* norend.cpp */, + ); + path = norend; + sourceTree = ""; + }; + B33942FE20783CBC008DBAB4 /* windows */ = { + isa = PBXGroup; + children = ( + B33942FF20783CBC008DBAB4 /* winmain.cpp */, + ); + path = windows; + sourceTree = ""; + }; + B339430020783CBC008DBAB4 /* rec-cpp */ = { + isa = PBXGroup; + children = ( + B339430120783CBC008DBAB4 /* rec_cpp.cpp */, + ); + path = "rec-cpp"; + sourceTree = ""; + }; + B339430220783CBC008DBAB4 /* rec-x86 */ = { + isa = PBXGroup; + children = ( + B339430320783CBD008DBAB4 /* rec_x86_il.cpp */, + B339430420783CBD008DBAB4 /* rec_x86_asm.cpp */, + B339430520783CBD008DBAB4 /* rec_x86_driver.cpp */, + B339430620783CBD008DBAB4 /* rec_lin86_asm.S */, + B339430720783CBD008DBAB4 /* rec_x86_ngen.h */, + ); + path = "rec-x86"; + sourceTree = ""; + }; + B339430820783CBD008DBAB4 /* arm_emitter */ = { + isa = PBXGroup; + children = ( + B339430920783CBD008DBAB4 /* E_VLoadStore.h */, + B339430A20783CBD008DBAB4 /* E_Parallel.h */, + B339430B20783CBD008DBAB4 /* E_Status.h */, + B339430C20783CBD008DBAB4 /* E_VRegXfer.h */, + B339430D20783CBD008DBAB4 /* H_Branches.h */, + B339430E20783CBD008DBAB4 /* E_Misc.h */, + B339430F20783CBD008DBAB4 /* E_Branches.h */, + B339431020783CBD008DBAB4 /* H_psuedo.h */, + B339431120783CBD008DBAB4 /* arm_coding.h */, + B339431220783CBD008DBAB4 /* arm_emitter.h */, + B339431320783CBD008DBAB4 /* E_Special.h */, + B339431420783CBD008DBAB4 /* E_LoadStore.h */, + B339431520783CBD008DBAB4 /* arm_disasm.h */, + B339431620783CBD008DBAB4 /* E_Multiply.h */, + B339431720783CBD008DBAB4 /* E_VDataOp.h */, + B339431820783CBD008DBAB4 /* H_state.h */, + B339431920783CBD008DBAB4 /* E_DataOp.h */, + B339431A20783CBD008DBAB4 /* H_LoadStore.h */, + B339431B20783CBD008DBAB4 /* H_fp.h */, + B339431C20783CBD008DBAB4 /* E_Extend.h */, + B339431D20783CBD008DBAB4 /* arm_registers.h */, + ); + path = arm_emitter; + sourceTree = ""; + }; + B339431E20783CBD008DBAB4 /* linux-dist */ = { + isa = PBXGroup; + children = ( + B339431F20783CBD008DBAB4 /* main.h */, + B339432020783CBD008DBAB4 /* x11.cpp */, + B339432120783CBD008DBAB4 /* joystick.h */, + B339432220783CBD008DBAB4 /* x11.h */, + B339432320783CBD008DBAB4 /* evdev.h */, + B339432420783CBD008DBAB4 /* joystick.cpp */, + B339432520783CBD008DBAB4 /* main.cpp */, + B339432620783CBD008DBAB4 /* evdev.cpp */, + ); + path = "linux-dist"; + sourceTree = ""; + }; + B339432720783CBD008DBAB4 /* reios */ = { + isa = PBXGroup; + children = ( + B339432820783CBD008DBAB4 /* reios.h */, + B339432920783CBD008DBAB4 /* descrambl.cpp */, + B339432A20783CBD008DBAB4 /* reios_elf.cpp */, + B339432B20783CBD008DBAB4 /* reios.cpp */, + B339432C20783CBD008DBAB4 /* reios_elf.h */, + B339432D20783CBD008DBAB4 /* descrambl.h */, + B339432E20783CBD008DBAB4 /* gdrom_hle.h */, + B339432F20783CBD008DBAB4 /* gdrom_hle.cpp */, + ); + path = reios; + sourceTree = ""; + }; + B339433120783CBD008DBAB4 /* shell */ = { + isa = PBXGroup; + children = ( + B339439920783CC0008DBAB4 /* LICENSE */, + B339446620783CC1008DBAB4 /* README.md */, + B339448420783CC1008DBAB4 /* android */, + B339433220783CBD008DBAB4 /* apple */, + B339439A20783CC0008DBAB4 /* cmake */, + B339446720783CC1008DBAB4 /* emscripten */, + B339439E20783CC0008DBAB4 /* imgs */, + B339446C20783CC1008DBAB4 /* linux */, + B33943A420783CC0008DBAB4 /* linux-deps */, + B339446920783CC1008DBAB4 /* mac86 */, + B339455720783CC2008DBAB4 /* nacl */, + B33943A220783CC0008DBAB4 /* nacl_lin */, + ); + path = shell; + sourceTree = ""; + }; + B339433220783CBD008DBAB4 /* apple */ = { + isa = PBXGroup; + children = ( + B339433320783CBD008DBAB4 /* emulator-osx */, + B339434320783CBD008DBAB4 /* emulator-ios */, + B339439820783CC0008DBAB4 /* flycast.xcworkspace */, + ); + path = apple; + sourceTree = ""; + }; + B339433320783CBD008DBAB4 /* emulator-osx */ = { + isa = PBXGroup; + children = ( + B339433420783CBD008DBAB4 /* emulator-osxTests */, + B339433720783CBD008DBAB4 /* emulator-osx */, + ); + path = "emulator-osx"; + sourceTree = ""; + }; + B339433420783CBD008DBAB4 /* emulator-osxTests */ = { + isa = PBXGroup; + children = ( + B339433520783CBD008DBAB4 /* emulator_osxTests.swift */, + B339433620783CBD008DBAB4 /* Info.plist */, + ); + path = "emulator-osxTests"; + sourceTree = ""; + }; + B339433720783CBD008DBAB4 /* emulator-osx */ = { + isa = PBXGroup; + children = ( + B339433820783CBD008DBAB4 /* EmuGLView.swift */, + B339433920783CBD008DBAB4 /* osx-main.mm */, + B339433A20783CBD008DBAB4 /* MainMenu.xib */, + B339433C20783CBD008DBAB4 /* emulator-osx-Bridging-Header.h */, + B339433D20783CBD008DBAB4 /* Images.xcassets */, + B339433E20783CBD008DBAB4 /* AppDelegate.swift */, + B339433F20783CBD008DBAB4 /* Info.plist */, + ); + path = "emulator-osx"; + sourceTree = ""; + }; + B339434320783CBD008DBAB4 /* emulator-ios */ = { + isa = PBXGroup; + children = ( + B339434420783CBD008DBAB4 /* flycast-ios-Prefix.pch */, + B339434920783CBD008DBAB4 /* flycast-tvos */, + B339435320783CBD008DBAB4 /* flycast-ios */, + B339435520783CBD008DBAB4 /* emulator */, + ); + path = "emulator-ios"; + sourceTree = ""; + }; + B339434920783CBD008DBAB4 /* flycast-tvos */ = { + isa = PBXGroup; + children = ( + B339434A20783CBD008DBAB4 /* AppDelegate.h */, + B339435020783CBD008DBAB4 /* AppDelegate.m */, + B339434B20783CBD008DBAB4 /* Assets.xcassets */, + B339435120783CBD008DBAB4 /* Info.plist */, + B339434F20783CBD008DBAB4 /* main.m */, + B339434D20783CBD008DBAB4 /* Main.storyboard */, + B339435220783CBD008DBAB4 /* ViewController.h */, + B339434C20783CBD008DBAB4 /* ViewController.m */, + ); + path = "flycast-tvos"; + sourceTree = ""; + }; + B339435320783CBD008DBAB4 /* flycast-ios */ = { + isa = PBXGroup; + children = ( + B339435420783CBD008DBAB4 /* Images.xcassets */, + ); + path = "flycast-ios"; + sourceTree = ""; + }; + B339435520783CBD008DBAB4 /* emulator */ = { + isa = PBXGroup; + children = ( + B339437D20783CC0008DBAB4 /* flycast.entitlements */, + B339438920783CC0008DBAB4 /* AboutViewController.h */, + B339435920783CBD008DBAB4 /* AppDelegate.h */, + B339436020783CBD008DBAB4 /* BrowserTableViewController.h */, + B339439620783CC0008DBAB4 /* CloudVMUViewController.h */, + B339438020783CC0008DBAB4 /* DiskViewCell.h */, + B339435C20783CBD008DBAB4 /* EmulatorView.h */, + B339437F20783CC0008DBAB4 /* EmulatorViewController.h */, + B339435E20783CBD008DBAB4 /* InputViewController.h */, + B339438F20783CC0008DBAB4 /* PadViewController.h */, + B339435B20783CBD008DBAB4 /* PathsViewController.h */, + B339438C20783CC0008DBAB4 /* SettingsViewController.h */, + B339438E20783CC0008DBAB4 /* SideDrawerViewController.h */, + B339437A20783CC0008DBAB4 /* SWRevealViewController.h */, + B339435D20783CBD008DBAB4 /* AboutViewController.m */, + B339438D20783CC0008DBAB4 /* AppDelegate.m */, + B339438320783CC0008DBAB4 /* BrowserTableViewController.m */, + B339437E20783CC0008DBAB4 /* CloudVMUViewController.m */, + B339435720783CBD008DBAB4 /* DiskViewCell.m */, + B339438420783CC0008DBAB4 /* InputViewController.m */, + B339438120783CC0008DBAB4 /* main.m */, + B339437B20783CC0008DBAB4 /* PadViewController.m */, + B339438A20783CC0008DBAB4 /* PathsViewController.m */, + B339435820783CBD008DBAB4 /* SettingsViewController.m */, + B339437C20783CC0008DBAB4 /* SideDrawerViewController.m */, + B339439020783CC0008DBAB4 /* SWRevealViewController.m */, + B339435F20783CBD008DBAB4 /* EmulatorView.mm */, + B339435620783CBD008DBAB4 /* EmulatorViewController.mm */, + B339438220783CC0008DBAB4 /* ios_main.mm */, + B339436120783CBE008DBAB4 /* flycast-ios-Prefix.pch */, + B339438B20783CC0008DBAB4 /* flycast-ios-Info.plist */, + B339439720783CC0008DBAB4 /* MainStoryboard.storyboard */, + B339438520783CC0008DBAB4 /* Images.xcassets */, + B339435A20783CBD008DBAB4 /* PadViewController.xib */, + B339439120783CC0008DBAB4 /* iCade-iOS */, + B339436220783CBE008DBAB4 /* Images */, + B339438620783CC0008DBAB4 /* Shaders */, + ); + path = emulator; + sourceTree = ""; + }; + B339436220783CBE008DBAB4 /* Images */ = { + isa = PBXGroup; + children = ( + B339436320783CBE008DBAB4 /* RTrigger.png */, + B339436420783CBE008DBAB4 /* Start@2x.png */, + B339436520783CBE008DBAB4 /* DPad@2x.png */, + B339436620783CBE008DBAB4 /* LTrigger.png */, + B339436720783CBE008DBAB4 /* menuicon.png */, + B339436820783CBF008DBAB4 /* 210-octocat@2x.png */, + B339436920783CBF008DBAB4 /* 210-twitterbird.png */, + B339436A20783CBF008DBAB4 /* disk_unknown.png */, + B339436B20783CBF008DBAB4 /* ABXYPad@2x.png */, + B339436C20783CBF008DBAB4 /* 210-twitterbird@2x.png */, + B339436D20783CBF008DBAB4 /* LTrigger@2x.png */, + B339436E20783CBF008DBAB4 /* DPad.png */, + B339436F20783CC0008DBAB4 /* JoystickBackground@2x.png */, + B339437020783CC0008DBAB4 /* JoystickButton.png */, + B339437120783CC0008DBAB4 /* menuicon@2x.png */, + B339437220783CC0008DBAB4 /* 210-octocat.png */, + B339437320783CC0008DBAB4 /* ABXYPad.png */, + B339437420783CC0008DBAB4 /* RTrigger@2x.png */, + B339437520783CC0008DBAB4 /* JoystickBackground.png */, + B339437620783CC0008DBAB4 /* Start.png */, + B339437720783CC0008DBAB4 /* menuback.png */, + B339437820783CC0008DBAB4 /* JoystickButton@2x.png */, + B339437920783CC0008DBAB4 /* menuback@2x.png */, + ); + path = Images; + sourceTree = ""; + }; + B339438620783CC0008DBAB4 /* Shaders */ = { + isa = PBXGroup; + children = ( + B339438720783CC0008DBAB4 /* Shader.fsh */, + B339438820783CC0008DBAB4 /* Shader.vsh */, + ); + path = Shaders; + sourceTree = ""; + }; + B339439120783CC0008DBAB4 /* iCade-iOS */ = { + isa = PBXGroup; + children = ( + B339439220783CC0008DBAB4 /* iCadeReaderView.m */, + B339439320783CC0008DBAB4 /* LICENSE */, + B339439420783CC0008DBAB4 /* iCadeReaderView.h */, + B339439520783CC0008DBAB4 /* iCadeState.h */, + ); + path = "iCade-iOS"; + sourceTree = ""; + }; + B339439A20783CC0008DBAB4 /* cmake */ = { + isa = PBXGroup; + children = ( + B339439B20783CC0008DBAB4 /* CMakeLists.txt */, + B339439C20783CC0008DBAB4 /* toolchains */, + ); + path = cmake; + sourceTree = ""; + }; + B339439C20783CC0008DBAB4 /* toolchains */ = { + isa = PBXGroup; + children = ( + B339439D20783CC0008DBAB4 /* Linux-x86.cmake */, + ); + path = toolchains; + sourceTree = ""; + }; + B339439E20783CC0008DBAB4 /* imgs */ = { + isa = PBXGroup; + children = ( + B339439F20783CC0008DBAB4 /* icon.png */, + B33943A020783CC0008DBAB4 /* 3675.png */, + ); + path = imgs; + sourceTree = ""; + }; + B33943A220783CC0008DBAB4 /* nacl_lin */ = { + isa = PBXGroup; + children = ( + B33943A320783CC0008DBAB4 /* Makefile */, + ); + path = nacl_lin; + sourceTree = ""; + }; + B33943A420783CC0008DBAB4 /* linux-deps */ = { + isa = PBXGroup; + children = ( + B33943A520783CC0008DBAB4 /* include */, + B339445D20783CC1008DBAB4 /* lib */, + ); + path = "linux-deps"; + sourceTree = ""; + }; + B33943A520783CC0008DBAB4 /* include */ = { + isa = PBXGroup; + children = ( + B33943A620783CC0008DBAB4 /* X11 */, + B339443720783CC1008DBAB4 /* alsa */, + ); + path = include; + sourceTree = ""; + }; + B33943A620783CC0008DBAB4 /* X11 */ = { + isa = PBXGroup; + children = ( + B33943A720783CC0008DBAB4 /* DECkeysym.h */, + B33943A820783CC0008DBAB4 /* Xos_r.h */, + B33943A920783CC0008DBAB4 /* Xutil.h */, + B33943AA20783CC0008DBAB4 /* bitmaps */, + B339440020783CC1008DBAB4 /* Xresource.h */, + B339440120783CC1008DBAB4 /* Xmd.h */, + B339440220783CC1008DBAB4 /* Xdmcp.h */, + B339440320783CC1008DBAB4 /* Xauth.h */, + B339440420783CC1008DBAB4 /* ap_keysym.h */, + B339440520783CC1008DBAB4 /* Xatom.h */, + B339440620783CC1008DBAB4 /* Xtrans */, + B339440F20783CC1008DBAB4 /* Xos.h */, + B339441020783CC1008DBAB4 /* Xlocale.h */, + B339441120783CC1008DBAB4 /* ImUtil.h */, + B339441220783CC1008DBAB4 /* Xarch.h */, + B339441320783CC1008DBAB4 /* Xlibint.h */, + B339441420783CC1008DBAB4 /* Xpoll.h */, + B339441520783CC1008DBAB4 /* Xlib.h */, + B339441620783CC1008DBAB4 /* cursorfont.h */, + B339441720783CC1008DBAB4 /* Xproto.h */, + B339441820783CC1008DBAB4 /* XWDFile.h */, + B339441920783CC1008DBAB4 /* extensions */, + B339442320783CC1008DBAB4 /* Xalloca.h */, + B339442420783CC1008DBAB4 /* Sunkeysym.h */, + B339442520783CC1008DBAB4 /* Xfuncproto.h */, + B339442620783CC1008DBAB4 /* Xwindows.h */, + B339442720783CC1008DBAB4 /* keysymdef.h */, + B339442820783CC1008DBAB4 /* XKBlib.h */, + B339442920783CC1008DBAB4 /* Xthreads.h */, + B339442A20783CC1008DBAB4 /* Xdefs.h */, + B339442B20783CC1008DBAB4 /* HPkeysym.h */, + B339442C20783CC1008DBAB4 /* Xregion.h */, + B339442D20783CC1008DBAB4 /* Xosdefs.h */, + B339442E20783CC1008DBAB4 /* keysym.h */, + B339442F20783CC1008DBAB4 /* Xwinsock.h */, + B339443020783CC1008DBAB4 /* XF86keysym.h */, + B339443120783CC1008DBAB4 /* Xprotostr.h */, + B339443220783CC1008DBAB4 /* Xfuncs.h */, + B339443320783CC1008DBAB4 /* X.h */, + B339443420783CC1008DBAB4 /* Xw32defs.h */, + B339443520783CC1008DBAB4 /* XlibConf.h */, + B339443620783CC1008DBAB4 /* Xcms.h */, + ); + path = X11; + sourceTree = ""; + }; + B33943AA20783CC0008DBAB4 /* bitmaps */ = { + isa = PBXGroup; + children = ( + B33943AB20783CC0008DBAB4 /* Right */, + B33943AC20783CC0008DBAB4 /* Dashes */, + B33943AD20783CC0008DBAB4 /* gray */, + B33943AE20783CC0008DBAB4 /* wide_weave */, + B33943AF20783CC0008DBAB4 /* cross_weave */, + B33943B020783CC0008DBAB4 /* xfd_icon */, + B33943B120783CC0008DBAB4 /* flipped_gray */, + B33943B220783CC0008DBAB4 /* stipple */, + B33943B320783CC0008DBAB4 /* rdblarrow */, + B33943B420783CC0008DBAB4 /* tie_fighter */, + B33943B520783CC0008DBAB4 /* cntr_ptrmsk */, + B33943B620783CC0008DBAB4 /* starMask */, + B33943B720783CC0008DBAB4 /* letters */, + B33943B820783CC0008DBAB4 /* grid16 */, + B33943B920783CC0008DBAB4 /* calculator */, + B33943BA20783CC0008DBAB4 /* dot */, + B33943BB20783CC0008DBAB4 /* Excl */, + B33943BC20783CC0008DBAB4 /* wingdogs */, + B33943BD20783CC0008DBAB4 /* mailempty */, + B33943BE20783CC0008DBAB4 /* xlogo64 */, + B33943BF20783CC0008DBAB4 /* target */, + B33943C020783CC0008DBAB4 /* gray1 */, + B33943C120783CC0008DBAB4 /* dropbar8 */, + B33943C220783CC0008DBAB4 /* black6 */, + B33943C320783CC0008DBAB4 /* Term */, + B33943C420783CC0008DBAB4 /* left_ptrmsk */, + B33943C520783CC0008DBAB4 /* dropbar7 */, + B33943C620783CC0008DBAB4 /* dimple3 */, + B33943C720783CC0008DBAB4 /* Left */, + B33943C820783CC0008DBAB4 /* weird_size */, + B33943C920783CC0008DBAB4 /* ldblarrow */, + B33943CA20783CC0008DBAB4 /* terminal */, + B33943CB20783CC0008DBAB4 /* escherknot */, + B33943CC20783CC0008DBAB4 /* root_weave */, + B33943CD20783CC0008DBAB4 /* RotateLeft */, + B33943CE20783CC0008DBAB4 /* light_gray */, + B33943CF20783CC0008DBAB4 /* grid8 */, + B33943D020783CC0008DBAB4 /* 1x1 */, + B33943D120783CC0008DBAB4 /* menu12 */, + B33943D220783CC0008DBAB4 /* mailfull */, + B33943D320783CC0008DBAB4 /* scales */, + B33943D420783CC0008DBAB4 /* noletters */, + B33943D520783CC0008DBAB4 /* RotateRight */, + B33943D620783CC0008DBAB4 /* FlipHoriz */, + B33943D720783CC0008DBAB4 /* flagdown */, + B33943D820783CC0008DBAB4 /* star */, + B33943D920783CC0008DBAB4 /* box6 */, + B33943DA20783CC0008DBAB4 /* Up */, + B33943DB20783CC1008DBAB4 /* vlines3 */, + B33943DC20783CC1008DBAB4 /* mailemptymsk */, + B33943DD20783CC1008DBAB4 /* left_ptr */, + B33943DE20783CC1008DBAB4 /* xsnow */, + B33943DF20783CC1008DBAB4 /* menu6 */, + B33943E020783CC1008DBAB4 /* vlines2 */, + B33943E120783CC1008DBAB4 /* menu8 */, + B33943E220783CC1008DBAB4 /* 2x2 */, + B33943E320783CC1008DBAB4 /* xlogo16 */, + B33943E420783CC1008DBAB4 /* Fold */, + B33943E520783CC1008DBAB4 /* xlogo11 */, + B33943E620783CC1008DBAB4 /* sipb */, + B33943E720783CC1008DBAB4 /* Down */, + B33943E820783CC1008DBAB4 /* hlines3 */, + B33943E920783CC1008DBAB4 /* plaid */, + B33943EA20783CC1008DBAB4 /* cntr_ptr */, + B33943EB20783CC1008DBAB4 /* right_ptr */, + B33943EC20783CC1008DBAB4 /* FlipVert */, + B33943ED20783CC1008DBAB4 /* gray3 */, + B33943EE20783CC1008DBAB4 /* icon */, + B33943EF20783CC1008DBAB4 /* xlogo32 */, + B33943F020783CC1008DBAB4 /* hlines2 */, + B33943F120783CC1008DBAB4 /* menu10 */, + B33943F220783CC1008DBAB4 /* black */, + B33943F320783CC1008DBAB4 /* mensetmanus */, + B33943F420783CC1008DBAB4 /* grid4 */, + B33943F520783CC1008DBAB4 /* opendotMask */, + B33943F620783CC1008DBAB4 /* opendot */, + B33943F720783CC1008DBAB4 /* right_ptrmsk */, + B33943F820783CC1008DBAB4 /* mailfullmsk */, + B33943F920783CC1008DBAB4 /* menu16 */, + B33943FA20783CC1008DBAB4 /* woman */, + B33943FB20783CC1008DBAB4 /* flagup */, + B33943FC20783CC1008DBAB4 /* dimple1 */, + B33943FD20783CC1008DBAB4 /* grid2 */, + B33943FE20783CC1008DBAB4 /* boxes */, + B33943FF20783CC1008DBAB4 /* keyboard16 */, + ); + path = bitmaps; + sourceTree = ""; + }; + B339440620783CC1008DBAB4 /* Xtrans */ = { + isa = PBXGroup; + children = ( + B339440720783CC1008DBAB4 /* Xtranstli.c */, + B339440820783CC1008DBAB4 /* Xtranssock.c */, + B339440920783CC1008DBAB4 /* transport.c */, + B339440A20783CC1008DBAB4 /* Xtrans.h */, + B339440B20783CC1008DBAB4 /* Xtranslcl.c */, + B339440C20783CC1008DBAB4 /* Xtransint.h */, + B339440D20783CC1008DBAB4 /* Xtransutil.c */, + B339440E20783CC1008DBAB4 /* Xtrans.c */, + ); + path = Xtrans; + sourceTree = ""; + }; + B339441920783CC1008DBAB4 /* extensions */ = { + isa = PBXGroup; + children = ( + B339441A20783CC1008DBAB4 /* XKBsrv.h */, + B339441B20783CC1008DBAB4 /* XKBproto.h */, + B339441C20783CC1008DBAB4 /* XKB.h */, + B339441D20783CC1008DBAB4 /* XI2proto.h */, + B339441E20783CC1008DBAB4 /* XIproto.h */, + B339441F20783CC1008DBAB4 /* XI.h */, + B339442020783CC1008DBAB4 /* XKBgeom.h */, + B339442120783CC1008DBAB4 /* XI2.h */, + B339442220783CC1008DBAB4 /* XKBstr.h */, + ); + path = extensions; + sourceTree = ""; + }; + B339443720783CC1008DBAB4 /* alsa */ = { + isa = PBXGroup; + children = ( + B339443820783CC1008DBAB4 /* seq_event.h */, + B339443920783CC1008DBAB4 /* error.h */, + B339443A20783CC1008DBAB4 /* pcm_ioplug.h */, + B339443B20783CC1008DBAB4 /* control_external.h */, + B339443C20783CC1008DBAB4 /* input.h */, + B339443D20783CC1008DBAB4 /* control.h */, + B339443E20783CC1008DBAB4 /* version.h */, + B339443F20783CC1008DBAB4 /* seq.h */, + B339444020783CC1008DBAB4 /* pcm_external.h */, + B339444120783CC1008DBAB4 /* alisp.h */, + B339444220783CC1008DBAB4 /* iatomic.h */, + B339444320783CC1008DBAB4 /* global.h */, + B339444420783CC1008DBAB4 /* asoundlib.h */, + B339444520783CC1008DBAB4 /* conf.h */, + B339444620783CC1008DBAB4 /* seqmid.h */, + B339444720783CC1008DBAB4 /* pcm_rate.h */, + B339444820783CC1008DBAB4 /* seq_midi_event.h */, + B339444920783CC1008DBAB4 /* output.h */, + B339444A20783CC1008DBAB4 /* timer.h */, + B339444B20783CC1008DBAB4 /* mixer.h */, + B339444C20783CC1008DBAB4 /* mixer_abst.h */, + B339444D20783CC1008DBAB4 /* rawmidi.h */, + B339444E20783CC1008DBAB4 /* pcm.h */, + B339444F20783CC1008DBAB4 /* use-case.h */, + B339445020783CC1008DBAB4 /* hwdep.h */, + B339445120783CC1008DBAB4 /* asoundef.h */, + B339445220783CC1008DBAB4 /* pcm_old.h */, + B339445320783CC1008DBAB4 /* pcm_extplug.h */, + B339445420783CC1008DBAB4 /* sound */, + B339445C20783CC1008DBAB4 /* pcm_plugin.h */, + ); + path = alsa; + sourceTree = ""; + }; + B339445420783CC1008DBAB4 /* sound */ = { + isa = PBXGroup; + children = ( + B339445520783CC1008DBAB4 /* sb16_csp.h */, + B339445620783CC1008DBAB4 /* sscape_ioctl.h */, + B339445720783CC1008DBAB4 /* type_compat.h */, + B339445820783CC1008DBAB4 /* emu10k1.h */, + B339445920783CC1008DBAB4 /* asound_fm.h */, + B339445A20783CC1008DBAB4 /* hdspm.h */, + B339445B20783CC1008DBAB4 /* hdsp.h */, + ); + path = sound; + sourceTree = ""; + }; + B339445D20783CC1008DBAB4 /* lib */ = { + isa = PBXGroup; + children = ( + B339445E20783CC1008DBAB4 /* libGLESv2.so */, + B339445F20783CC1008DBAB4 /* libX11.so */, + B339446020783CC1008DBAB4 /* libxcb.so */, + B339446120783CC1008DBAB4 /* libasound.so */, + B339446220783CC1008DBAB4 /* libXau.so */, + B339446320783CC1008DBAB4 /* alibX11.so */, + B339446420783CC1008DBAB4 /* libEGL.so */, + B339446520783CC1008DBAB4 /* libXdmcp.so */, + ); + path = lib; + sourceTree = ""; + }; + B339446720783CC1008DBAB4 /* emscripten */ = { + isa = PBXGroup; + children = ( + B339446820783CC1008DBAB4 /* Makefile */, + ); + path = emscripten; + sourceTree = ""; + }; + B339446920783CC1008DBAB4 /* mac86 */ = { + isa = PBXGroup; + children = ( + B339446A20783CC1008DBAB4 /* Makefile */, + ); + path = mac86; + sourceTree = ""; + }; + B339446C20783CC1008DBAB4 /* linux */ = { + isa = PBXGroup; + children = ( + B339446D20783CC1008DBAB4 /* man */, + B339447020783CC1008DBAB4 /* tools */, + B339447220783CC1008DBAB4 /* Makefile */, + B339447320783CC1008DBAB4 /* flycast.png */, + B339447420783CC1008DBAB4 /* gcwz */, + B339447C20783CC1008DBAB4 /* mappings */, + B339448320783CC1008DBAB4 /* flycast.desktop */, + ); + path = linux; + sourceTree = ""; + }; + B339446D20783CC1008DBAB4 /* man */ = { + isa = PBXGroup; + children = ( + B339446E20783CC1008DBAB4 /* flycast-joyconfig.1 */, + B339446F20783CC1008DBAB4 /* flycast.1 */, + ); + path = man; + sourceTree = ""; + }; + B339447020783CC1008DBAB4 /* tools */ = { + isa = PBXGroup; + children = ( + B339447120783CC1008DBAB4 /* flycast-joyconfig.py */, + ); + path = tools; + sourceTree = ""; + }; + B339447420783CC1008DBAB4 /* gcwz */ = { + isa = PBXGroup; + children = ( + B339447520783CC1008DBAB4 /* enta_viv */, + B339447A20783CC1008DBAB4 /* default.gcw0.desktop */, + B339447B20783CC1008DBAB4 /* icon-32.png */, + ); + path = gcwz; + sourceTree = ""; + }; + B339447520783CC1008DBAB4 /* enta_viv */ = { + isa = PBXGroup; + children = ( + B339447620783CC1008DBAB4 /* libGLESv2.so */, + B339447720783CC1008DBAB4 /* libEGL.so */, + B339447820783CC1008DBAB4 /* libdrm.so */, + B339447920783CC1008DBAB4 /* libglapi.so */, + ); + path = enta_viv; + sourceTree = ""; + }; + B339447C20783CC1008DBAB4 /* mappings */ = { + isa = PBXGroup; + children = ( + B339447D20783CC1008DBAB4 /* controller_pandora.cfg */, + B339447E20783CC1008DBAB4 /* controller_generic.cfg */, + B339447F20783CC1008DBAB4 /* keyboard.cfg */, + B339448020783CC1008DBAB4 /* controller_xpad.cfg */, + B339448120783CC1008DBAB4 /* controller_gcwz.cfg */, + B339448220783CC1008DBAB4 /* controller_xboxdrv.cfg */, + ); + path = mappings; + sourceTree = ""; + }; + B339448420783CC1008DBAB4 /* android */ = { + isa = PBXGroup; + children = ( + B339448520783CC1008DBAB4 /* res */, + B339450D20783CC1008DBAB4 /* build.xml */, + B339450E20783CC1008DBAB4 /* ic_launcher-web.png */, + B339450F20783CC1008DBAB4 /* psd */, + B339451120783CC2008DBAB4 /* AndroidManifest.xml */, + B339451220783CC2008DBAB4 /* project.properties */, + B339451320783CC2008DBAB4 /* .classpath */, + B339451420783CC2008DBAB4 /* libs */, + B339451F20783CC2008DBAB4 /* proguard-project.txt */, + B339452020783CC2008DBAB4 /* .settings */, + B339452220783CC2008DBAB4 /* .project */, + B339452320783CC2008DBAB4 /* icons */, + B339452520783CC2008DBAB4 /* jni */, + B339452D20783CC2008DBAB4 /* assets */, + B339453020783CC2008DBAB4 /* custom_rules.xml */, + B339453120783CC2008DBAB4 /* src */, + ); + path = android; + sourceTree = ""; + }; + B339448520783CC1008DBAB4 /* res */ = { + isa = PBXGroup; + children = ( + B339448620783CC1008DBAB4 /* anim */, + B339448920783CC1008DBAB4 /* values-ru */, + B339448B20783CC1008DBAB4 /* values-it */, + B339448D20783CC1008DBAB4 /* layout-v14 */, + B339449120783CC1008DBAB4 /* values-zh-rCN */, + B339449320783CC1008DBAB4 /* drawable */, + B33944C320783CC1008DBAB4 /* values-da */, + B33944C520783CC1008DBAB4 /* layout */, + B33944D820783CC1008DBAB4 /* values */, + B33944DE20783CC1008DBAB4 /* values-pl */, + B33944E020783CC1008DBAB4 /* drawable-xhdpi */, + B33944E620783CC1008DBAB4 /* drawable-xxhdpi */, + B33944EA20783CC1008DBAB4 /* drawable-hdpi */, + B33944F020783CC1008DBAB4 /* drawable-ldpi */, + B33944F520783CC1008DBAB4 /* values-large */, + B33944F720783CC1008DBAB4 /* menu */, + B33944F920783CC1008DBAB4 /* drawable-mdpi */, + B33944FF20783CC1008DBAB4 /* values-fr */, + B339450120783CC1008DBAB4 /* values-es */, + B339450320783CC1008DBAB4 /* values-jp */, + B339450520783CC1008DBAB4 /* values-de */, + B339450720783CC1008DBAB4 /* values-ko */, + B339450920783CC1008DBAB4 /* values-pt */, + B339450B20783CC1008DBAB4 /* values-zh */, + ); + path = res; + sourceTree = ""; + }; + B339448620783CC1008DBAB4 /* anim */ = { + isa = PBXGroup; + children = ( + B339448720783CC1008DBAB4 /* popup_show */, + B339448820783CC1008DBAB4 /* popup_hide */, + ); + path = anim; + sourceTree = ""; + }; + B339448920783CC1008DBAB4 /* values-ru */ = { + isa = PBXGroup; + children = ( + B339448A20783CC1008DBAB4 /* strings.xml */, + ); + path = "values-ru"; + sourceTree = ""; + }; + B339448B20783CC1008DBAB4 /* values-it */ = { + isa = PBXGroup; + children = ( + B339448C20783CC1008DBAB4 /* strings.xml */, + ); + path = "values-it"; + sourceTree = ""; + }; + B339448D20783CC1008DBAB4 /* layout-v14 */ = { + isa = PBXGroup; + children = ( + B339448E20783CC1008DBAB4 /* input_fragment.xml */, + B339448F20783CC1008DBAB4 /* input_mod_fragment.xml */, + B339449020783CC1008DBAB4 /* configure_fragment.xml */, + ); + path = "layout-v14"; + sourceTree = ""; + }; + B339449120783CC1008DBAB4 /* values-zh-rCN */ = { + isa = PBXGroup; + children = ( + B339449220783CC1008DBAB4 /* strings.xml */, + ); + path = "values-zh-rCN"; + sourceTree = ""; + }; + B339449320783CC1008DBAB4 /* drawable */ = { + isa = PBXGroup; + children = ( + B339449420783CC1008DBAB4 /* menutile.png */, + B339449520783CC1008DBAB4 /* vmu_swap.png */, + B339449620783CC1008DBAB4 /* list_selector.xml */, + B339449720783CC1008DBAB4 /* chd.png */, + B339449820783CC1008DBAB4 /* disc.png */, + B339449920783CC1008DBAB4 /* disk_unknown.png */, + B339449A20783CC1008DBAB4 /* widescreen.png */, + B339449B20783CC1008DBAB4 /* ic_xperia_play.png */, + B339449C20783CC1008DBAB4 /* open_folder.png */, + B339449D20783CC1008DBAB4 /* question.png */, + B339449E20783CC1008DBAB4 /* up.png */, + B339449F20783CC1008DBAB4 /* mute_sound.png */, + B33944A020783CC1008DBAB4 /* toggle_r_l.png */, + B33944A120783CC1008DBAB4 /* apply.png */, + B33944A220783CC1008DBAB4 /* reset.png */, + B33944A320783CC1008DBAB4 /* rounded.xml */, + B33944A420783CC1008DBAB4 /* gradient_bg_hover.xml */, + B33944A520783CC1008DBAB4 /* debug.png */, + B33944A620783CC1008DBAB4 /* gradient_bg.xml */, + B33944A720783CC1008DBAB4 /* toggle_a_b.png */, + B33944A820783CC1008DBAB4 /* background.xml */, + B33944A920783CC1008DBAB4 /* config.png */, + B33944AA20783CC1008DBAB4 /* frames_up.png */, + B33944AB20783CC1008DBAB4 /* print_stats.png */, + B33944AC20783CC1008DBAB4 /* mic_icon.png */, + B33944AD20783CC1008DBAB4 /* cloud.png */, + B33944AE20783CC1008DBAB4 /* game_selector.xml */, + B33944AF20783CC1008DBAB4 /* frames_limit_on.png */, + B33944B020783CC1008DBAB4 /* enable_sound.png */, + B33944B120783CC1008DBAB4 /* list_item_border.xml */, + B33944B220783CC1008DBAB4 /* image_bg.xml */, + B33944B320783CC1008DBAB4 /* input.png */, + B33944B420783CC1008DBAB4 /* normal_view.png */, + B33944B520783CC1008DBAB4 /* star.png */, + B33944B620783CC1008DBAB4 /* cd.png */, + B33944B720783CC1008DBAB4 /* shadow.xml */, + B33944B820783CC1008DBAB4 /* disk_swap.png */, + B33944B920783CC1008DBAB4 /* gdi.png */, + B33944BA20783CC1008DBAB4 /* frames_down.png */, + B33944BB20783CC1008DBAB4 /* ic_banner.png */, + B33944BC20783CC1008DBAB4 /* cdi.pdn */, + B33944BD20783CC1008DBAB4 /* profiler.png */, + B33944BE20783CC1008DBAB4 /* clear_cache.png */, + B33944BF20783CC1008DBAB4 /* cloud_big.png */, + B33944C020783CC1008DBAB4 /* menuback.png */, + B33944C120783CC1008DBAB4 /* frames_limit_off.png */, + B33944C220783CC1008DBAB4 /* close.png */, + ); + path = drawable; + sourceTree = ""; + }; + B33944C320783CC1008DBAB4 /* values-da */ = { + isa = PBXGroup; + children = ( + B33944C420783CC1008DBAB4 /* strings.xml */, + ); + path = "values-da"; + sourceTree = ""; + }; + B33944C520783CC1008DBAB4 /* layout */ = { + isa = PBXGroup; + children = ( + B33944C620783CC1008DBAB4 /* mainuilayout_fragment.xml */, + B33944C720783CC1008DBAB4 /* menu_popup_config.xml */, + B33944C820783CC1008DBAB4 /* head_list_item.xml */, + B33944C920783CC1008DBAB4 /* bios_list_item.xml */, + B33944CA20783CC1008DBAB4 /* menu_popup_debug.xml */, + B33944CB20783CC1008DBAB4 /* input_fragment.xml */, + B33944CC20783CC1008DBAB4 /* menu_popup_main.xml */, + B33944CD20783CC1008DBAB4 /* webview.xml */, + B33944CE20783CC1008DBAB4 /* about_fragment.xml */, + B33944CF20783CC1008DBAB4 /* app_list_item.xml */, + B33944D020783CC1008DBAB4 /* input_mod_fragment.xml */, + B33944D120783CC1008DBAB4 /* toast_layout.xml */, + B33944D220783CC1008DBAB4 /* spinner_selected.xml */, + B33944D320783CC1008DBAB4 /* dialog_item.xml */, + B33944D420783CC1008DBAB4 /* change_item.xml */, + B33944D520783CC1008DBAB4 /* activity_main.xml */, + B33944D620783CC1008DBAB4 /* cloud_fragment.xml */, + B33944D720783CC1008DBAB4 /* configure_fragment.xml */, + ); + path = layout; + sourceTree = ""; + }; + B33944D820783CC1008DBAB4 /* values */ = { + isa = PBXGroup; + children = ( + B33944D920783CC1008DBAB4 /* dimens.xml */, + B33944DA20783CC1008DBAB4 /* donottranslate.xml */, + B33944DB20783CC1008DBAB4 /* styles.xml */, + B33944DC20783CC1008DBAB4 /* strings.xml */, + B33944DD20783CC1008DBAB4 /* ids.xml */, + ); + path = values; + sourceTree = ""; + }; + B33944DE20783CC1008DBAB4 /* values-pl */ = { + isa = PBXGroup; + children = ( + B33944DF20783CC1008DBAB4 /* strings.xml */, + ); + path = "values-pl"; + sourceTree = ""; + }; + B33944E020783CC1008DBAB4 /* drawable-xhdpi */ = { + isa = PBXGroup; + children = ( + B33944E120783CC1008DBAB4 /* ic_notification.png */, + B33944E220783CC1008DBAB4 /* ic_action_search.png */, + B33944E320783CC1008DBAB4 /* ic_github.png */, + B33944E420783CC1008DBAB4 /* ic_launcher.png */, + B33944E520783CC1008DBAB4 /* ouya_icon.png */, + ); + path = "drawable-xhdpi"; + sourceTree = ""; + }; + B33944E620783CC1008DBAB4 /* drawable-xxhdpi */ = { + isa = PBXGroup; + children = ( + B33944E720783CC1008DBAB4 /* ic_notification.png */, + B33944E820783CC1008DBAB4 /* ic_github.png */, + B33944E920783CC1008DBAB4 /* ic_launcher.png */, + ); + path = "drawable-xxhdpi"; + sourceTree = ""; + }; + B33944EA20783CC1008DBAB4 /* drawable-hdpi */ = { + isa = PBXGroup; + children = ( + B33944EB20783CC1008DBAB4 /* ic_notification.png */, + B33944EC20783CC1008DBAB4 /* ic_action_search.png */, + B33944ED20783CC1008DBAB4 /* ic_github.png */, + B33944EE20783CC1008DBAB4 /* ic_drawer.png */, + B33944EF20783CC1008DBAB4 /* ic_launcher.png */, + ); + path = "drawable-hdpi"; + sourceTree = ""; + }; + B33944F020783CC1008DBAB4 /* drawable-ldpi */ = { + isa = PBXGroup; + children = ( + B33944F120783CC1008DBAB4 /* ic_notification.png */, + B33944F220783CC1008DBAB4 /* ic_github.png */, + B33944F320783CC1008DBAB4 /* ic_drawer.png */, + B33944F420783CC1008DBAB4 /* ic_launcher.png */, + ); + path = "drawable-ldpi"; + sourceTree = ""; + }; + B33944F520783CC1008DBAB4 /* values-large */ = { + isa = PBXGroup; + children = ( + B33944F620783CC1008DBAB4 /* dimens.xml */, + ); + path = "values-large"; + sourceTree = ""; + }; + B33944F720783CC1008DBAB4 /* menu */ = { + isa = PBXGroup; + children = ( + B33944F820783CC1008DBAB4 /* activity_main.xml */, + ); + path = menu; + sourceTree = ""; + }; + B33944F920783CC1008DBAB4 /* drawable-mdpi */ = { + isa = PBXGroup; + children = ( + B33944FA20783CC1008DBAB4 /* ic_notification.png */, + B33944FB20783CC1008DBAB4 /* ic_action_search.png */, + B33944FC20783CC1008DBAB4 /* ic_github.png */, + B33944FD20783CC1008DBAB4 /* ic_drawer.png */, + B33944FE20783CC1008DBAB4 /* ic_launcher.png */, + ); + path = "drawable-mdpi"; + sourceTree = ""; + }; + B33944FF20783CC1008DBAB4 /* values-fr */ = { + isa = PBXGroup; + children = ( + B339450020783CC1008DBAB4 /* strings.xml */, + ); + path = "values-fr"; + sourceTree = ""; + }; + B339450120783CC1008DBAB4 /* values-es */ = { + isa = PBXGroup; + children = ( + B339450220783CC1008DBAB4 /* strings.xml */, + ); + path = "values-es"; + sourceTree = ""; + }; + B339450320783CC1008DBAB4 /* values-jp */ = { + isa = PBXGroup; + children = ( + B339450420783CC1008DBAB4 /* strings.xml */, + ); + path = "values-jp"; + sourceTree = ""; + }; + B339450520783CC1008DBAB4 /* values-de */ = { + isa = PBXGroup; + children = ( + B339450620783CC1008DBAB4 /* strings.xml */, + ); + path = "values-de"; + sourceTree = ""; + }; + B339450720783CC1008DBAB4 /* values-ko */ = { + isa = PBXGroup; + children = ( + B339450820783CC1008DBAB4 /* strings.xml */, + ); + path = "values-ko"; + sourceTree = ""; + }; + B339450920783CC1008DBAB4 /* values-pt */ = { + isa = PBXGroup; + children = ( + B339450A20783CC1008DBAB4 /* strings.xml */, + ); + path = "values-pt"; + sourceTree = ""; + }; + B339450B20783CC1008DBAB4 /* values-zh */ = { + isa = PBXGroup; + children = ( + B339450C20783CC1008DBAB4 /* strings.xml */, + ); + path = "values-zh"; + sourceTree = ""; + }; + B339450F20783CC1008DBAB4 /* psd */ = { + isa = PBXGroup; + children = ( + B339451020783CC2008DBAB4 /* dctemplate.psd */, + ); + path = psd; + sourceTree = ""; + }; + B339451420783CC2008DBAB4 /* libs */ = { + isa = PBXGroup; + children = ( + B339451520783CC2008DBAB4 /* commons-logging-1.1.1.jar */, + B339451620783CC2008DBAB4 /* dropbox-android-sdk-1.6.1.jar */, + B339451720783CC2008DBAB4 /* android-support-v4.jar */, + B339451820783CC2008DBAB4 /* commons-io-2.4.jar */, + B339451920783CC2008DBAB4 /* image-uniload.jar */, + B339451A20783CC2008DBAB4 /* commons-lang3-3.1.jar */, + B339451B20783CC2008DBAB4 /* ouya-sdk.jar */, + B339451C20783CC2008DBAB4 /* json_simple-1.1.jar */, + B339451D20783CC2008DBAB4 /* com.bda.controller.jar */, + B339451E20783CC2008DBAB4 /* bcprov-jdk16-146.jar */, + ); + path = libs; + sourceTree = ""; + }; + B339452020783CC2008DBAB4 /* .settings */ = { + isa = PBXGroup; + children = ( + B339452120783CC2008DBAB4 /* org.eclipse.jdt.core.prefs */, + ); + path = .settings; + sourceTree = ""; + }; + B339452320783CC2008DBAB4 /* icons */ = { + isa = PBXGroup; + children = ( + B339452420783CC2008DBAB4 /* cd.pdn */, + ); + path = icons; + sourceTree = ""; + }; + B339452520783CC2008DBAB4 /* jni */ = { + isa = PBXGroup; + children = ( + B339452620783CC2008DBAB4 /* Android.mk */, + B339452720783CC2008DBAB4 /* Application.mk */, + B339452820783CC2008DBAB4 /* src */, + ); + path = jni; + sourceTree = ""; + }; + B339452820783CC2008DBAB4 /* src */ = { + isa = PBXGroup; + children = ( + B339452920783CC2008DBAB4 /* utils.h */, + B339452A20783CC2008DBAB4 /* utils.cpp */, + B339452B20783CC2008DBAB4 /* Android.cpp */, + B339452C20783CC2008DBAB4 /* XperiaPlay.c */, + ); + path = src; + sourceTree = ""; + }; + B339452D20783CC2008DBAB4 /* assets */ = { + isa = PBXGroup; + children = ( + B339452E20783CC2008DBAB4 /* buttons.png */, + B339452F20783CC2008DBAB4 /* build */, + ); + path = assets; + sourceTree = ""; + }; + B339453120783CC2008DBAB4 /* src */ = { + isa = PBXGroup; + children = ( + B339453220783CC2008DBAB4 /* com */, + ); + path = src; + sourceTree = ""; + }; + B339453220783CC2008DBAB4 /* com */ = { + isa = PBXGroup; + children = ( + B339453320783CC2008DBAB4 /* flycast */, + B339455320783CC2008DBAB4 /* android */, + ); + path = com; + sourceTree = ""; + }; + B339453320783CC2008DBAB4 /* flycast */ = { + isa = PBXGroup; + children = ( + B339453420783CC2008DBAB4 /* emulator */, + ); + path = flycast; + sourceTree = ""; + }; + B339453420783CC2008DBAB4 /* emulator */ = { + isa = PBXGroup; + children = ( + B339453520783CC2008DBAB4 /* emu */, + B339453B20783CC2008DBAB4 /* config */, + B339454120783CC2008DBAB4 /* GL2JNIActivity.java */, + B339454220783CC2008DBAB4 /* MainActivity.java */, + B339454320783CC2008DBAB4 /* periph */, + B339454A20783CC2008DBAB4 /* CloudFragment.java */, + B339454B20783CC2008DBAB4 /* GL2JNINative.java */, + B339454C20783CC2008DBAB4 /* AboutFragment.java */, + B339454D20783CC2008DBAB4 /* FileBrowser.java */, + B339454E20783CC2008DBAB4 /* debug */, + B339455220783CC2008DBAB4 /* XMLParser.java */, + ); + path = emulator; + sourceTree = ""; + }; + B339453520783CC2008DBAB4 /* emu */ = { + isa = PBXGroup; + children = ( + B339453620783CC2008DBAB4 /* GLCFactory6.java */, + B339453720783CC2008DBAB4 /* JNIdc.java */, + B339453820783CC2008DBAB4 /* OnScreenMenu.java */, + B339453920783CC2008DBAB4 /* GLCFactory.java */, + B339453A20783CC2008DBAB4 /* GL2JNIView.java */, + ); + path = emu; + sourceTree = ""; + }; + B339453B20783CC2008DBAB4 /* config */ = { + isa = PBXGroup; + children = ( + B339453C20783CC2008DBAB4 /* InputFragment.java */, + B339453D20783CC2008DBAB4 /* EditVJoyActivity.java */, + B339453E20783CC2008DBAB4 /* OptionsFragment.java */, + B339453F20783CC2008DBAB4 /* InputModFragment.java */, + B339454020783CC2008DBAB4 /* Config.java */, + ); + path = config; + sourceTree = ""; + }; + B339454320783CC2008DBAB4 /* periph */ = { + isa = PBXGroup; + children = ( + B339454420783CC2008DBAB4 /* VJoy.java */, + B339454520783CC2008DBAB4 /* SipEmulator.java */, + B339454620783CC2008DBAB4 /* Gamepad.java */, + B339454720783CC2008DBAB4 /* MogaHack.java */, + B339454820783CC2008DBAB4 /* VmuLcd.java */, + B339454920783CC2008DBAB4 /* MOGAInput.java */, + ); + path = periph; + sourceTree = ""; + }; + B339454E20783CC2008DBAB4 /* debug */ = { + isa = PBXGroup; + children = ( + B339454F20783CC2008DBAB4 /* GitAdapter.java */, + B339455020783CC2008DBAB4 /* GenerateLogs.java */, + B339455120783CC2008DBAB4 /* UploadLogs.java */, + ); + path = debug; + sourceTree = ""; + }; + B339455320783CC2008DBAB4 /* android */ = { + isa = PBXGroup; + children = ( + B339455420783CC2008DBAB4 /* util */, + ); + path = android; + sourceTree = ""; + }; + B339455420783CC2008DBAB4 /* util */ = { + isa = PBXGroup; + children = ( + B339455520783CC2008DBAB4 /* FileUtils.java */, + B339455620783CC2008DBAB4 /* DreamTime.java */, + ); + path = util; + sourceTree = ""; + }; + B339455720783CC2008DBAB4 /* nacl */ = { + isa = PBXGroup; + children = ( + B339455820783CC2008DBAB4 /* index.html */, + B339455920783CC2008DBAB4 /* background.js */, + B339455A20783CC2008DBAB4 /* Makefile */, + B339455B20783CC2008DBAB4 /* icon128.png */, + B339455C20783CC2008DBAB4 /* example.js */, + B339455D20783CC2008DBAB4 /* common.js */, + ); + path = nacl; + sourceTree = ""; + }; + B339459720783CC2008DBAB4 /* docs */ = { + isa = PBXGroup; + children = ( + B339459820783CC2008DBAB4 /* microphone support notes.txt */, + ); + path = docs; + sourceTree = ""; + }; + B33945B820783CC2008DBAB4 /* gdtool */ = { + isa = PBXGroup; + children = ( + B33945B920783CC2008DBAB4 /* gdtool.vcxproj.filters */, + B33945BA20783CC2008DBAB4 /* gdtool.sln */, + B33945BB20783CC2008DBAB4 /* gdtool.vcxproj */, + B33945BC20783CC2008DBAB4 /* gdtool.vcxproj.user */, + B33945BD20783CC2008DBAB4 /* src */, + ); + path = gdtool; + sourceTree = ""; + }; + B33945BD20783CC2008DBAB4 /* src */ = { + isa = PBXGroup; + children = ( + B33945BE20783CC2008DBAB4 /* cdromfs.h */, + B33945BF20783CC2008DBAB4 /* cdromfs.cpp */, + B33945C020783CC2008DBAB4 /* cdromfs_imp.h */, + B33945C120783CC2008DBAB4 /* main.cpp */, + ); + path = src; + sourceTree = ""; + }; + B3447EA8218BC51300557ACE /* Audio */ = { + isa = PBXGroup; + children = ( + B3447EA2218BBFB700557ACE /* PVFlycast+AudioTypes.h */, + B3447E9A218B826F00557ACE /* PVFlycast+Audio.h */, + B3447E9B218B826F00557ACE /* PVFlycast+Audio.mm */, + B3447EA6218BC3A600557ACE /* PVFlycast+CoreAudio.h */, + B3447EA4218BC36B00557ACE /* PVFlycast+CoreAudio.mm */, + ); + path = Audio; + sourceTree = ""; + }; + B3447EB5218BCE2000557ACE /* Core */ = { + isa = PBXGroup; + children = ( + B3C76223207833DE009950E4 /* PVFlycastCore.h */, + B3C76224207833DE009950E4 /* PVFlycastCore.mm */, + B3447EB1218BC69700557ACE /* PVFlycastCore+Audio.h */, + B3447EB2218BC69700557ACE /* PVFlycastCore+Audio.m */, + B3447EAD218BC5C500557ACE /* PVFlycastCore+Video.h */, + B3447EAE218BC5C500557ACE /* PVFlycastCore+Video.m */, + B3447EA9218BC59D00557ACE /* PVFlycastCore+Saves.h */, + B3447EAA218BC59D00557ACE /* PVFlycastCore+Saves.m */, + B3447E96218B809200557ACE /* PVFlycastCore+Controls.h */, + B3447E97218B809300557ACE /* PVFlycastCore+Controls.mm */, + ); + path = Core; + sourceTree = ""; + }; + B3C7620620783162009950E4 = { + isa = PBXGroup; + children = ( + B3447EBF218BE9DA00557ACE /* BuildFlags.xcconfig */, + B3C762202078327B009950E4 /* PVFlycastCore */, + B339411E20783CBB008DBAB4 /* flycast */, + B3C7621220783162009950E4 /* PVFlycast */, + B3C7621120783162009950E4 /* Products */, + B3C7621B20783242009950E4 /* Frameworks */, + ); + sourceTree = ""; + }; + B3C7621120783162009950E4 /* Products */ = { + isa = PBXGroup; + children = ( + B3C7621020783162009950E4 /* PVFlycast.framework */, + B30178D3207C901D0051B93D /* libflycast-iOS.a */, + B3447EE6218BEDD200557ACE /* PVFlycast.framework */, + B3447F91218BEE3F00557ACE /* libflycast-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + B3C7621220783162009950E4 /* PVFlycast */ = { + isa = PBXGroup; + children = ( + B316B4E621926FE500693472 /* emu.cfg */, + B3C7622720783510009950E4 /* Core.plist */, + B3C7621320783162009950E4 /* PVFlycast.h */, + B3C7621420783162009950E4 /* Info.plist */, + ); + path = PVFlycast; + sourceTree = ""; + }; + B3C7621B20783242009950E4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B35E6BF1207CD2670040709A /* AudioToolbox.framework */, + B35E6BEF207CD2610040709A /* AudioUnit.framework */, + B324C31B2191964F009F4EDC /* AVFoundation.framework */, + B35E6BF8207D00D00040709A /* AVFoundation.framework */, + B35E6BF4207CD2740040709A /* CoreAudio.framework */, + B35E6BF3207CD2730040709A /* CoreAudioKit.framework */, + B3C7621E2078325C009950E4 /* Foundation.framework */, + B339468820783F41008DBAB4 /* libpthread.tbd */, + B339468A20783F48008DBAB4 /* libz.tbd */, + B3C7621C20783243009950E4 /* OpenGLES.framework */, + B3B104B8218F281B00210C39 /* PVSupport.framework */, + B3C7622120783297009950E4 /* PVSupport.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B3C762202078327B009950E4 /* PVFlycastCore */ = { + isa = PBXGroup; + children = ( + B3447EB5218BCE2000557ACE /* Core */, + B3447EA8218BC51300557ACE /* Audio */, + B3447EA0218B881000557ACE /* PVFlycast.mm */, + ); + path = PVFlycastCore; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + B3447ED5218BEDD200557ACE /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B3447ED6218BEDD200557ACE /* PVFlycast.h in Headers */, + B3447ED7218BEDD200557ACE /* PVFlycastCore.h in Headers */, + B3447ED8218BEDD200557ACE /* PVFlycast+Audio.h in Headers */, + B3447ED9218BEDD200557ACE /* PVFlycastCore+Audio.h in Headers */, + B3447EDA218BEDD200557ACE /* PVFlycastCore+Saves.h in Headers */, + B3447EDB218BEDD200557ACE /* PVFlycast+AudioTypes.h in Headers */, + B3447EDC218BEDD200557ACE /* PVFlycast+CoreAudio.h in Headers */, + B3447EDD218BEDD200557ACE /* PVFlycastCore+Controls.h in Headers */, + B3447EDE218BEDD200557ACE /* PVFlycastCore+Video.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3C7620D20783162009950E4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B3C7621520783162009950E4 /* PVFlycast.h in Headers */, + B3C76225207833DE009950E4 /* PVFlycastCore.h in Headers */, + B3447E9C218B826F00557ACE /* PVFlycast+Audio.h in Headers */, + B3447EB3218BC69700557ACE /* PVFlycastCore+Audio.h in Headers */, + B3447EAB218BC59D00557ACE /* PVFlycastCore+Saves.h in Headers */, + B3447EA3218BBFBC00557ACE /* PVFlycast+AudioTypes.h in Headers */, + B3447EA7218BC3A600557ACE /* PVFlycast+CoreAudio.h in Headers */, + B3447E9F218B858100557ACE /* PVFlycastCore+Controls.h in Headers */, + B3447EAF218BC5C500557ACE /* PVFlycastCore+Video.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + B30178D2207C901D0051B93D /* flycast-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = B30178D9207C901D0051B93D /* Build configuration list for PBXNativeTarget "flycast-iOS" */; + buildPhases = ( + B30178CF207C901D0051B93D /* Sources */, + B30178D0207C901D0051B93D /* Frameworks */, + B30178D1207C901D0051B93D /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "flycast-iOS"; + productName = flycast; + productReference = B30178D3207C901D0051B93D /* libflycast-iOS.a */; + productType = "com.apple.product-type.library.static"; + }; + B3447EC0218BEDD200557ACE /* PVFlycast-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = B3447EE3218BEDD200557ACE /* Build configuration list for PBXNativeTarget "PVFlycast-tvOS" */; + buildPhases = ( + B3447EC1218BEDD200557ACE /* Sources */, + B3447ECA218BEDD200557ACE /* Frameworks */, + B3447ED5218BEDD200557ACE /* Headers */, + B3447EDF218BEDD200557ACE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + B3DDF56F26E9B90400CE47F0 /* PBXTargetDependency */, + ); + name = "PVFlycast-tvOS"; + productName = PVFlycast; + productReference = B3447EE6218BEDD200557ACE /* PVFlycast.framework */; + productType = "com.apple.product-type.framework"; + }; + B3447EE8218BEE3F00557ACE /* flycast-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = B3447F8E218BEE3F00557ACE /* Build configuration list for PBXNativeTarget "flycast-tvOS" */; + buildPhases = ( + B3447EE9218BEE3F00557ACE /* Sources */, + B3447F8C218BEE3F00557ACE /* Frameworks */, + B3447F8D218BEE3F00557ACE /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "flycast-tvOS"; + productName = flycast; + productReference = B3447F91218BEE3F00557ACE /* libflycast-tvOS.a */; + productType = "com.apple.product-type.library.static"; + }; + B3C7620F20783162009950E4 /* PVFlycast-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = B3C7621820783162009950E4 /* Build configuration list for PBXNativeTarget "PVFlycast-iOS" */; + buildPhases = ( + B3C7620B20783162009950E4 /* Sources */, + B3C7620C20783162009950E4 /* Frameworks */, + B3C7620D20783162009950E4 /* Headers */, + B3C7620E20783162009950E4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PVFlycast-iOS"; + productName = PVFlycast; + productReference = B3C7621020783162009950E4 /* PVFlycast.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B3C7620720783162009950E4 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + CLASSPREFIX = PV; + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = "Provenance Emu"; + TargetAttributes = { + B30178D2207C901D0051B93D = { + CreatedOnToolsVersion = 9.3; + ProvisioningStyle = Automatic; + }; + B3C7620F20783162009950E4 = { + CreatedOnToolsVersion = 9.3; + }; + }; + }; + buildConfigurationList = B3C7620A20783162009950E4 /* Build configuration list for PBXProject "PVFlycast" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = B3C7620620783162009950E4; + productRefGroup = B3C7621120783162009950E4 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B3C7620F20783162009950E4 /* PVFlycast-iOS */, + B3447EC0218BEDD200557ACE /* PVFlycast-tvOS */, + B30178D2207C901D0051B93D /* flycast-iOS */, + B3447EE8218BEE3F00557ACE /* flycast-tvOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B3447EDF218BEDD200557ACE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B316B4E821926FE500693472 /* emu.cfg in Resources */, + B3447EE0218BEDD200557ACE /* Shader.fsh in Resources */, + B3447EE1218BEDD200557ACE /* Shader.vsh in Resources */, + B3447EE2218BEDD200557ACE /* Core.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3C7620E20783162009950E4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B316B4E721926FE500693472 /* emu.cfg in Resources */, + B333502820786BEB0036A448 /* Shader.fsh in Resources */, + B333502720786BD90036A448 /* Shader.vsh in Resources */, + B33350262078619C0036A448 /* Core.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B30178CF207C901D0051B93D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B30178F7207C908F0051B93D /* zip_free.c in Sources */, + B30178E8207C908F0051B93D /* holly_intc.cpp in Sources */, + B30178EF207C908F0051B93D /* zip_source_free.c in Sources */, + B3017957207C908F0051B93D /* sh4_opcodes.cpp in Sources */, + B3017935207C908F0051B93D /* pngpread.c in Sources */, + B30178FB207C908F0051B93D /* bsc.cpp in Sources */, + B30178E9207C908F0051B93D /* reios.cpp in Sources */, + B3017940207C908F0051B93D /* ubc.cpp in Sources */, + B301795B207C908F0051B93D /* decoder.cpp in Sources */, + B3017979207C908F0051B93D /* zip_error_clear.c in Sources */, + B301790E207C908F0051B93D /* zip_dirent.c in Sources */, + B301796E207C908F0051B93D /* reios_elf.cpp in Sources */, + B3017932207C908F0051B93D /* zip_stat_index.c in Sources */, + B30178F5207C908F0051B93D /* zip_unchange.c in Sources */, + B3017923207C908F0051B93D /* maple_cfg.cpp in Sources */, + B3017926207C908F0051B93D /* sb.cpp in Sources */, + B3017951207C908F0051B93D /* dsp.cpp in Sources */, + B301796C207C908F0051B93D /* nullDC.cpp in Sources */, + B3017925207C908F0051B93D /* shil.cpp in Sources */, + B3017930207C908F0051B93D /* rec_cpp.cpp in Sources */, + B3017955207C908F0051B93D /* pngerror.c in Sources */, + B3017942207C908F0051B93D /* stdclass.cpp in Sources */, + B301790F207C908F0051B93D /* common.cpp in Sources */, + B3017913207C908F0051B93D /* maple_helper.cpp in Sources */, + B3017946207C908F0051B93D /* ioctl.cpp in Sources */, + B301794B207C908F0051B93D /* virt_arm.cpp in Sources */, + B3017908207C908F0051B93D /* zip_unchange_all.c in Sources */, + B301792E207C908F0051B93D /* zip_file_get_offset.c in Sources */, + B3017943207C908F0051B93D /* pvr_mem.cpp in Sources */, + B30178ED207C908F0051B93D /* zip_error_get_sys_type.c in Sources */, + B3017917207C908F0051B93D /* sh4_opcode_list.cpp in Sources */, + B3017918207C908F0051B93D /* zip_error.c in Sources */, + B301793E207C908F0051B93D /* drkPvr.cpp in Sources */, + B30178DD207C908E0051B93D /* md5.cpp in Sources */, + B30178F0207C908F0051B93D /* pvr_regs.cpp in Sources */, + B30178FC207C908F0051B93D /* zip_stat_init.c in Sources */, + B301795D207C908F0051B93D /* zip_source_zip.c in Sources */, + B30178FD207C908F0051B93D /* sh4_mem.cpp in Sources */, + B301797C207C908F0051B93D /* zip_entry_new.c in Sources */, + B301796F207C908F0051B93D /* mkstemp.c in Sources */, + B3017924207C908F0051B93D /* zip_source_function.c in Sources */, + B30178F4207C908F0051B93D /* gltex.cpp in Sources */, + B301791F207C908F0051B93D /* zip_unchange_archive.c in Sources */, + B3017978207C908F0051B93D /* profiler.cpp in Sources */, + B3017949207C908F0051B93D /* cdipsr.cpp in Sources */, + B30178EE207C908F0051B93D /* audiobackend_pulseaudio.cpp in Sources */, + B3017911207C908F0051B93D /* zip_entry_free.c in Sources */, + B301796B207C908F0051B93D /* arm_init.c in Sources */, + B301794C207C908F0051B93D /* filter_neon_intrinsics.c in Sources */, + B3017952207C908F0051B93D /* zip_memdup.c in Sources */, + B3017912207C908F0051B93D /* zip_filerange_crc.c in Sources */, + B30178F8207C908F0051B93D /* zip_stat.c in Sources */, + B3017974207C908F0051B93D /* tmu.cpp in Sources */, + B301795E207C908F0051B93D /* maple_if.cpp in Sources */, + B3017954207C908F0051B93D /* pngwtran.c in Sources */, + B30178E2207C908F0051B93D /* chdr.cpp in Sources */, + B301790D207C908F0051B93D /* gdrom_hle.cpp in Sources */, + B30178FE207C908F0051B93D /* zip_source_file.c in Sources */, + B3017959207C908F0051B93D /* zip_delete.c in Sources */, + B3017971207C908F0051B93D /* pngwrite.c in Sources */, + B3017975207C908F0051B93D /* pngwio.c in Sources */, + B3017922207C908F0051B93D /* zip_error_get.c in Sources */, + B30178EC207C908F0051B93D /* pngread.c in Sources */, + B30178F1207C908F0051B93D /* ta_ctx.cpp in Sources */, + B3017973207C908F0051B93D /* Renderer_if.cpp in Sources */, + B3017916207C908F0051B93D /* nixprof.cpp in Sources */, + B301795F207C908F0051B93D /* coreio.cpp in Sources */, + B30178FF207C908F0051B93D /* zip_fclose.c in Sources */, + B3017961207C908F0051B93D /* pngrtran.c in Sources */, + B301792B207C908F0051B93D /* pngmem.c in Sources */, + B30178E7207C908F0051B93D /* zip_get_archive_flag.c in Sources */, + B3017907207C908F0051B93D /* chd.cpp in Sources */, + B301794E207C908F0051B93D /* serial.cpp in Sources */, + B3017939207C908F0051B93D /* elf.cpp in Sources */, + B301797A207C908F0051B93D /* descrambl.cpp in Sources */, + B3017965207C908F0051B93D /* arm7.cpp in Sources */, + B30178E5207C908F0051B93D /* spg.cpp in Sources */, + B3017970207C908F0051B93D /* zip_file_strerror.c in Sources */, + B30178EA207C908F0051B93D /* zip_add_dir.c in Sources */, + B3017953207C908F0051B93D /* elf64.cpp in Sources */, + B3017941207C908F0051B93D /* cfg.cpp in Sources */, + B3017958207C908F0051B93D /* gdromv3.cpp in Sources */, + B3017901207C908F0051B93D /* dmac.cpp in Sources */, + B301791A207C908F0051B93D /* zip_fopen_index.c in Sources */, + B301793D207C908F0051B93D /* cdi.cpp in Sources */, + B301796D207C908F0051B93D /* sh4_mmr.cpp in Sources */, + B3017969207C908F0051B93D /* zip_set_archive_flag.c in Sources */, + B30178F9207C908F0051B93D /* _vmem.cpp in Sources */, + B301793A207C908F0051B93D /* zip_get_name.c in Sources */, + B3017910207C908F0051B93D /* ccn.cpp in Sources */, + B301792D207C908F0051B93D /* blockmanager.cpp in Sources */, + B301794D207C908F0051B93D /* aica_mem.cpp in Sources */, + B30178F3207C908F0051B93D /* sb_mem.cpp in Sources */, + B301793C207C908F0051B93D /* sb_dma.cpp in Sources */, + B301791D207C908F0051B93D /* zip_unchange_data.c in Sources */, + B301790C207C908F0051B93D /* pngrio.c in Sources */, + B301793F207C908F0051B93D /* sh4_fpu.cpp in Sources */, + B3017968207C908F0051B93D /* pngwutil.c in Sources */, + B301791C207C908F0051B93D /* zip_get_file_comment.c in Sources */, + B301795C207C908F0051B93D /* mmu.cpp in Sources */, + B3017921207C908F0051B93D /* zip_new.c in Sources */, + B301796A207C908F0051B93D /* aica_if.cpp in Sources */, + B30178DC207C908E0051B93D /* zip_source_filep.c in Sources */, + B3017977207C908F0051B93D /* sh4_interpreter.cpp in Sources */, + B30178DF207C908F0051B93D /* zip_file_error_get.c in Sources */, + B3017963207C908F0051B93D /* audiostream.cpp in Sources */, + B3017914207C908F0051B93D /* pngtrans.c in Sources */, + B30178FA207C908F0051B93D /* elf32.cpp in Sources */, + B3017972207C908F0051B93D /* zip_add.c in Sources */, + B3017938207C908F0051B93D /* zip_error_to_str.c in Sources */, + B301793B207C908F0051B93D /* gldraw.cpp in Sources */, + B301794F207C908F0051B93D /* zip_set_name.c in Sources */, + B30178E0207C908F0051B93D /* zip_strerror.c in Sources */, + B301797D207C908F0051B93D /* zip_open.c in Sources */, + B301792A207C908F0051B93D /* zip_fopen.c in Sources */, + B3017936207C908F0051B93D /* rtc.cpp in Sources */, + B3017962207C908F0051B93D /* zip_get_num_files.c in Sources */, + B301792C207C908F0051B93D /* pngrutil.c in Sources */, + B301791E207C908F0051B93D /* zip_error_strerror.c in Sources */, + B3017909207C908F0051B93D /* zip_close.c in Sources */, + B3017945207C908F0051B93D /* vbaARM.cpp in Sources */, + B301794A207C908F0051B93D /* audiobackend_alsa.cpp in Sources */, + B3017966207C908F0051B93D /* intc.cpp in Sources */, + B3017964207C908F0051B93D /* zip_source_buffer.c in Sources */, + B301790A207C908F0051B93D /* zip_err_str.c in Sources */, + B301797B207C908F0051B93D /* zip_file_error_clear.c in Sources */, + B3017915207C908F0051B93D /* pvr_sb_regs.cpp in Sources */, + B3017903207C908F0051B93D /* gles.cpp in Sources */, + B301790B207C908F0051B93D /* rec_arm.cpp in Sources */, + B3017929207C908F0051B93D /* audiobackend_oss.cpp in Sources */, + B3017904207C908F0051B93D /* zip_get_archive_comment.c in Sources */, + B3017919207C908F0051B93D /* zip_set_file_comment.c in Sources */, + B3017947207C908F0051B93D /* cpg.cpp in Sources */, + B301795A207C908F0051B93D /* sha1.cpp in Sources */, + B30178E4207C908F0051B93D /* zip_fread.c in Sources */, + B30178F2207C908F0051B93D /* gdrom_response.cpp in Sources */, + B3017950207C908F0051B93D /* common.cpp in Sources */, + B3017927207C908F0051B93D /* maple_devs.cpp in Sources */, + B30178E1207C908F0051B93D /* TexCache.cpp in Sources */, + B3017934207C908F0051B93D /* zip_name_locate.c in Sources */, + B30178E3207C908F0051B93D /* zip_set_archive_comment.c in Sources */, + B301797E207C908F0051B93D /* driver.cpp in Sources */, + B3017937207C908F0051B93D /* ini.cpp in Sources */, + B3017948207C908F0051B93D /* pngget.c in Sources */, + B3017902207C908F0051B93D /* pngset.c in Sources */, + B30178EB207C908F0051B93D /* arm_mem.cpp in Sources */, + B301792F207C908F0051B93D /* ta.cpp in Sources */, + B3017931207C908F0051B93D /* sh4_sched.cpp in Sources */, + B3017928207C908F0051B93D /* png.c in Sources */, + B3017967207C908F0051B93D /* sh4_rom.cpp in Sources */, + B3017956207C908F0051B93D /* context.cpp in Sources */, + B30178DE207C908F0051B93D /* aica.cpp in Sources */, + B3017920207C908F0051B93D /* filter_neon.S in Sources */, + B30178F6207C908F0051B93D /* ImgReader.cpp in Sources */, + B301791B207C908F0051B93D /* ta_vtx.cpp in Sources */, + B3017905207C908F0051B93D /* sh4_core_regs.cpp in Sources */, + B3017900207C908F0051B93D /* gdi.cpp in Sources */, + B3017906207C908F0051B93D /* sgc_if.cpp in Sources */, + B3017960207C908F0051B93D /* zip_replace.c in Sources */, + B30178E6207C908F0051B93D /* zip_rename.c in Sources */, + B3017933207C908F0051B93D /* cl.cpp in Sources */, + B3017944207C908F0051B93D /* sh4_interrupts.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3447EC1218BEDD200557ACE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B3447EC2218BEDD200557ACE /* PVFlycast+Audio.mm in Sources */, + B3447EC3218BEDD200557ACE /* PVFlycastCore+Controls.mm in Sources */, + B3447EC4218BEDD200557ACE /* PVFlycastCore.mm in Sources */, + B3447EC5218BEDD200557ACE /* PVFlycastCore+Saves.m in Sources */, + B3447EC6218BEDD200557ACE /* PVFlycast.mm in Sources */, + B3447EC7218BEDD200557ACE /* PVFlycastCore+Video.m in Sources */, + B3447EC8218BEDD200557ACE /* PVFlycast+CoreAudio.mm in Sources */, + B3447EC9218BEDD200557ACE /* PVFlycastCore+Audio.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3447EE9218BEE3F00557ACE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B3447EEA218BEE3F00557ACE /* zip_free.c in Sources */, + B3447EEB218BEE3F00557ACE /* holly_intc.cpp in Sources */, + B3447EEC218BEE3F00557ACE /* zip_source_free.c in Sources */, + B3447EED218BEE3F00557ACE /* sh4_opcodes.cpp in Sources */, + B3447EEE218BEE3F00557ACE /* pngpread.c in Sources */, + B3447EEF218BEE3F00557ACE /* bsc.cpp in Sources */, + B3447EF0218BEE3F00557ACE /* reios.cpp in Sources */, + B3447EF1218BEE3F00557ACE /* ubc.cpp in Sources */, + B3447EF2218BEE3F00557ACE /* decoder.cpp in Sources */, + B3447EF3218BEE3F00557ACE /* zip_error_clear.c in Sources */, + B3447EF4218BEE3F00557ACE /* zip_dirent.c in Sources */, + B3447EF5218BEE3F00557ACE /* reios_elf.cpp in Sources */, + B3447EF6218BEE3F00557ACE /* zip_stat_index.c in Sources */, + B3447EF7218BEE3F00557ACE /* zip_unchange.c in Sources */, + B3447EF8218BEE3F00557ACE /* maple_cfg.cpp in Sources */, + B3447EF9218BEE3F00557ACE /* sb.cpp in Sources */, + B3447EFA218BEE3F00557ACE /* dsp.cpp in Sources */, + B3447EFB218BEE3F00557ACE /* nullDC.cpp in Sources */, + B3447EFC218BEE3F00557ACE /* shil.cpp in Sources */, + B3447EFD218BEE3F00557ACE /* rec_cpp.cpp in Sources */, + B3447EFE218BEE3F00557ACE /* pngerror.c in Sources */, + B3447EFF218BEE3F00557ACE /* stdclass.cpp in Sources */, + B3447F00218BEE3F00557ACE /* common.cpp in Sources */, + B3447F01218BEE3F00557ACE /* maple_helper.cpp in Sources */, + B3447F02218BEE3F00557ACE /* ioctl.cpp in Sources */, + B3447F03218BEE3F00557ACE /* virt_arm.cpp in Sources */, + B3447F04218BEE3F00557ACE /* zip_unchange_all.c in Sources */, + B3447F05218BEE3F00557ACE /* zip_file_get_offset.c in Sources */, + B3447F06218BEE3F00557ACE /* pvr_mem.cpp in Sources */, + B3447F07218BEE3F00557ACE /* zip_error_get_sys_type.c in Sources */, + B3447F08218BEE3F00557ACE /* sh4_opcode_list.cpp in Sources */, + B3447F09218BEE3F00557ACE /* zip_error.c in Sources */, + B3447F0A218BEE3F00557ACE /* drkPvr.cpp in Sources */, + B3447F0B218BEE3F00557ACE /* md5.cpp in Sources */, + B3447F0C218BEE3F00557ACE /* pvr_regs.cpp in Sources */, + B3447F0D218BEE3F00557ACE /* zip_stat_init.c in Sources */, + B3447F0E218BEE3F00557ACE /* zip_source_zip.c in Sources */, + B3447F0F218BEE3F00557ACE /* sh4_mem.cpp in Sources */, + B3447F10218BEE3F00557ACE /* zip_entry_new.c in Sources */, + B3447F11218BEE3F00557ACE /* mkstemp.c in Sources */, + B3447F12218BEE3F00557ACE /* zip_source_function.c in Sources */, + B3447F13218BEE3F00557ACE /* gltex.cpp in Sources */, + B3447F14218BEE3F00557ACE /* zip_unchange_archive.c in Sources */, + B3447F15218BEE3F00557ACE /* profiler.cpp in Sources */, + B3447F16218BEE3F00557ACE /* cdipsr.cpp in Sources */, + B3447F17218BEE3F00557ACE /* audiobackend_pulseaudio.cpp in Sources */, + B3447F18218BEE3F00557ACE /* zip_entry_free.c in Sources */, + B3447F19218BEE3F00557ACE /* arm_init.c in Sources */, + B3447F1A218BEE3F00557ACE /* filter_neon_intrinsics.c in Sources */, + B3447F1B218BEE3F00557ACE /* zip_memdup.c in Sources */, + B3447F1C218BEE3F00557ACE /* zip_filerange_crc.c in Sources */, + B3447F1D218BEE3F00557ACE /* zip_stat.c in Sources */, + B3447F1E218BEE3F00557ACE /* tmu.cpp in Sources */, + B3447F1F218BEE3F00557ACE /* maple_if.cpp in Sources */, + B3447F20218BEE3F00557ACE /* pngwtran.c in Sources */, + B3447F21218BEE3F00557ACE /* chdr.cpp in Sources */, + B3447F22218BEE3F00557ACE /* gdrom_hle.cpp in Sources */, + B3447F23218BEE3F00557ACE /* zip_source_file.c in Sources */, + B3447F24218BEE3F00557ACE /* zip_delete.c in Sources */, + B3447F25218BEE3F00557ACE /* pngwrite.c in Sources */, + B3447F26218BEE3F00557ACE /* pngwio.c in Sources */, + B3447F27218BEE3F00557ACE /* zip_error_get.c in Sources */, + B3447F28218BEE3F00557ACE /* pngread.c in Sources */, + B3447F29218BEE3F00557ACE /* ta_ctx.cpp in Sources */, + B3447F2A218BEE3F00557ACE /* Renderer_if.cpp in Sources */, + B3447F2B218BEE3F00557ACE /* nixprof.cpp in Sources */, + B3447F2C218BEE3F00557ACE /* coreio.cpp in Sources */, + B3447F2D218BEE3F00557ACE /* zip_fclose.c in Sources */, + B3447F2E218BEE3F00557ACE /* pngrtran.c in Sources */, + B3447F2F218BEE3F00557ACE /* pngmem.c in Sources */, + B3447F30218BEE3F00557ACE /* zip_get_archive_flag.c in Sources */, + B3447F31218BEE3F00557ACE /* chd.cpp in Sources */, + B3447F32218BEE3F00557ACE /* serial.cpp in Sources */, + B3447F33218BEE3F00557ACE /* elf.cpp in Sources */, + B3447F34218BEE3F00557ACE /* descrambl.cpp in Sources */, + B3447F35218BEE3F00557ACE /* arm7.cpp in Sources */, + B3447F36218BEE3F00557ACE /* spg.cpp in Sources */, + B3447F37218BEE3F00557ACE /* zip_file_strerror.c in Sources */, + B3447F38218BEE3F00557ACE /* zip_add_dir.c in Sources */, + B3447F39218BEE3F00557ACE /* elf64.cpp in Sources */, + B3447F3A218BEE3F00557ACE /* cfg.cpp in Sources */, + B3447F3B218BEE3F00557ACE /* gdromv3.cpp in Sources */, + B3447F3C218BEE3F00557ACE /* dmac.cpp in Sources */, + B3447F3D218BEE3F00557ACE /* zip_fopen_index.c in Sources */, + B3447F3E218BEE3F00557ACE /* cdi.cpp in Sources */, + B3447F3F218BEE3F00557ACE /* sh4_mmr.cpp in Sources */, + B3447F40218BEE3F00557ACE /* zip_set_archive_flag.c in Sources */, + B3447F41218BEE3F00557ACE /* _vmem.cpp in Sources */, + B3447F42218BEE3F00557ACE /* zip_get_name.c in Sources */, + B3447F43218BEE3F00557ACE /* ccn.cpp in Sources */, + B3447F44218BEE3F00557ACE /* blockmanager.cpp in Sources */, + B3447F45218BEE3F00557ACE /* aica_mem.cpp in Sources */, + B3447F46218BEE3F00557ACE /* sb_mem.cpp in Sources */, + B3447F47218BEE3F00557ACE /* sb_dma.cpp in Sources */, + B3447F48218BEE3F00557ACE /* zip_unchange_data.c in Sources */, + B3447F49218BEE3F00557ACE /* pngrio.c in Sources */, + B3447F4A218BEE3F00557ACE /* sh4_fpu.cpp in Sources */, + B3447F4B218BEE3F00557ACE /* pngwutil.c in Sources */, + B3447F4C218BEE3F00557ACE /* zip_get_file_comment.c in Sources */, + B3447F4D218BEE3F00557ACE /* mmu.cpp in Sources */, + B3447F4E218BEE3F00557ACE /* zip_new.c in Sources */, + B3447F4F218BEE3F00557ACE /* aica_if.cpp in Sources */, + B3447F50218BEE3F00557ACE /* zip_source_filep.c in Sources */, + B3447F51218BEE3F00557ACE /* sh4_interpreter.cpp in Sources */, + B3447F52218BEE3F00557ACE /* zip_file_error_get.c in Sources */, + B3447F53218BEE3F00557ACE /* audiostream.cpp in Sources */, + B3447F54218BEE3F00557ACE /* pngtrans.c in Sources */, + B3447F55218BEE3F00557ACE /* elf32.cpp in Sources */, + B3447F56218BEE3F00557ACE /* zip_add.c in Sources */, + B3447F57218BEE3F00557ACE /* zip_error_to_str.c in Sources */, + B3447F58218BEE3F00557ACE /* gldraw.cpp in Sources */, + B3447F59218BEE3F00557ACE /* zip_set_name.c in Sources */, + B3447F5A218BEE3F00557ACE /* zip_strerror.c in Sources */, + B3447F5B218BEE3F00557ACE /* zip_open.c in Sources */, + B3447F5C218BEE3F00557ACE /* zip_fopen.c in Sources */, + B3447F5D218BEE3F00557ACE /* rtc.cpp in Sources */, + B3447F5E218BEE3F00557ACE /* zip_get_num_files.c in Sources */, + B3447F5F218BEE3F00557ACE /* pngrutil.c in Sources */, + B3447F60218BEE3F00557ACE /* zip_error_strerror.c in Sources */, + B3447F61218BEE3F00557ACE /* zip_close.c in Sources */, + B3447F62218BEE3F00557ACE /* vbaARM.cpp in Sources */, + B3447F63218BEE3F00557ACE /* audiobackend_alsa.cpp in Sources */, + B3447F64218BEE3F00557ACE /* intc.cpp in Sources */, + B3447F65218BEE3F00557ACE /* zip_source_buffer.c in Sources */, + B3447F66218BEE3F00557ACE /* zip_err_str.c in Sources */, + B3447F67218BEE3F00557ACE /* zip_file_error_clear.c in Sources */, + B3447F68218BEE3F00557ACE /* pvr_sb_regs.cpp in Sources */, + B3447F69218BEE3F00557ACE /* gles.cpp in Sources */, + B3447F6A218BEE3F00557ACE /* rec_arm.cpp in Sources */, + B3447F6B218BEE3F00557ACE /* audiobackend_oss.cpp in Sources */, + B3447F6C218BEE3F00557ACE /* zip_get_archive_comment.c in Sources */, + B3447F6D218BEE3F00557ACE /* zip_set_file_comment.c in Sources */, + B3447F6E218BEE3F00557ACE /* cpg.cpp in Sources */, + B3447F6F218BEE3F00557ACE /* sha1.cpp in Sources */, + B3447F70218BEE3F00557ACE /* zip_fread.c in Sources */, + B3447F71218BEE3F00557ACE /* gdrom_response.cpp in Sources */, + B3447F72218BEE3F00557ACE /* common.cpp in Sources */, + B3447F73218BEE3F00557ACE /* maple_devs.cpp in Sources */, + B3447F74218BEE3F00557ACE /* TexCache.cpp in Sources */, + B3447F75218BEE3F00557ACE /* zip_name_locate.c in Sources */, + B3447F76218BEE3F00557ACE /* zip_set_archive_comment.c in Sources */, + B3447F77218BEE3F00557ACE /* driver.cpp in Sources */, + B3447F78218BEE3F00557ACE /* ini.cpp in Sources */, + B3447F79218BEE3F00557ACE /* pngget.c in Sources */, + B3447F7A218BEE3F00557ACE /* pngset.c in Sources */, + B3447F7B218BEE3F00557ACE /* arm_mem.cpp in Sources */, + B3447F7C218BEE3F00557ACE /* ta.cpp in Sources */, + B3447F7D218BEE3F00557ACE /* sh4_sched.cpp in Sources */, + B3447F7E218BEE3F00557ACE /* png.c in Sources */, + B3447F7F218BEE3F00557ACE /* sh4_rom.cpp in Sources */, + B3447F80218BEE3F00557ACE /* context.cpp in Sources */, + B3447F81218BEE3F00557ACE /* aica.cpp in Sources */, + B3447F82218BEE3F00557ACE /* filter_neon.S in Sources */, + B3447F83218BEE3F00557ACE /* ImgReader.cpp in Sources */, + B3447F84218BEE3F00557ACE /* ta_vtx.cpp in Sources */, + B3447F85218BEE3F00557ACE /* sh4_core_regs.cpp in Sources */, + B3447F86218BEE3F00557ACE /* gdi.cpp in Sources */, + B3447F87218BEE3F00557ACE /* sgc_if.cpp in Sources */, + B3447F88218BEE3F00557ACE /* zip_replace.c in Sources */, + B3447F89218BEE3F00557ACE /* zip_rename.c in Sources */, + B3447F8A218BEE3F00557ACE /* cl.cpp in Sources */, + B3447F8B218BEE3F00557ACE /* sh4_interrupts.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3C7620B20783162009950E4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B3447E9D218B826F00557ACE /* PVFlycast+Audio.mm in Sources */, + B3447E9E218B857A00557ACE /* PVFlycastCore+Controls.mm in Sources */, + B3C76226207833DE009950E4 /* PVFlycastCore.mm in Sources */, + B3447EAC218BC59D00557ACE /* PVFlycastCore+Saves.m in Sources */, + B3447EA1218B881000557ACE /* PVFlycast.mm in Sources */, + B3447EB0218BC5C500557ACE /* PVFlycastCore+Video.m in Sources */, + B3447EA5218BC36B00557ACE /* PVFlycast+CoreAudio.mm in Sources */, + B3447EB4218BC69700557ACE /* PVFlycastCore+Audio.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + B3DDF56F26E9B90400CE47F0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = B3447EE8218BEE3F00557ACE /* flycast-tvOS */; + targetProxy = B3DDF56E26E9B90400CE47F0 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + B339433A20783CBD008DBAB4 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + B339433B20783CBD008DBAB4 /* Base */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + B339434D20783CBD008DBAB4 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + B339434E20783CBD008DBAB4 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + B30178DA207C901D0051B93D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + B30178DB207C901D0051B93D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B324C5012191A2A2009F4EDC /* Archive */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B3447EBF218BE9DA00557ACE /* BuildFlags.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + RELEASE, + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "\"$(SRCROOT)/flycast-emulator/core/hw\"", + "\"$(SRCROOT)/flycast-emulator/core\"", + "\"$(SRCROOT)/flycast-emulator/core/deps\"", + "\"$(SRCROOT)/flycast-emulator/core/khronos\"", + ); + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = ( + "$(inherited)", + "-mno-thumb", + "-mfpu=neon", + "-fno-operator-names", + "-fno-rtti", + "-ffast-math", + "-ftree-vectorize", + "-fno-strict-aliasing", + "-frename-registers", + "-fno-rtti", + "-fpermissive", + "-fno-operator-names", + "-fsingle-precision-constant", + "-DTARGET_NO_NIXPROF", + ); + SDKROOT = iphoneos; + TVOS_DEPLOYMENT_TARGET = 12.1; + VALIDATE_PRODUCT = YES; + VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS = OpenGLES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Archive; + }; + B324C5022191A2A2009F4EDC /* Archive */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Archive; + }; + B324C5032191A2A2009F4EDC /* Archive */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Archive; + }; + B324C5042191A2A2009F4EDC /* Archive */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Archive; + }; + B324C5052191A2A2009F4EDC /* Archive */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Archive; + }; + B3447EE4218BEDD200557ACE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Debug; + }; + B3447EE5218BEDD200557ACE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Release; + }; + B3447F8F218BEE3F00557ACE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Debug; + }; + B3447F90218BEE3F00557ACE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Release; + }; + B3C7621620783162009950E4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B3447EBF218BE9DA00557ACE /* BuildFlags.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + DEBUG, + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "\"$(SRCROOT)/flycast-emulator/core/hw\"", + "\"$(SRCROOT)/flycast-emulator/core\"", + "\"$(SRCROOT)/flycast-emulator/core/deps\"", + "\"$(SRCROOT)/flycast-emulator/core/khronos\"", + ); + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "-DTARGET_NO_NIXPROF"; + SDKROOT = iphoneos; + TVOS_DEPLOYMENT_TARGET = 12.1; + VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS = OpenGLES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B3C7621720783162009950E4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B3447EBF218BE9DA00557ACE /* BuildFlags.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + RELEASE, + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "\"$(SRCROOT)/flycast-emulator/core/hw\"", + "\"$(SRCROOT)/flycast-emulator/core\"", + "\"$(SRCROOT)/flycast-emulator/core/deps\"", + "\"$(SRCROOT)/flycast-emulator/core/khronos\"", + ); + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-mno-thumb", + "-mfpu=neon", + "-fno-operator-names", + "-fno-rtti", + "-ffast-math", + "-ftree-vectorize", + "-fno-strict-aliasing", + "-frename-registers", + "-fno-rtti", + "-fpermissive", + "-fno-operator-names", + "-fsingle-precision-constant", + "-DTARGET_NO_NIXPROF", + ); + SDKROOT = iphoneos; + TVOS_DEPLOYMENT_TARGET = 12.1; + VALIDATE_PRODUCT = YES; + VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS = OpenGLES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + B3C7621920783162009950E4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + B3C7621A20783162009950E4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_WARN_INHIBIT_ALL_WARNINGS = YES; + INFOPLIST_FILE = PVFlycast/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.provenance-emu.PVFlycast"; + PRODUCT_NAME = PVFlycast; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B30178D9207C901D0051B93D /* Build configuration list for PBXNativeTarget "flycast-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B30178DA207C901D0051B93D /* Debug */, + B30178DB207C901D0051B93D /* Release */, + B324C5042191A2A2009F4EDC /* Archive */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B3447EE3218BEDD200557ACE /* Build configuration list for PBXNativeTarget "PVFlycast-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B3447EE4218BEDD200557ACE /* Debug */, + B3447EE5218BEDD200557ACE /* Release */, + B324C5032191A2A2009F4EDC /* Archive */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B3447F8E218BEE3F00557ACE /* Build configuration list for PBXNativeTarget "flycast-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B3447F8F218BEE3F00557ACE /* Debug */, + B3447F90218BEE3F00557ACE /* Release */, + B324C5052191A2A2009F4EDC /* Archive */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B3C7620A20783162009950E4 /* Build configuration list for PBXProject "PVFlycast" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B3C7621620783162009950E4 /* Debug */, + B3C7621720783162009950E4 /* Release */, + B324C5012191A2A2009F4EDC /* Archive */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B3C7621820783162009950E4 /* Build configuration list for PBXNativeTarget "PVFlycast-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B3C7621920783162009950E4 /* Debug */, + B3C7621A20783162009950E4 /* Release */, + B324C5022191A2A2009F4EDC /* Archive */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = B3C7620720783162009950E4 /* Project object */; +} diff --git a/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-iOS.xcscheme b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-iOS.xcscheme new file mode 100644 index 0000000000..d86392943e --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-iOS.xcscheme @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-tvOS.xcscheme b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-tvOS.xcscheme new file mode 100644 index 0000000000..1272417390 --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/PVReicast-tvOS.xcscheme @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-iOS.xcscheme b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-iOS.xcscheme new file mode 100644 index 0000000000..730dfbdf9f --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-iOS.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-tvOS.xcscheme b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-tvOS.xcscheme new file mode 100644 index 0000000000..76741aeee4 --- /dev/null +++ b/Cores/Flycast/PVFlycast.xcodeproj/xcshareddata/xcschemes/reicast-tvOS.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cores/Flycast/PVFlycast/Core.plist b/Cores/Flycast/PVFlycast/Core.plist new file mode 100644 index 0000000000..21327c4b6f --- /dev/null +++ b/Cores/Flycast/PVFlycast/Core.plist @@ -0,0 +1,20 @@ + + + + + PVCoreIdentifier + org.provenance.core.flycast + PVPrincipleClass + PVFlycastCore + PVSupportedSystems + + com.provenance.dreamcast + + PVProjectName + Flycast + PVProjectURL + https://github.com/flyinghead/flycast + PVProjectVersion + 1.1 + + diff --git a/Cores/Flycast/PVFlycast/Info.plist b/Cores/Flycast/PVFlycast/Info.plist new file mode 100644 index 0000000000..1007fd9dd7 --- /dev/null +++ b/Cores/Flycast/PVFlycast/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Cores/Flycast/PVFlycast/PVFlycast.h b/Cores/Flycast/PVFlycast/PVFlycast.h new file mode 100644 index 0000000000..6d024ca0f5 --- /dev/null +++ b/Cores/Flycast/PVFlycast/PVFlycast.h @@ -0,0 +1,19 @@ +// +// PVFlycast.h +// PVFlycast +// +// Created by Joseph Mattiello on 4/6/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +//! Project version number for PVFlycast. +FOUNDATION_EXPORT double PVFlycastVersionNumber; + +//! Project version string for PVFlycast. +FOUNDATION_EXPORT const unsigned char PVFlycastVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import + diff --git a/Cores/Flycast/PVFlycast/emu.cfg b/Cores/Flycast/PVFlycast/emu.cfg new file mode 100755 index 0000000000..7136d95fef --- /dev/null +++ b/Cores/Flycast/PVFlycast/emu.cfg @@ -0,0 +1,37 @@ +[audio] +backend = auto +disable = 0 + +[config] +Debug.SerialConsoleEnabled = 0 +Dreamcast.Broadcast = 4 +Dreamcast.Cable = 3 +Dreamcast.RTC = -2140949079 +Dreamcast.Region = 3 +Dynarec.Enabled = 0 +Dynarec.idleskip = 1 +Dynarec.unstable-opt = 0 +aica.LimitFPS = 0 +aica.NoBatch = 0 +aica.NoSound = 0 +bios.UseReios = 0 +pvr.MaxThreads = 3 +pvr.Subdivide = 0 +pvr.SynchronousRendering = 0 +pvr.rend = 0 +rend.UseMipmaps = 1 +rend.WideScreen = 1 +ta.skip = 1 + +[players] +nb = 1 + +[reios] +ElfFile = + +[testing] +ta.HashCheckFile = +ta.HashLogFile = + +[validate] +OpenGlChecks = 0 diff --git a/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.h b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.h new file mode 100644 index 0000000000..338fadf902 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.h @@ -0,0 +1,35 @@ +// +// PVFlycast+Audio.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +#define CALLBACK_VERSION_1 1 // Fill the ring buffer, if full, wait until has space +#define CALLBACK_VERSION_2 2 // samples_ptr > rb.bytesWritten then do next rb write +#define CALLBACK_VERSION_3 3 // Use a sample counter instead of filling the buffer +#define CALLBACK_VERSION_4 4 // Use a sample counter instead of filling the buffer +#define CALLBACK_VERSION_5 5 // Wait for each ringbuffer read to finish? +#define CALLBACK_VERSION_6 6 // Wait until ring buffer has space using availableBytes +#define CALLBACK_VERSION_7 7 // Hacking at time based ring buffer +#define CALLBACK_VERSION_8 8 // Stock copy to ORRingBuffer no wait + +#define CALLBACK_VERSION CALLBACK_VERSION_8 +#define USE_DIRECTSOUND_THING FALSE +#define EXTRA_LOGGING TRUE + +#if CALLBACK_VERSION <= 7 +#define COREAUDIO_USE_DEFAULT 0 +#else +#define COREAUDIO_USE_DEFAULT 1 +#endif + +#if EXTRA_LOGGING +#define CALOG(fmt, ...) \ +printf(fmt, ##__VA_ARGS__); +#else +#define CALOG(...) +#endif diff --git a/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.mm b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.mm new file mode 100644 index 0000000000..1ca97cbd41 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+Audio.mm @@ -0,0 +1,467 @@ +// +// PVFlycast+Audio.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycast+Audio.h" +#import "PVFlycast+CoreAudio.h" +#import "PVFlycast+AudioTypes.h" + +#import + +#include "oslib/audiobackend_coreaudio.h" + +#pragma mark - Flycast Callbacks + +#pragma mark Forward Declerations +static void coreaudio_init(); +static void coreaudio_term(); +static u32 coreaudio_push(void* frame, u32 samples, bool wait); + +static u32 coreaudio_push1(void* frame, u32 samples, bool wait); +static u32 coreaudio_push2(void* frame, u32 samples, bool wait); +static u32 coreaudio_push3(void* frame, u32 samples, bool wait); +static u32 coreaudio_push4(void* frame, u32 samples, bool wait); +static u32 coreaudio_push5(void* frame, u32 samples, bool wait); +static u32 coreaudio_push6(void* frame, u32 samples, bool wait); +static u32 coreaudio_push7(void* frame, u32 samples, bool wait); +static u32 coreaudio_push8(void* frame, u32 samples, bool wait); + +#pragma mark Externed callback struct +audiobackend_t audiobackend_coreaudio = { + "coreaudio", // Slug + "Core Audio", // Name + &coreaudio_init, + &coreaudio_push, + &coreaudio_term +}; + +#pragma mark Implimentations + +void coreaudio_init() { +#if COREAUDIO_USE_DEFAULT + // Handled by the host app + VLOG(@"Using host app audio graph."); + return; +#else + // GET_CURRENT_OR_RETURN(); + // [current ringBufferAtIndex:0]; + // + // if (settings.aica.GlobalFocus) { + // // TODO: Allow background audio? + // } + NSError *error; + [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]; + if(error) { + ELOG(@"Couldn't set av session %@", error.localizedDescription); + } else { + ILOG(@"Successfully set audio session to ambient"); + } + + player = {0}; + + // build a graph with output unit and set stream format + CreateMyAUGraph(&player); + InitAUPlayer(&player); +#endif // COREAUDIO_USE_DEFAULT +} + +static void coreaudio_term() +{ + GET_CURRENT_OR_RETURN(); +} + +static u32 coreaudio_push(void* frame, u32 samples, bool wait) +{ +#if CALLBACK_VERSION == 0 + return 1; +#endif + + GET_CURRENT_OR_RETURN(1); + + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + // ELOG(@"Ring buffer was nil!"); + return 1; + } + + if (current.isEmulationPaused) { + CALOG("Paused, clearing ring buffer."); + TPCircularBufferClear(&rb->buffer); + return 1; + } + +#if USE_DIRECTSOUND_THING + u16* f=(u16*)frame; + + bool w= false; + + for (u32 i = 0; i < samples*2; i++) { + if (f[i]) { + w = true; + break; + } + } + + wait &= w; +#endif + + // Fill the buffer and wait for it to empty +#if CALLBACK_VERSION == 1 + return coreaudio_push1(frame, samples, wait); +#elif CALLBACK_VERSION == 2 + return coreaudio_push2(frame, samples, wait); +#elif CALLBACK_VERSION == 3 + // Faster, stutters + return coreaudio_push3(frame, samples, wait); +#elif CALLBACK_VERSION == 4 + return coreaudio_push4(frame, samples, wait); +#elif CALLBACK_VERSION == 5 + return coreaudio_push5(frame, samples, wait); +#elif CALLBACK_VERSION == 6 + return coreaudio_push6(frame, samples, wait); +#elif CALLBACK_VERSION == 7 + return coreaudio_push7(frame, samples, wait); +#elif CALLBACK_VERSION == 8 + return coreaudio_push8(frame, samples, wait); +#endif +} + +#pragma mark - Callback Variations + +static inline u32 +coreaudio_push1(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + // Results: Too slow + while (rb.availableBytes == 0 && wait) { } + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + + return 1; +} + +static inline u32 +coreaudio_push2(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + // Use a sample counter instead of filling the buffer + while (samples_ptr > rb.bytesWritten && wait) { } + if(samples_ptr <= rb.bytesWritten) { + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + samples_ptr += samples * 4; + } + + return 1; +} + +static inline u32 +coreaudio_push3(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + NSLog(@"%lu %lu diff: %lu", (unsigned long)samples_ptr, (unsigned long)rb.bytesWritten, (unsigned long)samples_ptr-rb.bytesWritten); + + // Use a sample counter instead of filling the buffer + while (samples_ptr != 0 && samples_ptr != rb.bytesRead && rb.bytesRead != 0 && wait) { } + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + samples_ptr += samples * 4; + + return 1; +} + +static inline u32 +coreaudio_push4(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + while (samples_ptr >= rb.bytesWritten && wait) { } + if (samples_ptr >= rb.bytesWritten) + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + samples_ptr += samples * 4; + + return 1; +} + +static inline u32 +coreaudio_push5(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + if (samples_ptr <= rb.bytesWritten) + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + + samples_ptr += samples * 4; + + while (samples_ptr >= rb.bytesWritten > 0 && wait) { } + + return 1; +} + +static inline u32 +coreaudio_push6(void* frame, u32 samples, bool wait) { + static uint clearedCounter = 0; + + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + NSUInteger maxFillSize = clearedCounter > 4 ? samples * 8 : -1; + CALOG("used bytes: %lu", (unsigned long)rb.usedBytes); +#define notfull [rb write:(const unsigned char *)frame maxLength:samples * 4] + + while ([rb availableBytes] > maxFillSize && wait) { } + + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + + // dispatch_async(current->_callbackQueue, ^{ + // [rb write:(const unsigned char *)frame maxLength:samples * 4]; + // }); + if (rb.usedBytes == 0) { + clearedCounter++; + } + + return 1; +} + +static inline u32 +coreaudio_push7(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + // render into our buffer + OSStatus inputProcErr = noErr; + UInt32 inNumberFrames = samples; + UInt32 inNumberBytes = samples * 4; + + AudioTimeStamp timeStamp = {0}; + FillOutAudioTimeStampWithSampleTime(timeStamp, settings.dreamcast.RTC); + + //write_ptr += inNumberFrames; + + // have we ever logged input timing? (for offset calculation) + if (player.firstInputSampleTime < 0.0) { + player.firstInputSampleTime = write_ptr; + if ((player.firstOutputSampleTime > -1.0) && + (player.inToOutSampleTimeOffset < 0.0)) { + player.inToOutSampleTimeOffset = + player.firstInputSampleTime - player.firstOutputSampleTime; + } + } + + // In order to render continuously, the effect audio unit needs a new time stamp for each buffer + // Use the number of frames for each unit of time continuously incrementing + //player.firstInputSampleTime += (double)samples * 4; + //AudioBufferList ioData = {0}; + //ioData.mNumberBuffers = 1; + //ioData.mBuffers[0] = + //ioData.mBuffers[0].mNumberChannels = 2; + //ioData.mBuffers[0].mDataByteSize = (UInt32)(inNumberBytes); + //ioData.mBuffers[0].mData = frame; + + //AudioBufferList *bufferList = NULL; + //UInt32 numBuffers = 1; + //UInt32 channelsPerBuffer = 2; + //bufferList = static_cast(calloc(1, offsetof(AudioBufferList, mBuffers) + (sizeof(AudioBuffer) * numBuffers))); + //bufferList->mNumberBuffers = numBuffers; + // + //for(UInt32 bufferIndex = 0; bufferIndex < bufferList->mNumberBuffers; ++bufferIndex) { + // bufferList->mBuffers[bufferIndex].mData = frame; //static_cast(calloc(capacityFrames, bytesPerFrame)); + // bufferList->mBuffers[bufferIndex].mDataByteSize = inNumberBytes; + // bufferList->mBuffers[bufferIndex].mNumberChannels = 2; + //} + + + + CALOG("set %d frames at time %f\n", inNumberFrames, timeStamp.mSampleTime); + + /* + #define kNumChannels 2 + AudioBufferList *bufferList = (AudioBufferList*)malloc(sizeof(AudioBufferList) * kNumChannels); + bufferList->mNumberBuffers = kNumChannels; // 2 for stereo, 1 for mono + for(int i = 0; i < 2; i++) { + int numSamples = 123456; // Number of sample frames in the buffer + bufferList->mBuffers[i].mNumberChannels = 1; + bufferList->mBuffers[i].mDataByteSize = numSamples * sizeof(Float32); + bufferList->mBuffers[i].mData = (Float32*)malloc(sizeof(Float32) * numSamples); + } + + // Do stuff... + + for(int i = 0; i < 2; i++) { + free(bufferList->mBuffers[i].mData); + } + free(bufferList); + */ + //AudioUnitGetProperty(player.graph, + // kAudioUnitProperty_CurrentPlayTime, + // kAudioUnitScope_Global, + // 0, + // &ts, + // &size); + // + //AudioUnitGetProperty(player.graph, + // kAudioUnitProperty_CurrentPlayTime, + // kAudioUnitScope_Global, + // 0, + // (void*)&ts, + // &size); + + // float freq = 440.f; + // int seconds = 4; + // unsigned sample_rate = 44100; + // size_t buf_size = seconds * sample_rate; + // + // short *staticsamples; + // staticsamples = new short[buf_size]; + // for(int i=0; imBuffers[0].mData, frame, inNumberBytes); + + + // player.inputBuffer->mBuffers[0].mDataByteSize = inNumberBytes; + + // memcpy(player.inputBuffer->mBuffers[0].mData, frame, inNumberBytes); + player.inputBuffer->mBuffers[0].mData = frame; + player.inputBuffer->mBuffers[0].mDataByteSize = inNumberBytes; + player.inputBuffer->mBuffers[0].mNumberChannels = 2; + + // copy from our buffer to ring buffer + if (! inputProcErr) { + inputProcErr = player.ringBuffer->Store(player.inputBuffer, + inNumberFrames, + timeStamp.mSampleTime); + CALOG("Stored: %i", inputProcErr); + } + + // }); + /* Yeah, right */ + // while (samples_ptr != 0 && wait) ; + // + // if (samples_ptr == 0) { + // memcpy(&samples_temp[samples_ptr], frame, samples * 4); + // samples_ptr += samples * 4; + // } + // + + return 1; +} + +static inline u32 +coreaudio_push8(void* frame, u32 samples, bool wait) { + GET_CURRENT_OR_RETURN(1); + OERingBuffer *rb = [current ringBufferAtIndex:0]; + + if (rb == nil) { + ELOG(@"Ring buffer was nil!"); + return 1; + } + + static dispatch_queue_t serialQueue; + static dispatch_group_t group; + static CFAbsoluteTime lastTime; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + dispatch_queue_attr_t queueAttributes = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INTERACTIVE, 0); + serialQueue = dispatch_queue_create("com.provenance.reicase.audio", queueAttributes); + + group = dispatch_group_create(); + lastTime = CFAbsoluteTimeGetCurrent(); + }); + +// BOOL fullBuffer = rb.availableBytes < samples / 4; + static u32 previousSampleCount = 0; + static const float samplePerSecond = 2.0 * (1.0 / 44100.0); + static const float bytesPerSample = 2.0; + + int currentAvailable = rb.availableBytes; + + [rb write:(const unsigned char *)frame maxLength:samples * 4]; + + if (wait) { + while ( rb.availableBytes < (currentAvailable + (previousSampleCount * 4))) { + + } + } + + CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); + CFTimeInterval deltaTime = now - lastTime; +#if DEBUG + printf("TimeDelta: %i", deltaTime); +#endif + /* TODO: Look into what the options here are + var timestamp = AudioTimeStamp() + + timestamp.mSampleTime = numberOfSamplesRecorded + timestamp.mFlags = .sampleHostTimeValid + + static var sampleTimeValid: AudioTimeStampFlags + static var hostTimeValid: AudioTimeStampFlags + static var rateScalarValid: AudioTimeStampFlags + static var wordClockTimeValid: AudioTimeStampFlags + static var smpteTimeValid: AudioTimeStampFlags + */ + +// if (fullBuffer && wait) { + dispatch_time_t maxWait = dispatch_time( DISPATCH_TIME_NOW, samples / samplePerSecond); +// dispatch_group_wait(group, maxWait); +// dispatch_group_enter(group); +// dispatch_async(serialQueue, ^{ +// // Note, is the frame pointer too volitile if we return early? +// // should we do a max wait instead of 1 or 2 frames? + [rb write:(const unsigned char *)frame maxLength:samples * 4]; +// dispatch_group_leave(group); +// }); +// } else { +// [rb write:(const unsigned char *)frame maxLength:samples * 4]; +// } + +// if(wait) { +// float waitTime = samplePerSecond * samples; +// printf("wait %f", waitTime); +// [NSThread sleepForTimeInterval:waitTime]; +// } + previousSampleCount = samples; + + return 1; +} diff --git a/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+AudioTypes.h b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+AudioTypes.h new file mode 100644 index 0000000000..be523e5ddb --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+AudioTypes.h @@ -0,0 +1,30 @@ +// +// PVFlycast+Audio.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +#import +#import +#import +#import +#import +#import + + // Flycast imports +#include "types.h" +#include "profiler/profiler.h" +#include "cfg/cfg.h" +#include "rend/rend.h" +#include "rend/TexCache.h" +#include "hw/maple/maple_devs.h" +#include "hw/maple/maple_if.h" +#include "hw/maple/maple_cfg.h" + +static volatile Float64 write_ptr = 0; +static volatile Float64 read_ptr = 0; +static volatile Float64 samples_ptr = 0; diff --git a/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.h b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.h new file mode 100644 index 0000000000..257bdb63e8 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.h @@ -0,0 +1,48 @@ +// +// PVFlycast+CoreAudio.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import +#import +#import +#import +#import +#import +#import + +typedef struct FlycastAUGraphPlayer { + AudioStreamBasicDescription streamFormat; + AUGraph graph; + AudioUnit inputUnit; + AudioUnit outputUnit; + AudioUnit converterUnit; + + AudioBufferList *inputBuffer; + CARingBuffer *ringBuffer; + Float64 firstInputSampleTime; + Float64 firstOutputSampleTime; + Float64 inToOutSampleTimeOffset; +} FlycastAUGraphPlayer; + +static FlycastAUGraphPlayer player; + +OSStatus InputRenderProc(void *inRefCon, + AudioUnitRenderActionFlags *ioActionFlags, + const AudioTimeStamp *inTimeStamp, + UInt32 inBusNumber, + UInt32 inNumberFrames, + AudioBufferList * ioData); +OSStatus GraphRenderProc(void *inRefCon, + AudioUnitRenderActionFlags *ioActionFlags, + const AudioTimeStamp *inTimeStamp, + UInt32 inBusNumber, + UInt32 inNumberFrames, + AudioBufferList * ioData); + +void CreateMyAUGraph(FlycastAUGraphPlayer *player); +void InitAUPlayer(FlycastAUGraphPlayer *player); +static void CheckError(OSStatus error, const char *operation); diff --git a/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.mm b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.mm new file mode 100644 index 0000000000..7395a1c665 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Audio/PVFlycast+CoreAudio.mm @@ -0,0 +1,495 @@ +// +// PVFlycast+Audio.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycast+CoreAudio.h" +#import "PVFlycast+Audio.h" +#import "PVFlycast+AudioTypes.h" +#import +#import + +#pragma mark - Core Audio Setup - + +void +InitAUPlayer(FlycastAUGraphPlayer *player) { + /* allocate some buffers to hold samples between input and output callbacks + (this part largely copied from CAPlayThrough) */ + //Get the size of the IO buffer(s) + Float64 sampleRate; + Float32 bufferDuration; + +#if TARGET_OS_IOS + UInt32 propSize = sizeof(Float64); + AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate, + &propSize, + &sampleRate); + + propSize = sizeof(Float32); + AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareIOBufferDuration, + &propSize, + &bufferDuration); +#else +#endif + UInt32 bufferLengthInFrames = sampleRate * bufferDuration; + UInt32 bufferSizeBytes = bufferLengthInFrames * sizeof(Float32); + + if (player->streamFormat.mFormatFlags & kAudioFormatFlagIsNonInterleaved) { + ILOG(@"format is non-interleaved\n"); + // allocate an AudioBufferList plus enough space for array of AudioBuffers + UInt32 propsize = offsetof(AudioBufferList, mBuffers[0]) + (sizeof(AudioBuffer) * player->streamFormat.mChannelsPerFrame); + + //malloc buffer lists + player->inputBuffer = (AudioBufferList *)malloc(propsize); + player->inputBuffer->mNumberBuffers = player->streamFormat.mChannelsPerFrame; + + //pre-malloc buffers for AudioBufferLists + for(UInt32 i =0; i< player->inputBuffer->mNumberBuffers ; i++) { + player->inputBuffer->mBuffers[i].mNumberChannels = 1; + player->inputBuffer->mBuffers[i].mDataByteSize = bufferSizeBytes; + player->inputBuffer->mBuffers[i].mData = malloc(bufferSizeBytes); + } + } else { + ILOG(@"format is interleaved\n"); + // allocate an AudioBufferList plus enough space for array of AudioBuffers + UInt32 propsize = offsetof(AudioBufferList, mBuffers[0]) + (sizeof(AudioBuffer) * 1); + + //malloc buffer lists + player->inputBuffer = (AudioBufferList *)malloc(propsize); + player->inputBuffer->mNumberBuffers = 1; + + //pre-malloc buffers for AudioBufferLists + player->inputBuffer->mBuffers[0].mNumberChannels = player->streamFormat.mChannelsPerFrame; + player->inputBuffer->mBuffers[0].mDataByteSize = bufferSizeBytes; + player->inputBuffer->mBuffers[0].mData = malloc(bufferSizeBytes); + } + + //Alloc ring buffer that will hold data between the two audio devices + player->ringBuffer = new CARingBuffer(); + player->ringBuffer->Allocate(player->streamFormat.mChannelsPerFrame, + player->streamFormat.mBytesPerFrame, + bufferLengthInFrames * 4000); + + player->firstInputSampleTime = -1; + player->firstOutputSampleTime = -1; + player->inToOutSampleTimeOffset = -1; + + CheckError(AUGraphStart(player->graph), "AUGraphStart failed"); + + settings.aica.BufferSize = bufferLengthInFrames; + + // settings.aica.LimitFPS = 1; +} + +void +CreateMyAUGraph(FlycastAUGraphPlayer *player) +{ +#if COREAUDIO_USE_DEFAULT + NAssert(@"Shouldn't be here."); +#endif + + GET_CURRENT_OR_RETURN(); + + AUGraphStop(player->graph); + AUGraphClose(player->graph); + AUGraphUninitialize(player->graph); + + // create a new AUGraph + CheckError(NewAUGraph(&player->graph), + "NewAUGraph failed"); + + //Open the graph + CheckError(AUGraphOpen(player->graph), + "couldn't open graph"); + + AudioComponentDescription desc = {0}; + + desc.componentType = kAudioUnitType_Output; + desc.componentSubType = kAudioUnitSubType_RemoteIO; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlagsMask = 0; + desc.componentFlags = 0; + + + // adds a node with above description to the graph + AUNode outputNode; + CheckError(AUGraphAddNode(player->graph, (const AudioComponentDescription *)&desc, &outputNode), + "AUGraphAddNode[kAudioUnitSubType_DefaultOutput] failed"); + + CheckError(AUGraphNodeInfo(player->graph, outputNode, NULL, &player->outputUnit), + "couldn't get output from node"); + + desc.componentType = kAudioUnitType_Mixer; + desc.componentSubType = kAudioUnitSubType_MultiChannelMixer; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + + //Create the mixer node + AUNode mixerNode; + + CheckError(AUGraphAddNode(player->graph, (const AudioComponentDescription *)&desc, &mixerNode), + "couldn't create node for file player"); + + AudioUnit mixerUnit; + + CheckError(AUGraphNodeInfo(player->graph, mixerNode, NULL, &mixerUnit), + "couldn't get player unit from node"); + + desc.componentType = kAudioUnitType_FormatConverter; + desc.componentSubType = kAudioUnitSubType_AUConverter; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + + NSUInteger bufferCount = [current audioBufferCount]; + + //Create the converter node + AUNode mConverterNode; + CheckError(AUGraphAddNode(player->graph, (const AudioComponentDescription *)&desc, &mConverterNode), + "couldn't create node for converter"); + + CheckError(AUGraphNodeInfo(player->graph, mConverterNode, NULL, &player->converterUnit), + "couldn't get player unit from converter"); + + + AURenderCallbackStruct renderStruct; + renderStruct.inputProc = GraphRenderProc; + renderStruct.inputProcRefCon = (void*)&player; + + CheckError(AudioUnitSetProperty(player->converterUnit, kAudioUnitProperty_SetRenderCallback, + kAudioUnitScope_Input, 0, &renderStruct, sizeof(AURenderCallbackStruct)), + "Couldn't set the render callback"); + + // CheckError(AudioUnitSetProperty(player->outputUnit, + // kAudioUnitProperty_SetRenderCallback, + // kAudioUnitScope_Global, + // 0, + // &renderStruct, + // sizeof(renderStruct)), + // "Couldn't set render callback on output unit"); + + AudioStreamBasicDescription mDataFormat; + NSUInteger channelCount = [current channelCount]; + NSUInteger bytesPerSample = [current audioBitDepth] / 8; + + // int formatFlag = (bytesPerSample == 4) ? kLinearPCMFormatFlagIsFloat : kLinearPCMFormatFlagIsSignedInteger; + // mDataFormat.mSampleRate = [current audioSampleRateForBuffer:0]; + // mDataFormat.mFormatID = kAudioFormatLinearPCM; + // mDataFormat.mFormatFlags = formatFlag | kAudioFormatFlagsNativeEndian; + // mDataFormat.mBytesPerPacket = bytesPerSample * channelCount; + // mDataFormat.mFramesPerPacket = 1; // this means each packet in the AQ has two samples, one for each channel -> 4 bytes/frame/packet + // mDataFormat.mBytesPerFrame = bytesPerSample * channelCount; + // mDataFormat.mChannelsPerFrame = channelCount; + // mDataFormat.mBitsPerChannel = 8 * bytesPerSample; + + // int formatFlag = (bytesPerSample == 4) ? kLinearPCMFormatFlagIsFloat : kLinearPCMFormatFlagIsSignedInteger; + mDataFormat.mSampleRate = 44100; + mDataFormat.mFormatID = kAudioFormatLinearPCM; + mDataFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; ////formatFlag | kAudioFormatFlagsNativeEndian; + mDataFormat.mBytesPerPacket = 2*16/8; //bytesPerSample * channelCount; + mDataFormat.mFramesPerPacket = 1; // this means each packet in the AQ has two samples, one for each channel -> 4 bytes/frame/packet + mDataFormat.mBytesPerFrame = 2*16/8; //bytesPerSample * channelCount; + mDataFormat.mChannelsPerFrame = 2; //channelCount; + mDataFormat.mBitsPerChannel = 16; //8 * bytesPerSample; + + player->streamFormat = mDataFormat; + + CheckError(AudioUnitSetProperty(player->converterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &mDataFormat, sizeof(AudioStreamBasicDescription)), + "couldn't set player's input stream format"); + + CheckError(AUGraphConnectNodeInput(player->graph, mConverterNode, 0, mixerNode, 0), + "Couldn't connect the converter to the mixer"); + + CheckError(AUGraphConnectNodeInput(player->graph, mixerNode, 0, outputNode, 0), + "Could not connect the input of the output"); + + AudioUnitSetParameter(player->outputUnit, kAudioUnitParameterUnit_LinearGain, kAudioUnitScope_Global, 0, 1.0 ,0); + + // AudioDeviceID outputDeviceID = 0; + // // if(outputDeviceID != 0) + // CheckError(AudioUnitSetProperty(player->outputUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &outputDeviceID, sizeof(AudioDeviceID)), + // "couldn't set device properties"); + + CheckError(AUGraphInitialize(player->graph), + "couldn't initialize graph"); + + DLOG(@"Initialized the graph"); + + // CheckError(AUGraphStart(player->graph), + // "couldn't start graph"); + // + // DLOG(@"Started the graph"); + + // CFShow(player->graph); + float volume = 1.0; + AudioUnitSetParameter( mixerUnit, kMultiChannelMixerParam_Volume, kAudioUnitScope_Input, 0, volume, 0 ) ; + // + //#define PART_II 0 + //#ifdef PART_II + // AudioStreamBasicDescription mDataFormat; + // NSUInteger channelCount = [current channelCount]; + // NSUInteger bytesPerSample = [current audioBitDepth] / 8; + // + // // int formatFlag = (bytesPerSample == 4) ? kLinearPCMFormatFlagIsFloat : kLinearPCMFormatFlagIsSignedInteger; + // mDataFormat.mSampleRate = 44100; + // mDataFormat.mFormatID = kAudioFormatLinearPCM; + // mDataFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; ////formatFlag | kAudioFormatFlagsNativeEndian; + // mDataFormat.mBytesPerPacket = 2*16/8; //bytesPerSample * channelCount; + // mDataFormat.mFramesPerPacket = 1; // this means each packet in the AQ has two samples, one for each channel -> 4 bytes/frame/packet + // mDataFormat.mBytesPerFrame = 2*16/8; //bytesPerSample * channelCount; + // mDataFormat.mChannelsPerFrame = 2; //channelCount; + // mDataFormat.mBitsPerChannel = 16; //8 * bytesPerSample; + // + // player->streamFormat = mDataFormat; + // + // // add a mixer to the graph, + // AudioComponentDescription mixercd = {0}; + // mixercd.componentType = kAudioUnitType_Mixer; + // mixercd.componentSubType = kAudioUnitSubType_MultiChannelMixer; // doesn't work: kAudioUnitSubType_MatrixMixer + // mixercd.componentManufacturer = kAudioUnitManufacturer_Apple; + // AUNode mixerNode; + // CheckError(AUGraphAddNode(player->graph, &mixercd, &mixerNode), + // "AUGraphAddNode[kAudioUnitSubType_StereoMixer] failed"); + // + // // adds a node with above description to the graph + //// AudioComponentDescription speechcd = {0}; + //// speechcd.componentType = kAudioUnitType_Generator; + //// speechcd.componentSubType = kAudioUnitSubType_SpeechSynthesis; + //// speechcd.componentManufacturer = kAudioUnitManufacturer_Apple; + //// AUNode speechNode; + //// CheckError(AUGraphAddNode(player->graph, &speechcd, &speechNode), + //// "AUGraphAddNode[kAudioUnitSubType_AudioFilePlayer] failed"); + // + // // opening the graph opens all contained audio units but does not allocate any resources yet + // CheckError(AUGraphOpen(player->graph), + // "AUGraphOpen failed"); + // + // // get the reference to the AudioUnit objects for the various nodes + //// CheckError(AUGraphNodeInfo(player->graph, outputNode, NULL, &player->outputUnit), + //// "AUGraphNodeInfo failed"); + //// CheckError(AUGraphNodeInfo(player->graph, speechNode, NULL, &player->speechUnit), + //// "AUGraphNodeInfo failed"); + // AudioUnit mixerUnit; + // CheckError(AUGraphNodeInfo(player->graph, mixerNode, NULL, &mixerUnit), + // "AUGraphNodeInfo failed"); + // + // // set ASBDs here + // UInt32 propertySize = sizeof (AudioStreamBasicDescription); + // CheckError(AudioUnitSetProperty(player->outputUnit, + // kAudioUnitProperty_StreamFormat, + // kAudioUnitScope_Input, + // 0, + // &player->streamFormat, + // propertySize), + // "Couldn't set stream format on output unit"); + // + // // problem: badComponentInstance (-2147450879) + // CheckError(AudioUnitSetProperty(mixerUnit, + // kAudioUnitProperty_StreamFormat, + // kAudioUnitScope_Input, + // 0, + // &player->streamFormat, + // propertySize), + // "Couldn't set stream format on mixer unit bus 0"); + // CheckError(AudioUnitSetProperty(mixerUnit, + // kAudioUnitProperty_StreamFormat, + // kAudioUnitScope_Input, + // 1, + // &player->streamFormat, + // propertySize), + // "Couldn't set stream format on mixer unit bus 1"); + // + // + // // connections + // // mixer output scope / bus 0 to outputUnit input scope / bus 0 + // // mixer input scope / bus 0 to render callback (from ringbuffer, which in turn is from inputUnit) + // // mixer input scope / bus 1 to speech unit output scope / bus 0 + // + // CheckError(AUGraphConnectNodeInput(player->graph, mixerNode, 0, outputNode, 0), + // "Couldn't connect mixer output(0) to outputNode (0)"); + //// CheckError(AUGraphConnectNodeInput(player->graph, speechNode, 0, mixerNode, 1), + //// "Couldn't connect speech synth unit output (0) to mixer input (1)"); + // AURenderCallbackStruct callbackStruct; + // callbackStruct.inputProc = GraphRenderProc; + // callbackStruct.inputProcRefCon = player; + // CheckError(AudioUnitSetProperty(mixerUnit, + // kAudioUnitProperty_SetRenderCallback, + // kAudioUnitScope_Global, + // 0, + // &callbackStruct, + // sizeof(callbackStruct)), + // "Couldn't set render callback on mixer unit"); + // + // + //#else + // + // // opening the graph opens all contained audio units but does not allocate any resources yet + // CheckError(AUGraphOpen(player->graph), + // "AUGraphOpen failed"); + // + // // get the reference to the AudioUnit object for the output graph node + // CheckError(AUGraphNodeInfo(player->graph, outputNode, NULL, &player->outputUnit), + // "AUGraphNodeInfo failed"); + // + // AudioStreamBasicDescription mDataFormat; + // NSUInteger channelCount = [current channelCount]; + // NSUInteger bytesPerSample = [current audioBitDepth] / 8; + // + // // int formatFlag = (bytesPerSample == 4) ? kLinearPCMFormatFlagIsFloat : kLinearPCMFormatFlagIsSignedInteger; + // mDataFormat.mSampleRate = 44100; + // mDataFormat.mFormatID = kAudioFormatLinearPCM; + // mDataFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; ////formatFlag | kAudioFormatFlagsNativeEndian; + // mDataFormat.mBytesPerPacket = 2*16/8; //bytesPerSample * channelCount; + // mDataFormat.mFramesPerPacket = 1; // this means each packet in the AQ has two samples, one for each channel -> 4 bytes/frame/packet + // mDataFormat.mBytesPerFrame = 2*16/8; //bytesPerSample * channelCount; + // mDataFormat.mChannelsPerFrame = 2; //channelCount; + // mDataFormat.mBitsPerChannel = 16; //8 * bytesPerSample; + // + // player->streamFormat = mDataFormat; + //// OSStatus inputProcErr = noErr; + //// err = AudioUnitSetProperty(mConverterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &mDataFormat, sizeof(AudioStreamBasicDescription)); + // + // // set the stream format on the output unit's input scope + // UInt32 propertySize = sizeof (AudioStreamBasicDescription); + // CheckError(AudioUnitSetProperty(player->outputUnit, + // kAudioUnitProperty_StreamFormat, + // kAudioUnitScope_Input, + // 0, + // &player->streamFormat, + // propertySize), + // "Couldn't set stream format on output unit"); + // + // AURenderCallbackStruct callbackStruct; + // callbackStruct.inputProc = GraphRenderProc; + // callbackStruct.inputProcRefCon = player; + // + // CheckError(AudioUnitSetProperty(player->outputUnit, + // kAudioUnitProperty_SetRenderCallback, + // kAudioUnitScope_Global, + // 0, + // &callbackStruct, + // sizeof(callbackStruct)), + // "Couldn't set render callback on output unit"); + // + //#endif + // + // + // // now initialize the graph (causes resources to be allocated) + // CheckError(AUGraphInitialize(player->graph), + // "AUGraphInitialize failed"); + + player->firstOutputSampleTime = -1; + + CALOG("Bottom of CreateSimpleAUGraph()\n"); +} + +#pragma mark - Render Callback - + +OSStatus +GraphRenderProc(void *inRefCon, + AudioUnitRenderActionFlags *ioActionFlags, + const AudioTimeStamp *inTimeStamp, + UInt32 inBusNumber, + UInt32 inNumberFrames, + AudioBufferList * ioData) +{ +#if COREAUDIO_USE_DEFAULT + NAssert(@"Shouldn't be here."); + return 0; +#else + + read_ptr += inNumberFrames; + // CALOG("GraphRenderProc! need %d frames for time %f \n", inNumberFrames, inTimeStamp->mSampleTime); + + // FlycastAUGraphPlayer *player = (FlycastAUGraphPlayer*) inRefCon; + + // have we ever logged output timing? (for offset calculation) + if (player.firstOutputSampleTime < 0.0) { + player.firstOutputSampleTime = inTimeStamp->mSampleTime; + if ((player.firstInputSampleTime > -1.0) && + (player.inToOutSampleTimeOffset < 0.0)) { + player.inToOutSampleTimeOffset = + player.firstInputSampleTime - player.firstOutputSampleTime; + } + } + + // copy samples out of ring buffer + OSStatus outputProcErr = noErr; + + // Float64 time = inTimeStamp->mSampleTime + player.inToOutSampleTimeOffset; + Float64 time = read_ptr + player.inToOutSampleTimeOffset; + + // new CARingBuffer doesn't take bool 4th arg + outputProcErr = player.ringBuffer->Fetch(ioData, + inNumberFrames, + time); + // float freq = 440.f; + // int seconds = 4; + // unsigned sample_rate = 44100; + // size_t buf_size = seconds * sample_rate; + // + // short *samples; + // samples = new short[buf_size]; + // for(int i=0; imBuffers[0].mData, samples, inNumberFrames); + + // memcpy(ioData->mBuffers[0].mData, player.inputBuffer->mBuffers[0].mData, inNumberFrames); + // + samples_ptr -= inNumberFrames * 2 * 2; + + if (samples_ptr < 0) + samples_ptr = 0; + + printf ("fetched %d frames at time %f error: %i\n", inNumberFrames, time, outputProcErr); + return outputProcErr; +#endif +} + + +#pragma mark - Utilities - + + +static AudioBufferList * +AllocateABL(UInt32 channelsPerFrame, UInt32 bytesPerFrame, bool interleaved, UInt32 capacityFrames) +{ + AudioBufferList *bufferList = NULL; + + UInt32 numBuffers = interleaved ? 1 : channelsPerFrame; + UInt32 channelsPerBuffer = interleaved ? channelsPerFrame : 1; + + bufferList = static_cast(calloc(1, offsetof(AudioBufferList, mBuffers) + (sizeof(AudioBuffer) * numBuffers))); + + bufferList->mNumberBuffers = numBuffers; + + for(UInt32 bufferIndex = 0; bufferIndex < bufferList->mNumberBuffers; ++bufferIndex) { + bufferList->mBuffers[bufferIndex].mData = static_cast(calloc(capacityFrames, bytesPerFrame)); + bufferList->mBuffers[bufferIndex].mDataByteSize = capacityFrames * bytesPerFrame; + bufferList->mBuffers[bufferIndex].mNumberChannels = channelsPerBuffer; + } + + return bufferList; +} + +static void +CheckError(OSStatus error, const char *operation) +{ + if (error == noErr) return; + + char errorString[20]; + // see if it appears to be a 4-char-code + *(UInt32 *)(errorString + 1) = CFSwapInt32HostToBig(error); + if (isprint(errorString[1]) && isprint(errorString[2]) && isprint(errorString[3]) && isprint(errorString[4])) { + errorString[0] = errorString[5] = '\''; + errorString[6] = '\0'; + } else { + // no, format it as an integer + sprintf(errorString, "%d", (int)error); + } + + ELOG(@"CoreAudio: %s (%s)", operation, errorString); + + exit(1); +} diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.h b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.h new file mode 100644 index 0000000000..4b5766b174 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.h @@ -0,0 +1,17 @@ +// +// PVFlycastCore+Audio.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PVFlycastCore (Audio) + +@end + +NS_ASSUME_NONNULL_END diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.m b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.m new file mode 100644 index 0000000000..94a6cab98b --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Audio.m @@ -0,0 +1,25 @@ +// +// PVFlycastCore+Audio.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycastCore+Audio.h" + +@implementation PVFlycastCore (Audio) + +- (NSTimeInterval)frameInterval { + return isNTSC ? 60 : 50; +} + +- (NSUInteger)channelCount { + return 2; +} + +- (double)audioSampleRate { + return sampleRate; +} + +@end diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.h b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.h new file mode 100644 index 0000000000..81190e46ac --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.h @@ -0,0 +1,29 @@ +// +// PVFlycastCore+Controls.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PVFlycastCore (Controls) + +- (void)initControllBuffers; +- (void)pollControllers; + +#pragma mark - Control + +- (void)didPushDreamcastButton:(enum PVDreamcastButton)button forPlayer:(NSInteger)player; +- (void)didReleaseDreamcastButton:(enum PVDreamcastButton)button forPlayer:(NSInteger)player; +- (void)didMoveDreamcastJoystickDirection:(enum PVDreamcastButton)button withValue:(CGFloat)value forPlayer:(NSInteger)player; +- (void)didMoveJoystick:(NSInteger)button withValue:(CGFloat)value forPlayer:(NSInteger)player; + +- (void)didPush:(NSInteger)button forPlayer:(NSInteger)player; +- (void)didRelease:(NSInteger)button forPlayer:(NSInteger)player; +@end + +NS_ASSUME_NONNULL_END diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.mm b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.mm new file mode 100644 index 0000000000..40d7a2ef27 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Controls.mm @@ -0,0 +1,188 @@ +// +// PVFlycastCore+Controls.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import +#import +#import + +#define DC_BTN_C (1<<0) +#define DC_BTN_B (1<<1) +#define DC_BTN_A (1<<2) +#define DC_BTN_START (1<<3) +#define DC_DPAD_UP (1<<4) +#define DC_DPAD_DOWN (1<<5) +#define DC_DPAD_LEFT (1<<6) +#define DC_DPAD_RIGHT (1<<7) +#define DC_BTN_Z (1<<8) +#define DC_BTN_Y (1<<9) +#define DC_BTN_X (1<<10) +#define DC_BTN_D (1<<11) +#define DC_DPAD2_UP (1<<12) +#define DC_DPAD2_DOWN (1<<13) +#define DC_DPAD2_LEFT (1<<14) +#define DC_DPAD2_RIGHT (1<<15) + +#define DC_AXIS_LT (0X10000) +#define DC_AXIS_RT (0X10001) +#define DC_AXIS_X (0X20000) +#define DC_AXIS_Y (0X20001) + +static const int DreamcastMap[] = { + DC_DPAD_UP, DC_DPAD_DOWN, DC_DPAD_LEFT, DC_DPAD_RIGHT, + DC_BTN_A, DC_BTN_B, DC_BTN_X, DC_BTN_Y, + DC_AXIS_LT, DC_AXIS_RT, + DC_BTN_START +}; + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef unsigned int u32; + + // Flycast controller data +u16 kcode[4]; +u8 rt[4]; +u8 lt[4]; +u32 vks[4]; +s8 joyx[4], joyy[4]; + +@implementation PVFlycastCore (Controls) + +- (void)initControllBuffers { + memset(&kcode, 0xFFFF, sizeof(kcode)); + bzero(&rt, sizeof(rt)); + bzero(<, sizeof(lt)); +} + +#pragma mark - Control + +- (void)pollControllers { + for (NSInteger playerIndex = 0; playerIndex < 4; playerIndex++) + { + GCController *controller = nil; + + if (self.controller1 && playerIndex == 0) + { + controller = self.controller1; + } + else if (self.controller2 && playerIndex == 1) + { + controller = self.controller2; + } + else if (self.controller3 && playerIndex == 3) + { + controller = self.controller3; + } + else if (self.controller4 && playerIndex == 4) + { + controller = self.controller4; + } + + if ([controller extendedGamepad]) + { + GCExtendedGamepad *gamepad = [controller extendedGamepad]; + GCControllerDirectionPad *dpad = [gamepad dpad]; + + dpad.up.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_UP) : kcode[playerIndex] |= (DC_DPAD_UP); + dpad.down.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_DOWN) : kcode[playerIndex] |= (DC_DPAD_DOWN); + dpad.left.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_LEFT) : kcode[playerIndex] |= (DC_DPAD_LEFT); + dpad.right.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_RIGHT) : kcode[playerIndex] |= (DC_DPAD_RIGHT); + + gamepad.buttonA.isPressed ? kcode[playerIndex] &= ~(DC_BTN_A) : kcode[playerIndex] |= (DC_BTN_A); + gamepad.buttonB.isPressed ? kcode[playerIndex] &= ~(DC_BTN_B) : kcode[playerIndex] |= (DC_BTN_B); + gamepad.buttonX.isPressed ? kcode[playerIndex] &= ~(DC_BTN_X) : kcode[playerIndex] |= (DC_BTN_X); + gamepad.buttonY.isPressed ? kcode[playerIndex] &= ~(DC_BTN_Y) : kcode[playerIndex] |= (DC_BTN_Y); + + gamepad.leftShoulder.isPressed ? kcode[playerIndex] &= ~(DC_AXIS_LT) : kcode[playerIndex] |= (DC_AXIS_LT); + gamepad.rightShoulder.isPressed ? kcode[playerIndex] &= ~(DC_AXIS_RT) : kcode[playerIndex] |= (DC_AXIS_RT); + + gamepad.leftTrigger.isPressed ? kcode[playerIndex] &= ~(DC_BTN_Z) : kcode[playerIndex] |= (DC_BTN_Z); + gamepad.rightTrigger.isPressed ? kcode[playerIndex] &= ~(DC_BTN_START) : kcode[playerIndex] |= (DC_BTN_START); + + + float xvalue = gamepad.leftThumbstick.xAxis.value; + s8 x=(s8)(xvalue*127); + joyx[0] = x; + + float yvalue = gamepad.leftThumbstick.yAxis.value; + s8 y=(s8)(yvalue*127 * - 1); //-127 ... + 127 range + joyy[0] = y; + + } else if ([controller gamepad]) { + GCGamepad *gamepad = [controller gamepad]; + GCControllerDirectionPad *dpad = [gamepad dpad]; + + dpad.up.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_UP) : kcode[playerIndex] |= (DC_DPAD_UP); + dpad.down.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_DOWN) : kcode[playerIndex] |= (DC_DPAD_DOWN); + dpad.left.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_LEFT) : kcode[playerIndex] |= (DC_DPAD_LEFT); + dpad.right.isPressed ? kcode[playerIndex] &= ~(DC_DPAD_RIGHT) : kcode[playerIndex] |= (DC_DPAD_RIGHT); + + gamepad.buttonA.isPressed ? kcode[playerIndex] &= ~(DC_BTN_A) : kcode[playerIndex] |= (DC_BTN_A); + gamepad.buttonB.isPressed ? kcode[playerIndex] &= ~(DC_BTN_B) : kcode[playerIndex] |= (DC_BTN_B); + gamepad.buttonX.isPressed ? kcode[playerIndex] &= ~(DC_BTN_X) : kcode[playerIndex] |= (DC_BTN_X); + gamepad.buttonY.isPressed ? kcode[playerIndex] &= ~(DC_BTN_Y) : kcode[playerIndex] |= (DC_BTN_Y); + + gamepad.leftShoulder.isPressed ? kcode[playerIndex] &= ~(DC_AXIS_LT) : kcode[playerIndex] |= (DC_AXIS_LT); + gamepad.rightShoulder.isPressed ? kcode[playerIndex] &= ~(DC_AXIS_RT) : kcode[playerIndex] |= (DC_AXIS_RT); + } +#if TARGET_OS_TV + else if ([controller microGamepad]) { + GCMicroGamepad *gamepad = [controller microGamepad]; + GCControllerDirectionPad *dpad = [gamepad dpad]; + } +#endif + } +} + +-(void)didPushDreamcastButton:(enum PVDreamcastButton)button forPlayer:(NSInteger)player { + if (button == PVDreamcastButtonL) { + lt[player] |= 0xff * true; + } else if (button == PVDreamcastButtonR) { + rt[player] |= 0xff * true; + } else { + int mapped = DreamcastMap[button]; + kcode[player] &= ~(mapped); + } +} + +-(void)didReleaseDreamcastButton:(enum PVDreamcastButton)button forPlayer:(NSInteger)player { + if (button == PVDreamcastButtonL) { + lt[player] |= 0xff * false; + } else if (button == PVDreamcastButtonR) { + rt[player] |= 0xff * false; + } else { + int mapped = DreamcastMap[button]; + kcode[player] |= (mapped); + } +} + +- (void)didMoveDreamcastJoystickDirection:(enum PVDreamcastButton)button withValue:(CGFloat)value forPlayer:(NSInteger)player { + /* + float xvalue = gamepad.leftThumbstick.xAxis.value; + s8 x=(s8)(xvalue*127); + joyx[0] = x; + + float yvalue = gamepad.leftThumbstick.yAxis.value; + s8 y=(s8)(yvalue*127 * - 1); //-127 ... + 127 range + joyy[0] = y; + */ +} + +-(void)didMoveJoystick:(NSInteger)button withValue:(CGFloat)value forPlayer:(NSInteger)player { + [self didMoveDreamcastJoystickDirection:(enum PVDreamcastButton)button withValue:value forPlayer:player]; +} + +- (void)didPush:(NSInteger)button forPlayer:(NSInteger)player { + [self didPushDreamcastButton:(PVDreamcastButton)button forPlayer:player]; +} + +- (void)didRelease:(NSInteger)button forPlayer:(NSInteger)player { + [self didReleaseDreamcastButton:(PVDreamcastButton)button forPlayer:player]; +} + +@end diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.h b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.h new file mode 100644 index 0000000000..afe0f40a49 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.h @@ -0,0 +1,17 @@ +// +// PVFlycast+Saves.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PVFlycastCore (Saves) + +@end + +NS_ASSUME_NONNULL_END diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.m b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.m new file mode 100644 index 0000000000..dad5a50403 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Saves.m @@ -0,0 +1,37 @@ +// +// PVFlycast+Saves.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycastCore+Saves.h" +#import "PVFlycastCore.h" + +@implementation PVFlycastCore (Saves) + +#pragma mark - Properties +-(BOOL)supportsSaveStates { + return NO; +} + +#pragma mark - Methods + +- (BOOL)saveStateToFileAtPath:(NSString *)fileName { + return NO; +} + +- (void)saveStateToFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block { + block(NO, nil); +} + +- (BOOL)loadStateFromFileAtPath:(NSString *)fileName { + return NO; +} + +- (void)loadStateFromFileAtPath:(NSString *)fileName completionHandler:(void (^)(BOOL, NSError *))block { + block(NO, nil); +} + +@end diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.h b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.h new file mode 100644 index 0000000000..6cb8fae290 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.h @@ -0,0 +1,19 @@ +// +// PVFlycast+Video.h +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PVFlycastCore (Video) + +- (void)videoInterrupt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.m b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.m new file mode 100644 index 0000000000..dc4b75701c --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore+Video.m @@ -0,0 +1,82 @@ +// +// PVFlycast+Video.m +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycastCore+Video.h" +#import "PVFlycastCore.h" + +#import +#import +#import + +@implementation PVFlycastCore (Video) + +# pragma mark - Methods + +- (void)videoInterrupt { + //dispatch_semaphore_signal(coreWaitToEndFrameSemaphore); + + //dispatch_semaphore_wait(mupenWaitToBeginFrameSemaphore, DISPATCH_TIME_FOREVER); +} + +- (void)swapBuffers { + [self.renderDelegate didRenderFrameOnAlternateThread]; +} + +- (void)executeFrameSkippingFrame:(BOOL)skip { + //dispatch_semaphore_signal(mupenWaitToBeginFrameSemaphore); + + //dispatch_semaphore_wait(coreWaitToEndFrameSemaphore, DISPATCH_TIME_FOREVER); +} + +- (void)executeFrame { + [self executeFrameSkippingFrame:NO]; +} + +# pragma mark - Properties + +- (CGSize)bufferSize { + return CGSizeMake(1024, 512); +} + +- (CGRect)screenRect { + return CGRectMake(0, 0, self.videoWidth, self.videoHeight); +} + +- (CGSize)aspectSize { + return CGSizeMake(self.videoWidth, self.videoHeight); +} + +- (BOOL)rendersToOpenGL { + return YES; +} + +- (BOOL)isDoubleBuffered { + return YES; +} + +- (const void *)videoBuffer { + return NULL; +} + +- (GLenum)pixelFormat { + return GL_RGBA; +} + +- (GLenum)pixelType { + return GL_UNSIGNED_BYTE; +} + +- (GLenum)internalPixelFormat { + return GL_RGBA; +} + +- (GLenum)depthFormat { + // 0, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24 + return GL_DEPTH_COMPONENT24; +} +@end diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.h b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.h new file mode 100644 index 0000000000..47a0d8efb2 --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.h @@ -0,0 +1,41 @@ +// +// PVFlycastCore.h +// PVFlycast +// +// Created by Joseph Mattiello on 4/6/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import +#import +#import +#import + + +#define GET_CURRENT_AND_RETURN(...) __strong __typeof__(_current) current = _current; if(current == nil) return __VA_ARGS__; +#define GET_CURRENT_OR_RETURN(...) __strong __typeof__(_current) current = _current; if(current == nil) return __VA_ARGS__; + +@interface PVFlycastCore : PVEmulatorCore +{ + uint8_t padData[4][PVDreamcastButtonCount]; + int8_t xAxis[4]; + int8_t yAxis[4]; + // int videoWidth; + // int videoHeight; + // int videoBitDepth; + int videoDepthBitDepth; // eh + + float sampleRate; + + BOOL isNTSC; +@public + dispatch_queue_t _callbackQueue; +} + +@property (nonatomic, assign) int videoWidth; +@property (nonatomic, assign) int videoHeight; +@property (nonatomic, assign) int videoBitDepth; + +@end + +extern __weak PVFlycastCore *_current; diff --git a/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.mm b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.mm new file mode 100644 index 0000000000..6e5426673f --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/Core/PVFlycastCore.mm @@ -0,0 +1,378 @@ +// +// PVFlycastCore.m +// PVFlycast +// +// Created by Joseph Mattiello on 4/6/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycastCore.h" +#import "PVFlycastCore+Controls.h" +#import "PVFlycastCore+Audio.h" +#import "PVFlycastCore+Video.h" + +#import "PVFlycast+Audio.h" + +#import +#import + +// Flycast imports +#include "types.h" +#include "profiler/profiler.h" +#include "cfg/cfg.h" +#include "rend/rend.h" +#include "rend/TexCache.h" +#include "hw/maple/maple_devs.h" +#include "hw/maple/maple_if.h" +#include "hw/maple/maple_cfg.h" + +__weak PVFlycastCore *_current = 0; + +@interface PVFlycastCore() { + +} + +@property(nonatomic, strong, nullable) NSString *diskPath; + +@end + +// Flycast function declerations +extern int screen_width,screen_height; +bool rend_single_frame(); +bool gles_init(); +extern int flycast_main(int argc, char* argv[]); +void common_linux_setup(); +int dc_init(int argc,wchar* argv[]); +void dc_run(); +void dc_term(); +void dc_stop(); +extern void MakeCurrentThreadRealTime(); + +bool inside_loop = true; +static bool first_run = true;; +volatile bool has_init = false; + +#pragma mark - PVFlycastCore Begin + +@implementation PVFlycastCore { + dispatch_semaphore_t mupenWaitToBeginFrameSemaphore; + dispatch_semaphore_t coreWaitToEndFrameSemaphore; + dispatch_semaphore_t coreWaitForExitSemaphore; + + NSMutableDictionary *_callbackHandlers; +} + +- (instancetype)init { + if (self = [super init]) { + mupenWaitToBeginFrameSemaphore = dispatch_semaphore_create(0); + coreWaitToEndFrameSemaphore = dispatch_semaphore_create(0); + coreWaitForExitSemaphore = dispatch_semaphore_create(0); + + _videoWidth = screen_width = 640; + _videoHeight = screen_height = 480; + _videoBitDepth = 32; // ignored + videoDepthBitDepth = 0; // TODO + + sampleRate = 44100; + + isNTSC = YES; + + dispatch_queue_attr_t queueAttributes = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INTERACTIVE, 0); + + _callbackQueue = dispatch_queue_create("org.openemu.Flycast.CallbackHandlerQueue", queueAttributes); + _callbackHandlers = [[NSMutableDictionary alloc] init]; + } + + _current = self; + return self; +} + +- (void)dealloc { +#if !__has_feature(objc_arc) + dispatch_release(mupenWaitToBeginFrameSemaphore); + dispatch_release(coreWaitToEndFrameSemaphore); + dispatch_release(coreWaitForExitSemaphore); +#endif + + _current = nil; +} + +#pragma mark - PVEmulatorCore +- (BOOL)loadFileAtPath:(NSString *)path error:(NSError**)error { + NSBundle *coreBundle = [NSBundle bundleForClass:[self class]]; + const char *dataPath; + + [self copyCFGIfMissing]; + [self copyShadersIfMissing]; + [self initControllBuffers]; + + // TODO: Proper path + NSString *configPath = self.saveStatesPath; + dataPath = [[coreBundle resourcePath] fileSystemRepresentation]; + + [[NSFileManager defaultManager] createDirectoryAtPath:configPath + withIntermediateDirectories:YES + attributes:nil + error:nil]; + + NSString *batterySavesDirectory = self.batterySavesPath; + [[NSFileManager defaultManager] createDirectoryAtPath:batterySavesDirectory + withIntermediateDirectories:YES + attributes:nil + error:NULL]; + + +// if (!success) { +// NSDictionary *userInfo = @{ +// NSLocalizedDescriptionKey: @"Failed to load game.", +// NSLocalizedFailureReasonErrorKey: @"Flycast failed to load GLES graphics.", +// NSLocalizedRecoverySuggestionErrorKey: @"Provenance may not be compiled correctly." +// }; +// +// NSError *newError = [NSError errorWithDomain:PVEmulatorCoreErrorDomain +// code:PVEmulatorCoreErrorCodeCouldNotLoadRom +// userInfo:userInfo]; +// +// *error = newError; +// return NO; +// } + + self.diskPath = path; + + return YES; +} + +- (void)printSettings { +#define LIST_OF_VARIABLES \ +X(dynarec.Enable) \ +X(dynarec.idleskip) \ +X(dreamcast.region) \ +X(dreamcast.region) \ +X(aica.LimitFPS) \ +X(aica.NoSound) \ +X(aica.NoBatch) \ +X(aica.GlobalFocus) \ +X(aica.BufferSize) \ +X(aica.OldSyncronousDma) \ +X(bios.UseReios) \ +X(rend.WideScreen) \ +X(rend.UseMipmaps) \ +X(pvr.MaxThreads) \ +X(pvr.SynchronousRender) + + + NSMutableString *s = [NSMutableString stringWithFormat:@"----------\nFlycast Settings:\n---------\n"]; +#define X(name) \ +[s appendString: [NSString stringWithFormat:@"%@ : %i\n", @#name , settings.name ]]; +LIST_OF_VARIABLES +#undef X + + ILOG(@"%@", s); +} + + +- (void)copyShadersIfMissing { + + NSArray *shaders = @[@"Shader.vsh",@"Shader.fsh"]; + NSString *destinationFolder = self.BIOSPath; + NSFileManager *fm = [NSFileManager defaultManager]; + + for (NSString* shader in shaders) { + NSString *destinationPath = [destinationFolder stringByAppendingPathComponent:shader]; + ILOG(@"Checking for shader %@", destinationPath); + if( ![fm fileExistsAtPath:destinationPath] ) { + NSString *source = [[NSBundle bundleForClass:[self class]] pathForResource:[shader stringByDeletingPathExtension] ofType:[shader pathExtension]]; + [fm copyItemAtPath:source + toPath:destinationPath + error:nil]; + ILOG(@"Copied %@ from %@ to %@", shader, source, destinationPath); + } + } +} + +- (void)copyCFGIfMissing { + + NSString *cfg = @"emu.cfg"; + +// Whcih one is it again? + NSString *destinationFolder = self.BIOSPath; +// NSString *destinationFolder = self.diskPath; + + NSFileManager *fm = [NSFileManager defaultManager]; + NSString *destinationPath = [destinationFolder stringByAppendingPathComponent:cfg]; + + if( ![fm fileExistsAtPath:destinationPath] ) { + NSString *source = [[NSBundle bundleForClass:[self class]] pathForResource:@"emu" ofType:@"cfg"]; + [fm copyItemAtPath:source + toPath:destinationPath + error:nil]; + ILOG(@"Copied %@ from %@ to %@", cfg, source, destinationPath); + } else { + ILOG(@"emu.cfg already exists at path (%@). Skipping installing default version.", destinationFolder); + } +} + +#pragma mark - Running +- (void)startEmulation { + if(!self.isRunning) { + [super startEmulation]; + [NSThread detachNewThreadSelector:@selector(runFlycastRenderThread) toTarget:self withObject:nil]; + } +} + +- (void)runFlycastEmuThread { + @autoreleasepool + { + [self flycastMain]; + + // Core returns + + // Unlock rendering thread + dispatch_semaphore_signal(coreWaitToEndFrameSemaphore); + + [super stopEmulation]; + } +} + +- (void)runFlycastRenderThread { + @autoreleasepool + { + [self.renderDelegate startRenderingOnAlternateThread]; + BOOL success = gles_init(); + assert(success); + [NSThread detachNewThreadSelector:@selector(runFlycastEmuThread) toTarget:self withObject:nil]; + + CFAbsoluteTime lastTime = CFAbsoluteTimeGetCurrent(); + + while (!has_init) {} + while ( !shouldStop ) + { + [self.frontBufferCondition lock]; + while (!shouldStop && self.isFrontBufferReady) [self.frontBufferCondition wait]; + [self.frontBufferCondition unlock]; + + CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); + CFTimeInterval deltaTime = now - lastTime; + while ( !shouldStop && !rend_single_frame() ) {} + [self swapBuffers]; + lastTime = now; + } + } +} + +- (void)flycastMain { + // #if !TARGET_OS_SIMULATOR + // install_prof_handler(1); + // #endif + + char *Args[3]; + const char *P; + + P = (const char *)[self.diskPath UTF8String]; + Args[0] = "dc"; + Args[1] = "-config"; + Args[2] = P&&P[0]? (char *)malloc(strlen(P)+32):0; + + if(Args[2]) + { + strcpy(Args[2],"config:image="); + strcat(Args[2],P); + } + + MakeCurrentThreadRealTime(); + + int argc = Args[2]? 3:1; + + // Set directories + set_user_config_dir(self.BIOSPath.UTF8String); + set_user_data_dir(self.BIOSPath.UTF8String); + // Shouuld be this, but it looks for BIOS there too and have to copy BIOS into battery saves dir of every game then + // set_user_data_dir(self.batterySavesPath.UTF8String); + + add_system_data_dir(self.BIOSPath.UTF8String); + add_system_config_dir(self.BIOSPath.UTF8String); + + NSString *systemPath = [self.diskPath stringByDeletingLastPathComponent]; + + NSString *configDirs = [NSString stringWithFormat:@"%@", systemPath]; + NSString *dataDirs = [NSString stringWithFormat:@"%@", systemPath]; + + setenv("XDG_CONFIG_DIRS", configDirs.UTF8String, true); + setenv("XDG_DATA_DIRS", dataDirs.UTF8String, true); + + ILOG(@"Config dir is: %s\n", get_writable_config_path("/").c_str()); + ILOG(@"Data dir is: %s\n", get_writable_data_path("/").c_str()); + + common_linux_setup(); + + settings.profile.run_counts=0; + + flycast_main(argc, Args); + + dispatch_semaphore_signal(coreWaitForExitSemaphore); +} + +int flycast_main(int argc, wchar* argv[]) { + int status = dc_init(argc, argv); + if (status != 0) { + ELOG(@"Flycast dc_init failed with code: %i", status); + return status; + } + + ILOG(@"Flycast init status: %i", status); + + [_current printSettings]; + + has_init = true; + + dc_run(); + + has_init = false; +// _current->shouldStop = true; + + dc_term(); + + return 0; +} + +- (void)setPauseEmulation:(BOOL)flag { + [super setPauseEmulation:flag]; + + if (flag) + { + dc_stop(); + dispatch_semaphore_signal(mupenWaitToBeginFrameSemaphore); + [self.frontBufferCondition lock]; + [self.frontBufferCondition signal]; + [self.frontBufferCondition unlock]; + } else { + dc_run(); + } +} + +- (void)stopEmulation { + has_init = false; + + // TODO: Call flycast stop command here + dc_term(); + self->shouldStop = YES; + dispatch_semaphore_signal(mupenWaitToBeginFrameSemaphore); + dispatch_semaphore_wait(coreWaitForExitSemaphore, DISPATCH_TIME_FOREVER); + [self.frontBufferCondition lock]; + [self.frontBufferCondition signal]; + [self.frontBufferCondition unlock]; + + [super stopEmulation]; +} + +- (void)resetEmulation { + // TODO: Call flycast reset command here + plugins_Reset(true); + dispatch_semaphore_signal(mupenWaitToBeginFrameSemaphore); + [self.frontBufferCondition lock]; + [self.frontBufferCondition signal]; + [self.frontBufferCondition unlock]; +} + +@end + diff --git a/Cores/Flycast/PVFlycastCore/PVFlycast.mm b/Cores/Flycast/PVFlycastCore/PVFlycast.mm new file mode 100644 index 0000000000..834a3f714a --- /dev/null +++ b/Cores/Flycast/PVFlycastCore/PVFlycast.mm @@ -0,0 +1,166 @@ +// +// PVFlycast.mm +// PVFlycast +// +// Created by Joseph Mattiello on 11/1/18. +// Copyright © 2018 Provenance. All rights reserved. +// + +#import "PVFlycastCore.h" +#import "PVFlycastCore+Controls.h" +#import "PVFlycastCore+Video.h" + +#import "PVFlycast+Audio.h" + +#include + + // Flycast imports +#include "types.h" +#include "profiler/profiler.h" +#include "cfg/cfg.h" +#include "rend/rend.h" +#include "rend/TexCache.h" +#include "hw/maple/maple_devs.h" +#include "hw/maple/maple_if.h" +#include "hw/maple/maple_cfg.h" + +#pragma mark - Flycast C++ interface +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "hw/sh4/dyna/blockmanager.h" +#include + +void move_pthread_to_realtime_scheduling_class(pthread_t pthread) +{ + mach_timebase_info_data_t timebase_info; + mach_timebase_info(&timebase_info); + + const uint64_t NANOS_PER_MSEC = 1000000ULL; + double clock2abs = ((double)timebase_info.denom / (double)timebase_info.numer) * NANOS_PER_MSEC; + + thread_time_constraint_policy_data_t policy; + policy.period = 0; + policy.computation = (uint32_t)(5 * clock2abs); // 5 ms of work + policy.constraint = (uint32_t)(10 * clock2abs); + policy.preemptible = FALSE; + + int kr = thread_policy_set(pthread_mach_thread_np(pthread_self()), + THREAD_TIME_CONSTRAINT_POLICY, + (thread_policy_t)&policy, + THREAD_TIME_CONSTRAINT_POLICY_COUNT); + if (kr != KERN_SUCCESS) { + mach_error("thread_policy_set:", kr); + exit(1); + } +} + +void MakeCurrentThreadRealTime() +{ + move_pthread_to_realtime_scheduling_class(pthread_self()); +} + +#pragma mark Debugging calls + +int msgboxf(const wchar* text,unsigned int type,...) +{ + va_list args; + + wchar temp[2048]; + va_start(args, type); + vsprintf(temp, text, args); + va_end(args); + + //printf(NULL,temp,VER_SHORTNAME,type | MB_TASKMODAL); + NSLog(@"%s", temp); + return 0; +} + +int darw_printf(const wchar* text,...) { + va_list args; + + wchar temp[2048]; + va_start(args, text); + vsprintf(temp, text, args); + va_end(args); + + NSLog(@"%s", temp); + + return 0; +} + +#pragma mark C Lifecycle calls +void os_DoEvents() { + GET_CURRENT_OR_RETURN(); + [current videoInterrupt]; + //// + //// is_dupe = false; + // [current updateControllers]; + // + // if (settings.UpdateMode || settings.UpdateModeForced) + // { + // inside_loop = false; + // rend_end_render(); + // } +} + +u32 os_Push(void*, u32, bool) { + return 1; +} + +void os_SetWindowText(const char* t) { + NSLog(@"WindowText: %s", t); +} + +void os_CreateWindow() { + +} + +void os_SetupInput() { + mcfg_CreateDevicesFromConfig(); +} + +void UpdateInputState(u32 port) { + GET_CURRENT_OR_RETURN(); + [current pollControllers]; +} + +void UpdateVibration(u32 port, u32 value) { + +} + +int get_mic_data(unsigned char* ) { + return 0; +} + +void* libPvr_GetRenderTarget() { + return 0; +} + +void* libPvr_GetRenderSurface() { + return 0; + +} + +bool gl_init(void*, void*) { + return true; +} + +void gl_term() { + +} + +void gl_swap() { + GET_CURRENT_OR_RETURN(); + [current swapBuffers]; +} diff --git a/Cores/Flycast/flycast b/Cores/Flycast/flycast new file mode 160000 index 0000000000..3171cfd381 --- /dev/null +++ b/Cores/Flycast/flycast @@ -0,0 +1 @@ +Subproject commit 3171cfd381efbfa965dadbd559c52881f2226805 diff --git a/Provenance.xcodeproj/project.pbxproj b/Provenance.xcodeproj/project.pbxproj index 2eb156ed7c..0e00e7d924 100644 --- a/Provenance.xcodeproj/project.pbxproj +++ b/Provenance.xcodeproj/project.pbxproj @@ -144,6 +144,10 @@ 7556CF7A19DC15C1007F8F97 /* Default.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7556CF7919DC15C1007F8F97 /* Default.xib */; }; B302F31421713AFD000322B9 /* CenterFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = B33468D120AB347300092CA6 /* CenterFlowLayout.swift */; }; B302F31521713B17000322B9 /* PillPageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3D534EB20B001D700A83D4E /* PillPageControl.swift */; }; + B309C7A52717C49F00279529 /* PVFlycast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B309C7A42717C49F00279529 /* PVFlycast.framework */; }; + B309C7A62717C49F00279529 /* PVFlycast.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B309C7A42717C49F00279529 /* PVFlycast.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B309C7A82717C4B500279529 /* PVFlycast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B309C7A72717C4B500279529 /* PVFlycast.framework */; }; + B309C7A92717C4B500279529 /* PVFlycast.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B309C7A72717C4B500279529 /* PVFlycast.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B31117B0218EB3A900C495A2 /* PVEmulatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A164EB217BC03E800FAC391 /* PVEmulatorViewController.swift */; }; B31117B1218EB3AA00C495A2 /* PVEmulatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A164EB217BC03E800FAC391 /* PVEmulatorViewController.swift */; }; B31117B3218EB3AE00C495A2 /* PVButtonGroupOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3F64ED1205CD20800C273C7 /* PVButtonGroupOverlayView.swift */; }; @@ -532,6 +536,7 @@ B3CB85C31E9BFB16009155A6 /* PVPokeMini.framework in Embed Frameworks */, B37263AE26EA159400E95488 /* PVMupen64PlusVideoGlideN64.framework in Embed Frameworks */, B316B4D32192652000693472 /* PVReicast.framework in Embed Frameworks */, + B309C7A92717C4B500279529 /* PVFlycast.framework in Embed Frameworks */, B3C9D5E21DEA8A290068D057 /* PVGenesis.framework in Embed Frameworks */, B3C9D4B21DEA74500068D057 /* PVGB.framework in Embed Frameworks */, B37263AC26EA159400E95488 /* PVMupen64PlusRspHLE.framework in Embed Frameworks */, @@ -563,6 +568,7 @@ B316B4E521926D7400693472 /* PVReicast.framework in Embed Frameworks */, B324C6202192057E009F4EDC /* PVFCEU.framework in Embed Frameworks */, B3C9D4AF1DEA74390068D057 /* PVGB.framework in Embed Frameworks */, + B309C7A62717C49F00279529 /* PVFlycast.framework in Embed Frameworks */, B3AF701121916C30000FA7F9 /* PVSupport.framework in Embed Frameworks */, B3B0860B1E71316A007F39E1 /* PVMednafen.framework in Embed Frameworks */, 1A19EE162080EA8000A9147B /* PVMupen64PlusVideoGlideN64.framework in Embed Frameworks */, @@ -703,6 +709,8 @@ 5525388625574D48004B00B6 /* PVTGBDual.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = PVTGBDual.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7556CF7919DC15C1007F8F97 /* Default.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Default.xib; sourceTree = ""; }; B302BFA320825ADC0029CEDB /* PVMupen64PlusVideoGlideN64.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVMupen64PlusVideoGlideN64.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B309C7A42717C49F00279529 /* PVFlycast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVFlycast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B309C7A72717C4B500279529 /* PVFlycast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVFlycast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B316B4D12192652000693472 /* PVReicast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVReicast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B316B4D62192659900693472 /* PVVirtualJaguar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVVirtualJaguar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B316B4DB219265B700693472 /* PVVirtualJaguar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PVVirtualJaguar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -933,6 +941,7 @@ 1A4869E017C8D60C0019F6D2 /* SystemConfiguration.framework in Frameworks */, 1A4869D617C8D5450019F6D2 /* CoreData.framework in Frameworks */, B3AF701321916C3A000FA7F9 /* PVLibrary.framework in Frameworks */, + B309C7A52717C49F00279529 /* PVFlycast.framework in Frameworks */, B324C61D21920523009F4EDC /* ProSystem.framework in Frameworks */, 1A47C94417BC1BC400C27644 /* AudioToolbox.framework in Frameworks */, 1ADDA5B417B30CD7008A7ADD /* GLKit.framework in Frameworks */, @@ -986,6 +995,7 @@ B3C9D4B11DEA74500068D057 /* PVGB.framework in Frameworks */, B324C6222192059E009F4EDC /* PVMednafen.framework in Frameworks */, 14C4C1A121EBB0040055C6DC /* PVTGBDual.framework in Frameworks */, + B309C7A82717C4B500279529 /* PVFlycast.framework in Frameworks */, B3995E4F2058229F001D4985 /* PVFCEU.framework in Frameworks */, B3CB85C21E9BFB16009155A6 /* PVPokeMini.framework in Frameworks */, B316B4DC219265B700693472 /* PVVirtualJaguar.framework in Frameworks */, @@ -1118,6 +1128,8 @@ 1A3D409617B2DCE4004DFFFC /* Frameworks */ = { isa = PBXGroup; children = ( + B309C7A72717C4B500279529 /* PVFlycast.framework */, + B309C7A42717C49F00279529 /* PVFlycast.framework */, B37263A426EA159400E95488 /* PVMupen64Plus.framework */, B37263A526EA159400E95488 /* PVMupen64PlusRspHLE.framework */, B37263A626EA159400E95488 /* PVMupen64PlusVideoGlideN64.framework */, diff --git a/Provenance.xcworkspace/contents.xcworkspacedata b/Provenance.xcworkspace/contents.xcworkspacedata index e3a3b164e2..36037109d2 100644 --- a/Provenance.xcworkspace/contents.xcworkspacedata +++ b/Provenance.xcworkspace/contents.xcworkspacedata @@ -22,6 +22,9 @@ + +