Hyper Voice: Difference between revisions

From WSdev Wiki
Jump to navigationJump to search
(Created page with "Hyper Voice is a headphone-only sample output channel introduced with the WonderSwan Color. It allows converting 8-bit signed and unsigned, mono and stereo samples into 16-bit signed PCM sent directly to the headphone output, after mixing with the traditional four channels. == I/O Ports == === Hyper Voice Left Output ($64, $65) === === Hyper Voice Right Output ($66, $67) === <pre> 15 bit 8 7 bit 0 ---- ---- ---- ---- ssss ssss ssss ssss ++++-++++--++++-++++...")
 
No edit summary
Line 3: Line 3:
== I/O Ports ==
== I/O Ports ==


{{Anchor|Hyper Voice Output}}
=== Hyper Voice Left Output ($64, $65) ===
=== Hyper Voice Left Output ($64, $65) ===


Line 14: Line 15:
</pre>
</pre>


Unlike the [[Sound]] output registers, these can be written to - allowing for direct 16-bit sample output.
Unlike the [[Sound]] sample output registers, these can be written to - allowing for direct 16-bit sample output.


{{Anchor|Hyper Voice Input}}
=== Hyper Voice Left Input ($68) ===
=== Hyper Voice Left Input ($68) ===


Line 29: Line 31:
These are typically written to by [[DMA|Sound DMA]], but can also be written to manually by the user.
These are typically written to by [[DMA|Sound DMA]], but can also be written to manually by the user.


{{Anchor|Hyper Voice Control}}
=== Hyper Voice Control ($6A, $6B) ===
=== Hyper Voice Control ($6A, $6B) ===



Revision as of 12:21, 22 August 2023

Hyper Voice is a headphone-only sample output channel introduced with the WonderSwan Color. It allows converting 8-bit signed and unsigned, mono and stereo samples into 16-bit signed PCM sent directly to the headphone output, after mixing with the traditional four channels.

I/O Ports

Hyper Voice Left Output ($64, $65)

Hyper Voice Right Output ($66, $67)

15  bit  8  7  bit  0
 ---- ----  ---- ----
 ssss ssss  ssss ssss
 ++++-++++--++++-++++- Signed 16-bit sample.

Unlike the Sound sample output registers, these can be written to - allowing for direct 16-bit sample output.

Hyper Voice Left Input ($68)

Hyper Voice Right Input ($69)

7  bit  0
---- ----
ssss ssss
++++-++++- 8-bit sample.

These are typically written to by Sound DMA, but can also be written to manually by the user.

Hyper Voice Control ($6A, $6B)

15  bit  0  7  bit  0
 ---- ----  ---- ----
 .mmc ....  errr ffss
  |||       |||| ||++- Shift/Volume:
  |||       |||| ||      0 = 100%   1 = 50%
  |||       |||| ||      2 = 25%    3 = 12.5%
  |||       |||| ++--- Input sample mode:
  |||       ||||         0 = Unsigned
  |||       ||||         1 = Unsigned, negate
  |||       ||||         2 = Signed
  |||       ||||         3 = Signed, ignore Shift/Volume
  |||       |+++------ Update sample rate/Divisor:
  |||       |            0 = 24000/1  = 24000 Hz
  |||       |            1 = 24000/2  = 12000 Hz
  |||       |            2 = 24000/3  =  8000 Hz
  |||       |            3 = 24000/4  =  6000 Hz
  |||       |            4 = 24000/5  =  4800 Hz
  |||       |            5 = 24000/6  =  4000 Hz
  |||       |            6 = 24000/8  =  3000 Hz
  |||       |            7 = 24000/12 =  2000 Hz
  |||       +--------- Enable: 0 = off, 1 = on
  ||+----------------- Input channel: 0 = left, 1 = right
  ++------------------ Channel mode:
                         0 = Stereo
                         1 = Mono, left channel only
                         2 = Mono, right channel only
                         3 = Mono, both channels