Clean up controllers for VS system
Some games require you to hit Start / Select on player 2's controller regardless, which is annoying but that's how it works.
This commit is contained in:
parent
b257ad0a6a
commit
1288ffe4ba
|
@ -554,8 +554,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
if (_isVS)
|
if (_isVS)
|
||||||
{
|
{
|
||||||
byte ret = 0;
|
byte ret = 0;
|
||||||
// for whatever reason, in VS left and right controller have swapped regs
|
ret = read_joyport(0x4016);
|
||||||
ret = read_joyport(0x4017);
|
|
||||||
ret &= 1;
|
ret &= 1;
|
||||||
ret = (byte)(ret | (VS_service << 2) | (VS_dips[0] << 3) | (VS_dips[1] << 4) | (VS_coin_inserted << 5) | (VS_ROM_control<<7));
|
ret = (byte)(ret | (VS_service << 2) | (VS_dips[0] << 3) | (VS_dips[1] << 4) | (VS_coin_inserted << 5) | (VS_ROM_control<<7));
|
||||||
|
|
||||||
|
@ -578,8 +577,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
if (_isVS)
|
if (_isVS)
|
||||||
{
|
{
|
||||||
byte ret = 0;
|
byte ret = 0;
|
||||||
// for whatever reason, in VS left and right controller have swapped regs
|
ret = read_joyport(0x4017);
|
||||||
ret = read_joyport(0x4016);
|
|
||||||
ret &= 1;
|
ret &= 1;
|
||||||
|
|
||||||
ret = (byte)(ret | (VS_dips[2] << 2) | (VS_dips[3] << 3) | (VS_dips[4] << 4) | (VS_dips[5] << 5) | (VS_dips[6] << 6) | (VS_dips[7] << 7));
|
ret = (byte)(ret | (VS_dips[2] << 2) | (VS_dips[3] << 3) | (VS_dips[4] << 4) | (VS_dips[5] << 5) | (VS_dips[6] << 6) | (VS_dips[7] << 7));
|
||||||
|
@ -701,7 +699,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
{
|
{
|
||||||
InputCallbacks.Call();
|
InputCallbacks.Call();
|
||||||
lagged = false;
|
lagged = false;
|
||||||
byte ret = addr == 0x4016 ? ControllerDeck.ReadA(Controller) : ControllerDeck.ReadB(Controller);
|
byte ret = 0;
|
||||||
|
if (_isVS)
|
||||||
|
{
|
||||||
|
// for whatever reason, in VS left and right controller have swapped regs
|
||||||
|
ret = addr == 0x4017 ? ControllerDeck.ReadA(Controller) : ControllerDeck.ReadB(Controller);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = addr == 0x4016 ? ControllerDeck.ReadA(Controller) : ControllerDeck.ReadB(Controller);
|
||||||
|
}
|
||||||
|
|
||||||
ret &= 0x1f;
|
ret &= 0x1f;
|
||||||
ret |= (byte)(0xe0 & DB);
|
ret |= (byte)(0xe0 & DB);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue