Skip to content

momenbasel/ConsoleMini

Repository files navigation

ConsoleMini - Mac mini retro / PlayStation console launcher


ConsoleMini

Turn your Mac mini into a living-room PS1 - PS4 + retro console.
Plug a controller, pick a system, play. Beautiful big-picture launcher built with Electron + React + Tailwind + Framer Motion.

Release Build Platform License Stars

Download DMG · Website · Install · Systems · FAQ

Screenshots

ConsoleMini library - All Systems grid

ConsoleMini hero - Your Mac mini, reborn as a console

ConsoleMini settings - emulator install status


Why

OpenEmu is great but does not cover modern PlayStation. RetroArch is powerful but the menu is rough on a TV. Pegasus is heavy on macOS. ConsoleMini is purpose-built for the Mac mini → TV → controller loop: a single controller-first big-picture UI that wraps every solid macOS emulator and gets out of the way.

  • One launcher, ten systems
  • Controller-first navigation (HTML5 Gamepad API)
  • Apple Silicon native, codesigned, hardened-runtime
  • Kiosk mode: the Mac mini boots straight into the launcher
  • Zero ROMs, zero BIOS - bring your own (legally)

Supported systems

Console Emulator Install Notes
PS1 DuckStation brew install --cask duckstation Stable, fast on M-series
PS2 PCSX2 brew install --cask pcsx2 Apple Silicon native
PS3 RPCS3 brew install --cask rpcs3 macOS arm64 build, heavy
PS4 shadPS4 manual download Experimental, low compatibility
PSP PPSSPP brew install --cask ppsspp Native, runs at 4x easily
N64 Mupen64Plus brew install mupen64plus CLI core
SNES / NES RetroArch + cores brew install --cask retroarch Pull cores from Online Updater
GBA mGBA brew install --cask mgba
Dreamcast Flycast brew install --cask flycast

The Settings tab inside the app shows live install status and one-click installs everything via scripts/install-emulators.sh.

Install

From release (recommended)

open https://github.com/momenbasel/ConsoleMini/releases/latest

Drop ConsoleMini.app into /Applications. First run: right-click → Open (until notarization is stapled).

From source

git clone https://github.com/momenbasel/ConsoleMini.git
cd ConsoleMini
bash scripts/setup.sh        # installs deps + every supported emulator via Homebrew
npm run dev:electron         # Electron + Vite hot reload

Build a distributable yourself:

npm run package              # signed .app + .dmg in release/

Living-room kiosk mode

bash scripts/setup-kiosk.sh  # auto-launch at login + no sleep + Dock hidden

Controller support

Any controller exposed through the HTML5 Gamepad API works for menu navigation: DualShock 4, DualSense, Xbox, 8BitDo, etc. For in-game input, the underlying emulator owns the controller - pair it once over Bluetooth and every emulator picks it up.

Pad Action
D-pad / Left stick Navigate
A / Cross Confirm
B / Circle Back
Start Open menu
Select Toggle search

Source: src/lib/gamepad.ts.

Project layout

ConsoleMini/
  electron/              # Electron main + preload (Node side)
  src/                   # React UI (Vite, Tailwind, Framer Motion)
  scripts/
    install-emulators.sh # Homebrew installer for every supported emulator
    setup.sh             # one-shot dev bootstrap
    setup-kiosk.sh       # auto-launch + sleep disable for living-room mode
    gen-icon.sh          # SVG -> .icns + iconset
  config/consoles.json   # runtime overrides for binary paths/args
  assets/                # icon.svg, banner.svg
  build/                 # generated icon.icns, entitlements
  docs/                  # GitHub Pages landing site (SEO-tuned)
  marketing/             # launch copy for HN, Reddit, X, Product Hunt

FAQ

Does it ship ROMs or BIOS? No. Bring your own legally. ConsoleMini only indexes paths and launches the right emulator.

Will my DualShock / DualSense / Xbox / 8BitDo controller work? Yes for menu navigation. In-game input is handled by each emulator directly.

How is this different from OpenEmu / Pegasus / EmulationStation? OpenEmu does not cover modern PlayStation. RetroArch's menu is rough on a TV. Pegasus is heavier and Linux-leaning. ConsoleMini is purpose-built for the macOS / Mac mini → TV setup with native codesign, kiosk script, and per-system catalogue.

Does the PS4 emulator actually work? shadPS4 is upstream-experimental on macOS. ConsoleMini wires it up but title compatibility is thin today.

Codesign / notarization? Codesigned with Developer ID Application + Hardened Runtime. Notarization in flight - until then right-click → Open on first launch.

Mac mini Intel or M-series? Both. arm64 + x64 builds shipped. M-series recommended for PS3 / PS4.

License? MIT. See LICENSE.

Roadmap

  • Cover art scraper (LaunchBox / IGDB) with local cache
  • Per-game hours played + last-played sort
  • iCloud Drive cloud-save folder mapper
  • In-app RetroArch core installer
  • Themes (CRT scanline shader overlay, neon, minimal)
  • Phone-as-controller via QR pairing

Contributing

PRs welcome. See CONTRIBUTING.md. New systems are a one-file change in src/lib/emulators.ts and electron/consoles.ts.

Legal

Emulators install from upstream. You must legally own any game you load. ConsoleMini ships zero ROMs and zero BIOS files. PlayStation, PS1 - PS4, Nintendo, Sega trademarks belong to their respective owners. This project is not affiliated.

Related projects

DuckStation · PCSX2 · RPCS3 · shadPS4 · PPSSPP · RetroArch · mGBA · Flycast · Mupen64Plus · OpenEmu · Pegasus Frontend · EmulationStation


Keywords: mac mini console, mac mini emulator, mac mini retro, macos emulator launcher, big picture mac, playstation emulator mac, ps1 mac, ps2 mac, ps3 mac, ps4 mac, duckstation, pcsx2, rpcs3, shadps4, ppsspp, retroarch, mgba, flycast, mupen64plus, openemu alternative, pegasus alternative, emulationstation mac, retrogaming mac, apple silicon emulator, dualshock mac, dualsense mac, kiosk mac, living room mac, electron emulator frontend.