Homebrew [Release] Homebrew Launcher with grid layout

mashers

Stubborn ape
OP
Member
Joined
Jun 10, 2015
Messages
3,837
Trophies
0
Age
39
Location
Kongo Jungle
XP
4,954
Country
The code I'm using to scan for titles is exactly the same as the original HBL code. The only thing I have changed is the way they are displayed. So I don't think the problem is that they're being detected, I think it's that you can see them because they're on the grid. I've removed the original HBL code which lets you scroll through the list of titles in favour of my own code. I wonder whether that code has some logic in it to skip over duplicates or something. I can't figure it out right now. I'm just working on a way of ignoring the duplicates.
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
839
Country
The second AR title is actually a hidden title: http://www.3dbrew.org/wiki/System_Settings#System_Updater

They are probably titles without a SMDH file, that's why the previous one is used, if you are using the same buffer to read the data for each title without re-initializing it it would explain the problem. If that's the problem, re-init it and if no data is read skipt that title.

What I don't know is what does original hbl to skip that second AR title, gonna look at it now, but probably does what I told you, as if I recall correctly before extracting the smdh data it checks if the smdh was read.

EDIT:

Code:
    if(tb->selected)
    {
        if(!tb->selected->icon)loadTitleInfoIcon(tb->selected);
        if(tb->selected->icon)extractSmdhData(tb->selected->icon, tb->selectedEntry.name, tb->selectedEntry.description, tb->selectedEntry.author, tb->selectedEntry.iconData);
        else
        {
            tb->selected = NULL;
            if(!move)tb->selectedId++;
            else tb->selectedId += move;
        }
    }
That else statement is what skips the second AR title due to extractSmdhData failing (probably), after the function ends, it is called again and the title was advanced without user pressing keys.
EDIT2: I missread the source, what fails is "loadTitleInfoIcon()", keep in mind HBL code calls icon to the full smdh data, not just the image. Since the icon pointer points to nothing, the title is skipped because if there's no smdh data the title is meant to be launched from within another app.
 
Last edited by suloku,
  • Like
Reactions: Vague Rant

mashers

Stubborn ape
OP
Member
Joined
Jun 10, 2015
Messages
3,837
Trophies
0
Age
39
Location
Kongo Jungle
XP
4,954
Country
Ahhh I've just figured it out. The 'duplicates' were not duplicates at all :) They were titles with no valid icon, name or description. I had written a function which went through all of the titles, including these which should not have been visible, and added them to the menu. Because there was no icon or text for them, the previous one got repeated. This continued until a valid title was encountered and the icon, name and description from that started being drawn on the screen. I've added a check for each one to see if there is actually a valid icon (actually SMDH data) and if not, it's skipped.

Can you download beta 17 and see if it's fixed now? For me at least it's got rid of my duplicate AR Games!
 

BurningDesire

Well-Known Member
Member
Joined
Jan 27, 2015
Messages
5,000
Trophies
1
Location
Behind a screen reading news
XP
4,803
Country
United States
Ahhh I've just figured it out. The 'duplicates' were not duplicates at all :) They were titles with no valid icon, name or description. I had written a function which went through all of the titles, including these which should not have been visible, and added them to the menu. Because there was no icon or text for them, the previous one got repeated. This continued until a valid title was encountered and the icon, name and description from that started being drawn on the screen. I've added a check for each one to see if there is actually a valid icon (actually SMDH data) and if not, it's skipped.

Can you download beta 17 and see if it's fixed now? For me at least it's got rid of my duplicate AR Games!
Mashers it works! Genius man.
 

JJTapia19

I fight for my friends.
Member
Joined
May 31, 2015
Messages
2,171
Trophies
1
Age
31
XP
2,421
Country
Puerto Rico
Ahhh I've just figured it out. The 'duplicates' were not duplicates at all :) They were titles with no valid icon, name or description. I had written a function which went through all of the titles, including these which should not have been visible, and added them to the menu. Because there was no icon or text for them, the previous one got repeated. This continued until a valid title was encountered and the icon, name and description from that started being drawn on the screen. I've added a check for each one to see if there is actually a valid icon (actually SMDH data) and if not, it's skipped.

Can you download beta 17 and see if it's fixed now? For me at least it's got rid of my duplicate AR Games!
I'ts working great now! to see the unofficials cias I just need to enter the cfw first and then the Homebrew Launcher. No duplicates. This is the only missing detail I'm sure you'll fix in no time.

Think I found a bug in the title selector, you're able to select the blank spaces that don't have a title on them, this may confuse some people as the cursor completely disappears and the top screen shows no information

Thanks for your awesome work! :hrth:
 

Tjessx

Well-Known Member
Member
Joined
Dec 3, 2014
Messages
1,160
Trophies
0
Age
26
XP
941
Country
Belgium
to see the unofficials cias I just need to enter the cfw first and then the Homebrew Launcher. No duplicates. This is the only missing detail I'm sure you'll fix in no time.
It's not possible to see the "unofficial" CIA's of emunand from sysnand.
 

Tjessx

Well-Known Member
Member
Joined
Dec 3, 2014
Messages
1,160
Trophies
0
Age
26
XP
941
Country
Belgium
I never said Emunand. I tested on sysnand. I'm using Pasta CFW
In that case it might be done by changing the filters to recognize title ID's with a different type identifiers, but still doubt if it's possible.
this one possibly: 0x00040010
 
Last edited by Tjessx,

JJTapia19

I fight for my friends.
Member
Joined
May 31, 2015
Messages
2,171
Trophies
1
Age
31
XP
2,421
Country
Puerto Rico
In that case it might be done by changing the filters to recognize title ID's with a different type identifiers, but still doubt if it's possible.
I meant that I only see the unofficial cias installed on sysnand after runinng pasta cfw and then entering the hbl and running svdt. I rarely use emunand. If I go straight to the HBL without pasta I only see the legit cias. It's not a problem. That's how the other HBL work too. :)
 
Last edited by JJTapia19,

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
839
Country
I don't really think unnofficial CIAs can be read/launched without the CFW running, I pressume the title functions fail with those titles if the ticket is not valid.

BUT we can try launching them, my title launcher can be set to autoboot. Set it with cfw, then try without cfw. It'll probably hang though.

Ahhh I've just figured it out. The 'duplicates' were not duplicates at all :) They were titles with no valid icon, name or description. I had written a function which went through all of the titles, including these which should not have been visible, and added them to the menu. Because there was no icon or text for them, the previous one got repeated. This continued until a valid title was encountered and the icon, name and description from that started being drawn on the screen. I've added a check for each one to see if there is actually a valid icon (actually SMDH data) and if not, it's skipped.

Can you download beta 17 and see if it's fixed now? For me at least it's got rid of my duplicate AR Games!
I guess you missed my post :P

Well, Now you just have to put a title launcher button that shows all titles and launches them :D (bottom left corner seems perfect for that)
 

JJTapia19

I fight for my friends.
Member
Joined
May 31, 2015
Messages
2,171
Trophies
1
Age
31
XP
2,421
Country
Puerto Rico
Oh @mashers could I reccomend making the first slot of the Select title screen the retail cart if it's found? Right now it's the last one off the 8 pages of titles I have. It would be a nice little touch and it will speed up cart save editing. :lol:
 

mashers

Stubborn ape
OP
Member
Joined
Jun 10, 2015
Messages
3,837
Trophies
0
Age
39
Location
Kongo Jungle
XP
4,954
Country
I guess you missed my post :P

Well, Now you just have to put a title launcher button that shows all titles and launches them :D (bottom left corner seems perfect for that)
Oh yeah, sorry I missed it in my notifications. Thanks for replying! :) Yeah I could put an icon to bring up the titles for launching... I guess I would need to be on the new NH for that to work though?

Oh @mashers could I reccomend making the first slot of the Select title screen the retail cart if it's found? Right now it's the last one off the 8 pages of titles I have. It would be a nice little touch and it will speed up cart save editing. :lol:
Great idea. I'll look into it.
 

suloku

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
883
Trophies
0
XP
839
Country
@mashers new NH?

You just need to implement this function in regionfree.c and make some flag to call it after breaking from main loop and the exit calls are done, after selecting the title.

Code:
Result regionFreeRun2(u32 pid_low, u32 pid_high, u8 mediatype, u8 flag)
{
    Result ret = NSS_Reboot(pid_low, pid_high, mediatype, flag);

    regionFreeExit();

    return ret;
}
For example:

Code:
if (launchtitle == 1)
    regionFreeRun2(target_title.title_id & 0xffffffff, (target_title.title_id >> 32) & 0xffffffff, target_title.mediatype, 0x1);

You need to call it BEFORE regionfreeexit(); after srvExit(); (either before or after regionfreerun())


Also, title filtering (installed titles, game titles, demo titles) is very easy to implement, just check this commit: https://github.com/suloku/3ds_hb_menu/commit/ea3cdb583ac5d126f22415595359716763f75d23

Oh @mashers could I reccomend making the first slot of the Select title screen the retail cart if it's found? Right now it's the last one off the 8 pages of titles I have. It would be a nice little touch and it will speed up cart save editing. :lol:
You know, you can make an specific svdt for each title you want by modifying svdt.xml, including gamecard (title ID 0000000000000000, mediatype 1). Check ironhax installer's xml file.
 
Last edited by suloku,
  • Like
Reactions: JJTapia19

JJTapia19

I fight for my friends.
Member
Joined
May 31, 2015
Messages
2,171
Trophies
1
Age
31
XP
2,421
Country
Puerto Rico
You know, you can make an specific svdt for each title you want by modifying svdt.xml, including gamecard (title ID 0000000000000000, mediatype 1). Check ironhax installer's xml file.
That is usefull but for other save editing apps like PKbank it would still be more convinient to have an icon inside the select title menu too. Also I like the changing .smdh feature that @mashers implemented to the gamecart icon.
 

mashers

Stubborn ape
OP
Member
Joined
Jun 10, 2015
Messages
3,837
Trophies
0
Age
39
Location
Kongo Jungle
XP
4,954
Country
@mashers new NH?

You just need to implement this function in regionfree.c and make some flag to call it after breaking from main loop and the exit calls are done, after selecting the title.

Code:
Result regionFreeRun2(u32 pid_low, u32 pid_high, u8 mediatype, u8 flag)
{
    Result ret = NSS_Reboot(pid_low, pid_high, mediatype, flag);

    regionFreeExit();

    return ret;
}
For example:

Code:
if (launchtitle == 1)
    regionFreeRun2(target_title.title_id & 0xffffffff, (target_title.title_id >> 32) & 0xffffffff, target_title.mediatype, 0x1);

You need to call it BEFORE regionfreeexit(); after srvExit(); (either before or after regionfreerun())


Also, title filtering (installed titles, game titles, demo titles) is very easy to implement, just check this commit: https://github.com/suloku/3ds_hb_menu/commit/ea3cdb583ac5d126f22415595359716763f75d23


You know, you can make an specific svdt for each title you want by modifying svdt.xml, including gamecard (title ID 0000000000000000, mediatype 1). Check ironhax installer's xml file.
Fantastic, thank you for this information. I will definitely be adding this feature! Oh and I meant will I need @smealum's new launcher or whatever it is he's working on right now for the title launching to work. Apparently not though :)

Oh by the way guys, I've just made a slight change so the cart icon has a nice tab on it like a real 3DS cart :) Not uploaded right now though.
 
  • Like
Reactions: JJTapia19

SomeGamer

Well-Known Member
Member
Joined
Dec 19, 2014
Messages
6,827
Trophies
1
XP
4,838
Country
Hungary
Fantastic, thank you for this information. I will definitely be adding this feature! Oh and I meant will I need @smealum's new launcher or whatever it is he's working on right now for the title launching to work. Apparently not though :)

Oh by the way guys, I've just made a slight change so the cart icon has a nice tab on it like a real 3DS cart :) Not uploaded right now though.
Please upload it! I really want to see it. And if it's possible, please do the rounding of the icons less aggressive! Just take a look are the Nintendo icons' roundness. If they would match, it would look really nice!
 

730

Professional Shitposter
Member
Joined
Apr 2, 2015
Messages
485
Trophies
0
XP
608
Country
Argentina
Please upload it! I really want to see it. And if it's possible, please do the rounding of the icons less aggressive! Just take a look are the Nintendo icons' roundness. If they would match, it would look really nice!
I think the exterior border could remain the same, but the interior one, as you say, should be as the Nintendo one.
 
  • Like
Reactions: SomeGamer
General chit-chat
Help Users
    AncientBoi @ AncientBoi: ty @Veho :)