ROM Hack Attempting to translate a game

ComicMaster148

Angry Blackman, and amaetur game collector
OP
Member
Joined
Aug 23, 2018
Messages
541
Trophies
0
Location
Hobbit Hole
XP
2,827
Country
United States
Im attempting to transalte sakura wars for the ds. And I found the files where text is stored (CAMPDATA.DAT & CITR.DAT). I found the text only problem is I dont whether just cutting, translating, pasting the file will either do as I would like it to do or just garabage? And if I can just cutting, translating, pasting the file. What translation software could I use to easily translate the huge amount of text in the file?
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
The only easy translation software for random games is that which you write yourself -- games are generally noted as being custom from the ground up and you have to handle it. Any attempts at generic toolkits (see something like atlas and cartographer or even the stuff the Russian hackers tend to favour) end up being almost programming languages unto themselves. There are a handful of formats some devs might use on the DS (BMG being seen in various games) but even then you are still going to have to fiddle with things yourself. Many get along well enough with spreadsheets though.

Copy and editing elsewhere is only going to get you so far -- most likely the game has pointers to tell it how long a given line is (parsing through what is essentially read only text is a waste of resources so most games will note how long the text is, or have fixed lengths for things like menus) and that will see you come unstuck pretty quickly as matching lengths gets very hard, very quickly.

You might also have some font issues if the game does not have all the characters you need.
 

bobokat1

Member
Newcomer
Joined
Jun 22, 2020
Messages
5
Trophies
0
Age
30
XP
48
Country
United States
Im attempting to transalte sakura wars for the ds. And I found the files where text is stored (CAMPDATA.DAT & CITR.DAT). I found the text only problem is I dont whether just cutting, translating, pasting the file will either do as I would like it to do or just garabage? And if I can just cutting, translating, pasting the file.I can’t find the right software and have already thought about using the translation service https://thewordpoint.com/services/translation-service/legal.
What translation software could I use to easily translate the huge amount of text in the file?

I agree, I think you will not find a universal tool. Either write the software yourself, or ask someone to do this for you.
 
Last edited by bobokat1,

Dflower

Member
Newcomer
Joined
Mar 9, 2021
Messages
6
Trophies
0
Age
33
XP
79
Country
Ecuador
Does anyone know a program to fix pointers? I tried to use Atlas but unfortunately it closes when I open it, and the texts in the translated game go very wrong.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
That will depend upon the pointers and how they are programmed into that game, or indeed file if a game has multiple formats.

Some of the older tools like atlas and maybe some of the Russian efforts (see kruptar 7 and oriton, https://romhack.github.io/doc/kruptarPlugins/ is for plugins but can serve as a bit of an overview) can struggle as they are aimed more at things working within a memory bus than at file level like most DS stuff.


Do make sure you can't abuse a spreadsheet first of all -- many times a game will end a section with 00 or something obvious that does not appear (or only appears a couple of times and thus can be manually deleted) in the rest of the text section. With that in play you can instead then do a search with whatever hex editor supports such things (I like hex workshop here but there are others, can probably also do a binary grep if you really wanted) to get a text list of locations of 00 or whatever indicator you have.
If you know the pointer format* then should not be too hard to figure out a new pointer list from the search noted above and go from there.


*standard, offset and relative being the big three.
Standard are just numbers that count from the start of the file. Offset tends to be it starts from a given section (usually the text section) so it just a simple subtraction from the list generated above, and relative where the pointer value is added to the current location/location of the pointer itself in the file (there are reasons for doing this in coding as it can be faster). Relative are not so common and easy enough to spot -- if you line up the original file locations of end of text sections then each new line will be out by a further fixed amount (if you are starting from the start and each value is say 4 bytes then you will be out by 4,8,12,16,20.... bytes).
There are other things like I have seen shifted pointers (touch detection and various aspects of 3d files here), and some pointers will use bits in them to indicate things (NARC archives quite notably use the upper bit to indicate a subdirectory as DS game files will tend not to need the full 32 bit address range) or have bits in between pointers to indicate formatting or maybe just length values. This also says nothing of things like Wizard of Oz where the whole thing was a quasi scripting engine and each segment (think linked list) had a length value.

After that then yeah manual work, you build a tool to fix it as you are editing things.
 
  • Like
Reactions: Dflower

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    AncientBoi @ AncientBoi: I just Luv having CEX :)