diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml
index 69da667..e53d089 100644
--- a/.github/workflows/action.yml
+++ b/.github/workflows/action.yml
@@ -2,7 +2,7 @@ name: 'Build'
on:
push:
- branches: [ master ]
+ branches: [ master, dev ]
schedule:
- cron: "0 0 * * *"
diff --git a/.gitignore b/.gitignore
index a6a87f3..1a02be2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,22 @@
requirements
-debug.log
\ No newline at end of file
+debug.log
+assets/*
+*.dll
+retroarch*
+assets/
+autoconfig/
+bearer/
+database/
+filters/
+iconengines/
+imageformats/
+info/
+overlays/
+platforms/
+saves/
+screenshots/
+shaders/
+states/
+styles
+system/
+qt.conf
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3b66410
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "git.ignoreLimitWarning": true
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index f0afe44..8388ac9 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,18 @@
-EmulationStation configured for Windows 10
+EmulationStation configured for Windows
======
![Script working](https://github.com/Francommit/win10_emulation_station/workflows/Build/badge.svg)
-An auto-installer to set up Emulation Station correctly on a 64-bit version of Windows 10.
+An auto-installer to set up Emulation Station correctly on a 64-bit version of Windows 10/11
+
Features
------
- Uses an up to date version of Emulation Station from the Raspberry Pi branch
- Auto populates emulators with public domain roms
+- Adds exclusive Windows only Emulators and Themes for the Switch, Wii-U and PS3
- Auto installs a popular theme with support for adding 'Favorites'
- Adds multiple useful shortcuts to the user's Desktop
- Adds in a game content scraper which lives in (run %UserProfile%\\.emulationstation\roms\scraper.exe)
@@ -33,14 +35,15 @@ INFO: Setup completed
Troubleshooting
------
- If the controller is not working in game, configure Input in Retroarch (%UserProfile%\\.emulationstation\systems\retroarch\retroarch.exe)
-- PSX and PS2 Homebrew Games won't load unless you acquire the bios's and add them to the bios folder (%UserProfile%\\.emulationstation\systems\epsxe\bios and %UserProfile%\\.emulationstation\systems\pcsx2\bios)
-- PSX and PS2 also require manual configuration for controllers (%UserProfile%\\.emulationstation\systems\epsxe\ePSXe.exe and %UserProfile%\\.emulationstation\systems\pcsx2\pcsx2.exe)
+- PSX, PS2 and PS3 Homebrew Games won't load unless you acquire the bios's and add them to the bios folder (%UserProfile%\\.emulationstation\systems\epsxe\bios and %UserProfile%\\.emulationstation\systems\pcsx2\bios)
+- PSX, PS2 and PS3 also require manual configuration for controllers (%UserProfile%\\.emulationstation\systems\epsxe\ePSXe.exe and %UserProfile%\\.emulationstation\systems\pcsx2\pcsx2.exe and %UserProfile%\\scoop\apps\rpcs3\current)
- If the script fails for whatever reason delete the contents of %UserProfile%\\.emulationstation and try again.
- Emulation Station may crash when you return to it from a external progam, ensure your graphics drivers are up to date.
- Launching a Retroarch rom may return you to ES, you're probably on a 32-bit verison of Windows and need to acquire seperate cores.
- Powershell commands may fail, ensure your Powershell session is in Admin mode.
- If Powershell complains about syntax you're probably somehow running a Powershell version lower than 5. Run 'choco install powershell -y' to update.
- If you are using Xbox controllers and having trouble setting the guide button as hotkey, locate the file (%UserProfile%\\.emulationstation\es_input.cfg and change the line for hotkeyenable to ``````
+- The script is now re-runnable, so if anything fails, re-run it and it'll pick itself back up if your internet has died half-way through
- If you are unable to run script from context menu (right mouse button), revert default "Open with" to Notepad
#### Windowed Mode Execution:
diff --git a/download_list.json b/download_list.json
index 911bccf..8cad562 100644
--- a/download_list.json
+++ b/download_list.json
@@ -22,7 +22,7 @@
},
{
"file": "RetroArch.7z",
- "url": "https://buildbot.libretro.com/stable/1.9.0/windows/x86_64/RetroArch.7z"
+ "url": "https://buildbot.libretro.com/stable/1.9.6/windows/x86_64/RetroArch.7z"
},
{
"file": "assimilate_full.zip",
@@ -123,6 +123,10 @@
{
"file": "C4.vpk",
"url": "https://dl.coolatoms.org/vitadb/C4.vpk"
+ },
+ {
+ "file": "UP0001-THATOPONG_00-0000000000000000-A0100-V0100-RE.pkg",
+ "url": "https://www.psx-place.com/resources/that-other-pong.479/download?version=645"
}
],
"releases": [
@@ -135,8 +139,8 @@
"repo": "Francommit/emulationstation"
},
{
- "file": "recalbox-backport-v2.1.zip",
- "repo": "fonic/recalbox-backport"
+ "file": "recalbox-backport-v2.2.zip",
+ "repo": "Francommit/recalbox-backport"
},
{
"file": "ccleste.3dsx",
@@ -149,6 +153,10 @@
{
"file": "windows-latest.zip",
"repo": "Vita3K/Vita3K"
+ },
+ {
+ "file": "xemu-win-release.zip",
+ "repo": "mborgerson/xemu"
}
],
"other_downloads": [
diff --git a/prepare.ps1 b/prepare.ps1
index 0bf6c5a..61dc208 100644
--- a/prepare.ps1
+++ b/prepare.ps1
@@ -8,7 +8,7 @@ function DownloadFiles {
$url = $_.url
$file = $_.file
- $output = "$requirementsFolder\$file"
+ $output = "$requirementsFolder\$file"
if(![System.IO.File]::Exists($output)){
@@ -68,8 +68,6 @@ function GithubReleaseFiles {
Write-Host $file "INFO: Already exists...Skipping download."
}
- Get-ChildItem $requirementsFolder
-
}
}
@@ -108,10 +106,12 @@ Write-Host "INFO: Installing Citra Nightly"
scoop install citra-nightly
scoop install ppsspp
scoop install yuzu
+scoop install rpcs3
$citraInstallDir = "$env:userprofile\scoop\apps\citra-nightly\current"
$ppssppInstallDir = "$env:userprofile\scoop\apps\ppsspp\current"
$yuzuInstallDir = "$env:userprofile\scoop\apps\yuzu\current"
+$rpcs3InstallDir = "$env:userprofile\scoop\apps\rpcs3\current"
choco install 7zip --no-progress -y | Out-Null
choco install dolphin --pre --no-progress -y | Out-Null
@@ -125,13 +125,14 @@ DownloadFiles("other_downloads")
GithubReleaseFiles
# Install Emulation Station
+Write-Host "INFO: Starting Emulation station to generate config"
Start-Process "$requirementsFolder\emulationstation_win32_latest.exe" -ArgumentList "/S" -Wait
# Generate Emulation Station config file
& "${env:ProgramFiles(x86)}\EmulationStation\emulationstation.exe"
while (!(Test-Path "$env:userprofile\.emulationstation\es_systems.cfg")) {
Write-Host "INFO: Checking for config file..."
- Start-Sleep 5
+ Start-Sleep 10
}
Write-Host "INFO: Config file generated"
Stop-Process -Name "emulationstation"
@@ -142,7 +143,11 @@ $coresPath = "$retroArchPath\cores"
$retroArchBinary = "$requirementsFolder\RetroArch.7z"
if(Test-Path $retroArchBinary){
New-Item -ItemType Directory -Force -Path $retroArchPath | Out-Null
- Expand-Archive -Path $retroArchBinary -Destination $retroArchPath | Out-Null
+ Expand-Archive -Path $retroArchBinary -Destination . | Out-Null
+ # TO-DO - add an Out-Null when this has been tested
+ Copy-Item -Path RetroArch-Win64\* -Destination $retroArchPath -recurse -Force
+ # New path - $retroArchPath\RetroArch-Win64
+
} else {
Write-Host "ERROR: $retroArchBinary not found."
exit -1
@@ -343,7 +348,7 @@ $pspPath = "$romPath\psp"
$pspRom = "$requirementsFolder\cube.elf"
if (Test-Path $pspRom) {
New-Item -ItemType Directory -Force -Path $pspPath | Out-Null
- Move-Item -Path $pspRom -Destination $pspPath | Out-Null
+ Move-Item -Path $pspRom -Destination $pspPath -Force | Out-Null
}
else {
Write-Host "ERROR: $pspRom not found."
@@ -355,19 +360,31 @@ $switchPath = "$romPath\switch"
$switchRom = "$requirementsFolder\tetriswitch.nro"
if (Test-Path $switchRom) {
New-Item -ItemType Directory -Force -Path $switchPath | Out-Null
- Move-Item -Path $switchRom -Destination $switchPath | Out-Null
+ Move-Item -Path $switchRom -Destination $switchPath -Force | Out-Null
}
else {
Write-Host "ERROR: $switchRom not found."
exit -1
}
+Write-Host "INFO: Setup PS3"
+$ps3Path = "$romPath\ps3"
+$ps3Rom = "$requirementsFolder\UP0001-THATOPONG_00-0000000000000000-A0100-V0100-RE.pkg"
+if (Test-Path $ps3Rom) {
+ New-Item -ItemType Directory -Force -Path $ps3Path | Out-Null
+ Move-Item -Path $ps3Rom -Destination $ps3Path | Out-Null
+}
+else {
+ Write-Host "ERROR: $ps3Rom not found."
+ exit -1
+}
+
Write-Host "INFO: Setup PS Vita"
$vitaPath = "$romPath\vita"
$vitaRom = "$requirementsFolder\C4.vpk"
if (Test-Path $vitaRom) {
New-Item -ItemType Directory -Force -Path $vitaPath | Out-Null
- Move-Item -Path $vitaRom -Destination $vitaPath | Out-Null
+ Move-Item -Path $vitaRom -Destination $vitaPath -Force | Out-Null
}
else {
Write-Host "ERROR: $vitaRom not found."
@@ -382,7 +399,7 @@ if(-not(Test-Path $vita3kInstallFolder)){
$vita3kLatestBuild = "$requirementsFolder\windows-latest.zip"
if(Test-Path $vita3kLatestBuild){
- Expand-Archive -Path $vita3kLatestBuild -Destination $vita3kInstallFolder | Out-Null
+ Expand-Archive -Path $vita3kLatestBuild -Destination $vita3kInstallFolder -force | Out-Null
} else {
Write-Host "ERROR: $vita3kLatestBuild not found."
exit -1
@@ -393,7 +410,7 @@ $3dsPath = "$romPath\3ds"
$3dsRom = "$requirementsFolder\ccleste.3dsx"
if (Test-Path $3dsRom) {
New-Item -ItemType Directory -Force -Path $3dsPath | Out-Null
- Move-Item -Path $3dsRom -Destination $3dsPath | Out-Null
+ Move-Item -Path $3dsRom -Destination $3dsPath -Force | Out-Null
}
else {
Write-Host "ERROR: $3dsRom not found."
@@ -597,7 +614,7 @@ $newConfig = "
C:\Program Files\Vita3k\Vita3K.exe --vpk-path %ROM%
vita
vita
-
+
switch
Switch
@@ -607,7 +624,16 @@ $newConfig = "
switch
switch
-
+
+ ps3
+ PS3
+ $ps3Path
+ .iso .ISO .zip .ZIP .7z .pkg .PKG
+ $rpcs3InstallDir\yuzu.exe %ROM%
+ ps3
+ ps3
+
+
psp
Playstation Portable
$pspPath
@@ -838,9 +864,9 @@ Set-Content $esConfigFile -Value $newConfig
Write-Host "INFO: Setting up Emulation Station theme recalbox-backport"
$themesPath = "$env:userprofile\.emulationstation\themes\recalbox-backport\"
-$themesFile = "$requirementsFolder\recalbox-backport-v2.1.zip"
+$themesFile = "$requirementsFolder\recalbox-backport-v2.2.zip"
if(Test-Path $themesFile){
- Expand-Archive -Path $themesFile -Destination $requirementsFolder | Out-Null
+ Expand-Archive -Path $themesFile -Destination $requirementsFolder -Force | Out-Null
$themesFolder = "$requirementsFolder\recalbox-backport\"
robocopy $themesFolder $themesPath /E /NFL /NDL /NJH /NJS /nc /ns /np | Out-Null
} else {
@@ -852,7 +878,7 @@ Write-Host "INFO: Update EmulationStation binaries"
$emulationStationInstallFolder = "${env:ProgramFiles(x86)}\EmulationStation"
$updatedEmulationStatonBinaries = "$requirementsFolder\EmulationStation-Win32.zip"
if(Test-Path $updatedEmulationStatonBinaries){
- Expand-Archive -Path $updatedEmulationStatonBinaries -Destination $emulationStationInstallFolder | Out-Null
+ Expand-Archive -Path $updatedEmulationStatonBinaries -Destination $emulationStationInstallFolder -Force | Out-Null
} else {
Write-Host "ERROR: $updatedEmulationStatonBinaries not found."
exit -1
@@ -1090,7 +1116,7 @@ AspectRatio = 1
Screensaver = 0
"
-New-Item $dolphinConfigFolder -ItemType directory | Out-Null
+New-Item $dolphinConfigFolder -ItemType directory -Force | Out-Null
Write-Output $dolphinConfigFileContent > $dolphinConfigFile
# TO-DO: Review if this is still needed or not