Page 6 of 9

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 12:24
by Bastinazus
jackfuste wrote:
Nioh_ws.part001.rar

Nioh_ws.part002.rar

Nioh_ws.part003.rar


    Supported resolutions:
    5:4
    1280x1024

    4:3
    1024x768
    1152x864
    1280x960
    1400x1050
    1600x1200
    2048x1536

    16:10
    1280x800
    1440x900
    1680x1050
    1920x1200
    2560x1600

    21:9
    2560x1080
    3440x1440
    3840x1600

    48:9 and 48:10
    4800x900
    5760x1080
    7680x1440
    5040x1050
    5760x1200
    7680x1600

Game just got updated. Can you upload the fix for 16:10 screen, please?

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 15:41
by jackfuste
Update for v1.21.02
Nioh_v1_21_02.part001.rar
(5 MiB) Downloaded 3548 times

Nioh_v1_21_02.part002.rar
(5 MiB) Downloaded 3251 times

Nioh_v1_21_02.part003.rar
(4.78 MiB) Downloaded 3487 times

    Supported resolutions:
    5:4
    1280x1024

    4:3
    1024x768
    1152x864
    1280x960
    1400x1050
    1600x1200
    2048x1536

    16:10
    1280x800
    1440x900
    1680x1050
    1920x1200
    2560x1600

    21:9
    2560x1080
    3440x1440
    3840x1600

    32:9
    3840x1080

    48:9 and 48:10
    4800x900
    5760x1080
    7680x1440
    5040x1050
    5760x1200
    7680x1600

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 15:44
by Bastinazus
jackfuste wrote:Update for v1.21.02
Nioh_v1_21_02.part001.rar

Nioh_v1_21_02.part002.rar

Nioh_v1_21_02.part003.rar

    Supported resolutions:
    5:4
    1280x1024

    4:3
    1024x768
    1152x864
    1280x960
    1400x1050
    1600x1200
    2048x1536

    16:10
    1280x800
    1440x900
    1680x1050
    1920x1200
    2560x1600

    21:9
    2560x1080
    3440x1440
    3840x1600

    32:9
    3840x1080

    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 :)

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 16:07
by caleb59
@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"...

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 16:14
by Bastinazus
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?

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 18:39
by adriano_99
jackfuste wrote:Update for v1.21.02
Nioh_v1_21_02.part001.rar

Nioh_v1_21_02.part002.rar

Nioh_v1_21_02.part003.rar

    Supported resolutions:
    5:4
    1280x1024

    4:3
    1024x768
    1152x864
    1280x960
    1400x1050
    1600x1200
    2048x1536

    16:10
    1280x800
    1440x900
    1680x1050
    1920x1200
    2560x1600

    21:9
    2560x1080
    3440x1440
    3840x1600

    32:9
    3840x1080

    48:9 and 48:10
    4800x900
    5760x1080
    7680x1440
    5040x1050
    5760x1200
    7680x1600

Please, can you post the numbers to edit in the .exe ?
This way we can edit ourselves.

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 19:05
by SirPommes
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).

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 19:52
by Icthalion
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.

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 20:13
by CivilWolf
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)

Here is a Hex converter that can help you understand what each hex string is:
https://www.scadacore.com/tools/programming-calculators/online-hex-converter/

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 20:45
by Bastinazus
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.

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 21:28
by caleb59
Exactly that's the point!

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...

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 21:42
by Bastinazus
caleb59 wrote:Exactly that's the point!

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.

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 21:55
by jackfuste
  • First you need a cracked nioh.exe. Why it's needed? Because legit exe is encrypted and you can't modify it.
  • Download latest version x64dbg debugger - https://sourceforge.net/projects/x64dbg/files/snapshots/
  • 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"
    Image
  • Enter constant - 3FE38E39 and press OK
    Image
  • Select second found command "mov dword ptr [rbx+0x50], 0x3FE38E39" click on it RMB (right mouse button) and select "Follow in Disassembler"
    Image
  • Scroll down FPU window and click two times LMB (left mouse button) on XMM0 register
    Image
  • 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
    Image
  • 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 ..."
    Image
  • Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
    Image
  • Paste to "Hex:" window following bytes 0F 95 C0 88 46 34 and press OK
    Image
  • Select found bytes "0F 95 C0 88 46 34"click on it RMB and select "Follow in Disassembler"
    Image
  • 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 ..."
    Image
  • Select "call 0x00007FF772BA3451" and press "Enter" to go inside it
    Image
  • Press "Enter" again to go inside "jmp 0x00007FF773104E40"
    Image
  • Click two time LMB on command
    jle 0x00007FF773104E70
    and change it to unconditional jump
    jmp 0x00007FF773104E70
    Image
    and also change command
    jns 0x00007FF773104E86
    to unconditional jump
    jmp 0x00007FF773104E86
    Image Image
  • 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)"
    Image
  • You will see values 1080 and 1920
    Image
  • 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
    Image
  • Click two times LMB on 1920 value in the Dump window and change it to 45200000
    Image Image
  • 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)"
    Image
  • You will see two group of values
    Image
    First is a real resolution:

    Code: Select all

    3840        2160
    2560        1440
    2048        1152
    1920        1080
    1600         900
    1366         768
    1280         720

    Second is internal game resolution:

    Code: Select all

    3840        2160
    3328        1872
    2560        1440
    1920        1080
    1664         936
    1280         720
     960         540
  • 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...
    Image Image
    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.
    Image
  • File - Patch file
  • Click "Patch File"
    Image
    Make copy of nioh.exe, and select it for patch, but make sure that file doesn't have attribute "Read only"
    Image

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 22:06
by caleb59
Yes, thank you very much!

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 22:49
by antrad
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.

Re: Nioh No 21:9 support (Fix request)

Posted: 14 Nov 2017, 23:18
by hi_voltg3
Do you take donations of any sort Jackfuste?

Re: Nioh No 21:9 support (Fix request)

Posted: 15 Nov 2017, 01:24
by SirPommes
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) :)

Re: Nioh No 21:9 support (Fix request)

Posted: 15 Nov 2017, 03:58
by chenkb
just login for thx jack.
lol
lol
lol

Re: Nioh No 21:9 support (Fix request)

Posted: 15 Nov 2017, 05:24
by shrgnatlas
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.

Thank you, Jack.

Re: Nioh No 21:9 support (Fix request)

Posted: 15 Nov 2017, 05:51
by hyp36rmax
Spoiler:
jackfuste wrote:
  • First you need a cracked nioh.exe. Why it's needed? Because legit exe is encrypted and you can't modify it.
  • Download latest version x64dbg debugger - https://sourceforge.net/projects/x64dbg/files/snapshots/
  • 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"
    Image
  • Enter constant - 3FE38E39 and press OK
    Image
  • Select second found command "mov dword ptr [rbx+0x50], 0x3FE38E39" click on it RMB (right mouse button) and select "Follow in Disassembler"
    Image
  • Scroll down FPU window and click two times LMB (left mouse button) on XMM0 register
    Image
  • 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
    Image
  • 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 ..."
    Image
  • Go to "Memory Map" tab, select nioh.exe click on it RMB and select "Find Pattern"
    Image
  • Paste to "Hex:" window following bytes 0F 95 C0 88 46 34 and press OK
    Image
  • Select found bytes "0F 95 C0 88 46 34"click on it RMB and select "Follow in Disassembler"
    Image
  • 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 ..."
    Image
  • Select "call 0x00007FF772BA3451" and press "Enter" to go inside it
    Image
  • Press "Enter" again to go inside "jmp 0x00007FF773104E40"
    Image
  • Click two time LMB on command
    jle 0x00007FF773104E70
    and change it to unconditional jump
    jmp 0x00007FF773104E70
    Image
    and also change command
    jns 0x00007FF773104E86
    to unconditional jump
    jmp 0x00007FF773104E86
    Image Image
  • 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)"
    Image
  • You will see values 1080 and 1920
    Image
  • 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
    Image
  • Click two times LMB on 1920 value in the Dump window and change it to 45200000
    Image Image
  • 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)"
    Image
  • You will see two group of values
    Image
    First is a real resolution:

    Code: Select all

    3840        2160
    2560        1440
    2048        1152
    1920        1080
    1600         900
    1366         768
    1280         720

    Second is internal game resolution:

    Code: Select all

    3840        2160
    3328        1872
    2560        1440
    1920        1080
    1664         936
    1280         720
     960         540
  • 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...
    Image Image
    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.
    Image
  • File - Patch file
  • Click "Patch File"
    Image
    Make copy of nioh.exe, and select it for patch, but make sure that file doesn't have attribute "Read only"
    Image


This is awesome Jack! Thanks! So is this process similar for most games?