A highly-accurate NES emulator for OS X written in Objective-C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
English.lproj
Macifom.xcodeproj
nes_apu
.gitignore
Info.plist
LICENSE
Macifom.icns
Macifom_Prefix.pch
NES6502Interpreter.h
NES6502Interpreter.m
NESAPUEmulator.h
NESAPUEmulator.mm
NESApplicationController.h
NESApplicationController.m
NESAxROMCartridge.h
NESAxROMCartridge.m
NESCNROMCartridge.h
NESCNROMCartridge.m
NESCartridge.h
NESCartridge.m
NESCartridgeEmulator.h
NESCartridgeEmulator.m
NESControllerInterface.h
NESControllerInterface.m
NESCoreEmulation.h
NESCoreEmulation.m
NESKeyboardResponder.h
NESKeyboardResponder.m
NESPPUEmulator.h
NESPPUEmulator.m
NESPlayfieldView.h
NESPlayfieldView.m
NESSUROMCartridge.h
NESSUROMCartridge.m
NESSxROMCartridge.h
NESSxROMCartridge.m
NESTxROMCartridge.h
NESTxROMCartridge.m
NESUxROMCartridge.h
NESUxROMCartridge.m
NESVRC1Cartridge.h
NESVRC1Cartridge.m
NESVRC2aCartridge.h
NESVRC2aCartridge.m
NESVRC2bCartridge.h
NESVRC2bCartridge.m
NESiNES068Cartridge.h
NESiNES068Cartridge.m
NESiNES184Cartridge.h
NESiNES184Cartridge.m
README.md
main.m

README.md

macifom

Macifom is a highly-accurate NES emulator and debugger for OS X written in Objective-C. The purpose of this project to facilitate new NES development on the Mac OS X platform while leveraging OS X technologies such as AppKit, CoreAudio, and CoreGraphics. The latest version of Macifom features:

  • Cycle-exact CPU (2A03) emulation for valid opcodes
  • Scanline-accurate PPU (2C02) emulation
  • Excellent sound reproduction care of Blargg's Nes_snd_emu library
  • Windowed and full-screen display modes
  • Support USB Gamepad and Joystick controls
  • Supports games designed for NROM, UxROM, CNROM, AxROM, SNROM, SUROM, TxROM, VRC1, VRC2a, VRC2b, and iNES #184 (Sunsoft) boards.
  • Automatic saving of cartridge SRAM to disk
  • A debugger featuring breakpoints, live disassembly of program code, reading and writing of memory locations, register display and step-through execution.

I am working to extend Macifom's emulation and debugging capabilities with the following:

  • Support for additional mapper chips and cartridge boards
  • Interfaces for viewing and modifying live program and graphics memory
  • Française, 日本語, Español and Deutch localizations

About our License

Macifom is provided under the MIT License, but embeds Shay Green's Nes_snd_emu library which is licensed under the GNU LGPL. See http://www.slack.net/~ant/libs/audio.html for details and visit http://www.gnu.org/licenses/lgpl.html for a copy of the LGPL License.