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

Phoenix Doom (backport of 3DO DOOM to PC)

Recommended Posts

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!

Share this post


Link to post

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.

Share this post


Link to post

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!

 

 

Share this post


Link to post
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!


 

Share this post


Link to post

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 by seed

Share this post


Link to post
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.

Share this post


Link to post
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 by seed

Share this post


Link to post
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 by intacowetrust

Share this post


Link to post

@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 by seed

Share this post


Link to post
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.

Share this post


Link to post

If it's a MSVC issue, maybe you need to recommend the redistributable runtime for the version of the compiler you're using?

Share this post


Link to post
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,

Share this post


Link to post
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...

Share this post


Link to post

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.

Share this post


Link to post
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!

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post

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.

Share this post


Link to post

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!

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post

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.

Share this post


Link to post
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.

Share this post


Link to post

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.

Share this post


Link to post
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?

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post

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!

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
×