libdragon
|
A AY-3-8910 emulator. More...
#include <ay8910.h>
Data Fields | |
uint8_t(* | PortRead )(int idx) |
Callback for I/O port reads. | |
void(* | PortWrite )(int idx, uint8_t val) |
Callback for I/O port writes. | |
uint8_t | addr |
Current value on the address line. | |
uint8_t | regs [16] |
State of the internal registers. | |
AYChannel | ch [3] |
Configuration and state of the channels. | |
AYNoise | ns |
Configuration and state of the noise. | |
AYEnvelope | env |
Configuration and state of the envelope. | |
A AY-3-8910 emulator.
AY-3-8910 is a 4-bit PSG, popular in the 80s, that was used in many game consoles and PCs. It features 3 channels producing square waveforms at programmable periods and volumes, plus a noise generator that can be activated on each channel, and a volume envelope.
This emulator has been heavily optimized to be able to perform fast enough on the N64 hardware to be used as background music. Specifically, it is used by ym64player_t to play back YM modules.