Баги/Глюки

Автоматическое создание no-Steam игр из GCF, поддержка модов на Source и GoldSource, распаковка *.SID файлов.
Сообщение
Автор
old_liquid
Лейтенант
Лейтенант
Сообщения: 122
Зарегистрирован: 27.08.2009
Благодарил (а): 5 раз
Поблагодарили: 4 раза
Контактная информация:

#466 Сообщение 26.01.2011, 05:01

Кстати, по ходу Вальвы об этой особенности знают, для чего в Стиме есть функция дефрагментации кэша... :wink:

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#467 Сообщение 26.01.2011, 06:02

old_liquid
Дефрагментация кэша - не есть дефрагментация файла GCF на жёстком диске. Это дефрагментация файлов внутри GCF. И эта дефрагментация применяется только для GCF, что как бы логически следует из выше сказанного.

Если он распаковывал какую-нибудь современную игру, а не что-нибудь времён OB, то она скорее всего была в NCF, что значит, что если и дефрагментировать, то точно не моими силами.

old_liquid
Лейтенант
Лейтенант
Сообщения: 122
Зарегистрирован: 27.08.2009
Благодарил (а): 5 раз
Поблагодарили: 4 раза
Контактная информация:

#468 Сообщение 26.01.2011, 06:08

Ага. Ну пусть тогда качает дефрагментатор, и вперёд!

ЗЫ offtop всё равно не вижу смысла качать чего-то, что не на движке Source (а значит, Steam в него не интегрирован а всего лишь привязан) в NCF да ещё и с привязкой. Всё равно добрые люди лякарство через пару дней сварганят. So, Phoenix for these games is just for extraction from SIDs. :good:

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#469 Сообщение 26.01.2011, 16:02

А вот здесь ты ошибаешься: патчи, достижения и немало других полезных плюшек. Эмуляторы, в отличие от "отучения", намного лучше в этом смысле.

Я к тому, что если к Птице прикрутить нормальные эмуляторы и поработать над адекватным патчером CEG, то всё будет ;) .

user64
Нович0к
Нович0к
Сообщения: 4
Зарегистрирован: 25.01.2011

#470 Сообщение 26.01.2011, 21:08

в таком случае, объясните, почему установщики, архиваторы (winrar, 7-zip) так не разбрасываются кусками файлов по hdd?? (а главное, так красиво, черт возьми!) :$
они пользуются волшебным апи? недокументированными возможностями ОС???
объясните, каким апи (WinAPI непосредственно, .NET, Delphi функции, Pascal (Blue Screen, lol :D ) функции, ... ) пользуетесь вы? и как вы им пользуетесь? может быть, фишка именно в этом...
(самому интересно, от чего так получается. хочу это понять. это даст опыт и вам, и мне, чтобы в последствии поступать с hdd пользователей более гуманно)

а еще...где можно исходники нарыть? (- Расширение возможностей, благодаря наличию плагинов (исходники и API открыты) )

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#471 Сообщение 27.01.2011, 03:48

user64 писал(а):в таком случае, объясните, почему установщики, архиваторы (winrar, 7-zip) так не разбрасываются кусками файлов по hdd??
Откуда же мне знать, по-вашему? Я ж сказал, что это система пишет данные непосредственно на ЖД, а не программа, так что если вы меня собрались винить меня, то здесь я не виноват. И на что угодно поспорю, что даже если WinRAR или 7-Zip лезли бы на уровень или 2 ниже прикладного API (связываются напрямую, например, с ntdll.dll), то и там ситуация навряд ли бы изменилась (просто обычно "промышленный" софт низко не лезет: чревато несовместимостью).
user64 писал(а):объясните, каким апи (WinAPI непосредственно, .NET, Delphi функции, Pascal (Blue Screen, lol :D ) функции, ... ) пользуетесь вы
Все языки так или иначе используют WinAPI в качестве "апи". То, что вы перечислили 3-м пунктом и далее - есть языки, а не API. .NET - вообще платформа. Язык Delphi (разве на Pascal (имею сейчас в виду диалект Turbo Pascal) когда-то было можно писать Win32 приложения?) использую в качестве основного и использую чистый WinAPI для создания окон и т.п., т.к. VCL и NSIS у меня подружить не очень получается. Есть парочка плагинов на С++.
user64 писал(а):а еще...где можно исходники нарыть? (- Расширение возможностей, благодаря наличию плагинов (исходники и API открыты) )
Касательно этого дела: имелись в виду исходники плагинов, т.к. исходники основной программы решил не открывать. Если вы желаете что-нибудь написать для Phx в качестве плагина, то милости прошу. Пример плагина на С++ или Delphi (вместе с API, понятное дело) я могу выложить чуть позже.

user64
Нович0к
Нович0к
Сообщения: 4
Зарегистрирован: 25.01.2011

#472 Сообщение 27.01.2011, 14:21

Все языки так или иначе используют WinAPI в качестве "апи"
sry, неточно выразил вопрос...
каким апи ДЛЯ ЗАПИСИ ФАЙЛОВ вы пользуетесь? и как?
в Delphi есть свои функции, также в Delphi перекочевали функции из Pascal.
или же вы используете WinAPI непосредственно.
.NET - вообще платформа.
.NET Framework (содержащий функции для записи файлов) не используете, понятненько.


Понятно, что ОС так пишет, но каким и как вы пользуетесь апи для записи, что система вот так рисует. Интересует, возможно, сам алгоритм для записи. Если это не промышленная тайна, конечно :)

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#473 Сообщение 27.01.2011, 16:26

Сколько можно объяснять? Я тут не причем. У системы есть драйвера дисков и файловых систем, которые распределяют информацию по ЖД так, как им будет угодно. Им только эту информацию подавай. И неважно какой язык используется. Если вы не знаете хотя бы на базовом уровне принцип работы схемы записи данных, то я просто зря трачу силы, объясняя, что и как работает и доказывая, что прикладная программа ни коим образом не влияет на способ записи данных на диск будь она написана хоть на интерпретируемом языке.

xakepp35
Нович0к
Нович0к
Сообщения: 1
Зарегистрирован: 27.01.2011

#474 Сообщение 27.01.2011, 22:33

$t@t!c_V()1D писал(а):Я тут не причем.
Не занимайся самооправданием, а постарайся исправить баг в проге.
ну, или хотябы вникнуть в суть проблемы.
Другие установщики так не делают.
$t@t!c_V()1D писал(а):Если вы не знаете хотя бы на базовом уровне...
И хватит троллить!!!
$t@t!c_V()1D писал(а):Я тут не причем. У системы есть драйвера...
В программе может быть сделано так. Идёт цикл - декодирование блока, запись. После декодирования очередной порции данных открывать hFile = CreateFile(...) в режиме OPEN_ALWAYS с правами GENERIC_WRITE. делать WriteFilе(hFile, ...) с буффером 4 кб, закрывать хендл CloseHandle(hFile). Этот код выполнит свою задачу по распаковке. Но есть наводящие вопросы: Каков будет результат по фрагментации? Причина в системе или прикладной проге? Есть и другие варианты - как добиться фрагментации, может одним из них пользуетесь вы?
$t@t!c_V()1D писал(а):То, что вы перечислили 3-м пунктом и далее - есть языки, а не API. .NET - вообще платформа
полезно иногда вникать в суть вопросов юзеров. имеется ввиду АПИ, предоставляемое разными языками, платформами и пр...
вообще, интерфейс - это нечто выше языков, платформ и библиотек.
он может быть кроссплатформенный, мультиязычный и пр..
пример. что такое malloc()? функция из состава АПИ принятого в стандарте си, реализация разная, но понятно о чём речь.
поняте АПИ над библиотеками, языками (могу в паскале использовать), операционными системами.
Перед тем как говорить о фишках кодинга, рекомендуется устранить кашу в голове (ликбез)
$t@t!c_V()1D писал(а):разве на Pascal (имею сейчас в виду диалект Turbo Pascal) когда-то было можно писать Win32 приложения?
полезно иногда вникать в суть вопросов юзеров. Имеются ввиду делфи финкции навроде AssignFile(), ...
кажется это делфи функция из состава АПИ, реализуемого делфи РТ-библиотекой... :wink:
также и тут. есть функция Write(file, ...) и её реализация есть начиная с турбо паскаля, заканчивая рад студией 2011й..
user64 писал(а):каким апи ДЛЯ ЗАПИСИ ФАЙЛОВ вы пользуетесь? и как?
полезно иногда вникать в суть вопросов юзеров.
есть TFileStream класс и его методы.
есть "процедуры" Assign/Rewrite/Append/Write/CLoseFile.
есть функции CreateFIle, WriteFile, CloseHandle
вопрос был - какими английскими словечками из вышеперечисленных пользуетесь вы?
и как пользуетесь? (что-то такое, что заставляет ХДД срать кирпичами) :D

user64
Нович0к
Нович0к
Сообщения: 4
Зарегистрирован: 25.01.2011

#475 Сообщение 27.01.2011, 22:52

Горячо уважаемый $t@t!c_V()1D !

Степень жажды полит корректности зашкаливает! Во-первых и во-всех остальных я ниче не перепутал, не смял (допускаю пропуски слов)...
Все языки так или иначе используют WinAPI в качестве "апи"
добавь к этому библиотеку для конкретного языка. первый вариант из головы - CRT (c run time library). функции CRT сводятся к вызову WinAPI. или вообще не сводятся, все зависит от конкретной функции.
То, что вы перечислили 3-м пунктом и далее - есть языки, а не API.
Внимание! Новый языки программирования:
Delphi функции, Pascal (Blue Screen, lol ) функции
если мир еще тот, каким я его знаю, то API - это также и функции какой-нибудь библиотеки (статической, динамической). первый вариант из головы - CRT. сюда также подходит "библиотеки" Delphi и Pascal. определение понятия API можно глянуть на вики.
.NET - вообще платформа
безусловно! я пропустил одно слово, надеясь, что меня меня поймут: Framework!
.NET Framework - это библиотека со своим API. это апи можно использовать для работы с файлами. насколько я знаю, в последних версиях студий от CodeGear во всю используется .NET Framework. и феникс вполне мог использовать возможности .NET

теперь тоже что-то настораживает??
даже не знаю, что сказать по этому поводу. стыдно, батенька. я не учитель информатики в старших классах! и не вице-спикер. я стараюсь кратко описать суть, полагаясь на общеизвестные формулы шифрования контекста в выражениях. нужно лишь немного задуматься, чтобы смысл дошел. тебе (вам) советую делать первое и второе, а не тратить время на онанизм (излишние дебаты).

а теперь по существу:
- simpack распаковал CoD MF2 на hdd, узор совсем не такой настораживающий. появились желтые полосы (фрагментированные файлы), но они не занимают такую область, как после феникса. и не идут таким узорчиком (по сути, вполне себе такой стандартный анпак).
это говорит от том, что где-то в другом месте неладно, а не в коде simpack.
- я придумал самое банально решение "проблемы" феникса: перекидывать распакованные файлы на другой диск, а потом обратно. узорчик исчезает!
- это действительно не проблема. это фигня. но это как предупреждения и ошибки компиляции: предупреждения можешь игнорировать, но это может привести к проблемам в последствии. я бы не стал закрывать глаза. и как разработчик смею з0явить, что такой кодинг - грязный. не знаю, в каком месте в фениксе происходит такая злая работа с файлами. я бы на твоем (вашем) месте нашел место в программе, в котором происходит призыв сотоны (по-другому я такой алгоритм не назову) и переписал бы его!

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#476 Сообщение 28.01.2011, 03:56

user64
Всё, что нужно, написал в ЛС.

old_liquid
Лейтенант
Лейтенант
Сообщения: 122
Зарегистрирован: 27.08.2009
Благодарил (а): 5 раз
Поблагодарили: 4 раза
Контактная информация:

#477 Сообщение 28.01.2011, 04:01

Да не парьтесь вы по поводу фрагментации... игра всё равно после прохождения будет удалена, и таким образом всё вернётся к началу. А на скорость работы фрагментация NTFS не особо влияет.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#478 Сообщение 28.01.2011, 04:37

xakepp35
Я-то глянул, уважаемый, ещё после первого сообщения от user64. Вот только проблема в том, как мне к вашим сообщениям относиться (вы, кстати, тоже не так давно на форуме). И это не баг...и может даже не фича. Я уже отписался user64. И я вникаю в суть вопроса. Просто я не знаю, насколько образован и подкован пользователь, просящий меня сделать то или это. И лично мне необходимо убедиться, что он пишет это в здравом уме, потому что запрос "чуточку необычный" и лично я не знаю как его решать и всё ещё полагаю, что не мне решать, каким образом система должна размещать данные на ЖД.

old_liquid
Ну, пусть уж. Может они не будут удалять эту игру. Да и мне как-то интересно, чем это всё закончится: умные "новенькие" попались, мож я у них опыту наберусь...как знать.

old_liquid
Лейтенант
Лейтенант
Сообщения: 122
Зарегистрирован: 27.08.2009
Благодарил (а): 5 раз
Поблагодарили: 4 раза
Контактная информация:

#479 Сообщение 28.01.2011, 04:41

ЗЫ
Скажем так: любая игра из новых не живёт на харде более полугода. У большинства людей. У меня более дня после прохождения. Исключения составляют игры от Вентилей. Я их собрал в отдельную папку "на вечное хранение"
Последний раз редактировалось $t@t!c_V()1D 28.01.2011, 06:15, всего редактировалось 3 раза.
Причина: По себе не суди: о вкусах не спорят.

M1ke
Модератор
Модератор
Сообщения: 1464
Зарегистрирован: 17.06.2007
Откуда: 54
Благодарил (а): 2 раза
Поблагодарили: 90 раз
Контактная информация:

#480 Сообщение 14.02.2011, 13:18

Итак, товарищ $t@t!c_V()1D, спеша поздравить тебя с тем, что после нескольких невероятно бажных версий текущей сборке удаётся таки запустить HL2 без танцев с бубном эмулятором.Однако ж, общий диагноз остаётся прежним%)

1)При попытке создать сервер в любой MP-игре появляется ошибка "You are in insecure mode.You must restart before you can connect to secure servers.".Проблема с настройками рева?
2)Попытка запустить Insurgency заканчивается неудачей - моментальное hl2.exe без каких-либо записей в логе - ended with error code 0%)
3)<...удалено>

И да, есть совет: при подготовке любой MP-игры добавлять исполняемый файл в исключения брандмаузера - поможет избежать свёртывания окна.
Изображение
Изображение
Изображение

Ответить Вложения 18