bsnes-plus/bsnes/snes/chip/msu1/msu1.hpp

48 lines
907 B
C++

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