Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Mattfrie1

Dissecting Sega Saturn Doom

Recommended Posts

As we all know, Doom on the Sega Saturn was a less than stellar port. The Saturn version borrows many resources from the much superior Playstation port. I did a little bit of digging around on the disc to see how it compares to the PSX version, and here are some of my findings:

⦁ The total disc size of PSX Doom is 241 MB. The total disc size of Saturn Doom is 557 MB. The main reason as to why the Saturn version is so much bigger is due to the inclusion of more CD Audio tracks. For comparison, the cd audio on the PSX version takes up 194 MB of 241 MB total. The cd audio on the Saturn version takes up 493 MB out of 557 MB total.

⦁ Unlike the PSX version, the Saturn version uses these extra CD audio tracks for the level background music instead of the midi-like .lcd files that the PSX version uses. Only half of the tracks from the original PSX version were converted to the redbook audio format on the Saturn. Almost all of the ambient tracks on the Saturn version seem to have some slightly different elements to them (i.e. different fades for some instruments, some instruments played back at slightly different pitches, different track length, etc.). This makes me wonder how these tracks were "acquired" for this version. Did Rage Software personally contact Aubrey Hodges for the music? Or did they just rip the files from the PSX disc and play them back on slightly different equipment?

⦁ The main resource wad on the Saturn version is called JIMSDOOM.WAD, obviously named after Jim Bagley, one of the lead programmers for this port. The wad is a 1:1 copy of PSXDOOM.WAD , and even includes resources that only pertain to the PSX port (i.e. Buttons graphic that contains symbols for buttons on the PSX controller, original legal screen that appears at the beginning of the PSX version, etc.).

⦁ This wad contains some interesting things in it. The status bar for the PSX version is still here. Also, the graphic for the title screen is missing the GT Interactive logo that is present in the version included in PSXDOOM.WAD. Most interesting of all however is that the LIGHTS lump from the PSX version is still present in JIMSDOOM.WAD. This makes me wonder if the Saturn version is capable of colored lighting like the PSX version, but wasn't included due to time restraints.

⦁ One thing that puzzles me, why is JIMSDOOM.WAD almost 2,000kb bigger than PSXDOOM.WAD? Both wads contain the same number of entries (a fact also mentioned on the Doomwiki). I also compared both files in Slade side by side to be sure and couldn't find any obvious differences to account for the different file size.

⦁ The maps are stored in the same way on both the PSX and Saturn versions. This has been well documented by Kaiser in a previous thread, so I won't go into it here. One can actually use the same programs for converting PSX maps for the maps on the Saturn disc. Each map on the Saturn disc also contain the LEAFS lump, which is responsible for assigning the colored lighting and reverb effects in the PSX version. Of course, these effects go unused in the Saturn version.

⦁ The disc contains 9 folders. 7 of them store 59 levels in folders titled MAPS0 through MAPS7. However, both MAPS0 and MAPS1 contain files that don't seem to be related to map data. MAPS0 also contains a STATS.CHR and a STATS.MAP file, which I'm guessing is the data for either the intermission screen or the new HUD. MAPS1 includes several really interesting files. The first is a 10 byte file called DOOMMAP.BIN. The second is DOOMTONE.BIN, and the third is SDDRVT.TSK. I'm not sure what the first one is for, but I'm thinking that the second and third files have something to do with the games sound. Perhaps DOOMTONE.BIN is all the game's sound effects, and SDDRVT.TSK is the game's sound driver?

⦁ SCRS is the folder that appears to hold the files to the game's opening sequence. Curiously enough, the four screens that pop up when you start the game are all listed as screen savers as the file type. Sadly they don't work on my computer.

⦁ SKYS is the last folder, and is pretty self explanatory. It contains both .CHR and .MAP files for the game's 7 skies, plus mysterious SKY20 and SKY21 files as well. Also contained in this folder are the four .lmp files used for the game's demo sequence. It's interesting how the sky textures are given their own folder, as all 7 of them are also included in JIMSDOOM.WAD.

⦁ The rest of the files are contained in the disc's main directory. The one file that attracts my interest is a 400 kb file called 0.BIN, sadly it's mysterious file name doesn't give any hint as to it's purpose. I'm wondering if this is where the game's main .exe file is stored.

Personally, I think it was Rage Software's intention to make Saturn Doom as much like PSX Doom as possible. But when John Carmack shut down their original plan to use a hardware-accelerated renderer, all those ideas were thrown out the window. I wonder how late in the development cycle the change from a hardware to software renderer was made, and if they had to rush to get the game out the door after the change was mandated. Plus, why was Carmack so picky about Doom, yet he let Lobotomy Software port Quake to the system using an entirely new game engine? There are still many questions about this port...

So why am I doing this? Well, it's partially because I think the Sega Saturn is an underrated system, and also seeing the background behind 3DO Doom made me want to look into the other very well-known poor port of Doom. I wish there was a way to examine the source code for this port, but sadly hacking for the Sega Saturn isn't really well documented on the internet. If anyone else has anything to add, it would be well appreciated.

Share this post


Link to post

Hehe great thread. As another resident Saturn fanboy I have quite a few notes documented about this port in my quest to understand it and hopefully someday make it not terrible. I'll have to dig through them to see if there's anything relevant that could help you.

-I was going to offer that JIMSDOOM might vary in size because of some method of data compression, but if you compared the entries in slade..I'm not certain.

-I wonder if that is the sound driver you have there. You'll notice the stereo field for the sound effects is messed up. centered sounds are off to one side and I don't think left/right sounds work well either.

-The mysterious sky textures could be left over from the PSX version. Hell on PSX used the animated flaming sky, which is not present in the Saturn version except in the opening.

-The 0.bin file in the main directory is a security boot check file iirc. Almost all Saturn discs have this file.

-You mentioned a hardware renderer. I wonder if some data here is left over from an attempt to utilize one. Imagine if they were able to use a fully 3d engine, colored lighting would have been no sweat and other cool effects as well like room-over-room...I get giddy just thinking about it.

Share this post


Link to post
Mattfrie1 said:

...

Personally, I think it was Rage Software's intention to make Saturn Doom as much like PSX Doom as possible. But when John Carmack shut down their original plan to use a hardware-accelerated renderer, all those ideas were thrown out the window. I wonder how late in the development cycle the change from a hardware to software renderer was made, and if they had to rush to get the game out the door after the change was mandated. Plus, why was Carmack so picky about Doom, yet he let Lobotomy Software port Quake to the system using an entirely new game engine? There are still many questions about this port...

So why am I doing this? Well, it's partially because I think the Sega Saturn is an underrated system, and also seeing the background behind 3DO Doom made me want to look into the other very well-known poor port of Doom. I wish there was a way to examine the source code for this port, but sadly hacking for the Sega Saturn isn't really well documented on the internet. If anyone else has anything to add, it would be well appreciated.


This is one of the interesting parts about the development of the Saturn port. Most of this version is taken from the PSX one, yet somewhere down the line, they changed the sound effects back to the PC original before reverting to the PSX ones. You can find this in the April 1996 beta that's out there.

Share this post


Link to post

Without knowing too much about the technology, I wonder if Carmack's pickiness faltered under the idea that porting Quake's tech to the Saturn would have been a potential waste of time when the 3D SlaveDriver engine was already being used for PowerSlave and Duke Nukem 3D, considering that they may have had only a small window of time to port Quake over in the first place. They could have been looking at potentially missing the deadline in which case they would have had too release an inferior product.

Given more time, I wonder how Doom could have fared differently with what the team was given.

Share this post


Link to post
Use3D said:

-I wonder if that is the sound driver you have there. You'll notice the stereo field for the sound effects is messed up. centered sounds are off to one side and I don't think left/right sounds work well either.


I never noticed how messed up the stereo sound was until I started playing the game in headphones. Most player sounds originate from the left speaker, with an occasional sound being centered properly. This is most notable if you leave the chainsaw to idle.

-The mysterious sky textures could be left over from the PSX version. Hell on PSX used the animated flaming sky, which is not present in the Saturn version except in the opening.


I think Rage Software simply made new files to take advantage of the Saturn's hardware and told the system to use the new skies instead of the ones in the main resource wad. One thing I've noticed is that the skies in the PSX port appear to warp on the left and right sides as you are turning, and they don't on the Saturn port. You can actually see the seam where the sky is "stitched" together better on the Saturn port than on the PSX port. On a semi-unrelated note, I know the Wipeout games on the Saturn do away with the 3D "dome" effect that the skies use on the PSX version in favor of a flat tiled 2-d background instead. Battle Arena Toshinden did this as well, removing the 3D backgrounds in favor of layered 2D ones, so it's obvious Saturn devs purposely re-coded these kind of things to take better advantage of the Saturn hardware.

buttspit said:

Most of this version is taken from the PSX one, yet somewhere down the line, they changed the sound effects back to the PC original before reverting to the PSX ones. You can find this in the April 1996 beta that's out there.


This is fascinating. I never took the time to look up the Saturn beta until now. It seems like the final product plays exactly like this beta minus the difference in sound effects. What is curious here is the date of that beta, why does the final product play exactly like the beta version that was produced nearly one year before the final product's release date?

Share this post


Link to post
Mattfrie1 said:

What is curious here is the date of that beta, why does the final product play exactly like the beta version that was produced nearly one year before the final product's release date?


It doesn't really surprise me. In fact I bet most of the performance issues are centered around the use of both of the SH2 processors. If Saturn Doom really utilizes both, it would require much more optimization. I believe it was Yu Suzuki that famously said very few programmers had the ability to properly make the two chips sing together, obviously Jim Bagley wasn't one of them. I bet you could get better performance from the game dropping the second SH2 entirely. I know most far more demanding games only work from the one chip.

Share this post


Link to post
Mattfrie1 said:

This is fascinating. I never took the time to look up the Saturn beta until now. It seems like the final product plays exactly like this beta minus the difference in sound effects. What is curious here is the date of that beta, why does the final product play exactly like the beta version that was produced nearly one year before the final product's release date?


Yeah, really. But looking back at the picture of the disc, I'm most likely wrong and it's October. That would make more sense; it's marked 4/10/96, though the other discs in the list follow month/day/year. Otherwise, what the hell would they be doing all those months. But it could still be the other way, who knows.

Considering that, my only guess is that the disc is one of those QA samplers, and the change was exceptionally for it and maybe not something planned for the full release.

Share this post


Link to post

The Sega Saturn version of Doom almost looks like a slightly beefed up Sega 32X version of Doom....which is not so strange, considering the Saturn's hardware itself looks a lot like a 32X with a built-in CD-ROM, more RAM, and some extra graphics capabilities.

At the end of the day, if you take hardware acceleration out of the game, you're left with a 32X with slighly overclocked CPUs (28.6 vs 23 MHz). Oh well, at least the music was better.

Share this post


Link to post

I've been checking the files on some of my other Sega Saturn discs, and SDDRVT.TSK is also included on the Saturn version of Hexen. Makes me wonder if it was some common id Software file, or a common sound driver that was used with the Saturn.

EDIT: Definitely a common Saturn sound driver, I found a SDDRV.TSK on the Saturn version of Alien Trilogy as well.

buttspit, Rage Software was a British company, so chances are the date is October 4 and not April 10.

Share this post


Link to post

I just did a YT search for the Saturn version of the soundtrack and was quite surprised to see no one has posted it (save for the intro). I'm interested in how it compares to the PSX version. And if I'm not mistaken, do the audio tracks for the Saturn version take up more space because there literally are more tracks? Are these additional tracks Aubrey's or what? Someone shed some light on this.

Share this post


Link to post

Level music is stored as CD audio tracks. As a result, there are more CD audio tracks, but there are actually less unique compositions, because the entire PSX Doom soundtrack wouldn't fit on a CD.

PSX Doom itself used a MIDI-like format with its own sound font.

Share this post


Link to post

True fact: this is one of the most interesting threads currently active on the DW forums.

That said, I remember way back when the PSX version of Doom came out. Eventually, the unavoidable comparison with the Sega Saturn version was made. Even though the frame rate of the PSX is far from ideal, the SS version was a total shitshow. Try looking it up on YT. You will even notice how messed up the stereo audio is. They pumped the pooch right out of the gate and would have likely been better off with straight port (instead of trying to reinvent the wheel).

Share this post


Link to post

I think they overestimated the Saturn. They should have based their work on the Jaguar port.

Share this post


Link to post
Job said:

That said, I remember way back when the PSX version of Doom came out. Eventually, the unavoidable comparison with the Sega Saturn version was made. Even though the frame rate of the PSX is far from ideal, the SS version was a total shitshow.



Perfect Hatred for instance is almost unplayable. Really disappointing.

VGA said:

I think they overestimated the Saturn. They should have based their work on the Jaguar port.


I think it's more of a case of Rage Software overestimating their own ability. Hexen for instance runs great on the system. Or maybe people don't take pride in their work, I know I personally would never have let that game ship in it's current state. It could have also been pushed out by top-dogs who had no concept of how long it would take to properly port the game. Strange how JC had a problem with hardware rendering but somehow the abysmal framerate on the finished product was acceptable? Sounds sketchy.

Share this post


Link to post

I wonder if Carmack's complaints were in any way related to the fact that the Saturn used quads instead of triangles.

They'd have been ideal for the walls, but I'm sure they could've figured out a way to efficiently divide the sector planes into quads. One lazy way to do it would be to convert them to triangles first, then merge the triangles into their neighbors. I guess they'd have to tuck away one of the vertexes to create a faux triangle for the remaining triangles that couldn't be merged.

Share this post


Link to post
GoatLord said:

I just did a YT search for the Saturn version of the soundtrack and was quite surprised to see no one has posted it (save for the intro). I'm interested in how it compares to the PSX version. And if I'm not mistaken, do the audio tracks for the Saturn version take up more space because there literally are more tracks? Are these additional tracks Aubrey's or what? Someone shed some light on this.


The CD audio tracks are streamed off the disc instead of using the midi-like .lcd files from the PSX disc. I've gone through the trouble of putting together a little list of some of the apparent differences in the tracks:

Retribution Dawns(E1M1): Percussion instrument plays a tad bit early compared to psx version

The Broken Ones(E1M2): Strings sound like they are played at slightly different pitch, and fade out differently compared to PSX version (most notable at 25 sec)

Sanity's Edge(E1M3): Split into two separate tracks. The first track is 5:31, and the second is 1:42. The divide occurs in the original track at 5:25.

Hell's Churn(E1M4): The "drone" instrument (don't know what else to call it) at the start of the song plays at a slightly higher pitch.

Digitized Pain(E1M5): The low pitched hovering "drone" instrument never fades out on the Saturn, it just keeps playing in a loop for the entire duration of the track. The track definitely loses it's atmosphere because of this.

Mind Massacre(E1M7): All instruments lose their echo effects for this track.

A Calm Panic Rises(E2M2): The "chirping" effect loses it's echo effect

Breath of Horror(E1M9): A 53 sec. (!) clip of this incredibly demonic track. It too also loses it's echo effects.

I've been messing around with my copy of Saturn Doom for the past few days trying to find some other curious anomalies, here's what I've come up with so far:

⦁ I'm under the belief that some sort of "lag compensation" was coded into this version. It's like the developers knew the framerate was shit and couldn't fix it, so they tried to make up for it by speeding up the player's firing rate, sprite animation, and some sound effect patterns. Some examples:

-Chainsawing a demon in front of an otherwise plain wall will have it's death animation play like it is in fast forward.

-Pressing use against a locked door will have the item pickup sound play 3 times consecutively and flash the needed key in the HUD (which doesn't flash in this port, oops). The sounds play at a normal sounding sequence in the first person view, but when you open up the Automap and do this the three sounds are played in a faster sequence. In fact, the entire game plays like it is in fast forward when viewed from the Automap, obviously it is less taxing on the system.

⦁ No matter how hard I try, I can't get the system to display the "Texture Cache Overflow" error at Tenements. Firing the BFG into the hoard of monsters slows the game down to nuts.wad levels, but refuses to crash the game. I'm assuming more RAM space is devoted to sprites on the Saturn.

⦁ I'm going to theorize that 1 CPU of the Saturn is devoted to all the 2D elements on-screen (Sprites,HUD,Sky) and the other is devoted to the level's architecture. This YouTube video is my evidence.

Finally, I'm almost positive now that DOOMTONE.BIN must be where all the game's sound effects are stored. I managed to dig up this old Saturn sound development manual which mentions a tone development tool which is used to edit waveforms. The site that this came from includes dozens of Saturn development manuals and other Saturn based tools. Sadly, none of them work on my computer.

Share this post


Link to post
Use3D said:

Perfect Hatred for instance is almost unplayable. Really disappointing.

I can't imagine how horrible it must be on the Saturn; the starting area is bad enough on PlayStation with some absolutely horrendous slowdown when overlooking the centre area.

Share this post


Link to post
Mattfrie1 said:

⦁ No matter how hard I try, I can't get the system to display the "Texture Cache Overflow" error at Tenements. Firing the BFG into the hoard of monsters slows the game down to nuts.wad levels, but refuses to crash the game. I'm assuming more RAM space is devoted to sprites on the Saturn.

⦁ I'm going to theorize that 1 CPU of the Saturn is devoted to all the 2D elements on-screen (Sprites,HUD,Sky) and the other is devoted to the level's architecture. This YouTube video is my evidence.


Honestly, put enough time into at and something crazy is bound to happen. Now that you mention, one glitch I've had a handful of times is where the level walls/floors completely disappear, leaving only black spaces you can see through, and the sprites are still present. The game runs very quickly a this point before locking up completely or reseting once you exit the level. The automap displays normally. This bug happens to me most frequently in the Ultimate Doom specific consoles levels, like Twilight Descends, probably because these maps don't conform to the texture-homogenization of the rest of the original maps.

Currently streaming Saturn Doom if anyone wants to check it out :)

Share this post


Link to post

I was under the impression that 3DO Doom actually used the quad-warping functions of the hardware to draw the walls, but I just spent some time looking at the source and it looks like the real way it drew things was way weirder and less efficient.

Share this post


Link to post
Linguica said:

I was under the impression that 3DO Doom actually used the quad-warping functions of the hardware to draw the walls, but I just spent some time looking at the source and it looks like the real way it drew things was way weirder and less efficient.

To be a little more specific, I'll reiterate the way I assumed it was done, versus the way it appears to actually have been done, from my not-terribly-deep examination of the source code.

First you should know that the 3DO had a special structure called a "cel" that was sort of like hardware sprites in that the console was designed to use them efficiently, had special functions for them, etc. Anyways, a "cel" was basically just a rectangular image that you could place onto the screen with the four corners at arbitrary positions, and it would scale / rotate / perspective correct it automatically.

* My idea of how 3DO Doom worked: add a cel for every visible seg that had the correct cropped segment of the wall texture and was positioned properly. Maybe you draw them back-to-front and just eat the overdraw, I dunno.

* Reality: have an array of 512 cels where for EACH PIXEL COLUMN/ROW OF EACH SEG / FLOOR SPAN / SPRITE, you create a 1 PIXEL WIDE CEL with the little sliver of texture. If you chew through the array, dump the 512 cels you already have to a bitmap and keep making new cels until you're done.

Share this post


Link to post
Linguica said:

* My idea of how 3DO Doom worked: add a cel for every visible seg that had the correct cropped segment of the wall texture and was positioned properly. Maybe you draw them back-to-front and just eat the overdraw, I dunno.

* Reality: have an array of 512 cels where for EACH PIXEL COLUMN/ROW OF EACH SEG / FLOOR SPAN / SPRITE, you create a 1 PIXEL WIDE CEL with the little sliver of texture. If you chew through the array, dump the 512 cels you already have to a bitmap and keep making new cels until you're done.

Ouch. No wonder why that port was so slow. I guess that's why the framerate increases when you lower the screen size. The cels that the system draws are smaller, so they take up less memory rendering them? idk really, I'm shooting from the hip with that guess. The one thing that annoys me with this port are the small pauses during gameplay when data is accessed off the disc.

Share this post


Link to post
Mattfrie1 said:

Ouch. No wonder why that port was so slow. I guess that's why the framerate increases when you lower the screen size. The cels that the system draws are smaller, so they take up less memory rendering them? idk really, I'm shooting from the hip with that guess. The one thing that annoys me with this port are the small pauses during gameplay when data is accessed off the disc.


Maybe if they had optimized the game properly for the 3DO, the framerate would have always been increased, if they had coded it so that the cels are drawn smaller.....

Share this post


Link to post

That would just mean
a) either the cells are smaller so there are more of them so it has to spend more time drawing so it's slower or

b) the screen size would be even smaller, which would be faster... but you can probably see the problem with making an already-bordered game into practically a postage stamp

Share this post


Link to post

Man, it sounds like the SS version (as well as most of the ports from this period) were extremely unoptimized. I imagine the SS could have had PSX-level performance if they had the hindsight to know how to properly deal with 2.5D back in those days. Now, I'm speaking out of total ignorance here, but I bet it would have been possible to get Doom 64-ish framerates, because both the SS and the PSX (well, at least the PSX) had smooth framerates on later 3D games that were very complex and open, like Spyro the Dragon.

Share this post


Link to post

Spyro the Dragon also had a rudimentary LOD system going for it, which would have likely been a boon for any of the sputtering id shooter ports at the time. Maybe not so much Doom, considering it wasn't polygonal. It probably wouldn't have been a simple task to add in a system like Spyro's, then, unless you switched a ton of things over to hardware rendering. Of course, this is just me taking a guess.

Share this post


Link to post

The point of mentioning Spyro was that it was a full 3D game with really huge worlds. I just find odd that Doom ran so poorly on consoles that could clearly handle larger amounts of detail. Maybe the 2.5d thing was awkward to implement.

Share this post


Link to post

Yup, the Doom engine operates in a way that's inherently contrary to how "standard" 3D hardware operated, and still does. The PSX and N64 ports were pretty unique in managing to adapt the engine to their hardware, which however required extending the map structures and changing the renderer a lot.

All the rest pretty much attempted running the software renderer almost as-is, which of course resulted in piss-poor framerates, when the actual CPU horsepower of those early 32-bit consoles was comparable to a slow 486, at best.

Share this post


Link to post

Some more random info on Saturn Doom:
⦁ I thought it was strange how some stages (Map 9 and 13 for example) had transparent, colored windows seeing as this port got rid of all it's colored lighting. It seems that Williams Entertainment made 10 new wall textures for the PSX port called WINDOW01 through WINDOW10 which are nothing more than colored gradients. These are placed over both sides of the window and then rendered transparent. The color of these textures is more noticeable in the Saturn version due to lack of colored lighting.

⦁ I stated earlier about how the game has 4 lmp demo files that play during the attract sequence. It seems that one of those demos is never played in-game. The attract pattern plays demo 1, demo 2, demo 3, and then plays demo 3 again before it loops back to demo 1.

⦁ Projectiles sometimes soar right through solid walls out into the void. This occasionally happens on the PSX version as well, but happens a lot more frequently in the Saturn version. This is most noticeable in the chaos of Fortress of Mystery and Hell Gate. You can sometimes even see the projectiles flying in the void as small dots through certain walls.

I figured the next level of examining how this version worked was to watch it run on several Saturn emulators. Yabause and Satourne both feature extensive debuggers that helped out enormously, but Doom doesn't run too well on any Saturn emulator. The video I posted up earlier was how it looked on all three emulators I tried. I did figure out this much so far, the Saturn has two built in video processors, VDP1 and VDP2. VDP1 is responsible for all the sprites in game. VDP2 is responsible for backgrounds and is split up into several "layers". In Saturn Doom, one layer is responsible for level background (like I figured earlier), another layer is for the HUD and a third layer is for the numbers on HUD.

I've also been looking into the game's sound effects and how they are handled by the system's sound chip. I'll post my findings in another post after I've messed around with it enough.

Finally, I found Jim Bagley on Twitter and sent him a link to this thread. I think he should know that almost 20 years later there is still discussion on the work he did for this version.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×