-
-
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