diff -Nur a/core/deps/libpng/fp.h b/core/deps/libpng/fp.h --- a/core/deps/libpng/fp.h 2015-10-06 21:43:53.002336114 -0300 +++ b/core/deps/libpng/fp.h 1969-12-31 21:00:00.000000000 -0300 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 1999 Apple Computer, Inc. All rights reserved. -* -* @APPLE_LICENSE_HEADER_START@ -* -* The contents of this file constitute Original Code as defined in and -* are subject to the Apple Public Source License Version 1.1 (the -* "License"). You may not use this file except in compliance with the -* License. Please obtain a copy of the License at -* http://www.apple.com/publicsource and read it before using this file. -* -* This Original Code and all software distributed under the License are -* distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER -* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the -* License for the specific language governing rights and limitations -* under the License. -* -* @APPLE_LICENSE_HEADER_END@ -*/ -/* Copyright (c) 1992, NeXT Computer, Inc. All rights reserved. -* -* File: libc/m98k/gen/fp.h -* Author: Derek B Clegg, NeXT Computer, Inc. -* -* HISTORY -* 11-Nov-92 Derek B Clegg (dclegg@next.com) -* Created. -* -* Common definitions for floating-point numbers. -*/ - -/* The following definitions for for double precision IEEE format numbers. */ - -#define EXPONENT_BIAS 1023 - -#define SIGN_BITS 1 -#define EXPONENT_BITS 11 -#define FRACTION_BITS 52 -#define HI_FRACTION_BITS 20 -#define LO_FRACTION_BITS 32 - -struct double_format { -unsigned sign: SIGN_BITS; -unsigned exponent: EXPONENT_BITS; -unsigned hi_fraction: HI_FRACTION_BITS; -unsigned lo_fraction: LO_FRACTION_BITS; -}; - -union dbl { -struct double_format s; -unsigned int u[2]; -double value; -}; - -#define PlusInfinity (1.0/0.0) -#define MinusInfinity (-1.0/0.0) - -#define not_a_number(x) ((x) != (x)) -#define positive_infinity(x) ((x) == PlusInfinity) -#define negative_infinity(x) ((x) == MinusInfinity) Binary files a/shell/apple/emulator-ios/emulator/assets/Icon@2x.png and b/shell/apple/emulator-ios/emulator/assets/Icon@2x.png differ Binary files a/shell/apple/emulator-ios/emulator/assets/Icon-72@2x.png and b/shell/apple/emulator-ios/emulator/assets/Icon-72@2x.png differ Binary files a/shell/apple/emulator-ios/emulator/assets/Icon-72.png and b/shell/apple/emulator-ios/emulator/assets/Icon-72.png differ Binary files a/shell/apple/emulator-ios/emulator/assets/Icon.png and b/shell/apple/emulator-ios/emulator/assets/Icon.png differ diff -Nur a/shell/apple/emulator-ios/emulator/DiskViewCell.h b/shell/apple/emulator-ios/emulator/DiskViewCell.h --- a/shell/apple/emulator-ios/emulator/DiskViewCell.h 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/emulator/DiskViewCell.h 2015-10-06 22:10:31.206968127 -0300 @@ -0,0 +1,8 @@ +#import <UIKit/UIKit.h> + +@interface DiskViewCell : UITableViewCell + +@property (nonatomic, retain) IBOutlet UIImageView *diskImage; +@property (nonatomic, retain) IBOutlet UILabel *nameLabel; + +@end diff -Nur a/shell/apple/emulator-ios/emulator/DiskViewCell.m b/shell/apple/emulator-ios/emulator/DiskViewCell.m --- a/shell/apple/emulator-ios/emulator/DiskViewCell.m 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/emulator/DiskViewCell.m 2015-10-06 22:10:31.206968127 -0300 @@ -0,0 +1,26 @@ +#import "DiskViewCell.h" + +@implementation DiskViewCell + +- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +{ + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + // Initialization code + } + return self; +} + +- (void)awakeFromNib +{ + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated +{ + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff -Nur a/shell/apple/emulator-ios/emulator/EmulatorViewController.h b/shell/apple/emulator-ios/emulator/EmulatorViewController.h --- a/shell/apple/emulator-ios/emulator/EmulatorViewController.h 2015-10-06 21:43:53.121336967 -0300 +++ b/shell/apple/emulator-ios/emulator/EmulatorViewController.h 2015-10-06 22:10:31.206968127 -0300 @@ -10,10 +10,18 @@ #import <GLKit/GLKit.h> #import <GameController/GameController.h> #import "iCadeReaderView.h" +#import "PadViewController.h" +#import "EmulatorView.h" -@interface ViewController : GLKViewController <iCadeEventDelegate> +@interface EmulatorViewController : GLKViewController <iCadeEventDelegate> +@property NSString* diskImage; @property (nonatomic) iCadeReaderView* iCadeReader; @property (nonatomic) GCController *gController __attribute__((weak_import)); +@property (nonatomic, strong) id connectObserver; +@property (nonatomic, strong) id disconnectObserver; +@property (nonatomic, strong) EmulatorView *emuView; + +@property (nonatomic, strong) PadViewController *controllerView; @end diff -Nur a/shell/apple/emulator-ios/emulator/EmulatorViewController.mm b/shell/apple/emulator-ios/emulator/EmulatorViewController.mm --- a/shell/apple/emulator-ios/emulator/EmulatorViewController.mm 2015-10-06 21:43:53.121336967 -0300 +++ b/shell/apple/emulator-ios/emulator/EmulatorViewController.mm 2015-10-06 22:10:31.206968127 -0300 @@ -16,7 +16,7 @@ #include "hw/maple/maple_devs.h" #include "hw/maple/maple_if.h" -@interface ViewController () { +@interface EmulatorViewController () { } @property (strong, nonatomic) EAGLContext *context; @@ -35,25 +35,34 @@ extern "C" int reicast_main(int argc, char* argv[]); -@implementation ViewController +@implementation EmulatorViewController -(void)emuThread { install_prof_handler(1); - - //This looks like the right place, rite? - char text[2]=""; - - char* prms[2]; - prms[0]=text; - - reicast_main(1, prms); + char *Args[3]; + const char *P; + + P = (const char *)[self.diskImage 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); + } + + reicast_main(Args[2]? 3:1,Args); } - (void)viewDidLoad { [super viewDidLoad]; + + self.controllerView = [[PadViewController alloc] initWithNibName:@"PadViewController" bundle:nil]; self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; @@ -61,15 +70,33 @@ NSLog(@"Failed to create ES context"); } - GLKView *view = (GLKView *)self.view; - view.context = self.context; - view.drawableDepthFormat = GLKViewDrawableDepthFormat24; + self.emuView = (EmulatorView *)self.view; + self.emuView.context = self.context; + self.emuView.drawableDepthFormat = GLKViewDrawableDepthFormat24; - self.iCadeReader = [[iCadeReaderView alloc] init]; - [self.view addSubview:self.iCadeReader]; - self.iCadeReader.delegate = self; - self.iCadeReader.active = YES; + [self.controllerView setControlOutput:self.emuView]; + self.connectObserver = [[NSNotificationCenter defaultCenter] addObserverForName:GCControllerDidConnectNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + if ([[GCController controllers] count] == 1) { + [self toggleHardwareController:YES]; + } + }]; + self.disconnectObserver = [[NSNotificationCenter defaultCenter] addObserverForName:GCControllerDidDisconnectNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + if (![[GCController controllers] count]) { + [self toggleHardwareController:NO]; + } + }]; + + if ([[GCController controllers] count]) { + [self toggleHardwareController:YES]; + } + [self.controllerView showController:self.view]; + + self.iCadeReader = [[iCadeReaderView alloc] init]; + [self.view addSubview:self.iCadeReader]; + self.iCadeReader.delegate = self; + self.iCadeReader.active = YES; + [self setupGL]; if (!gles_init()) @@ -82,7 +109,7 @@ } - (void)dealloc -{ +{ [self tearDownGL]; if ([EAGLContext currentContext] == self.context) { @@ -127,6 +154,126 @@ } +- (void)toggleHardwareController:(BOOL)useHardware { + if (useHardware) { +// [self.controllerView hideController]; + self.gController = [GCController controllers][0]; + if (self.gController.gamepad) { + [self.gController.gamepad.buttonA setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_a]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_a]; + } + }]; + [self.gController.gamepad.buttonB setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_b]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_b]; + } + }]; + [self.gController.gamepad.buttonX setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_x]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_x]; + } + }]; + [self.gController.gamepad.buttonY setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_y]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_y]; + } + }]; + [self.gController.gamepad.dpad setValueChangedHandler:^(GCControllerDirectionPad *dpad, float xValue, float yValue){ + if (xValue >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_r]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_r]; + } + if (xValue <= -0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_l]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_l]; + } + if (yValue >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_u]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_u]; + } + if (yValue <= -0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_d]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_d]; + } + }]; + //Add controller pause handler here + } + if (self.gController.extendedGamepad) { + [self.gController.extendedGamepad.buttonA setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_a]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_a]; + } + }]; + [self.gController.extendedGamepad.buttonB setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_b]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_b]; + } + }]; + [self.gController.extendedGamepad.buttonX setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_x]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_x]; + } + }]; + [self.gController.extendedGamepad.buttonY setValueChangedHandler:^(GCControllerButtonInput *button, float value, BOOL pressed) { + if (pressed && value >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_abxy_y]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_abxy_y]; + } + }]; + [self.gController.extendedGamepad.dpad setValueChangedHandler:^(GCControllerDirectionPad *dpad, float xValue, float yValue){ + if (xValue >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_r]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_r]; + } + if (xValue <= -0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_l]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_l]; + } + if (yValue >= 0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_u]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_u]; + } + if (yValue <= -0.1) { + [self.emuView handleKeyDown:self.controllerView.img_dpad_d]; + } else { + [self.emuView handleKeyUp:self.controllerView.img_dpad_d]; + } + }]; + [self.gController.extendedGamepad.leftThumbstick.xAxis setValueChangedHandler:^(GCControllerAxisInput *axis, float value){ + + }]; + [self.gController.extendedGamepad.leftThumbstick.yAxis setValueChangedHandler:^(GCControllerAxisInput *axis, float value){ + + }]; + } + } else { + self.gController = nil; +// [self.controllerView showController:self.view]; + } +} - (void)glkView:(GLKView *)view drawInRect:(CGRect)rect { diff -Nur a/shell/apple/emulator-ios/emulator/EmulatorView.h b/shell/apple/emulator-ios/emulator/EmulatorView.h --- a/shell/apple/emulator-ios/emulator/EmulatorView.h 2015-10-06 21:43:53.121336967 -0300 +++ b/shell/apple/emulator-ios/emulator/EmulatorView.h 2015-10-06 22:10:31.206968127 -0300 @@ -10,4 +10,9 @@ @interface EmulatorView : GLKView +- (void)handleKeyDown:(UIButton*)button; +- (void)handleKeyUp:(UIButton*)button; + +@property (nonatomic, strong) UIViewController *controllerView; + @end diff -Nur a/shell/apple/emulator-ios/emulator/EmulatorView.mm b/shell/apple/emulator-ios/emulator/EmulatorView.mm --- a/shell/apple/emulator-ios/emulator/EmulatorView.mm 2015-10-06 21:43:53.121336967 -0300 +++ b/shell/apple/emulator-ios/emulator/EmulatorView.mm 2015-10-06 22:10:31.206968127 -0300 @@ -7,6 +7,7 @@ // #import "EmulatorView.h" +#import "PadViewController.h" #include "types.h" @@ -15,11 +16,27 @@ extern s8 joyx[4],joyy[4]; extern u8 rt[4],lt[4]; -#define key_CONT_A (1 << 2) -#define key_CONT_START (1 << 3) -#define key_CONT_DPAD_LEFT (1 << 6) - -int dpad_or_btn = 0; +#define DC_BTN_C (1) +#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) @implementation EmulatorView @@ -31,23 +48,85 @@ } */ --(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - - if (dpad_or_btn &1) - kcode[0] &= ~(key_CONT_START|key_CONT_A); - else - kcode[0] &= ~(key_CONT_DPAD_LEFT); +- (void)setControlInput:(PadViewController *)input +{ + self.controllerView = input; +} + +- (void)handleKeyDown:(UIButton*)button +{ + PadViewController * controller = (PadViewController *)self.controllerView; + if (button == controller.img_dpad_l) { + kcode[0] &= ~(DC_DPAD_LEFT); + } + if (button == controller.img_dpad_r) { + kcode[0] &= ~(DC_DPAD_RIGHT); + } + if (button == controller.img_dpad_u) { + kcode[0] &= ~(DC_DPAD_UP); + } + if (button == controller.img_dpad_d) { + kcode[0] &= ~(DC_DPAD_DOWN); + } + if (button == controller.img_abxy_a) { + kcode[0] &= ~(DC_BTN_A); + } + if (button == controller.img_abxy_b) { + kcode[0] &= ~(DC_BTN_B); + } + if (button == controller.img_abxy_x) { + kcode[0] &= ~(DC_BTN_X); + } + if (button == controller.img_abxy_y) { + kcode[0] &= ~(DC_BTN_Y); + } + if (button == controller.img_lt) { + kcode[0] &= ~(DC_AXIS_LT); + } + if (button == controller.img_rt) { + kcode[0] &= ~(DC_AXIS_RT); + } + if (button == controller.img_start) { + kcode[0] &= ~(DC_BTN_START); + } } --(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - - // [event allTouches]; - - if (dpad_or_btn &1) - kcode[0] |= (key_CONT_START|key_CONT_A); - else - kcode[0] |= (key_CONT_DPAD_LEFT); - - dpad_or_btn++; +- (void)handleKeyUp:(UIButton*)button +{ + PadViewController * controller = (PadViewController *)self.controllerView; + if (button == controller.img_dpad_l) { + kcode[0] |= ~(DC_DPAD_LEFT); + } + if (button == controller.img_dpad_r) { + kcode[0] |= ~(DC_DPAD_RIGHT); + } + if (button == controller.img_dpad_u) { + kcode[0] |= ~(DC_DPAD_UP); + } + if (button == controller.img_dpad_d) { + kcode[0] |= ~(DC_DPAD_DOWN); + } + if (button == controller.img_abxy_a) { + kcode[0] |= (DC_BTN_A); + } + if (button == controller.img_abxy_b) { + kcode[0] |= (DC_BTN_B); + } + if (button == controller.img_abxy_x) { + kcode[0] |= (DC_BTN_X); + } + if (button == controller.img_abxy_y) { + kcode[0] |= (DC_BTN_Y); + } + if (button == controller.img_lt) { + kcode[0] |= (DC_AXIS_LT); + } + if (button == controller.img_rt) { + kcode[0] |= (DC_AXIS_RT); + } + if (button == controller.img_start) { + kcode[0] |= (DC_BTN_START); + } } + @end Binary files a/shell/apple/emulator-ios/emulator/Images/disk_unknown.png and b/shell/apple/emulator-ios/emulator/Images/disk_unknown.png differ diff -Nur a/shell/apple/emulator-ios/emulator/MainStoryboard.storyboard b/shell/apple/emulator-ios/emulator/MainStoryboard.storyboard --- a/shell/apple/emulator-ios/emulator/MainStoryboard.storyboard 2015-10-06 21:43:53.123336981 -0300 +++ b/shell/apple/emulator-ios/emulator/MainStoryboard.storyboard 2015-10-06 22:10:31.207968135 -0300 @@ -1,32 +1,100 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="WRM-pR-XCP"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="mSg-lr-0DL"> <dependencies> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/> </dependencies> <scenes> - <!--View Controller--> + <!--Root View Controller--> + <scene sceneID="q8K-fk-uPf"> + <objects> + <tableViewController id="ZcT-ex-GUK" customClass="PathsViewController" sceneMemberID="viewController"> + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="LNG-KY-d6N"> + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <prototypes> + <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Cell" rowHeight="80" id="mMa-C3-VYu" customClass="DiskViewCell"> + <rect key="frame" x="0.0" y="22" width="320" height="80"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mMa-C3-VYu" id="snt-ku-Aaq"> + <rect key="frame" x="0.0" y="0.0" width="287" height="79.5"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="disk_unknown.png" id="6Qh-mW-Z9j"> + <rect key="frame" x="8" y="4" width="72" height="72"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Epl-iu-f5s"> + <rect key="frame" x="88" y="24" width="199" height="32"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + </tableViewCellContentView> + <connections> + <outlet property="diskImage" destination="6Qh-mW-Z9j" id="b3r-L8-LS3"/> + <outlet property="nameLabel" destination="Epl-iu-f5s" id="i0S-JF-deT"/> + </connections> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="ZcT-ex-GUK" id="TGz-Qe-tBz"/> + <outlet property="delegate" destination="ZcT-ex-GUK" id="LAp-Yu-Mwb"/> + </connections> + </tableView> + <navigationItem key="navigationItem" title="Root View Controller" id="5jN-Uj-bBb"/> + <simulatedOrientationMetrics key="simulatedOrientationMetrics"/> + <connections> + <segue destination="WRM-pR-XCP" kind="modal" identifier="emulatorView" id="b10-sb-xpr"/> + </connections> + </tableViewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="mdD-bX-Gqc" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="-88" y="-692"/> + </scene> + <!--Navigation Controller--> + <scene sceneID="VLz-J1-2XD"> + <objects> + <navigationController navigationBarHidden="YES" id="mSg-lr-0DL" sceneMemberID="viewController"> + <navigationBar key="navigationBar" contentMode="scaleToFill" id="vT9-en-Ct5"> + <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> + <autoresizingMask key="autoresizingMask"/> + </navigationBar> + <connections> + <segue destination="ZcT-ex-GUK" kind="relationship" relationship="rootViewController" id="fhp-zt-Xhh"/> + </connections> + </navigationController> + <placeholder placeholderIdentifier="IBFirstResponder" id="i7I-Ys-F6b" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="-692" y="-692"/> + </scene> + <!--Emulator View Controller--> <scene sceneID="h6I-2s-MCy"> <objects> - <viewController storyboardIdentifier="emulatorView" wantsFullScreenLayout="YES" id="WRM-pR-XCP" customClass="ViewController" sceneMemberID="viewController"> - <view key="view" contentMode="scaleToFill" id="JQE-db-ZiC" customClass="EmulatorView"> + <viewController storyboardIdentifier="emulatorView" wantsFullScreenLayout="YES" id="WRM-pR-XCP" customClass="EmulatorViewController" sceneMemberID="viewController"> + <view key="view" multipleTouchEnabled="YES" contentMode="scaleToFill" id="JQE-db-ZiC" customClass="EmulatorView"> <rect key="frame" x="0.0" y="0.0" width="568" height="320"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="darkTextColor"/> + <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <accessibility key="accessibilityConfiguration"> + <accessibilityTraits key="traits" none="YES" notEnabled="YES"/> + </accessibility> <gestureRecognizers/> </view> + <navigationItem key="navigationItem" id="FmO-Yo-nVN"/> <nil key="simulatedStatusBarMetrics"/> <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="ioY-OH-Jev" userLabel="First Responder" sceneMemberID="firstResponder"/> - <pongPressGestureRecognizer delaysTouchesEnded="NO" allowableMovement="10" minimumPressDuration="0.5" id="J8w-PT-eHl"> - <connections> - <action selector="doSaveState:" destination="WRM-pR-XCP" id="6ND-tU-CZE"/> - </connections> - </pongPressGestureRecognizer> </objects> <point key="canvasLocation" x="486" y="-692"/> </scene> </scenes> + <resources> + <image name="disk_unknown.png" width="95" height="95"/> + </resources> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> diff -Nur a/shell/apple/emulator-ios/emulator/PadViewController.h b/shell/apple/emulator-ios/emulator/PadViewController.h --- a/shell/apple/emulator-ios/emulator/PadViewController.h 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/emulator/PadViewController.h 2015-10-06 22:10:31.207968135 -0300 @@ -0,0 +1,34 @@ +// +// PadViewController.h +// reicast-ios +// +// Created by Lounge Katt on 8/25/15. +// Copyright (c) 2015 reicast. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import "EmulatorView.h" + +@interface PadViewController : UIViewController + +@property (nonatomic, strong) IBOutlet UIButton* img_dpad_l; +@property (nonatomic, strong) IBOutlet UIButton* img_dpad_r; +@property (nonatomic, strong) IBOutlet UIButton* img_dpad_u; +@property (nonatomic, strong) IBOutlet UIButton* img_dpad_d; +@property (nonatomic, strong) IBOutlet UIButton* img_abxy_a; +@property (nonatomic, strong) IBOutlet UIButton* img_abxy_b; +@property (nonatomic, strong) IBOutlet UIButton* img_abxy_x; +@property (nonatomic, strong) IBOutlet UIButton* img_abxy_y; +@property (nonatomic, strong) IBOutlet UIButton* img_vjoy; +@property (nonatomic, strong) IBOutlet UIButton* img_lt; +@property (nonatomic, strong) IBOutlet UIButton* img_rt; +@property (nonatomic, strong) IBOutlet UIButton* img_start; + +@property (nonatomic, strong) EmulatorView *handler; + +- (void) showController:(UIView *)parentView; +- (void) hideController; +- (BOOL) isControllerVisible; +- (void) setControlOutput:(EmulatorView *)output; + +@end diff -Nur a/shell/apple/emulator-ios/emulator/PadViewController.m b/shell/apple/emulator-ios/emulator/PadViewController.m --- a/shell/apple/emulator-ios/emulator/PadViewController.m 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/emulator/PadViewController.m 2015-10-06 22:10:31.207968135 -0300 @@ -0,0 +1,78 @@ +// +// PadViewController.m +// reicast-ios +// +// Created by Lounge Katt on 8/25/15. +// Copyright (c) 2015 reicast. All rights reserved. +// + +#import "PadViewController.h" +#import "EmulatorView.h" + +@interface PadViewController () + +@end + +@implementation PadViewController + +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)showController:(UIView *)parentView +{ + [parentView addSubview:self.view]; +} + +- (void)hideController +{ + [self.view removeFromSuperview]; +} + +- (BOOL)isControllerVisible { + if (self.view.window != nil) { + return YES; + } + return NO; +} + +- (void)setControlOutput:(EmulatorView *)output +{ + self.handler = output; +} + +- (IBAction)keycodeDown:(id)sender +{ + [self.handler handleKeyDown:(UIButton*)sender]; +} + +- (IBAction)keycodeUp:(id)sender +{ + [self.handler handleKeyUp:(UIButton*)sender]; +} + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff -Nur a/shell/apple/emulator-ios/emulator/PadViewController.xib b/shell/apple/emulator-ios/emulator/PadViewController.xib --- a/shell/apple/emulator-ios/emulator/PadViewController.xib 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/emulator/PadViewController.xib 2015-10-06 22:10:31.207968135 -0300 @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none"> + <dependencies> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PadViewController"> + <connections> + <outlet property="img_abxy_a" destination="iKO-3z-Ias" id="ENi-No-2tP"/> + <outlet property="img_abxy_b" destination="7LB-OY-vh3" id="pGH-6d-IgP"/> + <outlet property="img_abxy_x" destination="iwO-7q-c8H" id="ZhP-Zp-Qnj"/> + <outlet property="img_abxy_y" destination="hGZ-v7-VA5" id="5qv-nJ-V1w"/> + <outlet property="img_dpad_d" destination="s7g-nq-lRU" id="9MP-1k-eUW"/> + <outlet property="img_dpad_l" destination="rp6-Nd-1qa" id="LNo-9e-3og"/> + <outlet property="img_dpad_r" destination="CVH-hw-R8F" id="vbf-4S-SBb"/> + <outlet property="img_dpad_u" destination="WMD-Fv-ibu" id="1kE-zb-8gR"/> + <outlet property="img_lt" destination="8Gl-Iv-u8L" id="4R8-pf-PYz"/> + <outlet property="img_rt" destination="V8J-vG-dlF" id="Bn6-Zm-Ojo"/> + <outlet property="img_start" destination="VtI-tC-PSX" id="o3u-Cb-G2g"/> + <outlet property="view" destination="3M7-1s-N5r" id="Tac-YU-UYE"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view multipleTouchEnabled="YES" contentMode="scaleToFill" id="3M7-1s-N5r"> + <rect key="frame" x="0.0" y="0.0" width="568" height="320"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LTrigger.png" id="H57-MD-elm"> + <rect key="frame" x="0.0" y="0.0" width="80" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="8Gl-Iv-u8L" userLabel="LT-Button"> + <rect key="frame" x="0.0" y="0.0" width="80" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="34L-sO-g81"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="iDv-U3-6OX"/> + </connections> + </button> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="RTrigger.png" id="Cjn-zx-eSs"> + <rect key="frame" x="488" y="0.0" width="80" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="V8J-vG-dlF" userLabel="RT-Button"> + <rect key="frame" x="488" y="0.0" width="80" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="vPf-qF-m13"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="hQh-8f-5jG"/> + </connections> + </button> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="JoystickButton.png" id="ivh-8r-bw3" userLabel="JoystickThumbpad.png"> + <rect key="frame" x="20" y="206" width="100" height="100"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="JoystickBackground.png" id="OMP-L6-n0A"> + <rect key="frame" x="6" y="192" width="128" height="128"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="DPad.png" id="FLe-Gr-hny"> + <rect key="frame" x="0.0" y="44" width="140" height="140"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="rp6-Nd-1qa" userLabel="L-Button"> + <rect key="frame" x="0.0" y="94" width="46" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="3Yw-AP-xVf"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="5gI-j0-ANf"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="CVH-hw-R8F" userLabel="R-Button"> + <rect key="frame" x="94" y="94" width="46" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="2Dv-zb-f8V"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="woi-3Y-IfD"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="WMD-Fv-ibu" userLabel="U-Button"> + <rect key="frame" x="50" y="44" width="40" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="kT6-yy-ZtY"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="R0R-dl-GAG"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="s7g-nq-lRU" userLabel="D-Button"> + <rect key="frame" x="50" y="144" width="40" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="Wck-mk-4Py"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="Qox-hz-p3A"/> + </connections> + </button> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ABXYPad.png" id="xbP-E4-fCE"> + <rect key="frame" x="408" y="159" width="160" height="161"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="iwO-7q-c8H" userLabel="X-Button"> + <rect key="frame" x="408" y="210" width="60" height="60"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="IBH-TK-vfV"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="dhr-NT-lcF"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="7LB-OY-vh3" userLabel="B-Button"> + <rect key="frame" x="508" y="210" width="60" height="60"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="dhg-58-L8C"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="zqg-KK-Wxb"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="hGZ-v7-VA5" userLabel="Y-Button"> + <rect key="frame" x="458" y="159" width="60" height="60"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="tyb-H4-TqJ"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="oai-Xb-scl"/> + </connections> + </button> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="iKO-3z-Ias" userLabel="A-Button"> + <rect key="frame" x="458" y="260" width="60" height="60"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="Ysa-m4-KnN"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="MTf-ND-WNy"/> + </connections> + </button> + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Start.png" id="9K0-cV-7zu"> + <rect key="frame" x="244" y="272" width="80" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <button opaque="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="VtI-tC-PSX" userLabel="S-Button"> + <rect key="frame" x="257" y="272" width="54" height="40"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal"> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="keycodeDown:" destination="-1" eventType="touchDown" id="kwd-jB-5Wn"/> + <action selector="keycodeUp:" destination="-1" eventType="touchUpInside" id="gHx-tA-QlF"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> + <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/> + <point key="canvasLocation" x="325" y="329"/> + </view> + </objects> + <resources> + <image name="ABXYPad.png" width="120" height="120"/> + <image name="DPad.png" width="120" height="120"/> + <image name="JoystickBackground.png" width="120" height="120"/> + <image name="JoystickButton.png" width="56" height="56"/> + <image name="LTrigger.png" width="67" height="44"/> + <image name="RTrigger.png" width="67" height="44"/> + <image name="Start.png" width="48" height="26"/> + </resources> + <simulatedMetricsContainer key="defaultSimulatedMetrics"> + <simulatedStatusBarMetrics key="statusBar"/> + <simulatedOrientationMetrics key="orientation"/> + <simulatedScreenMetrics key="destination" type="retina4"/> + </simulatedMetricsContainer> +</document> diff -Nur a/shell/apple/emulator-ios/emulator/PathsViewController.h b/shell/apple/emulator-ios/emulator/PathsViewController.h --- a/shell/apple/emulator-ios/emulator/PathsViewController.h 2015-10-06 21:43:53.123336981 -0300 +++ b/shell/apple/emulator-ios/emulator/PathsViewController.h 2015-10-06 22:10:31.207968135 -0300 @@ -8,7 +8,9 @@ #import <UIKit/UIKit.h> -@interface PathsViewController : UITableViewController +@interface PathsViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> @property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton; +@property (nonatomic, strong) NSMutableArray* diskImages; + @end diff -Nur a/shell/apple/emulator-ios/emulator/PathsViewController.m b/shell/apple/emulator-ios/emulator/PathsViewController.m --- a/shell/apple/emulator-ios/emulator/PathsViewController.m 2015-10-06 21:43:53.123336981 -0300 +++ b/shell/apple/emulator-ios/emulator/PathsViewController.m 2015-10-06 22:10:31.207968135 -0300 @@ -7,7 +7,9 @@ // #import "PathsViewController.h" -#import "SWRevealViewController.h" +//#import "SWRevealViewController.h" +#import "EmulatorViewController.h" +#import "DiskViewCell.h" @interface PathsViewController () @@ -24,22 +26,32 @@ return self; } +- (NSURL *)documents +{ + return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; +} + - (void)viewDidLoad { [super viewDidLoad]; self.title = @"Paths"; // Set the side bar button action. When it's tapped, it'll show up the sidebar. - _sidebarButton.target = self.revealViewController; - _sidebarButton.action = @selector(revealToggle:); - +// _sidebarButton.target = self.revealViewController; +// _sidebarButton.action = @selector(revealToggle:); + // Set the gesture - [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; +// [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. // self.navigationItem.rightBarButtonItem = self.editButtonItem; + + self.diskImages = [[NSMutableArray alloc] init]; + NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[self documents].path error:NULL]; + NSPredicate *diskPredicate = [NSPredicate predicateWithFormat:@"self ENDSWITH '.chd' || self ENDSWITH '.gdi' || self ENDSWITH '.cdi' || self ENDSWITH '.CHD' || self ENDSWITH '.GDI' || self ENDSWITH '.CDI'"]; + self.diskImages = [NSMutableArray arrayWithArray:[files filteredArrayUsingPredicate:diskPredicate]]; } - (void)didReceiveMemoryWarning @@ -50,6 +62,52 @@ #pragma mark - Table view data source -// TODO: paths view controller logic +-(NSInteger)numberOfSectionsInTableView: (UITableView*)tableView +{ + return 1; +} + +-(NSInteger)tableView: (UITableView *)tableView numberOfRowsInSection: (NSInteger)section +{ + return [self.diskImages count]; +} + +-(NSString*)tableView: (UITableView*)tableView titleForHeaderInSection: (NSInteger)section +{ + return @""; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 80; + // Assign the specific cell height to prevent issues with custom size +} + +-(UITableViewCell*)tableView: (UITableView*)tableView cellForRowAtIndexPath: (NSIndexPath*)indexPath +{ + static NSString *CellIdentifier = @"Cell"; + + DiskViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; + NSString* imagePath = [self.diskImages objectAtIndex: indexPath.row]; + + cell.nameLabel.text = [[imagePath lastPathComponent] stringByDeletingPathExtension]; + + return cell; +} + +-(void)prepareForSegue: (UIStoryboardSegue*)segue sender: (id)sender +{ + if ([segue.identifier isEqualToString:@"emulatorView"]) { + NSIndexPath* indexPath = self.tableView.indexPathForSelectedRow; + NSString* filePath = [self.diskImages objectAtIndex: indexPath.row]; + NSString* diskPath = [[self documents].path stringByAppendingPathComponent: filePath]; + EmulatorViewController* emulatorView = segue.destinationViewController; + emulatorView.diskImage = diskPath; + } +} + +-(void)tableView: (UITableView*)tableView didSelectRowAtIndexPath: (NSIndexPath*)indexPath +{ + [self performSegueWithIdentifier: @"emulatorView" sender: self]; +} @end diff -Nur a/shell/apple/emulator-ios/emulator/reicast-ios-Info.plist b/shell/apple/emulator-ios/emulator/reicast-ios-Info.plist --- a/shell/apple/emulator-ios/emulator/reicast-ios-Info.plist 2015-10-06 21:43:53.124336988 -0300 +++ b/shell/apple/emulator-ios/emulator/reicast-ios-Info.plist 2015-10-06 22:10:31.207968135 -0300 @@ -8,13 +8,6 @@ <string>Reicast</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> - <key>CFBundleIconFiles</key> - <array> - <string>emulator/assets/Icon-72.png</string> - <string>emulator/assets/Icon-72@2x.png</string> - <string>emulator/assets/Icon.png</string> - <string>emulator/assets/Icon@2x.png</string> - </array> <key>CFBundleIdentifier</key> <string>com.reicast.$(PRODUCT_NAME:rfc1034identifier)</string> <key>CFBundleInfoDictionaryVersion</key> diff -Nur a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Contents.json b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Contents.json --- a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Contents.json 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Contents.json 2015-10-06 22:10:31.209968149 -0300 @@ -0,0 +1,60 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@2x.png", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file Binary files a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png and b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png differ Binary files a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png and b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png differ diff -Nur a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/LaunchImage.launchimage/Contents.json b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/LaunchImage.launchimage/Contents.json --- a/shell/apple/emulator-ios/reicast-ios/Images.xcassets/LaunchImage.launchimage/Contents.json 1969-12-31 21:00:00.000000000 -0300 +++ b/shell/apple/emulator-ios/reicast-ios/Images.xcassets/LaunchImage.launchimage/Contents.json 2015-10-06 22:10:31.209968149 -0300 @@ -0,0 +1,49 @@ +{ + "images" : [ + { + "orientation" : "portrait", + "idiom" : "ipad", + "minimum-system-version" : "7.0", + "extent" : "full-screen", + "scale" : "2x" + }, + { + "orientation" : "landscape", + "idiom" : "ipad", + "minimum-system-version" : "7.0", + "extent" : "full-screen", + "scale" : "1x" + }, + { + "orientation" : "landscape", + "idiom" : "ipad", + "minimum-system-version" : "7.0", + "extent" : "full-screen", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "minimum-system-version" : "7.0", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "minimum-system-version" : "7.0", + "subtype" : "retina4", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "ipad", + "minimum-system-version" : "7.0", + "extent" : "full-screen", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff -Nur a/shell/apple/emulator-ios/reicast-ios.xcodeproj/project.pbxproj b/shell/apple/emulator-ios/reicast-ios.xcodeproj/project.pbxproj --- a/shell/apple/emulator-ios/reicast-ios.xcodeproj/project.pbxproj 2015-10-06 21:43:53.125336995 -0300 +++ b/shell/apple/emulator-ios/reicast-ios.xcodeproj/project.pbxproj 2015-10-06 22:10:31.209968149 -0300 @@ -50,6 +50,9 @@ 877652C61B6157BD00437F10 /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 877652BF1B6157BD00437F10 /* audiostream.cpp */; }; 877652C91B6157FC00437F10 /* ngen_arm.S in Sources */ = {isa = PBXBuildFile; fileRef = 877652C71B6157FC00437F10 /* ngen_arm.S */; }; 877652CA1B6157FC00437F10 /* rec_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 877652C81B6157FC00437F10 /* rec_arm.cpp */; }; + 878B0CFC1B8BB5B400A8D1C5 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 878B0CFB1B8BB5B400A8D1C5 /* Images.xcassets */; }; + 878B0D001B8BFE6200A8D1C5 /* disk_unknown.png in Resources */ = {isa = PBXBuildFile; fileRef = 878B0CFF1B8BFE6200A8D1C5 /* disk_unknown.png */; }; + 8794D9C31B88F3D600B1B3A3 /* DiskViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8794D9C21B88F3D600B1B3A3 /* DiskViewCell.m */; }; 87C208D71B7A4BFA00638BDD /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C208C61B7A4BFA00638BDD /* AboutViewController.m */; }; 87C208D81B7A4BFA00638BDD /* BrowserTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C208C81B7A4BFA00638BDD /* BrowserTableViewController.m */; }; 87C208D91B7A4BFA00638BDD /* CloudVMUViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C208CA1B7A4BFA00638BDD /* CloudVMUViewController.m */; }; @@ -87,10 +90,8 @@ 87D92F4E1B7A1B5700D8FD9E /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87D92F4D1B7A1B5700D8FD9E /* GameController.framework */; }; 87D92F541B7A1BB100D8FD9E /* iCadeReaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 87D92F511B7A1BB100D8FD9E /* iCadeReaderView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 87D92F551B7A1BB100D8FD9E /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 87D92F531B7A1BB100D8FD9E /* LICENSE */; }; - 87DCDB251B7EE57D0054D67C /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 8703BC371A44B8DA00E7E939 /* Icon-72.png */; }; - 87DCDB261B7EE5850054D67C /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8703BC381A44B8DA00E7E939 /* Icon-72@2x.png */; }; - 87DCDB271B7EE5850054D67C /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 8703BC391A44B8DA00E7E939 /* Icon.png */; }; - 87DCDB281B7EE5850054D67C /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8703BC3A1A44B8DA00E7E939 /* Icon@2x.png */; }; + 87FA52E91B8CE18600CEFC32 /* PadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87FA52E71B8CE18600CEFC32 /* PadViewController.m */; }; + 87FA52EA1B8CE18600CEFC32 /* PadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 87FA52E81B8CE18600CEFC32 /* PadViewController.xib */; }; 9C7A393318C804A80070BB5F /* reicast.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 9C7A393218C804A80070BB5F /* reicast.entitlements */; }; 9C7A3AA218C806E00070BB5F /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9C7A395118C806DE0070BB5F /* cfg.cpp */; }; 9C7A3AA318C806E00070BB5F /* cl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9C7A395318C806DE0070BB5F /* cl.cpp */; }; @@ -244,7 +245,6 @@ 84967C751B8F492C005F1140 /* filter_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = filter_neon.S; sourceTree = "<group>"; }; 84967C761B8F492C005F1140 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = filter_neon_intrinsics.c; sourceTree = "<group>"; }; 84967C771B8F492C005F1140 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; - 84967C781B8F492C005F1140 /* fp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fp.h; sourceTree = "<group>"; }; 84967C791B8F492C005F1140 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = png.c; sourceTree = "<group>"; }; 84967C7A1B8F492C005F1140 /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = png.h; sourceTree = "<group>"; }; 84967C7B1B8F492C005F1140 /* pngconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pngconf.h; sourceTree = "<group>"; }; @@ -282,10 +282,6 @@ 849C0D6A1B072D14008BAAA4 /* gdrom_hle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gdrom_hle.h; path = reios/gdrom_hle.h; sourceTree = "<group>"; }; 849C0D6B1B072D14008BAAA4 /* reios_elf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reios_elf.cpp; path = reios/reios_elf.cpp; sourceTree = "<group>"; }; 849C0D6C1B072D14008BAAA4 /* reios_elf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reios_elf.h; path = reios/reios_elf.h; sourceTree = "<group>"; }; - 8703BC371A44B8DA00E7E939 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "emulator/assets/Icon-72.png"; sourceTree = "<group>"; }; - 8703BC381A44B8DA00E7E939 /* Icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72@2x.png"; path = "emulator/assets/Icon-72@2x.png"; sourceTree = "<group>"; }; - 8703BC391A44B8DA00E7E939 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = emulator/assets/Icon.png; sourceTree = "<group>"; }; - 8703BC3A1A44B8DA00E7E939 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "emulator/assets/Icon@2x.png"; sourceTree = "<group>"; }; 87078A8318A47FE90034C7A0 /* reicast-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "reicast-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 87078A8618A47FE90034C7A0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 87078A8818A47FE90034C7A0 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -316,6 +312,10 @@ 877652C11B6157BD00437F10 /* oslib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oslib.h; sourceTree = "<group>"; }; 877652C71B6157FC00437F10 /* ngen_arm.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = ngen_arm.S; sourceTree = "<group>"; }; 877652C81B6157FC00437F10 /* rec_arm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_arm.cpp; sourceTree = "<group>"; }; + 878B0CFB1B8BB5B400A8D1C5 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "../reicast-ios/Images.xcassets"; sourceTree = "<group>"; }; + 878B0CFF1B8BFE6200A8D1C5 /* disk_unknown.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = disk_unknown.png; path = emulator/Images/disk_unknown.png; sourceTree = "<group>"; }; + 8794D9C11B88F3D600B1B3A3 /* DiskViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DiskViewCell.h; path = emulator/DiskViewCell.h; sourceTree = "<group>"; }; + 8794D9C21B88F3D600B1B3A3 /* DiskViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DiskViewCell.m; path = emulator/DiskViewCell.m; sourceTree = "<group>"; }; 87C208C51B7A4BFA00638BDD /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutViewController.h; path = emulator/AboutViewController.h; sourceTree = "<group>"; }; 87C208C61B7A4BFA00638BDD /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AboutViewController.m; path = emulator/AboutViewController.m; sourceTree = "<group>"; }; 87C208C71B7A4BFA00638BDD /* BrowserTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrowserTableViewController.h; path = emulator/BrowserTableViewController.h; sourceTree = "<group>"; }; @@ -364,6 +364,9 @@ 87D92F511B7A1BB100D8FD9E /* iCadeReaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iCadeReaderView.m; sourceTree = "<group>"; }; 87D92F521B7A1BB100D8FD9E /* iCadeState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iCadeState.h; sourceTree = "<group>"; }; 87D92F531B7A1BB100D8FD9E /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; }; + 87FA52E61B8CE18600CEFC32 /* PadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PadViewController.h; path = emulator/PadViewController.h; sourceTree = "<group>"; }; + 87FA52E71B8CE18600CEFC32 /* PadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PadViewController.m; path = emulator/PadViewController.m; sourceTree = "<group>"; }; + 87FA52E81B8CE18600CEFC32 /* PadViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PadViewController.xib; path = emulator/PadViewController.xib; sourceTree = "<group>"; }; 9C7A393218C804A80070BB5F /* reicast.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = reicast.entitlements; sourceTree = "<group>"; }; 9C7A393A18C806DE0070BB5F /* arm_coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arm_coding.h; sourceTree = "<group>"; }; 9C7A393B18C806DE0070BB5F /* arm_disasm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arm_disasm.h; sourceTree = "<group>"; }; @@ -382,7 +385,6 @@ 9C7A394818C806DE0070BB5F /* E_VLoadStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = E_VLoadStore.h; sourceTree = "<group>"; }; 9C7A394918C806DE0070BB5F /* E_VRegXfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = E_VRegXfer.h; sourceTree = "<group>"; }; 9C7A394A18C806DE0070BB5F /* H_Branches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_Branches.h; sourceTree = "<group>"; }; - 9C7A394B18C806DE0070BB5F /* H_fp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_fp.h; sourceTree = "<group>"; }; 9C7A394C18C806DE0070BB5F /* H_LoadStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_LoadStore.h; sourceTree = "<group>"; }; 9C7A394D18C806DE0070BB5F /* H_psuedo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_psuedo.h; sourceTree = "<group>"; }; 9C7A394E18C806DE0070BB5F /* H_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_state.h; sourceTree = "<group>"; }; @@ -722,17 +724,6 @@ name = reios; sourceTree = "<group>"; }; - 8703BC361A44B8DA00E7E939 /* assets */ = { - isa = PBXGroup; - children = ( - 8703BC371A44B8DA00E7E939 /* Icon-72.png */, - 8703BC381A44B8DA00E7E939 /* Icon-72@2x.png */, - 8703BC391A44B8DA00E7E939 /* Icon.png */, - 8703BC3A1A44B8DA00E7E939 /* Icon@2x.png */, - ); - name = assets; - sourceTree = "<group>"; - }; 87078A7A18A47FE90034C7A0 = { isa = PBXGroup; children = ( @@ -769,6 +760,7 @@ 87078A9018A47FE90034C7A0 /* reicast */ = { isa = PBXGroup; children = ( + 878B0CFB1B8BB5B400A8D1C5 /* Images.xcassets */, 9C7A3BC318C84EA10070BB5F /* MainStoryboard.storyboard */, 87078A9918A47FE90034C7A0 /* AppDelegate.h */, 87078A9A18A47FE90034C7A0 /* AppDelegate.m */, @@ -790,7 +782,6 @@ 87078A9118A47FE90034C7A0 /* Supporting Files */ = { isa = PBXGroup; children = ( - 8703BC361A44B8DA00E7E939 /* assets */, 87078A9218A47FE90034C7A0 /* reicast-ios-Info.plist */, 87078A9618A47FE90034C7A0 /* main.m */, 87078A9818A47FE90034C7A0 /* reicast-ios-Prefix.pch */, @@ -823,6 +814,11 @@ 9C7A393618C805F70070BB5F /* View Controller Subclasses */ = { isa = PBXGroup; children = ( + 87FA52E61B8CE18600CEFC32 /* PadViewController.h */, + 87FA52E71B8CE18600CEFC32 /* PadViewController.m */, + 87FA52E81B8CE18600CEFC32 /* PadViewController.xib */, + 8794D9C11B88F3D600B1B3A3 /* DiskViewCell.h */, + 8794D9C21B88F3D600B1B3A3 /* DiskViewCell.m */, 87C208C51B7A4BFA00638BDD /* AboutViewController.h */, 87C208C61B7A4BFA00638BDD /* AboutViewController.m */, 87C208C71B7A4BFA00638BDD /* BrowserTableViewController.h */, @@ -860,6 +856,7 @@ 87D92F291B7A1B4800D8FD9E /* JoystickBackground.png */, 87D92F2A1B7A1B4800D8FD9E /* JoystickBackground@2x.png */, 87D92F2B1B7A1B4800D8FD9E /* JoystickButton.png */, + 878B0CFF1B8BFE6200A8D1C5 /* disk_unknown.png */, 87D92F2C1B7A1B4800D8FD9E /* JoystickButton@2x.png */, 87D92F2D1B7A1B4800D8FD9E /* LTrigger.png */, 87D92F2E1B7A1B4800D8FD9E /* LTrigger@2x.png */, @@ -924,7 +921,6 @@ 9C7A394818C806DE0070BB5F /* E_VLoadStore.h */, 9C7A394918C806DE0070BB5F /* E_VRegXfer.h */, 9C7A394A18C806DE0070BB5F /* H_Branches.h */, - 9C7A394B18C806DE0070BB5F /* H_fp.h */, 9C7A394C18C806DE0070BB5F /* H_LoadStore.h */, 9C7A394D18C806DE0070BB5F /* H_psuedo.h */, 9C7A394E18C806DE0070BB5F /* H_state.h */, @@ -1007,7 +1003,6 @@ children = ( 84967C731B8F492C005F1140 /* arm */, 84967C771B8F492C005F1140 /* config.h */, - 84967C781B8F492C005F1140 /* fp.h */, 84967C791B8F492C005F1140 /* png.c */, 84967C7A1B8F492C005F1140 /* png.h */, 84967C7B1B8F492C005F1140 /* pngconf.h */, @@ -1506,10 +1501,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 87DCDB251B7EE57D0054D67C /* Icon-72.png in Resources */, - 87DCDB261B7EE5850054D67C /* Icon-72@2x.png in Resources */, - 87DCDB271B7EE5850054D67C /* Icon.png in Resources */, - 87DCDB281B7EE5850054D67C /* Icon@2x.png in Resources */, 87D92F461B7A1B4800D8FD9E /* menuback@2x.png in Resources */, 87D92F491B7A1B4800D8FD9E /* RTrigger.png in Resources */, 87D92F4B1B7A1B4800D8FD9E /* Start.png in Resources */, @@ -1517,6 +1508,7 @@ 87D92F391B7A1B4800D8FD9E /* 210-twitterbird.png in Resources */, 87D92F3A1B7A1B4800D8FD9E /* 210-twitterbird@2x.png in Resources */, 87D92F3D1B7A1B4800D8FD9E /* DPad.png in Resources */, + 878B0CFC1B8BB5B400A8D1C5 /* Images.xcassets in Resources */, 87D92F3C1B7A1B4800D8FD9E /* ABXYPad@2x.png in Resources */, 87D92F401B7A1B4800D8FD9E /* JoystickBackground@2x.png in Resources */, 9C7A3AA418C806E00070BB5F /* core.mk in Resources */, @@ -1535,7 +1527,9 @@ 87D92F441B7A1B4800D8FD9E /* LTrigger@2x.png in Resources */, 87D92F551B7A1BB100D8FD9E /* LICENSE in Resources */, 87D92F451B7A1B4800D8FD9E /* menuback.png in Resources */, + 87FA52EA1B8CE18600CEFC32 /* PadViewController.xib in Resources */, 87078AA518A47FE90034C7A0 /* Shader.vsh in Resources */, + 878B0D001B8BFE6200A8D1C5 /* disk_unknown.png in Resources */, 87D92F3B1B7A1B4800D8FD9E /* ABXYPad.png in Resources */, 87D92F481B7A1B4800D8FD9E /* menuicon@2x.png in Resources */, 87D92F371B7A1B4800D8FD9E /* 210-octocat.png in Resources */, @@ -1601,6 +1595,7 @@ 9C7A3B2318C806E00070BB5F /* sh4_opcodes.cpp in Sources */, 84967C951B8F492C005F1140 /* pngmem.c in Sources */, 9C7A3ADA18C806E00070BB5F /* zip_name_locate.c in Sources */, + 8794D9C31B88F3D600B1B3A3 /* DiskViewCell.m in Sources */, 9C7A3B1B18C806E00070BB5F /* ta_ctx.cpp in Sources */, 9C7A3AE018C806E00070BB5F /* zip_set_archive_flag.c in Sources */, 9C7A3B3518C806E00070BB5F /* cdi.cpp in Sources */, @@ -1635,6 +1630,7 @@ 9C7A3B5918C81A4F0070BB5F /* SWRevealViewController.m in Sources */, 9C7A3B0F18C806E00070BB5F /* maple_cfg.cpp in Sources */, 9C7A3AF318C806E00070BB5F /* crc32.c in Sources */, + 87FA52E91B8CE18600CEFC32 /* PadViewController.m in Sources */, 8497BCC01A41A0E900EFB9ED /* nixprof.cpp in Sources */, 9C7A3AE118C806E00070BB5F /* zip_set_file_comment.c in Sources */, 84967C9A1B8F492C005F1140 /* pngrutil.c in Sources */, @@ -1840,6 +1836,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1875,6 +1873,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; GCC_PRECOMPILE_PREFIX_HEADER = YES; diff -Nur a/shell/apple/reicast.xcworkspace/xcshareddata/xcschemes/reicast-ios.xcscheme b/shell/apple/reicast.xcworkspace/xcshareddata/xcschemes/reicast-ios.xcscheme --- a/shell/apple/reicast.xcworkspace/xcshareddata/xcschemes/reicast-ios.xcscheme 2015-10-06 21:43:53.127337010 -0300 +++ b/shell/apple/reicast.xcworkspace/xcshareddata/xcschemes/reicast-ios.xcscheme 2015-10-06 22:10:31.210968157 -0300 @@ -62,7 +62,8 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" allowLocationSimulation = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87078A8218A47FE90034C7A0" @@ -80,7 +81,8 @@ useCustomWorkingDirectory = "NO" buildConfiguration = "Release" debugDocumentVersioning = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87078A8218A47FE90034C7A0"