libxmp / libxmp/libxmp

"Reported", "suspected" S3M quirk is applied near universally in FX_VOLSLIDE.

Open
#899 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

it s3m
Dominant language
C
Stars
392
Forks
82
Avg merge
1d 4h
Merged PRs (30d)
5

Description

This quirk was accidentally triggered by play_rtm_autovib_oob_depth_rate.rtm, which I only discovered by switching the RTM Axy effect to FX_VOLSLIDE2. This "reported" behavior deserves far more scrutiny and, at best, should be limited to S3Ms (and maybe ITs). Delaying to 4.6.5 so that 4.6.4 can be finished sometime this month (maybe).

effects.c:346:

		/* Mirko reports that a S3M with D0F effects created with ST321
		 * should process volume slides in all frames like ST300. I
		 * suspect ST3/IT could be handling D0F effects like this.
		 */
		if (HAS_QUIRK(QUIRK_FINEFX)) {
			if (MSN(xc->vol.memory) == 0xf
			    || LSN(xc->vol.memory) == 0xf) {
				SET(FINE_VOLS);
				xc->vol.fslide = xc->vol.slide;
			}
		}

https://github.com/libxmp/libxmp/commit/e01790ceeaaba2096e65b3ef6d1cb9dd43e6397a

edit: all QUIRK_FINEFX formats are going to have to be tested for this, so S3M, IT, XM, DSMI AMF, DBM, Galaxy 4/5, GDM, IMF, LIQ (both), MDL, PTM, RTM, STM, STX, and possibly some MOD variants.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at effects.c:346 and review how QUIRK_FINEFX applies the reported volume-slide behavior. Compare the listed S3M, IT, XM, DSMI AMF, DBM, Galaxy, GDM, IMF, LIQ, MDL, PTM, RTM, STM and STX formats, including play_rtm_autovib_oob_depth_rate.rtm; done means the quirk is limited to formats whose behavior is verified and the affected playback cases are tested.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.