Aventura conversacional «Asalto y castigo» para QL

Subforo oficial del Sinclair QL: realiza aquí las consultas relativas a tu QL.

Moderador: Sir Cilve Sinclair

Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Lun May 30, 2011 12:13 am

He terminado la versión en SuperBASIC de la aventura «Asalto y castigo», escrita en 2009 por Baltasar el Arquero. ¿Alguien se anima a probarla? En la página están todos los detalles:

Asalto y castigo para QL.

Ocurre un problema muy extraño que impide que funcione en Q-emuLator a la velocidad original de QL y con la ROM MGE: la extensión Display toolkit no se instala bien en esas condiciones y por tanto el uso de la función DMODE provoca un error de expresión errónea. Con la ROM JS y con Minerva 1.89 arranca bien a cualquier velocidad. Me gustaría que alguien me confirmara esto.

Cualquier crítica, sugerencia, opinión o informe de errores o erratas será bienvenido.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor afx el Mar May 31, 2011 6:19 pm

Heyyyy ... programa de ¡nueva creación! para el Sinclait QL ... fantástico !!! :D

Lo probaré en la máquina real y en Q-emuLator con diferentes configuraciones en cuanto tenga tiempo.

Marcos, buen curre que te has pegado, ¡felicidades!

.
afx
Sabreman
 
Mensajes: 394
Registrado: Dom Feb 24, 2008 11:56 pm

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Mie Jun 01, 2011 12:51 am

afx escribió:Heyyyy ... programa de ¡nueva creación! para el Sinclait QL ... fantástico !!! :D
.


Haré lo que pueda para que no sea el último :D Tengo un par de proyectos más en desarrollo...
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Dom Jun 12, 2011 5:40 pm

programandala.net escribió:Ocurre un problema muy extraño que impide que funcione en Q-emuLator a la velocidad original de QL y con la ROM MGE: la extensión Display toolkit no se instala bien en esas condiciones y por tanto el uso de la función DMODE provoca un error de expresión errónea.


Es el mismo problema que ya expliqué, y que descubrí durante el desarrollo del programa.

Daniele Terdina, el autor del emulador Q-emuLator, me ha confirmado que el problema se debe a un fallo de las ROM MGx que el emulador parchea cuando la velocidad es mayor:

you hit a MGx ROM bug, and one of the subtle differences between full speed
and QL speed in Q-emuLator.

When parsing keywords, the MGx code uses a MOVE.W where it should have used
MOVE.B (for the keyword length). This bug was not present in earlier ROMs.

You may get the same problem on a real QL with MGx ROM, it would be
interesting to check. Or at times programs may only work if a OS call
returns a particular value in a register that the interface says is
undefined, so they work on the original QL, but when running with different
device drivers (on a real QL, for example a disk interface or RAM disk, or
the emulator's devices) the traps may return different values for the
undefined parameters and the program hits the bug (in this case, I can
usually change the emulator to simulate the original QL behavior by having
my driver returning the same value).

Do you remember that on a real QL loading SuperBASIC programs is really
slow, even (much) slower than reading the microdrives? For long programs it
takes forever, while the microdrive led goes on and off at intervals
(incidentally, this slowness might be what dictated a detail of the design
of the microdrive driver implementation). That's because the code that
parses the keywords is quite unoptimal (I think Minerva fixed that and has a
much faster implementation). When I started writing Q-emuLator in 1991, it
was running on a Mac with a processor not much more powerful than the QL's,
so I added a couple of 'ROM optimizations' to speedup things like loading
SuperBASIC programs. That optimization is still there and it has a fix for
the MGx bug, but the optimization is disabled when running at 'QL Speed',
this explains the behavior you see.


Resuelto por fin el misterio, en la sección de descarga de Asalto y castigo para QL he añadido un nuevo fichero en formato QLPAK pero que usa la ROM inglesa JS en lugar de la española MGE. De este modo ya es posible probar el programa con la versión gratuita de Q-emuLator (que limita la velocidad al 100% de la de la máquina original), y por tanto experimentar el aspecto y la velocidad que tendría la aventura en una QL real. Como explico en la página, aunque lo ROM sea inglesa la introducción de las letras y los signos españoles no se ve afectada porque el emulador se ocupa de todo de forma trasparente.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor afx el Vie Ago 26, 2011 6:00 pm

Ya me he puesto a probar AyC en mi QL+GoldCard. Bajo SMSQ/E funciona todo perfectamente. Con QDOS (MGE) se producen algunos errores que en principio no veo a simple vista que estén relacionados con el Display toolkit. No se si te servirá de pista lo siguiente, en la línea "30590 LET scree_mode = dmode" da un error porque dmode no tiene valor alguno. SBASIC se traga el error, SuperBASIC no.
afx
Sabreman
 
Mensajes: 394
Registrado: Dom Feb 24, 2008 11:56 pm

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Jue Sep 08, 2011 6:26 pm

afx escribió:Con QDOS (MGE) (...) en la línea "30590 LET screen_mode = dmode" da un error porque dmode no tiene valor alguno. SBASIC se traga el error, SuperBASIC no.


Al parecer es el mismo fallo del que hablaba Daniele Terdina en su mensaje, que cité más arriba. El comando DMODE no se ha instalado y SuperBASIC lo toma como una variable sin definir. En SBASIC todo funciona como cabe esperar. Es interesante ver que este problema se produce en una máquina real. Lo repasaré, porque ahora no tengo todo el asunto fresco en la cabeza.

Gracias por probar el programa. Publiqué hace unas semanas una versión en que corregí algún pequeño error y alguna errata; el número de versión indica la fecha.

Tengo un juego híbrido de simulación y aventura bastante avanzado, pero esta vez solo para SBASIC (es una pena no aprovechar sus ventajas, y un gran esfuerzo adicional que un programa funcione en todas las plataformas). En cuanto esté lo anunciaré.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Mie Oct 04, 2017 11:33 pm

Estoy preparando una versión mejorada de Asalto y castigo, que funcionará solo en SMSQ/E.

Dada la detallada información publicada en su día sobre la primera versión, he creado una
página independiente para el nuevo proyecto, que ya está subido a GitHub.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor radastan el Jue Oct 05, 2017 8:55 am

Lo que no entiendo es porqué no se usa el modo de 512x256 del QL estándar. Es mucho más adecuado para una aventura de texto y seguís teniendo color (4 colores). Hasta las imágenes se pueden poner en dicho modo y mediante tramas se pueden llegar a ver incluso mejor.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Avatar de Usuario
radastan
Phantomas
 
Mensajes: 2126
Registrado: Lun May 07, 2007 5:34 pm

Re: Aventura conversacional «Asalto y castigo» para QL

Notapor programandala.net el Jue Oct 05, 2017 11:56 am

radastan escribió:Lo que no entiendo es porqué no se usa el modo de 512x256 del QL estándar. Es mucho más adecuado para una aventura de texto y seguís teniendo color (4 colores). Hasta las imágenes se pueden poner en dicho modo y mediante tramas se pueden llegar a ver incluso mejor.


Hay varios motivos. El principal es que no estoy desarrollando este proyecto para una máquina QL estándar. La versión anterior de Asalto y castigo sí podía funcionar tanto en QDOS como en SMSQ/E, y la probé con Q-emulLator y QPC2, emuladores ambos que hace años que no puedo usar, porque en mi Raspberry Pi 2 lógicamente no es posible usar Wine; y ni siquiera he intentado virtualizar Windows, claro.

Este proyecto, como otros en marcha, es únicamente para SMSQ/E, para ejecutarse con SMSQmulator (aunque deberá funcionar perfectamente con QPC2, lo que en su momento ya os pediré que probéis). De hecho se distribuirá con un fichero ini de SMSQmulator y ello bastará para poderlo arrancar.

La próxima versión de SMSQmulator, de la que ya estoy usando la beta, permitirá arrancar el emulador con un fichero ini específico y configurar en este rutas relativas a los dispositivos. Esto hará posible distribuir aplicaciones y juegos que se ejecuten en SMSQ/E sin necesidad de que el usuario sepa lo que es un QL. De hecho la aplicación o el juego en cuestión no tienen por qué revelar que están corriendo en un emulador, pues en el fichero ini se puede ocultar la barra de menú, por ejemplo. Para el usuario final será más o menos como si hubiera lanzado una aplicación «nativa» para la que simplemente se necesita tener instalado un «intérprete» llamado SMSQmulator (y Java, claro).

En cuanto al tamaño de pantalla: La aventura detecta la resolución máxima del sistema y se ajusta a ello en el arranque. Incluso la imagen de fondo está disponible en varios tamaños estándar, desde 512x256 hasta 1280x800, para usar la que mejor se ajuste.

En cuanto al modo de pantalla y los colores: Hay muchas maneras de hacer las cosas. Aunque la aventura en principio no tendrá imágenes de los escenarios, la posibilidad de usar imágenes reales en formato JPEG, PNG o BMP y convertirlas de forma automática a PIC para que la carga después sea rapidísima es una gran ventaja. En este proyecto de momento solo hay una imagen, pero en otros se usarán muchas. Crear imágenes específicas para los formatos nativos de QL, con 8 colores y tramas, es mucho más laborioso porque hay que hacerlo de forma casi totalmente manual y, probablemente, solo con herramientas de QL. Todo ese esfuerzo merecería la pena si un objetivo principal del proyecto fuera la compatibilidad con QDOS.

Yo no trabajo «dentro» del sistema de destino, es decir usando el emulador, sino con Debian, con todas las herramientas habituales de desarrollo disponibles en un GNU/Linux. Esto facilita automatizar muchas tareas, incluyendo la preparación de las imágenes. El emulador solo me sirve para ejecutar el resultado y probarlo.

De todas maneras, ten en cuenta que los pantallazos de prueba que he puesto en la página del proyecto son reducciones automáticas a 600x480 de los originales de 1280x800, por lo que no hacen justicia a cómo se ve en realidad. Más adelante pondré pantallazos del programa en otras resoluciones.

Por último, el «mercado mundial» :) de una aventura de texto en español exclusiva para QDOS es de... digamos, ¿dos jugadores?, ¿tres? (y eso incluyendo al autor, claro). Por supuesto, el número de potenciales usuarios no es el motivo principal para desarrollar para QL o para ZX Spectrum u otras plataformas antiguas.

A este respecto, las principales ventajas de desarrollar para SMSQ/E son, para mí, muy importantes:

  • SMSQ/E es QL hasta el tuétano pero al mismo tiempo no es una plataforma «antigua» convencional, o al menos no desde todos los puntos de vista: Está en desarrollo activo y técnicamente permite hacer grandes cosas, comparables en muchos aspectos con las que podrían lograrse en sistemas operativos y entornos de desarrollo modernos. En el caso concreto de una aventura de texto (o un juego de estrategia o simulación, por ejemplo, que también me interesan), SMSQ/E permite que el resultado pueda ser mucho más atractivo (gráficos de calidad fotográfica; sonidos digitalizados; paletas de colores; capacidad ilimitada de almacenamiento en el sistema anfitrión...). Es cierto que todo ello, o casi todo, también puede lograrse en QDOS, pero solo a cambio de complicaciones, limitaciones e incomodidades tanto para el programador como para el usuario final.
  • Con SMSQmulator, las aplicaciones y los juegos pueden distribuirse de forma que sean fáciles de usar para quien no sabe nada de QL.

Ese es el camino que me interesa explorar ahora.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Jack The Nipper
 
Mensajes: 189
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España


Volver a Sinclair QL

¿Quién está conectado?

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