-
-
Notifications
You must be signed in to change notification settings - Fork 14
commit cf459c7
abduznik edited this page May 23, 2026
·
1 revision
Commit: cf459c72084cd5cb584714b1aabb4519e21cf3e6
Author: Yan
Date: 2026-04-11
Why: Routine maintenance, version bumps, or tooling changes.
.github/workflows/release.yml | 104 +++++++++++++++++++++++++++++++++++-
README.md | 34 ++++++------
agent.md | 2 +-
lib/ui/screens/settings_screen.dart | 2 +-
pubspec.yaml | 2 +-
5 files changed, 122 insertions(+), 22 deletions(-)
.github/workflows/release.ymlREADME.mdagent.mdlib/ui/screens/settings_screen.dartpubspec.yaml
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 89170cd..2c2d0d3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -35,9 +35,99 @@ jobs:
name: windows-release
path: freegosy-windows.zip
+ build-macos:
+ name: Build macOS
+ runs-on: macos-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Set up Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ channel: stable
+ cache: true
+
+ - name: Install dependencies
+ run: flutter pub get
+
+ - name: Build macOS
+ run: flutter build macos --release
+
+ - name: Archive macOS build
+ run: |
+ cd build/macos/Build/Products/Release
+ zip -r ../../../../../freegosy-macos.zip Freegosy.app
+
+ - name: Upload macOS artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: macos-release
+ path: freegosy-macos.zip
+
+ build-linux:
+ name: Build Linux (AppImage)
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
+
+ - name: Set up Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ channel: stable
+ cache: true
+
+ - name: Install AppImageBuilder
+ run: |
+ sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
+ sudo chmod +x /usr/local/bin/appimagetool
+
+ - name: Build Linux
+ run: |
+ flutter pub get
+ flutter build linux --release
+
+ - name: Prepare AppDir
+ run: |
+ mkdir -p AppDir/usr/bin
+ mkdir -p AppDir/usr/share/applications
+ mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps
+
+ cp -r build/linux/x64/release/bundle/* AppDir/usr/bin/
+
+ # Create Desktop Entry
+ cat > AppDir/usr/share/applications/freegosy.desktop <<EOF
+ [Desktop Entry]
+ Name=Freegosy
+ Exec=freegosy
+ Icon=freegosy
+ Type=Application
+ Categories=Game;
+ EOF
+
+ # Use placeholder icon (or copy from assets if available)
+ cp web/icons/Icon-192.png AppDir/usr/share/icons/hicolor/256x256/apps/freegosy.png
+ cp web/icons/Icon-192.png AppDir/freegosy.png
+
+ - name: Build AppImage
+ run: |
+ ARCH=x86_64 /usr/local/bin/appimagetool AppDir Freegosy-x86_64.AppImage
+
+ - name: Upload Linux artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: linux-release
+ path: Freegosy-x86_64.AppImage
+
release:
name: Create GitHub Release
- needs: [build-windows]
+ needs: [build-windows, build-macos, build-linux]
runs-on: ubuntu-latest
permissions:
contents: write
@@ -52,7 +142,17 @@ jobs:
with:
files: |
freegosy-windows.zip
+ freegosy-macos.zip
+ Freegosy-x86_64.AppImage
body: |
- See CHANGELOG for details.
+ # Freegosy v0.3.0
+
+ ## New Features
+ - **Native Linux Support**: Added beta support for Linux and Steam Deck (EmuDeck).
+ - **EmuDeck Integration**: Automated path discovery for ROMs, emulators, and saves on Steam Deck.
+ - **BIOS Management**: Download BIOS files directly from RomM.
+ - **Enhanced RPCS3 Support**: Choose between ARM64 and x64 architectures on macOS.
+ - **Interactive Gallery**: New screenshot viewer with zoom and swipe support.
+ - **Stability**: Numerous bug fixes and performance improvements.
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index 840919c..638eaa5 100644
--- a/README.md
+++ b/README.md
@@ -23,32 +23,32 @@ Freegosy is a solo passion project — built and maintained in my spare time, wi
No pressure at all — the app is and will always be free.
-## Current Features (v0.2.x)
+## Current Features (v0.3.x)
-- **Native Multi-Platform Support**: Robust implementation for **macOS** (ARM64/Intel) and **Windows**, with deep integration for local file systems.
+- **Native Multi-Platform Support**: Full support for **macOS** (ARM64/Intel), **Windows**, and **Linux** (including **Steam Deck/EmuDeck** integration).
- **RomM Integration**:
- - Browse and filter your entire library with server-side pagination (50 games at a time).
+ - Browse and filter your entire library with server-side pagination.
- Download ROMs directly via HTTP with real-time progress tracking.
- - **New**: Personal game properties support (rating, status, completion).
+ - Personal game properties support (rating, status, completion).
- **Advanced Emulator Management**:
- Download, update, and uninstall emulators directly from Settings.
- - Automatic extraction of `.zip`, `.7z`, `.dmg`, `.tar.gz`, and `.tar.xz`.
- - Smart `.app` bundle detection and canonical renaming on macOS.
-- **Save Sync**: Bidirectional local-to-cloud save synchronization with RomM, featuring cross-platform path resolution and automated backups.
+ - Automatic extraction of `.zip`, `.7z`, `.dmg`, `.tar.gz`, `.tar.xz`, and `.AppImage`.
+ - Smart binary detection and canonical naming across all platforms.
+ - **New**: Dynamic architecture selection for RPCS3 on macOS (ARM64 vs x64).
+- **BIOS Management**: Fetch and download BIOS files directly from RomM and automatically place them in the correct directory for each emulator.
+- **Save Sync**: Bidirectional local-to-cloud save synchronization with RomM, featuring cross-platform path resolution and automated backups. Optimized for EmuDeck's platform-specific save structure.
- **Refined UI/UX**:
- - **Game Cards**: Visual-first interface with detailed metadata and screenshots.
+ - **Visual-First Grid**: Interactive game cards with detailed metadata.
- **Recently Played**: Quick access to your latest games.
- - **Multi-Disc Support**: Integrated picker for games with multiple files.
- - **Centralized Error Handling**: Improved stability with user-friendly notifications.
+ - **Screenshot Gallery**: Interactive, zoomable screenshot viewer.
+ - **Multi-Disc Support**: Integrated picker for multi-file games.
-## Roadmap: Version 0.3.0 (Coming Soon)
+## Roadmap: Version 0.4.0 (Upcoming)
-- **BIOS Management**: Ability to fetch and download BIOS files directly from RomM and automatically place them in the correct directory for each emulator.
-- **Linux Support (Beta)**: Starting with a skeleton/shell for **Steam Deck (EmuDeck)** integration.
-- **Enhanced macOS Support**: Further refinements to the native implementation and bug fixes.
-- **Save Sync Improvements**: Polishing the push/pull logic for edge cases.
-- **Better Screenshot Handling**: Improved performance and display of game gallery images.
-- **API v4.8.2 Readiness**: Shells are already in place for updating game data like completion status and progression bars; full functionality will be unlocked with the RomM 4.8.2 API release.
+- **Android Support**: Bringing the Freegosy experience to mobile devices.
+- **Cloud Configuration**: Syncing app settings across multiple devices.
+- **Better Offline Mode**: Improved metadata caching for browsing without a connection.
+- **API v4.8.2 Readiness**: Full support for progression bars and advanced completion tracking as RomM updates.
## Calling All Testers!
I am currently searching for testers on **macOS** and **Windows** to help polish the experience.
diff --git a/agent.md b/agent.md
index 2f065d8..ea7571f 100644
--- a/agent.md
+++ b/agent.md
@@ -58,7 +58,7 @@ Freegosy is a cross-platform Flutter app for browsing a RomM library, downloadin
- `lib/core/downloader/download_service.dart` — Stream-based HTTP ROM downloader.
### Core — Storage
-- `lib/core/storage/directory_service.dart` — Manages paths. Added getAllDownloadedFileNamesByPlatform() for cache mapping.
+- `lib/core/storage/directory_service.dart` — Manages paths. Added Linux Sync Presets (Default/EmuDeck) and EmuDeck root path management.
- `lib/core/storage/download_cache_service.dart` — Manages and persists a set of downloaded filenames mapped by platform slug. Uses SharedPreferences.
### Core — Windows
diff --git a/lib/ui/screens/settings_screen.dart b/lib/ui/screens/settings_screen.dart
index 4105015..b791596 100644
--- a/lib/ui/screens/settings_screen.dart
+++ b/lib/ui/screens/settings_screen.dart
@@ -495,7 +495,7 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
showLicensePage(
context: context,
applicationName: 'Freegosy',
- applicationVersion: '0.2.2',
+ applicationVersion: '0.3.0',
applicationLegalese: '© 2026 Freegosy Contributors.\nRedistributes 7-Zip binaries under LGPL.',
);
},
diff --git a/pubspec.yaml b/pubspec.yaml
index 5b02d04..08f829c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
-version: 0.2.2+1
+version: 0.3.0+1
environment:
sdk: ^3.11.1