El chip prodigioso

"AY-3-8910 es un WSG (del inglés Wave sound generator) de 3 voces diseñado por General Instrument en 1978, para usarlo con ordenadores de 8 bits. El 8910 y sus variantes fueron muy populares en los Arcades, y fueron utilizados, entre otros, en el Sinclair ZX Spectrum 128/+2/+3, y en la tarjeta de sonido Mockingboard para el Apple II. Fue producido bajo licencia por Yamaha como el YM2149".
Wikipedia.

Lista de sonidos

1 "Eat"
2 "Gulp"
3 "Eat Fruit"
4 "Eat Ghost"
5 "Death"
6 "Sirena"
7 "Blanco"
8 "Score"

"El equipo de ingenieros de sonido escogerá el Namco Custom 8 channel 4-bit WSG para la producción final. Si tienes la suerte de conservar un ordenador Sinclair ZX Spectrum 128/+2/+3 podrás escuchar en tu casa el sonido característico de aquellos juegos. Esta vez con el chip AY-3-8912".

Descarga la nueva Modificación MPAGD-Sound-Mod. Ahora dispones de nuevas herramientas para poder escuchar en tus juegos el sonido de las viejas máquinas de salón Arcade. Descomprime los archivos que contiene la carpeta "MPAGD-Sound-Mod-main" en tu carpeta "Suite ZX" y sustituye todos los archivos para que se integren y funcionen.

Prepárate a editar el archivo build.bat. Cambia modsnd=2 para construir el juego con el chip AY-3-8912.

rem ------------------------------------------------------
rem MODO
rem 0 = Standard MPAG
rem 1 = Modificacion cargador para Pac-man compatible
set mod=1
rem ------------------------------------------------------
rem Modificaciones de cargador:
rem nombre para tu juego
set gamename=Pacman
rem ------------------------------------------------------
rem Modificaciones de sonido
rem 0 = Standard
rem 1 = ZX Spectrum 48k Beeper
rem 2 = ZX Spectrum 128/+2/+3 AY-3-8912 Musicizer
rem 3 = ZX Spectrum 128/+2/+3 AY-3-8912 Arkos Tracker
set modsnd=2
rem ------------------------------------------------------

Pac-man Theme

Abre la carpeta "Tools" que ahora está en "Suite ZX", minimiza su tamaño. Abre Vortex Tracke II. Carga el archivo "Pac-man theme.VT1.txt" que está en la carpeta "Mid2VT_AutoSiril" usando el menú "Open" o arrástralo hasta Vortex Tracke II desde el explorador de windows.

Haz tus juicios y retoques si quieres y finalmente guarda ("Save as") la música en el directorio Sound del Suite ZX con el nombre music01 y tipo pt3. ¡Listo! Nada más.

Intermission Theme

Esta vez carga el archivo "Pac-man Intermission.VT2" que está en la carpeta "Mid2VT_AutoSiril" en el Vortex Tracke II. Ahora guarda ("Save as") la música con el nombre music02 y tipo pt3 en el directorio Sound del Suite ZX.

multisong

Si quieres añadir temas a tus juegos, simplemente les llamas music03, music04, etc. El límite es de 14,224 bytes.

Simplificar de esta manera el trabajo es posible gracias al programa AGD Musicizer II - David Saphier 2018 v1.8. El montaje integra la música simplemente añadiendo los temas al directorio "Sound" del "Suite ZX", ejecuta una rutina de servicio que gestiona el AY-chip, libera al juego de ese trabajo, ahorra memoria colocando la música junto al "VT Player" en el banco 4 de memoria y deja libre todo el banco 0 para el juego.

EVENT MAIN LOOP 2

Ordena ejecutar la música en la posición "¡GET READY!"
Abre el editor MPAGD. Selecciona "Main loop 2" del menú "Events". Modifica el bucle que espera a que acabe la canción Pac-man Theme dentro del caso IF SCREEN = 0 (si estamos en el LABERINTO) para comentar (colocar ";") SOUND 96 así:

IF SCREEN = 0 ; si estamos en el LABERINTO IF F = 1 ; y en modo "enmarcado Jugando" PUT 16 16 0 ; pinta objetos PUT 224 16 1 PUT 16 144 2 PUT 224 144 3 AT 22 16 ; pinta marcador DISPLAY LIVES AT 9 13 MESSAGE 6 ; GET READY! IF P = 1 ; si comenzamos en el primer laberinto     SOUND 1 ; Tema musical Pac-man     SOUND 0 ; Música sólo una vez     ;DELAY 200 ; Espera a la música     SOUND 36 ; monitor     WHILE A = 1 ; repite mientras suena el tema Pac-man         ;SOUND 96 ; reproduce siguiente nota         SOUND 36 ; monitor     ENDWHILE ELSE     DELAY 25 ; Espera a GET READY! ENDIF REDRAW ; Redibuja LET F = 0 ; pasa a modo "Jugando" EXIT ; salir ELSE IF F = 3 ; par el modo "enmarcado Insert coin" PUT 16 16 0 ; coloca objetos PUT 224 16 1 PUT 16 144 2 PUT 224 144 3 LET F = 2 ; pasa a modo "Insert coin" EXIT ENDIF ENDIF ENDIF

Guarda el texto, cierra el editor de textos, guarda el proyecto.

Este bucle espera a que acabe la canción para que Pac-man pueda estar ¡Preparado!
 
No necesitamos ordenar que se ejecute la siguiente nota (SOUND 96). La modificación AY ejecuta en ciclo constante (19t) esta orden, si has seleccionado un tema musical. Una Rutina de Servicio en Interrupciones IM2 se ocupa de ello. Los únicos comandos que usaremos serán:

SOUND n        ; selecciona tema n = orden del tema musical.
SOUND 100+f    ; selecciona efecto f = orden de efecto en la lista.
SOUND 0        ; desactivar "loop" (desactiva bucle de reproducción infinito).
SOUND 36       ; monitor: si está sonando establece A=1, si no A=0.
SILENCE        ; apaga la música.

EVENT MAINLOOP1

Selecciona "Main loop 1" del menú "Events". Coloca ";" delante de SOUND 96 al principio del script, justo antes del cronómetro. Para quedar así:

EVENT MAINLOOP1

;SOUND 96

Guarda el texto, cierra el editor de textos, guarda el proyecto.
Puedes escuchar el sonido electrónico del Chip Prodigoso, pulsa "F5".

Efectos AY

Necesitarás editar de nuevo los efectos para ejecutarlos con el chip AY. Aunque siempre puedes contar con el comando BEEP en todas las modificaciones que estamos instalando (incluida esta última).

Te darás cuenta que la música y los efectos mantendrán ocupado al chip prodigioso, mientras que el juego se ocupará de sus asuntos sin carga extra de trabajo. Todo se moverá con mayor fluidez.

Abre ayfxedit.exe que ahora está incluido en la carpeta "Tools", renombra noname001 por "Eat", selecciona la opción "Wave file" del menú "Import" para importar el archivo Eat.wav desde la carpeta "Sound resources" del "Suite ZX". Prueba el sonido, judga tu mismo o tu misma. Recortar para reducir la duración. Primero selecciona las posiciones 000-00C, después selecciona el comando "Delete" del menú "Edit"; después selecciona las dos últimas posiciones (007-008) para volver a borrarlas. Ok.

Pulsa el botón "Add" (Add new effect) para llamarlo "Gulp", selecciona la opción "Wave file" del menú "Import" para importar otra vez el archivo Eat.wav desde la carpeta "Sound resources" del "Suite ZX". Esta vez déjalo tal como está para pasar al siguiente effecto.

Pulsa el botón "Add" (Add new effect) para llamarlo "Eat Fruit", selecciona la opción "Wave file" del menú "Import" para importar el archivo "pacman_eatfruit.wav" desde la carpeta "Sound resources" del "Suite ZX". Esta hecho.

Pulsa el botón "Add" (Add new effect) para llamarlo "Eat Ghost", selecciona la opción "Wave file" del menú "Import" para importar el archivo "pacman_eatghost.wav" desde la carpeta "Sound resources" del "Suite ZX". Otro más.

Pulsa el botón "Add" (Add new effect) para llamarlo "Death", selecciona la opción "Wave file" del menú "Import" para importar el archivo "pacman_muerte.wav" desde la carpeta "Sound resources" del "Suite ZX". Otro más.

Pulsa el botón "Add" (Add new effect) para llamarlo "Sirena", selecciona la opción "Wave file" del menú "Import" para importar el archivo "sirena.wav" desde la carpeta "Sound resources" del "Suite ZX". Solo un retoque: borrar posiciones 055-05A y después borrar posiciones 000-002, para que empiece y acabe en el mismo "tono".
Sólo quedan dos más.

Pulsa el botón "Add" (Add new effect) para llamarlo "Blanco". Déjalo en blanco. Fácil.

Añade el último para llamarlo "score". Este te lo dejo a ti. Procura que sea corto (6-8 posiciones). La primera barra es el Tono (expresado como Periodo), la segunda barra es el volumen de ruido blanco y la última barra es el volumen de la mezcla de todo. Puedes mezclar un ruido blanco (N) o un tono (T) o las dos cosas(T N) haciendo clic en la segunda y tercera columnas. Juega un rato hasta que encuentres tu efecto "score".

Consejo, vigila el volumen total de los efectos para que sea adecuado a tu juicio.




Cuando hayas acabado guarda el banco de sonidos con la opción "Save bank" del menú "File" en la carpeta "Sound" dentro del "Suite ZX"; tiene que tener el nombre "sfxBank.afb" para que el juego funcione. Ahora podrás editar este archivo con el AY Sound FX Editor (ayfxedit.exe) para crear los efectos de tus juegos.

SOUND 101

Tendrás que cambiar algunos índices en los comandos SOUND 100+f para hacer funcionar con la nueva lista de sonidos AY:

EVENT SPRITETYPE4

Casi al final, cuando el fantasma alcanza a Pac-man, debe quedar así:

IF F = 0        ; si modo "Jugando" entonces
SUBTRACT 1 TO LIVES     ; resta vida
SOUND 105       ; sonido "Death 128k"
ENDIF

Coloca SOUND 105, será el nuevo tono de la muerte de Pac-man. Guarda los cambios.

EVENT SPRITETYPE2

Comentar (poner delante ";") los tres cortes correspondientes a la modificación Beeper. Los hemos sustituido por "Death 128k". En cambio, ahora marcamos una pausa para hacer mucho más lenta la animación de la muerte de Pac-man. Modifica para quedar así:
 
    IF K = 1
IF F = 0
            ;BEEP 120
    ;SOUND 105 ; fx "Death 1"
    DELAY 25    ; pausa
ENDIF
    ENDIF
    IF K = 2
IF F = 0
            ;BEEP 80
    ;SOUND 106 ; fx "Death 2"
    DELAY 25    ; pausa
ENDIF
    ENDIF
    IF K =4
IF F = 0
            ;BEEP 60
    ;SOUND 107 ; fx "Death 3"
    DELAY 25    ; pausa
ENDIF
    ENDIF

Guarda los cambios.

EVENT SPRITETYPE1

Colocaremos aquí la sirena, cuando nace un fantasma. Casi al principio del script. Modifica el script para quedar así:

IF X = 104
    IF Y = 72            ; en "posición inicial"
LET TYPE = 4     ; REAPARECE en modo perseguir/dispersar
LET SETTINGB = D    ; memoriza "última bola energizante"
LET IMAGE = 4       ; cambia de apariencia
LET FRAME = 0       ; asegura fotograma 0
        IF F = 0            ; solo si estamos "Jugando" entonces
    SOUND 106            ; sonido "Sirena fantasma"
        ENDIF
    ENDIF
ENDIF

Guarda los cambios.

"Escucha ahora tu juego. Esto si que es un Arcade. Enhorabuena de nuevo. Lo tienes. Estás en tu sala de juegos con tu máquina preferida preparado o preparada para dejar tu nuevo "récord". Espero que hayas disfrutado trabajando duro para conseguir que todo funcione. Tenemos que reconocer que gozamos de grandes ventajas con respecto a los pioneros de los años 80. Buen viaje al mundo de los videojuegos".

FIN DE IMPRESIÓN.


Comentarios

Entradas populares de este blog

El laberinto