Jump to content

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


Recommended Posts

3 hours ago, ludicrous_peridot said:

Is it possible to load GEC Master Edition with PsyDoom? I though this was in the works at some point, but am not sure.

 

A little hackery,  but it worked for me

Share this post


Link to post
On 6/2/2022 at 1:51 AM, ludicrous_peridot said:

Is it possible to load GEC Master Edition with PsyDoom? I though this was in the works at some point, but am not sure.

 

Not officially yet but proper support will be added in the next release. I was waiting for the project to be finished up rather than trying to hit a moving target, but since the Master Edition has been in stasis for over two and a half years now I'm just going to go ahead and add support.


For now however you can use the method @BlueThunder linked to.

Share this post


Link to post

Been playing some more today in anticipation of the next release;

- Are smoother animations/a more frames option for doors opening/closing, moving lifts/platforms, walls etc in the pipeline to match the increased frame rate when playing with Vulkan?

- How difficult would it be to extend the graphics on the start screens, options screens, level complete screens etc to get rid of the black bars when playing in 16:9 resolutions - couple of mockups below (Appreciate may be fairly tricky art wise in particular for the Game Mode/Difficulty/Options/Quit Screen & Level Finished Screen because of the background)

 

Final Doom Widescreen Options Mockup.png

Final Doom Widescreen Title Mockup.png

Edited by francis247uk

Share this post


Link to post
On 6/5/2022 at 9:40 AM, francis247uk said:

- Are smoother animations/a more frames option for doors opening/closing, moving lifts/platforms, walls etc in the pipeline to match the increased frame rate when playing with Vulkan?

 

Indeed they are - sprite, sector and player weapon interpolations are already implemented in the latest code.

 

On 6/5/2022 at 9:40 AM, francis247uk said:

- How difficult would it be to extend the graphics on the start screens, options screens, level complete screens etc to get rid of the black bars when playing in 16:9 resolutions - couple of mockups below (Appreciate may be fairly tricky art wise in particular for the Game Mode/Difficulty/Options/Quit Screen & Level Finished Screen because of the background)

 

See this ticket for thoughts on the issue: https://github.com/BodbDearg/PsyDoom/issues/26

Share this post


Link to post

I submitted several bug reports to Github, mostly relating to co-op. Sorry, I don't mean to bombard you with too much at once.

 

I also have a few feature requests, but I can hold on to those until the project reaches version 1.0, if you'd like.

Edited by fenderc01

Share this post


Link to post
On 6/7/2022 at 6:40 AM, fenderc01 said:

I submitted several bug reports to Github, mostly relating to co-op. Sorry, I don't mean to bombard you with too much at once.

 

I also have a few feature requests, but I can hold on to those until the project reaches version 1.0, if you'd like.

 

That's ok, thanks for submitting the bugs! You can just add them in there whenever you want, they won't do any harm :)

Share this post


Link to post
  • 3 weeks later...
  • 3 weeks later...
16 minutes ago, francis247uk said:

Hi @intacowetrust, been checking the board regularly to see if there's any word on the next release, did you have any rough timescale in mind at all?

I've been following the project closely on github, don't take my word on it, but I have the suspicion that it might be soon, so who knows?

Share this post


Link to post
On 7/10/2022 at 10:44 AM, francis247uk said:

Hi @intacowetrust, been checking the board regularly to see if there's any word on the next release, did you have any rough timescale in mind at all?

 

It's still a bit off since there is a lot going into the next release. Rest assured however progress towards this milestone is being made continually with each passing week. I would not be able to commit to an exact timescale however, I'm afraid.

Share this post


Link to post
16 hours ago, intacowetrust said:

Small teaser for the next release ;-)

 

psydoom_rpi.jpg.ea55a677e38f3edc5a1c5ec9a7235476.jpg

Looks like it's a bit too DSOOF for the Pi you picked in terms of VRAM :P

Share this post


Link to post
5 hours ago, Dark Pulse said:

Looks like it's a bit too DSOOF for the Pi you picked in terms of VRAM :P

 

Yeah the Pi 400 is unable to do the 8192x8192 textures needed to support PsyDoom's 128 MiB VRAM surface, hence it has to fall back to using 32 MiB (a 4096x4096 texture) instead. Obviously this is still TONS for running the original games, since the PSX only had 1 MiB of VRAM (a 1024x512 texture). I need to tweak the config defaults for this device so that it only tries to use 32 MiB instead.

Share this post


Link to post
36 minutes ago, intacowetrust said:

 

Yeah the Pi 400 is unable to do the 8192x8192 textures needed to support PsyDoom's 128 MiB VRAM surface, hence it has to fall back to using 32 MiB (a 4096x4096 texture) instead. Obviously this is still TONS for running the original games, since the PSX only had 1 MiB of VRAM (a 1024x512 texture). I need to tweak the config defaults for this device so that it only tries to use 32 MiB instead.

Will that impact custom maps? I could see it theoretically being a problem if people somehow put in more than 32 MB of textures.

Share this post


Link to post

Wait Holy shit a PI VERSION?! Am i gonna be able to run it on my raspberry pi + CRT setup?! Oh my god i can't wait! 

 

Can we run it from the command line? 🙏

Edited by Muusi

Share this post


Link to post
21 hours ago, Dark Pulse said:

Will that impact custom maps? I could see it theoretically being a problem if people somehow put in more than 32 MB of textures.

 

Depends how complex the map is, 32 MiB is quite a lot of textures though so probably not a problem in practice for most maps.

 

4 hours ago, Muusi said:

Wait Holy shit a PI VERSION?! Am i gonna be able to run it on my raspberry pi + CRT setup?! Oh my god i can't wait! 

 

Yep, because there will be Linux support. Note: a Raspberry Pi 4 will be required for Vulkan, and you will also have to install the beta Vulkan drivers via this command:

sudo apt-get install mesa-vulkan-drivers

These drivers are also very slow and unoptimized currently, because they are very much a work in progress. It runs fine at 480p ('crispy' PSX Doom territory) but going above that starts to dip below 60 FPS. Hopefully this will improve with future OS releases and updates to that package.

 

4 hours ago, Muusi said:

Can we run it from the command line? 🙏

 

Seems like you have to for some reason. The default GUI of the RPI doesn't let you just click on the executable to run it.

Share this post


Link to post

I imagine the game will be able to run in the original resolution of PSX Doom? 

 

All i need is to be able to run it from the command line or with a script in a front-end. My Pi 4 outputs 240p/480i analog RGB so the GUI isn't even an option for me😆

Edited by Muusi

Share this post


Link to post
6 hours ago, intacowetrust said:

Yep, because there will be Linux support. Note: a Raspberry Pi 4 will be required for Vulkan

Aww, phooey. I'm (hopefully!) getting my Steam Deck today, so I was hoping to see it running natively on that.

Share this post


Link to post
On 7/18/2022 at 10:20 PM, Muusi said:

I imagine the game will be able to run in the original resolution of PSX Doom? 

 

Yes, for the classic renderer the game draws to the same 256x240 sized framebuffer as the PlayStation. You can also configure the Vulkan renderer to draw to a similar sized framebuffer, if you want to. This produces results similar to the original game, but with far less glitches and imprecision.

 

That's just the internal render resolution however, there's a separate output resolution that I recommend everyone set as high as they can, ideally at your display's native resolution. This is what PsyDoom will default to out of the box. The internal framebuffer is blitted to this output area.

 

The reason I recommend the output resolution be set as high as possible is because in order to reproduce the original aspect ratio of PSX Doom, the 256x240 framebuffer is stretched to an area of approximately 292x240. This stretching can cause noticeable doubled or missing columns of pixels if the output resolution is too low. It wasn't a problem with CRTs back in the day because they were much more flexible about that sort of thing but todays displays use fixed grids of pixels unfortunately. I would avoid the stretching entirely, but its pretty of crucial to how the game looks in terms of aspect ratio. Generally output resolutions of 1080p or more work best.

Share this post


Link to post
18 hours ago, Dark Pulse said:

Aww, phooey. I'm (hopefully!) getting my Steam Deck today, so I was hoping to see it running natively on that.

 

Just to clarify the Vulkan support on Linux isn't just limited to the RPI4, the Vulkan renderer works on standard desktop Linux too. It's the RPI3 or lower that cannot use Vulkan, since there are no drivers available. (I know there was a proof of concept driver for the RPI3, but that comes with some pretty severe limitations)

 

Hopefully it just works out of the box on Steam Deck, I've been testing on Mint (Debian based) but the Steam Deck is Arch based so not sure if additional work is needed for it to compile.

Share this post


Link to post

Are there any plans to implement widescreen support for the classic renderer? 

Or is that even possible?

Share this post


Link to post
4 hours ago, intacowetrust said:

That's just the internal render resolution however, there's a separate output resolution that I recommend everyone set as high as they can, ideally at your display's native resolution. This is what PsyDoom will default to out of the box. The internal framebuffer is blitted to this output area.

Exactly what i meant, can this game output a proper resolution for a standard definition CRT? 320x240 for example. 

Share this post


Link to post
6 hours ago, intacowetrust said:

 

Just to clarify the Vulkan support on Linux isn't just limited to the RPI4, the Vulkan renderer works on standard desktop Linux too. It's the RPI3 or lower that cannot use Vulkan, since there are no drivers available. (I know there was a proof of concept driver for the RPI3, but that comes with some pretty severe limitations)

 

Hopefully it just works out of the box on Steam Deck, I've been testing on Mint (Debian based) but the Steam Deck is Arch based so not sure if additional work is needed for it to compile.

Well I know that for Steam Deck, a lot of people strongly advise to nab Flatpaks of Linux apps.

 

I'll have to look into it (I'm not terribly versed in Linux myself), but the Deck did indeed arrive yesterday, so if you'd like some testing, I'd be happy to help :)

 

Drop me a line on Discord; you know where I hang out.

Edited by Dark Pulse

Share this post


Link to post
On 7/20/2022 at 1:35 AM, ASON-Z- said:

Are there any plans to implement widescreen support for the classic renderer? 

Or is that even possible?

 

Not without substantial changes to how the renderer works, since the assumption of a 90 degree field of view is baked in everywhere and used to simplify various calculations. Supporting widescreen would mean widening the 90 degree field of view, and dropping all of the tricks that went along with it. After all these changes it wouldn't really be the same 'classic' renderer anymore. Plus I feel like this use-case is already more or less covered by using the Vulkan renderer and rendering at 240p with widescreen enabled.

 

TLDR: I don't plan on implementing this feature.

 

On 7/20/2022 at 3:29 AM, Muusi said:

Exactly what i meant, can this game output a proper resolution for a standard definition CRT? 320x240 for example. 

 

You can output to a low resolution but the results will not likely be pretty as I said, since the game is trying to fit a fixed grid of pixels into another fixed grid of pixels of a different size, in order to emulate the 'stretch' that PSX Doom had originally via hardware features unique to CRTs. This pixel grid mismatch works OK at high resolutions since the artifacts are barely noticeable but at lower output resolutions you're going to see doubled or dropped columns of pixels.

 

One thing you might be able to do however is to disable the stretching on PsyDoom's end and try to have your CRT stretch the picture in some way via its settings, if it allows such a thing. You can disable PsyDoom's stretching of the output framebuffer by changing the following value in 'graphics_cfg.ini' to 256:

#---------------------------------------------------------------------------------------------------
# Determines the game's horizontal stretch factor and affects both the Classic and Vulkan renderers.
#
# Given an original logical resolution of 256x240 pixels, this is the width to stretch that out to.
# If set to '292' for example, then the stretch factor would be 292/256 or 1.14 approximately.
#
# Some background information:
# PSX Doom (NTSC) originally rendered to a 256x240 framebuffer but stretched that to approximately
# 292x240 (in square pixel terms, or 320x240 in CRT non-square pixels) on output; this made the game
# feel much flatter and more compressed than the PC original. The PAL version also did the exact
# same stretching and simply added additional letterboxing to fill the extra scanlines on the top
# and bottom of the screen.
#
# Typical values:
#  292 = Use (approximately) the original PSX Doom stretch factor for the most authentic look.
#  256 = Don't stretch horizontally. Makes for a more PC-like view, but some art won't look right.
#  -1  = Stretch to fill: the logical display width is automatically set such that the original PSX
#        view area and UI elements will fill the display completely, regardless of how wide it is.
#---------------------------------------------------------------------------------------------------
LogicalDisplayWidth = 256

This will make PsyDoom render pixels 1:1. If you had a 320x240 output resolution then PsyDoom would basically put the 256x240 framebuffer in the center of that area with black letterboxing at the sides. If your CRT allowed you could then adjust the picture to widen it and fill the whole screen area, but I guess that depends on the capabilities of your box.

 

On 7/20/2022 at 5:33 AM, Dark Pulse said:

Well I know that for Steam Deck, a lot of people strongly advise to nab Flatpaks of Linux apps.

 

I'll have to look into it (I'm not terribly versed in Linux myself), but the Deck did indeed arrive yesterday, so if you'd like some testing, I'd be happy to help :)

 

Thanks for the offer, I'd definitely be interested to hear how the game works on Steam Deck! At the minute I'm just outputting plain Unix style executables but perhaps Flatpak is the way to go for a more polished release. I know that dependencies on Linux systems can be a bit of a nightmare and eventually those executables might break with some new update (or different distro) - hopefully Flatpak can help address that? (I'm not well versed in the Linux world, but it seems like that might be one the main objectives of these new container formats)

 

Share this post


Link to post

@intacowetrust

Thanks for all this info! Can't wait for the Pi4 version to be out! Unfortunately i don't think there are many CRTs that have such image adjustment settings, i guess one thing i could try is adjusting geometry via the service menu and stretch the image horizontally as much as possible. 

 

Another possibility could be running the game in a 1920x240 super resolution which would enable stretching the image in software(like how Retroarch does it) but i don't know how to do that exactly and that's surely out of the scope of the port anyway. Maybe in a future libretro port? 🤣

Share this post


Link to post
  • 2 weeks later...

I hope it's okay to post a link to a map I created for PsyDoom. It's technically not a map I created. It's a conversion of Doomsday of UAC a.k.a. UAC_DEAD.

 

 

Edited by fenderc01

Share this post


Link to post
14 hours ago, fenderc01 said:

I hope it's okay to post a link to a map I created for PsyDoom. It's technically not a map I created. It's a conversion of Doomsday of UAC a.k.a. UAC_DEAD.

 

Of course - I love to see cool stuff people are making for PsyDoom. I had a lot of fun playing this map, thanks for sharing!

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...