Commit 48522a74 authored by Karen Tsai's avatar Karen Tsai
Browse files

Changed iOS target to iOS 5.0, removed arm64 slice, modified README.md, added...

Changed iOS target to iOS 5.0, removed arm64 slice, modified README.md, added an initial iOS frontend, added empty subclasses, added debugging entitlements plist to fix lldb, recreated the entire xcodeproj (it was somewhat required), removed iPad storyboard, removed code-signing requirements, modified AppDelegate to fix view controller status bar tint colors for iOS 7 and 6.
parent b7e9802e
reicast
===========
reicast is a sega dreamcast emulator
reicast is a multi-platform Sega Dreamcast emulator.
This is developer oriented resource, if you just want bins head over to http://reicast.com
This is a developer-oriented resource, if you just want bins head over to http://reicast.com/
Caution
-------
......@@ -16,7 +16,7 @@ If you are interested into further porting/adapting/whatever, *please* don't for
Let's try to keep everything under a single project :)
To build for android
Building for Android
--------------------
Tools required:
* Latest Android SDK
......@@ -31,15 +31,33 @@ Tools required:
From project root directory:
```
export ANDROID_NDK=\ <-Type the full path to your NDK here
export ANDROID_NDK=/ # Type the full path to your NDK here
cd shell\android
cd shell/android/
android update project -p . --target "android-19"
ant debug
```
Building for iOS
----------------
Tools required:
* Latest Xcode
- https://developer.apple.com/xcode/downloads/
* An iOS device (reicast will not compile for the iOS Simulator)
* iOS 5.x ~ 7.x
* iOSOpenDev if developing without an official Apple certificate
- http://iosopendev.com/download/
From project root directory:
```
cd shell/ios/
xcodebuild -configuration Release
```
Translations
------------
New and updated translations are always appreciated!
......@@ -47,15 +65,19 @@ All we ask is that you not use “regional” phrases that may not be generally
Translations can be submitted as a pull request or at http://reicast.loungekatt.com/translate
Beta versions
-------------
Compiled test versions are available at reicast.loungekatt.com
Compiled test versions are available at http://reicast.loungekatt.com/ for Android.
Automated Git builds can also be found at http://reicast.angelxwind.net/ for iOS and Android.
Donations and stuff
-------------------
Well, glad you liked the project so far!
We're currently short on hardware
We're currently short on hardware.
If you would like to donate some devices, get in touch at team@reicast.com. GLES3 capable stuff, some mainstream hardware and rarities would be extremely appreciated.
Keep in mind we're located in Greece for the most part
......@@ -67,32 +89,39 @@ This has been tested/developed on
* Some Chinese tablet
* OUYA
* Various development boards
* gcw zero
* GCW Zero
We had to buy all of these, except the gcw zero and a beaglebone which were donated (thanks! You rock!)
We had to buy all of these, except the GCW Zero and a BeagleBone which were donated (Thanks! You rock!)
Apart from that, we don't accept monetary donations right now.
We also don't plan to be releasing a premium version at any store.
Most of the project has been developed by drk||Raziel (aka, skmp, drk, Raz, etc) but it has been based on the
works of multiple people. It would be extremely unfair to charge for it and get all the credit :)
We're planning for an indiegogo campaign later on to help with sustained development and running costs, so follow @reicastdc on twitter for updates
Other Testing
-------------
These devices are tested by contributors regularly
These devices are tested by Karen/angelXwind:
* Apple iPhone 4 GSM Rev0 (N90AP)
* Apple iPhone 4 CDMA (N92AP)
* Apple iPod touch 4 (N81AP)
* Apple iPod touch 3G (N18AP)
* Apple iPhone 3GS (N88AP)
* Sony Xperia X10a (es209ra)
* Amazon Kindle Fire HD 7 (tate-pvt-08)
These devices are tested by contributors regularly:
* Nvidia Shield
* Nexus 5 / 7
* Xperia Play
Team
----
You can check the currently active committers on [the pretty graphs page](https://github.com/reicast/reicast-emulator/graphs/contributors)
Chat on freenode #reicast.
Our IRC channel is [#reicast @ chat.freenode.net](irc://chat.freenode.net/reicast).
The original reicast team consisted of drk||Raziel (mostly just writing code), PsyMan (debugging/testing and everything else) and a little bit of gb_away
......@@ -101,6 +130,5 @@ Special thanks
--------------
In previous iterations a lot of people have worked on this, notably David Miller (aka, ZeZu), the nullDC team, friends from #pcsx2 and all over the world :)
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/reicast/reicast-emulator/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
//
// AboutViewController.h
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AboutViewController : UITableViewController
@end
//
// AboutViewController.m
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import "AboutViewController.h"
@interface AboutViewController ()
@end
@implementation AboutViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// 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;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 0;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
return cell;
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
*/
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
}
*/
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/
/*
#pragma mark - Navigation
// In a story board-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
......@@ -12,6 +12,10 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([UIDevice currentDevice].systemVersion.floatValue >= 7.0f) // TODO: consider using the black variant for iOS 5.
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
else
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
// Override point for customization after application launch.
return YES;
}
......
//
// BrowserTableViewController.h
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import <UIKit/UIKit.h>
@interface BrowserTableViewController : UITableViewController {
NSArray *games;
}
@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;
@end
//
// BrowserTableViewController.m
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import "AppDelegate.h"
#import "BrowserTableViewController.h"
#import "SWRevealViewController.h"
#import "EmulatorViewController.h"
@interface BrowserTableViewController ()
@end
@implementation BrowserTableViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Browser";
// versionLabel.text = [NSBundle mainBundle].infoDictionary[@"GitVersionString"];
// Set the side bar button action. When it's tapped, it'll show up the sidebar.
_sidebarButton.target = self.revealViewController;
_sidebarButton.action = @selector(revealToggle:);
// Set the gesture
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
// Do any additional setup after loading the view.
// 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;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
// TODO: actual loading of games... and you know, the rest of the view controller.
@end
//
// ViewController.h
// EmulatorViewController.h
// emulator
//
// Created by Lounge Katt on 2/6/14.
// Copyright (c) 2014 Lounge Katt. All rights reserved.
// Created by Karen Tsai (angelXwind) on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import <UIKit/UIKit.h>
#import <GLKit/GLKit.h>
@interface ViewController : GLKViewController
@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;
@end
//
// ViewController.m
// EmulatorViewController.m
// emulator
//
// Created by Lounge Katt on 2/6/14.
// Copyright (c) 2014 Lounge Katt. All rights reserved.
// Created by Karen Tsai (angelXwind) on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import "ViewController.h"
#import "EmulatorViewController.h"
#define BUFFER_OFFSET(i) ((char *)NULL + (i))
......
//
// InputViewController.h
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import <UIKit/UIKit.h>
@interface InputViewController : UITableViewController
@end
//
// InputViewController.m
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import "InputViewController.h"
@interface InputViewController ()
@end
@implementation InputViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// 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;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 0;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
return cell;
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
*/
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
}
*/
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/
/*
#pragma mark - Navigation
// In a story board-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
This diff is collapsed.
//
// PathsViewController.h
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import <UIKit/UIKit.h>
@interface PathsViewController : UITableViewController
@end
//
// PathsViewController.m
// emulator
//
// Created by Karen Tsai on 2014/3/5.
// Copyright (c) 2014 Karen Tsai (angelXwind). All rights reserved.
//
#import "PathsViewController.h"
@interface PathsViewController ()
@end
@implementation PathsViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// 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;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 0;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
return cell;
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;