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

PsyDoom 0.7.4 - PSX Doom port (reverse engineered) for PC

Recommended Posts

Posted (edited)
8 hours ago, VGA said:

0.7.2 solved my problem with Vulkan not rendering anything on my Nvidia 750 Ti. YAYYY :D

I also didn't have a problem with MSAA x4 (but I disabled it and enabled double native resolution for a more faithful look)

 

7 hours ago, Dimon12321 said:

Vulkan render now works on AMD Radeon R9 270. Thank you very much!

 

Thank you both for confirming, glad to hear it's now working! :)

 

So to summarize it sounds like after all of the feedback so far we are down to just issues on these cards:

  • Radeon RX 580 (@SaladBadger)
  • Radeon RX 570 (Reported by Whiteysnakey on the GEC discord)
  • Radeon RX 560 (@Tarry)

 

Interesting that they are all GCN 4 cards - I wonder if there are problems on that specific GPU architecture?

 

I updated my Vulkan SDK to the very latest also, so I would have the most up-to-date version of the 'synchronization' validation layer. Apparently this tool is now out of the alpha phase and ready for full use according to the previous SDK version release notes: https://vulkan.lunarg.com/doc/sdk/1.2.162.1/windows/release_notes.html

 

There is even a whole section in the tool docs on how it should be used to optimize synchronization to ensure that you are only doing the minimum amount of blocking ("Optimizing Synchronization with Synchronization Validation" section):

https://www.lunarg.com/wp-content/uploads/2021/01/Final_Guide-to-Vulkan-Synchronization-Validation_Jan_21.pdf

 

It sounds like they are pretty confident in its abilities to flag sync problems now, which sucks because it is not finding anything else with the synchronization code. I'm almost tempted to say "driver issue" but that should always be the last assumption. Hopefully the test hardware can reveal something, though if it's now sounding GCN 4 specific maybe not...

 

8 hours ago, VGA said:

I think you should consider using widescreen gfx when widescreen is enabled. For the HUD, the intermission etc. Like some ports have started doing. Also, maybe you could make ESC directly open the menu?

 

Yeah I would have tiled the menu screens but the graphic does lend itself to that unfortunately without new artwork; the options background can tile but it would look weird switching between a widescreen UI versus non widescreen when exiting out of options. There's also the added complication that user mods (which target the real hardware, via the GEC toolchain) might override the background so that wouldn't be widescreen aware either. This might also conflict with any new widescreen artwork added... PsyDoom should be able to work with such mod discs eventually, once official support is added for the GEC ME. In the end it seems the best option is to just leave the extended areas of the UI alone, since it serves no useful purpose anyway. It's a limitation of the port but one I don't think is ultimately that important...

 

8 hours ago, VGA said:

Also, maybe you could make ESC directly open the menu?

 

Possibly, I've been thinking about how to do that actually - it's a little tricky but will make a note to look at it. The problem is that the escape key also serves as a 'back' option in menus and going to the options screen is actually two separate steps, the combination of a pause + menu back action as per the original game. Maybe ESC could combine both of those actions in certain situations, or a new action could be added which takes priority over the 'menu back' that directly goes to options and directly back to the game (without the intermediate 'paused' screen).

 

8 hours ago, VGA said:

Also, maybe you could add shader support? Aren't you curious how PsyDOom looks with CRT-Royale? heheheh

 

Yeah I thought about CRT shaders, I think these are best handled externally by post-fx tools that are constantly maintained and updated like 'ReShade'. I had tested it's basic CRT shader before and it looked OK, and here is CRT-Royale in PsyDoom (classic renderer, but you can of course use it with Vulkan too):

 

image.png.c3f665d15b8dde29aa62f9935f01abaf.png

Edited by intacowetrust

Share this post


Link to post
3 minutes ago, Tarry said:

This is what it looks like on my end with MSAA enabled 
452486541_PsyDoom2021-03-2418-39-50.png.9b2f4ae38bac6fe2dfbdbda982a6ad28.png

 

Thank you for the screenshot! Very interesting patterns there, like you can almost see where the GPU has divided up particular parts of the screen into tiles. The middle diagonal is probably due to the two triangles used for full screen MSAA resolve step. Presumably the timings worked out more favorably for the other triangle and there was no corruption.

Share this post


Link to post

@intacowetrustThank you for your hard, hard work.

 

As a way of introducing a save feature, would it be possible to have it save say the most recent 20 level completion passwords, with an interface to scroll through these and then start at that point?  The savedata file could go in the same directory as the ROM.

Share this post


Link to post
3 hours ago, Ruritanian said:

As a way of introducing a save feature, would it be possible to have it save say the most recent 20 level completion passwords, with an interface to scroll through these and then start at that point?  The savedata file could go in the same directory as the ROM.

 

I could perhaps make the game log generated passwords to a text file so you can go back and retrieve old ones, would this help? Scrolling in the PSX UI might be a bit slow/tedious. I also have it planned to do a proper save file feature eventually, so I'm figuring this will eventually become the preferred method of saving progress for PsyDoom users.

Share this post


Link to post
6 hours ago, intacowetrust said:

 

I could perhaps make the game log generated passwords to a text file so you can go back and retrieve old ones, would this help? Scrolling in the PSX UI might be a bit slow/tedious. I also have it planned to do a proper save file feature eventually, so I'm figuring this will eventually become the preferred method of saving progress for PsyDoom users.

 

It's no big deal.  I'll wait until you've finished the real solution.

Share this post


Link to post

Got the AMD card delivered. Tried playing around with it and used various different settings and toyed with the AMD driver settings (adaptive sync etc. etc.) but was still unable to reproduce any of the GCN 4 issues.

 

@SaladBadger curious if the following commit on the 'develop' branch makes any difference for you at all:

https://github.com/BodbDearg/PsyDoom/commit/2fd3e8b87b97fe79b6b1034bae2d980a9c968b51

 

There were some parts of the render pass setup that were being defaulted and handled by the driver - perhaps this is where issues could be creeping in. I'm going to try and be explicit and spell out what PsyDoom needs there even though that seems to cause no issues on most cards; perhaps the AMD driver for GCN 4 is trying to do something clever which is breaking synchronization.

Share this post


Link to post
Posted (edited)

Maybe you're aware of it, but there is a visual bug on Vulkan render in Final Doom Map 7. Facing a specific direction while standing on a specific "line" results in seeing unnecessary IDCLIP-like textures and objects.

Edited by Dimon12321 : The video has done it's work. I deleted it

Share this post


Link to post
Posted (edited)

@intacowetrust I've only just realised PsyDoom automatically stores your most recent password for Doom and Final Doom.  This had been what I was looking for anyway, that I could go back to the level I had most recently started.  Thanks for including this!!!!

 

I think it's particularly with Final Doom where this source port stands out.

Edited by Ruritanian

Share this post


Link to post
47 minutes ago, Ruritanian said:

I think it's particularly with Final Doom where this source port stands out.

Why?

Share this post


Link to post
32 minutes ago, VGA said:

Why?

 

Gameplay on the PS1 version is far better than the PC version. 

Share this post


Link to post
5 hours ago, SaladBadger said:

Great success! It seems to work perfectly now.

 

I checked with MSAA on and off and both seem to work just fine.

 

Yessssss!!! Finally! Thank you so much for being patient and for helping me diagnose this issue :)

 

I should have a build with this fix available soon.

 

1 hour ago, Ruritanian said:

@intacowetrust I've only just realised PsyDoom automatically stores your most recent password for Doom and Final Doom.  This had been what I was looking for anyway, that I could go back to the level I had most recently started.  Thanks for including this!!!!

 

You're welcome, glad you're finding that feature useful!

 

11 hours ago, Dimon12321 said:

Maybe you're aware of it, but there is a visual bug on Vulkan render in Final Doom Map 7. Facing a specific direction while standing on a specific "line" results in seeing unnecessary IDCLIP-like textures and objects. I provided the timecodes

 

 

Thanks for reporting! Yeah noticed this before - there is something weird with the nodes/data for that particular map at that location. It happens in the classic renderer too:

 

map_error.gif.3a2950d82423daa3905027f34e049699.gif

 

Unfortunately there is not much that PsyDoom can do about this since it's bad map data and non-trivial to fix. The map and BSP tree etc. would need to be rebuilt to try and solve this.

Share this post


Link to post
12 minutes ago, intacowetrust said:

Unfortunately there is not much that PsyDoom can do about this since it's bad map data and non-trivial to fix. The map and BSP tree etc. would need to be rebuilt to try and solve this.

 

You mean, this problem might be seen on PSX as well?

Share this post


Link to post
Just now, Dimon12321 said:

You mean, this problem might be seen on PSX as well?

 

I believe it would, but I have not checked.

Share this post


Link to post
1 hour ago, intacowetrust said:

Unfortunately there is not much that PsyDoom can do about this since it's bad map data and non-trivial to fix. The map and BSP tree etc. would need to be rebuilt to try and solve this.


I’m assuming someone could rebuild the map data and then you could load the file externally. Is that correct?

Share this post


Link to post
4 hours ago, Ruritanian said:

 

Gameplay on the PS1 version is far better than the PC version. 

But the map selection of PSX Final Doom is very bad!

Share this post


Link to post
2 hours ago, VGA said:

But the map selection of PSX Final Doom is very bad!

https://doomwiki.org/wiki/Final_Doom_(PlayStation)

 

Many of the PC levels were shovelware. The selection of levels Williams Entertainment made for the PS1 were right.  The PS1 changes for included levels make them flow much better.  The inclusion of levels from Master Levels also helped.

Share this post


Link to post
18 minutes ago, Ruritanian said:

https://doomwiki.org/wiki/Final_Doom_(PlayStation)

 

Many of the PC levels were shovelware. The selection of levels Williams Entertainment made for the PS1 were right.  The PS1 changes for included levels make them flow much better.  The inclusion of levels from Master Levels also helped.

Final Doom PSX has too few maps, it's about half of what Doom PSX had. And they managed to include the worst Master Levels maps, omitting the best ones. They also omitted my favourite TNT:Evilution map, MAP9 Stronghold :(

 

That said, I have finished Doom PSX two times but never Final Doom PSX. I will give it another chance soon, maybe I will change my mind once I get through the Master Levels maps. 

Share this post


Link to post
8 hours ago, Dimon12321 said:

Yeah, it's present on PSX as well. I've just found it using BizHawk (Octoshock core)

https://ibb.co/c8DtyKg

 

Makes sense, thanks for confirming!

 

7 hours ago, fenderc01 said:

I’m assuming someone could rebuild the map data and then you could load the file externally. Is that correct?

 

That is correct; you could probably use the GEC Master Edition tools written by @Erick194 to rebuild and potentially fix the issue. The 'file overrides' mechanism that PsyDoom has can be used to load the new version of the map. You can use it to do new maps too, of course... Here's one I'm currently experimenting with for example, with some new textures from OTEX that I managed to hack in:

 

image.png.61700cf594a9e62b382b3e6c6d917594.png

Share this post


Link to post
Posted (edited)

Hey everyone just put up a new release (0.7.3) with more fixes, including one for AMD GCN 4 cards:

 

https://github.com/BodbDearg/PsyDoom/releases

 

Here is the changelist:

 

Feature changes & improvements (0.7.3)

  • Vulkan renderer: add the ability to specify a preferred GPU device to use, useful for manual selection in multi GPU systems.

 

Bug fixes (0.7.3)

  • Fix graphical corruption issues on AMD GCN 4 cards and possibly other AMD GPUs.
  • Fix discontinuities and 'wobbling' of the sky for some scenes, particularly at lower draw resolutions.
  • W_ReadMapLump : fix a crash with reading uncompressed map lumps (affects user maps).
  • P_LoadSectors : issue a descriptive error when a flat texture is not found rather than crashing.

Share this post


Link to post
1 hour ago, terrcraftguy695 said:

Is their a way to save in this port?

 

It will automatically store your most recent password.

Share this post


Link to post
Posted (edited)

Now that there is a widescreen mode with the new Vulkan renderer, I have a suggestion for an easy and cheap way of getting a widescreen status bar graphic without needing any custom assets

 

Screenshot_DoomPSX_20210330_113748.png.a266fa686beb3391ea6168676fa41b1e.png

 

Screenshot_DoomPSX_20210330_114223.png.0cc05035d5edc7e8c1d3a590f942f902.png

I had done this for the old GZDoom PSX TC and I think it looked pretty good (plus another easy tweak where I also added more fire tiles to the left and right to get the fire intro in widescreen too), and it also looks close to how the new PS4/Xbox/Switch/Steam ports of the original Doom makes its widescreen HUD look.

 

The extra status bar block is fine for 16:9 but for ultrawide it might be worth seeing if just a certain section of it could be tiled indefinitely after the initial few border pixels.

 

Basically, the PSX status bar graphic in the game files has an empty block on the right side, where it would draw either the weapon number grid, or the frag count in multiplayer. Thankfully, it's also a great candidate for drawing that block of the status bar to either side to pad it out for widescreen. So if it could be coded to draw that part of the texture to the left & right of the status bar it would look just like the above.

 

Capture.PNG.72efd1dc0e15bfff8ec9acfd45aeca8f.PNG

Edited by Tarvis

Share this post


Link to post

Interesting thing I found on MAP46, The Courtyard:

image.png.5e1df5d2fa6b04d33283738cfe31de7c.png

 

A while ago I put in this warning as a new PsyDoom feature to help map makers and forgot about it; recently however I noticed it triggering on this map. The warning tells you if you've run out of SPU RAM after loading the level. 

 

It appears that this issue is responsible for the Cacodemon death sounds not playing on this level. I did a little work this evening to raise the available SPU RAM from the original 512 KiB to a configurable amount (now defaulted to a very generous 16 MiB) and it appears that this fixes the Cacodemon sound issue.

 

So if you're wondering why the Cacos don't play death sounds on this map, lack of SRAM is the reason why...

Share this post


Link to post
12 hours ago, intacowetrust said:

Interesting thing I found on MAP46, The Courtyard:

image.png.5e1df5d2fa6b04d33283738cfe31de7c.png

 

A while ago I put in this warning as a new PsyDoom feature to help map makers and forgot about it; recently however I noticed it triggering on this map. The warning tells you if you've run out of SPU RAM after loading the level. 

 

It appears that this issue is responsible for the Cacodemon death sounds not playing on this level. I did a little work this evening to raise the available SPU RAM from the original 512 KiB to a configurable amount (now defaulted to a very generous 16 MiB) and it appears that this fixes the Cacodemon sound issue.

 

So if you're wondering why the Cacos don't play death sounds on this map, lack of SRAM is the reason why...

That SPU RAM check will actually be really damn useful.

Share this post


Link to post
On 3/27/2021 at 12:08 AM, intacowetrust said:

That is correct; you could probably use the GEC Master Edition tools written by @Erick194 to rebuild and potentially fix the issue. The 'file overrides' mechanism that PsyDoom has can be used to load the new version of the map. You can use it to do new maps too, of course... Here's one I'm currently experimenting with for example, with some new textures from OTEX that I managed to hack in:

 

image.png.61700cf594a9e62b382b3e6c6d917594.png

NICE. Where you put fold map and texture?

 

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
×