Bueno, no sé el por qué pasa eso, pero con lo que hago todo se ve bien. Supongo que funcionará igual en cualquier otro pc.El juego no acepta normalmente áéíóúñ¿¡, por eso modifiqué las fuentes de letra y se tienen que poner símbolos.
¿Sabes como se guarda la partida? Si pulso "S" no veo que haga nada y el menú de Guardar - Cargar está todo a 0.Ahí está el problema. Aunque salves, siempre que modifiques el test.adv tienes que volver a empezar partida porque al cargar se carga el antiguo test.adv
Del test la traducción de los diálogos prácticamente finalizado y quedaría lo mismo que en el speech. (Aquí creí entenderte que había límite de tamaño en los textos, pero no los tiene, seguramente te he entendido mal).
PD: El ejecutable ¿ya lo tienes traducido?
Este último tiene muchos más dato que el anterior.Pues que no lo he modificado yo, ha pasado por codex. Le he pedido que me localizara los errores y actualizara.
¿Cuál es el motivo?
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• La verificación muestra que el bloque del cocinero sí tiene USE_NOVELTY_GLASSES, USE_GAFAS_FALSAS y USE_GAFAS_BROMA. Veo que el objeto de inventario de
las gafas sigue sin aliases; voy a identificar su nombre exacto en la copia vieja y añadirlos también, como en la corrección anterior.
• Ran @'
│ import json
│ from pathlib import Path
│ … +7 lines
└ 1081 Gafas_Broma 0x469fd4 1214 has novelty False has falsas False
1210 Gafas_Broma 0x472a6d 1248 has novelty False has falsas False
1435 Cocinero 0x49309f 2954 has novelty False has falsas False
• Ran @'
│ import json
│ from pathlib import Path
│ … +64 lines
└ selected 4
Gafas_Broma 0x469fd4
… +7 lines (ctrl + t to view transcript)
Cocinero 0049309F delta=+4003
size 4983171 -> 4990783 delta 7612
• Ran python adv_export.py test.adv debug_test_from_old_bak_plus_3.json
│ @'
│ import json
│ … +29 lines
└ count_base 1843 count_cur 1843 changed_entries 4
[EXPORT] OBJ WITHOUT FUNCTION: 1485
[EXPORT] JSON: debug_test_from_old_bak_plus_3.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Aplicado solo sobre esa base:
- Gafas_Broma: añadidos aliases USE_NOVELTY_GLASSES y USE_GAFAS_FALSAS.
- Cocinero: añadidos aliases USE_NOVELTY_GLASSES, USE_GAFAS_FALSAS y conserva USE_GAFAS_BROMA.
- Guardia_Segundo: añadidos aliases originales para el diálogo:
- OPEN_GATE
- HERO_HAS_NOT_ENTERED_CASTLE
- Sage: en test.adv.bak ya no existe Sage's Hut, Sage_Hut, A Cabana Sabio ni Cabana_Sabio, así que no he renombrado sagehut porque parece identificador
interno.
- Exportado a debug_test_from_old_bak_plus_3.json.
- Mismo número de objetos que test.adv.bak: 1843.
- Solo cambian 4 bloques: dos Gafas_Broma, Guardia_Segundo y Cocinero.
› ¿Me compruebas algún fallo con ventana_inaccesible y ventana_accesible? El lugar Sage's Hut no se actualizó.
try again at 6:49 PM.
› ¿Me compruebas algún fallo con ventana_inaccesible y ventana_accesible? El lugar Sage's Hut no se actualizó, es una escene. También es parte del mapa
Clearing y no se tradujo. Trabaja desde "test - copia (3).adv"
30142: "code_original": ")Claro, puedo ayudar!",
… +106 lines (ctrl + t to view transcript)
[EXPORT] OBJ WITHOUT FUNCTION: 1484
[EXPORT] JSON: debug_test_copia3.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• Comparado con el original, el fallo de ventana es claro: al traducir el objeto Unreachable_Window a Ventana_Inaccesible, quedó una llamada MESH
"UNREACHABLE_WINDOW" 0 sin actualizar en Enredaderas. Eso deja la escena con identificadores mezclados. Ahora reviso las transiciones a sagehut desde
Clearing/mapa antes de parchear.
• Ran @'
• El original aclara lo de Sage's Hut: hay dos entradas separadas, To Sage's Hut y Sage_Hut. En test - copia (3).adv la de salida To Sage's Hut ya no está
como objeto separado, y la escena quedó como sagehut. Voy a buscar si el motor llama esa escena por SAGE_HUT/SAGEHUT antes de decidir si conviene
renombrarla o crear un alias.
To Sage 0 []
• Ran @'
│ import json
│ from pathlib import Path
│ … +12 lines
└
### test_orig.adv
… +36 lines (ctrl + t to view transcript)
"CALDERO" 0. QUEUE1 MESH "CALDERO_CON_POCION" 1. QUEUE1 SET PRODUCE_COMPLETED 1. QUEUE1 UI 1..END FUNCTION..FUNCTION LEAVE. QUEUE1 SOUND
vines delta 1
sage region old 1932 new 1940 delta 8
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• El parche se ha aplicado con un delta mínimo: +1 byte por la ventana y +8 bytes por reconstruir bien la zona de Sage Hut. Ahora exporto el resultado y
verifico que el escáner vea la escena como tres bloques separados.
• Ran python adv_export.py test.adv debug_test_after_copia3_window_sage.json
│ @'
│ import json
│ … +23 lines
└ objects 1841
… +63 lines (ctrl + t to view transcript)
[EXPORT] OBJ WITHOUT FUNCTION: 1485
[EXPORT] JSON: debug_test_after_copia3_window_sage.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• La exportación ya ve A Cabana del Sabio y Cabana_del_Sabio como bloques reales, y no quedan restos de UNREACHABLE_WINDOW ni Sage_Hut. Voy a hacer una
última comparación contra test - copia (3).adv para confirmar que solo han cambiado la zona de ventana y la zona de Sage.
• Ran @'
│ import json
│ from pathlib import Path
│ … +17 lines
└ 211 Sabio 0x44cf34 0
1143 Sabio 0x46eb50 0
… +69 lines (ctrl + t to view transcript)
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• He trabajado desde test - copia (3).adv y he generado un nuevo test.adv.
Encontré dos fallos reales:
- Quedaba MESH "UNREACHABLE_WINDOW" 0
- Pero el resto ya usaba VENTANA_INACCESIBLE / VENTANA_ACCESIBLE
Lo he corregido a:
- MESH "VENTANA_INACCESIBLE" 0
- MESH "VENTANA_ACCESIBLE" 1
Verificado:
- Ya no queda UNREACHABLE_WINDOW.
- Ya no queda REACHABLE_WINDOW.
y actualizar todas las referencias.
• Ran @'
│ from pathlib import Path
│ import json, re
Voy a cambiar también ese identificador interno y las llamadas, que es lo que faltaba para que la escena quede actualizada de verdad.
• Ran @'
│ import json
│ from pathlib import Path
│ … +7 lines
└ 1601 Cabana_del_Sabio
occurrence 0
… +50 lines (ctrl + t to view transcript)
name_len 7
header_size 0
• Ran @'
│ from pathlib import Path
│ import json, struct
│ … +7 lines
└ 01 06 00 00 00 00 00 00 00 00 00 20 c3 00 00 f2 c2 00 00 00 00 07 00 00 00 73 61 67 65 68 75 74 40 01 00 00 c8 00 00 00
u32s [1537, 0, 536870912, 4060086467, 194, 1792, 1734439680, 1953851493, 320, 200]
ascii ........... .............sagehut@.......
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• Voy a hacer un parche muy acotado: en Cabana_del_Sabio cambio el id interno length-prefixed sagehut por cabana_del_sabio, y en Caldero cambio solo CALL
SAGEHUT "CHECK_POTION" por CALL CABANA_DEL_SABIO "CHECK_POTION". No tocaré SAGEHUTANIM, porque parece recurso/animación.
• Ran Copy-Item -LiteralPath test.adv -Destination test.adv.before_sagehut_internal_scene_id -Force
│ @'
│ import json, struct
│ … +65 lines
└ Cabana_del_Sabio delta 9
Caldero delta 81
… +23 lines (ctrl + t to view transcript)
[EXPORT] OBJ WITHOUT FUNCTION: 1485
[EXPORT] JSON: debug_test_after_sagehut_internal_fix.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• Corregido. El problema era que la escena ya se veía como Cabana_del_Sabio, pero dentro seguía teniendo el id interno sagehut.
He cambiado:
- Id interno:
- sagehut -> cabana_del_sabio
- Llamadas desde Caldero:
- CALL SAGEHUT "CHECK_POTION"
- ahora es CALL CABANA_DEL_SABIO "CHECK_POTION"
Verificado:
- sagehut interno ya no queda.
- CALL SAGEHUT "CHECK_POTION" ya no queda.
- Hay 9 llamadas nuevas a CALL CABANA_DEL_SABIO "CHECK_POTION".
- SAGEHUTANIM sigue igual a propósito, porque parece recurso/animación, no escena.
Copia previa guardada:
test.adv.before_sagehut_internal_scene_id
Archivo actualizado:
test.advYo propuse esas palabras para gastar menos letras. Pero si se puede que quede cómo dice cireja.
"Texto automático"
"Auto guardado"
He recordado lo de Skip y Skipped. Que debería ser "Saltar" y "Saltado".
"Cargando.." por "Cargando..."
"Enter Name" "Escribe un Nombre". -> Aquí hay un fallo provocado por las fuentes de letra, nos sale una "á" donde debería ir un ">". A ver si podemos pintar otro caracter en otro sitio con la ">" para que salga bien. O directamente poner un "-" (guión). ¿Muermo qué hacemos?
También teníamos un "Welcome, " que debería ser "¡Bienvenido, "
Y creo que un "Change Player" por "Cambiar Jugador".
Y ya no hablo de los créditos que no tradujimos...
No sé si será posible tanta ampliación. ¡Gracias por mirarlo!
¿Vas a querer que subamos las instrucciones junto a la traducción?
También he dejado en la pantalla para poner el nombre que aparezca ">" que es parecido al "<" original. Si queréis poner otro o poner un espacio en blanco para que no salga nada, debéis modificar el byte que hay en el offset 67EF8.
Al final modificando el font03.bin y el font03.png se ha podido incluir el signo "<" el valor en el exe debe ser 7E.
Font03 (https://mega.nz/file/aPw2Xa4S#DQGyPJcs3Qrr2I12JbW6uHoy1we956TKdxOjGU5xf-A)
Saludos.
No encuentro dónde hay que cambiar esto en el EXE. Hazme los honores, ANZ. Sobre el EXE ampliado.
¿Como has llegado hasta el offset 67EF8?
Mapa pueblo --> Mapa BingwoodGenial!
Nuevo ---> Nuevo Juego
Seguir ---> Continuar Juego
Salvar-Cargar ---> Salvar/Cargar Juego
Medir el Producto --> Medir los Productos
Prod. Perpendicular --> Producto Perpendicular
En la lista de productos figura :1 libra y 1 jarra.
"1 lb" que sería "1 libra" o el equivalente español "0,45 kg." --> ¿lo cambiamos a 0,45 kg. ?
- 1 taza --> en el juego se está hablando de "jarra" ---> ¿lo cambiamos?
para la barra invertida he utilizado el código 7F modificando font03.bin y añadiendo "/" en el png. En principio todo funciona correctamente.OK
Ahh, otra cosilla, sería posible poner a ANZ en los créditos como soporte técnico.ANZ ya sale en los créditos dentro del juego y en el TXT.
Pakolmo, si quieres te paso estas modificaciones.Sí, cuando las tengas.
para la barra invertida he utilizado el código 7F modificando font03.bin y añadiendo "/" en el png. En principio todo funciona correctamente.
Para ANZ ¿sabes porque el programa para desensamblar no me reconoce el string si lleva ese código?
Editaste font03.bin para que el juego cuando leyera el código 7F mostrará la "/" que dibujaste en font03.png.
Sin embargo. el desensamblador usa la tabla de caracteres Ansi y en ésta el código 7F está vacío y por eso no te aparece la cadena en el desensamblador. Deberías editar font03.bin para usar por ejemplo, el código 24. Entonces, ya verías en el dsensamblador la cadena que te aparecería como "Guardar$Cargar Juego".
No obstante, para no marear más a pakolmo y que tenga que subir una nueva versión de la traducción lo dejaría como está, pues en el juego ya está bien y es únicamente cosa del desensamblador.
Muchísimas gracias por la traducción, el juego esta genial ,que pena que no termine y que no haya continuación ,no lo sabia ...Me alegro que lo hayas jugado y disfrutado. Es una pena, es un gran juego para que no se haya terminado.
Al acabarlo me he llevado una sorpresa 😌