Splitscreen
#2075 posted by mh on 2016/06/27 17:36:44
This has come up quite a few times, and I think Spike has given some good discussions on what's involved, but one thing to realise is that this:
(obvs you'd need to have support for more than 1 pad)
Isn't true.
You need a hell of a lot more.
You need to recode the engine to be able to support 2 or more clients, running concurrently, in the same process.
#2076 posted by Izhido on 2016/06/27 19:27:42
And considering how there are more global variables in the Quake engine than atoms in our solar system, that is going to be a huuuge, collosal task.
I wonder, if that's the case, if we should consider instead recoding the engine completely, from scratch. And while we're at it, doing away with the hardcoded engine limits.
@Izhido Re:Limits
#2077 posted by Baker on 2016/06/27 20:17:43
Raised limits have long been standardized -- and mostly don't present a problem in modern times.
What Quakespasm uses as limits is essentially the standard. Those limits are ...
1) BSP2 for map limits
2) For non-map limits, the limits are nearly unchanged from FitzQuake 0.85 (with 2 small modifications, if I recall, max packet size and visedicts)
Protocol 666 --- written by metlslime in FitzQuake 0.85 in 2009. Supercedes protocol 15. If there were awards in Quake, metlslime would have won something like "Best Modification of The Decade" or something.
http://celephais.net/fitzquake --- comparing the FitzQuake 0.85 vs. FitzQuake 0.80 source codes.
http://forums.insideqc.com/viewtopic.php?f=12&t=2450 (summary of protocol 666 changes)
BSP2 --- written by MH in 2011 or 2012. Similarly outstanding like protocol 666.
Spike made a BSP2 patch of Mark V, which was used to easily port BSP2 to Quakespasm ...
http://triptohell.info/moodles/junk/markv_bsp2.zip <--- changes for BSP2
... and later probably the basis of BSP2 support in other engines like Super8 and Qrack, if I recall correctly. DarkPlaces and FTE support BSP2 as well. BSP2 was written by mh for the RemakeQuake engine.
Requiem Impulse 12 Hack
#2078 posted by qbism on 2016/06/28 05:32:29
I was able to get prev weap to work with ne_ruins a while ago based on reQuiem. It may require omission of quaketest compatibility or similar to obtain this result.
@qb
#2079 posted by Baker on 2016/06/28 05:56:31
The Requiem impulse 12 hack will crash neruins. Give yourself all weapons and ammo, then use impulse 12 a whole bunch. *boom*
#2080 posted by Baker on 2016/06/28 05:58:00
neruins doesn't need a impulse 12 hack. It has impulse 12 support for prev weapon in the progs. Nevertheless, the Requiem impulse 12 hack explodes on neruins.
#2081 posted by dwere on 2016/06/28 09:41:01
ne_ruins is a strange release. It's the only mod that screws with my movement speed settings, maybe except total conversions like Malice.
No, wait, I think I caught OpenQuartz doing something similar.
Impulse 12...
#2082 posted by JPL on 2016/06/28 19:58:12
try "give all" instead.. maybe this works.. though..
Baker
#2083 posted by necros on 2016/06/29 01:44:14
What's wrong with cycle reverse in ne_ruins? I always use 1.6 progs which has the reverse cycle function.
#2084 posted by Baker on 2016/06/29 02:41:16
Nothing is wrong with ne_ruins. The Requiem impulse 12 hack has a certain method of trying to determine whether or not a mod supports impulse 12 previous weapon and some it depends on QuakeC function names.
In the case of ne_ruins, it (falsely) concludes that ne_ruins doesn't have impulse 12 support and then does forced progs hacky kung-fu that explodes.
The only thing remarkable about ne_ruins is that it is first known mainstream mod that the impulse 12 hack doesn't play nice with.
Mark V has a cvar named "sv_fix_no_impulse12_exceptions" and the value is "ne_ruins" (supports comma delimited list i.e. "ne_ruins,kinns_new_sp" would work) --- so as you can imagine ne_ruins doesn't crash Mark V any more.
Kinns_new_sp...
#2085 posted by generic on 2016/06/29 03:06:16
Noted!
#2086 posted by necros on 2016/06/29 05:07:50
interesting. maybe because i refactored a lot of the impulse handling and renamed the W_WeaponFrame method to player_processInput?
what do you check for to determine that there isn't support?
#2087 posted by Baker on 2016/06/29 05:43:08
a) It looks for an ImpulseCommands function. If it cannot find one, assumes there is impulse 12 support.
b) Found an ImpulseCommands function. Check for a statement that checks to see if self.impulse == 12. If found one, assumes there is impulse 12 support, otherwise assumes there is not impulse 12 support.
ne_ruins apparently has an ImpulseCommands function but doesn't check for impulse 12 there.
Whitelist?
#2088 posted by qbism on 2016/06/29 06:06:23
"sv_fix_no_impulse12_exceptions" drips off the tounge like "r_nolerp_list", but could the approach be a whitelist instead of a blacklist? That is, a list of the old classic maps that need it.
The reQuiem impulse 12 hack is missing a 'default' fall-through during switch. The prev weap crash seems to be solved by coding the default to axe. But now next weap will fail... because it's not really an axe, it's a book or something...
#2089 posted by Baker on 2016/06/29 06:35:23
Well, there have to be a finite number of single player mods without impulse 12 support.
And in theory, if someone had the entire Quaddicted archive, could code an engine to switch gamedir to each gamedir and if impulse 12 support was not detected, write it to a log along with maybe ...
a) the CRC16 (what Quake uses), the filesize in bytes and maybe throw in a MD5 (because GitHub uses MD5 for file comparison and Linus Torvalds seems to how versioning down to a science)
b) and the file date and time from the archive.
1) Koohoo
2) Stuff using CustEnts like about all of Fat Controller's stuff
3) Probably a few random ones where the author could write QuakeC but used a bad progs base
Then you have to determine what dumb progs exist like Quake Progs 1.01 --- or is it 1.02? --- but catch the ones that aren't 1.06.
So yeah, whitelisting would work very well --- eventually. And would be the best solution long term.
Baker
#2090 posted by necros on 2016/06/29 16:57:05
Ok, I see, instead of checking is self.impulse == 12, i assigned self.impulse to a local float _impulse and then check that instead. :(
void() ImpulseCommands =
{
local float _impulse;
_impulse = self.impulse;
if (_impulse >= 1 && _impulse <= 8 || _impulse == 250)
W_ChangeWeapon ();
else if (_impulse == 9)
CheatCommand ();
else if (_impulse == 10)
CycleWeaponCommand ();
else if (_impulse == 11)
ServerflagsCommand ();
else if (_impulse == 12)
CycleWeaponReverseCommand ();
#2091 posted by dwere on 2016/06/30 03:40:31
Stumbled on a strange glitch while testing a new palette.
http://i.imgur.com/m38oeEe.png
Re-entering the map didn't change anything, but after restarting the game everything was back to normal. Only the torches, flames and hanging zombies seemed to be affected.
The way the zombies looked like random lumps of gore, twitching and extending their "tendrils" in semi-random directions, actually was pretty cool.
http://i.imgur.com/R7zye7B.png
I think it's an interesting idea for a new decoration, or an environmental hazard. Only if properly executed, of course.
Version 0.91.0, non-SDL2. Nothing suspicious in stdout.
Dwere
#2092 posted by ericw on 2016/06/30 21:10:40
Weird, I haven't seen that since the new mdl renderer was still being ironed out.
If you find a way to reproduce it that would be great, but I assume it's an unlikely combination of conditions to trigger the bug.
Hipnotic Decals...
#2093 posted by ptoing on 2016/07/01 17:18:11
Is there a way to turn them off? I think that those 1 hole decals are super ugly and don't look right in any way shape of form, so if there is a way to turn them off, that would be nice to know. (And if not, it would maybe be nice to include a way, though it might be a bit of a niche request)
#2094 posted by Kinn on 2016/07/01 17:29:36
I agree that the SoA decals look rougher than a badger's behind, but they are purely QC-based so the only way to turn them off would be for someone to create a modified progs.dat
Hmmm
#2095 posted by Kinn on 2016/07/01 17:35:31
or you could stamp over the sprite by making an invisible sprite with the same name, and putting in (for example) pak1.pak in the hipnotic folder
#2096 posted by ptoing on 2016/07/01 17:39:45
That might actually be worth a shot. Good idea.
#2097 posted by ptoing on 2016/07/01 17:58:14
Just did a quick replacement and it works like a charm. Here is a zip with the PAK for anyone who wants it.
https://dl.dropboxusercontent.com/u/15588722/post/func_msg/hipnotic_nobulletholes.zip
Nice One
#2098 posted by Kinn on 2016/07/01 18:17:03
Quakespasm 0.92.0 Released
#2099 posted by szo on 2016/07/02 07:12:48
|