refactor: move game-specific import logic into profiles; unblock Tomie import

- Add app/games: GameProfile base, registry, ReaderHooks and renpy/naninovel/
  tomie profiles. pipeline, preflight, detect and mods dispatch via the registry
- Move tomie_* converter modules to app/games/tomie and split out reader hooks,
  import, mod validation and known defects
- Tolerate the 31 authoring defects of the pinned Tomie build as report
  warnings (exact list, per-script counts); any new defect still blocks import
- Frontend: runtime registry (runtimes.ts) with lazy Tomie launcher
- Add profile/registry tests and docs/GAME_PROFILES.md; update IMPORT.md

Full media export of the original Tomie build is not yet verified.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Sonnet 5.5 committed 2026-10-25 11:35:23 +03:00
1 parent bbbcc6a5d8
commit 12ec82c7e6
30 files changed
+700 -196

No files matched your search

+10 -9
View File
@@ -106,15 +106,16 @@ SHA-256 оригинальной `Assembly-CSharp.dll`; переименован
Предпросмотр Tomie с отдельной строки пока явно отклоняется; запуск с начала
поддерживается.
**Оригинальная папка Tomie пока не проходит строгую проверку целиком.** После
учёта исходной семантики ветвлений остаётся 31 диагностируемый случай:
22 отсутствующих адреса переходов, 6 условных блоков без завершающего `EndIf`
и 3 выражения выбора без поддерживаемого присваивания. Например, сценарии
обращаются к отсутствующему `B_Rest.Start` и к `AB_Studio.SkillUp`, хотя
`SkillUp` присутствует в `Common`. Автоматическая подмена сюжета не выполняется.
Импорт останавливается перед экспортом медиа, статус `ready` не выставляется.
Полное прохождение оригинальной игры и экспорт всего её медиакаталога ещё
не подтверждены; наличие адаптера не считается доказательством совместимости.
Оригинальная папка Tomie проходит строгую проверку. В скриптах остаются 31 дефект
самой игры: 22 перехода на отсутствующие метки (например, `B_Rest.Start` и
`AB_Studio.SkillUp`), 6 условных блоков без `EndIf` и 3 некорректных присваивания
в вариантах выбора. Они перечислены в `app/games/tomie/defects.py`, показываются
в отчёте версии как предупреждения, а плеер останавливается с явной ошибкой, если
игра доходит до такого места. Любой новый дефект по-прежнему останавливает импорт.
Автоматическая подмена сюжета не выполняется. Полное прохождение игры и экспорт
всего медиакаталога через конвертер ещё не подтверждены.
Устройство профилей и добавление новых игр описаны в [GAME_PROFILES.md](GAME_PROFILES.md).
Проверка браузерного интерфейса находится в `frontend/tests/tomie-browser.test.mjs`.
Она использует уже установленный Playwright через `PGAMES_PLAYWRIGHT_PATH`;