diff --git a/README.md b/README.md
index aa4a527..d99dfc1 100644
--- a/README.md
+++ b/README.md
@@ -1,140 +1,96 @@
# PatchDL
-A standalone PlayStation 5 ELF payload that downloads and installs official game
-patches on your terms. It serves its own dark-mode web UI and runs without
-etaHEN.
+A self-contained patch downloader and installer for the PS5, with its own
+dark-mode web UI. Drop it on the console, open the URL on any device on the
+same network, pick the games you want patched.
-PatchDL is built for setups where nanoDNS blocks Sony's servers for the whole
-console. It resolves the Sony patch CDN on its own DNS path, so the rest of the
-system stays offline and only the patches you pick get fetched.
-
-by Knutwurst
+
+
+
## What it does
-- Scans installed titles and classifies each: genuine install, ShadowMountPlus
- mount, preinstall, or unknown.
-- Reads the title name, installed version, and Sony `version.xml` URL from the
- PS5 app database.
-- Fetches each title's `version.xml` past nanoDNS (a raw DNS query to 1.1.1.1)
- and verifies TLS against the pinned SCEI DNAS root.
-- Picks the newest patch compatible with the current firmware
- (`system_ver <= firmware`), so an update never forces a firmware upgrade.
-- Downloads the patch from Sony's manifest pieces into one local `.pkg`, then
- installs it through Sony's AppInstUtil service.
+- Lists every game installed on your console and looks up the newest update
+ Sony has published for it.
+- Compares the available patch against your firmware and only offers updates
+ that will actually run on the system you have.
+- Downloads the update package into internal storage and installs it
+ on-console — same end result as a normal system update, with you in control
+ of when and what.
+- Pauses, resumes, and survives reboots: a 60 GB patch can be picked up where
+ it left off after a power-cycle.
-## Downloading
+## The web UI
-PatchDL pulls each patch over a pool of connections instead of one stream, which
-lifts the ~7 MB/s per-connection ceiling on the Sony CDN. Set the connection
-count (1 to 16) in Settings with the stepper; the change applies live, with no
-payload restart. One patch downloads at a time and further requests queue.
+Open `http://:12880/` in any browser on the network. The UI works
+full-screen in the on-console browser, in any desktop browser, and on phone.
-Downloads survive interruptions:
+
+
+
-- **Resume across a reboot.** PatchDL records progress per manifest piece in a
- sidecar beside the `.pkg`, written after every completed piece, so a reboot or
- relaunch continues where it stopped.
-- **Pause, Resume, Cancel.** Pause keeps the partial file, Resume continues it,
- Cancel deletes it. All three work at any point in a download.
-- **Verification.** Turn on "Verify downloaded pieces (SHA-256)" to check each
- piece against its manifest hash while downloading. After a download you can
- also verify the assembled package on-device against Sony's per-piece hashes
- (`GET /api/pkgverify/`).
+The Games view groups everything you have installed into filter chips:
-Patches download to `/data/patchdl` on the internal SSD. Large retail updates
-run tens of GB.
-
-## Web UI
-
-The Games view groups titles into filter chips:
-
-- **Updatable** — has an installable update; selected by default.
-- **Updating** — queued, actively downloading, paused with a partial on disk,
- or installing.
+- **Updatable** is selected by default — games with an installable update.
+- **Updating** is the queue: jobs waiting for a free slot.
- **Up to date**, **Needs FW**, **Can't update** — the rest.
-- **All** — flat list at the right end of the strip.
+- **All** is the flat list, top-right corner.
-**Update all** in the top bar queues a download for every game with an
-installable update in one click. Shadowmounts are skipped (they pass the
-download policy but not the install policy), so a sweep doesn't burn tens of
-GB on bytes AppInstUtil would refuse — pick those up by hand when the disc is
-ready.
-
-## Safety model
-
-Deny-by-default. A patch installs only for a genuine install, and only when the
-patch metadata targets the installed game:
-
-| Source | Check | Download | Install |
-|-----------------------|-------|----------|---------|
-| official | yes | yes | yes |
-| shadowmount | yes | yes | no |
-| preinstall / unknown | yes | no | no |
-
-Two guards stop the wrong target being installed: the patch target id (from
-`version.xml` / `manifest_url`) must match the installed game, and the install
-call receives the installed game's content id from app.db. PatchDL refuses a
-true target-title mismatch rather than installing a phantom title.
-
-All writes stay under `/data/patchdl`. PatchDL never writes to the system
-partition and never touches firmware.
+**Update all** in the top bar queues everything that's installable in one
+click. A live banner above the games list shows the current title, its
+download speed, ETA, and a `3 of 9`-style position when more than one
+update is running through the queue.
## Settings
-Settings persist to `/data/patchdl/config.json` and survive a restart:
+
+
+
-- Default policy (allow or deny) and a per-game enable toggle.
-- Install after download, as a global default with a per-game override.
-- Delete the PKG after a successful install.
-- Verify downloaded pieces (SHA-256).
-- Parallel download connections (1 to 16), applied live.
+Settings persist across restarts and apply live — nothing needs a reboot.
+
+- **Default policy** to allow or deny new titles by default, with a per-game
+ override.
+- **Install after download** so a finished update applies itself.
+- **Delete the package after install** to reclaim the disk space.
+- **Verify downloaded pieces** with a checksum while transferring.
+- **Home-screen shortcut** that drops a PatchDL tile on the PS5 home menu;
+ tapping the tile opens the web UI in the on-console browser.
+- **Parallel download connections** (1–16), tunable on the fly.
+
+## Home-screen tile
+
+Toggle the shortcut on and PatchDL registers itself as a regular app on the
+PS5 home screen. Tap the tile and the on-console browser opens straight on the
+games list.
+
+
+
+
## Build
-Requires `ps5-payload-dev/sdk`. The network and install features need the
-prebuilt libcurl + OpenSSL from `ps5-payload-dev/pacbrew-repo` in the SDK sysroot
-(`target/user/homebrew`); `scripts/build_ps5.sh` enables them when present.
-libmicrohttpd is vendored under `vendor/etahen`, SQLite under `vendor/sqlite`.
-
```sh
scripts/build_ps5.sh # produces patchdl-ps5.elf
```
+Needs the `ps5-payload-dev` SDK and the prebuilt `libcurl` + `OpenSSL` from its
+`pacbrew-repo`. `libmicrohttpd` is vendored, SQLite too.
+
## Deploy
-This console uses the BD-JB autoloader with itsPLK's Payload Manager on port 8084
-(not a 9021 elfldr). `scripts/deploy_ps5.sh` uploads the version-named ELF
-(`patchdl_.elf`, so Payload Manager picks the version out of the
-filename) and launches it; the payload replaces any running instance.
+`scripts/deploy_ps5.sh` uploads the build, replaces any running instance, and
+launches the new one. On launch you get an on-screen notification with the
+exact URL to open.
```sh
PS5_HOST= scripts/deploy_ps5.sh
```
-On start it shows an on-screen notification with the URL. Open the web UI at:
+
+
+
-```text
-http://:12880/
-```
+## License
-## Status
-
-Verified on firmware 11.60: title scan, source classification, version
-resolution past the nanoDNS block, firmware-compatibility filtering, the parallel
-download pool, reboot-safe resume, and on-device SHA-256 verification.
-
-Install works through Sony's AppInstUtil. `sceAppInstUtilInstallByPackage` is
-unavailable from the homebrew payload context (rejected with `0x80B21163`
-outside the system process), so PatchDL routes through
-`sceAppInstUtilAppInstallPkg` — the simpler API that reads the PKG's embedded
-`content_id` and binds the install to the right title slot. Verified
-end-to-end: Dead Island 2 (`PPSA03099`) updated from 01.000.001 to 01.000.011
-on 11.60, including the cross-region shared-storage case where Sony serves the
-patch under a master title id.
-
-`/api/installstatus` reports installer progress once
-`sceAppInstUtilGetInstallStatus` finishes the queued task.
-
-Disc games still need the disc inserted for their patch to apply, which is a
-normal Sony requirement; that's why shadowmounts are download-only by policy.
+by Knutwurst
diff --git a/docs/images/startup-toast.jpg b/docs/images/startup-toast.jpg
new file mode 100644
index 0000000..99a4848
Binary files /dev/null and b/docs/images/startup-toast.jpg differ
diff --git a/docs/images/tile-homescreen.jpg b/docs/images/tile-homescreen.jpg
new file mode 100644
index 0000000..7cf2092
Binary files /dev/null and b/docs/images/tile-homescreen.jpg differ
diff --git a/docs/images/tv-browser.jpg b/docs/images/tv-browser.jpg
new file mode 100644
index 0000000..0be565b
Binary files /dev/null and b/docs/images/tv-browser.jpg differ
diff --git a/docs/images/ui-desktop.jpg b/docs/images/ui-desktop.jpg
new file mode 100644
index 0000000..749b365
Binary files /dev/null and b/docs/images/ui-desktop.jpg differ
diff --git a/docs/images/ui-mobile-settings.jpg b/docs/images/ui-mobile-settings.jpg
new file mode 100644
index 0000000..465ae49
Binary files /dev/null and b/docs/images/ui-mobile-settings.jpg differ