Autor Tema: Dynamix GDS [Herramientas/Información]  (Leído 2382 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cireja

  • "Síndrome de Diógenes Abandonwarístico"
  • Administrador
  • Shodan
  • *****
  • Mensajes: 9919
  • Registrado: 06 May, 2007
  • es España
  • Sexo: Masculino
  • Guardián de las aventuras
    • Ver Perfil
    • Abandonsocios.org
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #15 en: Febrero 12, 2020, 23:17:59 pm »
jajajaja
Pues casi que sí. Pero viendo la "envergablanda" de la cosa, y que es muy técnico y eso, para consultas y demás, pues lo veo muy bien así.
Pero tú mismo, jijijj
¡Por favor, no preguntéis por mensaje privado, preguntad aquí en el foro!
Please don't PM me questions, ask here in the forums!

Jugando a: -
Aventuras Gráficas Difíciles de Conseguir en Español - Aventuras Gráficas en AbandonWiki

Desconectado pakolmo

  • Webmasters
  • Master Control Program
  • *****
  • Mensajes: 2690
  • Registrado: 16 Ene, 2015
  • es España
  • Sexo: Masculino
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #16 en: Febrero 12, 2020, 23:40:22 pm »
SkaZZ, ¿intentarás hacer las herramientas compatibles con Willy Beamish?. Al menos por tenerlas hechas. Por ahora no prometo la traducción.

Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #17 en: Febrero 13, 2020, 08:57:33 am »
Sí, lo intentaré. Tanto el GDS como el FNT (en desarrollo) deben ser 100% compatibles (a no ser que haya alguna diferencia muy grande entre motores) porque entiendo el formato y obtengo hasta el último byte. Pero el SDS no; te pongo un ejemplo:

Detecté que este conjunto de bytes (acordaros que siempre lo ponemos en LE) 0004 0003 0000 contiene 5 pares de bytes más texto... y, además, sé que el tamaño de la caja de texto está 14 bytes atrás a partir del 0004. Vale, pues todo lo que hay entremedias NO TENGO NI PUTA IDEA XDDDDD. Creo que son opcodes, pero no lo sé. Incluso de los 5 pares de bytes, solo sé que el del final es el tamaño del texto, el anterior es algún timer delay (una pausa de x segundos), pero tampoco sé como calcula los segundos, y el primero o segundo (ahora no caigo y no lo tengo aquí) indica si debe mostrar burbuja, recuadro o burbuja de pensar. Entonces lo que hago es jugar con esos bytes (lo pruebo en bruto con varios archivos a ver qué sucede) y son los únicos modificables, los otros se ponen en bruto. Si te das cuenta, en el código fuente puedes ver algunos _unk1, _unk2, etc... eso es una variable privada a lo que yo he puesto el nombre de unknown (en castellano, NI PUTA IDEA).

Willy Beamish puede usar una variante y quizás no utilice 0004 0003 0000 y use otro tipo de bytes; más que nada porque es más nuevo y uno siempre mejora su motor y le añade cosikas (y si no lo haces eres un puto gañán y mejor que te dediques a vender pan... sí, te lo digo a ti EA).

He mandado a mi primo (que es una fucking machine) a ver si puede hacer el compresor LZW y me echa una mano con el desensamblado del archivo, y también se lo he pedido a gatuno que cuando tenga tiempo supongo que nos echará una mano.
« Última modificación: Febrero 13, 2020, 09:00:02 am por SkaZZ »



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!

Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #18 en: Febrero 14, 2020, 00:25:49 am »
Skazz, te pedi que me concretaras que quieres exactamente. Voy bastante pillado de tiempo, pero si me pasas un archivo, un savegame o me dices tal cadena o boton quiero traducir, puedo intentar darle al debugger, pero concreta tio!!!
« Última modificación: Febrero 14, 2020, 00:30:05 am por gatuno »



Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #19 en: Febrero 14, 2020, 11:04:48 am »
¬¬'

Ya lo hice en otro post, pero lo acabé borrando porque me lié. Esta tarde te voy a dejar en este mismo post un archivako de la intro (el "S55.SDS"). Ese archivo lo voy a dejar descomprimido y funcional (el motor del juego va leerlo). Ese archivo debe quedarse en el directorio donde está el juego.

Tu misión, si deseas aceptarla, es ver como el motor lee ese archivo, qué bytes lee, para qué los lee y, en general, toda la información que puedas darme de como interactúa el motor con esta clase de archivos; este mensaje se auto-destruirá en 5 segundos... 4... 3... 2... 1... pum.

No hay prisa, cuando puedas, tampoco te enfades que no cobramos por esto.



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!

Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #20 en: Febrero 14, 2020, 12:53:12 pm »
No me enfado, solo te pido informacion porque no sabia lo que querias. Ten en cuenta que yo no se nada del juego ni de GDS ni SDS ni nada, ni siquiera lo he jugado.

Ahora que me has dicho que el juego va a leer durante la intro un SDS que me pasas, pues mucho mejor asi, ya puedo empezar a ensuciarme las manos.

No cobramos, pero no te olvides del catnip. B)



Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #21 en: Febrero 14, 2020, 13:34:32 pm »
Aquí tengo [CENSURADO, PIN PARENTAL Y TO ESO]ba de la wena.
Sí, sorry, no sabía que no habías jugado este juego.

Te voy a contar un secreto: ¡ODIO ESTAS AVENTURAS! Me gustan las clásicas de LucasArts y Sierra, pero estas en primera personas con pantallas casi estáticas y personajes sin expresiones... la estética comiquera está bien, pero era como jugar una aventura conversacional con gráficos de fondo. Sé que tiene sus defensores, pero yo no las aguanto.

Ahora, desde un punto de vista técnico y de programación, tienen un gran diseño. Me encanta bucear entre lo viejo, porque hacía a los programadores devanarse los sesos.

Por cierto, tras acabar con Willy y GDS y demás, voy a dedicarme un tiempo a mí: Clock Tower para Windows 94 + 1 (¡¡ufff, casi la lío!!).
« Última modificación: Febrero 14, 2020, 13:40:05 pm por SkaZZ »



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!

Desconectado Kendo

  • Leecher Pata Negra
  • Administrador
  • Shodan
  • *****
  • Mensajes: 10212
  • Registrado: 05 Mar, 2007
  • es España
  • Sexo: Masculino
    • MSN Messenger - -
    • AOL Instant Messenger - -
    • Yahoo Instant Messenger - -
    • Ver Perfil
    • Abandonsocios.org
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #22 en: Febrero 14, 2020, 17:41:45 pm »
Windows 94 + 1 (¡¡ufff, casi la lío!!).

Nadir puede vivir siempre alerta. Pero sabes que yo puedo estar siempre el acecho, ¿verdad?

Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #23 en: Febrero 15, 2020, 14:14:31 pm »
Estoy 99+1% de acuerdo contigo.



Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #24 en: Febrero 15, 2020, 15:14:58 pm »
Te lo subo el lunes por motivos personales. Sorry.



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!

Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #25 en: Febrero 16, 2020, 14:41:00 pm »
Tranqui jefe, cuando te venga bien.



Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #26 en: Febrero 16, 2020, 17:10:43 pm »
El archivo está aquí.

Lo que se conoce:

  • Bytes 00-03 son el ID del chunk (el tipo de chunk).
  • Bytes 04-07 representa el tamaño del chunk sin contar estos 8 bytes.
  • Byte 08 indica el tipo de compresión (02 = LZW; 00 = Nada).1
  • Bytes 09-0b representa el tamaño del archivo descomprimido. Si es 00, entonces es el tamaño del resto del archivo.
  • Bytes 0d-10 es una marca que siempre es la misma en Rise of the Dragon... ¿otro posible hash?2
  • Bytes 11-17 es un número que indica alguna clase de versión y acaba en "00" (null).3
  • Bytes 18-19 representa un índice que coincide con el número del archivo (si es S55.SDS, éste valor será 55).

Otros datos:
  • Todos los archivos incluyen una llamada a un archivo ADS.
  • Todos los textos vienen precedidos de los bytes 0100 0300 0000, 0400 0300 0000, 0400 0a00 0000, 0400 0b00 0000 ó 0400 0200 0000.4
  • 14 bytes hacia atrás de los bytes señalados con anterioridad, hay dos pares de bytes que determinan el ancho y el alto del cuadro donde irá el texto (no se ajusta automáticamente).
  • A partir de la marca indicada arriba, hay 4 pares de bytes. El primer par es el tipo de cuadro de texto (02 = frame; 04 = bubble said; 03 = bubble thinking; 01 = other frame type; 00 = 01; > 05 = nothing); el segundo par es algún tipo de timer para las pausas, pero no se cómo funciona; el tercer par ni puta idea, si pones alguno que exista de otro texto la escena se solapa (algo mu raru); y el cuarto par es el tamaño del texto que siempre acaba en 00 (null).


1Mi programa lo ajusta a 00 siempre para poder modificarlo y que lo lea sin la compresión.
2Podría ser distinto en otros juegos con el mismo motor... sin confirmar.
3Éste y otros similares aparecen en el EXE.
4Me acabo de dar cuenta que mi programa no contempla el 0400 0a00 0000... ¡¡actualización!!



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!

Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #27 en: Febrero 16, 2020, 19:03:10 pm »
Vale, tomo nota.

Creo que nunca he analizado la estructura de un archivo desconocido, ire pensando en el problema y ya te contare.



Desconectado gatuno

  • Deep Blue
  • ****
  • Mensajes: 966
  • Registrado: 11 Abr, 2018
  • gs South Georgia and the South Sandwich Islan
  • eterno aprendiz
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #28 en: Febrero 16, 2020, 20:07:24 pm »
Bueno, lo que si te puedo decir es que el juego lee el S55.SDS en 4 tandas de 0x200 bytes cada una, en el video se ve en que momento se lee.


Aparte desde que se ejecuta DRAGON.EXE hasta que el juego lee S55.SDS se abren todos estos archivos en modo lectura.

Spoiler (click para mostrar/ocultar)

Eso es lo que te puedo decir de forma inmediata, sobre la estructura con lo que se me ocurra te cuento.


EDITO: Vale, mientras cenaba le he ido dando vueltas y creo que empezare tirando del hilo con el debugger para intentar averiguar los posibles valores que contempla el juego para tal o cual posicion en el SDS. Vamos, lo que serian los valores del switch/case de C. Y despues tocara interpretar esos valores.

Saludos!!
« Última modificación: Febrero 16, 2020, 23:51:15 pm por gatuno »



Desconectado SkaZZ

  • HAL9000
  • ****
  • Mensajes: 2010
  • Registrado: 21 Nov, 2004
  • es España
  • Sexo: Masculino
  • ZzZzzZz... Dark Souls... ZzZzzZz...
    • Ver Perfil
Re:Dynamix GDS [Herramientas/Información]
« Respuesta #29 en: Febrero 17, 2020, 16:17:24 pm »
Me has dicho que pilla 200 bytes, pero creo que es en hexadecimal y son 512 bytes. Sin embargo, como carga el archivo entero en x tandas de x bytes, supongo que será el modo en que C abría los archivos (bueno, esto ha sido un balconing en toda regla por mi parte... solo una suposición).
En cuanto a los archivos que lee al iniciar, hace una comprobación de los archivos básicos: fuentes, paletas, etc. Además, en varios volúmenes (por el cambio de disquetes) hay archivos que se repiten.
El S3.SDS creo que es algún tipo de debug interno, pero no sé como hacerlo rular.
El S55.SDS debería cargarlo antes de comenzar la escena de la intro donde la piva pilla y le da una sobredosis cosa mala. ¡¡¡Seguro que es por beber Cruzcampo!!!

No te quiero liar porque mucho de lo que te digo son suposiciones. Buen trabajo, y gracias por tu ayuda (¡Y sí, sé que lo último rima con me la suda o algo peor!).



      //////       Hora de abandonware llegó, coge a tus
     (o   O)       amigos y vámonos. Con Kendo el friki y
       (_)         SkaZz el chiflado, lo pasaremos guay.
--oooO-----Oooo--  ¡Hora de abandonware!