Homebrew [Tutorial] How to make a custom badge

  • Thread starter Thread starter Mega-Mew
  • Start date Start date
  • Views Views 34,005
  • Replies Replies 140
  • Likes Likes 28
So people on 9.3-10.1 are going to have to wait for some way to generate a BadgeData.dat since we can't even download the badge center. Which is unfortunate. :sad:

As far as i understand, you need Badge Arcade to place badges on the homescreen.
So no Badge Arcade is no way you can place badges, even if you import badgedata..dat or generate it somehow.
 
Last edited by DjoeN,
IVDtDWREyao.jpg

Thank you for guide! Works perfectly!
P.S. Why Nintendo forgot about russian font? 0_o
 
Thank you, it's ok now for dumping!

But i've another error with extdata_dump for restoring :

scr_9_BOTTOM.png


Thanks for helping!
Not sure what the cause is... have you opened Badge Arcade before? Does restoring other things work? And what config.txt are you using?
 
Not sure what the cause is... have you opened Badge Arcade before? Does restoring other things work? And what config.txt are you using?

Hi! I've not played the game after BadgeData.dat dumping.

I did not try to restore another file, because I did not dump another file. Can you tell me what type of file with which I can test it?

In my config.txt, I wrote:

Code:
; dump BadgeData
DUMP "000014D1:/BadgeData.dat" "BadgeData.dat"

; restore BadgeData
RESTORE "BadgeData.dat" "000014D1:/BadgeData.dat"

I'm on O3DS 10.3.0-28E and use IronHax for *Hax 2.5.
 
I'm a lazy guy :P
So, I have created a little tool to shorten my work because looking for offsets and copy paste whole data plus adding stuff and removing after edit can be annoyinig over time. It should be work - well, for me it does. I tried with several badges and no error so far. Of course, there is no guarantee it will work for everyone, but feel free to try if you are lazy as I am ;)

vi-ug3fRA.png


Use is simple.
1. open BadgeData.dat
2. select a badge to dump
3. dump badge to bclim
-
4. open - export - edit - import (do your work in Ohana)
-
5. open your Ohana edited bclim
6. write bclim to badge

well, as you can see, it's simple but could save some time

Download
 
I'm a lazy guy :P
So, I have created a little tool to shorten my work because looking for offsets and copy paste whole data plus adding stuff and removing after edit can be annoyinig over time. It should be work - well, for me it does. I tried with several badges and no error so far. Of course, there is no guarantee it will work for everyone, but feel free to try if you are lazy as I am ;)

vi-ug3fRA.png


Use is simple.
1. open BadgeData.dat
2. select a badge to dump
3. dump badge to bclim
-
4. open - export - edit - import (do your work in Ohana)
-
5. open your Ohana edited bclim
6. write bclim to badge

well, as you can see, it's simple but could save some time

Download
NICE!

Would it be possible to generate the pixel/hole data needed too? And maybe even edit the name? Heck, we could go all out with noob friendly badge editing!
 
How exactly does the "badge shading" work?
Are the first 64 FFs for the top row of pixels? I set all of them to 00, then set the first 25 or so to FF. I got something that looks like this:
KMJ6TJL.png
Experimenting with various shapes of 00s and FFs; Will update if I discover anything. First test got me nowhere though, so I don't know if I'll figure out anything this time...

EDIT: Still haven't got it, but at least i figured out the whole thing is organized into a grid.
Imagine this: If the first 64 terms are 00, then the next 64 are FF, then the next 64 are 00, etc., we end up with the end result: a square, sliced vertically into 4 even rectangles, with the first and third rectangles missing.

00XX00XX
00XX00XX
00XX00XX
00XX00XX
(0=invisible, X=visible)
 
Last edited by Mattshark,
Are you sure this is correct?
The difference between where the second badge picture starts and where the first badge picture starts is 0x27F0.
The difference between where the third bade starts and where the second badge starts is 0x2810.


Do you know where the stuff for each badge is stored? Can you give me a mathematical formula for it? (Using hex numbers is fine.) I thought (0x318F80 + (0x27F0 * (BADGENUMBER-1))) was fine, but it was off when I tried the second badge.
I was referring to the first picture for the locations of each badge. (See the first part of this reply)
Every picture is 2000 lines long and every shade is 800 lines long.
 
  • Like
Reactions: Februarysn0w
Experimenting with various shapes of 00s and FFs; Will update if I discover anything. First test got me nowhere though, so I don't know if I'll figure out anything this time...
The shading data is in the usual 3DS tiled format (some information on that here: http://3dbrew.org/wiki/SMDH#Icon_graphics). Each half-byte (single F or 0) represents 1 pixel.

While I'm at it, I'd like to point out that the image data is NOT a BCLIM. It's just raw pixel data in the tiled format, which ends up working with a matching BCLIM header attached.
 
NICE!

Would it be possible to generate the pixel/hole data needed too? And maybe even edit the name? Heck, we could go all out with noob friendly badge editing!

shape data can now be dumped and written :)
vi-XMVqc.png

Download


Are you sure this is correct?
The difference between where the second badge picture starts and where the first badge picture starts is 0x27F0.
The difference between where the third bade starts and where the second badge starts is 0x2810.


Do you know where the stuff for each badge is stored? Can you give me a mathematical formula for it? (Using hex numbers is fine.) I thought (0x318F80 + (0x27F0 * (BADGENUMBER-1))) was fine, but it was off when I tried the second badge.
I was referring to the first picture for the locations of each badge. (See the first part of this reply)

formula for bclim and shape I used is: (0x318F80 + ((0x2800 * BADGENUMBER) - BADGENUMBER)) and ((0x31AF80 + (0x2800 * BADGENUMBER) - BADGENUMBER))
bclim 0x2000 bytes and shape 0x800 bytes for reading and writing

now, bed time ... it's 4:47am o.O
 
The shading data is in the usual 3DS tiled format (some information on that here: http://3dbrew.org/wiki/SMDH#Icon_graphics). Each half-byte (single F or 0) represents 1 pixel.

While I'm at it, I'd like to point out that the image data is NOT a BCLIM. It's just raw pixel data in the tiled format, which ends up working with a matching BCLIM header attached.
Gotcha, thanks for the Info! That saved me a night of experimenting...
Also, is there a program out there that could generate these icon shapes from an on-screen GUI or an imported image file (where white pixels are made to equal 0 and colored pixels are set to F)? I'm not a programmer yet, but I would make something like that if I could...
 
  • Like
Reactions: CeeDee

Site & Scene News

Popular threads in this forum