VS Updates

-Clean up palette selection
-Add all palettes from NESDEV wiki
-check palette selection against hash
This commit is contained in:
alyosha-tas 2016-10-27 17:35:10 -04:00 committed by GitHub
parent 3a9d9c2614
commit 33c522e363
3 changed files with 320 additions and 6 deletions

View File

@ -911,5 +911,51 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
MemoryCallbacks.CallWrites(addr);
}
//the palette for each VS game needs to be chosen explicitly since there are 6 different ones.
//let's do it here where it's easy to keep track of
public void VS_pick_palette()
{
if (cart.DB_GameInfo.Hash == "C145803B5FEE71172A890606A44C6D5DF6D2FA8F" // VS Star Luster
|| cart.DB_GameInfo.Hash == "E0572DA111D05BF622EC137DF8A658F7B0687DDF" // VS Battle City
)
SetPalette(Palettes.palette_2c03_2c05);
if (cart.DB_GameInfo.Hash == "1A4EC64E576BAD64DAF320AEED0BE1B8B50D21DF" // VS Pinball
)
SetPalette(Palettes.palette_2c04_001);
if (cart.DB_GameInfo.Hash == "CAE9CB4C0452C56BED58AEACCEACE8A3107F843A" // VS Mighty Bomb Jack (J)
|| cart.DB_GameInfo.Hash == "4E38B4C231C44BB1408AC6C6F941A136DD33D0EB" // VS Platoon
|| cart.DB_GameInfo.Hash == "F8A0F2C5A4B7212CB35F53EA7193B3DD85D6E1CD" // VS Mach Rider
|| cart.DB_GameInfo.Hash == "F8ED6FAFA057DBEEB0398EECCC9DE91747D479AD" // VS Mach Rider [b1]
)
SetPalette(Palettes.palette_2c04_002);
if (cart.DB_GameInfo.Hash == "21674A6571F0D4C812B9C30092C0C5ABED0C92E1" // VS Gumshoe
|| cart.DB_GameInfo.Hash == "1CF6AA8625AD1558E1F1AAF2E1710D5A09A2CED0" // VS Excite Bike (US)
|| cart.DB_GameInfo.Hash == "BBB0AF27B313D7C838A38FB772A6FE8AFBAFBB95" // VS Soccer (US)
)
SetPalette(Palettes.palette_2c04_003);
if (cart.DB_GameInfo.Hash == "B21AA940728ED80C72EE23C251C96E42CC84B2D6" // VS Super Mario Bros
|| cart.DB_GameInfo.Hash == "9F1943AADE4233285589CEA5BDC96B5380D49337" // VS Ice Climber (USA)
|| cart.DB_GameInfo.Hash == "8885F4F00C0B73C156179BCEABA5381487DBEAAD" // VS Spy Vs. Spy (J)[!]
|| cart.DB_GameInfo.Hash == "56FB1AAABA3B8C05452B2D5B8F232FAFB64AC70D" // VS Excite Bike (US) [a1]
|| cart.DB_GameInfo.Hash == "7FD66E0A4CC0E404F404D8164FA221EE2ACB7A38" // VS Clu Clu Land
)
SetPalette(Palettes.palette_2c04_004);
}
}
}

View File

@ -60,11 +60,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// we need to put this here because the line directly above will overwrite palette intialization anywhere else
if (_isVS)
{
Console.WriteLine(palette_compiled[0]);
//Settings.Palette = (byte[,])Palettes.palette_2c04.Clone();
SetPalette(Palettes.palette_2c04_B);
Console.WriteLine(palette_compiled[0]);
Console.WriteLine(Palettes.QuickNESPalette[0, 0]);
VS_pick_palette();
}

View File

@ -188,7 +188,279 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{0, 0, 0},
};
public static byte[,] palette_2c04_B =
public static byte[,] palette_2c03_2c05 =
{
{3<<5, 3<<5, 3<<5},
{0<<5, 1<<5, 4<<5},
{0<<5, 0<<5, 6<<5},
{3<<5, 2<<5, 6<<5},
{4<<5, 0<<5, 3<<5},
{5<<5, 0<<5, 3<<5},
{5<<5, 1<<5, 0<<5},
{4<<5, 2<<5, 0<<5},
{3<<5, 2<<5, 0<<5},
{1<<5, 2<<5, 0<<5},
{0<<5, 3<<5, 1<<5},
{0<<5, 4<<5, 0<<5},
{0<<5, 2<<5, 2<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{5<<5, 5<<5, 5<<5},
{0<<5, 3<<5, 6<<5},
{0<<5, 2<<5, 7<<5},
{4<<5, 0<<5, 7<<5},
{5<<5, 0<<5, 7<<5},
{7<<5, 0<<5, 4<<5},
{7<<5, 0<<5, 0<<5},
{6<<5, 3<<5, 0<<5},
{4<<5, 3<<5, 0<<5},
{1<<5, 4<<5, 0<<5},
{0<<5, 4<<5, 0<<5},
{0<<5, 5<<5, 3<<5},
{0<<5, 4<<5, 4<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{3<<5, 5<<5, 7<<5},
{4<<5, 4<<5, 7<<5},
{6<<5, 3<<5, 7<<5},
{7<<5, 0<<5, 7<<5},
{7<<5, 3<<5, 7<<5},
{7<<5, 4<<5, 0<<5},
{7<<5, 5<<5, 0<<5},
{6<<5, 6<<5, 0<<5},
{3<<5, 6<<5, 0<<5},
{0<<5, 7<<5, 0<<5},
{2<<5, 7<<5, 6<<5},
{0<<5, 7<<5, 7<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{5<<5, 6<<5, 7<<5},
{6<<5, 5<<5, 7<<5},
{7<<5, 5<<5, 7<<5},
{7<<5, 4<<5, 7<<5},
{7<<5, 5<<5, 5<<5},
{7<<5, 6<<5, 4<<5},
{7<<5, 7<<5, 2<<5},
{7<<5, 7<<5, 3<<5},
{5<<5, 7<<5, 2<<5},
{4<<5, 7<<5, 3<<5},
{2<<5, 7<<5, 6<<5},
{4<<5, 6<<5, 7<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
};
public static byte[,] palette_2c04_001 =
{
{7<<5, 5<<5, 5<<5},
{6<<5, 3<<5, 7<<5},
{7<<5, 0<<5, 0<<5},
{4<<5, 4<<5, 7<<5},
{0<<5, 4<<5, 4<<5},
{1<<5, 2<<5, 0<<5},
{2<<5, 2<<5, 2<<5},
{7<<5, 0<<5, 4<<5},
{7<<5, 7<<5, 7<<5},
{3<<5, 3<<5, 3<<5},
{7<<5, 5<<5, 0<<5},
{5<<5, 0<<5, 3<<5},
{4<<5, 0<<5, 3<<5},
{6<<5, 6<<5, 0<<5},
{3<<5, 2<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{3<<5, 3<<5, 7<<5},
{6<<5, 5<<5, 3<<5},
{3<<5, 1<<5, 0<<5},
{3<<5, 6<<5, 0<<5},
{4<<5, 6<<5, 7<<5},
{6<<5, 5<<5, 7<<5},
{7<<5, 6<<5, 4<<5},
{0<<5, 2<<5, 7<<5},
{7<<5, 6<<5, 0<<5},
{2<<5, 7<<5, 6<<5},
{0<<5, 0<<5, 0<<5},
{2<<5, 0<<5, 0<<5},
{6<<5, 6<<5, 6<<5},
{4<<5, 4<<5, 4<<5},
{7<<5, 0<<5, 7<<5},
{0<<5, 1<<5, 4<<5},
{0<<5, 0<<5, 3<<5},
{5<<5, 6<<5, 7<<5},
{7<<5, 5<<5, 7<<5},
{0<<5, 7<<5, 0<<5},
{0<<5, 7<<5, 7<<5},
{0<<5, 2<<5, 2<<5},
{0<<5, 5<<5, 3<<5},
{5<<5, 0<<5, 7<<5},
{0<<5, 0<<5, 0<<5},
{4<<5, 2<<5, 0<<5},
{7<<5, 4<<5, 7<<5},
{5<<5, 1<<5, 0<<5},
{4<<5, 0<<5, 7<<5},
{0<<5, 0<<5, 6<<5},
{7<<5, 4<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{1<<5, 4<<5, 0<<5},
{5<<5, 5<<5, 5<<5},
{0<<5, 3<<5, 1<<5},
{5<<5, 7<<5, 3<<5},
{3<<5, 2<<5, 6<<5},
{7<<5, 7<<5, 0<<5},
{6<<5, 3<<5, 0<<5},
{0<<5, 2<<5, 0<<5},
{0<<5, 3<<5, 6<<5},
{0<<5, 4<<5, 0<<5},
{1<<5, 1<<5, 1<<5},
{7<<5, 7<<5, 3<<5},
{7<<5, 3<<5, 7<<5},
{4<<5, 3<<5, 0<<5},
{4<<5, 7<<5, 3<<5},
};
public static byte[,] palette_2c04_002 =
{
{0<<5, 0<<5, 0<<5},
{7<<5, 5<<5, 0<<5},
{4<<5, 3<<5, 0<<5},
{5<<5, 7<<5, 2<<5},
{4<<5, 7<<5, 3<<5},
{7<<5, 3<<5, 7<<5},
{0<<5, 4<<5, 4<<5},
{5<<5, 6<<5, 7<<5},
{7<<5, 0<<5, 0<<5},
{4<<5, 0<<5, 7<<5},
{7<<5, 7<<5, 3<<5},
{7<<5, 4<<5, 7<<5},
{7<<5, 7<<5, 7<<5},
{6<<5, 3<<5, 7<<5},
{4<<5, 6<<5, 7<<5},
{0<<5, 4<<5, 0<<5},
{0<<5, 2<<5, 0<<5},
{3<<5, 5<<5, 7<<5},
{5<<5, 1<<5, 0<<5},
{6<<5, 6<<5, 6<<5},
{0<<5, 5<<5, 3<<5},
{3<<5, 6<<5, 0<<5},
{2<<5, 0<<5, 0<<5},
{4<<5, 4<<5, 7<<5},
{2<<5, 2<<5, 2<<5},
{7<<5, 0<<5, 7<<5},
{0<<5, 0<<5, 3<<5},
{2<<5, 7<<5, 6<<5},
{6<<5, 5<<5, 7<<5},
{3<<5, 2<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{3<<5, 2<<5, 6<<5},
{4<<5, 0<<5, 3<<5},
{7<<5, 6<<5, 4<<5},
{7<<5, 4<<5, 0<<5},
{7<<5, 5<<5, 7<<5},
{0<<5, 3<<5, 6<<5},
{3<<5, 1<<5, 0<<5},
{5<<5, 5<<5, 5<<5},
{0<<5, 0<<5, 6<<5},
{5<<5, 0<<5, 7<<5},
{7<<5, 6<<5, 0<<5},
{3<<5, 3<<5, 3<<5},
{1<<5, 2<<5, 0<<5},
{0<<5, 2<<5, 7<<5},
{0<<5, 0<<5, 0<<5},
{6<<5, 6<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{6<<5, 5<<5, 3<<5},
{1<<5, 1<<5, 1<<5},
{0<<5, 7<<5, 0<<5},
{6<<5, 3<<5, 0<<5},
{0<<5, 2<<5, 2<<5},
{0<<5, 1<<5, 4<<5},
{7<<5, 0<<5, 4<<5},
{1<<5, 4<<5, 0<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 7<<5, 7<<5},
{4<<5, 2<<5, 0<<5},
{7<<5, 7<<5, 0<<5},
{7<<5, 5<<5, 5<<5},
{5<<5, 0<<5, 3<<5},
{0<<5, 3<<5, 1<<5},
{4<<5, 4<<5, 4<<5},
};
public static byte[,] palette_2c04_003 =
{
{5<<5, 0<<5, 7<<5},
{7<<5, 3<<5, 7<<5},
{4<<5, 7<<5, 3<<5},
{5<<5, 5<<5, 5<<5},
{0<<5, 4<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{5<<5, 6<<5, 7<<5},
{1<<5, 2<<5, 0<<5},
{0<<5, 1<<5, 4<<5},
{0<<5, 0<<5, 0<<5},
{7<<5, 6<<5, 4<<5},
{3<<5, 2<<5, 0<<5},
{7<<5, 0<<5, 4<<5},
{6<<5, 6<<5, 6<<5},
{6<<5, 5<<5, 3<<5},
{4<<5, 6<<5, 7<<5},
{4<<5, 4<<5, 7<<5},
{0<<5, 4<<5, 4<<5},
{5<<5, 0<<5, 3<<5},
{0<<5, 2<<5, 7<<5},
{1<<5, 4<<5, 0<<5},
{4<<5, 3<<5, 0<<5},
{6<<5, 3<<5, 0<<5},
{0<<5, 5<<5, 3<<5},
{3<<5, 3<<5, 3<<5},
{3<<5, 2<<5, 6<<5},
{0<<5, 0<<5, 0<<5},
{0<<5, 0<<5, 6<<5},
{7<<5, 0<<5, 0<<5},
{5<<5, 1<<5, 0<<5},
{7<<5, 4<<5, 7<<5},
{7<<5, 5<<5, 5<<5},
{6<<5, 3<<5, 7<<5},
{0<<5, 2<<5, 0<<5},
{0<<5, 0<<5, 3<<5},
{7<<5, 7<<5, 0<<5},
{1<<5, 1<<5, 1<<5},
{7<<5, 5<<5, 0<<5},
{7<<5, 4<<5, 0<<5},
{7<<5, 7<<5, 7<<5},
{3<<5, 6<<5, 0<<5},
{4<<5, 0<<5, 3<<5},
{3<<5, 5<<5, 7<<5},
{7<<5, 0<<5, 7<<5},
{0<<5, 3<<5, 6<<5},
{4<<5, 4<<5, 4<<5},
{0<<5, 0<<5, 0<<5},
{3<<5, 1<<5, 0<<5},
{0<<5, 7<<5, 7<<5},
{2<<5, 0<<5, 0<<5},
{5<<5, 7<<5, 2<<5},
{7<<5, 5<<5, 7<<5},
{4<<5, 2<<5, 0<<5},
{0<<5, 7<<5, 0<<5},
{6<<5, 6<<5, 0<<5},
{2<<5, 2<<5, 2<<5},
{0<<5, 3<<5, 1<<5},
{0<<5, 0<<5, 0<<5},
{6<<5, 5<<5, 7<<5},
{7<<5, 7<<5, 3<<5},
{4<<5, 0<<5, 7<<5},
{2<<5, 7<<5, 6<<5},
{7<<5, 6<<5, 0<<5},
{0<<5, 2<<5, 2<<5},
};
public static byte[,] palette_2c04_004 =
{
{4<<5, 3<<5, 0<<5},
{3<<5, 2<<5, 6<<5},