Digital Foundry Article Technical Discussion [2022]

Status
Not open for further replies.
Unless the DirectStorage APIs are 100% identical to the regular file I/O, then you wouldn't just be able to swallow one set of API calls for another.

If it was that easy, Microsoft could just implement an option higher up in the OS, along the lines of the compatibility flags.
'Direct Storage' is listed in the game files so at some point they've messed around with it and added it to the engine so not quite sure what you're talking about?

It may even be functional and just waiting for a patch to enable.
 
'Direct Storage' is listed in the game files so at some point they've messed around with it and added it to the engine so not quite sure what you're talking about?

Microsoft may well have have experimented with DirectStorage but you said "Hex edit to enable Direct Storage in the game". You would need to hex edit and change the call of every regular Windows/NTFS I/O API call to the DirectStorage API equivalent - assuming there are equivalents and - the big assumption - that the APIs take the exact same parameters as the long-standing I/O API calls.

I think this is incredibly unlikely, at the very least you would expect DirectStorage to support, possibly require, more fine-grained prioritisation and provide more flexibility with regards to targeting the destination of read data. If it was really easy to support DirectStorage, every game would offer it with virtually zero effort to the developers.
 
Microsoft may well have have experimented with DirectStorage but you said "Hex edit to enable Direct Storage in the game". You would need to hex edit and change the call of every regular Windows/NTFS I/O API call to the DirectStorage API equivalent - assuming there are equivalents and - the big assumption - that the APIs take the exact same parameters as the long-standing I/O API calls.

I think this is incredibly unlikely, at the very least you would expect DirectStorage to support, possibly require, more fine-grained prioritisation and provide more flexibility with regards to targeting the destination of read data. If it was really easy to support DirectStorage, every game would offer it with virtually zero effort to the developers.

Why are you talking about Microsoft?

The GAME itself references Direct Storage in it's own files which is what I was talking about that a hex edit may or may not enable it, Microsoft were never part of what I was saying.

You seem to be mis-reading or ignoring this part of what I said when referring the game and the developers who ported the game, not Microsoft.

'Direct Storage' is listed in the game files so at some point they've messed around with it and added it to the engine

Go and read what I said again as you're seeing something that's not there. /smh
 
Last edited:
Hex edit mod to disable the annoying forced sharpening in Spider-Man.



I always thought it didn't look 'right' compared to when I played it on PS and now seeing this, this is it...

It's the sharpening, I could never put my finger on what it was.....

Thanks for sharing..

Yes, sharpening filter. That's the same trick used by Xbox One launch games against PS4 ones. Very odd that Nixxes thought it was necessary. Nobody complained the PS5 game was not sharp enough as far as I know.

It's not really the sharpening, at least not the issue with the egregious specular aliasing which is the most prominent difference in image stability. I tried this and it made very little difference. It's primarily an issue with their DLSS implementation.

We also have no idea if the PS5 isn't using some level of sharpening either.

The latest patch includes a sharpening slider, and fixes the white artifacts on buildings. It's like Nixxes are reading this thread!


  • Added sharpness sliders for NVIDIA DLSS and AMD FSR 2.0 upscaling.
  • Added a sharpness slider that controls in-game sharpness.
  • Added an option to force the aspect ratio to 32:9, 21:9, etc.
  • Finetuned the spawn rates for Crowd and Traffic Density settings, to better reflect various modes.
  • Implemented a fix for a bug that turned objects into spiked distorted geometry.
  • Fixed white artifacts appearing around buildings while swinging trough the city.
  • Fixed various ray-tracing related crashes, including a crash that would occur when enabling ray-tracing on PCs with Intel Ivy Bridge CPUs.
  • Various visual fixes related to ray-tracing on the Very High Geometry Detail setting.
  • Fixed a bug that prevented some players from progressing in the Spider-Hack mission.
  • Fixed black blobs and sparkling pixel artifacts on characters when using Dynamic Resolution Scaling in combination with AMD Radeon GPUs.
  • Enabled Gyro Aiming on Steam Deck for Black Cat Stakeouts and interactable objects.
  • Various UI fixes for Steam Deck.
  • Fixed an issue that prevented the game from launching when the installation folder contained non-Latin characters.
  • Improved field of view and cinematic blur transitions.
  • Improved error handling when Controlled Folder Access prevents the launch of the game.
  • Various visual fixes related to ultrawide aspect ratios and multi monitor setups.
  • Various fixes related to mouse and keyboard controls.
  • Stability fixes related to Dynamic Resolution Scaling in combination with AMD Radeon GPUs.
  • Various stability fixes and improved logging.
Also I wonder if the new crowd/traffic spawn rates now more accurately reflect the console settings. I believe this is one of the settings Alex was unable to match to console level.

NB. they also improved HBAO+ and DLSS in the previous patch 5 days ago.
 
Fixed various ray-tracing related crashes, including a crash that would occur when enabling ray-tracing on PCs with Intel Ivy Bridge CPUs.

Wow....people are using them with RTX GPU's, then again the x79 CPU's are still actually decent chips still 👀

I might hold off playing it further as I suspect a performance patch will be done in the not too distant future I might se what happens.
 
The latest patch includes a sharpening slider, and fixes the white artifacts on buildings. It's like Nixxes are reading this thread!

Also I wonder if the new crowd/traffic spawn rates now more accurately reflect the console settings. I believe this is one of the settings Alex was unable to match to console level.

NB. they also improved HBAO+ and DLSS in the previous patch 5 days ago.

Yeah I tried with the new DLSS when they released it, unfortunately didn't affect the reflection/specular aliasing with DLSS. Great for the white occlusion errors on buildings though, that was a biggie.
 
Why are you talking about Microsoft?

The GAME itself references Direct Storage in it's own files which is what I was talking about that a hex edit may or may not enable it, Microsoft were never part of what I was saying.

You seem to be mis-reading or ignoring this part of what I said when referring the game and the developers who ported the game, not Microsoft.

I know what you said, I'll quote it again: "I wonder if there's a Hex edit to enable Direct Storage in the game, we know the game has it as it's referenced in some of the files."

Let me explain. DirectStorage is a Microsoft API. It's a completely alternate set of API calls for dealing with I/O in Windows - as in completely different to the the I/O calls that all games have been using for over a decade. Whilst they don't go into massive detail about individual APIs, the blog post from 2020 explains the fundamental differences. Any game not designed from the outset for DirectStorage, will need a fair redesign of I/O and Check-In process to take advantage of the new APIs. Some synchronous I/O cals would now implicitly be asynchronous with additional message passing - and is beyond a hex edit to implement, that can be a massive shift depending on how you deal with I/O. I imagine Spider-Man has a fairly complex implementation.

The only way a hex edit could enable DirectStorgae in Spider-Man, is if the game already includes a completely operational DirectStorage implementation that is disabled. I.e. it has two completely different I/O and Check-In systems. Not impossible, but also not very likely. If Spider-Man has a fully working DirectStorage implementation they would have released the game with it, given DirectStorage is already part of Windows 10 and Windows 11. It's may be a sign that they are working on this.
 
Last edited by a moderator:
The only way a hex edit could enable DirectStorgae in Spider-Man, is if the game already includes a completely operational DirectStorage implementation that is disabled.

Which is exactly what I was alluding to being a possibility if you bothered to understand what I was saying correctly, next time if you don't understand then ask instead of coming at me with your condescending tone and explaining something to me that I'm already aware of.

What I said:
It MAY even be functional and just waiting for a patch to enable.

Keyword....MAY
 
Which is exactly what I was alluding to being a possibility if you bothered to understand what I was saying correctly, next time if you don't understand then ask instead of coming at me with your condescending tone and explaining something to me that I'm already aware of.

That would be thousands, probably tens of thousands of hex edits. Every part of the game that dealt with I/O, steaming and assets would need to be changed to use that DirectStorage branch of code of I/O, streaming and asset management.
 
That would be thousands, probably tens of thousands of hex edits. Every part of the game that dealt with I/O, steaming and assets would need to be changed to use that DirectStorage branch of code of I/O, streaming and asset management.

Or maybe just a single one.
 
Or maybe just a single one.

How? Please explain in software engineering terms, a single hex edit could swap the entirety of the I/O for the game? How do you envisage the game is structured for a single edit to change everything? use C, use pseudo code.. go nuts.
 
How? Please explain in software engineering terms, a single hex edit could swap the entirety of the I/O for the game? How do you envisage the game is structured for a single edit to change everything? use C, use pseudo code.. go nuts.

Why would the whole I/O need to be changed?

You make a single edit to swap the game from the normal 'traditional' I/O over to the implement Direct Storage system.
 
Last edited:
Why would the whole I/O need to be changed?

You make a single edit to swap the game from the normal 'traditional' I/O over to the implement Direct Storage system.
You've never written a remotely complex programme calling Windows APIs have you? This isn't an attack on you here, most people haven't, I'm just trying to gauge your experience in writing code - particularly involving any file of I/O necessitating the reading or writing of data from a filesystem.

I'm assuming the answer is no, in which case I simply wouldn't know where to begin to explain how complex what you are proposing is and why a single, or handful, of hex edits couldn't achieve this.
 
You've never written a remotely complex programme calling Windows APIs have you? This isn't an attack on you here, most people haven't, I'm just trying to gauge your experience in writing code - particularly involving any file of I/O necessitating the reading or writing of data from a filesystem.

I'm assuming the answer is no, in which case I simply wouldn't know where to begin to explain how complex what you are proposing is and why a single, or handful, of hex edits couldn't achieve this.

How have you managed to flip this on to me? I'm flabbergasted as to how this has happened as you're the one who thought I was taking about adding Direct Storage in to an unsupported game via pure Hex edits (Which I know no one would do because it's dumb) when the reality is very different and every single one your replies has been a bad take of what's actually been talked about.

And now you're here basically insulting my intelligence? You seem to enjoy belittling people.

I have no words.
 
Last edited:
You've never written a remotely complex programme calling Windows APIs have you? This isn't an attack on you here, most people haven't, I'm just trying to gauge your experience in writing code - particularly involving any file of I/O necessitating the reading or writing of data from a filesystem.

I'm assuming the answer is no, in which case I simply wouldn't know where to begin to explain how complex what you are proposing is and why a single, or handful, of hex edits couldn't achieve this.
I think his hypothesis is that an entire DirectStorage based IO stack has already been implemented into the game as an alternate path, but isn’t being used for whatever reason. E.g., perhaps the implementation is complete, but testing/validation was incomplete and the devs decided to play it safe and use the legacy stack in the shipping game. But the code paths still exist and the hex edit is meant to switch to them (per the hypothesis).

It’s certainly plausible, but is predicated on a number of independent assumptions being true. Occam’s Razor tells me that this is unlikely.
 
I think his hypothesis is that an entire DirectStorage based IO stack has already been implemented into the game as an alternate path, but isn’t being used for whatever reason. E.g., perhaps the implementation is complete, but testing/validation was incomplete and the devs decided to play it safe and use the legacy stack in the shipping game. But the code paths still exist and the hex edit is meant to switch to them (per the hypothesis).

It’s certainly plausible, but is predicated on a number of independent assumptions being true. Occam’s Razor tells me that this is unlikely.

Sir, give me your bank details, I would like to buy you a coffee!

It was as simple and as harmless as that!
 
I think his hypothesis is that an entire DirectStorage based IO stack has already been implemented into the game as an alternate path, but isn’t being used for whatever reason. E.g., perhaps the implementation is complete, but testing/validation was incomplete and the devs decided to play it safe and use the legacy stack in the shipping game. But the code paths still exist and the hex edit is meant to switch to them (per the hypothesis).

It’s certainly plausible, but is predicated on a number of independent assumptions being true. Occam’s Razor tells me that this is unlikely.
Given how deeply grained the I/O and asset management would be in a game like Spider-Man, which is predicated in streaming in the city around you at all times, there you have to be two independnet entire code bases in the one binary and which could be flipped at the start from a hex edit. Chance of that? 0.0%. It makes literally no sense to build and distribute a game in this way.

If this was 1970s complexity I/O; function (read_io), hexedit to function (read_io_ds), sure. But things have not worked like that for four decades.

Sir, give me your bank details, I would like to buy you a coffee!

Take him up on this. Assuming you're not my alt account and we're trying to scam him out of coffee. :nope: :coffee:
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top