ZDoom / gzdoom

GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
http://zdoom.org
GNU General Public License v3.0
2.53k stars 551 forks source link

[BUG] ZDBSP requires command-line parameters in a specific order to produce compressed extended nodes #2658

Open kitchen-ace opened 3 months ago

kitchen-ace commented 3 months ago

GZDoom version

ZDBSP 1.19 (GCC-x86 : Jan 7 2016)

Which game are you running with GZDoom?

None

What Operating System are you using?

Linux x86

Please describe your specific OS version

Arch Linux

Relevant hardware info

No response

Have you checked that no other similar issue already exists?

A clear and concise description of what the bug is.

There is no issue tracker for zdbsp so I'm reporting it here. Apologies if there was a better place to do it.

zdbsp will not compress extended nodes if the parameters are not given in the right order. AFAICT this is a bug.

zdbsp -X -z -o output.wad input.wad will produce compressed extended nodes.

zdbsp -z -X -o output.wad input.wad will produce uncompressed extended nodes.

Notably, the second line is how UDB, and presumably older iterations of Doom Builder, specify their configuration for "ZDBSP - Compress Nodes (UDMF)", meaning the majority of maps built with this configuration will actually have uncompressed nodes.

If that is indeed intended behaviour, let me know and I will file a bug with UDB instead.

tested with both Linux and Windows (through Wine) versions of zdbsp. analysis of large recent wads (e.g. Sunder ver2) suggests that compressed extended nodes aren't being used.

Steps to reproduce the behaviour.

No response

Your configuration

No response

Provide a Log

No response

kitchen-ace commented 3 months ago

It looks like -z, -X, and -Z are all essentially mutually exclusive, so not exactly a zdbsp bug. This is not clear in what documentation exists though, and I can't imagine anyone wanting to pass -z -X means to create uncompressed extended nodes.