Romhacking => Help Wanted Ads => Topic started by: cribscardigan on January 20, 2022, 09:37:41 AM

Title: [Technical] [NDS] Lingo - Replace Dutch Word Bank With English Word Bank
Post by: cribscardigan on January 20, 2022, 09:37:41 AM
Hello! I've been attempting to replace all the Dutch words with English words in my Lingo NDS rom (a word game similar to Wordle). I have the lists and do not need any assistance with translation or graphics...only in getting the word lists into the game. Any help appreciated. Thanks!
Title: Re: [Technical] [NDS] Lingo - Replace Dutch Word Bank With English Word Bank
Post by: FAST6191 on January 21, 2022, 10:06:44 AM
There have been some fiddlings with word databases in DS games -- Scribblenauts being among the more noted in this. If this is going to be a simple lookup then it also seems like something that would work (some people want to try to translate language learning tools) give or take scoring and word lengths maybe making life harder (Dutch has compound words still for one) but different discussion/by all means try it. I don't know what either of those games are but will assume it is a general knowledge game rather than something that could plausibly be multi choice, or basically be a puzzle with 20 correct answers that you don't have to do a lookup for (a lot of these sorts of games are that historically, though the DS should have enough grunt to do it properly but also if this is a quick turnaround game for local people... I have seen far more sloppily done stuff in DS puzzle games). I will assume dictionary/word list for this though.

That said if you can edit text you can probably find this -- relative search for words you know are in the game (which here should be "pick something in the average Dutch dictionary, maybe higher up in the starting with A region to maybe dodge compression* if that is a possibility") being a good start. Would also skip accents and IJ if that is going to be a separate character (screenshot appeared not to have it despite having spaces for it)
If there are different regions (quick search says no and it is one of the rare Dutch exclusives) then those can be things to compare. Do also scout through the files to see if there is a logical place for it to be -- being Dutch speaking devs for a Dutch game I don't know what we will see here (could be English, both because programming happens in it to the point several Dutch programmers I have spoken to have complained Dutch almost ends up as a second language for them and if they thought there is scope to sell it to another region you probably want a language other people speak, but I would not necessarily bet on that) but obvious names, directory names, elimination of clearly different purpose files... all good things to utilise.

*you are likely to gain a fair bit of space compressing a dictionary/conjugated verb list as you will tend to have a lot of similar words all next to each other. At the same time you don't really want to be decompressing a whole dictionary every time a new word appears. Might split it down by character/word count for given characters (how many will sort say a music collection by name of band but have all bands starting with q in a folder when there are maybe 5 and more usefully shoved in with another letter, compared to all bands starting with "the" making t massive), and that also works for lookup purposes as you can fetch a small list more easily than handling a whole dictionary.

Whether it would be in RAM all the time I don't know -- the DS has a bit of memory but not enough that you can be wasting several megs on a dictionary that you can do a lookup for.

Beyond this then we can either go the corruption route (change things, preferably a good candidate from the stuff noted above, see what happens in the game) or the tracing route where you note what the game reads either when you press go, or possibly as you enter characters (if doing a lookup you might not want to waste the time), and then follow it back up the chain to where it reads a file on the DS. Tracing is harder on the DS than it is on more classical "everything in one great file"/incbin approach of cartridge based affairs prior to the DS as you have a optical disc like file system and data grabber to go through first rather than having something basically reading it directly but it is only another step or two. I don't have a guide to it handy for the DS, though it is mainly going to be (such things being much the same whether you are on a NES or a modern PC game) along with the B7 command of , no$gba debug probably being the debugger I suggest for the time being.