WonderWitch/FreyaBIOS/Sound
From WSdev Wiki
Jump to navigationJump to search
The Sound interrupt provides an abstraction layer for the WonderSwan's sound hardware.
Interrupts
INT $15/AH=$00 - sound_init
- AH = $00
INT $15/AH=$01 - sound_set_channel
- AH = $01
- BL = Channel Control value
INT $15/AH=$02 - sound_get_channel
- AH = $02
Return:
- AL = Channel Control value
INT $15/AH=$03 - sound_set_output
- AH = $03
- BL = Output Control value
INT $15/AH=$04 - sound_get_output
- AH = $04
Return:
- AL = Output Control value
INT $15/AH=$05 - sound_set_wave
- AH = $05
- AL = Channel (0, 1, 2, 3)
- DS:DX = Pointer to waveform data (16 bytes)
INT $15/AH=$06 - sound_set_pitch
- AH = $06
- AL = Channel (0, 1, 2, 3)
- BX = Frequency divider (0 - 2047)
INT $15/AH=$07 - sound_get_pitch
- AH = $07
- AL = Channel (0, 1, 2, 3)
Return:
- AX = Frequency divider (0 - 2047)
INT $15/AH=$08 - sound_set_volume
- AH = $08
- AL = Channel (0, 1, 2, 3)
- BL = Channel Volume value
INT $15/AH=$09 - sound_get_volume
- AH = $09
- AL = Channel (0, 1, 2, 3)
Return:
- AL = Channel Volume value
INT $15/AH=$0A - sound_set_sweep
- AH = $0A
- BL = Sweep Amount
- CL = Sweep Ticks
INT $15/AH=$0B - sound_get_sweep
- AH = $0B
Return:
- AL = Sweep Amount
- AH = Sweep Ticks
INT $15/AH=$0C - sound_set_noise
- AH = $0C
- BL = Channel 4 Noise Control value
INT $15/AH=$0D - sound_get_noise
- AH = $0D
Return:
- AL = Channel 4 Noise Control value
INT $15/AH=$0E - sound_get_random
- AH = $0E
Return:
- AX = Channel 4 LFSR Register value