Gregory Stephens Posted August 17, 2020 We've been trying to understand the PlayStation 1 in its entirety for a long time, so you guys are really helping in that regard. 1 Quote Share this post Link to post
intacowetrust Posted August 17, 2020 (edited) Hey everyone, it's that time again... PsyDoom 0.5.0 is now available! The latest release can be downloaded from here: https://github.com/BodbDearg/PsyDoom/releases Here's a list of what's new in this version: Feature changes & improvements Added full support for Final Doom. PsyDoom can now play any variant of PlayStation Doom or Final Doom, PAL or NTSC. Note: with the exception of demos, PAL builds will play using NTSC timings (unless specified otherwise) since the overall user experience is better. PAL style gameplay can be forced via game settings however, if desired. Added fully bindable controls. Key mappings can now be changed via the 'control_bindings.ini' configuration file. Output scaling/stretch mode can now be configured. Doubled the sound buffer size to help prevent audio skipping on some machines. Implemented reading of the ISO-9660 filesystem used by PlayStation CD-ROMs. PsyDoom no longer hardcodes the start sectors and sizes of files on disc, as the retail build of PSX Doom originally did. This makes producing a modded PSX Doom CD-ROM image with edited files much easier. The size and location of each game file on disc is now retrieved at startup from the ISO filesystem. CD-ROM I/O improvements: removed all CD-ROM emulation except for music playback. File I/O is now direct, much simpler, faster and more reliable. Removed the old PlayStation controller configuration screen. This screen no longer serves any purpose in PsyDoom. It may be replaced by some other new in-game menus eventually. Classic cheat key sequences can now be entered on the pause menu using an Xbox controller or keyboard. Check your 'control_bindings.ini' file for which keys map to which original PSX buttons. Password screen: added the 'exit' option found from Final Doom. The option now appears for both games on this screen. Mouse wheel weapon switching improvements: allow movement of more than one weapon slot at a time with the wheel. Added Final Doom map format support: allow MAPXX.ROM to be used if MAPXX.WAD is not found. MAPXX.ROM files are interpreted as being in the Final Doom map format, which is slightly different to the original PSX Doom. The binary data structure for sectors and sidedefs differs for Final Doom. Added various changes to ensure full demo compatibility with Final Doom and the PAL version of both games. Game settings can be tweaked to use PAL timings and Final Doom's adjustments. Expanded PsyDoom's automated demo testing suite considerably. PsyDoom has now verified demo compatibility with PSX Doom and Final Doom for both the PAL and NTSC versions, via 4 complete playthroughs recorded as a collection of demo files against the original games. The only demos which can't be played back precisely at this point are those that generate undefined behavior. Some undefined behavior bugs such as buffer overflows cause unpredictable outcomes that can't be reproduced. PsyDoom fixes all known undefined behavior bugs and replaces them with well-defined outcomes, but it can't reproduce any undefined/unpredictable behavior potentially triggered by original demos. Thankfully however PSX Doom did not have too many commonly triggered undefined behavior bugs, so not a huge issue overall in terms of demo compatibility! WMD (Williams Module File) loading: use a dynamically allocated buffer big enough to hold any .WMD file. A stepping stone towards larger custom/modded .WMD files in future. Add partial support for the 'PSX Doom Forever' romhack. The game should be mostly be the exact same, but the hacked/modded Russian strings from the binary won't carry over. This will be the extent of PsyDoom's support for this. The path to the .cue file used can now be configured/changed. Made a movement input latency tweak added for PsyDoom configurable; can disable if original behavior is desired. Made the Lost Soul Spawn limit configurable. Input: the analog to digital threshold is now configurable. I_Error: use a system error dialog for error messages such as 'Texture Cache Overflow'. More user friendly but can be disabled if the original behavior of hanging the game with an error message on-screen is desired. Trim some unused stuff from SDL to reduce PsyDoom's binary size slightly. MacOS: Metal is now used instead of OpenGL. Should be more forward compatible for future MacOS versions. SDL upgraded from 2.0.10 to 2.0.12: contains various bug fixes and improvements. Conflicting movement and turning now always cancels. This can be disabled however if required. Bug fixes Weapon switching: fix a bug where you couldn't immediately switch back to the previously held/ready weapon once another weapon switch was started. Fixed interpolation in demos being broken. Fix small gaps at the sides of the screen during screen fades. Fix not being able to close the game window in windowed mode and make resizing easier. Don't capture the mouse again until the window's client area is clicked. Fix a bug where mouse wheel movement would sometimes not register, and possibly other input events. Various corner case demo compatibility fixes. LCD (sound sample) loader: fixed a bug with trying to read too much data from .LCD files. MacOS: the file overrides mechanism for modding now works. MacOS: fix a strange freezing issue on pressing the left mouse button (only) just after startup. MacOS: fix the mouse wheel not working when shift is pressed. Fix undefined evaluation order for the expression 'P_Random() - P_Random()'. Depending on compiler this could produce different results since either side of the '-' can be evaluated first. Make a 'P_SubRandom' function like the Calico DOOM source port to fix. Video playthrough of Final Doom MAP08, Geryon, in PsyDoom 0.5.0 Edited August 17, 2020 by intacowetrust 13 Quote Share this post Link to post
Gregory Stephens Posted August 17, 2020 So I was finally able to get it running in Wine with your 0.5.0 version you released but the sound is really garbled and plays too fast. 1 Quote Share this post Link to post
intacowetrust Posted August 17, 2020 15 minutes ago, Gregory Stephens said: So I was finally able to get it running in Wine with your 0.5.0 version you released but the sound is really garbled and plays too fast. That's unfortunate... Sounds like your best bet might be to wait for native Linux support then. That should hopefully resolve all of these issues. 0 Quote Share this post Link to post
BlueThunder Posted August 17, 2020 I was testing this out last night. Awesome progress. Enjoying so far 1 Quote Share this post Link to post
Gez Posted August 17, 2020 9 hours ago, intacowetrust said: The binary data structure for sectors and sidedefs differs for Final Doom. Interesting. It'd be nice to have the details of both format on the wiki. https://doomwiki.org/wiki/Sector 1 Quote Share this post Link to post
Lollie Posted August 18, 2020 The controller configuration looks about as painless as an .ini file can be, appreciate the list of key/gamepad controls a lot. Hope to see in-game config return sometime in the future! I've yet to play with Final Doom, but here's a couple small things: 1) While in fullscreen, the outer border isn't being cleared. Normally this wouldn't matter as nothing is being rendered outside the play window anyway, but Nvidia likes to pop up notifications for its GeForce Experience / Shadowplay stuff, so they end up leaving behind trails that remain for the entirety of the play session. This would likely occur for any other PC notifications that appear over the top of the game. 2) Ultimate Doom: E1M3 Toxin Refinery's secret exit results in the end-game intermission screen being played, and then it returns to the main menu. (Free world record for PsyDoom speedrunners?) 2 Quote Share this post Link to post
intacowetrust Posted August 18, 2020 12 hours ago, Gez said: Interesting. It'd be nice to have the details of both format on the wiki. https://doomwiki.org/wiki/Sector Indeed. Is that something I can edit myself or is there someone in charge who can add it? The two versions of the data structures for WAD sectors and sidedefs can be found in the code starting here, if you want to see the differences: https://github.com/BodbDearg/PsyDoom/blob/aaf3eff3514d3eb1ab867cb17009560d3a3ea1f4/game/Doom/Game/doomdata.h#L85 2 hours ago, Lollie said: The controller configuration looks about as painless as an .ini file can be, appreciate the list of key/gamepad controls a lot. Hope to see in-game config return sometime in the future! I've yet to play with Final Doom, but here's a couple small things: 1) While in fullscreen, the outer border isn't being cleared. Normally this wouldn't matter as nothing is being rendered outside the play window anyway, but Nvidia likes to pop up notifications for its GeForce Experience / Shadowplay stuff, so they end up leaving behind trails that remain for the entirety of the play session. This would likely occur for any other PC notifications that appear over the top of the game. Thanks for the checking out the build! Yeah that issue actually slightly annoys me also when recording videos, usually alt-tabbing in/out fixes it. It's probably something to do with SDL not painting/refreshing that region of the screen which is unused. Will have to investigate... 2 hours ago, Lollie said: 2) Ultimate Doom: E1M3 Toxin Refinery's secret exit results in the end-game intermission screen being played, and then it returns to the main menu. (Free world record for PsyDoom speedrunners?) Heh! Thanks for reporting - that's pretty bad! I must have accidentally introduced the issue with some of the changes for Final Doom. I think I know what the problem is and should have a fix shortly. 2 Quote Share this post Link to post
Dimon12321 Posted August 18, 2020 (edited) 42 minutes ago, intacowetrust said: Indeed. Is that something I can edit myself or is there someone in charge who can add it? Yes, you can edit pages on DoomWiki even without the registration. Then a moderator has to check your changes (regardless of registration) and accept it. Edited August 18, 2020 by Dimon12321 0 Quote Share this post Link to post
intacowetrust Posted August 18, 2020 12 minutes ago, Dimon12321 said: Yes, you can edit pages on DoomWiki even without the registration. Then a moderator has to check your changes (regardless of registration) and accept it. Thanks for the info, I'll take a look! Just posted a minor bug-fix update for the issues mentioned by @Lollie with version 0.5.1: https://github.com/BodbDearg/PsyDoom/releases Changes in this version: Ultimate Doom: fix warping to secret levels resulting in the finale screen being shown. Fix certain on-screen notifications (like NV video recording) leaving marks in fullscreen. 4 Quote Share this post Link to post
Impboy4 Posted August 18, 2020 (edited) A friend of mine wants to know how to switch between the two games from the port. Readme file still says only Doom.cue file is needed. Unless this has been changed. Edited August 18, 2020 by Impboy4 1 Quote Share this post Link to post
Dark Pulse Posted August 18, 2020 59 minutes ago, Impboy4 said: A friend of mine wants to know how to switch between the two games from the port. Readme file still says only Doom.cue file is needed. Unless this has been changed. You'd need the Final Doom CUE/data in there, not the original Doom CUE. I don't think there's a way to have it pick either/or if both are in there, unless I'm wrong. 1 Quote Share this post Link to post
fenderc01 Posted August 18, 2020 26 minutes ago, Dark Pulse said: You'd need the Final Doom CUE/data in there, not the original Doom CUE. I don't think there's a way to have it pick either/or if both are in there, unless I'm wrong. The way I do it is to configure the ini to load the Doom.cue file by default and I use a batch file (or you could use a shortcut) that points to the Final Doom.cue via command line argument. 1 Quote Share this post Link to post
Dark Pulse Posted August 18, 2020 24 minutes ago, fenderc01 said: The way I do it is to configure the ini to load the Doom.cue file by default and I use a batch file (or you could use a shortcut) that points to the Final Doom.cue via command line argument. That also works, as a workaround. 0 Quote Share this post Link to post
intacowetrust Posted August 18, 2020 5 hours ago, Impboy4 said: A friend of mine wants to know how to switch between the two games from the port. Readme file still says only Doom.cue file is needed. Unless this has been changed. Yeah the game is set to look for 'Doom.cue' by default. This can either point to Doom or Final Doom, PsyDoom detects which game it is dealing with from the contents of the disc, specifically name of the start executable found at the disc root: https://github.com/BodbDearg/PsyDoom/blob/7070bb974458b209d47d101890199687c08b00ec/game/PcPsx/Game.cpp#L47 4 hours ago, Dark Pulse said: I don't think there's a way to have it pick either/or if both are in there, unless I'm wrong. Correct - there is no switching dialog on startup currently. There are two ways you could get around this: (1) Create a separate folder with another copy of 'PsyDoom.exe' and 'Doom.cue' but have 'Doom.cue' this time referring to the other game. (2) Use the following command line argument via a shortcut or batch file, as @fenderc01 mentioned: PsyDoom.exe -cue "Path To My Cue/MyCue.cue" This might be a useful function that a launcher could provide in future. 1 Quote Share this post Link to post
Ruritanian Posted August 19, 2020 Thanks for doing this. It's fascinating being able to play Doom Forever natively on a PC. I've also just had a playthrough of Master Levels in Final Doom. This is an amazing source port. Please, please, please add game saving as the next feature. 1 Quote Share this post Link to post
Job Posted August 20, 2020 On 8/17/2020 at 2:03 AM, intacowetrust said: Video playthrough of Final Doom MAP08, Geryon, in PsyDoom 0.5.0 This is a got'dang masterpiece. Thank you, sir, for all your service to the community. I salute you. 1 Quote Share this post Link to post
Ruritanian Posted August 20, 2020 7 hours ago, Job said: This is a got'dang masterpiece. Thank you, sir, for all your service to the community. I salute you. Yes, it's stunning. PlayStation Final Doom at high framerates is beyond amazing. It's also making Doom Forever more accessible, which is I think a better game that it's given credit for. 1 Quote Share this post Link to post
Dark Pulse Posted August 20, 2020 (edited) 8 hours ago, Ruritanian said: It's also making Doom Forever more accessible, which is I think a better game that it's given credit for. Russian PSYOPS hard at work, I see... Edited August 20, 2020 by Dark Pulse 2 Quote Share this post Link to post
Chris0neilson Posted August 21, 2020 Error: Doom.cue or Fdoom.cue 1 Quote Share this post Link to post
CoTeCiO Posted August 21, 2020 Interesting, now that this supports Final Doom I can see if my PC map conversion thing actually works. I'll give this a try whenever I get some time! I am pretty excited about this! 1 Quote Share this post Link to post
Ruritanian Posted August 21, 2020 8 hours ago, Chris0neilson said: Error: Doom.cue or Fdoom.cue It's sensitive as to how the game was ripped. For Doom, the first one I found on archive.org worked. For Final Doom, I needed to manually edit the cue file to remove a PREGAP line and then it worked. 1 Quote Share this post Link to post
Job Posted August 21, 2020 Dumb question. I have the original disc for both games. What's the process for ripping them for use in PsyDoom? Are there any special parameters I need to ensure during the process? 2 Quote Share this post Link to post
Dark Pulse Posted August 21, 2020 3 hours ago, Job said: Dumb question. I have the original disc for both games. What's the process for ripping them for use in PsyDoom? Are there any special parameters I need to ensure during the process? I think just a typical BIN/CUE works fine. IIRC there was some wackiness over a multi-track BIN, though regarding music. Just rip it as a one-track BIN with a CUE and you'll apparently be okay. 1 Quote Share this post Link to post
intacowetrust Posted August 21, 2020 1 hour ago, Dark Pulse said: IIRC there was some wackiness over a multi-track BIN, though regarding music. Just rip it as a one-track BIN with a CUE and you'll apparently be okay. Yep that's a bug which needs to be fixed. For now the preference is for a single .bin + .cue. 16 hours ago, Chris0neilson said: Error: Doom.cue or Fdoom.cue Hey @Chris0neilson would you be able to share your .cue file which generated this error (just the .cue, not the .bin files) and the size (in bytes) of each of your .bin files? You can DM me if you like. It seems to be complaining that your .cue file is pointing to data that does not exist on disk, but I need to check the logic to make sure nothing wacky is happening. 0 Quote Share this post Link to post
Ruritanian Posted August 21, 2020 (edited) For reference, this is a No EDC PAL version of Doom which worked for me: https://archive.org/download/Redump.orgSonyPlayStation-PAL-D/Doom (Europe) (No EDC).zip This is the PAL version of Final Doom which worked for me: https://archive.org/download/Redump.orgSonyPlayStation-PAL-F/Final Doom (Europe).zip Edited August 21, 2020 by Ruritanian 0 Quote Share this post Link to post
Chris0neilson Posted August 22, 2020 (edited) Quote Hey @Chris0neilson would you be able to share your .cue file which generated this error (just the .cue, not the .bin files) and the size (in bytes) of each of your .bin files? You can DM me if you like. It seems to be complaining that your .cue file is pointing to data that does not exist on disk, but I need to check the logic to make sure nothing wacky is happening. Doom.cue FILE "DOOM.BIN" BINARY REM SESSION 01 TRACK 01 MODE2/2352 INDEX 01 00:00:00 TRACK 02 AUDIO INDEX 01 07:59:14 TRACK 03 AUDIO INDEX 01 11:10:33 TRACK 04 AUDIO INDEX 01 13:08:27 TRACK 05 AUDIO INDEX 01 17:06:31 TRACK 06 AUDIO INDEX 01 20:34:42 TRACK 07 AUDIO INDEX 01 22:44:44 TRACK 08 AUDIO INDEX 01 23:40:31 Edited August 22, 2020 by Chris0neilson 1 Quote Share this post Link to post
intacowetrust Posted August 22, 2020 4 hours ago, Chris0neilson said: Doom.cue Thank you, I will investigate! 0 Quote Share this post Link to post
Ruritanian Posted August 22, 2020 Something helpful I've noticed. 1. Start the game as normal, with your controller connected. 2. Win+G to bring up Xbox Game Bar. 3. Alt+Tab to go back to PsyDoom. The Windows mouse pointer is now at the location where a crosshair would be. 0 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.