Stalled out unfortunately. I haven't been able to get in contact with xttl for a long time.
Has anything come of that project? Where could I find the beta recreation of E1M1 that was intended for it? And did you find any interesting differences, besides what's already commonly known and that it already had the sound library in there? Like if any of the boss levels had their special behavior yet (tag 666 floors lowering, infinite sound propagation, etc), if the Spider and Cyber demons had any code yet, any ending text (pretty sure it wasn't in there yet), or anything else that involves the full game beyond the small sample of content that the press was granted.
The press release engine is massively different. Here are a few of the differences:
I am not aware of whether or not the Cyber or Spider had been coded yet. I can't remember if their functions were listed in the debug data (yes, the PR beta EXE has a full watcom debugging symbol table in it, making it SO easy to reverse!)
- mobj_t had not yet crystallized as a single type. Instead there are multiple different structures, each with their own T_* thinker routine, which serve as different types of actors, very similar to Wolf3D. A thing can be a static (like a clip), a monster, or a projectile.
- Floors are not drawn using visplanes. A similar but different system is used which generates various intermediate primitives which no longer exist by the v0.99 release EXE.
- 2S line drawing is not finished. The code literally looks like Carmack was stopped in the middle of working on it in order for the PR exe to be compiled. The drawsegs system is going in but none of the sorting and some of the clipping doesn't work. Amazingly, as late as the "Visit to id Software" video, which post-dated the press release beta, there were still visible glitches in this algorithm that Carmack had not fixed yet.
- There is massive use of floating point math throughout the engine, which is mentioned in the README with the PR beta, and *claims* it will all be removed by release time. However, parts of it were still present as late as v1.1.
- Like v1.1, player movement physics are completely different.
- Sound and music are present and were only disabled in the PR exe because they were in a state that would have given reviewers a bad impression. For example, player sounds are played by the status bar, and not an actual player object. Monster sounds do not update once played; they stay at the volume and panning they initially activated with.
- Screen sizes are implemented and mostly work, except for the largest size - a typo in Carmack's code causes a segv if you go fullscreen (xttl and I were able to fix this by hacking the opcodes).
- There's no intermission of any sort yet. No finales or level texts. Dave Taylor must have been coding like an absolute mad man.
- Most linedef types are not finalized, and the ones that exist are massively buggy, as can be observed even in just the three included levels. Many haven't even been started on yet and are no-ops.
- Only skills 1-3 exist. Setting skill 0 doesn't work as it does in the final EXE; instead you spawn at (0,0) stuck into the floor, and the game crashes if you try to move.
- The entire menu system from the 0.5 beta is still present; most of it was just disabled for the PR release by changing the pointers in the main menu to point to a temp menu designed just for it.
- Some of the code is still present for drawing the earlier beta's 3D title screen. It was a full perspective projected polygon renderer, limited to drawing a single plane.