Skip to content

Misc XGM2 issues #436

@RealMalachi

Description

@RealMalachi

While testing an ASM rewrite to XGM2s API, I found what seems to be a nasty bug with the driver itself:

  • If a previous track enabled FM3 special mode and the current track doesn't also use special mode or resets FM3 to normal mode (which is unlikely, given trackers don't support switching modes and most tools assume it's on normal mode by default), then a track that should be in normal mode will be playing in special mode with undefined parameters for the special data
  • If a previous track pans FM6/PCM and the current track doesn't touch the panning, then it'll use what it was panned to previously. This also occurs with SFXs by playing a track that pans FM6/PCM, stopping it, then playing a SFX.

It's also entirely possible that this issue can effect other FM registers as well! If the driver can distinguish between first loading a track and continuing to play it, I believe this can be solved by initiating some FM register when first loading the track, otherwise I think to fix this all traclss would have to include some standard initiation commands.

Later on I found that pausing and resuming seems to desync the PSG stream ever so slightly, if you spam pauses and resumes it becomes more pronounced. Admittedly I've only tested this on my own API, so disregard this if it can't be reproduced.

I'd also like to give some suggestions for quality-of-life features:

  • In the XGM2 converter, an option to remove all PCM panning, maybe FM6 panning as well. Since SFXs are tied to PCM, tracks that pan the PCM end up panning all SFXs with it which can be quite distracting. This problem also manifests in quite a few XGM1 projects, even ones with commercial releases already, genuinely surprised that passed through QA
  • In the Z80 driver, a distinction between panning for FM6 and PCM. Say a track is using FM6 panned to the right, which is then interrupted by a PCM SFX. Currently the panning from FM6 being is carried over, when while enabling PCM you could change the panning to be centered (or if the track mixes FM6 and PCM, whatever the tracks PCM was last panned to) and restore the FM6 panning when done

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions