Tutorial  Updated

Dump Vertex and Fragment Shader code from Nintendo Switch Games

Okay, I don't understand why there's no tutorial about this. I am really thanked to @KillzXGaming and @gdkchan for helping me with this issue and of course, for making this possible.

Not all shaders work, but for most of them, you can get the code in a few steps.

upload_2019-8-22_1-48-6.png


What do you need?

- Ryujinx.ShaderTools: Download link (You can easily compile Ryujinx yourself too: https://github.com/Ryujinx/Ryujinx)
- Switch Toolbox (method 1): https://github.com/KillzXGaming/Switch-Toolbox
- HxD or your favourite hex editor (method 2): https://mh-nexus.de/en/hxd/
- Text Editor like Sublime Text: https://www.sublimetext.com/
- Decrypted switch games (RomFS format)

Step 1: Prepare your game

- Get the desired game (In this case Pokémon Let's Go Pikachu)
- Decrypt the game with your favourite method.
I recommend taking a look to these tutorials if you don't know how to do it: https://gbatemp.net/threads/decrypt...backup-loading-ryujinx-yuzu-in-1-click.506954 or https://gbatemp.net/threads/extract-nsp-nca-xci-update-all-in-one-tool-for-layeredfs.511156/

Step 2: Method 1 - Switch Toolbox

- Download Switch Toolbox from github and place it anywhere in your computer (you may have to install some packages. For more info, take a look to the github release info).
- Open Switch Toolbox. Click on File > Open.
- The files with extension .bnsh are shaders, so look for the .bnsh you wanna see the code and open it.
It's okay if the shader is called "name.bnsh_fsh" or "name.bnsh_vsh". "fsh" stands for Fragment Shader and "vsh" stands for Vertex Shader.
-
Open the visual folder structure by clicking on the "+" until you can see the Vertex Shader or Fragment Shader folder (after Shader Variation).

upload_2019-8-22_2-0-1.png


- Right click on the last one > Export Shader1.bin > save it anywhere in your computer. The name doesn't matter but it is recommended to save this file in ShaderTools folder (See step 3). Sometimes it's not shader1 but shader0, if one gives you error, try the other.

Step 2: Method 2 - HxD and manual file editing

- Open the .bnsh file with the hex editor (HxD in this case).
- All the shaders start with the hex values 78 56 34 12. Look for them.

upload_2019-8-22_2-13-48.png


- Count 0x30 bytes from that point.The shader code starts from there.

upload_2019-8-22_2-23-33.png


- Copy the data from there to the all zeros (can be the end of the file) to other new hex file.
- Save it as .bin. The name doesn't matter but it is recommended to save this file in ShaderTools folder (See step 3).

Step 3: See the code

- Go to the folder where you have the Ryujinx.ShaderTools.
- Open the cmd window with Windows + R > cmd or Shift + Right Click > Open CMD Prompt here.
- In the cmd window use the command:

(For FragmentShader) Ryujinx.ShaderTools f path/to/shader1.bin/relative/to/Ryujinx.ShaderTools folder.
(For VertexShader) Ryujinx.ShaderTools v path/to/shader1.bin/relative/to/Ryujinx.ShaderTools folder.

e.g, if the binary is in the Ryujinx Shader Tools folder:

Ryujinx.ShaderTools f fragmentShader.bin
Ryujinx.ShaderTools v vertexShader.bin

- if everything went well, the cmd window will display the code and you can copy it to your favourite text editor.
-Enjoy

Is there anything missing?

Leave a comment to know what I missed so we can help others too ^^

Credits:

- @KillzXGaming: Switch Toolbox
- @gdkchan: Ryujinx and huge help
- @PRAGMA: Romfs decrypting tutorial
- @huma_dawii: Other decrypting tutorial
 

Attachments

  • upload_2019-8-22_2-14-17.png
    upload_2019-8-22_2-14-17.png
    184.4 KB · Views: 484
  • upload_2019-8-22_2-23-18.png
    upload_2019-8-22_2-23-18.png
    184.7 KB · Views: 448
Last edited by Manurocker95,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • S @ salazarcosplay:
    hunter x hunter
  • S @ salazarcosplay:
    he has not allowed anyone to continue it for him for example
  • Xdqwerty @ Xdqwerty:
    @salazarcosplay, theres a dragon ball af mod for budokai 3
  • Xdqwerty @ Xdqwerty:
    updated ship of harkinian, gonna install some hd texture pack
  • Xdqwerty @ Xdqwerty:
    I might download rayman revolution for my ps3
  • BigOnYa @ BigOnYa:
    I may try the new ram site, and download more RAM to my Switch. Not sure if ddr3 is the right ram
    for it tho. Edit- no it uses floppy Ram, just like @AncientBoi
    +1
  • Xdqwerty @ Xdqwerty:
    aeiou
  • BigOnYa @ BigOnYa:
    And sometimes Z
  • SylverReZ @ SylverReZ:
    @K3Nv2, MAGA supporters be wearing tin foil hats lol.
    +1
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, whats maga?
  • BigOnYa @ BigOnYa:
    It stands for Maniacs Against General Acceptance
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, people rejecting general consensus about stuff?
    +1
  • BigOnYa @ BigOnYa:
    Yup, nuh its really just Trump followers
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, im not american so i dont care about trump
    +1
  • Xdqwerty @ Xdqwerty:
    or us elections
  • BigOnYa @ BigOnYa:
    Me niether, us north Koreans don't care
  • Xdqwerty @ Xdqwerty:
    good night
  • BakerMan @ BakerMan:
    i don't care either, even if i'm american
  • BakerMan @ BakerMan:
    truth be told, i agree with psi, i dislike both candidates, but i'd probably vote trump simply because the economy was better during his presidency
  • AngryCinnabon @ AngryCinnabon:
    Just be careful, if trump ends up winning and using project 2025 America might really change...for the worse.
  • AngryCinnabon @ AngryCinnabon:
    I'm not american and even that sends shivers down my spine.
  • AngryCinnabon @ AngryCinnabon:
    anything that offers trump an opportunity to become an actual dictator
    is bad in my book, i could care less if it wasn't for that...
  • K3Nv2 @ K3Nv2:
    Canada: America's Russia
  • NinStar @ NinStar:
    people are so dramatic that I can't even tell if they are being serious
    NinStar @ NinStar: people are so dramatic that I can't even tell if they are being serious