While the rest of the world has by and large forgotten the Atari Jaguar, the generously marketed console still has a fan base, and even some dedicated hackers prodding away at it. [Cyrano Jones] is one of them, and he managed something many considered unthinkable: restoring in-game music to the Jaguar port of Doom.
The Jaguar version of the classic shooter was developed by id Software themselves, and is generally considered one of the better console ports. For example, the large number of buttons on the Jaguar controller allowed players to select weapons directly rather than having to cycle through them. Unfortunately, the complete lack of music during gameplay was a glaring omission that took several points off of an otherwise fairly solid presentation.
The common culprit blamed for this was that the Jaguar’s DSP was already being used for math processing, so it didn’t have any cycles left for music playback. Coupled with a tight deadline, id probably cut their losses and released it without in-game music rather than try and spend more time engineering a solution. To compensate for the lack of in-game music, id did include the famous soundtrack in the intermission screens rather than entirely strip it out.
As [Cyrano] found out by studying the source code that’s been available since 2003, sound effects in the Jaguar version of Doom are played using something called a “ring buffer”: a cyclical fixed-length data buffer which constantly gets outputted as audio. With a patch of unused memory he could fit a second ring buffer in, rendering the music to it with close to no performance hit elsewhere in the code and then mixing both buffers for the final audio output. It looks as though id already had some of this solution in place, but with enough issues that forced them to abandon the idea in order to release the game on time.
Software hacks are not the only things that the Jaguar fan base can do though, and a fine example of a hardware one is this custom mod showing what it could’ve looked like with the CD add-on in an integrated unit.
Thank you [Mike Watson] for the tip!
Doom engine is truly amazing. What’s even more exciting is that it was fuhrer developed into Half Life and Half Life 2 (Source) engine. So many years of stable and proven API. It literally doesn’t change like hinge on a toilet seat.
>fuhrer
That’s quite the Freudian slip.
He was probably remembering Wolfenstein´s Castle
Autocarrot strikes again
The Half Life engine is based on Quake not Doom.
That would actually be the QuakeWorld engine, though it may still share some code with Doom (utility functions etc maybe)
The decision by the guys at ID to firstly encourage modding of Doom (providing some tools and info) and secondly to later release the source code to the game is why reason Doom is one of the most modded games of all time.
ID software back in the day were awesome. Your´s truly was still a poor low level manual labourer which, to my eternal regret, had a pirated quake which had problems with the then new 3dnow compatible 3d accelerator card voodoo I. ID software happily provided me customer support no questions asked. Needless to say, once i could afford it, i bought the game.
Awesome hack!
The video shows an impressive display of firing the changing at the wall for at least half the time it is fired.
Chaingun**
I’m Mike Fulton, nd I was the Jaguar Tools Manager at Atari Corp back in the day. We had contracted an outside developer to make wavetable-based synth and MIDI player for the Jaguar. And it used the DSP, of course, because that’s exactly the sort of thing it was there to do. It was a bit resource-intensive, but f for most games the synth library worked really well, but when he ported over DOOM, the library simply didn’t fit into the puzzle. the first problem was John Carmack was using the DSP for other parts of the game, but that wasn’t the only issue. Another thing was that because the synth was wavetable-based, with the sample data stored in main memory, it needed a fair amount of bus bandwidth to load sample data on the fly s needed. The Doom engine kept the graphics textures in main memory, so the bus was already pretty much maxed out.
As the person who got the music working, the above comment from Mike Fulton is wrong. The bus is clearly not maxed out, the code was all in there, all it needed was mixing. Mike, you posted this on the Atari Jaguar facebook page, and I pointed out you were wrong there as well, why are you continuing to spread this myth in the face of the evidence and technical breakdown I provided?
CJ.
Because he’s a hack fraud. Just like Marty Strap-on.
It is very easy to hack Doom to enable the music, but it has a performance hit as it hammers the DSP, hence why ID did not enable it. (they should have had an option though.)
‘Easy’. Have you personally done this? Did you do it prior to 2019 when this was published? Have you ever shared video or other evidence of you doing this? Did you share your findings with pt otherwise work with other lenders of the online Jaguar community?
Did you watch the video? Did you note how relatively small the performance got was? Did you read the article where it notes same?