Aprendiendo a manejar los chips de video V9958 y sonido YM-2149

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 15 May 2020 08:31

Último mensaje de la página anterior:

Hola de nuevo,
ya he conseguido añadir código para que los objetos hereden los colores de los bloques de la izquierda a los que su superponen ...
No requiere mucho código y es rápido y además cumple con los requisitos de los sprites en V9958, pero ...
MIrando bien el juego, se ven objetos que utilizan 4 colores, uno para cada bloque (cuadrante) por ejemplo el 'cube' o diamante, la
'pit Plant' por nombrar algunos y la verdad, ya que disponemos de un chip de vídeo superior, creo que lo ideal sería cambiar el proceso
de los objetos para poder tener los cuatro colores ahora y los 16 en el futuro.
Esto implica rehacer de cero todas las rutinas para objetos ya que pasarán a ser cuatro bloques que substituirán a otros tantos en el mapa
de pantalla. Habrá que guardarse los substituidos para reponerlos cuando el objeto sea 'cogido' o deba desaparecer.
Le echaré una ojeada a fondo este fin de semana, a ver si puedo 'dibujarme' un esquema de como procesarlos así.
Además debería hacer un vídeo en plan walkthrough de la situación actual de Foggy que, si no fuera por el tema de los objetos, ya estaría
finalizado y listo para ir en un disquete.
A diferencia de la versión para MC6847 en blanco y negro, esta versión solo requiere 32k así que funcionará en cualquier CoCo-Dragón
con 32k y por supuesto con la CPU HD6309 y el módulo Wordpak2+ o el nuevo módulo de John Whitworth
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 17 May 2020 16:13

hola de nuevo ...
esto ha sido bastante duro, fácil el tema de 'mostrar' los objetos como cuatro patrones, pero heredar el color de cada uno de los
patrones que sustituye en pantalla me ha dado verdaderos quebraderos de cabeza, por no contar las dificultades a la hora de reponerlos
de nuevo al quitar el objeto de pantalla. Además al usar la función DropObj que es llamada desde el fichero AGD indistintamente
para objetos que están en el inventario como para otros que no están, por ejemplo cuando hace aparecer la 'semilla'.
Y algunas veces se llama para eliminar un objeto del inventario pero sin que se muestre en pantalla, es decir deshabilitándolo.
Resulta ser una función 'recargada' -507
Pero bueno, lo que importa es que funciona. Me he acabado el Foggy tres veces y la verdad es que ver la 'pit Plant' multicolor
en lugar de solo verde y ver el 'Cube' en cuatro colores ... merecía la pena el esfuerzo -thumbup
Trataré de hacer un vídeo aunque si sale muy grande igual acabo haciendo varias partes ...
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 18 May 2020 10:39

@jltursan
voy a ampliar el proyecto añadiendo el tema de la música ya que John parece que va a añadir un chip YM2149 al V9958.
De todas formas yo puedo probar igualmente ya que tengo un CoCo-PSG hecho por Ed Snider, que contiene dicho chip.
He recopilado la información que subiste respecto a música y por lo tanto tengo cuatro ficheros .asm
- ayFX-RAm.asm
- ayFX-ROM.asm
- PT3-RAM.asm
- PT3-ROM.asm
Está claro que los fichero RAM son definiciones de estructuras que deben existir en RAM
Pero la existencia de dos ficheros 'programa' no tengo claro si son incompatibles entre si o si deben/pueden cooperar ...
Así que agradeceré cualquier indicación que puedas hacerme respecto al tema musica-efectos
muchas gracias
pere

Avatar de Usuario
minter
Mensajes: 2925
Registrado: 22 Jul 2014 18:51
Agradecido : 3194 veces
Agradecimiento recibido: 1343 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor minter » 18 May 2020 13:13

Y Ahora música!!!
No, si al final de Dragon solo va a tener la carcasa!!! :D

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 18 May 2020 13:50

minter escribió:Y Ahora música!!!
No, si al final de Dragon solo va a tener la carcasa!!! :D
pues me temo que dentro de la carcasa es donde se ubicará la nueva placa audio-vídeo utilizando una placa de extensión que permite acceder al bus de expansión desde dentro para un cartucho, de esta forma los discos pueden seguir conectándose fuera en la expansión estándar. Discos o SD por supuesto
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 18 May 2020 15:40

@jltursan,
he visto que hay bastantes rutinas con idéntico nombre en ambos ficheros (programas)
Así que entiendo que deben tener finalidades distintas.
Empezaré mirándome mejor el PT3-ROM.ASM
Ya me contarás que peculiaridad tiene cada una de estas versiones ....
saludos
pere

jltursan
Mensajes: 2960
Registrado: 20 Sep 2011 13:59
Agradecido : 244 veces
Agradecimiento recibido: 720 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor jltursan » 18 May 2020 21:02

Sí, cada fichero cubre una necesidad.

ayFX-ROM: Reproductor de SFX
PT3-ROM: Reproductor de ficheros PT3/PT2

Pueden coexistir ambos o emplear uno en solitario. Teóricamente la compilación condicional debería seleccionar de cada uno lo necesario en cualquiera de los casos y proporcionar el entorno necesario para que funcione, hay unas etiquetas para ello que también empleo en el motor principal y que están controladas en origen por el fichero de configuración game.cfg que genera el compilador; como en otros casos, si se detecta su uso, el compilador habilita el uso de cada una.
El objetivo era abstraerlo lo máximo posible del motor para que fuera sencillo el sustituir esas rutinas por las de cualquier otro tracker.

Y cierto también, a los "programas" los etiqueté como "ROM" porque contienen un código no automodificable que puede ser ejecutado íntegramente en ROM. Las estructuras con datos actualizables las separé en los ficheros RAM y se ubican en un área separada en la memoria.

Por cierto, vaya curro el cambio a objetos con patrones, flipo -shock

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 18 May 2020 22:57

@jltursan
muchas gracias, José Luis.
He estado grabando un vídeo del juego, de cabo a rabo pero el bendito móvil se empeña en captar los colores mucho mas tenues
de como se ven en realidad y encima en algunos cambios de pantalla se desenfocaba -banghead
Para rematarlo el fichero generado ocupa ni mas ni menos que 1,9 Gb no creo que lo pueda reducir suficientemente, pero le daré una
oportunidad a algún conversor/compresor de vídeo y si no hay forma, procuraré colgarlo en el 'tubo' y subiré un enlace aquí.

Debo entender entonces que el ayFx sirve para generar efectos solamente mientras que el PT3 reproduciría la música de ficheros
en formato PT3.
Trataré de convertir los dos programas, por cierto, agradecería un fichero PT3 de muestra para pruebas.
saludos
pere

Avatar de Usuario
gflorez
Mensajes: 1321
Registrado: 12 Sep 2014 19:58
Agradecido : 55 veces
Agradecimiento recibido: 350 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor gflorez » 19 May 2020 00:07

https://zxart.ee/eng/music/mainpage/
Creo que tienes que cambiar la extensión .m por .PT3. No he probado aun a reproducirlas.

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 19 May 2020 10:17

buff,
tras hacer un montaje para 'mantener' mi móvil en una posición que permitiera grabar la pantalla de la tele, me quedé casi
sin 'visión' de pantalla, así que tuve que jugar de pié y mal. Trataré de encontrar otro sistema que me permita mejor vista.
El video 'completo' ocupa en formato .mp4 nada menos que 1.930 Mb y una vez convertido a .avi de baja calidad, se queda en
casi 50 Mb. Voy a tratar de subirlo aquí y en caso que no se acepte el tipo de fichero, lo haré en format .zip
saludos
pere

@minter
lo siento, .avi no aceptados ... y en formato zip (46Mb da "error parsing server response"
Mi gozo en un pozo -banghead

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 19 May 2020 11:21

a ver si funciona este enlace ...
https://youtu.be/XITAVNvrf0Q

saludos
pere

jltursan
Mensajes: 2960
Registrado: 20 Sep 2011 13:59
Agradecido : 244 veces
Agradecimiento recibido: 720 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor jltursan » 19 May 2020 20:47

pser1 escribió:Trataré de convertir los dos programas, por cierto, agradecería un fichero PT3 de muestra para pruebas.
saludos
pere


Toneladas aquí: https://zxart.ee/eng/music/top-100/

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 20 May 2020 10:01

muchas gracias José Luis -drinks
Trataré de escuchar unos cuantos y me descargaré alguno como fichero de pruebas ...
Me descargaré también el formato de fichero PT3 para tener una idea de donde puedo localizar los datos de cada canal y, si existe,
donde empiezan los posibles bancos de efectos ...

Por cierto, he tenido otra 'mala' idea ;-) y voy a tratar de implementarla hoy.
Sobre los textos que se desplazan horizontalmente hacia la izquierda (scrolly text)
Intentaré activar los comandos para el V9958 a pesar de estar en modo G3, a ver si de esta forma puedo utilizar el comando HMMM
para mover horizontalmente 1 pixel todo el texto visible cada vez, ya iré viendo las dificultades que esto pueda presentar sobre la marcha
Hay que hacer trabajar a este V9958 -507
saludos
pere

jltursan
Mensajes: 2960
Registrado: 20 Sep 2011 13:59
Agradecido : 244 veces
Agradecimiento recibido: 720 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor jltursan » 20 May 2020 18:37

Siendo el V9958 no deberías tener problemas. A diferencia del V9938, el V9958 si que puede emplear el command engine en todos los modos gráficos.
La putada es que al emplear un modo de patrones, un scroll ejecutado por el VDP pierde algo de gracia y te va a obligar a hacer malabarismos, lo espectacular es cuando en un modo bitmap la memoria es lineal y te lo hace de un tirón.

En cualquier caso, en el TMS9918 tuve que liarla parda para conseguir lo mismo así que... -banghead

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 21 May 2020 10:22

jltursan escribió:Siendo el V9958 no deberías tener problemas. A diferencia del V9938, el V9958 si que puede emplear el command engine en todos los modos gráficos. La putada es que al emplear un modo de patrones, un scroll ejecutado por el VDP pierde algo de gracia y te va a obligar a hacer malabarismos, lo espectacular es cuando en un modo bitmap la memoria es lineal y te lo hace de un tirón.

Si, realmente, pensándolo bien, me parece un trabajo complicado para el VDP y, para variar, el primer intento ha fracasado miserablemente ;-)
O sea que podré disfrutar de otra magnífica sesión de debug con XRoar sin ver lo que pasa en pantalla, genial!
En cualquier caso, en el TMS9918 tuve que liarla parda para conseguir lo mismo así que... -banghead
Ya me imagino, ya. Mira tu, a lo mejor acabo imitando lo que hiciste si las dos 'posibilidades' que tengo en mente fracasan ...
saludos
pere

Pd Otra posibilidad es que haga un alto en el camino y me dedique al compilador en C, de esta forma podría echar mano de los ficheros
AGD de pruebas que solo contendrían lo que se pretende probar. Lo malo es que tengo que modificar las rutinas de creación de los datos para sprites y las de objetos (son distintas entre si para V9958 (por diseño mio) y además debo añadir funciones para el tema colores, borde y la nueva función de borrado de sprites que me he sacado de la manga ... la verdad es que algo de pereza si me da -507

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 21 May 2020 22:21

Hablando de textos que se desplazan a la izquierda ...
Al ejecutar la función Scrly todo va bien hasta el momento en que envía el comando HMMM al VDP. Al hacerlo, toda la pantalla se va al traste, cambiando cantidad de patrones. Como la función pone un byte que va rotando en un punto concreto de pantalla, puedo ver perfectamente el mensaje como va pasando hacia la izquierda por este patrón (carácter) y lo hace correctamente.
Una de dos, o estoy enviando parámetros equivocados para la función HMMM o bien el V9958 es incapaz de ejecutar tal comando en modo G3
debido al hecho de que la pantalla no es lineal sinó orientada a patrones, como bien indicaba José Luis ...
Tengo la alternativa de gestionar yo los caracteres de la ventana moviéndolos hacia la izquierda pero ésto implicará 'crear' muchos patrones
nuevos correlativos, en el límite podrían llegar a ser 31 ... y gestionarlos directamente en VRAM implicaría leer, procesar y grabar, posicionarse
8 bytes mas lejos y así 31 veces para cada fila de los patrones (8 filas)
Alternativamente se podría tener un buffer en RAM con los caracteres que se podrían rotar mas fácilmente y luego enviarlos en bloque al VDP, posicionando una sola vez ...

La prueba que hago, utiliza la línea 21 desde la columna 7 hasta la 24 (18 chars)
El programa utiliza las coordenadas del carácter de la izquierda y las convierte al mapa de G7
PosX=7x8=56 ($38), PosY=21x8-1=167 ($a7). Menos uno porque la fila superior es 255 en lugar de cero
Los datos nuevos (1 pixel cada vez) se ponen en la columna 25 bit 7. Estos son los parámetros
para copiar un rectángulo de 18 caracteres mas 1 pixel justo 1 pixel a la izquierda
R#32 = $39  R#33 = $00	-  posX origen datos (57)
R#34 = $a7 R#35 = $00 - posY origen datos (167)
R#36 = $38 R#37 = $00 - posX destino datos (56)
R#38 = $a7 R#39 = $00 - posY destino datos (167)
R#40 = $91 R#41 = $00 - numero de pixels a mover horizontalmente (a izquierda) (18*8+1 = 145)
R#42 = $08 R#43 = $00 - numero de pixels a mover verticalmente *** EDIT: error de tecleo ***
R#45 = $04 - define movimiento horizontal hacia la izquierda (de VRAM a VRAM)
R#46 = $d0 - Commando HMMM
Previamente se han habilitado comandos enviando
R#25 = $40 - usando coordenadas como en modo G7: 256x192
Si alguien descubre donde está el error, agradeceré una explicación para corregirlo
muchas gracias
pere

Avatar de Usuario
pser1
Mensajes: 2996
Registrado: 08 Dic 2012 18:34
Agradecido : 701 veces
Agradecimiento recibido: 771 veces

Re: Aprendiendo a manejar el chip de video V9958

Mensajepor pser1 » 22 May 2020 09:02

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


Volver a “Software MSX”

¿Quién está conectado?

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