5#ifndef YM2413ORIGINAL_HPP
6#define YM2413ORIGINAL_HPP
18 void reset()
override;
19 void writePort(
bool port, uint8_t value,
int cycle_offset)
override;
20 void pokeReg(uint8_t reg, uint8_t value)
override;
21 [[nodiscard]] uint8_t
peekReg(uint8_t reg)
const override;
24 void setSpeed(
double speed)
override;
26 template<
typename Archive>
27 void serialize(Archive& ar,
unsigned version);
32 uint8_t port = uint8_t(-1);
35 std::array<Write, 18> writes;
38 std::array<uint8_t, 64> regs;
41 int allowed_offset = 0;
42 bool speedUpHack =
false;
Abstract interface for the YM2413 core.
void serialize(Archive &ar, unsigned version)
void generateChannels(std::span< float *, 9+5 > out, uint32_t n) override
void writePort(bool port, uint8_t value, int cycle_offset) override
Write to the YM2413 register/data port.
void pokeReg(uint8_t reg, uint8_t value) override
Write to a YM2413 register (for debug).
float getAmplificationFactor() const override
Returns normalization factor.
void setSpeed(double speed) override
Sets real-time speed factor (aka the openMSX 'speed' setting).
uint8_t peekReg(uint8_t reg) const override
Read from a YM2413 register (for debug).
void reset() override
Reset this YM2413 core.