Karoshi MSX Community
05 de Julio de 2021, 01:00:08 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: rutina que copia valores registros del PSG desde la RAM  (Leído 4397 veces)
0 Usuarios y 1 Visitante están viendo este tema.
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« : 13 de Abril de 2011, 01:58:08 pm »

Hola compañeros.

Hoy me he puesto a optimizar (o simplificar), una rutinilla que utilizo en el player (para el PSGed v2) que copia de la RAM al PSG (un buffer con los valores de los registros 0 al 13). Para ello he investigado un poco como funcionan las instrucciones OTIR y OUTI.
Después de comprobar que OTIR no sirve (o eso creo) para el PSG, he utilizado OUTI.

Quería compartir con vosotros la rutina por si ha alguien le sirve o por si detectáis algún error o forma de mejorarla.

Código:
; copia registros PSG desde buffer
RAM2PSG_CPY:
ld HL,#PSG_RAM ; direccion de memoria del buffer
ld B,#14       ; numero de registros
xor A
ld C,#0xA1     ; numero de puerto para outi
LOOP:
out (#0xA0),A
inc A
outi 
JR NZ,LOOP 
ret

Saludos!
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
Iggy Rock
Visitante
« Respuesta #1 : 13 de Abril de 2011, 05:52:32 pm »

Mas compacta no podrías ser! Grin

El único problema que tiene es el reg. 13. Si escribes en cada interrupción, por ejemplo para hacer un slide o para controlar los volumenes de los tres canales, este registro que define la forma de la envolvente se reinicia y suena bastante feo. Si no es este caso y solo actualizas el PSG  es perfecto.
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #2 : 13 de Abril de 2011, 07:18:00 pm »

El único problema que tiene es el reg. 13. Si escribes en cada interrupción, por ejemplo para hacer un slide o para controlar los volumenes de los tres canales, este registro que define la forma de la envolvente se reinicia y suena bastante feo. Si no es este caso y solo actualizas el PSG  es perfecto.

Tienes razón.  Cheesy
En el player que he programado, utilizo esta rutina para copiar hasta el 12, y el 13 lo lanzo aparte, cuando es necesario.
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
Iggy Rock
Visitante
« Respuesta #3 : 14 de Abril de 2011, 04:26:10 pm »

Wink

Aprovecho para lanzarte yo una pregunta: He notado que si en el mixer (reg 7) activo el bit correspondiente a ruido en un canal donde está sonando una envolvente la diferencia es notable. ¿¿Como afecta el seleccionar ruido a las envolventes?? Por cierto que esto me pasa tanto en un PSG interno como en el extra de la MegaFlashROM SCC+
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #4 : 14 de Abril de 2011, 08:12:56 pm »

Hola!

Aprovecho para lanzarte yo una pregunta: He notado que si en el mixer (reg 7) activo el bit correspondiente a ruido en un canal donde está sonando una envolvente la diferencia es notable. ¿¿Como afecta el seleccionar ruido a las envolventes?? Por cierto que esto me pasa tanto en un PSG interno como en el extra de la MegaFlashROM SCC+

No te acabo de entender.  Huh
¿También tienes activado el tono en el mismo canal?
Lo único que se del tema, es lo que dijo en estos foros Madonna Mk2, de que la mezcla del ruido y el tono es bastante mala.
El efecto de la envolvente sobre el ruido debería ser igual que con el tono ya que, lo que tiene que hacer es variar el volumen de diferentes formas (reg 13)...

La gracia de la percusión de Roxy Musak es que en lugar de usar la típica configuración tono + ruido, la cual es muy pobre en el PSG ya que hace una mezcla lógica (no me acuerdo si mediante OR o AND) y pierde potencia y definición, usa 2 canales, uno con el tono y otro con el ruido.

Te recomiendo que leas ese mensaje. Madonna Mk2 habla de algunas técnicas muy interesantes...  Smiley

Saludos!
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
Iggy Rock
Visitante
« Respuesta #5 : 16 de Abril de 2011, 01:58:38 pm »

Ops! disculpa. Mejor con un listado en basic:


Código:
10 sound 0,0
20 sound 1,0
30 sound 8,&H10
40 sound 11,&H28
50 sound 12,0
60 sound 13,14   ; 8,10 o 12
70 A%=&B10111001
80 sound 7,A%
90 A$=input$(1)
100 A%=A% xor 1
110 goto 80

pulsa cualquier tecla para notar el cambio. A bote pronto parece que el volumen de la envolvente varia.
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #6 : 19 de Abril de 2011, 11:42:23 am »

pulsa cualquier tecla para notar el cambio. A bote pronto parece que el volumen de la envolvente varia.

Que bueno!  Smiley

No conocía este efecto!

En este programa estas modificando el bit 0 del registro 7 del mixer, con lo que activas y desactivas el tono del canal A. Si tocas el bit 3 y lo pones a 0 sonará el ruido y no se aprecia este efecto que describes.
En ninguno de los dos casos suena el tono (lo tienes con valor 0), si no que es un sonido que emite la envolvente cuando el valor del periodo es bajo (el efecto de modulación de amplitud que describía Madonna Mk 2).

Es muy interesante esta variación de volumen..

Saludos!
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
Iggy Rock
Visitante
« Respuesta #7 : 19 de Abril de 2011, 12:17:51 pm »

Si que es interesante. Ademas, si das valores de frecuencia a los registros 0 y 1 y mantienes activado el ruido tambien tiene otro efecto curioso. Ya te pondré otro ejemplo.

Bueno, a lo que íbamos: a veces hay que pensarse volcar a saco todos los registros.
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!