Robocom Interface Module dongle: use actual values for 1000 & 1500 series dongles. (#1247)

This commit is contained in:
tomcw 2024-02-24 20:12:06 +00:00
parent 0f7bec509a
commit a16a134ae5
3 changed files with 10 additions and 8 deletions

View File

@ -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

View File

@ -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)

View File

@ -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: