PC-версия Ecco the Dolphin — это адаптация версии 1993 года для Sega CD, улучшенной версии оригинала 1992 года для Sega Genesis. На консолях у Ecco был полноценный чит-режим: с его помощью можно пропускать уровни и становиться неуязвимым. На PC, казалось бы, такой роскоши нет — играть приходится по-честному. Но в коде функции, которая обрабатывает диалог About EccoWin, спрятана странная логика.
Сначала проверяется, не выходит ли нижний правый угол диалогового окна за экран, когда окно закрывается. Затем код вызывает GetKeyState для Shift и Ctrl. Если эти клавиши зажаты в момент исчезновения диалога, вызывается LoadMenuA для menu ID 0x70. Это открывает чит-меню: зажмите Shift+Ctrl и кликните правой кнопкой по главному окну. Пункт Stage позволяет выбрать стартовый уровень, затем F2 — начать игру. Пункт Life даёт бесконечное здоровье и воздух, а соответствующие шкалы исчезают. Внизу экрана появляется информация о позиции, которая меняется при движении Ecco. Пункт test only не работает.
Но это ещё не всё. В том же обработчике диалога проверяются дополнительные условия: равно ли uMsg событию WM_RBUTTONDBLCLK, есть ли в wParam флаги MK_SHIFT, MK_CONTROL и MK_LBUTTON, и находится ли курсор в углу диалога. На практике: откройте Help > About EccoWin, держите Shift+Ctrl+левую кнопку мыши и дважды кликните правой кнопкой по нижнему правому углу. Кнопка OK превратится в kO. Не отпуская Shift+Ctrl, закройте диалог. Теперь в чит-меню, которое вызывается Shift+Ctrl+правый клик, появятся дополнительные пункты: Easy, CD check и border.
Easy, судя по коду, уменьшает кулдаун рывка (dash), но на практике эффект почти незаметен. CD check убирает надоедливый экран «This program can only be run from the original CD!». border, похоже, должен был рисовать какой-то ресурсный индикатор по краю экрана, но в розничной версии он не работает.
С читами Stage и Life, может, наконец, удастся увидеть концовку Ecco, которую видели немногие. Спасибо Bobblen за то, что предложил эту игру для разбора.