News | Forum | People | FAQ | Links | Register | Log in
Fitzquake Mark V
I wasn't planning on doing this mini-project, it started as an effort to address some Fitzquake issues, fix them the right way up to Fitzquake standards (i.e. do it right, once and properly versus continual releases) and donate it back.

FitzQuake Mark V Download:

http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Short version: Eliminated most issues in FitzQuake thread, most issues I can even remember hearing of ever and marked every single one clearly with a very minimal implementation.

It may be the case that only metlslime and Quakespasm and engine coders may find this engine upgrade of interest.

Features: 5 button mouse support, single pass video mode, external mdl textures, alpha textures (like RMQ), record demo at any time, rotation support, video capture (bind "capturevideo toggle"), console to clipboard, screenshot to clipboard, entities to clipboard, tool_texturepointer, tool_inspector (change weapons to see different info), clock fix, contrast support, fov does not affect gun, gun displays onscreen, Quakespasm wrong content protection, external ent support, session-to-session history and .. (see readme).
Wow! 
 
 
gonna dig through this now. 
 
-sndspeed 44100 doesn't enable 44khz sound? 
Had A Look 
Digging the new water effect, set it as default :) the environment map & texture scrolling could be put to some good uses also, is it possible to have the environment map over a standard texture though? Looks kinda weird having only environment mapping with no base texture underneath.

The demo features are EXTREMELY welcome! Oh god you saved my life here :) 
Looks Very Interesting... 
I'll have to check it out when i get home.

Baker, does this engine make obsolete your previous "custom builds" of fitzquake? For example there was one a few years ago that had various fixes like the Intel adapter fix. 
Also... 
Is there a full list of changes? The news post says "see readme" ... the readme says "see home page" ... 
Sweet 
going into fullscreen doesn't give me black screen anymore! :D

with the latest fitzquake i had to use a .bat with the windowed option for it to run, otherwise i had to tab out and then back in to see something. that was my only issue with fitzquake.

so far nothing wrong that i can see though [only played like 5mins though]. 
 
water ripple seems buggy though. lots of tearing and inconsistently sized faces on water brushes cause the ripple effect to be uneven. 
BSP2 Support? 
Or is that still RMQ engine only?

Lots of those fixes and features seem very useful. I like fov does not affect gun, although people that use extreme fovs in multiplayer kinda annoy me (especially in the 3rd person Rune, where you can see without being seen using an extreme fov). 
I Don't Think So... 
I didn't load your beta map ;) 
Heh 
understandable ;)

vis is getting close to done, but every time it gets to 15 hours it goes back up to 25. lol. 
Random Note: 
r_waterripple looks better if you set "r_oldwater" to 1, because when r_oldwater is 0 it ignores the "gl_subdivide_size" setting. There are still subtle issues with it due to glquake's buggy subdivision (for example, it creates t-junctions.) 
The Real Problem Is 
Sine waves don't linearly interpolate. You cannot linearly interpolate a sine wave; the best you can do is increase tesselation so much that the problem becomes less visible - that's what r_oldwater 0 (in a sorta-kinda-roundabout way) or low values of gl_subdivide_size do, but at other costs elsewhere (fillrate, limiting texture size, extra vertex processing). 
 
Is there any way to stop monsters and pickups from being fullbright? 
Thanks 
Now my shitty laptop integrated gfx card can finally run maps with dynamic lighting without stuttering like Walter Jr in Breaking Bad.

But yeah, what Text_Fish said. 
@metslime 
See quakedef.h

I described the changes as best I could.

make obsolete your previous "custom builds" of fitzquake

Yes. My intention with this engine was so you (or the Quakespasm guys or any interested modder) could implement any fix or improvement you were interested it at will.

I know that over at Inside3D a lot of engine weaknesses have been uncovered [it is actually almost intimidating :( ] and rather than make it hard to absorb the solutions, I wanted to make it an easy process.

I've learned a great deal about the rendering process from FitzQuake's complete rework of it. This is my reciprocal work. :)

So far ... 
@others 
MH deserves all the credit for the frames per second increase. In the engine, this is marked as SUPPORTS_MH_DYNASPEED. It literally turns 11 fps dynamic light situations into 250 fps lighting situations. 
@daz 
I do have a great liking for you demos. ;-)

I'm glad this made your day. 
Argh ... Quadruple Post ... 
@Tronyn ... no I haven't implemented BSP2 ... yet.

It you'd like everything BSP2 does, but in classic BSP, I do have your answer:

http://quake-1.com/docs/utils/txqbspbjp_rotate_skip.zip

^^ BSP compiler with rotation and all BSP2 modification except it does classic BSP.

I didn't make that because I'm against BSP2 (I'm not) but because I have a conservative side that wants to understand individual changes one at a time. 
@Text_fish 
Is there any way to stop monsters and pickups from being fullbright?

Fixed. Thanks for pointing that out.

Please re-download. 
 
holy fuck the tool_inspector is awesome.
edict numbers, model index number, frame, target/targetname, absmin/maxs...
I won't be using this as a 'playing' engine (and it seems like that wasn't the intent anyway) but i will certainly use it for debugging stuff.
thank you! 
 
Cheers Baker. :) 
@daz, Necros 
is it possible to have the environment map over a standard texture though?

I agree, but I didn't want to introduce a hack into this. I'm not sure what a good mapping use of sphere maps are (except making metals look nice). That being said, you could use FitzQuake protocol 666 to place an alpha brush in front of another brush and use the environmental map texture on the alpha brush.

-sndspeed 44100 doesn't enable 44khz sound?

That isn't actually a FitzQuake 0.85 feature. 
 
Sorry, I've been using QS for so long now, I totally forgot about that. 
Well ... 
I've always liked the original Quake sounds as-is and one of the first times I gave a serious look at using DarkPlaces my first question was "The sounds in DarkPlaces are very 'crisp'" and I was told about the -sndspeed parameter which I set to 11025.

Maybe I'm in the minority.

I added -sndspeed command line param. 
Agree With Baker On -sndspeed 
With the sources at 11k and with the way Quake "upsamples" them by default, all it's really doing is pitch-shifting. The crispness may be there, but the bottom-end welly is all gone. 
 
don't really care about that myself. i've never noticed anything bad with the way it's done in quakespasm. that said, for whatever reason, the 11khz sounds seem uglier in DP for some reason.
Also, with my habit of using so many ambient sounds and random crap, i really can't do without 44khz. 
Waterwarp 
Is it implementation-time vs. level-of-interest prohibitive to add GLSL support for the sake of restoring software Quake's original per-pixel waterwarp on liquid surfaces and on the screen while underwater? If not it seems like a clear visual win over relying on subdivision and ST distortion, and I'm surprised we haven't seen it in more engines by now (MHQuake comes to mind).

GLSL isn't exactly new, and vertex based warp still exists as an elegant fallback. 
 
doing waterwarp on the surface with GLSL is fairly doable (though it is something I have never done.) It's probably cheap enough on any shader-capable card.

Doing the fullscreen warp when underwater involves touching a bit more of the renderer because you have to render the scene to a texture, then copy that texture to the screen using a warping shader. In terms of hardware requirements, I think anything that can run doom3 can handle it, but this is, again, based on zero personal experience. 
Waterwarp 
It's very cheap on any shader-capable card. The per-pixel sin is slightly expensive (although the shader compiler will typically optimize it to a single sincos instead of two sins) but that balances against a lower vertex submission cost due to no subdivision (and not to mention the ability to keep everything in a static VBO if you want to go that far).

Doing shader-based versions of both water and sky means that every single surf can go into a single static VBO, in fact, as no per-vertex data needs to be updated on the CPU at all (you'd use a cubemap for skyboxes in this setup - Doom 3 has some code for converting Q1/Q2 skybox layouts to alignments suitable for cubemaps and I've independently written the same conversion myself a few years ago so I'm reasonably certain that it can't be rocket science). Get some draw call batching in and you're suddenly running up to 5 times or more as fast in big, heavy scenes. That does require a higher GL_VERSION than Fitz aims for, as well as some massive surgery to the current codebase. Probably not reasonable to expect in any kind of short/medium timeframe, if ever.

The fullscreen warp has some complexities in how you handle the edges. You can use GL_CLAMP_TO_EDGE but it won't handle the bottom edge which juts against the sbar. There are solutions (I used a "control texture" that fades off the warp effect at the edges, another option is to just destroy and recreate the texture at the appropriate size if it needs to change, which generally doesn't happen at any performance-critical time).

Generally glCopyTexSubImage is going to be slower than using an FBO for this because it needs to shift more data around. Overall you can expect to lose maybe one third of your performance owing to increased fillrate even in the best case.

Another way to do it that doesn't need shaders (and will even work on GL1.1 hardware) is to use a grid of quads (much the same as what Fitz does for r_oldwater 0). That can give acceptable enough quality.

The third way is just to rotate the projection matrix a little based on time, which gives a reasonable enough effect at no performance cost. It's like Fitz's current stretch'n'squeeze effect but with some rotation added in too. You need to extract your frustum from the combined MVP rather than calculating it separately if you do this though. Easy enough (and a little more robust than calculating it separate).

Despite all this seeming complexity and multiple options it's probably cleaner and easier to integrate with any engine as it doesn't need to touch any code outside of it's own subsystem. So - detect if we're underwater (via r_viewleaf->contents) at the start of the scene, and either (a) just set a flag and/or (b) switch the render target. At the end of the scene, either capture the scene to a texture or put the old render target back, then draw using the appropriate method depending on what hardware capabilities are available.

For an engine like Fitz I'd recommend asm shaders rather than full GLSL. The main reason for that is that they're available on a much wider range of hardware, so they seem more in keeping with the Fitz philosophy. 
 
good news!
thanks, Baker. 
Alpha Animated Textures 
Would it be possible to do alpha animated textures?

Something like this:
{+fire1
{+fire2
{+fire3 
 
I'll let Baker answer on his own behalf; this opnion is mine and mine alone.

Yes, it should be possible with the necessary code changes. However, by this point in time you're stacking up multiple "first character" hacks (alpha animated water with alternate anims anyone?) and things will begin to look a little delicate.

So some form of alternate system would be needed. Since Q3A shaders are out there, since we have a GPL working reference implementation (the Q3A engine), and since they don't require any format changes (just add a .shader file for anything you want different behaviour for), that would be my own preference. 
@Tester 
It might already be possible to do them:

Set r_texprefix_fence "+alpha" and load your level.

It should process all the textures that begin "+alpha" and likewise set a flag to mark that surface for alpha mask rendering.

I hadn't expected someone to want to use alpha textures like that, but I bet it works.

(Note: fullbright pixels in alpha textures are supported (except color 255 of course). Replacement textures replacing an alpha texture that has an alpha mask are also supported.) 
 
Baker this makes fitzquake look more like darkplaces, joequake, qrack e.t.c?

record demo is awesome... 
No 
 
@Trinca 
If by chance you are looking for something like JoeQuake, you might try Engine X. Engine X supports FitzQuake 666 protocol and looks like JoeQuake with the kind of very recent engine features one would expect (video mode change, etc). 
 
Obrigado Baker

I will see it ASAP!

thanks 
@Baker 
Thanks for the reply!

Also, regarding the alpha textures, I think there is a bug with the way they are rendered, or it may be intended. The transparency textures bleed through the floor and you can see the void of the map.

Here is a picture showing what I mean:
http://imgur.com/ZFOz1

Even if I paint the bottom of the glass brush with a solid texture, it still shows the void through the floor. 
 
Turn your alpha brushes into an entity like illusionary, door, func wall etc. Use a really good q3 fence texture, enable texture scroll and be amazed. 
 
Yup.

Because of the way QBSP seals the world and chops off outside faces, putting this texture type on a brush that's not part of an entity will produce this result. It's expected behaviour and a result of normal QBSP operation, not really an engine bug (there's actually nothing that the engine can do to work around it as the data required isn't even there in the BSP to begin with). 
Yeah 
See above. I almost decided to enable alpha textures only for entities (func_wall, etc.).

But an experienced mapper knows all the rules and how the tools work and allowing it for the world is no different than, for instance, using the skip-remove tool.

Alpha textures should generally be limited to entities (func_wall, platforms, doors, etc). 
Random Black 
I have been testing my map with the mark V engine and for some reason all my models (map objects, items, weapons and monsters) randomly go black and monsters do it while patrolling.

I have checked the area the monsters patrol and my weapon does not go black. It is not a subtle change either, they are normal (full bright) one minute and then solid black the next.

Is there a special reason for this? (I know this is a counter productive thing to say but it does not happen in Fitz85) Is there a command line parameter I need to stop this? 
Sock: 
do they stay black with r_fullbright 1?

If yes, may be a texture problem.... if no, may be a lighting problem. (not a problem with your level, i mean a problem with the engine) 
Fullbright 
I loaded the map, typed in r_fullbright 1 and I could see everything, no blackness. It looks like r_fullbright removes the light map from everything. It is very strange the blackness on certain objects, I thought it was specific locations where I have spawned stuff but it happens to wandering monsters.

I checked the original Q1 maps (played episode 1) and could not see any problems. I am using the latest compiler tools, hitting a couple of max limits but the engine still copes with it. 
Sock 
It could be because I made the light check test against world submodels (plats, lifts).

I have a new revision to this with new features essentially done. I'll put a cvar in disable shadows/lighting from world submodels to see if that is the origin of the issue.

I also changed the lighting depth check (because MH did) from 8192(Fitz 0.85) to 2048 (original Quake) because MH had a comment about performance (8192 is a long, long distance).

The new version should be be available in 6-7 hours. 
Another Of Very Few Possibilities 
The code that obtains shadow surfaces in Quake is actually very imperfect and can fail to "hit" a downtrace for lighting. Prior to the trace, I may have it reset the result color to black (full darkness).

Either way this shouldn't be hard to solve. 
Baker 
Awesome, thanks :D I will download it and test my map once you got a new link ready.

Another bug:
When I start the engine (windowed mode) the +mlook does not work (even if I have the window selected) The old Fitz engine when it started windowed would never give up the mlook but at least I could test my maps without have to go full screen all the time. (I usually have to exit Fitz to use another application because the mouse cursor is not available to any other windows apps).

Is this a windows issue? a problem with active window focus? Or is the application (mark V) not able to control the mouse look when windowed? 
 
I also changed the lighting depth check (because MH did) from 8192(Fitz 0.85) to 2048 (original Quake) because MH had a comment about performance (8192 is a long, long distance).

Note: the reason i extended this distance is because CZG had a really deep pit in one of his maps, and the scrags floating over that pit were black instead of taking the lighting from the floor. 
Maybe 
the light depth check could be tweaked via a command line parameter? Something to set before the engine fully loads? 
 
How much the increased depth check costs to make. Is it really worth reducing back to stock quake for a little extra performance? 
 
The lighting depth check should be cvar-ized. Having to restart the engine to change something like this is stupid.

2048 is probably a little too low, especially with the "run the test for static entities once only at startup" trick (which was where the main performance impact came from in tests - and mind you this was quite an extreme case too). It also fails to light models properly in Zerstorer when this low.

It's probably worth finding the max top-to-bottom extent of the world and using that value as well - that'll be guaranteed to catch anything. 
Yeah, That Works. 
end[2] = start[2] - (cl.worldmodel->maxs[2] - cl.worldmodel->mins[2]);

Why make the player do it when you can do you yourself? 
Continued ... 
@Necros: The lighting check is one of those super slow recursive world checks. I'll do as MH suggests and default it to the Fitz 0.85 --- I wasn't looking to make an changes in how Fitz 0.85 operates (I lacked the imagination of a situation where 8192 could actually be needed, like the CZG map metslime said that induced him to raise the distance check).

[I'll add in MH's idea of a world bounding box check .. and if set to 0 will check lighting from unlimited depth. These things are going to push the update version to tomorrow it seems. But getting things absolutely right is something worth taking the time to do.]

@Sock: Any chance you could zip your map plus save the game exactly at the point the view model (weapon) lighting is wrong? It would help me avoid investigating things that aren't actually the source of the problem. 
Mh: 
if you use the max level extents of the world, does that still save any performance? I assumed the cost of a traceline is related to the number of nodes it has to cross, and once the line is >= level extents, it's already the worst case, right? 
 
Or just end[2] = cl.worldmodel->mins[2] - better yet. 
@Sock Part 2 
Another bug: When I start the engine (windowed mode) the +mlook does not work (even if I have the window selected)

I didn't change any mouse operation, but I'll investigate and see that this gets resolved. 
 
The big advantage of basing it on the world extents is not so much in terms of performance but in terms of correctness. Using cl.worldmodel->mins[2] (I'd actually subtract another 10 or so just so that the end point is ouside the map, then check that start[2] actually is bigger than end[2] to cover for noclipping) means that you're always going to hit something during the downtrace - it's guaranteed because nothing in the world can be outside of that point.

The other method - pick a number and hope it's big enough - fails because eventually a map is going to appear for which it isn't big enough. True, 8192 matches protocol 15's default +/- 4096, bounds but it breaks on extended protocols that may increase those bounds.

Ultimately it comes down to a choice between a simple method that is guaranteed to always work versus just picking a number. 
@Baker 
Any chance you could zip your map

You certainly make it hard to be contacted, I tried the MarkV readme file, your account here and got no joy. Any chance you can drop me an email address? (my account here has my details) 
Done 
check your mail ;). 
New Version: 
Download: http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Readme: http://quake-1.com/docs/utils/fitzquake_mark_v.txt

Some features:

Game command supports -hipnotic, etc. Like type: game warpspasm -quoth

ALT-ENTER switches between fullscreen and windowed mode, "folder" command now opens the folder and highlights most recent file made (like a screenshot or demo).

Many bug-fixes, speed increases and Sock's lighting bug should be gone.

[Issue wasn't related to shadow downtrace for lighting, but I made that "infinite" now. r_lightpoint_depth 0 = infinite. You could set to 8192 or 2048 ... but I think I'll remove the cvar eventually. "infinite" is a Z endpoint of cl.worldmodel->mins[2] ... few objects.]

There are also major capture demo improvements to make things easy. See readme. If interested in demo capture, I recommend trying Google WebM (known as vp80) available at http://www.optimasc.com/products/vp8vfw/index.html

WebM is the video codec Google wants to use as the HTML5 video standard, so it compresses video fast and the file size is small.

This engine revision will automatically detect that this codec is installed and use it.

[Video capture is simple in this engine.

Type capturedemo demo1 in console. Best to be in windowed mode so you can see demo progress. That's it.

You can also bind "capturevideo toggle" to a key] 
 
Another old Fitz bug, by the way:

Set host_maxfps to something stupidly high (10,000 or so) (I suggest adopting host_maxfps 0 = unbounded - Q3A did that and I had one player who was expecting the same behaviour from Quake).

Set scr_showfps to 1.

Look at the fps counter. Funny, isn't it? The tileclear isn't being refreshed every frame (which is a bad enough idea to begin with...) so the area where the counter lives just gets new figures drawn over it each time. 
 
I'll need to absorb your timing fixes first (plus add the server-side lerp movement for "monsters") and afterwards I'll make host_maxfps 0 function like as above. 
 
Please do not release updates using the same filename. Use the date as suffix or a version number. 
... 
First release (R0): http://quake-1.com/docs/utils/fitzquake_mark_v_r0.zip
Revision 1 (R1): http://quake-1.com/docs/utils/fitzquake_mark_v_r1.zip
Revision 2 (R2): http://quake-1.com/docs/utils/fitzquake_mark_v_r2.zip
Revision 5 (R5): http://quake-1.com/docs/utils/fitzquake_mark_v_r5.zip

This meets my need of making someone doesn't download an old one for no reason, and should satisfy your desire to make sure no source codes/binaries get lost. 
Thanks! 
 
"Title Demo" Support 
I forgot to mention the latest version has support for "title demos".

A "Title Demo" is a demo that plays with no HUD, no crosshair, fov 90, viewsize 120 (No status bar).

Usage: cl_titledemos_list "demo1.dem,demo2.dem,demo3.dem"

This allows usage of "startdemos demo1 demo2 demo3" to essentially play as a movie or an intro. This could be gameplay action or you could record of demo of you touring the map with no clip and no target (hopefully with a QuakeC progs that uses a null view model).

I more or less got this idea from how Warsow starts up showing game play action or how the original Unreal did a cool moving view of the castle. 
Add ... 
Kurok used a "title demo" as the start screen. It was a demo of a small map that was 70-90 seconds long (repeating) that showed a mountain and a block labelled "Kurok". For the longest time, I didn't realize the intro screen was a demo.

Demos, of course, are recordings of a map so they can have a soundtrack just like how a map can have a soundtrack key. 
 
Any chance to add widescreen Fov? Currently I have to put FOV 106 in the command line. 
Well ... 
That is a "no win" situation. Here is why ...

The field of view is the degrees of view showing. If I set to that to 90 degrees, I would hope that would be 90 degrees.

If I correct the FOV for widescreen to adjust to, say, a 4:3 aspect ratio (wide-screen correction) then it isn't really 90 degrees but some other number.

If I make it auto-correct, many people will not like it because it looks wrong because they are used to it looking a certain way in FitzQuake. So I would have to add a cvar to control it.

Which is one more setting for someone to mess with.

With how things are now, there is a setting to mess with (FOV) and everyone knows what it does. Versus add a new setting, which people would have to learn about. And other engines wouldn't save this new setting so it would get erased periodically. Not that FOV saves to config anyway.

Then there is the argument that 4:3 isn't the Quake aspect ratio to use for widescreen. That 8:5 is because original Quake loaded up to 320x200, not 640x480.

So ... I would add widescreen correction if a magic bullet answer exists. But I can't think of one.

The nicest thing about FitzQuake is that unlike some other engines that you can rely on it to be familiar versus some engines that do things that confuse you and you don't know how to change it or maybe it can't be changed. 
 
Agree with baker re:fov, but I would add that even in 320x200 mode, quake is intended to fill a 4:3 display, which means non-square pixels, but that is how monitors displayed that mode AFAIK.

(I sometimes look at the menu art and wonder if the letters are intentionally stretched to look correct in this mode.) 
Mlook 
Hey, when do you plan to release the version with mlook + windowed fixes? 
@sock 
Boring engine technicality: MH explained a superior way of handling mouse input in the last day or two that is streamlined and efficient and very reliable and easy to manage.

So at the moment, I'm on a side quest since I don't want to put out two separate revisions that change the input code heavily back to back. Giving me something extra to do before I get this newest revision out and slowing me down a bit at the moment. 
FOV 
I have to respectfully disagree with the rationale just given for not fixing up FOV. The reality is that hardware has moved on since 1996, and widescreen is now the norm. My own experience is that fixed-up FOV is a basic player expectation and not a fancy engine feature that's only of technical interest - I have a fairly large amount of positive feedback from people who specifically mention fixed-up FOV as a feature that they welcome.

Fixed-up FOV can be implemented without changing the defaults or other behaviour of the FOV cvar. FOV 90 will still give you the correct horizontal and vertical FOV for your chosen resolution and aspect, so everything can still work as expected.

320x200 resolution was not an aesthetic choice, it was a technical one. 320x200 was the old standard VGA mode 13h, meaning that it was the one display mode that was just guaranteed to work on everything. If that mode had been any other resolution, then that hypothetical other resolution would have been Quake's default. 
 
If widescreen really is the norm, just set FOV to default to 105 instead of 90. This gives correct behavior on a clean install, and doesn't override existing users configs that already have ~105 in their config.cfg or autoexec.cfg 
 
note that this probably means putting in a hack to ignore the default.cfg value for FOV, if there is one. But messiness under the hood may be worth it if the user experience is your highest goal. 
 
Why not just add a cvar to toggle between using absolute and aspect corrected fov, having absolute set as the default. 
 
the question is whether new users will have to change their configs, or whether existing users will have to change their configs. Any cvar like that would require one set of people to change their configs. 
The Problem Is... 
A large percentage of players aren't even aware that the FOV setting exists, or - even if they are - that it can be used to correct for widescreen (the same applies to +mlook). Those that are aware of it can always re-adjust. I suggest doing some research around the usual suspects such as the Steam forums, etc, for info on the specific problems that people have with Quake; these make great targets for fixing in any engine that aims at being accessible to players. Find what prevents people from getting into the game, fix it, and problems go away. This is the same philosophy behind removing the necessity for (but not the existence of) command-line options. Identify the barriers to entry, remove them, otherwise you're just developing for a captive audience who already know everything inside-out and are therefore not bothered by this stuff (and nor are they appropriate people to pass comment on how these things should be handled).

Regarding configs, the obvious solution is engine-specific configs. The old QuakeDev forums raised this as a point that was widely addressed in Q2 ports but all but ignored in Q1. It enables more peaceful engine cohabitation by ensuring that settings specific to one engine don't wreck another.

Again, it depends on who you're developing for. The same old group of people who will always use your engine no matter what, or are you trying to reach out to new players? 
 
engine-specific configs
oh my god, yes! or use /documents/mygames/engineName/modName/config.cfg 
 
documents / mygames / engineName / modName / config.cfg 
I Have To Admit, I Think MH Is Right 
I've seen his implementation of it, and it looks superior to anything else when it comes to the weapon being in the right place. Methinks. :E 
My Thoughts Were Incomplete 
MH is right as not having widescreen correction eats away at vertical FOV, narrowing the range of what is on-screen vertically. FOV was never intended to penalize vertical visibly, it was just that everyone used 4:3 resolution in the CRT era (640x480, 800x600, 1024x768, etc.)

This is a flaw. 
New Version: Revision 6 
Download: http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Readme: http://quake-1.com/docs/utils/fitzquake_mark_v.txt

Widescreen FOV correction, dynamic lights properly affect moved/rotated brush models, dynamic light bleed-through fix.

All entities are colormapped (colored dead bodies, etc. - like if in coop and you die or play against bots, etc.)

Demo rewind (PGDN) and fast forward (PGUP) of any demo the user plays via "playdemo"(and pause pressing pause key).

(The startup demo sequence is not user-initiated and that sequence is not meant to be paused or messed with as it is a game preview.

You must use the playdemo command like "playdemo demo1" to have demo pause/rewind/fast forward available.) 
Revision 7 
mp3 tracks support. And boring stuff you won't care about, although documented in the readme.

Download: http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Readme: http://quake-1.com/docs/utils/fitzquake_mark_v.txt 
Baker 
what about that infamous whiteroom bugfix

i assume thats still not fixed 
 
It's on the to-do list. I haven't worked through the potential solutions. I understand the underlying issue involved as szo and MH explained what causes the problem. 
 
fitzquake_mark_v_r7.zip please 
 
I followed the same naming pattern, I kinda of thought you'd know the URL but still ...

http://quake-1.com/docs/utils/fitzquake_mark_v_r7.zip 
Keeps Crashing/freezing My Computer 
Hi, loving the fov/gun/various other fixes in this, especially the clock fix so that the game runs at the proper speed, however as with your "Fitzquake Plus" I keep having an annoying issue - after playing for a while, the game freezes up completely, with the last sounds played looping over and over, then after a few seconds the screen turns a solid color and the sound a single tone. I can't ctrl+alt+del or do anything other than forcing a shutdown by holding down the power button. Previously this has only occured after playing for an hour or so, but today it happened after just a few minutes. I assume it has something to do with my computer having multiple cores, but I can't really pinpoint the problem. It's an ASUS G73JH laptop which I've had for two years, and I think it has only frozen up/crashed two-three times if I'm not taking these Fitzquake issues into account.

Here are my system specs:

Windows 7 Home Premium 64-bit
Intel Core i7 Q 720 @ 1.60GHz, 1600 Mhz, quad-core
6GB Installed RAM
ATI Radeon HD5870, 1GB VRAM

And my Fitzquake command-line parameters:

-width 1920 -height 1080 -bpp 32 -zonesize 2048 -heapsize 12800

I haven't played using Fitzquake 0.85 for long enough to see if it'll happen there as well, as I have the clock bug with it running too fast - that's why I've used Fitzquake Plus in the past, and now Mark V. Any input/advice on this is much appreciated. 
 
It's probably worth while to test using another engine (eg Quakespasm or FitzQuake0.85) to check that the problem is not one of bad hardware/overheating. 
If That Is REALLY Your Command Line 
Then you should be using:

-heapsize 12800

That means 12800 KB. Which is about 12 MB.

Although not a sure thing, this is likely why you are crashing. 
Gah! 
"Then you should be using: " = "Then you should NOT be using:" obviously ...

/Pays the price of not previewing post for 567th time. 
Whoops 
Seems like I managed to leave out a 0, it should indeed say 128000.

Seems like I paid the price even after proofreading! 
Also My Vocabulary Sucks 
 
131072 
Will give you a nice round 128 MB heap. 
I'd Give Quakespasm A Try Then 
The laptop I used when I was working on Fitz Mark V has virtually the same specs as your machine (graphics, Intel, Win 7 64, etc.)

I don't have any ideas on why you would have this issue, I will say that Fitz 0.85 should run on your machine if you do the "set affinity trick".

Go to Task Manager running Fitz 0.85 and select fitzquake085.exe and do Select Affinity and select "cpu 0" only. Then Fitz 0.85 will run ok without the clock issue.

http://i.techrepublic.com.com/gallery/6327615-577-460.jpg

The "clock fix" is just the standard deal that is used by engines like JoeQuake, ezQuake, etc. There isn't anything supernatural about it, it just uses a different Windows API call to get the time. I might have even used the code from DirectQ.

In fact, you might try DirectQ. Considering the quirky nature of the problem you have, it could be an OpenGL drivers kind of thing and DirectQ uses Direct3D:

http://mhquake.blogspot.com/ (Downloads on the right side of page) 
 
Was about to post that after changing my heapsize to 131072 I had played through several maps without crashing... and then everything froze as I quit the program. Joy.

I guess I could just use Quakespasm of course, but after having been away from singleplayer Quake for far too long, instead having played coop using EzQuake, I have become accustomed to how that engine looks and feels. I think Mark V captures this feel well with the widescreen fov and viewmodel corrections.

For comparison, here's how my screen looks using fov 130 with FitzQuake 0.85 and Mark V, and also r_viewmodelfov 130 for the latter.

Incredibly minor detail, and maybe I'm just imagining it, but movement feels much smoother with the corrections. 
*0.85 
Make that Quakespasm. Still, exactly the same as it would be with Fitz0.85.

Is Quakespasm your engine as well, Baker? 
So It Crashed When You Tried To Exit? 
Like when you tried to quit of Quake? Is this correct? I'm just trying to understand and get whatever info I can.

Quakespasm is a multiplatform FitzQuake: http://quakespasm.sourceforge.net/ by szo, stevenaus and Sleepwalkr. 
BTW: 
Those 2 features you like (view model correction + widescreen correction). Those are both in DirectQ. 
 
Yes, froze up my entire system just as I quit the game. I've updated my graphics card drivers, hopefully that helps. 
 
There's a fundamental bug in FitzQuake and derivitaves (even the latest QS in the SVN has it) where the list of GL extensions and capabilities is retrieved once only, at startup, and then reused throughout mode changes. That can cause crashes as this list actually belongs to the current GL context; it's not global.

A potential crash case would be if you have a switchable graphics laptop and you're switched to the Intel GPU before the context goes down, but subsequent drawing uses an extension that the Intel doesn't have. Not certain how relevant that one is here, but it should be fixed.

A further bug is that it doesn't check extension names with a space at the end. This violates GL spec as the extensions string is specified to be space-delimited; it could falsely detect support for GL_ARB_do_something when the extension actually supported is GL_ARB_do_something_else (sidenote: Doom 3 has this bug too). I don't know of any extensions that this would trip up on though, but it is a potential crasher and correctness dictates that it should be fixed.

One other crasher that I'm aware of and that may be relevant here is that Quake Con_Printfs a "player left the map" message during shutdown if you exit while a map is running; if the context is down when this happens it can cause a crash.

The final one is during Host_ClearMemory; if you free this memory you can crash as the progs.dat code is still accessed until a disconnect fully completes. So if that's what's happening, just zero it instead (which is safe) and let the OS automatically reclaim it when the process terminates. 
@MH: Interesting ... 
See I never implemented string safety stuffs in Mark V because it would have torn a tornado-like path across the source code.

And my plan was to implement a ton of easy-to-understand upgrades like the QIP engine source code did to explain to whoever was interested how to do stuff.

[And changing all the sprintfs and strcpys would maul the source beyond recognition. Yeah techy enginey stuffs to the casuals ...]

One or more of the later part of your list could be culprits in this. 
@MH: 
Thanks for the bug pointers.

Regarding extensions being not per-context: see new commit:
http://quakespasm.svn.sourceforge.net/viewvc/quakespasm?view=revision&revision=781

Regarding Host_ClearMemory(): I think qs should be safe about it (same for "player left the map" like messages during shutdown), but I applied the following nonetheless:
http://quakespasm.svn.sourceforge.net/viewvc/quakespasm?view=revision&revision=782 
@Baker 
The extensions thing is not actually a matter of string-safety; it's a case of if you're using 'if (strstr (gl_extensions, "GL_ARB_do_domething"))' then you will also get a positive on "GL_ARB_do_domething_else". If your GL implementation supports the latter but not the former, then you've got a false positive.

There are already some extensions that follow this pattern, with GL_ARB_occlusion_query and GL_ARB_occlusion_query2 being one example that springs to mind. In practice and of this example any implementation that supports the second will always support the first anyway, but the pattern is there and it's not guaranteed that future extensions will get lucky like that.

However, since the GL_EXTENSIONS string is documented as being space-delimited (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd373553%28v=vs.85%29.aspx - the opengl.org page just describes GL4 where you can no longer glGetString (GL_EXTENSIONS)) the solution is simple.

Just use 'if (strstr (gl_extensions, "GL_ARB_do_domething "))' instead.

That's the bug that both Fitz and Doom 3 have. 
Mh: 
first, thanks for pointing out various bugs that i didn't know about :)

second,

if (strstr (gl_extensions, "GL_ARB_do_domething "))

Won't this fail if the desired extension is the last one in the list? Or is there always a space as the last character of gl_extensions? 
 
Won't this fail if the desired extension is the last one in the list? Or is there always a space as the last character of gl_extensions?

I've honestly got no idea.

Reading between the lines I'd guess that this might be a reason why the new glGetStringi method was introduced (see http://www.opengl.org/wiki/Get_Context_Info#Extension_list) but I really don't know.

One to check with various drivers I suppose. 
Re: Extensions Parsing 
 
Yeah, that would work.

I'd be more inclined to emulate the glGetStringi method by first parsing into a char** then just iterating through that, but that's academic - so long as it works it's fine.

Incidentally, just remembered to check for space-termination on the entire string, and yes - the string isn't space-terminated, so either of checking with or without a space at the end of the extension name is bugged. 
 
I think this engine is playing ambient sounds incorrectly.

Example: Run Contract Revoked and load the start map, and then stand in the pentagram in the middle. You can hear the sound cue from the Nightmare selection hall clearly and loudly, which is not the intended behavior at all. 
To Clarify 
The hall is right beneath the pentagram, but shouldn't be heard. It's as if Fitz Mark 5 does something to the attenuation... 
Woukdn't Be The First Port To Do That 
DirectQ changes this as well, I think, and DP even more. Sometimes you can even hear the spike shooters from logic gates if they are too close... 
 
I hate that DP did that, but at least it provides a console command to fix it. 
Jesus 
What is the reasoning in the first place?? 
 
in DP's case, I believe it was something along the lines of 'I like it better this way'. :\ 
Re: Sound 
Interesting ...

The sound cut-off distance was brought on par with a couple of other engines. Unaware of the above.

Back in the day, ProQuake raised the sound cut-off distance "to match DOS Quake" to keep fairness against a DOS client in multiplayer (i.e. not fair if DOS client can hear sounds a bit further away) -- although some recent discussion @ Inside3D explores this in more detail. This change found its way into DarkPlaces maybe 5 years when it was noticed DarkPlaces could hear sounds other clients could, and of course found its way into DirectQ (these aren't only clients).

Wasn't looking to alter the intended designs of any single player maps ... and I thought this change was innocent enough but seems not. 
Furtunately 
It's easy to just cvar-ize this value (I use "snd_clipdist").

My own use of it dates back to QuakeSrc.org days when it came up originally, and where (as I recall) evidence was presented that this was the original value but had been subsequently changed in a patch. Unfortunately QuakeSrc.org is long dead and it's not possible to provide links, but that's where things stand so far as my recollection is concerned.

It opens an interesting question so far as the topic of "fixing up Quake" is concerned, and I believe that it's similar to the question posed by supporting fullbrights and overbrights - to what extent do you draw the line between "this is the way things are supposed to be" on one hand versus "this is the way mappers/other content creators prefer it" on the other? We're all aware that content exists where using fullbrights and overbrights causes problems with the original design (e.g. using palette entries from the fullbright range for textures which never caused problems in GLQuake), but should this be treated the same or is it something that it's better to keep away from? 
Resurrecting FOV 
I've been hacking some on the Doom 3 BFG code, and was interested to note that it uses the same method as mine for widescreen FOV: first calculate fov_y based on an ideal aspect (16:9 for D3, 4:3 for mine, although I adjust height for sb_lines too), then calculate fov_x based on the true aspect. 
 
It opens an interesting question so far as the topic of "fixing up Quake" is concerned

For myself, as far as sound attenuation is concerned, as long as there is a cvar to revert it to default values, then engines can default to whatever they want. Like I said, DP has that option and now I know your engines do so it's a simple matter of including them in config files that run before a mod is loaded.
It's more problematic if you aren't making a mod, but at least the option is there to fix it.

In fact, providing a cvar offers interesting new possibilities for messing with sounds such as fading them out gradually for dramatic effect. 
Next Time An Update Happens ... 
I'll just use the original sound distance if the single player scoreboard is showing (single player + coop) and if the deathmatch scoreboard is showing I'll use the other value.

Not looking at the source, I'm not 100% sure if the value is client (likely) or server (doesn't seem likely, but I'm not looking @ the source).

I don't like cvars and settings (except for features that help developers tune stuff). 
 
There's a bug in my map that has a unique component only in Fitzquake. The first room has a pretty large bsp model for some pesky vertex saving. It seems that only RMQ actually allows collision with the model (DP/DirectQ/Fitz don't collide with it at all so I guess this bit is definitely my fault).

However in fitzquake if you move to the far side of the room away from the model it disappears, which no other engine does:

Model rendering properly

Taking a step backward 
 
fyi the model entity is positioned just to the left of the healthpacks near the middle of the screen, so is definitely inside the room. 
 
1. ALL engines should handle external bsp collision. Unless you rotated it.

2. You can't fix this unless you can find a way to change the size of the entity's bbox to be smaller. :( 
 
bleh. '2' is referring to the disappearing bmodel.
This is due to the bmodel's bbox being linked to too many visiblility 'areas'. the problem is that the engine has a limited number of links to visible areas and when that list fills up, it just starts removing other links and replacing them. 
 
Ah, hopefully won't be a problem with a full vis then? :/ 
ZQF 
I noticed that dropout in the beta but didn't think anything of it specifically because lots of the bmodels in my map did that and yes it got better after fullvis. 
 
In my experience, it tends to get worse with a full vis, but you won't know for sure until it's done. 
BSP Models Suck 
As well as the problem with it's size (which would affect any brush model type) try this:

gl_flashblend 0
Fire a rocket at it.

Ugly, isn't it? 
Luma ? 
Does Mark V support luma on skin textures? 
Yes 
Model replacement textures use the DarkPlaces external texture naming convention (so replacement textures for models go in the progs folder).

You can call them _glow or _luma (_glow is what Quake 3 uses.) 
Luma And V 
After trial and error I got _luma to work. The thing is the _luma texture need to be sized to the original model skin NOT the replacement texture. So dropping in a replacement skin pack doesn't work out. 
+1 To Future To-do List 
I can't remember all the details, but it was really hard to add external texture support for .mdl for FitzQuake while sticking by the strengths of FitzQuake.

I can't remember what texture set I used to test the feature, but I wanted to keep with FitzQuake way of doing things which in this particular case involved some contortions.

FitzQuake, unlike other engines, doesn't stretch skins to accommodate OpenGL baseline compatibility and instead pads it. This made adding external texture support for .mdl difficult while still retaining the feature (which is good and avoid stretching). As far as I know, the replacement texture and the luma/glow texture being the same size should always work, but you seem to be saying it doesn't.

I'm not sure when I'll be back to doing a revision #8 of the engine, but clearly this will be checked out , rectified and documented in the readme. 
I'd Recommend 
Checking for and using GL_ARB_texture_non_power_of_two as an optional path instead of using skin padding.

Also - and this is available in GL1.1 as well so it may appeal to you more - instead of recalculating the skin texcoords based on the padded size, just scale the texture matrix instead. You can keep the original skin texcoords and have different sized skins this way. 
The Non_power_of_two 
Extension would be extremely useful in FitzQuake, ultimately. Because the padding stuff --- and that code was ingenious --- but it really increases the overhead.

Something fun about non_power_of_two --> the texture you download is the one you uploaded ;-) so in theory, one might even be able to super-optimize the Fitz texture manager to not even need to store raw pixels source location (* I am aware of the exceptions here and there).

re: Texture matrix scaling, may I trouble you for a really simple example (which I would normally do at I3D except it is rather broken)?

I've never done anything with the texture matrix, but a simple example and I'm sure I could take it from there with ease ... 
Texture Matrix Scaling 
Something like this should work:

void GL_PadAliasSkin (aliashdr_t *hdr, gltexture_t *tex)
{
glMatrixMode (GL_TEXTURE);
glLoadIdentity ();
glScalef ((float) hdr->skinwidth / (float) tex->width, (float) hdr->skinheight / (float) tex->height, 1.0f);
glMatrixMode (GL_MODELVIEW);
}


void GL_UnpadAliasSkin (void)
{
glMatrixMode (GL_TEXTURE);
glLoadIdentity ();
glMatrixMode (GL_MODELVIEW);
Thanks ... 
MH adds Baker XP +1 for the Nth time, where N is getting to be a sizable number ... 
 
You can also translate and rotate, or even do wacky crap like load perspective onto it. Very handy stuff, and a far more elegant solution to many problems than trying to brute-force it in C code. 
Entity Lighting 
Would it be possible to have a map key to set light level on static entities? 
Static Ents 
I remember asking when working on statics in my last map
and I thought it was not possible.
So the only way out was resetting the gammalevel of their skinfiles. 
 
It should be possible but would need a protocol change as statics are sent from the server to the client during connection time. You'd also need to define how it works with coloured light and whether or not they should be affected by dynamic lights too. 
Basedir Option For Paths With Spaces 
I'm trying to use the -basedir command-line option and something is off. (This is on Windows 7.)

If the path doesn't have any spaces in it, all is fine. Let's say the folder containing id1 is named "foobar" at the root of the C drive:

fitzquake_mark_5.exe -basedir C:\foobar

That works. But if the folder name is "foo bar" I'm out of luck. This doesn't work:

fitzquake_mark_5.exe -basedir "C:\foo bar"

Using the "shortname" (barf) of the path-with-spaces does work:

fitzquake_mark_5.exe -basedir C:\FOOBAR~1


This isn't an emergency at all and I'm likely just making some stupid mistake, but FYI. (I ran across this while trying to write up some info on how to use different Quake engines.)

FWIW, QuakeSpasm does handle the path with spaces OK. 
Engine Update 
@Baker, Is there any plans for another update soon? 
Sock 
I got your private message. I'll respond in thread @ I3D. 
Is This Some Sort Of ARG? 
 
Magical Mystery Tour 
I am not sure what you mean by ARG, but this is me trying to contact Baker. I am planning to tie up loose ends on the development of my MOD and I want to modify the MarkV engine so I can distribute it in my final zip file. I tried emails, private messages and finally this place, hence the weird reply.

Baker is a very tricky person to contact! :) 
Just Meant It Seemed 
A roundabout way.

Or, possibly, if we chased up the link to I3d we'd find some hidden ITS release... :) 
Maybe ... 
 
 
This MOD by SOC is not an ARG, FYI 
 
Moody arc figs modify cargos. Crag modify so cigars my food. 
 
I have a tiny issue with mark v. My soundtrack mp3 files won't play. I'm sure I have installed the files in the right place, since this is logged:

Current music track: music/track04.mp3

But I'm not hearing it. Either there's another volume adjuster I'm not finding (I tried the CD music volume slider), or perhaps this has something to do with it:

CDAudio_Init: MCI_OPEN failed (266)

I don't have a physical CD player present on this machine, perhaps some virtual ones though. Or is this codec related? 
Ignore That 
DirectQ used to work but now it's giving the same error message. Has to be something with my system. Never mind. 
Stuff ... 
@Mandel: A sincere thanks. Makes me think the world is a better place when seeing high investigations like that.

Anyways, I told Sock I'd do an update for Mark V and once is coming shortly (24 hours or less is the estimate. Maybe with something of interest to Mandel.) 
Revision 8 
1. tool_menu command. A conceptual experiment.
2. follow/chase/race your ghost player (type "ghostdemo demo1" in console to follow John Romero around e1m3). A ghost will not pass out-of-sight and will wait for you.
3. community.lmp support (sock wanted this and is a quality solution).
4. Sound limit reverted to GLQuake/WinQuake/FitzQuake 0.85 level instead of the "DOS Quake level" per comments above.

Zip: http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Readme: Zip: http://quake-1.com/docs/utils/fitzquake_mark_5.txt

For reference: community.lmp http://www.simonoc.com/files/misc/community.lmp (This is an alternative to pop.lmp registered Quake check for a total conversion to indicate that Quake should act as if the registered version is being run). 
 
@Baker, thanks for the community file, it works a treat. :) There is one more thing I would love to add, the current -heapsize is crazy small, is there a way to make the default 64000 instead?

Would this cause problems with anyone else wanting a lower heapsize? 
 
Ok what about this idea instead :-
(taken from the source files - common.c)

FIXME:
The file "parms.txt" will be read out of the game directory and appended to the current command line arguments to allow different games to initialize startup parms differently. This could be used to add a "-sspeed 22050" for the high quality sound edition. Because they are added at the end, they will not override an explicit setting on the original command line.


I searched the source files and could not find this implemented but if it was, it would be perfect. I could then create a command line for my MOD. I am trying to make this as easy as possible for new people wanting to play the game and avoid modifying shortcuts.

Also I checked for the map model bug where some were black and everything looks exactly like the original Fitz. 
The default heapsize in Mark V always was 64MB or the equivalent of -heapsize 65536

Do you mean 640MB like 10 times the allocation?
If so, I can understand that because you use a ton of media.

[ #1 - YES really 640 MB -heapsize 640,000]
[ #2 - NO I meant 64 MB. -heapsize 64,000]

If #2, that's in there now. If #1, sure I can do that but I thought you meant 64MB. 
Re: Lighting 
"Also I checked for the map model bug where some were black and everything looks exactly like the original Fitz. "

Glad to hear that.

I spent several hours carefully planning the lighting optimizations back at the time and checked each step many times over, precisely to avoid that kind of issue. Although the lighting code is complex, I've always been disappointed that issue slipped through. 
 
@Baker, ignore my previous post, the memory is indeed set to 128Mb, I thought it was a memory problem because when I changed resolution I was getting the following error:

SetPixelFormat failed:

I assume this is the fault of my video driver because eventually I can get past this error and the engine works fine. I was trying to set video settings of 1680x1050x32

Thank you for all the help with this release. I know you have been crazy busy lately, thanks for finding the time. :) 
Re: 22050 
SetPixelFormat: Engine requests to operating system (Windows) "I want 24 bpp and stencil buffer". It wouldn't be the amount of memory allocated to Quake. Your guess about the video card is as good as my guess, seems likely.

I made community.lmp cause sound to default to 22050. ;-)

Redownload: http://quake-1.com/docs/utils/fitzquake_mark_v.zip 
Mp3 
Can mp3 be used to replace .wav files in maps yet? Would love some nice HQ ambiance. 
Screensaver Issue 
Another tiny issue, not sure if it is unique to Fitzquake Mark V - I was watching a longer demo when suddenly the screensaver activated (or at least the monitors turned black). I moved the mouse to wake up the monitors (the pause demo playback feature is great btw) but when the picture came back, the gamma and contrast had reset. 
@Mechtech 
mp3 is just a compressed .wav file [more or less].

mp3 is lossy compression of a sound file like JPEG (.jpg) is lossy compression of a graphics file.

mp3 is to .wav as ...
jpg is to .tga or .bmp or raw.

Use http://media.io/ [or another tool] to convert your mp3 to wav. 
@Mandel Re: Screensaver 
I'm not sure when the next update will be (late summer?) but I'll address that.

I hope you found PGUP/PGDN keys too when you play a demo [fast forward/rewind]. 
 
I think mechtech meant using mp3 files for single sounds in a map. 
@Spirit Mp3 Instead Of .wav 
What I was trying to illustrate: why?

FitzQuake doesn't support jpeg [lossy image compression]. You use tga.

Why do you need to use mp3 [lossy sound compression]? Convert the mp3 to wav.

mp3 engine code is super-ugly and you don't really want the engine to do it, you want the operating system to do it. This is more of an Inside3D discussion, but you know how H264 is often supported by hardware? You want hardware doing the mp3 decoding ideally just like you want hardware doing video decoding H264.

Short version: mp3 is messy to support and that's ok for a soundtrack, but the idea of using mp3 instead of .wav is a really bad one for some sort of the same reasons as why png is slow, pk3 is slow and video encoding is slow even with hardware support. 
I'd Like To Have... 
A compressed sound format. .wav is a huge waste of space. MP3 or ogg even flac. If I was to use say a 15 minute background loop wav is too fat.

if sound file decompression is too much overhead I get it. 
An Attempt To Descibe As Best I Can ... 
It chews up a ton of CPU (lessen some by hardware support). Quake supports at least 8 simultaneous sounds, 9 if you count sound track.

One mp3 playing via operating system API (Mark V) = no big deal.

You don't realize the unreasonableness of your idea in regards to performance.

Which is ok, I get that. A few years ago, I would have grilled engine authors with the same thing.

Your idea on the surface seems totally reasonable. mp3 = common = why not lots of them. I know the engine side and I first ran into this with PSPQuake which had both a software version (mad.cpp) and a hardware emulation option.

mp3 playback is resource intensive.

Unfortunately, I don't have an MH/Spike/LordHavoc or Divverent here to better translate this to "layman's terms" of the world of suck that goes on with mp3 decompression.

It's ok for a single "stream".

If I have done a "communication fail" here, I'm to blame. But watch Quakespasm's CPU utilization when playing MP3 or imagine why Quake 3 or DarkPlaces don't support what you propose and realize that my poor attempt to phrase the problem in an easily digestible way is a bad reflection on me but the actual problem is real. 
 
Are we talking about mp3 music or mp3 sound fxs?
Ogg support would be nice for ambient sound though. 
.. 
The above is a discussion about using .mp3 instead .wav files.

(ogg has all the same issues as mp3, as ogg is the lossy compression of a sound file that requires the cpu to continually decompress it adding "stress" and a potential new "lag factor" into the mix [i.e. several mp3 sounds at same time].) 
Baker 
I understand now your explanation was fine. 9 decompressions happening at once=BAD Idea 
And 
Baker thank you for your dedication to Quake 
 
so how do modern games do it then? D3 had it, for example, and it's not even that new anymore.

I'm not actually asking for this, but I'm not really understanding what the big deal is. I understand that it takes time to decompress the audio files, but surely it's not so bad as to impact engine performance? 
Necros 
I think that goes outside the scope of this thread.

But would be good material for another thread to discuss this in further detail (Does Saurbraten do this? Did they think about doing it and rule it in or out and what reasons did they have? What does szo + co. think about this idea? As I understand it, DarkPlaces does not do this ... did LordHavoc rule this out? Did Remake Quake try to talk MH into this? Did MH reject this idea? Etc. etc.)

But these thoughts exceed the scope of FitzQuake Mark V and my knowledge almost entirely ...

[And it is so out-of-scope I'd like to not have it in the Mark V thread, since I can't even be a knowledgeable participant in the discussion ... if you see what I mean ...] 
 
The time you spend decoding an mp3 is time you don't spend waiting for the disk to read a much larger wav.
If you're worried about decoding time, you can always offload it to another core before initiating playback.
You really won't notice it unless its done in bulk, but that's the same as everything else done during load time.

The real problem with mp3 is that its patented and thus the only way a gpl program can legitimately decode one is to make use of an operating system feature that does the magic for you, resulting in portability issues. ogg vorbis is thus a better choice on account of third-party libraries being legal in the usa and stuff.

In fte, its 200 lines to load+decode mp3 (using the win32-os-based decoder), and 400 lines to load+decode ogg (using libvorbisfile).
Sure, the sound code needs a slight tweak too, of course, but while you're doing that you get bonus points for running the audio mixer on another thread (if your mixer is on a different thread, your on-demand decoding will be too, and yes, I got a not insignificant fps increase from that). 
16-bit Models 
So, following that quake character re-modelling thread (see General Abuse) - I learned that the QuakeForge engine supports an .mdl format that simply uses 16-bit vertex accuracy, rather than the standard 8-bit vertex accuracy.

What's more, the guy doing the new monster models is using blender, using an .mdl exporter that has the option of writing to this 16-bit .mdl format.

My question is this:

Does support for the 16-bit .mdl format sound like something that's easy enough and worthwhile enough to be worth considering? 
Please Don't ;-) 
Because then there's another incompatibility between engines. 
Well 
if it was implemented in a way so it's only used to replace existing 8-bit models, in the same way that external texture support only works by replacing existing quake textures...

No worse than external texture support then, right? 
 
if you want to mess with the format, i would highly advocate MD2 format because the grid's granularity is calculated per frame instead of per model. that right there would give a huge boost to fidelity. 
IQM 
Or the inter-quake model format is already supported by a handful of Quake engines.

http://lee.fov120.com/iqm/

And yeah, works in exactly the same way as external texture support. 
Okay 
That sounds like a good compromise. And +1 for IQM. 
Well 
I'm only suggesting this because it looks like that capnbubs guy is making some absolutely nop-notch and faithful remakes of the character models, which even an old fuddy-duddy such as myself thinks are cool.

So it got me thinking that it's a shame to have to be stuck with 8-bit vertex accuracy on those models if it's easy for capnbubs to export versions of those models in a better format...

Just tentatively dipping my toes into the water here really... 
Appendage 
There used to be an "extended-BSP" format which allowed you to bundle high-res textures etc with a bsp file - the extra data was zipped in a lump attached to the end of the file. Because existing quake engines were happy to ignore any junk appended to the end of a file, they would load in any engine.

You could do something similar with an extended .mdl format. It would be a bit fiddly to add the extended coordinates there. The way to do it with no duplicated data would be to split the 16 bit coordinates into a high and low byte, store the high byte in the regular mdl coordinate data and the low bit (offering the extra precision) in the extended data lump.

Care might have to be taken that this method didn't parse models which already have a lump of extra data on the end. Which models have that? Any saved by QME 3.0 - the extra data is things like skinnames and model groupw which the editor wants to preserve (3.1 has its own file format instead) 
Necros/Mechtech Re:ogg 
Spike basically said "already doing this in FTEQW, if you run sound in separate thread is not problem".

I have the next 2 versions of Mark V planned out, but don't expect to be working on those until late summer.

There is a chance that the "ogg instead of wav" could be in the 2nd future revision.

Meanwhile, in two separate projects goldenboy and Dr. Shadowborg are targeting FTEQW which does Fitz 666 protocol and bsp2. DarkPlaces does bsp2 and IQM.

There is ample opportunity to play around with those features even now in other engines. 
 
I just wanted to know why decompressing oggs or mp3s is such a problem for quake. 
.. 
24 hours ago I had only considered "what might go wrong" or how someone might abuse the feature (turn every .wav into an 11 MB .ogg or .mp3 and then blame the engine and demand "you must fix").

Then it occurred to me that you can make a laggy map with bad r_speeds in a map editor. I had already changed my mind prior to Spike's post, but I had the idea of pre-emptively decompressing to .wav on gamedir change.

Spike's method is far better than that.

Not the first time someone thought "this feature would be bad" and later changing mind.

I actually look forward to playing around with this. 
Mouse Acceleration? 
How to get rid of mouse acceleration completely? It's switched off in the system and I use -dinput and m_filter 0
, couldn't find anything else in readme.
But still get inaccurate mouse input like with a bit of acceleration - depending on the speed I move my mouse with, not just distance.

It is specific fitzQuake problem, I don't have this in DP or FTE or other quake games. 
Try 
-noforcemparms
-noforcemaccel
-noforcemspd

or all 3.

http://www.quakewiki.net/archives/console/commands/quake.html#p--noforcemaccel

Both WinQuake and GLQuake have this issue, FitzQuake isn't unique. And the code causing the issue you refer to is "not well liked" by hardly anyone. But it is in WinQuake/GLQuake so like +mlook, the behavior is destined to remain in this engine so that keeps with the original Quake behavior [whatever they could have been thinking ... ??? ]. 
 
it seems more and more that fitzquake gets called out for behaving in some ways the same as glquake.

At the time i thought it made sense because the target user is someone who is switching from glquake to fitzquake, so their configs should continue to work (i.e. i didn't change the defaults of any pre-existing cvars.)

Many years later i guess people install fitzquake before any other engine, or they are switching from more radically different engines like darkplaces, which have very different default behaviors.

So i should probably change all the default settings in the next version to "good settings." 
@metlslime 
There are plenty of settings that should be default without having to change the config; mlook on, mouse wheel up/down changes weapon, console speed higher (terrible with large screens) and console/sbar text changes size to match screen resolution. 
@sock ... Quake.rc + Default.cfg 
There is sadly annoying stuff in default.cfg hiding in pak0.pak too:

* F11 key zoom alias that changes sensitivity and default.cfg
* Keys could be improved to default to WASD with Q and E for swim up/down
* "Reset to defaults" in the engine has unpredictable behavior because Quake didn't reset cvars, so re-running default.cfg does not fully default.
* The +/- sizeup and sizedown keys confuse if accidentally pressed and these are in default.cfg living in pak0.pak

Also the original QuakeC source didn't support both impulse 10/impulse 12 weapon switching, some single player mods like Castle of Koohoo or Duke of Ontranto (and far more) impulse 12 does not do anything.

[Avoiding mentioning too much how in original Quake (or Travail or Marcher or ...) in coop if one player grabs silver key and dies, key is gone and map is effectively broke as no further progress is possible ... relevant to exact topic ... I suppose not]. 
 
In coop, the keys always stay just like the weapons (but unlike them, they fire their targets correctly). 
 
I hope you found PGUP/PGDN keys too when you play a demo [fast forward/rewind].
No way... Nice feature :) 
+1 Awesome Feature 
@Baker, there is certainly plenty of stuff that is wrong with the defaults and it is nightmare for anyone coming back to Quake wanting to play the game. I hope you still keep tinkering with this engine, I certainly appreciate all your effort.

+1 also for PGUP/PGDN, freakin awesome feature. I can't believe it is not a standard feature for Quake engines. 
Ogg Stuff 
I converted pak0 and pak1 sounds to ogg 128bit. I ran DP 20130304. Works well IMO.

Nice converter at
http://www.rarewares.org/ogg-oggdropxpd.php 
Revision 9: Automatic Gamedir Switch In Coop 
Revision 9: If you setup a coop game running, say, Marcher or Warpspasm, when a Mark V client connects it will automatically switch to the right game dir.

Mark V Server tells client: I'm running "game marcher" or "game warpspasm -quoth" or "game hipnotic -hipnotic".

Mark V Client will switch.

Non Mark V clients won't even notice the message, it is fully backwards compatible and transparent to other clients.

Also:
1. When recording a demo, it will print what gamedir is running so someone receiving your demo can figure out what mod they need installed to view it.
2. Fixed a multiplayer coop demo bug.

Special thanks to Spike for how to achieve the gamedir switching in a way that didn't require yet another protocol --- like we need more of those.

Although I didn't plan on do another Mark V update for a while, there may be one more coming in a few days. If so, this one will solely be due to some fun information from Spike. 
 
As I said before, please version code your zip files. 
.. 
From now on, I'll post versioned zip link to make your life easy like:

Revision 9: http://quake-1.com/docs/utils/fitzquake_mark_v_r9.zip 
Cheers 
 
Don't Play Marcher In Coop 
the progs is horribly broken in coop :} 
Don't Do Bastion Either 
Spirit, Negke and I learnt this the hard way. 
Truth Is ... 
I've discovered a ton of maps fail the coop test.

Whether the progress stopping barrier that never raises (the fix is to make a button that can open it not accessible in the inside, obviously) ...

Or lack of ammo ...

Or insufficient # health boxes ...

[I added sv_cheats 0 to Mark V to prevent cheating in coop like god, notarget, noclip but it doesn't block "give h 999" or "give 7" or "give s 500" ... ] 
Yeah Bastion's Buggered Too 
I tried to get clever with the QC and of course didn't get round to testing properly in coop mode. 
So, Er, Hpw Do I Get The External Textures For Models Working? 
Can't get it working, and I can't find any instructions.....

Please help Baker. I need you. 
Tga Skins 
My little 82 meg experiment. Has skins working in Fitz V
Similar to Dark Places format
soldier.mdl_0.tga that kind of thing

http://www.mediafire.com/download.php?e2m52lju85lldv5 
Thanks 
Big help :) 
Nice Assist Mechtech 
Yeah, Mark V uses the DarkPlaces naming convention for replacement model textures like soldier.mdl_0.tga where the texture should be in the progs folder. 
So Are They Enabled By Default? 
Does anyone have a working set for the standard Quake bad guys? Proving harder than I thought.... 
Yes Because I Don't Believe In Options/settings 
Download a DarkPlaces texture pack and look at the texture names if needed like quakeone.com/reforged.

Naming convention is simple:

Model name: player.mdl
Replacement name: [model name.mdl] _ [skin #].tga
Result:[model = player.mdl]_[skin = 0].tga
Result: [player.mdl]_[0].tga
Result: player.mdl_0.tga 
 
I'm Not Interested In Bumping The Thread For This 
[But don't want to risk making Spirit upset.]

Revision 10

Incremental refinements but the source changes are large and includes a Visual Studio 2012 project file now.

Main real changes:
give ks - give yourself silver key
give kg - give yourself gold key
give q1 - give yourself rune #1 [r and s aren't avail]
give q4 - give yourself rune #4

"give" command with no parameters gives you minimal info on give command.

Reworked video mode shutdown in a way that might fix the crash one user was experiencing that I don't get [or may not]. 
Good To See 
this being worked on. Go on with the good job. Cheers. 
To Anyone Interested ... 
Within the next week, there will be another upgrade to Mark V. It won't include the mp3 request due to running out of time.

On the plus side, I think it completes the idea of getting the codebase entirely straight.

Keep in mind that the emphasis of this was to give back code clean-ups to the FitzQuake codebase to tune-up the 100 oddball bugs discovered at Inside3D without burdening, say, metlslime without having to read all that.

Exciting? Well ... that is subject to intepretation.

I do want to fix any bugs discovered, but other than that, it will be the final Mark V. 
Bsp2 Support 
It's the future!!!

By the way my faveourite thing about this engine is the demo handling. Supports multiple (most) protocols :) 
Looking Forward To It 
!! 
Well ... 
It will be a very boring release. At least from the angle of exciting and interesting features goes.

From the other possible angles like the "boring and uninteresting" releases angle, it might barely fit itself in to mildly underwhelm.

And these are the kind of expectations I hope I can almost meet.

But from the more serious side ... it will be available in many preference flavors such as .exe, .zip, .rar, .7z and the classic and irritating .dzip/.dz format.

It will be a very worthy final chapter to this engine and I have to among other things type up a credits.txt to accidentally not include in the final .dz archive.

Kidding aside, it has quite a number of things that I owe significant credits to others. For 5 days I've been tempted to release this intermittently in pieces, but no ... I want to do it all at once. 
BSP2!!!! 
 
Final Chapter?! 
... I hope you WERE kidding ;) 
I Wasn't Kidding 
This will be the final chapter of Mark V. I'm doing some final testing and want to give a day or 2.

I'm not fond of "pre-release talk" (it's hated here, which I like because I hate it too) but I wanted to see if anyone had something to say I wasn't aware of that I needed to take into consideration.

If ever the words "radical" and "conservative" fit a description, it my hope this last one achieves this. It is my desire to draw this to a close with a very wide range of conservative fixes, some of which don't seem reasonable.

Thursday release. Final answer. Unless Thursday final turning requires an expansion of the definition of "Thursday" to include Hawaii or one of Jupiter's moons to meet a slight procrastination.

[But yeah, I really love FitzQuake ... what a marvelous engine.] 
Hello Baker, 
I don't know if it is too late to submit a feature request, but if not, could you add external ent support and multiple gamedir support to Mark V? I have been using these two features extensively with darkplaces, and found them to be extremely convenient and useful. Thanks. 
Doomer, Sound Like You Want "happy Ending" 
Don't worry, maybe you don't get what you think you want, but maybe you get more than you bargained for ... and then some ... 
Thank You Baker! 
Wait with excitement. 
Bsp2? 
O_O 
Fog 
Is it possible to set fog parameters before the map is loaded? Then the fog parameters could be specified in the quake.rc file.

Can you add a fog distance command? Like at say 1024 units the fog does not affect surfaces? Then really tall ceilings could be black instead of the colour of the fog. Also make this a new fog command like 'fogdist' or something, don't add this feature to the existing fog command, it will cause problems with mods that use the fog command already. 
Masked Textures 
Can we get masked textures (like grates, chainlink fences) to have a value key in a similar way to how the "alpha" key works? This would be much better than having the texture start with a curly brace "{"

(which pissed off SleepwalkR to no end) 
Yikes, Talk About Last Minute Requests ... 
@sock ... I think it would need fade or something otherwise surface at 1023 looks strikingly different than surface at 1024 distance.

FitzQuake expects the fog to be in the worldspawn and resets it on level load and I think new cvars are almost always bad. Better would be backwards compatible way to allow one more fog parameter in the worldspawn keys.

I also think it would require more tuning and testing to make sure it looks rights than I can do in the next few hours, but I'll think about while I'm trying to get the engine out. The Kurok mod (also an engine modification of FitzQuake)used an alternate fog formula, but I haven't been thinking about fog much lately so ...

I'll see if I can integrate the Kurok fogging for you to look with the engine release.

@elephant ... you mean like a worldspawn key to put into bsp to indicate alpha texture prefix? The idea isn't bad, but would be better if the mapping elite got to together and planned out things like that ...

I think me just putting something in that hasn't been discussed and argued about is how "really ugly hacks" happen. 
Final Version: Beta 1 
Download | Read Me

@sock: type fogex 300 12000 50 60 76 to enable distance fog <z-near> <z-far> <red 0-100> <green> <blue> ... worldspawn key is "beta_fogex"

@Ricky ... see readme. 
><((((º> 
Where the new FitzQuake at... metl, give me a fix! 
 
@Baker, I downloaded the new beta and I like noclip, notriggers :) good for testing. I LOVE the command auto-complete, my god about time! It even does map names within gamedir folders :)

What is r_stains? I saw it mentioned in the readme file but could not see any difference and the readme does not say what to do with it.

I had a play with the new fog and it feels back to front to me. I want original fog up close and then fade to specific colour at distance. Maybe I am not getting the parameters right but I tried for a while and could only get black at distance and no fog up close or white fog up close and glowing at distance.

Say for example I have fog 0.05 0.1 0.1 0.1 defined which is a nice wispy fog. On surfaces at distance (1024+) this gets brighter instead of darker regardless of light, I want to have a fog up close and then fade to nothing. I assume the distance fog would have a different colour to the foreground fog. Ultimately I want fog in a room but when looking up at a high ceiling 1024+ units it is black because there is no light, does that make sense?

One possible idea for alpha textures is to link the process to the texture. If the mapper specifies external textures and they have an alpha mask defined (tga/png format) then load and use it. This does not require fancy name changes or lots of effort by mappers just an external texture directory with alpha textures. 
Not Worldspawn 
Just have it as a brush entity key. 
 
External .vis support. No more vispatching maps.
what? so it just loads .vis files generated by vis.exe now? 
Alpha Mask Textures... 
Ok, let me clarify a little more.

- It would be a brush entity key.
- It would use palette number 255 (the pink one)
- It would be a normal texture. (no tga/png needed!)

Why a brush entity key? Well we have this support with alpha, why not just set the key to something like "alphamask"? You could even have it as "alphamask 1" or "alphamask (insert palette number here)" and specify which colour of the palette can be the alpha texture, this way you could still make a texture look nice in both ordinary quake engines that do not support alpha masks and ones that do!

I like shipping .bsp files only, I really hate cluttering up my quake directory for the sake of one or two maps in a .pak file or any of that kind of nonsense. My quake dir is in enough of a mess!

What do you think? 
Baker 
exe. doesnt start at all for me. just getting the usual "starting quake" window, then it just flushes out, no warning nothing.
:(
running xp sp3 on intel Chip ati video 
@mfx 
@mfx Hmmm. Does a previous version work ok? And flushes out = it exits or crash? I added multisample support that abuses that window, but seems your graphics card no like. I'll see what I can do to resolve that.

@necros --- no external .vis means that instead of vispatching your stock Quake maps for transparent water, you just use .vis you toss in the maps folder. I'm on a low bandwidth connection at the moment, in a few days when I'm back I'll upload something and show you what I mean.

@fifth -- You lost me. I can make a BSP with a texture named "{alphatexture" and it works. Why do you need external files? Am I missing something here? Or is something not working right about the engine and external textures? 
@sock 
Shoot the wall several times in the same place.

Or use lightning gun. 
Hah 
I didn't initially get that but Fribbles made a fish. 
Baker 
Yeah the curly brace standard is actually one of the dumbest decisions I can think of. I'm saying the standard should be changed to a key tied to an entity brush instead.

(FYI, the curly brace conflicts with the .map standard formatting...)

Like I said, it really pissed off SleepwalkR and I can fully understand why (open up a .map file in notepad and realise why this was a terrible decision) 
Baker 
previous ver. works fine.
this one it just doesnt Do anything than
just showing the starting window, no crash msg or sth. just disappearing from ram. 
 
no external .vis means that instead of vispatching your stock Quake maps for transparent water, you just use .vis you toss in the maps folder.

oh ok, i see what you mean about that. :)
changelog has some interesting things in it, thanks for doing this, baker. 
@fifth ... 
Why a brush entity key? Well we have this support with alpha, why not just set the key to something like "alphamask"?

I can relate to what your dislike of the curly braces.

I'm a decent Quake engine coder, but I know my place and I'm the wrong person to code anything that could be interpreted as a standard.

I named the experimental fog for Sock to look with an unlikeable name "beta_fogex" so it couldn't accidentally be interpreted as a standard, and likewise some of the experimental things I did with texture prefixes are console variables.

I'm not the right guy to make those kind of decisions. If I have any credibility with the 10-year engine devs (self-deprecating humor), it is that they know I'd wouldn't think of that doing anything like that.

Shorter version: Maybe ask people like metlslime, tyrann, preach and necros and such?

I'm just not the right guy. Seriously. 
@necros ... .vis Files 
Extract to quake/id1/maps folder

http://quake-1.com/docs/utils/visfiles_go_in_quake_id1_maps.zip

Then the original Quake maps are vispatched (unless you set "external_vis 0") to work with r_wateralpha.

It isn't that I think r_wateralpha is that great of a feature, but more that the vispatch process is extraordinarily painful since the original utilities will not work on Win64 even with DOSBox so someone looking to try that out can do it. 
@sock ... Triple Post Time ... 
If the mapper specifies external textures and they have an alpha mask defined (tga/png format) then load and use it. This does not require fancy name changes or lots of effort by mappers just an external texture directory with alpha textures.

QW and Q1DM players would be very upset because someone (a cheater) would use replacement textures with alpha to make walls "see through" that shouldn't be. 
Lol 
people do that for a 17 year old game? 
 
@nitin
Yes.

@fifth
{ prefix is compatibility with halflife, but also distingushes between alpha-blended alphas, and alpha-tested alphas. Which is especially useful if you have both active on an entity at once.
In the case of internal textures, palette 255 is a valid palette. While unlikely, its possible that this particular palette index could be used on other textures not intended to be transparent upon the same brush entity. Additionally the image loader will likely need to replace this palette index with an average of its still-visible neighbours in order to avoid colour leakage (yay! HALOS!), which is not something that can easily be done without walking through the ent file and checking each model in a really slow and hacky way on a per-surface basis (with multiple copies of the texture - things get even more fun if the qbsp reused the surface in two separate inline models). Which is why a flag on the entity is a stupid way to do it.

That's why we use a { prefix for alpha tested surfaces. 
Yeah... 
but it's incompatible with the .map format because curly braces are clearly already used for a different purpose (which appears to be containing sets of information together). This makes certain map editors (namely Trench) take a huge shit when the open curly braces aren't closed properly. :P

I'll leave it up to you coder types to sort out this mess, but I wouldn't mind having alpha mask textures for some of my upcoming maps (I have some nice ideas for them that I haven't seen yet). 
It's Not Such A Huge Problem 
but it's annoying, and I wonder why you guys haven't chosen another character that doesn't have a semantics in the context of map files. 
You Can Solve The Immediate Problem ... 
In console

] r_texprefix_fence
"r_texprefix_fence" is "{"

] r_texprefix_fence "!"

Name mask textures !myfence

] r_texprefix_fence "fence_"

Name mask textures fence_1

You will be able to map with TrenchBroom and view the maps you make in Mark V with alpha masked (fence-ish) textures.

And maybe somehow this problem will come to a conclusion by time you have polished map. 
Hrm? 
then fix Trench to parse by tokens like qbsp does, or to write texture names in quotes so that it doesn't trip over its own output.

If I read the code right, it looks like a texture name with a comma in it will break it too, with an infinite loop, but its written in c++ and the code flows all over the place, so I've no certainty over that. 
@sock Re: Super-auto-complete Of Everything 
@Baker, I downloaded the new beta and I like noclip, notriggers :) good for testing. I LOVE the command auto-complete, my god about time! It even does map names within gamedir folders :)

I had to rewrite a large chain-reaction of things to implement proper auto-completion of everything.

It wasn't fun at all, but I was getting really tired of not having autocomplete and asked myself "Ok ... you engine code right? Are you going to kill this once and for all or just keep being aggravated".

I thought since this was the last Mark V, the choice was "regrets" or "no regrets" and I didn't want to look back on it with regret.

I had a play with the new fog and it feels back to front to me. I want original fog up close and then fade to specific colour at distance.

I tested the "alternate fog" on Masque of Red Death to see how surfaces look at a very far distances and they don't fade out to full gray with the settings I suggested.

The OpenGL 1.x fog options are pretty thin. There is linear fog, and whatever GL_EXP and GL_EXP2 do (which clearly involve exponents probably using distance).

I don't know if much better fog could be done in OpenGL 1.x using glFog (I somehow doubt it) and I think it would require someone with a particle effects shader mindset --- which is something I don't have.

[I haven't forgotten about mfx. Not sure when I'll have the chance to put out beta 2). 
Re: Bsp2 
Heh - I'm definitely no engine coder, I'm totally glad you're even considering supporting it! I really like this engine a lot BTW. Massive props :) 
Couple Of Things... 
The silver key door in e1m2 was non-solid for some reason. I had the SK but didn't need it to open the door as I just passed through. The released fiend was also able to pass through the closed door.

When using the engine to play DMSP2 I've notived that some enemy become somewhat impervious to fire. One grunt took almost 120 nails to drop. 
What Map Had Issue With Dmsp2 
Will help me track down bug, I have a few suspects in mind. 
Several Maps 
Here's demo of me making no impression...

http://www.quaketastic.com/upload/files/demos/dis_atlantis.dz

That one's on atlantis.bsp, but it's also happened on naughty2.bsp and the Travail DM maps as well. Sometimes there's no effect; sometimes one in ten or so shots hit. 
 
I think I need to double check changes I made when adding external .vis support. I'm able to reproduce the issue reliable. Thanks for the bug report. 
 
This is probably a dumb question but: what does "Automatic wide-screen FOV correction" in the readme file mean?

I thought this might be something like QuakeSpasm or Fodquake's FOV adjustment. Despite the discussion in the thread above. :-) But nope it doesn't seem to be doing that (in revision 9).

So is that readme line just talking about protecting the weapon viewmodel from FOV changes, then? Or is it something else? 
Widescreen FOV Means 
1) Adjusting the field of view calculations to be equivalent of a 4:3 aspect ratio.

The Mark V vs. Quakespasm FOV correction is the same calculation [although I don't know that the Quakespasm guys know this ;) ]

2) The viewmodel FOV "fix" is entirely separate from the above, but what it does is backs out the FOV calculation when rendering the weapon (viewmodel) so that the weapon does not get distorted if using, say, fov 110.

Note: I expect beta2 to be out later this week correcting the distrans discovery (grrr) and hopefully the issue preventing it running with mfx's video card. 
OMG... 
...I have a bug named after me *blushes* 
 
Well how 'bout them apples, yeah it really is doing the adjustment ... missed it last time I checked. 
Some Requests 
Hey Baker, not sure if you gonna work on it more, but...

Would it be possible to have support for foreign keyboard layouts?

Could you make the console fade-in faster? (maybe make it relative to vertical res)

Have the End key jump to the bottom of console log? (rather than having to hold page down for 30 secs) 
Console Fade 
is a command, "conspeed" I think it is. 
@Spiney 
I've run out of time to do anything except light touch-ups to correct bugs and I had to cut international keyboard support from my to-do list (along with many other things, sadly).

I wanted to get one final update out and actually moved that forward rather than late summer.

My time is up, and they'll send zombies and nazis --- and maybe even nazi zombies --- after me if I don't focus on my real world objectives. Go figure. 
 
Regardless, thanks for the great update :) 
Windows Key Disabled? What Gives 
Is there another way of minimizing it then? 
@negke 
Yes the windows key is disabled when Mark V runs.

Fullscreen, you definitely want it disabled. Windowed mode, harder to say.

For windowed mode, I made the decision like this:

1) Mappers are really smart, know how to install engines, know how to use more than one.

2) Casual players are afraid of that stuff. And are way less likely to be pressing the Windows key for functionality when running the game because they probably are just "playing the game".

So I decided to err on the side of a casual player who just wants the game to work.

An uber intelligent mapper such as yourself could use Quakespasm or DirectQ or such if you are developing a map or mod and need that.

[Although, I'm betting Quakespasm likely disables that as well ... but I know Fitz 0.85 doesn't ...] 
Can't You Just Alt-tab? 
 
Or Press ALT-ENTER Toggle Fullscreen 
Quakespasm also supports this.

Mark V's video code rewrite makes ALT-ENTER a very fast operation. 
Hitting Enemies 
There is something weird going on with the latest release
Fitz: 0.92 exe: 02:43:35 May 24 2013
(using version command)

After a while the enemies cannot take any more damage from the player. It is like their bounding box has moved/changed. If I quicksave and quickload the problem goes away and then gradually comes back. I have only encountered this problem with my latest map. 
Super Enemies 
I did some more investigating and it is not the bounding boxes, I can see them with the r_showbbox command. It is a time based event where enemies no longer take/receive damage. After a while I can just walk through them. I can't produce a save file to show what is happening because quick save/load fixes the problem (temporarily) 
 
Can you capture it in a demo? 
 
are they still damageable (blood particles vs grey puffs)?

can you get the edict # and check what the fields look like? (maybe make a tiny hack mod where the axe does an eprint of whatever it hits) 
Use Quakespasm Or Previous Mark V 
I have no time and sadly will have no time for amount of time that I can't determine right now.

I have about 15 minutes of "real" free-time and this isn't going to be changing soon.

I'm sorry about the bug --- real-life prevents me from having any meaningful amount of time to address this and I will continue to have no time for the future as far as I can see it --- and this is beyond my control.

Someday, I will fix --- I was trying to "go out in style with a delicious technical masterpiece" that could be feature ripped into Quakespasm easily --- I went all out, I thought I was practicing some awesome quality control and this slipped by me --- but I locked-in, I have no time and I'm not going to have any time.

And I'm sorry. I really was shooting for the moon to please to go out with a really fun bang with some incredible engine performance and flexibility.

Now I am beyond the event horizon, all paths available to me lead only towards real-life and I am far beyond the point of return to be able to work on this.

Believe me, I wasn't looking to let anyone down --- but I am no longer able to do anything about this.

Sincerely,


The Sadly Uber-Time-Restricted-Baker
That-Can't-Fix
This-Since-I-Have-No-Time-And-Wont 
Baker 
seriously?

i mean seriously... 
Barking At The Moon Again ;-) 
 
Feature Request 
Something to add to a wish list ...

* Be able to freeze a demo and then fly around the world to inspect / look at things. It would be very helpful for debug reasons to see what is happening with a demo. I don't mean change or move stuff around, just fly around and see where things (monsters/items) are. 
 
From what I know (unless I mix up things) Quake demos only include the entities in the PVS so a feature like that would require a whole different protocol. 
 
As the demo progresses the engine is updating entities with new locations, states (moving, alive, dead etc) and when the map is frozen I just want to fly around and see where all the entities are and what state they are in. Even the current PVS would be better than nothing. 
@Sock 
Qrack does this today and is the only engine I know of that allows this. I don't have any experience personally using the feature recently, I'm just pointing you to what can satisfy this desire today.

[I still have no time to work on Mark V and don't see this changing in the known future ... but I still care ... ] 
 
Daz's recent CG video revealed another Mark5 bug: playing back a demo of sock's map, many models were displayed pitch black, sometimes flashing depending on the view angle. I haven't tested it, but I could imagine the clipping and lighting issue also ccurs on other over-limit maps. 
@Baker 
Hey no worries on your time, I just wanted to post here some ideas if you come back to MarkV development in the future. 
@sock 
quakeworld servers can record Multi-View Demos that support that (cl_demospeed 0 to freeze them or whatever it is, attack to toggle free-cam, jump to switch players).
With FTE, you can start a map and issue the 'easyrecord' command and it'll just start recording some randomly named mvd demo.
(sv_voip_record and it'll also include any voice chat too, for extra playback privacy invasions *cough*). 
Feature Request 
Something to add to a wish list ...

* Excluding entities from being recorded in a demo. For example detecting a new key on an entity "nodemo" "1".
* Excluding entities from casting shadows (r_shadows). For example detecting a new key on an entity "noshadow" "1"
* R_shadows always casts shadows from 360 angle, being able to change this via worldspawn. For example a new key "r_shadowangle" "90" 
Feature Request 
More stuff ...

* Adding external texture support for model skins (24bit TGA) with use of the alpha channel so that the skin can faded gradually. The external skin could be specified with an extra key on the entity. Like for example "ext_skin" "textures/hiknight1.tga" 
Small Note Regarding Alpha: 
Drawing alpha-blended models correctly requires sorting every alpha object (if convex) or triangle (of a concave object) in the scene and drawing them back to front. I don't know of any engine that does this (perhaps darkplaces.) But fitzquake certainly doesn't.

People probably haven't complained about the cheap method used in fitzquake and other engines, probably because most mappers use the feature sparingly, and only on simple convex brush-models, and not on many models in the same scene so that you see them overlapping incorrectly.

I only mention this because as a perfectionist like me, you will probably notice this problem once you start relying heavily on the feature, on many objects in the same scene, and on objects with convex, organic shapes.

The safest way to use alpha given this, is to only put it on convex shapes and make it hard for the player to have a line of sight that passes through multiple layers of alpha objects. 
Ah Yes 
I remember now...last time I checked darkplaces doesn't handle this within a model - if you have multiple layers of fur in the model you do get graphical glitches occur where they overlap. 
 
even if you do depth-sort, large objects can still cut through and overlap in screenspace even if the actual brushes don't (or for instance a transparent player standing waist-high in water).
mostly a .alpha set to 0.99 will result in the entity using the alpha channel of 32bit replacement textures (blended).

ext_skin with nice long strings would be far too painful. just use .skin if you really need that sort of thing (in combination with shaders as needed). 
Engine Question 
Would a QC controllable sound mixer be a good feature? Adding reverd echo and other dsp stuff. I remember good ol duke3d had a few option with sector effectors. Setting an effect to match a rooms size would be cool. 
 
don't care too much about that, although it would be interesting to use every once in a while.

what I want is moving sound sources and doppler effect! 
Agree! 
 
 
also, while i'm dreaming, sound that travels through leafs/portals would be totally bad ass with volume attenuated by distance traveled instead of just radius. 
@mechtech 
halflife had various triggers that can apply various eax environment settings.
the forwards-thinking audio api to use is presumably openal, which would give environmental effects as well as doppler effects.
but hey, if you want to write your own reverb library and plug it in to a quake engine, be my guest. :P
incidentilly, a couple of engines already have rate modifiers, just not editably so... doppler would theoretically be easy enough to add, but as quake traditionally never moved sounds (and with invisible entities generating sounds and thus there not always being velocity information) I'm not sure how much it would break. 
Sizedown In DirectQ Engine 
Greetings everybody,

a few hours ago I decided to install DirectQ engine for Quake 1 and find it to be brilliant.

The only (MAJOR) problem with it so far is the fact that "sizedown" command won't work.
It's properly binded to "-" but it has no effect.
Writing the command in console does nothing too.

"Sizeup" works just fine.

I run a 1920*1200 resolution on a 24 inches monitor and the fact that I can't "sizedown" the window makes the engine a bit...useless in the end.

Can anyone please aid me on this ?

Thank you in advance for your help. 
 
What does sizedown do? 
 
viewsize cvar. set it to 30 for a tiny view (not always supported nowadays), 100 for default sbar+ibar, 110 for sbar-only, and 120 for not even an sbar.
note that not all engines support a value less than 100. I've no idea what directq is meant to support, but if in doubt specify the viewsize cvar value directly and see what you get. 
Outside Chance ... 
That in the next 3 weeks I'll release a fix-up Mark V final release. I only have effectively one day off a week and not much free time in that one day off, really --- but I worked on Mark V in a 115 different mini-revisions and I know the first one of these with "the issue".

The bad news is I so radically changed the code base that even one "mini-revision" is a heap of changes.

But the good news is that if I spend 30 minutes a day for a week or 2, I should be able to repair it.

If I'm not way too tired to do so each day ... 
Best Way To Get Something Done 
...is to give it to someone who's busy...

<mumble> bsp2 </mumble> 
 
I don't have answers, I only have questions. Sometimes I think that Metslime, MH, Spike, the Quakespasm guys (szo, stevenaus, SleepWalker ... in no particular order) and myself should team up to make "The Answer To Everything Classic Quake Engine 42 = 6 x 7" engine.

Which is a pipe dream --- except I don't actually believe that. Such a thing almost seems like it was always meant to happen ... like it was part of the Universe's master plan and maybe the only the reason the Universe was made from this incredibly narrow and very Quake-centric point of view ...

?

[End Stereotypical Baker post ;-) Hey I gotta be me ... ] 
Diversity Is Good, A Little Competition Is Good 
 
We'll See ... 
Lately I've been spending most spare moments of thought on how to get an update out with virtually no "true" free time.

I'm rather determined to get an update out --- I'm just trying to figure out "the how".

Some of the great stuff in "Final Mark V" is irresistibly fun --- and I'm still quite irritated about the collision bug.

I hope you are doing well, SleepWalkR. Admittedly, my finite time I haven't had much time to read up on your massive contribution to Quake mapping in TrenchBroom. :( 
Fixed Version 
Read me: http://quake-1.com/docs/utils/fitzquake_mark_5.txt

Download: http://quake-1.com/docs/utils/fitzquake_mark_v_final.zip

Weight: 448k (the engine)
Speed: Yes
Features: Some
Code: Better
Map Editor Used: Notepad.exe
Is Bug Free: Should be (cross fingers)
QuakeC Version: Depends on gamedir

Recap of features: Faster, auto-completes about everything including key names, brightness only affects window, skill level recorded in demo, optional multisample capability. Borrowed some of Quakespasm's finesse and tried to largely sync with entirety of Quakespasm's codebase. See read me. External .vis support.

Short version: Light, fast, quick, better.

You won't likely notice any of the changes because they were implemented very softly and subtly, in FitzQuake style.

Last version of Mark V. 
Doesn't Work 
on my surface pro...

Seriously I have no idea what's up with this thing. It only runs DirectQ. 
 
fifth? what's the problem? spazzes out spining wildly?
that happens when the operating system ignores calls to set the mouse cursor position.
you can avoid such calls with a the -dinput argument to most engines (often alternatively settable with in_dinput 1;in_restart).
If your engine supports rawinput, that can also be used instead, fixing the issue in the same way.
In FTE, _windowed_mouse 0 will enable the touchscreen mode that I hacked together for android - other engines that retain that cvar will simply disable the mouse entirely instead.

DirectQ presumably uses dinput by default, hence why its the one that works out of the box - pretty much every other engine can use dinput too, they just don't by default. 
Some Good Advice There Spike 
but it fails to load, just crashes when you click on it. And windows 8 doesn't give any explanation to why it wont load.

I reckon it's probably driver related to be honest. As per usual. 
 
I don't claim to have any working knowledge of a Surface Pro, but you could type "nomouse 1" in the console or add that to your config.

On an iPad, I know how it would interpret mouse events and if I had any free time would consider an enhanced merge of FitzQuake Mark V + Quakespasm + iPhone Quake and peek at FTEQW's Android stuff.

I really was trying to complete merge Quakespasm and Mark V back in the spring -- but ran out of time before I could get it ready for a Mac OS X build. :(

/End Dreams ... 
On The Plus Side ... 
I was glad I was able to use a sizable chunk of the ideas that Spike and MH suggested to streamline the code. And something invaluable that Reckless provided.

Spike supplied a treasure trove of great info --- and many of these things are implemented like skill level and gamedir is recorded to demo (as one example) --- but he gave me tips on how to do some really awesome stuff.

Alas. I ran out of time. 
fitzquake 085
heapsize 512000
game quoth
map dis_sp6
die alot

fitzquake mark5 final
heapsize 512000
game quoth
map dis_sp6
hunc alloc failure 
Gosh Darn It 
I had the idea of disappearing forever with the earlier post being the last trace of "Baker" ever on any noticeable forum.

And distrans, you ruined it all!

Thanks for the bug report, I suppose I have only myself to blame.

/Will investigate, solve and all that. Rats!@!@!@ 
Better Than Ragequitting 
I suppose... 
Not As Good As This 
Haha, Awesome 
 
Wtf 
Yes - thats a classic. But a womyn !?

.. So all we have to do to keep this project ticking is find bug reports for Baker :) 
LOL @ Blitz 
Lest we forget...he took a lot of risks to become part of an industry he loved. 
Hey Baker... 
...some would say that's not a bug i.e. more favourable than actually playing dis_sp6 :) 
Copy Pasta From TB Thread 
"Got it to work (dunno how long for), using driver version 9.17.10.2867 from 05/12/2012.

This was from going to settings and "refreshing" the system, not a complete reformat.

There's definitely some driver issues with the surface pro. "

Again, this does work on certain driver versions. 
Distrans Bug Fixed 
Redownload:

http://quake-1.com/docs/utils/fitzquake_mark_v_final.zip

@Others:

ragequitting + jokes

Well, I never thought of it like that. I'm just tired and worn out and at times I wonder if I have anything positive to contribute or have been some sort of Quake villain -- which was never my intent.

SA: So all we have to do to keep this project ticking is find bug reports for Baker :)

Haha, maybe first good laugh I've had in a while.

Either way, I guess I'll keep the door ajar a bit ... 
Ta Baker 
I'll d/l tomorrow and let you know about the next one :) 
I Really Wish 
the MarkV engine would support 'sv_freezeonclients' from the DarkPlaces engine. It is perfect for taking screenshots and checking out what AI are doing without affecting the player or console speed. 
And 
and checking out what AI are doing

it would've been a total cheating? 
By That Logic ... 
it would've been a total cheating?
you should also ban god, notarget, noclip and impulse commmands! ;) 
No They're Classic Commands 
 
 
krimzon_sv_parseclientcommand can be used to block them if you really want that. they're already blocked in deathmatch. 
@Sock 
"freezeall" command is what you seek.

I made it a command rather than a cvar for some technical reasons that are rather tedious to explain.

freezeall is a toggle and is supported in Mark V in the server too as a recognized command. 
@cheating 
"sv_cheats 0" will stop god, noclip, freezeall, fly in Mark V.

A Mark V server will also tell Mark V clients what gamedir is running and automatically switch them.

For instance, if the Mark V server is running "-game warp -quoth" it will instruct Mark V clients to do the same upon connecting.

[Which is a Spikeism ... thanks Spike!] 
Any Chance 
Of supporting bsp2? 
@ijed, Why Do People Like This Engine? 
Mark V has almost no features that anyone ever asked for. Ever.

And yet people like the hell out of it?

I guess what I saying here, why should anyone use this over Quakespasm, Fitz 0.85 or DarkPlaces?

Yet, serious single player or coop people love this engine.

Despite the fact it doesn't implement ANY features that anyone ever actually wanted or asked for?

I implemented stuff that I thought the average player would really like to make things fun, user-friendly and easy.

I guess I'm saying, bsp2 is just going to ruin single player entirely. You probably can't even properly coop any of those maps.

Is the master plan here to create impossibly large levels that can never be cooped and bust all sanity in even things like recording demos?

Of what use are maps that cannot be cooped in the bigger picture?

I personally don't see super-giant for the sake of super-giant as a positive direction --- many Fitz 666 maps are only barely coopable over LAN.

What makes Quake isn't multiplayer --- QuakeLive or other things can do that --- and it isn't literal single player because you can find this in other games.

But coop is where Quake reigns supreme -- how does BSP2 further this great strength of Quake? Or are we just breaking engine limits these days without considering the consequences of where the path is leading?

Let's just break every limit --- creating a cascade that challenges rendering and the network protocols and even advanced predictive protocols is just "wrong" to me.

If you think about it, almost everything in Mark V has been done to support coop and demo sharing. BSP2 teaches map authors to not really consider map design constraints for maximum "utility" and just be lazy. There are many incredibly big protocol 15 maps --- Fitz 666 raises that to beyond absurdity --- and now lazy map design isn't satisfied by that?

Sheesh --- some of the Travail levels --- like the one with the lift that teleported --- worked around that. Just as a base example.

The short version: bsp2 end result maps aren't usually coopable --- coop is a design strength of Quake --- perhaps maps that don't fit in the design strengths of Quake should only be playable by outside the mainstream engines.

/Good judgment almost kept my from clicking submit --- then again, I don't have much of that. Submit it is! 
Baker 
What about sex before marriage? 
 
Baker, If you're actually serious about coop, you'd go implement support for RFC 5245 somehow. :P

Also, its probably worth rewriting the network protocol anyway, *especially* for coop. Coop can easily get more spammy than deathmatch. 
Bug Again 
https://dl.dropboxusercontent.com/u/21356102/mark%205%20bug.jpg

It's on an ATI 3670 with 11.12 drivers. 
Coop Is The Only Reason To Play Quake? 
And big maps are lazily made?

Each to their own then.

I get the point of wanting a simple engine though. 
Quake Does Not Equal Coop 
I've played coop quake maybe once or twice in my entire life.

I thought the whole point of these huge super giant bsp2 maps was to make an epic singleplayer romp? And these super maps are very few and far between.

I really don't see the reason for this rant, most people like Fitz for its stability, simplicity and faithfulness as a quake engine.
I personally prefer DirectQ because it is slightly more feature-rich, but it's mostly unsupported these days. 
Baker 
I take exception to the comment about lazy maps too.

The features I like about FitzV:

Runs fast
Supports loads of demos
Cool demo features
Perspective correction on weapon models in widescreen


Though I would like it if I could play my big map on your engine. As we move forwards in time, some people are going to want to make huge maps. TBH it's been a fantasy of mine since I started mapping, the only reason for not doing it was the engine limits.

9 out of 10 people have hardware that can run huge maps. r_speeds is not really an issue any more (though I still full-vis my maps).

I mean it would be nice if there was an active Fitz branch engine that supported BSP2. Tyrann's new compiler is quite possibly the best qbsp compiler we have ever had, AguirReMHLight is IMO the best light tool. Everything is in place, we even have engines, but it would be nice if an active (and very cool) engine supported everything. Then I would ONLY use FitzV for EVERYTHING. And more than likely, the majority of other folks would too...

Pleeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaasssssssssssseeeeeeeeeeeeeeeeee? 
Warp 
Supported Coop but my new one won't at all. In theory I could try and include it, but there's a tonne of dependencies in the AI and core game mechanics that mean it wouldn't make sense to try it coop unless I completely changed the game mode...

Which could be valid I suppose, will give it some thought.

It's also a very big map. 
 
"freezeall" command is what you seek.
Wow thank you, the command is perfect! :D

Mark V has almost no features that anyone ever asked for. Ever. And yet people like the hell out of it?
I like this engine because it is simple and not over the top. There are no fancy extra graphical features or SP fixes, it just works, really well.

+1 for wanting bsp2 support, it would be nice to play future large maps with my favourite engine. 
Lets Make Things More Interesting... 
one quick hack later: voila, markv with bsp2 support: http://triptohell.info/moodles/junk/markv_bsp2.zip
Completely unsupported, use at own risk, etc.

Baker, be sure to read the readme in there. I mean it. Really. 
Yay! 
Will test later..... 
Bah 
I'm laid up for a week with sciatica and won't be near a PC :[ 
@Spike 
Thanks

[I owe Spike so many thanks at this point, I think he flipped the universe's digit counter with that one.]

@Others

I'm not reading your replies right now.

Here is why --- and perhaps I can make Barnak really happy here ---

All of the spare time I don't have --- 100% of it --- I am building Fruitz of Dojo native OS X Mark V with 100% feature set (well maybe 99% --- Mark V AVI capture on OS X isn't something I can add conveniently).

[Will still have a very Quakespasmy codebase.] 
Woot 
Thanks Spike!

Got the level plugged in and running now. There's a couple of graphics glitches - the standard id sky doesn't render properly and the HUD sometimes gets stuck on white, but a lot of the other stuff that I was missing like coloured light and fullbrights is now working properly. 
@ijed 
sky+hud bugs don't relate to the code changes I made. Could be down to compiler differences or due to simply being based off an old version (baker still hasn't released the source to match his latest exe).
Coloured lights and fullbrights are not my work either. 
Fair Enough 
I'm building with Tyrann's latest tools, though I doubt they're the cause in this instance. 
I Meant C Compiler. 
 
Looks Like 
I'm provoking the white HUD with bad qc. 
Good 
quake one is the best game in all time 
Gray Borders 
There are thin (1-2 pixels wide) gray borders along the right and bottom edge of the screen in Fitz MkV, at any resolution. Any way to remove them? Graphics are Intel HD Graphics 2000. Also, is it normal that dynamic lights break through walls?  
 
Dynamic lights break through walls because because computing occlusion dynamically was too big an issue in 1996 (english: shadows are expensive). Nowadays we use shadowmaps or shadow volumes for that stuff. So you can use something like Darkplaces or FTE if you want those kind of features. 
Lines? 
And about the gray lines? A graphics driver issue perhaps? 
 
I have no idea, that one sounds more like some engine or driver edge case. You'll have to ask someone qualified. I've read that Intel's openGL drivers can be a bit buggy tho. 
I Can Confirm This... 
I have the 4000 version in my surface and I am constantly having to dick around with different drivers.

I haven't had a lot of problems since I updated from windows 8 to 8.1 though. 
 
Been away from the internet for 3 months and just now trying the newest Mark 5 from post 314. I got the same hud bug posted by Yhe1 (post327). Next day I used Metl's original 0.85 to check an Unforgiven map for something. Then later, went back to Mark 5 for some other testing. Hud is now fine... hehe.

Is it something to do with the config.cfg? Everytime I'm switching engines I sometimes need to delete the config.cfg from the Id1 and Quoth folder to clear up some issues with various info_command and trigger_command entities.

Engine is really fast now with lots of my alpha_masked trees, leaves, bushes, ferns etc (as .bsp mapobjects). It's like Pyramid of the Magician.

Dynamic lights usually pass through func_wall and door entities but world brushes do block them. I checked at some examples while in Mark 5 and it was working correctly. 
One Last Thing - Weapons Moving Up/Down 
Only one more thing - is there a way to prevent weapon moving up/down while looking up/down, like it's implemented in QuakeSpasm? Double-Barreled Shotgun completely disappears when you look straight down. 
White Hud Bug 
Hi all. I've tried this little nice engine for a minute. Looks like this type of bug:

https://dl.dropboxusercontent.com/u/21356102/mark%205%20bug.jpg

happens when your gamma cvar is set to ANYTHING but 1 IF your scr_sbaralpha cvar is set to 1 (scr_sbaralpha 0.9 or 0 will fix the problem). 
Trying To Play With Fitz Features. 
And I have found a bunch of stuff that I cannot get to work,

texture pointer, ghostdemo, r_mirroralpha... it's weird because things like gl_greyscale and r_stains work.

Also, no m_filter??? 
And How 
do I get external textures working for models and such? It says the engine supports it but what are the files that it supports? What are the naming conventions? What directory do they need to be in? 
External Textures For Models 
if it follows the standard method, then external model textures go into /progs/
the filename should be [modelFileName].mdl_[skinNum] 
Figured It Out... 
Save the files as .tga files using your naming convention you just mentioned.

The files I had were as .png files. 
Some Ramblings 
On some monitor resolutions I've noticed the gun stock shrink more than others, but it never disappears. Could be a res bug.
Its a good feature for changing gun perspective looking down from roof tops.

other stuff...

tool_texturepointer 1 - does work for me

r_mirroralpha - does not look like it is

The Mark5 from post #61 loads .bsp mapobjects correctly on start-up. The final version though, needs a map restart (just once) so that alpha masked textures are rendered right.

Most everything else is good though. 
 
Just move to Linux and give Baker some peace :) 
 
Unknown command "max_edicts"

Why the fuck would anyone do this? I can't finish ne_ruins because it keeps running out of edicts. 
 
The command has changed, use:

HOST_MAX_EDICTS <integer>
the default is 0 which is automatic (GL default 1024) 
Mouselook Wont Work 
how do I fix this? 
I'm So Stupid... 
I set lookstrafe on by accident. fixed it now. 
On My Withlist... 
... for the next FQ release would be two things involving music support:

1) MP3 playback from within PAK files (like in Quakespasm).
2) Ability to use custom music packs without having to copy them into mod subdir (by supporting at least 2 gamedirs, e.g. -game epiquake -game rubicon2 to play Rubicon 2 with Epiquake pack). As far as I can see from the readme, something like this might be planned already, so I hope this is going to happen. ^^

Other than that, this beats pretty much any port out there which attempts maintaining the "classic" visuals. Darkplaces & Co. might offer eye-candy, but FQ Mk V delivers what I prefer: Quake the way it's supposed to look with a few visual touches here and there. Two thumbs up for keeping this alive, and looking forward to more updates in 2014! 
Nice. 
Totally digging this (late for the party, I know), but yeah -- I'm getting the whited-out HUD thing, too. Any sort of workaround or anything? 
White Hud 
does post #350 help? 
Oops. 
It did. Thanks ;D 
FMV Is Indeed A Very Good Engine 
Especially if you are not into all those HD eyecandy and prefer a more-faithful-to-vanilla approach. 
 
why does fitzquake mark 5 care what its own filename is?

fitzquake_mark_v_final.exe - no hunk alloc failure

copy fitzquake_mark_v_final.exe, rename to fitzquake_mark_5.exe - hunk alloc failure

copy fitzquake_mark_v_final.exe, rename to blitzisawomyn.exe - hunk alloc failure

delete fitzquake_mark_v_final.exe, rename blitzisawomyn.exe to fitzquake_mark_v_final.exe - no hunk alloc failure

shenanigans. 
Umm 
I have it named as fitzquake5.exe and it runs fine. 
 
Lun did you maybe create a profile for fitzquake_mark_v_final.exe in your driver settings? 
Nope 
Just unzipped it.

I'll have to assemble a test case for Baker if he still checks the thread. There is something final about the word 'final' though. 
Shrak Freezes 
Can anybody else confirm that the "Shrak" TC (v2.0) freezes with FQ Mk V randomly? Unfortunately I don't even get any error message, so I cannot give any details about what might be the problem... 
IIRC 
Shrak not loading is a benefit. 
Check Yourself Before You Shrak Yourself 
 
Shrak 
wasn't that one of those eye-gougingly bad "unofficial!!!" commercial shovelware mods from 1997? 
Commercial Addons 
It was, but there were worse ones, e.g. "Aftershock", "Q!Zone" or "Dark Hour". Anyway, most of the time I can bypass these crashes by not attacking enemies, which kinda sucks. Especially the shotgun seems to cause trouble. On the other hand, "Malice" works without any problems - almost. In "Staying Alive", killing Vasquez and her helpers more than once (after they respawn) would result in a crash, too. But that's rather minor. I am just wondering if it's a problem with the addon or possibly FQ. Good news is that pretty much all the other good (custom) addons out there are working, e.g. Prodigy, Zerstörer or Travail. Maybe "Shrak" is just unworthy of running with this polished port? :D 
Stuff 
1. @Lunaran

I can't imagine how the executable name could make a difference. Maybe if you have an insanely long path that is 240+ characters long?

@ Spike re: source code

I just changed the optimization to /O1, I didn't actually change any source code -- the source code is current. I mention this in the readme, although yeah I didn't re-upload the VC6 project with an updated .dsp reflecting the /O1 instead of /O2

@ onetruepurple "Unknown command "max_edicts"

I renamed it because I changed the default value to 0 and FitzQuake 0.85 saved it config. 0 is automatic size. ne_ruins is the only map I know of that breaks automatic sizing (because it counts the edicts in the .bsp on map load and adds a ton of padding, but ne_ruins manages to bust this).

@1path0gen1 "White HUD bug"

That's disappointing, at least in your post #350 you figured out a workaround. Never experienced that problem myself. :(

@NightFright re: Shrak

I'm glad you like the engine, but since I don't warez I'll never play Shrak. But everyone has always said Shrak is crap, so ...

@roblot re: r_mirroralpha

It is broke. I wanted to finish the implementation, but ran out of time. The issue has to do with FitzQuake drawing the sky in an unusual way. Somewhere I had pages of notes on how to do r_mirroralpha really, really right. And "security cameras" too like Duke Nukem. And had ideas of teleporters that showed the destination point-of-view. But ran out-of-time and I can't imagine ever having the time to do this now.

@FifthElephant re:ghostdemo

I removed it.

@FifthElephant re:m_filter

I simplified the mouse code beyond imagination. The mouse code in Mark V is hilariously short and amazingly precise. Like a work of art. m_filter just averaged movement. Maybe in days where someone got 22 frames per second this might be helpful. Anyways, I removed plenty of hardly ever used cvars like modem and serial port stuff and the 80 weird mouse settings. I think I removed joystick support too (or maybe I didn't).

@ NightFright "Next release"

I don't know if one will ever happen. Then again life is unpredictable.

@ NightFright "Double gamedir support"

Typing "game masque -hipnotic" works. Substitute -quoth or -rogue. I should have made "-anything" work ... but I decided not to for reasons I can't remember.

On the plus side, Mark V does pack hints in a demo so it knows what gamedir options were set and playing the demo will automatic switch to the correct gamedir. It also knows what skill level was set. 
"But Ran Out-of-time And I Can't Imagine Ever Having The Time To Do T" 
Did you get a kid or something? 
 
the progs in ne_ruins spawns several hundreds of new entities as part of the pathing system. It's too bad you changed the variable name as there is a line in one of the config files in the mod that sets max_edicts "8192" to prevent any problems when running in fitzquake variants. 
Max_edicts 
clearly should have been left in.

Also, I noticed there is a variable to set mirrored surfaces (different to r_mirror I think)... I thought maybe you had changed it.

It's a shame you stopped working on it. The different features in each engine is why the community is divided (and why people are still using widely hated engines like RMQ).
I just thought it would be nice to put mirrors and alpha fences (actually I was working on a haunted house style map that had neato spiderwebs and stuff using a combo of masked and alpha'd textures, but the implementation made it a son of a bitch to finish) 
Oooo!!! 
I'm finding this late, but I love this!
This is very close to my ideal Quake client.

I just started trying to set up Quake after some years of not really messing with it, and wanted to use Fitzquake, but of course no NAT fix in 085, so that didn't work for running a server over my wifi router for an internet friend to connect to... Then I stumble onto THIS post with a NAT fixed Fitzquake plus lots of other fixes. Nice! Thanks Baker.

But when I play with a new toy, I really pound the heck out of it (ok, that sounded bad :P ), so I'm finding bugs... which I will report in hopes of them being fixed some day, if Baker ever works on this again.

Bug(?) List:

"Kind of" NAT Fixed?
FitzquakeV connects to Proquake Server fine.
But I Can't get anything to connect to a Fitzquake server running either protocol 15 or 666.

Skin Crash!
Assigning a skin to a projectile crashes the client if the skin # is invalid (if the player doesn't have the model with multiple skins). Standard behavior is to either show the default skin or a skinless model. FitzQuake085 did not have this problem.... I know-- I shouldn't assign an invalid skin, but if the server is running a mod that uses more skins on the projectiles (like a laser model with more colors), a client can still play on the server without having the custom model with extra skins -- he just won't see the extra skins. Well, that's how it should work.... FitzquakeV crashes.

"Always Run" = Bad.
This is not a good setting to default ON. It's weird. It doesn't actually do what you'd think (make it like you're holding down the +speed run button) -- it just messes with your normal "walking" forward and back speed, but not your sidestepping speed, exactly. So you end up being able to run forward fast, BUT when doing so you sidestep slowly... EVEN AFTER you press the run button or use +speed in the console. Always Run must be switched off to get proper sidestep speed when running, even when using the +speed option (unless you make other settings, I guess?). Please default it back to off. A better fix would be to change the "Always Run" menu option to actually lock +speed on instead of whatever weird thing it currently does.

An Easy One:
progs/bolt.mdl should be in the r_noshadow_list

What Am I Chasing?
With chase_active 1 and your back against a wall, toggling chase_mode off and on will cause the camera to jump up to the ceiling and stick there.


I wish fog settings would save across maps... and I kinda wish I could set a skybox permanently on for every map too.

Oh, I can't seem to get replacement sprite textures to work. Replacement textures for models seem fine, but like, I can't get progss_bubble.spr_0.tga to appear in the game. Placing it in a "textures" folder doesn't help either.

And finally, I feel like the blends (especially the ring blend) are way too... slight. I can barely tell it's happening with the ringblend. Though in Fitzquake085 I thought the blends were way overdone. There must be a happy middle.

And finally finally, gl_overbright_models seems overdone; when a player (especially wearing white colors) is standing in a bright area he's practically glowing and really washed-out. Not a pretty effect (run around with chase_active 1 and color 0 to see). Maybe there's a way to set a max brightness value to not exceed? I like the way it looks in dark areas though....

Well, hopefully more work will be done on Fitzquake at some point int he future. Thanks for what you've done so far, Baker! 
Continued.... 
Ok, the more I mess with Mark V, the more I love it. This is now definitely my favorite Quake client ever. Small, FAST, and not crammed full of altered default settings and eyecandy that changes the way Quake does things, but with extra features to play with and tweak as you want, plus all the little enhancements that SHOULD be default, like correct interpolation and bug fixes.


Continued report of issues in hopes they may be fixed sometime in the future.


Legitimate Bugs:


MP3 soundtrack doesn't play IF you don't have a CD drive! On my netbook, I noticed at startup it would give the error "cdaudio_init: mci_open failed (266)" so I wondered if my lack of a CD drive was disabling the MP3 music too, so I tried running it on my older laptop with a built-in DVD drive and the MP3 tracks worked perfectly. So then I plugged my external USB DVD drive into my netbook and tested again... and heard no MP3 music... UNTIL I adjusted the volume slider for CD music (it wasn't too low, it's just that the music is silent until you change the volume in any direction). I also found that ALT-TABing away from the window and coming back will cause the MP3 tracks to kick in (they are playing from the start -- just silently). As a workaround, I found I can get the MP3 tracks playing correctly from the start (ONLY if I have my DVD drive attached) by including in the autoexec.cfg "bgmvolume 0; wait; bgmvolume 1"


If you try to load a skybox made of JPG files, it will CRASH because they aren't TGAs. That's kind of bad behavior.

Centerprint messages seem to be cut off at 19 lines. In Qrack and other clients you can see more than that (I tried the old arcade mods Paqman and Tetris which use a few more than 19 lines of centerprint to draw the games). Also, it would be nice if the centerprint didn't necessarily appear right in the center of the screen. If there's room near the top, let it appear up there so it doesn't block the view so much. Is there a variable to adjust where it appears?

r_skyalpha doesn't seem to work for me. It just makes the sky look... weird and inverted or something.

Multiple gamedirs... how does this work? I can't get it to work. I thought since I can't toggle Colored Lights off (mentioned below), I'd just place the LIT files in a separate gamedir and then when I wanted to use them I could do something like "-game fvf -game lights," or from the console "game fvf lights" but it doesn't seem to work.




"Kind-Of" Bugs:


All the old methods of stopping Demos from playing at start up no longer work (-map none, for example). This is probably a result of fixing bugs where Quake would just stop if it got an invalid command like that, heh. But now I can't do anything to stop the demos from playing at start!



Not Exactly Bugs (but things that should be included for the added features):


Colored lights can hypnotize. Sparkle someone else's eyes. But there's no way to toggle them off & on like for textures or skyboxes.

When you do "game fvf" from the console, it should exec the autoexec.cfg file located in the new game directory.

I wanted a button to cycle fog off and on, but the "cycle" command doesn't work with "fog" (i.e, bind F4 "cycle fog 0 0.03" would be handy). "variable fog not found."

I would also like a button to turn off skyboxes, but you can't bind a key to "sky "" " because of the quotes needed in that command. It would be great if there was a bindable command to disable skyboxes, like, "sky default" or "sky 0" or something. (Workaround: make skyoff.cfg which contains the command 'sky "" ' and bind a key to "exec skyoff.cfg".)

Also, it would be great to support something like Qrack's skybox.cfg file where you can specify a skybox to load for each level automatically. Failing that, what about just having a certain skybox load instead of Quake's default sky based on the skybox name (kind of like a replacement texture). There are only like 2 skys in Quake, aren't there? Purple and blue.... So if you have like default_blue_ skybox it will automatically load in any level that uses the blue sky, and a purple one for the purple sky.

As for automatically activating fog across maps... a cheap hack would be to have the engine look for a file like "eachmap_exec.cfg" and exec it at the start of each map. Then the user could put whatever fog setting (or other settings they need to repeat each map, like skyboxes too) in that file....

scr_crosshairscale should also scale down (0.5, 0.4...). I really just need a tiny dot in the middle of my screen. Why would anyone want to make it BIGGER? heh.



New Feature Wishlist:

Proquake RCON

Custom Crosshair graphic



Actually, this whole post is a "wishlist" because I wish someone would continue work on this engine :D 
Mark V Issues 
I can confirm centered messages being cut off prematurely. Also, it seems that sometimes an MP3 track from the previous level keeps playing after entering the next level. This way, several tracks are being played at the same time which kind of sucks.

Also, I would really like to know how to get ne_ruins running with Mk V. For me, it always crashes when exiting the intro map. So far I haven't found any way to make it work - and it also doesn't work with Quakespasm, btw. 
Small(er) Report Update 
Ok, I found the "external_lits" console variable that lets me deactivate the colored lights. I guess that's something that needs a map reload to alter though, but at least the option is there.

About the MP3 music tracks, I wish there was a way to disable/enable them from loading. There is a pretty long delay when the MP3 tracks are loading before each map starts, EVEN WHEN the MP3s aren't actually being played. For example, -nocdaudio on the command line does indeed stop the MP3 tracks from playing... in exactly the same way that having no CD drive stops them from playing... i.e., they are still loaded into memory, and the messages at the start of each map says "current music track: musicblah.mp3" but it is "playing silently" or something and there's no way to actually hear it. A way to truly disable/enable the MP3 loading (other than renaming the music folder) would be great.

By the way, I found a nice workaround for those of us who don't have built-in CD drives but still want to be able to use MP3 soundtracks: download Microsoft's nice little Virtual CD Control Panel ( http://www.microsoft.com/en-us/download/details.aspx?id=38780 ) and you can easily set up a virtual CD drive that Quake will recognize and so allow the background music to play without having to adjust the volume to make it start....


And I found something else that looks like a major bug. On levels E1M2 and E2M3 (and only those levels -- I checked them all), the game will crash if you toggle the value of external_textures. EVEN if you don't actually have any external textures in your textures folder.... My external textures do work on these levels IF they are enabled when the map starts. In that case the game crashes when I try to disable them.....


Further thoughts on some of my earlier suggestions:

I think the quad, pent, and biosuit blends are probably fine. The lava blend is pretty dark, but that should be expected if you're swimming in lava.... It's just the ring and water blends are a bit too weak by default.

What about "water_fog" effects? It would be a fog setting that only shows up when you're underwater (that would look better than the blends anyway). It could be a bluish or yellowish fog for the waters, greenish for slime, and redish for lava.


And about saving fog and skybox settings across maps by possibly having the engine execute a re-exec.cfg at the start of each map -- it works petty well (heh, I did it by QuakeC), and in conjunction with some clever aliases it can even cycle through each of your skyboxes automatically on each map change.

It might be more "self-contained" (no external files) to just have the engine activate an alias: "re-exec" for each client at every new map... then the player could set up that alias to do the things they want, like if it was just as simple as 'alias re-exec "fog 0.03; sky blah" ' or if they still want to use a cfg file, 'alias re-exec "exec whatever.cfg" '

Anyway, this is just a cheap, simple hack I thought of, which might be easier to implement rather than saving actual console variables.... 
Gunter 
with colored lights, altnertaively you could not install the .lit file in the map directory in the first place. It only contaisn colored light info I believe so you dont losing anythign else by not installing it. 
Colored Lights 
@ nitin

Yeah, I may not have been clear in what I was saying. I actually do like the colored lights -- I just wanted a way to toggle them off and on in the game so I could compare what it looked like with and without them. I eventually found the external_lits command briefly mentioned in the documentation, but it's a setting that requires a map restart to kick in.


@ NightFright

Hey, I just found a post on Quakeone where you are working with colored lights and lit files. Could you do me a favor and come and post on my forum? http://www.fvfonline.com/forum/ No registration is required to post (just like here! I hate registering for forums, haha). I'd like to see if you can make some lit files for me -- I'm having varying and non-ideal results depending on which tool I try on the Iikka and Terra maps.... 
Encountered A Bug 
I was playing through a episode (deathmatch classics volume 2) and upon switching maps i got a "not enough handles" error and quake crashed

(happened once in many tries)

realy rare to me, hardly ever notice bugs with fitz :) 
... 
Thanks for all the bug reports, I hate bug but like to know what they are too.

Like a ghost, I'm not really here. And the final Mark V is what it is (hint: final).

But I dream too. Maybe Mark V will influence ideas in the remaining active engines like Quakespasm or whatever the next FitzQuake has to offer.

Or both. Or neither.

Or "Hey look, a nickle!".

/Baker tricked you and scrambles away while you look for the nickle. If you are British, pretend nickle is a "quid", whatever the fuck that is. 
 
No excuses for shoddy workmanship!!!

;) 
Baker 
If think it's called 'sustainable currency'. 
 
A US nickle is worth 0.02998 quid (apparently). Baker is trying to short-change us! 
Gamma, Contrast, And Blends 
I found that my lava and pain blends are way too powerful because of my gamma setting. I use the brightest gamma setting that works -- "gamma 0" -- and that makes my screen the correct brightness. Anything else is too dark. But when gamma goes lower than 0.5 the lava and pain blends become so intense they pretty much blind you (especially at gamma 0).

I can't find any way to make adjustments (other than turning off the blends, which I don't want) to alter this.

Like, there is supposed to be a "contrast" adjustment, but "contrast" in the console returns "unknown command."

And none of these settings seem to work right: r_lavacolor, r_watercolor, r_slimecolor. They do nothing if I set them from 0-9, and anything 10 or over just causes the blend to completely go away (just like gl_polyblend 0), and they won't come back until I restart Fitzquake.

Anyone know ways of adjusting the lava/pain blends, or other ways to tweak brightness/contrast in Fitzquake? 
Colors 
Those are undocumented variables that can alter the water or lava or slime appearance.

The default is Quake normal: r_watercolor "130 80 50 128" (<red 0-255> <green 0-255> <blue 0-255> <percent 0-255>)

But typing r_watercolor "0 0 255 64" would be a blue hue in water as an example.

You weren't really supposed to notice any of those existed, they expect 4 parameters and doing any less than 4 defaults the percent to 0 which means none ... 
Gunter Notices Eeeeeverything ;) 
I am a power tweaker (not that kind!), and I monkey around with every setting I can find to see what I can adjust/improve.

Thanks for providing a little documentation for those undocumented commands.

Excellent, it works like a charm to adjust the lava color so that it's not so blinding with my gamma setting.

I notice that the default Quake numbers you provided for watercolor are not the default for Fitzquake Mark V. Can you provide the default values for Fitzquake (and standard Quake -- or point me in the right direction to find them) for each of these blends so I'll have a base to start with for tweaking them? My lava ends up looking like cherry jello since I'm not sure what the right color for lava is supposed to be -- I mainly just want to adjust the intensity and leave the color alone.

And I don't suppose there are any other undocumented variables that will control ring, pent, quad, and (especially) pain blends similarly?

Much thanks, Baker. 
Ah 
Ah, I found the default values for liquids in the Quake code:

cshift_water = { {130,80,50}, 128 };
cshift_slime = { {0,25,5}, 150 };
cshift_lava = { {255,80,0}, 150 };

Setting the lava intensity to 128 seems to work well.

And by my eye it looks like the water intensity is the only changed default in Fitzquake, and it seems to have been changed to a value of 50? That must be why I thought it looked so slight... I think I'm ok with Quake's default value of 128 for that. 
Look! In The Sky! It's Gamma-ra! 
r_skyalpha and r_skyfog only work right if I have "gamma 1" but any other gamma setting causes them to do weird things.

Ya know, I see that solid white "scr_sbaralpha" thing someone else mentioned, but only on my old laptop. I don't see it happen on my netbook where I'm getting the weird sky issues with gamma != 1.


As I mentioned before, Fitzquake Mark V is really insistent upon playing the demos (and there's no way to stop it); so much that it seems to prevent Qview from connecting to a server. When I try to use Fitzquake through Qview, it starts up and I see the message that I'm connecting through Qview, and then the demo starts playing and I don't connect to the server :/ But then I can just type "exec qview.cfg" to get connected, but still.... Fitzquake is gonna play those demos NO MATTER WHAT! 
Resolution Issues 
Gee, it sounds like I'm really complaining a lot with all my bug/issue reports... but here are some more!

Widescreen resolutions seem to cause the weapon model to be much more hidden "under" the bottom of the screen. Like at 800x600 the weapon model sticks up a lot (like in proquake), but at 1024x600 the weapon model doesn't stick up very much (like in standard quake).


In some windowed resolutions, the top of the screen is hidden so that you can't see all the lines of text. Like, in 800x600 (windowed) you never see the first line of text (and maybe half of the second line too) at the top of the screen. So if you start typing a message, you never see what you're typing. Setting my windowed resolution to something weird like 750x550 on the command lines causes the problem to go away.


The names in the scoreboard when you press Tab are "bronze." I don't like that; it's usually harder to read on top of Quake's mostly-brown world. The names should be the proper color (white) unless the person used bronze characters to make their name.
OH... if I actually make my name with bronze characters, then it appears white in the scoreboard! It seems backwards....


The r_noshadow list should also include k_spike.mdl and lavaball.mdl (glowing things shouldn't really cast shadows). And I mentioned before that bolt.mdl should be in there, but I'll clarify that "bolt1.mdl" should be renamed to "bolt.mdl" since there is no bolt1.mdl in (standard) Quake. For other people who wanna fix this, you just need this altered list in your autoexec.cfg file:

r_noshadow_list "progs/flame.mdl,progs/flame2.mdl,progs/bolt.mdl,progs/bolt2.mdl,progs/bolt3.mdl,progs/laser.mdl,progs/k_spike.mdl,progs/lavaball.mdl"

I guess I'll mention that trying to make shadows for bolt.mdl (if it's kind of long) causes a major slowdown for an instant, but this behavior didn't happen in standard Fitzquake 0.85


Hm, I think I have to mention a niggle I have with the r_nolerp list: it contains models that are not a part of standard Quake. I don't think you should be catering to all the different mods out there by adding their modiels to the default settings in "standard" Fitzquake. That's something that each mod author (or possibly player) should have to configure themselves, with a custom r_nolerplist, and not expect the engine author to account for all their custom models.... If you start accounting for all the possible custom mods out there, the list is going to become really bloated (hey, I've got a few models from FvF you could add to that list ;).

Not that it matters, since it is how it is and probably isn't going to change; that's just my thought on the matter.


I'm really not just trying to complain with all these bug reports.... It just shows that I'm playing the heck out of Fitzquake! And the only little annoying issue that I can't work around is the centerprints and scoreboard appearing right in the middle of the screen and blocking the view. I really wish they behaved like in proquake and appeared near the top of the screen....


Hmm, and here's something I've seen several times: Fitzquake V doesn't always honor the -window command on the command line (from my batch file). Like I just ran standard Fitzquake without any parameters (so it ran full screen), and then after I closed that and ran Fitzquake V -window -width 750 -height 550 (batch file) it started up full-screen.... Then when I hit ALT+ENTER it switched to the proper-size window. 
 
Widescreen resolutions seem to cause the weapon model to be much more hidden "under" the bottom of the screen. Like at 800x600 the weapon model sticks up a lot (like in proquake), but at 1024x600 the weapon model doesn't stick up very much (like in standard quake).

isn't this desired behaviour? it retains the look of the weapon regardless of fov or aspect ratio. older engines would make the weapon look weird at wide screen or high fov. 
Weapons Hiding 
Having a tiny weapon is annoying. However I play my game with these variables to make the weapon look "chunky".

r_viewmodelfov 110
v_gunangle 2

Give it a try? 
Always Play -windowed 
never had any trouble, but i dont use a batch file just exec my command line 
 
Having a tiny weapon is annoying. However I play my game with these variables to make the weapon look "chunky".

r_viewmodelfov 110
v_gunangle 2

Give it a try?


If I "view" a "model" at the right "angle", when I "play my game", my "weapon" also goes from "tiny" to "chunky"... 
 
It took me way longer than I will admit to to understand what you were getting at there Kinn...




Perv! ;) 
I Do Not Have A Tiny Weapon!! 
Yes, having a tiny weapon is annoying :p Everyone laughs at you. So I've heard....

The desired effect is that your weapon looks the same (sticks up the same amount) no matter what resolution or FOV you are in.

@ FifthElephant

r_viewmodelfov 110 does the trick to make the weapon model look the same in wide-screen modes as it does normally in non-widescreen modes. Too bad that's not automatic, but it's good to know there's a way to adjust it. Thanks.

v_gunangle seems to be an unknown command though. 
 
v_gunangle might be for another engine to be honest. Maybe directq. 
Bad MP3 Issue! 
One bug I've noticed is that when you complete a level, the music doesn't stop playing and will continue to play over the song in the next level. I am using mp3 files in the music folder by the way. Everything else works great though!

One work-around is to save your game, quit, and reload your save. Another is to simply turn off the music, but that's a bit drastic... 
 
Try using ogg files instead 
 
OGG files aren't supported in Fitzquake ;)


Ok, I investigated the music glitch....
Here's where the problem occurs:

Upon touching the exit there's is a noticeable pause while the mp3 track loads and you see in the console: "current music track: music/track03.mp3" -- that's the Quake intermission track. However, it never stops the current music track from playing at that point, like it should.

And then both (I think) the current background track and the intermission track enter "the phantom zone" and you will hear those tracks playing in the background, EVEN if you alt-tab away from the Quake window! Meanwhile, the new music track for the new level you enter will be playing in Quake (and you will only hear that track when the Quake window has focus -- you always hear the phantom tracks). Additionally, the phantom tracks will not respond to bgmvolume commands in Quake, but the active track will.

It looks like if you just keep exiting levels, eventually you have like ALL the quake music tracks playing at once in the phantom zone....

Note: you do not get the phantom track effect when using the changelevel command as opposed to touching the exit, since Changelevel never tries to run the "end of level" code that should stop the current track from playing then load the intermission music.


If you use "cd off" and then "cd on" right before exiting, it will then play the intermission music and will not continue playing it when you switch to the next map. However, after doing this, any music playing in Quake will no longer respond to bgmvolume commands, and it will still be playing even if you alt-tab away from Quake....


The Correct Workaround:

If you issue "cd stop" just before exiting a level, you're golden. The intermission music will play and not keep playing on the next level, and the music tracks will continue to respond to bgmvolume commands....


Crud. it looks like the "phantom track" is impossible to kill (short of closing Quake) once it starts. So the "cd stop" command MUST be issued BEFORE you touch the exit.... I'll have to fiddle with my QuakeC to see if there's any way possible to issue a "cd stop" command AS SOON as the exit it touched, before any of the glitches can kick in....



Annnnd another issue I have.... Looks like setting "mouslook" to default "on" in the menu is not such a good thing either :/

Two reasons why: It overrides any alias settings I have to temporarily disable mouselook, and more egregiously, if I turn it off in the menu, it turns itself back on the next time I start Fitzquake....

Here's an example of something I set up in a cfg file:

+mlook
alias +nolook "-mlook"
alias -nolook "+mlook"
bind z +nolook

So +mlook is on , but when I hold down the Z button, mouselook will temporarily be OFF so that I can, for example, move a few "inches" forward very slowly using the mouse (to get the perfect view or position for a screenshot or something).

But as mentioned above, the menu setting overrides mouselook ever being off, so I have to turn it off to use this stuff. But the menu setting keeps turning itself back on.... 
Tiny Update 
Yep, issuing a "cd stop" command via QuakeC stuffcmd to each of the players as soon as the level exit is triggered -- that totally fixes the glitch.

Also, "cd off" was the command I was looking for to completely prevent the MP3 tracks from loading. Though oddly, if I put "cd off" in my autoexec, I will then need to do "cd on" followed by "cd reset" to get the tracks to play again (level change alone won't do it).

If I just issue "cd off" inside of quake (and not in autoexec), then all it takes to get the tracks playing again is "cd on" (and a level change, as usual). 
I Find That Shaving Makes My Weapon Look Bigger 
It's just an ilusion thoough.... 
Annnd, I'm Back. 
The "mouse look" menu option doesn't bother me anymore; +strafe is the command I was looking for to temporarily disable it and allow moving with the mouse.


But unfortunately "cd off" command only works if you actually have a CD drive. So as I mentioned upthread, there's no way to disable the loading of MP3s -- or to make them play -- if you have no CD drive (so I'll have to create a virtual CD drive before playing Quake even if I'm not going to use MP3s, just to prevent the considerable delay as it loads them into memory).

As I mentioned before, E1M2 and E2M3 will crash if you try to toggle external_textures on or off. I noticed that when these levels load, there is an error: "mod_loadtexinfo: 1 texture(s) missing from bsp file." And Fitzquake V does not handle missing textures very well (crashing). I know there's that one weird untextured button on E2M23 in DM mode. tool_texturepointer says it's "notexture."


New issues:

You can't use % in normal chat messages.... For example, I tried to say, "we need to kill 100% monsters" and it comes out "we need to kill 100(invalid macro ' ')monsters"


In Proquake, you get the little color boxes with scores (representing the top two players) in the HUD, to the right of your Cells ammo. Proquake will show no more than 2 of them, because if it were to show 3 or more there, they would block the clock. Fitzquake V blocks the clock with 3 ore more of them....


And more issues with centerprint: When you die, the scoreboard appeared right in the middle of the screen, the same as with the centerprints, so that if there are 3 or so names in the scoreboard, it will block the centerprint. For example, when you die in FvF there is a centerprint message "Press 2 to Observe" but you can't read it because names in the scoreboard will hide it. Proquake keeps the scoreboard at the top of the screen and avoids this issue. 
Hm, This One Is Possibly Semi-critial.... 
Was playing today on END map. Me and another player were using Fitzquake Mark V (server was proquake). He got disconnected and could not reconnect, because Fitzquake was giving him the error:

"host_error: Colors slots full."

I didn't encounter this, but he couldn't reconnect until we were at the next map. I know that has to do with the colormaps for the dead bodies, right? But why would it prevent him from connecting to the server at all?



Not so critical continued reports:

Toggling high-quality textures on or off in a game causes the player skin to go completely white. Other players will look solid white after you do this. But rarely it doesn't happen.... It seems to require restarting Fitzquake to fix it.


Oh, and you can use the PAUSE button even in Deathmatch on a server that has Pause disabled. It won't pause the server -- it will just pause YOU and your view of the action will be completely frozen until you unpause yourself.... Of course, you'll probably be dead by then....


And... I have a modified DM6 map with a few small extra areas. It seems to no longer be recognized by Fitzquake as far as applying high-quality textures to the walls. The wall texture names are still all the same, but Fitz won't apply them to my modified DM6. High-quality item textures still work fine. 
... 
Gunter, hats off that you have singlehandedly brute-force revealed weaknesses in the engine.

And this is the kind of gauntlet of testing that almost any engine author could only dream to have --- in the thoroughness and the rigor.

I'm replying out of this admiration.

In a perfect world, I could correct these and the other bugs that others have graciously found -- and this level of bug-testing is frankly incredible compared to what I can recall seeing in maybe anything except maybe Quakespasm and ezQuake (I got really high levels of feedback for "modern" ProQuake, and the detail and testing in this thread seems to vastly exceed even that).

Mark V Final was apparently not as bug-free as I hoped when given a wide-array of testing in different environments and the kinds of uses that normal FitzQuake didn't even typically encounter (like as a client to a multiplayer server, as an example. I'm sure it got drilled and grilled in SP and coop not only up/down but left/right and forward/backwards).

I wish there were 2 of me. The one of me that exists isn't likely to ever have the time to revisit Mark V. :(

On the plus side, it is open source. And I don't see much posted that wouldn't be somewhat easy to remedy by an experienced engine coder.

Ultimately, attention is probably better served by people contributing to or whole-heartedly endorsing Quakespasm. Mark V doesn't contain too much that couldn't be ported to that engine to achieve a singular "old school" classic engine ... 
 
You have to admire his resilience in finding all these bugs...

It's a shame you don't have time to revisit the engine (in particular my biggest peeve being the distorted texture scaling issues).

I have always envied people who can code, I tried to learn how to code for best part of a year when I was unemployed and I just don't have the mindset for it. 
 
Yeah, it's a great misfortune that you don't and probably never will have time to put a little more polish on this... :/

Maybe some other engine coder will decide to pick it up. I'm tempted to take up engine coding myself to see if I could fix some of these things, but I doubt I'd have the time for that either.

I tried Quakespasm but I just don't like it. It's just not right, somehow. Perhaps if they imported some of the Fitz V features, like the ability to disable custom textures. Additionally, I find the Quakespasm website to be nothing but annoying. Yeah, great, they chose to have an "artistic" presentation with vague, arcane-sounding words and messages, but that's just stupid and irritating when I'm trying to find solid information about the thing. It's even difficult to find any real documentation of the features (as far as like console variables, etc.) in the included readme files... and I don't feel motivated to bother with the effort of digging through all the changelogs in the file to try and figure it out.

Digressing a bit, I remember giving feedback and reports for modern proquake, but the farther that project went along, the farther and farther it got away from standard Quake in feel and function, and it was a major hassle to track down all the console variables I needed to reset back to the defaults in order to get the right Quake feel back, so I gave up on that and just stuck with Proquake 3.5 (the last version by the original author). Modern Proquake was just no longer the same game. Apparently that's what hard-core runequake players wanted (to disable all special effects and change the defaults in order to get any and every advantage in deathmatch)... however, I feel that was against the spirit of the original Proquake to fix things without making too many changes to the presentation. Also, after "string safety" stuff was added in to Proquake 3.39+, it broke the FvF vote menu.... So yeah, I just can't use modern Proquake. It made too many changes.


I always liked Fitzquake, but it was just lacking some features to push it to the top of the pile. With the great additional features added by Baker (NAT fix possibly being the biggest factor for online play), I just can't prefer anything else over Fitzquake Mark V.

Going "back to basics" with usability improvements and bug fixes (and optional graphics enhancements that can be toggled off easily), instead of just cramming in everything everyone wants (I cringe a little when people start asking for Darkplaces stuff to be added in to this) is why this little engine has received so much attention. It's refreshing to go back to how Quake was meant to feel, instead of getting a bloated engine full of too much eyecandy, changed defaults, and hyperactive tweaker features.

I've found ways to work around most of the bugs (hah, I hard-coded some Fitz-specific workarounds into the FvF mod!), and I even put up a Fitzquake configuration page on the FvF website to help people get it setup, heh.... So yeah, I'm goiing to stick with Fitz V and I'll keep recommending it to people who play FvF. It just looks and feels "right" and has all the right enhancements in the right places (well, almost -- it would benefit greatly from a few specific proquake features).


Anyway, you have my admiration, Baker, for taking this little engine which had so much unrealized potential, and unlocking some of that potential. Even if seeing some of the potential unlocked just leaves us wanting to see MORE of it unlocked, heh.



The rest of you, come play FvF using Fitzquake Mark V :P

www.fvfonline.com
fvf.servequake.com:26008 
Günni 
is there a port for Macs? 
New Version 
Mark V release 14. All reported bugs fixed (*) and thank you for the bug reports!

1) BSP2 support via Spike
2) MP3 playing on top of each other = fixed
3) White HUD bug for some video cards = fixed
4) jdhack/Requiem "automatic impulse 12" for non-supporting progs
5) jdhack/Requiem "automatic fish fix" (jdhack is brilliant!!)

6) scr_crosshairscale 0 draws a dot

There are about 20 other improvements, the details are in the readme.

Download:

http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Read Me

(*) Except Gunter's bug reports relating to mods missing skins and skin with toggling external textures.

If you notice any bugs, please let me know ASAP!

This should be a very polished release because I had no time pressures! 
 
Nice update! 
Thanks For Update, Baker! 
yay, that's a nice surprise! the release notes look really delicious! bugfixes, bsp2 and even requiem features implemented, just wow.

looks like warpspasm works fine now, the skies/liquids and polyblend effects were messed up for me in previous release.

old version http://imgur.com/jvqZZAY
new version http://imgur.com/xLNOiT0

it's always nice to have more engine choices just in case something goes wrong with certain hw setup or map release... dynamic light performance fix and various improvements make mark v a strong contender for the best performance/mod compatibility ratio out there imo. 
Nice 
Can't check right now, but does this also address the issues with over-limit maps and/or demo playback in such maps that were first discovered in Backsteingotik as well as the Custom Gamer video thereof? 
 
Does it adress the non standard texture resize issue? 
@negke/fifth 
@negke

I wasn't aware of that, but I will fix. Am I correct to assume if I check the Backensteinogtik thread I'll find the description of the bug?

@Fifth

Quakespasm did a power of two texture patch.

http://sourceforge.net/p/quakespasm/patches/25/

I have no eye for this sort of thing, does it look like their patch solved this issue to you? 
 
There's some mention of it in the release thread, something about monsters becoming invincible under certain circumstances. sock would know in more detail.

This is the video in question. MarkV was used to playback a video for capturing, not sure which engine the demo was recorded on. IIRC, what happens is that some models are rendered black/unlit. 
YEEAAHH!!!! 
xoxoxoxoxoxoxoxoxoxoxooxoxoxoxoxox 
@negke 
That bug in the Daz video was fixed in the October 2013 update. The some models rendered black/unlit thing wouldn't have been the October 2013 update either.

However, should anyone spot anything like that, please record a demo and save a savegame.

At the moment, I have time to fix bugs.

Next week I have new 2 new mapping features I want to introduce into Mark V, but unless every known bug is smashed I won't be happy. 
Ne_ruins? 
should i expect ne_ruins pack not working with this engine? looks like it was mentioned previously mark v was going to run out of edicts on this map, and i got a crash at a certain point playing it. 
 
jdhack/Requiem "automatic fish fix"

Curious about how exactly this works. 
 
Ran out of edicts in smqe08d_lun, which is id1. 
That Might Be Possible On That Map Anyway 
was it during gameplay or just at spawn? 
Balls Deep Into The Map 
It was the teleporting monsters after the GL teleporter. 
Automatic Fish Fix Works By ... 
Checking the monster count before and after swimmonster_go is run. 
R_skyalpha 
I never heard of r_skyalpha before. I thought it might be great for taking "outside the map" screenshots, but no such luck. I did finally figure out what it was for though. 
Idle Speculation 
Curious about how exactly this works.

The engine sets a flag if the total monsters increases when a monster_fish spawnfunction is run. It then watches think functions on the first two frames after spawns, watching for any entities of class monster_fish running swimmonster_start_go. If it finds one, and the flag is set, then the engine reverses a second increase of the monster totals (should one occur). 
 
Will it cause problems if that's fixed in my id1 progs.dat? 
Not At All 
Just looks to see if when a single fish spawns if the count goes up by more than +1.

Both that and the auto-impulse 12 modification were really well crafted by jdhack in the implementation in Spirit's Requiem engine.

They can be turned off, type sv_ in the console and press TAB and the names are obvious. 
No 
Depending on how you fixed it either:

a) it won't set the flag when the entities are loaded because you deleted the line from swimmonster_start

or

b) there will be no changes during swimmonster_start_go for the engine to reverse, because you deleted the line from that function.

Either way you are safe. You'd need some very strange progs, one which had a legitimate reason to increase the monster count by 1 after some monster_fish spawns while still increasing the count in the spawn function as well. Well, actually here's a potential scenario...


Suppose that you add a spawnflag which allows monsters to teleport in when triggered. Also suppose that depending on the spawnflag the code in your swimmonster_spawn function branches:

* with the spawnflag you increase the monster count immediately but skip swimmonster_start_go (since the teleport code will handle that setup later)

* without the spawnflag you wait for swimmonster_start_go to set the monster count.

I believe that a map with some fish that do and others that don't teleport would then score a false positive under this scheme, and miss the non-teleport fish off the monster count erroneously. 
Cool 
Looking forward to the release. 
 
Spirit's Requiem engine

jdhack's Requiem engine! I was just a beta tester who decided to release it after he vanished. All I do is trying to promote it and get people.interested in fixing outstanding bugs. 
 
Suppose that you add a spawnflag which allows monsters to teleport in when triggered.

yeahhh, that's why I asked. :)

So I take it if all my monstercount incrementing is done in monster_fish() I'm safe? I moved all the increments out of walk/swim/flymonster/go to facilitate monsters doubling as spawners. 
Yes 
That's safe. The engine only intervenes if you increase the monster count both during and after spawns, and only intervenes incorrectly if you only do so once per fish but are inconsistent about when you do so. The spawnflag idea was the closest to a sensible reason I could invent why it might vary from fish. 
@baker 
Non power of 2 is broken in quakespasm also.

Hammer of Thyrion for Hexen 2 has a cvar for this -

https://www.dropbox.com/s/9hwef9vd513qteq/npot0.jpg
(without NPOT)

https://www.dropbox.com/s/7iy61i3rlsynpc9/npot1.jpg
(with NPOT) 
Baker 
thanks for this, only engine that Map Jam 1 doesnt lag for me. 
 
Looks like the quakespasm patch is supposed to fix the problem. But I can't find a download link for the .exe or a way to figure out how to patch the game. The CVAR is the same as the hammer of thyrion one though. 
@nitin 
Thanks for trying the engine! I'm glad it was of use to you. 
@fifth 
I'll throw that into Mark V and upload it in less than 2 hours.

Then you can look and see what you think. You seem to know what you are seeing as a problem. 
Version:# 15 
Demo playback improvements, documentation on how to turn AVI into demos via the command line, a couple of tool_texturepointer fixes.

A non-power of two patch snagged from Quakespasm's site to see if it addresses what FifthElephant points out about texture appearance.

http://quake-1.com/docs/utils/fitzquake_mark_v.zip

README

The supports "no power of two" texture sizes can be disabled via the command line using -no_npot

(*) Not that there is any reason on Earth to even want to disable non-power of two, but fifthelephant needs to be able to do to see if the sizing issue he sees is resolved. 
Awesome... 
that fixed it! 
Sweet 
Glad the NPOT patch was useful for MarkV, Baker.

Afaik There's no build available for QS with the NPOT fix yet. I want to set up a nightly build server for QS at some point so it's easier to get development builds. 
@ericw 
That was a timely patch, thanks! And now you know that it seems to work.

And now FifthElephant is happy. 
 
I'm a simple man with simple needs. 
Feature Request... 
allow ctrl+v of server/ip addresses into the menu for joining multiplayer games 
A Bug?.. 
map sm169_ijed - sky and water textures won't load, although they work fine in quakespasm. that only affects the bsp2 version of the map, the regular bsp version (sm169_ijed2) performs fine in both mark v and quakespasm.

also, i hope the compatibility with ne_ruins and other potentially edict breaking maps (arwop with its icon of sin scenario?) will be improved...

great thanks to Baker for all the work however! 
@fifth 
"ctrl+v of server/ip addresses into the menu for joining multiplayer"

In console type "connect " and then paste IP address? 
Wheeeee 
Yay, nice work, Baker.

I don't have tons of time to really give this a proper workout, but I'm checking out some of the things I previously reported, and I found some issues are still there. Search the "quoted" phrases to find my previous (more-detailed) reports on this page.

"windowed resolutions" -- text chopped off at the top in certain resolutions, like windowed 800 x 600

"mp3 soundtrack" "delay" -- describes the problem of how if you don't have a CD drive (physical or virtual) the MP3 tracks will not play, but there is no way to stop them from trying to load, because with no CD drive, Quake won't respond to "cd" commands like "cd off"

"what am I chasing?" -- whatever it is, I'm still chasing it....

"there is no bolt1" -- unless this is something from another mod? So it's un-needed in the noshadow list. Though I still think k_spike and lavaball should be in the list, since they glow and shouldn't cast shadows (looks really weird to me to see lavaballs casting shadows, when they are casting light...).

"always run" -- Not exactly a fitzquakeV issue (except defaulting it ON), since it's a standard Quake "feature" (read upthread about why it's bad).

"gamma goes lower than 0.5" and "gl_overbright_models" -- blindingly bright blends and models when at the lower gamma settings.

"cshift" -- well, the water color in Fitz is changed from the default.... Not sure, but Ring/Pent/Quad blends might also be changed from the defaults.

Of course, fog and skybox settings don't save across levels, but hey, skyalpha does save across levels, and it works right too!


And then just the "not bugs but pleeeeeease?" enhancements:


Proquake positioning for centerprints (higher on screen) so they don't block the view.

Proquake RCON protocol

And Gulliver really wants Proquake IP/Name logging thing. 
 
fog and skybox settings don't save across levels

oh god here we go 
Crash Occurring... 
on the coag3 pack. Check out ericw's map, for some reason I am getting a problem with the fact that the skybox of 16x16 is causing it. 
Thanks 
I'll see what's up with that. 
Auto FOV Adapt Behavior Is Gone In R15 
I'm wondering if this was an intentional change?

The relevant bit of the SCR_CalcRefdef source looks odd:

#define SCREEN_CORRECTION_ASPECT 1.33333f
// if (scr_fov_adapt.value)
// {
r_refdef.fov_y = CalcFovy (fov_base, r_refdef.vrect.height * SCREEN_CORRECTION_ASPECT, r_refdef.vrect.height);
r_refdef.fov_x = CalcFovy (r_refdef.fov_y, r_refdef.vrect.height, r_refdef.vrect.width);
// }
// else
// {
r_refdef.fov_x = scr_fov.value;
r_refdef.fov_y = CalcFovy (r_refdef.fov_x, r_refdef.vrect.width, r_refdef.vrect.height);
// }

With the current commenting, those last two lines will clobber the result of the previous two (which would account for the FOV no longer adapting to the aspect ratio). 
 
Revision 16 will be out soon and has wide-screen perfect and there won't be a need for a cvar.

The long version is technical, but I've always hated the widescreen correction. Short version: MH's version of widescreen correction if properly applied (really long conversation, involving status bars) --- is perfect.

But that conversation is so dreadfully boring ...

I would have release version 16 by now, except I've been combing over fine details and have a couple of more things to do ... 
Recording Demos 
Am I silly, or does Fitz Mark V behave odd for recording demo?

If do 'record blahblah' before starting a map, i'll get a 1kb junk .dem that hangs MkV if I attempt to play it.

If I start the record while in the map, it records just fine.

Feels odd to me that the old behavior of how you would record demos in older Quake engines is the one that's messed up :(

(sorry if this is an old complaint or something, I just switched to using MkV after seeing z-fighting in my Jam1 map that wasn't visible in Quakespasm) 
 
(I'm using "Revision 14: July 11, 2014", btw) 
 
I get the same thing, with the 7/13 MkV. 
 
I'll investigate that thoroughly before releasing #16.

Thanks for letting me know. 
I've Got A Mouse Issue 
with this engine. Not sure how to describe it.
When you running forward, your field of view has started to jumping upward
i got the same shit with Quakespasm engine 
@spy 
If I can understand the issue and recreate it, I can probably fix it.

There isn't a relation between field of view and the mouse. If you use the keyboard to move forward, does it happen as well?

Need more information. 
No It Is Not Related To Fov 
its related to your point of view somehow
its shakes upwards when you running
i'll try to use the keyboard to move forward and let you know 
Baker 
http://quaketastic.com/files/demos/markV-issue_dem.rar

basically when you looking beneath your feet and run, Fitzquake Mark V(and quakespasm) is always trying to centered your point of view
theres no such issue in fitz085, just watch the demos 
 
Try with a clean Quake. No configs, nothing but pak0 and pak1. I am sure that will solve it. 
@spy 
"lookspring 0" will fix? 
 
"lookspring 0" will fix?
yeah "lookspring 0" do the job, thank you!
i'm wondering though, lookspring 0/1 has no such effect to fitz
and i'm missing "m_filter 1" command 
 
lookspring defaults 0. Has to be turned on by the player.

Lookspring is a keyboarder player option.

Since mouselook defaults on in Mark V if someone decides to turn on lookspring, it works regardless of the mouse look setting. In Fitz 0.85, mouselook defaults off so turning lookspring on would automatically work.

m_filter -- with the frames per second in a modern client, m_filter is effectively on all the time with or without the setting. 
Baker 
By the way, thanks for taking the time to fix all these issues despite earlier announcements. 
 
i have an issue that the hud is always blank white, while it appears normal when I call a menu or when I shoot or take damage. Videocard is Geforce 240 
@Pulsar 
Pulsar: Revision #14 or #15 should not have issue.

Is this with a recent Mark V released in 2014?

Please let me know.

[The white HUD on some video cards was bug in July 2013 and October 2013 releases because I used a method not consistently supported by all video cards.] 
Well 
I used the d\l link from the first post of this news, but I did it recently.

the readme says it's revision #15 
Another Issue 
i'm running a mod with 1280x1024 via fitz its loads exactly 1280x1024
next i'm running the very same mod via mark5 and its loads exactly 1280x1024 too

NOW i'm running a mod using fitz again and it drops to 640x480x16 what gives?

there's no any comment(width height bpp) in the command line 
It Is Very Weird 
when i'm running quake at 1920x1080 (my desktop resolution) and switching between fitz and mark5 it doesn't drop to 640x480x16 
Tripple Post 
it seems adding vid_restart to autoexec.cfg do the job 
 
@pulsar: thanks for the info and the detail is much appreciated. I'll see what I can do.

@spy: FitzQuake 0.85 saves vid_restart at the end of the config. What 0.85 does is start up video at 640x480x16, then run the config.cfg. Mark V (and Quakespasm) read the config before video startup, so it doesn't need the vid_restart. 
@pulsar 
Can you see if this one solves the white HUD issue for you and the graphics card you have?

http://quake-1.com/docs/utils/fitzquake_mark_v_15b.zip 
Baker 
Nope, I still have the same problem. And the file size of exe-file is the same that I had. 
Pulsar 
I've successfully recreated the issue and should have it solved soon. 
Baker 
great! 
I Get 
different lighting in the jam2 maps than regular fitz? If there a reason for this?

eg The snow in mfx's map right at the start is blindingly white in mark v and looks much more natural in regular fitz.

similarly skacky's map seems to have some bright white lightmaps in spots in mark v but not in regular fitz. tronyn's map also looks a lot more bright white. 
Remove Idgamma. 
 
Otp 
tried that, there is still a difference between regular fitz and mark v on skacky's, tronyn's and mfx's maps. Not the others as far as I can tell. 
@nitin 
Mark V uses contrast for brightness, Fitz uses gamma for brightness.

In the Release #14 download zip, there are 2 exes, one named something to the effect of "hardware_gamma" and that one uses classic FitzQuake hardware gamma.

#14 with the hardware gamma version available

The future ones will have that available in the download.

(But what I have been trying to do, is factor out settings. gamma brightens, but bleaches out the textures.

The contrast option can be accessed in the hardware gamma version via typing contrast in the console.

But I don't want to add an extra slider bar for contrast ... At least I'd prefer not too ...] 
 
needs separate gamma, contrast, and brightness... for all three channels, namely red green and blue...
9 sliders ought to be enough for anyone, right?

oh, and a toggle to correct the meaning of gamma too. :s

oh, and a glsl version of it too, to get around windows' refusal to accept gamma ramps. :/ 
@baker 
thanks, that does the trick:)

I think future ones should have both versions in the zip. Although, I agree that gamma is not the best option to change brightness, nor is contrast by itself. 
Oh Yeah..., 
A simple tweak that I like to play with sometimes: add support for colors 14 and 15 
Would You Consider 
Raising the Leafs limit in maps from 32767 to a higher number, preferably in maps that are bsp2 format? 
 
Is this the 65536 leafs?

I don't see a reason I couldn't do that for BSP2. 
Whut? 
Arent those already in bsp2? 
The Exact Error Message I Get When Loading My Map In Mark V 
Host_Error: Mod_LoadLeafs: 39088 leafs exceeds limit of 32767 
BSP2 Support 
Mods like the Rubicon Rumble Pack (RRP) cannot be played with MkV right now because of the issue mentioned above.

Any chance we see a tiny update to fix all the remaining BSP2 issues which prevent us from playing latest maps? Please? With sugar on top? ;) 
In The Mean Time 
RemakeQuake Winter 2011 demo is a good BSP2 engine :) 
Yeah Great Engine. 
With model interpolation forced onto the user permanently. 
Does It? 
I hadn't noticed. I just noticed that it runs maps! And it has crazy damage feedback effects....

It also has 16:9 perspective correction on weapon models, which is nice. 
And It Comes Bundled With The Biggest Map I Ever Made 
*whistles* 
 
 
I just posted a guide over on i3d listing the changes that might be needed for RRP support: http://forums.inside3d.com/viewtopic.php?p=55221#p55221 
The RMQ Engine 
Was never intended to be a general-purpose engine. The idea behind it was to showcase the engine mods needed for RMQ, with the eventual hope that others would pick them up in their own general-purpose engines.

Expecting it to be one, then bitching about it because it's not, is kinda silly and futile. 
 
Quakespasm acquired most of the most important changes in Mark V (alpha texture support, dynamic light speed up, several others, etc.)

I think Quakespasm should be used instead of Mark V. 
 
Was never intended to be a general-purpose engine. The idea behind it was to showcase the engine mods needed for RMQ, with the eventual hope that others would pick them up in their own general-purpose engines.

Expecting it to be one, then bitching about it because it's not, is kinda silly and futile.


Hint, you gigantic dome, I was on the team before we even had a dedicated RMQ engine, so I know all this better than you do. 
 
That being said, sometime this evening I'll release an unsupported Mark V that I haven't worked on a couple months.

It includes seamless Nehahra support, a Mac build, a feature identical WinQuake renderer for both the Windows version and the Mac version, a Mac dedicated server build and probably 35 new features that I don't remember. It has corrected BSP2 support, support for skyboxes in the WinQuake build just like GL Quake, a demos menu, a maps menu, etc. If I recall it is very stable, but I wanted to re-engineer the entire engine.

I don't plan on working on it more in future -- at least the near future, but I might as well release the code and let people play around with it. And hopefully Quakespasm will acquire the best parts of it. 
Wow 
that sounds crazy! 
 
What Quakespasm is still missing for me is .vis support and the way MkV renders weapons (changing view when looking up/down + capability to adjust viewmodel angle separately). I think it can be easily implemented and hope it will find its way into the port eventually.

But Nehahra support really sounds amazing. Always hated to switch engines just for playing that timeless classic. After Romero's recent material release for Doom's 21st birthday, this is the kinda news I've been waiting for regarding Quake. ^^ 
Baker 
Sounds fantastic! 
Thanks For Ruining Rmq, Otp 
 
October 10th Build 
Windows version: http://www.quakeone.com/proquake/interims/mark_v_20141010.zip

* Nehahra Support (game nehahra -nehahra in console). fmod.dll is optional --- it must be in the nehahra folder as the engine will not honor an fmod.dll in the Quake folder because several different versions of fmod.dll exist.
* Direct3D Renderer version
* MP3 remap capability
* Bullet-proof automatic water transparency
* WinQuake renderer, it plays Nehahra too and does BSP2 like Tronyn's Something Wicked.
* Maps menu, under single player
* Demos menu, under multiplayer
* WinQuake renderer loads skyboxes
* GLQuake External texture support for sprites, all 2D graphics (in addition to , models. WinQuake renderer has sprite32 support.
* PNG screenshots
* All BSP2 fixes and the Quakespasm flickering entity fix.
* Protocol 15 serving compatibility. FitzQuake 0.85 can't actually serve a protocol 15 game.
* Supports BPJ protocol 10002, so can play the Warpspasm demos
* Fixes for Windows 8.
* External music can be turned off or resume in real time.
* Switching to a gamedir will detect the correct map for the mod if possible and doing "Single Player->New Game" will run that map. For example, if you play lunsp1, it will run lunsp1.bsp doing Single Player->New Game. Or if the mod has a map named something like "warpstart" it will load that map.

Might have APSP1 func_train fix. I'll have to dig up the source code and upload the Mac version tomorrow and likely post a couple of screenshots and update the upload .exe as I believe there is a more current stable version with additional features.

The above feature list is incomplete, but I have to dig up a feature list. It might play dz demos if dzip.exe is in the Quake folder.

[I hope I uploaded a fairly polished version, there is a chance I didn't. Mark V supports libcurl downloads but does not require the DLL and doesn't actually use it for anything because I never fully completed the Quaddicted installer I was working on :(.] 
 
[Uploaded version doesn't support playing .dz demos. Tomorrow I'll find right version. Mac suports playing dz demos too.] 
3x Post 
Here is a Nehahra screenshot. This is actually the WinQuake renderer version:

http://quake-1.com/docs/any/nehahra.png

Other features I am remembering: autodemos and autosaves during game if cheats are not being used (and probably if frames per second is 72 = standard SDA Quake rule). Auto-saves appear in the bottom 3 slots in the load game menu, autodemos would obviously appear in the demo menu. cl_autodemo 0 turns off autodemo. Autodemo and autosave will keep no more than 3 saves at any time.

Another feature: Mark V will never load a config saved by another engine and fall back to a backup copy.

Mark V *should* be totally immune to the Zerstorer and Nehahra config meddling as it uses a method similar to FTE latched cvars to revert cvars to their correct values after cutscenes and/or QuakeC or demo-playback meddling. However, since I'm not sure of the features of the version I uploaded or what I was doing with the source code at the time, can't be 100% sure.

Other features: r_lavaalpha and r_slimealpha cvars since Quakespasm was pushing for that (but doesn't seem to have the cvars in Quakespasm itself?) 
Damn ... Unfortunate 4x Post 
Enhanced coop capabilities:

http://quake-1.com/docs/any/coop_scoreboard.png

Ping scoreboard, per player scores in coop.

If Mark V is hosting a coop game and teamplay 1 is set, the engine will ensure that all connecting players have the pants color of server host to prevent self-damage.

Feature can be disabled with sv_coop_enhancements 0. 
That Feature List Looks Huge 
I had some questions though:

* Protocol 15 serving compatibility. FitzQuake 0.85 can't actually serve a protocol 15 game.

Is this true? what does fitzquake do wrong?

* Switching to a gamedir will detect the correct map for the mod if possible and doing "Single Player->New Game" will run that map. For example, if you play lunsp1, it will run lunsp1.bsp doing Single Player->New Game. Or if the mod has a map named something like "warpstart" it will load that map.

How do you detect this? Are you scanning the entities lump to find "trigger_changelevel" and looking for what map points to the other maps? Or is it like, find the map with the fewest monsters? 
I May Be The Only One... 
In response to some of the posts above, but I think the RMQ engine was, and still is a fantastic engine, it was what is now Quakespasm. But I like it over Quakespasm for a few minor reasons, and it is my engine of choice for most things. Sure it has some flaws but what engine doesn't? I'm just curious as to why there is such a strong dislike for RMQ.

I don't mean to shift the conversation from Mark V, which is what this thread is about. I applaud you Baker for releasing a big update to the engine, I intend on playing around a lot with it. 
Baker 
I am so impressed by your persistence and skill. You went from (seemingly) zero to being a full on engine developer. That's awesome!

Quaddicted installer
Oh that would be too great! Some day, some day. :) 
Texture Filtering Modes 
I have tried the new builds a bit. The Winquake version doesn't run for some reason for me at all, crashes during startup (Win 8.1 x64, Intel Core i7-4770K @ 3.5 GHz, 16GB RAM, nvidia GF 770).
The DX8 build seems fine, but when using gl_texturemode "gl_nearest_mipmap_linear", it seems that floor/wall/ceiling and some model textures (e.g. health packs) keep bilinear/trilinear filtering. Does it require additional settings now or is something broken here? 
Auto-detect Start Map 
How do you detect this? Are you scanning the entities lump to find "trigger_changelevel" and looking for what map points to the other maps? Or is it like, find the map with the fewest monsters?

I would assume something like "is the map name the same as the gamedir name?" is a good first test to make. From there I'd move to something like "is there only one map in the gamedir?", from there maybe look for a map with "start" in it's name, then finally return "start".

This is a cool idea but what I'd really also like to see is, if the start map isn't called "start", then assume that it has no skill selection halls and pop up a skill menu before loading it.

That "Levels" menu is also cool, well done Baker! 
 
Possibly nice feature: highlight (in a subtle way) all maps (files) exclusive to the specified mod directory when using the maps (dir) command..

Possibly nice feature #2 (half-joking): enable the engine to display the mod's/map's readme, so the player can look up things like the start map himself (because there's only so much auto-detection it can do). 
@metlslime 
During sign-on, FitzQuake sends a message larger than protocol 15 can handle and preventing it gets to be very complicated (client scenario, server scenario, client and server, per protocol situations). There were 2 instances in one of the net_*.c source files that weren't being handled because those functions used sizeof on the buffer. Fixing that requires a global variable. 
 
@mh/metslime --- start.bsp --> *start*.bsp <gamedir>.bsp which catch the overwhelming majority of single player releases to the point that I can't name a release this doesn't work for offhand.

@negke "highlight (in a subtle way) all maps (files) exclusive to the specified mod directory" The maps menu in this Mark V does exactly that.

@mh - if the start map isn't called "start", then assume that it has no skill selection halls and pop up a skill menu before loading it. Although not in this build, I rolled the bsp compiler into the engine and was going to have to do things like that, including constructing an "Undergate" like map in real time and devised a mechanism to take screenshots using intermission camera spots that could occur in the background.

I never finished it, though.

The bsp sources were kept in a separate folder to ensure proper separation, but rolled into the engine to ensure availability. 
@NightFright 
The DX8 build seems fine, but when using gl_texturemode "gl_nearest_mipmap_linear", it seems that floor/wall/ceiling and some model textures (e.g. health packs) keep bilinear/trilinear filtering

Not sure, I remember testing mostly only for the default settings and having to rewrite a few chunks of the MH Direct3D wrapper. It has a few (very few) weaknesses that the OpenGL version doesn't, apparently. I didn't notice that one it seems.

The DX8 version is runs on almost anything including really old Windows PCs with no Open GL drivers or a current one with bad Open GL drivers.

The Winquake version doesn't run for some reason for me at all, crashes during startup That is strange, I will attempt to see why that would be the case. 
MP3 Remap (id1/music/setmusic.cfg) 
Note: This is pretty much a literal implementation of what metslime's suggested back several months ago.

Mark V will run music/setmusic.cfg on startup. If Quake wants to play track 04, the remap will instead play sometrack.mp3 as indicated below.

This allows a single player release to have packaged mp3 music remapped and should be robust and flexible enough to be a standard.

Just include a setmusic.cfg in the music folder of the release.

Example contents:
setmusic 00 track1.mp3
setmusic 01 mytrack2.mp3
setmusic 02 somethingelse.mp3
setmusic 03 anothertrack.mp3
setmusic 04 sometrack.mp3 
Docs: Server Protocol 15 Compat, Intermission Fix 
1) Intermission Fix. Like ericw, I don't know exactly how or why the intermission fix works. Ben Jardrup's Enhanced GLQuake uses it. It works perfectly.

Mark V uses it.

http://forums.inside3d.com/viewtopic.php?f=3&t=5492

2) I documented the protocol 15 server compatibility. Coincidentally, this happened to be modelled after Enhanced GLQuake. The solution is essentially simple, but unfortunately requires numerous changes to the source code.

http://forums.inside3d.com/viewtopic.php?f=3&t=5593

In some ways, this fix doesn't matter as few people use a standard Quake engine. But for full backwards compatibility it is nice to have. 
 
@Baker, you should consider just using 'cd remap' instead of your 'setmusic' command, that is if you want consistancy with DP+FTE too. 
@spike 
In FTE/DP would "cd remap 04 sometrack.mp3" be the equivalent of what I posted above? 
About Texture Filtering In DX8 Build 
Apparently a similar issue as the one described above (#519) happened during development of Quakespasm 0.90. According to bogworth, it was related to anisotropic filtering.

Quote bogworth:
"The combination of GL_TEXTURE_MAX_ANISOTROPY_EXT with values greater than 1 and GL_NEAREST appears to have vendor-specific behaviour - in my case, GL_NEAREST is ignored." and
"The problem appears for textures that are mipmapped (eg, not models), when gl_texture_anisotropy is greater than 1 and gl_texturemode is 1, 2 or 3."

I dunno if all of this applies (probably not, as I also had models with filtering changes being ignored), but maybe it helps with detecting and eliminating the problem.

Would be great if this got fixed since the DX build seems to be the only one properly working on my system right now (Winquake crashes and the vs2008 build shows weird texture issues). 
 
aye, in FTE, if its numeric then it goes and plays track%03i.mp3, otherwise it goes and plays the named path (with the same optional prefixes as other fake-tracks).
the same as 'cd play' and 'cd loop' commands.
the only catch is that you can only remap numbered tracks, not named ones.
I'm not entirely sure on which paths that DP assumes it might be in (if any), but the rest is the same as far as I am aware (for supported file formats).

what annoys me, is that world.sounds is a float. I'm tempted to add a hack and specially parse the entity lump to read it as a string, and update the server's svc_cdtrack generation to just play that string instead somehow. numbered tracks are so old fashioned!
plus, they get in the way of map compilations.
of course, this assumes mappers would use it. 
@spike 
Ok, the text vs. numeric. I was thinking that would be required and you validated that. Well, the better compatibility with existing engines ...

Numbered tracks are what Quake expects and built into the pipeline. I think working with them sucks. I'd almost suggest a wordspawn key, but I fear a drastic proliferation of them. 
@FrightNight 
Well, I am glad the Direct X version is working for you.

Does current Quakespasm work properly for you?
What about a previous Mark V or Fitz 0.85? I'm trying to determine issue.

The current Open GL Mark V uses non-power of 2 (July 2014), uses stencil operations more (this one), varies from Fitz 0.85 by using the texture matrix instead of the mesh alterations (been that way since 2013).

The Direct X version of Mark V uses neither the texture matrix nor the Fitz 0.85 meshing alterations so the model textures will look like --- well --- JoeQuake/GLQuake/Requiem --- which are stretched and not crisp like FitzQuake.

It is done like that to support external textures for models in a straightforward way.

I had intended to revisit it in the Direct X version, but that time won't be coming soon. I don't think, at least.

I'm trying to mentally picture whether or not non-power of 2 would solve that and if the Direct3D 8 wrapper supports that. 
@NightFright, @Baker 
Would be great if this got fixed

It can't be fixed because D3D doersn't support it.

What D3D offers for filter modes is one of three options (for each of min/mip/mag):

- Point
- Linear
- Anisotropic

Various combinations of Point and Linear then correspond to the GL filter mode names, but the important thing here is that Anisotropic is also it's own filter mode, and anisotropic filtering is only enabled if you select that filter mode.

So in other words you can't combine point filtering (what GL calls nearest) with any form of anisotropic filtering.

This restriction still exists in D3D11 where the options (excluding shadow map comparison states) are:

D3D11_FILTER_MIN_MAG_MIP_POINT
D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR
D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR
D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT
D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT
D3D11_FILTER_MIN_MAG_MIP_LINEAR
D3D11_FILTER_ANISOTROPIC

Again you'll see that most of these modes correspond to the GL modes (D3D11 has a few extra ones) but that D3D11_FILTER_ANISOTROPIC is it's own mode and can't be combined with point/nearest filtering.

This isn't the kind of engine bug that you can fix in code, it's a limitation of the D3D specification. That's a difference between GL and D3D - GL keeps things loose and floppy and allows implementation-specific wriggle-room, D3D doesn't.

I'm trying to mentally picture whether or not non-power of 2 would solve that and if the Direct3D 8 wrapper supports that.

Non-power-of-two is the ideal solution but I don't remember if the wrapper supports it. D3D8 does support non-power-of-two textures so it would be easy enough to add a pseudo-extension check and code up the loader (be careful when reducing miplevels for non-power-of-two textures though). 
 
Thanks MH. I think npot solves the problem in a way that won't interfere with external textures, when I rebuild I'll tell the wrapper to say it has npot texture support. 
 
(be careful when reducing miplevels for non-power-of-two textures though).

Whoa ... what's this? Is there a size limitation of the mip textures of some sort? 
What Works (for Me) 
I had been using Mk V r15 before on the same machine without problems. Quakespasm 0.90 also works.

Strangely enough, the WinQuake build works on my Samsung NP-NC10 netbook (Intel Atom N270, 1.6 GHz, 2GB RAM).

The sad thing is that right now, I am stuck with DX8 since the OpenGL build (vs2008, I assume) doesn't work, either. When I load the start map for example, huge chunks of textures are missing. In the "Welcome to Quake" hall with the three skill selection gateways, it cuts away pretty much half of the screen. Never had any problem like this. 
@Baker 
Whoa ... what's this? Is there a size limitation of the mip textures of some sort?

No, no limit. You just need to be aware that the standard for both GL and D3D specifies round-down (so for a dimension of, say, 63, the next miplevel would become 31, not 32).

A simple way is to check "if ((width & 1) || (height & 1))" for a miplevel, then send it through GL_ResampleTexture instead of GL_MipMap. IIRC the stock Fitz code does some funky stuff with miplevel reduction (reducing each dimension separately) so you'll have some fun there.

I believe that the latest Quakespasm has non-power-of-two support so it'll probably be useful to cross-check with that.

For D3D9 the check is "if (!(d3d_DeviceCaps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL) && !(d3d_DeviceCaps.TextureCaps & D3DPTEXTURECAPS_POW2))" for full non-conditional support, and if memory serves it's the same in 8, so you can report that GL_ARB_texture_non_power_of_two is supported if they're met (everything else is done outside of the wrapper).

Conditional support means that the address mode must be clamp and you can't use mipmaps which is broadly equivalent to GL_ARB_texture_rectangle (although the GL extension is weird in that it uses integer texcoords). You'll want full non-conditional support in the general case, although conditional might be OK for MDLs (provided you're still doing the Fitz thing of not mipmapping them).

D3D should also not suffer from crap like "we'll say we support non-power-of-two textures but will emulate everything in software if you try to actually use them". 
OpenGL Issue 
Here is a screenshot of what the game looks like for me with the vs2008 build. Skyboxes, liquids and teleport surfaces are totally screwed.

http://i.imgur.com/Q3KPRbA.jpg 
 
That gives me something useful to work with.

I use a stencil operation to draw the sky. All my computers even my Mac are ATI/Intel, apparently Nvidia does not like. 
 
Why not just draw the sky, clear the depth buffer, and move on? I understand it's probably an optimization thing, but ... 
 
r_mirroralpha support. Has to draw the sky twice. 
 
Also sky needs to draw on top of other things depending on the map 
Like Jam2_mfx.. 
 
@NightFright 
In Mark V r15, what happens if you do r_shadows 1 (do the shadows look right?)? Mark V uses the stencil for shadows and has since 2013.

Although stencil operations seem the prime suspect to the Open GL compatibility, it might not be the case. 
R_shadows 1 In Mk V R15 
I was using r15 just before I switched to the new builds of yours. No problems there at all.

Proof (screen taken with r15):
http://i.imgur.com/LiAxUXb.jpg 
 
That's helpful. I'm sure I'll figure it out, I see from my sky drawing function I had some varying opinions about the drawing, which since it worked fine on my graphics card I have since forgotten ...

Maybe if I reflect on this a bit, I can come up with a resolution.

void Sky_Stencil_Draw (void)
{
int i;
msurface_t *s;
texture_t *t;

// Baker: Direct3D doesn't have stencil at this time
if (!renderer.gl_stencilbits || vid.direct3d)
return;

// Baker: No sky to draw
if (!level.sky /*|| !frame.has_sky*/)
return;

// Baker: Where drawn (doesn't z-fail), replace with 1
// in the stencil buffer.
eglStencilFunc (GL_ALWAYS, 1, ~0 );
eglStencilOp (GL_KEEP, GL_KEEP, GL_REPLACE);
eglEnable (GL_STENCIL_TEST);

// Baker: A no draw pass of the sky brushes, does not even
// write to depth buffer (maybe it should?) that writes
// our stencil overlay.

eglColorMask (0,0,0,0);
// eglDepthMask (0); // Don't write depth to buffer
eglDisable (GL_TEXTURE_2D);
for (i=0 ; i<cl.worldmodel->numtextures ; i++)
{
t = cl.worldmodel->textures[i];

if (!t || !t->texturechain || !(t->texturechain->flags & SURF_DRAWSKY))
continue;

for (s = t->texturechain; s; s = s->texturechain)
// if (!s->culled)
{
DrawGLPoly (s->polys, 0); // Not here.
rs_brushpasses++;
}
}
eglEnable (GL_TEXTURE_2D);
eglColorMask (1,1,1,1);
// eglDepthMask (1);

// Baker: Keep any pixels where stencil wasn't drawn
// for this drawing pass.
eglStencilOp( GL_KEEP, GL_KEEP, GL_KEEP );
eglStencilFunc( GL_EQUAL, 1, ~0 );

// Baker: Now draw the stencil
Sky_DrawSky ();

// Turn it off
eglDisable (GL_STENCIL_TEST);
eglClear (GL_STENCIL_BUFFER_BIT);
 
Transparent textures on worldbrushes arent handled correct. This screenshot is not what it looks like ingame, there you actually see the pink color.

When doing this with func_illu/wall whatever, all is good. 
 
Transparent textures on worldbrushes arent handled correct. This screenshot is not what it looks like ingame, there you actually see the pink color.

When doing this with func_illu/wall whatever, all is good. 
This Screenshot 
I´m So Stupid 
ignore me as usual.. 
FYI 
QS 0.90 draws this "correct"
http://imgur.com/JYx8dDG 
 
Will fix.

I was going to remove alpha masked (fence) texture support on world brushes because it is technically wrong and leads to mapper newbie pain (a mapping newbie guy always says "I see void").

Then you guys made a map using it and then Quakespasm copied the Mark V implementation.

So now my "correction" becomes "bug".

Anyway, when I revisit I will "re-add" that back in. 
 
Its all cool Baker, i was trying to not overuse func_illusionaries for performance reasons, but yeah, its wrong to do it like this i know..
Thanks for your precious work anyway, it is very appreciated! 
Imo 
I would just make them func_wall/func_illusionary on new maps, and consider the fences-as-world-geometry support in qs deprecated / not recommended for future use.

arguably I shouldn't have added that to qs 0.90, because you'll get HOMs/a view in to the void if the brush touches the rest of the world, plus vis might cull stuff behind the fence texture because it thinks they are opaque. 
Oops, Redundant Post 
Anyways, sorry for this Baker, I take responsibility for spreading the mis-feature :P

mfx, it should be safe to go crazy with a lot of func_illusionary, unless you're measuring a performance hit.

In glquake/fitzquake the brushmodel drawing does a bunch of setup per-poly of the model, so you want to avoid a single very complex func_wall (this is fixed in qs 0.90 though, and probably engines with more advanced renderers). But on the other hand, I'd expect drawing a lot of simple func_walls/illusionaries should be fairly fast on all engines. They're vis-culled too, so even having several hundred spread around the map should be fine. (famous last words.. ) 
Yup 
the visculling is another thing that prevents this usage. My nooby brains was thinking "when i keep this brushes small and "freefloating" and use them like decals for wall deco and such, that would be cool for blending textures..." 
Func_wall/func_illusionary 
An option - if you want to have better performance but still let people go nuts on them - is to merge them into the world model.

As a general rule this is safe to do. Inline brush models only appear once each, are already in the worldmodel surfaces/textures/etc lumps, and if they have the same animation frame as the world, and origin and angles of {0|0|0}, you can add them to the world model texture chains quite safely.

For id1 maps there is no measurable performance gain, but for cases where using lots of them is a bottleneck, it works well. The only cost you'll pay is in overdraw, but you can set up the chains so that the inlines are drawn first and then you'll get early-Z rejection on the world polys.

The exception of course is when someone post-processes a compiled BSP to allow sharing of surfaces between inlines and inlines, or inlines and the world. But that would be evil and we'll assume nobody does that, right?

(As an aside: the way stock Fitz handles texture chains doesn't permit this optimization. I can't remember right now if it also sorts it's chains back-to-front (like stock GLQuake does) rather than front-to-back (which would also run faster).) 
Another Opinion(ated) Mapper 
If the user wants to make bad content with a feature, let them. No engine coder ever blocked the use of, say, fog 1.

Protecting the newbs seems like a strange reason to limit the feature as well. Why not disable map hacks while you're about it, just in case.

mh's solution sounds good, basically handling the process better. Just disabling stuff seems like prohibition.

Yes, my last map did have a couple of wafter thin parts of void clipping caused by this issue, but it was my fault :) 
Mh 
thanks for the tips, will play with the merging brush models into the world sometime.

Fitz walks through the surfaces in the order of the cl.worldmodel->nodes array - there's no R_RecursiveWorldNode - then reverses the order per-texture from the chaining. Not sure if cl.worldmodel->nodes has any meaningful order to it.

ijed, that's a good point. 
Yeah... 
the idea was that iterating a list is much better on CPU than walking a tree, and the order wasn't that important. This idea was taken from darkplaces at the time.

I have no idea if it's the correct tradeoff with current hardware. If GPU bound I guess front to back would be best. 
Fitz Walks Through The Surfaces... 
Fitz walks through the surfaces in the order of the cl.worldmodel->nodes array

The big problem is that it only regenerates texture chains when the PVS changes. Merging brush models really requires texture chains to be regenerated each frame.

It's actually quite trivial to write a GL renderer that runs twice as fast as Fitz on ID1 maps (much more on big maps), but much of that is down to batching rather than BSP tree traversal (this isn't including dynamic lighting which is it's own separate problem).

So adding some good batching and accepting the CPU overhead of building the chains each frame is a reasonable tradeoff that you're going to come out on the good side of on any hardware (unless you're totally fillrate or ROP bound, which the original 1996 hardware was, and therefore none of this was a problem back then), and then you get the ability to merge as a bonus. 
Happy New Bump 
Any progress on fixing the vs2008/OpenGL build of the latest snapshot? I'd hate going back to r15 after all the improvements which have been applied since then. 
Source 
any chance you can post the source for that last snapshot Baker? (no rush, just curious to have a look at it) 
 
@ericw -- of course! I'm deep in the middle of possibly finally handling some frustrating math calculations that have been owning me all week at the moment, will upload first opportunity tomorrow.

@nightfright -- Don't want to promise a timeframe at the moment. At same time, I do want to get a revision out. 
 
@eric w -- source 
Thanks! 
 
 
Also: There needs to be an SDK folder above the source code with this. Contains DirectX, Curl, a very heavily modified "FDFramework" (the Mac build was derived from Fruitz of Dojo), some headers and some things moved out of the engine folder.

(More complex than I prefer ...) 
Crash On Quickload F9 
Getting Quake Error
R_Renderview: NULL worldmodel
When pressing F9 to quickload after previously saving with F6.
Fitzquake mark V 0.94 
 
try again without any mods 
Fitz With .mp3 Files Etc 
Any idea how to get this to work?
I just can't it working in FQ, but it seems to work fine in quakespasm. 
Quickload Crash 
Can't work out why this is happening. Workaround: put the following in autoexec.cfg:

bind "F6" "echo Quicksave...; wait; save s0 "
bind "F9" "menu_load "

So the top save slot is the quicksave one. 
Bizarre... 
can you try this:
in the console, type load quick.sav

the 'load' command can load any save by filename and quicksave just saves to a quick.sav file. There should be no difference between loading a normal save and loading a quicksave via quickload. A crash there would indicate something up with quickload code? Or the order in which things are done with quickload vs load?? 
Happens With V0.94 For Me Too 
but it seems to be fixed in v0.99, maybe try that version?
http://www.celephais.net/board/view_thread.php?id=60831&start=507

necros: "load quick" in the console causes the same crash. For some reason loading via the menu works. 
 
Maybe it disconnects first. 
Quickload 
Thanks, 0.99 vs2008 version works. The winquake version wouldn't start. (Win7 Pro x64 i7-4770 integrated graphics) 
Autoexec.cfg 
If I have an autoexec.cfg then the sky is drawn over the world. Anyone else having this issue?

https://www.dropbox.com/s/kxkl7j9mrlj22rh/bug.jpg?dl=0

I thought it was a setting in the file but it seems that any entry will cause the problem. 
Nb 
I tried to get around this by having a file called 1.cfg (the only setting being r_shadows 1), I typed exec 1.cfg and I get the same sky drawing error. 
Ignore Me 
I just went back and re-read the thread and realised there's a bug with shadows in the latest build...

What a weird coincidence that this was the only setting I decided to keep. Losing my marbles. 
 
The Nehahra Fog doesn't work in Mark V. I remember Directq used to have a problem with this. 
Nehahra Fog ... 
Nehahra is an interesting thing, especially the fog. Here is what I did ...

1) DPNehahra is the official engine for Nehahra.
2) Because dpnehahra is the official engine, I view how dpnehahra displays a map as correct and only way it should be displayed.

Load up the map in question in dpnehahra:

A) If dpnehahra shows fog on the map, I have a bug.
B) If dpnehahra does NOT show fog, I am complying to the official presentation.

JoeQuake and derivatives present the maps in a different way than DPNehahra.

But JoeQuake didn't exist when Nehahra was released and I view any differences in map presentation between JoeQuake and DPNehahra to be JoeQuake presenting the maps wrong.

Case in point, there is a DP Nehahra expansion map with a skybox and non-standard fog keys.

1) If I load up the map in DPNehahra, I see the sky but no fog.
2) If I load up the map in JoeQuake, I see fog but no sky.

I had to pick which way to do it, I picked the DPNehahra way. 
Who Needs A Fog Anyway? 
the fog is a lesser issue 
 
But DPnehehra has the fog in Neh2m5, but Mark V does not 
 
Since you are playing Nehahra, if you happen to know where any of the smoke emitters are, let me know. I spent a lot of time trying to get the sprite 32 support perfect and such, but the maps are so large and I couldn't find a smoke emitter. 
Fullbright Brushes (_glow Or _luma) And Translucency 
Does Mark V support external fullbright maps for brushes, like Darkplaces do? What do I have to do? I already have some xxx.tga and xxx_glow.tga in my ID1/textures directory. Mark V reads the texture, but the _glow thing doesn't seem to work. How do I fullbright a brush surface?

Also, is there support for alpha translucency? How do I do it? 
 
Fitzquake supports glow textures, so i would assume it also works in Mark V, but maybe there's something that changed. 
 
Here is a hideous screenshot demonstrating _glow textures against a test folder:

http://quakeone.com/proquake/media/sfloor4_2_glow.png

It uses the following 2 textures that happen to be .pcx format

http://quakeone.com/proquake/media/sfloor4_2.pcx

http://quakeone.com/proquake/media/sfloor4_2_glow.pcx 
 
Alpha translucency is not a texture feature in any Quake engine except DarkPlaces because it is a recipe for cheating (FTE ... ezQuake ... any NQ engine etc do not support them.). Somewhere earlier in this thread there is a discussion involving Spike, Sock and myself and others on that topic.

In fact, if you having trouble with textures I would recommend removing the alpha channels.

I think the alpha channels are ignored in FitzQuake (not a common topic, so from memory I can't recall.)

If you want things like glass in a map, you have to set the entity alpha of the brush (for instance alpha 0.5.

Both Mark V and Quakespasm support alpha masked (a pure mask like a fence where each pixel is either fully transparent or fully opaque -- there is no translucency) and the texture in the map must begin with a { and Quake color #255 is the mask color.) 
 
The current Mark V beta, unlike Quakespasm, only supports alpha masked { fence-like textures on entities. Quakespasm supports them on the world model, but this shows void (areas outside the map) but Rubicon Rumble needed that because of a visibility issue that has since been resolved (i.e. masked textures really should not be on anything except entities). 
 
Looks like we're double-posting here and at QuakeOne. My bad :( Hope it's all useful.

Anyway, I just downloaded the two textures you posted to ID1/textures folder. Here is another hideous screenshot for you:
http://i3.photobucket.com/albums/y80/amurad/Games/scrn_zps1e3wcnqi.jpg

It's your texture pointer showing Mark V is loading sfloor4_2.pcx, but not sfloor4_2_glow.pcx.

Are you sure we're running the same version? Mine is 05:49:41 Jul 13 2014 
 
And here is the fence-like alpha blended working like a charm (on the background, sfloor4_2 fullbright not working):

http://i3.photobucket.com/albums/y80/amurad/Games/scrn2_zps9l2ffkid.jpg 
Alpha Transparent 
The screenshot above is a world brush, not an entity. So your engine alpha blends world geometry as well.

It's showing void where the brush touches the floor, wich makes perfect sense: the world brush subdivided the floor and the surface it hides was removed by the bsp compiler. Thing is, you can see thru this world brush, so you can see the hole the removed surface left.

I just tied the brush to a func_wall entity and recompiled the map. No void showing anymore. I'm gonna use it! 
 
I'm using the October 10 beta build which is known to have issues with drawing the sky on Nvidia cards due to a stencil operation and may have a couple of other things like that (which is why it was marked as a beta). The download is buried in the thread.

Words: It is unfortunate that work alpha gets used for everything but I do want to point out that no blending is occurring for "fence textures". Blending means it is combining 2 colors, fence textures are an alpha mask and isn't blending. 
Baker 
sorry if I've it's been mentioned and I haven't noticed - is there any support (or planned support ;) )for Alpha masks on external textures?

Thanks for all your work on this so far, it's awesome. 
@starbuck 
I don't remember if there is external texture support for the masked textures.

I would guess "no", but I can't remember because normally this is something I would do.

I think a roadblock was external textures for masked textures and the possibility of the masked texture having a fullbright component.

That is a complicated scenario to draw for external textures because fullbright is an additive blend but should only affect the masked area.

Which is quite a headache to devise the drawing for when almost no one even uses external textures, let alone masked textures. 
 
for alpha masked fence textures and fullbrights, you could process it at load time:

for the main texture, keep track of which pixels are < 0.666 alpha. On the glow map, set those pixels to pure black. This way the glowmap won't be visible on any screen pixels where the main texture is masked out.

I'm not sure if this will still cause tiny bleed overs where the glow slightly overhangs the hard edge of the mask, but it could be tweaked, maybe by raising the alpha threshold or something.

But at least this doesn't affect render code at all. 
External Alpha Mask 
In that screenshot I posted above, that transparent wall with yellow balls is a brush with an external TGA type 2 with an alpha channel, where white makes a pixel visible and anything else makes it invisible. So I would say yes, Mark V seem to support external alpha masked textures.

Tried the three EXE of the October beta. The WinQuake version wouldn't show external stuff anyway. The other two don't even have the r_texprefix_fence cvar :o

Please Baker, don't rip the transparency off the engine, I need it! Didn't follow the discussion, but a security solution can't be to cripple the engine. 
 
r_texprefix_fence cvar is gone because since Quakespasm adopted fence textures ported from Mark V with exclusively the prefix "{", it is no longer an option to pick a prefix. This is consistent with Half-Life and The Remake Quake engine and FTEQW. [Yeah, the WinQuake build doesn't seem to work]. 
 
@metslime. No doubt that work and I likely devised something like it.

I think the situation that was aggravating is the possibility of the regular texture and the glow texture replacement not being the same size and factoring in possible rescaling in the (rare) absence of power of 2 textures.

With normal _glow textures, this isn't a factor since there isn't a dependent relationship between the regular texture and the _glow one. 
 
baker: good point about the different resolutions. While it's still solvable, it's clearly more work to correctly sample one texture and lookup the correct alpha value for the other one. 
Fences+fullbrights 
fullbrights have the same issues that lightmaps have in a single-tmu environment.
you need to use glDepthFunc(GL_EQUAL) for both your lightmap and your fullbrights, which prevents either additional pass from breaking anything.

with multitexture you just have to ensure your fullbrights don't harm the fragment alpha, so that your alphatest can still discard the fragment correctly.

if you're doing glsl-less bumpmapping and need to use the fragment alpha for some dotproduct values, you can just use glColorMask and specify the masked depth as an initial pass. this of course means that the fence and diffusemap don't have to have any correlation to each other whatsoever, if you're doing weird effects or whatever.

alpha-test has a specfic cut-off point somewhere between 1 and 0. this means that even internal fullbrights can bleed if you don't handle them properly (half-life didn't do fullbrights at all).

if it was blended then you'd have a point, along with other quirks.
there are still problems with coplanar surfaces, of course, but there's nothing you can really do about those. 
 
GL_EQUAL sounds like a good solution for multipass rendering.

And alpha shouldn't be an issue with fullbrights as fitzquake uses additive blending starting in 0.85. 
Tested The October 2014 Build 
Just to keep track, I posted my test with October 2014 build at Quakeone. No fullbrights showing. Here is the test:

https://drive.google.com/open?id=0B3Ww0W8WFfq7SDdxMmxweVotRUU&authuser=0 
 
@adib

Assume the problem is solved for the moment.

I have been procrastinating on polishing up the Mark V beta mostly because there are 4 or 5 tedious issues that are unrewarding to work through.

But I think I've waiting long enough.

Within a week, there will be a polished Mark V non-beta I will ensure this inconsistency is gone. 
Fullbrights 
I'm of the opinion that the equivalent of glBlendEquation (GL_MAX) and glBlendFunc (GL_ONE, GL_ONE) is the most appropriate way of handling fullbrights.

The reason why is that there are areas in maps where (diffuse * light * 2) is actually brighter than the fullbright on it's own. This shouldn't be too hard to conceptualize; it's going to happen if the light is brighter than 0.5 (or 128 on a 0 to 255 scale).

The result is that you get a weird transition between normally lit texels and fullbright texels (and the brighter the light the weirder the transition).

This is easily visible on e.g the right-hand lit arrow leading into the e1 entrance in the Start map, and while using a GL_MAX blend doesn't replicate software Quake with precise fidelity, it is much more visually pleasing. (Other examples of the same concept include some lights in Quake which saturate even with 2x overbrighting, particularly if you add dynamics (although some even rarer areas don't even need that); not such a big problem for FQ as it doesn't create coloured dynamics, but very observable if you add them to it).

As a bonus you don't have to remove the fullbright texels from the source image using this method.

Unfortunately neither GL_COMBINE modes nor D3D SetTextureStageState support a maximum blend, so the only ways to do it are to multipass it or do it in a shader. 
@Baker 
I asked you so many questions and forgot to thank you for this awesome work. Hope I could help someway.

Here is another one: does Mark V load external sky textures? There is a sky_mb1.pcx (already tried TGA and PNG as well) in my textures folder, but the engine goes on loading the internal BSP texture. How can I make it load the external one? 
 
Just skybox support.

None of the FitzQuake/Quakespasm family of engines loads actual replacements for the 256x128 scrolling sky textures. DarkPlaces is the only engine I know offering the ability to replace the scrolling sky with a hi-res version.

[FitzQuake/Quakespasm don't + won't support PNG, just like Q3 doesn't support PNG.] 
 
Extra info: PNG serves no purpose for replacement textures because when the set is compressed into a .zip file, it gets compressed. The only thing PNG does is require the engine to increase map load times by decompressing the textures every single time. 
 
TGA already have alpha channel, so screw PNG :)
Your skybox works neat, just tested it. So, screw iD's moving PCX. 
Regarding My Issue (posts #514/533) 
I checked the vs2008 build in the 20141010 package again and noticed that liquids look fine again on my nvidia card if you use r_oldwater "1".

Dunno if that helps with solving the problem - still waiting and hoping for a fixed release. 
 
Interesting, thanks for info. Could be involved in this somehow. 
Mark V Beta 2 
Anyone with sky issue (NVidia only) will still have sky issue. Still working on that as I do not have a Nvidia card available. And does not yet have the DX improvements.

http://quakeone.com/proquake/interims/mark_v_20150410.zip

This is a much nicer release than the previous one, but more to go.

The WinQuake version should work and these are proper builds. The glow textures should work.

New feature: Select text using SHIFT in the console and copy, cut and paste with CTRL+X, CTRL+V, CTRL+C, SHIFT+INS, SHIFT+DEL

More versions will follow as I eliminate the known issues. Next one might not be until Monday or Tuesday. 
@NightFright Re:nvidia 
How does the sky look with r_oldwater 0 and r_oldwater 1?

Does the sky look correct with r_oldwater 1?
Does the sky look wrong with r_oldwater 0? 
Nightfright 
also do you get any issues with "r_oldwater 0" with Fiitzquake 0.85 or Quakespasm? 
 
@ericw -- any oldwater problems in Mark V wouldn't be inherited from Fitz, but something I introduced.

r_oldwater 0 as you no doubt know requires a bit of hand-holding (in the code) because it is ingenious evil render-to-texture trick. Likely, video mode change isn't updating it or I'm clearing (or not clearing) a buffer at the wrong time or not updating the texture at the right time.

Probably a simple oversight on my part.

Source for Beta 2 which is easy to build (compiles out of the box with a key press) for Visual Studio 2008 or CodeBlocks (or Visual Studio 6 with service packs). The WinQuake build does use assembly language for speed and the project files compile those easy.

(The structure of the source is a bit more complex than I prefer, partially due to Nehahra support and Direct3D support.) 
 
@ericw -- any oldwater problems in Mark V wouldn't be inherited from Fitz, but something I introduced.

r_oldwater 0 as you no doubt know requires a bit of hand-holding (in the code) because it is ingenious evil render-to-texture trick. Likely, video mode change isn't updating it or I'm clearing (or not clearing) a buffer at the wrong time or not updating the texture at the right time.

Probably a simple oversight on my part.

Source for Beta 2 which is easy to build (compiles out of the box with a key press) for Visual Studio 2008 or CodeBlocks (or Visual Studio 6 with service packs). The WinQuake build does use assembly language for speed and the project files compile those easy.

(The structure of the source is a bit more complex than I prefer, partially due to Nehahra support and Direct3D support.) 
Nvidia GF GTX 770 And New Build 
With the new build (using mark_v.exe), behavior is exactly the same as with the previous version.

Using r_oldwater "1" only fixes liquids and teleporters, but NOT skies. Setting the variable to 0 breaks liquids, too (white surfaces).

Nothing has changed about my hardware setup since post #514, just using newer nvidia driver (v347.52). I have another system with an older nvidia card running on Windows 7 x64 (4GB RAM) which doesn't have show any issues at all, btw. 
Config.cfg File 
If it helps, here is my current config.cfg. Maybe there is another variable in it which I might try changing.

Config.cfg (3KB) 
 
I'd bet the farm on this being the graphics driver.

And since you provided the version #, maybe I have a shot in addressing it.

(I've seen DarkPlaces users mention certain driver #s being bad several times. I didn't expect this kind of thing to enter my world of "classic Quake appearance engines" but if this driver # can cause the problem, maybe I can target it. Nvidia used to have the reputation of providing stability and ATI was the shoddy/incompatible vendor. I don't claim to know much about graphics card drivers but things I have read makes it sound like they traded places.) 
@NightFright 
In the gl version, type gl_clear 1

Does this fix the sky issue?

[The r_oldwater 0 issue is separate deal, I have plan to fix.] 
Gl_clear 
Setting this through console unfortunately doesn't have any visible effect, sky on start map still looks like in post #533.

My driver settings in nvidia control panel:

Anisotropic Filtering: Application-controlled
Antialiasing - FXAA: Off
Antialiasing - Setting: Application-controlled
Antialiasiang - Gamma correction: On
Antialiasing Mode: Application-controlled
Antialiasing Transparency: Off
Refresh Rate: Application-controlled
CUDA-GPUs: All
DSR Factors: Off
DSR Smoothing: Off
Triple Buffering: Off
Energy Saving Mode: Adaptive
Max amount of prerendered frames: Use settings of 3D application
Shader cache: On
Texture Filtering: Anisotropic Pattern Optimization: Off
Texture Filtering - Negative LOD Bias: Allow
Texture Filtering Quality: High Quality
Texture Filtering - Trilinear Optimization: On
Threaded Optimization: Auto
SSAO: Off
Vertical Sync: Use settings of 3D application
Prerendered VR frames: 1

My monitor refresh rate is at 120 Hz, if that matters at all. 
 
Mark V Beta 3

r_oldwater 0 issue gone. Was trying to resize warp image buffer before valid screen width/height determined. 
One Problem Less! 
Fix confirmed, works. ^^ Now all that's left to do is looking up to the sky!

Btw, before you release the final version, is there any chance to add a menu toggle between gl_nearest_mipmap_linear ("classic") and gl_linear_mipmap_linear ("smooth") texture filtering? Currently, you still need to put this into autoexec.cfg if you prefer the "pixel look". 
 
My pc is saying it's a virus. :D 
 
I just turned off the virus protection to download it. When I turned the virus protection on again the files were deleted.

Windows 8 doesn't like your program there Baker! 
If It's A Virus, Then A Good One :P 
I think that's rather an issue with your AV. :P I am using Panda Free AV on Win 8.1 here without issues. 
 
http://quakeone.com/proquake/interims/mark_v_20150410_without_dx8.zip

The DX8 version (but not the GL version and not the WinQuake version)) somehow triggers Microsoft (and only Microsoft's) malware detection as some old Trojan from 2006.

61 other virus scanners say the dx8 version is not malware.

Go figure ...

https://www.virustotal.com/en/url/b4f88f7ed8a4eac7b57dc4804229437d9a8a4de6dbd75e4b80ee6f853f399fcf/analysis/1428796006/ 
 
No silly virus warnings.

Looks like the skybox problem (drawing the sky in front of geometry) and the external mp3's not playing bugs are both still not fixed.

Also, had to start from a clean install as something in my config is crashing the program back to desktop... 
 
Water is working now with "r_oldwater 0". I still can't reproduce any problem with the sky. Also tried the config.cfg NightFright posted.

Here is my gl_info:
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce GT 650M/PCIe/SSE2
GL_VERSION: 4.5.0 NVIDIA 347.52

We have the same driver version, so it could be a 6xx series card vs 7xx issue. 
 
external mp3s not playing ... please provide more information.

Note: Mark V doesn't support mp3s playing from inside a pak. 
 
@ericw I see the driver # is same as NightFright's --- so isn't the driver. Hmmm. GeForce 7 series. 
 
Reupdated contents of Beta 3 zip with a interpolation bug fixed for the WinQuake build. 
Hardware 
My guess is also that it must be something with the graphics card model. As I wrote above, these builds work fine on an older system with an nvidia card running on the same driver. I doubt it has anything to do with the OS. Also as a reminder: Mark V before 20141010 is still running fine with the Geforce 700 series. So whatever got changed in the meantime is something those cards apparently don't like. 
Baker, No More Information To Give On Mp3's 
sorry, but mp3's don't play. They're not inside of a pak. I'm sure they used to work once upon a time. To be honest it has been broke in a lot of builds for me, I know I'm not the only person because I talked to Sock about it (it's one of the reasons he uses quakespasm over fitz)

I still use fitz regardless of this but it'd be nice to hear music again. 
 
map start;
r_shadows 1; wait; r_shadows 0

sky is now b0rked, despite switching r_shadows back to 0. 
It Requires A Reset To Fix 
You can't just switch it off...

You could try vid_reset though? 
@Baker 
in GL_DrawAliasShadow, change the arguments of the following functions to match the values given here:
eglStencilFunc(GL_EQUAL,0,~0);
eglClearStencil(0);

sky bug now fixed.

actually, that clearstencil call becomes redundant as 0 is the default anyway and nothing else changes it.
also, consider only clearing the stencil buffer once per frame for entity shadows, so that you don't get tripple-whammys with gibs etc.
using ~0 instead of 2 means that the shadows don't glitch until you have (typically) 256 overlaps, rather than merely 3. which is important if you're doing what I just recommended. 
 
Excellent, thanks Spike. 
 
I should have another revision sometime this evening. @fifth -- I'll see if I can reproduce that on a Windows 8 machine. 
MP3 
Just for the record: I don't have issues with MP3 playback on Win 8.1. My issues are purely about graphics. Curious to see if next build will be fully usable for me. 
Could Be A Driver Issue On My Side... 
I have never updated them myself... for the record quakespasm uses .ogg files which work fine. 
@fifth Re: Music 
I'm not sure why music isn't working for you, but I'll give the old college try to fix, and I have feeling it's gonna get solved.

Re: ogg and stuff

My understanding is that Quakespasm uses software rendering for MP3 music playback rendering.

It should be very reliable, but software rendering is slow and is quite a CPU hit. Mark V uses API that provide hardware acceleration.

An my opinion on music works like this: there is MP3 and nothing else and here's why:

1) The MP3 patents are expiring
2) Hardware API on every platform from Windwos to Mac to mobile platforms is optimized for MP3.
3) ogg is "free software" and I support free software, but the last decoding patent for MP3 expires in September 2015.

I think ogg was a great idea, but I don't think ogg has a rational use this in world in the year 2015.

Spirit and I used to have debates over video codecs and I favored free codecs while he supported the ones that worked well (H.264). Spirit won!

I see no place in this world for ogg.

/One opinion and I'm often wrong about these kinds of things. 
 
Oh, either I did not post a lot about how much I tried to prefer free video codecs or you forgot. I just gave up at some point. Maybe we talked after that. I can even spell Ptalarbvorm...

Ogg beats MP3 quality-wise. Opus would be even better. There should be nice libraries for all the Xiph stuff, including FLAC. 
Mp3 Vs Ogg 
I'm glad to see you're gonna tinker and hopefully fix mp3 support. As for the debate I don't know too much about the differences in the file format, although I did assume that .ogg was better quality even though the file sizes were often bigger (I doubt that matters too much these days). 
Every Time I'm Trying To Run That Newest Build 
it crashes

so i've just deleted my cfg files and started from scratch
i've noticed that my name is 'player' now
ok. i've changed that back to spy and the game has crashed
what gives?
and now changing the 'name' gives me a crush
typing the 'color' command and trying to switch it gives me a crush too

the latest stable version that i run without a troubles was the build from 07.13.14 
2015 April 13 Beta 
Windows OpenGL | WinQuake
Mac OS X OpenGL | WinQuake

Mac version runs on my Mac which has Mavericks. I imagine it will run on 10.8 and Yosemite, maybe 10.7 as well.

New:
1) Should have sky glitch fixed which appears on certain graphics cards. Million thanks to Spike! But need confirmation it is fixed as I don't have right video card to experience issue.

2) Should render alpha masked textures with lightmaps correctly whether world model or brush models (aka Rubicon Rumble). Thanks ericw/Quakespasm for little tweaks in their source!

3) Spy's issue should be fixed ;-) I was hoping to get this update out before that little gremlin got noticed.

4) The levels menu having a couple of blank spots at end sometimes = fixed.

Getting far closer to a properly polished build, but more work to do ... thanks for feedbacks! 
 
Not Sure If This Related 
i'm running the mod(frogbot) that uses the crazy numbers from 'samelevel' cvar. Something like samelevel 627085, you know.

The new build(s) somehow borked that 'samelevel' cvar.
as it shows like
"samelevel" is "9.0112e+006" in the console 
 
That's how C represents the value of a large floating point number.

The value should be ok.

But I sure don't want it to display like that, isn't very human friendly. 
 
@spy: Fixed the display of large floating-point cvars. Above Windows download updated. 
Manual Saves 
I will test this tonight with my GF 770. On an nvidia GF 9500 GT, it's OK already, but as I said earlier, there haven't been any issues with that one before.

Noticed one thing with savegames, not sure if it's an error from my side or not. When I save a game (not quicksave, regular save through menu option), the savegame won't appear in the list when trying to load it. Quickload with F9 works, though. 
 
Everything Fixed (for Me) 
Game looks fine now on my Geforce GTX 770, also savegames work as intended with the latest build.

Good job and thanks a lot, Baker and Spike! ^^ 
Still Crashes To Me 
http://pastebin.com/wHmhB85d
theres my autoexec.cfg and config.cfg 
Most Issues Fixed For Me 
barring music of course.

Looking to see what audio driver is the most up-to-date for my surface pro is turning into a nightmare. 
@spy 
Raw thoughts: the special characters in your name show as Russian or Greek or something in pastebin to me.

In the age of Unicode and UTF-8, if you manually did that in a text editor (as opposed to Quake writing the file) the text editor maybe have done strange things to your name and converted it to UTF-8 --- characters above 127 converted to escape sequences and such.

In that case, pasting the file to pastebin doesn't actually convey what the binary contents of your config really are.

You'd probably need to upload your config.cfg and autoexec.cfg to Quaketastic to get it to me as it really is in binary form on your hard drive.

Meanwhile, I'll play with the rest of the contents and try to imagine what could be causing the problem. 
@spy 
Yay! I get the crash using your autoexec.cfg! 
Music 
tried updating my sound drivers to get the music to work... quake stopped working for a bit so I rolled back. Good times. 
No MP3 Music 
for me at least, mp3 not playing seems to be caused by not having a CD drive. If I move the "if (!enabled) return;" from the top of CDAudio_Update to after the if (using_directshow) bit, the mp3s play. 
@spy 
If I remove the "map start" in the middle of the autoexec.cfg, I no longer have the problem.

However, obviously there is no reason why you shouldn't be able to change the map in the middle of the autoexec.cfg so I'll see what is up with that. 
 
ericw --- that makes sense! Great catch, thanks! 
 
fifth -- hopefully ericw's observation will allow me to get the mp3 going for you. 
I Wonder... 
I have a surface pro but it doesn't have a cd drive. 
@Baker - Almost There 
markv_dx8.exe "_glow" external mask works!

markv.exe ... doesn't

What's up with the GL version? 
+mlook Crashes 
Strangely enough, +mlook on console crashes both GL and DX versions. 
I'm Gonna Stop Now, Promise 
Ok,

mark_v.exe --> renders "{" external texture transparency;

mark_v_dx8.exe --> renders external texture fullbright mask;

Each executable has one feature, none has both. 
 
+mlook shouldn't crash in the most recent upload.

http://quakeone.com/proquake/interims/mark_v_20150413_windows.zip

If it still does, let me know.

@Baker - Almost There

Tell me about it! 2 operating systems, 3 renderers, 4 programming environments, 25 new features --- and I'm about 8 small issues away from surviving the tale.

(+1 exceptional deed from Spike, and ericw saving me from over-thinking Fifth's mp3 issue)

Well, I'll get those glow textures working in the GL build.

Tomorrow may have most of the remaining issues cleaned up. 
Baker 
thanks for your response.


Strangely enough, +mlook on console crashes both GL and DX versions.
It seems you have find the bug!


i've removed +mlook string from my autoexec.cfg file and now i can launch Quake properly w/o a crush 
Opinion About Upcoming Release 
The only two features I am still missing now are:
- Music playback from within PAKs
- Menu toggle for texture filtering (see #617)

Both are totally optional, though (especially the first one - mostly cosmetic to get rid of all the MP3s in subdirs).

What impresses me most about this new version is the capability to run Nehahra - finally, we have a one-in-all solution that can launch pretty much everything. Once this is finalized, it'll hopefully last for a while before updates are needed again.

One way or the other, Mk V remains my favorite Quake port, and Baker's recent efforts just made sure it'll stay like that. 
Baker 
thanks a lot for your efforts, will try the new version soon. 
@Baker 
Nop... +mlook still crashes, no fullbrights...

Did you run the sfloor4_2 test and saw these fullbrights? Is it working on your system? 
 
Praise Satan. 
Mark V Beta 6 
Windows OpenGL | WinQuake | DX8

1) Should have _glow textures working right in both GL and DX8 builds. Alpha masked textures are "functional" in the DX8 build, but not as nice as the GL build (due to the DX8 wrapper not supporting texture combine).
2) MP3 should work on machines without a CD drive.
3) +command issue (like +mlook) should be resolved once and for all.

New feature: Auto-complete from nothing by pressing CTRL+space. Sometimes you don't even know the first letter of map or something you want to auto-complete.

Examples:
1) Type "bind " and then press CTRL + space.
2) Type "map " and then press CTRL + space.
3) Type "gl_texturemode " then press CTRL + space. (*)

Mostly thought of this for NightFright ... who asked for gl_texturemode to be added to a menu somewhere, and I while I don't think obscure stuff belongs in a menu, it sure is nicer if you can more easily complete it in the console even without knowing any of the possible values.

The CTRL + SPACE thing is, of course, in addition to the support for CTRL+X/CTRL+V/CTRL+C/SHIFT+INS/SHIFT+DEL and using shift to select in the console.

If you find a bug, please let me know!

I can't think of any offhand aside from a WinQuake build skybox bug reported @ inside3d by mk and I can't reproduce it to fix it. 
Finetuning Suggestions 
That thing with gl_texturemode is a compromise I can probably live with, thanks a lot for this. ^^

Other remaining things I noticed - dunno if you changed that in the more recent beta builds again or not:

- r_shadows now needs to be in autoexec.cfg in order to be used permanently. Was nicer when it was stored in the config file (as a permanent toggle). If people play with shadows, my bet is they wanna keep them.

- Would be nice if cl_autodemo was set to 0 by default. I am sure not everybody wants to record demos out of the box.

- Is there a way to toggle autosaves? While it's a really nice feature, it'd be nice to let users decide whether they want it or not.

None of these are bugs, rather feature requests for your consideration. 
 
I tried to make autosaves and autodemos subtle, however they aren't subtle enough and "get in the way" more than I find acceptable.

The need for autosave is a bit dubious, but spawned from the frustration of playing one of the map jam maps from last year about 2/3 way through and dying without saving.

Both features only ever maintain a history of 3 and use about no resources.

That being said, I need to put them in the "background" more. No one wants a pointless autosave of the start map in the save menu, for example.

Demos: Autodemos are more important than autosave. Demos are the one thing everyone wishes they recorded, but never do. But like autosaves, no one wants to see 3 random autodemos heading the demos menu.

I'm about as conservative about features as they come, so you know if I'm complaining about a feature I coded, I intend to remedy.

Only one kind of polished engine exists: the one that does things you want but keeps it out of your face and let's you focus on playing the game. ;-)

Shadows

Shadows are a tricky topic and so is what should save to config.

I haven't thought too much recently about what saves to config, but I'm leaning towards everything except server vars (temp1, samelevel, deathmatch, coop, noexit + friends).

I also have a plan to make it so Mark V will tranparently interact with a non-Mark V config.cfg as to not wipe, for instance, DarkPlaces settings. Of course, likewise this plan doesn't have any need of other engines behaving similarly.

You can already see part of this plan in action. The WinQuake version of Mark V has all the standard WinQuake stuff and the OpenGL Mark V has all the GL stuff. Yet, you can run each engine back-to-back and change stuff and never be the worse for wear and no settings ever get lost. 
Got One 
Just noticed: In your latest build, the save bug is back. You cannot see saved games in the load game list. 
Quickload Without Quicksave 
Something else:
If you press F9 for quickload when there is no quicksave present in the game/mod folder, game freezes (should rather give some error like "no quicksave available"). 
Music Still Doesn't Work For Me 
Sorry!

The implementation in both Dark Places and QuakeSpasm work though. 
Also 
map autocomplete should always be able to autocomplete from the id1 directory IMO regardless of which game directory you're in. 
_glow GL Version 
No, the 2015-04-14 mark_v.exe doesn't render the _glow fullbrights. Only dx8_mark_v.exe does. Not here at work, not at home, not in my notebook. This time I tried other gl_texturemode settings to see if anything changes. Nothing. It's a mistery. 
 
"Not here at work, not at home, not in my notebook"

Bug reports by Dr Seuss?? 
??? 
Yes, I know I should be working instead of using my workstation to test Mark V. Just trying to make sure it's not my system. Or maybe it is, some configuration Baker is using and I'm not. 
Feature Request 
Support for the RRP maps would be cool. I wrote some notes on the required limits here: http://forums.inside3d.com/viewtopic.php?f=1&t=5554&start=15#p55221

Looks like the remaining ones to raise in MarkV are just:
MAX_CHANNELS, MAX_VISEDICTS, MAX_MAP_LEAFS

I did a quick test, and the maps all load with those three raised.

Bug: entering "v_cshift" in the console with less than four arguments crashes the engine.

Also if you do RRP support, make sure to get the AllocBlock change in my linked post above, it's a 3-line change and telefragged.bsp goes from loading in about 10s to 1s. 
 
@nightfright --- excellent catch there about the behavior of trying to load missing save game file. It never told the map loading sequence to go away! Fixed!

http://quakeone.com/proquake/interims/mark_v_20150414b_windows.zip

@fifth
1) When the mp3 music doesn't play, what does it say in the console? Usually it says something like "Track: music/track02.mp3 not found" or "Current music track: music/track04.mp3". And does it say "external music ON" when you go to the Options menu?

I want to verify those aren't problems.

What I will do is add some very precise messages for the mp3 startup sequence to indicate exactly why it will not start into the next build so I can get this working for you.

@adib
2) Could you do the following:
a) load your map that should have the _glow texture working
b) type "textures" in the console
c) type "copy"

And paste the whole log in the thread at QuakeOne you made: http://quakeone.com/forums/quake-help/quake-clients/11456-fitzquake-mark-v-fullbrights.html

@fifth re: map autocomplete ... I agree about the map auto-completing from id1 even if gamedir.


@nightfrightre: saves not in load game menu. What are the names of saves not showing the load game menu? Type "folder" and there should be saves like s0.sav and s1.sav sitting around? 
Baker... Mp3 Stuff 
It *does* recognise that a file is there (even in the older versions) as it does say "Current music track: music/track04.mp3"...

I thought it was a driver issue and now the sound on my pc is broke (only will play sounds if headphones are plugged in!) 
Also External Music Is On 
I tried both off and on to see if that fixes it, no dice. 
@adib 
Can you zip up your textures and the map and upload the thing? There could be something non-obvious going on here like an alpha channel or the lack of one, or even the draw order. I still need to log so I can see what your machine has. 
 
ericw's vcshift observation fixed --- http://quakeone.com/proquake/interims/mark_v_20150414c_windows.zip --- I rewired the command buffer to be more precise and to support multiple command buffers. Clearly, I need to completely mimick id1 with that and set missing arg pointers to an empty string or something.

@ericw -- thanks for the reminder and pointing out the limits. I had eyed the alloc block enhancement in Quakespasm a few times, but hadn't thought about it lately. 
Manual Saves 
Trying with your very latest build on my PC at home, there seem to be no issues with manual saves after all. I will verify this with the machine I use at work (where I had this glitch) tomorrow.

I intend to intensify testing this build with a complete Nehahra playthrough next to see if there are any major issues. I've been waiting for a long time for being able to play this addon with an up-to-date port. 
 
@fifth -- what is your volume and bgmvolume cvars set to?

In Mark V, if you turn down the volume, it also turns down the background music volume.

So if you have volume 0, the background music won't be making any noise.

I'm trying to emulate a no cd-drive scenario and the MP3 music is still playing. 
@Baker 
There is a link to my test here:

http://quakeone.com/forums/quake-help/quake-clients/11456-fitzquake-mark-v-fullbrights.html#post156965

Just unzip it somewhere and replace the execs with your latest ones.

I posted my console right below, at QuakeOne.

Cheers. 
@Baker - Haaa! 
dx8_mark_v.exe is loading the glow:

(...)
128 x 128 maps/dm3.bsp:tech05_1
16 x 128 maps/dm3.bsp:tech04_3
128 x 128 textures/sfloor4_2_glow (R)
128 x 128 textures/sfloor4_2 (R)
64 x 64 maps/dm3.bsp:sfloor1_2
(...)

mark_v.exe is not:

128 x 128 maps/dm3.bsp:tech05_1
16 x 128 maps/dm3.bsp:tech04_3
128 x 128 textures/sfloor4_2 (R)
64 x 64 maps/dm3.bsp:sfloor1_2

;) 
 
Check the filename ...

The current download, http://quakeone.com/proquake/interims/mark_v_20150414c_windows.zip, has the names are mark_v_c.exe and dx8_mark_v_c.exe

I want to be sure we are working with the right version. 
 
Something weird, though.

As I look through your texture list you posted at QuakeOne, I see this:

64 x 64 maps/dm3.bsp:sfloor4_4_glow
64 x 64 maps/dm3.bsp:sfloor4_4
64 x 64 maps/dm3.bsp:comp1_7
64 x 64 maps/dm3.bsp:comp1_3
64 x 64 maps/dm3.bsp:comp1_6_glow

Now the sfloor4_2_glow isn't there.

But I notice the other _glow textures are there.

I'm trying to think what circumstance could cause that particular texture to not load, but all the other _glow textures would load.

This is very inconsistent. 
 
However, only textures with an (R) next to them have been replaced with an external texture. 
 
Check to ensure that the exe name is, in fact, mark_v_c.exe and dx8_mark_v_c.exe. 
@adib 
Here is pretty much the same zip you gave me but which only the current Mark V gl executable in it but includes the other needed files.

Download that, unzip and double click the mark_v_c.exe and type "map dm3" in the console.

http://quakeone.com/proquake/interims/adib.zip 
YES! 
It works!

Sorry, I was running the Beta 6 from #667, not this latest. Both GL and DX versions are showing transparency and fullbrights.

Actually, DX version darkens the transparent parts of a "{" texture a little. But GL version is perfect and it's enough for me.

About what you say at #688, the glows are inside dm3.bsp, not external at the /textures folder:

64 x 64 maps/dm3.bsp:sfloor4_4_glow

Don't know how they got there, though, since iD doesn't _glow their textures. Maybe it's a texture generated in memory by your code to fullbright iD's stock textures.

Anyway, thanks for the attention and congrats for this engine. You have some great software here. 
 
I'm happy to see it is working for you now, that's the important part!

Now, if I can get MP3 working on Fifth's computer, all the known true "bugs" are resolved.

And then I can focus on tidy-ups like observations above about autosaves, map completion and such and rounding out the feature set for Rubicon Rumble support. 
 
Here's a bug report with the latest bundle of stuff. I didn't notice any issues with mark_v_c.exe, but mark_v_winquake_c.exe crashes and raises the "Mark V has stopped working" dialog if I set it to fullscreen 1080p (my monitor native resolution). Fullscreen 720p works though.

Let me know if you want any info or other tests from me. 
 
Interesting. Looks like one of the hard limits of vertical resolution built into the software renderer is being hit.

The crash is easy enough to reproduce. 
So Far So Good 
Savegames definitely fixed. Looks like it was an issue with the April 13 build only, then.

Regarding raising limits to play most recent custom map releases: I am definitely supporting the idea that it should be possible to play any map currently available (hopefully also future ones) without requiring additional launch parameters. That's something that should definitely be in the final release.

Since everything works fine for me now, I'll stress-test the latest build with a few old and very recent mods to see if there is any odd behavior. I am almost finished with a full playthrough of all the vanilla Quake episodes and found no reason to complain so far. 
Transparent Water 
When viewing teleporter surfaces through transparent water, the teleporters appear unfiltered, i.e. without the water layer effect.

To illustrate the effect, check this screenshot.

Using latest Mk V snapshot with following water settings:
gl_subdivide_size 16
r_oldwater 0
r_lavaalpha 0.8
r_slimealpha 0.7
r_wateralpha 0.6
r_waterquality 32
r_waterripple 3
r_waterwarp 1


Using .vis files to achieve water transparency (inside a PAK file). 
Teleports 
That looks more like bad depth sorting for alpha surfaces than anything else. 
 
new build and its predecessors -condebug is not working (qconsole.log) it remains empty

when i'm typing developer 1 the game crashes

can't run the travail pak. But it run just fine on my working PC

it seems the show_clock command doesnt work either (at least wnen DM mode is enable) it shows everytime despite enable/disable state
personally i don't like the position of the clock too. The only two(off four) of the scoreboard leaders are visible. 
 
Beta 7 - Windows Open GL | DX 8 | WinQuake
Source

1) Changed scr_clock to allow never drawing the clock even in deathmatch as an option. scr_clock 0 (never), scr_clock -1 (dm only, default), scr_clock 1 (always). If the clock is off in DM, will draw all 4 player slots. If the clock is on in DM will draw 2 player slots.

2) -condebug and -condebug + developer 1 are fixed. Thanks to spy for pointing this out.

3) Rewired the command buffer system to handle unexpected or uncoded arguments in the classic way that Quake handled them. My original plan was to audit every command in Quake, but I don't see an effective way to do that.

4) Increased 3 remaining limits for Rubicon Rumble that ericw says will make it playable. Have not implemented lightmap loading speed up. MAX_ENT_LEAFS was already 32 and already handles brushes in tons of visleafs about the same as Quakespasm (per MH from several months ago)

5) sv_autosave defaults off and doesn't save to config. Obviously needs 1 engine restart to clear. 
@nightfright Re: Water + Tele 
FitzQuake 0.85 draws all "liquid" surfaces in a single pass.

But I guess now that some "liquids" like water might be transparent and some "liquids" like teleporters or lava might not be ... the rendering needs a slight tweak.

Adjusted liquids to draw in 2 passes:
1) 1st pass: solid pass like teleporters
2) 2nd pass: alpha pass like r_wateralpha 0.5

Should render like how you would expect it.

Update: Teleporter + water rendering improved - Windows version
Source (may be 5-10 mins before I have it uploaded) 
Sweet 
can confirm all of the RRP maps load with the latest build 
 
@ericw -- do you happen to know the names of any of those "bad lightmap" 64-bit maps from last year? I want to experience one of those first hand.

(I can't do this with my Win32 build. But I'm hoping it crops up on the Mac build which is 64-bit.) 
Yep 
jam2_mfx is a good one, just turn right from the start position and check for diagonal stripes to the right of the arch, there should be none. I posted some screenshots of that one and the fix as well on i3d: http://forums.inside3d.com/viewtopic.php?p=53977#p53977

Another is mfxsp17, just go straight ahead from the start position and check the wall panel behind the crate. It shouldn't have a black triangle in the upper left corner, here is a screenshot with the bug: https://www.dropbox.com/s/ey8htwsz37wdux9/mark_v_0000.png?dl=0 
Also 
Both of the above mfx maps are fixed with the change in CalcSurfaceExtents.


This is another bug on jam3_ericw:
http://forums.inside3d.com/viewtopic.php?f=3&t=5620

I didn't do the best job explaining it, but in the "reference rendering" (winquake.exe from id, fitzquake085.exe) the zombie is solid black.

unmodified 64-bit builds will change that particular zombie to be lit up. With the change I gave in RecursiveLightPoint, rendering will be corrected back to black again. 
Some Pending Checks From My Side 
Rendering issue with transparent liquids fixed (using build from post #701).

Some minor stuff I noticed:
- On PNG screenshots (NOT ingame), the statusbar gets screwed (kinda white) if you change its transparency (scr_sbaralpha).
- Centered messages (such as the ones you get when you are about to enter one of the vanilla Quake episode selection chambers) sometimes have weird copper arrows/triangles at the end of each line. Will provide screenshot later, currently dunno how to reliably reproduce.

Played through the first Nehahra episode without any problems until now. Will keep you updated about my progress. (BTW, forgot how hard that addon is, even with nomonsters 1.)

Back in February/March 2014, I also had a Mk V playthrough with several mods and encountered some problems there. Will check if they still exist with a recent build:

Rapture
Freezes in "Castle Rapture", but managed to continue by ignoring the knights at the beginning

Soul of Evil
In the "Morbid Manse" (soe2m5), Mk V crashed many times after obtaining the gold key and approaching the fitting door. Continuation possible by skipping the problematic area with noclip.

The Altar of Storms
Game crashed whenever a succubus tried to resurrect a corpse. Only workaround: Kill any succubus before engaging any other enemy 
Beta 8 
Windows OpenGL | DX8 | WinQuake
Source

Changes: GL version wasn't polyblending powerup shift rights. Shadows tweak targeting Warpspasm. Aesthetic auto-complete and startdemos changes. Demo rewind visual oddity with weapon fixed. 
 
@nightfright

Your post made me think and he's what I did: I reenabled autosaves but they do not show in the save game menu ever.

If you get a crash in any map for any mod, grab all the auto-saves and the most recent autodemo and zip them ;-)

The nice thing about autosaves is they are available when you least expect to need them!

Mark V cycles auto-saves in a rather logical fashion so they should be spaced out a couple of minutes apart. 
 
re: PNG shots and alpha channel

I reupdated the upload for beta 8 and it strips out the alpha channel. Let me know if that fixes the png shots. 
Centered Messages 
Here is the thing with the "copper arrows" I have been talking about earlier.

No clue where these are coming from, but I know they don't belong there... :P 
 
Zip up a demo of it -- or the autodemo. I tried to recreate it. I'm very curious. I should be able to reproduce it by watching the demo. 
NightFright 
Why is your HUD so misshapen? 
Demos And Savegames For "arrow Issue" 
Fair enough, here are some demo files and savegames:

Mk V centered msg issue (120 KB)

I just recorded the part after my last quicksave, right before the message appears. Mind that I updated the Mk V a few times while playing this episode and kept saving over it. However, I also had this issue already right after starting a new game.

Regarding my HUD:
I see nothing wrong with it. I made it transparent and rescaled it a bit. ^^ 
 
Ha! Loading the save game makes it happen. And it displays in the demo.

This is the best weird bug report ever because I can reproduce it.

And what a nicely formatted bug. It conscientiously displays the arrows in a very considerate way that is pleasing and flows well with the text.

I'll have time to examine probably this evening sometime (small chance I won't be able to do this this evening). But this will be fun to unravel.

My best guess: something about the saving and loading of the save game files. But we will find out! 
 
Like I said, it can be you reach this spot in E4M7 and you don't encounter any issue like this at all. Then again, it's possible that the episode selection messages on the start map already look like this. Well, at least you seem to have fun with it. xD

Other than this, my full Quake playthrough turned out completely fine with the latest build(s). Now on to some of the mods I listed above. 
 
It appears a fix I may have acquired from another engine (not any of the ones discussed these days) in the load game procedure may be the origin.

Save games is fine. Load games with newlines within quotes adds a "bronze arrow". 
 
The strength of that modification was that it would be resistant to special characters in the save game files doing screwy things.

One possibility is there is another piece to this modification I missed and failed to implement it. (Another possibility is that the other engine had this weakness, but I have difficulty believing that.) 
Ne_ruins Crash 
Altar of Storms (ne_ruins):
Game STILL crashes when a succubus resurrects any mob. Additionally, game only runs if you use -heapsize command (I used -heapsize 512000, and even then it still gives you some console errors).

Demo and savegame for ne_ruins crash (46.5 MB)

Rapture:
"Castle Rapture" map checks out fine on test playthrough.

Soul of Evil:
soe2m5 doesn't cash when approaching Gold Key door with the key.

Hope I'm not giving you too many headaches, but I really love Mk V and hope to contribute to a flawless release. 
@baker 
that bronze arrow wouldn't happen to be a \r would it?

"message" "first line\r
secondline"
hurrah for dos-format text files.
(quake's \r support is non-standard anyway)

its stuff like this that annoys me:
"wad" "foo.wad;c:\noonar\"
kaboom. :s
typically coupled with:
"message" "my wonderful map\nsorry about the bugs"
nrnnrnagh! now my hud is going to bug out.
"message" "and now mr bond
...
you die"
AWERUIWEHWEHF!!! you just totally screwed up my parsing! DIE YOU RETARDED BUGGY MAP/SAVED GAME!

there's no way to cope with this properly, you can only use hacks and assumptions. 
It's An \n 
 
Sound Playback 
Another issue: sound.

Got this while playing the first mission of "Scourge of Armagon".

Needless to say, I am not using any sound mods. 
 
Hope I'm not giving you too many headaches

Not at all! I want Mark V to work great.

I added sounded warnings from another engine and apparently the sound warnings. Apparently those should be for developer 1 only.

re: newlines

I'll just use the same assumptions that Fitz 0.85 uses and if someone has special characters in the save, that's just too bad.

ne_ruins is known to have unusual resource requirements. 
Beta 9 
Beta 9 - Windows Open GL | DX 8 | WinQuake

1) Extra .wav warning messages only print if developer 1.
2) New lines are saved in same games the same way as FitzQuake 0.85 instead of writing binary. Stops the "bronze arrows". 
Sound Issue 
I think I should have elaborated on the sound problem a bit more. The thing is that those sounds are actually not played back. And that is bad because it affects stuff like weapons, e.g. the laser gun. The gun remains silent when fired. Among other sound sources. That sucks, so I guess more needs to be done than hiding the messages... :P 
 
I play Hipnotic and those sounds play for me and they do so without error or anything.

Where did you get your hipnotic from? CD? Steam?

I'm trying to think of how you could be having this problem and I'm not?

Cross checking against FitzQuake 0.85, it looks like those warnings print in Fitz 0.85 and the sounds shouldn't play.

What does FitzQuake 0.85 do?

I want to get this solved! 
Hipnotic Source 
I never owned Quake or any of its mission packs on Steam. My PAK comes straight from an original disk dating back to 1997. However, I dunno if the Steam version used a different .wav format. I don't remember having that issue with Mk V r15.

Regarding ne_ruins:
I am OK with adding parameters, but the reproducable crash with succubi resurrections sucks. 
 
Nice to see this engine still being actively worked on, I think you've added a ton of useful features. I did come across some possible bugs though. OS is Win 7 64 bit, GPU is AMD 6870, driver version 4.12.

1. Demo rewind/fast-forward controls don't appear to work with any of the recent builds from the last few days. Thought it might be something with my PC or config, so I tested an old build I had from July 31 2012, and the controls worked fine. This was tested when using the playdemo command as suggested in post 84 of this thread.

2. 'Give' commands used multiple times as part of an alias or chained together with semi-colon separators don't seem to work. For example, the following alias -

alias giveall "impulse 9; wait; wait; wait; wait; give h 999; give a 999; give c 999; give s 999; give n 999; give r 999"

- will only perform the impulse 9 function and nothing beyond it. This alias works in most other engines I tested. I tried using "give 3; give 4; give 5" etc instead, but that didn't work either, even when entered in the console rather than executed via an alias. Other commands and cvars chained with semi-colons did work; eg 'sensitivity 99; volume 0.8; r_drawviewmodel 0' or 'unbind enter; toggleconsole'.

3. Another weird behaviour was what happened when using the 'give q1' etc commands for runes. Try the following in order:

a) impulse 9
b) give q1 (or any rune)
c) impulse 9

On my PC, the 'give q1' command results in all weapons except the one currently active being stripped, and using impulse 9 again will only give back the rocket launcher and lightning gun.

4. Not sure if it's a bug or intended behaviour, but the gamma and contrast cvars operate within a more limited range than other engines. Usually I'd use a gamma value of 1.3, but unlike FitzQuake and Quakespasm, Mark V doesn't seem to permit gamma exceeding a value of 1, leaving the game looking excessively bright on my monitor.

Also, is it intended behaviour that vid_hardwaregamma 1 permits use of both gamma and contrast cvars, whereas a value of 0 only permits access to contrast?

5. I can confirm the presence of the WinQuake crash when switching to 1920x1080.

I hope you don't mind if I make a few feature requests as well, though I know you're currently working on polishing up what you currently have rather than adding anything new.

1. The text editing features in-console are terrific and this is something I always miss when using non-Source engine games, but would it be possible to add the common ctrl shortcuts such as ctrl+left/rightarrow, ctrl+z, ctrl+a, ctrl+shift+left/rightarrow?

2. The 'apropos' command from DarkPlaces and FTE that lets you search for any console commands containing the specified string, perhaps renamed to something more intuitive like 'find'. I think this would fit in nicely with the kind of usability features Mark V specialises in.

3. Again from Darkplaces and FTE, a 'true lightning' cvar, that stops the lightning gun's beam from becoming detached from the gun when looking or moving around.

4. From DirectQuake and FTE, separate cvars for each of the screen tinting effects (pickup flash, damage flash, quad damage etc).

I have a few others but that's probably enough for now. Let me know if you need more info about my PC or config when investigating those bugs. 
 
@nightfright --- I'm committed to getting your problems with hipnotic and ne_ruins solved. I'll do some thinking and investigation.

@THERAILMCCOY

1) Demo rewind. Works, uses arrows keys now instead of pgup/pgdn. A Macbook Pro doesn't have PGUP or PGDN and since both Qrack and JoeQuake use the arrow keys for those functions, I decided to reluctantly change those keys to be more multi-platform friendly.

2) vid_hardwaregamma 0 --- I don't currently have gamma implemented for that, only contrast.

3) WinQuake vertical resolution > 900 = crash. Yeah, hard limit of renderer. Will work in future versions via scaling.

4) would it be possible to add the common ctrl shortcuts such as ctrl+left/rightarrow, ctrl+z, ctrl+a, ctrl+shift+left/rightarrow? Sounds reasonable ;-)

5) Give stuff. Will investigate and fix if needed. 
About SoA Sound Issue 
Baker, please disregard my report about broken SoA sounds. I checked again and realized I had a custom PAK in my MP1 folder with resampled sound files after all.

It has nothing to do with your port - after removing that file, everything works fine. My apologies for the confusion! 
PNG Screenshots / Nehahra 
Unfortunately, transparent statusbars still cause visual glitches on PNG screenshots.

That screen was taken in the level "Sacred Trinity" of Nehahra. It seems that none of the three keys there you have to collect to open the exit gate are textured. I don't remember if it was like that from the beginning or it's a glitch with the renderer.

So far, Nehahra playthrough progresses well. I can live without the fog effects. Unfortunately, the game only works properly with music if you place the files within a "nehahra" subdir inside of the Quake folder. I usually have all my mods in an "addons" folder, so the links are normally like "-game addons/nehahra". That works with launchers like MiniQL, but looks like Mk V won't find fmod.dll if you don't have the Nehahra folder where it expects it to be. Game crashes if you try anything else.
You also need to have the music files separately in the nehahra/mods folder (inside a PAK won't work, guess it's the same as with MP3s), but that's OK.

Curious what will happen once I reach Nehahra. JoeQuake crashed pretty badly after defeating the boss when running out of edicts or something with all the gibs flying all over the place... 
Thank You Baker 
the latest build is running like charm
and the mention issues have gone, thats nice 
 
Probably a false alarm, but FWIW Baker, MSE claims that the Beta 9 zip is infested with "TrojanDropper:Win32/SpamThru.gen!A". 
Beta 10 
Windows OpenGL + WinQuake

(didn't include the DirectX 8 build because because it flags Microsoft's malware detection for some reason ...)

Changes:
1) Fixed "give bug" pointed out by therailmccoy.
2) Fine tuned timedemo, playdemo and start demos transition handling (zzzzzz, but I want it to be "right").
3) Change to how warp textures and console scaling changes take effect. Not very interesting but laying the groundwork for adding scaling to the WinQuake version.
4) Some other fine tuning.

Next update is likely to have:
a) Scaling solution for WinQuake vertical resolution > 900 +/-.
b) The extra keys therailmccoy likes that are in Source engines (ctrl + a, etc.)
c) Rework to give especially for the things that only Mark V lets you give yourself like keys and runes. Now that I have auto-complete cryptic names like Q1 for sigils and KS for silver key need to go. Will have names like "give silverkey" and you can either auto-complete from the 'S' or press CTRL+SPACE to see the valid ones. And somehow letting user know they can remove the silverkey/goldkey/rune1-4 using same command.
d) Attempt to solve PNG screenshot too white with sbar alpha for NightFright.
e) Mark V does play DZip demos. You have to have dzip.exe in your Quake folder. Next update is likely to not require dzip.exe at all and just be built-in. The SpeedDemosArchive has 1000s of speedruns in .dz format.
f) Maybe cut/paste/shift select for all text fields in the game.
g) Quakespasm allocblock lightmap speedmap.
h) Quakespasm lightmap precision refinements, but I want to try to have the problem first. 
Cool Stuff 
Regarding h), it should be easy to reproduce on the Mac build, I was able to with the recent Mac build you posted.

Also, if you want, you should be able to reproduce the issue in Visual Studio as well with the "/arch:sse2" flag. IIRC this will still make a 32-bit exe, but will require a Pentium 4 or better. Info on that flag: https://msdn.microsoft.com/en-us/library/7t5yh4fd.aspx 
 
I was able to with the recent Mac build you posted Sounds like when I boot up that Mac that'll be easy then (most of past attempts failed because the screenshots of the issue had no name and I looked at a few mapjams and didn't see issue ... was frustrating). The BSP compiler actually does the calcs using doubles so your fix is a natural extension of what Q engines should be doing already.

General note: When I was looking at Quakespasm's render adjustments, something bumped my memory of MH's expression "DrawSequentialPoly must die" (from a few year's back) ... and I find it a bit onerous to have to maintain 2 copies of the drawing code (one for world, one for brush models) when they are essentially the same aside from .alpha.

JoeQuake and FuhQuake (predecessor to ezQuake), for instance have had DrawSequentialPoly gone for a long, long time.

Note #2: I wish I knew an easy way to have WinQuake use vid_vsync. That uses a wgl function on Windows. I could make WinQuake use OpenGL only for buffer swapping, but then exposes WinQuake on Windows to bad OpenGL driver issues. 
@Baker 
ditch mgl so that you can use directdraw directly.
use directdraw's vsync stuff, then you won't need to copy textures twice nor suffer from missing gl drivers. 
 
I wasn't aware DirectDraw had vsync somewhere in the API, although I'm not using mgl nor DirectDraw but rather just BitBlt/StretchBlt.

[I copy the buffer using BitBlt on Windows derived from what initially started as MH's pure API WinQuake and still has some of that left. The Mac WinQuake renders to texture in OpenGL via proxy texture and draws the texture to the entire window.] 
 
The link above for the updated package should be http://quakeone.com/proquake/interims/mark_v_20150419_windows.zip 
Yeah 
The impetus for getting rid of DrawSequentialPoly in qs was ijed's RRP map telefragged.bsp... The first main room, after you leave the entrance room and go through a corridor, has several large brush models in the PVS (a train outside, and moving bridges, inside). I was getting something like 17 fps on my laptop (while not a gaming laptop, high-end enough that it should breeze through anything quake. i.e. i7 quad, geforce 650gt).

Profiling showed 90% of rendering time in that room was in DrawSequentialPoly, and most of that is doing gl state changes, because the brush model surfaces aren't sorted by texture. So if the brush model uses several textures, and has a couple hundred faces, you end up doing: "bind texture A, draw surf, bind B, draw surf, bind A, draw, bind B,.. Etc.."

In fitzquake's renderer it's a little more awkward to merge brush model and world drawing than in plain GLQuake, because of how fitz sorts the world surfaces by texture when the PVS changes, but that sorting persists across several frames. So initially I tried to have each brush model clear the texture chains, then chain each surface in the brush model, but this broke the world drawing, because the world wasn't re-chained every frame.

What I ended up doing is making two sets of texture chains, one for the world that can persist across several frames, and one for the brush models that's cleared every time a brush model is drawn. It's a bit convoluted, but it works well, and is simple than maintaining two copies of the drawing code (and faster!). (Side note: I've thought of reverting QS to use a GLQuake style R_DrawRecursiveWorld that regenerates the world texture chains every frame. Based on some comments from mh it may be a bit faster because surfaces are sorted front-to-back, and it would remove the complexity of two sets of texture chains. However the current method works fine so it's not a high priority.)

The other nice thing is, that refactoring paved the way to using a VBO to store the world and brush model (which is isolated to just one drawing function), but it's certainly not necessary to use VBO's to get a good performance boost from eliminating DrawSequentialPoly, at least in cases like ijed's map that make heavy use of brush models. 
Nehahra Crash 
Unfortunately, Mk V currently fails at the very same spot as JoeQuake does when playing Nehahra:

In "Nehahra's Den", after you kill Nehahra and all the gibs start flying with the exit lift descending, game crashes with following error:

1032 byte packet exceeds standard limit of 1024
host_error: ed_alloc: no free edicts (max_edicts: 512)


Here are some savegames to check (no autodemo this time, sorry). The quicksave will bring you to the time right before Nehahra goes down, just keep shooting at it and see what happens. 
 
I'll take a look at that and resolve. 
 
Pleased to hear the additional text editing shortcuts might make it in soon. =)

It's an excellent idea to have more intuitive names for give-able items along with autocomplete; might it be worth adding every possible item, so Biosuit, Ring of Shadows etc? Possibly Nehahra/Quoth items too if running those mods.

Btw, the 'give' issue is indeed fixed for commands chained with semi-colons, but giving runes still has the problems I described before.

I also noticed that 'pak help' and 'zip help' commands will result in a crash. 
@railmccoy 
Gamma range

Extended to the limits that Windows hardware gamma will accept for the next version so your higher level gamma will work. I had limited them to attempt to keep them in the valid range, but the high range for gamma corresponded to the menu limit not the hardware limit.

Give - more items, quoth, nehahra, etc.

Not sure. I've already made the names user-friendly. Many of those things are likely to be impulses which are mod specific behaviors outside the engine. One example, the "give" command cannot give you "Quad".

Extra editing keys

Those are in the next one.

I also noticed that 'pak help' and 'zip help' commands

Hehe, 'pak' and 'zip' exist just to expose those for testing. I don't expect them to be there in the end, and didn't expect them to be noticed ;-) 
Quoth 
Items like quad are given by impulse commands, but Quoth does implement named aliases for these commands, for example "quadcheat" in the console performs impulse 255 and gives you the quad. These should autocomplete when the engine supports it - as fitz085 does I'm sure Mark V would as well... 
Nehahra And Limits 
I am actually wondering why that Nehahra crash happened. Didn't you raise the limits for RRP already, including edicts? That should have avoided this issue. Was using the April 19 snapshot after all. Anyway, maybe Nehahra is handled differently.

I am pretty sure it's the only problem with the mod, though. Until that point, everything worked flawlessly (and I don't expect it to screw up in the last level when you got to fight Max).

Side note: Is there actually any chance you are able to add the missing fog effects or is that something Mk V simply cannot pull off? 
 
Not Nehahra's fault, engine's fault. Reason is long-winded and technical. I'll try to explain.

Mark V guesses the number of server edicts needed. ne_ruins and end of nehahra, because they spawn lots of entities tricks this and over-runs the limit.

I wanted to avoid dynamic allocation of entities because then it requires a client to dynamically allocate them. I'm not interested in Mark V as a server being incompatible with FitzQuake 0.85 or Quakespasm as a client, I view that unacceptable incompatibility.

Hence, the guessing (mostly to avoid the max_edicts cvar)--- and guessing wrong in this case.

But I think I have an alternative, but need to think more.

For now, setting host_max_edicts to, say, 8192 should make anything run. Mark V will honor the cvar if it isn't set to 0.

fog

I can't remember the specifics. I know I had the fog enabled at one point. Then I had cause to disable it and I believe it was for a good reason, but I don't remember it right now.

I like fog so it had to be a good reason, but I can't recall --- it could have been something like ...

A) Perhaps FitzQuake fog and Nehahra don't mix right. Maybe it totally obscured the skyboxes. Maybe it was something else.
B) Maybe the fog keys in the maps were wildly inconsistent?
C) Maybe I compared DPNehahra vs. JoeQuake there was a serious difference?

Like I said, there was a reason. Now, I need to remember why ... 
Max Edicts 
Having the client dynamically allocate entities is easy. Having the server dynamically allocate them is hard, because the QC interpreter does a lot of pointer offset trickery to access edict fields. It's even valid for the interpreter to try to access a field in a different edict to the current one. I'm not sure why you'd even want to, but I've tripped up on that assumption in the past.

Static entities and efrags have absolutely no reason to have hard-coded limits and can be just pulled from Hunk memory as required. At a guess I'd say that the hard-coded limits in the original were there because Quake had to run on an 8mb MS-DOS machine (a lot of the weirdness in Quake's memory system comes from that and the fact that DOS had no virtual memory, and it's notable that id threw it all out when they moved away from DOS). There's no reason to preserve that in a modern source port. 
 
@baker:
better the client disconnects than the server crashes.

fog is different in almost every engine. it would be nice if someone actually documented the formulas engines use in an attempt to create some standard that all engines could then use...
https://xkcd.com/927/

@mh
the _only_ reason for weird fields is weird ens - ie: qccx hacks (there's no other way to easily generate those dodgy fields). imho, nuke them from orbit, but I guess baker doesn't have that luxuary due to his proquake stuff.
fte+dp use regular indexes for ents instead of offsets (screw qccx), and in doing so, they can dynamically allocate more memory. the catch is that you can't free it again mid-map. 
Fog 
Fog isn't just different on every engine, it's also potentially different on different hardware, drivers and even APIs.

Fixed pipeline fog (i.e the various glFog commands) is allowed to be evaluated per-vertex or per-fragment. AFAIK OpenGL doesn't specify this, but D3D also allows more explicit control of range-based (versus simple depth-based) fog and even table-based fog.

You're completely at the mercy of what your 3D card and driver gives you for this, so it's pointless specifying a standard. The best anyone can do is implement something that looks good enough to pass, but even so it may look completely different (even with the very same code) on somebody else's PC.

Fixed pipeline fog doesn't even work at all under D3D with Shader Model 3 or better hardware. You must write your own fog in a shader.

Fixed pipeline fog quality in OpenGL is controlled by a hint and the documentation for glHint explicitly states that "the interpretation of the hints depends on the implementation". It's perfectly legal for you to request GL_NICEST but for the driver to give you low-quality instead.

Shader-based fog can use any formula at all, and can likewise be calculated per-vertex or per-fragment. The end result can look much higher quality than fixed pipeline fog (you can even experiment with crazy things like moving fog) but the higher quality may be interpreted as different or non-standard by comparison to what a player is otherwise used to.

Quake 3 and Doom 3 avoid all of this mess by doing their own fog as an extra pass over all surfaces, which obviously comes at the cost of extra geometry submission and processing. Depending on the scene, this could cut framerate in half.

It's also possible to implement fog by drawing the depth buffer as a full-screen quad over the scene and deriving a fog formula from the values stored in it, but that of course will fail for anything that's not written to the depth buffer (particles, translucent water, etc won't be fogged). 
Finishing Nehahra 
Well, putting max_edicts "8192" into autoexec.cfg enabled me to get past "Nehahra's Den" with existing savegames. The problem is that while Nehahra's gibs are flying around, the exit elevator breaks through the ceiling, and with all the glass shards and debris raining down while gibs are still visible, it's just too much with low edicts settings.

I noticed a small detail with episode ending text screens. Looks like the last line(s) of text are cut off. Thought it may be because I use scr_menuscale 3, but reducing the value didn't reveal the missing lines (they were complete when checking it on console, though).

Summary of Nehahra playthrough:
- "Nehahra's Den" crash fix needed
- Possible issue with ending texts (may be general issue or not)
- Adding missing fog would be nice, but optional
- Otherwise, flawless gameplay. Music plays (if set up properly), cutscenes work, all maps completable etc

Keeping the "resurrection crash issue" with ne_ruins in mind, I will continue my Mk V testing queue with:
- Quake mission packs (SoA almost done already)
- Travail
- Honey
- Rubicon Rumble Pack

Possibly more after that, provided my free time allows it. 
 
@nightfright .. I appreciate the testing. I can't work on this and play a ton of mods at the same time ;-) 
Max_edicts 
Did you say that earlier you had max_edicts at 512? Because that's lower than dosquake which allowed 600 edicts, which might explain why it caused crashing. There's an argument here that allowing people to reduce the memory footprint below what was considered acceptable 19 years ago is unnecessary today. This argument would continue that engines should prevent people shooting themselves in the foot by enforcing a minimum max_edicts of 600. 
Edicts 
Edict size in ID1 is 876 bytes. This can be variable because mods can add their own edict fields which are tagged on at the end of the struct, accessible normally through QC but only accessible through C code by means of some pointer jiggery-pokery.

Say 1k as a good working size and because it makes subsequent calculations easier.

So if max_edicts is 8192 that's 8mb of memory. If it's 32768 it's 32mb of memory. Neither is a huge figure today, nor would it be considered huge on a PC from 10 years ago.

Most of that memory is going to be unused though, and there's also the fact that a lot of engine developers like to have their engines run on the same (or at least similar) class of machine that the original ran on.

One solution under Windows would be to VirtualAlloc a largeish pool of memory - say 64mb (for headroom) - with MEM_RESERVE. This won't count towards memory used, it just marks pages as reserved for subsequent use. Then as edicts are assigned from that pool, another VirtualAlloc with MEM_COMMIT for each new edict will actually use the memory, and only the memory, required for however many edicts a map might need.

I'm sure Linux and other POSIX systems have APIs that allow a similar scheme, but I'm not familiar with them. Either way, this setup allows the max_edicts cvar to go away.

IMO this is a good thing. I get that max_edicts is well-meant, but a major weakness of it is that it puts the obligation on the player to do the right thing. And the player must be aware that it exists, know that it may be needed, know what the appropriate value to set it to is, and know to set it before loading the map.

That just seems appallingly player-unfriendly to me. OK, I also understand that newer mods come with their own quake.rc that sets it accordingly, but it's still broken under older mods and it's something that with a bit of thought doesn't even need to exist.

In the end I just don't see an acceptable middle-ground for players. Either set a hard max_edicts and design mods around it, or make there be no practical maximum. But putting the burden on the player to do the right thing is eventually just going to blow up in your face. 
 
512 sounds low, but it was a machine picking the limit because the map probably had like 150 entities.

Dynamic ents will fix.

Dynamic ents doesn't solve any issues except this one. By the time you hit 5000 server edicts you are going to have all kinds of problems with the networking limits for stock Quake.

If it isn't one thing, its another. 
Beta 11 
Windows OpenGL | WinQuake

1) PNG screenshots might be fixed. Need NightFright to check since I don't experience issue. Changed download from GL_RGBA to old style GL_RGB before saving to PNG.

2) WinQuake large resolutions should be fine, but scaled (because WinQuake renderer can only do so many vertical lines). I don't have a 1080p monitor, so need verification as well.

3) Added Ctrl+Left+Arrow, CTRL-A, CTRL-Z (undo), CTRL-SHIFT-Z (redo) to console.

[I was going to do one level of undo. Then I thought, I'm not going to bother with undo. So of course, it has an unlimited undo buffer that compacts to words.]

4) Fixed drawing chat text if the console width was too narrow to display the whole line.

I have another batch of changes, but wanted to hit a check a "checkpoint" because I made heavy revisions to the console for auto-complete, console drawing and for undo. The auto-complete function in previous versions worked fine, but the code was embarassing cobbled together spaghetti caked on layer after layer that happened to work. 
Actual Download ... 
Music Is Fixed Now 
I dunno what you did between this release and the last one but music suddenly works!

Weeeeeeee..... 
Developer 1 And Sound 
I noticed that with developer 1 active the console gets spammed with messages about sound volume -

https://www.dropbox.com/s/33s43kepni4d7cc/mark_v_0000.png?dl=0 
 
I'm really happy your music works now! 
 
Cheers. This has replaced all my other engines now. I will still be using dark places too but only to make sure dark places is compatible.

Any reason why gl_texturemode settings don't save? It resets each load unless you set it in an autoexec.cfg 
 
It isn't a cvar. Fitz 0.85 it was a command.

[Quakespasm made it a cvar and has it save. I don't see that as something someone generally would touch except as curiousity and if they do, they wouldn't know the default value easily to restore it.] 
PNG Screenshots 
I can confirm that latest snapshot fixes screenshots with transparent statusbar for me.

Something else on my wishlist for quite a while is a sound resampler - especially useful if you set sndspeed 44100. I picture something like in ZDoom with its snd_resampler variable, letting you choose between "NoInterp", "Linear", "Cubic" and "Spline" modes.
Currently, I try to compensate the most annoying upsampling side-effects with converted sounds, but as we know, that's not a very elegant solution. 
Resampling 
the nice thing about MarkV using DirectX to play back the music is, the sfx and music are mixed together by the OS, not by MarkV. By using the default sndspeed 11025, you'll get very high quality upsampling provided by Windows, better than "Cubic" or "Spline" I'd guess.

In stock id quake, the lightning gun crackle is one of the only 22050Hz sounds, and I think everyone's used to hearing it downsampled to 11025. the need for a good resampler only comes into play if you want mix 11025 and 22050 sounds (in a mod, say), or mix 11025 with 44100 music in-engine (quakespasm does this). 
 
Good start. Now 2 of 3 known issues that I don't or can't experience are gone.

If someone with a 1080p monitor can see how the WinQuake version reacts to setting a screen resolution like 1920 x 1080.

I have another update with maxedicts gone (client always has 8192 edicts available, server will use 8192 edicts unless protocol is 15 (standard Quake) and in that case will use 600 for backwards compatibility), ericw's allocblock and double precision adjustments for lightmaps (even in the WinQuake version for the lightmap adjustments) and a few other things like fifth being annoying with developer 1 and changing mp3 volume printed.

I have dzip for .dz demos integrated in the current released build, but I don't have it doing anything yet.

I need to tweak the Nehahra handling a little and see if there is anything else I've missed. 
Resampling 
@ericw:
Really good advice with sndspeed 11050, thanks a lot! Didn't know that it actually sounds better with default setting. As you said, some sounds (not only in vanilla Quake, but also addons) have different sampling rates, but I guess this is a fair compromise.

I am about to finish my Travail tests. So far no issues. 
Winquake 1080p 
I can select the mode for 1080p, it seems to work in that respect but I can't tell if it's truly setting that as the resolution. I thought taking a screenshot would show the true res but the resolution of the .png file was 960x540 
 
Yep same here. I'd guess that's intended since Baker was talking about handling the problem thru scaling. It's funny that you get "fewer pixels" at 1080p than at 720p here, but if for whatever reason the renderer can't handle 1080p then pixel-doubling could be better than having to interpolate.

Is this what other SW renderers do at high resolutions? 
 
I loaded up Half Life and went to options->video and selected the software renderer, but my vertical resolution is 768 and it won't let me try higher.

Don't have Quake 2 installed at the moment to try that either.

[I did try to adjust by a percent initially instead of dividing by an integer, but the status bar was imperfect at some resolutions showing a line (WinQuake doesn't always draw the status bar, so it isn't quite a single surface.). So I went with the integer multiplication method because of that and the results should always be very predictable and I don't have to worry about stretching and such possibly looking bad at some resolutions, so it will look clean cut.] 
 
r_shared.h, change #define MAXHEIGHT 1024 to 1080.
1920x1080 works fine now, though it's pretty slow 
 
Touching that definition introduces a chain reaction that filters into the assembly language definitions and numerous things in the software renderer files.

That's way outside the scope of this project for me. 
Ah Sorry 
didn't realize you were doing scaling.
The latest markv winquake build works well here @ 1920x1080. 
 
Haha, you know what ... 1080 vs. 1024, that's a mere 56 pixels. A quick look and I dug up some Engoo/QBism/Makaqu threads and it appears that isn't going to explode anything. 
Beta 12 
Beta 12 - Windows GL | WinQuake

1) mp3 status events don't print for developer 1
2) Increased the maximum vertical resolution for WinQuake to 1080 (in theory -- can't directly test).
3) ericw's lightmap precision changes + alloc block speed up from Quakespasm implemented.
4) Max edicts is gone. As a client it always uses 8192. As a server it uses 8192 if running FitzQuake protocol 666 (the usual) and standard Quake's limit of 600 if serving a protocol 15 game.

Later on, I'll upload the Mac version and updated source.

Thanks for all the help in testing all of this! 
 
Interesting , because protocol 15 can handle up to 8192 edicts correctly 
 
that's a subjective statement. while the protocol might be able to cope with up to 32k ents, the implementations of that protocol may only support 600.

seeing as vanilla nq will safely handle its limitation, I would personally say that the server should just use 8192 even with protocol 15, because its better to soft-crash outdated clients than the server.
fte filters entities over the assumed client's limit because invisible entities is probably better than soft-crashing anything. if the client supports the proquake 16bit angles thing, you can generally assume the limit is higher. heuristics can always be wrong, of course.
of course, fte is crazy, and filtering reliably is a whole load of work that I can understand not bothering with (svc_setview! oh noes!), in which case imho your server not crashing is more important than your clients not crashing. 
 
For protocol 15:

FitzQuake 0.80, if I recall bumped the max edicts from 600 to 1024. JoeQuake uses 2048 if I remember correctly. WinQuake and GLQuake use 600.

My thoughts were if someone was going to run in protocol 15 mode as a server, they would probably want to ensure anything original Quake could connect and play. 
Nehara And Latest Build 
No crash in "Nehahra's Den" any more with max_edicts limitation gone. So much for the good news.

Unfortunately, the game now crashes to desktop a bit later when entering the next/last map (nehend). This also happens when you directly try to go that level via menu or with +map nehend, so it's not related to the previous boss fight.

Nehahra savegames and autodemo (932 KB) to demonstrate the problem

At the end of that level (nehahra), mp3 music from id1 dir is played during the level statistics and the following episode ending screen. This interferes with the actual background music, maybe it can be fixed still even though it is a minimal issue? 
Nehahra Crash Details 
To be more precise, the following Nehahra levels now crash directly to desktop when loading them:

neh1m9 "To the Death"
neh2m6 "Your Last Cup of Sorrow"
nehend "Quintessence"

Also, ID1 music generally plays in all the levels, except for when the game searches for tracks 00 and 01, but cannot find them in the music folder within the id1 directory. 
Baker 
Could you check a timerefresh command. I think it's broken. 
 
timerefresh is broken in pretty much any modern engine, isn't it? If not, it is completely useless on any modern hardware anyways. Use timedemo. 
 
@ NightFright ...

1) music + crashes

Nehahra isn't supposed to use the mp3 music or cdtracks, just the .xm tracks with fmod. I need to check the behavior there, but I bet if you temporarily remove your music tracks it won't crash. Clearly, I need to fix that so it doesn't try to play both.

2) Nehahra finale text --- interesting. Apparently Nehahra draws too many lines to display for the finale text (i.e. isn't backwards compatible to Quake minimum resolution of 320 x 200, which the menu is based on). I'll figure out how to address.

@spy ... I'll fix timerefresh. Thanks for finding that. There really is no reason why that shouldn't work. 
Testing Report 
Really odd thing: I checked Nehahra again at home on my other PC, and neither do I have crashes there nor does it play MP3s and XM tracks at the same time. Hard to figure out the differences of the PC setups. Ofc the hardware isn't exactly the same. Hmmm... I am running the game in windowed mode in the other place. Will look into that. Still, it cannot hurt to make sure Nehahra will never use MP3 music from the ID1 folder.

So far, I have tested Mk V with:
- Quake + both mission packs (MP2 50% done) --> OK
- Travail --> OK
- Nehahra --> Intermission text length, missing fog
- ne_ruins --> Succubus resurrection crash

I also remember that the commercial TCs Shrak and Malice had some issues with Mk V at least one year ago (Shrak: crashed for me when using rocket launcher sometimes, Malice: crashes in pre-final level when killing Vasquez). Will look into those again as well, even though I am not sure you'd be willing to check this if I find anything. Those addons are not very common, and at least Shrak isn't the most popular, either. 
 
Does Succubus resurrection still crash ne_ruins? 
Ne_ruins 
Succubus crash still happens, though not right after the first resurrection any more. Can take 2-3 now before you are going back to desktop.

I also still see quite some error messages, e.g.
302 models exceeds standard limit of 256
291 sounds exceeds standard limit of 256
111 lightmaps exceeds standard limit of 64
605 edicts exceeds standard limit of 600


Not sure if these still have any meaning, though. I play with -heapsize 524288 parameter. 
 
Demo and autosave please. Please, please. 
Ne_ruins Demo 
Here we go again:
ne_ruins autodemo/savegames (335 KB)

You can ignore the manual save(s). The quicksave will bring you straight to the situation with the succubus and the knights as seen in the short autodemo. God mode is activated.

Regarding the text length issue:
Actually, MP2 is also affected (e.g. at the end of episode 1). Maybe either use a second screen if texts are too long or simply make the game show all the text in any situation. I doubt that anybody still players in 320x200 these days, anyway. 
 
I've tried 15 ways to get it to crash, had tons of monsters resurrected, played your save game, watched your demo.

Also played ne_ruins for who knows how long (45 minutes?) couldn't get it to crash.

Does it just crash to desktop or does it say Host_Error or something? 
 
It's a straight crash to desktop without any error (besides the standard Windows thing "Program doesn't work any more"). Maybe it's again a hardware-specific issue (e.g. I have nvidia cards in both PCs I use).

In my autoexec.cfg, I have
gl_texturemode "gl_nearest_mipmap_linear"
r_shadows "1"
r_waterquality "32"


Here's the config.cfg from my ne_ruins folder.

I tried to more things which didn't change anything:
- Switch to fullscreen mode
- Move "ne_ruins" folder from "addons" subdir to Quake root dir (i.e. Quake/ne_ruins instead of Quake/addons/ne_ruins) and run it from there 
 
The good news: your config completely crashes me. 
 
The "exceeds standard limit" messages are warnings, not errors. I always get confused about that too. It means the engine warns you that engines without raised limits won't be able to load it or show errors. It's the "developers 1 for content creators output". 
 
It may be one of the settings applied through the config, then. But even with a default config file (wiping my customized one from ID1 folder and creating a new one from scratch when running ne_ruins afterwards), it doesn't fix the problem. 
 
@frightnight

I don't have an exact answer for why it is crashing for you. (It isn't for me, although I run out of memory without using a massive -heapsize 512000 because of your use of gl_subdivide_size which does look incredible with r_waterripple).

I think the use of several aggressive settings like gl_subdivide_size 16, a huge memory allocation, possibly mp3 music (and maybe model/sound replacements?) on the bunker-busting ne_ruins in aggregate is causing an unusual stress point somehow.

I notice you are using gl_texture_anisotropy 16.

gl_subdivide_size 16 is using ridiculous amounts of memory on ne_ruins.

Maybe you created the perfect storm and doing it with ne_ruins is piece of straw that breaks the camel's back. 
 
In my ID1 folder, I have the following additional PAKs:

- pak2.pak (.lit/.vis files for ID1 maps)
- pak3.pak (OriOn's fixed MDLs)
- pak4.pak (improved models by capnbubs/Lunaran)
- pak5.pak (E2M6.bsp with Romero's enhanced entrace included, .vis and .lit file)

Download the PAKs above here (11.3 MB) and put them into ID1 if you wish to try. However, since you said the config file is already enough for you to get the crashes as well, I hardly believe those files are to blame for it. 
@nightfright Pt2 
But if you upload your id1 folder + your ne_ruins folder somewhere I'll try to see the nature of the problem. 
 
Ah, you just posted. I'll try your packs. 
 
Or nightfright could start from a clean installation himself and work step by step to find the culprit. Don't burn out, baker! 
 
I'm able to recreate the crash and really quickly. 
 
@spirit ... I'm not gonna burn out ;-)

I'm in this deep with this problem, I can get it to crash now. 
Http://i.imgur.com/w7tPNZJ.jpg 
 
Http://i.imgur.com/x1OcC8j.jpg 
 
 
It looks like some sort of stack corruption. It goes to draw a model, sets the pointer to a texture. And the pointer to the texture is fine.

Then at the end of the function, it isn't fine and points somewhere crazy.

I tend to use vc6 because it is fast, quick to compile and stays out of my way. I guess I'll use vs 2008 to compile the ones for distribution. 
 
I have tried resetting following variables to their defaults (as written below):

gl_subdivide_size "128"
gl_texture_anisotropy "1"
r_lavaalpha "1"
r_oldwater "1"
r_slimealpha "1"
r_wateralpha "1"
r_waterripple "0"
r_waterquality "8"
r_shadows "0"

Even if that frees up memory as you say, the effect would still occur, even if I start a new game (not using the savegames I posted above). 
 
Played it a fair bit, so here's some feedback and bug reports.

No issues so far with the text editing shortcuts, seems to work fine. Really love this and hopefully various other non-Quake id open source engines devs adopt it for their own engines.

- WinQuake at 1080p seems to be mainly ok, but I noticed one or two minor issues. First, something I noticed is that the WinQuake version starts to feel more 'choppy' and with seemingly worse input latency as you dial up the resolution, even with equal framerate. So 1920x1080 @ 72 fps feels worse than 1600x900 @ 72 which in turn feels worse than 1024x768 @ 72. This is with vid_vsync 0. Maybe this is just some quirk deep in the engine that would be hard to fix, but just thought I'd mention it.

- Also in WinQuake, is it intended behaviour for water/slime/lava to each produce identical results when their respective r_*alpha value is set to anything below 1? Ie, there is no visual difference between 0.1 and 0.9. Also, at least to me, lava tends to look a little strange with a value below 1 - http://puu.sh/htMTZ/49939b0dd4.png

- Moving on to the OpenGL version, I noticed this strange blue pixel that appears on the shotgun (circled in red) - http://puu.sh/htN8I/85a40ed076.png - which doesn't appear in other engines (apologies for png, but it shows up better with this image format).

- If gamma and contrast cvars have been adjusted and the engine crashes, it results in Windows desktop displaying as excessively bright. Tried to take a screenshot of this, but Windows always produces normal colours in the screenshot.

- Not necessarily a bug, but gamma has a much broader range of possible values than contrast. Not a problem on my monitor, but might be for some people.

- Regarding the ne_ruins crashes - are you using -zone 2048 -heapsize 192000 as instructed in the ne_ruins readme, NightFright? I was getting a crash frequently at a particular location - http://puu.sh/htOoc/47766c1234.jpg - and it always happened without setting those values. When I did set them, it happened much less frequently. Demo and save game if you want to take a look, Baker - http://www.mediafire.com/download/u1k64zqugv45d8y/ne_ruins_demo+save.zip

- You probably know, but runes weapon stripping stuff and 'pak/zip help' issues still there. 
@nightfright 
ne_ruins crash conclusively solved. Incorrect handling of entities with alpha = 0. The End.

So that's what was up with that. 
@railmccoy 
1. WinQuake slow @ big resolutions.

WinQuake is software renderer. Big resolution = slow. Low resolution = fast. Even though 1080p "works".

However, no one makes you do 1920x1080 full screen, you could pick another full-screen resolution like 800x600 or something with less pixels and it would be faster.

2. Stipple alpha on|off doesn't recognize differences

The stipple alpha I put in WinQuake isn't fancy. It draws every other pixel if r_wateralpha < 1, so it is sort of yes or no.

3. "I noticed this strange blue pixel".

I noticed that myself months ago. If you open up id1/pak0.pak ... progs/v_shot.mdl you'll discover the background is blue!! Look a shot gun box in DarkPlaces and you'll see other fun stuff. FitzQuake engines and, say, ezQuake have a "fix the shotgun shell texture" fix in them, DarkPlaces is purist in that regard and does not correct content.

So rack that up as one of the weird things in Quake. If you do enough poking around, you'll find little weird things in Quake.

4. gamma has a much broader range of possible values than contrast.

Not sure what to say. The range is the acceptable range that Windows accepts for hardware gamma for contrast. The gamma cvar will accept all possible values for gamma that Windows will accept, but as I noted before the slider bar corresponds to the WinQuake menu.

5. If gamma and contrast cvars have been adjusted and the engine crashes, it results in Windows desktop displaying as excessively bright.

Which is why I don't like using hardware gamma.

Hardware gamma is the worst. Except for all the other ways of doing it :( Hardware gamma is free, other ways either are an FPS hit or imprecise which is why there is the vid_hardwaregamma cvar and maybe at some point I'll try to implement a sneaky tactic of shoving gamma+contrast into the textures (and hope it looks right). But that's for the future.

6. ne_ruins

As of like 20 minutes ago, the mysterious ne_ruins crash is solved once and for all --- in the next release.

I think more people have discovered ne_ruins seeing it cause Mark V grief in this thread than from any other source ;-) 
 
@Baker:
Sounds cool. I am curious whether this might actually even fix my issues with Shrak and Malice, as the crashes there were quite similar. Will playtest till it breaks (well, hopefully not) once you have an updated build. Great that you found something after all - admirable dedication you show there!

@THERAILMCCOY:
I experienced the same issues regarding texture seams on HUD weapons. To counter the effect, I have released OriOn's fixed weapons with edited skins over at QuakeOne.com. With these, the texture seams should disappear (my edits of the original model pack was aiming especially for that). 
 
I wasn't able to compile this on Linux 64-bit. Has it been ported over? 
 
Ah yeh, looks like the ne_ruins glitch was identified just before I posted.

With WinQuake, it's not like it's slow in terms of fps, as i said 1080p holds steady at 72 fps just fine, it just feels choppy. But yeh, not like I really expect wonders from a near 20 year old software renderer, it's frankly just nice to have a modern working one at all. =P

Regarding gamma/contrast, I was really just drawing attention to the somewhat narrow range of contrast values available, rather than anything gamma related. For example, DirectQuake allows you to go from a value of 0 (exceptionally low contrast) to a value of (I think) 7 (exceptionally high contrast), whereas Mark V seems to go from 1 (low-medium contrast) to 2 (medium-high contrast).

NightFright - thanks for the link. Installed it and had a look, and I do quite like some of the fixes in it, though some weapons seem to show up even more blue pixels than the id originals. =) 
Gamma 
DirectQ applied gamma by running a pixel shader over the entire screen as a post-process effect, so it wasn't bound by the range of standard hardware gamma, but of course it wasn't a free effect either. 
 
Tonight, I will take a closer look at some more recent addons and see how Mk V is doing there.

@THERAILMCCOY:
I have updated the OriOn model pack once more. Now all weapon skins have their blue background colors replaced by black. Maybe that will fix the issue for you once and for all. 
 
@saindd - there isn't a Linux port of Mark V. Quakeforge and ezQuake may have software renderers available for Linux. 
 
Beta 14 - Windows OpenGL | WinQuake

ne_ruins fix (entities with alpha = 0). Other minor things (fixed a demo pause oddity, clear undo buffer when exiting console, zzzzz ...) and changed compiler options slightly to improve speed slightly. 
 
runes weapon stripping stuff

Ironically, giving yourself a rune doesn't do anything except cause the item to show in inventory.

In QuakeC, this isn't how runes work. So whether or not it shows in the status bar is all psychological. If you use that give yourself runes and changelevel to the start map, nothing special happens because the game logic keeps track of things differently.

So I'll give removing the "give yourself a rune" command.

It does nothing of substance :( 
Give Runes 
Actually if you impulse 11 4 times then changelevel start the entrance to Shub Niggurath's pit will be open, and the episode gates closed. A single rune does nothing. 
 
a single rune should block the entrance to the specific episode where that rune lives. 
 
That is somewhat inconvenient in this sense.

You can't actually type "impulse 11" in the console 4 times in single player.

You have to type "impulse 11", close the console so that game isn't paused and the server will take a command.

Then open the console and repeat 3 more times.

Even typing "wait" between won't help because frames still happen when the console is open so waiting for the next frame doesn't mean anything.

Who wants to open and shut the console 4 times.

Then after all of that, do a changelevel.

However, the circumstances are rare enough I'll just add a little extra text in typing the give command without parameters. Or something. 
 
Is that bug where runes disappear fixed in fmv? Otherwise people do need that workaround. 
Runes Bug 
Personally I find it more useful to changelevel to the last map in the episode for which a rune is missing, then do a quick god/notarget/noclip ride to the rune area, then changelevel back to start.

It seems like more effort but it works if you're playing the episodes out of order. 
Ne_ruins Fixed! 
I confirm that the succubus resurrection crash in ne_ruins is gone for good. I went to the problematic scene in the level again and had the succubus resurrect mobs for more than one minute without any issues. Before that, Mk V would crash after 1-3 resurrects at the very latest. Excellent job, Baker! (I'll still play the whole addon from beginning to the end to make sure it's 100% completable.)

I have already tested "Honey" last night and it's flawless. Never had any issues with it though, so didn't expect it to be any different now.

Next on my list are packs like RRP, The Horde of Zendar and some high-end maps for Quoth (e.g. Conference of the Shamblers) or Drake. Definitely on my list is a test for Shrak/Malice compatibility still. Shrak especially since its hub system caused trouble with some ports for me in the past, plus some random crashes when using rocket launcher (or facing a certain emeny, not sure what was the real problem). Latest update possibly fixed this, so we'll see. ^^ 
@mh 
For runes, after some poking around I can just directly add them because the progs.dat serverflags is available in the engine

// sigil is 1, 2, 4 8 (1 = Rune 1, 2 = Rune 2, ..)
SV_ClientPrintf ("may require 'changelevel start' or equivalent for intended effect.n");
pr_global_struct->serverflags = (int)pr_global_struct->serverflags ^ sigil;

So the give rune1, give rune2, .. instead of being removed will actually give the rune (as opposed to simply make it show in the inventory). 
@Baker 
I haven't tested this myself yet, nor even given it much thought, but I'm going to have a go at making a PR_ExecuteProgram call to handle this and see how I get on. 
Ne_ruins Again... 
Found a new interesting reproducable bug in ne_ruins:

If you have the new double-barrelled shotgun equipped (not the regular one) and you use "previous weapon" (impulse 12), game freezes and eventually crashes to desktop. I have impulse 12 bound to MWHEELDOWN. "Next weapon" (impulse 10) doesn't do that (bound to MWHEELUP for me). 
 
Do: sv_fix_no_impulse12 0

That's the feature from Requiem that tries to add "impulse 12" to mods that are missing it.

Apparently, it detects ne_ruins doesn't have "impulse 12" and tries to improvise and causes a crash. 
Impulse 12 
While we are at it: There are addons which use impulse 12 already for other stuff. I am currently testing Malice, and there it is used for weapon reload. That means you cannot use previous weapon function in such mods. 
 
I think we'll find Requiem's "impulse 12" helper works well with nearly all Func_Msgboard style single player releases and the kind of stuff available at Quaddicted.

And may be often be an interference with heavier stuff like Malice or like most of the stuff listed here http://www.quaketerminus.com/addon.shtml or QuakeC modder progs and such. 
Shrak And Malice 
Continuing my testing with latest Mk V build, I have checked out some more exotic addons: Shrak and Malice.

Shrak:
It seems some fixes applied during the last year (possibly the latest for ne_ruins) have solved my issue with crashes when using rocket launcher or killing certain enemies. Hub also works fine, you can complete the whole addon without any showstopper.
The only thing that's left is a skin issue with some gibs. I think several models are affected, but one that's always screwed is the head of the brown shotgun mob, called "Zed". In Shrak's pak0.pak, the mdl is called h_zed.mdl or something, I believe. My guess is either the model or the skin has something Mk V doesn't like. It may be worth investigating as I have also encountered this in some other addons, e.g. Soul of Evil (which I will also check out later still). Here is a Shrak autodemo (437 KB) if you want to see the problem in action.

Malice:
I still need to finish the last two levels, but I think I can already name the most imminent issue(s):
- Small crates cannot be pushed
- Statusbar is visible during cutscenes
- Crash in "Stayin' Alive" when killing Vasquez sisters more than once

The first two issues may be tolerable (even though not being able to push those small brown crates can prevent you from reaching certain areas in some levels), but the third one kinda sucks.
In that level, you basically encounter three chicks which respawn endlessly whenever you kill them, trying to prevent you from reaching the exit. The thing seems to be: You can kill each of them exactly once. Any additional kill will make Mk V crash to desktop inevitably. This bug is not totally critical as you don't necessarily have to kill the sisters to complete the level. Still may be worth investigating.

Malice autodemo and savegames (238 KB)
(Quicksave should get you directly to the encounter)

In case you don't have Shrak or Malice, you can get them from Quaddicted archives. (For Shrak, use Shrak2.7z.) 
 
Beta 15 - Windows OpenGL | WinQuake

* Extra room for finale text exceeding FitzQuake menu canvas (320x200) so Nehahra and other longer finale text will display.
* Timerefresh works.
* Dzip demos play with no external dependencies and won't leave potential 'extras' in your Quake folder like JoeQuake and variants (like readmes that were in the .dz). Making dzip be internal to the engine also made in the inside of the engine supporting .dz demos way cleaner.

.dz demos: Speed Demos Archive | Example .dz

* A few other minor touchups: autocompletion got a bit confused by quotes, ability to load a DarkPlaces save game file, don't draw the clock if viewsize is 120, draw intermission plaque + center print + finale text even when console is up or game is paused.

* Give rune1 to rune4 is fully and correctly functional. Tells user they may need to 'changelevel start' or equivalent to get desired effect. 
 
@nightfright ...

Malice - Small crates cannot be pushed
Malice - Crash in "Stayin' Alive" when killing Vasquez sisters more than once

Does this work right in, say, FitzQuake 0.85 or JoeQuake or some other traditional and very original Quake-like engine?

The Shrak skin thing with the gibs might be because of how GLQuake or even FitzQuake handles skins slightly differently than WinQuake (I think there was a discussion about that in the Quakespasm thread) but next week I'll look at these issues (the ones potentially involving QuakeC like the Malice crates --- if it doesn't work with any open source Quake engine I'm not sure it is actionable.) 
Malice On Other Ports 
FitzQuake 0.85:
- Small crates can be moved
- Vasquez crash (map d13) still happens

JoeQuake 0.15 build 3798:
- Small crates can be moved
- Vasquez crash (map d13) not occurring

In JoeQuake, moving small crates is a bit more difficult as it depends more on viewing angle etc., but it's still possible.

The Vasquez crash seems to be inherited from original FitzQuake, it seems. 
 
Hm, the malice map d13 crash (happens when you kill one of the enemies in the first group) is from an out-of-range skin number. I saw values of 50, 53, 54, and in the server in SV_WriteEntitiesToClient the skin number is actually a fraction (53.41...).

At first glance I think Fitz is just missing something like the following in the mdl rendering code, this is in Winquake:

if ((skinnum >= pmdl->numskins) || (skinnum < 0))
{
Con_DPrintf ("R_AliasSetupSkin: no such skin # %dn", skinnum);
skinnum = 0;
}
 
 
fitzquake is supposed to display a blue checker texture for missing skins, which is why it doesn't set the skin to 0. However it appears some mods rely on that behavior?

I can't explain the crash, though. 
Ah I See 
I didn't know about the checkerboard feature.
The crash was coming from these lines in r_alias.c:

tx = paliashdr->gltextures[e->skinnum][anim];
fb = paliashdr->fbtextures[e->skinnum][anim];

The size of the first index of the gltextures and fbtextures arrays is MAX_SKINS (32), so if e->skinnum is < 0 or >= 32, it'll probably crash.

This does the trick:

if ((e->skinnum >= paliashdr->numskins) || (e->skinnum < 0))
{
Con_DPrintf ("R_DrawAliasModel: no such skin # %dn", e->skinnum);
tx = NULL; // NULL will give the checkerboard texture
fb = NULL;
}
else
{
tx = paliashdr->gltextures[e->skinnum][anim];
fb = paliashdr->fbtextures[e->skinnum][anim];
}
 
Hm 
Malice does kind of rely on skin 0 showing up for invalid skin numbers; when you kill an enemy, they do a teleport animation and the invalid skin is used briefly. So it's a toss up whether to go with strict winquake compatibility (show skin 0) or fitzquake (show checkerboard) 
Ericw: 
your fix makes sense. My only suggestion is finding a way not to spam that console message every frame. Like maybe, only do it when the skin is different from the previous frame. (which probably requires moving the test to the client parsing code) 
May 2 Build 
Windows Download Mac OS X 10.7+ Source Code

OpenGL and WinQuake builds for each platform.

ericw's skin fix. Hordes of dedicated server features no one is likely all that interested in but include things like sv_filter_gibs (has a sv_filter_gibs_list to control what that is), sv_full_invisibility (eyes.mdl entity doesn't get sent to anyone), ability to specify console log name -condebug <logname> and several chat limitation options, ability to have condebug log be "dequaked" (chars > 127 converted down 128).

Also edited the probably unnoticed "name maker" (options->multiplayer->setup->name) to not permit carriage returns and such.

The Mac version obviously has both an OpenGL build and a WinQuake build. And like the Windows version can play dzip demos and has all the same selection, copy, paste and undo keys enabled in the console and auto-complete via CTRL-SPACE, etc. It might have an option to unpak pak files in the menu, I forgot to test it this time. Like the Windows version, it can play Nehahra and supports mp3 tracks. 
 
NightFright - thanks for the updated models, using them permanently now. The only small bit of feedback I'd give is that the original super-nailgun model looks slightly better than the replacement due to the highlight on top being narrower and thus better selling the illusion of a rounded barrel.

Original - http://puu.sh/hyCAC/0055377c21.jpg
Replacement - http://puu.sh/hyCBO/e01505b467.jpg

Baker - only thing I noticed so far is that autocomplete seems to require minimum 2 characters to function. Ie - 'q->tab' results in no response, but 'qu->tab' will show the autocomplete possibilities. 
 
Thanks for the heads up on the auto-complete thing. Quality bug reports make all the difference and you've pointed out some very insightful ones (so has spy, fifth and very obviously nightfright). Not many people would play with the 'give' command, for instance, to notice the runes wiped away the weapons.

The source code link is bad, it should be this
 
I will still finish my pending tests even though I don't expect to find more.

Dunno if the skin problem in Shrak and Malice crates can still be solved, but it's rather minor things compared to the crashes that were fixed. Considered that the Malice crash was in FitzQuake pretty much since it exists, it's quite an accomplishment to get it solved after all this time. 
Nehahra Cutscene 
A few posts ago was told that the cutscenes of Nehahra work correctly, however when I go play they are not displayed, simply goes from "nehstart" to "neh1m1" without displaying them. I appreciate if anyone knows how to solve it. 
 
Do you have the correct pak0.pak? The one that comes with the Quaddicted release is only a placeholder. 
 
It will only get you a file "Readme" inside. 
 
If it's only with a readme inside, it's the dummy file. Pak0.pak with the 20min intro movie is inside a package called "Seal of Nehahra". Google it, download the zip and overwrite your pak with the bigger one. 
 
Man, the problem is not in PAK0 ran the mod with the 'glquake' that comes in the zip and cutscenes worked (did not put the PAK0 the seal of nehahra), tested with Darkplaces and also worked, alendo more than the cutscenes that appear within the game are in PAK3. 
 
NP, Baker, glad to help; after all we all benefit from engines being in active development and bug-free. =)

Something else I noticed was that the numpad responds in an unexpected way. Numpad keys are displayed when the 'keys' command is issued, suggesting they are valid for use, but when attempting to bind them through console or config, they do not function.

It is possible to bind them by using the controls menu and they then behave as expected, but a command attached to say, kp_end, will be described as being bound to '1', kp_leftarrow as '4' etc. So taking the latter case as an example, pressing either the standard '4' key or 'kp_leftarrow' will produce the same result. Perhaps this is intended behaviour, but if it is, it may be worth removing the kp_ keys from being listed in the 'keys' command.

For reference, FitzQuake and Quakespasm do allow binding to numpad separately from standards numbers; ie you can have two separate functions bound to '4' and 'kp_leftarrow', for instance. 
@TCHORGO 
Nehahra has 3 issues I need to address:
1) Demos between levels on Windows only. Right now, the demos in between levels don't play on Windows.
2) Reviewing the fmod code and the mp3 playback code and cd code ensuring only fmod is used.
3) Fog. I'll probably see if I can make it use the FitzQuake fog system.

@nightfright ... I intend to fix the Malice crates. And I will look at the Shrak skin. Probably in a week, they are on my list. From what you have told me about the malice crates, it looks like it should be fixable.

@THERAILMCCOY - I'll look at the keypad and resolve. 
Nehara Music/fog 
I still had the impression that during my Nehahra playthrough, fmod music didn't play all the time when it was supposed to. However, since I don't remember when exactly music needs to be played (some levels are silent on purpose), I cannot say for sure something is wrong.

Restoring fog support would be essential since the few levels in which the effect is used profit considerably regarding their atmosphere. 
Episode Finale Text Length 
Other thing:

Unfortunately, the fix for finale text length from build 15 still isn't enough for some addons.

I picked Rapture for testing since it has extremely long texts, and there the text is still cut off as you can see here. On this screenshot, 5 lines are not shown. I dunno if you can push this fix any further, but maybe if it doesn't fit on the screen you could try shrinking the font size automatically or something.

Other than that, I checked Malice map d13 once more and the crash with respawning Vasquez sisters is definitely gone. Thumbs up! 
Good Catch On Rapture 
The text is cut off in fitz085. This is rainend.bsp.
winquake is OK: http://imgur.com/DaISTRW

I don't know the code that draws these but my suggestion is:
- check the buffer size winquake uses
- calculate the actual height of the full message, so it can be centered on screen properly. 
 
It is far better to find out about all these edge cases now so they can be addressed while the iron is hot. 
RRP 
Something else to think about in the meantime: Checking RRP, I get a crash to console in "Telefragged".

It happens like this:
After picking up the yellow keycard, I go around the corner and approach the yellow keycard door. Game crashes to console with a message like:

call0 2303(multi_trigger)multi_trigger()
... <-- couple of lines with subs.qc/triggers.qc etc here
(no function)
stack overflow
host_error: program error


Try if you can reproduce it with these savegames and autodemo (1.07 MB). Quicksave gets you right after picking up the keycard. Go around the corner and watch the game crash (probably). Autodemo shows the whole procedure. 
Afailk 
that is a known bug in telefragged.bsp on easy skill, not an engine issue 
Text 
I did a rough calculation of the text length and it comes out at ~900 chars. Now, Quake copies the centerprint text to a 1024 char buffer (in SCR_CenterPrint), so it's possible that this particular text is exceeding the buffer size and being chopped. That's possibility one.

Quake also counts the lines of text (stored to scr_center_lines) and I make it 29 lines, or 232 pixels high. Now, FitzQuake implements a GL_SetCanvas mechanism for laying out the 2D GUI elements, and centerprints use CANVAS_MENU, which is constrained to a 320x200 viewport (via a glViewport call), so anything outside of that viewport gets discarded by the driver. Add in the "Congratulations" banner and you can easily see why the text gets chopped. That's possibility two.

Possibility one is unlikely but it is nonetheless something that you should try to fix.

Possibility two is definitely what's going on here; the text is just too large for a 320x200 viewport.

Unfortunately this is a case where the mod author was careless: the same problem would occur on any engine running at a sufficiently low resolution. It doesn't occur on non-Fitz-based engines at higher resolutions simply because they don't use the same constrained viewport.

I'd chalk this one down to "bad content", of a similar class to textures containing fullbright texels, but it's up to you whether or not you think engines should support bad content like this. 
 
Windows GL | WinQuake - Probably fixes the Rapture end text for Open GL by expanding the canvas height to 480 or the largest it can do for the screen resolution being used while keeping the completion plaque or congratulations plaque in the same place.

@mh - Well, I'm sort of the mindset that 320x200 should be supported but also if original Quake does it then it can't really be a bug.

I am particularly interested in coop and I'm hoping to acquire ZQuake into the engine this week. In previous times, I wouldn't have had the right kind of knowledge to make this happen. It is possible I may discover I still don't. Finding out is half the fun. 
End Text With Latest Build 
With the new build, now the "Congratulations" panel shows in 5:4 modes, but text remains cut off. In 16:9 however, the panel isn't visible while the text is displayed completely.

I was trying this with scr_menuscale 1 and higher, wouldn't make any difference. 
Malice Boss Fight 
So I played the last two levels of Malice. While I didn't expect anything to go wrong there any more, it unfortunately did.

In d15 (boss map), the game seems to change your FOV, I guess as a side effect of the boss attack when he pulls you towards him or something. This effect should only be temporary and restore your original FOV afterwards, of course. However, sooner or later this causes a crash to console with this message:

host_error: bad fov: 180.000000

I had my FOV set to 105 in config.cfg before this happened, and when I checked after the crash, it was 170. it also happened when setting my initial FOV to 90, so this doesn't seem to be causing it.

Check autodemo and savegames here (136 KB)
(Last savegame and quicksave are relevant - I recommend activating godmode immediately.)

This should be the last issue with Malice.

At least, it seems pushing small crates works after all. No idea if it was something with latest builds that fixed it or I just didn't try pushing at the right angle. Main thing is you can push these crates, so I believe there is no need to look into it after all. 
RRP 
Yeah sorry about that, complete oversight on my part - nobody tested in easy :[ 
RRP Telefragged 
Is there a fix anywhere for this map? Or would it be possible to make one? It's not the first time it has been requested. :P 
 
Ok ... I'm glad you can push the Malice crates --- that was #1 on my least favorite thing to examine because it shouldn't be related to the engine and would involve QuakeC.

Not that I wouldn't have been able to figure out a game plan, but that it would be very time consuming, especially because I'm sure Malice's QuakeC isn't open source.

Text-cutoff: Thanks for info. 
I'll Try And Make Some Time For It 
If I can't then I'll let you know. 
RRP 
It's still possible to complete the map even with the bug. I just opened the yellow key door by walking backwards into it. And afterwards you have to be careful when returning to that room, ofc.
(As a general advice: Don't include stuff like resolution settings in quake.rc - folks don't like when their default config gets changed.)

Other than that, Mk V doesn't seem to have any issues with RRP. Plays smoothly. Still need to get through Mfx's map to complete the pack, though. 
Level Ending Screen 
Something else I noticed with level completion screens: It always displays "current music track" in the upper left corner when starting to play the level stats music. I think that can vanish. 
 
bad quake.rc files are nothing new.

I don't know that anyone, even with the best of intentions is qualified to make a quake.rc file, most of them are toxic to some extent.

Which is why I've always preferred to type -game <gamedir> in the console.

The mods that really need a quake.rc file are the highly exotic ones and it is not very helpful since you usually do not know that "R" has the reload gun bind key or "K" is use items.

quake.rc files are just basically entirely useless unless they indicate something like the preferred r_wateralpha value. 
 
Other than that, Mk V doesn't seem to have any issues with RRP. Plays smoothly. Still need to get through Mfx's map to complete the pack, though.

Mark V doesn't say anything 'cause there's lots of builds that may work different if you don't update every time. I still haven't played RRP 'cause it crashes on the build of mark V I tried it back then. I need to check if new version works fine with it. 
 
I know Baker just added the ability to load RRP maps in the last few weeks, so only the bleeding edge builds in the last few pages of this thread would support it 
RRP 
RRP definitely works fine with latest Mk V snapshots. Just be careful about Telefragged on easy. 
Telefragged Patch 
I'll see if I can do this on the weekend, as well as fix a few other problems with the level, like the long drop secret and make that retarded pipe progression easier to spot. 
Experimental Features 
Windows GL | WinQuake | Source

Improved ability to handle very large finale text ("Congratulations! ...") like the Rapture.

Experimental feature for use at your own risk --- and this means if you aren't interested in beta testing and not very Quake savvy this one isn't for you. That zlib1.dll file is required because libcurl needs it and I don't have anything checking to make sure it is there.

* Ability to install mods (or uninstall) via console.

Example:
install travail (will try Quaddicted)
install http://celephais.net/levels/files/rubicon2.zip (direct from any web address provided it is a standard .zip file)
uninstall travail (removes quake/travail but keeps the travail.zip)
uninstall travail full (removes quake/travail and removes the travail.zip)

The downloaded .zip files live in quake/id1/_library

This is a beta and it prints a bit more than it should when installing and so far handles things rather intelligently and in a user-friendly manner.

But I have more to do like don't be playing travail and type "uninstall travail". I also want to require the .zip file to uninstall a mod and use the .zip file to only remove files that came with the .zip. 
Neat 
Just installed it... it crashes to desktop when attempting the install command 
Also New Thing 
Playing with the music a bit -

If you do cd play 2 it will play track002, you can keep doing this and it will play the tracks but without stopping the previous one. The funny thing is that cd stop only works once so you can only disable one of the tracks, the others keep playing. 
Awesome! Someone Please Port It To Linux 
someone please port it to linux
someone please port it to linux
someone please port it to linux
someone please port it to linux

Default directory for downloads is qdir/Downloads/ in the Injector I think, would be great if we synchronise.

I'd suggest "purge" instead of "uninstall NAME full" or maybe at least the other order "uninstall full NAME" or "uninstall purge NAME". That would be more normal. 
@spirit 
Some notes:

And I know this would be rather difficult for the Quake Injector to do but here goes:

1) I have all installed files as lower case no matter what.
2) Take an archive like warpspasm.zip. It should install to warpspasm not warp. You shouldn't have zip files that need a gamedir other than the archive name. And this unarchives that way instead of honoring the \warp directory in the .zip.
3) I agree with synchronization, but I don't want the Downloads folder obviously exposed to the user.
4) I plan that in coop, a server can just transmit over the archive to the client and live install. Mark V as a server already stuffs in a hint to the client that tells another Mark V client to change to directory like -game warpspasm -quoth.
5) I also plan to try to disallow any external archive having the same name as a Quaddicted known archive and refusing to install it.

I have plenty more hammering to do.

@fifth --- at the moment, I don't have another computer available so this really hasn't been run on anything except my hard drive. Thanks for the heads up on the cd play command. 
Rapture Texts 
Latest build definitely fixes Rapture episode ending texts (and with that most likely also Nehahra or any other addon with the same issue). In some video modes, it requires even the very last line available, but all characters remain visible. I only checked with rainend, but I doubt any text is longer than there.

Currently still on my wishlist (unless I find more):
- Shrak texture issues
- Malice d15 fov crash 
 
Had a quick go at using the install feature.

-'install' then hitting enter is fine, normal command/cvar explanation is printed.

-'install modname', where modname is the name of a mod present on Quaddicted, results in a crash.

-'install http://celephais.net/levels/files/rubicon2.zip' or any URL I've tried so far results in a crash.

In fact entering anything after 'install' seems to result in a crash.

-'uninstall' then enter is fine.

-'uninstall modname' seems to work fine.

-'uninstall modname full' removes the mod directory, but not the zip in id1/_library. Since install wasn't working, _library was obviously manually created and a zip manually placed there to test, so perhaps that's an artificial way to test it. 
Zipfiles 
When you are already starting with zipfile stuff, why not also provide support for loading zip/pk3 files in general? For me at least, that would make things easier when adding mods. Always opening Pakscape to group stuff together sucks. And additionally, maybe music files inside PAK/zips could finally be recognized. :P

And I forgot one thing in my "wishlist":
- Music track playing msg when exiting level to be removed 
Baker 
1) https://github.com/hrehfeld/QuakeInjector/issues/75 I have to be honest that I don't fully understand that log now but if I closed it I guess it is not a crossplatform solution to lowercase everything.

2) You know the pain of my Quake life... I need a time machine to get back to the 90s, take over idgames2 and have it prosper with my nazi standards.

Do you support HTTPS or are you using the QI user agent as workaround? I'd need to add a comment to my config so I don't lock the engine out once QI gets a new release. 
Overengineering Is Fun 
a few things regarding this install command:

why not get the engine to directly load the paks etc from the zip file? (especially good when you consider downloads from servers).

(@NightFright: compression within (most) pk3s means that you need to rewrite half the engine to use calls that can either read from a memory buffer or decompress the file on demand. pak files have no compression and are typically opened simply by re-opening the pak and seeking to an offset. I suppose that decompressing to a temporary file that will be automatically deleted would also work. Either way, it isn't a bolt-on feature and can be quite daunting, at least if you want to do it properly.)

how do you update when a new version is available? 'uninstall foo full;install foo'? you'll lose your configs/saves/etc
(this is also incredibly relevant when considering random quake servers running different versions of a mod)

never trust the filename in a url. some examples:
http://example.com/download.php?id=123
http://example.com/...zip (evil huh, note that nvidia drivers will obligingly attempt to load a whole load of dlls from the working directory)

use the user's home directory instead of the quake dir for the Downloads path. Noone will ever find it there!

stuffcmd(self, "uninstall id1 full\n");
also, aliases.
nuff said.

console commands have almost no discoverability. if I don't know the name of a package, I have no way to install it. eg the install command needs a way to list all packages with 'rubicon' or something in the filename or description (apropos style or something).
also, needs a menu so you can easily delete everything.

replacement/generic content like texture packages shouldn't need a -game

map packages will often have a dependancy upon an existing mod, and should be installed in that mod's gamedir instead.

I did consider doing something similar myself, but I ended up overengineering it to be too weird for anything but standalone mods. oh, and I didn't bother with an uninstall option (partly because of the problems with multiple versions of a mod needing to be installed in order to cope with servers running different versions of the mod, as well as mods potentially requiring generic/shared stuff like texture packages).
hence fte's .fmf thing. 
 
@spirit --- I'm using the QI user-agent like you told me about.

@spike

utilities.c in the source is loaded with several common sense sanity checks and I mention above having a "todo" where the uninstall only uninstalls via the source zip to see what files came with the mod, leaving user content to the user.

There isn't anything new here, the Quake Injector has done this for ages, here is its xml database.

Someone wanting to do things the old fashioned way isn't prevented from doing that.

The "install" command merely intelligently unzips a file the way you or I could without reading the readme.

- If it sees a .pak or a progs.dat it goes to it's own gamedir.
- If it just contains .bsp files, should go in the maps folder.

Installing an unknown zip into place is relable, but the game parameters and other settings remain unknown. Someone may still need to read the readme to get an unknown mod running.

Having the engine read Quaddicted's database will help it with the rest for known mods. And soon enough it will auto-complete from Quaddicted's database.

Unknown mod? Wrong version? You can install by hand the way you do it today.

I agree with the replacement content shouldn't be a -game but some separate layer.

But ... Most important thing is to get another update out after testing on another computer. I suspect I have a dependency in my Windows $PATH that didn't make it into the .zip 
 
@spike part 2

Searching by word. Agree. Quake Injector lets you do this.

...

Probably an update tomorrow after I test on a few machines and do a revision. 
Experimental Build #2 
Windows GL | WinQuake

Experimental build #2 with ability to install directly from Quaddicted or a web address.

I've run this on (2) Windows 8 machines as verification in addition to my Windows 7 laptop that the download function works. (No longer uses libcurl for downloading the archives, so no external .dll files needed.)

Also fixed: cd play bug reported by fifth and a couple of things railmccoy pointed out when he simulated installation.

To install something from Quaddicted or a web address, type something like:

] install rapture (Will try quaddicted)
] install http://celephais.net/levels/files/rubicon2.zip (direct from web address)

Also can uninstall and likewise this is experimental.

] uninstall rapture (removes quake/rapture gamedir contents and folder, but leaves rapture.zip available)
] uninstall rapture full (removes the rapture.zip as well)

More refinements need to be done ... 
@nightfright 
I'm going to figure out a way to make content replacement easy for you.

I don't know the exact method, and it maybe a couple of weeks before I sort that out.

But it would be nice to make conservative classic Quake replacement content available to more people and do it easily. 
Level Ending Msg 
Take your time with that. Main thing right now is to fix any remaining issues (or those which may still be found).

I am still wondering why that "Current music track" message pops up on the level ending screen, and it's always track03. Even if no music is played, regardless which addon. Weird. 
 
Played around with install a bit more and encountered no bugs, other than a crash that occurs when you input an https URL.

I have a few general feedback points as well. Firstly, while not really a bug, it seems strange that it gives you the impression of downloading something if you feed it the name of a file that doesn't exist; eg 'install sthashahaeg'. Would probably be better if it just informed you that such a file doesn't exist.

It also seems inconsistent that the feature allows you to install certain types of files (eg maps as opposed to mods) but doesn't let you uninstall them, just the archive. Related to this is the absence of autocomplete for the zips. Maybe an uninstall_zip command?

I suppose there are arguments both ways - for keeping the simplicity of confining it to just 2 commands, install and uninstall, and keeping it to just folders rather than all kinds of loose files versus giving more complexity but greater consistency and a fuller feature set.

The other thing I noticed is how much good feedback it gives you, with clear descriptions of the features when using them, and useful notices when you use it incorrectly. It would be nice to see this extended to all cvars and commands in the engine, similar to the level of info DP and FTE give you when using the console.

Also, as Spike says, autocomplete and apropos/find for the Quaddicted archive seem like essentials, and this would then seem an opportune time to extend that kind of discoverability to all cvars and commands. 
 
Quaddicted needs an API. Any programmers here? 
Is It Just Me 
but it seems FMv has turn the wrong direction.

Why in the world the engine has to install the mods instead of you?

i don't get it. What's next, the engine that playing the game instead of you're?

there's more and more similarities between this engine and DP (no double penetrate confused) 
 
I could add a command line parameter that disables those 2 commands.

The main purpose is to allow the Quake server in a LAN coop game to share the archive to other computers.

Instead of downloading each map, model, sound.

Which doesn't work for single player releases because:
1) Skyboxes. QuakeC doesn't know about these.
2) .lit files. QuakeC doesn't know about them.
3) Other misc files that are part of a single player experience that is a .mdl, .spr, .bsp or .wav

I know most people don't care about coop, but it is a major interest of mine. 
@spy 
This is actually a Very Good feature.

For the likes of you and me it's unnecessary. For the casual player or newcomer to Quake it's absolutely essential. Installing mods, making sure you get the right files into the right directories, setting up dependencies - these are all huge barriers and while you may think they're basic enough, you'd be surprised at how much difficulty the non-technical end user can have in getting them done. Even something as simple as getting the engine executable into the correct directory is something I've personally witnessed people having trouble with. 
Install Command Now Seems To Work 
Pretty nifty feature, not entirely sure if I will use it really since you have to know what you're looking for beforehand. If there was a way to browse before you install.

Could be worth having a list feature, maybe "install list"? While we're on the subject of lists, I can't remember which engine had the feature but it'd be cool if there was a way of having things in the console have rows/columns rather than say 1 item per line. (like if you remember in DOS you could put /p /w and it would fill the screen so you didn't have to scroll so much). 
Basically 
i'm really sorry for my expression. 
 
For the casual player or newcomer to Quake it's absolutely essential.

Actually i'm not sure the newcomer that never installed the mod in a "proper way", would install the mod via console command using the engine. 
 
A feature that definitely IS for newcomers is the "Levels" menu option. I absolutely love it since it makes level packs that come without start map (e.g. one of the Retro Jam releases) very easy to use. You can choose any map without using the console at all.

The bottom line is: If you really want the feature to be accessible, it may need to work via the game menu. 
 
How many newcomers does Quake 1 get these days? 
 
More than usual, just judging from this thread.

I don't really agree that a menu option is top priority, though. 
 
Kind of interesting to reflect on what you'd want to do to make a perfectly accessible engine for a newcomer to Quake; say someone who took up gaming in the last 5 years and only has experience of Steam.

You'd probably want to ensure that they never have any interaction with the directory structure, the command-line, configs or the console. That's basically how Steam functions, even if you're playing a game with mods. You just launch the game through the Steam UI, and if you want mods, you just double click stuff on the Workshop and it all installs automatically, never leaving the Steam interface.

So for Quake, you'd want the source port to come packaged in an installer (a single exe in a single exe sounds absurd, but as mh said, putting the engine in the right place isn't necessarily obvious to a newcomer to Quake) which the user just double clicks and it detects where Quake is and puts the exe in the right place, then creates a shortcut on the desktop. Maybe it could come packaged with Quake Injector too, as a means of ensuring that downloading and installing mods is all menu driven, rather than fiddling with rars and zips and the directory structure, with the Injector also creating its own desktop shortcut.

Afaik Quake Injector doesn't have any means to set up the correct command-line switches automatically though, so that would be an issue. I know some engines - FodQuake for sure - do away with the command-line entirely, so instead of having -heapsize etc, it just allocates memory correctly on the fly. That would probably solve a large percentage of command-lines required by mods.

Another interesting idea would be to actually get all that on to Steam through Greenlight. There are various old HL and HL2 mods up there now which you download directly through Steam servers, and Valve's long term plan is to allow basically any kind of software on Steam, so it'd be an interesting first to see if a source port could end up on there. =)

That way people who have Quake on Steam would likely find themselves directed through Steam's recommendation system to any custom Quake engine available on Steam, rather than being stuck with broken glQuake or having to trawl round the web searching for engines which they won't know how to install.

If something like that was in place, you could play Quake and any mod without ever touching anything other than desktop shortcuts/Steam UI and in-game menus, which would certainly make Quake future proof and more accessible to a wider audience. 
Finished Tests 
I see that some silence has returned to this thread. :P

Well, just dropped in to say that I am finished with my basic Mk V testing sessions.

I checked these:
- Quake + mission packs
- Nehahra
- Travail
- Shrak
- Malice
- Abyss of Pandemonium
- Beyond Belief
- Honey
- Rubicon Rumble Pack
- ne_ruins
- Rapture
- Soul of Evil
- Soul of Evil: Indian Summer
- In the Shadows
- Retro Jam 1-3
- Func Map Jam 1+2

Good news: No problems with any of these actually - besides the remaining issues with Shrak (white skin textures) and Malice (fov crash in map d15).

I will check some Quoth and Drake missions, but I am confident Mk V will do fine here, too. :) 
 
I'm glad to hear it!

Haven't had much to talk about because I've been working away on the to-do list and items in this thread.

But I'm only about 70% done, so late next week is likely when the next version will be out. 
Autosave 
How do I load from the autosave? I press F9 and it loads from the manual quicksave. 
 
Type load and the press a and then TAB.

You'll see a0.sav, a1.sav and a2.sav

(I need to give them better names but initially I didn't call them auto_save because some single player releases with autosave tend to use a name like auto_save.) 
 
a0 = newest, a1 a few minutes older, 2 a few minutes older than that. 
F9 
should probably load the latest autosave... Or the last autosave should show up in the load menu. Either/or will do. 
MarkV Vs Quakespasm 
The last Quakespasm update at Quaddicted says Baker ported a MarkV feature into Quakespasm. I know he's involved in both projects. So, what are the differences between them? 
MarkV Vs Quakespasm 
I am sure Baker can tell you all the differences instantly. For me, the most important difference is actually that Mk V can run Nehahra. And that's amazing.

Hoping that Baker eventually gets back to working on the new version. Still waiting for the Shrak/Malice fixes. ^^ 
 
Yah , Nehara is good.

MarkV is a windows project, with more experimental/fancy features. QS is multiplatform and, perhaps, more solid. 
 
Is the fog problem in Neh2m5 fixed? 
 
Is there any way to limit the game fps to 72 without syncing to the monitor refresh rate? My monitor only does 60 Hz. Also, with vsync on, there's some weird lag going on.

DirectQ has this feature, but unfortunately, it also has an annoying issue where the player will start sinking into the floor after some time of playing. 
 
Host_maxfps should do it 
 
Thanks, that's it! Still unplayable with it set to 72 though; quite jerky. I guess I won't be playing e3m2 with this engine. Everything else seems fine though! 
Post A Reply:
Name:
Title:
Body:
message
question
exclamation
idea
flame
noflame
error
skull
beer
moon
pent
rocket
sheep
pacman
pig
cheese
worldcraft
gauntlet
crate
pitfall
pimp
smile
cool
sad
frown
oi
yay
tongue
evil
wink
neutral
q1
q2
q3
ut
hl
cs
doom
dkt
serious
cube
Website copyright © 2002-2015 John Fitzgibbons. All posts are copyright their respective authors.