bsnes-classic/bsnes/snes/chip/msu1/msu1.hpp
2015-04-30 03:52:46 +00:00

45 lines
796 B
C++

class MSU1 : public Coprocessor, public MMIO {
public:
static void Enter();
void enter();
void init();
void enable();
void power();
void reset();
uint8 mmio_read(unsigned addr);
void mmio_write(unsigned addr, uint8 data);
void serialize(serializer&);
private:
bool boot;
file datafile;
file audiofile;
enum Flag {
DataBusy = 0x80,
AudioBusy = 0x40,
AudioRepeating = 0x20,
AudioPlaying = 0x10,
AudioError = 0x08,
Revision = 0x01,
};
struct MMIO {
uint32 data_offset;
uint32 audio_offset;
uint32 audio_loop_offset;
uint16 audio_track;
uint8 audio_volume;
bool data_busy;
bool audio_busy;
bool audio_repeat;
bool audio_play;
bool audio_error;
} mmio;
};
extern MSU1 msu1;