From 1fff3137e806a2009a20d5bd3cc42a8618e76315 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:10:25 +0200 Subject: [PATCH] docs: give RetroArch's Windows system folder RetroArch defaults system_directory to :\system, the folder of retroarch.exe (platform_win32.c), for the installer as for the portable archive. %APPDATA%\RetroArch holds only a fallback retroarch.cfg. --- tests/test_doc_pages.py | 17 +++++++++++++++++ wiki/getting-started.md | 13 +++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/tests/test_doc_pages.py b/tests/test_doc_pages.py index 69f51f85..56a6efc5 100644 --- a/tests/test_doc_pages.py +++ b/tests/test_doc_pages.py @@ -726,5 +726,22 @@ class FirstInstallWalkthrough(unittest.TestCase): self.assertNotIn("cannot stop and ask", section) +class RetroArchWindowsSystemFolder(unittest.TestCase): + """Getting started gave %APPDATA%\\RetroArch\\system for the Windows + installer. RetroArch's default is `:\\system`, the folder of + retroarch.exe (platform_win32.c). %APPDATA% is where a retroarch.cfg + can live, and install.py reads it there.""" + + def test_page_and_installer_agree(self): + import install + + source = inspect.getsource(install) + self.assertIn('ra_dir or exe_dir / "system"', source) + self.assertTrue(str(install._os_default_dests("windows")["retroarch"]).replace("\\", "/").endswith("/system")) + section = _section(_page("getting-started.md"), "RetroArch") + self.assertNotIn("%APPDATA%\\RetroArch\\system", section) + self.assertIn("`system\\` next to `retroarch.exe`", section) + + if __name__ == "__main__": unittest.main() diff --git a/wiki/getting-started.md b/wiki/getting-started.md index cd470e3d..cb2ee08a 100644 --- a/wiki/getting-started.md +++ b/wiki/getting-started.md @@ -108,18 +108,19 @@ RetroArch uses the `system_directory` setting in `retroarch.cfg`. Default locati | OS | Default path | |----|-------------| -| Windows (installer) | `%APPDATA%\RetroArch\system\` | -| Windows (portable .7z) | `system\` next to `retroarch.exe` | +| Windows (installer or portable .7z) | `system\` next to `retroarch.exe` | +| Windows (UWP/MSIX package) | `%LOCALAPPDATA%\Packages\1e4cf179-f3c2-404f-b9f3-cb2070a5aad8_*\LocalState\system\` | | Linux | `~/.config/retroarch/system/` | | Linux (Flatpak) | `~/.var/app/org.libretro.RetroArch/config/retroarch/system/` | | macOS | `~/Library/Application Support/RetroArch/system/` | | Steam Deck (Flatpak) | `~/.var/app/org.libretro.RetroArch/config/retroarch/system/` | | Android | `/storage/emulated/0/RetroArch/system/` | -Windows has two layouts because the installer stores its data under `%APPDATA%` -while the portable archive keeps everything inside the folder you extracted it -to. If both exist on the machine, the one RetroArch actually reads is the one -shown in the UI. +On Windows, `retroarch.cfg` is read beside `retroarch.exe` first, then from +`%APPDATA%\RetroArch\`. Either way, a `system_directory` left at its default is +the `system` folder beside `retroarch.exe` (`:\system` in RetroArch's +`frontend/drivers/platform_win32.c`, where `:` stands for the folder of the +executable). To check your actual path: open RetroArch, go to **Settings > Directory > System/BIOS**, or look for `system_directory` in `retroarch.cfg`.