intacowetrust Posted September 25, 2019 (edited) Hey everyone, Just wanted to share a small project that I've been working on recently. It's a backport of the 3DO version of DOOM to PC and based on the 2014 3DO DOOM source release by Rebecca Ann Heineman. It's more of a 'remaster' than an exact pixel for pixel recreation, and I took some liberties to improve things where I wanted to. Hopefully it should provide a nice way to play the 3DO version natively on PC though. Mouse and gamepad controls (via an XBOX One etc. controller) are also supported. In fact I'd recommend using a controller for a more console-like experience. Here is a brief playthrough of it that I recorded: https://www.youtube.com/watch?v=2B_D0KB0wp0 And here is where you can grab some binaries (I've prebuilt for Windows, MacOS and Linux 64-bit): https://github.com/BodbDearg/phoenix_doom/releases More info about the project, how to run, and a list of differences to the original 3DO version can be found in the various sections linked to on the main project page:https://github.com/BodbDearg/phoenix_doom Note: you will need a raw image file of the original 3DO game disc (.IMG file) in order to play, or alternatively the contents of the original 3DO disc extracted to a folder on your machine (this can be configured). Let me know what you think, or if you run into any issues! Cheers, Darragh. One final disclaimer: I've only tested the Linux build inside a VM since I'm not really a Linux user, so I'd be curious to see if that works properly in addition to the gamepad controls on that platform. The mouse controls were kinda messed up when I tried, so I'm hoping that is just down to running in a VM! If there are problems and someone wants to take a stab at fixing them then I'm more than happy to accept PRs. Edited September 25, 2019 by intacowetrust 21 Quote Share this post Link to post
chungy Posted September 25, 2019 Hmm, I kind of thought the 3DO dump contained the full game. I don't own the 3DO version, but on just seeing the YouTube video, it looks like an excellent port. Good work! 0 Quote Share this post Link to post
intacowetrust Posted September 25, 2019 Thanks! Yeah it's source assets for the most part that are in Rebecca's repo, as well as some of the scripts used to build those assets. You'd be hard pressed getting some of that stuff to compile though since the toolchain appears to rely on some archaic stuff found on 68K Macs and in the 3DO SDK. 0 Quote Share this post Link to post
Doomkid Posted September 25, 2019 I love stuff like this, the thought of improved PC versions of the console ports (based on the actual source) is something that's always interested me. It would be cool to see something like this for the SNES and PSX ports, if only the sources were released. I'm just going to highlight @Optimus since I know he's interested in 3DO Doom and has worked on his own 3DO projects. 5 years ago some people were wondering if much would ever come of this. Looks like it finally did! 6 Quote Share this post Link to post
intacowetrust Posted September 26, 2019 Quote It would be cool to see something like this for the SNES and PSX ports, if only the sources were released. My absolute dream would be for someone to release the PSX source! I wonder who even owns the rights to that anymore? Is it languishing away on some dusty old hard drive or backup media somewhere? (hopefully it still exists) Yeah there's probably stuff in there that @Optimus or others compiling for the real hardware might find useful. Found and fixed a few interesting bugs along the way! 2 Quote Share this post Link to post
seed Posted November 9, 2019 (edited) Just tried this port out a little bit. I like it a lot, it runs very smooth and has plenty of options (also mouse support, easily rebinded keys, and high resolutions support, yay!). But perhaps there are a few things I'm not quite fond of: - Is there no quit option? I've had a similar issue with Calico where I had to Alt+F4 every time I wanted to quit the game, as there was no menu entry. - No saving? Although not really an issue, I just don't remember reading about this on github. - I'm not a fan of the config's location. Wouldn't have it been better for it to be saved in the source port's directory instead of %appdata% (Windows)? It's a bit inconvenient insofar as appdata is normally also a hidden folder... - An in-game Options menu with more stuff, such as key bindings and mouse sensivity sliders would come in handy, although it's good enough as it is since setting it up to suit one's needs in the .ini is fairly easy and rather well-documented. Apart from these, I'm enjoying this a lot so far :) . Edited November 9, 2019 by seed 1 Quote Share this post Link to post
Gez Posted November 9, 2019 5 hours ago, seed said: - Is there no quit option? I've had a similar issue with Calico where I had to Alt+F4 every time I wanted to quit the game, as there was no menu entry. Makes sense, since on what they simulate, you'd quit by turning off the console. 0 Quote Share this post Link to post
seed Posted November 9, 2019 (edited) 6 hours ago, Gez said: Makes sense, since on what they simulate, you'd quit by turning off the console. E: Actually there is one, I just completely missed it earlier, oops. Edited November 9, 2019 by seed 0 Quote Share this post Link to post
intacowetrust Posted November 9, 2019 (edited) 14 hours ago, seed said: Just tried this port out a little bit. I like it a lot, it runs very smooth and has plenty of options (also mouse support, easily rebinded keys, and high resolutions support, yay!). But perhaps there are a few things I'm not quite fond of: - Is there no quit option? I've had a similar issue with Calico where I had to Alt+F4 every time I wanted to quit the game, as there was no menu entry. - No saving? Although not really an issue, I just don't remember reading about this on github. - I'm not a fan of the config's location. Wouldn't have it been better for it to be saved in the source port's directory instead of %appdata% (Windows)? It's a bit inconvenient insofar as appdata is normally also a hidden folder... - An in-game Options menu with more stuff, such as key bindings and mouse sensivity sliders would come in handy, although it's good enough as it is since setting it up to suit one's needs in the .ini is fairly easy and rather well-documented. Apart from these, I'm enjoying this a lot so far :) . Thanks for trying out the game and for submitting feedback - glad you are enjoying :) Quote - Is there no quit option? I've had a similar issue with Calico where I had to Alt+F4 every time I wanted to quit the game, as there was no menu entry. It's there but it's a little hard to find as you've found, being on the 2nd page of the options menu. I added this since it was bugging me too :) Some people might not even realize there is a second options page though, perhaps there is some way I could indicate that better from the 3DO version... I put the option on the 2nd page deliberately as well because I didn't have time to do a quit confirm menu, and didn't want quit to be activated accidentally - which would be infuriating. Quote - No saving? Although not really an issue, I just don't remember reading about this on github. Saving is in there but it's pretty basic - working similarly to the 'saving' in the 3DO version. Basically it remembers what level you reached and some prefs like music and sound volume. If you restart the game then you can go to levels you reached previously but you have to do a pistol start unfortunately (same as the original 3DO version)... The save file is in the same folder as the prefs file if you want to edit, it's just a simple .ini. Quote - I'm not a fan of the config's location. Wouldn't have it been better for it to be saved in the source port's directory instead of %appdata% (Windows)? It's a bit inconvenient insofar as appdata is normally also a hidden folder... Mainly it's using the appdata folder because I'm using SDL's 'give me a writeable path' functionality which is portable and works similarly under Windows, Linux and MacOS. It's also a more reliable method of getting a place to put the save file, since it's possible that the user might put the .EXE in a place that is not writable or requires elevated privileges, like in 'Program Files' on Windows. I agree it's slightly awkward to navigate to though, perhaps I could put in a shortcut to it within the game's options menu that opens up an explorer window etc.. Quote An in-game Options menu with more stuff, such as key bindings and mouse sensivity sliders would come in handy, although it's good enough as it is since setting it up to suit one's needs in the .ini is fairly easy and rather well-documented. I had considered adding more stuff to the options menu but mainly a lack of time in the end prevented me. I had a self imposed deadline to finish this project before my son was born (before other priorities took over!) and I was running very short on time towards the end - somewhat ironic considering the game's history... Putting most options in the config file was a quick way to get this done. There's also the issue of the UI design itself; cramming loads and loads of options into the 3DO menu would probably require a UI redesign, which might affect the authenticity of the menu a little. I might require some new UI assets for example which would go against the goal of making the client work entirely with the original data set. It also might necessitate forcing a higher resolution, which would not be good if you wanted to play at the original resolution. Perhaps a compromise here though would be to add mouse/gamepad sensitivity sliders and resolution options to the menu, since that's what people would want to tweak most commonly. The standard WASD controller bindings etc. are probably fine for most people. Edited November 9, 2019 by intacowetrust 3 Quote Share this post Link to post
seed Posted November 10, 2019 (edited) @intacowetrust Yes, I did realize a while after posting that comment that the quit option was there, but it was a bit awkward to find, as it is in the Options Menu. I understand the intention of preserving the vanilla essence and can see its point, still, I do believe a compromise of sorts can be made so that a few of the settings can be added in the menu - mouse sensivity, basic key bindings, and resolutions are the most important things I can think of. Still, even if it doesn't get added, it's fine as it is, because as I've said, the .INI is VERY explicit and well-structured, so the players know what to change if they want, and what that does. So there kinda is a "save" system in place too, but it only remembers the last map you've reached. That's good enough. I'd still like to have a better location for the config and save, Documents would be another suggestion, anything but a hidden folder. An icon for the .exe would also be a nice little touch :p . Edited November 10, 2019 by seed 1 Quote Share this post Link to post
CoTeCiO Posted December 29, 2019 I got an api-ms-win-core-libraryloader-l1-2-0.dll missing error when trying to run it. 0 Quote Share this post Link to post
intacowetrust Posted December 30, 2019 On 12/29/2019 at 2:08 PM, CoTeCiO said: I got an api-ms-win-core-libraryloader-l1-2-0.dll missing error when trying to run it. Thanks for letting me know! I've seen reports of this on YouTube also... I think there may be a dependency being generated for Windows 8/10 by the MSVC compiler. I will have to see if I can get rid of this dependency somehow. Unfortunately I only have a Windows 10 environment to test with so I may need some help verifying any fix. 0 Quote Share this post Link to post
Danfun64 Posted December 30, 2019 If it's a MSVC issue, maybe you need to recommend the redistributable runtime for the version of the compiler you're using? 0 Quote Share this post Link to post
Edward850 Posted December 31, 2019 1 hour ago, intacowetrust said: Thanks for letting me know! I've seen reports of this on YouTube also... I think there may be a dependency being generated for Windows 8/10 by the MSVC compiler. I will have to see if I can get rid of this dependency somehow. Unfortunately I only have a Windows 10 environment to test with so I may need some help verifying any fix. I wouldn't worry about it too much. Errors like this are usually caused by an out of date Visual C++ runtime environment. If @CoTeCiO is running Windows 7, he may need to make sure Windows Update has been run recently, including optional updates, 0 Quote Share this post Link to post
intacowetrust Posted December 31, 2019 4 hours ago, Danfun64 said: If it's a MSVC issue, maybe you need to recommend the redistributable runtime for the version of the compiler you're using? 3 hours ago, Edward850 said: I wouldn't worry about it too much. Errors like this are usually caused by an out of date Visual C++ runtime environment. If @CoTeCiO is running Windows 7, he may need to make sure Windows Update has been run recently, including optional updates, Not sure it's redistributable issue since I statically linked against the C runtime in order to try and avoid such headaches. I think it's maybe an unintended dependency on something in Win 8/10. Going to investigate shortly to see if it can be avoided... 0 Quote Share this post Link to post
intacowetrust Posted December 31, 2019 Added an updated binary (1.0.2) that should hopefully fix the DLL issues. @CoTeCiO can you try it out when you get a chance and see if this fix works for you? Thanks! https://github.com/BodbDearg/phoenix_doom/releases/tag/releases%2F1.0.2 The issue was resolved in the end by rebuilding using the Windows XP platform toolset, later toolsets all introduce this dependency and I couldn't find any way to avoid it. 1 Quote Share this post Link to post
CoTeCiO Posted January 1, 2020 13 hours ago, intacowetrust said: Added an updated binary (1.0.2) that should hopefully fix the DLL issues. @CoTeCiO can you try it out when you get a chance and see if this fix works for you? Thanks! https://github.com/BodbDearg/phoenix_doom/releases/tag/releases%2F1.0.2 The issue was resolved in the end by rebuilding using the Windows XP platform toolset, later toolsets all introduce this dependency and I couldn't find any way to avoid it. It works!! And holy shit I never thought I'd see 3DO Doom running smoothly!! I remember seeing it running many years ago and it was slow as a turtle. Now that makes me wonder, how low can you go with this in terms of requirements? Sometimes I like to mess around with ports and stuff trying to make them run on older systems but only having a 64 bit binary leaves you only with more modern systems. Having this running on an old Win98 machine at the same framerate as the original would be hilarious! Happy new year, by the way! Great work, this plays fantastic! I saw you are working on a PSX Doom port as well, I really wanna check that out! 0 Quote Share this post Link to post
intacowetrust Posted January 1, 2020 49 minutes ago, CoTeCiO said: It works!! And holy shit I never thought I'd see 3DO Doom running smoothly!! I remember seeing it running many years ago and it was slow as a turtle. Now that makes me wonder, how low can you go with this in terms of requirements? Sometimes I like to mess around with ports and stuff trying to make them run on older systems but only having a 64 bit binary leaves you only with more modern systems. Having this running on an old Win98 machine at the same framerate as the original would be hilarious! Happy new year, by the way! Great work, this plays fantastic! I saw you are working on a PSX Doom port as well, I really wanna check that out! Thanks, happy new year to you too! Glad it worked out for you :) I believe the game should build for and run in a 32-bit environment so it might work on even older Windows too, I'm not sure... I didn't bother with a 32-bit build since most people are on 64-bit systems these days but I think it should be possible to do this. I don't know about going back as far as Win 98 though haha... I did make some simplifications however to the fixed point math routines that take advantage of 64-bit registers, so perhaps those might not be as optimal in a 32-bit environment. 0 Quote Share this post Link to post
CoTeCiO Posted January 1, 2020 4 hours ago, intacowetrust said: Thanks, happy new year to you too! Glad it worked out for you :) I believe the game should build for and run in a 32-bit environment so it might work on even older Windows too, I'm not sure... I didn't bother with a 32-bit build since most people are on 64-bit systems these days but I think it should be possible to do this. I don't know about going back as far as Win 98 though haha... I did make some simplifications however to the fixed point math routines that take advantage of 64-bit registers, so perhaps those might not be as optimal in a 32-bit environment. Well, if a 32 bit build happens, I'd gladly test it on my older hardware. I have quite a few older 32 bit machines around. One thing I noticed is that some elements run ridiculously fast, like doors and elevators. I assume they were made like that considering the real thing crawled, or is it a side effect of having the framerate uncapped or something else? 0 Quote Share this post Link to post
Nevander Posted January 1, 2020 This looks really awesome. I've always wanted to play 3DO Doom despite the negative aspects but now with this I can play it without going insane. I'll try this out in the coming weeks. 2 Quote Share this post Link to post
Nevander Posted April 30, 2020 Finally got a chance to try this. Works pretty well and I'm glad to have a way to play 3DO Doom that won't make me want to die. I did notice some minor issues: I didn't have the IMG named correctly, and after it told me it couldn't find the file, the program crashed. Maybe it's supposed to? Just felt odd. Worked fine after I gave it the right name. The INI is generated in such a way that it's messed up when opened with Notepad in Windows 7. I think it has something to do with line feeds or line endings or whatever. I can't remember what exactly it is. I was able to fix it by opening with Wordpad, copying all, opening with Notepad and replacing everything. The biggest issue I noticed: The mouse turning sensitivity is slower if you're turning while also pressing move forward for some reason. If I turn without moving forward, it's faster. While pressing move back, or strafe left or right seems to have no effect. It's moving forward only. Strange. I don't know if this could be fixed. Great job though! 3 Quote Share this post Link to post
seed Posted April 30, 2020 15 minutes ago, Nevander said: The INI is generated in such a way that it's messed up when opened with Notepad in Windows 7. I think it has something to do with line feeds or line endings or whatever. I can't remember what exactly it is. I was able to fix it by opening with Wordpad, copying all, opening with Notepad and replacing everything. This is probably not what you're looking for but um... *shrugs*, is there a particular reason why you're not using Notepad++ instead? I find it vastly superior for editing .ini files and just working with code in general. The OG Notepad is pretty useless. 3 Quote Share this post Link to post
Nevander Posted April 30, 2020 5 minutes ago, seed said: This is probably not what you're looking for but um... *shrugs*, is there a particular reason why you're not using Notepad++ instead? I find it vastly superior for editing .ini files and just working with code in general. The OG Notepad is pretty useless. I just never bothered to use it. Everything I need to do I can either use SLADE or Notepad. While I agree it is superior, I also sort of disagree that OG Notepad is useless. It's great for quickly making notes or opening INIs or CFGs and making an edit. 1 Quote Share this post Link to post
NightFright Posted April 30, 2020 If 3DO Doom had played the way it does with this port back in the days, it would have been a success story. I opened one issue on March 2 regarding command line parameters which I would have liked to use. No clue if it's actively developed still right now, though. Anyway, this is how the game should have run on the 3DO. And the music is still an absolute feast for the ears. Too bad the tracks don't cover much more than ep.1 before they start being reused over and over again. 1 Quote Share this post Link to post
Redneckerz Posted April 30, 2020 21 minutes ago, seed said: This is probably not what you're looking for but um... *shrugs*, is there a particular reason why you're not using Notepad++ instead? I find it vastly superior for editing .ini files and just working with code in general. The OG Notepad is pretty useless. Praise be. Ever since i started using ++ i have only touched upon regular Notepad for reasons found below. The ability to have tabbed texts plus it remembering your history (So that when you open one text file, it also loads the others ''silently'' in a tab) is such a godsend, significantly improving my iteration speed on things. Plus, colored highlighting that a file needs to be saved is genius too. And that's just stock ++. 14 minutes ago, Nevander said: I just never bothered to use it. Everything I need to do I can either use SLADE or Notepad. While I agree it is superior, I also sort of disagree that OG Notepad is useless. It's great for quickly making notes or opening INIs or CFGs and making an edit. This was literally me late last year when i finally installed ++. (Yes, i am so late to that party that the people at said party are already in retirement homes). That said, i also agree with the latter part - Notepad is still useful for certain things. For instance, when reading old text files, sometimes i do not want them in the ++ tabbed window (I use a few tabs haha). For quick looks on old readme files of old ports, Notepad is still fly for the opposite reason why i use ++. ++ is for lengthy editing and book-keeping, but ole Notepad is great for quick looks. 2 Quote Share this post Link to post
intacowetrust Posted April 30, 2020 Thanks for the feedback @Nevander! 5 hours ago, Nevander said: I didn't have the IMG named correctly, and after it told me it couldn't find the file, the program crashed. Maybe it's supposed to? Just felt odd. Worked fine after I gave it the right name. Yeah it looks for an .IMG file named 'Doom3DO.img' by default. Usually the easiest thing is to just name your .IMG file the same as that. You can change the .IMG path to whatever you like though by editing the generated config file. The game intentionally terminates itself if it doesn't have any data because that's not a situation which can be recovered from. 5 hours ago, Nevander said: The INI is generated in such a way that it's messed up when opened with Notepad in Windows 7. I think it has something to do with line feeds or line endings or whatever. I can't remember what exactly it is. I was able to fix it by opening with Wordpad, copying all, opening with Notepad and replacing everything. I think they *finally* fixed this issue in recent Win 10 updates, but probably of no use if you're still on 7: https://arstechnica.com/gadgets/2018/05/notepad-gets-a-major-upgrade-now-does-unix-line-endings/. I could perhaps change it though so it uses different line endings for the .ini depending on platform, to make it a bit friendlier on older Windows. If you're looking for a good text editor though I would highly recommend https://www.sublimetext.com. It's very extensible, supports many syntaxes and plugins, and works cross platform. NotePad++ is also another good one (I used to use before Sublime) - but I find it a bit more clunky and it seems to be constantly popping up annoying dialogs asking to be updated. 5 hours ago, Nevander said: The biggest issue I noticed: The mouse turning sensitivity is slower if you're turning while also pressing move forward for some reason. If I turn without moving forward, it's faster. While pressing move back, or strafe left or right seems to have no effect. It's moving forward only. Strange. I don't know if this could be fixed. Yeah the turning thing is a holdover from the 3DO code - turning is slightly quicker (fast turn speed) when you're standing still on a spot. If that feels annoying, perhaps I can get rid of it - I think it was done with digital controllers in mind. Hadn't ran into the strafe issue - sounds odd... I can take a look. 4 hours ago, NightFright said: If 3DO Doom had played the way it does with this port back in the days, it would have been a success story. I opened one issue on March 2 regarding command line parameters which I would have liked to use. No clue if it's actively developed still right now, though. Thanks for your ticket, just seeing it now - odd that github doesn't send me emails when new ones are added. Maybe I turned off notifications or something a while ago to avoid spam :P I would say this project is more in 'maintenance' mode at the minute. I'm reasonably happy with the feature set but willing to fix any bugs or stability issues that come up. Having that said as well, I do want to integrate a hardware accelerated renderer at some point to allow for fast gameplay at high resolutions and do movement interpolation, so that framerates beyond 60 FPS can be done very smoothly. I'll likely do those when I add similar features to PsyDoom and kill two birds with the one stone. 4 Quote Share this post Link to post
intacowetrust Posted May 9, 2020 On 4/30/2020 at 5:34 AM, Nevander said: While pressing move back, or strafe left or right seems to have no effect. It's moving forward only. Strange. I don't know if this could be fixed. Just to add I tested for this issue and was unable to reproduce. I don't see anything in the code that would cause it either - left/right axis movement is completely independent to forward/back. Maybe it's something with the OS/keyboard that's causing the problem? 0 Quote Share this post Link to post
Nevander Posted May 10, 2020 (edited) 17 hours ago, intacowetrust said: Just to add I tested for this issue and was unable to reproduce. That figures... seems I'm always the one who finds problems that nobody else has. I've only ever noticed this just now, GZDoom and other Doom ports have no such isssue that I'm aware of. Just to be clear, the mouse looking is faster when you are moving forward and turning with the mouse at the same time. If you stop moving and turn the mouse, the mouse turning speed is slower. 17 hours ago, intacowetrust said: Maybe it's something with the OS/keyboard that's causing the problem? How would one know if such a thing is happening? I'm just on a standard keyboard, no special drivers. Edited May 10, 2020 by Nevander 0 Quote Share this post Link to post
intacowetrust Posted May 10, 2020 7 hours ago, Nevander said: Just to be clear, the mouse looking is faster when you are moving forward and turning with the mouse at the same time. If you stop moving and turn the mouse, the mouse turning speed is slower. Yeah this makes sense given how the code works at the minute. I might just eliminate this 'feature' entirely in the next release so the turn speed is consistent in all situations. Maybe it was helpful with the 3DO's digital controller but I don't think it's helpful on PC. 7 hours ago, Nevander said: How would one know if such a thing is happening? I'm just on a standard keyboard, no special drivers. I'm not sure - was just spitballing a little because I can't see why else it would be happening. If it works for other games though that seems like less of a possibility... It could be a bug in SDL as well. If you like maybe you could send a copy of the game's config .ini file found in '%APPDATA%\Roaming\com.codelobster\phoenix_doom'? Maybe there is something in that which is causing problems, like a doubly bound key or something. 0 Quote Share this post Link to post
Greenknight9000 Posted September 29, 2022 This is such a fantastic port! I love how playing with a controller feels in this (as well as PsyDoom) - many source ports don't have the movement and turning precision that an analog controller should give, so this feels very refreshing and fun to use! Out of curiosity, how would one go about modding the game? Mostly graphics swapping, but modding nonetheless. The only real complaints I have about this is it doesn't have the many ingame options as PsyDoom, so you'd have to adjust, for example, Always Run in the config file. Full Screen mode doesn't seem as good either, as it doesn't seem to display at your monitor's native resolution, causing windows to be moved around and pushed to the other monitor; you can't even maximize the window either. I also noticed that manually setting the fullscreen resolution would actually cause the game to just be cut off and not display at the correct resolution (for reference, my monitor resolution is 3840 x 2160) All these issues aside, this is an absolutely stellar Source Port and one I'll be using in many future replays to come! I'd love to see what the next potential console source port will possibly be! 2 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.