Post AXIcIyi5Cpq9OLbGHw by [email protected] | |
More posts by [email protected] | |
Post #AXIaGjCZh6yCo3f516 by [email protected] | |
0 likes, 0 repeats | |
I should make a big sign reading "it has been X days since Foone started r… | |
Post #AXIaUmXc4kKdDXCgEa by [email protected] | |
0 likes, 0 repeats | |
today it's 1997's Take No Prisoners by Raven Software | |
Post #AXIb82xexZPHRA6qky by [email protected] | |
0 likes, 0 repeats | |
definitely built on the Quake engine. some error messages match exactly. | |
Post #AXIbIeE1Ghs3u9ogyG by [email protected] | |
0 likes, 0 repeats | |
good to know this engine supports TRANS FLAGS (although it predates the most co… | |
Post #AXIbaP3oOAtu5KVaPw by [email protected] | |
0 likes, 0 repeats | |
why's every game got to have a scripting engine embedded in it these days*?… | |
Post #AXIcIyi5Cpq9OLbGHw by [email protected] | |
0 likes, 0 repeats | |
@foone oh what scripting language is in this game? a 90s version of python? per… | |
Post #AXIcIymKx1F7bXaev2 by [email protected] | |
0 likes, 0 repeats | |
@fries I think it's QuakeC, like regular quake? | |
Post #AXIdEsiZdtLdbTRLTE by [email protected] | |
0 likes, 0 repeats | |
So the scripting components seem to be in SCRIPTS.RPC (Raven PCode?) inside TNP… | |
Post #AXIdLEr2FiDxzoQfMO by [email protected] | |
0 likes, 0 repeats | |
it starts with an "RCC-OBJ" header .Searching that in the EXE gives t… | |
Post #AXIdWbU2STjBMe5ktU by [email protected] | |
0 likes, 0 repeats | |
@foone woo what is the weapon he's using | |
Post #AXIdWbZ0A1hJc2Pid6 by [email protected] | |
0 likes, 0 repeats | |
@chengdulittlea ALL OF THEM | |
Post #AXIdniHeQdFLNTSLOC by [email protected] | |
0 likes, 0 repeats | |
the VPK code apparently lives in "C:\\source\\outrage\\Res_man.c".Out… | |
Post #AXIdnlgvl6FZwkJ4i0 by [email protected] | |
0 likes, 0 repeats | |
ahh, mobygames says it has the working titles of "Outrage" and "… | |
Post #AXIe5S9X8qM0Yq7OSG by [email protected] | |
0 likes, 0 repeats | |
so it seems to solve the memory problem of loading a bunch of datafiles at star… | |
Post #AXIeMcCV2Mw8e9gmnY by [email protected] | |
0 likes, 0 repeats | |
so there appear to be a bunch of console commands that no one documented? fun. | |
Post #AXIevAqyhm3Rxz6MHA by [email protected] | |
0 likes, 0 repeats | |
so the function at 00450e00 registers some pcode debugging commands:pc_statspc_… | |
Post #AXIf8EB9eVt62plOXg by [email protected] | |
0 likes, 0 repeats | |
so pc_stats, loaded into level 1, says there are 345 services loaded, 1242 rout… | |
Post #AXIg2i5Dejy10Xv6US by [email protected] | |
0 likes, 0 repeats | |
it uses a tagged malloc system? interesting. you don't just do malloc(1600)… | |
Post #AXIgQTi8k9KZNoSU9w by [email protected] | |
0 likes, 0 repeats | |
the game supports up to 15 joysticks.16 would be ridiculous | |
Post #AXIgbr4AFWqZ0HBWro by [email protected] | |
0 likes, 0 repeats | |
correction: 15 joystick buttons | |
Post #AXIhSaXyOk4d7NGzgG by [email protected] | |
0 likes, 0 repeats | |
ahh, seems the tagged malloc is also in quake, but under a different name | |
Post #AXIhtpsbV19OUSuopU by [email protected] | |
0 likes, 0 repeats | |
apparently FUN_00454c50 loads pcode data per-level, so there apparently is per-… | |
Post #AXIiPhifNHJ2RrSmg4 by [email protected] | |
0 likes, 0 repeats | |
textures seem to be 8 bits per pixel but I think they've got some per-line … | |
Post #AXIj3SSbWi7MhruGMy by [email protected] | |
0 likes, 0 repeats | |
so it's weirder: images like this one do not have more complex metadata, bu… | |
Post #AXIjZuVKnLnSwyeqxc by [email protected] | |
0 likes, 0 repeats | |
@marcan that sounds like they were just trying to enable a way to root their co… | |
Post #AXIjg0ULSXbfFN6Otk by [email protected] | |
0 likes, 0 repeats | |
and this per-file level stuff I was looking at turns out to be savegame related… | |
Post #AXIk5AxLg3jOx4fagi by [email protected] | |
0 likes, 0 repeats | |
probably something like "we save the state of all scripting engine globals… | |
Post #AXIkDho5QJe39XPAC8 by [email protected] | |
0 likes, 0 repeats | |
@marcan yeah that'd be very funny, but unethical, and it would also make ni… | |
Post #AXIkXYp2XOqX4yJo5Q by [email protected] | |
0 likes, 0 repeats | |
@foone this implies that at some point they needed to support 8, right? | |
Post #AXIkpbgubsEdBo7cH2 by [email protected] | |
0 likes, 0 repeats | |
ugh. I think their bytecode has a "DPMI" instruction. that better not… | |
Post #AXIlBMw89CxbnecJma by [email protected] | |
0 likes, 0 repeats | |
so at 00515328 there's a char*[137] for all the opcodes. | |
Post #AXIlZ9ZnTKVzJWVoFk by [email protected] | |
0 likes, 0 repeats | |
DAT_0051c210 = DAT_0051c210 * 214013 + 2531011;magic numbers! that's the MS… | |
Post #AXIm1UxzXMqZlMLROi by [email protected] | |
0 likes, 0 repeats | |
once again I can't seem to force ghidra to handle switching on an enum prop… | |
Post #AXIm9kdp8uw6h4qZ2u by [email protected] | |
0 likes, 0 repeats | |
anyway FUN_00455a20 seems to be the inner loop of the interpreter. it's a b… | |
Post #AXIqupHk5uqGWWDl6u by [email protected] | |
0 likes, 0 repeats | |
you've been reverse engineering too much when you see these sorts of number… | |
Post #AXIr8wfPRigPTJ1Vyq by [email protected] | |
0 likes, 0 repeats | |
there's a string "VCR Connection not available" which I assume st… | |
Post #AXIrKAaA382HoZv9Qe by [email protected] | |
0 likes, 0 repeats | |
@foone ..... what are they :3 | |
Post #AXIrKAePnJRG1luY3k by [email protected] | |
0 likes, 0 repeats | |
@chrisisgr8 floating point numbres.0x3f800000 in particular is 1.0 | |
Post #AXIrP76gOls0U3URbU by [email protected] | |
0 likes, 0 repeats | |
@foone What, no HCF? For shame! | |
Post #AXIrP7AaAGzOg9JYgK by [email protected] | |
0 likes, 0 repeats | |
@brouhaha I know, right? what if you need to self-destruct the game to deny it … | |
Post #AXIrcpVCeGXTwFV1pg by [email protected] | |
0 likes, 0 repeats | |
@fooneinteractive analog horror | |
Post #AXIrcpZoN8E2AXei12 by [email protected] | |
0 likes, 0 repeats | |
@ToddVierling I think that's just the board game Nitemare/Atmosfear | |
Post #AXItJGoZakMglNMQTo by [email protected] | |
0 likes, 0 repeats | |
found an apparent exact match for Z_Free from the quake source, except they ren… | |
Post #AXItb26N25nQLP9gZs by [email protected] | |
0 likes, 0 repeats | |
they didn't even change the zoneid, it's still 0x1d4a11 | |
Post #AXItimXEnEUkNjPv60 by [email protected] | |
0 likes, 0 repeats | |
which might be a hex pun.id for all? | |
Post #AXIuNb54Hiq0jIhf4y by [email protected] | |
0 likes, 0 repeats | |
apparently the class called Naturals has a linked class called Unnaturals.Perso… | |
Post #AXIulc2kMEicfI4Kga by [email protected] | |
0 likes, 0 repeats | |
I think Visual C++ 5 or 6 has a very annoying optimization: if you have a loop… | |
Post #AXIutPtbPCzLJ5Vrd2 by [email protected] | |
0 likes, 0 repeats | |
this is a sort of thing that happens surprisingly often, thanks to null-termina… | |
Post #AXIv56YP8zoYnIAfk8 by [email protected] | |
0 likes, 0 repeats | |
an example.uVar3 here is counting up how many chars are in PcVar7, except MSVC … | |
Post #AXIvtlDQEuMFNnVlcO by [email protected] | |
0 likes, 0 repeats | |
huh, I didn't realize even WinQuake had some x86 assembly. I thought by the… | |
Post #AXIwzGwTo83NBRmLNA by [email protected] | |
0 likes, 0 repeats | |
found a vaguely undocumented subcommand of a command:the game will tell you tha… | |
Post #AXIx4eTHkp9pbcgkEq by [email protected] | |
0 likes, 0 repeats | |
the results are the same for my sample object, though | |
Post #AXIxAuC0DRsM6NaQAS by [email protected] | |
0 likes, 0 repeats | |
hey there's another."all" is undocumented but will give you all t… | |
Post #AXJ1E7EgZrPlExczCa by [email protected] | |
0 likes, 0 repeats | |
so the game apparently always has networked support enabled at some level, and … | |
Post #AXJ1q3eYLXch8Hor3o by [email protected] | |
0 likes, 0 repeats | |
yeah this is definitely visual C++.I should have recognized its foul stench whe… | |
Post #AXJ2SSopEHaYBdwB8a by [email protected] | |
0 likes, 0 repeats | |
So say you're given this structure, with a compiler set to pack it with no … | |
Post #AXJ2YZAWX7XvcOzqRE by [email protected] | |
0 likes, 0 repeats | |
and there's an array defined:struct foo foos[100];and there's some code… | |
Post #AXJ2gztx1e2yqSGUiW by [email protected] | |
0 likes, 0 repeats | |
now the compiler is gonna want to optimize this. The unoptimal way to do it is … | |
Post #AXJ2p0vZ5veALNqIjY by [email protected] | |
0 likes, 0 repeats | |
so the obvious way to do this is to turn it into a pointer.The pointer can just… | |
Post #AXJ2p3rQBn7BROvXBw by [email protected] | |
0 likes, 0 repeats | |
but this pointer has to, well, point somewhere.Logically it "should" … | |
Post #AXJ3BTTNdznXFMMxhQ by [email protected] | |
0 likes, 0 repeats | |
Like if the loop just needed to check the foo.e member, we could initialize the… | |
Post #AXJ3BWFfJRbrrgyYEq by [email protected] | |
0 likes, 0 repeats | |
so fun fact, MSVC (at least back in the mid-90s days) does do this but not in a… | |
Post #AXJ3BX3IKvJCLcCBay by [email protected] | |
0 likes, 0 repeats | |
given we need to read a at offset 0, e at offset 7, and h at offset 16, you'… | |
Post #AXJ3XpwilmnxJikxrE by [email protected] | |
0 likes, 0 repeats | |
SURPRISE it points the pointer at e | |
Post #AXJ3Xsj0REcHw3MYOe by [email protected] | |
0 likes, 0 repeats | |
so each iteration it reads ptr-7, ptr, and ptr+9 | |
Post #AXJ3XtVZWfSsMg5L60 by [email protected] | |
0 likes, 0 repeats | |
why? I have no fucking idea.my guess is that it's trying to make smaller co… | |
Post #AXJ3XuIUamb2oOyPLc by [email protected] | |
0 likes, 0 repeats | |
anyway @pjf pointed out I messed up my math in the struct to get the offsets so… | |
Post #AXJ7RIATqIisdSKKf2 by [email protected] | |
0 likes, 0 repeats | |
god I love finding a function that is something like DebugAssert()and half the … | |
Post #AXJ82llKm3UL8SR47M by [email protected] | |
0 likes, 0 repeats | |
this is why all evil game engines include shit like:void SetPlayerPosition(Play… | |
Post #AXJ8owEf8fB3W77eOO by [email protected] | |
0 likes, 0 repeats | |
excited to realize that by combining the res_idlist and res_idstat commands I c… | |
Post #AXJ91jJ0WUq7BEFolE by [email protected] | |
0 likes, 0 repeats | |
I guess the fact that res_idstat dumps all this info means I can use it to figu… | |
Post #AXJB6dZJTqaak9LgkC by [email protected] | |
0 likes, 0 repeats | |
@foone you don't remember QuakeC? | |
Post #AXJB6ddvCiH8yRVMvY by [email protected] | |
0 likes, 0 repeats | |
@Randomfrequency this engine is basically using a variant of quakeC! | |
Post #AXJHyp0XlVSHaGJ27U by [email protected] | |
0 likes, 0 repeats | |
one of the weirder things about this game: fully textured 3D engine, and it has… | |
Post #AXJI6KHzrMi8d332Nk by [email protected] | |
0 likes, 0 repeats | |
anyway that's enough for tonight. | |
Post #AXN745anD339bYPUGm by [email protected] | |
0 likes, 0 repeats | |
@foone But consider: have you dumped what isn't a VPK file? :phttps://pisto… | |
Post #AXN745fkub1HqwjS0O by [email protected] | |
0 likes, 0 repeats | |
@pistonminer very neat, hadn't heard of that!(and yeah, completely unrelate… |