doom2d.org

Главная база плоских морпехов
It is currently 28 Jan 2023, 19:41

All times are UTC + 3 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 03 Dec 2022, 19:57 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 457
Location: Equestria
Отреверсил оригинальный бинарь и добился сборки почти байт-в-байт. Имеется несколько незначительных различий, которые пока не удалось ликвидировать, но они не влияют на работу игры.

Как собрать:
- Запустить dosbox
- Установить Watcom C/C++, подойдёт любая версия веток 10/11
- Установить Turbo Assembler, подойдет любая версия начиная с 3.x
- Убедиться что переменные окружения настроены правильно и указывают куда надо (%PATH% %INCLUDE% %WATCOM% %EDPATH%)
- Запустить BUILD.BAT
- Забрать DOOM2D.EXE из директории GAME

Как собрать байт-в-байт:
- Пропатчить исходники патчем b2b.patch (там присутствуют некрасивые хаки)
    patch --binary -p0 -i B2B.PATCH
- Запустить dosbox
- Установить Watcom C/C++ 11.0 (именно эту версию, без патчей 11.0a/11.0b/11.0c)
- Установить Borland C++ 3.1 или Borland Pascal 7.0 (именно эти версии)
- Положить в директорию GAME файл WSTUB.EXE от Watcom C/C++ 10.0 (именно от этой версии, без патчей)
- (опционально) В GAME/BUILD.BAT в переменной PP1 указать путь к wpp386 от Watcom C/C++ 10.0b (чуть более точная сборка С++ кода)
- Убедиться что переменные окружения настроены правильно и указывают куда надо (%PATH% %INCLUDE% %WATCOM% %EDPATH%)
- Запустить BUILD.BAT
- Забрать DOOM2D.EXE из директории GAME

Что изменилось в сравнении с 1.35:

Code:
- Отсутствие видеоролика A8 более не является фатальным
- Расширен обзор в одиночной игре
- В одиночной игре количество жизней у игрока уменьшено до одной (в 1.35 три жизни), количество жизней не отображается в интерфейсе
- Размер неба увеличен до 256x256
- Игрока может разорвать на куски, камера движется за оторванной головой
- По умолчанию подключается DOOM2D.WAD вместо CMRTKA.WAD
- В меню выбора цвета игрока рисуется оружие
- Сохранения не совместимы с 1.35 (и это не проверяется кодом)
- В DM шары импов наносят увеличенный урон (15 единиц)


(Не)известные приколы 1.40:

Code:
- Добавлен режим BOTMATCH (DM c ботами). Данный пункт меню скрыт и не доступен.
  В этом режиме бот просто прыгает на месте (зажимает кнопку прыжка) и больше ничего не умеет.
- Добавлен новый код для защиты от копирования (отключена и данное поведение не происходит ни при каких условиях, как предполагалось - неизвестно):
  1) DOOM2D.WAD портится записью поверх строки "It is a nice day, isn'it it?"
  2) Создаётся файл readme с текстом:
      Надеемся, что Вам понравилась эта игра.
      К сожалению, эта копия была незаконной.
  3) DOOM2D.WAD удаляется.
- При выходе из игры, в случае неудачного выделения памяти для ENDOOM, выводится текст "Спасибо за то, что вы играли в Doom2D!".
  (В 1.35 было "Спасибо за то, что вы играли в Операцию "Смятка"!")
  Данного поведения крайне трудно добиться, скорее всего невозможно.
- Несмотря на то что в одиночной игре всего одна жизнь, этот код не удалён и работает. Жизни можно добавить редактированием файла сохранения.
- Технически трупы и куски игрока являются мёртвыми монстрами со всеми вытекающими. (так же и для 1.30)


Планы на будущее:
- Отреверсить EDITOR.EXE и SETUP.EXE.
- Добиться сборки точно байт-в-байт и без хаков.

Не исключено что часть кода ботов собрана Watcom 11.0c beta, так как код более похож на тот что генерирует 11.0b и 11.0с. Оригинальный бинарь 1.40 датирован 09-09-2001, как раз где-то в это время вышла бета-версия 11.0с. Возможно это решение проблем сборки байт-в-байт кода С++. Однако я не смог найти эту версию компилятора. Файл watcom-c-11.0c-b1.exe не сохранился в интернет-архиве на сайте OpenWatcom.

Полезные линки:
Borland C++ 3.1: http://archive.org/details/bcpp31
Watcom С/С++ 10.0: http://deadsoftware.ru/files/deaddoomer/WATCOM.zip
Watcom C/C++ 11.0: https://winworldpc.com/product/watcom-c-c/110b
Watcom C/C++ 11.0c: http://web.archive.org/web/200402020914 ... -11.0c.exe


Attachments:
File comment: WSTUB.EXE для сборки в режиме байт-в-байт
wstub.exe [10.36 KiB]
Downloaded 9 times
File comment: Исходники проекта реверса Doom2D 1.40 для radare2 и ghidra 10.1.2 + ghidra-lx-loader 10.1.2
REVv140.zip [1.11 MiB]
Downloaded 9 times
File comment: Исходник Doom2D 1.40
SRCv140.zip [106.23 KiB]
Downloaded 13 times
Top
 Profile  
 
PostPosted: 04 Dec 2022, 14:36 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 6005
Location: Владивосток
Как всегда супер. Спасибо за старания!!

DeaDDooMER wrote:
Не исключено что часть кода ботов собрана Watcom 11.0c beta, так как код более похож на тот что генерирует 11.0b и 11.0с. Оригинальный бинарь 1.40 датирован 09-09-2001, как раз где-то в это время вышла бета-версия 11.0с. Возможно это решение проблем сборки байт-в-байт кода С++. Однако я не смог найти эту версию компилятора. Файл watcom-c-11.0c-b1.exe не сохранился в интернет-архиве на сайте OpenWatcom.
Решил попробовать поискать эту версию и вроде бы обнаружил. Подробная история поиска под кнопкой.

В английской Википедии есть история версий, где указано, что 11.0c Beta вышла 2001-09-27.
Вот здесь есть копия пресс-релиза о выходе этой версии: https://forums.openqnx.com/t/topic/22344
Cesar_Hernandez wrote:
Cesar H.

FOR IMMEDIATE RELEASE
For more information please contact:
Andrew Bloo, Product Marketing Manager
SciTech Software, Inc.
(530) 894-8400
andrewb@scitechsoft.com

SciTech Announces Watcom 11.0c Beta Release
Update Paves the Way for Massive Open Source Effort

Chico, Calif., September 27, 2001 – SciTech Software, Inc. today announced the beta release of the 11.0c update to the popular WatcomT C/C++ and Fortran compilers. The patch includes a number of eagerly anticipated fixes and enhancements and can be downloaded, free of charge, from the Open Watcom web site at http://www.openwatcom.org. Support for the update will be handled exclusively through the Open Watcom web site.

“This binary update will immediately aid thousands of active Watcom developers,” said Rob Veitch, Director of Business Development at Sybase®, “This release shows Sybase’s commitment to its customers and it demonstrates that SciTech Software is up to the task of assuming the leadership role in the Open Watcom development effort.”

Jointly developed by Sybase, SciTech and a core team of Open Watcom developers, the 11.0c update is the first new release of the Watcom compilers in over three years. The Watcom 11.0c release is a prelude to the to the forthcoming Open Source release.

“We’re honored that Sybase selected SciTech to lead the Open Watcom effort. This step represents a major milestone in that process,” said Kendall Bennett, SciTech’s Director of Engineering.

About Open Watcom
The Watcom C/C++ and Fortran products will be the first mass market, proprietary compilers to be Open Sourced and, weighing in at nearly three million lines of source code, will represent one of the largest pools of commercial source code of any type ever released under an Open Source license. Sybase, Inc. developed the original Watcom code and SciTech Software, Inc. is the official maintainer of the project.

The Open Watcom project has stirred tremendous interest among developers worldwide. Thousands have already joined the Open Watcom community at http://www.openwatcom.org in order to use Open Watcom and contribute to its further development.

Watcom supports software development in Windows, DOS, OS/2, Netware, QNX, and other operating systems (a Linux version of Open Watcom is planned). The Open Watcom web address is http://www.openwatcom.org.

About SciTech Software, Inc.
SciTech Software, Inc. is the leading supplier of PC graphics utilities, drivers, and tools for high-performance graphics applications, including computer games. SciTech’s products help users fix graphics hardware problems and allow software developers to achieve maximum performance from PC graphics hardware. SciTech’s products include SciTech Display Doctor, the only universal display driver, SciTech GLDirect, an OpenGL to Direct3D driver and SciTech MGL, an Open Source, professional graphics library used to develop some of today’s most popular software programs. SciTech products support the Windows, Linux, OS/2, DOS, QNX, and SMX operating systems. Many major software companies and hardware companies license portions of SciTech’s technology for incorporation in their products. SciTech is privately held and the company’s Web address is http://www.scitechsoft.com.

В сообщении на ЛОРе (https://www.linux.org.ru/news/opensource/124140?cid=124473) упоминается примерный размер этого файла - 46 мегабайт.
anonymous wrote:
Скачал с http://www.openwatcom.org/ этот 46 метровый watcom-c-11.0c-b1.exe, а он оказался update для предыдущих версий :(((

По другой ссылке (http://www.6809.net/tenk/html/prog/free_cc.htm) упоминается размер в 40 мегабайт (вероятно, просто округлённый до целых десятков).
Quote:
ダウンロードして(watcom-c-11.0c-b1.exe 40M超ある^^;)インストールできるが、 スタートからのプログラムメニューにはアップデートプログラムしか入ってないだろう。

Есть две основные официальные ссылки, по которым он был доступен для скачивания:

Удалось найти старую новостную ленту, посвящённую компиляторам Watcom:
Quote:
11/03/2001
    Looks like there's some confusion in the community about what 11.0c offers to developers. The following list from Stephen Howe [TeamSybase] (Open Watcom core developer) should help:

      'Out-of-the-box, with no previous version of Watcom, you can build with 16-bit DOS targets, with 11.0c Beta
      Out-of-the-box, with no previous version of Watcom, you will be able to build 32-bit DOS targets, with 11.0c non-Beta (so you can't do it with 11.0c Beta as no DOS4GW.EXE but with 11.0c, non-Beta, DOS4GW.EXE will be bundled).
      If you download Microsoft Platform SDK, convert COFF import libraries from VC++ 6.0 format to VC++ 5.0 format using Microsoft LINK, you can build Win32 executables with 11.0c Beta only.
      A similar story with IBM's OS/2 SDK. With that you can build OS/2 32-bit executables. i think also you can build 16-bit executables but I am not sure.'[/list[/list]

10/07/2001
    After years of silence the last days where somewhat exciting. For Slashdot.org (http://slashdot.org/) the announced beta release of the 11.0c Version was worth an article (http://slashdot.org/article.pl?sid=01/09/30/0220212&mode=thread). If you visit this, make sure you read the comments. Best comment for now: 'It's dead. Let it rest in peace.'
    The Sybase news server had some strange hickups but it seems that it's now back in normal operation.

09/28/2001
    'SciTech Software, Inc. (http://www.scitechsoft.com/) [...] announced the eagerly awaited beta release of the 11.0c update to the popular Watcom C/C++ and Fortran compilers is now available for download (http://www.openwatcom.org/download.html).'
Заодно здесь упомянуто, что аналогичный патчер для релизной версии 11.0c также существовал.

Затем удалось найти упоминание этой версии от NY00123 (автора gamesrc-ver-recreation):
http://www.classicdosgames.com/forum/viewtopic.php?p=8739#p8739
NY00123 wrote:
- As stated above, the repository has a new "kenbuild" directory. Initially, it had the open-sourced Ken-Build release, as uploaded by Ken on June 2000 and later edited on Nov 2002 (just minor edits). I confirmed that the June 2000 GAME.EXE file can be recreated with Watcom C 11.0. I'm not sure about the Nov 2002 revision, but I *guess* that it comes to a Watcom C 11.0c beta, or alternatively another early Open Watcom revision preceding 1.0.
Этот товарищ нам уже опосредованно помог - вероятно, именно от него nyke.ykt в своё время получил Watcom 10.0, упомянутый в прошлой теме.
Я написал ему письмо с вопросом об этой версии - посмотрим, что он мне ответит.

В конечном итоге удалось найти архивы, по всей видимости содержащие необходимую версию:
http://www.dreamlandbbs.com/gfd/devtool/index1.html
Здесь есть 6 архивов (от "watcom1.zip" до "watcom6.zip"), дата заливки которых (26-09-2001) совпадает с упомянутой выше датой выпуска.
Quote:
WATCOM C/C++ Version 11.0c and WATCOM Fortran 77 Version 11.0c ZIP archives - A beta prereleas is available! This compiler to be usefull needs the OS/2 toolkit installed too, but this comes with eCS, ACP and MCP. It will be usefull for developers to

Плюс есть седьмой архив с документацией ("watcomd.zip"), выложенный днём позже (27-09-2001).
Quote:
WATCOM C/C Version 11.0c and WATCOM Fortran 77 Version 11.0c documentation in pdf format.

По неполному описанию к архивам, процитированному выше, удалось найти полный вариант текста:
https://archiv.os2.org/en.os2.org/news/index6f25.html?area=2&type=1&year=2001&month=9
Quote:
Watcom 11c prebeta (from Leonardo Pino)
A beta prerelease is available! This is a patch for older installations but it can be use as a stand alone product. The file is a Win32 installer but works fine with ODIN. To use it one must set the enviromemt variables described on the readme file. This compiler to be usefull needs the OS/2 toolkit installed too, but this comes with eCS, ACP and MCP. It will be usefull for developers to work on device drivers, since many of them were written using this compiler. Thanks to the people at ScitechSoft.

-> URL: ftp://ftp.openwatcom.org/watcom/watcom-c-11.0c-b1.exe

Также набрёл на архив старых DOS'овых компиляторов, собранный неким энтузиастом под ником anormal:
https://www.betaarchive.com/forum/viewtopic.php?t=32055
https://archive.org/details/anormal-executable-tools_202107
Здесь есть в том числе и папка "watcom", включающая даже 10.0, которую мы безуспешно искали. Однако 11.0c Beta нет.
Но на всякий случай я эту папку отдельно извлёк (архив целиком весит 1.6 гигабайт) и прикладываю отдельно.

Всё обретённое положил в папку на Яндекс-Диске:
https://disk.yandex.ru/d/HuoAf4vA7LzGXg
watcom_11.0c_beta_dist.7z - найденные архивы с 11.0c Beta, распакованные в полный дистрибутив
watcom_11.0c_beta.7z - исходные семь архивов с Dreamland BBS
DOSEXE_compiler_pack_0.2_watcom.7z - папка "watcom" из DOS Compilers Pack 0.2

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 04 Dec 2022, 16:06 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 457
Location: Equestria
Черный Думер» 11.0c Beta вышла 2001-09-27.
Получается врядли подойдет. Но можно попробовать, вдруг будет больше совпадений.
Черный Думер» Также набрёл на архив старых DOS'овых компиляторов
Может пригодится, спасибо.
UPD: сверил хэши wcc386. да, там лежат релизные версии 10.0 и 11.0


Top
 Profile  
 
PostPosted: 04 Dec 2022, 16:47 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 6005
Location: Владивосток
В очередной раз благодаря nuke.ykt удалось получить настоящий watcom-c-11.0c-b1.exe, залил его в упомянутую выше папку на Яндекс-Диске.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
doom2d.org, since 2007