48:9 and 48:10 4800x900 5760x1080 7680x1440 5040x1050 5760x1200 7680x1600
You are the best, man. Could you tell us a mini-guide (if possible) of how to edit the .exe in order to fix the resolutions? We don't want to bother you every time the game gets updated
@jack I really appreciate your work but is this a some sort of secret or what? Why you can't tell us how to "do it by yourself"? Don't be afraid - your forum "prestige" will not be harmed in any way if you tell us how to do it, everyone already knows that you are our "savior" - please find time and tell us how do you do your "magic"...
The only thing i'm sure of is the .exe must be edited with an hexadecimal editor. The thing is... what part of all that gibberish must be edited in order to fix the resolution?
I think he will keep that as a secret (for whatever reason). It's his own decision and we should / have to to respect that.
on the other hand ... we all want to know how we cant edit the .exe by ourselves. So I will try to ask one of my friends if he can explain "the magic" to me. and I will share it with you as soon as I can (he is very busy and it could take one or two days).
Guys, if you keep pestering him for the "secret" you might just annoy him enough to stop updating his fix. And you probably still won't get "the secret".
I've tried this hexadecimal editing before, to get widescreen to work in another game. It's gibberish, and as soon as the game updated it was completely different string of numbers I had to find and enter. And that was just for one resolution. Jackfuste is updating this here for about 20 different resolutions. I, for one, am grateful and I'd advise you to be careful what you wish for.
SirPommes wrote:I think he will keep that as a secret (for whatever reason). It's his own decision and we should / have to to respect that.
on the other hand ... we all want to know how we cant edit the .exe by ourselves. So I will try to ask one of my friends if he can explain "the magic" to me. and I will share it with you as soon as I can (he is very busy and it could take one or two days).
I'm not a pro at this, but I think I have the answer you want.
The game seems to check if the nioh.exe has been edited. To get around that, you need to download a cracked .exe.
From there, you need to find and change the hex values that dictate the game's resolution and Aspect Ratio. To find which hex values to edit, you can compare two of jackfuste's .exe's.(They will be both Integers and Floats)
To find the hex values in an updated cracked .exe(with altered hex value locations) you would need to use some detective skills to hunt down where the values moved to. (convert what you think the default value would be to HEX and then search for that HEX string within a HEX editor)(Keep in mind, the hex values that Jackfuste edited)
Icthalion wrote:Guys, if you keep pestering him for the "secret" you might just annoy him enough to stop updating his fix. And you probably still won't get "the secret".
I've tried this hexadecimal editing before, to get widescreen to work in another game. It's gibberish, and as soon as the game updated it was completely different string of numbers I had to find and enter. And that was just for one resolution. Jackfuste is updating this here for about 20 different resolutions. I, for one, am grateful and I'd advise you to be careful what you wish for.
Ehm... I think the point of asking him for the "secret" is to avoid annoying him, precissely. If we can fix the .exe by ourselves, he won't have to make the fix again and again, every time Nioh gets updated.
Don't treat him like some sort of "god" here, dunno what's so secret and why he can't simply response and tell us: "No I can't because it's too complicated" or "Yes I can, do it like this..."
I really appreciate his job here but just can't understand this "secrets" - the forum is meant to help and share opinions...
Don't treat him like some sort of "god" here, dunno what's so secret and why he can't simply response and tell us: "No I can't because it's too complicated" or "Yes I can, do it like this..."
I really appreciate his job here but just can't understand this "secrets" - the forum is meant to help and share opinions...
If he doesn't mind fixing the exe every time the game is updated, then I'm fine with that. The only reason why I asked him for a guide was precissely to avoid annoying him every time a new patch is deployed. But if he prefers to maintain it in secret it's ok, as long as he continues supporting the game, hehe.
Run release\x64\x64dbg.exe with Administrator rights
Go to Options - Preferences
Uncheck "System Breakpoint"; "TLS Callback"; "Attach Breakpoint" and save settings
File - Open - nioh.exe
Click RMB and select "Search for - Current Module - Constant"
Enter constant - 3FE38E39 and press OK
Select second found command "mov dword ptr [rbx+0x50], 0x3FE38E39" click on it RMB (right mouse button) and select "Follow in Disassembler"
Scroll down FPU window and click two times LMB (left mouse button) on XMM0 register
Input to "Float:" window you new aspect ratio, for example, for resolution 2560x1080 it will be 2560/1080 = 2.37037037037037 Click on "Hexadecimal" and copy value from "Long:" window to clipboard, in my case it will be 4017B426
Click two time LMB on command mov dword ptr [rbx+0x50], 0x3FE38E39 and change aspect ratio value 3FE38E39 to your new aspect ratio value 4017B426 mov dword ptr [rbx+0x50], 0x4017B426 Click "OK" and then close window "Assemble at ..."
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to "Hex:" window following bytes 0F 95 C0 88 46 34 and press OK
Select found bytes "0F 95 C0 88 46 34"click on it RMB and select "Follow in Disassembler"
Click two time LMB on command setne al Check "Fill with NOP's" and change it to xor al,al Click "OK" and then close window "Assemble at ..."
Select "call 0x00007FF772BA3451" and press "Enter" to go inside it
Press "Enter" again to go inside "jmp 0x00007FF773104E40"
Click two time LMB on command jle 0x00007FF773104E70 and change it to unconditional jump jmp 0x00007FF773104E70 and also change command jns 0x00007FF773104E86 to unconditional jump jmp 0x00007FF773104E86
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to Hex: window following bytes 00 00 87 44 00 00 F0 44 and press OK
Select found bytes "00 00 87 44 00 00 F0 44"click on it RMB and select "Follow in Dump"
Click RMB in Dump window and change view to "Float - Float (32-bit)"
You will see values 1080 and 1920
For aspect ratio lower than 1.77777 (16:9) you should change 1080 value. How to recalc it: for aspect ratio 1.6 (16:10); 1920/1.6 = 1200 for aspect ratio 1.33333 (4:3); 1920/1.33333 = 1440
And for aspect ratio higher than 1.77777 (16:9) you should change 1920 value. How to recalc it: for aspect ratio 2.37037 (2560:1080); 1080*2.37037 = 2560 for aspect ratio 2.38888 (3440:1440); 1080*2.38888 = 2580
So, for resolution 2560x1080, change 1920 to 2560 Click two times LMB on XMM0 register Input value 2560 to "Float:" window Click on "Hexadecimal" and copy value from "Long:" window to clipboard, in my case it will be 45200000
Click two times LMB on 1920 value in the Dump window and change it to 45200000
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to Hex: window following bytes 00 0F 00 00 70 08 00 00 and press OK
Select first found bytes "00 0F 00 00 70 08 00 00"click on it RMB and select "Follow in Dump"
Click RMB in Dump window and change view to "Integer - Signed long (32-bit)"
You will see two group of values First is a real resolution:
So, for resolution 2560x1080, change all values to 2560 and 1080 Click two times LMB on 3840 value in the Dump window and change it to 2560 Click two times LMB on 2160 value in the Dump window and change it to 1080 etc... You can increase/decrease internal game resolution to manipulate image quality. So if you wish to get supersampling 2x2 change all internal game resolution values to 5120 and 2160.
File - Patch file
Click "Patch File" Make copy of nioh.exe, and select it for patch, but make sure that file doesn't have attribute "Read only"
I hope people understand how much time it took to just make that post alone, not to mention figure all this out, and appreciate the effort. Even though I don't play this game, I would like to say thanks.
thank you for your guide and as others have said: i really would like to support you for your work. if you take donations of any kind, please feel free to send me a message ( and dont be shy ... you really helped us and it took you some time doing it. So the least I / we can do is support YOU a little)
SirPommes wrote:thank you for your guide and as others have said: i really would like to support you for your work. if you take donations of any kind, please feel free to send me a message ( and dont be shy ... you really helped us and it took you some time doing it. So the least I / we can do is support YOU a little)
I absolutely absolutely positively agree: The level of transparency and professionalism, not to mention the timely uploads of the patched executables since the game's release, have been absolutely amazing and unexpected. You really outdid yourself and as I mentioned in a previous post, were the sole reason I finally went through and purchased what many people were considering a shoddy PC port at best. I've come to love the game and have since validated my purchase of the product with virtually all of my positive sentiments riding on the shoulders of your hard work.
Run release\x64\x64dbg.exe with Administrator rights
Go to Options - Preferences
Uncheck "System Breakpoint"; "TLS Callback"; "Attach Breakpoint" and save settings
File - Open - nioh.exe
Click RMB and select "Search for - Current Module - Constant"
Enter constant - 3FE38E39 and press OK
Select second found command "mov dword ptr [rbx+0x50], 0x3FE38E39" click on it RMB (right mouse button) and select "Follow in Disassembler"
Scroll down FPU window and click two times LMB (left mouse button) on XMM0 register
Input to "Float:" window you new aspect ratio, for example, for resolution 2560x1080 it will be 2560/1080 = 2.37037037037037 Click on "Hexadecimal" and copy value from "Long:" window to clipboard, in my case it will be 4017B426
Click two time LMB on command mov dword ptr [rbx+0x50], 0x3FE38E39 and change aspect ratio value 3FE38E39 to your new aspect ratio value 4017B426 mov dword ptr [rbx+0x50], 0x4017B426 Click "OK" and then close window "Assemble at ..."
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to "Hex:" window following bytes 0F 95 C0 88 46 34 and press OK
Select found bytes "0F 95 C0 88 46 34"click on it RMB and select "Follow in Disassembler"
Click two time LMB on command setne al Check "Fill with NOP's" and change it to xor al,al Click "OK" and then close window "Assemble at ..."
Select "call 0x00007FF772BA3451" and press "Enter" to go inside it
Press "Enter" again to go inside "jmp 0x00007FF773104E40"
Click two time LMB on command jle 0x00007FF773104E70 and change it to unconditional jump jmp 0x00007FF773104E70 and also change command jns 0x00007FF773104E86 to unconditional jump jmp 0x00007FF773104E86
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to Hex: window following bytes 00 00 87 44 00 00 F0 44 and press OK
Select found bytes "00 00 87 44 00 00 F0 44"click on it RMB and select "Follow in Dump"
Click RMB in Dump window and change view to "Float - Float (32-bit)"
You will see values 1080 and 1920
For aspect ratio lower than 1.77777 (16:9) you should change 1080 value. How to recalc it: for aspect ratio 1.6 (16:10); 1920/1.6 = 1200 for aspect ratio 1.33333 (4:3); 1920/1.33333 = 1440
And for aspect ratio higher than 1.77777 (16:9) you should change 1920 value. How to recalc it: for aspect ratio 2.37037 (2560:1080); 1080*2.37037 = 2560 for aspect ratio 2.38888 (3440:1440); 1080*2.38888 = 2580
So, for resolution 2560x1080, change 1920 to 2560 Click two times LMB on XMM0 register Input value 2560 to "Float:" window Click on "Hexadecimal" and copy value from "Long:" window to clipboard, in my case it will be 45200000
Click two times LMB on 1920 value in the Dump window and change it to 45200000
Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
Paste to Hex: window following bytes 00 0F 00 00 70 08 00 00 and press OK
Select first found bytes "00 0F 00 00 70 08 00 00"click on it RMB and select "Follow in Dump"
Click RMB in Dump window and change view to "Integer - Signed long (32-bit)"
You will see two group of values First is a real resolution:
So, for resolution 2560x1080, change all values to 2560 and 1080 Click two times LMB on 3840 value in the Dump window and change it to 2560 Click two times LMB on 2160 value in the Dump window and change it to 1080 etc... You can increase/decrease internal game resolution to manipulate image quality. So if you wish to get supersampling 2x2 change all internal game resolution values to 5120 and 2160.
File - Patch file
Click "Patch File" Make copy of nioh.exe, and select it for patch, but make sure that file doesn't have attribute "Read only"
This is awesome Jack! Thanks! So is this process similar for most games?