diff --git a/resource/Applewin.rc b/resource/Applewin.rc index 59130c26..7aef29e5 100644 --- a/resource/Applewin.rc +++ b/resource/Applewin.rc @@ -257,7 +257,7 @@ BEGIN CONTROL "The Free&ze's non-autostart F8 rom (Apple ][ or ][+ only)",IDC_THE_FREEZES_F8_ROM_FW, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,201,194,10 LTEXT "&Game I/O Connector:",IDC_STATIC,5,220,82,8 - COMBOBOX IDC_COMBO_GAME_IO_CONNECTOR,89,218,114,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_GAME_IO_CONNECTOR,80,218,128,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END diff --git a/source/Configuration/PageAdvanced.cpp b/source/Configuration/PageAdvanced.cpp index 2a6786c0..acbcf0cd 100644 --- a/source/Configuration/PageAdvanced.cpp +++ b/source/Configuration/PageAdvanced.cpp @@ -50,7 +50,7 @@ const TCHAR CPageAdvanced::m_gameIOConnectorChoices[] = "Cortechs Corp - CodeWriter\0" /* Protection key for Dynatech Microsoftware / Cortechs Corp "CodeWriter" */ "Robocom Ltd - Robo 500\0" /* Interface Module for Robocom Ltd's Robo 500 */ "Robocom Ltd - Robo 1000\0" /* Interface Module for Robocom Ltd's Robo 1000 */ - "Robocom Ltd - Robo 1500\0"; /* Interface Module for Robocom Ltd's Robo 1500 */ + "Robocom Ltd - Robo 1500, CAD-2P\0"; /* Interface Module for Robocom Ltd's Robo 1500, Robo Systems CAD-2P */ INT_PTR CALLBACK CPageAdvanced::DlgProc(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam) diff --git a/source/CopyProtectionDongles.cpp b/source/CopyProtectionDongles.cpp index 93aa6b67..a39e574a 100644 --- a/source/CopyProtectionDongles.cpp +++ b/source/CopyProtectionDongles.cpp @@ -131,20 +131,22 @@ int CopyProtectionDonglePDL(UINT pdl) { case DT_ROBOCOM500: { - static BYTE robo500[8] = { 0x3F,0x2E,0x54,0x54,0x2E,0x22,0x72,0x17 }; // PDL3 lower bound - return robo500[roboComInterfaceModuleMode] + 1; + static BYTE robo500_lo[8] = { 0x3F,0x2E,0x54,0x54,0x2E,0x22,0x72,0x17 }; // PDL3 lower bound - see GH#1247 + static BYTE robo500_hi[8] = { 0x6F,0x54,0x94,0x94,0x54,0x40,0xC4,0x2E }; // PDL3 upper bound - see GH#1247 + // This mean value gives values that are very close to the actual 1000 & 1500 Module Interfaces - so assume it's similar for the 500 series. + return (robo500_lo[roboComInterfaceModuleMode] + robo500_hi[roboComInterfaceModuleMode] - 1) / 2; } case DT_ROBOCOM1000: { - static BYTE robo1000[8] = { 0x17,0x72,0x22,0x2E,0x54,0x54,0x2E,0x3F }; // PDL3 lower bound - return robo1000[roboComInterfaceModuleMode] + 1; + static BYTE robo1000[8] = { 34,151,48,64,113,113,64,85 }; // Actual Module Interface values for PDL3 + return robo1000[roboComInterfaceModuleMode]; } case DT_ROBOCOM1500: { - static BYTE robo1500[8] = { 0x72,0x17,0x2E,0x17,0x22,0x3F,0x54,0x22 }; // PDL3 lower bound - return robo1500[roboComInterfaceModuleMode] + 1; + static BYTE robo1500[8] = { 153,34,64,34,48,86,114,48 }; // Actual Module Interface values for PDL3 + return robo1500[roboComInterfaceModuleMode]; } default: