diff --git a/README.md b/README.md index ea00a84..2f39041 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ # RetroArch for PS5 -**Your collection on the console. Your controls in the browser.** +**Your games on the TV. Your library in your hands.** -Native Vulkan rendering · Thirty-three release cores · A local WebUI +33 native cores · RetroArch & EmulationStation · A local WebUI -[Download a release](https://github.com/mihawk-99/PS5_RetroArch/releases) · [Get started](#get-started) · [Supported systems](#supported-systems) · [Build from source](#build-from-source) +[Download](https://github.com/mihawk-99/PS5_RetroArch/releases) · [Get started](#get-started) · [Supported systems](#supported-systems) · [What’s new](releases/v1.0.0-beta.1.md) @@ -24,143 +24,175 @@ It exists so you can play the games you own on the console you own. --- -![RetroArch WebUI Overview with content uploads, library folders, recent transfers and quick settings](assets/readme/webui-overview.png) +WebUI Games library with SNK Neo Geo selected and the B filter active -

WebUI Overview · Open http://<PS5-IP>:6769 while the title is open.
Replace <PS5-IP> with your console’s local address. Use a browser on the same network.

+

Your collection, beautifully organized.
Browse, add games, and manage artwork from your phone or computer.

-![The pre-screen: choose RetroArch or EmulationStation when the title starts](assets/readme/pre-screen.png) +A native RetroArch homebrew title for jailbroken PlayStation 5 consoles, made by [Mihawk](https://github.com/mihawk-99). Play through RetroArch or EmulationStation, with Vulkan graphics and up to four controllers. -

Choose a frontend · RetroArch’s XMB or EmulationStation, both playing every game through RetroArch.
Square remembers your choice. Hold L1 while the title starts to come back to this screen.

+**This README describes the current beta development version.** See the [beta notes](releases/v1.0.0-beta.1.md) for what’s new and [Releases](https://github.com/mihawk-99/PS5_RetroArch/releases) for packaged downloads. -A native RetroArch homebrew title for jailbroken PlayStation 5 consoles, made by -[Mihawk](https://github.com/mihawk-99). Play through XMB on your TV, then upload -content, browse your library and adjust settings from your phone or computer. -The purple WebUI stays up while the title is open, on the pre-screen, in RetroArch -and in EmulationStation, so an upload carries on while you switch. It runs as its own -payload, started through your console's ELF loader (port 9021) or the homebrew -launcher (port 8080); with neither, it runs only while RetroArch runs. +> [!WARNING] +> **Designed around ShadowMountPlus 1.7beta4 or later.** Use [ShadowMountPlus 1.7beta4](https://github.com/drakmor/ShadowMountPlus/releases/tag/1.7beta4) or newer for supported USB and extended-storage access. -**v0.6.7-alpha.6** opens on a pre-screen that starts RetroArch or -EmulationStation, adds up to four controllers and verified updates from the WebUI, -and fixes the Manual Scan crash. This is an alpha release; compatibility varies -by core and workload. See the [release notes](https://github.com/mihawk-99/PS5_RetroArch/releases/tag/v0.6.7-alpha.6) for the tested scope. + -## Get started +## At a glance -1. **Install the complete title folder.** Extract a release and copy its - `PPSA99169` folder to the location used by your homebrew launcher. The tested - location is `/data/homebrew/PPSA99169/`. A source build produces the same - folder in `dist/`. A compatible jailbreak and launcher must already be set up. -2. **Open the title and choose a frontend.** The pre-screen starts RetroArch or - EmulationStation; with Remember (Square) on, the title opens on your choice from - then on, and the WebUI's **Start with** setting changes it. RetroArch creates its - writable folders and initial configuration; existing settings are preserved. XMB - is the default menu; RGUI is also available. -3. **Open the WebUI.** Visit `http://:6769` on the same network. - Choose a destination and drop your content into **Upload content**, or use FTP. -4. **Load content on the console.** Select the matching core and your file. - Install any required BIOS files first, using the locations below. +| | Made for your collection | +| --- | --- | +| | **33 cores.** From NES and Mega Drive to Dreamcast, GameCube, PSP, and more. | +| | **One shared library.** Artwork and game details across RetroArch, EmulationStation, and the WebUI. | +| | **Easy game setup.** Add a game, find its details, and download missing artwork. | +| | **DualSense stylus.** Use the touchpad for Nintendo DS and 3DS touchscreen controls. | + +**Explore:** [Get started](#get-started) · [WebUI](#webui) · [Systems](#supported-systems) · [Controls](#controls) · [Graphics](#graphics) · [Your files](#your-files) · [Known limits](#what-has-been-verified) · [Build](#build-from-source) + + + +## Get started + +1. **Install the complete title folder.** Extract a release and copy `PPSA99169` to your homebrew launcher’s location, usually `/data/homebrew/PPSA99169/`. A compatible jailbreak and launcher must already be set up. +2. **Choose your frontend.** Start RetroArch or EmulationStation from the picker. Press **Square** to remember your choice; hold **L1** during startup to return to the picker. XMB and RGUI are available in RetroArch. +3. **Open the WebUI.** Scan its QR code or visit `http://:6769` from a device on the same network. +4. **Add your games.** Use **Games → + Add Game** for one game backup, or **Content** for folders and multi-file games. Install any required BIOS files in the [system folders](#your-files), then load your game on the console. No games, BIOS files, firmware or decryption keys are included. Use your own legally obtained backups and system files dumped from hardware you own. Piracy is not condoned; requests for these files are not welcome in issues or discussions. -## A browser companion, built in +
+Choose your frontend + +Frontend picker offering RetroArch and EmulationStation + +Change your default later in **WebUI Settings → Start with**. + +
+ +### Scan to connect + +| Menu | Open the WebUI QR code | +| --- | --- | +| **Picker** | Press **Triangle**; Triangle again or Circle closes it | +| **RetroArch XMB** | **WebUI** tab to the left of Settings | +| **RetroArch RGUI** | **WebUI** at the top of the main menu | +| **EmulationStation** | **WebUI** in the main menu | + + + +## Your browser companion + +Stay connected while switching between the picker, RetroArch, and EmulationStation. A supported ELF loader or homebrew launcher keeps the WebUI running across menus; without one, it is available while RetroArch runs. | Page | What you can do | | --- | --- | -| **Overview** | Check release status, read what’s new, upload content and reach your library and quick settings. Development builds identify themselves honestly. | -| **Content** | Browse folders, create subfolders, upload and download files. Uploads stream to storage, can be cancelled and never overwrite an existing filename. | -| **Transfers** | Follow upload progress and results for this browser session. Downloads use your browser’s download manager. | -| **Settings** | Edit global preferences or select a core profile. Guided categories explain each setting and offer supported choices; Advanced exposes technical keys and manual values. | +| **Overview** | Check updates, alerts, recent transfers, and quick settings. | +| **Games** | Browse cover art, search, filter by system or letter, and sort your collection. | +| **Download Media** | Download artwork and game details for a few games or your whole library. | +| **Content** | Browse folders, create subfolders, and upload or download files. | +| **Transfers** | Follow uploads and their results. Downloads appear in your browser’s download manager. | +| **Settings** | Adjust global preferences, core options, controller mappings, and the startup frontend. | -Guides cover all **15 release cores**, even before their first launch. Global -preferences cover Video, Audio, Input, Saving, System and Interface. Core -categories follow each emulator’s options. Runtime-specific choices, including -BIOS lists and arcade switches, appear when the core registers them. +### Add a game. Make it yours. -**Save settings, then restart RetroArch to apply them.** Global preferences, -core options and per-core RetroArch overrides are separate. Existing game or -folder overrides can take precedence. Unsaved edits survive switching categories -or Guided/Advanced mode. WebUI light/dark appearance changes immediately. +Choose a game backup, enter details yourself or find a **LaunchBox** match, then add media. **Automatic media downloads are enabled by default**, with progress and artwork appearing as they arrive. Your own uploaded media is kept. -The interface, fonts and artwork are served locally. Release checks and update -downloads need internet access. Uploads are -limited to the content folder and 64 GiB per file. Available storage is not -reported because the console API does not provide a measured value. +### One game. Everything within reach. -**New in source builds after Alpha 6:** **Update RetroArch** downloads the newest -published release, including alphas, directly to your console. It checks the ZIP -checksum and every packaged file before enabling **Install and close RetroArch**. -Save your progress, install, wait for the application to close, then reopen it. -Content, saves, settings and existing custom BIOS/effect files are preserved. -Keep enough free space for both the downloaded ZIP and its extracted files. -Failed installs attempt to restore the previous files; a power loss that prevents -the application from launching can still require reinstalling the release manually. +Bust-A-Move Media Inspector with compact artwork thumbnails and a preview -The new **Alerts** panel lists missing required BIOS/system files by installed -core and shows the configured location. Choose **Recheck** after adding files. -It checks presence, not BIOS authenticity; regional requirements may not apply to -your content. `/app0` means the RetroArch installation folder. Optional firmware -is excluded from these checks. These controls are not in the published -Alpha 6 package; install an updated source build once to enable future WebUI updates. +- **Media:** browse, enlarge, or replace artwork, manuals, and videos. +- **Details:** edit the name and game information; your changes survive future downloads. +- **Files:** replace or export a game backup, import or export saves and savestates, and preview savestate screenshots when available. + +Close the game and back up your progress before replacing files. Savestates need the same game and a compatible core. + +### Fill in the missing artwork + +Choose **libretro**, **ScreenScraper**, and **LaunchBox**, set their order, and pick your region and language. Review uncertain matches and resume interrupted downloads. Downloads continue on your PS5 after the browser closes. + +ScreenScraper requires an account. Media availability varies by game and source; EmuMovies support is coming later. + +
+Settings, updates, and connection details + +Guided settings cover the original **15 cores**; newer cores do not yet have guided profiles. Advanced settings remain available. Save settings, then restart RetroArch when prompted. Game or folder overrides may take priority. + +**Update RetroArch** downloads and verifies a release before offering **Install and close RetroArch**. Save your progress first, then reopen the title after installation. Content, saves, settings, and existing custom BIOS/effect files are preserved. Keep room for the ZIP and extracted files, and back up before updating. Failed installs attempt to restore the previous files; a power loss may require a manual reinstall. + +**Alerts** lists missing required BIOS/system files and their configured locations. Choose **Recheck** after adding files. Checks verify presence, not authenticity; regional requirements may vary. + +The interface and artwork are served locally. Media downloads, release checks, and updates need internet access. Content uploads support files up to **64 GiB** and do not overwrite existing filenames. Available storage is not reported. + +The persistent WebUI uses an ELF loader on port **9021** or a homebrew launcher on port **8080**. Its own address is `http://:6769`. + +
> The WebUI is a local HTTP service without a login. Use a trusted network and > do not forward port **6769** to the internet. -## Supported systems + -Release builds contain the following native cores. “GPU” means the emulator -renders through Vulkan; “software” means RetroArch presents the core’s frames -through Vulkan. These are supported systems, not a promise that every title works. +## Supported systems -| Systems | Core | Rendering | +**33 native cores**, grouped below by family. Compatibility and performance vary by game. + +| Family | Systems | Core | | --- | --- | --- | -| NES / Famicom | FCEUmm | Software | -| Game Boy / Game Boy Color / Game Boy Advance | mGBA | Software | -| SNES / Super Famicom | Snes9x | Software | -| Arcade, including Neo Geo and Sega System 16/32 | FinalBurn Neo | Software | -| Mega Drive / Genesis, Master System, Game Gear, SG-1000, Sega CD | Genesis Plus GX | Software | -| PlayStation Portable | PPSSPP | GPU | -| GameCube / Wii | Dolphin | GPU | -| PlayStation 2 | LRPS2 | GPU | -| PlayStation | Beetle PSX HW | GPU | -| Nintendo 64 | Mupen64Plus-Next | GPU | -| Sega Saturn | Beetle Saturn | Software | -| Commodore 64 | VICE x64sc | Software | -| Arcade | MAME | Software | -| Nintendo DS | DeSmuME | Software | -| Nintendo 3DS | Azahar | GPU | -| Dreamcast, NAOMI, NAOMI 2, Atomiswave | Flycast | GPU | -| Sega 32X (and Mega Drive, Mega-CD, Master System, Pico) | PicoDrive | Software | -| PC Engine / TurboGrafx-16, PC Engine CD, SuperGrafx | Beetle PCE | Software | -| PC-FX | Beetle PC-FX | Software | -| Virtual Boy | Beetle VB | Software | -| Neo Geo Pocket / Color | Beetle NeoPop | Software | -| WonderSwan / Color | Beetle Cygne | Software | -| Pokémon Mini | PokeMini | Software | -| Atari Lynx | Handy | Software | -| Atari Jaguar | Virtual Jaguar | Software | -| Atari 2600 | Stella | Software | -| Atari 5200 | a5200 | Software | -| Atari 7800 | ProSystem | Software | -| MS-DOS | DOSBox Pure | Software | -| 3DO | Opera | Software | -| Commodore Amiga | PUAE | Software | -| Neo Geo CD | NeoCD | Software | -| Point-and-click adventures (LucasArts, Sierra and more) | ScummVM | Software | +| **Nintendo** | **NES / Famicom** | FCEUmm | +| | **Game Boy**
**Game Boy Color**
**Game Boy Advance** | mGBA | +| | **SNES / Super Famicom** | Snes9x | +| | **Nintendo 64** | Mupen64Plus-Next | +| | **GameCube**
**Wii** | Dolphin | +| | **Nintendo DS** | DeSmuME | +| | **Nintendo 3DS** | Azahar | +| | **Virtual Boy** | Beetle VB | +| | **Pokémon Mini** | PokeMini | +| **Sony** | **PlayStation** | Beetle PSX HW | +| | **PlayStation 2** | LRPS2 | +| | **PlayStation Portable** | PPSSPP | +| **Sega** | **Mega Drive / Genesis**
**Master System**
**Game Gear**
**SG-1000**
**Sega CD** | Genesis Plus GX | +| | **Sega 32X** | PicoDrive | +| | **Sega Saturn** | Beetle Saturn | +| | **Dreamcast**
**NAOMI / NAOMI 2**
**Atomiswave** | Flycast | +| **Arcade & SNK** | **Arcade**
**Neo Geo** | FinalBurn Neo | +| | **Arcade** | MAME | +| | **Neo Geo Pocket / Color** | Beetle NeoPop | +| | **Neo Geo CD** | NeoCD | +| **NEC** | **PC Engine / TurboGrafx-16 / CD**
**SuperGrafx** | Beetle PCE | +| | **PC-FX** | Beetle PC-FX | +| **Atari** | **Atari 2600** | Stella | +| | **Atari 5200** | a5200 | +| | **Atari 7800** | ProSystem | +| | **Atari Lynx** | Handy | +| | **Atari Jaguar** | Virtual Jaguar | +| **Computers & adventures** | **Commodore 64** | VICE x64sc | +| | **Commodore Amiga** | PUAE | +| | **MS-DOS** | DOSBox Pure | +| | **Point-and-click adventures** | ScummVM | +| **More consoles** | **3DO** | Opera | +| | **WonderSwan / Color** | Beetle Cygne | -Use matching arcade sets: MAME currently targets **0.289**, and FBNeo requires -sets compatible with its pinned version. Azahar requires decrypted content. -Core binaries must be built for this native SDK and loader; desktop cores or -cores from another PS5 distribution are not interchangeable. No games or BIOS -files are bundled. +PicoDrive also supports Mega Drive, Mega-CD, Master System, and Pico. FinalBurn Neo includes Sega System 16/32; ScummVM supports many LucasArts, Sierra, and other adventures. + +Use matching arcade sets: MAME targets **0.289**, and FBNeo needs sets compatible with its version. Azahar requires decrypted content. Only native cores built for this port are compatible; desktop cores and other PS5 distributions’ cores are not interchangeable. No games or BIOS files are bundled. None of the games I tested with is provided. **Use only legally obtained backups of games you own**, and BIOS files dumped from your own hardware: piracy is not condoned. -## Balanced graphics for a 4K display + + +## A stylus in your DualSense + +In **DeSmuME** and **Azahar**, slide a finger on the touchpad to move the stylus. **Press** to touch the screen; hold the press while sliding to drag. Release to lift the stylus. A light tap does not click. + +Up to **four controllers** are supported. Save controller mappings for each game or core. + + + +## Graphics for your display RetroArch presents at the display resolution. Internal rendering is chosen to leave room for emulation and memory use; it need not reach native 4K. Saved @@ -180,17 +212,15 @@ core, folder and game options take priority over these compiled defaults. Other cores retain native rendering, scaled for the display. MAME uses a 4K target for vector output; that path still needs console acceptance. -PPSSPP’s **6× / 8× MSAA** default passed the recorded save/load checks. At -10× / 8× MSAA, the tested workload exhausted device memory. Failed framebuffer -allocations are now cleaned up and retried once; an unrecoverable failure returns -to the menu instead of using a missing image. This improves recovery, not the -amount of memory available. Disabling MSAA leaves more headroom. +Higher resolutions and anti-aliasing use more memory. If a game struggles, lower its internal resolution or disable MSAA. To adopt these defaults on an existing installation, change the listed options in the WebUI or **Quick Menu → Core Options**. Reset Core Options resets every option for that core, so use individual controls if you want to keep other choices. -## Shaders, filters and bezels + + +## Shaders, filters and bezels Release builds bundle offline Slang shaders, Mega Bezel, koko-aio and standard overlays. Load GPU presets through **Quick Menu → Shaders**, choose a @@ -198,13 +228,11 @@ CPU filter in **Settings → Video**, or choose artwork in **Settings → On-Scr Display → On-Screen Overlay**. CPU filters apply to software-rendered cores; hardware-rendered cores use GPU shaders. -The package retains the upstream collections and their notices. Exact versions, -path corrections and the five upstream file exclusions are recorded in -`video-assets.json`. Development overlay fixtures are excluded from both the -staged title and its ZIP. Representative presets and overlay layouts have been tested on PS5. Bundling -does not imply every preset is verified; see the release notes for limitations. +Presets and overlays are included for offline use. Compatibility varies by core and preset; original notices are retained. -## Your files + + +## Your files `/app0` is the running title’s mount. Over FTP, use your installed title folder, usually `/data/homebrew/PPSA99169/`. @@ -250,24 +278,15 @@ the title folder. With [ShadowMountPlus](https://github.com/drakmor/ShadowMountP `/mnt/ext1`), only when a drive is mounted there. Without it, the sandbox hides them and **EXTERNAL** (`/mnt`) may be empty. -## What has been verified + -Saturn now loads its BIOS from `system/Saturn/`. Console testing reached -controlled gameplay with clean rendering and a normal exit. The fixes cover -executable memory for its JITs and ownership of cropped video frames. This is -a short gameplay check, not a full compatibility or long-session guarantee. +## Compatibility and known limits -Native startup and exit, Vulkan presentation, controller input, stereo audio, -configuration persistence and representative core loading have console evidence. -Save-state and memory-pressure results cover the recorded workloads, not every -core or firmware. Controller rumble uses synthesized DualSense haptics with an -ordinary-rumble fallback; physical feel still awaits owner confirmation. +Startup, controller input, audio, saved settings, and representative games have been tested on PS5. Compatibility and long-session testing are ongoing. -The title uses [PS5_Vulkan](https://github.com/mihawk-99/PS5_Vulkan)’s RADV port. -CPU and GPU allocations share the console’s direct-memory pool; each core does -not receive a separate 11.65 GiB allowance. A selectable CPU video backend remains -available. RetroAchievements and netplay remain disabled. Broader BIOS, disc -swapping, shader-preset and long-session coverage is still in progress. +- **Azahar:** a crash when closing content, switching to Azahar, and starting a game remains under investigation. +- **RetroAchievements and netplay** are disabled. +- Shader presets, disc swapping, and rumble still need broader testing. [Recorded evidence](evidence/) accompanies verified changes. For a bug report, include the core, file format, settings and reproduction steps. Preserve @@ -277,7 +296,12 @@ before sharing captures. --- -## Build from source + + +## Build from source + +
+Build requirements and commands The current build uses Linux host tools and the project's cached public PS5 SDK. Start with `bash tools/doctor.sh` for host-tool checks. You also need `curl`, @@ -378,6 +402,8 @@ import table and build identity depend on the shipped core binaries. Source patches live in `patches/`; fetched and generated trees stay in ignored `vendor/`, `.deps/`, `build/` and `dist/` directories. +
+
Authors and acknowledgements @@ -402,6 +428,12 @@ lists and original notices. | [RetroArch assets contributors](https://github.com/libretro/retroarch-assets) and the [M+ Fonts project](https://mplusfonts.github.io/) | Packaged XMB assets and font; original notices retained | | [LLVM / Clang contributors](https://github.com/llvm/llvm-project), [zlib authors Jean-loup Gailly and Mark Adler](https://github.com/madler/zlib) | Compilation and compression tooling | +### Frontends and interface artwork + +EmulationStation uses [ES-DE](https://es-de.org/) and the Alekfull NX theme. Touchpad handling builds on PS5_Proton; the picker uses PS5_VulkanTemplate’s UI foundation. + +Color icons: **Microsoft Fluent Color**. System artwork: **Linear ES-DE**. Region flags: **flag-icons**. Utility icons: **Lucide**. Full attribution and licences are in [artwork credits](webui/assets/ICON-CREDITS.txt). + ### Emulator cores | Core | Authors / maintainers credited by upstream | @@ -439,7 +471,9 @@ lists and original notices.
-## License and third-party terms + + +## License and third-party terms This repository's own code is **GPL-3.0-or-later** ([LICENSE](LICENSE)). Most source files carry a copyright and SPDX notice; the ones that do not (for example @@ -466,6 +500,8 @@ The cores keep their own licences, and they differ: | MPL-2.0 | mGBA | | Non-commercial licences | Snes9x, FinalBurn Neo, Genesis Plus GX, PicoDrive, Opera (FreeDO's modified LGPL): they may not be sold or used commercially, and FBNeo's forbids asking for donations for a project that uses its code | +The Alekfull NX theme also carries non-commercial restrictions. Artwork credits and licence texts for the WebUI’s icons, flags, and system images are in [ICON-CREDITS.txt](webui/assets/ICON-CREDITS.txt). + Assets and fonts keep their licences too: the XMB theme is CC-BY-4.0 with the M+ font licence, PPSSPP's fonts are OFL-1.1, and Dolphin's `Sys` files carry theirs. The launcher backgrounds (`sce_sys/pic0.dds`, `pic1.dds`) are drawn by diff --git a/evidence/readme-beta-refresh/capture.json b/evidence/readme-beta-refresh/capture.json new file mode 100644 index 0000000..5b1c1bf --- /dev/null +++ b/evidence/readme-beta-refresh/capture.json @@ -0,0 +1,115 @@ +{ + "step": "readme-beta-refresh", + "command": "README source/link/notice audit; CUA local rendered preview; bash tools/verify.sh format evidence", + "revision": "3edf29f", + "lines": [ + "PASS: Games screenshot replaces old Overview hero", + "PASS: all permanent warning paragraphs retained verbatim", + "PASS: 33 core entries retained and grouped with system artwork", + "PASS: 69 local images and all local Markdown links resolve", + "PASS: four balanced expandable sections; navigation anchors resolve", + "PASS: current Add Game, default media download, editable details, saves and QR features documented", + "PASS: beta development status distinguished from packaged releases", + "PASS: browser loaded 69 images without failures; no page overflow at 816x604" + ], + "readme_sha256": "c18c094715d5433dbf77dfddf7be98679ce0c4282117eceae240160f73786392", + "cores": [ + "FCEUmm", + "mGBA", + "Snes9x", + "Mupen64Plus-Next", + "Dolphin", + "DeSmuME", + "Azahar", + "Beetle VB", + "PokeMini", + "Beetle PSX HW", + "LRPS2", + "PPSSPP", + "Genesis Plus GX", + "PicoDrive", + "Beetle Saturn", + "Flycast", + "FinalBurn Neo", + "MAME", + "Beetle NeoPop", + "NeoCD", + "Beetle PCE", + "Beetle PC-FX", + "Stella", + "a5200", + "ProSystem", + "Handy", + "Virtual Jaguar", + "VICE x64sc", + "PUAE", + "DOSBox Pure", + "ScummVM", + "Opera", + "Beetle Cygne" + ], + "images": { + "assets/releases/v1.0.0-beta.1/webui-games-neogeo-b.jpg": "63c582f50e5e38a0c3876059c63e011a6f8bd9d286bd6ca8e279b495329c2602", + "webui/assets/fluent/board.svg": "914e641f6c5f1b16d82576066afa8be01bf823c30855ff0d27121ffe378c5a87", + "webui/assets/fluent/game-chat.svg": "762b5bad527b6e0143c7842ab48ae9d5205d50f37f869e1577164d54a27b0c17", + "webui/assets/fluent/library.svg": "b7b90660d92f7ef96ca0002afbddc7a4f2f5f93da73454345e413fd9edd1ed5c", + "webui/assets/fluent/arrow-square-down.svg": "d4188e3f01633597df08c3d4681cd91b4602baaa4372729cf1127b08e9040d89", + "webui/assets/fluent/edit.svg": "21f50931dc5b687dba38a3926a9fe804fe9f07d16fcb9fb69ddf06c4b7a3d561", + "assets/readme/pre-screen.png": "6e703f44d3195278e0e4966f8182da12891a751e44e9cf7545e7f6935e18a80d", + "webui/assets/fluent/laptop.svg": "71ce35201c2640cded3bfc0a45da6d4c7fce120667ab85d1620da896c8b6ecb6", + "webui/assets/fluent/home.svg": "ae35ac77254a1a198a88787b71de1101e849ed504a6e8210a14e9f7ad5a4ed59", + "webui/assets/fluent/document-folder.svg": "06f76f631718174c6bdafb0c6609166ddb78092ce55ab9b7bba272cd827ca14d", + "webui/assets/fluent/arrow-sync.svg": "bb5b3763ca57b2dd31b31e309dd186886be05d38f1a29ad4e41284eb62289171", + "webui/assets/fluent/settings.svg": "6b57cd87eda688c801011999a435c596d0e2263316d87e8792dd1d124d520f9b", + "assets/releases/v1.0.0-beta.1/webui-game-media.jpg": "7b312c4f136167b1ed419cd06f1020da370bdc56335b137c443ea2ef5e1541af", + "webui/assets/systems/nes.webp": "27f0eb438f7e71bc88dbffe6453218b46e7a977eef470386f6de6f82b31e7463", + "webui/assets/systems/gb.webp": "092094cf5768a4e0a52a1aad2f88b1690d4d272ba33b89d45368367a60a4ccea", + "webui/assets/systems/gbc.webp": "b6ba4ee42b50ed1f127700d06f7555e8956c3b3626fd0e285a4b08906bcc5a93", + "webui/assets/systems/gba.webp": "8d46273be41cf663547ec44a55546a667d67450e7da08a12b9e17911a299e6b2", + "webui/assets/systems/snes.webp": "2f2528a821d4c30c7cf9915916b8b1a398fdc5f1131ba3c3dcf4144f2cc87e79", + "webui/assets/systems/n64.webp": "a245322b8519293244923a3b40b476126982fe0565951d1b16a3eb7534e0dbaf", + "webui/assets/systems/gc.webp": "76be30756445b2ececc00575acb8368ae1e5ce0816b84e4ae41edff8a2ae324a", + "webui/assets/systems/wii.webp": "5214e3c528ff1b5e1dec150c99d5cb8119c4ecff465036117a3485222d64ed1f", + "webui/assets/systems/nds.webp": "2007fff484247df9cb18764f4dec5c1cb0ef5de4afdcd558d65b6c62f023d8f8", + "webui/assets/systems/n3ds.webp": "3dbdc06b1e90718c21ebfa63e7e0ca0b4977b4d2c2c99d7017eb8ca9af20c739", + "webui/assets/systems/virtualboy.webp": "06b109888f17f6657812062cabf6ea4b5d9fa95edb5ee6cad18c4161d934e936", + "webui/assets/systems/pokemini.webp": "f7e64f7cbc85ceb3f9e3affca59205095cfe354d4f40d7e5f874d25b6069c5aa", + "webui/assets/systems/psx.webp": "e877e3e44378499386c9645412569b9b1808d90d6edb2f49b5da6d714a5067e4", + "webui/assets/systems/ps2.webp": "c97788cde1681b99402b1d74a58d642c9886bd82af50720a2b125e81485b6714", + "webui/assets/systems/psp.webp": "e23f121689b8514bca18f760e583a69a47c01ad0222617a358f530da8786a698", + "webui/assets/systems/genesis.webp": "2d350343a48f7c1ce4cb577281b46692c3295b1d0dd6f1206376d840a71ff5a0", + "webui/assets/systems/mastersystem.webp": "7c2596ddadf01cdcdf686a6f04cad1b2920280390416877ebb7982b6634e5c35", + "webui/assets/systems/gamegear.webp": "a66abd5c4412ae96487fd5c9d5652976584d944bf4bc55f88e069c4dcabd8176", + "webui/assets/systems/sg-1000.webp": "8584a3a88c560852a28098c28a1f1961ac9ec0e88851a4bb66b114cfc0c96c37", + "webui/assets/systems/segacd.webp": "0659b769bda55a02ab529d95f4abef2deac8a2d328580f9c5d6c56f9df85040e", + "webui/assets/systems/sega32x.webp": "fcfc38697bed46b7f466ee539c2e0850f428f2ae147fe716222e6d67d068d8a7", + "webui/assets/systems/saturn.webp": "e32b0a1169148e69a08ddf1f1924c2fd5d16e97699054cf25f138bf7c465e1e1", + "webui/assets/systems/dreamcast.webp": "47327077da9ddd40f97c6658abcbaaf8be66d8b6b37226d11f66bcbf6acaf686", + "webui/assets/systems/naomi.webp": "07dd791036dbb63bdfdf4db51e38d583102e6e73e1ebd2fc53d53a0eff09dc50", + "webui/assets/systems/atomiswave.webp": "1df2b1a844543c54e7ce515d18e6ab08b3556d856188ba73a58dce7aa65c40fd", + "webui/assets/systems/fbneo.webp": "2cce724ac30ffa247db4bb37f6f27bc8943b1d7cd290735a32edf63d1fe55982", + "webui/assets/systems/neogeo.webp": "0f26739b2c13efd8221e5ef1160d297b102bf0f740f69d7ac46d8b3d57056aca", + "webui/assets/systems/mame.webp": "4dcbbb0947274fc346e75a2f2b2242c1a0cd53df6d2c6f6944890aeccca48a64", + "webui/assets/systems/ngpc.webp": "8b42b4adfa6e1c790ecd9c2d34760f8fe534772eb877f3d0a377b75f6a3e6e0b", + "webui/assets/systems/neogeocd.webp": "bbbaaeec3b4d092fbbe89f7f771f24cc0072763cfae9d8fe502fbe2e8c1785e5", + "webui/assets/systems/pcengine.webp": "2ff7b889e8342e9d37a6c10507e676c3cf8aec59b7ed62a8cc59bb314cc61d53", + "webui/assets/systems/supergrafx.webp": "e9bfa8b679e9bb5a4ba43745e0a8cc6d322952e497bf8d5d5b90946ba36419a6", + "webui/assets/systems/pcfx.webp": "5dbfa92b31c70aed5f265d912c9a663a82c453a47f0b92c0c1fbd1f98b1f4208", + "webui/assets/systems/atari2600.webp": "92ebae64785e358ce158bdd3544b2930b6a2aac2d1de54b462d6f7f84d56416e", + "webui/assets/systems/atari5200.webp": "d5f6ed1384b960d677364acd2d5a73a1cb0f334b4ac64783e14a3707bdc514a4", + "webui/assets/systems/atari7800.webp": "51be1f174320e9ff0d7078297c98bfe6ddc536a19d31ee538f3469b90c150ae6", + "webui/assets/systems/atarilynx.webp": "f628ffc8fc65196a2f8a9071cad483169032709f4fb73bb8a103102d07e797c6", + "webui/assets/systems/atarijaguar.webp": "d3dfae06b66e9376ef6c4901e1c4ec93fff69ed7896316cff40c375757b684ee", + "webui/assets/systems/c64.webp": "02bb8f7c9b8f7777fd15e6699c554d10856a8b17bdffa198d7eaef009c228e1e", + "webui/assets/systems/amiga.webp": "2de78ab77def46d16863517e55ce38dd6bbb6912ec7d9925519a04819ada89a2", + "webui/assets/systems/dos.webp": "62d6cce7e74320352c0629fb7c6cd035e2687b83b089a19ed86eb3d4fe0b2220", + "webui/assets/systems/scummvm.webp": "ce21d50cdc102498e1ab03b974d3a67abf5d74218ff40a909f209bfe98c68e61", + "webui/assets/systems/3do.webp": "5cf56cba1270d1987adc41fec3e74d1d948a5139cd50d3d172d9234a6959d80e", + "webui/assets/systems/wonderswancolor.webp": "23819d4a489e4ff447a57670248344448aae7a8002af5f4e4a414f056192c2e1", + "webui/assets/fluent/image.svg": "552b87bb882e3a66aa28fdf19ea28631dcdd34253ab01ac56191ee75941c0b96", + "webui/assets/fluent/checkmark-circle.svg": "7b53cb5380ef901bdfda1e8fe1822dc667103e77f09b1f6186dba6c08e60d646", + "webui/assets/fluent/book-open.svg": "3d655edd351850463bc14fa72c6fc62a349eb23e2ad0f95ed7d6a3d819d9ad7b", + "assets/readme/important-warning.png": "307b967742225c4ed59f3ceb696537fc4843b631bfd3b0012fbd645347122cc3" + }, + "scope": "Documentation only. Local CommonMark/table preview; actual GitHub rendering and publication not claimed." +} diff --git a/evidence/readme-beta-refresh/expectation.json b/evidence/readme-beta-refresh/expectation.json new file mode 100644 index 0000000..9efb0ff --- /dev/null +++ b/evidence/readme-beta-refresh/expectation.json @@ -0,0 +1,17 @@ +{ + "step": "readme-beta-refresh", + "must_contain": [ + "PASS: Games screenshot replaces old Overview hero", + "PASS: all permanent warning paragraphs retained verbatim", + "PASS: 33 core entries retained and grouped with system artwork", + "PASS: 69 local images and all local Markdown links resolve", + "PASS: four balanced expandable sections; navigation anchors resolve", + "PASS: current Add Game, default media download, editable details, saves and QR features documented", + "PASS: beta development status distinguished from packaged releases", + "PASS: browser loaded 69 images without failures; no page overflow at 816x604" + ], + "must_not_contain": [ + "FAIL:" + ], + "human_check": "Local README preview visually checked for colorful headings, system hardware artwork, current screenshots and concise user-facing descriptions. Warning banner remains first; original legal reminders retained." +}