Tutorial  Updated

Custom Boot Logo Tutorial

(Putting this in it’s own thread for posterity…)

In case folks want to roll their own custom boot logo, here are detailed instructions for how to set it up.

Good article on getting python and pip (you need both) installed on Windows: https://www.liquidweb.com/kb/install-pip-windows/

Download the script by going here: https://github.com/friedkeenan/switch-logo-patcher

Click the blue Code button and select Download ZIP and then unzip the directory somewhere easy to get to.

FCB2EA81-CD2D-4CFC-B918-795FB6639E2A.jpeg


Open a cmd.exe window and cd to the easy to get to directory and type the following:

Code:
python -m pip install -r requirements.txt

Once that’s successful your are ready to patch!

I’ve attached my 308x350 png file again for you to copy into the same directory as a proof of concept.

here’s the command:

Code:
python gen_patches.py patches_dir new_logo

new_logo=the name of the 308x350 .png file you copied into this directory that you want patched into files. If you download the attached proof of concept file it would be F44C1AC8-3310-4EA5-BFFB-1F682120F3B8.png

patches_dir=use whatever directory name makes sense to you. You will copy this entire directory over to /atmosphere/exefs_patches/ when you are done.



Here’s the readme again.

# Switch Logo Patcher

Creates the IPS patches needed to replace the Switch logo on boot.

The logo you want to change the Switch logo to must be the same size as the original logo, which is 308x350. Anything else and the program won't let you progress.

You don't need to dump the original logo to use this, but if you don't specify the original logo, each patch will be 400+ KiB.

### Usage

```
usage: gen_patches.py [-h] [-o OLD_LOGO] patches_dir new_logo

positional arguments:
patches_dir The directory where the generated patches will be
dumped
new_logo The new logo image

optional arguments:
-h, --help show this help message and exit
-o OLD_LOGO, --old_logo OLD_LOGO
The original logo image
 

Attachments

  • F44C1AC8-3310-4EA5-BFFB-1F682120F3B8.png
    F44C1AC8-3310-4EA5-BFFB-1F682120F3B8.png
    21.9 KB · Views: 205
Last edited by binkinator,

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
5,958
Trophies
3
Age
46
Location
At my chair.
XP
17,274
Country
Colombia
For the Firmware 15 the script needs to be updated, it's easy:

the section:

Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
}


add "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192, at end so now is:


Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
    "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192,
}

and tadaaa now the script can generate IPS files for Firmware 15 too.
 

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,148
Country
United States
For the Firmware 15 the script needs to be updated, it's easy:

the section:

Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
}


add "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192, at end so now is:


Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
    "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192,
}

and tadaaa now the script can generate IPS files for Firmware 15 too.

You really got deep into those patch numbers man. Impressive.
 

krasjoel

New Member
Newbie
Joined
Oct 13, 2022
Messages
1
Trophies
0
Age
33
XP
138
Country
Italy
For the Firmware 15 the script needs to be updated, it's easy:

the section:

Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
}


add "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192, at end so now is:


Python:
patch_info = {
    # AM patches
    "C79F22F18169FCD3B3698A881394F6240385CDB1": 1668164,
    "01890C643E9D6E17B2CDA77A9749ECB9A4F676D6": 1962240,
    "C088ADC91417EBAE6ADBDF3E47946858CAFE1A82": 1962240,
    "3EC573CB22744A993DFE281701E9CBFE66C03ABD": 1716480,

    # Vi patches
    "7B4123290DE2A6F52DE4AB72BEA1A83D11214C71": 1831168,
    "723DF02F6955D903DF7134105A16D48F06012DB1": 1835264,
    "967F4C3DFC7B165E4F7981373EC1798ACA234A45": 1573120,
    "98446A07BC664573F1578F3745C928D05AB73349": 1589504,
    "0767302E1881700608344A3859BC57013150A375": 1593600,
    "7C5894688EDA24907BC9CE7013630F365B366E4A": 1593600,
    "7421EC6021AC73DD60A635BC2B3AD6FCAE2A6481": 1536256,
    "96529C3226BEE906EE651754C33FE3E24ECAE832": 1544448,
    "D689E9FAE7CAA4EC30B0CD9B419779F73ED3F88B": 1655040,
    "65A23B52FCF971400CAA4198656D73867D7F1F1D": 1655040,
    "B295D3A8F8ACF88CB0C5CE7C0488CC5511B9C389": 1696000,
    "82EE58BEAB54C1A9D4B3D9ED414E84E31502FAC6": 1708288,
    "AFEAACF3E88AB539574689D1458060657E81E088": 1716480,
    "7E9BB552AAEFF82363D1E8C97B5C6B95E3989E1A": 1704192,
}

and tadaaa now the script can generate IPS files for Firmware 15 too.
really amazing! but how do you update to always have the new script?
 

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
5,958
Trophies
3
Age
46
Location
At my chair.
XP
17,274
Country
Colombia
really amazing! but how do you update to always have the new script?

It's easy but no so simple :D

The boot logo patches alter the binary information on the file what shows the image at HOS start.

So when following the guide https://gbatemp.net/threads/origina...ware-switch-logo-patcher.613041/#post-9840002 we discover what the file responsible for show that picture it's the title 010000000000002D, so using Hactool you can list all the NCA files what made a firmware and find the one what have the title 010000000000002D on it.

Then also using hactool you can extract the files on the NCA archive and inflate them. Hactool provide the SHA1 of the program file (MAIN) what is executed, that is the first number on the array of values on the script, and needed as the name of the patch file.

Then when you open the inflated file you can search for the original picture on it and the offset where the picture is stored is the second value of the array.

The script uses both values to create a patch file in order to change the file of the title ID 010000000000002D starting on the offset .

The patch file can be created on two ways:
  • A file containing all the values of the new image you want, the biggest file possible.
  • A file containing only the values what are different between the original logo and the new image you want, a smaller file, but you need the original logo what is copyrighted asset of big N so you need to provide yours and can not be legally downloaded.
So you can wait for the creator of the script publish the new version, come here and find if someone give the new values or use the instructions above to find it yourself.
Post automatically merged:

You really got deep into those patch numbers man. Impressive.
Yesterday I feel like "the most great hacker of all the time" :rofl2: after I found a set of OLD bootlogo patches on my archives but I haven't the original picture, and put my shelf (I am not furniture) self on the quest of convert that patches on the original picture in order to generate patches for the new firmwares.

Using your instructions on how to get the original bootlogo, used a "main" executable of one of the firmwares for what I have a ips file, then using IPS Lunar apply the IPS patch to original main file and then using the process to extract bootlogo extracted the resultant image on the patched main file and voilà the image shows on gimp. Thank you very much :grog:
 
Last edited by impeeza,
  • Love
Reactions: binkinator

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,148
Country
United States
  • Love
Reactions: impeeza

Pauljr456

Member
Newcomer
Joined
Nov 14, 2020
Messages
23
Trophies
0
Age
29
XP
230
Country
United States

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,148
Country
United States
Do you know how to fix boot sound when it cuts out
I've had this issue before. It's manifested in a couple of ways:

1) other sys-modules (try removing all sys-mods and then adding them back one at a time until the issue appears again.)
2) corrupted boot sound (I know it sounds weird but it happened one time...try rewriting the boot sound to your card)
3) long boot sounds (try shortening the time by speeding it up slightly...it will still sound the same to a human)
4) slow sdcard. I had a card slow down over time and copying the exact files over to a new card provided a HUGE improvement.
 

Pauljr456

Member
Newcomer
Joined
Nov 14, 2020
Messages
23
Trophies
0
Age
29
XP
230
Country
United States
I've had this issue before. It's manifested in a couple of ways:

1) other sys-modules (try removing all sys-mods and then adding them back one at a time until the issue appears again.)
2) corrupted boot sound (I know it sounds weird but it happened one time...try rewriting the boot sound to your card)
3) long boot sounds (try shortening the time by speeding it up slightly...it will still sound the same to a human)
4) slow sdcard. I had a card slow down over time and copying the exact files over to a new card provided a HUGE improvement.
I have sped it up have a good sd card also I know My sound isn't corrupt how do I delete all sys modules and add them back?
 

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,148
Country
United States
I have sped it up have a good sd card also I know My sound isn't corrupt how do I delete all sys modules and add them back?

All sysmods are under /atmosphere/contents/
They will each have their own 16 digit number. BootsoundNX uses 00FF0000000002AA
To disable everything else but bootsoundNX, make a new directory called /atmosphere/contents.bk/ and move all the 16 digit directories there EXCEPT 00FF0000000002AA.
If it plays perfectly, move the numbered directories back to /atmosphere/contents one at a time until you hear the issue again. That will be the one that’s causing delays during playback.


e:
5) make sure you’re using this version off bootsoundNX:
https://github.com/KranKRival/BootSoundNX <—-NOT THIS ONE

https://github.com/TheModdersDen/BootSoundNX <—Use this one

(there is a fix for pauses in the sound)
 
Last edited by binkinator,

Pauljr456

Member
Newcomer
Joined
Nov 14, 2020
Messages
23
Trophies
0
Age
29
XP
230
Country
United States
All sysmods are under /atmosphere/contents/
They will each have their own 16 digit number. BootsoundNX uses 00FF0000000002AA
To disable everything else but bootsoundNX, make a new directory called /atmosphere/contents.bk/ and move all the 16 digit directories there EXCEPT 00FF0000000002AA.
If it plays perfectly, move the numbered directories back to /atmosphere/contents one at a time until you hear the issue again. That will be the one that’s causing delays during playback.


e:
5) make sure you’re using this version off bootsoundNX:
https://github.com/KranKRival/BootSoundNX
(there is a fix for pauses in the sound)
So use the old one not the new one?
 
  • Like
Reactions: impeeza

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,148
Country
United States
I tried everything I cannot figure out why it has a pause in the bootsound I have checked all my sysmodules

add another bootsound and repoint to the new one and see if it still does it.

It could be the SDCard. do you have another one handy we could test with?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Sorry for accidentally bending over