No sé de dónde saqué ayer lo del ancho variable que dije, pues no existe por ningún lado. Todos los caracteres tienen el mismo ancho.
No conozco exactamente cómo va la estructura de los ficheros del juego, pero eso deben saberlo los que hicieron la traducción al inglés, así que ellos podrán mirarlo mejor, que yo sólo lo he hecho por encima.
La fuente es un codepage 932, con caracteres de 2 bytes para la parte SJIS, que esos no te interesan (la fuente enorme de 16x18) y caracteres ANSI de 1 byte para la parte occidental, ASCII y KATAKANA, (la fuente pequeña de 8x18). Para más info consulta los enlaces de abajo con los codepages y así sepas los códigos de cada carácter. No puedes usar todos los códigos de 1 byte porque algunos son los bytes de control que se usan para usar SJIS, así que tendrás que ver qué codigos son los que modificas para poner los 16 caracteres propios del español (¡¿áéíóúüñÁÉÍÓÚÜÑ) donde puedas. Imagino que la tabla de códigos usados estará en algún otro lado, seguramente en el BOOT, ya que en la fuente están todos los caracteres seguidos, y en la tabla del CP932 verás que hay huecos.
La fuente está en el fichero "xfrdn.ccs", y el fichero se compone de varias secciones que comienzan con XX-XX-CC-CC. El formato que he visto es:
00000000: 01-00-CC-CC, inicio
- 4 bytes, número de bloques de 32 bits
- 4 bytes, signatura "CCSF"
- nombre del fichero sin extensión
- ???
0000003C: 02-00-CC-CC
- 4 bytes, número de bloques de 32 bits
- ??? (están los nombres de los ficheros que incluye)
000000CC: 03-00-CC-CC
- 4 bytes, número de bloques de 32 bits (en este caso no hay, así que cero)
000000D5: 00-24-CC-CC, fuente CP932
- 4 bytes, número de bloques de 32 bits
- 4 bytes, 1
- 4 bytes, 1
- 4 bytes, longitud en bytes de lo que sigue
- X bytes, nombre ASCIIZ del fichero, "GF4.BIN"
- X bytes, ???
- 000110: 2 bytes, 0x1C18
- 000112: 1 byte, 0x10, ancho
- 000113: 1 byte, 0x12, alto
- 000114: 2 bytes, 0
- 000116: 2 bytes, 0x0090, bytes por carácter, ancho * alto / (8bits/4bpp)
- 000118: 4 bytes, 0x00000E48, número de caracteres SJIS
- 00011C: 4 bytes, ???
- 000120: 4 bytes, ???
- 000124: 4 bytes, ???
- 000128: 4 bytes, ???
- 00012C: 2 bytes, 0x1C18
- 00012E: 1 byte, 0x08, ancho
- 00012F: 1 byte, 0x12, alto
- 000130: 2 bytes, 0
- 000132: 2 bytes, 0x0048, bytes por carácter, ancho * alto / (8bits/4bpp)
- 000134: 4 bytes, 0x0000009D, número de caracteres ASCII
- 000138: 4 bytes, ???
- 00013C: 4 bytes, ???
- 000140: 4 bytes, ???
- 000144: 4 bytes, ???
- 000148: fuente SJIS 16x18, 4bpp low-endian
- 081208: ???, 4 bytes por cada carácter, 4*0x0E48
- 084B28: fuente ASCII, 8x18, 4bpp low-endian
- 087750: ???, 4 bytes por cada carácter, 4*0x009D
000879C4: 00-24-CC-CC, ???
- 4 bytes, número de bloques de 32 bits
- 4 bytes, 2
- 4 bytes, 2
- 4 bytes, longitud en bytes de lo que sigue
- X bytes, nombre ASCIIZ del fichero, "GF4C.BIN"
- ???
00087A38: 05-00-CC-CC, ???
- 4 bytes, número de bloques de 32 bits
- ???
00087A44: 01-FF-CC-CC, final
- 4 bytes, número de bloques de 32 bits (en este caso 1)
- 4 bytes, -1, final
Hay programas que te permiten modificar directamente la fuente, como Tile Molester, pero aprender a usarlos si no sabes ya es cosa tuya. Esa información que he dado puede ser útil para otras traducciones o para la traducción en inglés, y lo más destacado es que en 0x084B28 empieza la fuente ANSI, que es donde se deben poner los caracteres a ampliar. El resto seguramente no te interese en absoluto.
Enlaces útiles:
codepage 932:
http://msdn.microsoft.com/en-us/goglobal/cc305152codepage 1252:
http://msdn.microsoft.com/en-us/goglobal/cc305145