If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Tetris DS (THQ)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Tetris DS

Developer: TOSE
Platform: Nintendo DS


SourceIcon.png This game has uncompiled source code.
SoundIcon.png This game has unused sounds.


This game was stuffed away in a cardboard box and found 30 years later in a garage
This game was never completed and/or given a public release.
As a result of this, keep in mind that the developers might have used or deleted some of the content featured here, had the game actually been released.

THQ's Tetris DS was under development for months and appeared to be nearing completion, but legal issues between THQ and The Tetris Company arose, leading to this version being cancelled.

Multiple builds later surfaced on eBay, and TCRF was lucky to get its own copy.

Download.png Download Tetris DS (THQ)
File: Tetris-ds.7z (info)
Current version: December 4, 2004


Unused Sound

This would have been used when getting a game over, but the letters for "GAME OVER" just fall into place without any dramatic sound.

Source Code

\msg\tetris_ds_msg_16.h

Contained inside the ROM are two source headers dealing with the message sizes: tetris_ds_msg_16.h and tetris_ds_msg_24.h. They are nearly identical to each other, though, so only the former is listed here.

//============================================================================
//  tetris_ds_msg_16.h
//============================================================================
#ifndef tetris_ds_msg_16_h
#define tetris_ds_msg_16_h


#include <nitro/types.h>


//  No.        Unicode    Count
//  0x00000000 0x00000000 2147483647
//  0x00000001 0x00000020 2147483647
//  0x00000002 0x00000030 2147483647
//  0x00000003 0x00000031 2147483647
//  0x00000004 0x00000032 2147483647
//  0x00000005 0x00000033 2147483647
//  0x00000006 0x00000034 2147483647
//  0x00000007 0x00000035 2147483647
//  0x00000008 0x00000036 2147483647
//  0x00000009 0x00000037 2147483647
//  0x0000000A 0x00000038 2147483647
//  0x0000000B 0x00000039 2147483647
//  0x0000000C 0x00000041 2147483647
//  0x0000000D 0x00000042 2147483647
//  0x0000000E 0x00000043 2147483647
//  0x0000000F 0x00000044 2147483647
//  0x00000010 0x00000045 2147483647
//  0x00000011 0x00000046 2147483647
//  0x00000012 0x00000047 2147483647
//  0x00000013 0x00000048 2147483647
//  0x00000014 0x00000049 2147483647
//  0x00000015 0x0000004A 2147483647
//  0x00000016 0x0000004B 2147483647
//  0x00000017 0x0000004C 2147483647
//  0x00000018 0x0000004D 2147483647
//  0x00000019 0x0000004E 2147483647
//  0x0000001A 0x0000004F 2147483647
//  0x0000001B 0x00000050 2147483647
//  0x0000001C 0x00000051 2147483647
//  0x0000001D 0x00000052 2147483647
//  0x0000001E 0x00000053 2147483647
//  0x0000001F 0x00000054 2147483647
//  0x00000020 0x00000055 2147483647
//  0x00000021 0x00000056 2147483647
//  0x00000022 0x00000057 2147483647
//  0x00000023 0x00000058 2147483647
//  0x00000024 0x00000059 2147483647
//  0x00000025 0x0000005A 2147483647
//  0x00000026 0x00000061 2147483647
//  0x00000027 0x00000062 2147483647
//  0x00000028 0x00000063 2147483647
//  0x00000029 0x00000064 2147483647
//  0x0000002A 0x00000065 2147483647
//  0x0000002B 0x00000066 2147483647
//  0x0000002C 0x00000067 2147483647
//  0x0000002D 0x00000068 2147483647
//  0x0000002E 0x00000069 2147483647
//  0x0000002F 0x0000006A 2147483647
//  0x00000030 0x0000006B 2147483647
//  0x00000031 0x0000006C 2147483647
//  0x00000032 0x0000006D 2147483647
//  0x00000033 0x0000006E 2147483647
//  0x00000034 0x0000006F 2147483647
//  0x00000035 0x00000070 2147483647
//  0x00000036 0x00000071 2147483647
//  0x00000037 0x00000072 2147483647
//  0x00000038 0x00000073 2147483647
//  0x00000039 0x00000074 2147483647
//  0x0000003A 0x00000075 2147483647
//  0x0000003B 0x00000076 2147483647
//  0x0000003C 0x00000077 2147483647
//  0x0000003D 0x00000078 2147483647
//  0x0000003E 0x00000079 2147483647
//  0x0000003F 0x0000007A 2147483647
//  0x00000040 0x000000C0 2147483647
//  0x00000041 0x000000C1 2147483647
//  0x00000042 0x000000C2 2147483647
//  0x00000043 0x000000C4 2147483647
//  0x00000044 0x000000C8 2147483647
//  0x00000045 0x000000C9 2147483647
//  0x00000046 0x000000CA 2147483647
//  0x00000047 0x000000CB 2147483647
//  0x00000048 0x000000CC 2147483647
//  0x00000049 0x000000CD 2147483647
//  0x0000004A 0x000000CE 2147483647
//  0x0000004B 0x000000CF 2147483647
//  0x0000004C 0x000000D2 2147483647
//  0x0000004D 0x000000D3 2147483647
//  0x0000004E 0x000000D4 2147483647
//  0x0000004F 0x000000D6 2147483647
//  0x00000050 0x00000152 2147483647
//  0x00000051 0x000000D9 2147483647
//  0x00000052 0x000000DA 2147483647
//  0x00000053 0x000000DB 2147483647
//  0x00000054 0x000000DC 2147483647
//  0x00000055 0x000000C7 2147483647
//  0x00000056 0x000000D1 2147483647
//  0x00000057 0x000000E0 2147483647
//  0x00000058 0x000000E1 2147483647
//  0x00000059 0x000000E2 2147483647
//  0x0000005A 0x000000E4 2147483647
//  0x0000005B 0x000000E8 2147483647
//  0x0000005C 0x000000E9 2147483647
//  0x0000005D 0x000000EA 2147483647
//  0x0000005E 0x000000EB 2147483647
//  0x0000005F 0x000000EC 2147483647
//  0x00000060 0x000000ED 2147483647
//  0x00000061 0x000000EE 2147483647
//  0x00000062 0x000000EF 2147483647
//  0x00000063 0x000000F2 2147483647
//  0x00000064 0x000000F3 2147483647
//  0x00000065 0x000000F4 2147483647
//  0x00000066 0x000000F6 2147483647
//  0x00000067 0x00000153 2147483647
//  0x00000068 0x000000F9 2147483647
//  0x00000069 0x000000FA 2147483647
//  0x0000006A 0x000000FB 2147483647
//  0x0000006B 0x000000FC 2147483647
//  0x0000006C 0x000000E7 2147483647
//  0x0000006D 0x000000F1 2147483647
//  0x0000006E 0x000000DF 2147483647
//  0x0000006F 0x00000021 2147483647
//  0x00000070 0x000000A1 2147483647
//  0x00000071 0x0000003F 2147483647
//  0x00000072 0x000000BF 2147483647
//  0x00000073 0x00000026 2147483647
//  0x00000074 0x00000027 2147483647
//  0x00000075 0x0000003A 2147483647
//  0x00000076 0x0000003B 2147483647
//  0x00000077 0x00000040 2147483647
//  0x00000078 0x0000007E 2147483647
//  0x00000079 0x0000005F 2147483647
//  0x0000007A 0x0000002B 2147483647
//  0x0000007B 0x0000002D 2147483647
//  0x0000007C 0x0000002A 2147483647
//  0x0000007D 0x0000002F 2147483647
//  0x0000007E 0x000000D7 2147483647
//  0x0000007F 0x000000F7 2147483647
//  0x00000080 0x0000003D 2147483647
//  0x00000081 0x0000300C 2147483647
//  0x00000082 0x0000300D 2147483647
//  0x00000083 0x0000201C 2147483647
//  0x00000084 0x0000201D 2147483647
//  0x00000085 0x00000028 2147483647
//  0x00000086 0x00000029 2147483647
//  0x00000087 0x0000003C 2147483647
//  0x00000088 0x0000003E 2147483647
//  0x00000089 0x0000007B 2147483647
//  0x0000008A 0x0000007D 2147483647
//  0x0000008B 0x000000B7 2147483647
//  0x0000008C 0x00000025 2147483647
//  0x0000008D 0x0000203B 2147483647
//  0x0000008E 0x00000023 2147483647
//  0x0000008F 0x00000024 2147483647
//  0x00000090 0x000000A2 2147483647
//  0x00000091 0x000000A3 2147483647
//  0x00000092 0x0000005E 2147483647
//  0x00000093 0x0000301C 2147483647
//  0x00000094 0x000000A9 2147483647
//  0x00000095 0x000000AE 2147483647
//  0x00000096 0x0000002E 7
//  0x00000097 0x000030BF 3
//  0x00000098 0x00003057 2
//  0x00000099 0x00003066 2
//  0x0000009A 0x00003055 2
//  0x0000009B 0x00003044 2
//  0x0000009C 0x00000022 1
//  0x0000009D 0x0000002C 1
//  0x0000009E 0x0000005B 1
//  0x0000009F 0x0000005C 1
//  0x000000A0 0x0000005D 1
//  0x000000A1 0x00000060 1
//  0x000000A2 0x0000007C 1
//  0x000000A3 0x00004F55 1
//  0x000000A4 0x0000304B 1
//  0x000000A5 0x000030DC 1
//  0x000000A6 0x000030F3 1
//  0x000000A7 0x00003092 1
//  0x000000A8 0x000062BC 1
//  0x000000A9 0x00004E0B 1
//  0x000000AA 0x0000753B 1
//  0x000000AB 0x00009762 1
//  0x000000AC 0x0000306B 1
//  0x000000AD 0x000030C3 1
//  0x000000AE 0x000030C1 1
//  0x000000AF 0x0000304F 1
//  0x000000B0 0x00003060 1
//  0x000000B1 0x000030C7 1
//  0x000000B2 0x000030FC 1
//  0x000000B3 0x0000306F 1
//  0x000000B4 0x00004EEE 1
//  0x000000B5 0x00003067 1
//  0x000000B6 0x00003059 1
//  0x000000B7 0x00003002 1

//  改行コード<br>に対応した文字コード。
//  The text code (encoding) corresponding to the line break <br>.)
#ifndef TEXTCODE_CR
#define TEXTCODE_CR    0xFFFE
#endif

namespace tetris_ds_msg_16 {

enum {
    MSG_FIX = 0,
    MSG_TITLE_08,
    MSG_TITLE_09,
    MSG_PLAY_00,
    MSG_PLAY_01,
    MSG_PLAY_02,
    MSG_PLAY_03,
    MSG_PLAY_04,
    MSG_PLAY_05,
    MSG_PLAY_06,
    MSG_PLAY_07,
    MSG_PLAY_08,
    MSG_OVER_01,
    MSG_OVER_04,
    MSG_GAME_00,
    MSG_BGM_00,
    MSG_BGM_01,
    MSG_BGM_02,
    MSG_BGM_03,
    MSG_BGM_04,
    MSG_BGM_05,
    MSG_BGM_06,
    MSG_BGM_07,
    MSG_BGM_08,
    MSG_BG_00,
    MSG_BG_01,
    MSG_BG_02,
    MSG_BG_03,
    MSG_BG_04,
    MSG_BG_05,
    MSG_BG_06,
    MSG_BG_07,
    MSG_BG_08,
    MSG_BG_09,
    MSG_BG_10,
    MSG_BG_11,
    MSG_BG_12,
    MSG_BG_13,
    MSG_BG_14,
    MSG_BG_15,
    MSG_LEGAL_COPY,
};

}

using namespace tetris_ds_msg_16;



#define tetris_ds_msg_16_msg_LangCount    7
#define tetris_ds_msg_16_msg_MsgCount     41
#define tetris_ds_msg_16_msg_DataSize     4849
typedef struct {
    u32 zero;           //  0
    u32 signature;      //  'TEXT'
    u32 language_count; //  言語数。 Number of languages.
    u32 message_count;  //  メッセージ数。 Number of messages.
    u32 offset[ tetris_ds_msg_16_msg_MsgCount ][ tetris_ds_msg_16_msg_LangCount ];
    u8  string[ tetris_ds_msg_16_msg_DataSize ];
} tetris_ds_msg_16_msg;


//  フォントデータ用構造体。 Struct for font data.
//      使用例) Usage example)
//      ・フォントデータファイルの読み込みアドレスを p として、 Let the memory address of the loaded font data file be p,
//        文字コード c のデータ開始アドレス p_font は以下の通り。 the starting address p_font of the data of character code c is as follows.
//          ① p_font = ((tetris_ds_msg_16_fnt *)p)->data + ((tetris_ds_msg_16_fnt *)p)->offset[ c ]
//          ② const u16 count = *(u16 *)((u8 *)p + 6);
//             const u32 *const p_offset = (u32 *)((u8 *)p + 12 + 2 * 128);
//             const u8 *const p_data = (u8 *)p_offset + sizeof(u32) * count;
//             p_font = p_data + p_offset[ c ];
#define tetris_ds_msg_16_fnt_FontCount    184
#define tetris_ds_msg_16_fnt_DataSize     7008
typedef struct {
    //  0。
    u32 zero;
    //  'FONT'。
    u32 signature;
    //  フォントの高さ(ピクセル単位)。 Font height (in pixels).
    u8  h;
    //  フォントのピクセル毎ビット数。 Number of bits per pixel of the font.
    u8  bpp;
    //  フォント数。 Number of fonts.
    u16 count;
    //  ASCII コード変換テーブル。 ASCII code conversion table.
    u16 ascii[ 128 ];
    //  フォントデータの文字番号に対応したデータ開始位置からのオフセットテーブル。 Table of offsets from the starting position of the font data, corresponding to the character numbers in the data.
    u32 offset[ tetris_ds_msg_16_fnt_FontCount ];
    //  フォントデータ本体。 The font data itself.
    u8  data[ tetris_ds_msg_16_fnt_DataSize ];
} tetris_ds_msg_16_fnt;


#endif  //  #ifndef tetris_ds_msg_16_h

\menu\name00_NANR_LBLDEFS.h

An additional copy of this file named name00_NMAR_LBLDEFS.h exists alongside name00_NANR_LBLDEFS.h. It's nearly identical, only having "NMAR" in place of every "NANR".

//-----------------------------------------------------
// This file was generated by g2dcvtr.exe converter.
// Avoid editting this file.
// creation date ==> Monday, November 22, 2004.
//-----------------------------------------------------
#define    NANR_name00_button00    0
#define    NANR_name00_button01    1
#define    NANR_name00_button02    2
#define    NANR_name00_button03    3
#define    NANR_name00_button04    4
#define    NANR_name00_button05    5
#define    NANR_name00_button06    6
#define    NANR_name00_button07    7
#define    NANR_name00_button08    8
#define    NANR_name00_menu00    9
#define    NANR_name00_menu01    10

\menu\rank00_NANR_LBLDEFS.h

//-----------------------------------------------------
// This file was generated by g2dcvtr.exe converter.
// Avoid editting this file.
// creation date ==> Monday, November 22, 2004.
//-----------------------------------------------------
#define    NANR_rank00_star00    0
#define    NANR_rank00_star01    1
#define    NANR_rank00_star02    2
#define    NANR_rank00_star03    3
#define    NANR_rank00_star04    4
#define    NANR_rank00_star05    5
#define    NANR_rank00_star06    6
#define    NANR_rank00_light    7
#define    NANR_rank00_no1    8
#define    NANR_rank00_no2    9
#define    NANR_rank00_no3    10

\menu\rank00_NMAR_LBLDEFS.h

//-----------------------------------------------------
// This file was generated by g2dcvtr.exe converter.
// Avoid editting this file.
// creation date ==> Monday, November 22, 2004.
//-----------------------------------------------------
#define    NMAR_rank00_stars00    0
#define    NMAR_rank00_stars01    1
#define    NMAR_rank00_stars02    2
#define    NMAR_rank00_no1    3
#define    NMAR_rank00_no2    4
#define    NMAR_rank00_no3    5