openMSX
MSXMoonSound.hh
Go to the documentation of this file.
1#ifndef MSXMOONSOUND_HH
2#define MSXMOONSOUND_HH
3
4#include "MSXDevice.hh"
5#include "YMF262.hh"
6#include "YMF278.hh"
7#include "serialize_meta.hh"
8
9namespace openmsx {
10
11class MSXMoonSound final : public MSXDevice
12{
13public:
14 explicit MSXMoonSound(const DeviceConfig& config);
15
16 void powerUp(EmuTime::param time) override;
17 void reset(EmuTime::param time) override;
18 [[nodiscard]] byte readIO(word port, EmuTime::param time) override;
19 [[nodiscard]] byte peekIO(word port, EmuTime::param time) const override;
20 void writeIO(word port, byte value, EmuTime::param time) override;
21
22 template<typename Archive>
23 void serialize(Archive& ar, unsigned version);
24
25private:
26 [[nodiscard]] bool getNew2() const;
27 [[nodiscard]] byte readYMF278Status(EmuTime::param time) const;
28
29private:
30 YMF262 ymf262;
31 YMF278 ymf278;
32
34 EmuTime ymf278LoadTime;
36 EmuTime ymf278BusyTime;
37
38 int opl3latch;
39 byte opl4latch;
40};
42
43} // namespace openmsx
44
45#endif
An MSXDevice is an emulated hardware component connected to the bus of the emulated MSX.
Definition MSXDevice.hh:36
void powerUp(EmuTime::param time) override
This method is called when MSX is powered up.
byte peekIO(word port, EmuTime::param time) const override
Read a byte from a given IO port.
void writeIO(word port, byte value, EmuTime::param time) override
Write a byte to a given IO port at a certain time to this device.
void serialize(Archive &ar, unsigned version)
void reset(EmuTime::param time) override
This method is called on reset.
byte readIO(word port, EmuTime::param time) override
Read a byte from an IO port at a certain time from this device.
This file implemented 3 utility functions:
Definition Autofire.cc:11
uint16_t word
16 bit unsigned integer
Definition openmsx.hh:29
#define SERIALIZE_CLASS_VERSION(CLASS, VERSION)