Sunsoft 5B audio: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
Line 38: Line 38:
| $06 || <tt>---P PPPP</tt> || Noise period
| $06 || <tt>---P PPPP</tt> || Noise period
|-
|-
| $07 || <tt>--C BAcba</tt> || Noise enable on channels C/B/A, Tone enable on channels c/b/a
| $07 || <tt>--CB Acba</tt> || Noise enable on channels C/B/A, Tone enable on channels c/b/a
|-
|-
| $08 || <tt>--EV VVVV</tt> || Channel A envelope enable (E), volume (V)
| $08 || <tt>--EV VVVV</tt> || Channel A envelope enable (E), volume (V)

Revision as of 05:32, 10 March 2012

The Sunsoft 5B is a superset of the Sunsoft FME-7. It is identical to the FME-7 except it contains extra audio hardware. This audio hardware was only used in one game, Gimmick!

Registers

The audio hardware is a type of the General Instrument AY-3-8910 PSG, or Yamaha's YM2149F variant.

Audio Register Select ($C000)

7......0
----RRRR
    ++++- The 4-bit internal register to select for use with $E000

Audio Register Write ($E000)

7......0
VVVVVVVV
++++++++- The 8-bit value to write to the internal register selected with $C000

Internal audio registers

The AY-3-8910 has 16 internal audio registers, selected with $C000 and written to with $E000.

Register Bitfield Description
$00 LLLL LLLL Channel A low period
$01 ---- HHHH Channel A high period
$02 LLLL LLLL Channel B low period
$03 ---- HHHH Channel B high period
$04 LLLL LLLL Channel C low period
$05 ---- HHHH Channel C high period
$06 ---P PPPP Noise period
$07 --CB Acba Noise enable on channels C/B/A, Tone enable on channels c/b/a
$08 --EV VVVV Channel A envelope enable (E), volume (V)
$09 --EV VVVV Channel B envelope enable (E), volume (V)
$0A --EV VVVV Channel C envelope enable (E), volume (V)
$0B LLLL LLLL Envelope low period
$0C ---- HHHH Envelope high period
$0D ---- CAaH Envelope shape: continue (C), attack (A), alternate (a), hold (H)
$0E ---- ---- I/O port A (unused)
$0F ---- ---- I/O port B (unused)