Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a way to use title names from different languages at runtime. #132

Open
My1 opened this issue Feb 10, 2023 · 5 comments
Open

Provide a way to use title names from different languages at runtime. #132

My1 opened this issue Feb 10, 2023 · 5 comments

Comments

@My1
Copy link

My1 commented Feb 10, 2023

in #36 it was mentioned that the switch apparently doesnt really deal with unicode on filepaths, which is why the dumper throws out all non-ascii chars, which especially on Consoles with an Asian langauge set makes the title literally unreadable.

however could there be a check if there are names in other languages (e.g. english) available that are a bit more recognizable and use that in the path?

@DarkMatterCore
Copy link
Owner

If your console language is set to English, it is already being used as the default language while retrieving NACP strings.

nxdumptool/source/core/title.c

Lines 1698 to 1704 in 3c03129

/* Get language entry. */
rc = nacpGetLanguageEntry(&(g_nsAppControlData->nacp), &lang_entry);
if (R_FAILED(rc))
{
LOG_MSG_ERROR("nacpGetLanguageEntry failed! (0x%X).", rc);
return false;
}

nacpGetLanguageEntry is defined in libnx -- and yes, it retrieves the console language before retrieving a language entry from the provided NACP.

In other words, if you see Japanese text, the title you're dealing with simply doesn't hold an English string. One possible solution to this issue would be using some sort of algorithm to automatically romanize text from Asian languages, but truth be told, I don't know a thing about them.

@My1
Copy link
Author

My1 commented Feb 11, 2023

Okay granted i don't have my console set to English as i like to play my games in Japanese, and iirc you were the one asking to open an issue if needed.

And should people have to change their console to a language they potentially aren't well in anyway?

@DarkMatterCore
Copy link
Owner

You can alternatively use a rewrite branch build and dump data to a connected UMS device and/or USB host device. Characters will be preserved that way because external filesystems are not managed by Nintendo's FS driver, which is the one to blame here.

You can get rewrite builds from the Discord server.

And should people have to change their console to a language they potentially aren't well in anyway?

Well, that's exactly the reason why strings are retrieved from NACPs using the console language, and also the reason why internationalization support is part of the rewrite branch. Mind you, not all people speak English either -- my mother tongue is Spanish.

@My1
Copy link
Author

My1 commented Feb 11, 2023

I see I'll look at that. I would have thought of Maybe an option to use the en title which could he highlighted as a useful thing if a significant portion is gonna be screwed up by the naming.

But when you say ums or host device you mean one could (on the rewrite branch) do the ripping to both a computer or a usb-stick? Damn that's pretty cool.

@DarkMatterCore
Copy link
Owner

I would have thought of Maybe an option to use the en title which could he highlighted as a useful thing if a significant portion is gonna be screwed up by the naming.

This is something I could probably consider for SD card dumping alone, yeah. I'll keep the issue open, then.

But when you say ums or host device you mean one could (on the rewrite branch) do the ripping to both a computer or a usb-stick? Damn that's pretty cool.

Yes. I wrote both the UMS driver and the USB host ABI being used in the rewrite builds.

The rewrite builds are somewhat lackluster at this moment when compared to legacy builds, mostly because of the lack of a proper UI and a unified build for all features -- we're using simple CLI-based PoCs to showcase each individual group of features, like gamecard dumping and NSP dumping. Code-wise, rewrite builds already blow legacy builds out of the water.

@DarkMatterCore DarkMatterCore changed the title Foreign names and Paths Provide a way to use title names from different languages at runtime. Oct 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants