• Авторизация


TDR2000 23-10-2012 09:53 к комментариям - к полной версии - понравилось!


Мать моя женщина...

Я победил его. Точнее запустил-таки. В общей сложности четыре дня ебли. Иначе не назвать, именно что ебли. Эта сука не желала работать хоть ты тут тресни.

История такова. Если по-хорошему, tdr'ка запускалась у меня без каких-либо специальных телодвижений с моей стороны. Но:
1. во всех разрешениях кроме 640x480x16@60 не отрисовывались менюшки;
2. в игре был сплошной треш из текстур висящих в воздухе.

Для начала я достаточно долго пробовал "разные" tdr'ки. Я скачал две или три из локалки. И UK версии, и FR, даже в фаргусовом переводе на русский скачал, хоть и знаю, что ни один из кармагеддонов никто не смог перевести на русский хоть немного похоже на правду. Когда локалка надоела, я начал качать с торрентов. Штуки три я скачал, всё бесплодно. В общем я удалил всё, оставив один образ диска кармагеддона с сопутствующими ему: патчем до Nosebleed и no-cd кряком, и начал думать.
Подумав я скачал из интернета демку кармагеддона и запустил её, она пахала как надо. Я решил, что всё дело в no-cd кряке и что надо от него избавится. Тут встала проблема следующего характера, кармагеддоновский CD содержит аудио-треки, и они очень нужны кармагеддону (именно из-за них fixed exe увеличивается в размерах в 10 раз). А стандартный для линукса способ использовать .iso подразумаевает mount -o loop, и полностью игнорирует какие бы то ни было аудио-дорожки. Я поставил cdemu -- это ядерный модуль, плюс пара юзерспейс утилит: сервер и клиент, которые позволяют работать с популярными в венде форматами образов. Поставить-то я его поставил но работать он отказывался. Поскольку на тот момент шёл уже второй день как я возился с кармагеддоном, я решил что пора заканчивать, и задвинул.

Но позавчера я опять завёлся. Начал с того, на чём застрял -- на cdemu. Выяснилось, что я забыл переконфигурировать ядро включив в нём поддержку SCSI дисков и цдромов. Переконфигурировал, включил, и CD-ром начал эмулироваться... В линуксе. Но wine, как и было мне обещано на appdb.winehq.org так и не подхватил этот цдром и не смог его показать во всей красе игрухе. Не понятно даже на что я надеялся: везде чёрным по-английски написано, что при запуске TDR'ки под wine просто необходим no-cd кряк. Даже при наличии лицензионного диска.

Почесав репу опять, я вспомнил, что мысль была в том, чтобы найти такой no-cd, который просто проверку в exe обходит, а всё остальное оставляет диску. Несколько часов гугленья не принесли никаких плодов. Я вернулся к разбитому корыту.

Потом... Потом я увидел в консоле вот такие сообщения:
Mesa 7.11.2 implementation error: Unexpected texture format in radeon_update_wrapper()
Please report at bugs.freedesktop.org
Я не знаю как я раньше не обратил на них внимания. Поскольку записывать себя в идиоты очень не хочется, я считаю что вероятно я что-то сделал в процессе всех этих пертурбаций. Либо обновление софта/библиотек (что вполне вероятно, поскольку был перерыв в пару недель в возне с кармагеддоном), либо ещё что-то. Но как бы та не было, я обратил внимание на эти сообщения. Естественно полез в гугл выяснять, что это такое. Выяснил. Что проблема в mesa (для "танков" -- это груда библиотек в linux обеспечивающая OpenGL и, в моём случае, дрова на видяху). Но mesa у меня стоит самая распоследняя! И тут я соображаю, что кармагеддон-то 32-х битный, и значит он использует 32-х-битные библиотеки. А они-то не распоследние, а они-то берутся из emul-linux-x86-opengl, а там они всегда устаревшие.

В общем следующая эпопея -- попытка обновить ту mesa, которая в emul-linux-x86-opengl. Для начала я переключился на последнию "нестабильную" версию emul-linux, потом я нашёл в гугле про оверлей FireBurn, подключил его, и он мне накатил mesa 8.0, но... БЛЯДЬ... в тот момент я уже откровенно матерился, такого количества граблей сконцентрированных в одном месте я не встречал уже давно... но mesa из FireBurn не желала ставится вместе с llvm, в ком-то из них был баг, я-таки поставил без llvm, и... И увидел всё то же разбитое корыто. Ноль эмоций, как будто и не накатывал я FireBurn.

Тогда я сказал себе, да ебись оно всё пропадом, я пойду другим путём. Я собрал 32-х-битное chroot окружение. Для "танков" -- это почти полная 32-х битная система, которая существует параллельно основной, под тем же 64-х битным ядром. То есть, упрощая ситуацию, можно считать что я поставил 32-х-битную ОС. В которую уже без проблем встала mesa 8.x. Причём с llvm. И... И пилять. !!! Не запускаются X'приложения. Я уж и так, и эдак. Не запускаются и всё тут. Ебался я довольно-то долго, пока каким-то странным образом не догадался заглянуть в set, и увидел там XAUTHORITY=/root/.xauthAR43IU. Откуда такая строчка взялась, я не знаю точно, но суть в том, что все те приложения которые я пытался запустить, начинали авторизовываться на X-сервере (который ответственен за вывод графики, и который один на всю систему, 64-х битный) пытаясь открыть файлик /root/.xauthAR43IU. Но файлик-то этот в домашней директории рута, и естественно что я, работая от обычного пользователя не имею туда доступа. Поправил я это и...

И тут я чуть не оргазмировал, TDR запустился наконец, он рисовал мне менюшки в разрешении 1280x1024, он корректно отрисовывал игровой процесс... Но всё же оргазма не случилось: FPS был ужасный. Почитав надписи в консоли я увидел, что:
libGL error: failed to load driver: r600
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 0x4 and card vendor 0000 (using GL_RENDERER "Gallium 0.4 on softpipe").
fixme:win:EnumDisplayDevicesW ((null),0,0x33b200,0x00000000), stub!
Из чего я сделал вывод, что никакой акселерации графики нету, что всё работает на чисто софтверной реализации OpenGL/DirectX, и что вообще ппц.

Тогда, я ринулся в бой. Я дважды пересобрал wine (эмулятор венды). Я накатил mesa 9.x. Я громко ругался матом. Не помогало ничего. И тут я взял и запустил glxgears. И вижу, что glxgears тоже не может OpenGL вывод делать. То есть glxinfo пишет что вроде всё ok, а glxgears отрисовывает софтверно. Думаю: тут не всё так просто... Я ковырнул эту ситуацию поглубже, понюхал, и... Ну кто бы мог подумать: поскольку я нахожусь в chroot окружении, то /etc/group, уже не работает. Точнее работает, но его копия. А в этой копии естественно я, как пользователь системы, не записан в группу video. И поэтому мне недоступен DRI.

И теперь, у меня запускается TDR2000. В разрешении 1280x1024 он вполне ничего себе работает, лишь слегка подлагивает. Но я думаю, что это потом, что сейчас wine пересобирается в третий раз, и при этом ещё boinc вовсю фурычит. Щаз wine дособирается, я тормозну boinc и проверю.

А самое обидное в том, что играть в TDR2000 уже расхотелось. Чего я там не видел?
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник TDR2000 | rgo - Дневник rgo | Лента друзей rgo / Полная версия Добавить в друзья Страницы: раньше»