Página 1 de 6

SDK completo para Spectrum

Publicado: Dom Nov 11, 2007 12:44 am
por Bubu
Estoy buscando un paquete de utilidades completo para desarrollar en mi PC un juego para el Spectrum. Me refiero a una especie de SDK (Software Development Kit) que incluya:

- ensamblador / desensamblador del Z80 del spectrum bajo window$
- debugador paso a paso, con puntos de ruptura
- que al ejecutar o debugar paso a paso se vea en una ventana emulando el spectrum
- que incluya una herramienta de diseño gráfico con las mismas caracterísitcas que el sepctrum


Ahora mismo el que más se le acerca es el emuZWin, pero me da algunos petardazos, y no incluye diseño gráfico. ¿Conocéis algún SDK?

Publicado: Dom Nov 11, 2007 1:48 am
por mcleod_ideafix
Ensamblador para Z80: PASMO, que además puede generar un SNA, un TAP, o un archivo binario puro.
Debugger/emulador paso a paso con puntos de ruptura: Spectaculator (y además sale en una ventana emulando al Spectrum)
Herramienta de diseño gráfico con las mismas características que el Spectrum: tienes BASIn para generar los UDG's y creo que también música, y BMP2SCR que además de convertir imágenes a formato SCR, tiene un editor de dibujo en el que se emula el "atrribute clash" del Spectrum.

Re: SDK completo para Spectrum

Publicado: Dom Nov 11, 2007 4:47 pm
por Metalbrain
Bubu escribió:Estoy buscando un paquete de utilidades completo para desarrollar en mi PC un juego para el Spectrum. Me refiero a una especie de SDK (Software Development Kit) que incluya:

- ensamblador / desensamblador del Z80 del spectrum bajo window$
- debugador paso a paso, con puntos de ruptura
- que al ejecutar o debugar paso a paso se vea en una ventana emulando el spectrum
- que incluya una herramienta de diseño gráfico con las mismas caracterísitcas que el sepctrum

Ahora mismo el que más se le acerca es el emuZWin, pero me da algunos petardazos, y no incluye diseño gráfico. ¿Conocéis algún SDK?


El emulador ZXSpin tiene un buen debugger y también tiene ensamblador integrado, que por lo que opina la gente en WoS no debe ser malo (aunque yo para ensamblar uso Pasmo). Para los gráficos, puedes usar el TommyGun (que es como un IDE en el cual también puedes escribir código y otras cosas) o mi propio SevenuP.

Re: SDK completo para Spectrum

Publicado: Dom Nov 11, 2007 7:57 pm
por Bubu
Probaremos todo esto e iré comentando los resultados. ¡¡ Gracias !!

Re: SDK completo para Spectrum

Publicado: Dom Nov 11, 2007 11:52 pm
por Gandulf
A mi el TommyGun me falla como una escopeta de feria. Lo probé hace como un año y sinceramente no me funcionaba nada como debía hacerlo. Muchísimos errores y luego opciones que simplemente no funcionaban. Deduje que o bien nadie lo usaba realmente o en la web había una versión no estable del mismo. Y creo que lo probé bajo XP pero ya no estoy seguro totalmente de ello, puede que lo probara bajo Vista, pero juraría que fue en XP.

Yo para dibujar recompiendo el ZXPaintBrush sin dudarlo, además del resto de utilidades de las ZXTools como el ZXBlockEditor para manejar cintas y bloques de carga. El SevenUp lo probé pero la interface se me hizo rara, fue exactamente en la misma época en la que probé el TommyGun, no recuerdo si era las combinaciones de teclas o la forma en que había que hacer las cosas, el caso es que volví al ZXPaintBrush otra vez, y sigo usando este. Pero con el SevenUp ya fue algo más de gustos personales, simplemente.

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 1:22 am
por Bubu
Bueeeeno, bueno, bueno... de momento he probado esto:

- emuZWin: Ensamblando y debugando: no permite ver la pantalla cuando se ejecuta paso a paso
- zxSpin: Ensamblando y debugando: no permite ver la pantalla cuando se ejecuta paso a paso
- ZXPaintBrush: Es una p* maravilla como utilidad para gráficos del Spectrum. Buenísimo.

El pograma que estoy ejecutando en los emuladores es siempre el mismo:

Código: Seleccionar todo

   ORG 60000
   DI
   LD HL, 4000H
   LD (HL), 255
   EI
   RET


con el que se debería dibujar una rayita arriba a la izquierda. Peeeero se dibuja una vez termina la debugación. Mientras tanto el emulador (tanto emuZWin como zxSpin) parece estar en pausa. ¿No podría haber una manera para que al ejecutarse la instrucción LD (HL), 255 ahí mismo se viera ya la rayita?

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 1:48 am
por Gandulf
Para tracear no te puedo decir, porque uso Spectaculator y me vale de sobra, pero creo recordar que EmuZWin tiene una opción de refrescar la ventana del spectrum.

Con respecto a ensamblar te recomiendo encarecidamente Pasmo u otro ensamblador cruzado, porque aunque algunos emuladores te dejen meter código en asm, los cruzados te dejan incluir ficheros como músicas, o lo que quieras, o subdividir el código en varios ficheros de texto. No hay color, vamos, si lo que pretendes es hacer algo más o menos complejo/largo.

Veo que también te ha gustado el ZXPaintbrush :)

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 9:12 pm
por TrueVideo
El debugger de ZXSpin apunta maneras, pero de momento el visualizador de memoria sigue siendo un horror (los offsets cambian al redimensionar la ventana??) Por el momento sigo con el de Spectaculator, que es más austero pero funciona.

Para pintar ZXPaintbrush está muy bien tal como te han dicho, aunque personalmente prefiero una solución más tradicional como ProMotion, que es como el hijo ilegítimo de DeluxePaint y Brillance. Por desgracia se pierde la simulación de atributos de Spectrum pero se gana en versatilidad. En cualquier caso no descartes tan pronto SevenuP: llegará el momento en que querrás convertir tus gráficos a un formato manejable por código y en ese aspecto SevenuP es valiosísimo.

Respecto a TommyGun mucho me temo que ya sea un proyecto abandonado (al menos el autor así lo insinuó hace un tiempo en WOS). El problema es que intentaba abarcar demasiado a la vez y el resultado ha sido una herramienta que no sobresale en ningún aspecto en concreto. En ese sentido creo que la utilidad de una kit todo en uno es muy discutible, como ya se ha demostrado.

J

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 9:16 pm
por TrueVideo
Gandulf escribió:Con respecto a ensamblar te recomiendo encarecidamente Pasmo u otro ensamblador cruzado, porque aunque algunos emuladores te dejen meter código en asm, los cruzados te dejan incluir ficheros como músicas, o lo que quieras, o subdividir el código en varios ficheros de texto. No hay color, vamos, si lo que pretendes es hacer algo más o menos complejo/largo.


Desde luego. Los ensambladores incorporados en algunos emuladores sirven para introducir algún que otro parche en caliente de forma rápida, pero en ningún caso pueden sustituir a un ensamblador cruzado. Hoy por hoy Sjasm y Pasmo son las opciones más claras.

J

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 9:29 pm
por TrueVideo
Bubu escribió:con el que se debería dibujar una rayita arriba a la izquierda. Peeeero se dibuja una vez termina la debugación. Mientras tanto el emulador (tanto emuZWin como zxSpin) parece estar en pausa. ¿No podría haber una manera para que al ejecutarse la instrucción LD (HL), 255 ahí mismo se viera ya la rayita?


Al ejecutar paso a paso el emulador permanece en pausa, pero también lo hace el refresco de pantalla. Por eso los cambios que haces por código no se visualizan en el acto. Para verlos deberías esperar a un refresco de cuadro completo. Si el debugger no tiene esa opción prueba con dos HALT después de habilitar las interrupciones (han de ser dos, con uno no vale).

J

Re: SDK completo para Spectrum

Publicado: Mar Nov 13, 2007 10:34 pm
por Metalbrain
Bubu escribió:con el que se debería dibujar una rayita arriba a la izquierda. Peeeero se dibuja una vez termina la debugación. Mientras tanto el emulador (tanto emuZWin como zxSpin) parece estar en pausa. ¿No podría haber una manera para que al ejecutarse la instrucción LD (HL), 255 ahí mismo se viera ya la rayita?


Si el emulador es bueno, lo normal es que no lo haga. En el Spectrum, cuando escribes un byte, este no se muestra inmediatamente en la pantalla, sino que hay que esperar a que el haz de electrones de la televisión pase por esa posición concreta y la actualize con la información que le pasa la ULA. En la pantalla del emulador con el que depuras ocurrirá algo similar, solo se actualizará la pantalla cuando se deba. Eso implica esperar ejecutando más instrucciones o haciendo por ejemplo un halt (si el haz de electrones te pilla arriba del pixel que estás actualizando), o dos como te ha indicado TrueVideo para el caso de que el haz ya haya pasado por ese pixel y por lo tanto debas esperar al siguiente turno.

Re: SDK completo para Spectrum

Publicado: Mié Nov 14, 2007 12:20 am
por Bubu
Comprendido. Voy a hacer dos HALT's para ver qué pasa, pero me da que el emulata va a seguir tostating.
Por cierto, si uso Pasmo, ¿podré ir mientras voy paso a paso visualizando también la pantalla?

Re: SDK completo para Spectrum

Publicado: Mié Nov 14, 2007 1:10 am
por mcleod_ideafix
No. Pasmo es un ensamblador: coge un fichero de texto con código escrito en ASM y te devuelve un BIN, un TAP o no se qué más, que puedes cargar en el Spectrum. No integra ningún tipo de depurador.
Spectaculator te permite una opción que es "Run until end of frame" que es algo así como ejecutar hasta que se termine de refrescar la pantalla actual. Eso y un par de HALT's antes del RET debe ser suficiente para mostrar la rayita...

Re: SDK completo para Spectrum

Publicado: Mié Nov 14, 2007 1:35 am
por Bubu
He probado lo de los HALT's con emuZWIn y funciona perfestamente. Qué grandes sois.
Con ZxSpin no hacen falta los HALT's porque sólo hay que hacer clic a la pantalla del spectrum y entonces se refresca y aparece la rayita. Me queda probar el Spectaculator.
No voy a probar en principio el pAsmo porque lo que pretendo (al menos iniclamente) es ir viendo en pantalla lo que va ocurriendo.

Re: SDK completo para Spectrum

Publicado: Mié Nov 14, 2007 2:49 am
por Gandulf
Pero no tiene nada que ver lo de ver en pantalla lo que ocurre con usar Pasmo o no. Tal y como te decía McLeod, tu con Pasmo creas lo que es el código, o sea, lo ensamblas. Luego en el emulador cargas el código, como si fuera un juego, y lo depuras paso a paso dentro del emulador, viendo lo que pasa en pantalla con cada cosa.

El emulador sería el monitor de código máquima, pero el código lo puedes generar con un ensamblador cruzado y no meterlo también en el emulador.

Con respecto a los formatos de grabación, efectivamente ZXPaintBrush no da muchas opciones y SevenUP sí, pero para eso lo mejor es currarse una/s utilidades para PC para formatear y tratar los formatos de grabación de ZXPaintbrush de la forma que quieras. Yo tengo algunas que me hecho en plan caserillo, incluyendo un compilador de tiles. Así cuando quieres algo en un formato raro en concreto para alguna rutina toqueteas un poco y lo sacas.