Tutorial  Updated

How to change your R4's icon and label

!!!!!ONLY WORKS WITH DS/DSLITE AND MODDED DSI/3DS!!!!!
!!!!!WILL CRASH ON UNMODDED 3DS/DSI!!!!!

I never liked the fact that my R4 has some random game’s icon. I’ve been searching for a way to change it, but all I could find was posts from the past 15 years asking the same thing, only to be told it’s impossible.

I’m here to change that.

You need:
-an R4 card (obviously)
-a homebrewed 3DS (or 2DS, 3DS XL, New 3DS, New 3DS XL, New 2DS XL, Newer 4DS XXL, etc)
-NTRboot Flasher
-a PC/Laptop (All the programs here are on Windows, some also have a Mac or Linux version, but I don’t guarantee that those that don’t will work with Wine.)
-a DS or DS Lite (if you use an R4 with a DSi or a 3DS, what’s wrong with you? Just use TWLmenu like a normal person.)
-a Hex editor (I use HxD)
-NSMBEditor (from New Super Mario Bros. Hacking Domain)
-Aseprite
-A way to transfer data between your PC and 2/3DS (SD card adapter or FTPD)
-GameHeader (from Romhacking dot net)
-A ROM of the game from your R4’s icon (mine is the Korean version of Bomberman Land Touch!) (I’m not telling you where to get it. I mean, I wish I could, but the rules don’t allow me to.)
-DeSmuME
-A dump of the DS BIOS

First things first, BACK UP YOUR CARD.

Open NTRboot Flasher (Shut down your 3DS, hold Start while turning it back on, select NTRboot Flasher then press A to continue).
R7xen9DZWVWWqPl9Wm4AtUtJYlGygNJQ0VgrJkbWaQ9w031RH9Lo1yZM_FaW-DO1OR4_PUTGw7v5qfqYLn7KHmUCJmLktfGmXyjqYlmBx-mnKt-6O9mojEk_gxNoAejhLOH2WNtN9hE1LcNHNf0_yw

Write down (or just remember) the site written on your card’s sticker.
Insert the card into the console.
(WATCH OUT) Select your card from the list (Don’t look at the name on the list. Look at the site on the bottom screen. Mine is an R4 SDHC Dual-Core but I have to select “R4iSDHC Family” because it has “r4isdhc.com” written on it)
xIxY_xiMrYvyqT624j9pK-djvecBI3O8M1Od1U1pnadrdiatGd0Rv6XZcMdgrWVha83vowbImTh_bcSo6mz_GIpZLme4--bPbwR2pk75yRQzqxwbTlf4EKTNE__72zxsj-hFzm-3OjNWhxFoceL0Xw

Select “Dump Flash” (This will make a backup of it)
The file’s kernel will be exported to ntrboot/*whatever*-backup.bin on the root of your 3DS’ SD card. (*whatever* will be your card’s name)
Wait ‘till it’s done and you’ll see “Dump Complete!” in green text. Press B to return to the main menu, then “Poweroff”.
Now, you can either take the SD card out of your 3DS and put it into your computer, or turn on your console, open FTPD and transfer the file there.
TQ_JYRftw6evw8Az9KKAcRFN3wylAYXtwVKA6hyvWZjpphx-w4GY-opbEMQNA8peZzx5Wi-MM0CjZTOR5IoTJIrKJuZIiY0u73e5TQBX5BoZutBqp_Zv8P2hpDzlS4teVIhbbgBm9RUn80bfvlDxcw

That’s the file you need.
STORE IT SAFELY ‘CAUSE YOU’RE FUCKED IF ANYTHING GOES WRONG!
Next, find the ROM of the game the icon is from. (IT HAS TO BE THE EXACT REGION AND VERSION AS THE LOGO)

vefNZEjWgWdvbU7DJSSW-v_D8vW6S85hJs66C8-z3lhCxBwIGYkv0x7eUtU53_LEyFVr2FtY_mNGK6zP0V6vKoLUSnRNzedhAaEWa46A6ilaS2iRZPBKm03uyXFDfheAzsAcCwL2yflTndv4SazegCk


Qleyrtzoj56EDsPoiLz-6ehKvoNoDQBPFNysbZVa1fFe3XfS7RnuA4TsmswkThCQgkfhAtSQMvlcvWNOkjS7xFlbE9OYDO4oDJ9KvknNRK7eFqvoIyjr5Cs-d7FIKkJ7KQmLk2ErW6-EYAGMnzJV42Y

Back this up as well.
Now, make a copy of both the rom and the NTRboot backup.
JEMXTK8kBHq-de22v5gfabfPRcoD7jTE5L54g__xlHBgFNVZqPJugFkILeL8ZTPdpEL6A_qK8ss_MvM1PyW06R15nvQpSt2Gqz1LQa5J4b6LNbArSlBD9FxBM4_T5zPR0hWzM62e7heaF5kNUooDtgs

Now, the fun part begins.

Get whatever image you want to make your icon.
Because I’m the least serious person on the planet, I decided to use this picture for the tutorial:

A2RYgpybxCGTBr65XjwOTrUSOW61TPqY_blCfh2XWcatoNTWTHOLRYYOI8Br6bRmXjkn6btKT6Gnp_HZMOk4aRPdHMmLk9qyRIYWne5pHKVZaoDANwUMlu8uLDXPVpzbe0BhcsHrbXTXdADyi6yrBH0


Next, open Aseprite. Your picture should be in your clipboard.
Click “New File”, then click OK. An empty page should open with the resolution of your image. All you need to do now is press CTRL+V to paste it, then click outside the image to paste it.
Next, press C and make the image square. In my case, the width is 600 and height is 611
so I set both to 600.
Next, if you want, press C again and set it to something like 480x480 to zoom in because the finished image will be very low res and you have basically no space to waste.
LYjZpFtdZzIJo-7osmcCV6dlvm70Hj4qlBzchDZavo1zuNZIU8ms5d3Gd6ALlwxLYu-X5Q33LqnhZ4Vp-CyfXdEhaj_WiW8Yr9h8Ld2VUUUsDStKfe2SMZlUW0DjL-XK5M5bxKBlHZMFl35cdV7oPjY

Next, go to Sprite > Sprite Size, and the resizing window will appear.
Set the percentage to 50% in both cases, and the interpolation method to Nearest Neighbor, then press OK.
Repeat a few times until the image is at around 60x60.
Now set the Interpolation to Bilinear and the Width and Height to 32 pixels, press OK.
If the image looks messy, then press CTRL+Z to undo the action and go back to the point where it was at 120x120. Now set the width and height to 32x32 again, and press OK.
Now you have a Minecraft painti- uhh i mean icon.
Go to File > Export and press the (...) next to Output File. There you can set a filename and location. Set “Resize” to 100% then press Export.
You can close Aseprite now.
Open NSMBEditor and select the copy rom.
Double-click “banner.bin”. A sprite editor will open but you will notice all there is there is a pink square.

ZVIWwTyyf6eQfmggVnI_d9cjQqMhLzxyWyzJF19p8Fz13fT44yUy0x-6_TzPDilosNLjAp5EuR-BUFQkFfMJa0gnjjXtrc4kIdVTCzDbFz_Ebo8wJnS8KveDi781xqYkFTlRvRUxXgoph4j-aD0actU

Tick the “View in 4pbb format” checkbox and the ROM’s icon should appear.
Now, select “import this bitmap and recreate palette”, then select your image.
ozF3gJ8CE68Yk4VNP3Zay1hKh7rd1mU0Lbq-Ik0Y_z8h1pO7EYRJ-C3W81na45c8MBYOKf2lVY8960NwHXr_gZKv4dAhSuexOkheNiLQdhPnkhoO_EA7B-k3sshLZO0i7eI-oIWR0zE21x_EXIbclqpwhv58iSYSLk19Mwa6O7Y-WiVqhuNPRPIQTA

Save the file then close NSMBedit.
So far, you changed the icon in a rom.
Open DeSmuME and go to Config > Emulation Settings. Enable “Use external BIOS images”, “Use external firmware image” and “Boot from firmware (like the NDS)”. Configure the BIOS’ and firmware’s location (bios9, bios7, firmware).bin
Now, open the ROM. The Nintendo DS main menu will open, showing your icon.
8W0X9xyAuhAFs3cx9uiMps5I-eUHmT4xajTMkmZvQOfAcvHfVyBbYXoMvMXPBVEehm2HDu7bmq1mzKpTpPwALllC6xRiUikRcDM4kM6j1k7geWiLpvKqS8lzt4tngPjt61eMf1M3s-zKCkBvhLuLYOI

This is great, but the title is the same.
This is where the Hex editor comes into play.
Open the ROM in a hex converter, then open a text to hex converter.
The title is stored as normal letters, but they’re separated with a 00.
So, I’m looking for B o m b e r m a n.
“Bomberman” is 42 6F 6D 62 65 72 6D 61 6E, so I’m looking for 42 00 6F 00 6D 00 62 00 65 00 72 00 6D 00 61 00 6E.
Here we have it.
uFPBbSACj6wm3d04gcniTfzDLYsboEa6mN6xoJ6EtAA1QTEy8b9FaJdEQbXShPAKvzWnsqBl9n7RD6HqmjLYQZLlG9Mc_5ikw3jFKq25rtKYiN1YvVMD55hRNYkQ9ZIAoks42i1qMnFFafCA1XX_aXw

Now, a bit of bit info.
2iNND5B67-ZKaHzkU7LBzmLP7jBz64jZ3vYRIlPZ3A1IYN6cp_U6DPI1CmgJ1dLu5nKcK3cA8MK1B2LaV8MP6tKpYEBe2n1sANd0tbCq21h4PHz0Ylrw26qbQFpk0TDHaSL42XfQcY5s3qZdeL8hZPA

The icon header (?) starts after those Y’s. The first two rows are important, remember them. The third and fourth characters are important (the ones highlighted in the image). They are the expected CRC16 test value that the DS expects from the icon and name. Basically, the DS runs an algorithm to see if anyone’s tampered with the ROM. (which is exactly what we’re doing, so we need to bypass that).
Let’s go back to the l a b e l. You can do whatever you want with it (you have so much space that if you fill it it’ll go off screen. I mean, you’re not gonna write the Bee Movie script aren’t you?) as long as every character is separated by a 00 and the top and bottom lines are separated by a 0A.
You need to write the title like this:
ccDi4VDEl7cErl08eAuTgNPWyq8laxIxCK8w08IZCpakZjaExe3LNfojclSk7k69ZkP2bPumZSdP4buMD2AbDvTZcsFuMOX_n45wiA074CVYW8V4lkadLZO3vbG4RDtaTHLPwBIEUHRaxdgkngliiOI

You need to replace it 6 times: for Japanese, English, French, Italian, German, Spanish.
If you don’t care about leaving the other languages like before, then just change the second entry.
Save the file, and let’s see in DeSmuME.
tP7PJ4TuLXYGrwAycbEoQQsFnYJQNdz6iBdOFMtznlNVxVtyUST-c4EkNLVJnppPtcJGa8i1P-nXnlQ5BQCpK2vD2Cx5j9g5dn4Ul6bl6ryxtsoUhzEzLzpMqY3-lpim389-0kZVBq20Z1OVA1q_J6M

What’s this? They’re gone?
Yeah. The checksum I mentioned earlier failed.
Don’t worry though, as you can see the (virtual) console detects the game, but can’t verify the title.
This is where YET ANOTHER PROGRAM comes into play.
GameHeader.

zjdEpRQENFwfhFBruoRS8vudGty6Vjzj7ZVR3kEknH55SJsOymBYBimTiXWsAU_5H0BKcxeb96H7cbBR5PAu2CLES_Kqf1e615ppq4Egf8o6zk3qQVxNQf99vjTuvky1-9aVOYqPwaghseWn_WJnlBo

As I said, the CRC16 failed. The expected response is stored semi-backwards, so where the Program says 0x7EDE it’s stored as DE7E. The output is 0xC4F4 so we need to replace DE7E with F4C4.
Save and…
ceelp6eSx5hB4rDQoXVQL1th2j1dj4qLPpsp7Lc7mb0fmYTeLv9Mjl7I3OZ2wBQ290ANzMmkw-ma7XZw9jjSkuMOKXfetoV1dg7a7FfdqJQXjM1nq_wYvel2J8jwBj3R5cT_akUSBbzfQbAw8chsCYk

We’re done! We made a header!
But we’re not actually done.
We need to add this to the flashcart.
Look for the icon header thingy in the NTRboot file like we did for the rom.
Now replace the icon. (copy-paste)
Replace the title as well, and you’re basically done!
It should look identical to the ROM.
Copy the file to the NTRboot/ folder on your 3DS’ SD card, replace the original backup with it, then open NTRboot Flasher. Select your card. Select “Restore” and wait until it’s finished.
If you did this correctly, then the “Writing sectors” part should be done almost instantly. Now pop the R4 card in your DS and you can see it’s done.
-MJ6xK4b4cmACnlkmNK1W5oLfCip3K0qBf8hBhbpT0CS6AIvHPK_70ZT53mSLg_UcsguTxtAuNl8jm3l9xCQDol-OCeFMuD6PPY9Wb7IEr3BqmxASd3kVngbj0t5PC5sBN9LJn7Fn1LUfsHpW4MvbHQ

If you put it in your 3DS, you’ll notice it didn’t work and it’s the same as before. Well, not really. If you open the “Titles” section in FBI it’ll have the correct name and icon.
62vMF3ugmnKF1yzowqgAvo_6jdEoVUb3-YNKfIYnIiWDCfjMV0fhDKj6DRT7E-bnzWZanBntyqswv-JGG2BHmZVEtVfMf1R6jkb5rkCsl88AgbzQV8dqdFFR2GwVOj2zsPMRVxnTZhQrjPeh-0OF71M

The home menu remembers the icon, so it doesn’t read it again, so it has no idea we changed it. But the cart is changed. So the cart’s icon change only affects the DS and the DS Lite. (I don’t have a DSi, can anyone with one try this and check if it works there?)
So yeah, that’s the tutorial, and now you can ignore all the posts from the past 15 years saying that it’s impossible. Because it’s not. I have no idea what I’m doing and I have zero experience doing this kinda stuff, and I somehow did "the impossible". The only reason it was impossible is because nobody tried it.
P.S. i just realized that’s a fish not a frog


UPDATE: HOW TO FIX THE ICON AND TITLE FOR THE DSI AND 3DS

The title is stored 8 times after the icon. Highlight starting from the icon, ending on the last row before the 7th title.
View attachment 323771
View attachment 323773Be sure to select from the left side.
Copy all that.
Then go to https://crccalc.com and paste it there,
Set Input and Output to HEX and select CRC-16.
View attachment 323774

Find the one in the MODBUS row.
View attachment 323775
It's 8A5B so I have to type it semi-backwards (5B8A).
1661197888638.png

Now select from before the 8th entry, paste and then enter in the NEXT TWO slots.
1661197872326.png

And now from after the 8th entry, before the 10 billion FF FF FF FF FF FF (YY YY YY YY) rows.
1661197824706.png

And then paste it again, in the NEXT TWO.
1661197929816.png

Now flash the NTRboot backup.
And yes, I changed my icon before I edited the guide to add the last part.
1661199629242.png
 
Last edited by Hoap,

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,275
Trophies
1
Age
22
Location
米国
Website
pk11.us
XP
3,758
Country
United States
I really appreciate the help. But you're really going to have to hold my hand, lol. I'm getting "SyntaxError: invalid syntax". As stated, I have no idea what I'm doing.
Don't press enter after typing python3 , you've entered Python interactive mode by doing that.

You should just run:
Bash:
python3 /Users/Gaydo/Desktop/script/ntrbootbanner.py /Users/Gaydo/Desktop/script/R4iGold3DS-backup.bin -i /Users/Gaydo/Desktop/script/banner.nds

Though it looks like you're trying to give it a DS ROM, not a raw banner bin, so it'll probably error. It needs to be given the banner bin that you get from NDS Banner Editor or such.
 

GammaPhonic

Active Member
Newcomer
Joined
May 13, 2021
Messages
32
Trophies
0
XP
668
Country
United Kingdom
Don't press enter after typing python3 , you've entered Python interactive mode by doing that.

You should just run:
Bash:
python3 /Users/Gaydo/Desktop/script/ntrbootbanner.py /Users/Gaydo/Desktop/script/R4iGold3DS-backup.bin -i /Users/Gaydo/Desktop/script/banner.nds

Though it looks like you're trying to give it a DS ROM, not a raw banner bin, so it'll probably error. It needs to be given the banner bin that you get from NDS Banner Editor or such.

Sorry to keep pestering you with this, I'm making progress. I'm now getting "struct.error: unpack requires a buffer of 2 bytes".
 

Attachments

  • Screenshot 2022-08-30 at 10.05.22.png
    Screenshot 2022-08-30 at 10.05.22.png
    1.2 MB · Views: 61

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,275
Trophies
1
Age
22
Location
米国
Website
pk11.us
XP
3,758
Country
United States
Sorry to keep pestering you with this, I'm making progress. I'm now getting "struct.error: unpack requires a buffer of 2 bytes".
Huh... It seems it was trying to read the banner from the end of the ROM somehow, try redownloading ntrbootbanner.py, I've updated it to handle that error properly

though not sure if that'll actually fix it... That's weird that it's not finding the banner in the backup...
 
Last edited by Pk11,

GammaPhonic

Active Member
Newcomer
Joined
May 13, 2021
Messages
32
Trophies
0
XP
668
Country
United Kingdom
Huh... It seems it was trying to read the banner from the end of the ROM somehow, try redownloading ntrbootbanner.py, I've updated it to handle that error properly

though not sure if that'll actually fix it... That's weird that it's not finding the banner in the backup...
Haha, I really do appreciate your help. I think this has made it worse. It's spamming me with "failed to read banner" now. Perhaps I'm just not meant to have a nice custom icon and name for my R4 card, lol.
 

Attachments

  • Screenshot 2022-08-30 at 21.16.24.png
    Screenshot 2022-08-30 at 21.16.24.png
    1 MB · Views: 62

GammaPhonic

Active Member
Newcomer
Joined
May 13, 2021
Messages
32
Trophies
0
XP
668
Country
United Kingdom
Come to think of it, I can't find anything resembling the header or titles or anything like that in the ntr backup. I can find them just fine in the ROM of the game the icon is from. Maybe my backup is goosed? Or my R4 is just incompatible with this? I dunno.
 

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,275
Trophies
1
Age
22
Location
米国
Website
pk11.us
XP
3,758
Country
United States
Come to think of it, I can't find anything resembling the header or titles or anything like that in the ntr backup. I can find them just fine in the ROM of the game the icon is from. Maybe my backup is goosed? Or my R4 is just incompatible with this? I dunno.
Oh I see why it got stuck in an infinite loop, I forgot to stop if it reached the end of the file... Fixed that so it'll error properly now, but that won't help it find the banner in your backup...

Not sure what's up with that... I wonder if your card's backup is encrypted or something, unfortunately it doesn't seem like it'll be easy to change the banner on it... I downloaded the backup that I think is the same from 3ds.hacks.guide and I don't see any banner in it either...
 

zychion

Active Member
Newcomer
Joined
Apr 20, 2010
Messages
30
Trophies
1
XP
354
Country
Hey guys, Just wanted to post that I also have the R4iGold3DS and the python script is also not working on my backup. I imagine that means that Pk11's idea that our cards are a bit different is probably true.
 

Robles95

New Member
Newbie
Joined
Mar 27, 2023
Messages
2
Trophies
0
Age
28
XP
28
Country
Guatemala
Hey, sorry to bump this old thread! Managed to change icon on my flashcart, however, as you said, it only changes on other NDS/2DS, main 3DS will still have old Bomberman icon... Tried checking your fix but the images don't work anymore, can anyone help me out?
 

aerglass

Well-Known Member
Member
Joined
Apr 10, 2022
Messages
202
Trophies
0
Location
hell
XP
780
Country
Venezuela
i will buy a ton of r4 cards, modify them so that they do not show the sd card, do this then sell a game for the ds.

edit: this post was a joke
 
Last edited by aerglass,
  • Angry
Reactions: emmanu888

Hoap

Active Member
OP
Newcomer
Joined
Aug 21, 2022
Messages
42
Trophies
0
Age
17
Location
Romania
XP
187
Country
United Kingdom
Is there any way I could do this on an ace3dsplus? I can remove the rom with gm9, but NTRflasher doesn't support my card
don't use godmode9 as it only exports a partial backup. use the NTRBoot Flasher to make the backup. Try all the options, one might work. (also it doesn't look like an ace3ds)
 

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,275
Trophies
1
Age
22
Location
米国
Website
pk11.us
XP
3,758
Country
United States
don't use godmode9 as it only exports a partial backup. use the NTRBoot Flasher to make the backup. Try all the options, one might work. (also it doesn't look like an ace3ds)
It is an Ace3DS+ clone, but those clones aren't compatible with ntrboot flasher. Only the clones of the Gateway Blue which you sometimes get with unlabelled cards, but there's no guarantee.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: no, you should program using punch cards, that's how real men code their stuff +1