Storyteller Blog: Trasmissions from Uranus and news about your mom!


Doom is coming to Blu-ray! (No, not the movie!)


The classic 1993 first-person shooter, Doom is coming to Blu-ray via Blu-ray Java or sometimes called Blu-Play. However, this port is unofficial, a Russian mad-lad by the name of Sleirsgoevy from ID Software's source code. At first, it hasn't came with the sound or soundtrack, Sleirsgoevy believed he didn't want to get into legal problems saying. "Google says that DOOM source code has been published twice with different licenses, and the comments in the source imply that it's the non-free version. Because of this, I don't know if it's even legal to publish a modified version on GitHub."

"As for the sound, I think that creating such sound files may be illegal, as they will definitely be a derivative work of the DOOM Shareware .wad file, whose license only allows sharing the unmodified version. Is there really no way to play a sound file from memory?"

He later added sound but no soundtrack and said that bug fixes are his TOP PRIORITY, but also said he will try to fix the music problem and add network play for online and LAN matches! (Talk about cross-platform!) 

From the PSXHAX Forums,
 "Well, I think the main two major pieces that are still missing are background music and network play. Regarding the music, DOOM uses a proprietary MIDI-like format (it isn't implemented in the released source code, so need to find some description), which means it can be played (do I miss something?) by simply having an HSound for each possible note and starting them at the right time.
Regarding network play, I see several options:

- Leave the port purely singleplayer. Seems odd as most games nowadays are multiplayer ones. However that's not true for Blu-Play.

-Leave the networking as it currently is (hardcoded UDP peers) and just implement the low-level send/receive functions. Probably the easiest to implement.

-Implement DosBOX's IPX tunneling protocol and port the original ipxsetup. This would allow network play with Chocolate Doom peers.

- Invent a brand new transport for DOOM packets. UDP broadcast may be a good choice.

P.S. I think the key for simultaneous sounds is the use of separate sound files, not HSound. I used HSound instead of javax.media.Player just because the latter doesn't have a stop() method."

This is the first, FPS and 2.5D game to be ported to the platform, EVER!

The game runs very smoothly with high frame rate on PS3 and PS4 via Blu-ray Player, however, it is most likely that it won't run well on Xbox One or Xbox Series X due to Microsoft's slow and clunky Blu-ray Player App. The PS5 is most likely to be better than the latter. 

Like the saying always goes "If it has a processor, it can run DOOM!". That also means any game with the Doom engine and also Wolfstein can be ported to Blu-Play. However games like Quake, not a chance! Because BDJ doesn't support true 3D. Believe it or not, Doom not a true 3D game.

Doom makes use of a system known as binary space partitioning (BSP). A tool is used to generate the BSP data for a level beforehand. This process can take quite some time for a large level. It is because of this that it is not possible to move the walls in Doom; while doors and lifts move up and down, none of them ever move sideways. Although the engine renders a 3D space, that space is projected from a two-dimensional floor plan. The line of sight is always parallel to the floor, walls must be perpendicular to the floors, and it is not possible to create multi-level structures or sloped areas (floors and ceilings with different angles). Despite these limitations, the engine represented a technological leap from id's previous Wolfenstein 3D engine which uses its own technique called Ray Casting. 

Before Doom came to BDJ, I asked Blu-Play expert misthalu last if this was possible and he said it was impossible because the BDJ platform is very slow. 

But how come Doom has a high frame rate then? The Funky Fresh BDJ demo runs incredibly slow, but Doom doesn't so I asked misthalu again. 

AE: Its performance is VERY impressive despite its limitations. But how is it not slow like the Funk Fresh demo?

LU: Gotta admit I've never tried the Funky Fresh demo on a real device myself. But Doom uses a screen resolution of 320x240 pixels, while Funky Fresh uses 1280x720 pixels. That's 12 times as many pixels as Doom. So that would be the main reason for a speed difference I think.

AE: You're probably right, also the SNES version of Doom has a lower resolution to increase performance and frame rate.  Here's a video some dude test Funky Fresh on his Xbox One, it's painfully slow as you can see. https://youtu.be/ghMaNyUmpkA?t=218

LU: I just checked the source for Funky Fresh. It's not 1280x720 but 960x540, so "only" 6,75 times as many pixels as Doom. However, the Xbox One IS slower than the PS3 and PS4 for blu-ray stuff. You shouldn't expect the Doom port to run as smoothly on the XB1 as you're seeing in this video. But I haven't tested myself as I don't have an XB1. It's also not really playable on the XB1 because the gamepad only lets you press a single button at a time. Nothing beats the PS3 and PS4 for Blu-Play homebrew. :-)

So that's how Doom was able to run so smoothly, depending and the device and its resolution. 


Developer Sleirsgoevy is working on a Blu-Play port of Doom is using Cybil MIPS transpiler to turn C source into BD-J. According to his Github, The Cibyl transpiler may aid in porting C games to Blu-Play, however, the transpiled code is a bit slower than the same code written directly in Java.

(Note: Cibyl only runs on Unix-like systems. Windows users will have to use Cygwin.)

Sleirsgoevy has been updating the game constantly and fixing bugs and performance issues. 

You can legally download the game folder and ready to be burned on BD-RE
 and also the BDJ Doom source code. 


This is an example of the bright future towards BD-J homebrew development and decentralized gaming. 




Comments