Hacking [Release] FunkyCIA2 - build CIAs from your eShop content. Super easy and fast! (**2.1 FIX!**)

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
I'm pretty new to the 3DS flashcard scene, so can someone tell me what this does, preferably in layman's terms?

well, you don't need a 3ds flashcard to necessarily use it, but this takes a file from your 3ds, and turns the eshop games into files that you can backup/share/install later if you have access to 'devmenu'
 
  • Like
Reactions: chrisluna413

kevin_1351

Well-Known Member
Newcomer
Joined
Apr 20, 2014
Messages
88
Trophies
0
Age
29
Location
Lugano, Switzerland
XP
497
Country
Switzerland
>Thanks cearp, if I'll get some time in between my skiing lol I could maybe create a UI for it using pyQt. Also there are somethings that could be resolved in a different, more optimised way.

It's an awesome tool though ;) Thank you so much buddy, and merry Christmas!
 
  • Like
Reactions: cearp

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
>Thanks cearp, if I'll get some time in between my skiing lol I could maybe create a UI for it using pyQt. Also there are somethings that could be resolved in a different, more optimised way.

It's an awesome tool though ;) Thank you so much buddy, and merry Christmas!

that would be incredible :) is pyqt easy to work with?
yes i am sure it can be improved :) i'm new to python!
 
  • Like
Reactions: kevin_1351

kevin_1351

Well-Known Member
Newcomer
Joined
Apr 20, 2014
Messages
88
Trophies
0
Age
29
Location
Lugano, Switzerland
XP
497
Country
Switzerland
that would be incredible :) is pyqt easy to work with?
yes i am sure it can be improved :) i'm new to python!


Well it is quite easy actually. It's definitely superior to tkinter and wxpython etc. The "hard" part is to understand how to restructure your code so it works well within Qt. You'll have to use threads in order to make it work (else your UI will freeze) and in order to communicate between threads (and the UI/main thread of course) you have to use signals/slots, they're like eventlisteners if you come from Javascript or Actionscript. With those you pass arguments and trigger functions in the main thread. It can get tricky sometimes, especially when you're dealing with complex algorithms and databases etc. Now in this case that won't be a problem :grog:. It's really cool though, and really makes it more interesting. Also, don't code everything from scratch. PyQt comes with a designer tool in which you can design your layout with ease. Later that gets exported to xml which then with pyQt gets converted into python code.

Some last tips (cause I had to learn it the hard way):
  1. Everytime you change your layout in the Qt designer and export-convert it into python, you old work gets lost of course. Instead of recopying everything you've changed in your Qt code to the new version by hand. Use a diff tool like Beyond Compare or Winmerge to do the job. Trust me, it's MUCH easier.
  2. Create all your classes etc in a separate file and call them from within the worker thread (in the Qt file) later on.
  3. Never call other class methods directly from the worker thread. Use signals instead and let the main thread call them.
  4. If you want to store some basic data and display them in a list element, don't use SQL. A simple xml file is much easier to deal with in this case.
That's all you need to get started I guess. I'll probably do it anyway once I get time but I figured I tell you since you were so enthausiatic about Qt :).
Again, keep it up. You've made yourself a great first tool ;)
 
  • Like
Reactions: cearp

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
Well it is quite easy actually. I'll probably do it anyway once I get time but I figured I tell you since you were so enthausiatic about Qt :).

ha thanks for the kind words, well, i have dealt with threading in c++ and i really didn't enjoy it! but, i'm not an expert programmer at all, i usually just learn as much as i need to, and no more. thanks for the tips, that's helpful, i appreciate your reply. what is the best (opinion) thing to make a multiplatform gui in, i would have thought java?
 

taha1990

Well-Known Member
Newcomer
Joined
Nov 23, 2013
Messages
48
Trophies
0
Age
33
XP
126
Country
United States
make_cdn_cia is crashing and when it generate a cia it failed to install in devmenu any suggestion?
but holy shit the generated CIA installation speed is fast too bad it doesn't complete
I really hope the speed is not because the CIA is corrupted

edit: I guess the fast CIA installation is because the game already exist

the CIA wont work if I dont own the content? I tried my own cia converted game
then generate a cia from the dowloaded content from FunkyCIA
the other non working cia with the same problem is fire emblem pirated eur DLC
since the one I own is the US dlc in an updated 3DS
 

kevin_1351

Well-Known Member
Newcomer
Joined
Apr 20, 2014
Messages
88
Trophies
0
Age
29
Location
Lugano, Switzerland
XP
497
Country
Switzerland
ha thanks for the kind words, well, i have dealt with threading in c++ and i really didn't enjoy it! but, i'm not an expert programmer at all, i usually just learn as much as i need to, and no more. thanks for the tips, that's helpful, i appreciate your reply. what is the best (opinion) thing to make a multiplatform gui in, i would have thought java?


Yeah I do also quite enjoy Java. But it has to have Java installed on the machine obviously. And that, I'm not a super big fan of. For tools like this, I think python and qt are the best choice. There are almost no downsides, the only "significant" one is that when you generate a standalone exe from a python program+ui the filesize will get quite big. We're talking 15-20 mb whereas the filesize for an equivalent c#/++ Java program would be under a megabyte.
A big downside to Java (although there are some workarounds afaik) is that the UIs you create aren't using native elements. So your applications will not look native. So I really like pyQt for many applications where execution speed isnt a big issue. I'd say it's the best if you take into account the time it takes to get things done.

But of course this is just my opinion.
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
A grand total of 179

hmm, i tried the massive amount of contents i mentioned, on mac and linux, it got stuck at the same file each time (can't open .. 'certain' file)
i had a look at the source, i tried to increase the buffer, i didn't really know what i was doing but i thought it was worth a try, i complied it and made no difference, i'm sure it must be possible to fix make_cdn_cia and make it work better :)
---
But of course this is just my opinion.
very cool information, yes i don't like the ugly interfaces most java apps have. 20mb is no problem in reality. i'm working on preprocessing the ticker.db right now so i can see what data is invalid (as in, i want to ignore tickets that are fake/not from eshop)
i wanted your opinion so that's great ha, thanks again.
 

kevin_1351

Well-Known Member
Newcomer
Joined
Apr 20, 2014
Messages
88
Trophies
0
Age
29
Location
Lugano, Switzerland
XP
497
Country
Switzerland
(...) i'm working on preprocessing the ticker.db right now so i can see what data is invalid (as in, i want to ignore tickets that are fake/not from eshop)(...)


Well isn't that as simple as requesting the download with those tickets and if it fails it means that it's a fake one?
(since I know nothing about how the ticket system works I might be completely wrong lol)
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
Well isn't that as simple as requesting the download with those tickets and if it fails it means that it's a fake one?
(since I know nothing about how the ticket system works I might be completely wrong lol)

well we don't need to 'request' anything, they are accessible by anyone, but yes, if makecdncia complains then i can see that it is not the right ticket, but it would be better to check before than to brute force every ticket
 

kevin_1351

Well-Known Member
Newcomer
Joined
Apr 20, 2014
Messages
88
Trophies
0
Age
29
Location
Lugano, Switzerland
XP
497
Country
Switzerland
well we don't need to 'request' anything, they are accessible by anyone, but yes, if makecdncia complains then i can see that it is not the right ticket, but it would be better to check before than to brute force every ticket

But how can you check it? Or do you already now the protocol/pattern for the tickets? Or is it much easier than that?
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
But how can you check it? Or do you already now the protocol/pattern for the tickets? Or is it much easier than that?

i'm finding that out at the moment, or, trying to guess it at least, and the user can override it etc if they are sure the ticket is correct (for example, at the moment console bundled games would be ignored because they appear 'fake' in a way)
 

liomajor

Well-Known Member
Member
Joined
Jun 10, 2008
Messages
1,468
Trophies
0
XP
1,373
Country
United States
Found a bug in make_cdn_cia.exe :/

When there are more files, make_cdn_cia.exe crashes and fails to generate cia,
after it failed, funkycia starts again and breakes cetk.

Example > 0004008c00009800 (EUR got 74 files) < fails generating cia
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu
Found a bug in make_cdn_cia.exe :/

When there are more files, make_cdn_cia.exe crashes and fails to generate cia,
after it failed, funkycia starts again and breakes cetk.

Example > 0004008c00009800 (EUR got 74 files) < fails generating cia

yep, i've been wanting to build a cia that has 711(!!) content files for a while... :( i hope someone can fix the source...
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,515
Country
Tuvalu

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: The Castlevania game was on the PS1 so that's cool +1