NeatDS : Tidy up your NDS ROM Collection by auto rename it using NDS Banner Text

I wont share this on a thread since this tool is EXTREMELY SIMPLE that deserve no thread. :sad:
The idea is, how to organize my NDS Collection with pretty name format? but yeah, im too lazy to do manual renaming one-by-one because my NDS Collection is too much ! :(
Then i look at my NDS tools, and i remember that ndstool is the only tool that directly read the NDS header, with its help, i can get the NDS Banner Text, then use it to rename each NDS File. :unsure:
Until i realized that dump file result from ndstool still contains garbage, so i must trim and remove those garbages, and keep the banner text information. :wtf:
Finally, after trimming and removing garbages, the banner text ready tobe used as my project part. rename NDS ROM File with its Banner Text data :grog:


  • Like
Reactions: 6 people

Comments

is it from 4 chars game id, after 12 chars game title?
if yes, its pretty easy to read, :wtf:, and yes i have added them on the NeatDS update (waitt i'll update soon)

im forget, which identify the region, the first chars, or the last one :unsure:

and for the structs i keep on studying it, its address... i keep found null when i directly read the rom instead of banner text :cry:

ok i will send a pm for the debug :blush:

im almost forget that c++ uses legacy name for their data type, u8 in cpp is similar to char, u16 in cpp is similar to ansichar, and u32 in cpp is similar to widechar on my IDE (depend of what kind its base type, its a char, or string) :toot:

knowing japanese language, and cpp is cool for me
i have once change my phone language to japanese, then i get confused after 5 minutes :rotfl:
 
  • Like
Reactions: 2 people
Yeah, the game id is the 4 chars after the 12 char title, and its the last one that's the region (IRAJ is region Japan (Pokémon White (J)))
 
  • Like
Reactions: 2 people
@cimo95 The game ID is the 4 letter code, right?
In that case, the last letter should signify region. For example Phantom Hourglass USA is AZEE. EUR is AZEP. Japanese should be AZEJ. For other regions I am not sure.
 
  • Like
Reactions: 2 people
@The Real Jdbye sorry to confuse you :sad:, yes.. yes.. if you mean the game code is the 4 chars, thats true, and i have added them on my update, i thought that the game code should contains similar to NTR-IRDO-EUR :grog:
 
  • Like
Reactions: 1 person
@Pk11 ah, thank God, i have added them :rofl2:
hang on, im on the way home, i will build quicly the debug for you :lol:k
 
  • Like
Reactions: 2 people
The problem with this application freezing/crashing on non-English characters is going to be related to the character set being used by C++. Look at the "locale" component of the standard library.

Beyond that, this is a nice little toy/example that reads from specific parts of the header in standard DS ROM dumps. I will point out, though, that No-Intro datfiles exist and contain much more comprehensive/regular names for ROMs. A simple commandline interface which could quickly load the datfile, hash all of the .nds files in a directory, and rename them based on hashes would be super useful. You could even try parallel processing with multithreading. Existing solutions for doing this are pretty unstable/bloated/involved, so a simpler one would be very useful to a lot of people.
 
  • Like
Reactions: 2 people
I meant the long code at first, but then you reminded me of the 4 character game code, so I went and checked if the region is part of the 4 letter code, and indeed it is.
But looking at the updated images that is not exactly what I had in mind. I meant adding (E)/(U) or (EUR)/(USA) to the name. But maybe you could make it configurable so people can choose the naming format they want then everyone can customize it to their liking :)
 
  • Like
Reactions: 2 people
@PityOnU thanks for your suggestion :blush:
this tool was made with Delphi a GUI Pascal, i even dont know how to code in c++ tho :(, this release is still for ansi char, i still wondering if i use wide char or u32. This problem already known by @Pk11 and under "construction". Idk why, but my system is english, it running well tho, :unsure:
for multithreading, i have tested it, but because each process need their own time (and idk when the process finished) i keep on single thread :lol: , some random ndstool.exe file on temporary may fix this multithread problem :unsure:

@The Real Jdbye oh that right, from the 4 char code i can generate the region code, i will add it soon, :lol:, thank for your suggestion
 
  • Like
Reactions: 1 person
This is may the cause, my system keep run NeatDS smoothly (i have made this setting to Japanese for long time, to play japanese VN)

IMG-20200109-195112.jpg
 
  • Like
Reactions: 1 person
Ah yeah, I just tried changing mine to Japanese (Japan) (it was on English (USA)) and now ポケモンダッシュ.nds and Покемон Даш.nds both work, but 포케몬 다스.nds still doesn't, which makes sense since Japanese and Cyrillic are both supported by Shift-JIS, but Hangul isn't. Is there a way to make Windows see your program as supporting Unicode and just use UTF-8?
 
  • Like
Reactions: 2 people
@Pk11 looks like i must made many format according to system encoding,
a temporary solution is, you can use Locale Emulator (this software is loved by most VN lovers tho ^_^) (https://pooi.moe/Locale-Emulator/) to emulate the software into locale you want :/ , for future use, i wonder if im using this software as locale handler instead of creating many NeatDS encoding versions
 
  • Like
Reactions: 1 person
@cimo95
Seems I'm unable to pm you about the thing I mentioned in my review.
I meant basically being able to point to additional text/config files that can replace the old nds names in the file with the same ones replaced by the application. This would be useful for things like launchers with emulator support
 
  • Like
Reactions: 2 people

Blog entry information

Author
cimo95
Views
351
Comments
68
Last update

More entries in Personal Blogs

More entries from cimo95

General chit-chat
Help Users
    K3N1 @ K3N1: https://i.ibb.co/gTVKLHF/bill-king-of-the-hill.gif