1 de xuño de 2024
Dende o pasado 31 de maio atópome
traducindo "Pilotwings", da SNES, un dos dous xogos (canda Super Mario
World) que tivemos na casa dende o primeiro día que os Reis Magos
trouxéronno-la SNES.
En verdade levarei algo máis dunha semana rondándolle á idea de traduci-lo xogo, curioseando a tradución feita ó castelán por Wave (que podedes atopar aquí), descifrando as táboas de tradución e así. Botábame para atrás, porén, non dar atopado como troca-la pantalla de título (tampouco na versión de Wave está feito) e, por iniciativa persoal, sempre que podo intento engadi-lo "GZ" no lugar onde vai o "TM". Ó mesmo tempo estiven ollando a ROM de "PLOK", outro xogo de SNES, mais aínda que din atopadas as grafías semella que me ían dar moitos problemas redibuxalas.
Foi onte cando abrín outra vez a ROM no Crystaltile (programa para decodificar en tiles de imaxe o código hex) e xogando con diferentes "profundidades" de bytes predeterminadas que atopei en linguaxe GBA-4ppb a pantalla de título en $44000; e nese momento decidín lanzarme á tradución completa do xogo.
Polo de agora só teño a pantalla de inicio e maila mensaxe de derrota traducidas (tamén en profundidade GBA-4ppb, e tampouco traducida na versión de Wave):
Con esta menaxe tiven unha pequena historia, e é que nun primeiro momento puxen "REMATOU!" antes de comprobar como ía quedar (pensaba que saería todo na mesma liña, pero logo quedaba a palabra en dúas liñas co "A" cortado pola metade, de modo que tiven que atopar esta solución alternativa.
O máis difícil foi debuxa-lo "X", xa que o resto de letras podía reutilizalas de "GAMEOVER" ou fabricalas doado a partir das letras previas (que foi o caso do "D" e o "G", debuxados a partir do "O", e agora que estou escribindo todo isto decátome que puiden reutiliza-lo "G" tamén pero non me decatei... bueno, erro menor). Como digo, o "X" tíveno que facer a man, usando de base o "V" aínda que só fora para establecer un grosor para as dúas aspas; o resto foi crealo ós poucos, e non penso que me salira demasiado mal.
O
próximo paso sería facer unha primeira tradución en .txt e ver qué
palabras con til debería crear. Nunha primeira ollada podería utilizar 8
tiles gráfico (como "j", "k" ou "\" por citar), que son insuficientes
para engadir tódalas vogais acentuadas (maiúsculas e minúsculas) e mailo
"ñ", de modo que teño que ver cales pasan o corte (o máis seguro é que
só faga o "Á" e o "É" nas maiúsculas, pero quero estar seguro). Mentres o
fago seguro que atopo outros detalles que ir facendo tamén.
Calquera novidade irei comentándoa por aquí.
Un saúdo.
2 de xuño de 2024
Esta mañá de domingo adiqueina a ir corrixindo detalles gráficos da tradución (algunha liña mal feita, tradución de parámetros de voo, etc) cando decidín meterme a traduci-las misións:
Esta pantalla ten a característica de que non é unha pantalla normal senon un "mapa" en Modo 7, similar á pantalla de título dese xogo onde troquei "TM" por "GZ", pero coa diferenza de que aquí non teño que modificar grafías (bueno, algunha si, pero non é problema ese) como troca-la posición destas grafías a onde eu queira.
Veredes, cando troquei o "TM" polo "GZ" o que fixen foi directamente sobreescribi-las grafías "GZ" nos espazos que ocupaban previamente "TM"; como o lugar onde tiñan que estar era o mesmo, non facía falla facer nada máis.
Por contra, nesta pantalla hay letras que aparecen o número mínimo de veces preciso no tilemap, pero que son referenciadas varias veces cando se debuxa o "mapa":
Podedes ver, por exemplo, que "LIGHT PLANE" repite dúas veces o "L" aínda que na súa sección só aparece unha vez. O mesmo con "ROCKETBELT", etc.
Descoñezo como é o protocolo que usa o xogo (ou calquera xogo) para debuxar mapas en modo 7, así que andiven ollando foros de internet pero seica a ROM MAP do xogo non está investigada dabondo aínda que sexa un xogo bastante popular da época. Así que tomeu a asunción de que seguiría unha lóxica de relación tile - hex desta maneira: 1º tile = 00; 2º tile = 01, 3º tile = 02, etc.
Desta maneira tería que, por exemplo, "SKYDIVING" escribiríase na ROM en linguaxe hex como "808182838485848687", e o mesmo co resto. Despois de varios intentos fallidos usando o buscador de texto hexadecimal creei unha táboa específica para este caso, e revisei visualmente os $80000 bytes da ROM a ver se otopaba así as palabras... mais aparte de falsos positivos (é doado atopar secuencias de "8081828384858687" deseguido elas ou mesmo con bytes intercalados (que é o que en verdade espero), mais non "808182838485848687" con ese "84" entre medias).
Así que despois de tolear moito con isto e probar outras aproximacións igualmente infructuosas (como por exemplo non asumir que esa era a táboa e que de feito usábase outra forma de codifica-los gráficos no Modo 7) decidín cortar polo san: fixen copia da ROM e usei esa como cobaia do que mellor se me da facer: destruir código para localiza-lo que quero.
O plan sería primeiro facer un "savestate" xusto antes de que apareza esa pantalla, e despois (agardando que non reventara o xogo) troquei tódolos "BF" que hai na ROM (arredor de 800 en total) por "C2", o que viría sendo o "P" de "LIGHT PLANE" polo "E" nese mesmo grupo de palabras.
Se estaba no certo e o xogo usaba a táboa que deducira previamente como a forma de codifica-lo nome en pantalla, a misión pasaríase a chamar "LIGHT ELANE", asumindo que o xogo non reventara entre pantallas pois estaba trocando tódolos "BF" da ROM e non só o que referencia ó nome da misión.
Pois pasou isto:
Non só non reventou, senon que quedou confirmado que o meu proceder era o correcto. Así, o seguinte paso era facer noutra copia cobaia un troco por cada $10000 bytes, e ir afinando onde poderíase atopar o que procuro.
Desta maneira cheguei a delimita-lo que procuro no sector entre $40000 e $4FFFF; que ten lóxica, e de feito nun primeiro momento xa botara un ollo ó miúdo nos arredores, pois é aquí tamén onde se atopan os tiles gráficos das misións, concretamente no $47000:
Deste xeito, o seguinte paso será repeti-lo proceso neste sector ata que a base de delimitar dea atopado onde exactamente é que se atopan os bytes que procuro. A partir de aí só sería redebuxa-los tiles (que xa teño localizados para trocar, como podedes ver na imaxe previa) e despois reescribir qué tiles van en que lugar para que se lexa ben.
Pero antes de facelo quería deixar constancia de todo o proceso antes de que se me esqueza, así queda rexistrado e podo facer outras cousas (como cociñar, que van sendo horas) antes de ver se dou acadada unha solución satisfactoria sen máis contratempos. E tamén, por que non dicilo, que non fai falla ser un experto nun tema para dar atopado solucións (eu non son programador nin teño estudos de informática, xa o podedes ver polos métodos pouco ortodoxos que uso), só ter vontade dabondo.
Deica.
15:15
Non sei como din nin como foi tan rápido, pero velaquí está:
Finalmente os nomes atopábanse de $4EEA1 en diante, mais a súa codificación era tan abstracta que non é estraño que non o dera vista nas pasadas visuais que din nin nas pescudas automáticas. Mesmo ollándoo directamente non era nada obvio a que se podía referir.
Por exemplo "LIGHT PLANE" estaba codificado tal que así
64 BA 02 00 BF BA 62 C0
Que se podería traducir, segundo deduxen tras xogar co código e comerme varios glitches, como:
64 BA -- "debuxa BA e mailos 4 seguintes tiles" (no caso, "LIGHT")
02 -- descoñezo, pero tocalo destrúe a pantalla nunha sopa de glitches... podería ser "debuxa os seguintes tres bytes tal cual se pida", mais igual non conseguín domalo.
00 BF BA -- "debuxa 00, BF e BA" (no caso, "_PL")
62 C0 -- "debuxa C0 e mailos 2 seguintes tiles" (no caso, "ANE")
Así, con estas supocisións fun redebuxando os tiles e reescribindo o código até obte-los nomes que vedes.
O máis sinxelo foi "ALA DELTA" (sí, "ala delta" é válido segundo Esther de Dígocho Eu), seguido de "AVIONETA" e "PARAPENTE" por igual; o máis difícil foi "FOGUETES", aínda que cando decidín optar por ese nome tampouco foi unha odisea, tan só debuxar tiles específicos en troques de copiar xa existentes). A misión segreda de "Jet-Heli" aínda non a traducideri porque non se pode acceder a esa mensaxe salvo con Gameshark e tampouco da moito de si, pero en todo caso a súa equivalencia sería "COMBATE", por dicir algo.
Como sempre que acado algo que non é obvio atópome moi ledo; xa sei que o teño dito durante os proxectos de Zelda SNES e Arcana, pero encántame dar atopado solucións deste tipo, e a cada unha nova que acado é outra experiencia que teño para problemas futuros.
Verei a ver se atopo algo máis que traducir antes de porme coas mensaxes dos instrutores (dos que xa teño novos nomes en mente, hehe).
Un saúdo.
5 de xuño de 2024
Entre traballo e unha gripe de verán que pillei e me deixou mallado apenas din avanzado dende a derradeira vez; comecei a facer nun .txt unha primeira tradución os textos dos instructores, á espera de facer conteo de cantas vogais con til (e se son maiúsculas ou minúsculas) para saber cales teño que redebuxar e que palabras sobrantes reformular para encaixalo todo.
Nestas que me atopei cunha sección cos textos de aviso durante as misións, e facendo unhas probas aleatorias para comprende-la súa lóxica interna decateime que as grafías que usan son diferentes ás do resto do xogo (en concreto atópanse en $74000 cunha profundidade de 1bpp), así que decidín facer unha primeira proba con estas e converte-las grafías sobrantes (J, K, W, etc) nas vogais que quero. Aquí unhas probas.
Vale, a última nos ten tils, pero faime moita gracia, hahaha.
Con isto que quede constancia que o proxecto segue avanzando con tino aínda que algo pausadamente.
Un saúdo.
8 de xuño de 2024
Atópome atascado no inferno que é a codificación da pantalla do diploma (onde recibe-lo contrasinal unha vez supera-las probas). O código atópase en $4f000 na ROM.
Ó comezo pensaba que só darían problemas os gráficos (non atopo o "LICENSE" na ROM, e lendo os poucos foros de internet onde debaten algo de modeo de Pilotwings semellan estar comprimidos) --> https://www.romhacking.net/forum/index.php?topic=31179.0/1000
Pero o problema é maior: non pensara no seu momento que esa mesma pantalla podían reutilizala para o resto de diplomas, nos que só teñen que trocar unha única letra ("A" por "B", por exemplo), e para iso existe unha especie de codificación moi estraña onde semellan facer unha "copia espello" da mensaxe principal e logo por riba del plantan unha serie de plantillas coas diferentes palabras trocadas (entre "SILVER", "CLASS", "A" e "EXPERT", sumando alomenos catro) codificadas de forma que teñen o seu lugar específico na retículo e obligando á persoa que teña pouca paciencia a tragar con traduccións como "esta persoa obtivo o permiso B CLASE LICENZA para voar"... bastante noxento, dende logo.
Non é o meu plan tragar con iso; dende a miña perspectiva como consumidor de videoxogos considero esa parte como "traducir por traducir", sen espírito ningún. Bastante é que o alfabeto que usa tampouco está visible na ROM (é outro a maiores dos que xa existen, tamén comprimido). Levo dende onte intentando descifralo e comendo demasiadas sopas de glitches que non fan senon quitarme as ganas de seguir durante horas ou polo resto do día (teño outras cousas que facer tamén), pero vou descifrando pouco a pouco o código e, como deixo arriba escrito, algo vou interpretando correctamente...
A pregunta é, darei manexado este código? Até o de agora podo dicir que o traballo que fixeron neste xogo é bastante limpo, resistente a glitches (toca-lo código non altera o xogo incluso se reventa as imaxes da pantalla) e incluso cunha lóxica que ata un analfabeto informático coma min pode ir descifrando ós poucos.
A miña intención, dende logo, é facer unha boa tradución, e non unha calquera. Isto é, intentarei comprende-lo código dabondo como para poder face-los trocos que rematen cun texto que sexa agradable de ler (ou alomenos que non dea arcadas).
Pero de non dalo acadado simplemente deixarei estas pantallas sen traducir e continuarei o traballo. Sinceramente non agardaba atoparme con este problema aquí, pero tampouco penso facer unha trapallada polo feito de "traducir por traducir"; isto é, prefiro que estea en inglés a que a tradución sexa un galego sen gramática galega. Así de simple.
9 de xuño de 2024
Finalmente optei por unha solución intermedia: traduci-la metade dos textos e deixar a outra metade sen traducir:
Dentro do malo, non queda de todo mal: xustifícase a parte en inglés o carácter "internacional" do diploma, o que me permite non toca-lo código das letras azuis (en inglés) por montar un cristo continuado de glitches cada vez que intento tocar algo.
A miña idea era que as letras azuis dixeran "LICENZA CLASE A", aprobeitando que "licenza" e "clase A" posúes 7 caracteres cada unha (contando espazos), polo que semellaba doado intercambialas... pero, como digo no apartado previo, a codificación está feita por unha serie de capas que aínda que máis ou menos podía diferencialas non me deixaban marxe ningún para troca-las palabras como quería sen causar cristos benditos. De xeito que, preliminarmente, queda así.
Nótese os poucos naturais "ESTE DIPLOMA", "ESTA PERSOA", "ESTA LICENZA" e "ESTA CLAVE"... teñen cousa, pero a codificación está feita para que o "ES" de "ESte diploma" e "ESta persoa" compartan caracteres, así como "ESTA licenza" e "ESTA clave" por completo... non é casualidade que estas palabras estean unhas enriba doutras...
Sinceramente: menuda merda de codificación, en serio, tal e como fixeron e co espazo gastado máis lles valía ter feito 10 diplomas independente que non 3 que fixeron con 5 ou 6 capas que ocupan cada unha case o mesmo que un diploma enteiro... non lles podo culpar pois non creo que esperaran localizar este xogo noutros idiomas, pero xesucristo vaia trapallada.
Pasado isto, seguirei facendo a tradución ós poucos e a ver se regaño algo de afouteza porque de certo que me deixou baldado tanta impotencia e reventa-la cabeza contra este muro...
Un saúdo.
21 de xuño de 2024
A tradución avanza decote, sen pausas pero sen présa; xa están traducidas tódolos diálogos dos instructores en tódolos cursos e misións (agás o helicóptero), agora estou entrando na zona das felicitacións (ou rapapolvos) polas puntaxes, e despois entrarei no helicóptero e comproba-los derradeiros textos.
É pouca cousa, pero pódeme levar tranquilamente unha semana porque tampouco lle adico demasiado tempo estas semanas. Nótase a diferencia con Link to the Past, onde dispuña dunha ferramenta para converti-los textos en formato HEX sen preocuparme das lonxitudes destes; e tamén con Arcana, onde o formato de texto era idéntico ó de Windows e podía escribir frases enteiras sen deter... con este Pilotwings (como con Pokémon) teño que ir letra a letra pensando na súa conversión dende formato HEX, e cando os espazos dispoñibles son moi axustados perdo tempo en buscar como encaixa-las palabras... e tampouco é que a "trama" dea para moito á imaxinación, polo que ás veces adícolle uns minutos a última hora do día e xa.
Agardo poder lbera-la tradución entre finais de xuño e comezos de xullo, unha vez comprobe a maior cantidade posible de textos. Mentres tanto, que esta miúda actualización sirva como demostración de que a tradución non está abandoada, somentes pouco motivada, hehe.
Un saúdo.
23 de xuño de 2024
Hoxe acabo de atopar outra desas decisións de programacións que non remato de entender por parte do equipo de Pilotwings:
En primeiro lugar teño que deixar claro que troquei os nomes dos instructores a outros relacionados con aves galegas; así, "Tony" pasa a chamarse "Martiño", "Shirley" chámase "Anduriña", "Lance" é "Mazarico" e por último coñécese a "Big Al" como "Moucho". Parte desta decisión é ter trocado o "y" polo "ó", polo que "Tony" e Shirley" tiñan que troca-los seus nomes... pero tamén porque estes novos nomes teñen algo máis de temático... non?
O caso: atópome traducindo os textos previos ás misións do helicóptero, en concreto o primeiro onde coméntanche que os instructores foron secuestrados... pois tra-la tradución saíame isto, sen máis:
Por que isto? Resulta que tras "Martiño, " tiña que vir "Anduriña" e o resto do parágrafo, pero por algunha razón o texto colapsaba aí... tras un breve estudo relacionei que o código HEX "00" que codifica a letra "A" causa que, nesta pantalla e únicamente nela, o texto colapse coma se fora un HEX "FF" calquera (normalmente úsanse os bytes "00" ou "FF" para indicar que un texto ou comando ten que rematar, un ou o outro, e estes textos xa usan "FF" para indicalo polo que usar tamén "00" paréceme estraño)...
Se quería nomear ós instructores só tiña dúas alternativas:
1º- troca-lo nome de "Anduriña" por outro diferente que non leve unha "A".
2º- troca-la posición da grafía "A" con, por exemplo, "Q", de modo que ó escribi-lo "A" (agora con HEX "20" que previamente codificaría o "Q") o texto non colapse.
A primeira opción non me remataba de chamar, porque Anduriña é un nome que me gusta moito e o paxaro tamén é moi vistoso... mentres que a segunda opción obligaríame a trocar tódolos "A" que hai en tódolos textos (tanto nas mensaxes coma nos nomes do equipo dos créditos, por exemplo) así coma tódolos "Q"... isto é, troca-los "00" por "20" e viceversa, ademáis dos tiles de cada unha destas letras.
Por suposto, decidinme polo obvio: a segunda opción, a que dá máis traballo.
Aquí podedes ver como troquei o "A" polo "Q" e viceversa, aparte doutras grafías (o "j" polo "á", o "k" polo "é", etc)... despois disto xa me puxen a mudar tódolos HEX "00" por "20" para que non apareceran cousas como "Qnduriña" e troques de "Anduriña" e demais.
Agora si, o texto do helicóptero aparece así:
E si, o texto é algo diferente ó orixinal, pero quen estea xogando Pilotwings pola trama que erga a mán. Eu dende logo non, e unha risa de cando en cando vén ben (que por certo, antes os inimigos ían ser o "Club de Alpinismo", pero durante o meu estudo para confirma-lo erro do "A" troquei o nome por "Montañismo", e así quedou por cansansio mental).
En fin, como vedes este é un exemplo de tantos que me atopo (e a maioría xa deixei rexistrados neste artigo) que non teñen senso para min pero que traen moito traballo sen motivo e fan que non teña tanta gana por apurarme a remata-la tradución...
Un saúdo.
23:30
En serio, este xogo estame enchendo de carraxe.
Primeira imaxe: medalla cando pása-lo primeiro helicóptero:
Ben, xa aí vólvese repeti-la ESTUPIDEZ de copia-lo "YOU" de "YOUR" na liña de abaixo, polo que ou ben hai que crear un texto artificial que encaixe por casualidade nesta decisión de programación totalmente arbitraria, ou ben enchelo de espazos e pasar de todo. Espazos, pois.
Vale, pois unha vez feita a tradución quédame isto:
Aí hai varias cousas, pero a que máis me toca o nariz é por que carallo aparecen ese "RA" e "DE" noutra cor que non sexa o azul, cando estou usando os mesmos tiles (que si, na ROM as tres primeiras liñas usan un set de letras diferente ó da última liña, polo que entendía que a diferencia era a cor... pero non)
Non hai que ser moi listo para ver que as letras arbitrariamente brancas nesa liña coinciden cos espazos entre letras azuis do orixinal inglés... pero eu pregúntome POR QUE! Por que o programador pensou que era preciso crear un código específico para darlle diferente cor a estes espazos (que total, non se ían ver) en troques de deixar unha única paleta para toda esta liña... en serio, non o entendo!
Estou seguro que no código dos arredores hai unha forma de "maskear" estas letras de azul, pero mira, en serio que estou canso destas subnormalidades, así que prefiro encaixar o mellor que poida aceptando esta estupidez:
De modo que así queda; aproveito ademais que con "DIVISA" eludo emprega-lo "ALAS" que á súa vez empregaba pola miña imposibilidade de crear unha "A" con til que me permitira escribir "ÁS"... moito subnormalidade programática, por parte desta xente, coa que teño que lidiar.
Un saúdo.
25 de xuño de 2024
Dacordo. Por min está rematada a tradución.
Tomarei unhas horas para pulular por aí e ver se hai algún erro tonto que se me pasara ou algunha parte que poida traducir mellor antes de mandalo a Romhacking.net, pero quero quitarme de diante este proxecto dunha vez.
E por se vos preguntabades: si, a pantalla de Divisa de Voo Ouro ero moitísimo peor que a da Divisa Prata, basicamente porque as "palabras espello" que contiña estaban entre medias das liñas, facendo imposible sortealas e obligándome a ter que encaixar dalgunha forma un texto lexible aínda que soara totalmente artificial. Quen pase o xogo xa o verá.
Un saúdo.
(Última actualización o 23 de xuño de 2024)
Ningún comentario:
Publicar un comentario