OBD:Localization/Japanese: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (+cat)
m (link fix)
 
(10 intermediate revisions by 2 users not shown)
Line 5: Line 5:
!Completion time
!Completion time
|-
|-
|'''level0_Tools.dat<br>.raw||2,044,404<br>6,582,304||2001/05/17 20:40:18<br>20:40:16
|'''level0_Tools.dat<br/>.raw||2,044,404<br/>6,582,304||2001/05/17 20:40:18<br/>20:40:16
|-
|-
|'''level0_Final.dat<br>.raw||'''4,520,626'''<br>29,964,288||2001/08/27 12:38:30<br>12:38:28
|'''level0_Final.dat<br/>.raw||<u>4,520,626</u><br/>29,964,288||2001/08/27 12:38:30<br/>12:38:28
|-
|-
|'''level1_Final.dat<br>.raw||9,228,427<br>46,185,408||12:41:30<br>12:41:28
|'''level1_Final.dat<br/>.raw||9,228,427<br/>46,185,408||12:41:30<br/>12:41:28
|-align=right
|-
|'''level2_Final.dat<br>.raw||<u>7,746,752</u><br>36,836,384||12:42:28<br>12:42:26
|'''level2_Final.dat<br/>.raw||'''7,746,752'''<br/>36,836,384||12:42:28<br/>12:42:26
|-align=right
|-
|'''level3_Final.dat<br>.raw||<u>10,057,083</u><br>31,447,200||12:43:30<br>12:43:28
|'''level3_Final.dat<br/>.raw||'''''10,057,083'''''<br/>31,447,200||12:43:30<br/>12:43:28
|-align=right
|-
|'''level4_Final.dat<br>.raw||<u>9,108,703</u><br>34,365,600||‏‎12:44:30<br>12:44:28
|'''level4_Final.dat<br/>.raw||'''''9,108,703'''''<br/>34,365,600||‏‎12:44:30<br/>12:44:28
|-align=right
|-
|'''level6_Final.dat<br>.raw||<u>10,589,595</u><br>35,089,984||12:45:28<br>‏‎12:45:26
|'''level6_Final.dat<br/>.raw||'''10,589,595'''<br/>35,089,984||12:45:28<br/>‏‎12:45:26
|-align=right
|-
|'''level8_Final.dat<br>.raw||13,131,091<br>42,350,912||‏‎12:47:10<br>‏‎12:47:08
|'''level8_Final.dat<br/>.raw||'''13,131,091'''<br/>42,350,912||‏‎12:47:10<br/>‏‎12:47:08
|-align=right
|-
|'''level9_Final.dat<br>.raw||11,535,489<br>34,567,616||12:48:18<br>12:48:16
|'''level9_Final.dat<br/>.raw||'''11,535,489'''<br/>34,567,616||12:48:18<br/>12:48:16
|-align=right
|-
|'''level10_Final.dat<br>.raw||12,234,094<br>46,970,048||12:40:20<br>12:40:18
|'''level10_Final.dat<br/>.raw||12,234,094<br/>46,970,048||12:40:20<br/>12:40:18
|-align=right
|-
|'''level11_Final.dat<br>.raw||10,079,684<br>32,815,328||12:49:34<br>12:49:32
|'''level11_Final.dat<br/>.raw||10,079,684<br/>32,815,328||12:49:34<br/>12:49:32
|-align=right
|-
|'''level12_Final.dat<br>.raw||8,879,768<br>30,825,856||12:50:30<br>12:50:28
|'''level12_Final.dat<br/>.raw||8,879,768<br/>30,825,856||12:50:30<br/>12:50:28
|-align=right
|-
|'''level13_Final.dat<br>.raw||5,149,398<br>34,199,136||12:51:14<br>‏‎12:51:14
|'''level13_Final.dat<br/>.raw||5,149,398<br/>34,199,136||12:51:14<br/>‏‎12:51:14
|-align=right
|-
|'''level14_Final.dat<br>.raw||10,039,427<br>41,758,912||‏‎12:52:20<br>‏‎12:52:18
|'''level14_Final.dat<br/>.raw||'''10,039,427'''<br/>41,758,912||‏‎12:52:20<br/>‏‎12:52:18
|-align=right
|-
|'''level18_Final.dat<br>.raw||10,190,295<br>37,197,088||12:53:32<br>‏‎12:53:30
|'''level18_Final.dat<br/>.raw||'''10,190,295'''<br/>37,197,088||12:53:32<br/>‏‎12:53:30
|-align=right
|-
|'''level19_Final.dat<br>.raw||11,276,307<br>44,215,840||12:55:06<br>12:55:04
|'''level19_Final.dat<br/>.raw||11,276,307<br/>44,215,840||12:55:06<br/>12:55:04
|}
|}
This is an overview of the differences between the Japanese and English versions of Oni (Windows for both).
This is an overview of the differences between the Japanese and English versions of Oni for Windows.


The main focus is on instance files (.dat/.raw) and not on the localized fragments of the engine (Oni.exe), which are typically limited to the text strings "Syndicate Warehouse" and "Save Point %d".
The main focus is on instance files (.dat/.raw) and not on hardcoded text in Oni.exe which was localized – typically limited to the strings "Syndicate Warehouse" and "Save Point %d", and [[Cheats|cheat]]-related messages.
 
:Extra font files (JPN_BIG.fnt, JPN_MIDDLE.fnt, JPN_SMALL.fnt, JPN_BOLD.fnt) are also not discussed here, since they have no equivalent in the English version(s).
The table on the right lists the file properties for the specific Japanese version that was examined. For the file properties of the reference English version, see [[OBD:Localization|HERE]]. Exactly identical file sizes (level2_Final.dat, level3_Final.dat, level4_Final.dat and level6_Final.dat) have been <u>underlined</u>, much larger file sizes (level0_Final.dat) have been '''marked in bold'''.
The table on the right lists the file properties for the specific Japanese version that was examined. For the file properties of the reference English version(s), see [[OBD:Versions|HERE]]. File sizes exactly identical to the '''US''' and/or '''''UK''''' versions (level[2-4,6,8-9,14,18]_Final.dat) have been marked in '''bold''' and '''''bold italic''''', respectively. Significantly larger file sizes (level0_Final.dat) have been <u>underlined</u>.


==level0_Tools==
==level0_Tools==
An outstanding feature of the Japanese localization is that it comes with '''level0_Tools''', a component that is inaccessible from the shipping version of Oni and can only be used by developers in "Tool mode".
A notable feature of the Japanese localization for Windows and Mac is that it comes with level0_Tools.dat/.raw, a component that is inaccessible from the shipping version of Oni and can only be used by a copy of the game application built in "Tool Mode". The other known instances of level0_Tools are found in the French, German, Italian and Spanish releases for the Mac and in Final Candidate 7 for Windows. Not counting the leaked FC7, Japanese Oni is the only publicly available instance of level0_Tools that was built for Windows.
 
At the time of writing, Japanese Oni is the only known publicly available instance of '''level0_Tools''' that was built for Windows. The other instances of level0_Tools are the Japanese Mac release, and the German Big Blue Box release (also for the Mac).


Localization-wise, the remarkable thing about this Japanese level0_Tools is that it is ''not'' localized: out of the 70 WMDDs, only the following 14 "dialog_"s were modified, and merely had their "Cancel" button replaced with "キャンセル":
The level0_Tools in the European Mac localizations has had some of its labels and buttons translated to the target language in 23 of the 70 tool dialogs, apparently an accident on the part of the localizers since since "Shipping Mode" Oni cannot display them. By contrast, the Japanese level0_Tools is less localized; out of the 70 tool dialogs, only 18 are modified by the Japanese localizer, and 8 of those merely have had their "OK"/"Cancel" buttons replaced with "OK" (in romaji) and "キャンセル" ("cancel" in katakana). The copy of level0_Tools found in Final Candidate 7 is completely in English since it came directly from Bungie.
dialog_'''choose_combat''', dialog_'''choose_flag''', dialog_'''choose_path''', dialog_'''combat_behavior''', dialog_'''melee_profile''', dialog_'''neutral_behavior''', dialog_'''event_properties''', dialog_'''new_object''', dialog_'''particle_appearance_texture''', dialog_'''particle_new_action''', dialog_'''properties_flag''', dialog_'''properties_particle''', dialog_'''properties_trigvol''', dialog_'''properties_turret'''


(In the Big Blue Box version, the German translation affects 23 "dialog_"s, some of them rather thoroughly translated.)
Apart from the localization, the Japanese level0_Tools offers better quality TXMPs than the German release in 91 textures out of 373: DOORLOCK, DOORLOCK2, and all those with prefixes DOOR_AIR, DOOR_MP, DOOR_SB, _DOOR_AIR_, _DOOR_DR_, _DOOR_HA_, _DOOR_MP_, _DOOR_PW_, _DOOR_PW2_, _DOOR_RL_, _DOOR_SB_, _DOOR_TC_, _DOOR_TC2_, _DOOR_Z_, A_GARAGE_, AIR_DK_, CON_SB_ (uncompressed storage rather than DXT1).


Apart from the localization, the Japanese level0_Tools offers better quality TXMP than the German Big Blue Box one, on 91 textures out of 373: DOORLOCK, DOORLOCK2, and all those with prefixes DOOR_AIR, DOOR_MP, DOOR_SB, _DOOR_AIR_, _DOOR_DR_, _DOOR_HA_, _DOOR_MP_, _DOOR_PW_, _DOOR_PW2_, _DOOR_RL_, _DOOR_SB_, _DOOR_TC_, _DOOR_TC2_, _DOOR_Z_, A_GARAGE_, AIR_DK_, CON_SB_ (uncompressed storage rather than DXT1). See HERE for an overview of level0_Tools that is not focused on localization.
See [[level0_Tools]] for an overview that is not focused on localization.


==The size of the .dat files==
==Size of the .dat files==
It shouldn't be ''too'' surprising that 4 out of 15 .dat files (not counting level0_Tools) have exactly the same size as their English counterparts. If two level files contain exactly the same instances (possibly in a different order), and if matching instances differ in content only but not in size (e.g., with translated TxtC/OPge/IPge/etc, but no size change for array instances like TXCA/VCRA/IDXA), then the .dat files' sizes will naturally match. Textures, sounds and subtitles are likely to vary for a localization, but their variable data resides in the .raw, and does not affect the size of the .dat files.
It shouldn't be ''too'' surprising that 4 out of 15 .dat files (not counting level0_Tools) have exactly the same size as their English counterparts. If two level files contain exactly the same instances (possibly in a different order), and if matching instances differ in content only but not in size (e.g., with translated TxtC/OPge/IPge/etc, but no size change for array instances like TXCA/VCRA/IDXA), then the .dat files' sizes will naturally match. Textures, sounds and subtitles are likely to vary for a localization, but their variable data resides in the .raw, and does not affect the size of the .dat files.


So the real question, rather, is why would the other eleven .dat files be larger than their English counterparts?
So the real question is why would the other eleven .dat files be larger than their English counterparts?


===level0_Final===
===level0_Final===
The case of level0_Final is special: its much larger size (4,520,626 B against 2,816,050 B) is attributable to the font files (TSFT) and glyph arrays (TSGA) belonging to the Tahoma TSFF.
The case of level0_Final is special: its much larger size (4,520,626 B against 2,816,050 B) is attributable to the font files (TSFT) and glyph arrays (TSGA) belonging to the Tahoma TSFF.


Like for the English Oni, there are fifteen TSFT font files (normal, bold and italic variants in 7pt, 9pt, 10pt, 12pt and 14pt sizes). Each of them has a slightly larger pixel data array: there are no extended ASCII glyphs (96 of those), but the 154 kana more than make up for them, so the pixel data of the TSFTs ends up taking more than for English Oni, by 230,560 B overall.
Like for the English Oni, there are fifteen TSFT font files (normal, bold and italic variants in 7pt, 9pt, 10pt, 12pt and 14pt sizes). Each of them has a slightly larger pixel data array: there are no extended ASCII glyphs (96 of those), but the 154 kana/kanji more than make up for them, so the pixel data of the TSFTs ends up taking more than for English Oni, by 230,560 B overall.
 
The main difference in size comes from the somewhat bloated use of auxiliary TSGAs (code pages) for kana/kanji descriptors: in addition to the main TSGA used for regular ASCII (less than half full), there are 19 more TSGAs, totalling space for 4864 glyph descriptors (per TSFT), but filled very sparsely (only 154 kana/kanji glyphs are actually present). The excess space thus taken up by the 19 auxiliary TSGAs – as compared to storing all the glyph descriptors in one TSGA – is about 100 KB (including instance headers, instance descriptors, and padding), so for the 15 fonts we get about 1.5 MB (about 30 times more than for the glyphs themselves, i.e., the pixel data in the TSFTs).


The main difference in size comes from the somewhat bloated use of auxiliary TSGAs for kana descriptors: in addition to the main TSGA used for regular ASCII (less that half full), there are 19 more TSGAs, totalling space for 4864 glyph descriptors (per TSFT), but filled very sparsely (only 154 kana glyphs are actually present). The excess space taken up by the 19 auxiliary TSGAs is about 100 kB (including instance headers, instance descriptors, and padding), so for the 15 fonts we get about 1.5 MB (about 30 times more than for the glyphs themselves, i.e., the pixel data in the TSFTs).
At the time of writing, it is not known whether the TSFF/TSFT/TSGA instances of the Japanese level0_Final.dat are actually necessary. The engine has custom logic that loads glyphs from the separate JPN_*.fnt files, and bails out if any of them is absent. The English engine, if used on the same game data, does not load the extra font files and falls back to TSFF, although the output is semi-broken and we do not yet know why.


===Actual levels===
===Actual levels===
Typically a level will have larger .dat file for the Japanese version because it contains more instances of some type or other. If the case of Japanese Oni, there are extra sounds (alternative takes and copies from other Oni versions, see [[#Alternative takes|BELOW]]) in level1_Final, level10_Final, and any level that features Ninja or "ninjabots". There are also variations in the sharing of ONCP files (unnamed) between ONCCs (named). After removing the superfluous SNDDs and repacking with optimized ONCP sharing, the level .dat files have the same size as for English Oni (repacked as well).
Typically a level will have a larger .dat file in the Japanese version because it contains more instances of some type or other. If the case of Japanese Oni, there are extra sounds (alternative takes and copies from other Oni versions, see [[#Alternative takes|BELOW]]) in level1_Final, level10_Final, and any level that features Ninjas or "ninjabots". There are also variations in the sharing of ONCP files (unnamed) between ONCCs (named). After removing the superfluous SNDDs and repacking with optimized ONCP sharing, the level .dat files have the same size as for English Oni (repacked as well).


A detailed analysis of the level#_Final files of the Japanese version, covering gaps in .raw (see [[OBD:Raw_and_separate_file_formats#Gaps|HERE]]) or unnamed orphans (see [[OBD:File_types/Named#TRCM|HERE]]) has not been performed at this point. It is a somewhat tedious process, involving OniBrowser, hex viewing, and lots of <strike>masochism</strike>patience.
A detailed analysis of the level#_Final files of the Japanese version, covering [[OBD:Raw and separate file formats#Gaps|gaps in .raw files]] or [[OBD:File types/Naming#TRCM|unnamed orphans]] has not been performed at this point. It is a somewhat tedious process involving OniBrowser, hex viewing, and lots of <strike>masochism</strike>patience.


==level#_Final textures==
==level#_Final textures==
No TXMP were translated apart from the three types of level splashscreens (.MISSION COMPLETE, .MISSION FAILED and chapter intro).
No TXMPs were translated apart from the three types of level splashscreens (.MISSION COMPLETE, .MISSION FAILED and chapter intro).
:(Of the six TXMPs forming a 640x480 splashscreen, only those containing text have been substituted; the others are identical.)
:(Of the six TXMPs forming a 640x480 splashscreen, only those containing text have been substituted; the others are identical.)


The [[:Image:Chapter_14_.MISSION_COMPLETE.png|final splashscreen]] has no .MISSION COMPLETE label, thus it remained unchanged.
The [[:Image:Chapter_14_.MISSION_COMPLETE.png|final splashscreen]] has no .MISSION COMPLETE label, thus it remained unchanged.


Two of the ".MISSION COMPLETE" backgrounds had their English text replaced -- although, somewhat surprisingly, not with Japanese:
Two of the ".MISSION COMPLETE" backgrounds had their English text replaced although, somewhat surprisingly, not with Japanese:
*[[:Image:Chapter_5_.MISSION_COMPLETE.png|TRACKING SIGNAL LOST]], in {{C|5}}, was painted over with black (!)
*[[:Image:Chapter_05_.MISSION_COMPLETE.png|TRACKING SIGNAL LOST]], in {{C|5}}, was painted over with black (!)
*[[:Image:Chapter_11_.MISSION_COMPLETE.png|MAXIMUM SECURITY]], in {{C|11}}, was replaced with "MÁXIMA SEGURIDAD" (!!!)
*[[:Image:Chapter_11_.MISSION_COMPLETE.png|MAXIMUM SECURITY]], in {{C|11}}, was replaced with "MÁXIMA SEGURIDAD" (!!!)


Apart from the level splashscreens all the TXMPs are exactly identical to those of the reference English Oni (same compression).
Apart from the level splashscreens, all the TXMPs are exactly identical to those of the reference English Oni (same compression).
:(This applies only to level#_Final files, i.e. to level0_Final and to the 14 chapters. For level0_Tools, see [[#level0_Tools|ABOVE]].)
:(This applies only to level#_Final files, i.e. to level0_Final and to the 14 chapters. For level0_Tools, see [[#level0_Tools|ABOVE]].)


Line 88: Line 87:
SUBTmessages was fully translated, with no changes in the lookup labels or in their order.
SUBTmessages was fully translated, with no changes in the lookup labels or in their order.


All the F1 menu components were fully translated, namely: OPge, IPge, WPge, DPge, HPge and IGHH.
All the Data Comlink screens were fully translated, namely: OPge, IPge, WPge, DPge, HPge and IGHH.


The ONLDs for the 14 playable levels were translated (along with the strings "Syndicate Warehouse" and "Save Point %d" in the engine). The 14 [[Pre-beta_content#Names_of_these_levels|pre-beta ONLDs]] were not translated.
The ONLDs for the 14 playable levels were translated (along with the strings "Syndicate Warehouse" and "Save Point %d" in the engine). The 14 [[Pre-beta_content#Names_of_these_levels|pre-beta ONLDs]] were not translated.


The nine WMDDs and one WMM_ (pm_difficulty) that are visible for regular Oni were translated. Additionally, the following four invisible dialogs were translated:
The nine WMDDs and one WMM_ (pm_difficulty) that are visible in regular Oni were translated. Additionally, the following four unseen dialogs were translated:
*WMDDdialog_gettext
*WMDDdialog_gettext
*WMDDdialog_get_mask
*WMDDdialog_get_mask
*WMDDdialog_new_game
*WMDDdialog_new_game
*WMDDdialog_string_list
*WMDDdialog_string_list


==AKEV differences==
==AKEV differences==
Somewhat surprisingly, four levels in the Japanese version of Oni have slight differences in their AKEV files (level environment).
Somewhat surprisingly, four levels in the Japanese version of Oni have slight differences in their AKEV files (level environment). The differences are limited to one or two UV coordinates in the AKEV's TXCA. Moreover, those UVs are practically zero (0,0) with or without the diff. The reason for these diffs is anyone's guess. If it's memory corruption, then why does it affect just a couple of bytes in AKEV TXCA and nothing else?
 
The differences are limited to one or two UV coordinates in the AKEV's TXCA. Moreover, those UVs are practically zero (0,0) with or without the diff.
 
The reason for these diffs is anyone's guess. If it's memory corruption, then why does it affect just a couple of bytes in AKEV TXCA and nothing else?
;EnvWarehouse (level1_Final), UV coordinate #53 in TXCA:
;EnvWarehouse (level1_Final), UV coordinate #53 in TXCA:
:in English Oni the value is (1.36078921805e-30,7.08227594387e-39), or (0x0DDCCCF9,0x004D1E81) in hex
:in English Oni the value is (1.36078921805e-30,7.08227594387e-39), or (0x0DDCCCF9,0x004D1E81) in hex
Line 121: Line 115:
:in Japanese Oni the value is (2.31503616367e-27,7.08''301582946''e-39), or (0x'''1337'''6A83,0x0F'''36'''1FA7,0x004D'''2091''') in hex
:in Japanese Oni the value is (2.31503616367e-27,7.08''301582946''e-39), or (0x'''1337'''6A83,0x0F'''36'''1FA7,0x004D'''2091''') in hex
Most of the differences amount to the addition of either 0x00210000 or 0x00000210 to a float, which ''does'' look like memory corruption.
Most of the differences amount to the addition of either 0x00210000 or 0x00000210 to a float, which ''does'' look like memory corruption.
==Subtitles==
==Subtitles==
SUBTsubtitles and SUBTmessages were fully translated, with the exception of two obsolete voice lines that no longer exist in Oni:
Like SUBTmessages, SUBTsubtitles was fully translated into Japanese, with the exception of two obsolete voice lines that no longer exist in Oni:
*"Striker:  Huh?" (08_29_31, fits into the numbering of minor NPC encounters of {{C|8}}, but is too generic for an informed guess.)
*"Striker:  Huh?" (08_29_31, fits into the numbering of minor NPC encounters of {{C|8}}, but is too generic for an informed guess.)
*"グリフィン:  I knew it was only a matter of time. It's over." (09_33_08, apparently a early variant for the {{C|8}} outro, in which Konoko's rogue status wasn't stated at all until the next chapter.)
*"グリフィン:  I knew it was only a matter of time. It's over." (09_33_08, apparently an early variant for the {{C|8}} outro, in which Konoko's rogue status wasn't stated at all until the next chapter.)<br>
(There are no SNDDs or OSBDs for these two sounds in any version of Oni, just the subtitles.)
(There are no SNDDs or OSBDs for these two sounds in any version of Oni, just the subtitles.)


==Speech==
==Speech==
Almost all the speech lines have been translated into Japanese: vocalizations and pain sounds, cutscene speech, NPC speech, Easter-egg voice lines, as well as "Access Denied". A few remarks, though.
Almost all the speech lines have been translated into Japanese: vocalizations and pain sounds, cutscene speech, NPC speech, [[Easter eggs|Easter egg]] voice lines, as well as "Access Denied". A few remarks, though….


===Non-translated speech===
===Non-translated speech===
The following nine sounds were ''not'' re-dubbed in Japanese even though they contain a form of voice acting.
The following nine sounds were ''not'' re-dubbed into Japanese even though they contain a form of voice acting.
*'''SNDDkon_snz1.aif''' and '''SNDDkon_snz2.aif''' (Konoko's idle sneezes)
*'''SNDDkon_snz1.aif''' and '''SNDDkon_snz2.aif''' (Konoko's idle sneezes)
*'''SNDDkon_yawn1.aif''' and '''SNDDkon_yawn2.aif''' (Konoko's idle yawns)
*'''SNDDkon_yawn1.aif''' and '''SNDDkon_yawn2.aif''' (Konoko's idle yawns)
Line 142: Line 137:
===Alternative takes===
===Alternative takes===
All of the below are orphan SNDDs left over from the localization process, not referenced in OSBD and therefore not playable from Oni.
All of the below are orphan SNDDs left over from the localization process, not referenced in OSBD and therefore not playable from Oni.
====English====
====English====
In EnvWarehouse (level 1_Final) there are backups of three English Oni sounds, not referenced in OSBD:
In EnvWarehouse (level 1_Final) there are backups of three English Oni sounds, not referenced in OSBD:
Line 147: Line 143:
*SNDDbbb_c01_01_01griffin.aif (another copy of the English c01_01_01griffin)
*SNDDbbb_c01_01_01griffin.aif (another copy of the English c01_01_01griffin)
*SNDDoriginal_c01_01_05griffin.aif (a copy of the English c01_01_05griffin)
*SNDDoriginal_c01_01_05griffin.aif (a copy of the English c01_01_05griffin)
====German====
====German====
In power_II (level10_Final), there is a copy of the German '''SNDDc09_31_25shinatama .aif''' ("Detonazion in 20, 19, 18, 17, 16, 15, 14, 13, 12..."), stored as '''SNDDc09_31_25shinatama.aif''' (without a space) and not referenced in OSBD. Unlike Griffin's lines above  
In power_II (level10_Final), there is a copy of the German '''SNDDc09_31_25shinatama .aif''' ("Detonazion in 20, 19, 18, 17, 16, 15, 14, 13, 12..."), stored as '''SNDDc09_31_25shinatama.aif''' (without a space) and not referenced in OSBD. Unlike Griffin's lines above [...?].
 
====Japanese====
====Japanese====
'''SNDDc00_01_29shinatama.aif''' occurs both in level 0 and level 1 of Japanese Oni, as two takes with slightly different intonations (the English counterpart, "Hi Konoko! It's me, Shinatama.", is exactly the same in level 0 and level 1).
'''SNDDc00_01_29shinatama.aif''' occurs both in level 0 and level 1 of Japanese Oni, as two takes with slightly different intonations. The English counterpart ("Hi Konoko! It's me, Shinatama.") is exactly the same in level 0 and level 1.


In all the levels with Ninja sounds, i.e., featuting either Ninja or "ninjabots" (that is, level#_Final, with #=1,10-13,19), there are five SNDDnin_hrt_md#.aif files (#=1-5), different from the actually referenced "SNDDnin_ hrt_md#.aif" (with a space). Unlike the final versions, the original Ninja sounds or those of other localizations, the orphan SNDDnin_hrt_md#.aif are plain-sounding male voices (with no FX applied), and the voice acting seems similar to other male voices in the Japanese version. Therefore it is likely that these are Japanese placeholders and not copies from another language version.
In all the levels with Ninja sounds, i.e., featuring either Ninjas or "ninjabots" (level[1,10-13,19]_Final), there are five SNDDnin_hrt_md#.aif files (#=1-5), different from the actually referenced "SNDDnin_ hrt_md#.aif" (with a space). Unlike the final versions, the original Ninja sounds or those of other localizations, the orphan SNDDnin_hrt_md#.aif are plain-sounding male voices (with no FX applied), and the voice acting seems similar to other male voices in the Japanese version. Therefore it is likely that these are Japanese placeholders and not copies from another language version.


Likewise, in level11_Final (state) and level12_Final (roof), there are five SNDDsnin_hrt_md#.aif files (#=1-5), different from the actually referenced "SNDDsnin_ hrt_md#.aif" (with a space). Unlike for the SNDDnin_hrt_md#.aif, the SNDDsnin_hrt_md#.aif do have some FX and are consistent with Mukade's other pain sounds, so it looks like they are legitimate alternative takes that were discarded.
Likewise, in level11_Final (state) and level12_Final (roof), there are five SNDDsnin_hrt_md#.aif files (#=1-5), different from the actually-referenced "SNDDsnin_ hrt_md#.aif" (with a space). Unlike for the SNDDnin_hrt_md#.aif, the SNDDsnin_hrt_md#.aif do have some FX and are consistent with Mukade's other pain sounds, so it looks like they are legitimate alternative takes that were discarded.


==Other sounds==
==Other sounds==
===Longer city ambients===
===Longer city ambients===
For some reason the ambient loops named '''city_amb*''' (which do not include speech) are cut at a different length than in the English version, sometimes significantly longer.
The ambient loops named '''city_amb*''' are cut at a different length than in the English version, sometimes significantly longer. Bungie West may have originally been using full-length samples from a sound library and later decided to cut them back after the localizer had received a copy of the game assets. The shorter sounds in the English version still loop perfectly and save on memory; some of them also cut out undesirable sounds such as individual cars and emergency vehicles passing by the listener, which would be disconcerting in a game world with no traffic on the road.
 
*'''city_amb_t05a''' lasts ~3 seconds (182 ticks) in English Oni and ~6 seconds (348 ticks) in Japanese Oni
*'''city_amb_t05a''' lasts ~3 seconds (182 ticks) in English Oni and ~6 seconds (348 ticks) in Japanese Oni
*'''city_amb_t05b''' lasts ~2 seconds (123 ticks) in English Oni and ~4 seconds (262 ticks) in Japanese Oni
*'''city_amb_t05b''' lasts ~2 seconds (123 ticks) in English Oni and ~4 seconds (262 ticks) in Japanese Oni
Line 170: Line 169:
*'''city_amb2_t07b''' lasts ~5 seconds (319 ticks) in English Oni and ~9 seconds (536 ticks) in Japanese Oni
*'''city_amb2_t07b''' lasts ~5 seconds (319 ticks) in English Oni and ~9 seconds (536 ticks) in Japanese Oni
*'''city_amb2_t07c''' lasts ~4 seconds (215 ticks) in English Oni and ~14 seconds (853 ticks) in Japanese Oni
*'''city_amb2_t07c''' lasts ~4 seconds (215 ticks) in English Oni and ~14 seconds (853 ticks) in Japanese Oni
Thus, of all the "city ambient" loops, only '''city_amb_t06a''' uses the same sound data as in English Oni.
Thus, of all the "city ambient" loops, only the 5-second '''city_amb_t06a''' uses the same sound data as in English Oni.


These loner durations are consistent across levels, the occurrence being as follows:
These longer durations are consistent across levels, the occurrence being as follows:
*'''city_amb_t05*''' occur in level3_final (lab) and level14_Final (neuro)
*'''city_amb_t05*''' occur in level3_final (lab) and level14_Final (neuro)
*'''city_amb_t06*''' occur in level8_final (tctf), level11_final (state) and level18_final (tctf_II)
*'''city_amb_t06*''' occur in level8_final (tctf), level11_final (state) and level18_final (tctf_II)

Latest revision as of 22:42, 5 December 2023

File properties of examined Japanese Oni (Windows)
Size (Bytes) Completion time
level0_Tools.dat
.raw
2,044,404
6,582,304
2001/05/17 20:40:18
20:40:16
level0_Final.dat
.raw
4,520,626
29,964,288
2001/08/27 12:38:30
12:38:28
level1_Final.dat
.raw
9,228,427
46,185,408
12:41:30
12:41:28
level2_Final.dat
.raw
7,746,752
36,836,384
12:42:28
12:42:26
level3_Final.dat
.raw
10,057,083
31,447,200
12:43:30
12:43:28
level4_Final.dat
.raw
9,108,703
34,365,600
‏‎12:44:30
12:44:28
level6_Final.dat
.raw
10,589,595
35,089,984
12:45:28
‏‎12:45:26
level8_Final.dat
.raw
13,131,091
42,350,912
‏‎12:47:10
‏‎12:47:08
level9_Final.dat
.raw
11,535,489
34,567,616
12:48:18
12:48:16
level10_Final.dat
.raw
12,234,094
46,970,048
12:40:20
12:40:18
level11_Final.dat
.raw
10,079,684
32,815,328
12:49:34
12:49:32
level12_Final.dat
.raw
8,879,768
30,825,856
12:50:30
12:50:28
level13_Final.dat
.raw
5,149,398
34,199,136
12:51:14
‏‎12:51:14
level14_Final.dat
.raw
10,039,427
41,758,912
‏‎12:52:20
‏‎12:52:18
level18_Final.dat
.raw
10,190,295
37,197,088
12:53:32
‏‎12:53:30
level19_Final.dat
.raw
11,276,307
44,215,840
12:55:06
12:55:04

This is an overview of the differences between the Japanese and English versions of Oni for Windows.

The main focus is on instance files (.dat/.raw) and not on hardcoded text in Oni.exe which was localized – typically limited to the strings "Syndicate Warehouse" and "Save Point %d", and cheat-related messages.

Extra font files (JPN_BIG.fnt, JPN_MIDDLE.fnt, JPN_SMALL.fnt, JPN_BOLD.fnt) are also not discussed here, since they have no equivalent in the English version(s).

The table on the right lists the file properties for the specific Japanese version that was examined. For the file properties of the reference English version(s), see HERE. File sizes exactly identical to the US and/or UK versions (level[2-4,6,8-9,14,18]_Final.dat) have been marked in bold and bold italic, respectively. Significantly larger file sizes (level0_Final.dat) have been underlined.

level0_Tools

A notable feature of the Japanese localization for Windows and Mac is that it comes with level0_Tools.dat/.raw, a component that is inaccessible from the shipping version of Oni and can only be used by a copy of the game application built in "Tool Mode". The other known instances of level0_Tools are found in the French, German, Italian and Spanish releases for the Mac and in Final Candidate 7 for Windows. Not counting the leaked FC7, Japanese Oni is the only publicly available instance of level0_Tools that was built for Windows.

The level0_Tools in the European Mac localizations has had some of its labels and buttons translated to the target language in 23 of the 70 tool dialogs, apparently an accident on the part of the localizers since since "Shipping Mode" Oni cannot display them. By contrast, the Japanese level0_Tools is less localized; out of the 70 tool dialogs, only 18 are modified by the Japanese localizer, and 8 of those merely have had their "OK"/"Cancel" buttons replaced with "OK" (in romaji) and "キャンセル" ("cancel" in katakana). The copy of level0_Tools found in Final Candidate 7 is completely in English since it came directly from Bungie.

Apart from the localization, the Japanese level0_Tools offers better quality TXMPs than the German release in 91 textures out of 373: DOORLOCK, DOORLOCK2, and all those with prefixes DOOR_AIR, DOOR_MP, DOOR_SB, _DOOR_AIR_, _DOOR_DR_, _DOOR_HA_, _DOOR_MP_, _DOOR_PW_, _DOOR_PW2_, _DOOR_RL_, _DOOR_SB_, _DOOR_TC_, _DOOR_TC2_, _DOOR_Z_, A_GARAGE_, AIR_DK_, CON_SB_ (uncompressed storage rather than DXT1).

See level0_Tools for an overview that is not focused on localization.

Size of the .dat files

It shouldn't be too surprising that 4 out of 15 .dat files (not counting level0_Tools) have exactly the same size as their English counterparts. If two level files contain exactly the same instances (possibly in a different order), and if matching instances differ in content only but not in size (e.g., with translated TxtC/OPge/IPge/etc, but no size change for array instances like TXCA/VCRA/IDXA), then the .dat files' sizes will naturally match. Textures, sounds and subtitles are likely to vary for a localization, but their variable data resides in the .raw, and does not affect the size of the .dat files.

So the real question is why would the other eleven .dat files be larger than their English counterparts?

level0_Final

The case of level0_Final is special: its much larger size (4,520,626 B against 2,816,050 B) is attributable to the font files (TSFT) and glyph arrays (TSGA) belonging to the Tahoma TSFF.

Like for the English Oni, there are fifteen TSFT font files (normal, bold and italic variants in 7pt, 9pt, 10pt, 12pt and 14pt sizes). Each of them has a slightly larger pixel data array: there are no extended ASCII glyphs (96 of those), but the 154 kana/kanji more than make up for them, so the pixel data of the TSFTs ends up taking more than for English Oni, by 230,560 B overall.

The main difference in size comes from the somewhat bloated use of auxiliary TSGAs (code pages) for kana/kanji descriptors: in addition to the main TSGA used for regular ASCII (less than half full), there are 19 more TSGAs, totalling space for 4864 glyph descriptors (per TSFT), but filled very sparsely (only 154 kana/kanji glyphs are actually present). The excess space thus taken up by the 19 auxiliary TSGAs – as compared to storing all the glyph descriptors in one TSGA – is about 100 KB (including instance headers, instance descriptors, and padding), so for the 15 fonts we get about 1.5 MB (about 30 times more than for the glyphs themselves, i.e., the pixel data in the TSFTs).

At the time of writing, it is not known whether the TSFF/TSFT/TSGA instances of the Japanese level0_Final.dat are actually necessary. The engine has custom logic that loads glyphs from the separate JPN_*.fnt files, and bails out if any of them is absent. The English engine, if used on the same game data, does not load the extra font files and falls back to TSFF, although the output is semi-broken and we do not yet know why.

Actual levels

Typically a level will have a larger .dat file in the Japanese version because it contains more instances of some type or other. If the case of Japanese Oni, there are extra sounds (alternative takes and copies from other Oni versions, see BELOW) in level1_Final, level10_Final, and any level that features Ninjas or "ninjabots". There are also variations in the sharing of ONCP files (unnamed) between ONCCs (named). After removing the superfluous SNDDs and repacking with optimized ONCP sharing, the level .dat files have the same size as for English Oni (repacked as well).

A detailed analysis of the level#_Final files of the Japanese version, covering gaps in .raw files or unnamed orphans has not been performed at this point. It is a somewhat tedious process involving OniBrowser, hex viewing, and lots of masochismpatience.

level#_Final textures

No TXMPs were translated apart from the three types of level splashscreens (.MISSION COMPLETE, .MISSION FAILED and chapter intro).

(Of the six TXMPs forming a 640x480 splashscreen, only those containing text have been substituted; the others are identical.)

The final splashscreen has no .MISSION COMPLETE label, thus it remained unchanged.

Two of the ".MISSION COMPLETE" backgrounds had their English text replaced – although, somewhat surprisingly, not with Japanese:

Apart from the level splashscreens, all the TXMPs are exactly identical to those of the reference English Oni (same compression).

(This applies only to level#_Final files, i.e. to level0_Final and to the 14 chapters. For level0_Tools, see ABOVE.)

Menus, dialogs, UI

SUBTmessages was fully translated, with no changes in the lookup labels or in their order.

All the Data Comlink screens were fully translated, namely: OPge, IPge, WPge, DPge, HPge and IGHH.

The ONLDs for the 14 playable levels were translated (along with the strings "Syndicate Warehouse" and "Save Point %d" in the engine). The 14 pre-beta ONLDs were not translated.

The nine WMDDs and one WMM_ (pm_difficulty) that are visible in regular Oni were translated. Additionally, the following four unseen dialogs were translated:

  • WMDDdialog_gettext
  • WMDDdialog_get_mask
  • WMDDdialog_new_game
  • WMDDdialog_string_list

AKEV differences

Somewhat surprisingly, four levels in the Japanese version of Oni have slight differences in their AKEV files (level environment). The differences are limited to one or two UV coordinates in the AKEV's TXCA. Moreover, those UVs are practically zero (0,0) with or without the diff. The reason for these diffs is anyone's guess. If it's memory corruption, then why does it affect just a couple of bytes in AKEV TXCA and nothing else?

EnvWarehouse (level1_Final), UV coordinate #53 in TXCA
in English Oni the value is (1.36078921805e-30,7.08227594387e-39), or (0x0DDCCCF9,0x004D1E81) in hex
in Japanese Oni the value is (1.56416742018e-30,7.08301582946e-39), or (0x0DFDCCF9,0x004D2091) in hex
lab (level3_Final), UV coordinate #2195 in TXCA
in English Oni the value is (0.437627911568,7.08227594387e-39), or (0x3EE010C4,0x004D1E81) in hex
in Japanese Oni the value is (0.437627911568,7.08301582946e-39), or (0x3EE010C4,0x004D2091) in hex
lab (level3_Final), UV coordinate #4592 in TXCA
in English Oni the value is (0.999500393867,7.08227594387e-39), or (0x3F7FDF42,0x004D1E81) in hex
in Japanese Oni the value is (0.999500393867,7.08301582946e-39), or (0x3EE010C4,0x004D2091) in hex
tctf (level8_Final), UV coordinate #14836 in TXCA
in English Oni the value is (7.35236319953e-30,7.08227594387e-39), or (0x0F151FA7,0x004D1E81) in hex
in Japanese Oni the value is (8.97938881655e-30,7.08301582946e-39), or (0x0F361FA7,0x004D2091) in hex
power (level9_Final), UV coordinate #116
in English Oni the value is (1.82834352549e-29,7.08227594387e-39), or (0x0FB96A83,0x004D1E81) in hex
in Japanese Oni the value is (2.31503616367e-27,7.08301582946e-39), or (0x13376A83,0x0F361FA7,0x004D2091) in hex

Most of the differences amount to the addition of either 0x00210000 or 0x00000210 to a float, which does look like memory corruption.

Subtitles

Like SUBTmessages, SUBTsubtitles was fully translated into Japanese, with the exception of two obsolete voice lines that no longer exist in Oni:

  • "Striker: Huh?" (08_29_31, fits into the numbering of minor NPC encounters of CHAPTER 08 . AN INNOCENT LIFE, but is too generic for an informed guess.)
  • "グリフィン: I knew it was only a matter of time. It's over." (09_33_08, apparently an early variant for the CHAPTER 08 . AN INNOCENT LIFE outro, in which Konoko's rogue status wasn't stated at all until the next chapter.)

(There are no SNDDs or OSBDs for these two sounds in any version of Oni, just the subtitles.)

Speech

Almost all the speech lines have been translated into Japanese: vocalizations and pain sounds, cutscene speech, NPC speech, Easter egg voice lines, as well as "Access Denied". A few remarks, though….

Non-translated speech

The following nine sounds were not re-dubbed into Japanese even though they contain a form of voice acting.

  • SNDDkon_snz1.aif and SNDDkon_snz2.aif (Konoko's idle sneezes)
  • SNDDkon_yawn1.aif and SNDDkon_yawn2.aif (Konoko's idle yawns)
  • SNDDninja_cdscene.aif (Mukade's defeat sound, similar to snin_hrt_dth*)
  • SNDDkerr_dth1.aif (Kerr's unique death sound)
  • SNDDmutcomkick_heavy.aif (Mutant Muro's "super_kick" vocalization)
  • SNDDmutcompunch_heavy.aif (Mutant Muro's "super_punch" vocalization)
  • SNDDmutcomthunderbolt_start.aif (Mutant Muro's repulsive attack)

Alternative takes

All of the below are orphan SNDDs left over from the localization process, not referenced in OSBD and therefore not playable from Oni.

English

In EnvWarehouse (level 1_Final) there are backups of three English Oni sounds, not referenced in OSBD:

  • SNDDoriginal_c01_01_01griffin.aif (a copy of the English c01_01_01griffin)
  • SNDDbbb_c01_01_01griffin.aif (another copy of the English c01_01_01griffin)
  • SNDDoriginal_c01_01_05griffin.aif (a copy of the English c01_01_05griffin)

German

In power_II (level10_Final), there is a copy of the German SNDDc09_31_25shinatama .aif ("Detonazion in 20, 19, 18, 17, 16, 15, 14, 13, 12..."), stored as SNDDc09_31_25shinatama.aif (without a space) and not referenced in OSBD. Unlike Griffin's lines above [...?].

Japanese

SNDDc00_01_29shinatama.aif occurs both in level 0 and level 1 of Japanese Oni, as two takes with slightly different intonations. The English counterpart ("Hi Konoko! It's me, Shinatama.") is exactly the same in level 0 and level 1.

In all the levels with Ninja sounds, i.e., featuring either Ninjas or "ninjabots" (level[1,10-13,19]_Final), there are five SNDDnin_hrt_md#.aif files (#=1-5), different from the actually referenced "SNDDnin_ hrt_md#.aif" (with a space). Unlike the final versions, the original Ninja sounds or those of other localizations, the orphan SNDDnin_hrt_md#.aif are plain-sounding male voices (with no FX applied), and the voice acting seems similar to other male voices in the Japanese version. Therefore it is likely that these are Japanese placeholders and not copies from another language version.

Likewise, in level11_Final (state) and level12_Final (roof), there are five SNDDsnin_hrt_md#.aif files (#=1-5), different from the actually-referenced "SNDDsnin_ hrt_md#.aif" (with a space). Unlike for the SNDDnin_hrt_md#.aif, the SNDDsnin_hrt_md#.aif do have some FX and are consistent with Mukade's other pain sounds, so it looks like they are legitimate alternative takes that were discarded.

Other sounds

Longer city ambients

The ambient loops named city_amb* are cut at a different length than in the English version, sometimes significantly longer. Bungie West may have originally been using full-length samples from a sound library and later decided to cut them back after the localizer had received a copy of the game assets. The shorter sounds in the English version still loop perfectly and save on memory; some of them also cut out undesirable sounds such as individual cars and emergency vehicles passing by the listener, which would be disconcerting in a game world with no traffic on the road.

  • city_amb_t05a lasts ~3 seconds (182 ticks) in English Oni and ~6 seconds (348 ticks) in Japanese Oni
  • city_amb_t05b lasts ~2 seconds (123 ticks) in English Oni and ~4 seconds (262 ticks) in Japanese Oni
  • city_amb_t05c lasts ~3 seconds (155 ticks) in English Oni and ~6 seconds (363 ticks) in Japanese Oni
  • city_amb_t06b lasts ~4 seconds (250 ticks) in English Oni and ~6 seconds (358 ticks) in Japanese Oni
  • city_amb_t06c lasts ~3 seconds (193 ticks) in English Oni and ~5 seconds (319 ticks) in Japanese Oni
  • city_amb_t07a lasts ~6 seconds (332 ticks) in English Oni and ~8 seconds (492 ticks) in Japanese Oni
  • city_amb_t07b lasts ~5 seconds (292 ticks) in English Oni and ~7 seconds (416 ticks) in Japanese Oni
  • city_amb_t07c lasts ~5 seconds (293 ticks) in English Oni and ~8 seconds (462 ticks) in Japanese Oni
  • city_amb2_t07a lasts ~3 seconds (179 ticks) in English Oni and ~8 seconds (469 ticks) in Japanese Oni
  • city_amb2_t07b lasts ~5 seconds (319 ticks) in English Oni and ~9 seconds (536 ticks) in Japanese Oni
  • city_amb2_t07c lasts ~4 seconds (215 ticks) in English Oni and ~14 seconds (853 ticks) in Japanese Oni

Thus, of all the "city ambient" loops, only the 5-second city_amb_t06a uses the same sound data as in English Oni.

These longer durations are consistent across levels, the occurrence being as follows:

  • city_amb_t05* occur in level3_final (lab) and level14_Final (neuro)
  • city_amb_t06* occur in level8_final (tctf), level11_final (state) and level18_final (tctf_II)
  • city_amb_t07* occur in level2_final (manplant) and level6_final (Airport_III)
  • city_amb2_t07* occur in level1_final (EnvWarehouse, level4_final (Airport) and level14_Final (neuro)