Недельку поковыряв туторы для чайников (
рекомендую, кстати), подумал: "почему бы и нет? наверное это будет как нефиг делать".
И начал изучать архитектуру реального проекта. Голый дизасм без рантайм анализа data/code (глупый, чё).
Вручную разгребал таблицы переходов. По нескольку раз переосмысливал значение переменных и подпрограмм.
Сначала я был очень наивный. Особого бэкграунда по хакингу нет. Только на уровне перегрузки стека со времен универа.
Поплакал с того, что нельзя двигать код, из-за тех же таблиц переходов тут и там.
Получил озарение, что оказывается часть кода в основном цикле выполняется, а часть в прерывании...
Сперва думал, что достаточно будет добавить задержку в момент черного экрана до появления целей.
Как же я ошибался. Потестив первый раз на железе (делал карик на заказ), я понял, что работы до ж...ы
В итоге пришёл к такой схеме:
И вот, месяц спустя, я получил рабочий карик. Пришлось заказывать программатор, чтобы не разориться на тестах.