música en juegos AGD - CERRADO POR FALTA DE CLIENTELA

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 13 Ago 2019 20:25

Último mensaje de la página anterior:

jltursan escribió:En la URL que te puse más arriba viene muy bien explicado, a fin de cuentas es la página del autor del conversor y el replayer :-)
...Y sí, la verdad es que lo clava, son de idéntico tamaño.
EDITO: Te he incluido de nuevo el paquete con un readme.txt extra. Me he fijado que por el stdout el conversor vuelca un patrón que parece que describe (según su página) la estructura del tfx convertido. Seguro que con eso se aclara un poco en que consiste cada sonido...
SelectedTFX.zip

Hola,
algo he encontrado, pero no me cuadran los resultados de la conversión.
He comparado el afx con el tfx de uno de los ficheros y la verdad es que tengo que escucharlo para creerme que suenan igual ...
Pero para ello debo tener muy clarito el significado de cada bit en el fichero tfx, posiblemente será bastante parecido al afx
pero debido a ser para el SN76489 habrá diferencias si o si ...
De momento me descargo este zip y seguiré con ello mañana. Ya os iré contando mis peripecias ;-)
Muchas gracias!!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 14 Ago 2019 16:59

Comparando uno de los ficheros afx con el correspondiente tfx
y además con la descripción sacada del fichero de texto que les añadiste, se puede ver que los cinco
primeros comandos no aparecen en el fichero de texto. El fichero convertido los tiene, luego los oiré!
La conversión parece clara:
- Al tener el flag de silencio para Tono, genera un comando $71 partiendo de uno que era $7E. Correcto ya que mantiene los flags (nibble alto)
y solo ha invertido el nivel de volumen haciendo (valor = 15 - recibido) ya que así es como funciona el SN76489
Le siguen dos bytes para tono $80,$00 (innecesarios para mi) que no son usados en el reproductor
A continuación viene el tipo de ruido a emplear $E7 de los cuales los tres bits mas bajos son usados. Los altos seleccionan el canal de ruido.
Los valores del AY-3-8910 entre $10 y $1F se convierten a ruido blanco tipo 01 según el documento, pero sorprendentemente aquí
los tres bits los ponen a uno, o sea que el bit2 a 1 indica tipo 'ruido blanco' y los bits 0-1 habría que pasarlos a '01' (velocidad de cambio media).
'11' resultaría dependiente de la frecuencia del canal #3, o sea que sería mas correcto usar $E5 para evitar conversiones en el reproductor
Tengo ganas de ver como suena esta conversión ya que mientras que en el AY se va modificando el tipo (frecuencia) del ruido,
en el SN se mantiene constante, solo se modula el nivel (volumen)
muchas gracias por todo. Ya os contaré como suena
Solo recordaros que el XRoar emula perfectamente la tarjeta Game Master Cartridge (GMC de John W Linville) que lleva el SN76489

saludos
pere
DataStructureTFX and example.zip
(1.18 KiB) Descargado 2 veces

jltursan
Mensajes: 2565
Registrado: 20 Sep 2011 13:59
Agradecido : 173 veces
Agradecimiento recibido: 485 veces

Re: música en juegos AGD

Mensajepor jltursan » 14 Ago 2019 17:30

Buen trabajo una vez más :-), a ver que sale de todo esto.

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 14 Ago 2019 18:58

jltursan escribió:Buen trabajo una vez más :-), a ver que sale de todo esto.

No hay como disponer de mucha información. Trabajo en equipo!
Esperemos que salgan ... ruidos ;-)
saludos
pere

jltursan
Mensajes: 2565
Registrado: 20 Sep 2011 13:59
Agradecido : 173 veces
Agradecimiento recibido: 485 veces

Re: música en juegos AGD

Mensajepor jltursan » 14 Ago 2019 19:43

-thumbup

Oye, por cierto, ¿te llegó mi privado?, me vendría bien una ayudita para una cosa...

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 14 Ago 2019 22:30

parece que estoy mas despistado de lo normal, debe ser el mes de Agosto ... perdona!
Ahora le hecho un vistazo y te contesto
hasta pronto
pere

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 15 Ago 2019 10:51

jltursan escribió:-thumbup
Oye, por cierto, ¿te llegó mi privado?, me vendría bien una ayudita para una cosa...

Buenos días,
de momento te subo en un zip todos los ficheros AGD que hemos utilizado para hacer pruebas conforme iba codificando
el motor AGD. Algunos pueden estar repetidos aunque con distinto nombre, no vendrá de uno!
Ante cualquier duda/problema podemos abrir un hilo aparte si te parece ...
saludos
pere
Adjuntos
AGD Test Programs.zip
(107.53 KiB) Descargado 2 veces

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 15 Ago 2019 11:37

Hola,
ahora que ya me estoy peleando con el tema de ruidos/efectos, os subo aquí dos demos musicales
El zip adjunto debería ser descomprimido en una carpeta nueva vacía.
Contiene una versión de XRoar con un fichero de configuración que me permite simular el expansor (multi-Pack) o Tandy MPI
donde 'conecto' la controladora de discos en la ranura 4 y el módulo GMC en la ranura 1.
En la carpeta encontraréis los dos ficheros fuente en ASM de los programas de pruebas
- GMCTST28.ASM es el programa que reproduce la canción "Hey Jude", para variar pues ya la tenia. Utiliza tres canales
- GMCTST29.ASM que envía secuencias de notas por octavas desde C3 hasta C8 utilizando un solo canal
Para ejecutarlos, basta con hacer:
MUS SONGDEM --- o bien --- MUS SCALEDEM
Con esto arrancará XRoar emulando el hardware descrito anteriormente y ejecutará un programa Basic que a su vez cargará el
binario deseado. Si no hacéis nada, al acabar la música, volverá al principio y así hasta que os canséis.
Para que tenga cierto parecido con los juegos AGD, estos programas contienen una parte que 'hace cosas en pantalla' (juego)
y el propio motor de música. Ambos se ejecutan en cada interrupción de retrazado vertical (50 veces por segundo)
El programa acepta los siguientes comandos:
- 'Espacio' llenará la pantalla con el siguiente valor ascendente (empieza en cero)
- '<' detendrá la música pero podréis seguir tecleando (jugando)
- '>' re-arranca la música donde se quedó
- 'Break' finaliza el programa y regresa al intérprete de Basic
- Cualquier otra tecla, se toma su valor para llenar la pantalla
saludos
pere
DemoMusicaAGDconGMC.ZIP
(994.4 KiB) Descargado 2 veces

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 21 Ago 2019 13:04

@jltursan
espero que tu cuenta de correo en yahoo.es siga en pié.
Acabo de enviarte una 'invitación' a unirte al grupo Slack para que puedas acceder
a la información que hay en el grupo de MSX (sobre AGD por supuesto)
En caso contrario dame tu nuevo correo y repito la jugada ...
Saludos
pere

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 26 Ago 2019 21:14

Tras muchos cambios, he acabado con un reproductor de ficheros .afx que hace 'algo' pero no suenan los efectos tal como los
puedo escuchar en el PC utilizando el ayfxedit.exe
En teoria respeto el significado de los bits del byte de 'flags' pero algo me estoy olvidando ya que la diferencia de sonido es
muy notable aunque el resultado sea aceptable.
¿Alguien sabe donde se podría conseguir el fuente del programa AYFXEDIT.EXE?
Sería ideal para convertirlo a ensamblador 6809 ...
Por si alguien quisiera echar una ojeada al código actual de mi 'reproductor', lo adjunto en un zip
saludos
pere
PSGZ30.ZIP
(7.29 KiB) No descargado aún

jltursan
Mensajes: 2565
Registrado: 20 Sep 2011 13:59
Agradecido : 173 veces
Agradecimiento recibido: 485 veces

Re: música en juegos AGD

Mensajepor jltursan » 27 Ago 2019 17:34

¿Alguien sabe donde se podría conseguir el fuente del programa AYFXEDIT.EXE?


En el paquete del AYFX deberías encontrar un directorio "src" con las fuentes ;-)
Y si no, el descargable desde el enlace que puse al comienzo del hilo, la página de Shiru, encontrarás el que tiene las fuentes.

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 27 Ago 2019 18:56

jltursan escribió:
¿Alguien sabe donde se podría conseguir el fuente del programa AYFXEDIT.EXE?

En el paquete del AYFX deberías encontrar un directorio "src" con las fuentes ;-)
Y si no, el descargable desde el enlace que puse al comienzo del hilo, la página de Shiru, encontrarás el que tiene las fuentes.

Efectivamente, ya vienen en el mismo zip, como me indicó Kees van Oss también directamente en Slack.
El problema es que el código Z80 que se indica allí no hace ni caso de los bits 4 y 7 del byte de flags (deshabilitar Tono y Ruido) por lo que
lo que yo quería y no me expliqué bien, era obtener el fuente en C++ del ejecutable de windows que reproduce los ficheros .afx
Creo que también están ahí aunque localizar la función que genera el sonido a partir de los bytes leídos en cada interrupción se me escapó
la primera vez que lo miré. A ver si cuando vuelva a echarle una ojeada estoy mas inspirado.
Como supongo que estaremos hablando de este tema tu, Kees y yo, para evitar 'pérdidas' en las traducciones automáticas, mis próximos
mensajes detallando los problemas que he detectado los escribiré en inglés. Espero que esto no vaya a contravenir ninguna normativa
interna de Retrowiki
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 27 Ago 2019 19:44

Hello,
reading the file "UnitMain.cpp" I have found this code that does what I think it should be done:
I must attach the code as a file because some signs are forbidden inside a text, sorry
play.zip
(251 Bytes) Descargado 1 vez

Here you can see that the value sent to the mixer register is $f6 = %1111 0110 (this would enable both tone and noise on channel A)
And then it adds 0 or 1 upon the value of flag N (bit 7) and it adds 0 or 8 upon the value of flag T (bit 4). The bit numbers correspond
to the place they are inside the flags byte in the .afx file that have been translated to 0 or 1 in the fields n and t in the structure ayEffect
The volume is sent as it was on the received data, no 'incremental' addition done.

If you look at the Z80 code, file "ayfxplay.a80" there you will see that bits 4 and 7 are not used and the read volume is sent without changes.
That means that I have a diferent Z80 version that uses channels assigning priority to each one and that one uses 'incremental' volume process.

So, I think that the program I uploaded a few messages above, does exactly what the cpp file seems to do.
Despite that, the result on my PSG module attached to the Dragon 64, is a bit far from the sound I do hear on the windows app
Any idea about things that could be verified? ... I have tested with clock frequency halved and normal almost without audible changes ...
So, any advice, hint will be highly welcome -nb -nb -nb
cheers
pere

Avatar de Usuario
pser1
Mensajes: 2564
Registrado: 08 Dic 2012 18:34
Agradecido : 497 veces
Agradecimiento recibido: 614 veces

Re: música en juegos AGD

Mensajepor pser1 » 30 Ago 2019 16:11

Hello,
after some more tests, I changed the way I was decoding the frames for each effect so that all flags are processed properly.
Later I decided to change the order of the data I send to the AY-3-8910
I am sending first the mixer data so that 'tone - noise' are enabled or disabled upon bits 4-7 of flags byte.
Then I change the volume using the four low bits from flags byte.
Next I send the 2 bytes for the tone divider if bit 5 is set
Finally I send the byte for the noise divider if bit 6 is set

The program is controlled via IRQ interrupt generated by vertical retracing (/FS) and at each loop it calls the pseudo game code
and then the player. The 'game' code still fills the screen with the pressed key or uses next value if space is received.
Numbers 1 to 8 are used to call for an effect to be played once (drum sound)
Break exits the program to the Basic interpreter

Unfortunately these effects were made for games, so they are no 'actual' drum sounds.
I would like to test correct drum effects for the AY-3-8910, so if anyone has individual drum effects or any whole bank,
I would appreciate if you could upload them here
I attach here the source code for maybe someone would like to have a look at it. Any advice to speed it up would be very welcome!

Next step will be adding this part to the three channels music player despite I am afraid that the noise track will kill or affect severely
any tune played on that same channel. AY-3-8910 has no dedicated noise channel, and if I am not wrong the values of tone and noise
are 'ored' together so the result for the tone/noise volume would be unpredictable (to me). Needs to be tested!

cheers
pere
PSGZ35.ZIP
(5.58 KiB) Descargado 1 vez


Volver a “Software Dragon”

¿Quién está conectado?

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