Naruto Shippuuden: Dairansen! Kage Bunshin Emaki - Translation & Hacking Information


Last Update: August 11th, 2008
Translation Information
Testing Screenshots (latest)
Testing Screenshots (old)
Technical Documentation - .msg File Specifications
Downloads - Utilities
Deprecated / Unsupported

Translation Information

The project is stalled right now because it is lacking a translator for the game's script, because I am by no means fluent in Japanese. If you happen to know someone who is, and who might be interested in translating the game text, please contact me via the first of the following links. More information about the status of this translation is
here and here.


Testing Screenshots - May 24th, 2008




.msg files from the field and field_event directories can now be dumped by HeadSplitter. This shows some improvised translation and localization of the first event .msg file, data/msg/field_event/mfe000.msg, which covers Naruto and Jiraiya's return to the village.


Testing Screenshots - May 21st, 2008





Technical Documentation - .msg File Specifications

Example file: data/msg/ShopMessage.msg

00000000 | 03 00 00 00 | 58 00 00 00 | 81 75 82 DC | 82 A2 82 C7 | ....X....u......
[...]
00000050 | 82 A4 81 49 | 00 00 00 00 | 08 00 00 00 | 1C 00 00 00 | ...I............
00000060 | 34 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | 4...------------

03 00 00 00 - Amount of messages in file, here 3
58 00 00 00 - Pointer to message pointer table, here at 0x00000058
xx xx xx xx - String data in Shift-JIS
08 00 00 00 | 1C 00 00 00 | 34 00 00 00 - Message pointer table; contains the offsets of all messages, here message #1 is at 0x00000008, message #2 at 0x0000001C and message #3 at 0x00000034


Downloads - Utilities

.msg File Custom Dumper - Project 'HeadSplitter'

--------------------------------------------
HeadSplitter - NS Dairansen .msg file dumper
  Written in April/May 2008 by xdaniel/DZD
--------------------------------------------

Dumping in progress...
  Message file:         mfe000.msg
  Dump target file:     mfe000.msg.sjs

Done, 10 strings have been dumped in total!

Exiting.

// Naruto Shippuuden: Dairansen! Kage Bunshin Emaki
// Dump of mfe000.msg
// Created using HeadSplitter, 2008 by xdaniel/DZD

#VAR(InsTable, TABLE)
#ADDTBL("Insert.tbl", InsTable)
#ACTIVETBL(InsTable)

#SMA("LINEAR")

#VAR(NSMsg, CUSTOMPOINTER)
#CREATEPTR(NSMsg, "LINEAR", $0, 32)

#JMP($000000)

// amount of messages in file
<$0A><$00><$00><$00>

// pointer to new message pointer table
<$08><$00><$00><$00>

#JMP($000030)

#WRITE(NSMsg,$000008)
// <$02><$01><$00><$00><$03><$01><$00><$00><$06><$01><$62><$00>「二年(ねん)はんぶり くらいだってばよ・・・」<key><pg>
// <$06><$01><$62><$00>「そうだのォ・・・」<key><pg>
// <end>


#WRITE(NSMsg,$00000C)
// <$02><$01><$00><$00><$03><$01><$00><$00><$01><$05><$00><$00><$40><$00><$90><$00><$00><$00><$00><$00><$06><$01><$00><$00>「なっつかしー!!<lf>
// ぜんぜん かわってねーってばよ!!」<key><pg>
// (オレの なまえは <color:blue><pg>
// うずまきナルト<color:reset>)<key><pg>
// (二年はんまえに 修業(しゅぎょう)の たびにでて・・・)<key><pg>
// (木ノ葉隠れの里(このはがくれのさと)に<lf>
// もどってきた ところだってばよ!)<key><pg>
// <end>


[...]

The project name comes from the fact that I really did start to write this program under the influence of a truly head-splitting headache. Additionally, the "splitting" part also refers to the fact that it "splits" Dairansen's .msg files into readable - although field and field_event files tend to look rather ugly, as you can see above - and "Atlas-style" reinsertable text files. In retrospect, I think I should've called it "NerveSplitter", as that would've fit the acronym "NS" for "Naruto Shippuuden" better :)

Executable & source download:
HeadSplitter build 734 - May 24th, 2008

No documentation is included, but it should be pretty self-explanatory anyway. Execute it via the command prompt and give it a .msg file as a parameter; for example "HeadSplitter MapName.msg" will have the program process and dump the .msg file MapName.msg into a file called MapName.msg.sjs in the same directory.

As of build 734, HeadSplitter can also correctly dump .msg files from the field and field_event directories. The previous build 583 contained a very messy character and control code recognization routine which was incapable of reliably determining the end of a string: Once a 0x0000 was encountered in the analyzation process, the string was terminated, no matter where in the string it appeared - this was the reason for the cut off strings of said .msg files. After throwing out and rewriting the entire recognization routine, this bug was squashed. It's still not 100% complete, I assume, but it should be enough to get all of the game's .msg files dumped and into a reinsertable state.


Deprecated / Unsupported

HeadSplitter build 583 - May 21st, 2008
(Source code not yet available as it's pretty messy and requires some more cleanup before a release.)

A word of advice / in-advance bug report, though: HeadSplitter is currently incapable of correctly dumping any .msg files in the field and field_event subdirectories of data/msg. The character and especially control code recognization functions in the program are VERY rudimentary and cut off most, if not all of the strings inside those .msg files. I know what's causing this but I have not yet managed to fix this bug, sorry.



"Naruto Shippuuden: Dairansen! Kage Bunshin Emaki" - (C) Masashi Kishimoto, Scott/Shueisha, TV Tokyo, Studio Pierot, (C) 2007 TOMY
Technical information, utilities, etc. presented here are the experimentation & reverse-engineering results of xdaniel / DigitalZero Domain.