Skip to content

Repository files navigation

RomM iOS App

MIT License

A native iOS companion app for RomM. Connect to your self-hosted RomM server to browse, play, and manage your retro game ROM collection directly from your iPhone or iPad.

Compatible with RomM 5.0.*

Download

TestFlight Beta

Join the beta program and help improve the app:

Join TestFlight Beta

Screenshots

Play games directly in the app Take your retro library anywhere Browse your collection by platform Organize with collections Download games for offline play Sync saves with your RomM instance

Features

Emulation

  • 🎮 Play ROMs directly on your iPhone or iPad
  • 🕹️ Native Delta emulator cores for GBA, GBC, GB, NES, SNES, N64, and NDS
  • 🖥️ Libretro-based emulation for Sega Genesis/Mega Drive, Master System, Game Gear, Saturn, Dreamcast, PlayStation, PSP, and Arcade
  • ☁️ Cloud save sync — upload and download save states and save files to/from your RomM server
  • 🎛️ Physical controller support

Library

  • 📱 Native SwiftUI design with dark mode support
  • 🖼️ Game covers, screenshots, and full metadata from your RomM server
  • 📊 Card and list view layouts
  • 🔍 Search across your entire ROM library
  • 📚 Browse by platform with ROM counts and platform logos
  • 📁 Organize games in custom collections
  • 📈 Server statistics and platform insights
  • ⚙️ QR code scanner for quick server setup

Offline & Transfer

  • 💾 Download ROMs for offline play
  • 🔄 Transfer ROMs to remote devices via SFTP
  • 🗂️ BIOS file management for emulator cores

Platform

  • 📲 iPhone and iPad support

Getting Started

This repository uses git submodules for the emulator cores in Vendor/. Clone with submodules:

git clone --recurse-submodules https://github.com/ilyas-hallak/romm-ios-app.git

If you already cloned without submodules:

git submodule update --init --recursive

Then open romm/romm.xcodeproj in Xcode and build.

Credits

Standing on the shoulders of giants.

This app would not be possible without the outstanding open-source emulation work of:

Contributing

  1. Follow the established Clean Architecture patterns (Domain / Data / UI layers)
  2. Maintain one ViewModel per View — no sharing between views
  3. Use Cases must not call other Use Cases — compose at the ViewModel level
  4. Use the existing dependency injection system
  5. Follow SwiftUI best practices
  6. All user-facing strings must be in English

License

MIT — see LICENSE for details. This project is part of the RomM ecosystem.

About

yet another iOS app for RomM

Resources

Stars

111 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages