Miami Graphics
Лаунчер для управления Redux-модами в GTA V. Эта документация описывает, что лаунчер делает внутри: как открывается RPF, как считается diff против чистого baseline, как пересобирается архив и пересчитываются хеши, как работает обход блокировок и админ-панель.

Содержание¶
Пять сценариев, которые ломают наивный install. Что мы делаем вместо этого.
RPF8: header, TOC, AES + NG ключи, вложенные архивы, RageLib.GTA5 fork, ArchiveFix.
Что вытаскиваем из мода: minimap.gfx, hud_reticle.gfx, core.ypt, bloodfx.dat, armor, timecycle.
SHA-256 сравнение, рекурсивное в nested RPF, генерация Replace/Import/Delete actions.
Pipeline в 8 шагов, preflight CLEAN/LAST/DIRTY, Smart Rebuild с .bak rollback, UpdateRpfMutex.
Snapshot vs Clean, manifest, atomic temp+rename+FlushToDisk, FileLockDetector через Restart Manager.
Registry, Steam, Epic scan, FileVersionInfo, AppData layout, gta_versions whitelist.
Multi-version модель, donor cache, история редактирования .gfx через swfmill + jpexs.
TLS ClientHello фрагментация, WebView2 перехват запросов, DoH, AssetCache, Zapret integration.
Inno installer + Supabase app_versions, installed_version.txt для single-file publish.
CodeWalker провал, RageLib v1 → v2 (4 минуты → 6 секунд), tracers сага, конфликты ганов, шейдеры.
12 секций: redux, gunpack whitelist, армор, DLC import, library, presets, PRO players, popularity.
Стек¶
| Слой | Технология |
|---|---|
| Shell | WPF, .NET 8, single-file publish |
| UI | React 18, TypeScript, Vite, Tailwind, Framer Motion |
| Bridge | JSON-RPC поверх window.chrome.webview.postMessage |
| RPF parser | RageLib.GTA5 (fork), ArchiveFix.exe |
| 3D в UI | React Three Fiber, Three.js |
| Headless рендер | Node, Puppeteer, headless Chrome, SwiftShader |
| База | Supabase (PostgreSQL + REST + RLS) |
| Хранилище | Cloudflare R2 (S3-compatible) |
| CDN | CloudFlare Worker с aggressive cache |
| DPI bypass | TLS ClientHello фрагментация (custom HttpClient handler) |
| VPN fallback | AmneziaVPN на Swiss VPS (84.234.18.182) |
| Installer | Inno Setup 6 |
С чего начать¶
- Если впервые смотришь — раздел 02. Почему это не «скачать и заменить». 5 минут, обзор.
- Если хочешь понять ядро — 03. Формат RPF → 06. Инжект → Smart Rebuild.
- Если интересны провалы — 13. История попыток. Все шесть итераций по порядку с цифрами.
- Если ищешь конкретный экран — 19. Скриншоты.