Homebrew [Release] arc13's freeShop fork - open source eShop alternative

  • Thread starter Thread starter arc13
  • Start date Start date
  • Views Views 717,310
  • Replies Replies 2,534
  • Likes Likes 144

What should I do with storage bars ?


  • Total voters
    138
  • Poll closed .
Status
Not open for further replies.
Depends if the information is decryptable off the 3DS, haven't looked into this stuff in ages, but I'd assume it's something that can only be decrypted on the 3DS itself. Hopefully it's something that can be done one way or another though.
It can't be decrypted outside of 3DS (for now).
Since that info is stored inside of one of DLC NCCH, it would require original NCCH key from keyslot 0x2C.

Like when you have to download the tmd to just get the title version ? xD
Kinda, yeah.
For DLC it downloads both tmd and control content to get icons and names for any new content.
 
It can't be decrypted outside of 3DS (for now).
Since that info is stored inside of one of DLC NCCH, it would require original NCCH key from keyslot 0x2C.
Yeah, was figuring that would be the case, but didn't want to jump to that conclusion without looking into it more. That's gonna make it a royal pain unless it just downloads it when showing the DLC list on the 3DS itself.
 
@Drakia @arc13
I know this is alreally in the TODO but, any plans to merge this into both freeshop and ciangel?
https://github.com/Reisyukaku/SleepmodeInstaller
Looking at the code, it seems it boils down to:
  1. Install ticket. This is already done by freeShop and CIAngel, and there's other programs that have standalone ticket installation.
  2. Use NIMS to register an install task:
Code:
static Result startInstall(u64 tid){
    Result res;
    NIM_TitleConfig tc;
    u16 version;
    
    res = getTitleVersion(tid, &version);
    printf("Getting TMD version: %s (%lx)\n", R_FAILED(res) ? "\x1b[31mfailure\x1b[0m" : "\x1b[32msuccess\x1b[0m", res);
            
    NIMS_MakeTitleConfig(&tc, tid, version, 0, MEDIATYPE_SD);
    res = NIMS_RegisterTask(&tc, "(game name, read from samurai if available)", "(publisher)");
    printf("Registering task: %s (%lx)\n", R_FAILED(res) ? "\x1b[31mfailure\x1b[0m" : "\x1b[32msuccess\x1b[0m", res);
    return res;
}
I can take a look at adding this to CIAngel sometime this week, maybe. (If I don't forget about it, that is.) Adding it to freeShop would require some more work for the UI, e.g. to indicate if a title is scheduled for downloading.

EDIT: Apparently it's already being added to freeShop. Disregard then. I might still add it to a local fork of CIAngel anyway, since that's what I normally use.
 
  • Like
Reactions: Billy Acuña
Looking at the code, it seems it boils down to:
  1. Install ticket. This is already done by freeShop and CIAngel, and there's other programs that have standalone ticket installation.
  2. Use NIMS to register an install task:
Code:
static Result startInstall(u64 tid){
    Result res;
    NIM_TitleConfig tc;
    u16 version;
    
    res = getTitleVersion(tid, &version);
    printf("Getting TMD version: %s (%lx)\n", R_FAILED(res) ? "\x1b[31mfailure\x1b[0m" : "\x1b[32msuccess\x1b[0m", res);
            
    NIMS_MakeTitleConfig(&tc, tid, version, 0, MEDIATYPE_SD);
    res = NIMS_RegisterTask(&tc, "(game name, read from samurai if available)", "(publisher)");
    printf("Registering task: %s (%lx)\n", R_FAILED(res) ? "\x1b[31mfailure\x1b[0m" : "\x1b[32msuccess\x1b[0m", res);
    return res;
}
I can take a look at adding this to CIAngel sometime this week, maybe. (If I don't forget about it, that is.) Adding it to freeShop would require some more work for the UI, e.g. to indicate if a title is scheduled for downloading.

EDIT: Apparently it's already being added to freeShop. Disregard then. I might still add it to a local fork of CIAngel anyway, since that's what I normally use.
Nice, don't forget to share your CIAngel Mod if you do it :)
Edit: Or even better, do a PR.
 
I always appreciated freeShop as a pretty impressive piece of software, and I like your changes, too.

Now, just two ideas:
* Don't use that bootlogo. Everyone hates it. I'm pretty sure @PabloMK7 will be okay with doing a custom one for you. Or just use @PabloMK7's universal bootlogo, see f.e. here.
* I like that we have information about free space now, but I don't like the placement. Guess I'm not the only one, judging from that poll.

Thanks for taking this over!
 
Last edited by d0k3,
I assume we need to reinstall from your download to stay with your fork? Anything different so far other than the continuing of support?
 
Is it possible for future updates of freeshop to include users able to help update the title key database from that website with titlekeys? This will help increase available games for download
 
Last edited by GnK23,
Last any plans of also using decryptkeys aside from encrypted ones to install app?
 
@arc13

You're still using the old shop-cache repo. I had one setup a few month ago, so I just rebased it to the latest version:

https://github.com/Cartman123/shop-cache

I can give you access to it so you can tag the releases and have it build automatically (you can also just fork your own).

I was thinking of forking freeShop since the Pokemon Sun/Moon pre-release, but I'm really short on time with work and all. When I saw all hell break lose I thought it would be my time to maintain it, but it seems you beat me to it :)
 
  • Like
Reactions: Holiday_Ougi
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum