crypt of decay - k8vavoom, новый виндобилд [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

k8vavoom, новый виндобилд [Oct. 27th, 2021|09:21 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

думерборды анонс.
Linkmeow!

Comments:
From:(Anonymous)
Date:October 27th, 2021 - 08:01 am
(Link)
осуждаю
From:(Anonymous)
Date:October 27th, 2021 - 12:52 pm
(Link)
++++++++++++
From:(Anonymous)
Date:October 27th, 2021 - 02:36 pm

nice!

(Link)
только почему-то цветные горошки "брызги" от стен при попадании в них перестали вылетать на некотором оружии и в некоторых модах
From:(Anonymous)
Date:October 27th, 2021 - 03:08 pm

Re: nice!

(Link)
конкретнее miniwad: версии 560618 и 561027, в последнем "горошка" нет от стен при стрельбе из пистолета и шотганов.
Но, уже в 561027 нет глюка с пропаданием сайбокса при определенном угле взгляда.
From:(Anonymous)
Date:October 27th, 2021 - 03:09 pm

Re: nice!

(Link)
блин, 560718, а не 560618
[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 08:16 pm

Re: nice!

(Link)
я тебя нихрена не понял. но если ты про партикли от хитскан-аттак, то это потому что хитскан-аттак больше нет, вместо них прожектайлы. включи хитсканы обратно — будут партиклы. по дефолту включены прожектайл-аттаки. см. меню "gameplay options", пункт "force projectile fire". можешь поставить на "monsters", например. с прожектайлами забавно, трасеры летают, красота, и пули не мгновенные (хотя толку с этого не особо много).
[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 08:18 pm

Re: nice!

(Link)
вообще, я просто забыл. надо привинтить хак. спасибо.
From:(Anonymous)
Date:October 27th, 2021 - 03:16 pm

хнык

(Link)
мультиплеер сломался, а я хотел с ботами погонять
грустно
[User Picture]
From:[info]steinkrauz
Date:October 27th, 2021 - 07:58 pm
(Link)
Fatality!

models/keys/bluecard.xml:11: model 'models/keys/bluecard.xml' class state definition has invalid attribute 'noselfshadow'

Как это лечить?
[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 08:11 pm
(Link)
брать моделпак, сделаный без ошибок. где? ну, купите season pass… щаз, я проснусь и постараюсь тебе новый выложить. если забуду — напомни завтра, ок?
[User Picture]
From:[info]steinkrauz
Date:October 27th, 2021 - 09:03 pm
(Link)
Ну, если там ничего кроме noselfshadow не менялось, то я уже поправил:
Get-ChildItem -Path . -Filter '*.xml'|ForEach-Object {
$file = $_.FullName
(Get-Content $file) | %{$_ -replace "noselfshadow=""true""",""}  |Set-Content $file
}


А ещё посмотри на цифру здоровья:

Хз, кто глючит, вад или вавум, или вообще случайно получилось.

Если важно, то это ремилиевский Kill, второй уровень, после съедания мегахэлса, со 120 пунктами здоровья.
[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 09:19 pm
(Link)
>Ну, если там ничего кроме noselfshadow не менялось
там поменялось, потому что это была ошибка. впрочем, оно и раньше делало ровно ничего, и если ты до сих пор никаких ошибок не замечал, то и ладно. %-)

просто я впилил в парзер строгие проверки, и он теперь реджектит всё, что не смог понять. а поскольку документации по этому всему нихуя ваще, то я вон даже сам обосрался, когда модельки писал.

>А ещё посмотри на цифру здоровья:
там внутри дехакед, где написано: "Max Soulsphere = 201". всё нормально, это как раз не баг. ;-)
[User Picture]
From:[info]steinkrauz
Date:October 27th, 2021 - 09:58 pm
(Link)
>просто я впилил в парзер строгие проверки,
Ага, я это у тебя где-то читал, так что причину понял сразу. Просто не был уверен, надо ли тег удалять, или переименовывать.

>Max Soulsphere = 201
Remilia is a pervert!

Картинки постараюсь ссылками. Но если что, у меня склероз наступает всё сильнее и сильнее.

[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 10:10 pm
(Link)
>Просто не был уверен, надо ли тег удалять, или переименовывать.
там много чего менять надо, чтобы обратно взад сделать то, что я имел в виду сделать. но это не особо важно, если просто удалить — то будет ровно так, как и было до этого. как-то вот так.

>Но если что, у меня склероз наступает всё сильнее и сильнее.
да без проблем: это не критично. вспомнишь — и хорошо. нет — ну и ладно.
[User Picture]
From:[info]ketmar
Date:October 27th, 2021 - 09:21 pm
(Link)
p.s.: клади картинки просто ссылочками, плиз. а то мне всё распидорасило, у меня специально зауженый main view. ;-)
[User Picture]
From:[info]ketmar
Date:October 31st, 2021 - 02:08 pm
(Link)
блин, я это скрою, потому что загребло рвать браузер. ;-)
[User Picture]
From:[info]dolmatt
Date:October 28th, 2021 - 12:04 pm

Чё за хуйня ?

(Link)
Error 1009 Ray ID: 6a53abc67d38cc5a • 2021-10-28 11:02:17 UTC
Access denied

What happened?

The owner of this website (doomer.boards.net) has banned the country or region your IP address is in (TOR) from accessing this website.



Cloudflare Ray ID: 6a53abc67d38cc5a • Your IP: 94.230.208.147 • Performance & security by Cloudflare
[User Picture]
From:[info]steinkrauz
Date:October 29th, 2021 - 05:39 pm
(Link)
Achtung!

Я, кажется, наконец-то реальный баг обнаружил.

Прибор ночного видения перестал работать. Точнее, светлым комнатам он освещение добавляет, а вот в темноте как была жопа негра, так и остаётся.

wad для теста :)
https://files.catbox.moe/rfe0fi.wad

[User Picture]
From:[info]ketmar
Date:October 29th, 2021 - 11:36 pm
(Link)
спасибо. не то чтобы баг совсем фатал — смени в accessebility options режим lightamp colormap и будет иначе, но баг, спасибо!
From:(Anonymous)
Date:October 30th, 2021 - 06:03 am
(Link)
> The owner of this website (doomer.boards.net) has banned the country or region your IP address is in (TOR) from accessing this website.

и сразу нахуй
[User Picture]
From:[info]dolmatt
Date:October 30th, 2021 - 08:43 am

CPU you selected does not support x86-64 instruction set

(Link)
Объясни для тупых, где конкретно брать исходники, чем и как их собирать. Самостоятельные попытки привели к следующему:

cmake --build . --config Release --target all
[ 0%] Building CXX object libs/core/CMakeFiles/core.dir/args.cpp.obj
cc1plus.exe: error: CPU you selected does not support x86-64 instruction set
mingw32-make[2]: *** [libs\core\CMakeFiles\core.dir\build.make:76: libs/core/CMakeFiles/core.dir/args.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:770: libs/core/CMakeFiles/core.dir/all] Error 2
mingw32-make: *** [Makefile:155: all] Error 2
[User Picture]
From:[info]ketmar
Date:October 30th, 2021 - 08:49 am

Re: CPU you selected does not support x86-64 instruction set

(Link)
потому что сборка под виндой не поддерживается в принципе. единственный вариант сборки под винду — это сборка через кросс-систему MXE, и туда гвоздями прибита архитектура. потому что мне так удобней.

возможно, steinkrauz знает, что там надо менять, попробуй у него спросить. а у меня винды нет в принципе, я тупо не в курсе, сорри.
[User Picture]
From:[info]steinkrauz
Date:October 30th, 2021 - 09:40 pm

Re: CPU you selected does not support x86-64 instruction set

(Link)
Выстави в CMake переменную WITH_SSE4, тогда нормальный процессор подтянется.
[User Picture]
From:[info]dolmatt
Date:October 31st, 2021 - 03:38 pm
(Link)
[ 12%] Building CXX object libs/vavoomc/CMakeFiles/vavoomc.dir/vc_object.cpp.obj
In file included from C:\Users\Dolmatt\Downloads\k8vavoom\libs\vavoomc\vc_object.cpp:1560:
C:\Users\Dolmatt\Downloads\k8vavoom\libs\vavoomc\vc_object_common.cpp: In static member function 'static void VObject::execDecodeTimeVal()':
C:\Users\Dolmatt\Downloads\k8vavoom\libs\vavoomc\vc_object_common.cpp:1820:19: error: cannot convert 'long int*' to 'const time_t*' {aka 'const long long int*'}
C:\Users\Dolmatt\Downloads\k8vavoom\libs\vavoomc\vc_object_common.cpp:1764:53: note: initializing argument 1 of 'tm* localtime_r(const time_t*, tm*)'
mingw32-make[2]: *** [libs\vavoomc\CMakeFiles\vavoomc.dir\build.make:256: libs/vavoomc/CMakeFiles/vavoomc.dir/vc_object.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:796: libs/vavoomc/CMakeFiles/vavoomc.dir/all] Error 2
mingw32-make: *** [Makefile:155: all] Error 2
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 04:10 pm
(Link)
Накати вот этот патч
https://files.catbox.moe/dheb8z.patch
[User Picture]
From:[info]dolmatt
Date:October 31st, 2021 - 05:06 pm
(Link)
[ 98%] Building CXX object source/CMakeFiles/k8vavoom.dir/render/hwgl/gl_tex.cpp.obj
[ 98%] Linking CXX executable ..\k8vavoom.exe
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\k8vavoom.dir/objects.a(console.cpp.obj): in function `C_Stop(bool)':
C:/Users/Dolmatt/Downloads/k8vavoom/source/console.cpp:334: undefined reference to `SDL_StopTextInput'
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/Dolmatt/Downloads/k8vavoom/source/console.cpp:334: undefined reference to `SDL_StopTextInput'
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/Dolmatt/Downloads/k8vavoom/source/console.cpp:334: undefined reference to `SDL_StopTextInput'
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/Dolmatt/Downloads/k8vavoom/source/console.cpp:334: undefined reference to `SDL_StopTextInput'
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/Dolmatt/Downloads/k8vavoom/source/console.cpp:334: undefined reference to `SDL_StopTextInput'
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\k8vavoom.dir/objects.a(in_sdl.cpp.obj): in function `VSdlInputDevice::HasClipboardText()':
C:/Users/Dolmatt/Downloads/k8vavoom/source/in_sdl.cpp:555: undefined reference to `SDL_HasClipboardText'

И так далее. Там высер бесконечной длины.
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 05:42 pm
(Link)
Судя по x86_64-w64-mingw32/10.3.0 ты msys после установки не обновил.
У меня оно тоже SDL не находило, пока не обновился.

Так что pacman -Syu спасёт отца русской зимокарасии
[User Picture]
From:[info]dolmatt
Date:November 1st, 2021 - 07:56 am
(Link)
Обновил, но проблема осталась.
[User Picture]
From:[info]steinkrauz
Date:November 1st, 2021 - 07:26 pm
(Link)
Ну я хз, попробуй вручную пакет с SDL переустановить, что ли.
[User Picture]
From:[info]dolmatt
Date:November 1st, 2021 - 08:35 pm
(Link)
Переустанавливал. Не помогло.
[User Picture]
From:[info]steinkrauz
Date:November 1st, 2021 - 09:26 pm
(Link)
может, уже сам cmake-конфиг битый.
Попробуй создать новую папку и из неё дать команду
cmake.exe -S ../path/to/vavoom/sources -G "MinGW Makefiles" -DWITH_SSE4=ON
и затем
mingw32-make.exe

[User Picture]
From:[info]dolmatt
Date:November 2nd, 2021 - 01:15 pm

Видишь, Кетмар, какая ебля с греблей

(Link)
C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Games/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o): in function `main':
C:/_/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [source\CMakeFiles\k8vavoom.dir\build.make:4367: source/../k8vavoom.exe] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:1766: source/CMakeFiles/k8vavoom.dir/all] Error 2
mingw32-make: *** [Makefile:155: all] Error 2
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 01:20 pm

Re: Видишь, Кетмар, какая ебля с греблей

(Link)
там в репе новых комитов от steinkrauz, и в docs/winbuild.md его же описание, как собирать. у меня-то винды нет, и тем более винды64, и мне — тащемта — совершенно по барабану, собирается оно под виндой или нет. это вообще не целевая платформа для порта, если бы у меня на диске не завалялся MXE — я бы спокойно девелопил себе в уголке под жму/пинус, и виндовые билды не делал. ;-)
[User Picture]
From:[info]steinkrauz
Date:November 2nd, 2021 - 01:53 pm
(Link)
Добавь в CMakeList.txt строчку

add_definitions(-DSDL_MAIN_HANDLED)

Ну или обнови сырцы, Кетмар уже мой патч заппрувил.

Затем пересобрать надо с нуля.
[User Picture]
From:[info]dolmatt
Date:November 2nd, 2021 - 03:40 pm
(Link)
> Добавь в CMakeList.txt строчку
> add_definitions(-DSDL_MAIN_HANDLED)

Спасибо, наконец-то собрал. Вопрос: где теперь взять остальную часть игры ?

> Ну или обнови сырцы, Кетмар уже мой патч заппрувил. Затем пересобрать надо с нуля.

Ага, тоже билдится, если указать -DWITH_WNT64=ON
[User Picture]
From:[info]steinkrauz
Date:November 2nd, 2021 - 03:58 pm
(Link)
Остальную -- это какую?

Basev генерится вместе с екзешником, games.txt и detectors.txt в сырцах лежит. Ну или из кетмаровского билда взять можно

doom2.wad и иже с ним без проблем гуглятся.
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 12:55 pm
(Link)
Тов. Кетмар!

А не мог бы ты чуток пропатчить вавум?
https://files.catbox.moe/dheb8z.patch

В объявлении аргументов к GetProcessAffinityMask явно баг, потому что MSDN пишет, что там именно DWORD_PTR. Но так как на win32 этот тип совпадает с DWORD, то у тебя и прокатывало.

В CMakeList.txt хорошо бы сделать флаг, которым регулировать аргумент для winres.
Строчку с SDL трогать не надо, это чисто технический хак для MinGW.
[User Picture]
From:[info]ketmar
Date:October 31st, 2021 - 02:01 pm
(Link)
с DWORD_PTR согласен, а остальное поломает сборку уже мне.
[User Picture]
From:[info]ketmar
Date:October 31st, 2021 - 02:07 pm
(Link)
я тебе скажу так: мне категорически лениво делать какие-то лишние движения для сборки под виндой, ещё и 64. DWORD_PTR закоммитил, спасибо, а остальное — если оформишь отдельной опцией цмака и красивым ифдефом, чтобы мне ничего не сломало, то закоммитоваю. извини, вот такая я ленивая жопа.
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 02:16 pm
(Link)
Да я в общем и не сильно надеялся :)

Можешь хотя бы вкртатце пояснить, в какой базовый тип у тебя в системе time_t разрешается?

И что эти куски кода проверяют, чтобы я мог тесты написать?
[User Picture]
From:[info]ketmar
Date:October 31st, 2021 - 02:20 pm
(Link)
>Можешь хотя бы вкртатце пояснить, в какой базовый тип у тебя в системе time_t
>разрешается?

да какая разница? влепи дефайн STEINKRAUZ_BUILD там, например, и всё своё в него оберни.

>чтобы я мог тесты написать?
совсем ты там на работе перегрелся. у нас в вавумчике анархия, нет никаких тестов!

обычное разбиение unixtime на компоненты.
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 02:38 pm
(Link)
>да какая разница?

Я просто надеялся, что можно без проблем кастом решить
типа
#ifdef __x86_64
#define TIME_CAST
#else
#define TIME_CAST (long int)
#endif

и в тексте
time_t tsec = TIME_CAST tv.tv_sec;
[User Picture]
From:[info]ketmar
Date:October 31st, 2021 - 02:55 pm
(Link)
нам тут умные не надобны, нам надобны верные! херачь ифдеф — и тогда будет полная гарантия, что ты ничего ним мне не сломаешью а что говнокод — так и хуй с ним, в первый раз, что ли…
[User Picture]
From:[info]steinkrauz
Date:October 31st, 2021 - 05:47 pm
(Link)
Patch review request
https://files.catbox.moe/72upyo.patch

С ним спокойно под виндой собирается, что x32, что x64

И, кстати, gcc 11.2, так что есть шанс, что совместимость на gcc 9 не заканчивается.
[User Picture]
From:[info]ketmar
Date:November 1st, 2021 - 01:52 am
(Link)
ну я ж просил: все твои добавления — под уникальный цмак-флаг и ифдеф, а не пытаться что-то детектить. я детекты — тем более интрузивные — принимаю только в исключительных случаях. вот ты будешь это маинтайнить на всех архитектурах и типах сборок, которые возможны? если нет — то пожалуйста, любые детекты, но исключительно под уникальным ифдефом/опцией, чтобы всё добавленое всей массой включалось/отключалось лёгким движением пальца.

не, тебе спасибо за патчи. я просто пытаюсь пояснить, почему доёбываюсь с глупостями.
[User Picture]
From:[info]steinkrauz
Date:November 1st, 2021 - 07:58 pm
(Link)
И в третий раз закинул он невод)))
https://files.catbox.moe/eo7m51.patch

Ты просто rationale сразу пиши. А то я ж виндовый программразработчик, и то последнее время чаще жабу с шарпом использую, чем плюсы. Для меня *nix-овый тулчейн тёмный лес, поэтому я иду по пути наименьшего сопротивления. А он такой: ты поддерживаешь lnx/32, я wnt/64, а кто хочет ещё какую-то, тот пусть сам её и саппортит. Ибо нефиг.

Кстати, я тут набросал заодно краткий гайд по сборке, так что если кто будет спрашивать, как собрать под винду, можешь сразу им кидаться
https://files.catbox.moe/nld6ab.md

[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:45 am
(Link)
>Ты просто rationale сразу пиши.
да, это я протупил. общая идея — как ты понял — такая, что если для поддержки чего-то, чего у меня нет, надо менять код и цмакфайлы, то это всё оборачивается в цмак-опцию и ифдеф, даже если в итоге получается говнокод. чтобы была гарантия, что изменения точно ни с чем не конфликтуют, если их специально не включать.

коммит закоммитоваел, спасибо!

гайд добавил в вику и в репу тоже, спасибо большое!
[User Picture]
From:[info]steinkrauz
Date:November 2nd, 2021 - 02:07 pm
(Link)
Achievement unlocked: Open Source contribution. :))

Я бы ещё с определением процессора поигрался в СMakeList, чтобы он по дефолту ставил -march=native

Ты, кстати, при сборке под MXE какие-то флаги указываешь, или оно само всё детектит?
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:16 pm
(Link)
я там вполне сознательно native убрал. во-первых, нихуя не помогает всё равно. а во-вторых, нихуя не помогает всё равно. и ещё долбоёбнутый gcc радостно генерит мне AVX в нативе, а валгринд в 32 бита AVX не понимает, не может такого быть на свете.

на деле — реально смысла нет, потому что большинство времени движок проводит или в цикле VavoomC VM, или ходит по дереву и кормит OpenGL. для вавумцэ никакие ссе не помогут, потому что компилер вавумцэ, натурально, ничего не умеет векторизовать. а в деревоходилке тоже особо ничего нет, потому что структуры данных нахер не заточены под векторизацию ваще. так что особой разницы ты не заметишь.
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:18 pm
(Link)
p.s.: под MXE обычно тупо собирается с -DWITH_OLD_CPU=ON
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:46 am
(Link)
p.s.: просто я ж собираю ещё win32 бинари кросскомпилером. вот в таком виде, как всё сейчас — оно собирается, и я стараюсь в эту сторону не дышать, а то мало ли. ;-)
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:48 am
(Link)
алсо, ты если доступ к фоссилу имеешь — я тебе могу там усера создать, и дать права на редактирование вики. так что если чо — ты сможешь гайд править прямо на месте.
[User Picture]
From:[info]steinkrauz
Date:November 2nd, 2021 - 02:08 pm
(Link)
Было бы хорошо, а то я уже думал репу на шитхабе делать, чтобы было где актуальный вариант держать. Но в твоей Вики правильнее.
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:13 pm
(Link)
давай усернаме и пассворд удалёнкой. пассворд потом поменяешь, натурально.
[User Picture]
From:[info]ketmar
Date:November 2nd, 2021 - 02:35 pm
(Link)
ясдлл, дорогой! там тебе права на всё читать-писать, по идее, должны быть. если я не налажал.
[User Picture]
From:[info]steinkrauz
Date:November 2nd, 2021 - 10:27 pm
(Link)
Поскольку котокоробка лежит, я сюда патчик кину
==============
Index: CMakeLists.txt
==================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -268,13 +268,13 @@
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lSDL2")
add_definitions(-DVAVOOM_ARCH_LINUX_SPECIAL_SDL=1)
endif(HAVE_SDL2_SUBDIR)
endif(NOT SDL2_OVERRIDE)

-if(WITH_WNT64)
+if(WIN32)
add_definitions(-DSDL_MAIN_HANDLED)
-endif(WITH_WNT64)
+endif(WIN32)


set(UNFUCK_GCC_FLAGS "")
set(UNFUCK_GXX_FLAGS "")

@@ -508,12 +508,12 @@
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -msse2")
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mno-avx")
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mfpmath=sse")
else(NOT WIN32)
message(STATUS "BUILD: using SSE2/p4 instriction set")
- set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -march=pentium4")
- set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mtune=pentium4")
+ set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -march=nehalem")
+ set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mtune=nehalem")
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -msse2")
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mno-avx")
set(UNFUCK_GCC_FLAGS "${UNFUCK_GCC_FLAGS} -mfpmath=sse")
endif(NOT WIN32)
endif()
==============

SDL_MAIN_HANDLED нужен при любой виндовой сборке, так как он WinMain перекрывает, из-за чего конфликт при линковке. Никакой другой архитектуры это не коснётся, так что это можно под стандартный WIN32 детектор сунуть.

Плюс заменил p4, на которым дефолтно валится под виндой, на nehalem. По фичам разницы неособо, но на него не будет за отсутствие x64 ругаться.
[User Picture]
From:[info]ketmar
Date:November 3rd, 2021 - 05:52 am
(Link)
>SDL_MAIN_HANDLED нужен при любой виндовой сборке
понимаешь… не нужен. вот я собираю же — и не нужен. а технически сборка с MXE — это WIN32. вот именно поэтому я настаиваю на спецпереключтеле, а не «больше нигде не надо, потому пусть будет детект». и p4 там стоит не просто так. ты это… или полноценно становишься маинтайнером виндокода, постоянно чинишь, делаешь сборки и всё такое — или никакие дефолты не чини, потому что иначе у меня что-нибудь обязательно развалится, а желания ебаться с этим у меня нет.

видишь ли, сборка с MXE очень-очень хрупкая. я уже имел с ней проблем неоднократно, и опытным путём выяснил, что вот то, что есть — трогать не надо. поскольку тратить на это больше усилий, чем «не трогать» мне не хочется, то я и прошу всё-всё, даже тривиальщину — заворачивать в спецключи. камон, я даже на ICE-ы компилятора наступал. а обновления MXE чреваты тем, что опять всё перестанет собираться, потому что у меня там не только стандартные пакеты, тоже кривого самосбора дофига.

вот это всё — оно держится на говне и соплях. поэтому пожалуйста, даже если тебе кажется, что для винды что-то можно сделать лучше — всё равно не надо. только в личном ифдефе, только.
[User Picture]
From:[info]steinkrauz
Date:November 3rd, 2021 - 12:42 pm
(Link)
Ok, про то, что MXE себя идентифицирует как Винду я не подумал, виноват.

Но nehalem-то тебе чем не угодил? Твоя виндовая сборка идёт по другой ветке, твоя линуксовая сборка собирается под тот же nehalem.

Просто хотелось бы более прозрачную работу со флагами, чтобы не было этих тайных знаний про то, какие переменные задать, чтобы оно нормально собиралось.
[User Picture]
From:[info]ketmar
Date:November 3rd, 2021 - 01:01 pm
(Link)
>Но nehalem-то тебе чем не угодил?
тем, что я боюсь с ним опять айс поймать. и виндовая сборка идёт как раз по этой ветке, ты чуть запутался читая.

>чтобы не было этих тайных знаний
это же Дух Старой Школы!
[User Picture]
From:[info]steinkrauz
Date:November 3rd, 2021 - 08:15 pm
(Link)
Но тогда получатется, что ты указываеть WITH_OLD_CPU, а он не работает.

Короче, пока я у себя не сделаю стенд с похожей на твою конь фигурацией, внутреннего перфекиониста лучше придушить и более в цмак не лезть.
[User Picture]
From:[info]ketmar
Date:November 4th, 2021 - 04:30 am
(Link)
а я и не сказал, что он работает, я сказал, что он в скрипте сборки написан. а нужен ли — я не проверял сто лет уже, и трогать боюсь. ;-)

перфекциониста лучше совсем придуши: он обычно только зря квакает. пиши говнокод — будешь нашим королём!
[User Picture]
From:[info]ketmar
Date:November 4th, 2021 - 07:16 am
(Link)
ты, кстати, если будешь делать Более Большие Патчи, или если просто хочешь гордое имя на них — можешь использовать fossil bundle. техника примерно такая: делаешь в фоссиле бранч, там пилишь, потом заворачиваешь бранч в бандл. туда автоматом пристегнётся твоё локальное фоссиловое имя (так что поставь его правильно). а я могу у себя бандл временно положить в дерево, посмотреть, а потом если всё ок — смержить твой бранч в транк.

это не обязательно, если что: мне нормально и с обычными дифами. просто мало ли, вдруг тебе делать нечего и захочется глубже в фоссил нырнуть. ;-)
[User Picture]
From:[info]steinkrauz
Date:November 3rd, 2021 - 12:45 pm
(Link)
Если я научусь статически линковать экзешник, то могу заняться и поддержкой виндовых билдов.

У меня все равно уже наполовину скрипт написан, который создаёт из скомпиленых результатов и сырцов дистрибутив.

Только хз, куда это публиковать.
[User Picture]
From:[info]ketmar
Date:November 3rd, 2021 - 01:04 pm
(Link)
давай я тебе расскажу, что такое билды. это не «сделал бинарь и выложил», это десятки вадов, несколько модов, куча опций, во всё это надо поиграть (поиграть, а не запустить!) и проверить, что оно работает. и я — при моём нолайферстве — регулярно с этим лажаю. это всё входит в «поддержку винды». у тебя лишнего времени дофига, что ли? ;-)

(и нет, списка нет, поэтому я и лажаю, лол. давно надо сделать уже нормальный чеклист, но всё руки не доходят.)
[User Picture]
From:[info]steinkrauz
Date:November 3rd, 2021 - 08:17 pm
(Link)
А что бы это не автоматизировать?
Например, записать прохождение N карт, далее после билда запускать воспроизведение, и в конце сравнивать: за сколько проигралось, точка, в которой завершилась игра, стата игрока. Плюс можно ещё в нужных местах скриншоты делать, но их ручками уже придётся смотреть.
[User Picture]
From:[info]ketmar
Date:November 4th, 2021 - 04:28 am
(Link)
>записать прохождение N карт, далее после билда запускать воспроизведение
хахаха, оличная шутка, бро. проснулся — так смеялся, так смеялся!

извини, не удержался. потому что формат демок — это просто сдампленый сетевой поток. который меняется с любым изменением объектов, функций, или просто багфиксами в сетке. но главное даже не это, а то, что плеер демок — это thin client. он не выполняет никакой игровой логики, а просто рендерит пресозданые кадры.

нет, «просто записывать кнопки» тоже не выйдет, у нас не локстеп, и рандом ни разу не детерминирован.

так можно делать с ванильным движком, который жёсткий 35 фпс, и рандом жестоко прибит гвоздями. собственно, с шоколадкой и прбум+ так и делают: гоняют безголовые сборки на архиве демок, и сравнивают вывод логов. а с вавумчиком — я даже не представляю, как такое сделать.
[User Picture]
From:[info]steinkrauz
Date:November 4th, 2021 - 07:48 pm
(Link)
>так можно делать с ванильным движком
Ну собственно я когда писал, про ванильные демки и думал.

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

Хотя в принципе, если с -nomonsters, то с "записью кнопок" хотя бы какую-то часть оттестировать получится. Но, как мне кажется, полученный результат затрат на реализацию не окупит.
[User Picture]
From:[info]ketmar
Date:November 5th, 2021 - 04:16 am
(Link)
>хотя бы какую-то часть оттестировать получится
ну да. типа базовый колдет. ;-)

>Но, как мне кажется, полученный результат затрат на реализацию не окупит.
угу.
[User Picture]
From:[info]ketmar
Date:November 3rd, 2021 - 01:06 pm
(Link)
я к тому, что я с удовольствием это на кого-нибудь спихну, конечно. но ты подумой! я именно поэтому так скептично спросил про поддержку винды — опять забыл, что телепатов нет. ;-)
[User Picture]
From:[info]steinkrauz
Date:November 5th, 2021 - 09:57 pm
(Link)
Новый хэш поломал сборку под винды, потому что там докУментов endian.h нету

Поэтому вариант 1
============================
Index: libs/core/crypto/ripemd160.c
==================================================================
--- libs/core/crypto/ripemd160.c
+++ libs/core/crypto/ripemd160.c
@@ -20,11 +20,11 @@
# undef WORDS_BIGENDIAN
# endif
#else
# ifdef BSD
# include
[Error: Irreparable invalid markup ('<sys/endian.h>') in entry. Owner must fix manually. Raw contents below.]

Новый хэш поломал сборку под винды, потому что там <s>докУментов</s> endian.h нету

Поэтому вариант 1
============================
Index: libs/core/crypto/ripemd160.c
==================================================================
--- libs/core/crypto/ripemd160.c
+++ libs/core/crypto/ripemd160.c
@@ -20,11 +20,11 @@
# undef WORDS_BIGENDIAN
# endif
#else
# ifdef BSD
# include <sys/endian.h>
-# else
+# elif __linux__
# include <endian.h>
# endif
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN 1
# elif __BYTE_ORDER == __LITTLE_ENDIAN
============================

Вариант два:
============================
Index: CMakeLists.txt
==================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -143,10 +143,11 @@
set( RES_FLAGS -Fpe-i386 )

if (WITH_WNT64)
message(STATUS "*** 64-bit builds are UNSUPPORTED ***")
add_definitions(-DSTK_TIMET_FIX)
+ add_definitions(-DSTK_ENDIAN_FIX)
set( RES_FLAGS -Fpe-x86-64 )
endif ()

set(K8_UNFUCK_AS_GCC ON)
set(K8_UNFUCK_AS_SHITLANG OFF)

Index: libs/core/crypto/ripemd160.c
==================================================================
--- libs/core/crypto/ripemd160.c
+++ libs/core/crypto/ripemd160.c
@@ -10,23 +10,26 @@
#endif

#ifdef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
#endif
+

#if defined(__BIG_ENDIAN__)
# define WORDS_BIGENDIAN 1
#elif defined(__LITTLE_ENDIAN__)
# ifdef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#else
+#ifndef STK_ENDIAN_FIX
# ifdef BSD
# include <sys/endian.h>
# else
# include <endian.h>
# endif
+#endif //STK_ENDIAN_FIX
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN 1
# elif __BYTE_ORDER == __LITTLE_ENDIAN
# ifdef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
============================

Не знаю, есть ли в твоём MXE этот самый endian.h, но если нету, то первый вариант спасёт и тебя тоже :)
[User Picture]
From:[info]ketmar
Date:November 6th, 2021 - 05:54 am
(Link)
…или использовать endianness.h из самой corelib. ;-) спасибо за репорт!
[User Picture]
From:[info]steinkrauz
Date:November 8th, 2021 - 10:01 pm
(Link)
Мимо кетмарского дома я без патчей не хожу
=======
Index: source/net/net_udp.cpp
==================================================================
--- source/net/net_udp.cpp
+++ source/net/net_udp.cpp
@@ -99,11 +99,11 @@
virtual int GetSocketPort (const sockaddr_t *) override;
virtual int SetSocketPort (sockaddr_t *, int) override;
virtual bool FindExternalAddress (sockaddr_t *addr) override;

#ifdef WIN32
- static BOOL PASCAL FAR BlockingHook ();
+ static INT_PTR WINAPI FAR BlockingHook ();
void GetLocalAddress ();
#endif

int PartialIPAddress (const char *, sockaddr_t *, int);

@@ -309,21 +309,21 @@
//==========================================================================
//
// VUdpDriver::BlockingHook
//
//==========================================================================
-BOOL PASCAL FAR VUdpDriver::BlockingHook () {
+INT_PTR WINAPI FAR VUdpDriver::BlockingHook () {
MSG msg;
- BOOL ret;
+ INT_PTR ret;

if ((Sys_Time()-blocktime) > 2.0) {
WSACancelBlockingCall();
return FALSE;
}

// get the next message, if any
- ret = (BOOL)PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE);
+ ret = (INT_PTR)PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE);

// if we got one, process it
if (ret) {
TranslateMessage(&msg);
DispatchMessage(&msg);

======

Древний код (точнее, дефайны в нём) вызывал несочетаемость типов в 64-битном билде. Там, конечно, шёл только варнинг, но так как я не могу оттестировать сетевой код, то решил перебдеть и поправить на правильные типы.

[User Picture]
From:[info]steinkrauz
Date:November 8th, 2021 - 10:15 pm
(Link)
Сам варнинг забыл:
k8vavoom\source\net\net_udp.cpp:360:22: warning: cast between incompatible function types from 'BOOL (*)()' {aka 'int (*)()'} to 'FARPROC' {aka 'long long int (*)()'} [-Wcast-function-type]
[User Picture]
From:[info]ketmar
Date:November 9th, 2021 - 06:47 am
(Link)
а ты в курсе, что тут пробелы в диффе бьются, без которых оно не фурычит? это шо, больной старый я должен ходить и руками править заместо патч накатить?! поставь ты уже фоссил, давай нормальные бандлы!

а теперь нечто совершенно иное серьёзно: спасибо. но ты лучше всё-таки дай нормальный накатываеме патчи: я ж такую херь проверить не могу, УМЕНЯВСЁРАБОТАЕТ. вдруг чо забуду руками поправить.
[User Picture]
From:[info]ketmar
Date:November 9th, 2021 - 06:50 am
(Link)
в смысле — это я уже ручками починил, конечно. но ты тогой… давай не тогой… (ц) %-)
[User Picture]
From:[info]ketmar
Date:November 9th, 2021 - 06:52 am
(Link)
кстати, с чего вдруг не можешь? локалхост — тоже сетка. я так и тестирую, чо. ну, когда вообще у меня есть настроение сеть тестировать, потому что мне на неё на… надо много времени.
[User Picture]
From:[info]steinkrauz
Date:November 11th, 2021 - 06:36 pm
(Link)
Ну вот мне тоже на сеть на... надо много времени, чтобы понять как вообще завести, что с ней дальше делать и т.п.
[User Picture]
From:[info]steinkrauz
Date:November 11th, 2021 - 06:37 pm
(Link)
А я тебе баг рендера принёс!

https://files.catbox.moe/ge81q8.jpg

Это Биофилия свеженькая
Log: >mypos
Log: Map Hash (sha): 372e5c0bf3d69442331aef2ac6bf3e90e69a50e7a7f63da9335c58ad
Log: Map Hash (md5): be791fe50b803847c9edf373c0807eb8
Log: sub: 7054; sector: 1866
Log: pos:(4979,-305,96) angles:(286.747,11.858)
Log: +map map06 "+warpto 4979 -305 96"
[User Picture]
From:[info]steinkrauz
Date:November 11th, 2021 - 06:42 pm
(Link)
Причём он не на всех объектах появляется. Соулсфера, облезлый куст на скриншоте, и ещё один куст прямо по курсу и чуть правее за палаткой.

Остальные объекты вроде как нормально.
[User Picture]
From:[info]ketmar
Date:November 11th, 2021 - 07:25 pm
(Link)
а я знаю про это, это известная проблема с сортировкой транслюцентов. к сожалению, у нас 2д бсп, а транслюцентам надо 3д. поэтому я их сортирую кое-как, в надежде, что они не всегда глючат.
[User Picture]
From:[info]ketmar
Date:November 11th, 2021 - 07:27 pm
(Link)
эти объекты, собственно, тоже транслюценты (у куста сглаживание там есть, если я верно помню). сортер не понял, что с ними делать.