Added ability to emulate SNES games
This commit is contained in:
parent
c59f4642cd
commit
ed4807ba5d
@ -1 +1 @@
|
||||
Subproject commit 0d618e031f284cad733b1122c60e148601b24ad6
|
||||
Subproject commit bf1cc72947630daf9c15615cc98c1a90ed91f3ee
|
||||
@ -1 +1 @@
|
||||
Subproject commit d99e5066db54aae4f987a8c2726be27b0eac6ee8
|
||||
Subproject commit 288f6ac21bbca3a2fda293eb9af962a4c5dd3b80
|
||||
@ -9,8 +9,8 @@
|
||||
/* Begin PBXBuildFile section */
|
||||
BF090CF41B490D8300DCAB45 /* UIDevice+Vibration.m in Sources */ = {isa = PBXBuildFile; fileRef = BF090CF31B490D8300DCAB45 /* UIDevice+Vibration.m */; };
|
||||
BF46894F1AAC46EF00A2586D /* DirectoryContentsDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF46894E1AAC46EF00A2586D /* DirectoryContentsDataSource.swift */; };
|
||||
BF5E7F441B9A650B00AE44F8 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF5E7F431B9A650B00AE44F8 /* SettingsViewController.swift */; settings = {ASSET_TAGS = (); }; };
|
||||
BF5E7F461B9A652600AE44F8 /* Settings.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BF5E7F451B9A652600AE44F8 /* Settings.storyboard */; settings = {ASSET_TAGS = (); }; };
|
||||
BF5E7F441B9A650B00AE44F8 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF5E7F431B9A650B00AE44F8 /* SettingsViewController.swift */; };
|
||||
BF5E7F461B9A652600AE44F8 /* Settings.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BF5E7F451B9A652600AE44F8 /* Settings.storyboard */; };
|
||||
BF70798C1B6B464B0019077C /* ZipZap.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF70798B1B6B464B0019077C /* ZipZap.framework */; };
|
||||
BF70798D1B6B464B0019077C /* ZipZap.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF70798B1B6B464B0019077C /* ZipZap.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
BF9F4FCF1AAD7B87004C9500 /* DeltaCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF9F4FCE1AAD7B87004C9500 /* DeltaCore.framework */; };
|
||||
@ -218,6 +218,7 @@
|
||||
TargetAttributes = {
|
||||
BFFA71D61AAC406100EE9DD1 = {
|
||||
CreatedOnToolsVersion = 6.3;
|
||||
DevelopmentTeam = 6XVY5G3U44;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -380,12 +381,15 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
INFOPLIST_FILE = Delta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_CFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.rileytestut.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Delta/Delta-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
};
|
||||
@ -396,12 +400,15 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
INFOPLIST_FILE = Delta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_CFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.rileytestut.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Delta/Delta-Bridging-Header.h";
|
||||
};
|
||||
name = Release;
|
||||
|
||||
@ -16,9 +16,11 @@ class EmulationViewController: UIViewController
|
||||
/** Properties **/
|
||||
let game: Game
|
||||
let emulatorCore: EmulatorCore
|
||||
@IBOutlet private(set) var controllerView: ControllerView!
|
||||
|
||||
//MARK: - Private Properties
|
||||
@IBOutlet private var controllerView: ControllerView!
|
||||
@IBOutlet private var gameView: GameView!
|
||||
|
||||
@IBOutlet private var controllerViewHeightConstraint: NSLayoutConstraint!
|
||||
|
||||
//MARK: - Initializers -
|
||||
@ -47,6 +49,9 @@ class EmulationViewController: UIViewController
|
||||
{
|
||||
super.viewDidLoad()
|
||||
|
||||
self.gameView.backgroundColor = UIColor.clearColor()
|
||||
self.emulatorCore.addGameView(self.gameView)
|
||||
|
||||
let controllerSkin = ControllerSkin.defaultControllerSkinForGameUTI(self.game.UTI)
|
||||
|
||||
self.controllerView.controllerSkin = controllerSkin
|
||||
@ -67,7 +72,7 @@ class EmulationViewController: UIViewController
|
||||
{
|
||||
super.viewDidLayoutSubviews()
|
||||
|
||||
if Settings.localControllerPlayerIndex != nil
|
||||
if Settings.localControllerPlayerIndex != nil && self.controllerView.intrinsicContentSize() != CGSize(width: UIViewNoIntrinsicMetric, height: UIViewNoIntrinsicMetric)
|
||||
{
|
||||
let scale = self.view.bounds.width / self.controllerView.intrinsicContentSize().width
|
||||
self.controllerViewHeightConstraint.constant = self.controllerView.intrinsicContentSize().height * scale
|
||||
@ -130,6 +135,16 @@ extension EmulationViewController: GameControllerReceiverType
|
||||
UIDevice.currentDevice().vibrate()
|
||||
}
|
||||
|
||||
if let input = input as? ControllerInput
|
||||
{
|
||||
switch input
|
||||
{
|
||||
case .Menu: self.controllerViewHeightConstraint.constant = 0
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
guard let input = input as? ControllerInput else { return }
|
||||
|
||||
print("Activated \(input)")
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9046" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7702"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9046"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="EmulationViewController" customModule="Delta" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="controllerView" destination="vwI-ri-b2R" id="ntJ-HT-evx"/>
|
||||
<outlet property="controllerViewHeightConstraint" destination="6qz-Ae-arR" id="H8i-pm-31E"/>
|
||||
<outlet property="gameView" destination="CgB-i0-wOA" id="WEE-aY-RJo"/>
|
||||
<outlet property="view" destination="iN0-l3-epB" id="eD5-dV-r00"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
@ -16,6 +18,10 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CgB-i0-wOA" customClass="GameView" customModule="DeltaCore">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="300"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" placeholderIntrinsicWidth="600" placeholderIntrinsicHeight="300" translatesAutoresizingMaskIntoConstraints="NO" id="vwI-ri-b2R" customClass="ControllerView" customModule="DeltaCore">
|
||||
<rect key="frame" x="0.0" y="300" width="600" height="300"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
@ -31,7 +37,14 @@
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="CgB-i0-wOA" secondAttribute="bottom" id="55v-Ds-7WA">
|
||||
<variation key="heightClass=compact" constant="0.0"/>
|
||||
</constraint>
|
||||
<constraint firstItem="CgB-i0-wOA" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="961-Az-XO4"/>
|
||||
<constraint firstAttribute="bottom" secondItem="vwI-ri-b2R" secondAttribute="bottom" id="Blz-Nt-ex2"/>
|
||||
<constraint firstItem="CgB-i0-wOA" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="DyU-Bl-GaA"/>
|
||||
<constraint firstItem="vwI-ri-b2R" firstAttribute="top" secondItem="CgB-i0-wOA" secondAttribute="bottom" id="IYC-AX-EDR"/>
|
||||
<constraint firstAttribute="trailing" secondItem="CgB-i0-wOA" secondAttribute="trailing" id="JcG-hO-3pf"/>
|
||||
<constraint firstAttribute="trailing" secondItem="vwI-ri-b2R" secondAttribute="trailing" id="YbQ-Se-7bk"/>
|
||||
<constraint firstItem="vwI-ri-b2R" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="ZYq-E4-bHb"/>
|
||||
<constraint firstItem="vwI-ri-b2R" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="mX7-Cl-eSm"/>
|
||||
@ -39,11 +52,14 @@
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<variation key="default">
|
||||
<mask key="constraints">
|
||||
<exclude reference="55v-Ds-7WA"/>
|
||||
<exclude reference="ZYq-E4-bHb"/>
|
||||
</mask>
|
||||
</variation>
|
||||
<variation key="heightClass=compact">
|
||||
<mask key="constraints">
|
||||
<include reference="55v-Ds-7WA"/>
|
||||
<exclude reference="IYC-AX-EDR"/>
|
||||
<include reference="ZYq-E4-bHb"/>
|
||||
</mask>
|
||||
</variation>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user