Latest1.0.0
Homepagehttps://github.com/suzukiplan/nes-emulator-ios
LicenseGPL-3.0
Platformsios 10.0
FrameworksOpenAL

NES Emulator for iOS

About

The NES emulator implementation for iOS using Cycloa.

screenshot

Features

  • [x] Basic NES emulator functions (load and execute)
  • [x] Capture video image
  • [ ] Capture audio
  • [x] Skip
  • [ ] Save state
  • [ ] Load state

How to use on Your Project

IMPORTANT: Your Project’s license must to GPLv3 or compatible if use it. (confirm the LICENSE section)

(1) Podfile

abstract_target 'defaults' do
    pod 'NESView', '~1.0.0'
end

(2) ViewController

implementation NESView deleagate and make properties if needed

@interface ViewController () <NESViewDelegate>
@property (nonatomic) NESView* nesView;
@property (nonatomic) NESKey* nesKey;
@end

alloc + init NESKey and NESView, and load ROM data

- (void)viewDidLoad
{
    [super viewDidLoad];
    _nesKey = [[NESKey alloc] init];
    _nesView = [[NESView alloc] initWithCGRect(0, 0, 256, 240)];
    _nesView.delegate = self;
    [self.view addSubview:_nesView];
    [_nesView loadRom:[NSData dataWithContentsOfFile:@"path-to-your-rom-file"]];
}

implement NESViewDeleagate method

- (void)nesView:(NESView*)nesView didDetectVsyncWithFrameCount:(NSInteger)frameCount
{
    [nesView tick:_nesKey];
}

See the example

How to build example on your PC

git clone https://github.com/suzukiplan/nes-emulator-ios
cd nes-emulator-ios
cd Example
pod install
open Example.xcworkspace

License

  • NES Emulator for iOS: GPLv3
  • Cycloa: GPLv3
  • Example ROM – Snow Demo by Tennessee Carmel-Veilleux: Public Domain

NOTE: The liberal license of NES Emulator for iOS without Cycloa edition is exist but not open. Please contact SUZUKI PLAN directly about it.

Latest podspec

{
    "name": "NESView",
    "version": "1.0.0",
    "summary": "NES emulator for iOS",
    "homepage": "https://github.com/suzukiplan/nes-emulator-ios",
    "authors": "SUZUKI PLAN",
    "license": {
        "type": "GPL-3.0",
        "file": "LICENSE.txt"
    },
    "platforms": {
        "ios": "10.0"
    },
    "source": {
        "git": "https://github.com/suzukiplan/nes-emulator-ios.git",
        "tag": "1.0.0"
    },
    "source_files": "NESView/**/*.{h,m,hpp,c,cpp}",
    "frameworks": "OpenAL",
    "preserve_paths": "NESView.modulemap",
    "module_map": "NESView.modulemap"
}

Pin It on Pinterest

Share This