CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 31 Jul 2010 01:33

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 10 mensajes ] 
Autor Mensaje
 Asunto: Codigo fuente aventuras antiguas
NotaPublicado: 06 Abr 2006 12:25 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 18 Mar 2004 20:26
Mensajes: 1297
Ubicación: Barcelona
Tengo varias aventuras hechas con el GAC (Graphic Adventure Creator), que como sabéis fue el párser más utilizado antes del PAWS. Tras leer el artículo de RML sobre el Zipi y Zape:

http://lineadura.wordpress.com/2006/03/01/derribando-el-mito-%c2%bfquien-mato-a-la-aventura-conversacional/

quería yo también ver el código fuente de algunas aventuras antiguas hechas con el GAC: [url]http://www.worldofspectrum.org/infoseek.cgi?regexp=^Graphic+Adventure+Creator$&pub=^Incentive+Software+Ltd$[/url] , como por ejemplo el Don Quijote de Dinamic. Para empezar, ya es toda una odisea encontrar el dichoso GacPac: [url]http://www.worldofspectrum.org/infoseek.cgi?regexp=^Graphic+Adventure+Creator+%2d+Packer$&pub=^Essential+Myth$[/url] de Essential Myth, publicado en 1987 por Your Sinclair, pero finalmente lo encontré y me descargué no solo el GacPac, sino todo lo relacionado con el Gac, el Paws y el Quill, entre otras herramientas aventureras, todo lo encontré en el World of Spectrum Archive. Aquí os pongo un enlace con todo el material por si os interesa:
GrendelPac: GacPac & Paws & The Quill & Gac & Utilities
http://www.yonostudio.com/utils/grendelpac.zip

En dicho pack, se incluyen varias herramientas antiguas como el Quill, el Illustrator, el GacPac, el Gac y el Paws, además he puesto el UnPaws y el UnQuill para sacar el código fuente de aventuras hechas con Paws y Quill. El GacPac no actúa como el Unpaws, que nos da el código fuente en formato editable, sino que es una herramienta de Spectrum que vete a saber tú como funciona, porque lo he intentado y no me sale nada. Así que pido ayuda a RML o a los momios del lugar para poder sacar el código fuente de una aventura de GAC, a poder ser en formato editable.

_________________
Bio | Literactiva


Arriba
 Perfil  
 
 Asunto: Re: Codigo fuente aventuras antiguas
NotaPublicado: 06 Abr 2006 13:40 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 18:20
Mensajes: 504
grendelkhan escribió:
El GacPac no actúa como el Unpaws, que nos da el código fuente en formato editable, sino que es una herramienta de Spectrum que vete a saber tú como funciona, porque lo he intentado y no me sale nada. Así que pido ayuda a RML o a los momios del lugar para poder sacar el código fuente de una aventura de GAC, a poder ser en formato editable.


Puees, por falta material de tiempo no llegué a investigarlo del todo, pero vamos, que tampoco me comí un colín con las utilidades del GAC. Al menos el "Extractor" no producía ningún resultado. Fué a base de analizar lo que pretendía hacer como llegué a aislar la dirección de memoria, al parecer constante, donde los juegos de GAC tienen ubicada su base de datos y con esa información dedicarme a practicar la cirugía manual por mi cuenta.

En cualquier caso, y hasta donde yo sé, no existe ninguna herramienta que haga exactamente lo que pretendes, por eso ya me pude yo dar con un canto en los dientes con lo de poder "meter con calzador" la base de datos de un juego en un snapshot del editor ejecutandose y poder trastear a ojo desde allí. Si te hiciera falta te cuento con más tiempo los detalles del proceso.


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 Abr 2006 15:19 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 18 Mar 2004 20:26
Mensajes: 1297
Ubicación: Barcelona
Pues me hace falta como el aire que respiro, a ver si quedamos un dia por el IRC y me lo explicas. De momento tengo todo el material que creo que necesito: el ZXSpin, roms de juegos hechos en GAC, las utilidades GacPac esas que no sirven para nada...

Supongo que es evidente que lo que quiero hacer es tener un listado del código de un juego hecho en GAC para poder hacer un remake, de hecho, específicamente lo que quiero es sacar el código de "Ke rulen los Petas" para poder pasarme el juego y luego hacer una revisión jugable en Inform o en Superglus.

_________________
Bio | Literactiva


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 07 Abr 2006 02:49 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 18:20
Mensajes: 504
grendelkhan escribió:
Supongo que es evidente que lo que quiero hacer es tener un listado del código de un juego hecho en GAC para poder hacer un remake, de hecho, específicamente lo que quiero es sacar el código de "Ke rulen los Petas" para poder pasarme el juego y luego hacer una revisión jugable en Inform o en Superglus.


(RML levanta su sombrero y aplaude fervorosamente la iniciativa !!! )

OK, comienza la Operación Petas...

Arranca el ZXSpin y carga el juego de KRLP (yo he usado el tzx de WOS, pero cualquier snapshot debería valer igual). En cualquier momento (mismamente en la pantalla de la localidad inicial) vete al menú "File" del emulador y escoge la opción "Save Binary File". Desde ella guarda un archivo, llamémosle "petas.bin" señalando como dirección de inicio ("start address") nuestro número mágico, que era el 42271.

El cuadro inmediatamente inferior puede cambiarse entre "Data Length" (longitud del fichero binario a salvar) o "End Address" (su dirección final). Escoge "End Address" y pon 65535

Pulsa "Save". Ya tenemos la base de datos del juego aislada y guardada. Reinicia el emulador asegurándote de que está en modo 48k (por algún motivo en modo 128k a veces se le va la pinza sin causa aparente, no preguntes XDD ). Carga una copia del GAC y vete a la pantalla del menú principal (MAIN MENU) en la que se indicará que hay unos 23194 bytes de memoria libre. Vete al menú "File" del emulador y esta vez elige "Load Binary File". Carga desde allí el fichero de antes, el "petas.bin", cuidandote de indicar como dirección de comienzo la misma de antes, es decir, 42271.

Aparentemente nada ha cambiado, pero... atención, ahora DEBES encender 4 velas de incienso alrededor del monitor e ingerir la poción de ojos triturados de serpiente y sangre de bebé de dragón dorado mientras das 3 vueltas alrededor del ordenador en el sentido de giro de la Tierra e invocas a la Diosa de las Aventuras para... eer, vale, esto es para despistar a la audiencia, pero tu no dejes de hacerlo ;-p

Si te metes en cualquier opción del menú (objetos, habitaciones...) deberías de empezar a ver elementos del juego. Incluso deberías poder ejecutarlo pulsando enter, con la ventaja de jugarlo con las letras del Spectrum sin cambiar (¡hurra! XDD). Si al volver al menú los bytes libres se han reducido a 56 es que todo ha salido bien y ya puedes entretenerte consultando todo lo referente a su programación (localidades, objetos, condiciones, mensajes, etc, etc...) pero, sólo consultando en principio sobre la pantalla del Spectrum emulado, o sea, una cruz !!

Y aquí empiezan nuestros problemas. Como ya hemos repetido (y lamentado XDD) hasta la saciedad, no existe equivalente del unpaws para GAC, así que, por el momento, olvidémonos de tener un listado editable a mano. En un mundo ideal las rutinas de impresión del GAC funcionarían en cualquiera de los modos en que emuladores como Spectaculator pueden capturar la salida de la impresora en un fichero de texto... pero en el mundo real eso sólo parece funcionar con los volcados en ficheros gráficos de la salida de la ZX Printer (o sea, el horror !!! XDD ). Mientras se nos ocurre algo mejor (y llevará su tiempo, témome) te mando a la dirección de yonostudio en jotmail, que creo que es la tuya, el snapshot del GAC con la base de datos del KRLP ya cargada para que le vayas echando un vistazo a ver qué tal.


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 07 Abr 2006 10:34 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 07 Sep 2004 22:52
Mensajes: 1746
Yo como siempre apenas he leido este hilo ni sobre lo que hicisteis con el Zipi y Zape. Pero creo que la solución de la aventura requería repararla?

Lo digo porque un gran juego de la época dorada Midnight, de Carlos Sisi. Tiene un bug que impide terminarla. Afortunadamente ese cambio de código estaba documentado en CAAD o ZFZ, ni idea.,.. sería una gran aportación reparar ese juego.

Heresville tb... como ya sabeis, Heresville es mi espina clavada porque tiene 2 bugs, sé como repararlos, pero no sabría cómo hacerlo para generar una revisión permanente del juego PAW para que todo el mundo pueda disfrutarlo.

Chao.

_________________
El Clérigo Urbatain.
------------------------
http://usuarios.lycos.es/Urbatain/


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 07 Abr 2006 11:35 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 18 Mar 2004 20:26
Mensajes: 1297
Ubicación: Barcelona
Ok, envíame el snapshot a cualquiera de las siguientes direcciones: yonostudio arroba jotmail o gmail, mientras yo esta noche me pongo a trastear con el ZXSpin y la memoria bin. Una lástima que no haya un UnGac...

_________________
Bio | Literactiva


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 07 Abr 2006 13:23 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 19:24
Mensajes: 1182
RML for president!!! :P

[Akbarr]
(no se cansa de decirlo)


Arriba
 Perfil  
 
 Asunto: ¿Presdident? Naah, ¡¡concejal de urbanismo!! $-)
NotaPublicado: 08 Abr 2006 06:21 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 18:20
Mensajes: 504
grendelkhan escribió:
Ok, envíame el snapshot a cualquiera de las siguientes direcciones: yonostudio arroba jotmail o gmail, mientras yo esta noche me pongo a trastear con el ZXSpin y la memoria bin. Una lástima que no haya un UnGac...


Si todo ha ido bien el snap te habría llegado la noche de ayer (confirmalo por aquí, por si acaso) y en cuanto a hacer un listado...

Bueno, el problema era que no hay ningún programa que lo extraiga, aunque cabía la posibilidad de recurrir al truco que hacen emuladores como Spectaculator de capturar en un fichero de texto lo que el Spectrum emulado mande a su también emulada impresora. GAC, no obstante, emplea unas rutinas de impresión para sus listados muy específicas del Spectrum 48k que hacen uso de una zona de memoria (históricamente conocida como el "el buffer de la impresora") que en los modelos de 128k (que, vaya por Dios, es en los que Spectaculator está preparado para hacer ese "truco") se emplea para otros temas de gestión de la memoria adicional. Vamos, que el plan no funciona.

No era la última posibilidad. Lo que si podía "capturarse" era un fichero gráfico con la salida de los listados por una ZX Printer. Intenté pasarlos por un OCR, pero el gráfico generado no tenía la suficiente calidad como para que éste sacase algo en claro. Jops!

Quedaba un último cartucho. Spectaculator, rebuscando un poco, sí que podía capturar de impresora a texto en modo 48k pillando el listado impreso a través de la salida RS232 de un "Sinclair Interface 1"... pero por algún motivo si se cargaba el GAC con la opción de emular dicho interface activada, el Spectrum se colgaba estrepitosamente. >_<''

La cuestión es ¿por qué lo hacía? Destripándolo un poquito, resulta que la protección anticopia (aquella tan clásica que, cuando intentabas acceder al listado en Basic del cargador, te sacaba el cartelito de "Hey Bill, another pirate!!" XDD) incluía una llamada a una rutina en código máquina camuflada en la sentencia REM de una linea de Basic. El método es, por definición, 100% incompatible con la sola presencia del Interface 1, ya que este genera sus propias variables de sistema que desplazan la ubicación del programa Basic unas decenas de bytes de su emplazamiento original, de tal suerte que la llamada a código máquina ya no se encuentra lo que esperaba.

Como suele pasar, una vez identificado el problema la cosa toma otro color. Consultando la variable de sistema del Speccy que almacena la dirección de comienzo en la memoria de los programas en Basic se puede calcular fácilmente cuál es ése desplazamiento, y con ese dato se puede modificar la llamada a código máquina con la nueva dirección adecuada... eer, resumiendo, GAC ya podía imprimir a través de la salida RS232 del Interface 1, donde Spectaculator "le estaba esperando" para meter el listado en un fichero de texto que... en estos momentos está recorriendo el camino hacia el buzón de correo electrónico de Grendel 8)

(lo cual no quita que sus problemas acaben de comenzar XDDDD, ahora va a enfrentarse a un listado de GAC en el que, si estos ya eran de por sí poco intuitivos, el programador de los Petas hizo cosas raras, pero raras, raras... :P )


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 10 Abr 2006 10:37 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 18 Mar 2004 20:26
Mensajes: 1297
Ubicación: Barcelona
Eres mi ídolo aventurero!

Efectivamente, me he estado mirando el listado de Ke Rulen los Petas y es bastante marciano. Como bien apuntas, no hay localidades, sino que llama a la descripción de éstas mediante alguna rutina. Esto va a ser un duro trabajo. Las condiciones del GAC son muy liosas, y esque no tiene nada que ver con PAWS.

Por cierto, como ya he dicho en el e-mail, tendrías que hacer un artículo para SPAC sobre cómo sacar código fuente de aventuras en GAC. Yo creo que con un emulador de Spectrum eres capaz de cualquier cosa!

_________________
Bio | Literactiva


Arriba
 Perfil  
 
 Asunto: RML peleandose con su e-mail !!
NotaPublicado: 10 Abr 2006 18:27 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 18:20
Mensajes: 504
Eo!

Te he vuelto a mandar el mail del snap, el primero que no llegó a llegarte, y además a las dos direcciones. Confirma si lo tienes o no, no sea que tenga algún problema con el correo :?


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 10 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë