This commit is contained in:
XargonWan 2024-09-01 00:04:14 +00:00 committed by GitHub
commit 829dcb3c1a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 964 additions and 3 deletions

View file

@ -24,3 +24,7 @@ hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/re
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
hash^RETRODECKSHADPS4LATESTSTABLE^https://github.com/shadps4-emu/shadPS4/releases/latest/download/shadps4-linux-qt.zip
#This will replace RETRODECKSHADPS4LATESTURL with the URL of the latest artifact and RETRODECKSHADPS4LATESTSHA with its SHA256 hash.
#latestghaartifact^RETRODECKSHADPS4LATESTURL^RETRODECKSHADPS4LATESTSHA^https://github.com/shadps4-emu/shadPS4/actions/workflows/linux-qt.yml^shadps4-linux-qt

View file

@ -188,8 +188,44 @@ handle_thisrepo() {
/bin/sed -i 's^'"$placeholder"'^'"$current_repo_url"'^g' "$rd_manifest"
}
# New function to handle the latest artifact from GitHub Actions
handle_latestghaartifact() {
local placeholder_url="$1"
local placeholder_hash="$2"
local workflow_url="$3"
local artifact_name="$4"
echo "Fetching workflow runs from: $workflow_url"
workflow_runs_url=$(echo "$workflow_url" | sed 's/github.com/api.github.com\/repos/' | sed 's/actions\/workflows\/[^\/]*$/actions\/runs/')
local runs_data=$(curl -s "$workflow_runs_url")
local latest_run_url=$(echo "$runs_data" | jq -r ".workflow_runs[0].artifacts_url")
if [[ -z "$latest_run_url" ]]; then
echo "Error: No workflow runs found"
exit 1
fi
echo "Fetching artifacts from the latest run: $latest_run_url"
local artifacts_data=$(curl -s "$latest_run_url")
local artifact_url=$(echo "$artifacts_data" | jq -r ".artifacts[] | select(.name == \"$artifact_name\").archive_download_url")
if [[ -z "$artifact_url" ]]; then
echo "Error: No artifact found with name $artifact_name"
exit 1
fi
echo "Downloading the artifact to calculate the hash..."
local artifact_hash=$(curl -sL "$artifact_url" | sha256sum | cut -d ' ' -f1)
echo "Replacing placeholder $placeholder_url with artifact URL $artifact_url"
echo "Replacing placeholder $placeholder_hash with artifact hash $artifact_hash"
/bin/sed -i 's^'"$placeholder_url"'^'"$artifact_url"'^g' "$rd_manifest"
/bin/sed -i 's^'"$placeholder_hash"'^'"$artifact_hash"'^g' "$rd_manifest"
}
# Process the task list
while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
while IFS="^" read -r action placeholder url branch artifact_name || [[ -n "$action" ]]; do
if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
case "$action" in
"branch" ) handle_branch "$placeholder" ;;
@ -203,6 +239,7 @@ while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
"custom_command" ) handle_custom_command "$url" ;;
"url" ) handle_url "$placeholder" "$url" ;;
"THISREPO" ) handle_thisrepo "$placeholder" ;;
"latestghaartifact" ) handle_latestghaartifact "$placeholder" "$branch" "$url" "$artifact_name" ;;
esac
fi
done < "$automation_task_list"

View file

@ -1069,6 +1069,898 @@
}
]
},
"zip_compressable_extensions": [
".32x",
".68k",
".NDS",
".a26",
".a52",
".a78",
".abs",
".agb",
".atr",
".atx",
".bin",
".bml",
".bms",
".bs",
".bsx",
".cas",
".cdm",
".cgb",
".cof",
".col",
".dim",
".dmg",
".dx2",
".fds",
".fig",
".gb",
".gba",
".gbc",
".gd3",
".gd7",
".gen",
".gg",
".ipf",
".j64",
".jag",
".lnx",
".md",
".mdx",
".mgd",
".msa",
".nds",
".nes",
".ngc",
".o",
".pce",
".prg",
".rom",
".sfc",
".sg",
".sgb",
".sgd",
".smc",
".smd",
".sms",
".st",
".st",
".stx",
".swc",
".unf",
".unif",
".xex",
".xfd",
".z64"
],
"system": {
"3do": {
"name": "3DO Interactive Multiplayer"
},
"adam": {
"name": "Coleco Adam"
},
"amiga": {
"name": "Commodore Amiga"
},
"amiga1200": {
"name": "Commodore Amiga 1200"
},
"amiga600": {
"name": "Commodore Amiga 600"
},
"amigacd32": {
"name": "Commodore Amiga CD32"
},
"amstradcpc": {
"name": "Amstrad CPC"
},
"apple2": {
"name": "Apple II"
},
"apple2gs": {
"name": "Apple IIGS"
},
"arcade": {
"name": "Arcade"
},
"arcadia": {
"name": "Emerson Arcadia 2001"
},
"archimedes": {
"name": "Acorn Archimedes"
},
"arduboy": {
"name": "Arduboy Miniature Game System"
},
"astrocde": {
"name": "Bally Astrocade"
},
"atari2600": {
"name": "Atari 2600"
},
"atari5200": {
"name": "Atari 5200"
},
"atari7800": {
"name": "Atari 7800 ProSystem"
},
"atari800": {
"name": "Atari 800"
},
"atarijaguar": {
"name": "Atari Jaguar"
},
"atarilynx": {
"name": "Atari Lynx"
},
"atarist": {
"name": "Atari ST"
},
"atarixe": {
"name": "Atari XE"
},
"atomiswave": {
"name": "Sammy Corporation Atomiswave"
},
"bbcmicro": {
"name": "Acorn Computers BBC Micro"
},
"c64": {
"name": "Commodore 64"
},
"cdimono1": {
"name": "Philips CD-i"
},
"cdtv": {
"name": "Commodore CDTV"
},
"chailove": {
"name": "ChaiLove Game Engine"
},
"channelf": {
"name": "Fairchild Channel F"
},
"colecovision": {
"name": "Coleco ColecoVision"
},
"consolearcade": {
"name": "Console Arcade Systems"
},
"cps": {
"name": "Capcom Play System"
},
"cps1": {
"name": "Capcom Play System I"
},
"cps2": {
"name": "Capcom Play System II"
},
"cps3": {
"name": "Capcom Play System III"
},
"crvision": {
"name": "VTech CreatiVision"
},
"daphne": {
"name": "Daphne Arcade LaserDisc Emulator"
},
"desktop": {
"name": "Desktop Applications"
},
"doom": {
"name": "Doom"
},
"dos": {
"name": "DOS (PC)"
},
"dreamcast": {
"name": "Sega Dreamcast"
},
"dc": {
"name": "Sega Dreamcast"
},
"easyrpg": {
"name": "EasyRPG Game Engine"
},
"electron": {
"name": "Acorn Electron"
},
"emulators": {
"name": "Emulators"
},
"famicom": {
"name": "Nintendo Family Computer"
},
"fba": {
"name": "FinalBurn Alpha"
},
"fbneo": {
"name": "FinalBurn Neo"
},
"fds": {
"name": "Nintendo Famicom Disk System"
},
"fm7": {
"name": "Fujitsu FM-7"
},
"fmtowns": {
"name": "Fujitsu FM Towns"
},
"gamate": {
"name": "Bit Corporation Gamate"
},
"gameandwatch": {
"name": "Nintendo Game and Watch"
},
"gamecom": {
"name": "Tiger Electronics Game.com"
},
"gamegear": {
"name": "Sega Game Gear"
},
"gg": {
"name": "Sega Game Gear"
},
"gb": {
"name": "Nintendo Game Boy"
},
"gba": {
"name": "Nintendo Game Boy Advance"
},
"gbc": {
"name": "Nintendo Game Boy Color"
},
"gc": {
"name": "Nintendo GameCube"
},
"genesis": {
"name": "Sega Genesis"
},
"gmaster": {
"name": "Hartung Game Master"
},
"gx4000": {
"name": "Amstrad GX4000"
},
"intellivision": {
"name": "Mattel Electronics Intellivision"
},
"j2me": {
"name": "Java 2 Micro Edition (J2ME)"
},
"laserdisc": {
"name": "LaserDisc Games"
},
"lcdgames": {
"name": "LCD Handheld Games"
},
"lowresnx": {
"name": "LowRes NX Fantasy Console"
},
"lutris": {
"name": "Lutris Open Gaming Platform"
},
"lutro": {
"name": "Lutro Game Engine"
},
"macintosh": {
"name": "Apple Macintosh"
},
"mame": {
"name": "Multiple Arcade Machine Emulator"
},
"mastersystem": {
"name": "Sega Master System"
},
"megacd": {
"name": "Sega Mega-CD"
},
"megacdjp": {
"name": "Sega Mega-CD (Japan)"
},
"megadrive": {
"name": "Sega Mega Drive"
},
"megaduck": {
"name": "Creatronic Mega Duck"
},
"mess": {
"name": "Multi Emulator Super System"
},
"model2": {
"name": "Sega Model 2"
},
"moto": {
"name": "Thomson MO/TO Series"
},
"msx": {
"name": "MSX"
},
"msx1": {
"name": "MSX1"
},
"msx2": {
"name": "MSX2"
},
"msxturbor": {
"name": "MSX Turbo R"
},
"mugen": {
"name": "M.U.G.E.N Game Engine"
},
"multivision": {
"name": "Othello Multivision"
},
"n3ds": {
"name": "Nintendo 3DS"
},
"n64": {
"name": "Nintendo 64"
},
"n64dd": {
"name": "Nintendo 64DD"
},
"naomi": {
"name": "Sega NAOMI"
},
"naomi2": {
"name": "Sega NAOMI 2"
},
"naomigd": {
"name": "Sega NAOMI GD-ROM"
},
"nds": {
"name": "Nintendo DS"
},
"neogeo": {
"name": "SNK Neo Geo"
},
"neogeocd": {
"name": "SNK Neo Geo CD"
},
"neogeocdjp": {
"name": "SNK Neo Geo CD (Japan)"
},
"nes": {
"name": "Nintendo Entertainment System"
},
"ngp": {
"name": "SNK Neo Geo Pocket"
},
"ngpc": {
"name": "SNK Neo Geo Pocket Color"
},
"odyssey2": {
"name": "Magnavox Odyssey 2"
},
"openbor": {
"name": "OpenBOR Game Engine"
},
"palm": {
"name": "Palm OS"
},
"pc": {
"name": "IBM PC"
},
"pc88": {
"name": "NEC PC-8800 Series"
},
"pc98": {
"name": "NEC PC-9800 Series"
},
"pcarcade": {
"name": "PC Arcade Systems"
},
"pcengine": {
"name": "NEC PC Engine"
},
"pcenginecd": {
"name": "NEC PC Engine CD"
},
"pcfx": {
"name": "NEC PC-FX"
},
"pico8": {
"name": "PICO-8 Fantasy Console"
},
"plus4": {
"name": "Commodore Plus/4"
},
"pokemini": {
"name": "Nintendo Pokémon Mini"
},
"ports": {
"name": "Ports"
},
"ps2": {
"name": "Sony PlayStation 2"
},
"ps3": {
"name": "Sony PlayStation 3"
},
"ps4": {
"name": "Sony PlayStation 4"
},
"psp": {
"name": "Sony PlayStation Portable"
},
"psvita": {
"name": "Sony PlayStation Vita"
},
"psx": {
"name": "Sony PlayStation"
},
"pv1000": {
"name": "Casio PV-1000"
},
"quake": {
"name": "Quake"
},
"satellaview": {
"name": "Nintendo Satellaview"
},
"saturn": {
"name": "Sega Saturn"
},
"saturnjp": {
"name": "Sega Saturn (Japan)"
},
"scummvm": {
"name": "ScummVM Game Engine"
},
"scv": {
"name": "Epoch Super Cassette Vision"
},
"sega32x": {
"name": "Sega Mega Drive 32X"
},
"sega32xjp": {
"name": "Sega Super 32X (Japan)"
},
"sega32xna": {
"name": "Sega Genesis 32X"
},
"segacd": {
"name": "Sega CD"
},
"sfc": {
"name": "Nintendo SFC (Super Famicom)"
},
"sg-1000": {
"name": "Sega SG-1000"
},
"sgb": {
"name": "Nintendo Super Game Boy"
},
"snes": {
"name": "Nintendo SNES (Super Nintendo)"
},
"snesna": {
"name": "Nintendo SNES (Super Nintendo)"
},
"solarus": {
"name": "Solarus Game Engine"
},
"spectravideo": {
"name": "Spectravideo"
},
"stv": {
"name": "Sega Titan Video Game System"
},
"sufami": {
"name": "Bandai SuFami Turbo"
},
"supergrafx": {
"name": "NEC SuperGrafx"
},
"supervision": {
"name": "Watara Supervision"
},
"supracan": {
"name": "Funtech Super A'Can"
},
"switch": {
"name": "Nintendo Switch"
},
"tg-cd": {
"name": "NEC TurboGrafx-CD"
},
"tg16": {
"name": "NEC TurboGrafx-16"
},
"ti99": {
"name": "Texas Instruments TI-99"
},
"tic80": {
"name": "TIC-80 Fantasy Computer"
},
"to8": {
"name": "Thomson TO8"
},
"uzebox": {
"name": "Uzebox Open Source Console"
},
"vectrex": {
"name": "GCE Vectrex"
},
"vic20": {
"name": "Commodore VIC-20"
},
"videopac": {
"name": "Philips Videopac G7000"
},
"virtualboy": {
"name": "Nintendo Virtual Boy"
},
"vsmile": {
"name": "VTech V.Smile"
},
"wasm4": {
"name": "WASM-4 Fantasy Console"
},
"wii": {
"name": "Nintendo Wii"
},
"wiiu": {
"name": "Nintendo Wii U"
},
"windows": {
"name": "Microsoft Windows"
},
"windows3x": {
"name": "Microsoft Windows 3.x"
},
"windows9x": {
"name": "Microsoft Windows 9x"
},
"wonderswan": {
"name": "Bandai WonderSwan"
},
"wonderswancolor": {
"name": "Bandai WonderSwan Color"
},
"x1": {
"name": "Sharp X1"
},
"x68000": {
"name": "Sharp X68000"
},
"xbox": {
"name": "Microsoft Xbox"
},
"zx81": {
"name": "Sinclair ZX81"
},
"zxspectrum": {
"name": "Sinclair ZX Spectrum"
}
},
"emulator": {
"retroarch": {
"description": "RetroArch (Multi-emulator Frontend)",
"name": "RetroArch",
"launch": "retroarch",
"properties": [
{
"cheevos": true,
"cheevos_hardcore": true,
"quick_resume": true
}
],
"cores": {
"citra_libretro": {
"description": "Nintendo 3DS Libretro Core",
"name": "Citra",
"system": "n3ds",
"properties": [
{
"abxy_button": true
}
]
},
"mame_libretro": {
"description": "MAME: Multiple Arcade Machine Libretro Core",
"name": "MAME",
"system": "arcade",
"properties": [
{
"tate_mode": true
}
]
},
"desmume_libretro": {
"description": "DeSmuME Nintendo DS Libretro Core",
"name": "desmume",
"system": "nds",
"properties": [
{
"abxy_button": true
}
]
},
"melonds_libretro": {
"description": "MelonDS Nintendo DS Libretro Core",
"name": "melonds",
"system": "nds",
"properties": [
{
"abxy_button": true
}
]
},
"swanstation_libretro": {
"name": "SwanStation",
"description": "Swanstation Libretro Core",
"system": "psx",
"properties": [
{
"widescreen": true,
"borders": true
}
]
},
"picodrive_libetro": {
"name": "PicoDrive",
"description": "SEGA MS/MD/CD/32X Libretro Core",
"system": [
"ms",
"md",
"cd",
"32x"
],
"properties": [
{
"widescreen": true,
"borders": true,
"rewind": true
}
]
},
"genesisplusgx_libetro": {
"name": "Genesis Plus GX",
"description": "SEGA MS/GG/MD/CD Libretro Core",
"system": [
"ms",
"gg",
"mc",
"cd"
],
"properties": [
{
"widescreen": true,
"borders": true,
"rewind": true
}
]
},
"genesisplusgxwide_libetro": {
"name": "Genesis Plus GX Wide",
"description": "SEGA MS/GG/MD/CD Libretro Core for Wide Screen",
"system": [
"ms",
"gg",
"mc",
"cd"
],
"properties": [
{
"widescreen": true,
"rewind": true
}
]
},
"mupen64plus-next_libetro": {
"name": "Mupen64Plus-Next",
"description": "Nintendo 64 Libretro Core",
"system": "n64",
"properties": [
{
"widescreen": true,
"borders": true,
"abxy_button": true
}
]
},
"snes9x-current_libetro": {
"name": "Snes9x - Current",
"description": "Super Nintendo Libretro Core",
"system": "snes",
"properties": [
{
"widescreen": true,
"borders": true,
"rewind": true,
"abxy_button": true
}
]
},
"gambatte_libetro": {
"name": "Gambatte",
"description": "Game Boy/Color Libretro Core",
"system": [
"gb",
"gbc"
],
"properties": [
{
"borders": true,
"rewind": true,
"abxy_button": true
}
]
},
"mgba_libetro": {
"name": "mGBA",
"description": "Game Boy Advance Libretro Core",
"system": "gba",
"properties": [
{
"borders": true,
"rewind": true,
"abxy_button": true
}
]
}
}
},
"mame": {
"description": "MAME: Multiple Arcade Machine Emulator",
"name": "MAME",
"system": [
"arcade"
],
"launch": "mame"
},
"citra": {
"description": "Citra Nintendo 3DS Emulator (via Ponzu)",
"name": "Citra (via Ponzu)",
"system": "n3ds",
"ponzu": true,
"launch": "citra-qt",
"properties": [
{
"abxy_button": true,
"ask_to_exit": true
}
]
},
"melonds": {
"description": "MelonDS Nintendo DS Emulator",
"name": "melonds",
"system": "nds",
"launch": "MelonDS"
},
"pcsx2": {
"name": "pcsx2",
"description": "PCSX2 Play Station 2 Emulator",
"system": "ps2",
"launch": "pcsx2-qt",
"properties": [
{
"ask_to_exit": true,
"cheevos": true
}
]
},
"duckstation": {
"name": "Duckstation",
"description": "PlayStation Emulator",
"launch": "duckstation-qt",
"system": "psx",
"properties": [
{
"ask_to_exit": true,
"cheevos": true
}
]
},
"ppsspp": {
"name": "PPSSPP",
"description": "PPSSPP: PlayStation Portable Emulator",
"launch": "PPSSPPSDL",
"system": "psp",
"properties": [
{
"cheevos": true,
"cheevos_hardcore": true
}
]
},
"vita3k": {
"name": "Vita3k",
"description": "Vita3K PSVita Emulator",
"system": "psvita",
"launch": "Vita3K"
},
"rpcs3": {
"name": "RPCS3",
"description": "RPCS3 PlayStation 3 Emulator",
"system": "ps3",
"launch": "rpcs3",
"properties": [
{
"ask_to_exit": true
}
]
},
"ryujinx": {
"name": "Ryujinx",
"description": "Ryujinx Nintendo Switch Emulator",
"system": "switch",
"launch": "Ryujinx.sh"
},
"yuzu": {
"name": "Yuzu (via Ponzu)",
"description": "Yuzu Nintendo Switch Emulator (via Ponzu)",
"launch": "Yuzu",
"system": "switch",
"ponzu": true,
"abxy_button": true
},
"dolphin": {
"name": "Dolphin",
"description": "Dolphin Wii and GameCube Emulator",
"launch": "dolphin-emu-wrapper",
"system": [
"gc",
"wii"
],
"properties": [
{
"abxy_button": true,
"ask_to_exit": true,
"cheevos": true,
"cheevos_hardcore": true,
"universal_dyn_input": true
}
]
},
"primehack": {
"name": "PrimeHack",
"description": "A fork of Dolphiin to enhance Metroid Prime experience",
"launch": "primehack-wrapper",
"system": [
"wii"
],
"properties": [
{
"ask_to_exit": true,
"universal_dyn_input": true
}
]
},
"cemu": {
"description": "Wii U emulator",
"name": "Cemu",
"system": "wiiu",
"launch": "Cemu-wrapper",
"properties": [
{
"abxy_button": true,
"multi_user_config_dir": "Cemu"
}
]
},
"xemu": {
"description": "xemu Xbox Emulator",
"name": "xemu",
"system": "xbox",
"launch": "xemu"
},
"shadps4": {
"description": "PS4 Emulator for Linux",
"name": "shadps4",
"system": "ps4",
"launch": "shadps4-qt"
},
"es-de": {
"description": "ES-DE Emulation Frontend",
"name": "ES-DE",
"launch": "es-de"
}
},
"primehack": {
"name": "PrimeHack",
"description": "A fork of Dolphiin to enhance Metroid Prime experience",

View file

@ -433,6 +433,7 @@ post_update() {
# Placeholder for version 0.9.0b
set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch"
prepare_component "reset" "shadps4"
prepare_component "reset" "ruffle"
# TODO: check this

View file

@ -857,6 +857,16 @@ prepare_component() {
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi
if [[ "$component" =~ ^(gzdoom|all)$ ]]; then
component_found="true"
# This is just a placeholder script to test the emulator's flow
log i "----------------------"
log i "Prepearing SHADPS4"
log i "----------------------"
# TODO: plceholder
fi
if [[ "$component" =~ ^(ruffle|all)$ ]]; then
component_found="true"
log i "----------------------"

View file

@ -524,6 +524,21 @@ modules:
url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
sha256: RETRODECKMAMELATEST
# SHADPS4
- name: shadps4
buildsystem: simple
build-commands:
- chmod +x *.AppImage
- ./*.AppImage --appimage-extract
- mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
- mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}/"
sources:
- type: archive
url: https://github.com/shadps4-emu/shadPS4/releases/latest/download/shadps4-linux-qt.zip
sha256: RETRODECKSHADPS4LATESTSTABLE
# ES-DE
- name: ES-DE
@ -536,8 +551,10 @@ modules:
- chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- type: archive
url: https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
sha256: RETRODECKESDELATEST
url: https://github.com/RetroDECK/ES-DE/releases/download/feat%2Fshadps4-200824.04/RetroDECK-ES-DE-Artifact.tar.gz
sha256: 3aa0334b4542ca4ca36c15f8b583d3c0075a7a894d765cbb8da1670a5a1f637f
#url: https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
#sha256: RETRODECKESDELATEST
- name: retrodeck-theme
buildsystem: simple