enhanced QuadTari detection pattern

This commit is contained in:
thrust26 2021-02-04 15:25:55 +01:00
parent fa16b8cb91
commit 575035c739
1 changed files with 17 additions and 7 deletions

View File

@ -699,22 +699,32 @@ bool ControllerDetector::isProbablyLightGun(const ByteBuffer& image, size_t size
bool ControllerDetector::isProbablyQuadTari(const ByteBuffer& image, size_t size, bool ControllerDetector::isProbablyQuadTari(const ByteBuffer& image, size_t size,
Controller::Jack port) Controller::Jack port)
{ {
uInt8 signatureBoth[] = { 0x1B, 0x1F, 0x0B, 0x0E, 0x1E, 0x0B, 0x1C, 0x13 }; // "QUADTARI" {
const int NUM_SIGS = 2;
const int SIG_SIZE = 8;
uInt8 signatureBoth[NUM_SIGS][SIG_SIZE] = {
{ 0x1B, 0x1F, 0x0B, 0x0E, 0x1E, 0x0B, 0x1C, 0x13 },
{ 'Q', 'U', 'A', 'D', 'T', 'A', 'R', 'I' }
}; // "QUADTARI"
if(searchForBytes(image, size, signatureBoth, 8)) for(uInt32 i = 0; i < NUM_SIGS; ++i)
return true; if(searchForBytes(image, size, signatureBoth[i], SIG_SIZE))
return true;
}
if(port == Controller::Jack::Left) if(port == Controller::Jack::Left)
{ {
uInt8 signature[] = { 'Q', 'U', 'A', 'D', 'L' }; const int SIG_SIZE = 5;
uInt8 signature[SIG_SIZE] = { 'Q', 'U', 'A', 'D', 'L' };
return searchForBytes(image, size, signature, 5); return searchForBytes(image, size, signature, SIG_SIZE);
} }
else if(port == Controller::Jack::Right) else if(port == Controller::Jack::Right)
{ {
uInt8 signature[] = { 'Q', 'U', 'A', 'D', 'R' }; const int SIG_SIZE = 5;
uInt8 signature[SIG_SIZE] = { 'Q', 'U', 'A', 'D', 'R' };
return searchForBytes(image, size, signature, 5); return searchForBytes(image, size, signature, SIG_SIZE);
} }
return false; return false;
} }