2023-04-04 18:31:19 -04:00
|
|
|
|
using SabreTools.Skippers.Tests;
|
2022-11-03 14:55:46 -07:00
|
|
|
|
|
2023-04-04 18:31:19 -04:00
|
|
|
|
namespace SabreTools.Skippers.Detectors
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2023-04-04 18:31:19 -04:00
|
|
|
|
/// Detector for Nintendo 64 headers
|
2022-11-03 14:55:46 -07:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <remarks>Originally from n64.xml</remarks>
|
2023-04-04 18:31:19 -04:00
|
|
|
|
internal class Nintendo64 : Detector
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
public Nintendo64()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Create tests
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule1Test1 = new DataTest
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Offset = "0",
|
|
|
|
|
|
Value = "80371240",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Result = true,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule2Test1 = new DataTest
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Offset = "0",
|
|
|
|
|
|
Value = "37804012",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Result = true,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule3Test1 = new DataTest
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Offset = "0",
|
|
|
|
|
|
Value = "40123780",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Result = true,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Create rules
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule1 = new Rule
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
StartOffset = "0",
|
|
|
|
|
|
EndOffset = "EOF",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Operation = HeaderSkipOperation.None,
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Tests = new Test[]
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
rule1Test1,
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule2 = new Rule
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
StartOffset = "0",
|
|
|
|
|
|
EndOffset = "EOF",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Operation = HeaderSkipOperation.Byteswap,
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Tests = new Test[]
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
rule2Test1,
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-04-04 18:31:19 -04:00
|
|
|
|
var rule3 = new Rule
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
2023-04-04 18:31:19 -04:00
|
|
|
|
StartOffset = "0",
|
|
|
|
|
|
EndOffset = "EOF",
|
2022-11-03 14:55:46 -07:00
|
|
|
|
Operation = HeaderSkipOperation.Wordswap,
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Tests = new Test[]
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
rule3Test1,
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Create file
|
|
|
|
|
|
Name = "Nintendo 64 - ABCD";
|
|
|
|
|
|
Author = "CUE";
|
|
|
|
|
|
Version = "1.1";
|
|
|
|
|
|
SourceFile = "n64";
|
2023-04-04 18:31:19 -04:00
|
|
|
|
Rules = new Rule[]
|
2022-11-03 14:55:46 -07:00
|
|
|
|
{
|
|
|
|
|
|
rule1, // V64
|
|
|
|
|
|
rule2, // Z64
|
|
|
|
|
|
rule3, // N64
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|