A cross-platform Flutter app for browsing RomM libraries, downloading games, and launching emulators with automatic save synchronization.
214
stars
492
commits
Dart
primary language
Sep 14, 2026
updated
All projects made with passion π
A cross-platform Flutter app for browsing your RomM library, downloading ROMs, and launching games directly in emulatorsβall from one intuitive interface.
Watch the Feature Walkthrough on YouTube
Join our Discord community to chat, get help, and be the first to test new releases!
The main menu showcasing the intuitive game card interface.
Detailed game view with metadata, screenshots, and quick actions.
Freegosy (Free as in "Free for all OS") is the successor to Wingosy. While Wingosy was focused on Windows, Freegosy is built from the ground up using Flutter to provide a unified frontend for all major platforms.
The original inspiration for these projects was Argosy, the native Android app for RomM built in Kotlin. Freegosy aims to bring that same native experience to desktop and beyond, ensuring a seamless, ease-of-use interface for accessing your RomM collection on any device.
Freegosy is a solo passion project β built and maintained in my spare time, with AI tools I pay for out of pocket. If it saves you time or makes your RomM setup better, a small contribution genuinely helps keep it going.
No pressure at all β the app is and will always be free.
.zip, .7z, .dmg, .tar.gz, .tar.xz, and .AppImage.saves/{Serial}/) supported alongside legacy memcards..gci (no more backup dumps or unrelated games).left_x+ / left_x-) for full analog stick and hat switch mapping.h0.1, h0.2, etc.) fully parsed for auto-mapping.Freegosy can run without opening a window β useful for scripting a launch/sync check, or driving it from an agent/CI. This is a new, actively-tested feature; feedback welcome.
freegosy.exe --headless list [--search=TERM] [--platform=SLUG_OR_ID] [--limit=N] [--json]
freegosy.exe --headless download (--game-id=ID | --name=TERM) [--all-files] [--json]
freegosy.exe --headless launch (--game-id=ID | --name=TERM) [--emulator=ID] [--core=ID] [--timeout=SECONDS] [--json]
freegosy.exe --headless interactive
freegosy.exe --headless (same as interactive)
list/download/launch accept --game-id (RomM game ID) or --name (best match by title; ambiguous matches are listed instead of guessing).launch waits for the emulator to exit, then runs the same save-push/backup pipeline as launching from the UI, and reports the result (pass/fail, sync status, backup path) as JSON with --json or human-readable text otherwise.--timeout force-terminates the emulator after N seconds instead of waiting for you to close it β handy for automated checks. Some emulators (e.g. MelonDS) manage the process internally until it exits, so the timeout only takes effect once a process handle becomes available.0 success, 1 launch/sync failed, 2 invalid arguments or game/config not found.| Emulator | Status | Notes |
|---|---|---|
| RetroArch | π’ Full | 197 cores supported. Per-platform core selection, per-game core override, searchable core browser. Tested: GBA (mGBA), SNES (Snes9x), NES (FCEUmm), N64 (mupen64Plus), NDS (melonDS), Dreamcast (Flycast), Mega Drive (Genesis Plus GX), PSP (PPSSPP), PS1 (PCSX ReARMed), Saturn (Mednafen), Arcade (FBNeo), DOS (DOSBox Pure). |
| DuckStation | π’ Full | PS1 .mcd memory card saves fully synced. |
| PPSSPP | π’ Full | PSP save data directory fully synced. |
| Ryujinx | π’ Full | Switch save directory fully synced (configurable Title ID mapping). |
| Eden | π’ Full | Switch save directory fully synced (configurable Title ID + profile). |
| PCSX2 | π’ Full | PS2 per-game folder saves (saves/{Serial}/) and legacy .mcd memcards both synced. |
| mGBA | π’ Full | GBA/GBC/GB .sav/.srm fully synced (standalone, outside RetroArch). |
| MelonDS | π‘ Partial | NDS save files synced (limited testing). |
| Dolphin | π‘ Partial | GC/Wii save files synced. |
| Cemu | π‘ Partial | Wii U β confirmed working on Windows, needs macOS/Linux testing. |
| Azahar | π’ Full | 3DS β confirmed working by @Ramza2k. |
| RPCS3 | π‘ Partial | PS3 β confirmed working on Windows, needs macOS/Linux testing. |
| Xenia | π‘ Partial | Xbox 360 β confirmed working on Windows, needs macOS/Linux testing. |
| Ares | π‘ Partial | Multi-system (GBA, SNES, N64, Genesis, PS1, MSX, etc.). PlayStation confirmed working on Windows β Ares bundles the memory card together with save-state files in a per-game .zip, now correctly unpacked/repacked on push and pull. Other systems still need real-world testing. |
| Windows Native | π‘ Partial | PC games β confirmed working on Windows. |
Per-OS Notes:
.app package structure. Ares save path: ~/Library/Application Support/ares/.portable.txt. RetroArch config file resolution via APPDATA. Ares portable (settings next to exe) or %LOCALAPPDATA%/ares/.~/.local/share/ares/.Help wanted β if you're using an emulator marked π΄ or π‘ and can confirm compatibility, please report your experience!
I am currently searching for testers on macOS, Windows, and Linux (Steam Deck) to help polish the experience.

Freegosy is built to complement RomM, a modern ROM manager. It connects to your RomM instance to provide a lightweight, portable way to access and play your games.
Freegosy provides a flake for Nix-based systems. Add it as an input in your flake:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
freegosy.url = "github:abduznik/Freegosy";
};
outputs = { self, nixpkgs, freegosy }: {
# Use in your configuration
};
}
Or run directly without installing:
nix run github:abduznik/Freegosy
Download the latest release for your platform from the Releases page:
.exe installer.dmg disk image.AppImage) or tarball (.tar.gz)Windows Defender false positive (v0.5.10 and later)
Windows Defender may flag
freegosy.exeasWacatac.B!ml. This is a false positive. Freegosy is fully open source β you can audit every line of code in this repository. The warning is triggered because the executable is not code-signed and new release hashes start with zero download history, which causes Microsoft's ML model to flag them automatically. The detection clears on its own as more users download the release. If you want to verify the file before running it, check that the SHA-256 hash matches the one listed on the Releases page.
Dart
95.6%
Python
1.8%
C++
1.1%
A cross-platform Flutter app for browsing RomM libraries, downloading games, and launching emulators with automatic save synchronization.
214
stars
492
commits
Dart
primary language
Sep 14, 2026
updated
All projects made with passion π
A cross-platform Flutter app for browsing your RomM library, downloading ROMs, and launching games directly in emulatorsβall from one intuitive interface.
Watch the Feature Walkthrough on YouTube
Join our Discord community to chat, get help, and be the first to test new releases!
The main menu showcasing the intuitive game card interface.
Detailed game view with metadata, screenshots, and quick actions.
Freegosy (Free as in "Free for all OS") is the successor to Wingosy. While Wingosy was focused on Windows, Freegosy is built from the ground up using Flutter to provide a unified frontend for all major platforms.
The original inspiration for these projects was Argosy, the native Android app for RomM built in Kotlin. Freegosy aims to bring that same native experience to desktop and beyond, ensuring a seamless, ease-of-use interface for accessing your RomM collection on any device.
Freegosy is a solo passion project β built and maintained in my spare time, with AI tools I pay for out of pocket. If it saves you time or makes your RomM setup better, a small contribution genuinely helps keep it going.
No pressure at all β the app is and will always be free.
.zip, .7z, .dmg, .tar.gz, .tar.xz, and .AppImage.saves/{Serial}/) supported alongside legacy memcards..gci (no more backup dumps or unrelated games).left_x+ / left_x-) for full analog stick and hat switch mapping.h0.1, h0.2, etc.) fully parsed for auto-mapping.Freegosy can run without opening a window β useful for scripting a launch/sync check, or driving it from an agent/CI. This is a new, actively-tested feature; feedback welcome.
freegosy.exe --headless list [--search=TERM] [--platform=SLUG_OR_ID] [--limit=N] [--json]
freegosy.exe --headless download (--game-id=ID | --name=TERM) [--all-files] [--json]
freegosy.exe --headless launch (--game-id=ID | --name=TERM) [--emulator=ID] [--core=ID] [--timeout=SECONDS] [--json]
freegosy.exe --headless interactive
freegosy.exe --headless (same as interactive)
list/download/launch accept --game-id (RomM game ID) or --name (best match by title; ambiguous matches are listed instead of guessing).launch waits for the emulator to exit, then runs the same save-push/backup pipeline as launching from the UI, and reports the result (pass/fail, sync status, backup path) as JSON with --json or human-readable text otherwise.--timeout force-terminates the emulator after N seconds instead of waiting for you to close it β handy for automated checks. Some emulators (e.g. MelonDS) manage the process internally until it exits, so the timeout only takes effect once a process handle becomes available.0 success, 1 launch/sync failed, 2 invalid arguments or game/config not found.| Emulator | Status | Notes |
|---|---|---|
| RetroArch | π’ Full | 197 cores supported. Per-platform core selection, per-game core override, searchable core browser. Tested: GBA (mGBA), SNES (Snes9x), NES (FCEUmm), N64 (mupen64Plus), NDS (melonDS), Dreamcast (Flycast), Mega Drive (Genesis Plus GX), PSP (PPSSPP), PS1 (PCSX ReARMed), Saturn (Mednafen), Arcade (FBNeo), DOS (DOSBox Pure). |
| DuckStation | π’ Full | PS1 .mcd memory card saves fully synced. |
| PPSSPP | π’ Full | PSP save data directory fully synced. |
| Ryujinx | π’ Full | Switch save directory fully synced (configurable Title ID mapping). |
| Eden | π’ Full | Switch save directory fully synced (configurable Title ID + profile). |
| PCSX2 | π’ Full | PS2 per-game folder saves (saves/{Serial}/) and legacy .mcd memcards both synced. |
| mGBA | π’ Full | GBA/GBC/GB .sav/.srm fully synced (standalone, outside RetroArch). |
| MelonDS | π‘ Partial | NDS save files synced (limited testing). |
| Dolphin | π‘ Partial | GC/Wii save files synced. |
| Cemu | π‘ Partial | Wii U β confirmed working on Windows, needs macOS/Linux testing. |
| Azahar | π’ Full | 3DS β confirmed working by @Ramza2k. |
| RPCS3 | π‘ Partial | PS3 β confirmed working on Windows, needs macOS/Linux testing. |
| Xenia | π‘ Partial | Xbox 360 β confirmed working on Windows, needs macOS/Linux testing. |
| Ares | π‘ Partial | Multi-system (GBA, SNES, N64, Genesis, PS1, MSX, etc.). PlayStation confirmed working on Windows β Ares bundles the memory card together with save-state files in a per-game .zip, now correctly unpacked/repacked on push and pull. Other systems still need real-world testing. |
| Windows Native | π‘ Partial | PC games β confirmed working on Windows. |
Per-OS Notes:
.app package structure. Ares save path: ~/Library/Application Support/ares/.portable.txt. RetroArch config file resolution via APPDATA. Ares portable (settings next to exe) or %LOCALAPPDATA%/ares/.~/.local/share/ares/.Help wanted β if you're using an emulator marked π΄ or π‘ and can confirm compatibility, please report your experience!
I am currently searching for testers on macOS, Windows, and Linux (Steam Deck) to help polish the experience.

Freegosy is built to complement RomM, a modern ROM manager. It connects to your RomM instance to provide a lightweight, portable way to access and play your games.
Freegosy provides a flake for Nix-based systems. Add it as an input in your flake:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
freegosy.url = "github:abduznik/Freegosy";
};
outputs = { self, nixpkgs, freegosy }: {
# Use in your configuration
};
}
Or run directly without installing:
nix run github:abduznik/Freegosy
Download the latest release for your platform from the Releases page:
.exe installer.dmg disk image.AppImage) or tarball (.tar.gz)Windows Defender false positive (v0.5.10 and later)
Windows Defender may flag
freegosy.exeasWacatac.B!ml. This is a false positive. Freegosy is fully open source β you can audit every line of code in this repository. The warning is triggered because the executable is not code-signed and new release hashes start with zero download history, which causes Microsoft's ML model to flag them automatically. The detection clears on its own as more users download the release. If you want to verify the file before running it, check that the SHA-256 hash matches the one listed on the Releases page.
Dart
95.6%
Python
1.8%
C++
1.1%