Перейти к содержанию
Форум Dosgames

Dangerous Dave (Опасный Дэйв) (1,2,3,4). Всё об игре.


Crazy Daver

Рекомендуемые сообщения

  • Ответов 727
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Да, конечно подойдёт.)

Хорошо.

Мой конвертер тайлов работает только с изображением без сетки. Для того чтобы всё работало правильно, допишу программу, которая будет добавлять/убирать сетку.

Изменено пользователем Crazy Daver
Ссылка на комментарий
Поделиться на другие сайты

Вот и программка.

Инструкция: Если в изображении с тайлами сетки нет, то программа её добавит. В противном случае - уберёт её.

Примечание: Перед запуском tiles_bmp_to_dd2 надо обязательно убрать сетку.

Ссылка на комментарий
Поделиться на другие сайты

Вот и программка.

Класс! Обязательно добавлю.

Начал заново делать скриншоты всех уровней из второго Дэйва, т.к. с твоими программками качество лучше получается. Для большинства уровней скриншоты делаются правильно, а вот для уровней Dangerous Dave 2 - "Original Level 1 ( Edited )" и первого уровня из Dangerous Dave 2 ( Commander Keen Engine ) скриншоты делаются неправильно. А для стандартных уровней из Dave 2 вообще делаться не хотят. Распаковываются вроде нормально, а скриншоты не делаются. В чём может быть проблема?

Изменено пользователем Aspirin18
Ссылка на комментарий
Поделиться на другие сайты

Для большинства уровней скриншоты делаются правильно, а вот для уровней Dangerous Dave 2 - "Original Level 1 ( Edited )" и первого уровня из Dangerous Dave 2 ( Commander Keen Engine ) скриншоты делаются неправильно.

Попробовал сделать для них скриншоты. У меня для этих уровней они правильные получились.

А для стандартных уровней из Dave 2 вообще делаться не хотят.

И с ними у меня всё нормально получилось.

Вот правильный порядок действий:

1) Распаковать нужный уровень (LEVEL0*.DD2) в LEVEL0*U.DD2 с помощью ‘unpacker_dd2_levels.exe’. (Если файл не появился, значит произошла какая-то ошибка и уровень не распаковался).

2) Переименовать LEVEL0*U.DD2 в LEVEL0*.DD2 (перед этим удалив или переименовав во что-нибудь запакованный LEVEL0*.DD2).

3) Положить изображение с тайлами (без сетки) 'tiles.bmp' в папку с нужным уровнем.

4) Запустить ‘level_dd2_to_bmp.exe’.

Ссылка на комментарий
Поделиться на другие сайты

2) Переименовать LEVEL0*U.DD2 в LEVEL0*.DD2 (перед этим удалив или переименовав во что-нибудь запакованный LEVEL0*.DD2).

Спасибо! Если переименовать, то для этих уровней что я написал всё правильно получается. Хм... это видимо из-за того что эти два уровня были сделаны не с помощью редактора Зерноеда, а как-то иначе или были в последствии адаптированы для движка игры Commander Keen, что привило к некоторым изменениям. А стандартные уровни делал Джон Ромеро в своём редакторе, который отличается от редактора Зерноеда. Изменено пользователем Aspirin18
Ссылка на комментарий
Поделиться на другие сайты

Не могу перевести эту часть текста. Пытался через разные переводчики, получается бессмысленный набор слов. Кто может, переведите это пожалуйста:

The game executable is dave2.exe, game logic is not spanned over other files (neither code nor script.) Hexediting the files, I noticed that most files start with a nice HUFF signature. The level%02d, egatiles.dd2 and intro.dd2 are the only files that seem uncompressed. Furthermore, they are the smallest files on disk.

So, the first step was figuring out what is this HUFF mambo jambo. Firing up my favorite disassembler, I got down to work. Locating the code that checks for that magic signature was quite simple. I copy-pasted the assembly code onto a clean .c file, and started working out some sense in those nasty loops. Soon enough, I had this neat 90 lines Huffman decompressor and it unpacked all HUFF .dd2 files flawlessly. I was amazed to find out such a simple compression saved ~50%, which is the difference between a game on two floppies and on one. Sweet.

Изменено пользователем Aspirin18
Ссылка на комментарий
Поделиться на другие сайты

Корявенький перевод, но для начала сойдёт. Комментарии в квадратных скобках.

Файл запускающий игру — dave2.exe, логика игры никак не завязана на другие файлы (ни код, ни скрипт).

[то есть вся логика игры сосредоточена в файле dave2.exe]

Просматривая файлы hex редактором, я заметил, что большинство файлов начинаются с милой сигнатуры HUFF. Файлы level%02d, egatiles.dd2 и intro.dd2 - единственные файлы, которые похоже не сжаты. Кроме того они являются наименьшими на дискетке.

[в данном дистрибутиве]

Итак, первым шагом было выяснение смысла сигнатуры HUFF. Запустив свой любимый дизассемблер, я приступил к работе. Найти код, который проверяет наличие этой волшебной сигнатуры было довольно просто. Я скопировал ассемблерный код в чистый *.c файл, и стал разбираться со смыслом этих мутных [а фиг знает какой именно смысл в это слово вкладывал автор] циклов.

Довольно скоро передо мной были эти изящные?

[опять же. фиг знает какой именно смысл имел в виду автор

из, например, такого набора

чистый/опрятный/аккуратный/чёткий/ясный/лаконичный/

хорошо сделанный/искусный/изящный/точный/краткий]

90 строчек кода, выполняющего распаковку по методу Хаффмана,

[вообще говоря коряво, есть сжатие по методу/алгоритму Хаффмана, а как назвать обратный процесс лень думать. Может и распаковка пойдёт, ну или можно тупо декомпрессию, в общем лень думать ))]

и он безупречно распаковал [повторно распаковка — надо бы заменить чем...] все *.dd2 файлы с сигнатурой HUFF.

Я был поражён, что такое простое сжатие сэкономило 50% общего объёма, в этом и есть различие между игрой на двух дискетках и игрой на одной. Классно.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо! Попытаюсь разобраться что к чему.

Вот, полностью откорректировал как смог первую часть статьи. Со временем буду остальные добавлять.))

Глобальная статья о Dangerous Dave in the Haunted Mansion

Ссылка на комментарий
Поделиться на другие сайты

На конец то интернет починили! Опять сюда почаще заходить буду!

Не могу перевести эту часть текста. Пытался через разные переводчики, получается бессмысленный набор слов. Кто может, переведите это пожалуйста.

Помогу, половину уже перевёл.
Ссылка на комментарий
Поделиться на другие сайты

Daver, можеш выложить исх. код проги для создания скриншотов уровней?

Изменено пользователем kabuto_
Ссылка на комментарий
Поделиться на другие сайты

Daver, можеш выложить исх. код проги для создания скриншотов уровней?

Изменено пользователем kabuto_
Ссылка на комментарий
Поделиться на другие сайты

Разобрался со структурой файла EGATILES.DD2

Я чуствую себя дауном. Ничего понять вних не могу! Помиги, пожалуйста, чем хочеш отплачу.

________________________________________________________________________________

Вытут как я прочитал письмо Ромеро отправляли? Можно ли мне его увидеть? Если нет то ладно, я всё равно к нему отношения не имею!

________________________________________________________________________________

Не могу перевести эту часть текста. Пытался через разные переводчики, получается бессмысленный набор слов. Кто может, переведите это пожалуйста:

В игре исполняемым файлом является dave2.exe, логика игры, не натянуть на другие файлы (ни кода, ни скрипта.)

Открывая файлы hex редактором, я заметил, что большинство файлов начинаются подписи Хафф. Level%02d, egatiles.dd2

и intro.dd2 это те файлы, которые кажутся сжатыми. Кроме того, они являются самыми маленькими

файломи на диске.

Таким образом, первым шагом было выяснение того, что это за Huff белиберда. Запустив мой любимый дизассемблер,

я приступил к работе. Получил код, который показал, что всё довольно просто. Я копировал-вставлял

ассемблированный код на на чистый .C (это файл C++) файл, и начал отлаживать его. Достаточно скоро,

я имел этот аккуратный 90 строчный huffman декомпрессор и распаковал все Huff. DD2 файлы безупречно. Я был

поражен, обнаружив такую степень сжатия ~ 50%, что было разницой между игрой на двух дискетах и одной. :)

The game executable is dave2.exe, game logic is not spanned over other files (neither code nor script.)

Hexediting the files, I noticed that most files start with a nice HUFF signature. The level%02d, egatiles.dd2

and intro.dd2 are the only files that seem uncompressed. Furthermore, they are the smallest files on disk.

So, the first step was figuring out what is this HUFF mambo jambo. Firing up my favorite disassembler, I got

down to work. Locating the code that checks for that magic signature was quite simple. I copy-pasted the assembly

code onto a clean .c file, and started working out some sense in those nasty loops. Soon enough, I had this neat

90 lines Huffman decompressor and it unpacked all HUFF .dd2 files flawlessly. I was amazed to find out such a

simple compression saved ~50%, which is the difference between a game on two floppies and on one. Sweet.

________________________________________________________________________________

То есть он сразу вырвал код huffman распаковщика дизесемблируя Dave2.exe. Умно но сложно.

Изменено пользователем kabuto_
Ссылка на комментарий
Поделиться на другие сайты

Daver, можеш выложить исх. код проги для создания скриншотов уровней?

Вот исходник.

Я чуствую себя дауном. Ничего понять вних не могу! Помиги, пожалуйста, чем хочеш отплачу.

Хорошо, чуть позже напишу о структуре EGATILES.DD2. На самом деле там опытным путём можно во всём разобраться.

Сейчас буду писать распаковщик/упаковщик для INTRO.DD2 (там хранится эмблема Gamer's Edge). Далее напишу программку, с помощью которой можно будет вставить вместо эмблемы Gamer's Edge свой рисунок.

Потом надо будет разобраться с алгоритмом Хаффмана. Если пойму как с помощью него распаковывать/запаковывать файлы со спрайтами и заставками, то позже можно будет вставлять и вместо них свою графику.

В связи с этим, мог бы кто-нибудь перевести эту информацию об алгоритме Хаффмана?:

-------------------------------------------------------------------------------

COMPRESSION:

I hope I don't need to explain Huffman compression, it's common enough. Huffman

involves making a 'dictionary' of 256 entries, one for each possible 1-byte

character. This is organized in the form of a 'binary tree' which is basically

formed by taking the two lowest frequency entries and combining them into a

new entry with thier added frequencies and repeating until all entries are

reduced to one.

After the dictionary is created, we can replace every character of data with the

BIT representation from the tree

An example is as follows:

Compress the word 'HUFFMAN'

1.) Frequencies are 1: H,U,M,A,N 2: F

2.) Make a binary tree: (Here left = 0 and right = 1)

'Root node'

*

/ \

/ *

/ / \

* * *

/ \ / \ / \

F N M A H U

3.) The first letter is 'H'; this on the tree is '100' The next letter is 'U'

whic is '000' The third letter is 'F' which is '11' (Notice common letters have

shorter strings?) and so on. The final output in bits is '100000111111001001'

This is not of course the optimum huffman tree, but that doesn't matter, ANY

tree will do. As bytes the output s thus: '10000011 11110010 01000000' (We

pad the end bit with nuls.) or $83 $F2 $40

We have a reduction from 7 bytes to 3, over 50%!

Note that the number of node (*) is the number of different characters minus one,

and that the maximum path length (3 nodes) is n, where 2^n is the SMALLEST power

of two LARGER than the number of different characters (2^3 = 8, > 6)

-------------------------------------------------------------------------------

NODE STRUCTURE:

Since Dave is compressing data possibly containing all possible 255 characters, it

will need 254 nodes, which are stored as 4-bit entries. Each node can be thought of

as consisting of two 'branches' of two bytes. The second byte is either 0 or 1, and

says whether that branch goes to a character (0) or another node (1) The first byte

is the value of either that character or that node.

In the huffman table then we can expect to see each possible character TWICE, once as

a character, once as a node reference. (Oh and 256 $01s and 258 $00s) Note that the

nodes are numbered from 0-253, NOT 1-254.

The root node is ALWAYS node 254 (Number 253!) and should always be something like

$xx $yy $00 $00 (Since 0 is the most common character it is closest to the root.)

-------------------------------------------------------------------------------

Изменено пользователем Crazy Daver
Ссылка на комментарий
Поделиться на другие сайты

кусок переведу попозже

но в данном конкретном куске очень мало того, что относится именно к Дэйву

проще, наверное, почитать статьи, типа этих

http://www.codenet.ru/progr/alg/huffman.php

http://algolist.manual.ru/compress/standard/huffman.php

http://compression.ru/download/huff.html

http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%...%B0%D0%BD%D0%B0

и поглядеть реализации

я проглядел их

вроде всё понятно

Ссылка на комментарий
Поделиться на другие сайты

Перевести не смог, извини.

Но вроде никапал русскую информация и исходнини депакеров.

Архив качать тут

Ссылка на комментарий
Поделиться на другие сайты

проще, наверное, почитать статьи

и поглядеть реализации

я проглядел их

вроде всё понятно

Сам алгоритм мне тоже понятен, я только не понял как записывается дерево в запакованный файл, точнее что именно записывается и в каком порядке.

Если это пойму, то написать свой распаковщик/запаковщик дело времени.

А что всё-таки с фан-сайтом по Дэйву? Кто-нибудь думал над ним? Материалов для него уже более чем достаточно.

Есть у кого-нибудь ещё предложения по дизайну?

Ссылка на комментарий
Поделиться на другие сайты

Все твои проги вместе но с интерфейсом. Понятным интерфейсом. Все права за тобой.

Изменено пользователем kabuto_
Ссылка на комментарий
Поделиться на другие сайты

С сайтом не понятно что делать. Евгений Данковский обещал 1 Гиг выделить, мы были не против. Не знаю что делать, его ждать или... Все файлы по Дэйву на моём сайте занимают 105 Мб, если видео не добавлять. Предложение о Юкозе остаётся в силе.

Ссылка на комментарий
Поделиться на другие сайты

я ежедневно слежу за вами ) в течение всего дня) с юкозом смотрите сами, если вас не парит можно и на нем сделать.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...