1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-25 11:17:26 +00:00

Attempt some basic voice details.

This commit is contained in:
Thomas Harte
2025-11-08 21:54:41 -05:00
parent fe7a206fc5
commit 5e98e6502d
4 changed files with 52 additions and 2 deletions
+9 -1
View File
@@ -109,6 +109,8 @@ private:
/*!
Combines an SN76489 with an appropriate asynchronous queue and filtering speaker.
*/
// TODO: generalise the below and clean up across the project.
template <bool has_beebsid>
struct Audio {
private:
@@ -147,7 +149,7 @@ public:
return sn76489_;
}
if constexpr (std::is_same_v<TargetT, MOS::SID::SID>) {
return sn76489_;
return sid_;
}
}
@@ -1027,6 +1029,12 @@ public:
}
break;
}
} else if(has_beebsid && address >= 0xfc20 && address < 0xfc40) {
if constexpr (is_read(operation)) {
value = audio_.template get<MOS::SID::SID>().read(+address);
} else {
audio_.template get<MOS::SID::SID>().write(+address, value);
}
} else {
Logger::error()
.append("Unhandled IO %s at %04x", is_read(operation) ? "read" : "write", address)