|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
How does time multiplexing work on the YM2413 OPLL?
Posted: Sun Apr 19, 2020 5:43 pm
|
One of the facts that is often reported about the YM2413 is that its built-in DAC outputs only one channel at a time, switching between them rapidly. Which saves some arithmetic.
Question: what is the schedule of that switching? Relevants facts: there are 72 cycles between every internal 'tick'. In full-melodic mode there are 9 channels, which is conveniently a divisor of 72. But in rhythm mode there are 11 potential sounds at a time — the 6 melodic channels plus the 5 drum sounds. 11 does not evenly divide 72. That said, four of the five drum sounds use only a single operator each which means that they share channels in pairs, and the full-fat OPL2 has a per-channel non-FM mode, in which the modulator and carrier run independently and the channel is merely the sum of their output. So perhaps the 11 noises in rhythm mode still form 9 channels, with 8, 4, 2 or 1 cycle spent per channel? |
|
|
Posted: Sun Apr 19, 2020 10:21 pm |
There’s a lot of reverse engineering info at https://github.com/andete/ym2413/ and copies at https://www.smspower.org/Development/YM2413 . Since the melody and rhythm are output on separate pins, I suspect they operate independently. | |
|
Posted: Mon Apr 20, 2020 2:18 am |
I immediately feel foolish re: melodic versus rhythm. From what I've read the rhythm section reuses ADSR envelopes so it definitely needs a DAC and therefore may end up in a single scheduling list despite the separate output but there's certainly no reason to assume that like there would be if everything were on a single pin.
I'll check out that repository; it's a shame it doesn't have a formal licence attached even though it is meant to communicate research rather than code. I'm otherwise primary working with the various dumps of internal ROMs that are now generally around — both the exact negative-log-sin table and the corresponding exponential tables from the OPL2 and the instrument banks from both the OPLL and the related VRC7*. I'm just starting out though, so I don't even really have my FM synthesis working properly; I'm not entirely clear why yet but hopefully just an attenuation error. Everything sounds too pure and sine-ish. * which I've not seen anybody mention here, but here it is. Seemingly very fresh. Discovering that somebody smart had reverse-engineered that is what has motivated me finally to add FM synthesis to my emulator. |
|