Важная информация

User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 41

Тема: Безумная идея - дизасмить игры DOS и перекомпилировать в ZX

  1. #1
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,563
    Благодарностей: 690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Безумная идея - дизасмить игры DOS и перекомпилировать в ZX

    Съездил я значица в отпуск на Средиземноморье и с собой прихватил книжку "Ассемблер для IBM PC" (примерное название), почитать от скуки на пляже. И пришла у меня одна нехорошая идея - а что если:
    1. Дизассемблировать игру DOS (начала 90х годов);
    2. Найти в данных все изображения графики и текста, вручную отредактировать их;
    3. Не меняя ничего остального, компильнуть в код ZX.

    Идейка на чем базируется: как я понял, вывод текста и графики в PC базируется на вызовах прерываний BIOS и DOS. По сути, как у нас процедуры ПЗУ на Спектруме. Просто надо эти прерывания (процедуры) в количестве около 30 штук переписать в код ZX, типа их эмуляция. И тогда вызовы из кода игры для них будут перенаправляться в эти процедуры. А также, как я понял, в PC коды программы и данных четко разделены, что будет несложно найти и пересчитать адреса данных.
    Единственная проблема - если вывод графики производится непосредственно в адреса видеобуфера, тут пока не знаю, как бороться.
    Посмотрел размер игр для DOS, занимают примерно по 300 кб. Но подозреваю, что большая часть там попиксельная графика, которая прилично сожмется в Спектруме.

    В общем, что думаете, реально ли это? Или пойти проспаться?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,173
    Благодарностей: 140
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    иди проспись
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  4. #3
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,253
    Благодарностей: 878
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не, теоретически это можно сделать, но времени потратишь больше, чем написать прямой порт той же игры
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Мордовия - Республика звука

  5. #4
    Veteran
    Регистрация
    10.07.2013
    Адрес
    г. Москва
    Сообщений
    1,422
    Благодарностей: 463
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хочу не старую игру дизассемблировать, а новую и потом скомпилить под ZX
    Battlefield 4 хочу на спектруме

  6. #5
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В лоб адаптировать не удастся, нужно врубаться в дизассемблер и изучать те же вызовы BIOS. Дойдет до того что пейси просто понравится

  7. #6
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    А еще данная группа разрабатывает свою версию Fallout под названием Fallout of Arizona
    Как же, сейчас он все бросит и побежит Fallout на Спектрум адаптировать...

  8. #7
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,563
    Благодарностей: 690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    В лоб адаптировать не удастся, нужно врубаться в дизассемблер и изучать те же вызовы BIOS.
    Но этих вызовов всего около 30 биосовских и 7 досовских: http://www.codenet.ru/progr/dos/ , тем более некоторые не нужны. Можно их съэмулировать в Спекки - переписать на ассемблере Спека вручную.
    Больше всего гнетёт, если вывод графики происходит непосредственно в адреса видеобуфера, то нужно пересчитывать по идее из EGA (640x350) в ZX (256х192), а это приведет к сильной потере быстродействия и искажениям. Т.е., вручную придется всё равно переписывать. А видеобуфер, скорее всего, используется во многих играх, т.к. позволяет намного быстрее выводить графику, чем через прерывания BIOS.

    ---------- Post added at 14:45 ---------- Previous post was at 14:38 ----------

    Цитата Сообщение от MVV Посмотреть сообщение
    Andrew771, попробуй начать с QSP
    Цитата Сообщение от MVV Посмотреть сообщение
    Или "Звездное наследие" на выбор
    Никогда не любил квесты, ну можь кроме эротических. Основатель Юрий Матвеев правильно поступил, можь мне тоже

  9. #8
    Junior
    Регистрация
    15.06.2010
    Адрес
    г. Чита
    Сообщений
    23
    Благодарностей: 10
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если ответить в двух словах, лучше проспаться.
    Более развернуто - проще написать игру заново чем пытаться перенести ассемблерный код из другой архитектуры.
    По поводу работы игр через вызовы BIOS то они использовались минимально т.к. были ОООООЧЕНЬ медленными, и в большинстве случаях использовались графические библиотеки которые работали напрямую с портами и писали напрямую в видеопамять. Вызовы же DOS использовались не так часто (открыть, читать, закрыть, гораздо реже писать). Более того в многих играх мелкие файлы игры собирались в один большой файл ресурсов чтоб уменьшить потери времени на открытие - закрытие файлов.
    Нет есть конечно обратный пример что можно кросстранслировать из более простой архитектуры в более производительную. Friends software в свое время (в 1993) выпустили тулзу с помощью которой можно было преобразовать ROM MSX1 в EXE которые можно было запускать из под MSDOS. Но для запуска игры, требовавшей z80 и 64кб оперативки плюс видеоконтроллер ti9918 c 16кб видеоозу, нужна была 286 на 12мгц с 1мб озу и vga адаптером. плюс все равно нужно было ручками править код.

  10. Эти 2 пользователя(ей) поблагодарили axe_chita за это полезное сообщение:
    Andrew771 (19.07.2015), Максагор (19.07.2015)

  11. #9
    Veteran Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,478
    Благодарностей: 727
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не, ну теоретически, особенно если брать досовские игры под XT и IBM286, написанные под консоль, CGA и EGA и конвертить их в АТМ-экураны той же АТМки и ZX-Evolution/BaseConf то теоретически возможно. А уж если есть исходники на ЯВУ, то тем более - теже Принц и Гоблинсы под ЦПМ на АТМке как раз с исходников на Си перекомпилировались (под него и под паскаль для АТМ были созданы совместимые по командам графические библиотеки). Правда потом надо было все это оптимизировать, ибо тормозило жуть - Принца оптимизировали более не менее, а вот Гоблинсы только на Еволюшене на 14МГц нормально идут, а на 7МГц АТМки - жуть тормозная.
    Последний раз редактировалось Максагор; 19.07.2015 в 17:05.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  12. #10
    Veteran Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    Курган
    Сообщений
    1,811
    Благодарностей: 375
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    А уж если есть исходники на ЯВУ, то тем более - теже Принц и Гоблинсы под ЦПМ на АТМке как раз с исходников на Си перекомпилировались (под него и под паскаль для АТМ были созданы совместимые по командам графические библиотеки).
    Очень интересно. Откуда кто взял исходники Принца на Си? Пару лет назад было сообщение, что автор игры Принц нашёл случайно дискету с исходниками у себя, ранее считалось, что авторские исходники утеряны. Писал он игру, как я понял, на асме под Aplle II. Есть ещё вариант игры для Amstrad CPC 464, но я его так и не смог запустить ни в эмуле ни на реале.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

Страница 1 из 5 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Одна безумная идея ;-)
    от CodeMaster в разделе Память
    Ответов: 74
    Последнее: 14.04.2012, 10:18
  2. Идея.
    от multimax в разделе Разное
    Ответов: 11
    Последнее: 11.07.2011, 06:29
  3. Идея для клавиатуры)
    от =ANDROID= в разделе Устройства ввода
    Ответов: 4
    Последнее: 10.03.2011, 11:35
  4. Идея для игры
    от Sergey Novikov в разделе Игры
    Ответов: 15
    Последнее: 13.01.2009, 01:23
  5. Идея для игры "виртуальные ушки"
    от andrews в разделе Игры
    Ответов: 1
    Последнее: 20.12.2008, 16:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •