﻿OKHOTSK RU v0.8.17 — TITLE / POST-INTRO CARDS / ENDING CREDITS
==========================================

ЧТО НАЙДЕНО
------------
Титульное меню и финальный staff roll используют не основной scenario-font, а общий
40-glyph CHR-ресурс. Его packed stream начинается в PRG offset $03839. Ресурс
распаковывается в CHR-RAM и содержит цифры, @, A-Z и несколько символов.

TITLE SCREEN
------------
Raw tile tables:
  PRG $3CE18, 10 bytes: GAME START  -> НОВАЯ ИГРА
  PRG $3CE22, 10 bytes: CONTINUE    -> ПРОДОЛЖИТЬ
  PRG $3CE2C, 18 bytes: @ 1987 ARMOR PROJECT -> @1987 АРМОР ПРОЕКТ
  PRG $3CE3E, 16 bytes: @ 1987 LOGINSOFT     -> @ 1987 ЛОГИНСОФТ

Для полного «ПРОДОЛЖИТЬ» descriptor CONTINUE расширен с 8 до 10 тайлов.
Чтобы не сдвигать следующий код, ARMOR copyright сокращён с 20 до 18 тайлов
(убран пробел после ©). Его pointer сдвинут с $3CE2A на $3CE2C. Общий title-data
block остаётся ровно 54 байта и заканчивается на том же адресе $3CE4D.

ENDING STAFF ROLL
-----------------
Credits stream начинается около PRG $23000. Каждое английское поле заменяется
строкой той же длины: короткие варианты дополняются пробелами. Поэтому control bytes,
указатели, задержки и последовательность прокрутки остаются на прежних местах.

Переведены все найденные роли: РОЛИ, СЮЖЕТ, ГРАФИКА, МУЗ., ПРОГРАММА,
ПОМОЩЬ СЦЕН., ОЦИФРОВКА ГРАФ., ТЕМА УБИЙСТВА, ЗВУК. ЭФФЕКТЫ,
МУЗ. ПРОГРАМ., ПОМОЩЬ ПРОГР., ПОМОЩЬ, КООРД. ПРОГРАМ., ДИЗАЙН ЛОГО,
ДИЗАЙН ШРИФ., ТЕСТ ИГРЫ, РЕКЛАМА, ПРОДЮС., ОСОБАЯ БЛАГОДАРНОСТЬ.
Все имена CAST/staff переданы кириллицей в пределах исходной ширины.

POST-INTRO CARDS (v0.8.12)
--------------------------
Runtime-QA по FCEUX save states обнаружил ещё две заставки сразу после вступления.
Они используют тот же shared glyph set $80-$A4, но отдельные raw-tile descriptors/data:

1) PRG descriptor $3EC83:
   LOGINSOFT PRESENTS (18 tiles, x=7, ptr=$EC8B)
   -> ЛОГИНСОФТ ПРЕДСТ. (18 tiles, x=7, ptr=$EC8B)

   Полная русская строка не помещается в исходные 18 тайлов. v0.8.12 ошибочно
   перенесла её в $D938, но этот адрес оказался хвостом 64-byte таблицы атрибутов сцены
   $D913-$D952 и вызывал серые буквы в диалогах. Начиная с v0.8.17 используется
   сокращённая «ЛОГИНСОФТ ПРЕДСТ.» строго в штатном поле $EC8B.
   Код и таблицы вокруг не перемещаются.

2) PRG descriptor $3ECE7 / data $3ECEF:
   THE YUJI HORII MYSTERY
   -> ДЕТЕКТИВ ЮДЗИ ХОРИИ

   Исходное поле уже 22 тайла. Русская строка центрируется пробелами и остаётся
   строго внутри старого payload, поэтому descriptor и следующий код неизменны.

Сохранённые v0.8.11 save states подтвердили исходные nametable sequences:
  LOGINSOFT PRESENTS: row 13, x=7, штатное поле 18 tiles;
  THE YUJI HORII MYSTERY: row 13, x=5, 22 tiles.
Статический preview на CHR-RAM этих save states показывает корректные русские строки.

FONT REMAP
----------
Credits используют коды 01-25, title — соответствующие tiles $80-$A4.
Для кириллицы перепрофилированы только glyph slots этого отдельного 40-glyph ресурса.
Сохранены raw indices 01/07/08/09/0A для цифр 1/7/8/9 и @. Остальные используемые
слоты содержат нужные русские заглавные буквы и точку. Основной RU font ROM не меняется.

ИНСТРУМЕНТ
-----------
  tools/patch_title_credits_ru.py

Скрипт проверяет ожидаемые исходные/уже-патченные bytes и идемпотентен.
build_project.py запускает его после patch_phone_names_ru.py.

QA
--
Статическая проверка v0.8.10: PASS. verify_full_rom проверяет:
- четыре title fields;
- все локализованные credits fields;
- соответствие кириллических glyphs основному русскому шрифту;
- сохранность остальных ранее сделанных патчей.

Нужно проверить в эмуляторе/на железе:
1) титульный экран;
2) полный staff roll от первой строки до последнего copyright;
3) отсутствие битых/пропадающих glyphs при смене сцен.
