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

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

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

Ответвление dosbox...

Тема в разделе "Мастерская", создана пользователем Tarmik, 13 окт 2014.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.247
    Tarmik, я не понял, что за TSR? Ты разве не ресурсы меняешь на новые? По идее там должен быть просто PCM обычный.
     
  2. Butz (Butz)

    Butz

    Переводчик

    Регистрация:
    1 дек 2009
    Сообщения:
    816
    Это официальная локализация, ее проводили разработчкии игры.
     
  3. vetalique

    vetalique

    Регистрация:
    25 авг 2010
    Сообщения:
    1
    Список изменений впечатляет.
     
  4. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    +65537!
    Ну дык не согласен - не публикуй результат, этот вопрос обсосан не один десяток лет назад.
    Да не, переделывать-то можно, - публиковать нельзя, если лицензия не нравится.
    Э... я б сказал бы, что пихать в .exe'шник любые библиотеки, независимо от их "сторонности", - глупо. Или я где-то туплю и есть в этом действии хоть какой-то смысл?
    Ну. Есть игра, есть .conf-файл в качестве стартера, тычок в него мышом и играешь. В чём проблема?
     
  5. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Если имеется в виду статическая линковка, то смысл таки есть.
     
  6. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    > Tarmik, я не понял, что за TSR? Ты разве не ресурсы меняешь на новые? По идее там должен быть просто PCM обычный.

    Я так и не нашёл где сохраняется таблица file offsetов, сейчас я думаю она находится где-то в районе tentacle.001. Это самое лучшее предположение. Как он там encodiniroван не знаю. По исходником и дисассемблер листингу разработчики игры любили развлекатся с xorом и shift left & shift right, как он там закодирован я так и не понял.

    TSR делает просто то что перенаправляет file offset запрос с одного файл offseta не другой. например - игра запрашивает voc с MONSTER.SOU по оффсету 0х3C4D - TSR перенаправляет запрос на seek на другой оффсет - например на 0x1470.

    Относительные запросы (SEEK_CUR) так и двигается по новому file offsetу как и обычно.

    Короче грязно, страшно, но работает. Если кто разберется как file format в tentacle.001 запакован, с удовольствием помогу сделать разпаковщик / запаковщик. Пока что у тех у кого я спрашивал мне не ответили.

    ---------- Сообщение добавлено в 21:58 ---------- Предыдущее сообщение размещено в 21:52 ----------

    > Это официальная локализация, ее проводили разработчкии игры.

    Понятно. Кстати я их пытался найти. Официально Lucas Arts загнулся и его перекупил Disney. Часть хороших спецов теперь работают все так же над играми но в других компаниях - например Tim Schafer на Double Fine Productions. Они мне официально заявили что лицензия принадлежит Disney. С Disney мне так и не ответили - думаю там от этих игр остались если и исходники - то пылятся где то на полке. И Disney вроде как активно хороших игр больше не пишут. Я имею ввиду хороших старых игр, с сценарием, шутками, и т.д. Думаю оттуда так никто и не ответит.

    ---------- Сообщение добавлено в 22:04 ---------- Предыдущее сообщение размещено в 21:58 ----------

    > Список изменений впечатляет.

    Расслабься пока что. :)
    Вчера эксперементировал с Taewoongским dosboxом- оттуда заберу save & load state.
    Уже пробовал - у меня вроде заработало. Но буду сам побитно выдирать что захочу.
    DirectX & opengl не коснусь если вы меня не переубедите что это стоящая вещь.
    Pixelshader это конечно весело, но мне хватит CPU, на GPU не хочется лезть.
    Кстати - что бы вы хотели взять и Taewoongского dosbox:а ?

    Не подскажете кстати какую нибуть досовскую игру где есть красивые менюшки ?
    (эффектные, красивые, прорисованные, анимационные). Игра сама не интересует, интересует именно менюшки.
     
    Dimouse нравится это.
  7. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Tarmik, актуальной задачей остаётся лишь создание эмулятора или VM с адекватной поддержкой windows 98SE, соответственно эмуляции чего то типа P4 2000/512Mb/GF6800 256Mb/3Dfx по максимуму. Всё. Переделывание досбокса из досбокса в досбокс - как ты видишь по отзывам, не особо кого интересует.

    По факту, необходимость именно в таком эмуляторе назрела уже давно.
     
    grinder, Manif, yplus и ещё 1-му нравится это.
  8. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    > Tarmik, актуальной задачей остаётся лишь создание эмулятора или VM с адекватной поддержкой windows 98SE, соответственно эмуляции чего то типа P4 2000/512Mb/GF6800 256Mb/3Dfx по максимуму. Всё. Переделывание досбокса из досбокса в досбокс - как ты видишь по отзывам, не особо кого интересует.

    Дело было вечером, делать было нечего. :)

    Хочу попробовать reverse engineering... Точнее re-engineering.
    Ах да, GPL лицензия.... да, да... для всех я переделываю dosbox в dosbox...
    :-)
     
  9. sev_

    sev_

    Регистрация:
    5 июл 2007
    Сообщения:
    131
    Пытаться запускать Day of the Tentacle под DosBox, а не под ScummVM... Замечательно обоснованный старт проекта.

    PS. Если что, ScummVM тоже под GPLv2.

    PPS. И 2xsai там тоже есть
     
    Ulysses нравится это.
  10. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    Кстати - DOTT начали локализировать до меня, DiMouse может сказать точнее кто.
    Дело в том что как я попробовал - scummvm почему то неправильно показывал русские фонты в переведенной версии. Я думаю scummvm обошли какой то угол в эмуляции, из-за чего фонты отоброжаются неправильно. Может кстати DiMouse знает почему он так работает.

    Ну и кстати TSR загрузку он не поддерживает out-of-box.

    И поддержки дебаггера там нету ?

    Да уж. Масло маслянное в принципе.


    Кстати - я добавил поддержку Load/Save state - пока что оперирует по клавишам - Alt+F5 - save, Alt+F9 - load, Alt+F7/F6 - next/prev state. Надо будет ещё куда нибуть в менюшки запихать. Opengl и direct x, а также кое какие поддержки как pci, vodoo, не трогал.
     
  11. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.247
    Tarmik,
    Вероятно, потому, что там нет русских шрифтов для этой игры.
     
  12. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    нет, я пробовал те же файлы что запускал с dosbox.
    или думаешь в scummvm надо ещё что то закопировать ?
     
  13. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.247
    Tarmik, в ScummVM шрифты берутся не из ресурсов, а вставляются в код самого ScummVM.
     
  14. pct

    pct

    Регистрация:
    25 окт 2009
    Сообщения:
    3.357
    Про враппер nGlide и его поддержку в сборках Ykhwong's, CosmicDan's, Gulikoza's, ты конечно не слышал. И вообще-то в DosBox уже лежит glide2x.dll. Это я тебе говорю как рядовой пользователь.
     
    Bato-San нравится это.
  15. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    а это что и зачем оно нужно ?
     
  16. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    Короче напишу всем - может найдутся единомышленники.

    Итак - что я хочу.... Я хочу взять игру и reverse engineerить её обратно в исходники.
    Так как восстановка обратно из ассемблера довольно кропотливое и грязное дело лучше что бы как можно больше работало автоматом - т.е. без моего участия. Но думаю без человека не обойтись, т.к. он определяет как программа будет структурирована - те же структы. Interactive disassembler pro - это что то аналогичное и уже умеет делать грязный c код из ассемблера. Так как восстановка обратно это обычно не 1:1 с ассемблер кодом - то наилучший вариант тестировать сразу же после изменения аппликации - например с досбоксом.

    Думаю полной reverse engineering систему никогда не достигнуть, но моя идея хотя бы научиться лучше ломать игры при надобности, возможно перекинуть свои знания на disassemblerование IL кода позже.

    Например в Dott file offsetы encyprtятся - как их разкопать.

    Хочу начать с частичной переделкой программы. Например - отлавливаешь в dosbox все запросы начтение файла, затем дисассемблируешь ту функцию что читает файл и заменяешь его на нативный код - т.е. изменение dosbox:a - он будет в себя перебирать запчасти Dott. Конечной целью будет Dott разботающий под windows без layerов эмуляции. Впрочем я смотрю реально на вещи - это мне вряд ли достигнуть из-за большого количества кода и в досбоксе и в самой игре. (dosbox).

    В идеале весь досбокс код будет уничтожен или заменен на MIT лицензированный код.

    Начинать можно с того что ассемблер код будет реассемблироваться в аналогичный C код как в эмуляции - т.е.

    mov ax, bx

    =>

    rax = rbx;

    или
    mov ah, 3Dh
    int 21h

    =>

    OpenFile(...)


    Кстати - уже заметил что мой последний буйлд не работает нормально с некоторыми играми - например little big adventure, или грязного выдирания кода с Wong dosboxa. Но я начну работать с Dott (а с ним работает), поэтому пока фиксить это не буду.
    Неплохо сначала сделать каркас будущего прототипа - особенно учитывая что хороших дисассемблеров в инете нету.

    Итак начну с файловой системы - file open, file read, file close.
    Уже заметил что dosbox поддерживает эмуляцию fat и iso, думаю они не нужны, уберу их совсем - просто что бы было меньше запарки.

    Кстати, было бы неплохо если бы код компилировался на лету без перезапуска dosbox, но думаю начну с перекомпиляции dosbox. С clang/cling когда то экперементировал, но это дебри кода. Можно было бы C# впихнуть - он умеет компилироваться на лету < 20 строк кода, но в managed c++ дебри не хочется лезть - к тому же будет работать медленее. Чистый c++ или c без украшений.

    Кстати - что такое glide действительно не знаю, но и не уверен что хочу знать. :-)
     
    Dimouse нравится это.
  17. Grue13 вице-дегенералиссимус

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    10.111
    Зачем заниматься реверс-инжинирингом DotT, когда уже есть ScummVM с открытым кодом, который этот DotT спокойно запускает на уровне работы напрямую с самими ресурсами игры? То есть авторы ScummVM уже сделали реверс-инжениринг DotT и написали свой движок, копирующий DoTT и позволяющий играть в него на Windows, Linux, Mac, Android и т.д.... Это не эмуляция как в досбоксе, в ScummVM именно используется реверс-инжиниринг движка.
     
    Последнее редактирование: 25 окт 2014
    Butz и Ulysses нравится это.
  18. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Grue13, он хочет "сделать всё сам". Правда уровень подхода какой то дошкольный, по принципу "своё строить не умею, поэтому буду ломать чужое". Учиться он не предрасположен, поэтому мы видим ещё один (из многих до него) проектов декомпилятора "чтобы сразу в ЦЫ !"

    Запасаюсь попкорном в ожидании новых статей о перехвате "функций дос из досбокс". Такого у Петросяна не увидишь. :D
     
    Ulysses нравится это.
  19. Tarmik

    Tarmik

    Регистрация:
    23 авг 2014
    Сообщения:
    38
    Хочу научиться
    1. ломать игры получше
    2. вытащить исходники оригинальной игры , например dott, с последующей возможностью создать свою аналогичную игру отличную от оригинальной.
    3. ознакомится с возможностями reverse engeneering.

    ---------- Сообщение добавлено в 12:19 ---------- Предыдущее сообщение размещено в 12:12 ----------

    В досбоксе этим занимается DOS_OpenFile, но эта функция ориентирована под дос.
    Если мы будем говорить о рекомпилации dott или другой игры под windows, linux или ещё куда, то эта функция совственно out-of-date. Например максимум handlов под dos 255 - но зачем это эмулировать не совсем понятно, это ошибка с точки зрения конечного пользователя.

    Что сложно - это я думаю disassemblerирование асм кода и превращение его в читательный код.

    У меня свои дети, так что времени не уйма, и помощь лучше предлагать в конструктивной форме а не деструктивной.
     
  20. Grue13 вице-дегенералиссимус

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    10.111
    Я же говорю - движок SCUMM, на котором написан DOTT, как раз и зареверсинженирен в ScummVM.

    DOTT как бы состоит из двух частей: движок и ресурсы игры. Коды движка можно посмотреть в исходниках ScummVM, ресурсы (в которые включаются внутриигровые скрипты типа "что будет, если нажать на кнопку на локации в игре") тоже можно вытащить из LucasArt-овских игр типа DOTT специальными программами (название программы правда забыл, но где-то на форуме ScummVM она упоминается).

    Пользовательские фанатские неофициальные игры на основе DOTT уже существуют - Road и Open Quest.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление