Added direct GameCube controller commands to the Serial Interface emulation. Fixes the controls in MaxPlay Classic Games Volume 1 and the Action Replay disc.
This commit is contained in:
parent
5bb6ac8164
commit
643f18d28b
|
@ -3,8 +3,8 @@
|
||||||
#Values set here will override the main dolphin settings.
|
#Values set here will override the main dolphin settings.
|
||||||
[EmuState]
|
[EmuState]
|
||||||
#The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
#The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
EmulationIssues =
|
EmulationIssues = Enable the GameCube BIOS to allow the game to boot.
|
||||||
[OnFrame]
|
[OnFrame]
|
||||||
+$Nop Hack
|
+$Nop Hack
|
||||||
0x80025BA0:dword:0x60000000
|
0x80025BA0:dword:0x60000000
|
||||||
|
|
|
@ -69,6 +69,19 @@ int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength)
|
||||||
*(u32*)&_pBuffer[0] = SI_GC_CONTROLLER;
|
*(u32*)&_pBuffer[0] = SI_GC_CONTROLLER;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CMD_DIRECT:
|
||||||
|
{
|
||||||
|
INFO_LOG(SERIALINTERFACE, "PAD - Direct (Length: %d)", _iLength);
|
||||||
|
u32 high, low;
|
||||||
|
GetData(high, low);
|
||||||
|
for (int i = 0; i < (_iLength - 1) / 2; i++)
|
||||||
|
{
|
||||||
|
_pBuffer[0 + i] = (high >> (i * 8)) & 0xff;
|
||||||
|
_pBuffer[4 + i] = (low >> (i * 8)) & 0xff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case CMD_ORIGIN:
|
case CMD_ORIGIN:
|
||||||
{
|
{
|
||||||
INFO_LOG(SERIALINTERFACE, "PAD - Get Origin");
|
INFO_LOG(SERIALINTERFACE, "PAD - Get Origin");
|
||||||
|
@ -96,7 +109,7 @@ int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength)
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
ERROR_LOG(SERIALINTERFACE, "unknown SI command (0x%x)", command);
|
ERROR_LOG(SERIALINTERFACE, "unknown SI command (0x%x)", command);
|
||||||
PanicAlert("SI: Unknown command");
|
PanicAlert("SI: Unknown command (0x%x)", command);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ private:
|
||||||
enum EBufferCommands
|
enum EBufferCommands
|
||||||
{
|
{
|
||||||
CMD_RESET = 0x00,
|
CMD_RESET = 0x00,
|
||||||
|
CMD_DIRECT = 0x40,
|
||||||
CMD_ORIGIN = 0x41,
|
CMD_ORIGIN = 0x41,
|
||||||
CMD_RECALIBRATE = 0x42,
|
CMD_RECALIBRATE = 0x42,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue