23 void powerUp(EmuTime::param time);
24 void reset(EmuTime::param time);
25 [[nodiscard]] uint8_t
readMem(uint8_t address,EmuTime::param time);
26 [[nodiscard]] uint8_t
peekMem(uint8_t address,EmuTime::param time)
const;
27 void writeMem(uint8_t address, uint8_t value, EmuTime::param time);
30 template<
typename Archive>
31 void serialize(Archive& ar,
unsigned version);
35 [[nodiscard]]
float getAmplificationFactorImpl()
const override;
36 void generateChannels(std::span<float*> bufs,
unsigned num)
override;
38 [[nodiscard]] uint8_t readWave(
unsigned channel,
unsigned address, EmuTime::param time)
const;
39 void writeWave(
unsigned channel,
unsigned address, uint8_t value);
40 void setDeformReg(uint8_t value, EmuTime::param time);
41 void setDeformRegHelper(uint8_t value);
42 void setFreqVol(
unsigned address, uint8_t value, EmuTime::param time);
43 [[nodiscard]] uint8_t getFreqVol(
unsigned address)
const;
46 static constexpr int CLOCK_FREQ = 3579545;
50 [[nodiscard]] uint8_t read(
unsigned address, EmuTime::param time)
override;
51 void write(
unsigned address, uint8_t value, EmuTime::param time)
override;
54 Clock<CLOCK_FREQ> deformTimer;
57 std::array<std::array<int8_t, 32>, 5> wave;
58 std::array<std::array<float, 32>, 5> volAdjustedWave;
59 std::array<unsigned, 5> incr;
60 std::array<unsigned, 5> count;
61 std::array<unsigned, 5> pos;
62 std::array<unsigned, 5> period;
63 std::array<unsigned, 5> orgPeriod;
64 std::array<float, 5> out;
65 std::array<uint8_t, 5> volume;
69 std::array<bool, 5> rotate;
70 std::array<bool, 5> readOnly;
void setChipMode(ChipMode newMode)
void serialize(Archive &ar, unsigned version)
void powerUp(EmuTime::param time)
uint8_t readMem(uint8_t address, EmuTime::param time)
void reset(EmuTime::param time)
uint8_t peekMem(uint8_t address, EmuTime::param time) const
SCC(const std::string &name, const DeviceConfig &config, EmuTime::param time, ChipMode mode=SCC_Real)
void writeMem(uint8_t address, uint8_t value, EmuTime::param time)
This file implemented 3 utility functions: