Рискну заявить, что в процессе эволюции хомо-сапиенс уже перестал быть человеком-разумным, а стал человеком-играющим. А компьютер, как не верти, самая увлекательная игрушка, которую создало человечество, причем в "провильном" ее использовании преуспели, наверное, мы - программисты. Ну, это так прелюдия, теперь ближе к теме: Когда-то давно, в 1996 году, в свет вышла игра "Master of Orion 2" (MoO2), фанатом которой я в то время стал и посвятил ей второй курс универа. И тут, примерно пол года назад, мне в руки снова попал диск с этой гамой и я убедился, что истинные шедевры не знают ограничений по времени. Как не странно, в нее играют до сих пор, причем по всему миру и число ее поклонников даже возросло после провала MoO3. Народ пишет (пытается писать) патчи, моды и т.д. Я тоже внес в это дело свою лепту и написал пакет по распаковке\упаковке ресурсов игры, мануалы по форматам ресурсов и т.п. Сейчас у меня возникла новая идея, для которой моих знаний, к сожалению, не хватает, а именно дизассемблировать, а лучше декомпилировать игру. Конечная цель: перенос на современную платформу, правка глюков, добавление новых элементов и прочее. Этакий опенсоровский проект для всех желающих. Мои попытки изучения EXE (для DOS) в плане "неинтеллектуального" дизассемблирования и изучения в Hex'е принесли следующие результаты: игра написана на C++, откомпилирована с использованием компилятора Watcom, графика для DOS/4GW и что самое главное в последних патчах производителей оставлена отладочная информация, вероятно в режиме "Dwarf" (он обычно по умолчанию стоит), но может быть и нет. Так или иначе, существует надежда восстановления названия функций\переменных, что явно облегчает процесс разбора ассемблерного кода, знать бы только как ей воспользоваться. В общем, цель описана, ищу соратников для этого неблагодарного дела, с учетом того, что максимум, что я делал с чужими программами, это выковыривал алгоритмы генерации ключей, то скорее ищу даже не соратников, а руководителей. Сейчас вот скачал OpenWatcom (компилятор Watcom стал открытым, даже исходники есть) и собираюсь заставить их дебагер родить мне что-нибуть путное.
IDA – это дизассемблер, опять таки «он». Понятно IDA может, но чистый asm, правда я не знаю, как он отнесется к 16-битному EXE, но в любом случае он не заточен под Debufinfo от Watcom, а вот дебагер Watcom вполне может это сделать. Для разумного использования IDA в этом случае нужно писать для него плугин, а для этого нужно знать структуру debuginfo от Watcom, чего мне тоже пока неизвестно.
Конечная цель: перенос на современную платформу, правка глюков, добавление новых элементов и прочее. Неблагодарная это работа. Если ты просто перенесешь на современную платформу старую игру (имею в виду полностью, в том числе со старой графикой), вряд ли это кто оценит. Старая - она и есть старая. Чтобы игра получила новое звучание, нужны серьезные изменения - графика современная, например. Ну ты правильно упомянул новые элементы, а вот под прочим что ты имел в виду? Все-таки нужен более серьезный подход, коллектив нужен, а главное - четко понимать, чем ты хочешь игроков приманить. Да, не забывай, кстати, о копирайте! Я похожими идеями переболел много лет назад - сделал римейк старого доброго Boulder Dush (уж и не помню, как правильно пишется, извиняюсь...) с платформы Commodor64 на PC, графика - один в один, все уровни тоже. Мой друг туда музон и звуковые эффекты добавил свои. А игра не пошла, увы. А были надежды.