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
    K3Nv2 @ K3Nv2: The candy man can