News | Forum | People | FAQ | Links | Search | Register | Log in
Quakespasm Engine
This engine needs its own thread.

Feedback: I like the OS X version, but I have to start it from the terminal for it to work and can't just double-click it like a traditional OS X app. I'm sure you guys already know this, either way great engine.

http://quakespasm.sourceforge.net/
First | Previous | Next | Last
 
Judging by the source code, -fitz prevents loading of the whole quakespasm.pak, which includes alternative default keybinds, conback picture and ent files.

Speaking of features, it would be cool to refactor the menu in such a fashion that menu controls could be anything else than arrows. But damn, this looks like a lot of manual labor. What are the chances of breaking something important in case of menu controls altering, I wonder. 
So When I Deleted My Quakespasm.pak... 
I basically always run in -fitz mode? 
#3307 
No, because there are hard-coded behaviours in the engine that don't depend on content. 
 
Going through the source code, the exact and only differences -fitz applies are:

- Don't load the custom quakespasm.pak
- Run the normal demo loop (QS otherwise goes straight to the menus at startup).
- Pop up the Quit prompt (QS otherwise just quits immediately).
- Revert some changes to the solo scoreboard layout.

If you delete the quakespasm.pak you'll get the first of these; you will not get the others so you will not be always running in -fitz mode just by doing this.

It's also the case that future revisions of QS may add more.

Don't let this become one of those stupid items of "Quake lore" where the entire Quake community becomes religiously convinced of something that's actually flat-out wrong. 
 
startdemos is called by quake.rc. If QS has its own .pak to overwrite settings, it can ignore startdemos by simply omitting it from quake.rc. Does QS actually ignore startdemos in the engine itself? 
@mankrip 
Hardcoded in the engine 
 
Does QS actually ignore startdemos in the engine itself?
Yeah, QS disables the "startdemos" command, unless -fitz is used.

MarkV's approach seems better to me; it has an archived host_startdemos cvar default to 1, if you want to disable startdemos for all mods you can add "host_startdemos 0" to your id1/autoexec.cfg or launch with +host_startdemos 0. 
QS/Quoth Bugs 
Not sure if this is solely related to QuakeSpasm, due to it being the only port I use, but there are some bugs when playing Quoth, such as the Trinity/Reflection flashblends not getting cleared after loading a quicksave or the view offsets and roll being misaligned when quickloading during an earthquake effect until either restarting the engine or letting the effect play out in its entirety. Also, is it intentional that monsters aren't interpolated when they are on a moving platform, or is this not implemented yet? Last thing of note is that the "give a(rmor) x" command is bugged in QS and Mark V when playing with Dissolution of Eternity. The amount entered is properly set, but the armor icon doesn't update and for some reason it makes you able to fire lava nails without having the SNG. 
Buggy Mouse Look In 0.93.0 
I just downloaded 0.93.0 after using 0.92.1 for a while without any issues and my mouse is skipping around a lot. I'll be looking straight ahead when suddenly I'll do an instant 180 and be looking behind me. Sometimes I end up looking at the floor or any other random direction, and it often leads to blowing myself up when using an explosive weapon.

Apparently I seem to be the only person experiencing this but after doing two fresh installs, I can't seem to get rid of the problem. The only resolution is to continue using 0.92.1, but any help or suggestions would be appreciated. 
@Poorchop 
Do you experience this on both the SDL 2 and the SDL 1.2 .exe? 
#3314 
A Windows 10 update broke that. The SDL2 version should still work though. 
#3314 #3316 
@Poorchop
Funnily enough, I get the same mouse problems with Doom 64 EX, which also uses SDL 1.2, but not with Quakespasm SDL 1.2.

@Kinn
Sorry for getting off-topic, but ironically, regarding Doom 64 EX, there is a Windows 10 fix for the mouse issues, but I have Windows 7 and mouse issues anyway. The fix doesn't work for me either. 
 
Also, is it intentional that monsters aren't interpolated when they are on a moving platform, or is this not implemented yet?

This bug existed in Fitzquake as well, I never could figure out why.

Also falling scrags in demo1.dem seem to not interpolate their fall. 
 
Last thing of note is that the "give a(rmor) x" command is bugged in QS and Mark V when playing with Dissolution of Eternity. The amount entered is properly set, but the armor icon doesn't update and for some reason it makes you able to fire lava nails without having the SNG.

This command doesn't exist in the original Quake engine and the bug is inherited from FitzQuake. The Rogue/DoE mission pack uses different defines for armour, and the original defines are instead used for some weapons.

In your specific case, the original IT_ARMOR1 define has a value of 8192; in the Rogue mod that's actually RIT_LAVA_SUPER_NAILGUN, so hence the behaviour you see.

Engines implementing a "give a" command should test for "if (rogue)" and use RIT_ARMOR1, RIT_ARMOR2 and RIT_ARMOR3 instead of IT_ARMOR1, IT_ARMOR2 and IT_ARMOR3. 
 
@Poorchop, which .exe did you experience the bug with in 0.93.0?

The naming convention changed so quakespasm.exe is SDL2.0. This one should be mouse bug-free because it uses raw input, and the other one - quakespasm-sdl12.exe (and all SDL1.2 apps) have known broken mouse input since the Windows 10 Fall creators update. 
 
I know we had a brief Q&A about this upthread, but it really does seem like something needs to be done with that SDL 1.2 version. If not getting rid of it entirely, then isolating/renaming it so that people only use it if they really need it (i.e. are playing on Win95). 
 
something needs to be done with that SDL 1.2 version. If not getting rid of it entirely, then isolating/renaming it so that people only use it if they really need it (i.e. are playing on Win95).

The bad thing about SDL-1.2 on Windows is that no one has backported the bug fix for Fall Creators Update (Win10 v1709) SetCursorPos() bug to it yet: someone should -- I tried myself but got lost in the mess and gave up.. Other than that it still works OK, and it's still good for systems where SDL2 is not available. 
@mh 
Give commands suggestion:
The mod should be able to define the give commands in the quake.rc file or default.cfg.
Something like:
set give "1", 2048
set give "2", 4096
set give "3", 1024
set give "0", 16384
set give "n", 256
set give "s", 512
Etc. Etc.

This would also add ability for any char to give specific mod ITems. Well, except for .items2 or .moditems that is.

I'm okay with having builtin give overrides for the mispacks, but any more and it gets ridiculous adding in a bunch of mod specific checks. At least this might provide support for these cheats to future mods or allows enterprising Quakers to make their own mod quake.rc updates and share them for different mods. 
 
ericw and DabbingSquidward, thanks for your help. I was wondering why one of the executables was called quakespasm-sdl12.exe instead of *-sdl2.exe. I read the changelog yesterday but I guess I somehow missed that part. That explains why I wasn't having issues in 0.92.1 - I was using SDL 2.

I've been swearing off Windows 10 for years but I finally decided to give it a shot, and of course it's the root of many of my problems, not just with Quakespasm. Go figure. Anyway, I tried the standard .exe with 0.93.0 (SDL 2) and it's working perfectly. Thanks for your help. 
 
The mod should be able to define the give commands

In that case, aliased impulses would work better, because they're compatible with any engine.

The "give" command is for end users, not for mod authors.

A middle ground would be to make the "give" command accept raw bitflag values. Accepting raw bitflags only would make the code even cleaner. 
 
Speaking of which, what are all the items that the 'give' command is able to grant? The ones I know of are:

3-SSG
4-NG
5-SNG
6-GL
7-RL
8-LG
H-Health
A-Armor (Fitz, Spasm & Mark V)
S-Shells
N-Nails
R-Rockets
C-Cells
L-Lava Nails
M-Multi Rockets
P-Plasma

Is there anything I missed? To add to the suggestion, it would be nice if the command accepted whole words or classnames, like in GoldSrc or every engine beginning with id Tech 2. Such as "give weapon_supershotgun", "give ammo_shells_large" or "give item_artifact_super_damage". 
 
That's pretty much complete, aside from some Hipnotic weirdness in the weapon give commands (0 = hammer, 6a = proximity gun, 9 = laser cannon). 
 
The "give" command is for end users, not for mod authors.

I'd go one further and say that the "give" command is a cheat, so it shouldn't be expected to be 100% robust.

it would be nice if the command accepted whole words or classnames, like in GoldSrc or every engine beginning with id Tech 2

On the surface this seems a reasonable and sensible proposition.

However, Quake 2 fully moved the "give" command into the game DLL, meaning that mod authors were responsible for writing up it's behaviour.

Would Q1 mod authors be willing to accept something similar?

This is a more general issue with proposals of the "Q2/HL did it so why can't Q1?" nature; making such changes can involve architectural changes which may break compatibility. Of course Q2 and HL didn't need to be compatible with Q1. 
 
Yes, something like that in the Q1 architecture would be a massive hack. And imo, hacky features are the main responsible for feature creepiness in such projects, dragging the projects to a slow death.

The less silly code to maintain, the better. 
I Don't Mind The Idea Of Direct Bit Value 
give muh-bits 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.