-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Channel stripping for YM2612 (and SN76496) #20
Conversation
DAC as "channel 6" is fine. It looks like the "DAC -> channel 6" assignment is something I never did. It is supposed to go here: Line 888 in 3d59729
else if (CurChip == 0x02 && ! stricmp(ChipPos, "DAC"))
{
TempChip->ChnMask |= (1 << 6);
} |
Ok, I made the change, and the I'm pretty sure it filters things accurately, based on my reading the manual and the
|
looks good! Re timers: Those are removed by vgm_cmp already. I should fix that though, because if CSM mode gets enabled, Timer A does have an effect. YM2612 FM6/DAC handling in general can get difficult, because you can switch between FM6 and DAC whenever you want. So removing data from register B6h can only be done when you can guarantee that no DAC -> FM6 switch occours. |
Regarding register 2B, it should only strip it if both FM6 and DAC are being stripped. My thinking here is that if neither FM6 or DAC is used, there's no reason to care about DAC enable. However, I would of course defer to you, as I'm sure you have much more knowledge of the It also just occurred to me that we could potentially strip register 22 if all FM channels are stripped (leaving only the DAC), because the LFO is not used by the DAC. But I'm not worried about it, or doing the more advanced stripping. It works for my purposes, as I'm just trying to isolate each individual channel in its own Thanks again for your help on this! |
See #19.
I followed @ValleyBell's instructions to fix the channel stripping for
SN76496
and implement it forYM2612
. I tested it with some Genesis.vgm
files (from Sonic 1), and it is working.There's only one problem, and I'm hoping to get some guidance. The command line help text indicates that specifying something like
-Strip:YM2612:DAC
should work for stripping the DAC, but I could not find where that information gets put inChnMask
. Instead, at this point,-Strip:YM2612:6
strips the DAC. Any insight?