Skip to content

Repository files navigation

iPhone running virtual controller app controlling game on iMac

Virtual Controller

This project is an iPhone app that emulates retro game controllers and a device driver. The device driver makes the controller appear to macOS as a physical devices and can be used by any app or game that supports HID game controllers on a Mac (and in the future, an iPad with an M-series chip).

Project Goals

  • Open source
  • Emulates real-world retro devices
  • Emulated device indistinguishable from a physical device
  • iPhone app distributed on the iOS App Store
  • Driver distributed on the Mac App Store from the host app
  • iPhone app, driver, and devices require NO setup or configuration

See the wiki for more Project Goals…

Minimum Requirements

  • Controller App: iOS 12+
  • Mac Driver: macOS 10.15+
  • iPad (with M series chip) Driver: iOS 16+

See the wiki for complete minimum requirements and minimum supported Apple devices…

Progress

  • Device driver
  • Driver’s host app (installs and manages the driver)
  • Virtual NES controller (usable from the host app)
  • iPhone app that emulates an NES controller and connects to the driver
  • iPhone app sends button state to the driver
  • Works with OpenEmu and other apps that recognize HID game controllers

See the wiki for a complete run down of progress…

Emulated Devices

This list is a preview of some game controllers that will be supported and their progress.

Device NameProgressVirtual Device Name*
NES Controller75%9ES Controller
Apple PippinPlannedPip
Atari 2600 CX40 JoystickPlannedAlfa 2600 Joystick
Atari 2600 CX30 PaddlePlannedAlfa 2600 Paddle
ColecoVision Hand ControllerPlannedCharlieVictor Hand Controller
GameBoyPlannedGolfBravo
GameBoy AdvancePlannedGolfBravo Advance
GameGearPlannedGolfGear
IntellivisionPlannedIndiavision
Nintendo DSLikelyNine DS
Sega GenesisPlannedSierra Golf
Sega Master SystemPlannedSierra Mike System
Sega SaturnPlannedSierra Jupiter
SNESPlannedS9ES
TurboGrafx-16PlannedTangoGolf-16
VectrexPlannedVictrex
Virtual BoyPlannedVictor Bravo

*names likely to change

Don’t see your favorite game controller? See the wiki for more devices…

How can you help?

See the wiki for ways you can help Virtual Controller.

Sponsor this project

Contributors

Languages