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
@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 
 
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... 
@mh; @metlslime 
mh: 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.

Haha, just when you think there are no more quirks.

Also falling scrags in demo1.dem seem to not interpolate their fall.

Haha. mh and Spike explored/explained that one years ago --- it is a horror story of vast cruelty related to monsters and lifts.

Basically --- it cannot realistically be fixed.

Which I think that means mh might have tried in DirectQ, haha ;-) 
 
I tried, I failed, I crashed, I burned.

The problem is movement (*NOT* animation) interpolation is done differently for the two different classes of entity, resulting in minor differences and oscillations in positions.

I don't think there's a 100% robust one-size-fits-all solution for this. 
 
On lifts? Dead bodies could use MOVETYPE_FOLLOW.

On demo1.dem, where a dead scrag falls in the GK water pool? I'm not sure. It seems to be more of a general problem with far away entity movement being not interpolated correctly, since in some engines it also happens with the living fiends walking at the bottom of the water pit in the beginning of E2M2. 
Scaling Up 
Is there a way to scale up lower resolutions similar to Mark V WinQuake in order to get the classic chunky pixel look? Mark V WinQuake allows you to play at modern resolutions but scale up from 320x280 or 640x480 and it looks pretty true to the original even when playing at something like 1080p. It also preserves the original HUD scale.

WinQuake is great for closely approximating the look of the original game while still playing on modern monitors but I can't get the music to work and a bunch of new maps/mods utilize Quakespasm features. I feel like at least part of the original look could be recreated with upscaling. I tried setting r_scale to a higher number but that just makes everything look really blurry instead of crispy and chunky, and I can't find any other scaling settings apart from scaling the HUD. 
 
gltexturemode gl_nearest_mipmap_linear helps Quakespasm look a bit more WinQuakey. 
Music In Mark V 
I'm assuming you have your music in ogg-format. Mark V (infamously) doesn't support it (or at least I think it still doesn't). MP3 works at least. 
 
Mark V has native Mac and iPhone ports. Apple API does not do OGGs.

Apple API decodes mp3 via hardware acceleration and stop and start music at the drop of a pin including on Windows. Other engines cannot do this and have to do things like restart the map and such.

Mark V also does not need any DLLs to do what it does.

Also mp3 decoding via hardware uses almost no CPU, especially important on a portable device like an iPhone due to battery.

mp3 > ogg simply because all Intel and ARM chips have MPEG accelerated decoding built into the chip.

This is why your DVDs play fast. This is how music on your iPhone or Android phone plays.

Try playing an ogg on an Android phone and watch what it does (hint --- it says "converting to MP3"). 
 
Disabling texture filtering certainly helps but it still looks quite far from WinQuake without being able to scale up while preserving the aspect ratio. Also thanks for the advice regarding the music. I'll try the mp3 files instead so that I can have some music alongside the chunkiness of WinQuake when playing through vanilla stuff. 
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.