A | B | C | D | E | F | G | H | ||
---|---|---|---|---|---|---|---|---|---|
1 | Page | Status | Error | Correction | Name | Note from Fab | |||
2 | OBSOLETE, Report issues on https://github.com/fabiensanglard/gebbdoom/issues | ||||||||
3 | Paper | 114 | Duplicate of erratum #37 | Page starts with "duce the many monsters necessary." Missing previous line. | ng previous lin | Lewis Christie | |||
4 | PlayStore | 4 | Fixed in v1.1 | Missing space between "the" and "DOOM" | "...maps into the DOOM engine." | Daniel Monteiro | |||
5 | Paper | 5 | Fixed in v1.1 | ... helping me assembling a ...' | ... helping me assemble a ...' OR '... helping me with assembling a ...' | Rory O'Kenny | |||
6 | Paper | 6 | Fixed in v1.1 | Samuel Villarreal | John Corrado | ||||
7 | Paper | 19 | Fixed in v1.1 | Footnote 2: These is even a website | There is even a website | Olivier Cahagne | |||
8 | 300dpi | 20 | Fixed in v1.1 | Samuel Kaiser | "shortly" | Steve Hoelzer | |||
9 | Paper | 35 | Fixed in v1.1 | "Figure ??" | Need to point to the correct figure | Steve Hoelzer | |||
10 | Paper | 36 | Fixed in v1.1 | Footnote 17 appears to be missing. 17 is used for the word "Comparison" in Figure 2.7 but is not found in the footnotes. | Figure 17 should appear in the footnotes or probably removed from the Figure 2.7 description. | Ryan Cook | |||
11 | Paper | 36 | Fixed in v1.1 | Footnote #17 doesn't exist | |||||
12 | PlayStore | 38 | Fixed in v1.1 | "The VLB (VEAS Local Bus)" - should be "VESA Local Bus" | The VLB (VESA Local Bus) | ||||
13 | PlayStore | 39 | Fixed in v1.1 | Figure 2.15: Adress line connected to bit line and !bit line. | (lower left and right dots erroneous) | Bartosz Pikacz | ebbdoom/ | ||
14 | Paper | 43 | Fixed in v1.1 | With 2^32 / 4 = 1,073,741,824 addresses competing for four slots (…) | With 2^32 / 128 = 33,554,432 addresses sharing the same LINE value and competing for four slots (…) | Aurélien COUDERC | |||
15 | Paper | 48 | Fixed in v1.1 | "compared to the the ALU" between Figure 2.22 and 2.23 | cut one "the" | Frank Polster | |||
16 | Paper | 55 | Fixed in v1.1 | ... the most notorious chip of the era ...' | ... the most notorious ships of the era ...' | Rory O'Kenny | |||
17 | Paper | 56 | Fixed in v1.1 | "The VLB (VEAS Local Bus)" - should be "VESA Local Bus" | |||||
18 | Paper | 58 | Fixed in v1.1 | "The opposite page shows three VGA cards available in 1994" Opposite doesn't really make sense when reading a PDF. | "The following page shows three VGA cards available in 1994" | Aiden Hoopes | |||
19 | PlayStore | 60 | Fixed in v1.1 | ATAPI connector | The ATAPI connector is the IDE connector. ATAPI is the name of the protocol used to drive a CDROM over the IDE connector. The second connector is to get sound from the CDROM player. I think it was just called a CD audio connector. | Vincent Bernat | |||
20 | Paper | 61 | Fixed in v1.1 | "46.61512 Mhz Timer" | "46.61512 MHz oscillator" There are also 2 crystal resonators on the board | Boris Chuprin | |||
21 | Paper | 61 | fixed in v1.1 | "Expansion Interface for wavetable-capable WaveBlaster daughtercard" | "WaveBlaster Connector for MIDI "wavetable synthesizer" daughterboard" | Boris Chuprin | |||
22 | Paper | 61 | Fixed in v1.1 | "mic-in, line-in, volume wheel, line-out,and joystick port." | "line-in, mic-in, volume wheel, line/speaker-out and MIDI/joystick port." https://stason.org/TULARC/pc/sound-cards-multimedia/CREATIVE-LABS-INC-Sound-card-SOUNDBLASTER-16-ASP-C.html | Boris Chuprin | |||
23 | Paper | 61 | Fixed in v1.1x | "offered Sound Blaster 16-compatible music and digitized sound playback" | Nope, it *tried to* emulate SB2.0(not even Pro/Pro2) via software TSR utility that had serious compatibility issues. OPL2 music was out of the question, way too bad. See the last lines here: https://www.vogonswiki.com/index.php/Gravis_Ultrasound Without specific GUS support you would just get no sound from some games. No GUS cards emulate SB16 | Boris Chuprin | |||
24 | PlayStore | 61 | Fixed in v1.1 | Second, the card had to able to access the sampe at runtime | Second, the card had to be able to access the samples at runtime | ||||
25 | Paper | 62 | Fixed in v1.1 | "line-out, and joystick port." | "line-out and MIDI/joystick port." | Boris Chuprin | |||
26 | PlayStore | 66 | Fixed in v1.1 | not only had to pay for a modem and the monthly subscription to an Internet provider | Internet was not needed to play Doom through a modem. You can dial a friend directly. Also, no AOL subscription is needed to connect to a BBS either. I am not even sure it was possible to play Doom over Internet when it was released. | Vincent Bernat | |||
27 | PlayStore | 72 | Fixed in v1.1 | "In 1988, three Ph.Ds (Fred Crigger, Ian McPhee, and Jack Schueler) made it the first C compiler to run on an IBM PC" | I may have misunderstood: on the wikipedia page : Borland Turbo C 1.0 was released in 1987. | Olivier Neveu | |||
28 | Paper | 77 | Fixed in v1.1 | There is third aspect of protected-mode programming | There is a third aspect of protected-mode programming | Sam Williamson | |||
29 | 300dpi | 78 | Fixed in v1.1 | catching id SoftwareâĂŹs attention | catching id Software's attention | Bartosz Taudul | |||
30 | Paper | 93 | Fixed in v1.1 | Figure 3.10 shows 9 SIMM RAM slots | Should show 8 slots like on the actual photo on the previous page | Boris Chuprin | |||
31 | Paper | 93 | Fixed in v1.1 | "4 MiB default RAM" | "4 MiB VRAM" This is framebuffer RAM. Probably dual-ported. It is soldered to the board, is the only memory RAMDAC can read and can't be extended. | Boris Chuprin | |||
32 | Paper | 102 | Fixed in v1.1 | ...still a far cry from the 2,800 millions Sun... | ..still a far cry from the $2.8 billion Sun... | Richard Adem @richy486 | |||
33 | 300dpi | 107 | Fixed in v1.1 | "Musics composer" | Should be "Music composer" | Steve Hoelzer | |||
34 | PlayStore | 110 | Fixed in v1.1 | A few models managed to escape into the wild and are now highly priced by collectors. | A few models managed to escape into the wild and are now highly-prized by collectors. Or: A few models managed to escape into the wild and are now highly priced collectibles. | ||||
35 | PlayStore | 111 | Fixed in v1.1 | Fixed in v1.1 | "Using clay models was faster than drawing by hand but it was still not faster enough to pro-" | ||||
36 | Paper | 113 | Fixed in v1.1 | At the bottom of the page, the text that's supposed to be under the picture (the description) is inside the picture. See: https://i.imgur.com/plcE03E.jpg It's black on black so it cannot be read. | - | Alexandre-Xavier Labonté-Lamoureux (axdoomer) | |||
37 | Paper | 113 | Fixed in v1.1 | A. Carmack sculpting the Hell Knight, working from his preliminary drawing. | A. Carmack sculpting the Baron of Hell, working from his preliminary drawing. (It was during the development of Doom 1, the Hell Knight was only added in Doom 2.) | Alexandre-Xavier Labonté-Lamoureux (axdoomer) | |||
38 | Paper | 113 | Fixed in v1.1 | The second image is over the last text line, that cannot be read | The image should be a little smaller to leave room for the text, which is "Using clay models was faster than drawing by hand but it was still not faster enough to pro-" | Davide Gualano @davesio | |||
39 | Paper | 120 | Fixed in v1.1 | "[...] and a red tainted sunset" | "[...] and a red tinted sunset" (should be "tinted" not "tainted") | Matt Riggott | |||
40 | Paper | 122 | Fixed in v1.1 | DOOM II, Episode I | DOOM, Episode I. (or just DOOM2?) | Guilherme Manika | |||
41 | Paper | 123 | Fixed in v1.1 | DOOM II, Episode I | DOOM, Episode I. (or just DOOM2?) | Guilherme Manika | |||
42 | 300dpi | 126 | Fixed in v1.1 | "...both floors and walls were horizontal..." | "...both floors and ceilings were horizontal..." | Brian Gilbert @troldann | |||
43 | Paper | 127 | Fixed in v1.1 | Trivia: DoomED's icon is an Imp. | Trivia: DoomED's icon vaguely resembles a Baron of Hell. | Alexandre-Xavier Labonté-Lamoureux (axdoomer) | |||
44 | Paper | 131 | Fixed in v1.1 | The full twenty seven maps of the registered version requested 11 minutes. | The full twenty seven maps of the registered version required 11 minutes. | Jamis Eichenauer | |||
45 | Paper | 140 | Fixed in v1.1 | IB was nicely complemented by the OOP (Oriented Object Programming) | IB was nicely complemented by the OOP (Object Oriented Programming) | Vasil Yonkov vasily@mm.st | |||
46 | Paper | 141 | Fixed in v1.1 | Footnote 15: Mikea Ash | Mike Ash | Anders Montonen | |||
47 | Paper | 143 | Fixed in v1.1 | … in an envelop on the back cover … | … in an envelope on the back cover … | phg | |||
48 | Paper | 145 | Fixed in v1.1 | Wad `head` struct lists a member `int32_t numDirectories // Num directories'. | I think this should be `int32_t numLumps // Num lumps` based on the diagram on the following page and looking at some Doom code. | Chris @JayceAndTheNews | |||
49 | PlayStore | 148 | Fixed in v1.1 | [Footnote 4] "Large portions of previously censured portions of" ... should be "censored" not "censured" | Large portions of previously censored portions of | ||||
50 | PlayStore | 150 | Fixed in v1.1 | The stream 0x12, 0x34, 0x45, 0x78 can be... | The stream 0x12, 0x34, 0x56, 0x78 can be... | ||||
51 | Paper | 152 | Fixed in v1.1 | The stream 0x12, 0x34, 0x45, 0x78 can be... | The stream 0x12, 0x34, 0x56, 0x78 can be... | ||||
52 | Paper | 154 | Fixed in v1.1 | First line. nm is the one showing undefined symbols, not clang | Should be "Asking nm for undefined symbols"… | Boris Faure @billiob | |||
53 | PlayStore | 156 | Fixed in v1.1 | Third paragraph: "there is zero overheard" | There is zero overhead | Marcus Dicander | |||
54 | Paper | 160 | Fixed in v1.1 | ...a code convention is used to to tag functions. | ...a code convention is used to tag functions. | Patrick Hresko | |||
55 | PlayStore | 160 | Fixed in v1.1 | D_Display (); //Generate visio | D_Display (); //Generate video | ||||
56 | Paper | 162 | Fixed in v1.1 | Generate visio | Generate video | Richard Adem @richy486 | |||
57 | 300dpi | 167 | Fixed in v1.1 | there are display bugs with extremely large maps caused by to this specific problem | there are display bugs with extremely large maps caused by this specific problem | ||||
58 | Paper | 167 | Fixed in v1.1 | … caused by to this specific problem … | … caused by this specific problem … | phg | |||
59 | 300dpi | 172 | Fixed in v1.1 | Hexen Shareware, HEXENDEMO.WAD | Hexen is not shareware, there was a 4 level demo available. The filename was HEXEN.WAD. | Bartosz Taudul | |||
60 | Paper | 173 | Fixed in v1.1 | "in case the name was a fill 8 chars" code comment in the middle | "[...] full 8 chars" | Frank Polster | |||
61 | Paper | 174 | Fixed in v1.1 | ID is used to looked up a lumpcache... | ID is used to look up a lumpcache... | ||||
62 | Paper | 177 | Fixed in v1.1 | Figure 5.23 / Video System (DOS): “I_UpdateNoBlt” | “I_UpdateNoBlit” | phg | |||
63 | Paper | 180 | Fixed in v1.1 | Code: if (gamestate != oldgamestate && gamestate != GS_LEVEL in wrong place | In the downloaded source, this if block controls the running of I_SetPalette. The code in the book suggests R_RenderPlayerView is not run if the gamestate is GS_LEVEL, which is incorrect. Statement should be if (gamestate == GS_LEVEL && !automapactive && gametic) | ||||
64 | Paper | 192 | Fixed in v1.1 | ... recursively flowed into the adjourning sectors, ... | ... recursively flowed into the adjoining sectors | Rory Driscoll | |||
65 | PlayStore | 196 | Fixed in v1.1 | The area between B2, C2, F, and F is concave. We need one last split where F is selected as splitter. | The area between B2, C2, E, and F is concave. We need one last split where F is selected as splitter. | ||||
66 | Paper | 198 | Fixed in v1.1 | The area between B2, C2, F, and F is concave. | The area between B2, C2, E, and F is concave. | tronster | |||
67 | Paper | 199 | Fixed in v1.1 | The beauty of binary trees is that traversing them is O(log n)..." - this doesn't really apply here since traversing the BSP is O(n), not O(log n). It only looks like "log n" in the example, since the tree is degenerate. Bounding box culling should help get it closer to log n, but that isn't described. | Yes traversing any tree is O(N) but it is not case here. in R_RenderBSPNode you can see that john carmack has added R_CheckBBox function. This function will traverse some of the tree if it is in player FOV. Actually if you comment R_CheckBBox out, rendering will complete with no issues. I have done some analysis on E1M1 and with player being on spawn point. With R_CheckBBox enabled, R_RenderBSPNode will be called 81 times (hitting 32 leaves). While if you remove R_CheckBBox, R_RenderBSPNode will traverse though every node in the tree which will be called 477 times (hitting all 239 leaves). R_CheckBBox will skip traversing more than 50% of the tree in most cases. Note from FAB: I think it is fair to say the game engine was designed with worse case scenario in mind. Take the development of Quake (which is well documented in michael abrash black book) where they discarded some techniques because worse case sceneario was too bad. Yes there are cases where the BB will reject early entire portions of the BSP but this is an optimization, not the regular usecase. On this basis, I maintain in the book that O(N) is one of the attractive side of BSP. | Tzvetan Mikov | |||
68 | Paper | 202 | Fixed in v1.1 | the plan equation | the plane equation | tronster | |||
69 | Paper | 203 | Fixed in v1.1 | // Shortcut if node if horizontal. | Should be: // Shortcut if node is horizontal | Miltiadis Koutsokeras | |||
70 | Paper | 203 | Fixed in v1.1 | fixed_t dx, dx, ... | fixed_t dx, dy, ... | ||||
71 | Paper | 204 | Fixed in v1.1 | ... to the full range of a 32-bit integers.' | ... to the full range of a 32-bit integer.' | Rory O'Kenny | |||
72 | Paper | 224 | fixed in v1.1 | "with 0 being the brightness" at the bottom of the page | "with 0 being the brightest" | Frank Polster | |||
73 | Paper | 228 | Fixed in v1.1 | Each portion of sky is stored as a visplane and drawn as span of pixels. | Each portion of the sky is stored as a visplane and drawn as a column of pixels. (colfunc is used for rendering) | John Corrado | |||
74 | Paper | 234 | Fixed in v1.1 | ... to think of as a log ...' | ... to think of it as a log ...' | Rory O'Kenny | |||
75 | Paper | 235 | Fixed in v1.1 | A vissprite entry contains eveything | A vissprite entry contains everything | Miltiadis Koutsokeras | |||
76 | Paper | 237 | Fixed in v1.1 | These is no clipping in effect here | There is no clipping in effect here | Matthieu Nelmes | |||
77 | 300dpi | 245 | Fixed in v1.1 | 3rd and 4th line of code paste for D_ProcessEvents | I don't think head and tail should be of type event_t, but rather int or int*. The correction depends on what was intended. (Neither line appears in d_main.c in id-Software source release on git-hub.) | George Todd | |||
78 | PlayStore | 245 | Fixed in v1.1 | 5.15 Audio system, footnote #24, "Wolfenstein" is misspelled "Wolfesntein" | simple typo fix | ||||
79 | Paper | 247 | Fixed in v1.1 | Footnote 24 reference to "Game Engine Black Book: Wolfesntein 3D" | Should be "Wolfenstein 3D" | Tor H. Haugen @torh | |||
80 | Paper | 248 | Fixed in v1.1 | "MPU-402" "MPU-403" in Figure 5.48 | There were no such devices. There can be 'Roland MPU-401 UART mode compatible' MIDI port on several possible locations(330h usually). What is the source of the diagram? | Boris Chuprin | Source of the diagram is here https://github.com/nukeykt/PCDoom-v2/blob/master/i_sound.h#L37 | ||
81 | Paper | 254 | Fixed in v1.1 | "Sound propagation was used in a inventive in level E1M9" | "Sound propagation was used in an inventive way in level E1M9" (or "an inventive manner" or similar) | Daniel Lo Nigro | |||
82 | Paper | 262 | Fixed in v1.1 | Note that there is no reverse gib sequence, the Arch-Vile doesn't revive gibbed monsters. | Note that there is no reverse gib sequence, but the Arch-Vile still revives gibbed monsters. (The reverse normal death animation is used, same as if the monster wasn't gibbed) | Alexandre-Xavier Labonté-Lamoureux (axdoomer) | |||
83 | Paper | 265 | Fixed in v1.1 | .. for which a two frame animation cyles repeatedly | .. for which a two frame animation cycles repeatedly | Miltiadis Koutsokeras | |||
84 | Paper | 265 | Fixed in v1.1 | "(monsters do no have a..." | "(monsters do not have a..." | tronster | |||
85 | Paper | 271 | Fixed in v1.1 | Consider revising "Semantically, think_ts are stored..." as font change is subtle; looks to be calling out "think_ts" | (May be grammatically incorrect but the code reads better sans plural): "Semantically, think_t are stored..." | tronster | |||
86 | 300dpi | 280 | Fixed in v1.1 | "...where packet sequence number is tracked on a per-peer (a.k.a. node) basis." | "...where the packet sequence number is tracked on a per-peer (a.k.a. node) basis." | ||||
87 | Paper | 283 | Fixed in v1.1 | "shows that I.A. ran in G_Ticker" | "shows that A.I. ran in G_Ticker" | Marcell Baranyai | |||
88 | Paper | 286 | Fixed in v1.1 | "...renders one out of very two columns" | "...renders one out of every two columns" | ||||
89 | 300dpi | 297 | Fixed in v1.1 | Jaguar board diagram caption item #1 (TOM) appears to actually be the 68000 on the board picture. 1 and 4 are swapped | "Inside the machine: (1) Motorola 68000, (2) 2MiB RAM, (3) JERRY, (4) TOM," | Dan Williams | |||
90 | Paper | 299 | Fixed in v1.1 | Footnote "managed a solid 20 fps" also appears at the end of the attached paragraph | |||||
91 | 300dpi | 300 | Fixed in v1.1 | I had a functional port of the SNES Wolfenstein code running. We sent it to Atari, and they | I had a functional port of the Jaguar Wolfenstein code running. We sent it to Atari, and they | ||||
92 | Paper | 302 | Fixed in v1.1 | "They were give the green light for project" | "They were given the green light for project" | Marcell Baranyai | |||
93 | PlayStore | 308 | Fixed in v1.1 | Z-Zero | F-Zero | ||||
94 | PlayStore | 310 | Fixed in v1.1 | "The SNES PPU's Mode 7 (capable of rotating and projecting huge sprites)" | Mode 7 does not do projection and does not apply to "sprites". It only handles affine scaling and rotating a single background layer. Other SNES hardware handles calculating projection on a per-line basis. | ||||
95 | 300dpi | 312 | Fixed in v1.1 | Z-Zero | F-Zero | Brian Gilbert @troldann | |||
96 | Paper | 312 | Fixed in v1.1 | [...] the flight simulator "Pilot Wings", was [...]' and '[...] the secret Mario/Pilot Wings.' | The videogame is called Pilotwings, not Pilot Wings (https://en.wikipedia.org/wiki/Pilotwings). In the first extract in column D, no need for the double-quotes around the name or the comma after name. | Matt Riggott | |||
97 | 300dpi | 315 | Fixed in v1.1 | "Nintendo subsequently poached, Giles and Krister" | "Nintendo subsequently poached Goddard and Wombell." | ||||
98 | 300dpi | 315 | Fixed in v1.1 | "Dylan Cuthbert would have joined too but a non-compete clause in his contract prevented him." | "Dylan Cuthbert would have joined too, but he was prevented from doing so by a non-compete clause in his contract." | ||||
99 | Paper | 315 | Fixed in v1.1 | citation is missing an attribution | probably Jez San | Frank Polster | |||
100 | 300dpi | 316 | Fixed in v1.1 | "The second generation (GSU-2) was the same processor running at 21.4 Mhz with extra pins..." | All known revisions of the MARIO/GSU chip have a hardware register to control their clock speed via a divider (however the 'MARIO' revision used in Starfox carts appears to be unstable when using it to run at 21.4 MHz). The important thing here is the common misconception that the GSU-2 runs faster than the GSU-1, it doesn't- both are capable of the exact same speeds/functionaity. The only notable difference between the GSU-1 and GSU-2 (beyond potential fixes that aren't documented anywhere) is the additional pins allowing for the GSU-2 to access a larger game ROM. https://www.youtube.com/watch?v=hgInD9vAZcM | Brandon Long |