mmontag / chip-player-js

Web-based music player for a variety of video game and chiptune music formats.
https://chiptune.app
GNU General Public License v3.0
324 stars 17 forks source link

Sega Genesis: can't mute all channels #143

Closed binary1230 closed 6 months ago

binary1230 commented 7 months ago

Minor thing,

Example track: https://chiptune.app/?play=Sega%20Genesis%2FSonic%20the%20Hedgehog%203%2F04%20-%20Angel%20Island%20Zone%20Act%202.vgz

If I uncheck all boxes one by one (without ALT+CLICKing) image

expected: all audio is muted actual: I still hear the Snare drum even though all channels are unchecked.

If I then ALT+CLICK a channel to solo it, then uncheck that channel (showing all channels unchecked again), then the snare goes away.

If I then manually check each channel again one by one and turn them all back on, expected: all channels are back actual: everything is back except the Snare is still missing


I suspect what's up is, the channel for the Genesis DAC channel is probably just not being exposed as a checkbox to the UI, or incorrectly?

Also I notice (maybe) that the channel labelled "FM 6" never seems to be playing anything on the couple Genesis games I looked at when I solo'd it. Could this be related or like a mislabeled channel?

It explains the "solo" feature being able to mute all channels successfully too

https://youtu.be/F6n9aWEeI1s?t=247 ^ vid showing all the channels

JS debugger shows: SEGA PSG: 4 voices YM2612: 6 voices

the DAC channel is on the YM2612

I'll try and track it down a bit more

mmontag commented 7 months ago

Thanks for the report, I think I found the issue with this. YM2612 should have 7 voices https://github.com/mmontag/chip-player-js/blob/master/libvgm/emu/cores/ym2612.c#L2483

mmontag commented 6 months ago

Also, to answer your question about no sound on FM6 (which I also wondered myself): according to wikipedia, the sixth channel of the YM2612 "can act as a basic PCM channel by means of the 'DAC Enable' register, disabling FM output for that channel but allowing it to play 8-bit pulse-code modulation sound samples." So it can either play PCM or FM, not both. In libvgm and Chip Player JS, this will manifest as two distinct channels.

mmontag commented 6 months ago

This should be fixed now in https://github.com/mmontag/chip-player-js/commit/9c9f17f5e9d3fd0d2d782eb980cbed98c6ceb734. Please reopen if you still have issues, thanks!

binary1230 commented 6 months ago

Ah! Very fun, thanks much! That's awesome

On Wed, Dec 6, 2023, 8:24 PM Matt Montag @.***> wrote:

This should be fixed now in 9c9f17f https://github.com/mmontag/chip-player-js/commit/9c9f17f5e9d3fd0d2d782eb980cbed98c6ceb734 . Please reopen if you still have issues, thanks!

— Reply to this email directly, view it on GitHub https://github.com/mmontag/chip-player-js/issues/143#issuecomment-1843982301, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJJRSGT7U4LKG4DTEX7EOTYIELFRAVCNFSM6AAAAAA7RFOEESVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNBTHE4DEMZQGE . You are receiving this because you authored the thread.Message ID: @.***>