Sonido en Altair

jorgicor
Mensajes: 7
Registrado: 21 Jun 2017, 12:10

Sonido en Altair

Mensaje por jorgicor » 21 Jun 2017, 12:33

Hola, hace poco me hice con un ZX-Uno. Primero, gracias a todos los que han hecho posible este proyecto.

Estoy muy contento con el aparatito, pero tengo un problema con el juego que programé hace tiempo para Spectrum y Amstrad, Altair. Quizás lo conozcáis. Está en este link, y todo el fuente en ensamblador está disponible:

http://jorgicor.sdfeu.org/altair

He escrito a A. Villena con esto, pero he visto en el foro que ahora está ocupado con otras cosas, así que lo dejo aquí.

El problema que veo en el ZX-Uno, es que al empezar a jugar, en el primer nivel por ejemplo, la música no se escucha excepto cuando suenan los disparos de las naves enemigas. Sin embargo, en un Spectrum real esto sí funciona. Explico aquí todo con más detalle.

El juego solo tiene un .tap (altair_zx_es.tap) tanto para un 48K como para un 128K. Lo que hago es mirar si el chip AY está en la máquina: para ello, según creo recordar, escribo en unos registros del AY y vuelvo a leer, si están los valores que escribí es que está el chip, si recibo otros valores es que no y utilizo sonido beeper. Bueno, esto funciona bien, no hay ningún problema. En el ZX-Uno detecta el chip AY y los sonidos en el menú etc funcionan con el chip (y no con beeper).

Durante una partida al juego, según recuerdo, solo utilizo dos canales de sonido, uno para la música (o como le queráis llamar) y otro para los efectos sonoros. El problema que veo es que la música solo suena cuando está sonando el sonido de disparo de las naves enemigas, si no no suena nada. Se puede ver por ejemplo en la primera fase, nada más empezar a jugar.

El mismo .tap probado en Spectaculator emulando un Spectrum con chip AY sí funciona bien (se oye la música). Tambíen, en un Spectrum +2A real se oye la música (pero no puedo asegurar que sea el mismo .tap que tengo en mi página, la probada es una versión física que hizo Retroworks, pero estoy casi seguro al 99% que se hizo a partir del mismo .tap).

Para asegurarse al 100% habría que probar el altair_zx_es.tap que tengo en mi página en un Spectrum real con chip AY (128K o sup). Si la música se oye, es que algo pasa con el core de ZX-Uno (o con algo que está haciendo conflicto). Pero ahora mismo no tengo nada para poder hacerlo.

También he probado en Zx-Uno desactivando DivMMC, NMI y los otros modos gráficos, por si acaso, pero sigue igual.

Si queréis que pruebe alguna otra cosa puedo hacerlo para descartar otras cosas antes que el core.

Gracias.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Sonido en Altair

Mensaje por antoniovillena » 21 Jun 2017, 12:53

Sí, perdona por no contestarte. Es que como el email era largo, lo dejé para luego y se me pasó. Seguro que entre todos encontramos el problema.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Sonido en Altair

Mensaje por Uto » 21 Jun 2017, 12:58

Probablemente no tenga nada que ver, pero trastea un poco con ZXUC en la opción que tiene para activar y desactivar AYs, turbosound, y la del Stereo, quizá tenga algo que ver con eso y si tiene que ver el feedback será bueno para mcleod, si es que hay un error:

https://github.com/Utodev/ZXUC/raw/mast ... XUC0.7.zip


Ah! asegurate de tener el core de Spectrum actualizado, que no sé por qué esta consulta me deja cierta sensación de déjà vu.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Sonido en Altair

Mensaje por Kyp » 21 Jun 2017, 16:55

Me he bajado el TAP de la web. Lo he probado en el emulador (Spin 0.7) y no me parce que suene el AY, ni en modo 48K+AY, ni en modo +2. En los menús no hay música, y el sonido de disparos y demás me suena a speaker aunque puedo estar equivocado.

Luego lo he probado en el ZX-Uno, pero en mi core de 48K+AY, no tengo el oficial actualizado, y tampoco suena bien. Es este caso yo diría que lo que suena es el AY, pero no hay música en los menús y solo suenan disparos y explosiones.

Intentaré hacer una prueba en un 48K real con una de mis placas de interfaz AY y te cuento, pero eso requiere un poco más de tiempo.

Edito:
He probado en un 48K real con interfaz AY y solo suena el speaker :(
Mientras escribo esto está sonado la demo de MmcM - The Blossoming Years, de lo mejorcito en sonido AY para mi gusto :silbando:

Imagen

jorgicor
Mensajes: 7
Registrado: 21 Jun 2017, 12:10

Re: Sonido en Altair

Mensaje por jorgicor » 22 Jun 2017, 09:41

Sí, lo he probado en Spin en modo +2A y el sonido que suena es el beeper. Yo no me fiaría. Eso es que cuando detecto si hay AY escribo en sus registros y después leo, a ver si me llega lo mismo que he escrito o basura. En el caso de Spin, me está devolviendo basura aún en un +2A, lo cual no creo que sea correcto. Ya te digo que en un Spectrum real +2A se detecta bien el AY y suena (al menos en una versión anterior del .tap). Spectaculator siempre me ha demostrado ser el emulador más exacto (aunque no se puede descartar nada todavía).

Ya digo, la prueba definitiva es probar el .tap de mi página en un Spectrum 128K, +2, +2A/B, +3 reales. Yo tengo un +2A, pero no tengo ningún cassette que me haga de interfaz para poder enchufarle el móvil o lo que sea. Pero sería la prueba definitiva para estar seguros. Los emuladores siempre nos van a dejar duda.

En cuanto a que suene el beeper en un 48k con interfaz AY, ahí ya no digo nada. Tendría que debugear a ver que está pasando. De todas formas el problema en Zx-Uno es otro, detecta el AY, pero solo suena el sonido cuando las naves enemigas disparan (lo mismo que tú has visto, Kyp). Es decir, si estoy utilizando 2 canales, pongamos canal 1 para música y canal 2 para el resto de efectos, solo se mezclan los dos canales cuando el canal 2 suena, si está solo el canal 1 no se oye nada.

Iré haciendo también las pruebas que propone Uto y a ver si me hago con un cassette de esos.

He dejado un vídeo para que veáis como tendría que sonar con chip AY (que en el caso de este juego a veces hasta uno se puede confundir con beeper):

https://youtu.be/DjvJgS4iyok

Por ejemplo, en el nivel 2, cuando las naves no están disparando, a eso es a lo que me refiero por "música" (música cafre, vale).

jorgicor
Mensajes: 7
Registrado: 21 Jun 2017, 12:10

Re: Sonido en Altair

Mensaje por jorgicor » 22 Jun 2017, 10:46

He probado con zxuc:

2 chips AY off -> suena beeper
2º AY off -> suena AY, pero con el problema que comento
1º AY off -> suena beeper
Cambiando los canales del AY a varias configuraciones -> suena AY pero con el problema

Todo lo demás parece estar off (Timex, etc). En cuanto al core de Spectrum, me pone T24-04022017. Sin embargo en la web veo versión 11022017. La he bajado y actualizado, pero me sigue diciendo que tengo 04022017.

Voy a mirar que canales uso exactamente del AY y os los pongo.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Sonido en Altair

Mensaje por Kyp » 22 Jun 2017, 11:18

A ver si esta tarde puedo probar con un +2 o un +2A...

El interfaz AY del 48K debería ser 100% compatible con el del 128K. Hasta ahora no me había encontrado con ninguna incompatibilidad y he probado un montón de juegos, pero claro, para la mayoría no basta solo con tener el AY, además tienen que tener 128K de RAM para que funcionen.

Si actualizas el firmware del ZX-Uno tienes que forzar a que se reconfigure de nuevo la FPGA (hard reset), con un reset normal no es suficiente. Igual es eso.

jorgicor
Mensajes: 7
Registrado: 21 Jun 2017, 12:10

Re: Sonido en Altair

Mensaje por jorgicor » 22 Jun 2017, 11:33

Gracias Kyp! Era eso, ya me pone que tengo el core del día 11.

Y además, ¡asunto zanjado! Era eso. Con el core último va bien. Se oyen todos los canales de sonido.

O sea, que todo resuelto. Solo faltaría ver lo que pasa en un Spectrum 48K con interface AY, pero me temo que sin tener uno delante mío es un poco difícil ver que pasa.

De todas formas Kyp, si pudieras hacer la prueba en un +2 real, estaría guay.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Sonido en Altair

Mensaje por Kyp » 22 Jun 2017, 23:23

Pues lo he probado en el +2 y suena como debe :okidoki;
También lo he intentado en un +2A pero no se si es que tengo el cable de video mal o es que no funciona, el caso es que no he podido :mecagonto:

Ya de paso, sabiendo como tenía que sonar, lo he vuelto a probar con la última versión del core oficial y con mis cores y también suena como debe tanto en modo 48K como en 128K :plasplas:

jorgicor
Mensajes: 7
Registrado: 21 Jun 2017, 12:10

Re: Sonido en Altair

Mensaje por jorgicor » 23 Jun 2017, 11:41

Perfecto Kyp!!! Gracias por probarlo! :chocala!:

Respecto a que no detecte el AY en un 48K con un interfaz AY, se me ocurren varias cosas, por ejemplo que en estos casos solo se pueda escribir en los registros del chip pero no leer (leer devuelva basura), o quizás que haya que esperar un tiempo entre escritura en un registro y la lectura. Pero, a saber...

Responder