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

OptiDoom, my Doom port for 3DO.

Recommended Posts

On 3/1/2021 at 9:05 AM, Orchid87 said:

Impressive work! Is it possible to check how much of a framerate improvement does switching to low detail mode give immediately, without any other optimizations?

 

At 24:10 of this video I show again the graphics presets, trying to mimic as close as possible the other console versions. Most of the consoles really were using 2*1 pixel columns, while the 3DO Doom was full pixel 1*1. Switching the window size to be as close as possible to these other version, while using 2*1, disable depth shading, or mimicking the SNES lack of floor texturing, would show that the 3DO version wasn't unoptimized for what it was. Mimicking the half pixel especially would make it comparable to a lot of the other versions. A frame rate of 7-9fps at start would jump to 14-16 depending. It's still not perfect but shows the 2*1 pixel X stretch alone, would be a big saver for 3DO Doom performance if Rebecca had the time to implement it.

Share this post


Link to post
4 hours ago, Optimus said:

 

New version is out! This is focused on external WAD loading. Simply throw your wads to the wads folder in the CD, select them from the modmenu and pray they will just not crash :)

I've managed to through oldschool things like Fava Beans there and play through 3-4 maps before the next ones would crash. Then even managed to load Alien Vendetta and maybe MAP01 or 02 would load, very very slow play, crash at some random time. This is a simple WAD loader btw, loads the 10 lumps from the WADs, converts them back to the structure the 3DO expects (32bits for 16bit values, big endian, indices instead of 8 char string for texture IDs, and more), so it's a map loader, not a texture resource loader (for this I'd have to convert the 8bit palette Doom PC textures to the different CEL formats on the 3DO, a work for the future), so when some WADs have texture IDs that don't exist in the limited Doom 3DO resource, I do a manual mapping based on some binary data tables and where with my eyes I matched certain 3DO textures with certain texture IDs in PC Doom 1/2. This way, you can load some maps and things seem consistent even if textures are different. I loaded oldschool stuff like Acheron, Fava Beans (but others like UAC Dead just crashed on me) or even the whole Doom1 or 2 IWAD and things sometimes looked still ok.

 

Secondly, I did a lot of special fx on the sector types unused bits, like RGB colored sectors, fog effect, warp/scroll floor/ceiling, distort framebuffer when inside sector, etc. I present some test WADs I made with Doom Builder and updated cfg files (which I'll release on a website with tutorial on how to do maps for OptiDoom 3DO specifically), some test maps and one full level using these features as much as it can (but I went overboard with the detail for the 3DO at least and it can drop very low and have freezes because of memory). Lot's of cool stuff there and I have timestamps on the video with the various test maps. Finally, more minor things, fixes, microoptimisations, and 3DO mouse support which is rather good especially if you use the Phoenix emulator which supports it, map the DPAD to WASD, turn up the overclock and enable it, among with always run, mouse slider for speed, etc.

 

http://bugothecat.net/releases/3DO/optidoom/optidoom_main.html

 

p.s. I think I'll had my fun with these gimmicks and the loader, I might try to focus exclusively to optimize the engine for 0.3, many people have asked me, some nagged why I do these gimmicks and not focus on optimizing the engine for good in this one. I guess I'll change my direction and focus entirely to that, even though I don't really know when the next version will be out and this one will be done when it's done as it's a daunting task to get some good framerate with this (and more issues to fix like memory hickups/micro freezes).

External wad loading? Got to test it tomorrow :D

Share this post


Link to post

I love what you are doing with the 3DO hardware, @Optimus. All these fancy effects make me remind of Bad Mood, the Atari Falcon port that went above and beyond to include new effects and making use of the hardware. OptiDoom does the same thing.

 

The loader is brilliant. I am not going to say what you should do next. Making this playable on real hardware or focussing on new effects? I dunno. But the fact all this works is an achievement in and out of itself. If we praise PsyDoom for bringing the PlayStation feature set to PC, than we should praise this similarily aswell, for bringing unique effects to a unique platform

 

It shows what the 3DO, as a 1st generation system for 3D rendering, could do. So this deserves all the recognition it can get. Thank you for working on this unique port, Optimus.

Share this post


Link to post

Amazing job @Optimus !! Whatever people say, do whatever you want with your port, the new features are great and unique. Sometimes spending all the time trying to optimize something can make you crazy, so for me it's great to see those new features.

Share this post


Link to post

If you end up adding the missing levels to 3DO Doom, will you commission covers of the remaining tracks done in the style of the 3DO soundtrack?

Share this post


Link to post
11 hours ago, Rudolph said:

 will you commission covers of the remaining tracks done in the style of the 3DO soundtrack?

 

Share this post


Link to post

Why not? You do not think anyone can replicate the style of whoever did the music for the 3DO port?

Share this post


Link to post
16 minutes ago, Rudolph said:

Why not? You do not think anyone can replicate the style of whoever did the music for the 3DO port?

What he says is that its unlikely that a port like this will go the extra mile of creating new tracks in the style of Art Data to supplement the missing levels.

 

Art Data hired an actual band to do the music and it ended up being the single most positive point of contention about the port.

Share this post


Link to post
7 hours ago, Rudolph said:

@Redneckerz Ah, shame. I would love it to see the 3DO soundtrack be completed.

Nothing stopping people from the money with contracting it out, of course.

Share this post


Link to post
44 minutes ago, Dark Pulse said:

Nothing stopping people from the money with contracting it out, of course.

Sure, but it would have been cool to kill two Imps with one shotgun blast. ;)

Share this post


Link to post
On 5/6/2021 at 2:20 AM, Rudolph said:

If you end up adding the missing levels to 3DO Doom, will you commission covers of the remaining tracks done in the style of the 3DO soundtrack?

 

I could find covers/remixes already done by members of the community and try to load these instead. In the CD there are AIFF files for sound effects and music. I managed to replace sound effects with PSX sound effects successfully, but for some reason when I tried to do the same for the audio something went bad and I got nice. But it could be different AIFF audio  format and I could find better converters. Then I could make packs with modernized or heavy metal remixes of the music.

 

As for the new levels, normally one can try to load the official Doom 1 IWAD (if they throw the WAD in the wads folder before creating the ISO) and it will load the original maps with more geometry (for example you will see the additional stairs in E1M2), but then it will replace the Doom 1 PC textures with the ones that are closest match to the 3DO texture resources (so things will not look exactly the same and sometimes wrong, but the additional geometry will be there). One problem though,. I only map the ExMx maps to the equivalent maps on 3DO right now MAP01 to 24 I think. So,. some of the maps will not be loaded. For this I'll have to write some more code to allow for MAPxx over 24 (or ExMx over some numbers I skip, for example if you try a WAD with ultimate doom slots E4Mx, I will reject these for now). One can load even Doom 2 IWAD but after MAP24 it's over. Also a lot of things won't work there, new enemies are not in the code, they will not appear,. and MAP15 was so big that it crashed, not fitting in memory or something. I could work specifically on these issues and make a pack next time,. although for the next release I decided to go back and focus mostly to the attempt to improve the speed. Afterall, all these additional WADs are quite slower than the original at times.

Share this post


Link to post

I've noticed that it's been a while since this thread was updated, and Optimus himself is only sporadically active here, so I might share this video he uploaded earlier in June this year.

That's right, you can now make custom maps and run them on the 3DO via OptiDoom (although limitations do exist to an extent). It even allows visual effects a la the PSX port!

Share this post


Link to post

Added fake contrast, something that was missing from the original and I never noticed. Really makes a difference.

 

 

before_after_map10.jpg.b6813a9ba59ba44c2cb5a9e535ca31bf.jpg

 

Also added gamma correction, by utilizing the VDLP of 3DO that maps in realtime from the 16bpp framebuffer to the 24bit RGB. I am also replacing events like colorization of the screen where hit, on radiation suit, yellow when taking object, etc (also invulnerability). These were done before on 3DO by rendering a single colored quad on top of framebuffer with blending enabled, now I think the VDLP is the more proper 3DO hardware way to do it.

 

I am going to do more work into it, planning to have the next release for the 30 years anniversary of Doom. My hope is also to see if I can further optimize the performance, something I didn't fully managed to do in a sufficient way.

Share this post


Link to post

Version 0.3 is finally out!!!

 

Little improvements but nothing massive in performance. A bit of C micro optimization to gain from 0.1-0.5fps to 2-3fps in some other places. Also improved polygon renderer a bit in performance, however in most cases it's equivalent with columns if you are not close to walls. Things still struggle, especially on real hardware. With some reduced option for 2x1 columns it's kinda better.

 

The main new feature is the automatic use of RGB coloring and water fx over liquid surfaces, and the fire sky in the hellish levels same as PS1. Those are optional mod menu choices at your own will (they tiny waste some performance, but mainly because the recoloring might in some cases increase the visplanes in some big rooms).

 

Also gamma correction slider. And few more fixes or small improvements, like the fake contrast above.

 

http://bugothecat.net/releases/3DO/optidoom/optidoom_main.html

 

 

Share this post


Link to post

Looks wonderful! On the other hand, it's disappointing that 3DO's slow CPU doesn't give much space for optimization

Share this post


Link to post

Congrats on the new version release! Several things to add though:

  • Would there be a write-up version of your modding/mapping guide? I've noticed that some sector specials are still listed as Unknown upon inspection on Doom Builder (I've added the config files on the appropriate folders).
  • A UMAPINFO/DMAPINFO-like lump for OptiDoom would be helpful for modding as well.
  • In-game cheat codes most probably don't work. I've tested it with the warp level cheat, but not the other cheats.
  • The PSX sound effects need to be rearranged. Zombies/imps pain sound uses that of the demons and vice versa, alongside other inconsistencies compared to the PSX/Saturn ports/D64.
  • Would it be possible to update the Phoenix Doom so that it can support such custom maps with OptiDoom features? Just my two cents.

Hopefully I get to have a time making a little map for this. Despite the notorious speed (or lack thereof) of the 3DO port, it holds quite some potential.

Edited by taufan99

Share this post


Link to post
On 2/11/2024 at 11:28 AM, taufan99 said:

Would there be a write-up version of your modding/mapping guide? I've noticed that some sector specials are still listed as Unknown upon inspection on Doom Builder (I've added the config files on the appropriate folders).

Some sector specials are unavailable in Jaguar Doom (e.g. death exits), and the same with Doom 2 specials (fast doors and whatnot).

On 2/11/2024 at 11:28 AM, taufan99 said:

In-game cheat codes most probably don't work. I've tested it with the warp level cheat, but not the other cheats. 

In-game cheats are accessible through the options menu during a game. Just scroll down until you find it, then slide the cheats slider to enable more of them to be toggled. The STOP button should bring it up (on RetroArch, this is bound to SELECT by default).

I also got a custom WAD to work on this:

It's not perfect; I'd advise against having your sectors be too bright (256 and up seem to cause the issue), but it works.

For those interested in how to make an OptiDoom WAD:

Spoiler

Make sure you have the MINIMAL version of OptiDoom!

Add the configuration files to your UDB installation, then add the 3DO resource WAD and the Doom 1 WAD for the Doom 3DO configuration. Make sure the 3DO WAD is loaded AFTER the Doom 1 WAD!

Make a map. Avoid having any sector's brightness go over 255, or issues will happen. Also avoid using any Doom 2 specials (fast doors and such).

Put your map's WAD into the "files/wads" folder of your Minimal OptiDoom directory. Also make sure you have a proper ISO dumped from a real 3DO in the same folder as the batch script, named "doom.iso".

Run the batch script, and it should take assets from the Doom ISO and the "files" folder, then spit out a nice and shiny "optidoom.iso". From there, you can run that in an emulator (or, if you're somehow able to, on a real 3DO). Have fun!

 

Share this post


Link to post
4 hours ago, realjohnmadden said:

In-game cheats are accessible through the options menu during a game. Just scroll down until you find it, then slide the cheats slider to enable more of them to be toggled. The STOP button should bring it up (on RetroArch, this is bound to SELECT by default).

I'm aware of the cheats on the Options menu.

 

Also, sick rendition of Wolf3D's E1L1.

Share this post


Link to post
10 hours ago, realjohnmadden said:

I'd advise against having your sectors be too bright (256 and up seem to cause the issue), but it works.

That'd be impossible to do in vanilla Doom anyway - light values only went from 0-255 (and even then, only in steps of eight, so there were effectively only 32 light levels in-game even on PC.)

Share this post


Link to post
6 hours ago, Dark Pulse said:

That'd be impossible to do in vanilla Doom anyway - light values only went from 0-255 (and even then, only in steps of eight, so there were effectively only 32 light levels in-game even on PC.)

Vanilla does clamp light levels, though.

image.png.b8203d16b226d76c4cb18b4c65dda8ae.png

image.png.16abad46d761b51679272aa450f25f5e.png

Share this post


Link to post
1 hour ago, realjohnmadden said:

Vanilla does clamp light levels, though.

image.png.b8203d16b226d76c4cb18b4c65dda8ae.png

image.png.16abad46d761b51679272aa450f25f5e.png

More like "It rounds to multiples of 8 in the 0-255 range; anything over 255 is clamped to 255." 0-7? 0. 8-15? 8. And so on, and so on.

 

Technically, you can put values above 255 in (for some ungodly reason, the actual field is a short so its max is 32767, and thinkers use an int to store light value so theoretically they could do somewhere in the 2 million range), but a combination of the colormap and code will crush that down to the 32 levels that are stored in the PLAYPAL. This means that Doom, for all intents and purposes, has 32 light levels.

 

In practice, most editors won't let you put anything other than 0-255 in there, and apparently the whole reason UDB can do 256 is due to an engine quirk, so basically, nobody should be even trying to use light levels over 255 99.9% of the time. Unpredictable results at best, complete engine crashes at worst. :P

 

Obviously this doesn't apply to anything that redid the lighting engine, is truecolor lighting, etc. etc. But for vanilla (and stuff adjacent to it like OptiDoom), this is basically lighting.

Edited by Dark Pulse

Share this post


Link to post

I only seen a few screenshots and text, but even just with that I am able to say it looks well. Hopefully, one day, you might even be able to make those cutscenes and that new episode they promised! It’s highly unlikely though. But it may be possible. In fact, maybe you could release a seperate version for hacked 3DOs with all the promised content. I don’t know. My knowledge of console hacking and the classic doom engine is… limited, to say the least.

Share this post


Link to post
On 4/4/2024 at 8:29 AM, DiceByte said:

I only seen a few screenshots and text, but even just with that I am able to say it looks well. Hopefully, one day, you might even be able to make those cutscenes and that new episode they promised! It’s highly unlikely though. But it may be possible. In fact, maybe you could release a seperate version for hacked 3DOs with all the promised content. I don’t know. My knowledge of console hacking and the classic doom engine is… limited, to say the least.

Considering none of that content ever saw the light of day and all that still exists from it is a few images, 95% of it would be made up, unless more details or the full actual footage somehow got out there. Most of it was Randy Scott talking out of his ass and promising the moon.

Share this post


Link to post
On 4/5/2024 at 4:53 PM, Dark Pulse said:

Considering none of that content ever saw the light of day and all that still exists from it is a few images, 95% of it would be made up, unless more details or the full actual footage somehow got out there. Most of it was Randy Scott talking out of his ass and promising the moon.

Dude knew nothing about how to code. 

 

"Sooooo. Just try and print this into the game. That's how that works right? Anyways, we're trying to get this out in stores by Christmas, so just get this done in 10 weeks ;)"

Share this post


Link to post

Wow, I didn't know someone other than me tried to do maps for OptiDoom :)

 

The lighting level, I didn't know it was possible to put over 255. Probably the current code reads higher values but casts them to uint8, so it wraps around. I can very easily fix this by clamping to 255 first if so. I need to see if I really read 16bit values from the wad, I don't remember.

 

I will check some of the other issues. I don't think I ever tested the cheat codes as I added them on the menu (I found the console ones awkward). Maybe they are disabled by accident or choice.

 

I was planning to make a write up on my page for modding. Haven't started. Some of the types in my page are weird, because I combine. If I want to enable fog and color lighting and others, I OR certain bits in the type to get a final number to put in sector type but it's like a magic number, but I don't know how to Doom Builder to output the combined type. I think it's a hack the way I do it and not sure if it's the proper standard way.

 

Finally, I recently was working on a big framework that emulates in a way some parts of the 3DO SDK, I have another big project where I call 3DO API functions, and I emulated on PC code with an SDL2 window, parts of the CEL renderer, screen output, input, few other things, so that I can port 3DO projects on PC, without changing any line of code. I plan to use this to port the OptiDoom code running natively on PC and not just emulator. It could become a PC port of sorts, with all that extra functionality but the 3DO code running natively without any changes. I know also there is another port Phoenix, but I am planning to port my own too.

Share this post


Link to post
43 minutes ago, Optimus said:

Wow, I didn't know someone other than me tried to do maps for OptiDoom :)

It's bound to eventually happen, sooner or later ;)

43 minutes ago, Optimus said:

I will check some of the other issues. I don't think I ever tested the cheat codes as I added them on the menu (I found the console ones awkward). Maybe they are disabled by accident or choice.

Thanks! It'd be easier and better to be able to choose the maps on the fly via the Cheats menu.

44 minutes ago, Optimus said:

I was planning to make a write up on my page for modding. Haven't started. Some of the types in my page are weird, because I combine. If I want to enable fog and color lighting and others, I OR certain bits in the type to get a final number to put in sector type but it's like a magic number, but I don't know how to Doom Builder to output the combined type. I think it's a hack the way I do it and not sure if it's the proper standard way.

Take your time, we know it's gonna be a huge task, especially considering your 3DO expertise in general.

45 minutes ago, Optimus said:

Finally, I recently was working on a big framework that emulates in a way some parts of the 3DO SDK, I have another big project where I call 3DO API functions, and I emulated on PC code with an SDL2 window, parts of the CEL renderer, screen output, input, few other things, so that I can port 3DO projects on PC, without changing any line of code. I plan to use this to port the OptiDoom code running natively on PC and not just emulator. It could become a PC port of sorts, with all that extra functionality but the 3DO code running natively without any changes. I know also there is another port Phoenix, but I am planning to port my own too.

Now we're talking. Looking forward to this PC port of OptiDoom!

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

×