Quake Alpha Version from 1995 ??

But my point still remains, that graphic is part of the program that hasn’t been decompiled. How would such an expert miss it? If he was as good as he potrays himself to be. Only shows me that whatever he used must have ommited that. And that decompilation stuff doesn’t equal disassembly.

It actually tries to load at that point and switched to a different part of the program, that diskette graphic flashes in and out and then it hangs on the black screen for me if I disable the tcp/ip stuff. However I’m afraid its still dependand on that in practice so people should try to run it in a faithful environment.

Rick actually disassembled the entire thing to C here, and as others have stated, it basically does nothing interesting. You can also see the code that displays the graphic you’re seeing in the draw_screen function (it’s not actually a graphic at all, it’s just drawn out of basic rectangles).

https://gist.githubusercontent.com/gibbed/a5c3888fa160c47f311cb290de1945d6/raw/1b7cd745c4e8da5d15e2dceaca92850b000bd4be/main.c

I can only guess someone was very bored.

I know you’re trying to tell us that there’s more there, but none of the procedures in the application actually go anywhere else or do anything else beyond what you see disassembled. Again, it’s beyond doubt, at least to me, that this is a fake.

If you can provide something solid to the contrary that totally debunks that, we’ll be all ears, but right now you’re argument is that you just doubt it…

This is too precise to be a raw decompilation anyway and he says he took liberties. So how accurate is this, if that graphic is not really a graphic why didn’t he take it from doom which has a diskette graphic in the wad? And this is not.

If that code is any correct it could still be a hoax but the hoax can be the deconstruction itself. Why doesn’t he explain what shortcuts he took in “being lazy”? This is a completely polished code. It just doesn’t match that well.

What about Trident? Where does that appear in the code? It’s not here. Yet that was in the strings.

So I’m not convinced and I doubt it will have the same behavior when ran from this reconstruction. Might be similar enough but still. People didn’t make hoaxes back in the day like this. The reconstruction seems to be faked/rewritten. Because in practice it never ends up so perfect.

Zeur said it looks like someone tried to observe the behavior of the program and try to write a facsimile

This is pointless.

If you’re going to accuse someone of being a liar, please actually try to prove it. There is literally nothing to be gained from falsifying this and you’re not providing anything constructive.

I can say as far as I am concerned, everything in Rick’s decompilation is everything you’ve seen it do. From it’s “initialization” to it displaying the diskette “graphic”, followed by it exiting once it’s done iterating through the LVM. You’re not going to get any further with it than that.

In addition to that, I am aware of Rich’s background and have no reason to doubt his expertise either.

Both are experts in this subject and both came to the same conclusion.

Everyone has shown you evidence that it’s fake. You’ve disputed that with no foundation.

Everyone has provided you information on the experience of the guys involved. You’ve disputed that with no foundation.

If you believe everyone is wrong, prove it.

The strings about the comments with “have fun getting it to run” is also missing from this, so this cannot be in ANY WAY an actual decompilation, it seems to be rewritten what we could get to run and that’s it. The comments about garbage etc tell a lot. Looks like there’s a con-artist on the loose there and it isn’t the 0.8 alpha.

And if he was honest he would post the raw data and not reconstruction.

It is up to the ones who deconstructed it to PROVE that it is accurate. Not up to me to prove something, THEY have to prove it.

All you’ve shown me so far is arguments of convenience.

You have a lot to learn about decompilation. Just because there are additional strings in the executable does not necessarily mean they are used during execution (you’re not accounting for the fact that compilers were significantly less efficient back then too).

I should probably add, but a straight up decompile is just going to give you the instructions the executable uses. Rick’s taken the liberty to translate that into C for readability.

I highly highly recommend you try decompiling it yourself and checking the result, because you’ll find it matches.

But I have spoken and learned from someone who understands decompilation. But since I’m no expert on the subject I will have him speak about it and paste it here.

Last time you told me personally that you haven’t tried to decompile it yourself, yet you’re telling me I should try and I will for sure find it matches. If you aren’t sure yourself, you are falling into logical fallacy. Nobody should tell someone to try something and tell him the result if he hasn’t done so himself.

And indeed he shouldn’t have just taken the liberty because that leads to further inacurracy and instead also posted the raw data maybe?

But exactly it is also my problem with this, he only reconstructed what we see/got to run but there must be more, those strings are there but unreferenced (maybe, only maybe) but the original code must have had it.

Below I am adding what zeur said about it:
[Disclaimer: me’s not an expert on mess-dos programming, at all (in fact
me’s a UNIX guy), but medid grow up w/ mess-dos and medoes
understand the complexities me’s about to outline.]

Deconstruction of an executable program on mess-dos is not often an easy
task, but let’s assume Carmack was already using DJGPP at the time, and
that the 386 part of the executable is in some vaguely UNIX-like format
(such as COFF). That makes the job a whole lot easier.

Let’s recap what happens, classically, when creating a program from
source:

  1. preprocessing
  2. compilation
  3. assembly
  4. linkage

Some of these passes can be (and are often) condensed, but basically,
that’s what happens. At each step, the level of complexity is reduced,
and thus our reconstruction is an execise in managing subsequent
increases of complexity.

First of all, we take the executable apart into separate objects based
on the symbol table (the symbol table is however often stripped from
production software, making this (and debugging) difficult). Then, we
disassemble each object; if the resulting assembler code is garbage: we
know that the object most likely consists of data (if not already so
specified through the symbol table); otherwise, it’s more likely to be
actual code (as an experienced programmer will realize: in the end,
“code” is a special case of “data”, which means the results of this
separation cannot be definitive).

Then, we can attempt to decompile the code “back” into C code (assuming
it was written in C, but that’s more than reasonable assumption here).
Unfortunately, that in particular is very difficult to pull off with any
exactitude (especially if we don’t know the habits of the compiler used
to produce it), and indeed most automatic decompilers will produce
rather comical results. This is because of the simple fact that the same
sequence of machine instructions can map to many different expressions
(let alone statements) in the C language (and that’s discarding compiler
{opt,pess}imization). Straight decompilation is thus unlikely to yield
clean C code, let alone code that is, in appearance, anything like the
original.

Usually, there are very few traces of preprocessing in the compiled
code, so generally we can forget about reproducing that part altogether.

Of course, it’s possible to take a cowboy attitude and skip large chunks
of the process (this can be handy in a hurry, but is useless for
historically-accurate reconstruction), but the above is about how it
goes.

Now, one of the points you folks seem to gloss over: data objects are
objects, too! Why aren’t they included in your little “decompilation”?
Though hogsy’s comment about compilers not being so advanced is a good
one: code not being referenced does not mean it’s not necessarily there!
And (especially since this shit runs on mess-dos), there’s no
guarantee it isn’t referenced in any way.

Oh, and could you folks please define “garbage”? Random data? Stuff you
can’t make sense of (a common problem in reverse engineering)? Or
perhaps stuff that you were unable to “decompile”?

Technical considerations don’t go away with bluff, bluster, and personal
attacks. They stay. As many people in history have already had to find
out the hard way.

It must be a conspiracy. These so-called experts must’ve failed to go anywhere with the executable and now have to protect their reputation by making sure everyone thinks there’s nothing there.

Luckily, we’re not talking about E. coli here, so cries for the data to be released are not necessary. Just conduct your own experiments and be the hero when it turns out that a genuine working build is buried somewhere inside this mess.

You’re still not proving anything… I’ve asked you to try disassembling it yourself and see what you find. Who knows, maybe you will surprise me. Maybe you could show the build actually progressing beyond where Rick’s disassemble ends, that would certainly disprove it.

It should also be obvious why I’ve not disassembled it myself; as far as I’m concerned, folks that know better than me that I trust have already done the work and I have better things to do than needlessly try to disprove them.

Someone makes a claim and you want to see the actual data supporting the claim and that is bullshit? I’m sorry but this won’t fly with me.

EDIT: What I mean (apparently some people dont get what I mean) is that “someone else wants to see the data supporting such claim” and wanting that equals bullshit?

Zeur also says that what was reconstructed could have been a trap laid, the real entry point could have been elsewhere like in a pyramid.

Having looked at the disassembled C code and poked around a disassembly myself, QUAKE.EXE isn’t doing anything meaningful with the data in quake.lvm other than reading some random parts of the file and doing nothing with the result. The NETCONFIG program seems to write garbage to netv.cfg so nothing quake-related there.

quake.lvm contains garbage also, no strings/assets/gamedata inside it whatsoever. Unfortunately, it seems this might not be real, or some hoax created by ID at best.

Someone could tweet at Carmack/Romero I suppose?

It could have been a trap set by iD or the thing does contain different entry point that results in something else.

I am not against asking them, that would hopefuly clear things out.

Zeur points out that the epistemological problem here is that when confronted with a bucket of seemingly random bits, without context you can’t really tell for sure if those bits are really random.

But also there was a shadow warrior beta with dongles/cryptography etc, so it might be something like this. At this day and age though developers often misremember things. I don’t do twitter though.

But as I keep saying what is in the strings including that trident and the nfo description would match acidglow’s old story. I am not in contact with him anymore it was on irc, but I am sure he would remember.

My original hunch was try it with BW Utils and such, but I wasn’t able to install them for use with dosbox unfortunately. As even the MS Dos Quake (and don’t forget it was originally developed on unix) requires BW Utils for TCP/IP on MS Dos.

EDIT: There are programs that still write binary data to config files, I can name several emulators from the MS Dos era and even some modern ones do. Zeur finds this situation damn odd.

The config file might even be encrypted with asymmetric encryption with a public key.

EDIT2: Did anyone decompile the netconfig program?

A few strings extracted from NETCONFG.exe, nothing substantial unfortunately:

wb.netv.cfg
Not enough memory to allocate file structures
Quake net config file
stack Overflow!

Working on it.

zeurkous here, Leo_TCK is afk, posting w/ permission.

“wb” → little-endian “B[eame]W[hiteside]” :?

edit: do B&W interrupt swervices return ‘b’, ‘w’ in registers for an installation check? (me’s read parts of RBIL and such seems to be common).

Sounds like a pretty lazy way to do sockpuppets, IMO.

zeur here still :slight_smile:

We live together. Leo is me mate (as in, mating). Can we get back on-topic now?

Oh this isn’t the first time this has happened. Leo does this on other forums - Some of which he has been banned from, BetaArchive soon to be the latest added to that list as he cannot accept being told he is incorrect and just attacks people. it’s clear that zeurkous/leo are one and the same person/sockpuppet account

I’m actually surprised that I’m yet to be insulted here, considering that the word “jerks” featured as early as the top of the second page.

zeur here sigh

Do people really need to see our dick^Wbutt^Wfaces to see that we aren’t the same person? Or won’t you believe a picture either? Will you just keep sprouting these conspiracy theories no matter what?

The last luser who kept pestering others with the delusion that Leo and me and one and the same, well, he got a nice pacifier. Be warned.

Now, pretty pretty please, let’s get back on topic?