NES - remove some more unnecessary partial class usage
This commit is contained in:
parent
4c47ef2f3f
commit
2e737e66be
|
@ -99,7 +99,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
if (palette != null && palette.Exists)
|
if (palette != null && palette.Exists)
|
||||||
{
|
{
|
||||||
var data = NES.Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name));
|
var data = Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name));
|
||||||
if (showmsg) GlobalWin.OSD.AddMessage("Palette file loaded: " + palette.Name);
|
if (showmsg) GlobalWin.OSD.AddMessage("Palette file loaded: " + palette.Name);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
else // no filename: interpret this as "reset to default"
|
else // no filename: interpret this as "reset to default"
|
||||||
{
|
{
|
||||||
if (showmsg) GlobalWin.OSD.AddMessage("Standard Palette set");
|
if (showmsg) GlobalWin.OSD.AddMessage("Standard Palette set");
|
||||||
return (int[,])NES.Palettes.QuickNESPalette.Clone();
|
return (int[,])Palettes.QuickNESPalette.Clone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // checkbox unchecked: we're reusing whatever palette was set
|
else // checkbox unchecked: we're reusing whatever palette was set
|
||||||
|
|
|
@ -88,7 +88,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
if (palette != null && palette.Exists)
|
if (palette != null && palette.Exists)
|
||||||
{
|
{
|
||||||
var data = Emulation.Cores.Nintendo.NES.NES.Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name));
|
var data = Emulation.Cores.Nintendo.NES.Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name));
|
||||||
Settings.SetNesHawkPalette(data);
|
Settings.SetNesHawkPalette(data);
|
||||||
SetPaletteImage();
|
SetPaletteImage();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,185 +1,180 @@
|
||||||
namespace BizHawk.Emulation.Cores.Nintendo.NES
|
namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
{
|
{
|
||||||
partial class NES
|
public static class Palettes
|
||||||
{
|
{
|
||||||
public static class Palettes
|
static float[] rtmul = { 1.239f, 0.794f, 1.019f, 0.905f, 1.023f, 0.741f, 0.75f };
|
||||||
|
static float[] gtmul = { 0.915f, 1.086f, 0.98f, 1.026f, 0.908f, 0.987f, 0.75f };
|
||||||
|
static float[] btmul = { 0.743f, 0.882f, 0.653f, 1.277f, 0.979f, 0.101f, 0.75f };
|
||||||
|
|
||||||
|
public static void ApplyDeemphasis(ref int r, ref int g, ref int b, int deemph_bits)
|
||||||
{
|
{
|
||||||
static float[] rtmul = { 1.239f, 0.794f, 1.019f, 0.905f, 1.023f, 0.741f, 0.75f };
|
//DEEMPH BITS MAY BE ORDERED WRONG. PLEASE CHECK
|
||||||
static float[] gtmul = { 0.915f, 1.086f, 0.98f, 1.026f, 0.908f, 0.987f, 0.75f };
|
if (deemph_bits == 0) return;
|
||||||
static float[] btmul = { 0.743f, 0.882f, 0.653f, 1.277f, 0.979f, 0.101f, 0.75f };
|
int d = deemph_bits - 1;
|
||||||
|
r = (int)(r * rtmul[d]);
|
||||||
|
g = (int)(g * gtmul[d]);
|
||||||
|
b = (int)(b * btmul[d]);
|
||||||
|
if (r > 0xFF) r = 0xFF;
|
||||||
|
if (g > 0xFF) g = 0xFF;
|
||||||
|
if (b > 0xFF) b = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
public static void ApplyDeemphasis(ref int r, ref int g, ref int b, int deemph_bits)
|
/// <summary>
|
||||||
|
/// Loads a simple 192 byte (64 entry RGB888) or 1536 byte (64*8 = 512 entry) palette which is FCEUX format (and probably other emulators as well)
|
||||||
|
/// The 512-entry format is new and backwards compatible. (actually, the 512-entry format extra data isnt used yet, I just edited this to support the larger quicknes file i committed)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileContents">192 or 1536 bytes, the contents of the palette file</param>
|
||||||
|
public static int[,] Load_FCEUX_Palette(byte[] fileContents)
|
||||||
|
{
|
||||||
|
//'validate' file, solely by length
|
||||||
|
if (fileContents.Length == 1536) { }
|
||||||
|
else if (fileContents.Length != 192) return null;
|
||||||
|
|
||||||
|
int[,] ret = new int[64, 3];
|
||||||
|
int i = 0;
|
||||||
|
for (int c = 0; c < 64; c++)
|
||||||
{
|
{
|
||||||
//DEEMPH BITS MAY BE ORDERED WRONG. PLEASE CHECK
|
for (int z = 0; z < 3; z++)
|
||||||
if (deemph_bits == 0) return;
|
ret[c, z] = fileContents[i++];
|
||||||
int d = deemph_bits - 1;
|
|
||||||
r = (int)(r * rtmul[d]);
|
|
||||||
g = (int)(g * gtmul[d]);
|
|
||||||
b = (int)(b * btmul[d]);
|
|
||||||
if (r > 0xFF) r = 0xFF;
|
|
||||||
if (g > 0xFF) g = 0xFF;
|
|
||||||
if (b > 0xFF) b = 0xFF;
|
|
||||||
}
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
const int SHIFT = 2;
|
||||||
/// Loads a simple 192 byte (64 entry RGB888) or 1536 byte (64*8 = 512 entry) palette which is FCEUX format (and probably other emulators as well)
|
public static int[,] FCEUX_Standard = new int[,]
|
||||||
/// The 512-entry format is new and backwards compatible. (actually, the 512-entry format extra data isnt used yet, I just edited this to support the larger quicknes file i committed)
|
{
|
||||||
/// </summary>
|
{ 0x1D<<SHIFT, 0x1D<<SHIFT, 0x1D<<SHIFT }, /* Value 0 */
|
||||||
/// <param name="fileContents">192 or 1536 bytes, the contents of the palette file</param>
|
{ 0x09<<SHIFT, 0x06<<SHIFT, 0x23<<SHIFT }, /* Value 1 */
|
||||||
public static int[,] Load_FCEUX_Palette(byte[] fileContents)
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x2A<<SHIFT }, /* Value 2 */
|
||||||
{
|
{ 0x11<<SHIFT, 0x00<<SHIFT, 0x27<<SHIFT }, /* Value 3 */
|
||||||
//'validate' file, solely by length
|
{ 0x23<<SHIFT, 0x00<<SHIFT, 0x1D<<SHIFT }, /* Value 4 */
|
||||||
if (fileContents.Length == 1536) { }
|
{ 0x2A<<SHIFT, 0x00<<SHIFT, 0x04<<SHIFT }, /* Value 5 */
|
||||||
else if (fileContents.Length != 192) return null;
|
{ 0x29<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 6 */
|
||||||
|
{ 0x1F<<SHIFT, 0x02<<SHIFT, 0x00<<SHIFT }, /* Value 7 */
|
||||||
int[,] ret = new int[64, 3];
|
{ 0x10<<SHIFT, 0x0B<<SHIFT, 0x00<<SHIFT }, /* Value 8 */
|
||||||
int i = 0;
|
{ 0x00<<SHIFT, 0x11<<SHIFT, 0x00<<SHIFT }, /* Value 9 */
|
||||||
for (int c = 0; c < 64; c++)
|
{ 0x00<<SHIFT, 0x14<<SHIFT, 0x00<<SHIFT }, /* Value 10 */
|
||||||
{
|
{ 0x00<<SHIFT, 0x0F<<SHIFT, 0x05<<SHIFT }, /* Value 11 */
|
||||||
for (int z = 0; z < 3; z++)
|
{ 0x06<<SHIFT, 0x0F<<SHIFT, 0x17<<SHIFT }, /* Value 12 */
|
||||||
ret[c, z] = fileContents[i++];
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 13 */
|
||||||
}
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 14 */
|
||||||
return ret;
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 15 */
|
||||||
}
|
{ 0x2F<<SHIFT, 0x2F<<SHIFT, 0x2F<<SHIFT }, /* Value 16 */
|
||||||
|
{ 0x00<<SHIFT, 0x1C<<SHIFT, 0x3B<<SHIFT }, /* Value 17 */
|
||||||
const int SHIFT = 2;
|
{ 0x08<<SHIFT, 0x0E<<SHIFT, 0x3B<<SHIFT }, /* Value 18 */
|
||||||
public static int[,] FCEUX_Standard = new int[,]
|
{ 0x20<<SHIFT, 0x00<<SHIFT, 0x3C<<SHIFT }, /* Value 19 */
|
||||||
{
|
{ 0x2F<<SHIFT, 0x00<<SHIFT, 0x2F<<SHIFT }, /* Value 20 */
|
||||||
{ 0x1D<<SHIFT, 0x1D<<SHIFT, 0x1D<<SHIFT }, /* Value 0 */
|
{ 0x39<<SHIFT, 0x00<<SHIFT, 0x16<<SHIFT }, /* Value 21 */
|
||||||
{ 0x09<<SHIFT, 0x06<<SHIFT, 0x23<<SHIFT }, /* Value 1 */
|
{ 0x36<<SHIFT, 0x0A<<SHIFT, 0x00<<SHIFT }, /* Value 22 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x2A<<SHIFT }, /* Value 2 */
|
{ 0x32<<SHIFT, 0x13<<SHIFT, 0x03<<SHIFT }, /* Value 23 */
|
||||||
{ 0x11<<SHIFT, 0x00<<SHIFT, 0x27<<SHIFT }, /* Value 3 */
|
{ 0x22<<SHIFT, 0x1C<<SHIFT, 0x00<<SHIFT }, /* Value 24 */
|
||||||
{ 0x23<<SHIFT, 0x00<<SHIFT, 0x1D<<SHIFT }, /* Value 4 */
|
{ 0x00<<SHIFT, 0x25<<SHIFT, 0x00<<SHIFT }, /* Value 25 */
|
||||||
{ 0x2A<<SHIFT, 0x00<<SHIFT, 0x04<<SHIFT }, /* Value 5 */
|
{ 0x00<<SHIFT, 0x2A<<SHIFT, 0x00<<SHIFT }, /* Value 26 */
|
||||||
{ 0x29<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 6 */
|
{ 0x00<<SHIFT, 0x24<<SHIFT, 0x0E<<SHIFT }, /* Value 27 */
|
||||||
{ 0x1F<<SHIFT, 0x02<<SHIFT, 0x00<<SHIFT }, /* Value 7 */
|
{ 0x00<<SHIFT, 0x20<<SHIFT, 0x22<<SHIFT }, /* Value 28 */
|
||||||
{ 0x10<<SHIFT, 0x0B<<SHIFT, 0x00<<SHIFT }, /* Value 8 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 29 */
|
||||||
{ 0x00<<SHIFT, 0x11<<SHIFT, 0x00<<SHIFT }, /* Value 9 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 30 */
|
||||||
{ 0x00<<SHIFT, 0x14<<SHIFT, 0x00<<SHIFT }, /* Value 10 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 31 */
|
||||||
{ 0x00<<SHIFT, 0x0F<<SHIFT, 0x05<<SHIFT }, /* Value 11 */
|
{ 0x3F<<SHIFT, 0x3F<<SHIFT, 0x3F<<SHIFT }, /* Value 32 */
|
||||||
{ 0x06<<SHIFT, 0x0F<<SHIFT, 0x17<<SHIFT }, /* Value 12 */
|
{ 0x0F<<SHIFT, 0x2F<<SHIFT, 0x3F<<SHIFT }, /* Value 33 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 13 */
|
{ 0x17<<SHIFT, 0x25<<SHIFT, 0x3F<<SHIFT }, /* Value 34 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 14 */
|
{ 0x10<<SHIFT, 0x22<<SHIFT, 0x3F<<SHIFT }, /* Value 35 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 15 */
|
{ 0x3D<<SHIFT, 0x1E<<SHIFT, 0x3F<<SHIFT }, /* Value 36 */
|
||||||
{ 0x2F<<SHIFT, 0x2F<<SHIFT, 0x2F<<SHIFT }, /* Value 16 */
|
{ 0x3F<<SHIFT, 0x1D<<SHIFT, 0x2D<<SHIFT }, /* Value 37 */
|
||||||
{ 0x00<<SHIFT, 0x1C<<SHIFT, 0x3B<<SHIFT }, /* Value 17 */
|
{ 0x3F<<SHIFT, 0x1D<<SHIFT, 0x18<<SHIFT }, /* Value 38 */
|
||||||
{ 0x08<<SHIFT, 0x0E<<SHIFT, 0x3B<<SHIFT }, /* Value 18 */
|
{ 0x3F<<SHIFT, 0x26<<SHIFT, 0x0E<<SHIFT }, /* Value 39 */
|
||||||
{ 0x20<<SHIFT, 0x00<<SHIFT, 0x3C<<SHIFT }, /* Value 19 */
|
{ 0x3C<<SHIFT, 0x2F<<SHIFT, 0x0F<<SHIFT }, /* Value 40 */
|
||||||
{ 0x2F<<SHIFT, 0x00<<SHIFT, 0x2F<<SHIFT }, /* Value 20 */
|
{ 0x20<<SHIFT, 0x34<<SHIFT, 0x04<<SHIFT }, /* Value 41 */
|
||||||
{ 0x39<<SHIFT, 0x00<<SHIFT, 0x16<<SHIFT }, /* Value 21 */
|
{ 0x13<<SHIFT, 0x37<<SHIFT, 0x12<<SHIFT }, /* Value 42 */
|
||||||
{ 0x36<<SHIFT, 0x0A<<SHIFT, 0x00<<SHIFT }, /* Value 22 */
|
{ 0x16<<SHIFT, 0x3E<<SHIFT, 0x26<<SHIFT }, /* Value 43 */
|
||||||
{ 0x32<<SHIFT, 0x13<<SHIFT, 0x03<<SHIFT }, /* Value 23 */
|
{ 0x00<<SHIFT, 0x3A<<SHIFT, 0x36<<SHIFT }, /* Value 44 */
|
||||||
{ 0x22<<SHIFT, 0x1C<<SHIFT, 0x00<<SHIFT }, /* Value 24 */
|
{ 0x1E<<SHIFT, 0x1E<<SHIFT, 0x1E<<SHIFT }, /* Value 45 */
|
||||||
{ 0x00<<SHIFT, 0x25<<SHIFT, 0x00<<SHIFT }, /* Value 25 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 46 */
|
||||||
{ 0x00<<SHIFT, 0x2A<<SHIFT, 0x00<<SHIFT }, /* Value 26 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 47 */
|
||||||
{ 0x00<<SHIFT, 0x24<<SHIFT, 0x0E<<SHIFT }, /* Value 27 */
|
{ 0x3F<<SHIFT, 0x3F<<SHIFT, 0x3F<<SHIFT }, /* Value 48 */
|
||||||
{ 0x00<<SHIFT, 0x20<<SHIFT, 0x22<<SHIFT }, /* Value 28 */
|
{ 0x2A<<SHIFT, 0x39<<SHIFT, 0x3F<<SHIFT }, /* Value 49 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 29 */
|
{ 0x31<<SHIFT, 0x35<<SHIFT, 0x3F<<SHIFT }, /* Value 50 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 30 */
|
{ 0x35<<SHIFT, 0x32<<SHIFT, 0x3F<<SHIFT }, /* Value 51 */
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 31 */
|
{ 0x3F<<SHIFT, 0x31<<SHIFT, 0x3F<<SHIFT }, /* Value 52 */
|
||||||
{ 0x3F<<SHIFT, 0x3F<<SHIFT, 0x3F<<SHIFT }, /* Value 32 */
|
{ 0x3F<<SHIFT, 0x31<<SHIFT, 0x36<<SHIFT }, /* Value 53 */
|
||||||
{ 0x0F<<SHIFT, 0x2F<<SHIFT, 0x3F<<SHIFT }, /* Value 33 */
|
{ 0x3F<<SHIFT, 0x2F<<SHIFT, 0x2C<<SHIFT }, /* Value 54 */
|
||||||
{ 0x17<<SHIFT, 0x25<<SHIFT, 0x3F<<SHIFT }, /* Value 34 */
|
{ 0x3F<<SHIFT, 0x36<<SHIFT, 0x2A<<SHIFT }, /* Value 55 */
|
||||||
{ 0x10<<SHIFT, 0x22<<SHIFT, 0x3F<<SHIFT }, /* Value 35 */
|
{ 0x3F<<SHIFT, 0x39<<SHIFT, 0x28<<SHIFT }, /* Value 56 */
|
||||||
{ 0x3D<<SHIFT, 0x1E<<SHIFT, 0x3F<<SHIFT }, /* Value 36 */
|
{ 0x38<<SHIFT, 0x3F<<SHIFT, 0x28<<SHIFT }, /* Value 57 */
|
||||||
{ 0x3F<<SHIFT, 0x1D<<SHIFT, 0x2D<<SHIFT }, /* Value 37 */
|
{ 0x2A<<SHIFT, 0x3C<<SHIFT, 0x2F<<SHIFT }, /* Value 58 */
|
||||||
{ 0x3F<<SHIFT, 0x1D<<SHIFT, 0x18<<SHIFT }, /* Value 38 */
|
{ 0x2C<<SHIFT, 0x3F<<SHIFT, 0x33<<SHIFT }, /* Value 59 */
|
||||||
{ 0x3F<<SHIFT, 0x26<<SHIFT, 0x0E<<SHIFT }, /* Value 39 */
|
{ 0x27<<SHIFT, 0x3F<<SHIFT, 0x3C<<SHIFT }, /* Value 60 */
|
||||||
{ 0x3C<<SHIFT, 0x2F<<SHIFT, 0x0F<<SHIFT }, /* Value 40 */
|
{ 0x31<<SHIFT, 0x31<<SHIFT, 0x31<<SHIFT }, /* Value 61 */
|
||||||
{ 0x20<<SHIFT, 0x34<<SHIFT, 0x04<<SHIFT }, /* Value 41 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 62 */
|
||||||
{ 0x13<<SHIFT, 0x37<<SHIFT, 0x12<<SHIFT }, /* Value 42 */
|
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 63 */
|
||||||
{ 0x16<<SHIFT, 0x3E<<SHIFT, 0x26<<SHIFT }, /* Value 43 */
|
};
|
||||||
{ 0x00<<SHIFT, 0x3A<<SHIFT, 0x36<<SHIFT }, /* Value 44 */
|
|
||||||
{ 0x1E<<SHIFT, 0x1E<<SHIFT, 0x1E<<SHIFT }, /* Value 45 */
|
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 46 */
|
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 47 */
|
|
||||||
{ 0x3F<<SHIFT, 0x3F<<SHIFT, 0x3F<<SHIFT }, /* Value 48 */
|
|
||||||
{ 0x2A<<SHIFT, 0x39<<SHIFT, 0x3F<<SHIFT }, /* Value 49 */
|
|
||||||
{ 0x31<<SHIFT, 0x35<<SHIFT, 0x3F<<SHIFT }, /* Value 50 */
|
|
||||||
{ 0x35<<SHIFT, 0x32<<SHIFT, 0x3F<<SHIFT }, /* Value 51 */
|
|
||||||
{ 0x3F<<SHIFT, 0x31<<SHIFT, 0x3F<<SHIFT }, /* Value 52 */
|
|
||||||
{ 0x3F<<SHIFT, 0x31<<SHIFT, 0x36<<SHIFT }, /* Value 53 */
|
|
||||||
{ 0x3F<<SHIFT, 0x2F<<SHIFT, 0x2C<<SHIFT }, /* Value 54 */
|
|
||||||
{ 0x3F<<SHIFT, 0x36<<SHIFT, 0x2A<<SHIFT }, /* Value 55 */
|
|
||||||
{ 0x3F<<SHIFT, 0x39<<SHIFT, 0x28<<SHIFT }, /* Value 56 */
|
|
||||||
{ 0x38<<SHIFT, 0x3F<<SHIFT, 0x28<<SHIFT }, /* Value 57 */
|
|
||||||
{ 0x2A<<SHIFT, 0x3C<<SHIFT, 0x2F<<SHIFT }, /* Value 58 */
|
|
||||||
{ 0x2C<<SHIFT, 0x3F<<SHIFT, 0x33<<SHIFT }, /* Value 59 */
|
|
||||||
{ 0x27<<SHIFT, 0x3F<<SHIFT, 0x3C<<SHIFT }, /* Value 60 */
|
|
||||||
{ 0x31<<SHIFT, 0x31<<SHIFT, 0x31<<SHIFT }, /* Value 61 */
|
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 62 */
|
|
||||||
{ 0x00<<SHIFT, 0x00<<SHIFT, 0x00<<SHIFT }, /* Value 63 */
|
|
||||||
};
|
|
||||||
|
|
||||||
public static int[,] QuickNESPalette =
|
|
||||||
{
|
|
||||||
{102, 102, 102},
|
|
||||||
{0, 42, 136},
|
|
||||||
{20, 18, 168},
|
|
||||||
{59, 0, 164},
|
|
||||||
{92, 0, 126},
|
|
||||||
{110, 0, 64},
|
|
||||||
{108, 7, 0},
|
|
||||||
{87, 29, 0},
|
|
||||||
{52, 53, 0},
|
|
||||||
{12, 73, 0},
|
|
||||||
{0, 82, 0},
|
|
||||||
{0, 79, 8},
|
|
||||||
{0, 64, 78},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
{174, 174, 174},
|
|
||||||
{21, 95, 218},
|
|
||||||
{66, 64, 254},
|
|
||||||
{118, 39, 255},
|
|
||||||
{161, 27, 205},
|
|
||||||
{184, 30, 124},
|
|
||||||
{181, 50, 32},
|
|
||||||
{153, 79, 0},
|
|
||||||
{108, 110, 0},
|
|
||||||
{56, 135, 0},
|
|
||||||
{13, 148, 0},
|
|
||||||
{0, 144, 50},
|
|
||||||
{0, 124, 142},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
{254, 254, 254},
|
|
||||||
{100, 176, 254},
|
|
||||||
{147, 144, 254},
|
|
||||||
{199, 119, 254},
|
|
||||||
{243, 106, 254},
|
|
||||||
{254, 110, 205},
|
|
||||||
{254, 130, 112},
|
|
||||||
{235, 159, 35},
|
|
||||||
{189, 191, 0},
|
|
||||||
{137, 217, 0},
|
|
||||||
{93, 229, 48},
|
|
||||||
{69, 225, 130},
|
|
||||||
{72, 206, 223},
|
|
||||||
{79, 79, 79},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
{254, 254, 254},
|
|
||||||
{193, 224, 254},
|
|
||||||
{212, 211, 254},
|
|
||||||
{233, 200, 254},
|
|
||||||
{251, 195, 254},
|
|
||||||
{254, 197, 235},
|
|
||||||
{254, 205, 198},
|
|
||||||
{247, 217, 166},
|
|
||||||
{229, 230, 149},
|
|
||||||
{208, 240, 151},
|
|
||||||
{190, 245, 171},
|
|
||||||
{180, 243, 205},
|
|
||||||
{181, 236, 243},
|
|
||||||
{184, 184, 184},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 0},
|
|
||||||
};
|
|
||||||
} //class palettes
|
|
||||||
|
|
||||||
} //partial class NES
|
|
||||||
|
|
||||||
|
public static int[,] QuickNESPalette =
|
||||||
|
{
|
||||||
|
{102, 102, 102},
|
||||||
|
{0, 42, 136},
|
||||||
|
{20, 18, 168},
|
||||||
|
{59, 0, 164},
|
||||||
|
{92, 0, 126},
|
||||||
|
{110, 0, 64},
|
||||||
|
{108, 7, 0},
|
||||||
|
{87, 29, 0},
|
||||||
|
{52, 53, 0},
|
||||||
|
{12, 73, 0},
|
||||||
|
{0, 82, 0},
|
||||||
|
{0, 79, 8},
|
||||||
|
{0, 64, 78},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{174, 174, 174},
|
||||||
|
{21, 95, 218},
|
||||||
|
{66, 64, 254},
|
||||||
|
{118, 39, 255},
|
||||||
|
{161, 27, 205},
|
||||||
|
{184, 30, 124},
|
||||||
|
{181, 50, 32},
|
||||||
|
{153, 79, 0},
|
||||||
|
{108, 110, 0},
|
||||||
|
{56, 135, 0},
|
||||||
|
{13, 148, 0},
|
||||||
|
{0, 144, 50},
|
||||||
|
{0, 124, 142},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{254, 254, 254},
|
||||||
|
{100, 176, 254},
|
||||||
|
{147, 144, 254},
|
||||||
|
{199, 119, 254},
|
||||||
|
{243, 106, 254},
|
||||||
|
{254, 110, 205},
|
||||||
|
{254, 130, 112},
|
||||||
|
{235, 159, 35},
|
||||||
|
{189, 191, 0},
|
||||||
|
{137, 217, 0},
|
||||||
|
{93, 229, 48},
|
||||||
|
{69, 225, 130},
|
||||||
|
{72, 206, 223},
|
||||||
|
{79, 79, 79},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{254, 254, 254},
|
||||||
|
{193, 224, 254},
|
||||||
|
{212, 211, 254},
|
||||||
|
{233, 200, 254},
|
||||||
|
{251, 195, 254},
|
||||||
|
{254, 197, 235},
|
||||||
|
{254, 205, 198},
|
||||||
|
{247, 217, 166},
|
||||||
|
{229, 230, 149},
|
||||||
|
{208, 240, 151},
|
||||||
|
{190, 245, 171},
|
||||||
|
{180, 243, 205},
|
||||||
|
{181, 236, 243},
|
||||||
|
{184, 184, 184},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
};
|
||||||
|
} //class palettes
|
||||||
} //namespace
|
} //namespace
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
CartV2.prg_size *= 16;
|
CartV2.prg_size *= 16;
|
||||||
CartV2.chr_size *= 8;
|
CartV2.chr_size *= 8;
|
||||||
|
|
||||||
CartV2.wram_battery = (data[6] & 2) != 0; // should this be respected in v2 mode??
|
CartV2.wram_battery = (data[6] & 2) != 0; // should this be respected in v2 mode??
|
||||||
|
|
||||||
int wrambat = iNES2Wram(data[10] >> 4);
|
int wrambat = iNES2Wram(data[10] >> 4);
|
||||||
int wramnon = iNES2Wram(data[10] & 15);
|
int wramnon = iNES2Wram(data[10] & 15);
|
||||||
|
@ -103,6 +103,5 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue