LINUX.ORG.RU
ФорумGames

Doom Legacy под Linux


0

0

Есть такой порт популярный под DOS, Linux, Windows (http://legacy.newdoom.com/downloads.php#linux). Среди пунктов для скачивания есть под линь, но запускается только версия SDL, и зависает. Выяснил, что зависон из-за несовместимости звуковой библиотеки с моей glibc. Пробую собирать из сырцов. Исходники той же версии (1.42) собираться отказываются:

bront@bront:~/Downloads/doomlegacy_142_src$ make LINUX=1 gcc -DLINUX -DOLD_SOUND_DRIVER -DMUSSERV -DSNDSERV -DHWRENDER -DDIRECTFULLSCREEN -DVID_X11 -I. -I/usr/X11R6/include -mpentium -O6 -ffast-math -fomit-frame-pointer -fwritable-strings -L/usr/X11R6/lib -Wall -c linux_x/i_video_xshm.c -o ../objs/i_video_xshm.o cc1: error: unrecognized command line option "-mpentium" cc1: error: unrecognized command line option "-fwritable-strings" make: *** [../objs/i_video_xshm.o] Ошибка 1 bront@bront:~/Downloads/doomlegacy_142_src$

Достал CVS - требует OpenTNL. А его нету в моём дистре (Debian Sid). Сборка не выходит, ему gcc нужен старый, я пробовал 3.3 - не помогает.

Так вот, есть ли возможность этот порт пустить нормально? Legacy мне нужен для одного вада - Doom Do Christmas. Wine косячит со звуком, так что не катит.

Ответ на: комментарий от no-dashi

Во-первых на тот случай у меня есть Chocolate Doom и ZDoom - то бишь и классика и моды разные. Но вот Doom Do Christmas сделан под GZDoom и Legacy. Legacy у меня запустить и не получилось.

Mihaly4_6572
() автор топика

cc1: error: unrecognized command line option "-mpentium"

cc1: error: unrecognized command line option "-fwritable-strings"

чо не ясно?

anonymous
()
Ответ на: комментарий от anonymous

Я тут смотрю, он там универсален для юниксов. Никаких намёков на autoconf и подобных, к сожалению нет. Могу кинуть куда-нибудь Makefile, чтобы голословным не быть.

Mihaly4_6572
() автор топика
Ответ на: комментарий от Mihaly4_6572

grep чтоли в новой версии поломали? и sed тоже?! не буду обновляться!

anonymous
()
Ответ на: комментарий от Mihaly4_6572

Убрал опцию эту вообще, косяки остались только в самом коде.

bront@bront:~/Downloads/doomlegacy_142_src$ make LINUX=1
gcc -DLINUX -DOLD_SOUND_DRIVER -DMUSSERV -DSNDSERV -DHWRENDER -DDIRECTFULLSCREEN -DVID_X11  -I. -I/usr/X11R6/include  -O6 -ffast-math -fomit-frame-pointer  -L/usr/X11R6/lib -Wall  -c g_game.c -o ../objs/g_game.o
g_game.c: In function ‘G_DoLoadGame’:
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
g_game.c:2008: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
g_game.c: In function ‘G_ReadDemoTiccmd’:
g_game.c:2324: error: lvalue required as increment operand
g_game.c:2325: error: lvalue required as increment operand
g_game.c:2335: error: lvalue required as increment operand
g_game.c:2337: error: lvalue required as increment operand
g_game.c:2343: error: lvalue required as increment operand
g_game.c:2350: error: lvalue required as increment operand
g_game.c:2352: error: lvalue required as increment operand
make: *** [../objs/g_game.o] Ошибка 1

Mihaly4_6572
() автор топика
Ответ на: комментарий от Svoloch

чтобы понятней было перепишу в отформатированном виде:

void G_ReadDemoTiccmd (ticcmd_t* cmd,int playernum)
{
    if (*demo_p == DEMOMARKER)
    {
        // end of demo data stream
        G_CheckDemoStatus ();
        return;
    }
    if(demoversion<112)
    {
        cmd->forwardmove = READCHAR(demo_p);
        cmd->sidemove = READCHAR(demo_p);
        cmd->angleturn = READBYTE(demo_p)<<8;
        cmd->buttons = READBYTE(demo_p);
        cmd->aiming = 0;
    }
    else
    {
        char ziptic=*demo_p++;

        if(ziptic & ZT_FWD)
            oldcmd[playernum].forwardmove = READCHAR(demo_p);
        if(ziptic & ZT_SIDE)
            oldcmd[playernum].sidemove = READCHAR(demo_p);
        if(ziptic & ZT_ANGLE)
        {
            if(demoversion<125)
                oldcmd[playernum].angleturn = READBYTE(demo_p)<<8;
            else
                oldcmd[playernum].angleturn = READSHORT(demo_p);
        }
        if(ziptic & ZT_BUTTONS)
            oldcmd[playernum].buttons = READBYTE(demo_p);
        if(ziptic & ZT_AIMING)
        {
            if(demoversion<128)
                oldcmd[playernum].aiming = READCHAR(demo_p);
            else
                oldcmd[playernum].aiming = READSHORT(demo_p);
        }
        if(ziptic & ZT_CHAT)
            demo_p++;
        if(ziptic & ZT_EXTRADATA)
            ReadLmpExtraData(&demo_p,playernum);
        else
            ReadLmpExtraData(0,playernum);

        memcpy(cmd,&(oldcmd[playernum]),sizeof(ticcmd_t));
    }

Mihaly4_6572
() автор топика
Ответ на: комментарий от Mihaly4_6572

> там где READCHAR(demo_p) и READSHORT(demo_p) и есть ошибка.

Полагаю, что READCHAR и READSHORT это дефайны. Что они из себя представляют?

andreyu ★★★★★
()

GZdoom[+wine], в линаксовом легаси ты не услышышь половины звуковых сообщений

timth ★☆
()
Ответ на: комментарий от Quasar

Вспомнил таки

Про тему забил на какое-то время... GCC 2.x на моём Debian Sid'е не прокатит. А GZDoom... подожду пожалуй, пока не сделают svn с нормальной CMake поддержкой, а то не собрать. Напрягает использование гоззо под вином тот факт, что там был а бага на уровне с метро на винде. Что это значит, не знаю.

Mihaly4_6572
() автор топика
Ответ на: Вспомнил таки от Mihaly4_6572

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

timth ★☆
()

В общем так, выяснил причину зависания. У меня помимо этого стоял Chocolate Doom. А у него была проблема таже - зависон. Ради классики (есть ZDoom, но он для модов, а Chocolate для строгой классики без необходимости юзания DOSEmu) попробовал альтернативу - PrBoom. Он завис также. Причина была в Timidity++, точнее ему нехватало патчей, хотя eawpatches у меня стоит. На сайте PrBoom нашёл ссылку на патчи к Timidity, после установки зависоны везде прекратились. Так вот с Legacy соответственно тоже, поэтому заработала без необходимости собирать. Всем спасибо за помощь. P.S. МОГРЕЛ ЖИВ

Mihaly4_6572
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.