From 7b54c0078640584b82d93ad445537a9b069dfeb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?coadde=20=5BM=C3=A1rcio=20Alexandre=20Silva=20Delgado=5D?= Date: Wed, 7 Oct 2015 03:14:31 -0300 Subject: pcr/reicast-git: update pkg --- pcr/reicast-git/loungekatt_rm-nonfree-fp.patch | 1451 ++++++++++++++++++++++++ 1 file changed, 1451 insertions(+) create mode 100644 pcr/reicast-git/loungekatt_rm-nonfree-fp.patch (limited to 'pcr/reicast-git/loungekatt_rm-nonfree-fp.patch') diff --git a/pcr/reicast-git/loungekatt_rm-nonfree-fp.patch b/pcr/reicast-git/loungekatt_rm-nonfree-fp.patch new file mode 100644 index 000000000..9d0b588d9 --- /dev/null +++ b/pcr/reicast-git/loungekatt_rm-nonfree-fp.patch @@ -0,0 +1,1451 @@ +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 ++ ++@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 + #import + #import "iCadeReaderView.h" ++#import "PadViewController.h" ++#import "EmulatorView.h" + +-@interface ViewController : GLKViewController ++@interface EmulatorViewController : GLKViewController + ++@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 @@ + +- ++ + +- ++ + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- +- ++ ++ + + +- ++ ++ ++ ++ + + ++ + + + + +- +- +- +- +- + + + + ++ ++ ++ + + + +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 ++#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 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +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 + +-@interface PathsViewController : UITableViewController ++@interface PathsViewController : UITableViewController + @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 @@ + Reicast + CFBundleExecutable + ${EXECUTABLE_NAME} +- CFBundleIconFiles +- +- emulator/assets/Icon-72.png +- emulator/assets/Icon-72@2x.png +- emulator/assets/Icon.png +- emulator/assets/Icon@2x.png +- + CFBundleIdentifier + com.reicast.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion +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 = ""; }; + 84967C761B8F492C005F1140 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = filter_neon_intrinsics.c; sourceTree = ""; }; + 84967C771B8F492C005F1140 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; +- 84967C781B8F492C005F1140 /* fp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fp.h; sourceTree = ""; }; + 84967C791B8F492C005F1140 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = png.c; sourceTree = ""; }; + 84967C7A1B8F492C005F1140 /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = png.h; sourceTree = ""; }; + 84967C7B1B8F492C005F1140 /* pngconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pngconf.h; sourceTree = ""; }; +@@ -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 = ""; }; + 849C0D6B1B072D14008BAAA4 /* reios_elf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reios_elf.cpp; path = reios/reios_elf.cpp; sourceTree = ""; }; + 849C0D6C1B072D14008BAAA4 /* reios_elf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reios_elf.h; path = reios/reios_elf.h; sourceTree = ""; }; +- 8703BC371A44B8DA00E7E939 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "emulator/assets/Icon-72.png"; sourceTree = ""; }; +- 8703BC381A44B8DA00E7E939 /* Icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72@2x.png"; path = "emulator/assets/Icon-72@2x.png"; sourceTree = ""; }; +- 8703BC391A44B8DA00E7E939 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = emulator/assets/Icon.png; sourceTree = ""; }; +- 8703BC3A1A44B8DA00E7E939 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "emulator/assets/Icon@2x.png"; sourceTree = ""; }; + 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 = ""; }; + 877652C71B6157FC00437F10 /* ngen_arm.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = ngen_arm.S; sourceTree = ""; }; + 877652C81B6157FC00437F10 /* rec_arm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_arm.cpp; sourceTree = ""; }; ++ 878B0CFB1B8BB5B400A8D1C5 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "../reicast-ios/Images.xcassets"; sourceTree = ""; }; ++ 878B0CFF1B8BFE6200A8D1C5 /* disk_unknown.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = disk_unknown.png; path = emulator/Images/disk_unknown.png; sourceTree = ""; }; ++ 8794D9C11B88F3D600B1B3A3 /* DiskViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DiskViewCell.h; path = emulator/DiskViewCell.h; sourceTree = ""; }; ++ 8794D9C21B88F3D600B1B3A3 /* DiskViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DiskViewCell.m; path = emulator/DiskViewCell.m; sourceTree = ""; }; + 87C208C51B7A4BFA00638BDD /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutViewController.h; path = emulator/AboutViewController.h; sourceTree = ""; }; + 87C208C61B7A4BFA00638BDD /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AboutViewController.m; path = emulator/AboutViewController.m; sourceTree = ""; }; + 87C208C71B7A4BFA00638BDD /* BrowserTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrowserTableViewController.h; path = emulator/BrowserTableViewController.h; sourceTree = ""; }; +@@ -364,6 +364,9 @@ + 87D92F511B7A1BB100D8FD9E /* iCadeReaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iCadeReaderView.m; sourceTree = ""; }; + 87D92F521B7A1BB100D8FD9E /* iCadeState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iCadeState.h; sourceTree = ""; }; + 87D92F531B7A1BB100D8FD9E /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; ++ 87FA52E61B8CE18600CEFC32 /* PadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PadViewController.h; path = emulator/PadViewController.h; sourceTree = ""; }; ++ 87FA52E71B8CE18600CEFC32 /* PadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PadViewController.m; path = emulator/PadViewController.m; sourceTree = ""; }; ++ 87FA52E81B8CE18600CEFC32 /* PadViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PadViewController.xib; path = emulator/PadViewController.xib; sourceTree = ""; }; + 9C7A393218C804A80070BB5F /* reicast.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = reicast.entitlements; sourceTree = ""; }; + 9C7A393A18C806DE0070BB5F /* arm_coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arm_coding.h; sourceTree = ""; }; + 9C7A393B18C806DE0070BB5F /* arm_disasm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arm_disasm.h; sourceTree = ""; }; +@@ -382,7 +385,6 @@ + 9C7A394818C806DE0070BB5F /* E_VLoadStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = E_VLoadStore.h; sourceTree = ""; }; + 9C7A394918C806DE0070BB5F /* E_VRegXfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = E_VRegXfer.h; sourceTree = ""; }; + 9C7A394A18C806DE0070BB5F /* H_Branches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_Branches.h; sourceTree = ""; }; +- 9C7A394B18C806DE0070BB5F /* H_fp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_fp.h; sourceTree = ""; }; + 9C7A394C18C806DE0070BB5F /* H_LoadStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_LoadStore.h; sourceTree = ""; }; + 9C7A394D18C806DE0070BB5F /* H_psuedo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_psuedo.h; sourceTree = ""; }; + 9C7A394E18C806DE0070BB5F /* H_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = H_state.h; sourceTree = ""; }; +@@ -722,17 +724,6 @@ + name = reios; + sourceTree = ""; + }; +- 8703BC361A44B8DA00E7E939 /* assets */ = { +- isa = PBXGroup; +- children = ( +- 8703BC371A44B8DA00E7E939 /* Icon-72.png */, +- 8703BC381A44B8DA00E7E939 /* Icon-72@2x.png */, +- 8703BC391A44B8DA00E7E939 /* Icon.png */, +- 8703BC3A1A44B8DA00E7E939 /* Icon@2x.png */, +- ); +- name = assets; +- sourceTree = ""; +- }; + 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"> +- ++ + +- ++ +