Merge branch 'feat/shadps4' of https://github.com/RetroDECK/RetroDECK into feat/shadps4

This commit is contained in:
XargonWan 2024-09-10 10:24:58 +09:00
commit 792d7dda36
3 changed files with 941 additions and 38 deletions

View file

@ -1099,50 +1099,942 @@
} }
] ]
}, },
"primehack": { "zip_compressable_extensions": [
"name": "PrimeHack", ".32x",
"description": "A fork of Dolphiin to enhance Metroid Prime experience", ".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",
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/", "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/",
"launch": "primehack-wrapper", "launch": "primehack-wrapper",
"launch-args": "-e $game", "launch-args": "-e $game",
"system": [ "system": [
"wii" "wii"
], ],
"properties": [ "properties": [
{ {
"ask_to_exit": true, "ask_to_exit": true,
"universal_dyn_input": true "universal_dyn_input": true
} }
] ]
}, },
"cemu": { "cemu": {
"description": "Wii U emulator", "description": "Wii U emulator",
"name": "Cemu", "name": "Cemu",
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/cemu/cemu-guide/", "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/cemu/cemu-guide/",
"system": "wiiu", "system": "wiiu",
"launch": "Cemu-wrapper", "launch": "Cemu-wrapper",
"launch-args": "-g $game", "launch-args": "-g $game",
"properties": [ "properties": [
{ {
"abxy_button": true, "abxy_button": true,
"multi_user_config_dir": "Cemu" "multi_user_config_dir": "Cemu"
} }
] ]
}, },
"xemu": { "xemu": {
"description": "xemu Xbox Emulator", "description": "xemu Xbox Emulator",
"name": "xemu", "name": "xemu",
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xemu/xemu-guide/", "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xemu/xemu-guide/",
"system": "xbox", "system": "xbox",
"launch": "xemu", "launch": "xemu",
"launch-args": "-dvd_path $game" "launch-args": "-dvd_path $game"
}, },
"es-de": { "shadps4": {
"description": "ES-DE Emulation Frontend", "description": "PS4 Emulator for Linux",
"name": "ES-DE", "name": "shadps4",
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_es_de/esde-guide/." "system": "ps4",
"launch": "shadps4-qt"
},
"es-de": {
"description": "ES-DE Emulation Frontend",
"name": "ES-DE",
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_es_de/esde-guide/."
, "launch": "es-de" , "launch": "es-de"
} }
},
"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"
},
"es-de": {
"description": "ES-DE Emulation Frontend",
"name": "ES-DE",
"launch": "es-de"
}
} }
} }

View file

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

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 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 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 if [[ "$component" =~ ^(ruffle|all)$ ]]; then
component_found="true" component_found="true"
log i "----------------------" log i "----------------------"