Автор | Сообщение |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 12.11.09 05:56:25 | | | Heretic: | Возможно в винде дело. Проверил лонгдэйс на ноуте с вистой, звука нет. Зато на игровом компе с XP с этим все в порядке |
А щас? | |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
Heretic = Warrant Officer =
![Next rank: - 2nd Lieutenant - after 149 points Next rank: - 2nd Lieutenant - after 149 points](images/ranks/12g.png) | 1141 |
![](images/avatars/gallery/2009/117376919244f13d0b91a72.png) Doom Rate: 4.42
|
Отправлено: 13.11.09 08:51:20 | | | Теперь звук есть, да. | |
|
1 |
4 |
3 |
![](images/plus/all.gif) |
|
| |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 13.11.09 17:19:25 | | | Heretic: | Теперь звук есть, да. |
Найс. Значит будем релизить не сегодня, так завтра если ты не против ![:)](images/smiles/icon_smile.gif) | |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
[LeD]Jake Crusher = UAC Marshal =
![](images/avatars/gallery/2005/crusher.gif) Doom Rate: 1.59 Posts quality: +851 |
Отправлено: 16.11.09 00:11:48 | | | Очередной релиз PrBoom Plus. Судя по описанию - исправлено проигрывание MP3/OGG в Vista/Windows 7, а также пофиксены проблемы с небом (растягивание и скроллинг) в режиме скайбоксов. Потом, появилась уникальная фича - захват видео прямо во время игры, ну и устранено несколько багов. Брать отсюда. | |
|
1 |
1 |
4 |
![](images/plus/all.gif) |
|
| |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 16.11.09 04:27:43 | | | Jake Crusher: | пофиксены проблемы с небом (растягивание и скроллинг) в режиме скайбоксов |
Растягивание - это было как бы не проблема и сделано преднамеренно, чтобы уменьшить "шапку" скайдома. Но в конце-концов мы "посовещались" с графом и решили отказаться от этого полностью дабы не калечить пропорции, что иногда достаточно важно. 'forcenoskystretch' MAPINFO параметр в гздуме теперь тоже не должен работать.
Jake Crusher: | Потом, появилась уникальная фича - захват видео прямо во время игры |
Если имеется в виду -avidemo, то этой сомнительной фиче 200 лет в обед. | |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
[LeD]Jake Crusher = UAC Marshal =
![](images/avatars/gallery/2005/crusher.gif) Doom Rate: 1.59 Posts quality: +851 |
Отправлено: 16.11.09 10:15:11 | | | entryway: | Растягивание - это было как бы не проблема и сделано преднамеренно, чтобы уменьшить "шапку" скайдома. Но в конце-концов мы "посовещались" с графом и решили отказаться от этого полностью дабы не калечить пропорции, что иногда достаточно важно. 'forcenoskystretch' MAPINFO параметр в гздуме теперь тоже не должен работать. |
Ну, учитывая то, что я не так силён в этом аспекте, и знаю далеко не всё про PrBoom Plus...
entryway: | Если имеется в виду -avidemo, то этой сомнительной фиче 200 лет в обед. |
На ходу, я имел в виду. Если, конечно, я правильно понял фразу "The new version also introduces a unique feature that facilitates video capture of the in-game footage". Вроде бы о команде avidemo речь не шла...или я что-то напутал, так? | |
|
1 |
1 |
4 |
![](images/plus/all.gif) |
|
| |
Never_Again - UAC Gunner -
![Next rank: = UAC Gunner = after 20 points Next rank: = UAC Gunner = after 20 points](images/ranks/3.png) | 40 |
![](images/avatars/gallery/2011/13403807984ab641524ff89.jpg) Doom Rate: 2
|
Отправлено: 16.11.09 10:51:43 | | | Имелось в виду sdl_video_window_pos. Эта переменная полезна тем, кто гонит HyperCam вместо Frapsa. Fraps хватает окно автоматически, лёгкий метод, но и выбор ограничен. А c HyperCam'ом хошь окно, хошь только часть, а то и весь desktop, если надо, писать можно. -avidemo, конечно, довольно бесполезная штука... facilitates = "облегчает", а не "делает возможным". ![=)](images/smiles/icon_surprised.gif) | |
|
| |
[LeD]Jake Crusher = UAC Marshal =
![](images/avatars/gallery/2005/crusher.gif) Doom Rate: 1.59 Posts quality: +851 |
Отправлено: 16.11.09 11:01:35 | | | Never_Again Тьфу, блин, на этом слове и попался...но по крайней мере, хорошо, что не сказал ещё "делает реальным" ![:)](images/smiles/icon_smile.gif) В любом случае, билд порта вовремя. Надо будет порубать в Hellfire с ним ![:)](images/smiles/icon_smile.gif) | |
|
1 |
1 |
4 |
![](images/plus/all.gif) |
|
| |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 16.11.09 11:51:10 | | | Never_Again: | Имелось в виду sdl_video_window_pos |
Это фича, кстати, не совсем моя. Я просто вынес её в настройки. Для любого SDL порта, если не предпринимается никаких попыток позиционирования окна, можно написать подобный батник:
| set SDL_VIDEO_WINDOW_POS=center glboom-plus.exe |
| |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
Archi]ASTS[ = Commissar =
![Next rank: - UAC Commissar - after 395 points Next rank: - UAC Commissar - after 395 points](images/ranks/19g.png) | 5405 |
Doom Rate: 1.9 Posts quality: +61 |
Отправлено: 08.01.10 13:20:40 | | | В версии 2.5.0.6 есть эдакий глюк, когда жмешь на выход и вместо y или n жмешь enter, то на экране всплывает последнее написанное на экране сообщение сообщение. | |
|
1 |
2 |
1 |
![](images/plus/all.gif) |
|
| |
Never_Again - UAC Gunner -
![Next rank: = UAC Gunner = after 20 points Next rank: = UAC Gunner = after 20 points](images/ranks/3.png) | 40 |
![](images/avatars/gallery/2011/13403807984ab641524ff89.jpg) Doom Rate: 2
|
Отправлено: 08.01.10 21:13:21 | | | Так и положено, как в ванили. | |
|
| |
BND UAC Sergeant Major
![Next rank: Chief Petty Officer after 83 points Next rank: Chief Petty Officer after 83 points](images/ranks/10g.png) | 767 |
![](images/avatars/gallery/doomers/1246827245514c47510ee71.jpg) Doom Rate: 1.58 Posts quality: +141 |
|
| |
Heretic = Warrant Officer =
![Next rank: - 2nd Lieutenant - after 149 points Next rank: - 2nd Lieutenant - after 149 points](images/ranks/12g.png) | 1141 |
![](images/avatars/gallery/2009/117376919244f13d0b91a72.png) Doom Rate: 4.42
|
Отправлено: 14.01.10 15:39:50 | | | Alex-of-persia: | Так и не понял с чем связана данная бага. |
Это обычный ванильный баг - Intercepts Overflow. При желании его эмуляция отключается в прбум+. | |
|
1 |
4 |
3 |
![](images/plus/all.gif) |
|
| |
Never_Again - UAC Gunner -
![Next rank: = UAC Gunner = after 20 points Next rank: = UAC Gunner = after 20 points](images/ranks/3.png) | 40 |
![](images/avatars/gallery/2011/13403807984ab641524ff89.jpg) Doom Rate: 2
|
Отправлено: 14.01.10 16:04:59 | | | Поскольку статья, указанная Еретиком, на английском, вот перевод. Этот баг можно перевести как "переполнение перехватов" . Колин Фиппс, один из програмистов prBoom'а, объясняет:
| "Всепризрачный" Баг
<...>"Всепризрачный" баг - гораздо более странное (чем Archvile баг - N_A) и редкое событие в Думе. Если бы не демы, доказывающие его существование, он, вероятно, считался бы мифом, потому что очень немногие игроки сталкиваются с ним в практической игре - я, по крайней мере, никогда. Действительно, я знаю о существовании только двух дем, демонстрирующих этот баг, и это на них я основываю свой анализ.
Так в чем же состоит этот баг? Внезапно, без какой-либо очевидной причины, все вещи в игре становятся призраками. Все монстры и все игроки становятся бестелесными. Это в конечном итоге срывает любую попытку играть всерьёз, так что такое происшествие трудно просмотреть . <...>
Техническая информация
Хорошо, а чем вызывается "всепризрачный" баг? По-правде говоря, причину довольно труднее объяснить, чем найти; так что я начну с объяснения, как действует cоответствующая секция движка, а завершу самим багом.
Одной из основных операций в движке Дума является способность следовать за линией, и находить все игровые объекты (вещи и линий), которые она пересекает. Это производится функцией p_maputl.c:P_PathTraverse. Она задается точкой начала и конечной точкой и использует блокмапу и некоторые геометрические расчеты, чтобы создать упорядоченный список всего, что преграждает эту линию между теми точками. Хотя эта функция применяется главным обраэом при прямолинейных выстрелах из оружия, она также используется, когда игрок "юзает" (т.е., когда игрок жмёт пробел, движок должен "щупать", есть ли или нет перед игроком двери или переключатели), а также для определения, как игроку скользить вдоль препятствий.
Список препятствий - "перехватов"(intercepts), как Doom их называет - хранится в таблице (array). С типичным для движка Дума качеством кода, это статическая таблица с фиксированным размером пределов в 128 перехватов (MAXINTERCEPTS). А проверка диапазона при вношении перехватов в эту таблицу не производится, что может вызвать переполнение таблицы, с различными неприятные последствиями.
"Но 128-и перехватов должно хватать на любой случай жизни", скажет тут иной читатель. "В конце концов, невозможно натолкнуться на более чем одну стену за один раз, невозможно нажать более чем одну кнопку за один раз, и не невозможно попасть в более чем одного монстра или стену одной пулей. Ведь сам смысл перехватов эаключается в том, что они препятствуют тому, что ты пытаешься сделать, и дальше дело не идёт. Конечно, существуют перехваты, которые не являются препятствиями - например, бонусы и трупы не преграждают путь выстрелам - но 128 перехватов это всё равно более чем высокий предел. В конце концов, doom2.exe шизеет гораздо более очевидным образом при всего лишь 64-ёх вещах или 16-и двусторонних линиях на экране одновременно."
Ну, 128-и должно хватать. Но, раскритиковав скверное осуществление проверки перехватов, пора пожаловаться на неудачный способ, которым используется этот алгоритм. Хотя большая часть кода, занимающегося перехватами, просто ищет первое "попадание", беда в том, что различные секции кода ищут различные типы попаданий. Выстрел может пересечь линию, которая по существу является приземлистой панелью переключателя, но P_PathTraverse не знает, что мы ищем - выключатель или удар; поэтому эта функция должна считать, что поиск может вестись и за тем, и за другим. И она действует соответственно пессимистическим образом: перечисляет каждый перехват между начальной и конечной точкой - независимо от того, что мы ищем только один конкретный - потому что программисты поленились найти способ научить её, что именно надо искать. Каждая секция движка, которая выэывает P_PathTraverse получает полный список перехватов и эатем читает этот список, пока не находит то единственное препятствие, которое её касается - и выбрасывает остальные результаты прочь. P_PathTraverse включает в себя следующий код быстрого завершения, но в действительности он никогда не используется:
extern intercept_t intercepts[MAXINTERCEPTS];
extern intercept_t* intercept_p; Как только таблица перехватов переполняется, она портит указатель (pointer), используемый для хранения новых перехватов. Код начинает перезаписывать память. Неясно, порча ли intercept_p'а ведёт к "всепризрачному" багу непосредственно, или же этот баг является косвенным следствием последующего повреждения памяти. Чтобы ответить на этот вопрос определённо, вероятно, необходимо иметь возможность запускать оригинальный EXE из-под отладчика (debugger) ... |
e6y поправит, если я какой-то технический термин перевёл неудачно, с русской терминологией програмистов я знаком слабо. Возможно, он также разъяснит смысл "кода быстрого завершения" ("some fast exit code" в вышеприведенной статье), что для меня, как не програмиста, загадка.
Статья была написана в 2003-ем, а в 2005-ом Grazza поставил на DW таблицу перечисляющую длинный ряд уровней и их дем, на которых были замечены различные баги, связанные с переполнениями. Одних intercepts_overflow'ов 17 штук. Славный список, только вот с советом по избежанию этого бага неувязка вышла. Какое имеет отношение linedef 0 к intercept overflow'у? Я осенью записал две демы на blacktowr.wad'е, где intercept overflow'ы происходят в довольно далёких от linedef 0'а местах. | |
|
| |
BND UAC Sergeant Major
![Next rank: Chief Petty Officer after 83 points Next rank: Chief Petty Officer after 83 points](images/ranks/10g.png) | 767 |
![](images/avatars/gallery/doomers/1246827245514c47510ee71.jpg) Doom Rate: 1.58 Posts quality: +141 |
Отправлено: 23.01.10 17:52:32 | | | Большое спасибо за разьяснение. Стал спать спокойнее. Уж извините, что достаю, но если не трудно не расскажите ли ещё про одну ошибочку? Вроде бы всё идёт нормально и бац! Выскакивает сообщение вида "I_SignalHandler: Exiting on signal: signal 11". В гугле не забанен - искал, но не нашёл ничего кроме чейнджлога, в котором указано, что этот баг вызывал всего лишь торможение и был исправлен в версии 2.2.6.7. Причём встречается не так уж и редко. Выкладываю дему, записанную на requiem'е. Писал в том же прбум+ 2.4.8.1. http://webfile.ru/4250487 | |
|
| |
Archi]ASTS[ = Commissar =
![Next rank: - UAC Commissar - after 395 points Next rank: - UAC Commissar - after 395 points](images/ranks/19g.png) | 5405 |
Doom Rate: 1.9 Posts quality: +61 |
Отправлено: 23.01.10 19:45:57 | | | Alex-of-persia Старнно. Ну ты прямо притягиваешь всякие ванильные фичобаги. А вообще signal 11 у меня довольно часто всплывал когда я карты тестил в нем. Только вот причина обычно крылась в DEH(а может вообще в чем другом). Пусть гуру меня поправят. | |
|
1 |
2 |
1 |
![](images/plus/all.gif) |
|
| |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 23.01.10 21:14:42 | | | Alex-of-persia Я правильно понимаю, ты мне тут описываешь баги версии трехлетней давности? Это бессмысленно.
По поводу "signal 11" - это обычный краш. Когда он случается, следует (для WinXP):
1. Скачать версию с суффиксом "debug" 2. При необходимости выполнить "drwtsn32 -i" 3. Запустить отладочную версию прбума с комстрокой -devparm 4. Воспроизвести падение 5. Выслать мне лог доктора Ватсона, который как правило находится здесь: C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson\drwtsn32.log и последовательность действий, которая приводит к крашу. | |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
Shadowman UAC General
![Next rank: Unavailable after 0 points Next rank: Unavailable after 0 points](images/ranks/22.png) | 8211 |
Doom Rate: 2.08 Posts quality: +1874 |
Отправлено: 22.02.10 16:19:20 | | | Странный баг с signal 11 - в прбум+ 2.5.0.5 Если выставить глубину цвета в 32 бита, то при попытке запустить отдельный уровень из ком строки (типа skill 4 -warp 01) прбум вылетает с этой ошибкой. Это не зависит от вада, даже дум2.вад также вылетает. Но просто загрузить пвад можно. Зато при глубине цвета в 16 бит бага нет. Конечно, особой разнице в софте прбума для 16-бит или 32-бит цветов не заметно, но все ж интересно, с чем связана данная бага? | |
|
1 |
7 |
2 |
![](images/plus/all.gif) |
|
| |
entryway -= DoomGod =-
![](images/ranks/24.png) | 1795 |
Doom Rate: 2.74 Posts quality: +1 |
Отправлено: 28.02.10 02:54:02 | | | Shadowman: | Странный баг с signal 11 - в прбум+ 2.5.0.5 |
2.5.0.5 не последняя.
Shadowman: | Конечно, особой разнице в софте прбума для 16-бит или 32-бит цветов не заметно |
Разницы нет вообще, если не включена билинейная фильтрация. Думаю у тебя не включена. | |
|
3 |
1 |
1 |
![](images/plus/all.gif) |
|
| |
Phosgene = UAC Gunner =
![Next rank: - Corporal - after 20 points Next rank: - Corporal - after 20 points](images/ranks/3g.png) | 60 |
Doom Rate: 1.84
|
Отправлено: 06.06.10 21:38:20 | | | Только сейчас дошло что мошно ускорять игру. Добовляет новые ощущения, особенно понравилось как пулемет быстро стреляет. Еще понравился ускоренный арахнотрон - становится чуть ли не самым опасным монстром! | |
|
| |