nes: vs lightgun stuff. hogan's alley seems to do something now
This commit is contained in:
parent
e44493d9fb
commit
25dfe00203
|
@ -940,11 +940,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
{
|
{
|
||||||
switch (cart.palette)
|
switch (cart.palette)
|
||||||
{
|
{
|
||||||
case "2C05": SetPalette(Palettes.palette_2c03_2c05); break;
|
case "2C05": SetPalette(Palettes.palette_2c03_2c05); ppu.CurrentLuma = PPU.PaletteLuma2C03; break;
|
||||||
case "2C04-1": SetPalette(Palettes.palette_2c04_001); break;
|
case "2C04-1": SetPalette(Palettes.palette_2c04_001); ppu.CurrentLuma = PPU.PaletteLuma2C04_1; break;
|
||||||
case "2C04-2": SetPalette(Palettes.palette_2c04_002); break;
|
case "2C04-2": SetPalette(Palettes.palette_2c04_002); ppu.CurrentLuma = PPU.PaletteLuma2C04_2; break;
|
||||||
case "2C04-3": SetPalette(Palettes.palette_2c04_003); break;
|
case "2C04-3": SetPalette(Palettes.palette_2c04_003); ppu.CurrentLuma = PPU.PaletteLuma2C04_3; break;
|
||||||
case "2C04-4": SetPalette(Palettes.palette_2c04_004); break;
|
case "2C04-4": SetPalette(Palettes.palette_2c04_004); ppu.CurrentLuma = PPU.PaletteLuma2C04_4; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//since this will run for every VS game, let's get security setting too
|
//since this will run for every VS game, let's get security setting too
|
||||||
|
|
|
@ -40,6 +40,60 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
public DebugCallback NTViewCallback;
|
public DebugCallback NTViewCallback;
|
||||||
public DebugCallback PPUViewCallback;
|
public DebugCallback PPUViewCallback;
|
||||||
|
|
||||||
|
// luminance of each palette value for lightgun calculations
|
||||||
|
// this is all 101% guesses, and most certainly various levels of wrong
|
||||||
|
public static readonly int[] PaletteLumaNES =
|
||||||
|
{
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0,
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly int[] PaletteLuma2C03 =
|
||||||
|
{
|
||||||
|
27, 9, 3, 22, 9, 11, 16, 20, 18, 14, 19, 25, 14, 0, 0, 0,
|
||||||
|
45, 23, 17, 12, 14, 16, 13, 30, 27, 27, 25, 34, 28, 0, 0, 0,
|
||||||
|
63, 42, 37, 35, 18, 37, 39, 45, 50, 44, 45, 52, 49, 0, 0, 0,
|
||||||
|
63, 52, 48, 50, 43, 48, 54, 59, 60, 55, 54, 52, 50, 0, 0, 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly int[] PaletteLuma2C04_1 =
|
||||||
|
{
|
||||||
|
48, 35, 13, 37, 28, 14, 18, 16, 63, 27, 45, 11, 9, 50, 18, 63,
|
||||||
|
42, 45, 12, 44, 50, 48, 54, 17, 52, 52, 0, 3, 54, 36, 18, 9,
|
||||||
|
1, 52, 50, 45, 49, 14, 34, 14, 0, 20, 43, 16, 12, 3, 39, 0,
|
||||||
|
0, 27, 45, 19, 55, 22, 58, 30, 12, 23, 25, 9, 60, 37, 27, 54,
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly int[] PaletteLuma2C04_2 =
|
||||||
|
{
|
||||||
|
0, 45, 27, 55, 54, 37, 28, 52, 13, 12, 60, 43, 63, 35, 50, 25,
|
||||||
|
12, 42, 16, 54, 34, 44, 3, 37, 18, 18, 1, 52, 48, 18, 0, 22,
|
||||||
|
9, 54, 39, 50, 23, 12, 45, 3, 14, 52, 27, 14, 17, 0, 50, 63,
|
||||||
|
45, 9, 45, 30, 14, 9, 16, 27, 0, 49, 20, 58, 48, 11, 19, 36,
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly int[] PaletteLuma2C04_3 =
|
||||||
|
{
|
||||||
|
14, 37, 54, 45, 25, 63, 52, 14, 9, 0, 54, 18, 16, 54, 45, 50,
|
||||||
|
37, 28, 11, 17, 27, 27, 30, 34, 27, 22, 0, 3, 13, 16, 43, 48,
|
||||||
|
35, 12, 1, 58, 9, 45, 39, 63, 44, 9, 42, 18, 23, 36, 0, 12,
|
||||||
|
49, 3, 55, 50, 20, 45, 50, 18, 19, 0, 48, 60, 12, 52, 52, 14,
|
||||||
|
};
|
||||||
|
|
||||||
|
public static readonly int[] PaletteLuma2C04_4 =
|
||||||
|
{
|
||||||
|
27, 22, 28, 50, 0, 48, 9, 30, 45, 12, 45, 1, 54, 58, 25, 55,
|
||||||
|
37, 3, 17, 43, 0, 18, 16, 39, 45, 34, 37, 27, 9, 0, 54, 42,
|
||||||
|
11, 19, 20, 3, 12, 14, 27, 16, 14, 54, 23, 12, 9, 60, 36, 18,
|
||||||
|
50, 63, 18, 13, 52, 52, 63, 50, 0, 45, 35, 52, 44, 48, 49, 14,
|
||||||
|
};
|
||||||
|
|
||||||
|
private int[] _currentLuma = PaletteLumaNES;
|
||||||
|
|
||||||
|
public int[] CurrentLuma { get { return _currentLuma; } set { _currentLuma = value; } }
|
||||||
|
|
||||||
// true = light sensed
|
// true = light sensed
|
||||||
public bool LightGunCallback(int x, int y)
|
public bool LightGunCallback(int x, int y)
|
||||||
{
|
{
|
||||||
|
@ -65,10 +119,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
goto loopout;
|
goto loopout;
|
||||||
|
|
||||||
short s = xbuf[j * 256 + i];
|
short s = xbuf[j * 256 + i];
|
||||||
int lum = s & 0x30;
|
sum += _currentLuma[s];
|
||||||
if ((s & 0x0f) >= 0x0e)
|
|
||||||
lum = 0;
|
|
||||||
sum += lum;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loopout:
|
loopout:
|
||||||
|
|
Loading…
Reference in New Issue