mirror of
https://github.com/libretro/RetroArch
synced 2025-04-24 15:02:35 +00:00
(task_database_cue.c) Simplifications
This commit is contained in:
parent
46d6240f21
commit
c92d7d3071
@ -181,9 +181,10 @@ static int64_t task_database_cue_get_token(intfstream_t *fd, char *token, uint64
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DISC_DATA_SIZE_PS1 60000
|
||||||
|
|
||||||
int detect_ps1_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
int detect_ps1_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
||||||
{
|
{
|
||||||
#define DISC_DATA_SIZE_PS1 60000
|
|
||||||
int pos;
|
int pos;
|
||||||
char raw_game_id[50];
|
char raw_game_id[50];
|
||||||
char disc_data[DISC_DATA_SIZE_PS1];
|
char disc_data[DISC_DATA_SIZE_PS1];
|
||||||
@ -457,10 +458,10 @@ int detect_psp_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
|
|
||||||
int detect_gc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
int detect_gc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
||||||
{
|
{
|
||||||
size_t _len;
|
|
||||||
char region_id;
|
char region_id;
|
||||||
char pre_game_id[20];
|
char pre_game_id[20];
|
||||||
char raw_game_id[20];
|
char raw_game_id[20];
|
||||||
|
size_t _len = 0;
|
||||||
|
|
||||||
/* Load raw serial or quit */
|
/* Load raw serial or quit */
|
||||||
if (intfstream_seek(fd, 0, SEEK_SET) < 0)
|
if (intfstream_seek(fd, 0, SEEK_SET) < 0)
|
||||||
@ -469,7 +470,7 @@ int detect_gc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
if (intfstream_read(fd, raw_game_id, 4) <= 0)
|
if (intfstream_read(fd, raw_game_id, 4) <= 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ"))
|
if ( string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ"))
|
||||||
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA")))
|
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA")))
|
||||||
{
|
{
|
||||||
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
|
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
|
||||||
@ -497,17 +498,17 @@ int detect_gc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
will not match redump.**/
|
will not match redump.**/
|
||||||
|
|
||||||
/** insert prefix **/
|
/** insert prefix **/
|
||||||
pre_game_id[0 ] = 'D';
|
pre_game_id[ _len] = 'D';
|
||||||
pre_game_id[1 ] = 'L';
|
pre_game_id[++_len] = 'L';
|
||||||
pre_game_id[2 ] = '-';
|
pre_game_id[++_len] = '-';
|
||||||
pre_game_id[3 ] = 'D';
|
pre_game_id[++_len] = 'D';
|
||||||
pre_game_id[4 ] = 'O';
|
pre_game_id[++_len] = 'O';
|
||||||
pre_game_id[5 ] = 'L';
|
pre_game_id[++_len] = 'L';
|
||||||
pre_game_id[6 ] = '-';
|
pre_game_id[++_len] = '-';
|
||||||
pre_game_id[7 ] = '\0';
|
pre_game_id[++_len] = '\0';
|
||||||
|
|
||||||
/** add raw serial **/
|
/** add raw serial **/
|
||||||
strlcat(pre_game_id, raw_game_id, sizeof(pre_game_id));
|
strlcpy(pre_game_id + _len, raw_game_id, sizeof(pre_game_id) - _len);
|
||||||
|
|
||||||
/** check region **/
|
/** check region **/
|
||||||
region_id = pre_game_id[10];
|
region_id = pre_game_id[10];
|
||||||
@ -683,11 +684,12 @@ int detect_scd_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[++_len] = '5';
|
s[++_len] = '5';
|
||||||
s[++_len] = '0';
|
s[++_len] = '0';
|
||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
strncpy(s, &pre_game_id[3], 4);
|
strncpy(s, &pre_game_id[3], 4);
|
||||||
s[4] = '\0';
|
s[4] = '\0';
|
||||||
|
}
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -757,13 +759,10 @@ int detect_sat_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
{
|
{
|
||||||
strncpy(s, &raw_game_id[3], length - 3);
|
strncpy(s, &raw_game_id[3], length - 3);
|
||||||
s[length - 3] = '\0';
|
s[length - 3] = '\0';
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
strlcpy(s, raw_game_id, len);
|
strlcpy(s, raw_game_id, len);
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
case 'E':
|
case 'E':
|
||||||
strncpy(lgame_id, &raw_game_id[0], 2);
|
strncpy(lgame_id, &raw_game_id[0], 2);
|
||||||
@ -779,8 +778,8 @@ int detect_sat_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
strncpy(rgame_id, &raw_game_id[2], length - 1);
|
strncpy(rgame_id, &raw_game_id[2], length - 1);
|
||||||
rgame_id[length - 1] = '\0';
|
rgame_id[length - 1] = '\0';
|
||||||
}
|
}
|
||||||
strlcat(s, lgame_id, len);
|
_len = strlcat(s, lgame_id, len);
|
||||||
_len = strlcat(s, rgame_id, len);
|
_len += strlcpy(s + _len, rgame_id, len - _len);
|
||||||
s[ _len] = '-';
|
s[ _len] = '-';
|
||||||
s[++_len] = '5';
|
s[++_len] = '5';
|
||||||
s[++_len] = '0';
|
s[++_len] = '0';
|
||||||
@ -822,7 +821,8 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
raw_game_id[10] = '\0';
|
raw_game_id[10] = '\0';
|
||||||
|
|
||||||
/** Scrub files with bad data and log **/
|
/** Scrub files with bad data and log **/
|
||||||
if (raw_game_id[0] == '\0' || raw_game_id[0] == ' ')
|
if ( raw_game_id[0] == '\0'
|
||||||
|
|| raw_game_id[0] == ' ')
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
RARCH_LOG("[Scanner]: Scrubbing: %s\n", filename);
|
RARCH_LOG("[Scanner]: Scrubbing: %s\n", filename);
|
||||||
@ -854,16 +854,14 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[ _len] = '-';
|
s[ _len] = '-';
|
||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
strlcpy(s + _len, rgame_id, len - _len);
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
if (length <= 7)
|
else if (length <= 7)
|
||||||
{
|
{
|
||||||
strncpy(s, raw_game_id, 7);
|
strncpy(s, raw_game_id, 7);
|
||||||
s[7] = '\0';
|
s[7] = '\0';
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
strncpy(lgame_id, raw_game_id, 7);
|
strncpy(lgame_id, raw_game_id, 7);
|
||||||
lgame_id[7] = '\0';
|
lgame_id[7] = '\0';
|
||||||
strncpy(rgame_id, &raw_game_id[length - 2], length - 1);
|
strncpy(rgame_id, &raw_game_id[length - 2], length - 1);
|
||||||
@ -872,6 +870,7 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[ _len] = '-';
|
s[ _len] = '-';
|
||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
strlcpy(s + _len, rgame_id, len - _len);
|
||||||
|
}
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -896,13 +895,6 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
strncpy(lgame_id, pre_game_id, size_t_var);
|
strncpy(lgame_id, pre_game_id, size_t_var);
|
||||||
lgame_id[index] = '\0';
|
lgame_id[index] = '\0';
|
||||||
length_recalc = strlen(pre_game_id);
|
length_recalc = strlen(pre_game_id);
|
||||||
strncpy(rgame_id, &pre_game_id[length_recalc - 2], length_recalc - 1);
|
|
||||||
rgame_id[length_recalc - 1] = '\0';
|
|
||||||
_len = strlcat(s, lgame_id, len);
|
|
||||||
s[ _len] = '-';
|
|
||||||
s[++_len] = '\0';
|
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -916,6 +908,7 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
}
|
}
|
||||||
strncpy(lgame_id, pre_game_id, 7);
|
strncpy(lgame_id, pre_game_id, 7);
|
||||||
lgame_id[7] = '\0';
|
lgame_id[7] = '\0';
|
||||||
|
}
|
||||||
strncpy(rgame_id, &pre_game_id[length_recalc - 2], length_recalc - 1);
|
strncpy(rgame_id, &pre_game_id[length_recalc - 2], length_recalc - 1);
|
||||||
rgame_id[length_recalc - 1] = '\0';
|
rgame_id[length_recalc - 1] = '\0';
|
||||||
_len = strlcat(s, lgame_id, len);
|
_len = strlcat(s, lgame_id, len);
|
||||||
@ -923,7 +916,6 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
strlcpy(s + _len, rgame_id, len - _len);
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (raw_game_id[0] == 'H'
|
else if (raw_game_id[0] == 'H'
|
||||||
@ -944,9 +936,8 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[ _len] = '-';
|
s[ _len] = '-';
|
||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
strlcpy(s + _len, rgame_id, len - _len);
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
strlcpy(s, raw_game_id, len);
|
strlcpy(s, raw_game_id, len);
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
return true;
|
return true;
|
||||||
@ -963,14 +954,15 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
{
|
{
|
||||||
strncpy(s, raw_game_id + 3, 5);
|
strncpy(s, raw_game_id + 3, 5);
|
||||||
s[5] = '\0';
|
s[5] = '\0';
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
strncpy(s, raw_game_id, 8);
|
strncpy(s, raw_game_id, 8);
|
||||||
s[8] = '\0';
|
s[8] = '\0';
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
strncpy(lgame_id, raw_game_id, 8);
|
strncpy(lgame_id, raw_game_id, 8);
|
||||||
lgame_id[8] = '\0';
|
lgame_id[8] = '\0';
|
||||||
strncpy(rgame_id, &raw_game_id[length - 2], length - 1);
|
strncpy(rgame_id, &raw_game_id[length - 2], length - 1);
|
||||||
@ -979,6 +971,7 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
s[ _len] = '-';
|
s[ _len] = '-';
|
||||||
s[++_len] = '\0';
|
s[++_len] = '\0';
|
||||||
strlcpy(s + _len, rgame_id, len - _len);
|
strlcpy(s + _len, rgame_id, len - _len);
|
||||||
|
}
|
||||||
cue_append_multi_disc_suffix(s, filename);
|
cue_append_multi_disc_suffix(s, filename);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1010,7 +1003,7 @@ int detect_wii_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ"))
|
if ( string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ"))
|
||||||
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA")))
|
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA")))
|
||||||
{
|
{
|
||||||
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
|
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
|
||||||
@ -1021,7 +1014,8 @@ int detect_wii_game(intfstream_t *fd, char *s, size_t len, const char *filename)
|
|||||||
raw_game_id[6] = '\0';
|
raw_game_id[6] = '\0';
|
||||||
|
|
||||||
/** Scrub files with bad data and log **/
|
/** Scrub files with bad data and log **/
|
||||||
if (raw_game_id[0] == '\0' || raw_game_id[0] == ' ')
|
if ( raw_game_id[0] == '\0'
|
||||||
|
|| raw_game_id[0] == ' ')
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
RARCH_LOG("[Scanner]: Scrubbing: %s\n", filename);
|
RARCH_LOG("[Scanner]: Scrubbing: %s\n", filename);
|
||||||
@ -1062,9 +1056,9 @@ static int detect_serial_ascii_game(intfstream_t *fd, char *s, size_t len)
|
|||||||
for (i = 0; i < 15; i++)
|
for (i = 0; i < 15; i++)
|
||||||
{
|
{
|
||||||
/* Is the given character ASCII? A-Z, 0-9, - */
|
/* Is the given character ASCII? A-Z, 0-9, - */
|
||||||
if ( (s[i] == 45) ||
|
if ( (s[i] == 45)
|
||||||
(s[i] >= 48 && s[i] <= 57) ||
|
|| (s[i] >= 48 && s[i] <= 57)
|
||||||
(s[i] >= 65 && s[i] <= 90))
|
|| (s[i] >= 65 && s[i] <= 90))
|
||||||
number_of_ascii++;
|
number_of_ascii++;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
@ -1247,8 +1241,9 @@ int cue_find_track(const char *cue_path, bool first,
|
|||||||
last_index = (size_t) (((m * 60 + s) * 75) + f) * 2352;
|
last_index = (size_t) (((m * 60 + s) * 75) + f) * 2352;
|
||||||
|
|
||||||
/* If we've changed tracks since the candidate, update it */
|
/* If we've changed tracks since the candidate, update it */
|
||||||
if (cand_track != -1 && track != cand_track &&
|
if ( (cand_track != -1)
|
||||||
update_cand(&cand_index, &last_index, &largest,
|
&& (track != cand_track)
|
||||||
|
&& update_cand(&cand_index, &last_index, &largest,
|
||||||
last_file, offset,
|
last_file, offset,
|
||||||
size, track_path, max_len))
|
size, track_path, max_len))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user