tildearrow / furnace

a multi-system chiptune tracker compatible with DefleMask modules
GNU General Public License v2.0
2.56k stars 205 forks source link

[AY-3-8910/AY8930] Envelope instrument behavior #307

Closed TakuikaNinja closed 1 year ago

TakuikaNinja commented 2 years ago

I've found 2 issues regarding non-looping envelope instruments. I apologize in advance if the behaviour I'm describing is a quirk of the chips themselves.

freq-mod commented 2 years ago

The first one is an actual bug. The second one is an intended behaviour, AY works like that

tildearrow commented 1 year ago

Finally, let's look at this.

It appears that in order to write to the other channels' envelope mode, a write to the bank select register is necessary, which happens to be shared with channel 1's envelope mode...

tildearrow commented 1 year ago

Not fixable... :< (for now)

TakuikaNinja commented 1 year ago

Oh, so it's a hardware quirk. Thanks for looking into that - at least I now know to work around it.

yoshiweegee commented 8 months ago

Requesting the AY-3-8910 issue be reconsidered. Effect 30 is supported for some FM chips by adjusting the release to a sharp falloff and delaying the next keyon while the envelope finishes. If this is supported for FM chips, then it should be supported for AY-3-8910 for consistency. This seems to be possible by quickly reenabling the envelope (specifically via $0D). A real-use example is PMD: it does this with its SSG sound effects, including its built-in percussion for music. Perhaps this could be a new effect specifically for SSG envelopes, since FM also uses this for SSG-EG, distinct from the ADSR envelope which the current effect affects.

If making a new issue is necessary to avoid issue resolution clutter, please let me know.