Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa | |||
tutorial_de_ensamblador_sonido [10/10/2010 11:13] 93.156.171.149 |
tutorial_de_ensamblador_sonido [10/10/2010 11:39] 93.156.171.149 |
||
---|---|---|---|
Línea 30: | Línea 30: | ||
Vamos a ver a continuación los registros del sistema de sonido y sus funciones: | Vamos a ver a continuación los registros del sistema de sonido y sus funciones: | ||
- | == Canal 1 - Tono y portamento == | + | ==== Canal 1 - Tono y portamento ==== |
===$FF10 - NR10 - Registro de portamento del canal 1(R/W)=== | ===$FF10 - NR10 - Registro de portamento del canal 1(R/W)=== | ||
Línea 96: | Línea 96: | ||
- | == Canal 2 - Tono == | + | ==== Canal 2 - Tono ==== |
Este canal funciona exactamente igual que el 1, pero no tiene un registro de portamento. | Este canal funciona exactamente igual que el 1, pero no tiene un registro de portamento. | ||
Línea 133: | Línea 133: | ||
Bit 7 - Disparador (1=Reinicia el sonido) (W) | Bit 7 - Disparador (1=Reinicia el sonido) (W) | ||
Bit 6 - Activa o desactiva la longitud (R/W) | Bit 6 - Activa o desactiva la longitud (R/W) | ||
- | (1=Detiene el sonido cuando alcanza la longitud en NR11) | + | (1=Detiene el sonido cuando alcanza la longitud en NR21) |
Bit 2-0 - 3 bits altos de la frecuencia (x) (W) | Bit 2-0 - 3 bits altos de la frecuencia (x) (W) | ||
Frecuencia = 131072/(2048-x) Hz | Frecuencia = 131072/(2048-x) Hz | ||
- | == Canal 3 - Onda programable == | + | ==== Canal 3 - Onda programable ==== |
Este canal se puede usar para reproducir sonido digital, pero la longitud del buffer de samples (RAM de onda) Está limitada a 32 valores de 4 Bits. Se podria usar este canal para sacar notas normales si inicicalizamos la memoria de onda con los valores de una onda cuadrada. No dispone de control de envolvente. | Este canal se puede usar para reproducir sonido digital, pero la longitud del buffer de samples (RAM de onda) Está limitada a 32 valores de 4 Bits. Se podria usar este canal para sacar notas normales si inicicalizamos la memoria de onda con los valores de una onda cuadrada. No dispone de control de envolvente. | ||
Línea 183: | Línea 183: | ||
Esta memoria se organiza en 32 valores de 4 bit que se reproducen con los 4 bits altos en primer lugar. | Esta memoria se organiza en 32 valores de 4 bit que se reproducen con los 4 bits altos en primer lugar. | ||
- | == Canal 4 - Ruido == | + | ==== Canal 4 - Ruido ==== |
- | Este canal se usa para reproducir ruido blanco. This is done by randomly switching the amplitude between high and low at a given frequency. Depending on the frequency the noise will appear 'harder' or 'softer'. | + | Este canal se usa para reproducir ruido blanco. Esto se logra variando la amplitud aleatoriamente dada una frecuencia. Dependiendo de la frecuencia, el ruido parecerá más "duro" o "blando". |
- | It is also possible to influence the function of the random generator, so the that the output becomes more regular, resulting in a limited ability to output Tone instead of Noise. | + | También se puede influenciar la salida del generador de números aleatorios, permitiendo menos variación y asi una salida de tono casi normal. |
- | ===FF20 - NR41 - Channel 4 Sound Length (R/W)=== | + | ===$FF20 - NR41 - Canal 4 - Longitud (R/W)=== |
- | Bit 5-0 - Sound length data (t1: 0-63) | + | Bit 5-0 - Longitud (R) (t1: 0-63) |
- | Sound Length = (64-t1)*(1/256) seconds | + | Longitud = (64-t1)*(1/256) segundos |
- | The Length value is used only if Bit 6 in NR44 is set. | + | La longitud solo se utiliza si el Bit 6 en NR44 está a uno. |
- | ===FF21 - NR42 - Channel 4 Volume Envelope (R/W)=== | + | ===$FF21 - NR42 - Canal 4 - Envolvente (R/W)=== |
- | Bit 7-4 - Initial Volume of envelope (0-0Fh) (0=No Sound) | + | Bit 7-4 - Volumen inicial de la envolvente (0-0Fh) (0=Sin sonido) |
- | Bit 3 - Envelope Direction (0=Decrease, 1=Increase) | + | Bit 3 - Dirección de la envolvente (0=Decrece, 1=Crece) |
- | Bit 2-0 - Number of envelope sweep (n: 0-7) | + | Bit 2-0 - Periodo (n: 0-7) |
- | (If zero, stop envelope operation.) | + | (si es cero, la envolvente no actua.) |
- | Length of 1 step = n*(1/64) seconds | + | Longitud de un paso = n*(1/64) segundos |
- | ===FF22 - NR43 - Channel 4 Polynomial Counter (R/W)=== | + | ===$FF22 - NR43 - Canal 4 - Contador polinómico (R/W)=== |
- | The amplitude is randomly switched between high and low at the given frequency. A higher frequency will make the noise to appear 'softer'. | + | La amplitud se cambia aleatoriamente entre alto y bajo a la frecuencia dada. Una frecuencia alta hará el ruido más "suave". |
- | When Bit 3 is set, the output will become more regular, and some frequencies will sound more like Tone than Noise. | + | Cuando el bit 3 está a uno, la salida es más regular, y algunas frecuencias suenan más como tono que como ruido. |
- | Bit 7-4 - Shift Clock Frequency (s) | + | Bit 7-4 - Frecuencia del reloj de desplazamiento (s) |
- | Bit 3 - Counter Step/Width (0=15 bits, 1=7 bits) | + | Bit 3 - Longitud del contador (0=15 bits, 1=7 bits) |
- | Bit 2-0 - Dividing Ratio of Frequencies (r) | + | Bit 2-0 - Radio de división de las frecuencias (r) |
- | Frequency = 524288 Hz / r / 2^(s+1) ;For r=0 assume r=0.5 instead | + | Frecuencia = 524288 Hz / r / 2^(s+1) ; Para r=0, se comporta como si r=0.5 |
- | + | ||
- | ===FF23 - NR44 - Channel 4 Counter/consecutive; Inital (R/W)=== | + | |
- | + | ||
- | Bit 7 - Initial (1=Restart Sound) (Write Only) | + | |
- | Bit 6 - Counter/consecutive selection (Read/Write) | + | |
- | (1=Stop output when length in NR41 expires) | + | |
+ | ===$FF23 - NR44 - Channel 4 - Contador; Disparador (R/W)=== | ||
+ | Bit 7 - Disparador (1=Reinicia el sonido) (W) | ||
+ | Bit 6 - Activa o desactiva la longitud (R/W) | ||
+ | (1=Detiene el sonido cuando alcanza la longitud en NR21) | ||
- | == Sound Control Registers == | + | ==== Registros de control generales del sonido ==== |
- | ===FF24 - NR50 - Channel control / ON-OFF / Volume (R/W)=== | + | ===$FF24 - NR50 - Control de volumen / 5º Canal (R/W)=== |
- | The volume bits specify the "Master Volume" for Left/Right sound output. | + | Los bits de volumen controlan el Volumen principal de las salidas izquierda y derecha. |
- | Bit 7 - Output Vin to SO2 terminal (1=Enable) | + | Bit 7 - Vin sale por SO2 (1=activado) |
- | Bit 6-4 - SO2 output level (volume) (0-7) | + | Bit 6-4 - Volumen de SO2 (0-7) |
- | Bit 3 - Output Vin to SO1 terminal (1=Enable) | + | Bit 3 - Vin sale por SO1 (1=Activado) |
- | Bit 2-0 - SO1 output level (volume) (0-7) | + | Bit 2-0 - Volumen de SO1 (0-7) |
- | The Vin signal is received from the game cartridge bus, allowing external hardware in the cartridge to supply a fifth sound channel, additionally to the gameboys internal four channels. As far as I know this feature isn't used by any existing games. | + | La señal Vin viene del bus del cartucho, permitiendo a hardware externo en este, añadir un quinto canal a los cuatro internos de la GameBoy. |
- | ===FF25 - NR51 - Selection of Sound output terminal (R/W)=== | + | ===$FF25 - NR51 - Selección de salida de cada canal (R/W)=== |
- | Bit 7 - Output sound 4 to SO2 terminal | + | Nos permite enviar cada canal a la salida izquierda o derecha (o a ambas o ninguna). |
- | Bit 6 - Output sound 3 to SO2 terminal | + | |
- | Bit 5 - Output sound 2 to SO2 terminal | + | |
- | Bit 4 - Output sound 1 to SO2 terminal | + | |
- | Bit 3 - Output sound 4 to SO1 terminal | + | |
- | Bit 2 - Output sound 3 to SO1 terminal | + | |
- | Bit 1 - Output sound 2 to SO1 terminal | + | |
- | Bit 0 - Output sound 1 to SO1 terminal | + | |
+ | Bit 7 - Canal 4 a la salida SO2 | ||
+ | Bit 6 - Canal 3 a la salida SO2 | ||
+ | Bit 5 - Canal 2 a la salida SO2 | ||
+ | Bit 4 - Canal 1 a la salida SO2 | ||
+ | Bit 3 - Canal 4 a la salida SO1 | ||
+ | Bit 2 - Canal 3 a la salida SO1 | ||
+ | Bit 1 - Canal 2 a la salida SO1 | ||
+ | Bit 0 - Canal 1 a la salida SO1 | ||
===$FF26 - NR52 - Sonido Encendido/Apagado=== | ===$FF26 - NR52 - Sonido Encendido/Apagado=== | ||
Línea 257: | Línea 256: | ||
Los Bits 0-3 de este registro, son sólamente bits de estátus, escribir en ellos no activa o desactiva el sonido de esos canales. Estos flags se ponen a uno cuando se activa el flag "Disparador" del canal (Bit 7 en NR14-NR44), el flag permanece a uno mientras dure la longitud del sonido (si está activa). Una envolvente que ha hecho bajar la amplitud a cero, no desactivaria este flag. | Los Bits 0-3 de este registro, son sólamente bits de estátus, escribir en ellos no activa o desactiva el sonido de esos canales. Estos flags se ponen a uno cuando se activa el flag "Disparador" del canal (Bit 7 en NR14-NR44), el flag permanece a uno mientras dure la longitud del sonido (si está activa). Una envolvente que ha hecho bajar la amplitud a cero, no desactivaria este flag. | ||
+ | |||
+ |