diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs index d09c060f3d..723edd5c5e 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs @@ -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); + + } + } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs index 9b6a6d87d6..bc6228ed96 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs @@ -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(); } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Palettes.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Palettes.cs index 809671e402..b14d114bf3 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Palettes.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Palettes.cs @@ -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},