VOGONS


Q3V - a Q3A hack-up, just for Vogons!

Topic actions

First post, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Here's an edited Q3A with paletted texture support, among other minor things (forcing nearest in software GL, hor+ widescreen, etc). Edited source files included.
Because of those two benchmark threads, i've decided to get this out sooner.

To use palettes, set r_textureBits 8. r_ext_paletted_texture must also be 1 if you want to use the extension provided by your card. It defaults to 1 anyway.

I've only tested this on a 3dfx Voodoo2, and testing was definitely successful. r_picmip 0 is playable 😀 I have not yet tested it on any other Voodoo card.

There are some unfinished things like paletted mips (right now they're simply resized without resampling) and bugs like some walls appearing pink, I really should get some alpha detection methods in there to force the channel off for some of them.

Some drivers do actually freak out - so far, don't try native paletted textures on:
- Microsoft GDI Generic
- SGI OpenGL for Windows
- nGlide wrapper + 3dfxvgl.dll
- DOSBox 3dfx-supporting build with Kekko's software driver and 3dfx Voodoo Graphics drivers

How paletted texturing usually looks, expect some vibrant colors to be banded.... but the performance!!!
voodoo2-picmip0-8.jpg

NOTE: THIS DOES NOT WORK PROPERLY ON VOODOO1

Last edited by leileilol on 2015-07-07, 19:52. Edited 1 time in total.

apsosig.png
long live PCem

Reply 2 of 20, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

Thought the game was Hor+ in the first place...

Reply 3 of 20, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

I've actually been playing around with Quake 3 lately too.

Though I'm going in the opposite direction by writing a totally new Q3 renderer in C++ (from scratch - no game libraries like unity/ogre) with GL3 + glsl.
I'm trying to implement everything in modern techniques, so I'm actually throwing out a lot of the baked in Q3 data:
-Global illumination instead of vertex illumination and lightmaps
-Occlusion culling instead of PVS
-GLSL instead of the q3 shader system

I'm also not using any code (or even referring to) from the Q3 source release. Already have the level itself rendering done in a pretty nice state in 56KB of code.

It's just a way to teach myself OpenGL though. I actually REALLY hated Quake3 for being multiplayer-only. As such no one will probably ever be interested in my releasing this since I won't be adding networking or even bots for local play (unless at some point I become interested in AI programming).

Reply 4 of 20, by F2bnp

User metadata
Rank l33t
Rank
l33t

I will give this a try in the coming weeks 😀

Reply 5 of 20, by Davros

User metadata
Rank l33t
Rank
l33t

"rename this file to the PK3 extension"
so
goodpalette.pk3.pk3 ?

Guardian of the Sacred Five Terabyte's of Gaming Goodness

Reply 6 of 20, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Just chop off the .zip extension. .pk3 isn't allowed on Vogons 🙁

Jarvik7 wrote:

-GLSL instead of the q3 shader system

That would be fine if you parsed the old shaders just to layer textures or find tcGens and substitute other effects for it like cubemapping reflecting the current scene in GLSL. At least have two stages supported because of certain effects like the crossblended fires 😀

Also doing it from scratch reminds me of this old noble effort - which I wonder is portable enough to be a renderer module...

d1stortion wrote:

Thought the game was Hor+ in the first place...

Nope. Default behavior is Vert-, and often the "wide screen fix's" are just raising the cg_fov value to compensate, though this also introduces vertical distortion and the weapon being pushed down - and r_customPixelAspect doesn't seem to actually work as intended.

apsosig.png
long live PCem

Reply 7 of 20, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

I pulled that from here, the screenshots look ok to me (aside from the obviously stretched hud, but it's an old game anyway). There is something going on with the crosshair though, but the circular objects in the background still appear circular in widescreen.

Reply 8 of 20, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie

I've been wanting proper widescreen support for Quake III for such a long time. I hope this engine delivers. 😀

EDIT: Just played a few minutes of it with this engine, then with the original quake3.exe, the Hor+ support makes a whole world of difference. Hopefully this won't be considered cheating online. 🤣

Amazingly, Unreal Tournament and even Quake II had proper support for widescreen resolutions afaik, and both games used engines that predated Quake III. I don't know what method of widescreen correction they used, but whatever the case was, in Quake II selecting a widescreen resolution was as easy as choosing any other resolution, and for UT, all it took was one console command, and no meddling with configuration files or anything.

Reply 9 of 20, by leileilol

User metadata
Rank l33t++
Rank
l33t++

It shouldn't be cheating since even Quake Live has hor+, IIRC.

Q2 and UT were vert-.

apsosig.png
long live PCem

Reply 10 of 20, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote:

It shouldn't be cheating since even Quake Live has hor+, IIRC.

Q2 and UT were vert-.

So by playing Q2 and UT at my monitor's full resolution, I'm actually putting myself at a disadvantage? Dang. 😜

Reply 11 of 20, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

UT allows for a custom FOV to compensate...

Reply 12 of 20, by F2bnp

User metadata
Rank l33t
Rank
l33t

Pleased to announce that this does indeed work on my Voodoo 3 3000 with 3Dfx's OpenGL ICD. It also does indeed give a slight performance boost 😀. Cool stuff leilei, keep it coming!

Reply 13 of 20, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie
d1stortion wrote:

UT allows for a custom FOV to compensate...

I never actually knew that UT allowed you to set your FOV. What would be a good FOV for a 16:10 monitor?

Reply 14 of 20, by subhuman@xgtx

User metadata
Rank Oldbie
Rank
Oldbie

The engine will instantly crash for me with a gray/white screen on a Pentium 3 with an Obsidian2 200sbi and win98se. I have already tried placing official 3dfx icds on rhe game's directory without results. Can this be because of using non-reference, custom drivers for the sli card?

7fbns0.png

tbh9k2-6.png

Reply 15 of 20, by F2bnp

User metadata
Rank l33t
Rank
l33t
subhuman@xgtx wrote:

The engine will instantly crash for me with a gray/white screen on a Pentium 3 with an Obsidian2 200sbi and win98se. I have already tried placing official 3dfx icds on rhe game's directory without results. Can this be because of using non-reference, custom drivers for the sli card?

Try switching from 3dfxvgl.dll to opengl32.dll and vice versa.

Reply 16 of 20, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie
mr_bigmouth_502 wrote:
d1stortion wrote:

UT allows for a custom FOV to compensate...

I never actually knew that UT allowed you to set your FOV. What would be a good FOV for a 16:10 monitor?

100, presumably.

Reply 17 of 20, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie
subhuman@xgtx wrote:

The engine will instantly crash for me with a gray/white screen on a Pentium 3 with an Obsidian2 200sbi and win98se. I have already tried placing official 3dfx icds on rhe game's directory without results. Can this be because of using non-reference, custom drivers for the sli card?

You must patch Q3A to version 1.32.
P.S. This renderer is slow... P4 3.2 GHz + Voodoo2 12 MB.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 18 of 20, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie
d1stortion wrote:
mr_bigmouth_502 wrote:
d1stortion wrote:

UT allows for a custom FOV to compensate...

I never actually knew that UT allowed you to set your FOV. What would be a good FOV for a 16:10 monitor?

100, presumably.

Cool. Would I be able to use this online, like on Quake III, or would it be considered a cheat?

Reply 19 of 20, by leileilol

User metadata
Rank l33t++
Rank
l33t++

It's not Punkbuster protected.

Gamecollector wrote:

P.S. This renderer is slow... P4 3.2 GHz + Voodoo2 12 MB.

And what ICD are you using? I'd imagine those "fast" Mesa3D-based ones might not implement paletted textures... remember to enable paletted, r_textureBits 8 and r_ext_paletted_texture 1. If paletted texture isn't natively supported, then you'll see smooth and clean mipmaps (since I didn't implement that function for true paletted), and the console should have a warning message about that extension.

I've only tested this in a January 2000 3dfx GL ICD and it's definitely faster on that.

apsosig.png
long live PCem