I can't remember exactly what I was doing 17 years ago, but it probably didn't involve playing the at-the-time violently controversial PC game Carmagddeon. I almost certainly wouldn't have been poking around the game's data files... but if I — or anyone for that matter — had taken the time to investigate, well, they'd have discovered some interesting tidbits.
A developer by the name of Jeff Harris recently found himself with time on his hands to go diving into Carmageddon's debug symbols file. Usually symbol files aren't included in the distribution of a game, but they can occassionally turn up it the person responsible for packaging up the game forgets to delete them.
Symbol files allow a programmer to map internal program calls to their source code counterparts, which makes tracking down errors a lot easier. Of course, you can understand why this information would be irrelevant to include with the final game. Yet, for Carmageddon's Splat Pack, a file entitled "DETHRSC.SYM" found its way into the end product.
Davis explains on his blog the process of investigating the file's insides:
Having made a remake of the Carmageddon engine, and being generally curious about random binary files, I tried to figure out the file format. Immediately by looking at it in a hex editor, it was obviously a debugging symbol file, the question was which type of symbol file? Of course, there are many symbol files with a .sym extension, and after some trial and error, it turned out to be a Watcom symbol file. I grabbed a copy of OpenWatcom and fired up the debugger, wd. It could read the symbols, but I never found any Carmageddon executable that matched up with it. It seems likely it was left there by mistake from a debug build.
I realise this will make no sense to a lot of people — it's sufficient to say that Davis was able figure out the actual names of the internal calls used in the game and they're colourful to say the least. Several readers of /r/gamedev on Reddit uncovered the following gems:
There are quite a few others (including plenty containing NSFW language), which you can check out on /r/gamedev.