So When I Deleted My Quakespasm.pak...
#3307 posted by Qmaster on 2018/03/22 21:20:30
I basically always run in -fitz mode?
#3307
#3308 posted by mh on 2018/03/22 22:12:37
No, because there are hard-coded behaviours in the engine that don't depend on content.
#3309 posted by mh on 2018/03/23 11:33:29
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.
#3310 posted by mankrip on 2018/03/23 18:17:04
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
#3311 posted by path0gen on 2018/03/23 19:12:18
Hardcoded in the engine
#3312 posted by ericw on 2018/03/23 19:52:32
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
#3313 posted by DabbingSquidward on 2018/03/26 11:41:53
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
#3314 posted by Poorchop on 2018/03/26 12:05:38
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
#3315 posted by DabbingSquidward on 2018/03/26 12:27:59
Do you experience this on both the SDL 2 and the SDL 1.2 .exe?
#3314
#3316 posted by Kinn on 2018/03/26 12:37:42
A Windows 10 update broke that. The SDL2 version should still work though.
#3314 #3316
#3317 posted by DabbingSquidward on 2018/03/26 14:23:55
@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.
#3318 posted by metlslime on 2018/03/26 20:00:34
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.
#3319 posted by mh on 2018/03/26 20:02:43
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.
#3320 posted by ericw on 2018/03/26 20:07:35
@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.
#3321 posted by Joel B on 2018/03/26 20:21:56
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).
#3322 posted by szo on 2018/03/26 20:43:51
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
#3323 posted by Qmaster on 2018/03/26 22:24:28
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.
#3324 posted by Poorchop on 2018/03/26 22:34:45
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.
#3325 posted by mankrip on 2018/03/27 15:55:37
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.
#3326 posted by DabbingSquidward on 2018/03/27 19:03:12
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".
#3327 posted by mh on 2018/03/27 20:12:27
That's pretty much complete, aside from some Hipnotic weirdness in the weapon give commands (0 = hammer, 6a = proximity gun, 9 = laser cannon).
#3328 posted by mh on 2018/03/28 14:42:00
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.
#3329 posted by mankrip on 2018/03/28 15:16:29
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
#3330 posted by Qmaster on 2018/03/28 16:23:55
give muh-bits
#3331 posted by Spike on 2018/03/29 15:41:30
Just use [krimzon_]SV_ParseClientCommand.
Then the mod can provide whatever it wants without needing the user to do weird stuff etc, and without the engine changing quite so many random fields and breaking stuff by doing so...
|