1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Masm2c + libdosbox - тулкит для обратной разработки DOS-игр

Тема в разделе "Мастерская", создана пользователем xor2003, 8 июн 2022.

  1. xor2003

    xor2003

    Регистрация:
    3 окт 2010
    Сообщения:
    5
    Вышла первая публичная версия (0.9.6) тулкита для обратной разработки 16 битных DOS-игр: Masm2c и libdosbox.

    Допустим, вы решили переписать движок старой любимой ДОС-игры или специализированного DOS-софта. Кроме того что реверс-инжиниринг сложен, задачу усложняет еще и то, что используется сегментная модель памяти (адресация за раз только 64 КБайт памяти одним сегментным регистром), прямой доступ к старому железу.

    Если у вас есть бинарник (или исходник на ассемблере) с движком игры, тулкит позволяет сконвертировать его в работающий переносимый код на C++. Каждая инструкция x86 заменяется аналогичной функцией на С++ (native code).
    masm2c - транслятор masm ассемблерного исходника в С++ исходник.
    Libdosbox используется для эмуляции видео, звуковых устройств и для проверки конвертации каждой инструкции x86. Получается что-то среднее между декомпиляцией и дизассемблированием.

    Как результат, далее вы можете постепенно переписывать игру используя современные утилиты: gdb, и т.д. Либо подправить, а остальное вообще оставить как есть.
    Декомпиляция — в отдалённых планах.

    Исходники составных частей проекта:
    GitHub - xor2003/masm2c: x86 assembler (MASM syntax) to C translator (GPLv3)
    GitHub - xor2003/libdosbox: It is a fork of DOSBox with native game code (executed by real hardware) and Dosbox used to emulate Soundblaster, DOS interrupts and and other old hardware (GPLv2)

    Аналогичный инструмент — Spice86. Такие инструменты как Ghidra и reko не выдают рабочий код.

    Целью проекта является улучшение игровых движков, а не нарушение авторских прав.
     
    AndyFox и dSidr нравится это.
  2.  
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление