The datamaster and jkspecs are just wrong and incomplete. They were good enough for modding back in the day
I guess, but they’re both full of blatant speculation to the point that they aren’t useful for writing an engine recreation.
A few months ago xzero told me about a new discovery: there are hard-coded global variable symbols in cog. The original single player levels depend on this behaviour. Jkspecs and datamaster document the globals as
messages, though, which is just wrong and more importantly random. Like they dumped strings from jk.exe and assumed they were just messages. It’s stuff like that. Our tribal knowledge is full of red herrings and you don’t know whether something is subtly or incredibly wrong until you individually validate everything.
And then there’s the pile of unknown flags. JK actually uses a lot of them and we have no idea what they do - but ****s broken without them implemented right.
So I’m really not kidding, 90% of the outstanding work is reverse engineering. At least for me! I know BAH has been doing this work, so their emulator has a more promising future than mine does.