qbism / q2tools-220

Quake 2 map compiler tools with v220 map support, automatic phong, enhancements, and fixes.
GNU General Public License v2.0
61 stars 20 forks source link

Increase BSP limits? #11

Closed motorsep closed 2 years ago

motorsep commented 2 years ago

I am messing with a project converting Quake 1 maps to Quake 2 maps and then rebuilding them for Q2RTX. Everything is ok with vanilla Quake 1 maps and also community maps that use BSP29 (vanilla) format.

However, most of the modern maps like the ones from Arcane Dimensions use BSP2 format, which has greatly expanded limits of BSP29. Conversion into Quake 2 is impossible, even after jumping through many hoops, because 4bsp, for example, can't handle more brushes, more entities, larger areas, etc. :(

One particular case: image

Is there any way you could expand the limits for Q2 BSP in these tools ? Maybe have like a cmd line arg "-eBSP" (e for expanded) that would compile Q2BSP that is on par with BSP2 ?

Thanks

qbism commented 2 years ago

Map extents and entities max have been increased in recent commit. This along with previous work intends to bring limits in-line with kmbsp3 113d, but not tested yet. The changes don't break bsp version 38 format. Max faces, edges, etc. are bound by the format limits per qfiles.h

Paril commented 2 years ago

He's mainly asking for a format akin to BSP2, which is a simple format modification to BSP29 that changes all of the shorts to ints. Knightmare has a WIP concept as BSP39 which does this, but it does also add a few more lumps that aren't really of interest to us like the Q3bsp fog lumps.

motorsep commented 2 years ago

@qbism I already increased soft limits in my local checkout and it only helped in a few limited cases (not saying it's not a good thing that you increased it in 4bsp now, but that's not quite what I was asking about).

Here is never implemented BSP39 format specs by knightmare (basically similar to BSP2 in ericw's tools) :

https://github.com/mczero80/KMQuake2/blob/master/qcommon/qfiles.h#L661

qbism commented 2 years ago

"xbsp" has been pushed. Like BSP2, this changes several data types from 16-bit to 32-bit, but does not create new lump types or change the file version. Header ident is XBSP rather than IBSP.

motorsep commented 2 years ago

@qbism sadly, latest master isn't building QBSP for me :/ I compiled it last night (MSVC, both release and debug builds), tried compiling ad_sepulcher and after some work .... it would exit quietly and produce no .bsp

I sent you an email with details.

motorsep commented 2 years ago

@qbism ugh, so I tried other maps similar to ad_sepulcher and none compiled.. Just silent exit and no BSP. Same details on the output as I emailed you :(