ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
<Lord_Nightmare> ValleyBell: yes, i have 3 patches i need to get in
<Lord_Nightmare> that's one of them, i need to finish writing it though
<Lord_Nightmare> i saved those pictures somewhere, what were the names of them again?
<Lord_Nightmare> been busy the past 2 weeks
<cr1901_modern> Trying to create a bot, hopefully a first minimal version will be up tonight. Prob first thing I'll add: map a Yamaha chip part to it's family name and vice-versa. Since I can't remember the mappings.
<andlabs> before I do more work for myself
<andlabs> is the voice format of the DX100 firmware known?
<andlabs> I can deduce it's a 67-byt eformat but the owner's manual insists it should be 72 bytes instead, and dxconvert/txconvert insist it's 128 bytes instead (for the tx81z...)
<Lord_Nightmare> ValleyBell: you want credit as [ValleyBell], right?
<Lord_Nightmare> i assume yes
_whitelogger has joined ##yamahasynths
<andlabs> aha!
<andlabs> the extra bytes are $63 $63 $63 $32 $32 $32
<andlabs> for some reason
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined ##yamahasynths
protosphere has quit [Ping timeout: 276 seconds]
protosphere has joined ##yamahasynths
<ValleyBell> Lord_Nightmare: "Valley Bell" (with a space), would be nice, if that's not too much of a hassle
<ValleyBell> cr1901_modern: Yes, there is a bit difference between the OKI6258 and 6295. The 6258 is 1-voice ADPCM without ROM and requires the CPU to stream data in realtime. (or via DMA)
<ValleyBell> The 6295 is a 4-voice ADPCM chip that plays data from a sample ROM.
<ValleyBell> You could maybe keep the C219 as a separate chip. It adds a bunch of features from the C352, so we decided to even split the emulation cores in libvgm.
<ValleyBell> (even if it occupies the same "slot" as the C140 in VGMs)
<ValleyBell> The Y8950 is a YM3526 + DeltaT ADPCM channel, but I'd keep that as a separate chip.
<ValleyBell> >"Pro Audio Spectrum (2xYM3812)" => SoundChip::YM3812(1) <--- this should be YM3812(2)
<ValleyBell> That's all issues I see right now.
<Lord_Nightmare> the 6295 also has a secondary adpcm mode which uses a differently encoded "OKI II" encoding scheme that hasn't been reverse engineered yet
<Lord_Nightmare> i don't know of anything that uses it personally but perhaps you do
<ValleyBell> I haven't seen that used either. All games I know just use the usual ADPCM mode.
<Lord_Nightmare> the oki mode clips at the max/min of the 12 bit accumulator range on all of the oki chips EXCEPT for the msm5205, which wraps
<Lord_Nightmare> the ym2608 internal ROM and the ym2610 ADPCM_A mode, which are variants of oki adpcm with a different evolution table, also wrap like the 5205 and unlike the rest of the oki chips
<Lord_Nightmare> well, we don't know about the 2608 internal ROM wrapping but presumably it does
<Lord_Nightmare> adpcm_a definitely does
kode54 has quit [Read error: Connection reset by peer]
kode545 has joined ##yamahasynths
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
<andlabs> hmmm
<andlabs> so the DX100 combines MULT and DT2 into a single value called "operator frequency"
<andlabs> okay, I guess????
<andlabs> er
<andlabs> "oscillator frequency"
<andlabs> and I immediately forgot again after thinking I finally memorized it it a few weeks ago 😐
<andlabs> what does it mean after a comparison that carry is set
<Lord_Nightmare> depends on the cpu
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
<andlabs> hey cr1901_modern and .. I guess j_oliviera isn't here?
<andlabs> ok
<andlabs> remember when you told me the YM2164 has "DRM" and I looked it up and the FB-01 and MSX addons set the private registers 0..7 to $10 ?
<andlabs> well the DX100 actually sets those registers to a different value based on some parameters (I don't know which)
<andlabs> it DOES set all of those registers to the same value, though
<Lord_Nightmare> ym2164 has another piece of drm
<Lord_Nightmare> the timer runs at half(?) the speed as it does on the ym2151?
<Lord_Nightmare> this change i think was done intentionally less as drm and more so the timer had a more useful tick range when dealing with midi tempo
<andlabs> I don't think that qualifies as DRM
<andlabs> sure it makes software that use timer B at the YM2151 rate buggy
<andlabs> also hm
<andlabs> does anyone know whether C1 and M2 in an OPM file are operators 2 and 3 or 3 and 2, respectively?
<andlabs> ok C1 is op 2 and M2 are op 3 (deduced from a sample with algo 4)
kode545 is now known as kode54
<andlabs> / banks:
<andlabs> / - 0x2205 (8709) len 67 - initialized voice
<andlabs> / - 0x66C0 (26304) len 6432 - voice bank 2
<andlabs> / - 0x4DA0 (19872) len 6432 - voice bank 1
<andlabs> OPM files from DX100 maybe???
<cr1901_modern> I thought the "DRM" was swapping the reg file positions around, not that you had to write a key to unlock the remaining regs
<andlabs> it's onlyt he test register that moved
<andlabs> the other registers are identical
<cr1901_modern> ahh TIL
<ej5> ADLPlug is pretty sweet. just got it working today within Ardour.
<Lord_Nightmare> andlabs: the correct operator order is M1 C1 M2 C2 right? that way you can't get the whole mixup with 1 2 3 4 vs 1 3 2 4
<Lord_Nightmare> i'm not sure
<Lord_Nightmare> i know the correct operator order in memory is 1 3 2 4 on the opn2, i think?
<Lord_Nightmare> and gems and sega02 and possibly a bunch of other docs on sites have it wrong
<andlabs> it's 1 2 3 4 in this case so ok
<andlabs> it's 1 3 2 4 internally in the chip so because of how the register file works it's also slightly faster to write registers in this order
<andlabs> s/so/and/