999: Nine Hours, Nine Persons, Nine Doors

In 999: Nine Hours, Nine Persons, Nine Doors, the main character, Junpei, is abducted and wakes up on an old ship. He and eight other people whom have also been abducted, are then forced to play a game where the penalty for breaking the rules is death.

Seek a way out!


Found in the directory root/bg/sprite, are two files called "seek_a_way_out_00.dat" and "seek_a_way_out_01.dat". Their contents are shown in the above images respectively. While these graphics go unused in the final game, the text of the sprites are not. These sprites would have been shown before reaching an escape room. They were replaced by a cinematic movie featuring Junpei and the same text. It isn't known if these sprites were merely a placeholder before the cinematic movie was created, or were simply scrapped in favor of it. Even though these sprites go unused in the final game, they do get used by the file test3.fsb which is listed in the next section below.

Debug and Test Novel Sections
Within the file destination root/scr/ of the ROM, there are at least five files that go unused during normal gameplay. They are listed in alphabetical order below, and are related to debugging and testing. They can be accessed in-game by using one of the following AR codes listed in each section. While the files appear in both the Japanese and US versions, they contain Kana and Kanji texts which aren't displayed in the US version.

Note: Go to the main menu of the game and turn a code ON. After the code is on, turn the code OFF. Select "Start" or "Begin with Memories" and start a new game (saving is unnecessary). The game should load the selected file. Only turn one code on at a time.

debug.fsb
This displays Kanji on the touch screen which translates to "End". Pressing any button will repeatedly display "End" on the touch screen until it reaches the bottom of the screen at which point the game freezes.

test2.fsb
This seems to be an engine test for the game, which tests various effects. The touch screen displays a menu with six selectable options. The options are bundle, Wipe, Earthquake, BG slide, Chracter and Exit. The backgrounds on the top and bottom screen are of the shower room. bundle: This option performs a few combinations of the latter options on this menu such as displaying characters and changing the background. Various debugging text is displayed on the touch screen and in the text box on the top screen.

Wipe: First, Seven appears on the top screen. After which the background on the top screen will change to solid colors of red, green and blue in a wiping fashion. The wiping first happens from left to right for red, right to left for green and then from both sides to the middle for blue. All of this happens while some various debug text appears in his textbox and on the touch screen.

Earthquake: This will make the backgrounds of the top and touch screen shake in various ways and intensities. During this, various debug text appears in the text box on the top screen.

BG Slide: First, the touch screen will change its background image to the hospital room and slide the picture right. After which both screens change their background image to when floor D is being flooded and then both images will slide down. Meanwhile, various debug text will appear on the touch screen.

Chracter: Obviously misspelled, this option is supposed to read Character. Images of Clover and Snake will appear on the top screen in various ways such as sliding from the left to the right, popping up from the bottom, etc. As before, various debug text appears on the touch screen.

Exit: This option exits test2 and returns the game to the main menu.

test3.fsb
Similar to test2, this is also an engine test. The tests here are a bit more complex than the ones in test2. This menu has sub menus with various options. The backgrounds of the top and touch screen are of the large hospital room.  基本のスクリプト (Basic script): This option opens a submenu with 5 options. All the options will display random debug text on the top screen textbox and on the touch screen.
 *  背景制御 (Background control): This option will display various backgrounds, with various characters such as Akane and Lotus.
 *  キャラ制御 (Character control): This option is similar to the first except with different characters such as Ace, Lotus, Seven.
 *  テキスト制御 (Text control): The third option simply changes the background on the top screen to an open door to the incinerator and changes it back.
 *  その他 (Other): The last option shows small pictures of Clover and Lotus on the top screen along with the sprite text "Seek a way out!" that was presented in the unused graphics section above. The text itself is displayed before reaching a puzzle section in the game but the particular graphics displayed for this text here are never seen during normal gameplay. It can be seen at 4:20 in the video.
 * Exit: Choosing Exit exits test3.

BG: BG opens a submenu with 6 selectable options. All the options will display random debug text on the top screen textbox and on the touch screen.
 *  フェード (Fade):The first option seems to test how quickly the backgrounds fade to black. Akane appears on the top screen before the last fadeout.
 *  画面切り替え (Screen change):This option will also perform various screen fadeouts with various screen effects on the top screen such as bluring effects and flashing white and red.
 *  スライド (Slide): Option three will scroll the background on the top screen left and right a few times at various speeds.
 *  ワイプ (Wipe): This option will change the top screen to red, green, and blue from left to right at various speeds.
 *  フェード２ (Fade 2): This option will cycle the top screen between background pictures to the entry of the incinerator and the hospital room. Akane will sometimes appear on the top screen.
 * Exit:Choosing Exit will exit test3.

Chractor: This option also opens a submenu and has 6 options.
 *  キャラフェード (Character fade):This option will display Akane and Clover on the top screen.
 *  キャラポーズ (Character pose):The second option will show Akane, Clover and Lotus on the top screen similar to the first option on this sub-menu.
 *  画面外キャラスクロール (Off-screen character scroll):This option will shift the background on the top screen to the left to display Seven and then back to hide him.
 *  カットイン演出例 (Cut-in production example): Option four shows small pictures of Clover and Lotus on the top screen.
 *  キャラアニメーション (Character animation): This option will show Clover going through the same animations a bunch of times and then one animation for Seven laughing.
 * Exit: This leaves test3.

Text: This option opens a sub-menu that has five options.
 *  テキスト消去 (Text Erasing):The first option will display text on the top screen between Akane and Junpei.
 *  テキスト消去 (Text Erasing):The second option will try to display text on the top screen by Akane but nothing will actually appear in her textbox.
 *  テキスト消去 (Text Erasing):This option will show the picture of Akane when she falls onto Junpei.
 *  テキスト間隔 (Text Spacing):This option will display various test text on the bottom screen.
 * Exit: This will exit from test3 as would be expected.

Movie: There are only two options in this submenu.
 *  ムービー連結テスト (Movie Concatenation Test):The first option will show two movies of door number 5 and door number 8 opening along with two Textbox on the top screen the belong to Junpei and Santa.
 * Exit: Exits, as expected.

 バグ検証 (Bug verification): This option only has one option in its sub menu which is Exit and it does what would be expected.

Exit: Exit test3 screen.

test4.fsb
RCRYwZRdjGQ This test is interesting because it displays the intro scene to the demo version of the game which is on Spike-Chunsoft's website and Aksys Games' website where Akane and Junpei wake up in the same room. In the final version of the game, Junpei wakes up in the same room by himself and Akane first appears after he gets out of this room.

test5.fsb
This test will load a new game but what makes this test unique is that it is mostly controlled by the computer itself. First, any text shown during the opening cut scene or escape sequence will be sped up. Secondly, once the escape sequence begins the computer will keep constantly selecting/inspecting the same parts of the room near the sink. During this, the computer will only pick up two key items in the room and after the key items are picked up, the computer will forever be in an infinite loop of selecting/inspecting the area around the sink.

A human player has very little control during any part of this test. If the player tries to back away from the sink area, the computer will only select it again for inspection unless the player is really quick. When bringing up the save screen, the computer will try to exit the save screen unless the player is, again, really quick. The reason for why the computer acts the way it does during this test is explained in the "DebugAuto" section below.

Unused Files
These files are found in the root/etc directory that go unused. Most of these files are composed of strings.

debug.dat
Looking at Debug.dat with a hex editor shows that it contains strings of text related to debugging. It doesn't appear that this file can be called directly by the game as it isn't listed in the files arm9.bin or global.ini. At this point in time, it is unknown if it can somehow be properly loaded in game. Debug Menu Scene Check Escape Check Mini Game GRAPHIC Sound Check Graphic Chara Check BG Check Item Check Movie Check Stage Setting Item Select Flag Setting Stage Start Stage Setting In Game Item Select Flag Setting Novel Debug Menu Return Game Save&Load Debug Setting Reset Global Flag Setting End Game Infomation Escape Debug Menu Return Game Save&Load Debug Setting Reset End Game Item Select Flag Setting Global Flag Setting Infomation Debg Setting BGM SE DebugView MessageSkip TouchTest Infomation PageLabel BGM SOUND0 SOUND1 SOUND2 SOUND3

debug_c.dat
The strings in this file are all in Japanese. Most of the strings share the theme of emotions and would probably have been displayed alongside character graphics to ensure the correct graphics were being displayed at the intended times. In other words, this file was used for character debugging which explains why the file is called debug_c.dat where the "c" stands for character. Like the previous file, it is unknown if it can somehow be properly loaded in game. A translation of this is available on the notes page. キャラ選択無効ポーズ 00:基本 01:呆れ 02:怒る 03:悲しい 04:笑い 05:真剣 06:驚き 07:愉快 08:照れ 09:怯え 10:動揺 11:提案 12:懸念 13:寒い 14:悩む 15:主張 16:自慢 17:強気 18:豹変 19:モーション付き1 20:モーション付き2 21:モーション付き3 22:モーション付き4 23:モーション付き5 モーション１回コマ無効目パチ１回コマ無効口パク１回コマ無効背景選択無効会話表示無効有効立ち位置中左右ｪｪｪ�'/7?IQYaiqy♂鎗｡ｩｱｹﾁﾔ鋺

DebugAuto
A string that is only found in the Test5.fsb file and is otherwise completely unused. When enabled, any text shown is sped through and this is done regardless if it is the first time the player has seen the text or not. When in escape rooms, the computer will randomly select items or objects of interest making it nearly impossible to play. The effects of “DebugAuto” can be seen in-game, at any part of the game, by using the following codes. One code is for enabling and the other is for disabling. Only turn on one code at a time.

Debug Menu
There are a few interesting strings inside of start.fsb in the root/scr directory. This file is normally responsible for loading the startup screen and the main menu of the game. One of these strings is called "Debug Menu". This seems to imply that, if some sort of debug menu exists in the game, it can be loaded from this file. The way 999 seems to normally load data is by comparing a string from the current FSB file to a bunch of strings in the arm9.bin file or in the global.ini file and when a match is found, the appropriate data is loaded. The problem here is that both of these files lack a string called "Debug Menu" so it might not be possible to load anymore.

Sound Test
Another interesting string in start.fsb is "Sound Test". Unlike with "Debug Menu", this string actually exists in arm9.bin. It suggests that some sort of sound test might still be possible to load in the game from this file. At the moment, it has yet to be loaded if the coding for it still exists.

Odd Sound File Name
There is one sound file found in the game that has an odd name compared to other sound files. Its name is m07_bgm_e_03_old.bgm. The odd part is the fact that it has “old” in its name. This hints that a newer version of this sound file had once existed. As it is, there aren’t any newer versions of the file on the ROM. Either the newer version of the file got deleted and the developers went back to using the old version or the developers quickly changed their minds and never bothered developing a newer version to begin with. As for what this sound file actually is, it is called “Tranquility” from the 999 music soundtrack. It is used for the last conversation between Junpei and Akane right before the Knife Ending. It doesn’t get any more tranquil than that...

Missing Files
There is a file in the ROM called global.ini. Within this file there are a list of strings that seem to relate to various functions within the game. In particular, there is a list of function names that actually match file names on the ROM found in the root/scr directory. Most of the files in the root/scr directory hold the information to load novel sections, puzzle/escape rooms and the credits. The interesting part is that there are two function names listed in the global.ini file that don’t have corresponding files in the root/scr directory. These functions are called “~Test” and “~D01d”. The absence of these two files is since another file called novel.dat, which lists what files in the root/scr directories are novels, lists them as well.

D01d File
The mere existence of the function ~D01d is even more interesting than ~Test. The first thing to note is that the file name has the syntax of visual novel sections of the game. For example, look at the group of functions responsible for loading the first puzzle and novel sequences for when Junpei is on deck D.

~A01 ~A01b ~A01d ~A01e

The first function is the call to load the puzzle room for the third class cabin. The rest of the functions load novel sections for this point in the game. In this case, the novel sections would be the intro of when Junpei wakes up in the cabin, when Junpei remembers being grabbed by Zero and then when Junpei is able to escape from the cabin respectively. Other puzzle and novel sequences use this format too. Take notice of how the functions for the novel sections use the prefix b,d and e on the end. The novels sections that involve puzzles are always played in this “b d e” order. Notice that the function ~D01d has the letter d attached to the end. Given this information; this could be a hint that a novel section and a puzzle/escape room were cut from the game.

There are a few oddities however and some other things to point out. The first to note is the letter at the start of the file name for visual novel sections. The letters used for visual novel sections in game are A, B and C. The letters seem to represent story paths. For example, following all the way down the B path will result in the Safe Ending for the game while following all the way down the A path once the B path is completed will result in the True Ending for the game. The C path always results in a bad ending as well as straying from one path to another after the first/second class cabin escapes. The D path goes unused entirely as ~D01d is the only file syntax to reference it.

The oddities don’t end there. All novel and puzzle sections have numbers in their titles. Simply put, these numbers represent how far down a path that particular section is. Look at the puzzle sections for path A(True Ending). ~A01 // 3rd Class Cabin ~A11 // 2nd Class Cabin ~A12 // Kitchen ~A21 // Operating Room ~A31 // Chartroom ~A32 // Captain’s Quarters ~A41 // Library ~A42 // Study

The numbers increase the further the game progresses. The situation with the missing D01d file is that its numbers place it around the novel and puzzle sections for the 3rd Class Cabin.

Other Tidbits
The last bit worth mentioning is that the file op.fsb that is also found in the root/scr directory doesn’t appear to have a similar function name on the global.ini list or on the novel.dat list. It is unknown why this is and trying to force the game to load the file only causes the game to crash.

Game Startup
The startup screen of the Japanese and US versions are different because they are published by different companies. The startup for the US version game also includes the graphics "Licensed by Nintendo" which is absent from the Japanese version. The title screen between the Japanese and US versions are different as well.

3rd Class Cabin
While all the puzzles in this room are present in both versions of the game, the way to figure out the number combinations that open the blue and red suitcases is different. This is due to the fact that the graphics that are on the picture of the cruise liner, the memo from the bed and the note from the bulletin board were changed. These changes are the result of localization.

In the Japanese version, the memo from the bed and the the note from the bulletin board have two colored katakana on them which correspond to one of the suitcases. The way to figure out the number combinations is to look at the first katakana and match it up with the katakana written on the back of the one on the picture of the cruise liner which will reveal a two digit number. That number corresponds to the first half of a number combination to a suitcase. Doing the same for the second katakana will reveal the second half of a number combination to a suitcase.

In the US version, four different shapes are written on the back of the memo from the bed and the note from the bulletin board. The first two shapes are in one color and the last two shapes are in a different color. Putting the shapes of the same color together from the two pieces of paper will reveal the number combination to that respective suitcase. To get the number combinations from the shapes, match the shapes to the shapes written on the back of the picture of the cruise liner.

The number combinations for the blue and red suitcase in the Japanese version, 1121 and 1115 respectively, differ from the US version, 0263 and 7485 respectively. They were most likely changed in the US version so that the same shapes weren't used since the number "1" appears three times in the Japanese number combinations.