Homebrew [Release] Homebrew Launcher with grid layout

  • Thread starter Thread starter mashers
  • Start date Start date
  • Views Views 674,959
  • Replies Replies 4,218
  • Likes Likes 139
here, I made an updater that downloads the latest version from GitHub (sort-of).

It's currently a beta and there could always be unexpected issues. But I feel it's ready to test it "in production" if you will. @mashers will also include it with the .zip in the original post, until a different updater is integrated into the launcher.

https://github.com/ihaveamac/mashers-gl-updater/releases

This program does some rather crazy things to get the version number and the .3dsx. More information can be found at https://github.com/ihaveamac/mashers-gl-updater
 
here, I made an updater that downloads the latest version from GitHub (sort-of).

It's currently a beta and there could always be unexpected issues. But I feel it's ready to test it "in production" if you will. @mashers will also include it with the .zip in the original post, until a different updater is integrated into the launcher.

https://github.com/ihaveamac/mashers-gl-updater/releases

This program does some rather crazy things to get the version number and the .3dsx. More information can be found at https://github.com/ihaveamac/mashers-gl-updater
Nice! A future update should include the ability for the updater to update itself! :P
 
  • Like
Reactions: Margen67
@ihaveamac
Not quite the fanfare I was anticipating :P You've done a really incredible job on this, from implementing a mini proxy in PHP to allow access to GitHub's HTTPS server over HTTP in Lua, to handling the caching of the files, and making a neat front-end which does exactly what's needed. I really appreciate your hard work on this today - you've added a really wonderful new feature to the launcher.

The 3dsx can be installed in the launcher like any other app, making sure to include the lua and config files included in the release. I will also be including it in the download archives for the launcher itself. The included version will be placed in /gridlauncher/update/. If all of the required updater files are present in this folder (config.txt, index.lua, mglupdate.3dsx) then the launcher will add an option to the settings and the updater can be launched from there. In this situation the user does not need to add the updater to the launcher separately (but can do so if desired).

Thanks again buddy, great work! :grog:

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

Nice! A future update should include the ability for the updater to update itself! :P
Actually that's not a bad idea. The index.lua script could be downloaded along with the launcher 3dsx...
 
Nice! A future update should include the ability for the updater to update itself!
In the future maybe. It may not be as simple as it may sound though.

There's nothing more to add though, other than server changes or UI improvements. Unless there's something I'm not thinking of.
 
In the future maybe. It may not be as simple as it may sound though.

There's nothing more to add though, other than server changes or UI improvements. Unless there's something I'm not thinking of.
The only thing I would add, and I've just thought of this, would be to display on the screen which file will be overwritten by the update (in other words, what it says in config.txt). This would be useful in case the user didn't realise they needed to change this. It could say something like "Update will be applied to /boot.3dsx. To change this, exit /path/to/mglupdate/config.txt". Just a minor thing, but it might help some people who aren't using gridlauncher as their boot.3dsx and forget to edit the config file.
 
The only thing I would add, and I've just thought of this, would be to display on the screen which file will be overwritten by the update (in other words, what it says in config.txt). This would be useful in case the user didn't realise they needed to change this. It could say something like "Update will be applied to /boot.3dsx. To change this, exit /path/to/mglupdate/config.txt". Just a minor thing, but it might help some people who aren't using gridlauncher as their boot.3dsx and forget to edit the config file.
I guess I should go make that change now. Keep watching the repo!
 
  • Like
Reactions: Margen67
here, I made an updater that downloads the latest version from GitHub (sort-of).

It's currently a beta and there could always be unexpected issues. But I feel it's ready to test it "in production" if you will. @mashers will also include it with the .zip in the original post, until a different updater is integrated into the launcher.

https://github.com/ihaveamac/mashers-gl-updater/releases

This program does some rather crazy things to get the version number and the .3dsx. More information can be found at https://github.com/ihaveamac/mashers-gl-updater
Awesome man. I will use this as soon as HANS short cuts works with this launcher. It's the only thing making use vanilla launcher at the moment :)
 
  • Like
Reactions: Margen67
I've just uploaded beta 75:
  • Adds framerate control - animations should now run at 30fps regardless of the hardware
  • Added the option to hide the /3ds folder from the folders list
  • Integrated support for @ihaveamac's amazing updater app. Just copy the files from /gridlauncher in the zip file to the root of your SD card and the update option will appear in gridlauncher settings

You can update by downloading and copying the 3dsx from the first post, or use the updater app!!! For this update I actually recommend downloading the zip file as it now also contains the files you need for the integrated updater. If you copy these files to your SD card along with the boot.3dsx then you will be able to open the updater from the gridlauncher settings.

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

@mashers What do you need to get HANS Shortcuts working. Want me to test them for ya. I use them.
I need to understand what they are and how they work. I currently have no idea what they are or what they do.
 
  • Like
Reactions: klear and JJTapia19
I couldn't launch neither of the 30/60 fps , I've also tried putting them as boot.3dsx but they won't boot as well. Also tried beta 73 with no luck.

After many tries, I realized maybe it was the configuration I had set previously, I deleted it and finally it booted, this is the config file that prevents booting:
Code:
showRegionFree=0|sortAlpha=1|totalRows=3|clock24=1|animatedWater=1|showAppBackgrounds=1|wrapScrolling=1|keysExciteWater=1|preloadTitles=1|dPadNavigation=0|randomTheme=1|displayTitleID=1|animatedGrids=1|

30 fps version looks better.
@mashers here's some code you can adapt to change page by swiping left/right on touchscreen!

Code:
touchPosition touch;
touchPosition previousTouch, firstTouch;
u16 touchTimer;
//------------------------------------------
        hidScanInput();
        hidTouchRead(&touch);

        if(hidKeysDown()&KEY_TOUCH)
        {
            touchTimer=0;
            firstTouch=touch;
        }
        if(hidKeysHeld()&KEY_TOUCH){
            touchTimer++;
        }
//------------------------------------------
            if( ( hidKeysDown()&KEY_R || ( (hidKeysUp()&KEY_TOUCH && touchTimer < 30 && abs(firstTouch.px-previousTouch.px)> swipesens) && firstTouch.px > previousTouch.px && abs(firstTouch.py-previousTouch.py)<12 ) ) && !favActive && !flistActive  && !(hidKeysHeld()&KEY_UP) && hbmenu_state == HBMENU_DEFAULT)//Next folder
            {
                Folders.current++;
                if (Folders.current > Folders.max) Folders.current = 0;
                updatefolder = FOLDER_REFRESH;
            }
            if( ( hidKeysDown()&KEY_L || ( (hidKeysUp()&KEY_TOUCH && touchTimer < 30 && abs(firstTouch.px-previousTouch.px)> swipesens) && firstTouch.px < previousTouch.px && abs(firstTouch.py-previousTouch.py)<12 ) ) && !favActive && !flistActive && !(hidKeysHeld()&KEY_UP) && hbmenu_state == HBMENU_DEFAULT)//Previous folder
            {
                Folders.current--;
                if (Folders.current < 0) Folders.current = Folders.max;
                updatefolder = FOLDER_REFRESH;
            }
 
Last edited by suloku,
  • Like
Reactions: klear
Well, I decided to use this with themehax. Does you homebrew launcher themes support sound? Can 3d work on the launcher?


Question in general, does Streetpass still work with launcher on sleep mode?

Yes, I can definately say street pass still works while the grid launcher is in sleep mode.

The only thing I would add, and I've just thought of this, would be to display on the screen which file will be overwritten by the update (in other words, what it says in config.txt). This would be useful in case the user didn't realise they needed to change this. It could say something like "Update will be applied to /boot.3dsx. To change this, exit /path/to/mglupdate/config.txt". Just a minor thing, but it might help some people who aren't using gridlauncher as their boot.3dsx and forget to edit the config file.

I thought the same thing because of your emergency launcher setup.
 
  • Like
Reactions: KingVamp
I've just uploaded beta 75:
  • Adds framerate control - animations should now run at 30fps regardless of the hardware
  • Added the option to hide the /3ds folder from the folders list
  • Integrated support for @ihaveamac's amazing updater app. Just copy the files from /gridlauncher in the zip file to the root of your SD card and the update option will appear in gridlauncher settings

You can update by downloading and copying the 3dsx from the first post, or use the updater app!!! For this update I actually recommend downloading the zip file as it now also contains the files you need for the integrated updater. If you copy these files to your SD card along with the boot.3dsx then you will be able to open the updater from the gridlauncher settings.

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


I need to understand what they are and how they work. I currently have no idea what they are or what they do.
Well, if you do, it should be toggle since you already have a mode that shows all the apps. Also, please reconsider 3d support. :P
 
There is a small typo.

"Choose whether the default 3DS folder should be shown in the folds list"

I would also change 3DS to 3ds/ or something but that's just me. :P
 
I couldn't launch neither of the 30/60 fps , I've also tried putting them as boot.3dsx but they won't boot as well. Also tried beta 73 with no luck.

After many tries, I realized maybe it was the configuration I had set previously, I deleted it and finally it booted, this is the config file that prevents booting:
Code:
showRegionFree=0|sortAlpha=1|totalRows=3|clock24=1|animatedWater=1|showAppBackgrounds=1|wrapScrolling=1|keysExciteWater=1|preloadTitles=1|dPadNavigation=0|randomTheme=1|displayTitleID=1|animatedGrids=1|
That's weird. I've just used the same config and it booted fine, but then I'm on beta 75 now. There was a bug with random themes in a previous beta, so perhaps that was causing it.

30 fps version looks better.
I agree :)

@mashers here's some code you can adapt to change page by swiping left/right on touchscreen!
Thank you! I'll have a look at that. I hadn't thought of it actually.

Yes, I can definately say street pass still works while the grid launcher is in sleep mode.
That's excellent! :)

I thought the same thing because of your emergency launcher setup.
Exactly why I thought it was important ;)

Well, if you do...
If I do what?

There is a small typo.

"Choose whether the default 3DS folder should be shown in the folds list"

I would also change 3DS to 3ds/ or something but that's just me. :P
Oops! I'll change it and push an update! Yay I can use the online updater again! :)
 
@mashers and @ihaveamac it should be possible (on hax 2.5) to get updater to know where gridlauncher boot.3dsx is by using argument passing. That is only if lua player allows that though...

If using emergency launcher or any other launcher: Gridlauncher should check for argv[0] being a path to a .3dsx file, then launch the updater with that as argv[1] --> updater has gridlauncher's path.
If argv[0] is null, assume gridlauncher is set up as /boot.3dsx and pass that to updater.
 
@mashers and @ihaveamac it should be possible (on hax 2.5) to get updater to know where gridlauncher boot.3dsx is by using argument passing. That is only if lua player allows that though...
We were wondering about the same thing. We're just not sure if lua on 3ds supports argument passing.

Edit - it could save the path to the current 3dsx to a text file if lua doesn't support argument passing. Kind of like tid.bin ;)
 
@mashers and @ihaveamac it should be possible (on hax 2.5) to get updater to know where gridlauncher boot.3dsx is by using argument passing. That is only if lua player allows that though...

If using emergency launcher or any other launcher: Gridlauncher should check for argv[0] being a path to a .3dsx file, then launch the updater with that as argv[1] --> updater has gridlauncher's path.
If argv[0] is null, assume gridlauncher is set up as /boot.3dsx and pass that to updater.

We were wondering about the same thing. We're just not sure if lua on 3ds supports argument passing.

Edit - it could save the path to the current 3dsx to a text file if lua doesn't support argument passing. Kind of like tid.bin ;)
It doesn't look like it, but it could be added? (or something like saving the path somewhere - replacing the config file)

I know lua's probably not the best option for something like this, but I still wanted to get something up and running.
 
It doesn't look like it, but it could be added? (or something like saving the path somewhere - replacing the config file)

I know lua's probably not the best option for something like this, but I still wanted to get something up and running.
Actually I think it's ideal. Changes can be made quickly and without needing to recompile. A scripting language like lua is ideally suited for this purpose.

Hey! I've just updated to beta 76 using the online updater and it worked perfectly! Update now for settings menu typo fixing loveliness.
 

Site & Scene News

Popular threads in this forum