|Posted by Baker on 2012/06/29 11:38:17|
|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:
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).
Shrak And Malice
Continuing my testing with latest Mk V build, I have checked out some more exotic addons: Shrak and Malice.
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.
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.
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
- 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;
tx = paliashdr->gltextures[e->skinnum][anim];
fb = paliashdr->fbtextures[e->skinnum][anim];
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)
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.
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.
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.
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
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.
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:
... <-- couple of lines with subs.qc/triggers.qc etc here
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.
This thread has been closed by a moderator.
Website copyright © 2002-2018 John Fitzgibbons. All posts are copyright their respective authors.