+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  i'd like to do a translation hack of a DS game, but i'm not sure where to start.
Pages: [1] 2
Author Topic: i'd like to do a translation hack of a DS game, but i'm not sure where to start.  (Read 2 times)
Snoopy007
Guest
« on: January 15, 2008, 05:41:16 am »

i've read some of the guides in the Getting Started section of the site, but i'm wondering whether those methods or tools apply to DS roms (they were usually talking about NES or SNES roms).  i already have NDS Top System, but i'm a complete beginner to this stuff.  are there any guides made specifically for doing a translation hack of a DS game? am i attempting to do something that is well beyond a novice's level? any help would be appreciated.  thanks.
Solid One
Guest
« Reply #1 on: January 15, 2008, 06:31:04 am »

well, if you have NDS Top System, then you can extract/insert any file from DS roms. you'll just have to extract the correct files you wish to edit, do it and then reinsert.

you want to make a translation hack, right? so, you can extract the file that has text data, edit it with any hexadecimal editor, reinsert and see if changes were made. it's the same with graphics in those files. you'll just have to search for the right files.
Ryusui
Guest
« Reply #2 on: January 15, 2008, 02:32:51 pm »

Well, it'd help if you had prior romhacking experience, but yeah, it's nothing terribly difficult. In fact, if you're lucky, it might even be easier than some potential projects.

Right now I've been working on "Death Note: The Kira Game". The only two stumbling blocks I've run into thus far are the font storage format (which you'll need FEIDIAN to view/extract) and the centering routine: the game already has the mechanisms in place for a proportional font, but the centering mechanism was written to assume fixed-width all the way. The neat thing in my case is that since the script files are all stored individually, I effectively have unlimited storage space to work with (well, not really, but close enough for my purposes ^_^); that, and since all the graphics files include their respective palettes, I can use Tile Molester's built-in "Import Palette/From This File" function to help me import/export graphics.

If you have the disk space and know how to make a batch file, it might be easier to simply use NDSTool to unpack/repack your DS ROMs. Rather than having to reinsert files individually, you could have NDSTool rip the entire ROM file structure to a directory, edit the files, then repack those directories back into a ROM with a simple double-click on your batch file.
Snoopy007
Guest
« Reply #3 on: January 15, 2008, 04:13:15 pm »

Quote from: Solid One on January 15, 2008, 06:31:04 am
well, if you have NDS Top System, then you can extract/insert any file from DS roms. you'll just have to extract the correct files you wish to edit, do it and then reinsert.

you want to make a translation hack, right? so, you can extract the file that has text data, edit it with any hexadecimal editor, reinsert and see if changes were made. it's the same with graphics in those files. you'll just have to search for the right files.

but i can't tell which file is the one that contains the text data.  also, is there a particular hexadecimal editor you'd recommend?

Quote from: Ryusui on January 15, 2008, 02:32:51 pm
the font storage format (which you'll need FEIDIAN to view/extract)

okay i downloaded FEIDIAN, but man the installation looks complicated... (something about needing to install php and moving files around in the system folder)
Ryusui
Guest
« Reply #4 on: January 15, 2008, 05:40:34 pm »

I recommend WindHex. You'll also need this:

http://www.romhacking.net/docs/179/

Anyways, look for a directory labeled "scenario" or something similar. In Death Note's case, "scenario" contains the dialogue files.

And yes, FEIDIAN is complicated, but if you can't view the font (which should be easy enough to find) using Tile Molestor no matter which codec mode you try using, you'll need it.
Snoopy007
Guest
« Reply #5 on: January 15, 2008, 08:22:34 pm »

Quote from: Ryusui on January 15, 2008, 05:40:34 pm
I recommend WindHex. You'll also need this:

http://www.romhacking.net/docs/179/

Anyways, look for a directory labeled "scenario" or something similar. In Death Note's case, "scenario" contains the dialogue files.

And yes, FEIDIAN is complicated, but if you can't view the font (which should be easy enough to find) using Tile Molestor no matter which codec mode you try using, you'll need it.

thanks for the help. 

i opened what i believe to be one of the dialogue files with windhex and used the table that you provided, and this is what i got...



i also tried opening the ROM using Tile Molestor, but after sliding through the stuff and trying the different codecs i still wasn't able to find anything useful.  is there perhaps a special codec i need to download for viewing a DS ROM?

or does this mean that i'm going to have to go through the painful process of learning how to install and use FEIDIAN?  :'(
Ryusui
Guest
« Reply #6 on: January 15, 2008, 10:32:59 pm »

Okay, you've managed to miss some important things here.

1. WindHex does not display Unicode characters by default. There's a menu toggle that you have to switch on; pressing CTRL+D on the keyboard has the same effect.

That said, I'm looking at the codes, and you've struck paydirt. That's S-JIS-encoded text...as if the "$page$" codes weren't clue enough. ^_^

2. No, no, no, no. You do not open the whole freakin' ROM in Tile Molester. That's why you smashed it into pieces with NDSTool or NDSTS or whichever app you used to dismantle it. There should be a file, likely in a subfolder titled "font", that should have an extension of ".nftr". This is what you should try opening in Tile Molester. If you can't get it to display properly, no matter which codec mode you choose, odds are it's an oddball storage scheme like the one Death Note uses. Mind you, if you can insert ASCII characters into the script and have the game print them properly, then you don't have much need to do this, but it's nice being able to edit the font just in case.

Other magic extensions include "*_g.xap", which are graphics files in GBA format, and ".nsbmd", which are the 3D model files. Interestingly, Death Note uses these to display some 2D graphics: you can view and edit the textures using Tile Molester. Set it to 8bpp linear, 2-Dimensional. The nice thing about both is that the palette data is also stored in the file.
Snoopy007
Guest
« Reply #7 on: January 16, 2008, 01:13:03 am »

Quote from: Ryusui on January 15, 2008, 10:32:59 pm
Okay, you've managed to miss some important things here.

1. WindHex does not display Unicode characters by default. There's a menu toggle that you have to switch on; pressing CTRL+D on the keyboard has the same effect.

That said, I'm looking at the codes, and you've struck paydirt. That's S-JIS-encoded text...as if the "$page$" codes weren't clue enough. ^_^

2. No, no, no, no. You do not open the whole freakin' ROM in Tile Molester. That's why you smashed it into pieces with NDSTool or NDSTS or whichever app you used to dismantle it. There should be a file, likely in a subfolder titled "font", that should have an extension of ".nftr". This is what you should try opening in Tile Molester. If you can't get it to display properly, no matter which codec mode you choose, odds are it's an oddball storage scheme like the one Death Note uses. Mind you, if you can insert ASCII characters into the script and have the game print them properly, then you don't have much need to do this, but it's nice being able to edit the font just in case.

Other magic extensions include "*_g.xap", which are graphics files in GBA format, and ".nsbmd", which are the 3D model files. Interestingly, Death Note uses these to display some 2D graphics: you can view and edit the textures using Tile Molester. Set it to 8bpp linear, 2-Dimensional. The nice thing about both is that the palette data is also stored in the file.

1. oh, awesome, i see it now!

2. hmm, well, the strange thing about this ROM is that there are no directories.  also, the only file types other than .txt and .dat are .pkg (not sure what this is) and .sdat (sound data), so i don't know what to do...
Ryusui
Guest
« Reply #8 on: January 16, 2008, 02:35:49 am »

If I were to guess, ".pkg" is "package", probably some manner of archive file. Hopefully it's not compressed or anything.
Snoopy007
Guest
« Reply #9 on: January 16, 2008, 02:55:44 am »

any idea how i can open it?
Ryusui
Guest
« Reply #10 on: January 16, 2008, 04:42:59 am »

Open it in WindHex or Tile Molester (make sure you use the proper codec: "4bpp, reverse-order") and see if there's anything recognizable inside. It might be a proprietary format, but if you can find text or graphics uncompressed inside, you should still be able to hack them (unless the .pkg files have some kind of checksum).
Snoopy007
Guest
« Reply #11 on: January 16, 2008, 06:21:08 am »

hmm... there doesn't appear to be anything of interest when i open it with windhex and tile molestor under the codec you specified  Undecided\
Solid One
Guest
« Reply #12 on: January 16, 2008, 01:52:11 pm »

try those codecs:

4bpp linear, reversed-order
8bpp linear

and, try searching in 1-Dimensional or 2-Dimensional, in both codecs.

if you don't find anything, there's probably compression inside.

btw, what's the rom size? 16mb?
Ryusui
Guest
« Reply #13 on: January 16, 2008, 02:33:15 pm »

DS ROMs tend towards 64MB. ^_^;
Solid One
Guest
« Reply #14 on: January 16, 2008, 04:42:32 pm »

nope. I think DS ROMs can have sizes towards 16mb. Tetris DS and Orcs & Elves are examples I have in mind. of course, few ones has these low sizes. lately, most roms have 32 / 64 / 128mb.

maybe 16mb is the minimum size of DS roms. then, I suspect that those smaller roms can have more compression than bigger ones. Tetris DS has all data compressed in LZ77, that can be decompressed easily using GBAmdc, GBADecomp, GByeBye, etc. you can see all compressed files dismantling it with NDS Top System, DSLazy or any other unpacker program.

If the rom he's working has little size, probably there's compression around. that's why I asked.
« Last Edit: January 16, 2008, 08:14:59 pm by Solid One »
Pages: [1] 2  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC