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

User Tag List

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

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

  1. #1
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    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,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    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,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Virtual TR-DOS

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

    По умолчанию

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

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

    По умолчанию

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

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

    По умолчанию

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

  8. #7
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    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
    Member
    Регистрация
    15.06.2010
    Адрес
    г. Чита
    Сообщений
    54
    Спасибо Благодарностей отдано 
    89
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    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. #9
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    206
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 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], естественно...

  11. #10
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 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, 11:18
  2. Идея.
    от multimax в разделе Разный софт
    Ответов: 11
    Последнее: 11.07.2011, 07:29
  3. Идея для клавиатуры)
    от =ANDROID= в разделе Устройства ввода
    Ответов: 4
    Последнее: 10.03.2011, 10:35
  4. Идея для игры
    от Sergey Novikov в разделе Игры
    Ответов: 15
    Последнее: 13.01.2009, 00:23
  5. Идея для игры "виртуальные ушки"
    от andrews в разделе Игры
    Ответов: 1
    Последнее: 20.12.2008, 15:43

Ваши права

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