Página 19 de 29

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 09:02
por pser1

Último mensaje de la página anterior:

buenos días,
tras corregir el error de tecleo que 'no movía' pixels verticalmente, o sea movía una línea en lugar de un rectángulo ... -507
Sigue sin funcionar, pero debo decir que ahora no hace *NADA*, quiero decir que no afecta ni un solo byte de pantalla,
*NO SE MUEVE NADA" -banghead
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 10:32
por pser1
He estado probando cambiando el número de pixels de desplazamieto a la izquierda, usando valores 1,2,4,8
pero con ninguno de ellos he conseguido el menor movimiento -banghead
Es como si no recibiera el comando HMMM o bien se niega a ejecutarlo aunque ambas opciones me parecen extrañas, dudosas
Trataré de ver como crear hasta 31 patrones nuevos para la linea con texto que se desplaza y los guardaré en memoria.
Después, tras cada desplazamiento a la izquierda, actualizaré dichos patrones en la VRAM.
Para ver su efecto en la pantalla del MC6847 utilizaré la memoria de $500-$5ff (256 bytes > 31 chars x 8 bytes)
No veré la realidad, pero si movimiento, cambios. Esto es pensar en voz alta, por supuesto ...
Agradeceré cualquier idea para poder utilizar el comando HMMM o bien alternativas a la que acabo de explicar -nb
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 12:33
por pser1
@jltursan
Antes de embarcarme en el cambio de procedimiento para mover el texto hacia la izquierda, quería preguntarte si recuerdas
algún juego que emplee 'Scrolling Text' a lo largo del juego.
Ahora mismo solo recuerdo alguno en el menú de entrada. Yo mismo lo añadí a varios juegos en la pantalla en la que eliges
teclado o joystick.
Si no se emplea nunca en el juego, cosa que me parece mas que razonable, entonces no haría falta guardarse los 31 patrones
que son sobre escritos por la tira de texto desplazándose.
En caso de utilizarlos a lo largo del juego, entiendo que sería una barra fuera del área de juego con mensajes fijos, por lo que
no deberían quedar afectados al cambiar de pantalla (?)
La única manera de 'parar' un scrolling text es usando el comando TICKER 0 en el fichero AGD ...
¿Alguna idea?
muchas gracias
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 16:31
por jltursan
No recuerdo juegos con el TICKER, excepto el juego de ejemplo, que tenía un poco de todo,; la verdad es que no se ha empleado mucho. Como dices, en el menú siempre, no dentro del juego. En el AGD MSX añadí una demo (que no está acabada al 100%) que permite mostrar un uso algo diferente, con un scroll de 1px dentro del juego; pero eso ya es cosa mía.

Como te contaba, aunque con el V9958 cuentas con el command engine (habilitándolo con R#25 como has hecho), el HMMM te va a ser imposible emplearlo ya que no funciona en GM3 a nivel de pixel, sino de bytes y por lo tanto el resultado sería más bien raro. No puedes hacer un scroll horizontal con el VDP...o por lo menos no imagino como.
Lo que si que puedes hacer es transferir la VRAM a RAM, rotar los bytes y llevar de vuelta la RAM a la VRAM, en parte asistido por el VDP en el caso de las copias.

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 16:37
por pser1
jltursan escribió:No recuerdo juegos con el TICKER, excepto el juego de ejemplo, que tenía un poco de todo,; la verdad es que no se ha empleado mucho. Como dices, en el menú siempre, no dentro del juego. En el AGD MSX añadí una demo (que no está acabada al 100%) que permite mostrar un uso algo diferente, con un scroll de 1px dentro del juego; pero eso ya es cosa mía.
Como te contaba, aunque con el V9958 cuentas con el command engine (habilitándolo con R#25 como has hecho), el HMMM te va a ser imposible emplearlo ya que no funciona en GM3 a nivel de pixel, sino de bytes y por lo tanto el resultado sería más bien raro. No puedes hacer un scroll horizontal con el VDP...o por lo menos no imagino como.
Lo que si que puedes hacer es transferir la VRAM a RAM, rotar los bytes y llevar de vuelta la RAM a la VRAM, en parte asistido por el VDP en el caso de las copias.

Estoy de acuerdo y convencido por la mala experiencia de que el comando HMMM no es aplicable, lástima -banghead
No obstante lo haré por programa. Voy a dedicar la parte de RAM desde $400 en adelante según haga falta (número de caracteres a desplazar)
y los tendré ya de entrada en RAM donde les aplicaré shift a cada llamada, copiándolos cada vez de tirón a la VRAM así me ahorro el doble paso
de copiar de VRAM a RAM para devolverle datos ya movidos ...
Ya te iré contando ... siempre es bueno tener alternativas en la recámara -507
muchas gracias -thumbup
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 20:00
por pser1
bueno, al fin funciona correctamente -drinks
Lo he añadido al Foggys Quest, substituyendo las dos ultima líneas de créditos por una única que se va desplazando a la izquierda
Una cosa medio preocupante ... ¿Qué pasa si el programador quiere utilizar doble altura?
¿Lo tienes previsto o no vale la pena?
Estaba pensando en hacer que IScrly pase al modo de texto simple de entrada ... así me evito el problema.
Doble altura implicaría un máximo de 32 caracteres a dos patrones = 64 ... son unos cuantos y el proceso debería ser modificado
¿Vale la pena?
un saludo
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 22 May 2020 23:00
por pser1
una vez arremangado para modificar el motor para que admita texto de doble altura en la función de 'scrolling text'
ha resultado bastante mas simple de lo que suponía ...
Adjunto un vídeo de ejemplo
https://youtu.be/QJRS8vE6Nsc
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 23 May 2020 10:22
por jltursan
¡Hey, mola!, es una nueva "feature", el AGD realmente no soporta el TICKER de carácteres de doble altura; pero es bastante vistoso -drinks

Ahora, yo le echaría un ojo al "Diamond Geezer", es perfecto para pulir cosas e incluye partículas ,que es probablemente la parte más puñetera.

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 23 May 2020 11:31
por pser1
Creo que ahora me conviene mas meterme con el compilador en C hasta que consiga que me genere el fichero ensamblador
que yo he ido modificando para crear la versión final de Foggy's Quest
Cuando lo tenga podré probar todos los ficheros TSTxxx.AGD que utilizamos con Kees van Oss y además los que tu has
incluido en tu conversión para MSX.
En su momento pedí en el grupo Spectrum AGDX si alguien tenia una programa para probar todo el tema del shrapnel
y Alan Turvey creó un juego a medida: "Meteormania" en el que utilizaba todas las subfunciones relacionadas con shrapnel (o casi todas).
A ver si lo encuentro -thumbup
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 23 May 2020 11:35
por pser1
jltursan escribió:¡Hey, mola!, es una nueva "feature", el AGD realmente no soporta el TICKER de carácteres de doble altura; pero es bastante vistoso -drinks
No estoy tan seguro ... nadie te prohibe poner el printMode (prtMod) a 1 antes de llamar al TICKER con lo que en teoría los caracteres se
deberían mostrar a doble altura, ésta es la razón que me ha 'ayudado' a modificar la función para soportar la doble altura ...
Ahora, yo le echaría un ojo al "Diamond Geezer", es perfecto para pulir cosas e incluye partículas ,que es probablemente la parte más puñetera.
Tomo nota, lo pongo en cola para cuando tenga el compilador de C preparado para V9958
muchas gracias!
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 23 May 2020 12:16
por jltursan
No estoy tan seguro ... nadie te prohibe poner el printMode (prtMod) a 1 antes de llamar al TICKER con lo que en teoría los caracteres se
deberían mostrar a doble altura, ésta es la razón que me ha 'ayudado' a modificar la función para soportar la doble altura ...

No al menos en la versión 0.73, que es en la que yo me basé. El área de la que se hace scroll es de únicamente 8 líneas de alto y la impresión de caracteres está desligada de las rutinas estandar, se vuelcan los 8 bytes de la font y ya. Realmente has ampliado la funcionalidad :-)

Ese "Meteormania" suena estupendo, podría ser una muy buena prueba de fuego para la versión MSX; si lo encuentras, házmelo llegar... ;-)
No tengo demasiada confianza de todas formas, era la parte más pesada de todo el engine y demasiadas partículas pueden ser demasiada chicha que digerir.

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 23 May 2020 17:47
por pser1
@jltursan
no me había fijado en este detalle sutil de que solo me pasan los 8 pixels de altura de un carácter estándar ...
Bueno, ya está implementado y no voy a quitarlo -507
Adjunto zip con Meteormania en formatos .sna, .agd para Spectrum y .agd para Dragon ... espero que te sirva!
saludos
pere
Z_Meteormania.zip
(9.4 KiB) Descargado 1 vez

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 31 May 2020 22:25
por pser1
hola de nuevo,
tengo algunas preguntas sobre la creación de efectos/sonidos con el AY3-8910
Ya he convertido el código del fichero "ayFX-ROM.asm" aunque voy a verificarlo un par de veces mas ya que he tratado de emplear
registros del 6309 y muchas instrucciones que hasta ahora no había empleado (nuevas del 6309)
- en la rutina que envia los datos al chip, encuentro esto
ld c,MSX_PSGDW
ld hl,AYREGS
.sfxloop:
out (MSX_PSGLW),a
inc a
outi
cp 13
jr nz,.sfxloop
ret
- Supongo que MSX_PSGDW será el puerto al que se envían los datos, ¿Verdad?
- MSX_PSGLW recibe el numero de registro, ¿A qué dirección o puerto representa?
¿Alguien puede subir aquí un fichero con la definición de un banco de efectos para poder hacer pruebas? -nb
Supongo que un enlace a una página que contenga alguno también sería interesante.
muchas gracias por adelantado -thumbup -drinks
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 31 May 2020 22:44
por pser1
vale, parece que para el chip que vamos a emplear (YM-2149) los ports a utilizar como en el módulo CoCo-PSG de Ed Snider son
- $ff5e - YM register select port
- $ff5f - YM data port
Así que un tema menos, ya solamente me falta algún banco de sonidos (probado) y alguna indicación de como 'interconectar'
el módulo de sonidos al motor AGD . Aparentemente se le llama desde los ficheros de scripts con el comando SOUND n
Pero en alguna parte habrá que indicarle al motor la ubicación (inicio) del banco de efectos ...
gracias de nuevo por cualquier indicación que me podáis hacer
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 31 May 2020 23:19
por pser1
en el fichero EngineMSX.asm he visto que se llama a funciones de inicialización
en la sección start y luego en ISR se llama a las rutinas play y envío de registros
Perece que podré hacer lo mismo en mi motor AGD-V9958.
saludos
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 01 Jun 2020 12:02
por pser1
hola,
creo que revisando el compilador en C para MSX y el propio motor para MSX he encontrado mucha información.
Pero tengo una duda que me gustaría que alguien me aclarase:
¿Puede estar emitiendo sonidos por el altavoz (BEEP command) y al mismo tiempo por el chip de sonido (SOUND /MUSIC)?
muchas gracias
pere

Re: Aprendiendo a manejar el chip de video V9958

Publicado: 01 Jun 2020 19:35
por jltursan
En el engine MSX las equivalencias a los puertos del PSG son:

MSX_PSGLW equ $A0 ; latch address for PSG
MSX_PSGDW equ $A1 ; write data to PSG

...pero supongo que a estas alturas ya tienes controlado el tema.

Así que un tema menos, ya solamente me falta algún banco de sonidos (probado) y alguna indicación de como 'interconectar'
el módulo de sonidos al motor AGD . Aparentemente se le llama desde los ficheros de scripts con el comando SOUND n
Pero en alguna parte habrá que indicarle al motor la ubicación (inicio) del banco de efectos ...

Los bancos de sonido que empleo son compatibles con los generados por la utilidad ayFXedit. En mi Github puedes encontrar aquí el banco de SFX que cargo por defecto con una serie de sonidos muy "apañaos".
Cuando se detecta la necesidad de generar SFX, siempre cargo un banco por defecto que el compilador asume que está en el directorio "resources". Si se quiere emplear otro conjunto de efectos, basta con sustituir este archivo por otro con los sonidos que se quiera.

¿Puede estar emitiendo sonidos por el altavoz (BEEP command) y al mismo tiempo por el chip de sonido (SOUND /MUSIC)?

Se puede, los BEEP se generan en el "mainloop" y todo el PSG se genera mediante interrupciones.
De hecho en el Foggy solapo los sonidillos "bleep-bloop" que tenía el juego con la banda sonora PSG que le añadí :-)