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

Splatoon 3/Debug Leftovers

From The Cutting Room Floor
Jump to navigation Jump to search


The game has a small number of layouts defined that do not have files present. As of v1.1.0, the references were silently removed but added back in v1.2.0 and then removed again in v2.0.0 onward.

Name Memory Heap Size
Cmn_TestXMenu_00 64304
Lobby_TestLockerCaption_00 15512
Lobby_TestLockerMenu_00 100400
Test_KitnTestBeatAnim_00 4512
Test_UICheckBG_00 5752

Uncompiled Shaders

To do:
Any more archives with them?

The BtnSelectFriend_00 layout archive of the game data (of v1.1.0+) has the original source shaders in the bgsh dirctory.

#include "ColorGap_05.glsl"

// Generated shader code

float Add( float a, float b )
    return a + b;
vec2 Add( vec2 a, vec2 b )
    return a + b;
#endif // _SGEFUNC_ADD_VEC2_VEC2_
float Clamp01( float x )
    return clamp( x, 0.0, 1.0 );
float Inverse( float x )
    return 1.0 / x;
vec3 Inverse( vec3 x )
    return vec3( 1.0 / x.x, 1.0 / x.y, 1.0 / x.z );
vec4 Mix( vec4 x, vec4 y, vec4 a )
    return mix( x, y, a );
#endif // _SGEFUNC_MIX_VEC4_VEC4_VEC4_
float Multiply( float x, float y )
    return x * y;
vec2 Multiply( vec2 x, float y )
    return x * y;
vec3 Multiply( vec3 x, vec3 y )
    return x * y;
vec4 Multiply( vec4 x, vec4 y )
    return x * y;
vec2 Sub( vec2 a, vec2 b )
    return a - b;
#endif // _SGEFUNC_SUB_VEC2_VEC2_
void Output( vec4 color )
    OUTPUT_COLOR = color;

    // alpha processing
    OUTPUT_COLOR.a = CalcAlphaProcess( OUTPUT_COLOR.a );

    // custom shader

vec2 GetTexture0UV()
    return nwTextureCoord0;
vec4 GetTexture0( vec2 uv )
    vec4 color = texture( nwAlbedoTexture0, uv );
    return color;
vec4 GetConstantColorBlack()
    return nwConstantColor0;
vec4 GetConstantColorWhite()
    return nwConstantColor1;
vec3 GetExUserDataVec3_0()
    return nwExUserDataVec3_0;
vec3 GetExUserDataVec3_1()
    return nwExUserDataVec3_1;
vec2 GetExUserDataVec2_0()
    return nwExUserDataVec2_0;
vec4 GetVertexColor()
    return vColor;
vec4 CombF4( float f1, float f2, float f3, float f4 )
    return vec4( f1, f2, f3, f4 );
void DivF3( out float f0, out float f1, out float f2, vec3 v3 )
    f0 = v3.x;
    f1 = v3.y;
    f2 = v3.z;

void main()
    vec4 GetConstantColorBlack_return_23831 = GetConstantColorBlack();

    vec4 GetConstantColorWhite_return_23915 = GetConstantColorWhite();

    vec3 GetExUserDataVec3_0_return_16172 = GetExUserDataVec3_0();

    vec3 Inverse_return_16558 = Inverse(vec3(255.0, 255.0, 255.0));

    vec3 Multiply_return_16359 = Multiply(GetExUserDataVec3_0_return_16172, Inverse_return_16558);

    float DivF3_f0_17119;
    float DivF3_f1_17119;
    float DivF3_f2_17119;
    DivF3(DivF3_f0_17119, DivF3_f1_17119, DivF3_f2_17119, Multiply_return_16359);

    vec2 GetTexture0UV_return_397 = GetTexture0UV();

    vec2 GetExUserDataVec2_0_return_22286 = GetExUserDataVec2_0();

    float Inverse_return_22926 = Inverse(100.0);

    vec2 Multiply_return_22803 = Multiply(GetExUserDataVec2_0_return_22286, Inverse_return_22926);

    vec2 Add_return_463 = Add(GetTexture0UV_return_397, Multiply_return_22803);

    vec4 GetTexture0_return_178 = GetTexture0(Add_return_463);

    float Multiply_return_17466 = Multiply(DivF3_f0_17119, GetTexture0_return_178.w);

    vec3 GetExUserDataVec3_1_return_16264 = GetExUserDataVec3_1();

    vec3 Multiply_return_16887 = Multiply(GetExUserDataVec3_1_return_16264, Inverse_return_16558);

    float DivF3_f0_17227;
    float DivF3_f1_17227;
    float DivF3_f2_17227;
    DivF3(DivF3_f0_17227, DivF3_f1_17227, DivF3_f2_17227, Multiply_return_16887);

    vec2 Sub_return_668 = Sub(GetTexture0UV_return_397, Multiply_return_22803);

    vec4 GetTexture0_return_839 = GetTexture0(Sub_return_668);

    float Multiply_return_18231 = Multiply(DivF3_f0_17227, GetTexture0_return_839.w);

    float Add_return_19050 = Add(Multiply_return_17466, Multiply_return_18231);

    float Multiply_return_17715 = Multiply(DivF3_f1_17119, GetTexture0_return_178.w);

    float Multiply_return_18498 = Multiply(DivF3_f1_17227, GetTexture0_return_839.w);

    float Add_return_19335 = Add(Multiply_return_17715, Multiply_return_18498);

    float Multiply_return_17970 = Multiply(DivF3_f2_17119, GetTexture0_return_178.w);

    float Multiply_return_18771 = Multiply(DivF3_f2_17227, GetTexture0_return_839.w);

    float Add_return_19626 = Add(Multiply_return_17970, Multiply_return_18771);

    float Add_return_20334 = Add(GetTexture0_return_178.w, GetTexture0_return_839.w);

    float Clamp01_return_20643 = Clamp01(Add_return_20334);

    vec4 CombF4_return_19923 = CombF4(Add_return_19050, Add_return_19335, Add_return_19626, Clamp01_return_20643);

    vec4 Mix_return_24001 = Mix(GetConstantColorBlack_return_23831, GetConstantColorWhite_return_23915, CombF4_return_19923);

    vec4 GetVertexColor_return_24309 = GetVertexColor();

    vec4 Multiply_return_24416 = Multiply(Mix_return_24001, GetVertexColor_return_24309);



Locker Goods Capture

In the 1.0.0 revision of the game, a debug folder named LockerGoodsCapture exists that is not present in any subsequent version. This folder contains parameter files to set a camera position for certain gear types. Based on the name, these files are likely leftovers used to capture the icons for items and gear.


To do:
v1.0.0 also has some unlocalized entries.

Message Test

CommonMsg/MsgTest.msbt is referenced in the game executable. Unfortunately the file was removed from the product. The following string IDs are present.


Test X Menu

LayoutMsg/Cmn_TestXMenu_00.msbt is currently present in all releases, only containing a single text line for all languages.


Region Change

To do:
Fix the encoding if possible, the string ID is referenced by the executable.

SystemWindow/SystemMsg_CloudSave.msbt in v1.1.0 has a string entry for likely telling the user to change their region to a non-Japanese one after rebooting. Interestingly, it has different localizations for the new languages, Korean and Chinese.

Msg_ConfirmFestRegion_Reboot (String ID)
Japanese Japanese (Translated) Simplified Chinese Simplified Chinese (Translated) Korean Korean (Translated) Traditional Chinese Traditional Chinese (Translated)
<color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/>向けのフェスは、
<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>に切り替える必要があります
The <color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/>Splatfest
does not support Japanese.
During this Splatfest, you will need to restart the software and switch the in-game text display to
<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>.
Is this OK?
面向<color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/>举行的祭典
将游戏内容切换为以<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>显示。
The <color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/> Splatfest does not support Simplified Chinese.
During this Splatfest, you will need to restart the software and switch the game content to <color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>.
Are you sure you want to choose this region?
<color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/>의 페스티벌은
한국어에 대응하지 않습니다
페스티벌 개최 중에는 소프트웨어를 재기동하여 게임 내 표시를
<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/><fun_000800C9 arg="0x04003CC75CB802005CB8"/> 전환해야 합니다
그래도 괜찮겠습니까?
The <color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/> Splatfest
does not correspond to Korean.
During this Splatfest, you will need to restart the software and switch the in-game text display to 
<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/><fun_000800C9 arg="0x04003CC75CB802005CB8"/>.
Is this OK?
此為<color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/>舉行的祭典
將遊戲內容切換為以<color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>顯示。
The <color id="1"/><fun_00110004 arg="0x00000000"/><color id="65535"/> Splatfest does not support Traditional Chinese.
During the Splatfest, you will need to restart the software and switch the game content to <color id="1"/><fun_00120004 arg="0x00000000"/><color id="65535"/>.
Are you sure you want to choose this region?

Locker Debug Menu

LayoutMsg/Lobby_TestLockerCaption_00.msbt is present in v1.0.0 with multiple entries referencing debug controls. The layout file under the same name was removed but referenced in the game executable and memory heap size configuration (with a size of 15512 bytes). Interestingly, a layout named TestLockerBtn_00 is also mentioned in the game executable to most likely reference this file but again, was removed. The other layout file referenced in both is Lobby_TestLockerMenu_00 (with a size of 100400 bytes).

String ID Japanese Japanese (Translated)
X: Debug Creation
A: Grab/Release
B: Erase
ZL/ZR: Large Rotation
L/R: Small Rotation
Left/Right: Select
Right Stick: Change Direction
Left Stick: Move Cursor
●Don't Place

Bug Reporting

CommonMsg/Dev.msbt contains a single text entry, being a template most likely relating to a feature used by developer/playtester builds of the game to interactively report bugs to programmers. There's no references for this file and/or text entry in any form so it is unsure if this is entirely hardcoded or referenced in a layout. It has most likely the same text translated so we don't really need to manually translate.

String ID Text
■手順 / Procedures

■結果 / Result

■試行回数 / Number of attempts

■備考 / Remarks


Debug Scenes

To do:
More explanation.
Name Internal Label Internal Label (Translated/Localized) Version Added Version Removed Notes
Dev Portal 開発ポータル Development Portal 1.0.0 2.0.0 Likely equivalent to DbgSetting in previous games
EnemyTest 99_Msn エネミーテストシーン 99_Msn Enemy Test Scene 1.0.0 2.0.0
MapPartsTest 99_Msn マップパーツテストシーン 99_Msn Map Parts Test Scene 1.0.0 2.0.0
MiniGameEditDeckTest ミニゲーム デッキエディタテスト MiniGame Deck Editor Test 1.2.0 2.0.0
MiniGameTest ミニゲームテスト MiniGame Test 1.2.0 2.0.0
MiniGameUICheck ミニゲームUIチェックシーン MiniGame UI Check Scene 1.2.0 2.0.0
ObjectTest 99_Msn オブジェクトテストシーン 99_Msn Object Test Scene 1.0.0 2.0.0
PlayerViewer プレイヤービューワー Player Viewer 1.2.0 2.0.0 Debug tool to view players with a large degree of customization options, often used to make promotional renders
TestMatchScene P2Pテストマッチシーン P2P Test Match Scene 1.0.0 2.0.0 Likely equivalent to DbgSetting's matchmaking in previous games
UICheck UIチェックシーン UI Check Scene 1.2.0 2.0.0
UniformNameCheck お揃い称号チェックシーン Matching Title Check Scene 1.2.0 2.0.0
Vss_TF0905 Test マサバ 鹿野01 Test "Mackerel Kano"01 1.0.0 1.1.0 Likely a Hammerhead Bridge TestField

(Source: Splatoon Datasheets)