Saturday, July 17, 2010

Final list of upcoming changes

This is part 1 of what I hope will be the final list of upcoming changes for 1.8.666; there may not be a part 2 (depending on how things work out with the Rc3 release over the next few days).

I've removed the palette gamma scaling. This was always something of a kludgy hack, it never worked right with external textures, and it's not going to work right with HL BSP (whenever I get around to re-implementing it properly). To prevent DirectQ from being too dark when you start it up I've rescaled the value of the gamma cvar to the same range when it's applied. This should hopefully prevent the final release from being too much of a shock to everyone's system.

Of course this means that when you run DirectQ windowed the gamma ramp will be applied to your full desktop. There are some things I've done to lessen the effect of this. Firstly, when you Alt-Tab away your original desktop gamma will be restored. When you Alt-Tab back DirectQ's gamma is restored. Secondly, if DirectQ crashes it will attempt to restore your original desktop gamma.

At some point in time I may change it to use D3D gamma control, but I would need to be certain of it's behaviour if I did so. Not for this release in other words.

I'm going to re-examine the way I currently handle lightmaps. What I do at present is calculate a lightmap table from the colormap and use that as a lookup for the final lightmap intensity; this is great if one of Those Wacky Modders has implemented a custom colormap with different lighting ranges to what ID Quake uses, but it does make DirectQ look a little different from everything else. Probably not that big a deal overall, but I do suspect that it's not getting the full 2x range as a result.

I'm also doing something similar with the palette and I want to be certain that it's valid and that I'm not getting anything too odd as a result.

There are some system settings that I would really love to move out of the cfg files and into the Registry. Unfortunately the Registry has a bad reputation (based on FUD, lies and deception) so I probably won't do it. It would make the whole application, and in particular video startup, a lot more stable and solid if I felt that I could, however.

That's about it for now. Till next time!

Update - Part 2

I've removed the code that checks if the status bar needs to be redrawn, and that only redraws it if so. It's proven to be too fragile and the entire engine was littered with calls to Sbar_Changed () in some quite odd places. This will drop a percent or two framerate, but nothing too drastic.

This also means that I can potentially be able to move the FPS counter and clock back down towards the bottom of the screen instead of having them overlay the 3D refresh area. However, I kinda like them where they are, so unless anyone really wants them moved I'm going to leave them be.

There's a bug where your health doesn't update properly on the status bar when you die. Shame on the lot of you for not spotting that one! This was a case of me trying to be too clever and falling flat on my face instead. Fixed now.

Palette and lightmap derivation from the colormap are gone now. Things are looking a lot more solid as a result. The next step seems to be to brighten up MDLs a little; I've already done this in MP, but they're a little too dark in SP as well (the Quad secret in e1m2 is a good example here).

All the fun of the fair.

Update - Part 3

RC3 was mistakenly labelled as "RC2" on both the splash screen and the title bar (if you're running windowed). Make sure that you're using the right version before reporting a bug!

RC3 shipped with my implementation of the Remake Quake protocol 999 (but I'm using number 777 to avoid conflicts with any future changes they may make - clear as mud!) There is a bug in the co-ordinate read/write functions, so if - for example - the first elevator ride in e1m1 is quite jerky, it means that you've just discovered that bug.

I've cross-checked with the RMQ engine and it exists there too, so I've notified the RMQ people of it. Meantime I've changed the co-ordinate format a little to remove the bug. This means that my implementation is no longer 100% compatible with their's, but that's OK for now. (It has also fixed a host of old problems, like getting stuck on the edges of slopes. Bonus!)

My new protocol 777 will be shipping with the final release, and I've bumped the number to 778 to reflect the change. I'm not retaining support for my old buggy 777 beyond RC3, so any demos you might record with RC3 won't work going forward.

2 comments:

Andy said...

It seems we've all been up the crack of Dawn. ;) I can't wait, mate.

Anonymous said...

DUDE!! QUAKE 64 HUD! LOL... Such a little thing that I love it!

-xaGe-