Dragon con V9958, YM2149 e YM2413 = Dragon-MSX2+

jltursan
Mensajes: 3031
Registrado: 20 Sep 2011 13:59
Agradecido : 255 veces
Agradecimiento recibido: 754 veces

Re: Dragon con V9958 = Dragon-MSX2+

Mensajepor jltursan » 28 May 2020 18:47

Último mensaje de la página anterior:

Pues mucho ojo porque ese hábito, el de reescrbir textos tontamente en el MAINLOOP, me lo he encontrado en la mayoría de juegos que he visto. Tanto que en mi GitHub le dediqué una entrada advirtiendo de ello -no
En algún caso es flagrante, una implementación muy descuidada; el Oceano por ejemplo en su primera versión convertida hacía que el MSX se arrastrara (el motor también era primitivo) y cambiando todo el MAINLOOP para evitar repeticiones la cosa mejoró increiblemente.

Lo dicho, aunque sea poco, lo he visto en bastantes juegos y me temo que a 25fps el desbordamiento tardaría poco en aparecer...

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958 = Dragon-MSX2+

Mensajepor pser1 » 28 May 2020 23:19

jltursan escribió:Pues mucho ojo porque ese hábito, el de reescrbir textos tontamente en el MAINLOOP, me lo he encontrado en la mayoría de juegos que he visto. Tanto que en mi GitHub le dediqué una entrada advirtiendo de ello -no
En algún caso es flagrante, una implementación muy descuidada; el Oceano por ejemplo en su primera versión convertida hacía que el MSX se arrastrara (el motor también era primitivo) y cambiando todo el MAINLOOP para evitar repeticiones la cosa mejoró increiblemente.
Lo dicho, aunque sea poco, lo he visto en bastantes juegos y me temo que a 25fps el desbordamiento tardaría poco en aparecer...

Creo que con Kees van Oss también nos encontramos bastantes juegos con este mal estilo de programación por lo que movíamos el código fijo
al evento Inicialización.
Acabo de modificar tanto la rutina PChar para caracteres normales como la BChar para caracteres de doble altura.
Ahora ambas verifican si los bytes del 'pattern generator' son los mismos que los del carácter que se quiere poner y si es el caso,
no se reimprime por lo que algo de tiempo se ahorra ...
He probado activando la rutina de debug mostrando los contadores y a pesar de tener los títulos y la cabecera del programa dentro
del bucle principal, no me crea ni un solo carácter nuevo a cada iteración. Hay texto normal y de doble altura -thumbup
saludos
pere

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958 = Dragon-MSX2+

Mensajepor pser1 » 29 May 2020 09:42

y otro capítulo mas sobre este tema de control de patrones al imprimir encima de otro ya existente ...
Una vez probado que el sistema de detección de 'idéntica' forma funciona tanto para caracteres normales
como para los de doble altura, se me ocurrió la idea de verificar cuando el patrón es idéntico, si el color
aplicado al actual es el mismo que se utiliza al imprimir (para el nuevo) y en caso de ser distinto pues
el programa sobrescribe la tabla de colores con el nuevo color.
Pensado y ... hecho. Lo he probado y no he notado cambio alguno, mas que nada porqué las probabilidades
de que se imprima un carácter sobre otro idéntico pero en distinto color deben ser ultra remotas ...
No obstante, al pensarlo mas a fondo me dí cuenta de que si 'acepto' cambiar el color al del nuevo texto, en cuanto
se redibuje la pantalla para mostrar el contenido anterior, éste habrá cambiado en aquellos patrones que han
sufrido el cambio de color y la verdad es que no quiero guardarme el color de cada patrón en un buffer en RAM
y menos teniendo en cuenta que una vez acabado el proyecto AGD-Spectrum podríamos pasar a trabajar con
patrones que pueden tener los 16 colores ...
Se admiten sugerencias, ideas -drinks -thumbup
saludos
pere

jltursan
Mensajes: 3031
Registrado: 20 Sep 2011 13:59
Agradecido : 255 veces
Agradecimiento recibido: 754 veces

Re: Dragon con V9958 = Dragon-MSX2+

Mensajepor jltursan » 29 May 2020 13:09

Pues es que no se si te sigo...:-); pero...

si 'acepto' cambiar el color al del nuevo texto, en cuanto
se redibuje la pantalla para mostrar el contenido anterior, éste habrá cambiado en aquellos patrones que han
sufrido el cambio de color


Cualquier cambio que hagas sobre la tabla de colores se verá reflejado inmediatamente sobre todas las apariciones en pantalla del patrón afectado. Ejemplo: si estas alterando el color del patrón 32 de ese tercio, todas las apariciones del patrón 32 estarán presentando ese cambio de color inmediatamente.

No hay que redibujar nada.

Seguramente no estoy pillando tu propuesta; pero hasta donde yo entiendo, cualquier diferencia a nivel de patrón o color, debería representar un patrón nuevo en tu contador.

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958 = Dragon-MSX2+

Mensajepor pser1 » 29 May 2020 19:08

jltursan escribió:Pues es que no se si te sigo...:-); pero...
si 'acepto' cambiar el color al del nuevo texto, en cuanto
se redibuje la pantalla para mostrar el contenido anterior, éste habrá cambiado en aquellos patrones que han
sufrido el cambio de color

Cualquier cambio que hagas sobre la tabla de colores se verá reflejado inmediatamente sobre todas las apariciones en pantalla del patrón afectado. Ejemplo: si estas alterando el color del patrón 32 de ese tercio, todas las apariciones del patrón 32 estarán presentando ese cambio de color inmediatamente. No hay que redibujar nada.
Seguramente no estoy pillando tu propuesta; pero hasta donde yo entiendo, cualquier diferencia a nivel de patrón o color, debería representar un patrón nuevo en tu contador.

Estaba simplemente tratando de evitar utilizar un nuevo patrón cada vez que se imprime el mismo texto en pantalla , por ejemplo dentro del bucle principal. Los cambios que he hecho ya lo evitan pero simplemente estaba comparando el pattern generator, si como he añadido últimamente
comparo los colores y son distintos, está claro que la solución *NO* es machacar el color del patrón con igual forma, sinó crear uno nuevo
No será ningún problema ya que ésto sucederá en contadas ocasiones. Además necesitará menos código.
Muchas gracias -drinks -thumbup
pere

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958 e YM2149 = Dragon-MSX2+

Mensajepor pser1 » 05 Jun 2020 16:05

Ya tocaba alguna actualización, ¿No?
He finalizado la conversión de la parte del motor AGD (de MSX) que gestiona los efectos especiales a través del chip de audio YM-2149
que en Dragón tenemos accesible, de momento, via el módulo externo CoCo-PSG de Ed Snider.
Mi Dragón 64 tiene en este momento un multipack que me permite conectar dos módulos, el que lleva la gráfica V9958 (WordPak2+) y
el susodicho CoCo-VGA que lleva el YM-2149 y otras cosas mas.
La placa que está diseñando John Whitworth donde colaboran también Bas Gialopsos y Phil-Harvey Smith, llevará los dos chips
mencionados y otro de regalo como el MSX-Next si no voy equivocado ...
Os adjunto enlace al vídeo que he grabado ... en pésimas condiciones -banghead
Tuve que poner una montaña de libros delante del televisor para que el móvil pudiera grabar directamente, por ello sentado ante
el Dragón no veía nada de pantalla, me he tenido que poner en pié y alargar el cuello para ver la pantalla así que perdía de vista
el teclado demasiado a menudo. En fin es una forma de tratar de ocultar lo horrible que soy como jugador -507
El próximo paso ya es el motor MSX que gestiona la música a tres canales -thumbup
https://youtu.be/dnuiz5J4bCs
saludos
pere

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958 e YM2149 = Dragon-MSX2+

Mensajepor pser1 » 04 Jul 2020 18:10

Buenas tardes,
os traigo una nueva actualización.
El motor AGD ya es capaz de reproducir ficheros de música formato .pt3 y además emitir efectos de sonido.
Sigo utilizando como programa de pruebas el juego DiamondGeezer.
Os adjunto link donde podréis ver el videode demostración (poco menos de un minuto)
saludos y buen fin de semana!
pere
https://www.youtube.com/watch?v=zYMfmzttu3w

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958, YM2149 y YM2413 = Dragon-MSX2+

Mensajepor pser1 » 08 Sep 2020 15:07

Hola,
me ha costado ponerme, pero tras preparar un cable para enviar el sonido que le llega al TV via Euroconector desde la placa MSX2+
hacia el PC para grabar la música con el programa Audacity, he subido diez WAV files, cada una conteniendo las canciones de uno o mas
juegos. Los VDKs solo se pueden utilizar en máquinas que dispongan de la nueva placa de John Whitworth, pero si el link funciona,
podréis escuchar como suenan con el reproductor que he hecho para ficheros VGM y dicha placa.
Requiere un Dragon con 32k de RAM pero con la CPU cambiada a HD6309. El programa entra en modo nativo y usa la doble velocidad
donde le es posible ...
saludos
pere

https://1drv.ms/u/s!Ak2CQz7uES-0hzuv3Gh ... C?e=biSEfb

Pd Si tenéis algún problema con este link, avisadme y trato de solucionarlo lo antes posible

Avatar de Usuario
minter
Mensajes: 2993
Registrado: 22 Jul 2014 18:51
Agradecido : 3341 veces
Agradecimiento recibido: 1400 veces

Re: Dragon con V9958, YM2149 e YM2413 = Dragon-MSX2+

Mensajepor minter » 08 Sep 2020 19:14

Espera... espera...
Esto que escuchamos es un Dragón?
OMG!!!

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958, YM2149 e YM2413 = Dragon-MSX2+

Mensajepor pser1 » 08 Sep 2020 20:48

efectivamente, es un Dragón 64 aunque un 32 habría sido suficiente.
Como almacenamiento masivo he utilizado el Dragon-MMC de Phill Harvey-Smith ... para variar y no abusar del CoCo-SDC
La placa de John Whitworth Dragón-MSX2+ es la base que reproduce los ficheros VGM ...
saludos
pere

Avatar de Usuario
pser1
Mensajes: 3035
Registrado: 08 Dic 2012 18:34
Agradecido : 717 veces
Agradecimiento recibido: 784 veces

Re: Dragon con V9958, YM2149 e YM2413 = Dragon-MSX2+

Mensajepor pser1 » 12 Sep 2020 11:16

Hola de nuevo,
una vez obtenido el cable, he decidido grabar también la música que ofrece el YM2149 (pariente del AY-3-8910)
El pack anterior utilizaba el chip YM2413 que es un OPL2 y permite el uso de nueve instrumentos simultáneamente
o bien 'solamente' seis pero añadiendo cinco extra para ritmos/percusión, lo cual suma once voces a la vez!
Los ficheros del nuevo pack usan un chip que solamente permite tres canales de sonido/ruido, así que mejor tenerlo
en cuenta ya que la comparación no sería muy justa ...

He subido a OneDrive diecinueve ficheros WAV, cada uno una canción (.PT3), grabada mientras se reproducía
en dicho módulo con un reproductor basado en el motor AGD para Dragon-MSX2+
https://1drv.ms/u/s!Ak2CQz7uES-0h0a7t8u ... z?e=HEUhhZ

saludos
pere

Pd Requiere un Dragon/Coco con 32k de RAM pero con la CPU cambiada a HD6309. El programa entra en modo nativo
y usa la doble velocidad donde le es posible ...


Volver a “Software Dragon”

¿Quién está conectado?

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