Rendered at 12:58:44 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
stuaxo 1 days ago [-]
OK, an interesting starting point (I skim read a lot of this as its AI written).
You've hooked it up to a spectrum emulator and played it.
It would be fun to get Claude to patch the emulation into DOSBOX.
Though the most fun would he if someone hooked an AY up to a PC so you could hear it in realtime.
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.
You've hooked it up to a spectrum emulator and played it.
It would be fun to get Claude to patch the emulation into DOSBOX.
Though the most fun would he if someone hooked an AY up to a PC so you could hear it in realtime.
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.