Updated DUMB to version 2.0.2.
parent
34357351c8
commit
20d1ce09e5
|
@ -40,8 +40,8 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define DUMB_MAJOR_VERSION 2
|
#define DUMB_MAJOR_VERSION 2
|
||||||
#define DUMB_MINOR_VERSION 0
|
#define DUMB_MINOR_VERSION 0
|
||||||
#define DUMB_REVISION_VERSION 0
|
#define DUMB_REVISION_VERSION 2
|
||||||
#define DUMB_VERSION_STR "2.0.0"
|
#define DUMB_VERSION_STR "2.0.2"
|
||||||
|
|
||||||
#define DUMB_VERSION \
|
#define DUMB_VERSION \
|
||||||
(DUMB_MAJOR_VERSION * 10000 + DUMB_MINOR_VERSION * 100 + \
|
(DUMB_MAJOR_VERSION * 10000 + DUMB_MINOR_VERSION * 100 + \
|
||||||
|
|
|
@ -40,6 +40,10 @@ int _dumb_it_fix_invalid_orders(DUMB_IT_SIGDATA *sigdata) {
|
||||||
sigdata->order[i] <= last_invalid) {
|
sigdata->order[i] <= last_invalid) {
|
||||||
sigdata->order[i] = sigdata->n_patterns;
|
sigdata->order[i] = sigdata->n_patterns;
|
||||||
found_some = 1;
|
found_some = 1;
|
||||||
|
} else if (sigdata->order[i] < first_invalid) {
|
||||||
|
IT_PATTERN *pattern = sigdata->pattern + sigdata->order[i];
|
||||||
|
if (!pattern->n_rows || (pattern->n_entries && !pattern->entry))
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1042,6 +1042,7 @@ static sigdata_t *it_load_sigdata(DUMBFILE *f) {
|
||||||
|
|
||||||
// XXX sample count
|
// XXX sample count
|
||||||
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
||||||
|
sigdata->n_orders > 1024 || // Whoa, nelly.
|
||||||
sigdata->n_instruments > 256 || sigdata->n_samples > 4000 ||
|
sigdata->n_instruments > 256 || sigdata->n_samples > 4000 ||
|
||||||
sigdata->n_patterns > 256) {
|
sigdata->n_patterns > 256) {
|
||||||
_dumb_it_unload_sigdata(sigdata);
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
@ -1437,7 +1438,10 @@ static sigdata_t *it_load_sigdata(DUMBFILE *f) {
|
||||||
free(buffer);
|
free(buffer);
|
||||||
free(component);
|
free(component);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you, and do an initial run-through. | \/ /\ /
|
* you, and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* opening and closing it for you. | < / \_
|
* opening and closing it for you. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* do an initial run-through. | \/ /\ /
|
* do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* By Chris Moeller. | ' /
|
* By Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* module formats supported by DUMB, | < / \_
|
* module formats supported by DUMB, | < / \_
|
||||||
* opening and closing the file for you. | \/ /\ /
|
* opening and closing the file for you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* opening and closing the file for | \/ /\ /
|
* opening and closing the file for | \/ /\ /
|
||||||
* you, and do an initial run-through. \_ / > /
|
* you, and do an initial run-through. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* by Chris Moeller. | ' /
|
* by Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* module file, opening and closing it | < / \_
|
* module file, opening and closing it | < / \_
|
||||||
* for you. | \/ /\ /
|
* for you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* for you, and do an initial run- | \/ /\ /
|
* for you, and do an initial run- | \/ /\ /
|
||||||
* through. \_ / > /
|
* through. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* By Chris Moeller. | ' /
|
* By Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you, and do an initial run-through. | \/ /\ /
|
* you, and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* it for you, and do an initial run- | \/ /\ /
|
* it for you, and do an initial run- | \/ /\ /
|
||||||
* through. \_ / > /
|
* through. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* By Chris Moeller. | ' /
|
* By Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* you, and do an initial run- | \/ /\ /
|
* you, and do an initial run- | \/ /\ /
|
||||||
* through. \_ / > /
|
* through. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* By Chris Moeller. | ' /
|
* By Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you, and do an initial run-through. | \/ /\ /
|
* you, and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you, and do an initial run-through. | \/ /\ /
|
* you, and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* opening and closing it for you. | < / \_
|
* opening and closing it for you. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* opening and closing it for you, | < / \_
|
* opening and closing it for you, | < / \_
|
||||||
* and do an initial run-through. | \/ /\ /
|
* and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you. | \/ /\ /
|
* you. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* file, opening and closing it for | < / \_
|
* file, opening and closing it for | < / \_
|
||||||
* you, and do an initial run-through. | \/ /\ /
|
* you, and do an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* ptmeffect.c - Code for converting PTM / / \ \
|
* ptmeffect.c - Code for converting PTM / / \ \
|
||||||
* effects to IT effects. | < / \_
|
* effects to IT effects. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. Based on xmeffect.c \_ / > /
|
* By Christopher Snowhill. Based on xmeffect.c \_ / > /
|
||||||
* by Julien Cugniere. | \ / /
|
* by Julien Cugniere. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* read669.c - Code to read a 669 Composer module / / \ \
|
* read669.c - Code to read a 669 Composer module / / \ \
|
||||||
* from an open file. | < / \_
|
* from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -423,7 +423,10 @@ static DUMB_IT_SIGDATA *it_669_load_sigdata(DUMBFILE *f, int *ext) {
|
||||||
sigdata->channel_pan[i + 1] = 32 - sep;
|
sigdata->channel_pan[i + 1] = 32 - sep;
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* read6692.c - Code to read a 669 Composer module / / \ \
|
* read6692.c - Code to read a 669 Composer module / / \ \
|
||||||
* from an open file, and do an initial | < / \_
|
* from an open file, and do an initial | < / \_
|
||||||
* run-through. | \/ /\ /
|
* run-through. | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readam.c - Code to read a RIFF AM module / / \ \
|
* readam.c - Code to read a RIFF AM module / / \ \
|
||||||
* from a parsed RIFF structure. | < / \_
|
* from a parsed RIFF structure. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -463,7 +463,10 @@ static DUMB_IT_SIGDATA *it_riff_amff_load_sigdata(DUMBFILE *f,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readamf.c - Code to read a DSMI AMF module from / / \ \
|
* readamf.c - Code to read a DSMI AMF module from / / \ \
|
||||||
* an open file. | < / \_
|
* an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -536,8 +536,6 @@ static DUMB_IT_SIGDATA *it_amf_load_sigdata(DUMBFILE *f, int *version) {
|
||||||
sigdata->mixing_volume = 48;
|
sigdata->mixing_volume = 48;
|
||||||
sigdata->pan_separation = 128;
|
sigdata->pan_separation = 128;
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
|
||||||
|
|
||||||
for (i = 0; i < realntracks; i++) {
|
for (i = 0; i < realntracks; i++) {
|
||||||
if (track[i]) {
|
if (track[i]) {
|
||||||
free(track[i]);
|
free(track[i]);
|
||||||
|
@ -547,6 +545,11 @@ static DUMB_IT_SIGDATA *it_amf_load_sigdata(DUMBFILE *f, int *version) {
|
||||||
free(trackmap);
|
free(trackmap);
|
||||||
free(orderstotracks);
|
free(orderstotracks);
|
||||||
|
|
||||||
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
|
|
||||||
error_all:
|
error_all:
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readany.c - Code to detect and read any of the / / \ \
|
* readany.c - Code to detect and read any of the / / \ \
|
||||||
* module formats supported by DUMB. | < / \_
|
* module formats supported by DUMB. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* from an open file and do an initial | \/ /\ /
|
* from an open file and do an initial | \/ /\ /
|
||||||
* run-through. \_ / > /
|
* run-through. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* by Chris Moeller. | ' /
|
* by Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readasy.c - Code to read an ASYLUM Music Format / / \ \
|
* readasy.c - Code to read an ASYLUM Music Format / / \ \
|
||||||
* module from an open file. | < / \_
|
* module from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -314,7 +314,10 @@ static DUMB_IT_SIGDATA *it_asy_load_sigdata(DUMBFILE *f) {
|
||||||
sigdata->channel_pan[i + 3] = 32 - sep;
|
sigdata->channel_pan[i + 3] = 32 - sep;
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readam.c - Code to read a RIFF DSMF module / / \ \
|
* readam.c - Code to read a RIFF DSMF module / / \ \
|
||||||
* from a parsed RIFF structure. | < / \_
|
* from a parsed RIFF structure. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -293,6 +293,8 @@ static DUMB_IT_SIGDATA *it_riff_dsmf_load_sigdata(DUMBFILE *f,
|
||||||
sigdata->flags = IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
|
sigdata->flags = IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
|
||||||
dumbfile_skip(f, 36 - 28);
|
dumbfile_skip(f, 36 - 28);
|
||||||
sigdata->n_orders = dumbfile_igetw(f);
|
sigdata->n_orders = dumbfile_igetw(f);
|
||||||
|
if (sigdata->n_orders > 1024) // Whoa, nelly.
|
||||||
|
goto error_usd;
|
||||||
// sigdata->n_samples = ptr[ 38 ] | ( ptr[ 39 ] << 8 ); // whatever
|
// sigdata->n_samples = ptr[ 38 ] | ( ptr[ 39 ] << 8 ); // whatever
|
||||||
// sigdata->n_patterns = ptr[ 40 ] | ( ptr[ 41 ] << 8 );
|
// sigdata->n_patterns = ptr[ 40 ] | ( ptr[ 41 ] << 8 );
|
||||||
dumbfile_skip(f, 42 - 38);
|
dumbfile_skip(f, 42 - 38);
|
||||||
|
@ -355,7 +357,10 @@ static DUMB_IT_SIGDATA *it_riff_dsmf_load_sigdata(DUMBFILE *f,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
|
|
||||||
|
|
|
@ -621,7 +621,10 @@ static DUMB_IT_SIGDATA *it_mod_load_sigdata(DUMBFILE *f, int restrict_) {
|
||||||
sigdata->channel_pan[i + 3] = 32 - sep;
|
sigdata->channel_pan[i + 3] = 32 - sep;
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readmtm.c - Code to read a MultiTracker Module / / \ \
|
* readmtm.c - Code to read a MultiTracker Module / / \ \
|
||||||
* from an open file. | < / \_
|
* from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -389,12 +389,15 @@ static DUMB_IT_SIGDATA *it_mtm_load_sigdata(DUMBFILE *f, int *version) {
|
||||||
goto error_fs;
|
goto error_fs;
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
|
||||||
|
|
||||||
free(sequence);
|
free(sequence);
|
||||||
free(track);
|
free(track);
|
||||||
free(skip_bytes);
|
free(skip_bytes);
|
||||||
|
|
||||||
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
|
|
||||||
error_fc:
|
error_fc:
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readokt.c - Code to read an Oktalyzer module / / \ \
|
* readokt.c - Code to read an Oktalyzer module / / \ \
|
||||||
* from an open file. | < / \_
|
* from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -577,7 +577,10 @@ static DUMB_IT_SIGDATA *it_okt_load_sigdata(DUMBFILE *f) {
|
||||||
memset(sigdata->channel_pan + n_channels, 32,
|
memset(sigdata->channel_pan + n_channels, 32,
|
||||||
DUMB_IT_N_CHANNELS - n_channels);
|
DUMB_IT_N_CHANNELS - n_channels);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* an initial run-through. | \/ /\ /
|
* an initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* By Chris Moeller. | ' /
|
* By Christopher Snowhill. | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readpsm.c - Code to read an old Protracker / / \ \
|
* readpsm.c - Code to read an old Protracker / / \ \
|
||||||
* Studio module from an open file. | < / \_
|
* Studio module from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -111,7 +111,7 @@ static int it_old_psm_read_samples(IT_SAMPLE **sample, DUMBFILE *f, int *num) {
|
||||||
} else
|
} else
|
||||||
smp.finetune = 0;
|
smp.finetune = 0;
|
||||||
|
|
||||||
smp.flags |= IT_SAMPLE_EXISTS;
|
smp.flags = IT_SAMPLE_EXISTS;
|
||||||
if (flags & 0x41)
|
if (flags & 0x41)
|
||||||
continue;
|
continue;
|
||||||
if (flags & 0x20)
|
if (flags & 0x20)
|
||||||
|
@ -705,7 +705,8 @@ static DUMB_IT_SIGDATA *it_old_psm_load_sigdata(DUMBFILE *f) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0)
|
||||||
|
goto error_fc;
|
||||||
|
|
||||||
free(component);
|
free(component);
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readpsm.c - Code to read a Protracker Studio / / \ \
|
* readpsm.c - Code to read a Protracker Studio / / \ \
|
||||||
* module from an open file. | < / \_
|
* module from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -1062,7 +1062,10 @@ static DUMB_IT_SIGDATA *it_psm_load_sigdata(DUMBFILE *f, int *ver,
|
||||||
free(songchunk);
|
free(songchunk);
|
||||||
free_chunks(chunk, n_chunks);
|
free_chunks(chunk, n_chunks);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
dumb_it_optimize_orders(sigdata);
|
dumb_it_optimize_orders(sigdata);
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readptm.c - Code to read a Poly Tracker v2.03 / / \ \
|
* readptm.c - Code to read a Poly Tracker v2.03 / / \ \
|
||||||
* module from an open file. | < / \_
|
* module from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. Based on reads3m.c \_ / > /
|
* By Christopher Snowhill. Based on reads3m.c \_ / > /
|
||||||
* by entheh. | \ / /
|
* by entheh. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -352,6 +352,7 @@ static DUMB_IT_SIGDATA *it_ptm_load_sigdata(DUMBFILE *f) {
|
||||||
sigdata->n_patterns = dumbfile_igetw(f);
|
sigdata->n_patterns = dumbfile_igetw(f);
|
||||||
|
|
||||||
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
||||||
|
sigdata->n_orders > 1024 || // Whoa, nelly.
|
||||||
sigdata->n_samples > 255 || sigdata->n_patterns > 128) {
|
sigdata->n_samples > 255 || sigdata->n_patterns > 128) {
|
||||||
_dumb_it_unload_sigdata(sigdata);
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -534,7 +535,10 @@ static DUMB_IT_SIGDATA *it_ptm_load_sigdata(DUMBFILE *f) {
|
||||||
free(buffer);
|
free(buffer);
|
||||||
free(component);
|
free(component);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* from memory. | < / \_
|
* from memory. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -480,6 +480,7 @@ static DUMB_IT_SIGDATA *it_s3m_load_sigdata(DUMBFILE *f, int *cwtv) {
|
||||||
sigdata->n_patterns = dumbfile_igetw(f);
|
sigdata->n_patterns = dumbfile_igetw(f);
|
||||||
|
|
||||||
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
if (dumbfile_error(f) || sigdata->n_orders <= 0 ||
|
||||||
|
sigdata->n_orders > 1024 || // Whoa, nelly.
|
||||||
sigdata->n_samples > 256 || sigdata->n_patterns > 256) {
|
sigdata->n_samples > 256 || sigdata->n_patterns > 256) {
|
||||||
_dumb_it_unload_sigdata(sigdata);
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -733,7 +734,10 @@ static DUMB_IT_SIGDATA *it_s3m_load_sigdata(DUMBFILE *f, int *cwtv) {
|
||||||
free(buffer);
|
free(buffer);
|
||||||
free(component);
|
free(component);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* readstm.c - Code to read a ScreamTracker 2 / / \ \
|
* readstm.c - Code to read a ScreamTracker 2 / / \ \
|
||||||
* module from an open file. | < / \_
|
* module from an open file. | < / \_
|
||||||
* | \/ /\ /
|
* | \/ /\ /
|
||||||
* By Chris Moeller. \_ / > /
|
* By Christopher Snowhill. \_ / > /
|
||||||
* | \ / /
|
* | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
|
@ -355,7 +355,10 @@ static DUMB_IT_SIGDATA *it_stm_load_sigdata(DUMBFILE *f, int *version) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* module from an open file and do an | < / \_
|
* module from an open file and do an | < / \_
|
||||||
* initial run-through. | \/ /\ /
|
* initial run-through. | \/ /\ /
|
||||||
* \_ / > /
|
* \_ / > /
|
||||||
* By Chris Moeller. | \ / /
|
* By Christopher Snowhill. | \ / /
|
||||||
* | ' /
|
* | ' /
|
||||||
* \__/
|
* \__/
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1252,7 +1252,10 @@ static DUMB_IT_SIGDATA *it_xm_load_sigdata(DUMBFILE *f, int *version) {
|
||||||
memset(sigdata->channel_volume, 64, DUMB_IT_N_CHANNELS);
|
memset(sigdata->channel_volume, 64, DUMB_IT_N_CHANNELS);
|
||||||
memset(sigdata->channel_pan, 32, DUMB_IT_N_CHANNELS);
|
memset(sigdata->channel_pan, 32, DUMB_IT_N_CHANNELS);
|
||||||
|
|
||||||
_dumb_it_fix_invalid_orders(sigdata);
|
if (_dumb_it_fix_invalid_orders(sigdata) < 0) {
|
||||||
|
_dumb_it_unload_sigdata(sigdata);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return sigdata;
|
return sigdata;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue