Skip to content

Commit

Permalink
Detect more MOD variants: TDZ#, FA04/6/8, LARD, NSMS.
Browse files Browse the repository at this point in the history
  • Loading branch information
AliceLR authored and sezero committed Oct 4, 2021
1 parent 0cf42a9 commit a618e6d
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions libmikmod/loaders/load_mod.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,10 @@ static CHAR fasttracker[] = "Fasttracker";
static CHAR octalyser[] = "Octalyser";
static CHAR oktalyzer[] = "Oktalyzer";
static CHAR taketracker[] = "TakeTracker";
static CHAR digitaltracker[] = "Digital Tracker MOD";
static CHAR orpheus[] = "Imago Orpheus (MOD format)";
static CHAR modsgrave[] = "Mod's Grave";
static CHAR unknown[] = "Unknown tracker MOD";

static MODULEHEADER *mh = NULL;
static MODNOTE *patbuf = NULL;
Expand Down Expand Up @@ -161,6 +163,27 @@ static BOOL MOD_CheckType(UBYTE *id, UBYTE *numchn, CHAR **descr)
*numchn = (id[0] - '0') * 10 + (id[1] - '0');
return 1;
}
/* Taketracker */
if (!memcmp(id, "TDZ", 3) && (id[3] >= '1' && id[3] <= '3')) {
*descr = taketracker;
*numchn = (id[3] - '0');
return 1;
}

/* Digital Tracker */
if (!memcmp(id, "FA0", 3) && (id[3] == '4' || id[3] == '6' || id[3] == '8')) {
*descr = digitaltracker;
*numchn = (id[3] - '0');
return 1;
}

/* Standard 4-channel MODs with unusual IDs. */
if (!memcmp(id, "LARD", 4) /* judgement_day_gvine.mod */
|| !memcmp(id, "NSMS", 4)) { /* kingdomofpleasure.mod */
*descr = unknown;
*numchn = 4;
return 1;
}

return 0;
}
Expand Down Expand Up @@ -425,6 +448,12 @@ static BOOL MOD_Load(BOOL curious)
_mm_errno = MMERR_NOT_A_MODULE;
return 0;
}
if (descr == digitaltracker) {
/* Digital Tracker FA0x modules add four extra bytes after the
* magic. These don't seem to have ever been used for their
* intended purpose (rows per pattern and sample bits/rate). */
_mm_read_M_ULONG(modreader);
}
if (trekker && of.numchn == 8)
for (t = 0; t < 128; t++)
/* if module pretends to be FLT8, yet the order table
Expand Down

0 comments on commit a618e6d

Please sign in to comment.