| ▲ | duncanbowring 2 days ago | |
Author here. Two things the write-up doesn't dwell on that this crowd might care about. The donor is unidentified, and it's the part I'd most like help with. The Z80 music system isn't the house format the same studio used for its AdLib and MT-32 drivers: 12 of its 13 opcode ranges have no counterpart there, and none of the container's five structural predicates hold. So it was imported whole from somewhere, not adapted. I searched two candidate Spectrum titles for the shipped period table, byte for byte, both endiannesses, and found nothing, with a planted-table control to prove the search actually worked. If a 96-entry period table whose bottom 13 entries are clamped to a single value means anything to you, I'd like to hear it. The other thing I can't explain: the register file is 13 bytes where the AY-3-8912 has 14. There is no storage for the envelope shape register at all, and a write to it would land on the driver's own code. It works only because the music never uses that register. Whether that was deliberate or lucky, I don't know. Happy to go into the disassembly detail. | ||