apart
AIX
bgm_103_0000
BGM50103_01

apart
AIX
bgm_103_0001
BGM50103_02

mansion
AIX
bgm_104_0000
BGM50104_01

mansion
AIX
bgm_104_0001
BGM50104_02
Born From A Wish Ambient Noise???

hospital
AIX
bgm_105_0000
BGM50105_01
Hospital Ambient Noise

hospital
AIX
bgm_105_0001
BGM50105_02

hospital
AIX
bgm_105_0002
BGM50105_03
Hospital Ambient Noise

hospital
AIX
bgm_105_0003
BGM50105_04
Hospital Ambient Noise

hospital
AIX
bgm_105_0004
BGM50105_05

hospital
AIX
bgm_105_0005
BGM50105_06

hospital
AIX
bgm_106_0000
BGM50106_01

hospital
AIX
bgm_106_0001
BGM50106_03

hospital
AIX
bgm_106_0002
BGM50106_04

hospital
AIX
bgm_106_0003
BGM50106_05
Maria/James being chased by Pyramid in hospital

prison
AIX
bgm_107_0000
BGM50107_01
Labyrinth Ambient Noise???

prison
AIX
bgm_107_0001
BGM50107_02
Labyrinth Ambient Noise

prison
AIX
bgm_107_0002
BGM50107_03

prison
AIX
bgm_107_0003
BGM50107_04
Labyrinth Ambient Noise

prison
AIX
bgm_107_0004
BGM50107_05

prison
AIX
bgm_107_0005
BGM50107_06

hotel
AIX
bgm_108_0000
BGM50108_01

hotel
AIX
bgm_108_0001
BGM50108_02
Labyrinth Ambient Noise

hotel
AIX
bgm_108_0002
BGM50108_03
Hotel Ambient Noise

hotel
AIX
bgm_108_0003
BGM50108_04

hotel
AIX
bgm_108_0004
BGM50108_05

hotel
AIX
bgm_108_0005
BGM50108_06

prison
AIX
bgm_109_0000
BGM50109_01

prison
AIX
bgm_109_0001
BGM50109_02

prison
AIX
bgm_109_0002
BGM50109_03
After jumping down a hole in the Labyrinth

prison
AIX
bgm_109_0003
BGM50109_04

prison
AIX
bgm_109_0004
BGM50109_05

prison
AIX
bgm_109_0005
BGM50109_06

prison
AIX
bgm_110_0000
BGM50110_01

prison
AIX
bgm_110_0001
BGM50110_02

prison
AIX
bgm_110_0002
BGM50110_03

prison
AIX
bgm_110_0003
BGM50110_04
Labyrinth Ambient Noise

prison
AIX
bgm_110_0004
BGM50110_05

prison
AIX
bgm_110_0005
BGM50110_06

hospital
AIX
bgm_111_0000
BGM50111_01
Hospital Ambient Noise

hospital
AIX
bgm_111_0001
BGM50111_02
Generic hospital enemy music???

hospital
AIX
bgm_111_0002
BGM50111_03

hospital
AIX
bgm_111_0003
BGM50111_04

hospital
AIX
bgm_111_0004
BGM50111_05

hospital
AIX
bgm_111_0005
BGM50111_06

hospital
AIX
bgm_111_0006
BGM50111_07
Hospital Ambient Noise???

hotel
AIX
bgm_112_0000
BGM50127_01
Hotel Music Box (Incomplete)

hotel
AIX
bgm_112_0001
BGM50127_02
Hotel Music Box (Incomplete)

hotel
AIX
bgm_112_0002
BGM50127_03
Hotel Music Box (Incomplete)

hotel
AIX
bgm_112_0003
BGM50127_04
Hotel Music Box (Incomplete)

hotel
AIX
bgm_112_0004
BGM50112_05
Hotel Music Box

hotel
AIX
bgm_112_0005
BGM50112_06
Hotel Ambient Noise

hotel
AIX
bgm_112_0006
Use PC Version
PC Version has no audio in the file; not sure of PS2   equivalent (in any?)

hotel
AIX
bgm_112_NG_0000
BGM50127_01

hotel
AIX
bgm_112_NG_0001
BGM50127_02

hotel
AIX
bgm_112_NG_0002
BGM50127_03

hotel
AIX
bgm_112_NG_0003
BGM50127_04

hotel
AIX
bgm_112_NG_0004
Use PC Version
PC Version has no audio in the file; not sure of PS2   equivalent (in any?)

hotel
AIX
bgm_112_NG_0005
BGM50112_06

hotel
AIX
bgm_112_NG_0006
Use PC Version
PC Version has no audio in the file; not sure of PS2   equivalent (in any?)

hotel
AIX
bgm_113_0000
BGM50113_01
Angela on the hotel stairs of fire

hotel
AIX
bgm_113_0001
BGM50113_02
Hotel stairs of fire noise

hotel
AIX
bgm_113_0002
BGM50113_03
Hotel stairs of fire noise

hotel
AIX
bgm_113_0003
BGM50113_04
Hotel stairs of fire noise

hotel
AIX
bgm_113_0004
Use PC Version
No PS2 equivalent?

hotel
AIX
bgm_113_0005
Use PC Version
No PS2 equivalent?

hotel
AIX
bgm_113_0006
Use PC Version
No PS2 equivalent?

forest
AIX
bgm_114_a
BGM50114_01
Beginning cutscene music

forest
AIX
bgm_114_b_0000
Use PC Version
PC Version has no audio in the file; not sure of PS2   equivalent (in any?)

forest
AIX
bgm_114_b_0001
BGM50114_02
Once James leaves beginning bathroom/"I got a letter" cutscene

forest
AIX
bgm_114_b_0002
BGM50114_03

forest
AIX
bgm_114_b_0003
BGM50114_04
Running through woods/near start of game

forest
AIX
bgm_114_b_0004
BGM50114_05
Running through woods/near start of game

forest
AIX
bgm_114_b_0005
BGM50114_06
Running through woods/near start of game

forest
AIX
bgm_115_0000
BGM50115_01
After meeting Angela in cementary

forest
AIX
bgm_115_0001
BGM50115_02
In the town of Silent Hill ambient noise

forest
AIX
bgm_115_0002
BGM50115_03

forest
AIX
bgm_115_0003
BGM50115_04

forest
AIX
bgm_115_0004
BGM50115_05

prison
AIX
bgm_116_0000
BGM50116_01
Right before Angela labyrinth boss fight

prison
AIX
bgm_116_0001
BGM50116_02

prison
AIX
bgm_116_0002
BGM50116_03
Labyrinth room with Maria in cell

prison
AIX
bgm_116_0003
BGM50116_04
In the town of Silent Hill ambient noise???

town
AIX
bgm_117_0000
BGM50117_01

town
AIX
bgm_117_0001
BGM50117_02

apart
AIX
bgm_118_0000
BGM50118_01

apart
AIX
bgm_118_0001
BGM50118_02
Woodside Apt Hallway, 3F, near Rm 302

apart
AIX
bgm_118_0002
BGM50118_03
Discovering the corpse in WS Apt, Rm 208

apart
AIX
bgm_118_0003
BGM50118_04
Standing near entry door inside Rm 208, WS Apt

apart
AIX
bgm_118_0004
BGM50118_05
Woodside Apt Rm 202

hospital
AIX
bgm_119_0000
BGM50119_01
Hospital Ambient Noise

hospital
AIX
bgm_119_0001
BGM50119_02

hospital
AIX
bgm_119_0002
BGM50119_03

hospital
AIX
bgm_119_0003
BGM50119_04
Generic enemy music???

hospital
AIX
bgm_119_0004
BGM50119_05

prison
AIX
bgm_120_0000
BGM50120_01

prison
AIX
bgm_120_0001
BGM50120_02

prison
AIX
bgm_120_0002
BGM50120_03

prison
AIX
bgm_120_0003
BGM50120_04

prison
AIX
bgm_120_0004
BGM50120_05

hotel
AIX
bgm_121_0000
BGM50121_01

hotel
AIX
bgm_121_0001
BGM50121_02
PC version has a long dead space at the beginning before audio   plays

hotel
AIX
bgm_122_0000
BGM50122_01

hotel
AIX
bgm_122_0001
BGM50122_02

hotel
AIX
bgm_122_0002
BGM50122_03

hotel
AIX
bgm_122_0003
BGM50122_04

hotel
AIX
bgm_122_0004
BGM50122_05
Hotel after watching tape/leaving room 312

hospital
AIX
bgm_123_0000
BGM50123_01

hospital
AIX
bgm_123_0001
BGM50123_02

hotel
AIX
bgm_124_0000
BGM50124_01
Cutscene with two Pyramid Heads at end of game

hotel
AIX
bgm_124_0001
BGM50124_02

apart
AIX
bgm_125_0000
BGM50125_01

apart
AIX
bgm_125_0001
BGM50125_02
Generic enemy music???

apart
AIX
bgm_125_0002
BGM50125_03
Top of Woodside Apartment (main entrance) staircase, 3F

hotel
ADX
bgm_126
BGM50126_01

prison
AIX
bgm_128_0000
BGM50128_01

prison
AIX
bgm_128_0001
BGM50128_02

If you turn the volume up loud enough you can hear distortions in the clips recorded on YouTube, especially with the parts marked ADX.
However, as far as I can tell this has nothing to do with WAV vs ADX format.  This has to do with which player you use to hear the file and what sound system you use.  For example if you use Winamp to listen to both the WAV and ADX then they sound the same, there is no more distortion in ADX vs WAV.  But if you listen to the the ADX using Silent Hill 2 as the sound player then the distortion can be heard more audibly.  Also certain sound systems make it much easier to hear the distortion.
It might be possible to use WAV for Silent Hill 2, however many of the ADX files have looping built into them.  You would need to somehow code Silent Hill 2 to do that same looping for the WAV files.  This might be hard as the looping is different for each track.  I have spent the last few weeks manually building the loops for ADX and I have no idea how you could do this with WAV since WAV does not not have looping metadata in it.
As far as I can tell both the WAV files and the ADX files have the distortion.  I am gong to try and remove this distortion, however, @Nisto, if you can get us updated dialog tracks from the PS2 without this distortion that would be great as well.  :-)
BTW: AIX and AIXF are just files with one or more ADX tracks in them.  It is a way to multiplex several ADX tracks.  It stores the raw ADX files.  See here.

@Nisto @elishacloud
Do either of you gentlemen have the tools/ability to determine what specific sddata*.wav file (from the sddata.bin file) is being called/played at any given time, live, in-game?
The PC version doesn't play the Hospital game show chest opening SFX and I'm curious to know if it was simply never coded to include this SFX or it's just not calling the right file appropriately.
Quick Save save file
Just interact with the treasure box and put "3," "1," "3" in for the answers.

@jdkubiak, the easiest way to do that would be to build a custom sddata.bin file using the mergebin.exe tool.
Each wav file in that sddata.bin file would have a unique sound.  For instance:

sddata000.wav would say the word "zero"
sddata001.wav would say the word "one"
sddata002.wav would say the word "two"
...   ...
sddata414.wav would say "four hundred fourteen"
sddata415.wav would say "four hundred fifteen"
sddata416.wav would say "four hundred sixteen"

Then just play the game and see which number is spoken during that part of the game.  Here is an example of where you can get the audio files from.

I like the cut of your jib, sir; smart thinking all around. Unfortunately those .wav files didn't work (perhaps their bitrate is too low?) but I just duplicated a single SFX from the game as a test and, I'm happy to say, an audio clip does play when you open the chest (you can hear the SFX double-over on the file button press):
https://youtu.be/rMVUL4cZsR0
I'll spend some time tomorrow figuring out a way to save out new text-to-voice numbering .wav files that should hopefully play in-game. In the meantime Elisha, please hold off compiling a new sddata.bin file from the notes I emailed you about a few hours ago.
Thanks

I created the file.  You can download it here: sddata.zip
BTW: those files were stereo so you have to covert them to mono first, since Silent Hill 2 only supports mono for SFX files.

Thanks, Elisha! I wasn't sure how I was going to get those recordings.

BTW: those files were stereo so you have to covert them to mono first

?! I opened a few of the files in Audacity and they came in as mono. I specifically checked for that... Going crazier by the minute it seems.

Quick one, if you ever need to make a large series of WAV files where they say what number they are, you can use this PowerShell script I just cooked up. It goes from 1-10 currently but it's easy enough to edit.
Add-Type -AssemblyName System.speech $speak = New-Object System.Speech.Synthesis.SpeechSynthesizer foreach ($iteration in 1..10) {     $speak.SetOutputToWaveFile("$iteration.wav")     $speak.Speak("number $iteration number $iteration") } $speak.Dispose()

I've been trying to wrap my head around the AFS/ADX/WAV loading/playing routines during the week. I spent just about all of the free time I actually did have (work is stealing lots of hours lately) debugging the game, but it's also easy for me to get distracted when jumping in and out of work like this (x86 assembly is tough!) frequently. Kinda makes me miss my unemployed days! I've also started practicing driving, and that's going to take up even more time starting next week. So unfortunately, I may not be able to provide anything for a while.
So while I don't have any significant news to give, here's what I've learned so far:

The sound codes used in the PC version actually match the PS2 codes pretty closely (5xxxx for BGM, 6xxxx for dialogues, 1xxxx for sound effects, etc.), so there's a lot of program designs I've already figured out in the PS2 equivalent. In fact, it still contains all the sound effect IDs in a table in sh2pc.exe, which is actually used when a sound effect is requested, to get an index for the sddata.bin pointer table. This means I can now quickly pinpoint PC sound effects to the PS2 equivalent, should it ever be needed again.

The AFS related functions seems to tie in rather heavily with ADX playback in particular (at least in the case of SH2), so it may not be as simple as replacing a function call to start playing a WAV stream instead of ADX or whatever. I need get a better picture of the whole system though, before I can say for certain. I've also thought about maybe just modifying the ADX decompression routine to simply copy data from a pre-decompressed ADX file (i.e. breaking the ADX specs), but then realized there may be complications with the BGM files. D'oh!

I spotted support for "SPSD" streams as an alternative to ADX among the game code. I'm not at all familiar with this format, but according to this source code in vgmstream, it does seem like it just might support uncompressed audio (16-bit raw PCM). Provided that's indeed the same format and not just the same magic number. In that case, perhaps it would be enough to replace the ADX streams in voice.afs with SPSD containers? I'm seeing some code in the SH2 executable that does check for the codings referenced in vgmstream, so I guess it's possible. Anyways, I haven't tried it!

There's probably more I wanted to add, but I can't think of it at the moment. I'll edit if I think of something.

Excellent news, Nisto. Keep up the good work!
BUY A DASHCAM. I got in a traffic accident last weekend and if I hadn't got decent footage I'd be screwed.
I've got a DDPai M6+, it was less than a hundred quid.

This means I can now quickly pinpoint PC sound effects to the PS2 equivalent, should it ever be needed again.

Nice! You never know when that might come in handy down the line!

I've also thought about maybe just modifying the ADX decompression routine to simply copy data from a pre-decompressed ADX file

This is clever thinking, though; I like it. :) I obviously know nothing about these sorts of things but, with the code cracked in regards to how ADX encodes an audio file, I always wondered if there was a way to modify the code to simply prevent it from compresses the file while still retaining all the positives ADX has to offer (namely: looping metadata).

I spotted support for "SPSD" streams as an alternative to ADX among the game code.

I did a quick, cursory Google search and couldn't find much of anything on SPSD format. Is it a lossless format? That can also do looping? Interesting...

BUY A DASHCAM

Yes, do so especially if you drive in high traffic areas to/from work. I bought dash cams for my wife and I after someone went out of their way to maliciously try to wreck me for no good reason (seriously, I didn't do anything to provoke him... it was wild).  My personal recommendation:
This: https://www.blackvue.com/dr590-1ch/
With this: https://www.blackvue.com/product/blackvue-power-magic-pro-vehicle-battery-discharge-prevention-for-parking-mode/
It's a no-thrills, discrete cam that uses a super capacitor (as opposed to lithium batteries) that allow it to run in higher temperatures without the fear of a battery exploding due to heat. The "Power Magic Pro" will allow you to record when your vehicle is off/in parked mode and will constantly check your battery's voltage and will cut off if it detects the car battery is low (so it doesn't completely drain/kill your battery).

This means I can now quickly pinpoint PC sound effects to the PS2 equivalent, should it ever be needed again.

Actually, expanding on this revelation some more, do you remember how you helped us get the unique radio static tracks from the PS2 build? The only other remaining SFX I couldn't find/use a PS2 version of are the monster noises, RPT's Great Knife scraping on the ground, and I think one or two other type of noises similar in spirit to the monsters/Great Knife.
The problem is, for these types of sounds, the PS2 would grab just the one sample of any one of these sounds and change its pitch/tone accordingly to make multiple versions of the sound. So, for example (and I'm just making the numbers up here), the Lying Figure could have 5-6 different "gurgle" noises all derived from a baseline audio sample. But the PS2 sound rip would give us 5-6 files of the same baseline audio sample only.
If I were to give you the PC SFX file names would it be too much trouble to produce PS2 versions of these sounds (with their sounds altered as they would be in-game)? Again, this would account for just about every enemy noise, the Great Knife scrape sounds, and I think another set of sounds I can't remember off the top of my head.

UPDATE! Great news. Simply replacing the ADX streams with SPSD streams actually works! I just tested replacing the New Game sound (which is actually in voice.afs surprisingly) and it sounds great. I'll put something quick together so you guys can convert WAV files to SPSD. No ETA though (it's been an incredibly busy weekend)! I assume you guys have a way to write/modify AFS files already?

I did a quick, cursory Google search and couldn't find much of anything on SPSD format. Can it do looping? Interesting...

Yes, it does have support for looping. But if you're thinking of using SPSD containers for the BGM streams, it might not be suitable unfortunately, because AIX is a bit more complex than just being compressed, like standard ADX files. As you know, AIX files contain multiple interleaved sub-tracks, which is something SPSD doesn't support (afaik). I don't know if you could achieve looping and multi-track playback implemented the way it is for AIX, even with WAV files.

Hot damn! You are the man, Nisto! Congratulations on your research and discovery with this!

I assume you guys have a way to write/modify AFS files already?

I believe we do. Elisha has a program he uses to batch the files into the AFS container.

But if you're thinking of using SPSD containers for the BGM streams, it might not be suitable unfortunately

Thankfully, that shouldn't be much of a concern. :) Elisha has done some really great tweaking with the ADX compression methods and the BGM tracks now sound remarkably better than what they used to (during the first few rounds of converting the tracks from WAV to ADX). So the BGM files staying as ADX should be perfectly fine. Really, it seems just the dialog tracks suffer from the noise interference the worst, for whatever reason, so your discovery is great in this regard!

Don't feel dumb, Nisto; if you hadn't discover SPSD support you may've never discovered WAV support by natural progression for voice.afs. :)

Great work @Nisto! I was able to create a voice.afs file using WAV files rather than ADX files.  Took me a while to update my build script, but now I have fully automated the creation of the voice.afs file.  The file is about 3 times larger, but works well.
Note: I still used 8 ADX files in it since these files loop and require the ADX looping metadata.

@elishacloud are you sure WAV loops aren't supported? In that case, I can try writing a WAV-to-SPSD converter after all.

Nisto, thank you for lending an additional hand to help capture PS2 quality sounds of samples that are changed by the system itself.   With ADX I can tell it where to loop using the sample number.  See here.  However, since it loops in the middle of the file, I am not sure how I would tell Silent Hill 2 where in the WAV file to loop.
Note: making the whole WAV file loop in Silent Hill 2 is pretty easy since I can just add hex 0x01 to the end of the WAV file to tell Silent Hill 2 to loop it.  See here.  But that only works if I want the whole file to loop.

@elishacloud,  @AeroWidescreen , @Nisto , et al:
A heads up that I changed my username (was jdkubiak)

Guys, I'm so tickled pink to say that, thanks to Nisto's discovery and Elisha's build script the dialog tracks in the game are immaculate now. There's no audio oddities at all. It all sounds so, so good. :)

This calls for a celebration!
DASHCAMS FOR ALL

Guys, I'm so tickled pink to say that, thanks to Nisto's discovery and Elisha's build script the dialog tracks in the game are immaculate now. There's no audio oddities at all. It all sounds so, so good. :)

Like I've already said, I'm really excited for the future of SH2 PC. I've been holding off doing a proper playthrough until this project is done. My personal wishlist in no particular order:

[ ] Improved audio
[ ] Soft shadows
[ ] HD font
[ ] Widescreen textures (maps, main menu, etc.)

The improved audio quality is an almost guarantee now thanks to you guys. 👍

We're this close to bringing on a play tester or two to double-check all our work with this mod!

My personal wishlist in no particular order:

I'd like to also add to your list:

[ ] Removal of needing WineD3D but fix in the game what WineD3D would fix (WineD3D is the culprit for the majority of people who have problems enhancing this game).
[ ] Fix that stubborn lighting transition bug.

Also, what's pretty cool Aero is once all the recent QoL fixes you and Bigmanjapan submitted to UAL/WSF go live there's going to be a lot of check boxes marked off here. :)
Additionally, if widescreen textures can be implemented a lot of the check boxes in the link above would be moot (such as the save screen and map image issues) so that's another plus!
Also also, Elisha introduced me to the world of ReShade and with a few filters you can get the game looking like the PS2 version!:
https://www.youtube.com/watch?v=T8fIDLC0WAA

@jdkubiak I've uploaded the PS2 SFX you needed to the FTP. The path of the archive I uploaded is /Audio/SFX/SH2 MISSING SFX PSF2.7z. Please note that there are lots of duplicates, and some of them are silent, but there will also be lots of variations as you know, despite having the same SFX IDs. So I'll let you be the judge of what to keep. Also, do not remove the driver.psf2lib file as it is needed to play back all the .minipsf2 files.
@elishacloud You can make WAV files loop back to a specific point just like you can with ADX files. The software just needs to recognize the metadata in the smpl chunk (see "List of Sample Loops"). It is kind of non-standard-ish (I believe?), so not all software has support for loop metadata in WAV. If SH2 doesn't support it, then, perhaps the alternative is SPSD after all? SPSD explicitly specifies whether it loops and where the start/end is in the main header, and it appears to have full support implemented in SH2 (via a library it seems, considering all the various supported formats). I can't speak for WAV files though, you'll just have to try it out. I didn't see any signs of "smpl" in the code.

@Nisto, thanks for the details on creating loops with WAV files.  I created a sample WAV file and was able to implement loops in it.  I tested with Winamp and the loops worked.  Now I just need to check if Silent Hill can support this.

@elishacloud can you tell me where/how I can test whether looping works in SH2?

@Nisto, Sure.  I tested this using sddata353 and bgm_004.  @Polymega probably knows better places to test, but these are the places I tested.
sddata353
This is the chainsaw sound.  You can replace this file with any mono WAV file (note that stereo WAV files for SFX will crash Silent Hill 2).  Here are the steps:

Use the splitbin.exe tool I created to extract all sddata WAV files from the sddata.bin file in Silent Hill 2.
Overwrite the sddata353.wav file with the mono file you want to test.
Use this custom mergebin.zip tool to recreate the sddata.bin file.  You need to use this custom tool since this will merge the raw WAV files into sddata.bin.  The other merge tools I created will modify some of the WAV files which could invalidate the test.
Here is a custom save file you can extract into "Silent Hill 2\data\save\Folder 01".
Start the game and load the custom save.  You should hear the sound playing.  Wait to see if the sound loops.

bgm_004
This is the BGM to the cut seen when you first meet Maria.  You can replace this with any mono or stereo WAV file.  Here are the steps:

Create your looping WAV or other file.
Rename it to bgm_004.adx.  Note even if it is a WAV file you still need to rename it to .adx.
Copy the file to "Silent Hill 2\data\sound\adx\town" overwriting the existing file.
Here is a custom save file you can extract into "Silent Hill 2\data\save\Folder 01".
Start the game and load the custom save.
Walk forward and around the corner to the left until you see Maria.  A cut seen should start.  In the background bgm_004.adx will be playing.
Wait to see if the BGM loops.

Those are good places to test! @Nisto the save files Elisha provided will be the "Quick Save" save files.

Sorry if i'm late to the party, but why would you spend time on porting dialogs and BGM if PC version has roughly the same quality files as PS2? I'm basing this on the PC/PS2 comparison video that is in the first post (this video is made by me btw).

Hi @SiarMortal ,
All audio files for the PC version (and Xbox version, for that matter) have had their audio files compressed in some capacities which includes the dialog and BGM tracks.
For the PC version, the SFX are saved as WAV files and the dialog/BGM tracks as ADX format.
Despite being saved as WAV, the SFX files were compressed before being re-saved back to WAV format. You can hear this easily in the video you made a while back.
The dialog and BGM tracks suffer this same issue and, because they're also saved in ADX format which is a lossy encoder, they have even more audio degradation issues present. While ADX can greatly reduce file sizes it comes at a cost to the audio's overall quality. You can adjust the encoding settings to make this loss as minimal as possible but the vanilla PC version of the game most likely didn't use the best ADX encoding settings resulting in high pitch noises (mostly happening during silent parts) and odd audio interference sounds as a noise transitions to silence.
You can hear an example of this in the dialog tracks here:
https://www.youtube.com/watch?v=MJnyUJNXfns
And in addition to that, most of the BGM tracks suffered bad/noticeable seams when the tracks looped. This is because the majority of BGM tracks are multiplexed together. Meaning, 3-6 tracks can be contained in one AIX container and, in order for SH2 PC to play the tracks properly, all the track must be the same, exact length. This is, of course, an issue because all these different tracks will have different points in time where they should end in order to loop seamlessly but can't due to them all being required to be the same length. @elishacloud , the lead of this mod, took weeks/month to adjust these tracks by hand to minimize, if not outright eliminate, the seams during their loops.
And fun fact: Even some of the PS2 BGM tracks have loop seams.

Hi, Polymega.
I've read all this thread so everything you've said i've already heard. Thing is, maybe it's me, but i was never able to hear those differences in dialog/BGM. For me they sound just as good, as on PS2. I mean, i understand that there must be a difference, if everyone's talking about it, but for me, PC port has bigger problems, than those negligible differences.
Don't get me wrong: the thing you all do here with audio is my dream coming true, but i'm just looking at this and thinking: boy, this is what really need to be fixed.

Thing is, maybe it's me, but i was never able to hear those differences in dialog/BGM.

There is a difference. A fairly big difference. It seems to depend on what audio card you're using. For example, when I listen to the comparison video I made at work using headphones I just about can't hear any difference at all. When I listen to the same video at home with the same headphones the differences are night-and-day. I promise you there are noticeable differences and, if you're like me and have a seemingly more sensitive audio processor, it will hurt the experience of the game some.

than those negligible differences.

I'd say this is subjective to who you're asking. To an audiophile, this may be the biggest deal to them, you know? Now me? I'm not an audiophile and even I could hear the audio issues clear as day and notice them without much issue (again, seemingly all due to how sensitive my audio card is on my home PC).

but i'm just looking at this and thinking: boy, this is what really need to be fixed.

There is already a fog fix you can use that brings the fog effects comparable to the PS2's version:
http://widescreenfix.townofsilenthill.com/SH2/#installFogFix
In addition to that, there are numerous Quality of Life fixes in the works or will hopefully soon be addressed, which I'm super excited about!:
https://github.com/elishacloud/dxwrapper/issues/9
Then, the only big ticket item remaining will be the implementation of soft shadows.

@elishacloud wrote:

sddata353
This is the chainsaw sound.
bgm_004
This is the BGM to the cut seen when you first meet Maria.

Ah. Well, I was mostly interested in the voice.afs sounds that you mentioned had loops. Anyway, the forest (forest_wind) was a good place to test loops.
Sadly, it seems looping with SPSD is not possible/implemented. Either it doesn't parse the loop data at all, or IDA just fails to trigger a breakpoint (for whatever reason) when it reads the header (which gets stored in 3 different buffers, too). Anyway, even if it was implemented, as far as I can tell, SPSD doesn't specify a "loop end" value (only the start), so the loop would have to end at the end of the stream.
As for looping WAV with loop start/end, I think implementing that is a little over my head, to be honest. I hope I didn't get your hopes up too high.

I hope I didn't get your hopes up too high.

Not at all, sir. Our hopes were in-check as we knew the very real possibilities of SH2's engine limitations in relation to audio.
Nonetheless, thanks for your time looking into this and don't forgot your amazing help with all the previous audio work you've assisted us with; it's nothing to sneeze at!
Lastly, as you mentioned, there's only a tiny amount of ADX tracks still being used for dialog and, since these particular tracks are ambience tracks that're meant to loop, you really can't hear any audio oddities--even on my seemingly crazy sensitive audio card!

Two (2) playtesters needed for the SH2 Enhanced Audio mod
Elisha and I are happy to announce that the Enhanced Audio mod has progressed to a point where we'd like to bring on two additional play testers to QC the mod. We're nearing completion and would like your help! If you'd like to help and contribute to the cause please read the details below.

What to expect from this mod:

This mod uses the PS2 audio files (extracted from the disc in lossless WAV format), which are considered the best, to replace 90-95% of the PC audio files.
This mod does not add the reverb effect to the audio files as heard in the PS2 version. That is done by the PS2 console itself as a post-processing effect.  However, there are some SFX files that have the reverb already in them due to Nisto's emulated sound extraction help throughout the months. We do plan to add a reverb filter to the remaining sound files later on once we are assured that all sounds are accounted for and are playing correctly. So, for now, as you play test, do note the game won't have the reverb effect for all files.
Simply put: This mod significantly improves the audio for SH2 PC. Trust me, it's alarming to go back to the vanilla PC sounds once you use this. It will spoil you!

The playtester should:

Be committed to play testing to completion.  There's going to be a lot of areas, items, and cutscenes to check. Be prepared to spend some time on this!
NOT release the work-in-progress build of this mod to anyone! There are bound to still be bugs and issues with this mod and the last thing we want is for this to release to the mass public under the pretension that it's the approved, gold release.
Know the in's and out's of Silent Hill 2 intimately well to, for example, be able to:

Find and use all the game's weapons (including the Great Knife, Chainsaw, Steel Pipe, and Hyper Spray). We can provide custom save files with some of these weapons already unlocked, if needed.
Explore every room, including those not required to be explored to progress the game.

Be aware of "secret" audio tracks to test such as the:

Blue Creek Apt. Room 209 whisper
Blue Creek Apt. Room 208 door knob rattle
Alternate Hospital Room C2 glass shattering
Alternate Hospital Stairway Basement Floor pig squeal
Prison Women's Bathroom Stall knock-and-scream
Hotel 2F Hallway man crying
Hotel Basement Elevator's (the one with the paint thinner) spooky noise
James' chainsaw battle cry

Know about special BGM tracks or ones that can change throughout the game such as:

The Woodside Apt. 3F "gun" hallway changing BGM tracks after hiding from RPT in the closet
The Woodside Apt. 3F main hallway changing BGM tracks after you've progressed further and return back to this area
That there's a special BGM track that plays in one of the prison's shower cells

What you will need to do to test:
Overall:

FTP software to retrieve the test package. FileZilla is a good, free one.
A good pair of headphones (preferred) or a good set of desktop speakers.
Have a way to take notes such as Word or Excel.

If you're able to record video/audio of issues as well, the better.

Take detailed notes of issues you come across.

What was the issue?
What room/area did the issue happen at?
Was it an issue with the dialog, BGM, or SFX?
Does an action need to be done to replicate the issue?

Turn off the radio once you acquire it! The radio static will interfere with your play testing otherwise.
Do all the sounds play?
Do the sounds loop (if they should)?
Are there any sounds that are way too loud or soft?

Dialog Tracks:
These are the audio files of characters talking throughout the game.

Simply ensure that all audio tracks are playing.

Be sure to initiate additional cutscenes if you're able to go back to talk to an NPC again. For example: Did you know that there are two (2) additional cutscenes that can happen if you talk to Angela again at the cemetary?

BGM Tracks:
These are the background music/ambient tracks playing throughout areas of the game.

Are all the BGM tracks playing where they should?
Once you hear a new BGM track play you will need to stay in that area for a minimum of three (3) minutes!  This is the minimum length of any given BGM track and will need to be listened to fully to ensure it loops/plays back correct. Yes, this is the most time consuming part of the play test...

There may be a few noticeable seams in some BGM tracks when they loop. Elisha has done a spectacular  job removing the vast majority of these seams but there are a few handful of tracks whose seams cannot be fully resolved.

If you hear a loop seam in a track make note of the specific location where the track plays (example: "The dirt path leading to the Lying Figure in the tunnel, right beside the opened gate"). There's no guarantee the seam can be fixed but it can be looked in to.
Fun fact: Even the PS2 version has loop seams in some of its BGM tracks!

SFX:
These are the sound effects for the game, such as foot steps, breathing, monster noises, and weapons firing.

Use every weapon in the game.

Does a weapon have an alternate method of attack (light swing vs. heavy swing)?
Make sure you purposefully expend the magazine for every firearm to hear the weapon dry fire.
Make sure you reload every firearm in the game (not through the pause menu).

Hit/kill/stomp every type of enemy in the game.

Ensure that each unique type of enemy makes their own, unique noises upon receiving damage. Do note that enemies don't make a noise every time they're hit; it's random when they do.

Hit an enemy with every type of melee weapon.

For example, the plank sounds different than the chainsaw when it hits an enemy.

Have James and Maria walk on every type of material.

Concrete, glass, water, grass, metal, everything

Have James and Maria (in her Born From a Wish campaign) quick-turn on every type of material.
If you're playing on Hard Mode have James purposefully run into different types of wall materials.
Try to open every type of door.

Certain doors have unique SFX when they open, close, or have their locks broken.

Let James and Maria take a few hits/receive damage.
Referring back to the top of this post, ensure to initiate secret audio such as the Apartment whisper or Hotel man crying.
Try and interact with everything in the game to some capacity!
Don't forget to use the Blue Gem/Channeling Stone!

How to play test:

Download the Widescreen Fix for Silent Hill 2.
Download the Silent Hill 2 Enhancements mod.

Place sh2-enhce.asi and sh2-enhce.ini files in the \scripts\ folder.

Make a backup of the following files/folders:

\KONAMI\Silent Hill 2\data\sound\sddata.bin
\KONAMI\Silent Hill 2\data\sound\adx\

Download the test build of the Enhanced Audio mod (provided to you).
Place its files in the appropriate folders:

\KONAMI\Silent Hill 2\data\sound\sddata.bin
\KONAMI\Silent Hill 2\data\sound\adx\

Turn off the radio once you acquire it! The radio static will interfere with your play testing otherwise.

Interested in helping the cause?
Great! I fear I may have gone a little "ear blind" to many of the sounds in this game after 6-9 months of play testing so an extra set or two of ears will help tremendously. We're only looking for two (at most) play testers for this. This is to keep redundancy down in note-taking to make fixes more attainable.
Thanks!

@Polymega You know I'm always willing to help if you guys still need it. I could do this while I test fullscreen images, since both require a thorough playthrough of the game. I would've posted sooner but my headphones died on me Saturday morning, ha.

If you'd like that'd be great, my man! I already got one playtester on board and she should start soon and you'd be the second so that'd be perfect.
And, actually, there'd be 2 1/2 playtesters as I'm sitting down on the sofa at this very moment beside my wife as she plays this game for the first time ever (so it's sort of a playtest, right?). I'm one happy and proud husband for sure though. :)
All I'd ask is for you to test/interact with every conceivable thing in the game. It'd be a massive time commitment if you're still up to the task? I know my playtester posting was overwhelming but I had to be as concise in the post as possible to ensure the game's sounds are fully checked out.

All I'd ask is for you to test/interact with every conceivable thing in the game. It'd be a massive time commitment if you're still up to the task?

That's fine, as long as you don't expect me to have that done tomorrow or something. Maybe a week or two at most. Send me an email if that's not an issue.

That's fine, as long as you don't expect me to have that done tomorrow or something.

Oh, no, absolutely not. This is a very time consuming task. I'd expect a week or two to be the minimum amount of time to do it for any play tester.
Thank you Aero, I'll shot you an email soon then!

Sent you an email @AeroWidescreen

I don't have so much time right now, but I can help if you don't mind. I have played this game a lot, I can recognize the sounds in it.

Always good to hear from the developers. Thanks your sharing your experiences.

@DeanoC I was hoping the day would come when one of the developers would drop by. Thank you for sharing this 👍

@DeanoC
Hello. Thank you for sharing your experience with us.
If you would be kind enough to shed some light on the following:

Were you aware of any debug contents left in the game? PC builds still have a fully functional cylinder / free / selfview debug camera left in them. https://www.youtube.com/watch?v=w3KCyBPY1j4 / Here're the codes to activate it: https://tcrf.net/Silent_Hill_2_(Windows)

Were you aware of a minimap present in the game? Unfortunately, it only works on PS2 builds, I didn't manage to trigger it on PC. https://youtu.be/quI5ep37DZs?t=26 The minimap trigger is located in the "Extra Options" memory region of the game (with blood color, noise grain selectors etc) and I wonder if the minimap was meant to be a bonus feature?

Hope to see you do a livestream playthough of this game's using Widescreen Fix once it's fully done. :)

@Polymega @elishacloud @Nisto
No door has gone unopened or unrattled, no item has gone unused, no cutscenes have been skipped, no shortcuts have been taken, etc.
Checklist
Windows 10 version 1803
Realtek Audio Driver version <IP_ADDRESS>33
Silent Hill 2 "Big Box" (NA)
Widescreen Fix (Developer Build)
XInput Plus version 4.15
IndirectSound version 0.16
Nemesis2000's Fog Fix
Difficulty: Normal/Normal (Main-Scenerio), Hard (Sub-Scenerio)
Ending: Rebirth, UFO, Born from a Wish

[x] Turn off the radio.
[x] Find and use all the game's weapons.
[x] Explore every room, including those not required to be explored to progress the game.
[x] Blue Creek Apt. Room 209 whisper.
[x] Blue Creek Apt. Room 208 door knob rattle.
[x] Alternate Hospital Room C2 glass shattering.
[x] Alternate Hospital Stairway Basement Floor pig squeal.
[x] Prison Women's Bathroom Stall knock-and-scream.
[x] Hotel 2F Hallway man crying.
[x] Hotel Basement Elevator's (the one with the paint thinner) spooky noise.
[x] James' chainsaw battle cry.
[x] Woodside Apt. 3F "gun" hallway BGM tracks.
[x] Woodside Apt. 3F main hallway BGM tracks.
[x] Special BGM track that plays in one of the prison's shower cells.
[x] Purposefully expend the magazine for every firearm to hear the weapon dry fire.
[x] Reload every firearm in the game.
[x] Hit/kill/stomp every type of enemy in the game.
[x] Ensure that each unique type of enemy makes their own, unique noises upon receiving damage.
[x] Hit an enemy with every type of melee weapon.
[x] Have James and Maria walk on every type of material.
[x] Have James and Maria quick-turn on every type of material.
[x] Run into different types of wall materials on hard difficulty.
[x] Try to open every type of door.
[x] Let James and Maria take a few hits/receive damage.
[x] Use the Blue Gem/Channeling Stone.
[x] Initiate additional cutscenes if you're able to go back to talk to an NPC again.

Issues

SFX: Sound efffect used for menu navigation pops a lot.
SFX: Footstep pop when walking on certain materials. Woodside Apartments, Floor 1.
SFX: Numpad sound effect pops a lot. Brookhaven Hospital, Floor 2.
SFX: Elevator that goes down to Labyrinth loops abruptly.
SFX: Pops heard in Maria breathing/heart sound effect. Otherworld Brookhaven Hospital, Room S3.
BGM: Loop seams in ambient music after killing nurse. Brookhaven Hospital, Room M6.
BGM: Bowling alley music abruptly stops after 6 minutes.
BGM: Catacomb Graveyard music fades out after 5 minutes. Does not loop. Unsure if normal behavior.

I think the popping of the menu sounds need to be fixed or mitigated. It was the most obvious and disappointing to hear. The other problems were something I had to listen to closely or were only present in a specific part of the game.
I didn't notice any issues with dialog, surprisingly.
Thoughts
Overall I'm very pleased with the results. There were far less issues compared to the first time I tried it many months ago, and I imagine the average player wouldn't notice half of what I found. There's so many sounds that are much clearer and sharper than before, and when combined with IndirectSound the results can be really immersive. I got anxious at the Prison level with the invisible monster stomping around, despite having played the game at least a dozen times now. Apparently there's been some further advancements made to the audio quality that I didn't get to try, so I look forward to experiencing that in the final version of the mod.

Hi all!
I'm extremely excited to share that, the other day, @Nisto has provided us with just about ALL SFX processed with the PS2's reverb filter built-in! Yes, as in perfect emulated rips of what the PS2 console itself would produce! The game now uses 95% of PS2 audio files with the reverb in them! That means that the audio sounds even better (really, the best, as they're truly like the PS2 version at this point) than what the play testers have just heard! I'm doing a final-final play test with these new sound in and, once I get that checked off and we get the play tester's notes (like Aero's above), the mod should be good to release as gold!

Hi @AeroWidescreen ! Thanks for the excellent and detailed notes!

SFX: Sound efffect used for menu navigation pops a lot.
SFX: Numpad sound effect pops a lot. Brookhaven Hospital, Floor 2.
I think the popping of the menu sounds need to be fixed or mitigated. It was the most obvious and disappointing to hear.

I agree. It's definitely an ear sore. Unfortunately there is nothing we can do about this. This is a fault/limitation of the game engine. The game abruptly ends a SFX to play it again when you filter/spam through selections fast. Whereas many game engines would add a 1-2 millisecond fade out to an audio file that ends prematurely SH2 PC does not. Because of this, the pops you are hearing is a point in the audio that literally gets stopped dead in its tracks.
I've contacted John-Paul Ownby, the creator of IndirectSound, several months back asking if he can add a feature to his mod to alleviate this issue. He said, in theory, it should be possible but he can't promise anything until he does further tests. The biggest issue for him right now, he said, is just finding the time to look into it. So, hopefully in the future, a revision of IndirectSound will fix this.

SFX: Footstep pop when walking on certain materials. Woodside Apartments, Floor 1.

Hm, I didn't hear the pops in the video but I'm fully confident the issue will be alleviated through Nisto's latest SFX rips he provided me the other day. Nisto, the awesome person he is, has given me new SFX files that include the PS2-specific reverb in the tracks. So, if there were pops, the reverb filter itself will dampen and fade out these types of things by its very nature. :)

SFX: Elevator that goes down to Labyrinth loops abruptly.

^ sddata356
This one aggravates me, too, but is also a quirk/fault of the PC port. I tried experimenting six ways to Sunday to alleviate that but it's persistent; changing the file's sample rate, changing the lengths, nothing seems to fix this. I have no clue why it does this... @elishacloud could it be something quirky with the metadata of the track? Or most likely an issue with game code in how it handles this track? I'll send you my updated sddata.bin files soon.

SFX: Pops heard in Maria breathing/heart sound effect. Otherworld Brookhaven Hospital, Room S3.

^ sddata377
The pops are inherent to this track (meaning, the PS2 version also has them). But Elisha, would it be possible to remove them on our end? (To others: Just note it may not be possible.) Elisha, please hold off on this until I send you the final sddata.bin on my end; I should have it to you very soon.

BGM: Loop seams in ambient music after killing nurse. Brookhaven Hospital, Room M6.

^ bgm_119_0001
The clicking/popping you're hearing in this track isn't a loop seam but something inherent to this track (meaning, you can also hear the clicking on the PS2 version). I asked Elisha some time back if the clicks can be removed but unfortunately they cannot for this track. There is a slight, noticeable seam when it actually does loop (stay in the room for ~3 minutes and you'll eventually hear it) but this is one of those tracks that unfortunately can't have its seam fully fixed due to the nature of multiplexing tracks all to the same length.

BGM: Bowling alley music abruptly stops after 6 minutes.
BGM: Catacomb Graveyard music fades out after 5 minutes. Does not loop. Unsure if normal behavior.

^ Bowling alley: bgm_005
^ Catacomb graveyard: bgm_020
Great catch with these!! Elisha, please note: Even if bgm_005 looped it doesn't loop at the correct point in the track. And if bgm_020 looped the track fades out at the end. In addition to removing the fade out it would also need to be checked for the correct point in time for a seamless loop.

SFX: Elevator that goes down to Labyrinth loops abruptly.

^ sddata356
This one aggravates me, too, but is also a quirk/fault of the PC port. The track is only one (1) second long and loops. But, after X amount of time, it does that weird slight-fade-slight-loop-seam-thing. It'll usually do that bug at minimum 2-3 times during the elevator ride down.
I tried experimenting six ways to Sunday to alleviate that but it's persistent; changing the file's sample rate, changing the lengths, nothing seems to fix this. I have no clue why it does this...

If we can't figure out a solution to this another option is to use an entirely new SFX for this part. I've experimented with that before and, depending on what type of sound you use, the intensity of this bug is no where near as bad/noticeable. The problem is, with the real SFX we're using, the file is just a one second loop. So, because of how short the sound is before it repeats, you'll easily pick up on any funny business going on.
If we use a longer, more varied SFX it becomes that much harder to notice when it happens. For example, if the majority of us here aren't opposed to it and actually like this we could use this sound instead (ignore the audio watermark... I haven't purchased the sound):
https://youtu.be/n9fr-UXKIM0
And if you guys want to hear just how bad it can get with this sound:
https://youtu.be/jEBh7bLVycU
But yeah, just an idea if we can't solve the bug and people would prefer a new SFX that lessens the issue as opposed to hearing that bug with the original SFX the whole elevator ride down.

We could always try seeing if Silent Hill 3 has better sound samples. I know they re-used a lot of content.

As a random SH2 fan i'm absolutely against replacing SFX with the new one. I get that it sounds better, but in my opinion it's just not a right thing to do.

We could always try seeing if Silent Hill 3 has better sound samples.

The issue isn't the sample. It's a clean file (attached below). The problem is the SH2 PC game engine does weird things to it. It doesn't matter what sound file you use here; it'll do these weird effects to it regardless. But if you use a more varied sound the effects of the bug aren't as noticeable.
sddata356.zip

Hm, I didn't hear the pops in the video but I'm fully confident the issue will be alleviated through Nisto's latest SFX rips he provided me the other day. Nisto, the awesome person he is, has given me new SFX files that include the PS2-specific reverb in the tracks. So, if there were pops, the reverb filter itself will dampen and fade out these types of things by its very nature. :)

It sounds like a subtle pop at the end of each footstep. You should be able to hear it if you turn your volume up. It could easily be something normal that I never noticed until now, and if this reverb filter helps at all then it should be fine.

Great catch with these!! Elisha, please note: Even if bgm_005 looped it doesn't loop at the correct point in the track. And if bgm_020 looped the track fades out at the end. In addition to removing the fade out it would also need to be checked for the correct point in time for a seamless loop.

The BGM for the game results screen  fades out after awhile too. I didn't mention it since I had no footage, and I wasn't sure if this fading behavior was normal.

I agree. It's definitely an ear sore. Unfortunately there is nothing we can do about this. This is a fault/limitation of the game engine. The game abruptly ends a SFX to play it again when you filter/spam through selections fast. Whereas many game engines would add a 1-2 millisecond fade out to an audio file that ends prematurely SH2 PC does not. Because of this, the pops you are hearing is a point in the audio that literally gets stopped dead in its tracks.

 If that could be fixed then this whole project would be close to perfection.

The BGM for the game results screen fades out after awhile too. I didn't mention it since I had no footage, and I wasn't sure if this fading behavior was normal.

^ bgm_012
Thanks again! It's probably not normal behavior. There were a lot of PC tracks that stopped/faded out after a while when I was doing my early play tests that shouldn't (I had my PS2 playing beside me to compare the two).

The only major thing I've noticed, and it may be something weird with my computer or installation, is that when I load a game, the game loading sound cuts off abruptly.
For some reason, I'm no longer able to make screencaps or videos since I installed the SH fixes, though.

is that when I load a game, the game loading sound cuts off abruptly.

The PC version has always done this. It'll play the "game start" sound fully if you load/start a new game from the main menu but if you load from the in-game pause menu it won't.

For some reason, I'm no longer able to make screencaps or videos since I installed the SH fixes, though.

This is due to having D3D8to9 and WineD3D. If you also use ReShade you can restore screen capturing on top of using the fixes. In addition to that, ReShade has tons of visual filters to make the game look remarkably close to the PS2 version.
I'd like to include a ReShade step to the Installation Guide at some point but am holding off for the time being. This is because you need different files depending on whether or not you use WineD3D (and AMD GPU users and laptop users wouldn't use WineD3D).
Because different files are needed I don't want to complicate installation steps further with this. In an ideal world we can fix in the game what WineD3D fixes without having to actually use WineD3D. If we can do that, there would only be one type on files needed for ReShade then. In addition to that, ReShade has built-in AA filters so I could also rpve the AA step from the guide as well.
But, to stress, that's all just wishful thinking at this moment in time.

Oh, ok. I get confused from playing different versions, and it just stuck out as if it shouldn't be that way.
Well, i guess it's a positive that it's not a problem with these sound files, in any case, though!
I had been using Camtasia Studio 8 to capture full-screen for all the video games I make videos of, but now I can't even get "print screen" to make a still capture, not sure why this has changed it, not too worried about it right now though.

bgm_119_0001
The clicking/popping you're hearing in this track isn't a loop seam but something inherent to this track (meaning, you can also hear the clicking on the PS2 version). I asked Elisha some time back if the clicks can be removed but unfortunately they cannot for this track.

This track is especially bad.  There is a pop that happens every 1-2 seconds.   This pop is inherent to the track itself and not related to the looping.  The PS2 audio rips also have this pop.  Thus, I assume if you played the PS2 version of the game you would hear the same pop.
If I could find out (to 1ms precision) where in the track the pop is then I could fix it.  The trouble is that the track is playing at 48 kHz, that is around 48,000 samples per second.  Narrowing it down to the the samples with the problem could take hours for just one pop, and this track has over a hundred of them.
I also tried all kinds of sound filters and other audio tools to remove the pop.  The only way I could remove the pop was to increase the level of the filters so high that the end result caused the track to be very distorted, similar to the original PC version.
So, at the end of the day, unless we can get a clean version of this track there is not much hope of removing the pops.  If someone has any ideas on how we can get a clean version of this track, that would be great!

The Audio Enhancement Pack is Released!
After nearly a year of hard work @elishacloud , @Nisto , and I are very proud to release the Silent Hill 2 PC Audio Enhancement Pack for you all to experience and enjoy!
The Audio Enhancement Pack brings the quality of the game's audio files to that of the PlayStation 2's version which are considered the best.
You can preview an example of how the Audio Enhancement Pack improves the game by watching this video:
https://www.youtube.com/watch?v=2Ml6py5J7hA

How to install the Audio Enhancement Pack
Please refer to the Installation Guide for the latest installation methods. But, as of right now:
Install SH2 Enhancements ASI

Ensure you have the Widescreen Fix installed.
Download SH2 Enhancements ASI.
Copy the contents from the archive to \KONAMI\Silent Hill 2\scripts\.

You can change settings for SH2 Enhancements ASI by going to \KONAMI\Silent Hill 2\scripts\ and opening the sh2-enhce.ini file with a text editor. It is recommended to use an editor such as Notepad++ to preserve the file's formatting.
Install the Audio Enhancement Pack

Ensure you have SH2 Enhancements ASI installed.
Go to \KONAMI\Silent Hill 2\data\sound\.
Make a new folder inside the sound\ folder named originals.
Move sddata.bin and the adx\ folder into the originals folder. This creates a backup of your original audio files for safe-keeping.
Download Audio Enhancement Pack.

Note: This download package is large at 1.5 GB.

Copy the content of the data\sound\ folder from the archive to \KONAMI\Silent Hill 2\data\sound\.

Ensure EnableSFXAddrHack is set to 1 in the sh2-enhce.ini file, otherwise the Audio Enhancement Pack will not work and will freeze your game upon launch.

Credit and Thanks
In addition to the Installation Guide seeing a revamp to accommodate the inclusion of SH2 Enhancements ASI and the Audio Enhancement Pack, the Guide now also include a Credit and Thanks page giving shout-outs to the most active names involved with improving Silent Hill 2 PC. I invite you all to take a moment to visit this page and send a message of support to all of the programmers and modders involved.
Additionally, I'd like to extend the thanks and appreciation to several fine folks here on this GitHub thread who have joined in on the discussions and helped point out various oversights while we were working on this mod:

@Bigmanjapan
@brunibunny
@DeanoC
@FrozenFish24
@seagull
@Storm3000
@ThirteenAG

And a special shout-out to the playtesters who helped ensure we had all our ducks in a row for the sounds:

@AeroWidescreen
@nutrients

Lastly, I'd like to personally ask you all to perhaps consider sending Elisha a "thank you" donation tip for all the work involved. Elisha did not ask or even insinuate me to write this here but the amount of time and work he put into this mod cannot be overstated.
In addition to writing the program/mod to make using custom sounds possible in the first place, Elisha had his hands involved with editing/improving the sounds for PC use in just about every facet: He fixed loop seams for all BGM tracks by hand; re-instated missing loop metadata; addressed sound "pops"/"clicks" whenever possible; and dealt with my OCD-ass throughout the nearly year-long development time of this mod. :-p
All of this and Elisha didn't even grow up playing SH2! If you'd like to send him a monetary message of support then please use the following link:
https://www.paypal.me/elishacloud

Thank you all and we hope you have a blast listening to SH2 in all of its PS2-quality glory!!

Words cannot express how pleased I am. Now I can finally play SH2, thank to you all.

Hey this IS awsome, and I so not want to sound annoying since this JUST got released and from what I can tell, took TONS of effort, but, was kind of wondering if fixing the shell casing sound from firing the gun, at 60fps is possible?

There's a few other issues with 60fps which is why I don't recommend it. Last time I looked into it, not only was I able to fix one of the issues I had but I remember I found some stuff for sounds too. I didn't dig any further because it wasn't my focus at the time.
So, yes, my guess is that it should be possible with more time and research like any other enhancement.

Cool, but yea definitly awsome job in any case guys, I’ve only completed. This gem of a game for the first time ever a couple weeks ago, its just so great, this will only enhance it times four at least.

The audio pack sounds fantastic. Thank you so much to each one of you for your big effort. I've been playing it for a while, and the difference between the original PC audio and the enhanced audio is huge.
However, maybe it's just me, but the BGM volume sounds a little bit low to me. Maybe I'm used to the original PC volume, but I think it should be a little bit higher. Also, when James fights to the Flesh Lip monsters, I can hear "pops/clicks" occasionally in one of the SFX. And the siren sound is missing, after killing all Flesh Lip monsters. I haven't finish the game yet, but I'll report any other issue if I find something.

@Alybaba75 I think I fixed it, or at least it should be close enough: https://youtu.be/4wyrNXIlGTM

Also, when James fights against the Flesh Lip monsters, I can hear "pops/clicks" occasionally in one of the SFX.

This is part of the overarching issue with SFX files being cut off prematurely. As mentioning previously, the PC game engine doesn't add any sort of fadeout to files that end before they fully finish so you hear clicks/pops as a result.
If you disable the BGM during this boss fight you'll find that all of the breathing noises (and various monster noises) are the SFX files playing here. These files constantly get cut off short which is why you hear the clicks/pops.
In fact, it was this very same boss fight that first made me hyper-aware of the issue as well. You can experience the same issue by spamming the selections fast on the main menu.

And the siren sound is missing, after killing all Flesh Lip monsters.

Good catch! If I had to guess I'd wager that the siren is a singular sample on the PS2 version that is looped/adjust/warped accordingly as it plays back. Because of that, the siren sound isn't present in the "James... James... James..." audio file itself (which is the version we're using now). But other versions had to integrate the siren sound with this track since it can't play samples like the PS2 can.
@elishacloud I should be able to record this one "live" through PCSX2 (with the siren sound intact) and can send it your way probably sometime this weekend.

And the siren sound is missing, after killing all Flesh Lip monsters.

Okay, I figured out the issue. The siren sound is present in the PC build but it's only a 42 second long file (that has a built-in fade in and fade out). While you're fighting the Flesh Lips the sirens are actually playing very quietly.
I did a test by sampling a single, seamless loop of the PC siren file, using Elisha's tool to make a dialog track loop, and it will loop indefinitely during the boss fight and immediate cutscenes afterwards (while properly fading out at the end).
But before I proceed...
@Nisto is there any way you could provide a PS2 sample of the siren looping? Or is that one of the mysterious audio tracks that couldn't be unearthed? That was one of the only dialog files we couldn't obtain from the PS2 rips. In the PC build it's saved as "silen" in the voice.afs file (dialog). It may not be considered dialog in the PS2 version.
We have the original PC version attached below but I'm sure it could sound better. The file below is after I extracted a single looped sample from the PC's original track:
silen.zip

Aerowidescreen, nice job man, I’d say I’m a fan of your’s already, you seem quite skilled in the programibf arts heh, yea the sound seems alot better in your video, Don’t suppose to could tell me how to do it too lol I feel so petty to be annoyed by something like that, when I can overlook many other things, just my pc gaming OCD I guess lol

Elishacloud, yea I have it already, was just wondering if aero could show me how he fixed the bullet shell sound issue at 60 fps lol Japanman had a fix for the old audio of making the sound silent, but it seems aero posted a vid where he fixed it with this new audio, it seems nit picky, and could just play the game at 30 fps, but Id like it to play similarly to silent hill 3, which as we all know, is automatically 60 fps on pc, but as I say, still great work man, your mostly responsible for the audio pack eh, jeez man, you must be a programmer or ex programmer with your skills! Thanks much, this is making it close to the ps2 version, but better, I cant stand the lighting on there, the only 8 directions you can move with 2d controls, and I guess thats mostly it, besides no 60fps, sh3 runs terribly emulated for me, so I can’t comfortably run them both at 30, and like them both alot, may try 4 soon too, but I guess thats where the series goes somewhat downhill? Anyways though great job, I don’t mean to sound like a bother, in fact alot of these other issues people been mentioning, I probably wont care about, the poping issue is noticeable, but mostly in the menu’s, so no deal at all

was just wondering if aero could show me how he fixed the bullet shell sound issue at 60 fps lol

Yeah, sorry, I want to try fixing another issue I had with 60fps first then I'll upload a script you can use in the meanwhile. Give me until Monday. Are you aware of any other problems with 60fps?

Aero, not really, though people say theres others, I heard the footsteps sound for the ghosts in the prison cells is sped up, not that I noticed or is bothered by it lol, but yea literally nothing else I’ve noticed, I did beat it on pcsx2 once too, which was 30 fps too be sure, so yea can’t THINK of anything else.

@Polymega I've uploaded a PSF2 of the siren sound effect to the FTP. See /Audio/SFX/siren.psf2.

Do you mean that it loops indefinitely (even after the cutscene ends) until you leave the room? If so, then yes, I confirmed this on my own PS2 copy that it loops here.

I know it loops indefinitely in both versions. What I mean is that the song is longer than the original PC version. Try to compare both, enhanced and original versions. Both versions have infinite loop, but the song itself is a bit longer before starting again from the beginning on the enhanced version. I think it's not an issue, anyway. It's just different.

Is this the track right before Laura tricks James and locks him in the Flesh Lips room? I can check on this one over the weekend.

Exactly. The same happens in this BGM, but again, I don't think it's an issue, it's just a diferent version. Maybe it was like that on the PS2 version.

We can possibly look into increasing the volume overall at a later time but I'd also suggest maxing the BGM volume slider in the game's Options menu and decreasing the SFX slider a little.

I tried this. In fact, I maxed the BGM volume slider and left by default the SFX volume slider since before. I noticed that sometimes the BGM sounded a little bit low on the original PC audio, but now sounds a bit lower than before. But maybe it's just me. It's not a problem, anyway. The music and sfx both sounds amazing.

Both versions have infinite loop, but the song itself is a bit longer before starting again from the beginning on the enhanced version. I think it's not an issue, anyway. It's just different.

Okay cool. So long as it sounds "right" I think we're good then. Being as the tracks you specifically mentioned are melodic I think it would be very obvious if we messed up their loop points so as long as they still sound good we should be okay.

I noticed that sometimes the BGM sounded a little bit low on the original PC audio, but now sounds a bit lower than before.

We can look into this more at a later time. At the moment we'll get the siren sound fixed as that's a big deal and we're looking into some other, non-audio fixes at this moment.
Thanks for your notes Storm3000!

I wasnt aware of these issues but meh, not too worried about them, I haven’t had much time to do a playthrough since you guys released this heh

Just that bull shell casing thing, which was always present at 60fps, even in the original audio lol

@all
The siren track is now fixed and will play indefinitely during the end of the apartment RPT boss fight, hospital Flesh Lips fight, and their respective aftermath cutscenes. Thanks to @Storm3000 for pointing it out.
You can download version 1.0.1 of the Audio Enhancement Pack here.
When you click to download just make sure the file name is SH2PC_Audio_Enhancement_Pack_1.0.1.zip. Otherwise, you may need to clear your cache of the Guide's page first.

@Storm3000

Both versions have infinite loop, but the song itself is a bit longer before starting again from the beginning on the enhanced version.

Sorry for the slight delay on this. I hear it too. Let me record some samples from PCSX2 and then speak with Elisha about this. Is it just "Alone in the Town" (bowling alley) and "The Day of Night" (James talking with Laura at the end of the Hospital level) with the extended track issue?
Thank you again


Cannot add new hotspots

I have linxdot miners, I connect via bluetooth with helium app try to add a hotspot to blockchain and it says pending for for 10-20-30seconds and then it just disappears. I have 2  hotspots that are set up  which were added with ease but now I just can't add more. Neither from helium app or linxdot app. While the transaction is pending I click on it and go to view info on explorer but it gives me 404 error.  I have the latest app version and I can't seem to figure this out, it must be some bug with the app or the helium network itself...

Linxdot's maker account is depleted:

They will need to top up their account before any Linxdots can be onboarded. I'd recommend contacting their support about this. It's not an app issue that can be resolved here.

Oh I didn't know that you have a limit . Thanks a lot for the reply man, I've at this for hours and my head started to hurt. I've send them an email so I guess nothing to do until they resolve this.


Auto complete not works in Rust

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
Auto-complete seems not work in Rust (but it's ok when I switch to TS) and the rust-analyzer version under ~/Library/Application Support/Zed/languages/rust-analyze is rust-analyzer-2023-06-12.
BTW, thanks for this awesome project, can't wait to use it on my daily work! 🙌
*Love it already support Vim mode already. 😄 *
Environment
Zed: v0.90.2 (stable)
OS: macOS 13.4.0
Memory: 16 GiB
Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature

Auto-complete did not show up
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
Zed.log

Thanks for the reply!
I survey several related issues and saw this solution, so I already did this before and it's still not working. 😅

Hey @siygle, what happens if you delete the ~/Library/Application Support/Zed/languages/rust-analyzer folder and force Zed to redownload it when opening a Rust project?

I did not find the current path. Every time I open Zed on rust file/dictionary, the status bar flashes Checking for updates and downloading rust LSP for a moment, but rust-analyzer did not work. Is it due to my network or permission issues?

Hey @siygle, what happens if you delete the ~/Library/Application Support/Zed/languages/rust-analyzer folder and force Zed to redownload it when opening a Rust project?

I did not find the current path. Every time I open Zed on rust file/dictionary, the status bar flashes Checking for updates and downloading rust LSP for a moment, but rust-analyzer did not work. Is it due to my network or permission issues?

2023-07-01T04:54:22 [INFO] ========== starting zed ==========
2023-07-01T04:54:22 [ERROR] crates/settings/src/settings_file.rs:90: EOF while parsing a value at line 34 column 0
2023-07-01T04:54:22 [INFO] Opening main db
2023-07-01T04:54:22 [INFO] Opening main db
2023-07-01T04:54:22 [INFO] set status on client 0: Authenticating
2023-07-01T04:54:22 [INFO] set status on client 0: Connecting
2023-07-01T04:54:22 [INFO] Opening main db
2023-07-01T04:54:22 [ERROR] crates/workspace/src/persistence/model.rs:258: No path stored for this editor
2023-07-01T04:54:22 [INFO] starting language server name:rust-analyzer, path:"/Users/yeruo/WorkSpace/Projects/rust-learning/src", id:0
2023-07-01T04:54:23 [INFO] set environment variables from shell:/bin/zsh, path:/Users/yeruo/.local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/yeruo/.local/share/zinit/polaris/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/yeruo/Programs/miniconda3/condabin:/Users/yeruo/Programs/fsl/share/fsl/bin:/Users/yeruo/Programs/fsl/share/fsl/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/yeruo/.cargo/bin
2023-07-01T04:54:23 [INFO] unhandled notification client/registerCapability:
{
"registrations": [
{
"id": "316db6f3-6954-40ee-81e2-19866a6aeb06",
"method": "workspace/didChangeWorkspaceFolders",
"registerOptions": {}
}
]
}
2023-07-01T04:54:24 [INFO] connected to rpc endpoint https://collab.zed.dev/rpc
2023-07-01T04:54:24 [INFO] unhandled notification window/showMessageRequest:
{
"type": 2,
"message": "No access to GitHub Copilot found. You are currently logged in as yeruoforever.",
"actions": [
{
"title": "Signup for GitHub Copilot"
},
{
"title": "Dismiss"
}
]
}
2023-07-01T04:54:24 [ERROR] crates/project/src/project.rs:2465: Permission denied (os error 13)
2023-07-01T04:54:25 [INFO] add connection to peer
2023-07-01T04:54:25 [INFO] waiting for server hello
2023-07-01T04:54:25 [INFO] got server hello
2023-07-01T04:54:25 [INFO] set status to connected (connection id: ConnectionId { owner_id: 0, id: 0 }, peer id: PeerId { owner_id: 186, id: 791839 })
2023-07-01T04:54:25 [INFO] set status on client 0: Connected { peer_id: PeerId { owner_id: 186, id: 791839 }, connection_id: ConnectionId { owner_id: 0, id: 0 } }
2023-07-01T04:57:50 [ERROR] oneshot canceled

+1,
experiencing this on Zed 0.114.4 Mac Os 14.1.1 (23B81) M2
Zed.log

Hi Everyone
Is there a shortcut for trigger autocomplete?
I found 1 reason for the above problem when using Copilot and Zed autocomplete together, sometimes Zed's autocomplete feature is broken.
Therefore, if I turn off Copilot, it will work.

Hi Everyone Is there a shortcut for trigger autocomplete?
I found 1 reason for the above problem when using Copilot and Zed autocomplete together, sometimes Zed's autocomplete feature is broken. Therefore, if I turn off Copilot, it will work.

Hey @hungify, there is a shortcut. In the command prompt, its called editor: show completions and defaults to opt-space.
And you are correct, the copilot completions do interfere with editor completions at times - its something we need to fix.


Add compression support to websockets

Hello,
It would be very useful to add compression support to websocket to optimize bandwidth,
here's the header that must be interpreted to activate compression
Sec-WebSocket-Extensions: permessage-deflate
Thanks in advance.

salvo does not implement websocket directly, it depends on tokio-tungstenite, so this requires tokio-tungstenite to provide support.
https://github.com/snapview/tokio-tungstenite/pull/251

@chrislearn Thank you very much for your responsiveness, I'll look into it.


Export Outlook calendar info to Time.Off calendar?

Hi!
It looks like you can export your time.off calendar information to an Outlook calendar, but I'm looking to do the opposite - pull existing information (mainly availability) from an employee's Outlook calendar and have it displayed (somewhat) in the time.off calendar. Is this possible?
Thanks!

This is exacly what I, too, am looking for: something that will automatically read "vacation" events in our company calendars and make team overviews out of it.
There is an Office REST API that will allow you to read calendar information, so it should be possible to do that bit.
I'm sure there could be complications on the timeoff-side with integrating into approval flows, existing bookings, et cetera.

Oh good point! I think the Office REST API would be a great addition to get the two-way flow of information. I had the same thought regarding existing bookings. I was thinking of maybe incorporating a second "Alert" API, if I can find a viable option.
Appreciate your feedback, Klaymen!

Thank you guys, for suggestion.
It is definitely worth considering adding this feature.
Maybe not as part of cloud solution but the one available for those hosting internally.
I will have a though how to incorporate it, ideally as plugin thing.

Hey @vpp maybe it would be better to provide an API for TimeOff so other people can work on other integration implementations like this (i.e: syncing other calendars rather than outlook/exchange).
There's another issue about this topic :)


feat: use vitest instead of jest for testing

Closing for now until I can find a solution to the GraphQL issue


refactor: init pacman, ghosts, fruits & timers in main

I think that we can also init pacman, ghosts, fruits & timers here.
Playing a game won't change what is initialized by this function so we can only initialize this once instead of at the start of each game :)

This way, we can initialize theses

Originally posted by @FranckG28 in https://github.com/Livl-Corporation/livl-pacman/pull/76#discussion_r1234458618

I like this issue !

I love it too !!!


Fixes missing reply and ' in generator

To check if it worked run with:
http://writings.nunojob.com/2011/12/Mock-Testing-CouchDB-Using-NodeJS-With-Nock-And-TAP.html
And add some tests. This is a mocking thing after all :)


"Extending Embedded Python" Documentation/Safe API

Request
Add documentation for the extension of an embedded Python interpreter to the guide. Maybe it makes sense to also provide a safe API e.g. for PyImport_AppendInittab and family.
Use Case
I tried to extend the interpreter with an internal module so that externally loaded Python scripts would be able to use that module to interact with the application they are running in. Since this module is only meaningful while the scripts are running in the application's context, it does not make sense to build the extension module as e.g. a DLL.
For this use case the Python C-API has this example. I got quickly stuck in my actual case and decided to rebuild exactly this example (my current solution can be found here.
Context
#[pymodule]
fn emb(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_function(wrap_pyfunction!(numargs, m)?)?;
    Ok(())
}

[Listing 1: Module definition with macro]
Where the numargs function is regularly defined with #[pyfunction].
Possible Solutions
Exploiting the Behavior of #[pymodule]
This distilles down to the following:

Make use of the fact that #[pymodule] creates a corresponding PyInit_<funcname> function in a proc_macro, which can then be used with

unsafe {
    let ptr = std::mem::transmute::<*const (), extern "C" fn() -> *mut ffi::PyObject>(
        PyInit_emb as *const ()
    );
    ffi::PyImport_AppendInittab("emb\0".as_ptr() as *const _, Some(ptr));
}

[Listing 2: Interpreter extension pattern]

A safe version of PyImport_AppendInittab would be nice for that. Or maybe an additional attribute to extend the current interpreter with that module transparently?
This only works for single phase initialization since it uses PyModule_Create internally.
If this is an acceptable solution, I'd love to find that in the guide/docs next time I'm looking for it.

Advantages

Easy to use, only needs documentation
Little unsafe code
Little boilerplate

Disadvantages

Depends on an implementation detail
Only works for single phase initialization

Manually Creating the PyInit_ Function
Going the manual way, not using #[pymodule]. What I'm showing next is basically what the #[pymodule] macro generates with the exclusion of the RefCell wrapper for PyModuleDef from the derive_utils. From what I tried and read, this looks roughly like:
#[no_mangle]
#[allow(non_snake_case)]
pub unsafe extern "C" fn PyInit_emb() -> *mut ::pyo3::ffi::PyObject {
        let fptr = std::mem::transmute::<*const (), ffi::PyCFunction>(numargs as *const ());
        let method_numargs = ffi::PyMethodDef {
            ml_name: cstr!("numargs\0"),
            ml_meth: Some(fptr),
            ml_flags: ffi::METH_VARARGS,
            ml_doc: cstr!("Return the number of arguments received by the process\0"),
        };

        let method_sentinel = ffi::PyMethodDef {
            ml_name: std::ptr::null_mut(),
            ml_meth: None,
            ml_flags: 0,
            ml_doc: std::ptr::null_mut(),
        };

        let mut methods_array: [ffi::PyMethodDef; 2] = [method_numargs, method_sentinel];
        let methods: *mut ffi::PyMethodDef = methods_array.as_mut_ptr();

        let def: *mut ffi::PyModuleDef = ffi::PyModuleDef {
            m_base: ffi::PyModuleDef_HEAD_INIT,
            m_name: cstr!("emb\0"),
            m_doc: cstr!("somedoc\0"),
            m_size: 0,
            m_methods: methods,
            m_slots: std::ptr::null_mut(),
            m_traverse: None,
            m_clear: None,
            m_free: None,
        }
        .borrow_mut();

        ::pyo3::callback::handle_panic(|_py| {
            let module = unsafe { _py.from_owned_ptr_or_err::<PyModule>(ffi::PyModule_Create(def))? };
            module.add_function(wrap_pyfunction!(numargs, module)?)?;
            Ok(pyo3::IntoPyPointer::into_ptr(module))
        })
}

[Listing 3: Manual ffi-based module definition]
Using this instead of the code shown in Listing 1 results for me in this runtime error:
Error: SystemError: PyState_AddModule called on module with slots.

I still don't understand why this happens even though m_slots is effectively NULL and where the difference to the expanded macros is, so if anyone could explain this to me, I'd be grateful.
This requires a lot of unsafe code and rather unergonomic pointer casting/handling, so some design to enable this in a smoother way would be nice to have here.
With some macro magic, I'm sure it could be sufficiently facilitated.

Advantages

Independant of macro implementation details
More versatile, e.g. also for multi-phase initialization and therefore
multi-interpreter possible

Disadvantages

basically using ffi only
from my point of view, a lot of documentation to find and read to use it
not ergonomic at all (lots of unsafe code and boilerplate)

Next Alternative
Since I'm very new to PyO3, there most probably is a much better way of doing this. I was not able to find it though and therefore request a section in the guide/docs on how to get that behavior.
Overall PyO3 was a pleasure to use for me so far and this was the only major headache until now.
Thanks for this library and keep up the good work.

We do now have append_to_inittab macro, so I'm going to close this issue as it's quite old now.


Regex in $ref path is URLEncoded

When a schema has this structure:
            "patternProperties": {
                "!(somePattern)": {
                    "$ref": "#/definitions/somethingElse"
                }
            }

When this is being bundled, the $ref to 'somethingElse' will be replaced with the schema object and all references to patternProperties/!(somePattern)/..../.../ will be invalid.
Is it possible to not store anything inside pattern properties? if no refs were ever stored here it would fix the bug.

I'm not sure I understand the issue here.  It sounds like you're saying that you don't want json-schema-ref-parser to dereference certain references in your schema.  Is that right?

I don't remember anymore! closing


Cadence/Innovus router should FAIL if it created short circuits.

Several times, I have had the experience where a CI flow will reach its final step (LVS) only to fail because an earlier step silently failed routing and left short circuits in the design. This means an extra hour or two of wasted runtime waiting to find out about an error that should have been flagged much earlier.
Why does the router do this? I discovered that, by default, the Cadence/Innovus routeDesign command is indeed supposed to fail automatically when short circuits result. EXCEPT! According to the Innovus Text Command Reference v. 19.10 p. 3204:

Note: -drouteAutoStop is false by default for 20nm designs and below.

So annoying. Anyway. I can think of several optons for addressing this problem:

Ignore it.

Add an extra step in the CI pipeline to check for shorts after routing.

Add an extra mflowgen node to check for shorts after completing the route step. This would involve identifying a step to hold the verification script (either by hijacking an existing step or creating a new step e.g. custom_postroute_script); connecting that step to each route node; and doing that for each module with a route step (e.g. fullchip, Tile_PE, Tile_MemCore, global buffer...)

Modify mflowgen itself to include the check, which should be as simple as modifying the innovus-flow step, similar to what happened in mflowgen pull 111 ( https://github.com/mflowgen/mflowgen/pull/111 ). That time, for similar reasons, I changed

  - routeDesign
  + routeDesign -placementCheck

and this time I would add "-dRouteAutoStop":
  - routeDesign -placementCheck
  + setNanoRouteMode -drouteAutoStop true
  + routeDesign -placementCheck

Option 4 seems like the correct solution, for so many reasons. So I will proceed with that until/unless I hear a better suggestion.
As usual, your comments are more than welcome!

If we always wanted it to stop if there are shorts, then your number 4 (or an mflowgen assertion) sound like the right way to go.
However, sometimes people do still want to continue the spin despite shorts during prototyping. I think the default should let it run through, since even if detailed route isn't completely clean, the downstream reports are likely to still be useful.
Once node inheritance is up, I think the right thing to do is to sub-class the route node and bake into it the fact that we would like it to stop on shorts for this project.

Note that if you are looking for consistent behavior, the "more or less than 20nm" rule referred to above has already thrown that out the window :(
How about this, for a nice low-tech solution, which has the advantage of being wildly generic such that it might solve multiple other little similar problems in the future. In the spirit of generators, we parameterize the route command, i.e. we can change the route step to do use an environment variable / parameter something like
if {[info exists ::env(pre_routeDesign)]} {  eval $::env(pre_routeDesign) }
routeDesign -placementCheck

Then I can achieve my desired CI behavior by simply setting the parameter
export pre_routeDesign="setNanoRouteMode -drouteAutoStop true"

Meanwhile, in the case where e.g. the design technology is less than 20nm, the user can optionally turn on the prototyping behavior that you wanted, by setting
export pre_detailRoute="setNanoRouteMode -drouteAutoStop false"

I like the parameter approach. The parameter should probably be very specific (e.g., "stop_on_failed_routing"). If it is true, then you tack on the additional flag.

To be clear @ctorng : you would favor an approach with a simple parameter
set stop_on_failed_routing true

but would not like the more generic solution
set execute_before_detailRoute="setNanoRouteMode -drouteAutoStop true"

Correct?

Yes, let's make our parameters specific.

I am abandoning this effort. "-drouteAutoStop" did not do what I wanted, in particular it did not produce any kind of error in the case of e.g. metal shorts after routing. I think maybe it only kicks in if there are more than some certain number of errors, which does not appear to be settable AFAICT. Secondly, I found that metal shorts left after initial routing can and do occasionally get fixed successfully in later design stages, so having this "early out" is not as useful as I first anticipated.


Fix double '/' in path produced by spm sample crashlytics build script

Hey there! So you want to contribute to a Firebase SDK?
Before you file this pull request, please read these guidelines:
Discussion
fixes #8533
Updates the spm installation instructions.
Currently the Build phase outlined for dsym upload produces an extra / before SourcePackages
Testing
New path that will be output:

API Changes
n/a

Thanks for the PR! Please sign the CLA and we can review.

@googlebot I signed it!