Все защиты взламываются, если что. Так что защита - не защита.
Вид для печати
Да чего их там ломать, и раньше никто не парился, и сейчас не будет - мультифейсом сдампить, сжать, и новый загрузчик прицепить. Код проверки на эмуль найти не проблема любому, кто более-менее в ассемблере шарит.
- - - Добавлено - - -
К тому же почти всё можно сэмулировать. Даже то же мультинажатие клавиш можно сэмулировать, если задаться этим. Не впрямую, конечно, ограничения компа-хоста придется обходить.
Чего это вдруг? Ты ничего не перепутал?
Диодная матрица позволяет разрешить любую комбинацию нажатых клавиш при условии, что каждая клавиша снабжена диодом. На этом принципе делались масочные ПЗУ, в которые можно было записать любую информацию. ПЗУ строятся в виде диодной матрицы, а принцип считывания такой же, как на клавиатуре: активизировать линию одной строки и смотреть, какие сигналы присутствуют на столбцах.
- - - Добавлено - - -
Кстати, не рекомендую реализовывать в эмуляторах эффект "добавления" четвертой клавиши при нажатии трех. У меня и у друзей на реалах были диоды на всех клавишах, и это в некоторых ситуациях очень помогало работе с клавиатурой. Использовались комбинации вроде "Caps+Symb+space", которые на клавиатуре без диодов приведут к ложному срабатыванию еще одной клавиши.
Ты серьезно считаешь, что кто-то сегодня готов платить за спектрумовские игры? И готов быть ограниченным запускать их только на реале?
Защиту, конечно, можно любую взломать. Хотя бы аппаратно. Сделать на базе микроконтроллера устройство, подключаемое к системному разъему, которое бы дампило (через DMA) всю память, а еще оно могло бы с помощью NMI или просто подставляя процессору нужную последовательность команд, которых на самом деле нет в памяти, считывать регистры. Еще можно заменить Z80 FPGA со встроенными функциями "отладки". Тогда состояние процессора и все остальное будет у взломщика как на блюдечке.
Желание ломать пропорционально отдаче. Если цель взлома - никому не нужная игра, то получится защита вида "неуловимый Джо".
- - - Добавлено - - -
Боюсь, что если цель - коммерция, то создание серьезной защиты просто не окупится. Создать защиту гораздо сложнее, чем ее взломать.
- - - Добавлено - - -
Я думаю, что лучшая защита - это аппаратная реализация части функций программы. Типа как было на дендиевских картриджах, которые содержали аппаратные "добавки" к стандартной схеме денди. Если используется хорошо защищенный микроконтроллер - то скопировать такое устройство сможет далеко не каждый. А проверка на эмулятор - это всё игрушки.