Homebrew 3DS convert CIA v1.2

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
updated v2.2 :
Adding playing in keyslots forgotten memory :)
Displays the name of the game in the dump 3ds insert menu
Improving dump menu
And adding other features dump

Edit: sorry if english is not good
 

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
MAJ:
Fixed a bug when converting to 3ds cia and other improvements

1471726907-dump.png
1471726886-progression.png
 
  • Like
Reactions: GilgameshArcher

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
Hello
update
Fixed a minor bug on caratères names too long games

ps:
know that this homebrew
I did it for my kids
and at the end I ended up shared
 
P

PaiiNSteven

Guest
Hello
update
Fixed a minor bug on caratères names too long games

ps:
know that this homebrew
I did it for my kids
and at the end I ended up shared
Glad you did; I'm using it. Makes dumping cart easier than uncart!
 

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
Last Updated :
correction of any bugs :
length of the names of the games, this file numbers ( Menu bug)
a copy of the 3DS cartridge the game name will be put in place of ( ctr -p - . **** cia ) or ( ctr -p - . **** 3ds )
Adding the function ( InputWait ) of Godmode9 code because more fluid ( thank you @ d0k3 )
and other improvements
 
  • Like
Reactions: leorod199

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
display the icon of the file cia
not the time to post the github :)

A9LH
Code:
u32 iconesmdh(u32 index)
{
    u8 tab2[6912];
    u8 tab3[6912];
    u8 icone[4608];
    u16 Pixel565[2];
    u32 IconePixel;
    u8 header[0x20];
    u8 smdh[0x36C0];
    char path[60];
    snprintf(path, 60, "Game3ds/cia/%s.cia",c[index]);
    FileGetData(path, header, 0x20, 0x0);
  
    header[25] = (header[25] + 0x3D);
   
    //I think that the offsets are calculated icons from here
    if(header[16] == 0x64)
    {header[24] = (header[24] + 0x40);}
    if(header[16] == 0x94)
    {header[24] = (header[24] + 0x80);}
  
    u32 offset = (header[27]<<24)|(header[26]<<16)|(header[25]<<8)|header[24];
  
    FileGetData(path, smdh, 0x36C0, offset);
    int count = 0x24C0;
  
    u8 OrdrePixel[64] = {
    0,  1,  8,  9,  2,  3,  10, 11, 16, 17, 24, 25, 18, 19, 26, 27,
    4,  5,  12, 13, 6,  7,  14, 15, 20, 21, 28, 29, 22, 23, 30, 31,
    32, 33, 40, 41, 34, 35, 42, 43, 48, 49, 56, 57, 50, 51, 58, 59,
    36, 37, 44, 45, 38, 39, 46, 47, 52, 53, 60, 61, 54, 55, 62, 63 };
    for( int y = 0; y < 48; y += 8)
    {
        for(int x = 0; x < 48; x += 8)
        {
            for(int k = 0; k < 64; k++)
            {
                u8 xx =  (OrdrePixel[k] & 0x7);
                u8 yy =  (OrdrePixel[k] >> 3);

                Pixel565[1] = smdh[count++];
                Pixel565[0] = smdh[count++];
              
                IconePixel = (Pixel565[0] << 8 )|Pixel565[1];
              
                u8 red = ((IconePixel & 0xF800) >> 11);  // 5
                u8 green = ((IconePixel & 0x07E0) >> 5); // 6
                u8 blue = (IconePixel & 0x001F);         // 5

                red = red << 3;
                green = green << 2;
                blue = blue << 3;
              
                tab2[(((x + xx) * 48 + (y + yy)) * 3)+0] = blue;
                tab2[(((x + xx) * 48 + (y + yy)) * 3)+1] = green;
                tab2[(((x + xx) * 48 + (y + yy)) * 3)+2] = red;
            }
        }
    }
  
    int n = 0;
    int i = 0;
    int o = 47;
    int j = 48;
    for(int t = 0; t < 48*48; t++)
    {
        tab3[n++] = tab2[(((j*i)+o)*3)+0];
        tab3[n++] = tab2[(((j*i)+o)*3)+1];
        tab3[n++] = tab2[(((j*i)+o)*3)+2];
        i++;
        if(i == 48)
        {
         o--;
         i = 0;
        }
    }
  
  
        u8 posY = 50;
        u8 posX = 250;
        u8 r,g,b,a;
        int dir = 0;
        for(int i = 48; 0 < i; i--)
        {   
          
            for(int j = 0; j < 48; j++)  
            {
                b = (tab3[dir++]);
                g = (tab3[dir++]);
                r = (tab3[dir++]);
                SET_PIXEL(BOT_SCREEN0, (posX+j), (posY+i), RGBCOLOR(r,g,b));
              
            }          
        }
  
}

1472846635-snap003.png
 
  • Like
Reactions: GilgameshArcher

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,094
Trophies
1
Age
23
Location
New York
XP
2,761
Country
United States
i've been on the cartridge data size: cartridge used size: screen for about an hour. Is it working when it's on this screen or is something not right?
 

kasai07

Well-Known Member
OP
Newcomer
Joined
Jan 17, 2016
Messages
79
Trophies
0
Age
43
XP
229
Country
France
I have a game that you and I have no concern for the dump

slot0x25KeyX.bin must be present on the sd
 

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,094
Trophies
1
Age
23
Location
New York
XP
2,761
Country
United States
I have a game that you and I have no concern for the dump

slot0x25KeyX.bin must be present on the sd
thanks, ima try now

--------------------- MERGED ---------------------------

I have a game that you and I have no concern for the dump

slot0x25KeyX.bin must be present on the sd
still stuck at cartridge data size. For the record i hit dump cart to cia
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Damn that's cheap.
  • K3Nv2 @ K3Nv2:
    Slower speeds for gen4
  • K3Nv2 @ K3Nv2:
    I'll reformat and have a 3tb raid0 m. 2 at least
    +1
  • K3Nv2 @ K3Nv2:
    Lmao that sold out fast
    +1
  • Veho @ Veho:
    Yeet the cat.
    +1
  • K3Nv2 @ K3Nv2:
    Good idea
    +1
  • The Real Jdbye @ The Real Jdbye:
    i thought everybody knew cocktails are like 75% ice
  • Veho @ Veho:
    Yeah but not like this.
  • Veho @ Veho:
    It's not like they're complaining that their Slurpee is 99% ice or something, but if the cocktail calls for "shot of vodka, shot of vermouth, shot of gin, shot of Campari, three shots of juice, squirt of lemon" and ends up being a thimbleful of booze, that's a problem.
  • The Real Jdbye @ The Real Jdbye:
    the funny thing is cocktails in norway are only allowed to have 1 20ml shot of booze
  • The Real Jdbye @ The Real Jdbye:
    so..... yeah
  • The Real Jdbye @ The Real Jdbye:
    we're used to only having a thimbleful of booze
  • Veho @ Veho:
    Booo.
  • The Real Jdbye @ The Real Jdbye:
    same thing if you want whisky on the rocks or something, you can't get a double
  • The Real Jdbye @ The Real Jdbye:
    but you could buy as many shots of whisky (or anything else) as you want and ask for a glass of ice and pour them in
  • The Real Jdbye @ The Real Jdbye:
    it's dumb
  • Veho @ Veho:
    Maybe.
  • Veho @ Veho:
    There was a comparison of the number of Ibuprofen poisonings before and after they limited the maximum dosage per box or per pill (i'll look that up). No limit on the number of boxes you can still buy as many as you want, so people argued it was pointless.
  • Veho @ Veho:
    But the number of (accidental) poisonings dropped because drinking an entire package of ibuprofen pills went from "I need a new liver" to "I need a new box of Ibuprofen".
  • Veho @ Veho:
    Here we have ketoprofen that used to be prescription-only because of the risk of toxic dosages, but then they halved the dose per pill and sell them in bottles of six pills apiece instead of twenty and it doesn't need a prescription any more. Yes you can buy more than one bottle but people simply don't.
  • Psionic Roshambo @ Psionic Roshambo:
    Usually accidentally overdose of ibuprofen here is from people taking like cold medicine then ibuprofen for a headache and the combination is over what they need
    Psionic Roshambo @ Psionic Roshambo: Usually accidentally overdose of ibuprofen here is from people taking like cold medicine then...