Homebrew Official [Download] Decrypt9 - Open Source Decryption Tools (WIP)

  • Thread starter d0k3
  • Start date
  • Views 847,140
  • Replies 4,476
  • Likes 71

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
Had a quick look.

PNG is a compressed image format, basically almost the same (even similar algorithms) as if you put a BMP file into a ZIP. BIN picture files are uncompressed and therefore much larger - file size is width * heigth * 4 channels (RGB and Alpha). We can't possibly include a PNG decoder in Decrypt9, so uncompressed is our only choice. That's where the big files come from.

What you do with the considerably large splash image files (at least in relation to the maximum payload size of 1MB) is load them from the file directly to the frame buffer. There's no other memory affected the way you do it. If you include the files directly into memory, they have to reside somewhere, and 6MB (total size of all UI graphics) is too big (note: max payload size is 1MB and all the data inside the binary has to fit in there as well). So, that's that. Where the limit of only 10 menu entries comes from, no idea yet. I think it has to do with memory running out or stuff overlapping in memory, though. We need to find a way to prevent these problems.
Yeah the image size makes sense looking at it like that. :)
The menu issue isn't much of a problem unless more options are added (i can't think of any to add at this point), if they're related to other options (like with the nand xorpads) i can just do the sub selection thing I've already done which works fine i guess.

Installed ninja eur cia sysnand on my n3ds 9.0fw and boot gateway in gwmode on sysnand. Scanned ninjahax 1.1b and installed exploit on cia. Downloaded latest decrypt and tried both versions but when launched it goes black and goes back to homebrew menu. Any ideas just want to get nand fat16
It won't work when CN is launched from gateway mode due to higher firmware packed in the launcher.dat file.
So until we have another way to launch it on n3ds that doesn't depend on CN and you don't have a copy of CN you're out of luck atm. :(
 
  • Like
Reactions: hashcheck1

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Yeah the image size makes sense looking at it like that. :)
The menu issue isn't much of a problem unless more options are added (i can't think of any to add at this point), if they're related to other options (like with the nand xorpads) i can just do the sub selection thing I've already done which works fine i guess.
Problem is, if it is the overlapping stuff in memory issue, further problems, even totally unexpected ones, can strike at any time. Meaning: This release may be totally okay, but the next one, even with only a very little change may not. Good thing is, on 3DS, overlapping stuff in memory almost always leads to an immediate crash (that's better than corrupted output files). Keep in mind that is just an assumption now, so no reason to be alarmed. I will take a closer look later, maybe I'll find the cause of the issue.

Installed ninja eur cia sysnand on my n3ds 9.0fw and boot gateway in gwmode on sysnand. Scanned ninjahax 1.1b and installed exploit on cia. Downloaded latest decrypt and tried both versions but when launched it goes black and goes back to homebrew menu. Any ideas just want to get nand fat16
It won't work when CN is launched from gateway mode due to higher firmware packed in the launcher.dat file.
So until we have another way to launch it on n3ds that doesn't depend on CN and you don't have a copy of CN you're out of luck atm. :(
Can't he just boot GW classic mode instead? That doesn't have EmuNAND, correct? Other than that, @hashcheck1 may try if other homebrew works on Ninjhax 1.x.
 
Last edited by d0k3,

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
Can you install the Ninjhax exploit if CN is run from the GW cartridge? Sorry, but I'm a complete noob with that.
You can yeah, but it still won't work, it'll just crash when it tries to load the exploit due to the firmlaunch (higher firmware packed in the launcher dat), no way around it with gateway afaik unless you use an older launcher.dat (GW 2.7 or less i think).
And sadly D9 (and other stuff) doesn't work with ninjhax 2.0 :(
 

hashcheck1

Well-Known Member
Member
Joined
Aug 5, 2013
Messages
473
Trophies
1
Age
43
XP
1,066
Country
I can launch ninjahax 1.1b and v2 in gateway v3.3.1(latest) mode on emunand fw9.5 & sysnand fw9.0 with either cubic.3ds or cia installed. All homebrew works via homebrew launcher like ftbpony,snes,starter.zip its only decrypt9 that does that. must be gateway patches that cause issue.
 

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
I can launch ninjahax 1.1b and v2 in gateway v3.3.1(latest) mode on emunand fw9.5 & sysnand fw9.0 with either cubic.3ds or cia installed. All homebrew works via homebrew launcher like ftbpony,snes,starter.zip its only decrypt9 that does that. must be gateway patches that cause issue.
Yeah i just tried it myself on GW sysnand, same thing black screen back to menu. Probably something GW patches that blocks the arm9 exploit Brahma uses (D9 is built into brahma loader).
 
  • Like
Reactions: hashcheck1

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@Shadowtrance:
I'm just doing some small modifications on your GUI source code. Expect a pull request soon. Just a few observations / remarks / ideas here.

You wondered why you can't have more than 10 menu entries - the reason is here:
Code:
char path[] = "/3ds/Decrypt9/UI/menu0.bin";
path[21] = menu_idx + 48;
If menu_idx is >= 10, an invalid symbol is inserted at path[21]. I'm 99% sure that is the only problem. I'm working on a struct based GUI menu system (only under the hood changes, it will work the same afterwards) that will fix this limit. But first, let me know what you think about my ideas:

I do think that each feature should have a seperate menu graphic and entry. At the moment, NAND backup/restore, the dump/inject options and TWLN/CTRNAND xorpad generating are put into one menu entry each. I know this won't make things easier with finding proper symbols, but it would add consistency. If you're worried about too many menu entries, you could group them and switch using the up/down arrows - that could even be incorporated quite well in the given aestethic, by just adding the existing left/right arrows (in proper orientation) at the top/bottom for grouped options. I'd help with the implementation, of course.

The warning graphics would do well with some symbolism - something like this:
attention-th.png


You have in progress graphics for NAND restore/backup, the dump/inject options and TWLN/CTRNAND xorpad generating, but other features don't have in progress graphics. I'd instead suggest to make one general 'operation in progress' graphic with some fitting symbol and use that for each and every option. The text on the top screen console should be enough information so the user knows what's going on. You could possibly use a symbol such as this:
construction.png


And... the warning prompt for dangerous stuff... Somehow I still think accidental triggering should be made even more impossible. Keep in mind that the HID routines are not the best there are. I don't have a good idea for that yet, though.

Plus, one question... will the launcher.dat work? Where do the UI files go then? It looks like the UI file path is hardcoded as 3DS/Decrypt9/UI/


EDIT: (last addition, hopefully) I think you could rebase your source code so that you can update my changes via pull requests in the future. That will work if you're changes are contained enough (I, f.e. will most likely not update draw.c/draw.h anymore) and if you add them to a new up to date fork from my master branch. Don't do anything yet (your changes are also not contained enough yet), but this might make things easier later.
 
Last edited by d0k3,

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
I'm just doing some small modifications on your GUI source code. Expect a pull request soon. Just a few observations / remarks / ideas here.

You wondered why you can't have more than 10 menu entries - the reason is here:
Code:
char path[] = "/3ds/Decrypt9/UI/menu0.bin";
path[21] = menu_idx + 48;
If menu_idx is >= 10, an invalid symbol is inserted at path[21]. I'm 99% sure that is the only problem. I'm working on a struct based GUI menu system (only under the hood changes, it will work the same afterwards) that will fix this limit. But first, let me know what you think about my ideas:
Ah ok, not sure how i missed that... But anyway, yeah the menu could do with some reworking anyway. :)

I do think that each feature should have a seperate menu graphic and entry. At the moment, NAND backup/restore, the dump/inject options and TWLN/CTRNAND xorpad generating are put into one menu entry each. I know this won't make things easier with finding proper symbols, but it would add consistency. If you're worried about too many menu entries, you could group them and switch using the up/down arrows - that could even be incorporated quite well in the given aestethic, by just adding the existing left/right arrows (in proper orientation) at the top/bottom for grouped options. I'd help with the implementation, of course.

The warning graphics would do well with some symbolism - something like this:

You have in progress graphics for NAND restore/backup, the dump/inject options and TWLN/CTRNAND xorpad generating, but other features don't have in progress graphics. I'd instead suggest to make one general 'operation in progress' graphic with some fitting symbol and use that for each and every option. The text on the top screen console should be enough information so the user knows what's going on. You could possibly use a symbol such as this:

And... the warning prompt for dangerous stuff... Somehow I still think accidental triggering should be made even more impossible. Keep in mind that the HID routines are not the best there are. I don't have a good idea for that yet, though.
The graphics options for warning/progress are good choices, i just didn't go looking to be honest. And yeah i wish the HID was better as it is kinda touchy on o3ds but perfect on n3ds (like i described the other day).

Plus, one question... will the launcher.dat work? Where do the UI files go then? It looks like the UI file path is hardcoded as 3DS/Decrypt9/UI/
It works the same as the ninjhax version, it looks for the UI files in that path, you just load the launcher.dat instead of the Decrypt9.3dsx. Only difference is how it's loaded really.

EDIT: (last addition, hopefully) I think you could rebase your source code so that you can update my changes via pull requests in the future. That will work if you're changes are contained enough (I, f.e. will most likely not update draw.c/draw.h anymore) and if you add them to a new up to date fork from my master branch. Don't do anything yet (your changes are also not contained enough yet), but this might make things easier later.
This part I'm not sure about, still getting to know the ins and outs of github to be honest and haven't looked at how rebasing works/is done.
 

madc

New Member
Newbie
Joined
Aug 7, 2015
Messages
1
Trophies
0
Age
36
XP
52
Country
Switzerland
Yeah i just tried it myself on GW sysnand, same thing black screen back to menu. Probably something GW patches that blocks the arm9 exploit Brahma uses (D9 is built into brahma loader).
hi,Shadowtrance,i alos meet same issue.
Would you kindly help to make D9 works on GW emuNand?that 's very appreciation to do so since many GW users can not run this great app on N3ds
 

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
hi,Shadowtrance,i alos meet same issue.
Would you kindly help to make D9 works on GW emuNand?that 's very appreciation to do so since many GW users can not run this great app on N3ds

I don't think it is possible to make it work as a .cia (or .3ds) on 9.5 due to the way the loader works (i think). I've tried everything i can think of to get it to work that way and it doesn't.
And running ninjhax from gateway to run D9 doesn't work either (gateway breaks the arm11 exploit in the D9 loader).
You CAN however run ninjhax 1.1 from Pasta with firmlaunch OFF (cubic ninja cia) and load D9 from there.

And I'm not sure about getting it to run via MSET (it may be possible, looking into it).
 
Last edited by Shadowtrance,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
The graphics options for warning/progress are good choices, i just didn't go looking to be honest. And yeah i wish the HID was better as it is kinda touchy on o3ds but perfect on n3ds (like i described the other day).
Well, you can't use them as they are (they have a completely different style), but the symbols would be a good base, I think. You also asked the other day about better alternatives for your other icons... So, what would you think about asking the users to participate in theming? Theming would be pretty easy to do, even without any programming skills. You just need to edit the UI graphics, convert them via a PNG to BIN converter (you've got something like that, correct?), put them into the right place, done.

BTW, I'd even go as far as to say that you should make only one, generic, warning graphic with the symbol and generic warning text ("This operation is potentially dangerous. Continue?"). The user knows what he's getting into from the menu graphic at the bottom screen (if the operation has it's own graphic, that is).

It works the same as the ninjhax version, it looks for the UI files in that path, you just load the launcher.dat instead of the Decrypt9.3dsx. Only difference is how it's loaded really.
It's a bit strange for a launcher.dat user to have to put the UI files into that (rather long) path. Not that I would have any better idea now.

This part I'm not sure about, still getting to know the ins and outs of github to be honest and haven't looked at how rebasing works/is done.
Well, Github for Windows is pretty shitty software, that much is sure ;). The thing I described would work that way:
  1. Make a new fork from my master branch
  2. Add your changes via additional commits on top
  3. Update via pull requests from that point on
This will work as long as your changes will not conflict with mine. An example: Assume your changes were only in menu.h/menu.c (which they are not, as we know). You'd make a new fork starting from my most up to date master branch, then add an additional commit with your changes on top (which would only change menu.c/menu.h in that hypothetical case). From that point on, you may update your fork via pull requests from mine, and the menu.c/menu.h would stay as you edited them. Only exception is, if I edited menu.c / menu.h in my master branch, leading to a conflict. In that case, updating via PR would simply not work anymore and you'd have to start anew from 1.
 
Last edited by d0k3,

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
Well, you can't use them as they are (they have a completely different style), but the symbols would be a good base, I think. You also asked the other day about better alternatives for your other icons... So, what would you think about asking the users to participate in theming? Theming would be pretty easy to do, even without any programming skills. You just need to edit the UI graphics, convert them via a PNG to BIN converter (you've got something like that, correct?), put them into the right place, done.
BTW, I'd even go as far as to say that you should make only one, generic, warning graphic with the symbol and generic warning text ("This operation is potentially dangerous. Continue?"). The user knows what he's getting into from the menu graphic at the bottom screen (if the operation has it's own graphic, that is).

Yeah others joining in with UI ideas or themes/whatever is fine with me if people wish to do so. :)
And yeah i have imagemagick installed and bat file that converts all my png's to bin.
The generic warning image is a good idea though. :)

It's a bit strange for a launcher.dat user to have to put the UI files into that (rather long) path. Not that I would have any better idea now.
Yeah i just left it as is as i couldn't think of a way to have it different for the 2 different versions.

Well, Github for Windows is pretty shitty software, that much is sure ;). The thing I described would work that way:
  1. Make a new fork from my master branch
  2. Add your changes via additional commits on top
  3. Update via pull requests from that point on
This will work as long as your changes will not conflict with mine. An example: Assume your changes were only in menu.h/menu.c (which they are not, as we know). You'd make a new fork starting from my most up to date master branch, then add an additional commit with your changes on top (which would only change menu.c/menu.h in that hypothetical case). From that point on, you may update your fork via pull requests from mine, and the menu.c/menu.h would stay as you edited them. Only exception is, if I edited menu.c / menu.h in my master branch, leading to a conflict. In that case, updating via PR would simply not work anymore and you'd have to start anew from 1.

And yes github for windows has a lot i needs added to it to make things easier imo, but this still sounds like a mega pain in the butt either way. haha

Edit: @d0k3 WIP new menu graphics, little more streamlined. One thing that would be good though is having both top menu's separate so you can switch between them with L R or left/right.

Thoughts? :)

ab8f1ba63a.gif
 
Last edited by Shadowtrance,

WhoAmI?

PASTA's dirty animal
Member
Joined
Mar 15, 2015
Messages
1,276
Trophies
0
Location
Poké Ball
Website
lavanoid.github.io
XP
1,279
Country
Yeah others joining in with UI ideas or themes/whatever is fine with me if people wish to do so. :)
And yeah i have imagemagick installed and bat file that converts all my png's to bin.
The generic warning image is a good idea though. :)


Yeah i just left it as is as i couldn't think of a way to have it different for the 2 different versions.



And yes github for windows has a lot i needs added to it to make things easier imo, but this still sounds like a mega pain in the butt either way. haha

Edit: @d0k3 WIP new menu graphics, little more streamlined. One thing that would be good though is having both top menu's separate so you can switch between them with L R or left/right.

Thoughts? :)

ab8f1ba63a.gif
That theme is beautiful! Gimme!
 

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Edit: @d0k3 WIP new menu graphics, little more streamlined. One thing that would be good though is having both top menu's separate so you can switch between them with L R or left/right.

Thoughts? :)

ab8f1ba63a.gif

I like it a lot! If you should need any help with the required implementation changes, I'd be happy to lend a hand. Just one remark... The large free space on the top right (above the feature description) looks somewhat empty - do you plan to add something there?

BTW, there's a new version of Github for Windows. Still shitty software though ;).
 
  • Like
Reactions: WhoAmI?

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
I like it a lot! If you should need any help with the required implementation changes, I'd be happy to lend a hand. Just one remark... The large free space on the top right (above the feature description) looks somewhat empty - do you plan to add something there?

BTW, there's a new version of Github for Windows. Still shitty software though ;).
The only implementation changes i can think of would be the ability to switch between the (currently 2) sub menu's at the top with L / R and Left / Right which it doesn't do at the moment unless you go all the way to the bottom of the list. Only other thing that needs to be implemented is done and failed graphics (already have the images done). As for the free space to the right, I'm not sure really, open to suggestions. :)

5KFCipX.png
n3S865N.png
 
Last edited by Shadowtrance,
  • Like
Reactions: WhoAmI?

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
The only implementation changes i can think of would be the ability to switch between the (currently 2) sub menu's at the top with L / R and Left / Right which it doesn't do at the moment unless you go all the way to the bottom of the list. Only other thing that needs to be implemented is done and failed graphics (already have the images done). As for the free space to the right, I'm not sure really, open to suggestions. :)

5KFCipX.png
n3S865N.png
Alright, I'll take a look at your repo and will enable the menu algorithm to switch between submenus. It's not that different from how things work in my (and now also Archshifts) barebones menu implementation. The success / fail graphics can easily be implemented to be shown where the feature functions output is checked (before it waits for 'B'). I'll need a day or two because my internet connection is not working properly at the moment :/.

As for the graphics themselves: I like the symbols, but the alignment of the 'FAILED! writing looks somehow off. Maybe align it to the right? Dunno, just an idea at the moment,
 

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
Yeah maybe I'll move it over a little, either way it'll look off because, 1. it's shorter than "complete!" and 2. the symbol shape is different too, So we're not gonna win either way. haha

In other news, Decrypt9 runs (and works from MSET) :) Well on o3ds it does, on n3ds for some reason it freezes the system shortly after the menu shows. :( Scratch that, it works on both o3ds and n3ds now. :D
 
Last edited by Shadowtrance,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Yeah maybe I'll move it over a little, either way it'll look off because, 1. it's shorter than "complete!" and 2. the symbol shape is different too, So we're not gonna win either way. haha

In other news, Decrypt9 runs (and works from MSET) :) Well on o3ds it does, on n3ds for some reason it freezes the system shortly after the menu shows. :( Scratch that, it works on both o3ds and n3ds now. :D
Didn't try CakeHax (yet), but you've got a pull request. Just two remarks...
  1. There seems to be some problem with the top (just a few lines) of the progress / warning / done / failed graphics (Brahma loader version). The problem is not in the .bin files. I'll take a deeper look later.
  2. The text in the warning graphic seems a little off. Maybe align it more properly to the diagonal of the warning sign triangle?
No idea yet on what to do with that free space in the menu graphics. I'll let you know if I have an idea.

BTW, I've seen you added a FIRM0 xorpad generator. The implementation is mighty fine, but, just out of interest - is this useful for anything now?
 
Last edited by d0k3,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    I rather enjoy a life of taking it easy. I haven't reached that life yet though.
    BakerMan @ BakerMan: guys i just checked to see what's in the fortnite item shop today and saw that metallica skins...