Actualización 2.214
2/8/2026
v2.214.0.0BETAMINOR
Seymour2 ago 2026
Canalización de i18n basada en el corpus oficial del juego (8 regiones) + bases en 7 idiomas + traducciones oficiales aplicadas (ES/FR/DE/IT)
- Fase 1 — Extracción del editor:
work/_extract_editor_strings.py→Text\editor_strings.json(251 claves resx + 2414 literales codificados en 96.axaml). - Fase 2 — Corpus del juego:
RuntimeTools/TextCorpusLab(utiliza analizadores FfxLib de producción) extrae 117 archivos/14,832 líneas de 8 regiones (new_uspc,new_sppc,new_frpc,new_depc,new_itpc,jppc/new_jppc,new_krpc,new_chpc) × 13 tablas (btl_txt, nombre/elemento/menú/estado/invocar/brazos/mmain/guardar/config/compilación/btlend_txt, w_name) →Text\game_{region}\. - Fase 3 — Enlace inteligente:
work/_linker.py(índice de palabras invertidas → (archivo,índice,espacio) + coincidencia exacta/subcadena/palabra rara) →Text\linkage.json(57 enlaces fuertes) +linkage_weak.json(523 candidatos). - Fase 4 — Aplicación:
work/_apply_translations.pyaplica las traducciones OFICIALES del juego aStrings.{es,fr,de,it}.resx(p. ej. "Sphere Grid"→ES Desarrollo/FR Sphérier/DE Sphärobrett/IT Sviluppo; "Overdrive"→ES/IT Overdrive/DE Ekstase) + generaterms_latin.json(34 términos). - Bases en 7 idiomas creadas:
Strings.{es,fr,de,it,ja,ko,zh}.resx(estructura completa, reserva EN). - Limitaciones honestas: JA/KO/ZH = tokens
<K:n>(font-banco aún abierto, documento existente); la alineación de las ranuras tiene lagunas en algunas regiones (p. ej. IT "Niente"); 2.414 literales codificados esperan la migración de claves (listo para el diccionario). - Documento:
docs/ai/I18N_GAME_CORPUS_PIPELINE_2026-08-02.md. Errores de compilación 0 (lab + editor). ### MENOR
v2.213.0.0
v2.214.0.1BETAREVISION
Seymour2 ago 2026
Código de texto de evento → enlace de glifo PROBADO en el EXE (desbloquea el decodificador JP/KO/ZH)
FFX_EventText_AdvanceCharGlyph(0x8B92E0) descompilado: contiene el código completo → mapeo de glifos que el documento 2026-06-06 marcó como abierto: 1 byte (≥0x30→idx = byte-0x30en la ranura ACTUAL) + pares de 2 bytes (conductores0x2C-0x2F→ ranura 0,0x2A-0x2B→ranura 1,0x28-0x29→ranura 2,0x26-0x27→ranura 3,0x06→ranura 5) con fórmulas lineales208*lead + next - K; ancho =*(char*)(SlotGlyphMeta + idx) * 0.25.FFX_Font_GetSlotGlyphMeta(0x8AC380) = puntero enbyte_183FA78[16*slot + 8940](mesa de 6 ranuras en 0x183FA78).- REGLA DE ORO: comentarios aplicados en la base de datos canónica (0x8B92E0, 0x8AC380, 0x183FA78 — OK1/OK2/OK3 Verdadero). Documento:
docs/reverse/FFX_EVENTTEXT_GLYPH_ELO_PROVADO_2026-08-02.md. - Desbloqueos: resolutor los tokens
<K:n>del corpus JA/KO/ZH (canalización i18n v2.214.0.0): solo falta la sonda RT2 para capturar los punteros SlotGlyphMeta en tiempo de ejecución. ### MENOR
v2.214.0.0
v2.214.0.2BETAPATCH
Seymour2 ago 2026
Remiem RT2 (2.ª prueba): posiciones VANILLA preservadas + cámara calculada a partir de geometría real
- Lección RT2: kino00_00 (Mushroom Rock) tiene una cámara de arriba hacia abajo: una cámara frontal derivada tiene una dirección horizontal indefinida (ojo arriba → el componente XZ es ruido) → el diseño automático del grupo y los monstruos están mal (empaquetados). Solución: para escenarios con posiciones NATIVAS en el contenedor (remiem), la composición conserva las posiciones básicas (grupo a la derecha/monstruos a la izquierda: la verdad del escenario) y solo ajusta el recuento/chunk2/cámara.
BuildVanillaMonsterPositions(nuevo): anclajes nativos monLive + extras derivados del centroide del grupo para recuentos superiores a la capacidad. - Cámara Remiem x4 calculada a partir de geometría (
ApplyRemiemX4BehindPartyCamerarefactorizada): h ahora proviene del grupo→monstruos delante de chunk3 (h 12.9→−83.9 en kino00_00) — antes era la elevación fija −104.6 + −25 (lo que hizo que la cámara estuviera de arriba hacia abajo). Elev −11.3 y dist 122.1 vainilla conservada. - Dif. quirúrgica: 73 bytes (en lugar de 132): solo ID de chunk2 + recuento + empalme (+16) + punteros estampados con re + cámara h; monLive posiciona bytes idénticos a vainilla (x4:
grew 4→4con las 4 coordenadas nativas). - El diseño automático derivado de la cámara permanece como una herramienta de inspección (
--auto-layout-check); la redacción utiliza la verdad del contenedor (el gancho sigue pasando por--auto-layout; el lab decide). - RT2
Needs Testing: Alquimia personalizado → Mushroom Rock x4 → Iniciar → la batalla debe abrirse con la cámara detrás del grupo (no de arriba hacia abajo), el grupo/monstruos en las posiciones del escenario nativo y los 4 eones en las ranuras. ### PARCHE
v2.214.0.1
v2.214.1.0BETAPATCH
Seymour2 ago 2026
i18n Ola 1: los términos oficiales del juego se migraron a claves resx con traducciones oficiales ES/FR/DE/IT (corpus del juego)
- 25 claves
Term*creadas en los 9 archivos resx (Strings.{,pt,es,fr,de,it,ja,ko,zh}.resx) con las traducciones oficiales del canalText\terms_latin.json(Cambiar arma→Armas/Armes/Waffe/Arma; Overdrive→Overdrive/Overdrive/Ekstase/Turbo; Estado→Condición/Estado/Estado/Estado; Libra→Libra/Libra/Analyse*/Shield/Acumular/Condena etc.). Los espacios en las ranuras de TI (Niente) retroceden honestamente a EN (desalineación documentada). PT/JA/KO/ZH = EN (no hay corpus oficial de PT; JA/KO/ZH esperan banco de fuentes - código → enlace de glifo probado en v2.214.0.1, sonda RT2 pendiente). - 41 literales codificados reemplazados con
{x:Static res:Strings.TermX}en 9 módulos activos (KernelCommands 16, MonEditor 17, CustomBossCreator 1, InventoryTracker 2, LiveBattleLab 1, MonsterAiEditor 1, SaveEditorCharacter 1, SaveEditorItems 1, WeaponGear 1) +xmlns:resagregado a los encabezados que faltan.MonsterAiEditor2intacto (descontinuado, regla estricta). - Script reutilizable:
work/_i18n_onda1_migrate.py(resx + axaml, sustitución exacta de atributo/valor, sin falsos positivos como "Cost Overdrive"). - Puerta: Errores de versión 0 en la versión; conjunto 381/381 PASS (incluye
StringsTestsdel carril). Ola 1 pendiente: humo manual en el editor (cambie PT/EN y abra los 9 módulos). ### PARCHE
v2.214.0.2
v2.214.2.0BETAPATCH
Seymour2 ago 2026
i18n Ola 2: se migraron 261 literales repetidos a 51 claves comunes EN/PT (barrido de 91 módulos)
- 51
Common*claves creado en los 9 resx (EN neutral + PT traducido; ES/FR/DE/IT/JA/KO/ZH = EN : no hay corpus oficial para el editor UI) que cubre los 56 valores con ≥3 ocurrencias (herdado27x,Fechar20x,valor8x,Aplicar7x,Foco6x,Prévia humana5x,BIBLE OF SPIRA4x,Pesquisar habilidade por nome ou hex4x,+ fase comum/+ última fase/remover fase3x,Exigir HP <3x,Comando (0x####)3x, PosX/PosY, US Descripción...). - Reutilización de claves existentes:
Session Controls→SessionControls(20x),Salvar→ActionSave(6x): cero duplicación. - 261 reemplazos en 91 archivos .axaml con
{x:Static res:Strings.X}+xmlns:resgarantizados.MonsterAiEditor2*excluido del barrido (regla estricta descontinuada: 0 diferencias verificadas). - Scripts:
work/_i18n_onda2_migrate.py(COMÚN/REUTILIZACIÓN centralizado, paseo recursivo con exclusión) +_i18n_onda2_check.py(0 literales residuales). - Puerta: Errores de versión 0 en la versión; conjunto 381/381 PASS. Olas 1+2 acumuladas: 302 literales migrados (2,414 → 2,112).
- PENDIENTE: humo manual PT/EN en el editor; Ola 3 (literales únicos por archivo) en progreso. ### PARCHE
v2.214.1.0