From 4062ebbac35c8246c9f490e45db75fbc8fe52fc7 Mon Sep 17 00:00:00 2001 From: Richard Macias Date: Wed, 26 Nov 2025 14:24:09 -0600 Subject: [PATCH] add DS file support --- Makefile | 9 +- README.md | 113 +++++++++--------- ...ium-emulation-pack-dual-screen-latest.json | 1 + pages/table.md | 113 +++++++++--------- scripts/generate-table.py | 30 ++++- scripts/minify-json.py | 55 +++++++-- src/applications.json | 32 ++--- 7 files changed, 201 insertions(+), 152 deletions(-) create mode 100644 obtainium-emulation-pack-dual-screen-latest.json diff --git a/Makefile b/Makefile index 7f3c31f..88e3ec0 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,16 @@ help: # Show help for each of the makefile recipes. @grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; \ do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done -release: readme minify # Run all Make targets related to cutting a release. +release: readme minify minify-dual-screen # Run all Make targets related to cutting a release. links: # Generate links for all obtainium packages @python scripts/generate-obtainium-urls.py src/applications.json > scripts/links.md -minify: # Obtainium historically expects a minified json. This allows humans to edit the readable and easily update the minified one. - @python scripts/minify-json.py src/applications.json obtainium-emulation-pack-latest.json +minify: # Generate standard release JSON + @python scripts/minify-json.py src/applications.json obtainium-emulation-pack-latest.json --variant standard + +minify-dual-screen: # Generate dual screen release JSON + @python scripts/minify-json.py src/applications.json obtainium-emulation-pack-dual-screen-latest.json --variant dual-screen table: # Generate a table of obtainium links for the README. @python scripts/generate-table.py src/applications.json ./pages/table.md diff --git a/README.md b/README.md index 8e70c80..9cc8464 100644 --- a/README.md +++ b/README.md @@ -37,81 +37,80 @@ Download and Install the [latest release of Obtainium](https://github.com/ImranR ### Dual Screen -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| Azahar | Add to Obtainium! | ❌ | -| Cemu | Add to Obtainium! | ❌ | -| MelonDS | Add to Obtainium! | ❌ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| Cemu | Add to Obtainium! | ❌ | ✅ | +| MelonDS | Add to Obtainium! | ❌ | ✅ | ### Emulator -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| ARMSX2 | Add to Obtainium! | ✅ | -| Azahar | Add to Obtainium! | ✅ | -| Cemu | Add to Obtainium! | ✅ | -| Citra MMJ | Add to Obtainium! | ✅ | -| Citron | Add to Obtainium! | ✅ | -| Citron Nightly | Add to Obtainium! | ❌ | -| Dolphin Emulator | Add to Obtainium! | ✅ | -| Dolphin Emulator (Dev build) | Add to Obtainium! | ❌ | -| Dolphin-MMJR2-VBI | Add to Obtainium! | ❌ | -| DuckStation (Beta) | Add to Obtainium! | ✅ | -| Eden | Add to Obtainium! | ✅ | -| Eden Nightly | Add to Obtainium! | ❌ | -| Flycast | Add to Obtainium! | ✅ | -| Kenji-NX | Add to Obtainium! | ❌ | -| MelonDS | Add to Obtainium! | ✅ | -| MelonDS Nightly | Add to Obtainium! | ❌ | -| NetherSX2-Classic | Add to Obtainium! | ✅ | -| NetherSX2-Patch | Add to Obtainium! | ❌ | -| PPSSPP | Add to Obtainium! | ✅ | -| RPCSX | Add to Obtainium! | ✅ | -| RetroArch (AArch64) | Add to Obtainium! | ✅ | -| RetroArch Nightly (AArch64) | Add to Obtainium! | ❌ | -| ScummVM | Add to Obtainium! | ✅ | -| Vita3K | Add to Obtainium! | ✅ | -| Vita3K ZX | Add to Obtainium! | ✅ | -| aPS3e | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| ARMSX2 | Add to Obtainium! | ✅ | ✅ | +| Azahar | Add to Obtainium! | ✅ | ✅ | +| Cemu | Add to Obtainium! | ✅ | ❌ | +| Citra MMJ | Add to Obtainium! | ✅ | ✅ | +| Citron | Add to Obtainium! | ✅ | ✅ | +| Citron Nightly | Add to Obtainium! | ❌ | ❌ | +| Dolphin Emulator | Add to Obtainium! | ✅ | ✅ | +| Dolphin Emulator (Dev build) | Add to Obtainium! | ❌ | ❌ | +| Dolphin-MMJR2-VBI | Add to Obtainium! | ❌ | ❌ | +| DuckStation (Beta) | Add to Obtainium! | ✅ | ✅ | +| Eden | Add to Obtainium! | ✅ | ✅ | +| Eden Nightly | Add to Obtainium! | ❌ | ❌ | +| Flycast | Add to Obtainium! | ✅ | ✅ | +| Kenji-NX | Add to Obtainium! | ❌ | ❌ | +| MelonDS | Add to Obtainium! | ✅ | ❌ | +| MelonDS Nightly | Add to Obtainium! | ❌ | ❌ | +| NetherSX2-Classic | Add to Obtainium! | ✅ | ✅ | +| NetherSX2-Patch | Add to Obtainium! | ❌ | ❌ | +| PPSSPP | Add to Obtainium! | ✅ | ✅ | +| RPCSX | Add to Obtainium! | ✅ | ✅ | +| RetroArch (AArch64) | Add to Obtainium! | ✅ | ✅ | +| RetroArch Nightly (AArch64) | Add to Obtainium! | ❌ | ❌ | +| ScummVM | Add to Obtainium! | ✅ | ✅ | +| Vita3K | Add to Obtainium! | ✅ | ✅ | +| Vita3K ZX | Add to Obtainium! | ✅ | ✅ | +| aPS3e | Add to Obtainium! | ✅ | ✅ | ### Frontend -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| Daijishō | Add to Obtainium! | ✅ | -| Pegasus | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| Daijishō | Add to Obtainium! | ✅ | ✅ | +| Pegasus | Add to Obtainium! | ✅ | ✅ | ### PC Emulation -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| GameHub Lite | Add to Obtainium! | ✅ | -| GameNative | Add to Obtainium! | ✅ | -| Winlator | Add to Obtainium! | ✅ | -| Winlator CMod | Add to Obtainium! | ✅ | -| Winlator-Ludashi | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| GameHub Lite | Add to Obtainium! | ✅ | ✅ | +| GameNative | Add to Obtainium! | ✅ | ✅ | +| Winlator | Add to Obtainium! | ✅ | ✅ | +| Winlator CMod | Add to Obtainium! | ✅ | ✅ | +| Winlator-Ludashi | Add to Obtainium! | ✅ | ✅ | ### Streaming -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| Artemis | Add to Obtainium! | ✅ | -| Moonlight | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| Artemis | Add to Obtainium! | ✅ | ✅ | +| Moonlight | Add to Obtainium! | ✅ | ✅ | ### Track Only -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| AdrenoToolsDrivers | Add to Obtainium! | ✅ | -| Obtainium Emulation Pack | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| AdrenoToolsDrivers | Add to Obtainium! | ✅ | ✅ | +| Obtainium Emulation Pack | Add to Obtainium! | ✅ | ✅ | ### Utilities -| Application Name | Add to Obtainium | Included in export json? | -|------------------|------------------|---------------------------| -| ES-DE Android Apps | Add to Obtainium! | ✅ | -| OdinTools | Add to Obtainium! | ✅ | -| Syncthing-Fork | Add to Obtainium! | ✅ | +| Application Name | Add to Obtainium | Included in export json? | Included in DS json? | +|------------------|------------------|---------------------------|----------------------| +| ES-DE Android Apps | Add to Obtainium! | ✅ | ✅ | +| OdinTools | Add to Obtainium! | ✅ | ✅ | +| Syncthing-Fork | Add to Obtainium! | ✅ | ✅ | ## FAQ diff --git a/obtainium-emulation-pack-dual-screen-latest.json b/obtainium-emulation-pack-dual-screen-latest.json new file mode 100644 index 0000000..1746ef9 --- /dev/null +++ b/obtainium-emulation-pack-dual-screen-latest.json @@ -0,0 +1 @@ +{"apps":[{"id":"aenu.aps3e","url":"https://github.com/aenu1/aps3e","author":"aenu1","name":"aPS3e","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"sortMethodChoice\":\"date\",\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":true,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false,\"includeZips\":false,\"zippedApkFilterRegEx\":\"\"}","categories":["Emulator"],"overrideSource":"GitHub","allowIdChange":false},{"id":"io.github.lime3ds.android","url":"https://github.com/azahar-emu/azahar","author":"azahar-emu","name":"Azahar","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"sortMethodChoice\":\"date\",\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":true,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"GitHub"},{"id":"org.citra.emu","url":"https://github.com/weihuoya/citra","author":"weihuoya","name":"Citra","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":false,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"sortMethodChoice\":\"date\",\"useLatestAssetDateAsReleaseDate\":false,\"releaseTitleAsVersion\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":false,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"Citra MMJ\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false,\"includeZips\":false,\"zippedApkFilterRegEx\":\"\"}","categories":["Emulator"],"overrideSource":"GitHub","allowIdChange":false},{"id":"org.citron.citron_emu","url":"https://git.citron-emu.org/Citron/Emulator","author":"citron","name":"Citron","preferredApkIndex":0,"additionalSettings":"{\"includePrereleases\":true,\"fallbackToOlderReleases\":true,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":false,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"app-mainline-release\\\\.apk$\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"Codeberg","allowIdChange":false},{"id":"org.dolphinemu.dolphinemu","url":"https://dolphin-emu.org/download/?ref=btn","author":"dolphin-emu.org","name":"Dolphin Emulator","preferredApkIndex":0,"additionalSettings":"{\"intermediateLink\":[],\"customLinkFilterRegex\":\"https:\\\\/\\\\/dl.dolphin-emu.org\\\\/releases.+dolphin.+.apk\",\"filterByLinkText\":false,\"skipSort\":false,\"reverseSort\":false,\"sortByLastLinkSegment\":true,\"versionExtractWholePage\":false,\"requestHeader\":[{\"requestHeader\":\"User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36\"}],\"defaultPseudoVersioningMethod\":\"partialAPKHash\",\"trackOnly\":false,\"versionExtractionRegEx\":\"/releases/.+/dolphin-(.+).apk\",\"matchGroupToUse\":\"$1\",\"versionDetection\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"\",\"invertAPKFilter\":false,\"autoApkFilterByArch\":true,\"appName\":\"Dolphin Emulator\",\"appAuthor\":\"\",\"shizukuPretendToBeGooglePlay\":false,\"allowInsecure\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"\",\"refreshBeforeDownload\":false}","categories":["Emulator"],"overrideSource":"HTML"},{"id":"com.github.stenzek.duckstation","url":"https://duckstation.rmacias.workers.dev","author":"downloads.duckstation.org","name":"DuckStation (Beta)","preferredApkIndex":0,"additionalSettings":"{\"intermediateLink\":[],\"customLinkFilterRegex\":\"https://downloads.duckstation.org/android/duckstation-(beta|android).apk\",\"filterByLinkText\":true,\"skipSort\":false,\"reverseSort\":false,\"sortByLastLinkSegment\":false,\"versionExtractWholePage\":true,\"requestHeader\":[{\"requestHeader\":\"User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36\"}],\"defaultPseudoVersioningMethod\":\"partialAPKHash\",\"trackOnly\":false,\"versionExtractionRegEx\":\"