Post by ramon on Nov 16, 2020 15:04:36 GMT
BeepFX de Shiru. (Shiru's Stuff)
Un editor sencillo pero potente para usuarios de 48k.
Combina varias rutinas que podemos usar para reproducir un efecto de sonido.
Incluye un ejemplo con un montón de efectos.
Instalación:
Descomprime el archivo SjasmPlus48kBeeperFX.rar (307.92 KB) en el directorio "SjasmPlus" de tu MPAGD.
Generar FX.asm con el editor BeepFX:
(Puedes saltar este paso si quieres, debido a que FX.asm ya está generado).
Ejecuta el editor BeepFX que está incluido en la carpeta user48k.
Abre el proyecto demo.spj que acompaña al programa.
Selecciona "Compile" en el menú "File".
Debes seleccionar "Assembly" e "Include player code". Click en "Compile" y llámalo FX.asm.
Edita ahora el archivo FX.asm. Comenta o elimina el origen (por ejemplo ;org 60000)
Por último copia el archivo FX.asm en el directorio user48k.
Este proceso lo puedes repetir con tu propio proyecto.
Instrucciones básicas:
Selecciona el archivo user48kBeeperFX.asm en el directorio "SjasmPlus" como rutina de usuario en tu proyecto MPAGD.
Sustituye en tus scripts el comando BEEP n por el comando USER n
(n > 0 corresponde al índice de la lista de efectos compilados previamente).
Instrucciones con User rutines Selector:
Selecciona el archivo userSelector.asm en el directorio "SjasmPlus" como rutina de usuario en tu proyecto MPAGD.
El archivo userSelector.asm nos permite usar varias rutinas para propósitos diferentes.
Para el ejemplo del VIPER MARK II se incluyen "user48k\48kBeeperFX.asm" y "RotationalMovement.asm".
userSelector.asm
; -----------------------------------------------------------
; Entrada desde USER a, para el MPAGD. a > 0
; Ejemplo: selecciona el Fx 6:
; USER 1 ; selecciona RUTINA
; USER 6 ; asigna VALOR 6
; ------------------------------------------------------------
ld (imput),a ; reserva registro
ld a,(rut)
and a ; alguna rutina?
jp z,selecciona ; no -> selecciona
exe
call rutina ; y su rutina correspondiente
xor a
ld (rut),a ; reset selector
ret
selecciona
ld a,(imput) ; recupera registo como selector
ld (rut),a
ret
rutina
ld a,(rut)
cp 1
jp z,userfxsnd
cp 2
jp z,rotatemov
ret
relect ; reset election
xor a
ld (rut),a
ret
imput defb 0
rut defb 0
userfxsnd
ld a,(imput) ; recupera registo como valor
include "user48k\48kuserFX.asm"
rotatemov
ld a,(imput) ; recupera registo como valor
include "RotationalMovement.asm"
user48k\48kBeeperFX.asm es simple:
; -----------------------------------------------------
; Fx routines con beeper
; -----------------------------------------------------
and a ; algun efecto?
jp z,exitbeep ; no -> exitbeep
dec a
ld (Beepfxplayer+1),a
call Beepfxplayer
exitbeep
ret
Beepfxplayer
include "user48k\FX.asm"