diff --git a/CHANGELIST.md b/CHANGELIST.md index c1518b0d1..b21105609 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -1,5 +1,6 @@ # Changelist +- [1.1.1](#111) - [1.1.0](#110) - [1.0.1](#101), [1.0.0](#100) - [0.8.3](#083), [0.8.2](#082), [0.8.1](#081), [0.8.0](#080) @@ -12,6 +13,23 @@ - [0.1.1](#011), [0.1.0](#010) - [0.0.3](#003), [0.0.2](#002), [0.0.1](#001) +---------------------------------------------------------------- +# 1.1.1 + +## Feature changes & improvements +- Add the ability to choose between exclusive and borderless windowed fullscreen modes. + - Previously PsyDoom only supported exclusive fullscreen. + - Borderless windowed is the new default, since it handles multi-tasking better and there is no real performance difference in most cases. +- Upgraded various third party libraries used by PsyDoom (such as SDL) for better OS and device compatibility. +- HUD: tweak message priority for renderer/uncapped-fps toggle. + - If toggling both at the same time then show a message for the renderer being toggled instead of uncapped fps being toggled. + +## Bug fixes +- Windows: fix invalid handling of Unicode characters in save data filepaths. + - This bug prevented user preferences and save files from being written successfully. +- Fix the Wolfenstein SS enemy not dropping ammo clips. +- Vulkan renderer: fix excessive registry access while the Window is minimized. + ---------------------------------------------------------------- # 1.1.0 diff --git a/extras/psydoom_mapping/ALLMAPS.LCD b/extras/psydoom_mapping/ALLMAPS.LCD index 4f4a2a6a5..4d083e52b 100644 Binary files a/extras/psydoom_mapping/ALLMAPS.LCD and b/extras/psydoom_mapping/ALLMAPS.LCD differ diff --git a/extras/psydoom_mapping/Build ALLMAPS.LCD/build.py b/extras/psydoom_mapping/Build ALLMAPS.LCD/build.py index 42e8da0e6..a4ed57c8f 100644 --- a/extras/psydoom_mapping/Build ALLMAPS.LCD/build.py +++ b/extras/psydoom_mapping/Build ALLMAPS.LCD/build.py @@ -2,7 +2,7 @@ ############################################################################################################################################ # This script builds 'ALLMAPS.LCD' which is an archive containing the sound samples for all possible enemies in PsyDoom. -# This .LCD file can be redistributed with new user maps to provide all required audio for those maps. +# This .LCD file can be redistributed with new user maps to provide all required audio for those maps. # # Requirements: # (1) The PsyDoom audio tool 'LcdTool' must be invokable on the command line (add it to the system path). @@ -21,8 +21,6 @@ # The first value of the pair is the patch sample index (in the .WMD file) and the second is the VAG file itself. soundList = [ # Original PSX sounds - [ 12, "SAMP0012.vag" ], # Fireball throw sound - [ 13, "SAMP0013.vag" ], # Fireball explode sound [ 21, "SAMP0021.vag" ], # Player pain [ 22, "SAMP0022.vag" ], # Demon pain [ 23, "SAMP0023.vag" ], # Zombie/imp pain @@ -55,7 +53,6 @@ [ 53, "SAMP0053.vag" ], # Zombie idle [ 54, "SAMP0054.vag" ], # Imp idle [ 55, "SAMP0055.vag" ], # Demon idle - [ 56, "SAMP0056.vag" ], # Rocket blast [ 58, "SAMP0058.vag" ], # Cyberdemon hoof up [ 59, "SAMP0059.vag" ], # Cyberdemon hoof thud [ 64, "SAMP0064.vag" ], # Knight Of Hell sight diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0000.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0000.vag new file mode 100644 index 000000000..3e27dc1f4 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0000.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0001.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0001.vag new file mode 100644 index 000000000..5db1d50da Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0001.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0002.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0002.vag new file mode 100644 index 000000000..b7ac36035 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0002.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0003.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0003.vag new file mode 100644 index 000000000..9412996a0 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0003.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0004.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0004.vag new file mode 100644 index 000000000..c72cc059e Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0004.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0005.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0005.vag new file mode 100644 index 000000000..7eafc1ff1 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0005.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0006.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0006.vag new file mode 100644 index 000000000..001983cb8 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0006.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0007.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0007.vag new file mode 100644 index 000000000..5dac1bbdd Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0007.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0008.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0008.vag new file mode 100644 index 000000000..586f7d896 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0008.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0009.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0009.vag new file mode 100644 index 000000000..4b641407e Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0009.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0010.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0010.vag new file mode 100644 index 000000000..70918c413 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0010.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0011.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0011.vag new file mode 100644 index 000000000..948366d35 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0011.vag differ diff --git a/extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0012.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0012.vag similarity index 100% rename from extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0012.vag rename to extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0012.vag diff --git a/extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0013.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0013.vag similarity index 100% rename from extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0013.vag rename to extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0013.vag diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0014.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0014.vag new file mode 100644 index 000000000..96c5fc9fa Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0014.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0015.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0015.vag new file mode 100644 index 000000000..a23832326 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0015.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0016.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0016.vag new file mode 100644 index 000000000..413fc54b4 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0016.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0017.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0017.vag new file mode 100644 index 000000000..501a7017e Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0017.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0018.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0018.vag new file mode 100644 index 000000000..acaf8fae9 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0018.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0019.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0019.vag new file mode 100644 index 000000000..4cae104d6 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0019.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0020.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0020.vag new file mode 100644 index 000000000..5a3245746 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0020.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0025.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0025.vag new file mode 100644 index 000000000..6ab7f80f0 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0025.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0026.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0026.vag new file mode 100644 index 000000000..3ab39a087 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0026.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0027.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0027.vag new file mode 100644 index 000000000..ec0483968 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0027.vag differ diff --git a/extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0056.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0056.vag similarity index 100% rename from extras/psydoom_mapping/Build ALLMAPS.LCD/SAMP0056.vag rename to extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0056.vag diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0057.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0057.vag new file mode 100644 index 000000000..404f6a2b2 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0057.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0060.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0060.vag new file mode 100644 index 000000000..d638b6359 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0060.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0061.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0061.vag new file mode 100644 index 000000000..8a02cdded Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0061.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0062.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0062.vag new file mode 100644 index 000000000..35952963a Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0062.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0063.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0063.vag new file mode 100644 index 000000000..f931340b1 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0063.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0083.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0083.vag new file mode 100644 index 000000000..5da4ae93a Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0083.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0084.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0084.vag new file mode 100644 index 000000000..d20e46fe6 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0084.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0085.vag b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0085.vag new file mode 100644 index 000000000..fa6238360 Binary files /dev/null and b/extras/psydoom_mapping/Build DOOMSFX.LCD/SAMP0085.vag differ diff --git a/extras/psydoom_mapping/Build DOOMSFX.LCD/build.py b/extras/psydoom_mapping/Build DOOMSFX.LCD/build.py new file mode 100644 index 000000000..1225f8cac --- /dev/null +++ b/extras/psydoom_mapping/Build DOOMSFX.LCD/build.py @@ -0,0 +1,90 @@ +#!python + +############################################################################################################################################ +# This script builds 'DOOMSFX.LCD' which is an archive containing the sound samples for all general effects (SFX) in PsyDoom. +# This .LCD file can be redistributed with new user maps to provide all required audio for those maps. +# +# Requirements: +# (1) The PsyDoom audio tool 'LcdTool' must be invokable on the command line (add it to the system path). +# (2) This script must be executed from this directory. +############################################################################################################################################ +import os +import subprocess +import sys + +# Script paths +LCD_TOOL_PATH = "LcdTool" # Path to the 'LcdTool' which builds the .LCD file +OUTPUT_LCD_PATH = "../DOOMSFX.LCD" # The LCD file that is built +MODULE_FILE_PATH = "../DOOMSND.WMD" # The Williams Module (.WMD) file containing all of the sequences and instruments for the game + +# All of the VAG sounds to be included in the built DOOMSFX.LCD file. +# The first value of the pair is the patch sample index (in the .WMD file) and the second is the VAG file itself. +soundList = [ + # Original PSX sounds + [ 0, "SAMP0000.vag" ], # Pistol shot + [ 1, "SAMP0001.vag" ], # Shotgun shot + [ 2, "SAMP0002.vag" ], # Entering level + [ 3, "SAMP0003.vag" ], # Plasma rifle shot + [ 4, "SAMP0004.vag" ], # BFG9000 charge and shot + [ 5, "SAMP0005.vag" ], # Chainsaw selection + [ 6, "SAMP0006.vag" ], # Chainsaw idle + [ 7, "SAMP0007.vag" ], # Chainsaw connecting + [ 8, "SAMP0008.vag" ], # Chainsaw use + [ 9, "SAMP0009.vag" ], # Rocket launcher shot + [ 10, "SAMP0010.vag" ], # Deathmatch item respawn + [ 11, "SAMP0011.vag" ], # BFG9000 projectile explosion + [ 12, "SAMP0012.vag" ], # Generic hellspawn fireball + [ 13, "SAMP0013.vag" ], # Generic projectile explosion + [ 14, "SAMP0014.vag" ], # Lift/platform start sound + [ 15, "SAMP0015.vag" ], # Lift/platform stop sound + [ 16, "SAMP0016.vag" ], # Door raise + [ 17, "SAMP0017.vag" ], # Door lower + [ 18, "SAMP0018.vag" ], # Crusher movement + [ 19, "SAMP0019.vag" ], # Switch use + [ 20, "SAMP0020.vag" ], # Menu closing sound + [ 25, "SAMP0025.vag" ], # Item pickup + [ 26, "SAMP0026.vag" ], # Wallhump + [ 27, "SAMP0027.vag" ], # Teleporter + [ 56, "SAMP0056.vag" ], # Barrel and rocket explosions + [ 57, "SAMP0057.vag" ], # Fist punch + [ 60, "SAMP0060.vag" ], # Super shotgun shot + [ 61, "SAMP0061.vag" ], # Super shotgun breaking open + [ 62, "SAMP0062.vag" ], # Super shotgun reloading + [ 63, "SAMP0063.vag" ], # Super shotgun closing + [ 83, "SAMP0083.vag" ], # Blazing door raise + [ 84, "SAMP0084.vag" ], # Blazing door lower + [ 85, "SAMP0085.vag" ], # Powerup pickup +] + +def add_file_to_lcd( + lcd_file_path, + wmd_file_path, + patch_sample_index, + vag_file_path, + append_to_lcd +): + # Invoke the LCD tool to add this file to the LCD + result = subprocess.call( + [ + LCD_TOOL_PATH, + lcd_file_path, + wmd_file_path, + "-append" if append_to_lcd else "-create", + str(patch_sample_index), + vag_file_path + ] + ) + + if result != 0: + print("FAILED to add file to LCD: {0:s}!".format(vag_file_path)) + sys.exit(1) + + +def main(): + append_to_lcd = False + + for sound in soundList: + add_file_to_lcd(OUTPUT_LCD_PATH, MODULE_FILE_PATH, sound[0], sound[1], append_to_lcd) + append_to_lcd = True + +main() diff --git a/extras/psydoom_mapping/DOOMSFX.LCD b/extras/psydoom_mapping/DOOMSFX.LCD new file mode 100644 index 000000000..d7d953270 Binary files /dev/null and b/extras/psydoom_mapping/DOOMSFX.LCD differ diff --git a/extras/psydoom_mapping/What Are These.txt b/extras/psydoom_mapping/What Are These.txt index 97dbfe63e..6c47ab54a 100644 --- a/extras/psydoom_mapping/What Are These.txt +++ b/extras/psydoom_mapping/What Are These.txt @@ -20,6 +20,11 @@ This is an audio bank that contains ADPCM encoded sounds for all possible enemie CREDITS: The GEC team behind the "PlayStation Doom: Master Edition" project has kindly donated the new sounds for the reimplemented Doom II enemies. If using this audio bank you should give credit to Team GEC in your README. For more on the "PlayStation Doom: Master Edition" project, see the Doomworld thread: https://www.doomworld.com/forum/topic/101161-gec-master-edition-psx-doom-for-the-playstation-1102019-beta-3-release-now-are-you-ready-for-more-action/ +--------------------------------------- +DOOMSFX.LCD +--------------------------------------- +DOOMSFX is the audio bank containing all sound effects. All of these sounds are loaded into memory when a level is started. If you want to build a custom ALLMAPS.LCD you may also have to rebuild DOOMSFX.LCD - even with the stock effects - as it can help fix some sounds not loading correctly. + --------------------------------------- Build DOOMSND.WMD ---------------------------------------