Homebrew Launcher with sorting and folder support

Discussion in '3DS - Homebrew Development and Emulators' started by suloku, Sep 7, 2015.

  1. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    Download latest version here: https://github.com/suloku/3ds_hb_menu/blob/patch-1/_release/DOWNLOAD.md
    Source code: https://github.com/suloku/3ds_hb_menu/tree/patch-1/

    WARNING: Using region4 to launch a title under emunand will boot the title under SYSNAND

    Last update: 24 feb 2016 - 16:35 GTM+1 (version 1.1.3s)

    Changelog (since 15 sept 2015 - 17:00 GTM+1)
    Feature list:
    - Multiple configurable folders, change with L/R
    - Favorites: access with X, add/remove with SELECT
    - Disable/enable region free entry (configurable, toogle with hold DuP+R)
    - Alphabetical sorting (by folder/filename, not title in smdh file). Case sensitiveness configurable. Mix stray 3dsx configurable.
    - Option to remember last folder and last entry launched (toogle with hold Dup + L).
    - Custom themes (defined in themes.xml)
    - Random theme at boot (optional)
    - Create/delete HANS/Region4 shortcuts

    The "remember menu" feature is not shown on the video since it is made on citra and we can't boot hombrew there from hbl.

    New Controls:
    - L/R: previous/next folder
    - SELECT: add/remove favorite entry
    - X: enter/exit favorites menu
    - Hold Dup+R: toggle region free (title launcher)
    Reboot screen (press start in homebrew list to enter reboot screen):
    - L/R in reboot screen: previous/next theme
    - SELECT: toggle random theme
    - Y: toggle remember menu
    - Dup: toggle alphabetic/filesystem sorting
    - Ddown: toggle mix stray 3dsx files on/off
    - Dleft: toggle remember region free (title launcher) state
    - START: Shutdown

    SVDT integration (not needed anymore):
    NOTE: svdt and ctrulib were updated and now it can get the title by itself.
    - As of svdt 0.10.1 HBL mod will pass the selected title to svdt. This makes you only need to select the title once instead of two times (one in hbl, one in svdt). This makes savegame backup easier.

    Known bugs:
    - Crash on empty folder if region free is disabled. Under ninjhax 2.x (ironhax, youhax, oot3dhax, smashhax...) this is workarounded by automatically re-enabling region-free, so any xxxHax user won't have this problem. On ninjhax 1.x it will crash since region free is not available there, so just don't have empty folders. You can put a file named z.3dsx so it appears alwas as the last entry if you want to keep the folder.

    Demonstration video (a little outdated):


    Note: some homebrew must go in the /3ds/ folder because it uses hardcoded paths. Test all new homebrew in /3ds/ folder. Still, most homebrew work in any folder.
    Hax installers like ironhax and oot3dhax may fail if not run under /3ds/ folder (I've only tested oot3dhax installer).
    Read this for a little more information: https://gbatemp.net/threads/homebre...and-folder-support.396793/page-7#post-5669964

    Theme editor:

    Thanks to exelix11 we have a great theme editor for windows, many thanks!

    You can get it here: https://github.com/exelix11/HLThemeEditor/releases

    Release post: https://gbatemp.net/threads/homebre...and-folder-support.396793/page-6#post-5666295

    Original post:
    Warning: Spoilers inside!
     
    Last edited by suloku, Feb 24, 2016


  2. Returnofganon

    Returnofganon I pretend like I know what I'm talking about

    Member
    532
    197
    Jul 1, 2015
    United States
    Once again thank you! :bow:
     
  3. Vague Rant

    Vague Rant Deceptively cute

    Member
    2,053
    414
    Aug 7, 2008
    Melbourne
    You should probably do your sorting case-insensitive. Currently, /3ds/WhackMania comes before /3ds/blargsnes. This will seem counter-intuitive to most users.
     
  4. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    I was thinking in adding an option to xml to mix or not the stray .3dsx files with folders
    I can add the case insensitive setting too., I like it insensitive though, since it adds a layer of organization: make all folders with low case, make first letter of folder upper case case: your favorite homebrew is on top.

    And as I was writting this I've thought: a favorites folder in X button would be cool...
     
  5. SomeGamer

    SomeGamer GBAtemp Guru

    Member
    5,758
    2,712
    Dec 19, 2014
    Hungary
    Yeah, just realised that it's now the only unused button! :D
     
  6. link6155

    link6155 GBAtemp Fan

    Member
    310
    334
    Aug 14, 2013
    United States
    Neat mod, I don't have that many Homebrews yet, so a folder option wouldn't be useful to me at this time.

    This might be off topic, but I was hoping someone could make a Homebrew Launcher like this:
    [​IMG]

    I think this layout use the screens better. The Homebrew Launcher currently doesn't utilize the top screen at all.
     
  7. Ericjwg

    Ericjwg Good

    Member
    2,866
    693
    Jul 2, 2015
    Canada
    is the newest boot file right?

    — Posts automatically merged - Please don't double post! —

    cuz i try to do the NH1.1&2.1 dual boot
     
  8. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    It looks better, but I don't have the skills to make that major changes to hbl.
    There's not much homebrews yet, but it's tarting to grow, and 4 homebrew per screen is too little.
    I don't know what you mean. If NH1.1. and NH2.1 use the same boot.3dsx it will work with both.

    If I recall, for dualboot you only need it to use a different 3ds folder and boot.3dsx right? if you don't want to recompile, you can hex edit the .3dsx file, look for the /3ds/ string and the boot.3dsx string, then change them to something like /3d1/ and boo1.3dsx respectively.

    Or just change to the folder with your 1.1 homebrew? I know nothing about NH1.1.
     
  9. fmkid

    fmkid Just another GBATemp's random guy

    Member
    1,048
    351
    Apr 23, 2015
    Colombia
    AFAIK, latest "boot.3dsx" (or based in) file should work fine on whatever Smealum's Hax... That file is only the "Homebrew Launcher", not the exploit itself at all!
     
  10. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    Just for those interested, current progress:

    - Added option in xml to sort case sensitive or not
    - Added option in xml to sort stray .3dsx files mixed with full homebrew (those in a folder) or after them
    - Added option to disable region free entry
    - UP+R toogles region free in the menu itself
    - X opens favorite menu
    - Favorite paths/3dsx files can be configured in xml
    - Changed folders.xml to config.xml since now it holds more things
    - Removed SELECT to refresh. Just toogle favorites or press next/previous folder button. Works even with no xml file (remember, this is for those times hblauncher for some reason doesn't load any homebrew and can only exit or boot region free).

    To do (on it right now):
    - Dinamically set/remove favorites with SELECT
    - Save modified favorites to xml file

    EDIT: done
     
    Last edited by suloku, Sep 9, 2015
  11. SomeGamer

    SomeGamer GBAtemp Guru

    Member
    5,758
    2,712
    Dec 19, 2014
    Hungary
    Where can I download this latest version?
     
  12. mashers

    mashers Stubborn ape

    Member
    3,837
    5,155
    Jun 10, 2015
    Kongo Jungle
    This is really great work, thank you! Looking forward to downloading the latest version so I can remove region free loader and keep my HB menu sorted :)
     
  13. Idaho

    Idaho GBAtemp Advanced Fan

    Member
    672
    402
    Oct 3, 2013
    France
    Maybe you should talk to smea to implement this "officially"
     
  14. fmkid

    fmkid Just another GBATemp's random guy

    Member
    1,048
    351
    Apr 23, 2015
    Colombia
    Some way to implement cursor stays just on latest selected program anytime someone loads HBL (via executing exploit or exit from a homebrew, either)?
     
  15. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    No release yet, source is up though. I'll release binary when I end with favorites.
    I've just completed the dynamic add/remove favorite code, only remains to code the function to update xml file.

    I made a pull request to the official repository, I don't know if smea would add it. I'm trying to stay true to original desing, in fact if there's no xml file the only new features one would notice are the free region launcher toogle and the reload folder when L/R are pressed.

    Also, there's probably much nicers way to code all this.
    I could save that data in the xml file, remembering last folder would be easy, the cursor position can be done, but it's a little more tricky (or maybe just need to store more values).

    I'll look into that when I finish the favorites thing.

    UPDATED FIRST POST with v2
     
    Last edited by suloku, Sep 9, 2015
  16. Vague Rant

    Vague Rant Deceptively cute

    Member
    2,053
    414
    Aug 7, 2008
    Melbourne
    Your v2 build is nonworking on my USA New 3DS running 9.9. It locks up on launch with the usual garbage on screen, as per photo:
    Warning: Spoilers inside!
     
  17. geocool

    geocool Advanced Member

    Newcomer
    54
    8
    Jul 31, 2008
    Greece
    Athens
    @suloku Do you have a public repository with the modified version of homebrew launcher ?

    @link6155 Who created this mockup ?
     
  18. mashers

    mashers Stubborn ape

    Member
    3,837
    5,155
    Jun 10, 2015
    Kongo Jungle
    I have exactly the same problem on a 9.9 UK New 3DS. Makes no difference whether I launch through IronHax or NinjHax. The previous version worked fine.
     
  19. pdapanda

    pdapanda GBAtemp Advanced Fan

    Member
    712
    241
    Nov 19, 2014
    Switzerland
    And the same with 9.9 JP NEW3DS
     
  20. suloku
    OP

    suloku GBAtemp Advanced Fan

    Member
    863
    491
    Apr 28, 2008
    This is strange, I'm on N3DS 9.9, I tought maybe it was becasue you didn't put the config file, but works fine for me wihtout config file.

    UPDATE: OK, the problem was the the config file I attached, becasue there where two blank elements (<path></path> and <fav></fav>)

    I'm updating the package now.

    edit: no, that wasn't it :(
    edit2: yes it was.
    edtir 3: no it doesn't support comments either, silly me.

    EDIT 4: Everything should be fine now, sorry for the trouble, I was using a different xml file and didn't notice that problem.

    I've just tested the file, should work fine with the included xml file or without it. There shouldn't be any more problems.

    For those asking, the sorce is in my github (address is in the readme)
     
    Last edited by suloku, Sep 9, 2015