llakssz / ciangel Goto Github PK
View Code? Open in Web Editor NEWThis project forked from machinamentum/firmwaredownloader
Download GOOD CIAs on your 3DS!
This project forked from machinamentum/firmwaredownloader
Download GOOD CIAs on your 3DS!
Those games name are not rendered properly and thus are unreadable.
example :
џç┤џû▒πâàπâ╝âπé┑ Ver. 1.0.1 џû▒π (JPN) CTR-U-BRAJ
which should be :
新・ ロロナのアトリエ はじまりの物語 Ver. 1.0.1 更新データ (JPN) CTR-U-BRAJ
@llakssz Could you please post the latest .cia file directly under the 0.50 release? Also, would you then be willing to generate a QR code with that file link and post that image on the release page as well? That would allow users of the latest FBI (redirect patch merged, next release will play nicely with github) or QRWebLoader to install directly from github without downloading the file separately.
Been getting stuck at Downloding contents - 1 of 2 for a while. Testing with a relatively small title (~90MB). Threw in a bit of debugging code and it seems to be failing on the linearAlloc in DownloadFile (It's returning nullptr). There's no checks on the call, so it just sits there if this call fails.
Title I'm using is Pokemon Picross: 000400000017C100
I found a bug. When typing in the text to search for a name, the keyboard animation freezes. This makes it hard to see the special characters menu and to see if you capitalized the letters.
Looks like sometimes the titlekey database lacks an encrypted titlekey (Since only decrypted can be submitted, and the admin encrypts them manually, I'm guessing). We should probably filter those out.
Save the current version (no real relation to the CIAngel release version is needed)
Increment it by 1 each time. Pass in the version when creating cia.
The max version is FFFF. If we ever get there, simply delete the installed app and go back to 1 and start again.
If CIAngel is in the background and you try to close it from home menu it sticks on the "Closing Suspended Software" screen and requires a Hard Power Off to fix.
DownloadTitle(selected_titleid, selected_enckey, "/CIAngel/" + selected_name);
This can cause problems, I just need to remember about this!
Certain games will never appear in the search results no matter what is tried
Have tested with Etrian Odyssey Untold, which only brought Etrian Mystery Dungeon, and Azure Striker Gunvolt which brought up nothing related
It can confuse some users as to why there is a 'ticket' folder in the CIAngel folder, because the tickets are not dumped anymore, they are installed directly.
So, good to stream and send the data when it is needed instead of building a file, reading it, then deleting it.
Or at the very least, write the ticket to the tmp folder.
Maybe if we can hook the exit call, delete the tmp folder when the app exits?
I've seen quite a few users who have installed a CIA with a bad ticket ages ago, then tried to use CIAngel to install a CIA only to have it fail at 99% because of the bad ticket.
One way around this would be during install mode, delete the existing ticket before we install the new one. I can't see it causing much of an issue, any objections?
Instead of the bool to check whether to install directly or make a cia, have a value that has a 3rd option of installing just the ticket.
This could be limited just to titles of the same region as the device, and could be made not available for DLC because from what I hear, that is not available to be redownloaded.
This seems like the best place to keep track of what we're working on, but if it isn't, let me know.
I've started work on parsing an encTitleKey.bin and letting the user choose a key/id pair. I won't be able to work too much on it today besides what I've already done (currently drowning in homework) but it should be ready very soon.
Counting search and UTF support as a single issue, since with the new JSON format coming from that nfshost site we now have unicode escaped strings.
This is causing download crashes, they is some code that creates the directory somwhere, but this should probably be a startup check as most code expects there to be one
and to https.
We will need to update to reflect this, but there is now also a https redirect, which breaks the download
Seems to happen more often when the game is already installed, but I'm getting the black screen w/ you have to restart message at the end of install (While CIAngel is still running)
If using CIAngel for the first time and no '/CIAngel' folder exists on the sd card, the program hangs when you try to download the keyfile.
Easy fix but I just don't want to forget about it!
https://github.com/astronautlevel2/StarUpdater has the ability to update the updater somewhere - maybe you could add this into CIAngel instead of having to rely on QR and FBI @astronautlevel2
Would you be able to re-add the input.txt support and also, when using the auto-install feature, could you have CIAngel delete the extra tmp folders and files please?
When I have CIAngel running and close my N3DS XL and then reopen it, it gives me a black screen that doesn't respond to input as far as I can tell and I have to force shutdown my system.
So I managed to compile a cia version of CIAngel 😃 . It works and has been compiled with commit 9bca282 . Things of note are:
Feel free to add this to the current release if you want.
Have had a couple users complain this particular title is failing to install, I thought I'd already tested it, but going to re-download it just to verify.
Since CIAngle is based on the sharing of the titleid and their encrypted key, it would be better to have a nicer input method, maybe something like qrcode
You probably don't need the gfxFlushBuffers() call in getInput() particularly when combined with the gspWaitForVBlank(), and it makes the screen flicker while you're typing a search... I'll fork and poke at this myself a bit later if someone else doesn't chime in with a proper way to rewrite the screen draw first.
That way people can tell how outdated their version is, mostly because I'm personally too lazy to increment a version number all the time 👍
Upon selecting a title to download/install, able to press A to initiate immediately, or able to press X (for example), to add to the queue.
'Process Queue - N items ' will be a new main menu item, where the queue will be started.
All items in the queue will use the current install method (cia/install/ticket).
Queued items can simply be a struct on a vector, containing all the necessary information needed for all install methods, for example titleid, key, full output path, data in struct is used as necessary for the current install method.
Best commit ever! I tested it out and here's some extra things that I think should be changed:
Looks like the make_cdn_cia used by FunKeyCIA is inserting 0x00 as padding for byte alignment in the CIA (Since sections are 0x40 aligned), while CIAngel is inserting 0xFF as padding.
Since we cannot search for Japanese games by their name (Ciangel has no foreign keyboard) , and many jp games/apps don't have a space in their names, such option is needed and would be good in general, like if we have no idea on what to download.
examples:
ニコニコ
クラブニンテンドーピクロス
いつの間にテレビ
いつの間に交換日記
カルドセプト®
ニンテンドービデオ
美人時計
スーパーマリオブラザーズ
etc...
Had a download fail earlier, but as far as CIAngel was concerned it was a success, this is bad since it creates a corrupt CIA. "Gracefully" handle this by failing spectacularly instead of creating a bad CIA
Possibly, needs double checking on other console units as well.
Show some sort of DL speed indication
Right now some things don't catch errors, like downloading wings.json. This can be confusing for users when on startup it fails to download but doesn't tell them so.
When installing tickets through FBI, the tickets generated with FunKeyCIA never give errors while some of the ones with CIAngel do. It seems so far that all the extra tickets that CIAngel creates have errors because I tried to count the number of ticket install errors and they were as high as 600.
Sometimes (about 90% of the time) it will just crash and not install the tickets. I found its about with certain games, like smile basic works fine in the queue but PokemonOR just crashes once it's done(but it does not install the tickets)
This is something I will be looking in to. Right now all the files are downloaded to the SD card, then copied around into a new file to create a CIA. Not sure why we don't just download them as we build the CIA, would be faster that way.
Working on shitty hotel wifi at the moment, so not sure how my progress will go on this one for the next couple days.
When I compile, I get this output:
main.cpp
arm-none-eabi-g++ -MMD -MP -MF /home/ev1l0rd/CIAngel/build/main.d -g -Wall -O2 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/home/ev1l0rd/CIAngel/include -I/opt/devkitPro/libctru/../libhbkb/include -I/opt/devkitPro/libctru/include -I/home/ev1l0rd/CIAngel/build -DARM11 -D_3DS -fno-rtti -fno-exceptions -std=c++11 -c /home/ev1l0rd/CIAngel/source/main.cpp -o main.o
/home/ev1l0rd/CIAngel/source/main.cpp:17:18: fatal error: hbkb.h: No such file or directory
compilation terminated.
make[1]: *** [main.o] Error 1
make: *** [build] Error 2
And I don't end up with any build files.
DevKitPro is installed to /opt/devkitPro/ .
Ubuntu 14.04.
Can't find the Title Key anywhere online either... only Rytmik Retrobits and Rock Edition, never the original for some reason
Some comments on the forum got me thinking, it may be possible to utilize a menu type system similar to Luma3DS's config menu instead of the (quickly dwindling) collection of keys we are using right now.
Ideas on this would be initialize the console on the bottom screen instead of the top, only show the keyboard when we actually need to get user input (I can't really think of a point at which we'd need both console output and the keyboard showing, if we can write positioned text on the top screen), and clear the bottom screen of the keyboard/switch back to console mode when we are doing something such as installing.
Might be quite a bit of code change, but it would result in a far cleaner and easier to use UI. It would also allow us to implement a config menu for changing some things like whether to export system or DLC tickets, for example.
I'm back home now, so will take a look at this over the next day or so. This sound like something you'd accept as a PR llakssz?
When searching for the mickey ciangel 0.7 gives error and Restarts 3ds.
Downloaded as CIA, Installed Directly, etc. multiple times to confirm; always endlessly loops the Nintendo 3ds Logo upon run, rendering it unplayable. The other Picross games work fine, just E6 messes up.
Always says the length of the inputs is wrong
With the recent update it would be possible to do an ETA on the download by dividing the amount left by the average speed (after theyve both been converted to the same format, ie kb, mb, etc).
Also, as I understand it, cryptofixing within ciangle is currently not possible to cryptofix, but would it possible to download the seeddb from that title key site for use with Decrypt9?
Opening a new task for this one, have a few hours before bed tonight, might as well take a look at this.
At the moment, region and install options aren't saved upon exiting. This is sorta annoying, because I have to set the region each time to EUR, and change install mode to CIA. Saving these settings in a file would get around this issue.
I'm looking into this right now, having an "install mode" where instead of creating a CIA, it just downloads directly to an installed state. I've already figured out how FBI does it, and am just working on implementing the functionality.
This will be a different mode compared to normal, probably switched with R or some such, it won't replace downloading and creating a CIA. It's just one less step for people who just want to install something.
If possible I would like an option to view the Title ID of a game within Ciangel. Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.