AGD - Editor de ficheros AGD

jltursan
Mensajes: 2333
Registrado: 20 Sep 2011 13:59
Agradecido : 131 veces
Agradecimiento recibido: 351 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 09 Ene 2019 18:28

Último mensaje de la página anterior:

Me parece buena idea ese replanteo que comentas.....pero sigues mencionando el "meter en un VDK"; al final no me queda claro, ¿se trataria de un desarrollo mixto en el que la parte de los gráficos se haría sobre PC?

Mi editor gráfico no considero que sea publicable; pero al menos la parte de Dragon (PM3 y PM4) la considero bastante completa. SI quieres intentar aprovecharla o reciclarla de alguna manera, dímelo y te la hago llegar. Creo que ya había comentado que se trata de un proyecto Java...

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 09 Ene 2019 19:28

jltursan escribió:Me parece buena idea ese replanteo que comentas.....pero sigues mencionando el "meter en un VDK"; al final no me queda claro, ¿se trataria de un desarrollo mixto en el que la parte de los gráficos se haría sobre PC?
Mi editor gráfico no considero que sea publicable; pero al menos la parte de Dragon (PM3 y PM4) la considero bastante completa. SI quieres intentar aprovecharla o reciclarla de alguna manera, dímelo y te la hago llegar. Creo que ya había comentado que se trata de un proyecto Java...

Mi intención es hacer un 'parser' completo en Java que cree pequeños ficheros binarios en Windows con cada unidad de datos que se corresponde a un DEFINExxx en el fichero AGD.
Luego, con la herramienta DragonTools de Rolf Michelsen, lo pondré todo dentro de un VDK (180-360-720k) y a partir de aquí haré programas
en Dragón que lean estos pequeños ficheros y presenten los datos en el PMODE/PALETA elegidos y a ver como lo editamos/grabamos a disco
Un último programa leerá estos ficheros e imprimirá/generará un fichero de texto (en XRoar) en formato AGD original ...
Esto son deseos .. a ver cuantos se convierten en realidad -thumbup
En su momento, cuando tenga un AGD partido en partes y grabado en disco, podemos hablar del editor, por supuesto!
De momento voy a abrir Java y empezar a calentar motores ...
Por si alguien está interesado, adjunto un documento explicativo del formato del fichero AGD. CUIDADO! lo he hecho copiando trozos de ficheros reales y comentado a la derecha de los datos. No es ningún documento oficial del grupo AGD ...
saludos
pere
Adjuntos
AGD-TAGS.ZIP
(1.36 KiB) Descargado 4 veces

jltursan
Mensajes: 2333
Registrado: 20 Sep 2011 13:59
Agradecido : 131 veces
Agradecimiento recibido: 351 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 09 Ene 2019 20:40

Ah, ya veo, interpretar un fichero AGD de manera que se genere un binario para cada DEFINEFONT, DEFINEBLOCK, DEFINESPRITE, DEFINEOBJECT y ¿quizás también los DEFINESCREEN y el MAP?

En el fichero AGD-TAGS veo que los has enumerado todos, ¿además de los gráficos o relativos también incluirías el resto?

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 09 Ene 2019 21:41

jltursan escribió:Ah, ya veo, interpretar un fichero AGD de manera que se genere un binario para cada DEFINEFONT, DEFINEBLOCK, DEFINESPRITE, DEFINEOBJECT y ¿quizás también los DEFINESCREEN y el MAP?
En el fichero AGD-TAGS veo que los has enumerado todos, ¿además de los gráficos o relativos también incluirías el resto?

La idea es tenerlos todos salvo la parte de código que se podría editar de forma muy simple en cualquier editor de textos, por lo tanto
espero crear un fichero para cada tipo de define ...
Al hablar con Kees, me ha hecho ver que ya tenemos un compilador que genera el ASM, por lo que voy a intentar eliminar las partes
que procesan código y ver como compactar los datos de números ya que la salida es tipo alfabético: 255 me interesa que se grabe
un único byte con $ff
Seguimos en contacto, tiene buena pinta!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 10 Ene 2019 20:27

Hola,
parece que vamos por el buen camino.
Tras modificar el compilador para que añada cabecera tipo Dragón a los ficheros intermedios que monta y haciendo los cambios
necesarios para derivar información del fichero ASM hacia uno nuevo para Window-Map, dispongo de los siguientes ficheros, todos
ellos binarios como requiere el DOS de Dragon
NIXY. BLK para la definición de los boques/tiles
NIXY.NME para las posiciones de los sprites en cada pantalla (solamente para generar el AGD modificado)
NIXY.OJT para la definición de los objetos
NIXY.SCL para la definición de las pantallas
NIXY.SPR para la definición de los sprites
NIXY.TXT para los mensajes de texto
MIXY.WMP para definición de la ventana de trabajo y el Mapa de pantallas
Mas tarde meteré estos ficheros en un disco VDK y verificaré en basic que el contenido se lee perfectamente
Algo es algo -thumbup
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 11 Ene 2019 13:03

Hola,
puedo leer los bloques sin problemas, el mapa y ventana también, pero ...
Las pantallas están en un fichero que puede ser realmente grande (mas de 15kb) y para no ocupar tanta memoria
estaba tratando de leer el fichero byte a byte, como haría en C o Java, pero no hay forma de hacerlo en Dragón, o al
menos yo no se como!
Al ser un fichero binario, puede contener valores desde cero hasta 255 y sin estructura alguna, no hay separadores ni nada,
por lo tanto las lecturas a variables incluso a cadenas parecen fracasar ...
¿Alguien tiene alguna idea o un ejemplo de programa que sea capaz de leer solamente un byte cada vez de un fichero?
No quisiera tener que pasar de nuevo a modo todo RAM para pasar la pantalla a la parte alta y liberar las 6k que ocupa ...
Cualquier sugerencia será bien recibida!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 12 Ene 2019 22:12

una breve actualización de estado ...
Ya consigo leer los bytes que conforman cualquier pantalla, directamente del fichero NIXY.SCL -thumbup
De momento me los guardo en RAM.
Próximo paso ... mostrar en PMODE4 la pantalla utilizando los bloques ya cargados en memoria.
Hasta pronto
pere

jltursan
Mensajes: 2333
Registrado: 20 Sep 2011 13:59
Agradecido : 131 veces
Agradecimiento recibido: 351 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 13 Ene 2019 20:02

La cosa progresa rápido -drinks

Aprovecho para hacer un pregunta acerca del formato del fichero agd, ¿que representan los 4 primeros bytes de cada DEFINEOBJECT?

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 13 Ene 2019 20:45

jltursan escribió:La cosa progresa rápido -drinks
Aprovecho para hacer un pregunta acerca del formato del fichero agd, ¿que representan los 4 primeros bytes de cada DEFINEOBJECT?

Primero la respuesta a tu pregunta:
1 byte para color
1 byte para ubicación/room
1 byte para posición x
1 byte para posición y
Respecto al proyectillo en cuestión ... ya estoy viendo las pantallas -thumbup
Te adjunto un VDK que contiene tre sprogramas BASIC:
- VIEWBLK te muestra los bloques
- VIEWMAP te muestra la ventana de trabajo y el mapa de pantallas
- VIEWSCL va mostrando las pantallas en PMODE4
En todos ellos, pulsa una tecla cuando se pare ...
En el último, pasa una cosa rara ... Cuando se lee el fichero 'a pelo' algo queda mal en as variables de sistema y solo he conseguido
por el momento, solventarlo llamando una función del DOS que vuelva a la pantalla de texto un milisegundo y por tanto provoca un
'salto' entre pantallas. Por lo demás funciona perfectamente
Obviamente, tanto la lectura como el trazado de pantallas se hace en código máquina o se eternizaría
saludos
pere
Adjuntos
NIXYEDIT.ZIP
(14.1 KiB) Descargado 2 veces

jltursan
Mensajes: 2333
Registrado: 20 Sep 2011 13:59
Agradecido : 131 veces
Agradecimiento recibido: 351 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 13 Ene 2019 21:13

¡Gracias por la explicación!

En el VIEWSCL.BAS aparecen al final unos valores, ¿el tiempo que se ha ido empleando en la descodificación de cada pantalla?

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 13 Ene 2019 21:44

jltursan escribió:¡Gracias por la explicación!
En el VIEWSCL.BAS aparecen al final unos valores, ¿el tiempo que se ha ido empleando en la descodificación de cada pantalla?

Esto son los resultados (siempre el mismo) de la sentencia que 'restaura el DOS',o sea del PRINT LOF"GAME.TXT"
Su resultado debería ser un entero, pero ya ves que muestra decimales y esto NO existe!
Indica que las variables de sistema usadas para coma flotante han sido alteradas por alguna de las funciones 'especiales' del DOS
Intentaré hacerme una copia de ellas antes de llamar al DOS via DSKCOM y restaurarlas luego, a ver si así ya no hace falta la
llamada LOF y por tanto evitamos el salto a texto y vuelta al PM4
Ya te contaré.
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 13 Ene 2019 21:58

Hecho y funciona!
Siempre se aprenden cosas nuevas con estos cacharros -507
Adjunto nueva versión del VDK con el binario modificado y el Basic también.
Ahora ya hay que ir pensando en como pasar a modo edición bloque por bloque seleccionándolo en la pantalla actual.
saludos
pere
NIXYEDITv2.ZIP
(14.15 KiB) Descargado 5 veces

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 17 Ene 2019 20:32

Hola,
esta es una versión ligeramente mas avanzada.
Es un programa Basic que carga los Bloques, las Fonts, el Mapa-Ventana de Juego y ejecuta un programa en ensamblador
Aparece la primera pantalla del juego, en este caso NIXY.
Pulsando 'N' pasamos a la siguiente pantalla. Si estamos en la última vuelve a la primera
Pulsando 'P' volvemos a la anterior. Si estamos en la primera pasa a la última
Para salir basta con pulsar BREAK
Para ir probando ficheros obtenidos con mi 'troceador' de ficheros AGD, he añadido las fuentes así puedo mostrar algo de texto ...
Un paso mas -thumbup
@jltursan
Igual podríamos echarle una ojeada a tu editor ...
El paso siguiente que pensaba hacer es abrir un cursor, que será del tamaño de un bloque que estará conmutando de imagen normal a la
de colores invertidos y podremos moverlo con los cursores hasta llegar al bloque que deseemos modificar ... son solo ideas
Por cierto, el programa de arranque es VIEWSCL.BAS
saludos
pere
Pantalla-Texto.jpg
Pantalla-Texto.jpg (36.11 KiB) Visto 70 veces

GAMEEDIT4.ZIP
(14.9 KiB) Descargado 1 vez

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 18 Ene 2019 14:05

Buenos días,
mas cambios en la versión 0.5 del editor
Cuando arranca y muestra el número de pantalla, podemos hacer:
- E para entrar en modo edición
- C para cambiar la paleta de colores (entre 0 y 1)
- M para cambiar de PMode (entre 3 y 4)
- N para pasar a la siguiente pantalla
- P para volver a la pantalla anterior
- Break para salir del programa

Cuando entramos en el modo Edición, se muestra la posición de cursor X, Y y además el número de bloque
tomado del layout de la pantalla en curso. Es el que pretendemos editar (en próximas versiones)
Ordenes permitidas en este modo:
- Cursor derecha para pasar al bloque dele derecha del actual
- Cursor izquierda para ir al de izquierda
- Cursor arriba para pasar a la línea de encima
- Cursor abajo para masar a la linea de abajo
- Break para salir de este modo y volver al modo selección de pantalla / modo gráfico

Para que sea mas cómodo mover el cursor por pantalla, al llegar a un límite (horizontal o vertical), se pasa
al otro.
saludos
pere
Pd Por supuesto el texto en PMode 3 pierde mucho y dependerá de como se definiera en PMode 4.
Habrá que tener un editor de fuentes ya que algunas de ellas se usan para definir gráficos simples a dos colores
Editorv0.5-PM4.jpg
Editorv0.5-PM4.jpg (36.56 KiB) Visto 45 veces
Editorv0.5-PM3.jpg
Editorv0.5-PM3.jpg (40.72 KiB) Visto 45 veces
GAMEEDIT5.ZIP
(15.24 KiB) No descargado aún

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD - Editor de ficheros AGD

Mensajepor pser1 » 18 Ene 2019 19:05

Una vez seleccionado un bloque, se podría mostrar una pantalla parecida a la siguiente donde el diseñador
podría cambiar el color de cada pixel, que aquí está representado por tres tacos semigráficos
saludos
pere
EdicionEnModoTexto.jpg
EdicionEnModoTexto.jpg (15.47 KiB) Visto 38 veces

jltursan
Mensajes: 2333
Registrado: 20 Sep 2011 13:59
Agradecido : 131 veces
Agradecimiento recibido: 351 veces

Re: AGD - Editor de ficheros AGD

Mensajepor jltursan » 18 Ene 2019 20:09

¡Y que se vea el bloque en su tamaño original! :-)

Avatar de Usuario
pser1
Mensajes: 2345
Registrado: 08 Dic 2012 18:34
Agradecido : 378 veces
Agradecimiento recibido: 428 veces

Re: AGD - Editor de ficheros AGD

Mensajepor pser1 » 18 Ene 2019 20:37

jltursan escribió:¡Y que se vea el bloque en su tamaño original! :-)

me lo temía ... entonces no hay mas remedio que editar en modo PM3 directamente abriendo una ventana
donde aparecerá ampliado el bloque en cuestión y ademas a tamaño normal.
Los cambios que se hagan se aplicarán a ambas imágenes
Yo quería ahorrarme el tener que redibujar la pantalla al acabar la edición del bloque
Cosa que se podría hacer si vamos sobrados de espacio editando en la segunda pantalla gráfica
como si hiciéramos un PCLEAR8 ... miraré ambas posibilidades
Lo que habría que saber es si hay algún tipo de función que podría ayudar a convertir la pantalla (todos los bloques)
Por ejemplo establecer que color queremos de fondo y que el programa convierta adecuadamente TODOS los
bloques de esta pantalla para que el color 'antiguo' que hayamos seleccionado pase a ser el 'nuevo' valor deseado
y rotando todos los demás por supuesto (o hacer directamente una tabla de cambios para los cuatro colores antiguos-nuevos
Puede ser complicado, pero si fuese útil valdría le pena analizarlo
Vamos, que un poco de tormenta de ideas no nos iría mal antes de empezar a programar el editor en si
saludos
pere


Volver a “Software Dragon”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado