Today we’re examining the PC version of Ecco the Dolphin. This game is adapted from the 1993 Sega CD version of Ecco, which is an enhanced version of the 1992 Sega Genesis original.
There’s a full-featured debug mode cheat for the console editions. Among other things, it lets you skip stages and become invincible. But on PC, you have to fight your way through this notoriously difficult title the hard way.
Debug mode in the Genesis version.
…Or do you? There’s some strange code in the function that handles this game’s About dialog:
/* WM_COMMAND */ if (uMsg == 0x111) { if ((wParam == 1) || (wParam == 2)) { GetWindowRect(hWnd,&lpRect_2); screen_height = GetSystemMetrics(1); if ((screen_height < lpRect_2.bottom) && (screen_width = GetSystemMetrics(0), screen_width < lpRect_2.right)) { system_flags_0048c334 = system_flags_0048c334 | 0x10; }
This is checking whether the bottom-right corner of the dialog box is off-screen as it’s being dismissed.
The About EccoWin dialog box.
After that check, the code calls GetKeyState for Shift and Ctrl. If those are being held down as the dialog disappears, LoadMenuA gets called for menu ID 0x70.
What’s that do? It allows you to access a cheat menu by pressing Shift+Ctrl and right-clicking on the main window:
The cheat menu.
... continue reading