The release of the game was followed by some reports of people having successfully used my solution for the original Blasphemous. As I looked at the second game, I found that those reports had to have been inaccurate, as the patcher finds nothing in the new Assembly file.
The new game not only has drastic changes to the code and to function names, but also obfuscates its code by relying on IL2CPP. Merely targeting the game resolution to hope for the best is no longer possible either.
So my task had to be approaching the game as a mostly unrelated product. I also used the things I had learned from fixing the likes of We Are OFK and Chained Echoes to target the code on the engine level rather than via assembly alone.
After I found a way to expand the view and get rid of the black bars, multiple issues popped up.
For one, the UI got stretched, so I had to center it. Centering the UI resulted in the vignette effects and letterbox elements being centered as well, so I had to target those specific elements to undo the damage.
Another issue was that the cutscenes were scretched from the view expansion, so to fix this, I had to create code specific to the cutscenes.
Lastly, although the view is expanded horizontally, the pixel-perfect scaling is no more. I couldn't find a way to address this issue, so if you compare to 16:9 and look closely, some pixels will be missing or misplaced. The issue is exacerbated at 32:9 or wider.
The lack of pixel-perfect scaling is the main reason I had doubts about releasing this or considered making the fix patron-only, however, there were multiple personal and public requests from people, which showed me that a fix was in demand. I played through a number of locations with the solution in place and found the experience to be decent at 21:9, so I decided to put it out as v0.1.
Update (Sep 3):
After over a day on trying to improve the fix, I came up with a completely different approach. One revelation came to me as I rested, then on the next day it took a full rewrite of the fix, but now the scaling is perfect with the pixels looking crisp at any aspect ratio. This also removed the weird flickering lines that sometimes appeared in my solution for the original and in v0.1 here.
21:9 users also benefit from the spanned UI in this release, while 32:9 users finally get to play the game without it looking blurry. Sadly, centering the UI for 32:9 and wider would require going back to the old overrides, creating more, and doubling the size of the code, so I'm sticking to the spanning for the moment.
One tradeoff with this version is that it results in the camera framing being somewhat different from 16:9, meaning that sometimes the camera will be higher or lower than designed, while the horizontal anchoring will change as well. I found nothing game-breaking, but I'll leave both versions up just in case. I'm also keeping the old screenshots, as I have fewer since the update. Please don't mind them!
Rose
2023-09-04 15:44:48 +0000 UTCEleriam
2023-09-04 15:25:25 +0000 UTC