I can't guarantee anything,
No need - if you get a chance to take a look it would be great, but I certainly don't think guarantees are necessary
It might even be a limitation of Region4 itself, and I'm not sure how that would be fixed. Your title launcher uses Region4 to launch titles right? HANS launches titles through Region5.
Well, HANS is integrated into the launcher so either HANS or R4 can be used when booting titles.
titles.c is the one that takes care of title launcher, yeah? And regionfree.c is for region free launcher on the main menu?
Not quite. titles.c handles retrieving the title information from the device and building the title menu. If the title is being booted using R4 then yes, regionfree.c is used to boot it, whether it's a cart or title being booted from the main grid or the title launcher. If HANS is being used then boot.c is used to launch hans.3dsx.
I know very little of actual 3DS programming so a lot of those functions might as well be Chinese to me.
I was in the same position when I started. The launcher is quite complicated, especially in terms of how it handles booting various different types of apps/titles.
Also, another thing. Uh, what's the best way of setting up dev environment to compile this? I had one working for compiling themehax back then, but I've heard lots of complicated stuff about compiling 3DS homebrew where you needed to have certain versions of different libraries installed in order to things to compile properly and a lot of stuff like that.
You need to install devkitarm, devkitpro and ctrulib first:
http://3dbrew.org/wiki/Setting_up_Development_Environment
You then need to update ctrulib to the great-refactor branch:
https://github.com/smealum/ctrulib/tree/great-refactor
Then you need to install the 3DS portlibs:
https://github.com/xerpi/3ds_portlibs
I was originally developing on Mac OS X, but found for some reason that the launcher would no longer boot properly when the binary was built on a Mac. So I switched to a Lubuntu VM and it's fine now.
@mashers
When booting, if the user keeps Y held, skip the loading of all features and start Netloader for 3dslink?
Good idea. I've logged an issue for this. As I said in the OP, please log any future feature requests on GitHub or PM them to me to make sure I see them.
Sure:
https://github.com/smealum/ctrulib/...9f/examples/get_system_language/source/main.c
But using strings from another language would probably require a moderate amount of code to read from a text file or something. It'd be nice to see different translations of the launcher for sure, though.
Thanks for looking into this. I didn't know it was possible to get the system language. With regard to adding a feature for this, it would require a lot of code to be added. Everywhere text is being drawn, a check would need to be added for which language to use. A language database would then need to be consulted to obtain the correct string for the current language, with a fallback (probably to English) if there is no translation for the currently selected language. All of this is possible in theory of course, but it would very likely require the removal of something else to make space for the additional code.