Primeros pasos con el FM-7

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 22 Jul 2017 12:14

Último mensaje de la página anterior:

Buenos días,
Voy a intentar explicar mis 'preocupaciones' respecto a la conversión de Tiburón al FM-7
Es increíble que un programa que funciona sin problemas en un Dragón 32, resulte *CASI* imposible portarlo al FM-7,
probablemente debido a los sprites utilizados que son muy pero que muy grandes. Y no me refiero solamente a Brody, sinó
a los sprites que utilicé para hacer mover a Brody por detrás de la barandilla, del mostrador y del poste, NINGUNO de estos
sprites podrá añadirse en el FM-7 a menos que encontremos otra área de almacenamiento en el SubSistema

Actualmente ya *NO PUEDO* mostrar texto en pantalla sin que esto machaque algunos bytes de los sprites -banghead
Y quitar el texto de este juego es como matar el juego ... se me ocurre pintar textos en lugar de escribirlos con el subsistema
pero va a ser engorroso. Hay que ver lo poco que ayuda tener un área común tan ridículamente pequeña!
Y esto sin hablar del tema música de introducción y la reproducción de ficheros WAV para efectos, que aquí el chip dedicado
debería ayudarnos, ¿O no?

Voy a intentar añadir la rutina que invierte a Brody para el movimiento hacia la izquierda, que implica añadir la tabla inversora
que ocupa sus buenos 256 bytes, ya veremos si surgen mas pegas.

Resumiendo, que el absoluto desconocimiento de la máquina nos puede estar jugando una mala pasada, pero es lo que tenemos.
A ver si conseguimos una copia de los maravillosos manuales en castellano/inglés que ha 'heredado' Xion y ésto nos abre los ojos
para entender mejor a este ordenador que ahora nos resulta tan complicado.

saludos
pere

jltursan
Mensajes: 2197
Registrado: 20 Sep 2011 13:59
Agradecido : 101 veces
Agradecimiento recibido: 270 veces

Re: Primeros pasos con el FM-7

Mensajepor jltursan » 22 Jul 2017 13:35

Aquí si que se complican las cosas ya que en cada pantalla hay zonas accesibles y otras inaccesibles, pero no tengo claro que haya
una zona inaccesible común a *todas* las pantallas. La verdad es que preferiría plantearme mas adelante hacer un juego con sprites
bastante menores y a todo color, así veríamos como nos las apañamos con máscara y sprite como hice en Dragón (B y N)
En el próximo mensaje comento los puntos técnicos que me están frenando realmente


No me he explicado bien, me refería no a buscar una zona común a todas las pantallas, si no que por pantalla se viera que zonas están "libres" de sprites y colorear esas zonas (y solo esas) con los tres planos. Programáticamente no habría que hacer nada salvo volcar las pantallas con tres planos.
Por ejemplo, la pantalla inicial tendría, si no recuerdo mal, la casa coloreada.

El tamaño de los sprites está claro que es un problema; pero creo que efectivamente estamos haciendo mal uso de la RAM del SS, me da la impresión de que deberíamos poder transferir esos sprites desde la RAM principal. Lo de que la ram compartida sea intocable hasta que la subCPU no se detenga es una pena; pero bueno...
¿Tanta velocidad perdería si enviamos, por ejemplo, 8 líneas de 8 bytes cada vez?

El problema con la consola y su buffer sospecho que desaparecería con un uso más moderado. De todas formas, empleando el visor sobre la sub, ¿no podríamos localizar cual es la zona prohibida y evitarla?

Respecto al sonido hay unas posibilidades muy interesantes. El chip de sonido es el AY-8910 y hay trackers estupendos que permiten la generación simultánea de música y SFX simultáneamente. ¿La pega?, que el código es Z80; pero bueno, no estamos hablando de un Hobbit sino de una rutina :-)

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 22 Jul 2017 14:27

@jltursan
Muy buenas ideas!!
El tema de colores en cada pantalla me parece factible, aunque en algunas el amigo Brody está autorizado a pasearse casi a sus anchas!
Sería una posibilidad de mejorar los gráficos mas adelante.
Dejando al subsistema hacer todo el trabajo de pintar, y para dejar tiempo entre fotogramas el sistema principal ejecuta un
retardo con el contador regY cargado a $4000 aproximadamente, pero esto es tiempo entre imágenes, no sé que pasaría si el
programa hiciera todo el cálculo y fuera enviando bloques de 64 bytes como propones ...de hecho los sprites estarían fuera del
subsistema, liberando el área $c000 solo para lo mas justo, permitiendo jugar con textos a nuestras anchas ...
Por pura práctica voy a intentar hacer los movimientos inversos en el SS, el código servirá igualmente en la CPU principal
y luego me replanteo hacer todo el curre en la CPU principal e ir mandando bloques al SS, de hecho hay que enviar 8 bytes a cada uno
de los dos planos. Y luego está el tema del borrado (hacer transparente) de la zona que deja de ocupar Brody al moverse ...
quizás esta parte si podría hacerla el subsistema ya que los bytes verticales no son precisamente contiguos.
Ya puestos, he notado que a pesar de decirle al subsistema que borre la tecla recibida anteriormente, si dejas pulsada una tecla
(flecha derecha, por ejemplo), el SS tarda mucho en enviarte los siguientes movimientos. Es mas rápido pulsar las teclas brevemente
de forma repetida. ¿Se te ocurre el motivo por el que puede estar pasando esto?
Subo la última versión (sin inversiones) y el fuente para que puedas verlo. LOADM"SHARK15",,R para probarlo
saludos
pere
SHARK15.ZIP
(54.35 KiB) Descargado 14 veces

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 22 Jul 2017 18:01

Hola,
ya funciona el sistema de mostrar a Brody bien 'orientado' al mover.
Os adjunto versión 16 en formato .D77 y su fichero fuente
Para probarlo haced LOADM"SHARK16",,R
saludos
pere
SHARK16.ZIP
(55.07 KiB) Descargado 16 veces

Izquierda.jpg
Izquierda.jpg (70.59 KiB) Visto 385 veces

jltursan
Mensajes: 2197
Registrado: 20 Sep 2011 13:59
Agradecido : 101 veces
Agradecimiento recibido: 270 veces

Re: Primeros pasos con el FM-7

Mensajepor jltursan » 22 Jul 2017 18:12

-thumbup -thumbup

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 22 Jul 2017 18:20

jltursan escribió:-thumbup -thumbup

Ahora (puede que sea el lunes ya que mañana estaré muy liado con la familia) tengo que aplicar tu sugerencia:
Hacer el trabajo de calcular valores en la CPU principal e ir enviando bloques de 64 bytes al Subsistema, que tendrá que
enviar 32 al plano R (Máscara) y 32 al plano G (Brody), lo cual implica 14 bloques de 64 bytes a enviar, si cuento bien:
2x8x56=896 (máscara y sprite de 8 bytes x 56 filas). 896/64=14 'lotes'
Veremos si no se resiente el movimiento. Ojalá no -thumbup
En fin, como siempre, sin prisas pero sin demasiadas pausas -507
Buen fin de semana
pere

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 24 Jul 2017 22:49

Hola,
voy a copiar aquí la última versión de esta conversión a FM-7
Recomiendo leer los dos últimos mensajes que he añadido en el hilo:
viewtopic.php?f=33&t=200033117
Si *todos* vais bien con el inglés, quizás podría evitar la duplicación de mensajes aquí y en el otro hilo.
Vosotros decidís!
Ahora pulsando una tecla de movimiento (cursor), Brody se pone en marcha y no para mientras el movimiento
esté autorizado (sea posible). Si queremos detenerlo, deberemos pulsarla tecla 'S' (orden STOP)
En el fichero .D77 contenido en el zip encontraréis tanto la nueva versión (SHARK17) como la anterior para que
podáis comparar. He intentado que los movimientos a derecha e izquierda sean lo mas parecidos en velocidad
que me ha sido posible, sin llegar al límite de cronometrarlos ;-)
saludos
pere
SHARK17 new.zip
(55.47 KiB) Descargado 18 veces

Avatar de Usuario
minter
Mensajes: 1803
Registrado: 22 Jul 2014 18:51
Agradecido : 1166 veces
Agradecimiento recibido: 492 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 25 Jul 2017 14:56

pser1 escribió:Si *todos* vais bien con el inglés, quizás podría evitar la duplicación de mensajes aquí y en el otro hilo.

I don't know if I am seeing ghosts but looking at the screen carefully, it seems that moving horizontally
Brody has a few points where the movement is not continuous. Impossible to test for vertical moves because there are too few
steps to go.

Prefiero comentarlo aquí, para no crear flood con el asunto de la repetición de teclas. (Si te parece correcto.)
Efectivamente, veo ese fantasma que comentas. pero parece que es debido a como pinta a Brody.
Pinta la cabeza y va bajando, cuarteando el sprite. Igual por eso ese efecto de fantasma.
Bajando la velocidad del emulador a 500 Hz se llega a apreciar el efecto.
Si a Brody le decimos que camine mas despacio con el poke que nos has indicado, seguranemte se apreciará menos.

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 25 Jul 2017 15:41

minter escribió:Efectivamente, veo ese fantasma que comentas. pero parece que es debido a como pinta a Brody.
Pinta la cabeza y va bajando, cuarteando el sprite. Igual por eso ese efecto de fantasma.
Bajando la velocidad del emulador a 500 Hz se llega a apreciar el efecto.
Si a Brody le decimos que camine mas despacio con el poke que nos has indicado, seguranemte se apreciará menos.

A mi me daba la impresión de que se produce en el momento en que el microcomputador que gestiona el teclado (4 bits) llega
al tiempo de empezar a repetir la misma tecla ... Para mi es un 'momento' de espera para empezar a mover a Brody en el
paso siguiente. De todas formas es casi imperceptible y no afecta en nada la jugabilidad, como decía malik, ésto no es un arcade!
Lo importante es averiguar si en el mundo real las teclas del bloque numérico NO tienen el retardo de repetición!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 27 Jul 2017 17:53

Buenas tardes,
Al fin!
He conseguido que funcione el programa utilizando la CPU principal para hacer todos los cálculos y además almacenar los sprites,
con lo que ganamos mucho espacio para el Subsistema.
Las pegas han aparecido a la hora de enviar los datos al subsistema.
Como cada sprite es de 8x56= 448 bytes para mascara y otros tantos para sprite, he empezado por separar los datos en un
bloque para la máscara (contiguo) y otro distinto con el sprite en si. El sprite justo detrás de la máscara.
Así el sistema ha de enviar 448 bytes (en 4 paquetes de 112 para maximizar el uso del área común) para el plano G
y luego otros 448 en 4 envíos, para el plano R
He dejado que sea el subsistema quien haga la inversión de los bytes para mostrar el movimiento a la izquierda, a pesar de que
ésto me ha causado innumerables quebraderos de cabeza ya que el código se carga en la memoria principal y luego se transmite al
Subsistema, a partir de $c000 y esto implica que al cambiar el código de ubicación, hay que programar PIC (position independent code)
lo cual quiere decir que se usa el sistema indexado respecto al PC (program counter).
Ahora todo me parece comprensible, pero he tenido que recurrir al debug para ir 'descubriendo' los patinazos que provocaba el
código estandar (no PIC) al moverlo al SS.
No me gusta demasiado el movimiento de Brody a pesar de los 2MHz, tal vez haya que arremangarse y tratar de optimizar tanto
la rutina de envio de sprites como la de presentarlos en pantalla, pero no sé si ésto mejoraría algo. También se me ha ocurrido
pensar que en Dragón trato de sincronizar los cambios en pantalla con la interrupción de borrado vertical, pero no tengo la menor
idea de si ésto se podría hacer en el FM-7, qué bien se vive en la ignorancia -507
Bien adjunto zip con el fuente para quien quiera ver los muchos cambios realizados y el disco con el ejecutable:
LOADM"SHARK22",,R
En esta versión el movimiento se controla con las flechas del cursor o el pad numérico (ambos funcionan bien)
Cualquier tecla que no sea de estos dos bloques detendrá a Brody y la tecla 'Q' sale del programa
Por cierto, con estos cambios ya se pueden mostrar textos en pantalla, así que recuperamos lo mas importante, los diálogos!
saludos
pere
SHARK22.ZIP
(55.97 KiB) Descargado 14 veces

Avatar de Usuario
minter
Mensajes: 1803
Registrado: 22 Jul 2014 18:51
Agradecido : 1166 veces
Agradecimiento recibido: 492 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 27 Jul 2017 18:44

Uys!!!!
Se mueve muy bien... pero Creo que tengo mal el emulador.
Brody se me pone a rayas cuando camino a la derecha.
Brody Canal+.JPG
Brody Canal+.JPG (79.8 KiB) Visto 304 veces

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 27 Jul 2017 19:47

minter escribió:Uys!!!!
Se mueve muy bien... pero Creo que tengo mal el emulador.
Brody se me pone a rayas cuando camino a la derecha.
Brody Canal+.JPG

Acabo de descargarme el fichero que había subido antes y he probado SHARK22,
a mi me funciona bien al caminar en las dos direcciones
saludos
pere
Brody-Izquierda2.jpg
Brody-Izquierda2.jpg (72.68 KiB) Visto 298 veces

Brody-derecha.jpg
Brody-derecha.jpg (72.66 KiB) Visto 299 veces

Avatar de Usuario
minter
Mensajes: 1803
Registrado: 22 Jul 2014 18:51
Agradecido : 1166 veces
Agradecimiento recibido: 492 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 27 Jul 2017 20:25

fíjate en el modo. yo tengo las letras más grandes.
que ojo, lo has parado justo en el mismo punto.

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 27 Jul 2017 20:47

minter escribió:fíjate en el modo. yo tengo las letras más grandes.
que ojo, lo has parado justo en el mismo punto.

Casualidad, a veces pasa -507
He probado con WIDTH40,20 y me hace lo mismo que a tí
Curioso, no entiendo porqué la definición de anchura del texto ha de afectar a los gráficos.
Veré si puedo 'forzar' en el arranque la configuración a WIDTH 80x20
Buena labor detectivesca -thumbup
saludos
pere

jltursan
Mensajes: 2197
Registrado: 20 Sep 2011 13:59
Agradecido : 101 veces
Agradecimiento recibido: 270 veces

Re: Primeros pasos con el FM-7

Mensajepor jltursan » 27 Jul 2017 21:36

Pues es verdad, en cuanto cambia el ancho a 80 columnas no hay basura en el sprite -shock
Eso sí, la secuencia de fotogramas en la animación hacia la izquierda no parece correcta, va a tirones...

La velocidad es excelente, aún sin activar el "High VRAM access speed" (en el XM7) todo se mueve rapidito :-)

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 27 Jul 2017 22:30

jltursan escribió:Pues es verdad, en cuanto cambia el ancho a 80 columnas no hay basura en el sprite -shock
Eso sí, la secuencia de fotogramas en la animación hacia la izquierda no parece correcta, va a tirones...
La velocidad es excelente, aún sin activar el "High VRAM access speed" (en el XM7) todo se mueve rapidito :-)

Le he dado la vuelta a la tortilla otra vez!
Ahora la inversión de los bytes la lleva a cabo la CPU principal, desaparecen las historias de códigp PIC obligatorio, etc
Y además la rutina del subsistema resulta muy simple ya que siempre ha de copiar 112 bytes sin hacer otra cosa.
Está claro que para llevar a cabo las inversiones se necesita mas tiempo, pero puedes ver en el código que estoy
utilizando la tabla inversora alineada a $100 de forma que las búsquedas se hacen modificando el segundo byte 'al vuelo'
si no quieres llamarle código automodificable. El total de ciclos es muy superior al bucle simple para movimientos hacia
la derecha, por lo que no sé si esto puede afectar a la imagen entre cuadro y cuadro. Esto no es un Dragón -banghead
Me he fijado que si los movimientos son 2-1-3-1 siendo el 1 el estático, existe una llamada al bucle de reatrdo entre los
tres primeros pasos, pero no tras el cuarto!
Esto podría hacer que el tiempo entre el cuarto y el primero del siguiente movimiento se dibujaran demasiado 'juntos', no
sé, probaré a poner un retraso tras el cuarto movimiento por si las moscas
De momento, con el cambio que he comentado, ya no hay problemas de imagen con WIDTH40,20 lo cual me hace pensar
en 'timing' con el generador de imagen. Ahora requiere muchos menos ciclos que antes.
saludos
pere
SHARK23.ZIP
(56.56 KiB) Descargado 9 veces

Avatar de Usuario
pser1
Mensajes: 2211
Registrado: 08 Dic 2012 18:34
Agradecido : 294 veces
Agradecimiento recibido: 307 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 27 Jul 2017 22:49

He añadido el retardo tras el cuarto movimiento (no muy visible) pero luego he estado variando el valor del retardo,
poniendo valores muy altos para ver cada fotograma. Resulta que la secuencia de fotogramas hacia la izquierda/arriba/abajo
era incorrecta. Ahora son las mismas que hacia la derecha.
En el disco están las versiones SHARK22 SHARK23 y SHARK24
En este último podéis variar el retardo haciendo antes de ejecutar el programa:
POKE&H1165, valor
Por defecto el valor es $03. Con $20 se ve lento de narices pero se ven claramente los fotogramas
Un valor como $10 parece mas razonable, pero ésto a vuestro gusto!
saludos
pere
SHARK24.ZIP
(56.63 KiB) Descargado 16 veces


Volver a “Fujitsu FM7”

¿Quién está conectado?

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