ROM Hack A Ressha de Ikou - Help Finding Text Pointers

Poopaloop

New Member
OP
Newbie
Joined
Aug 18, 2015
Messages
1
Trophies
0
Age
33
XP
36
Country
Hi everyone,

Hope someone could give me a little nudge in the right direction in a problem that has me tearing my hair out! I've trawled forums and searched every variation of words I can think of to figure this out, but so far to no avail!

I was interested in starting a translation of the Nintendo DS game A Ressha de Ikou, a transport sim series that recently saw an English release on the Switch.
However, I'm a little new to DS code (I started out on NES with Fortune Street) and was hoping someone could point me in the right direction.

Thankfully the script is in Unicode and contained in a document called SCRIPT.DAT, so finding it was simple enough. I did some messing around and identified the following:

As an example, at $018414F2, the text "会話は画面をタッチしなくとも..." starts. There are bytes before this that dictate the character portrait, their expression, and what is happening on the bottom screen, which I believe are as follows:

07 05 (instruction to change bottom screen), 02 00 01 00 (which screen to change it to), 00 00 00 00 (default character portrait with default expression) - and then the text.

So, as I understand it, for this text box this all actually starts at $18414E8 - the byte preceding this is then FF, which I assume is the end marker for the previous block. From what I can see, the end marker has to be on the third line of dialogue - 00 00 is a line break, and the end code is always 00 00 02 00 xx FF - removing any previous line breaks in the text stops this from working, so I believe it has to be on the third line. As you can keep the text going by using this end code, I believe the pointer likely just applies to the first bit of appearing text, and doesn't reference the size of each text box directly.

I've then applied this logic to the first block of text that appears in the game, "はじめまして。私が..." which is at $01841388, which I believe (when the header data detailed above is included) starts at $0184137A.

However, try as I might, I haven't been able to use this information to find where the pointer is stored. I've tried following advice I've seen such as taking off 4000 to account for where arm9.bin is stored, or taking off 137A00 for where overlay 1 is stored (although, not that I completely understand overlays, in honesty!) but haven't had any luck. I've tried flipping it for little endian - I've tried everything short of giving up, which is looking more and more appealing.

Can anyone point me in the right direction? I didn't want to ask until I'd tried everything I could think of but all this wasted effort is getting me nowhere!

Thanks for any help you can provide!
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
718
Trophies
1
Location
Tree
XP
2,139
Country
Poland
As I looked for the text: "はじめまして。私が..." starts at 44988h in scripts.dat file. However I'm guessing you would like to know where potentialy can be pointer to begining of this tutorial in game, I guess possibly in arm9.bin but it may be relative pointer or hidden. As for me first I would try to deliver only this file modified to check if the game can handle it, but i cheked and nope, it doesn't work. Pointers are needed.
 
Last edited by plasturion,
General chit-chat
Help Users
  • No one is chatting at the moment.
    gudenau @ gudenau: https://github.com/gudenau/SourceAmalgam