This is a sub-page of Splatoon 3.
Sub-Pages#
Layouts#
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.
Development Shaders#
|
File: SPL3_Development_Shaders.zip (913 KB) (info) |
Various shaders tagged with the develop tag were accidentally added to the files in the Drizzle Season 2023 (Version 5.0.0) update, and were subsequently removed in the Version 5.0.1 update a week later.
Most of the shaders were for the skyboxes seen in most stages, but other ones such as a shader for the Shipshape Cargo Co. stage and the King Mesh Tee were also included.
Uncompiled Shaders#
|
|
To do: |
The BtnSelectFriend_00 layout archive of the game data (of v1.1.0+) has the original source shaders in the bgsh dirctory.
#if NW_COMBINERUSERSHADER_TYPE == 1
#include "ColorGap_05.glsl"
#endif
//
// Generated shader code
//
#ifndef _SGEFUNC_ADD_FLOAT_FLOAT_
#define _SGEFUNC_ADD_FLOAT_FLOAT_
float Add( float a, float b )
{
return a + b;
}
#endif // _SGEFUNC_ADD_FLOAT_FLOAT_
#ifndef _SGEFUNC_ADD_VEC2_VEC2_
#define _SGEFUNC_ADD_VEC2_VEC2_
vec2 Add( vec2 a, vec2 b )
{
return a + b;
}
#endif // _SGEFUNC_ADD_VEC2_VEC2_
#ifndef _SGEFUNC_CLAMP01_FLOAT_
#define _SGEFUNC_CLAMP01_FLOAT_
float Clamp01( float x )
{
return clamp( x, 0.0, 1.0 );
}
#endif // _SGEFUNC_CLAMP01_FLOAT_
#ifndef _SGEFUNC_INVERSE_FLOAT_
#define _SGEFUNC_INVERSE_FLOAT_
float Inverse( float x )
{
return 1.0 / x;
}
#endif // _SGEFUNC_INVERSE_FLOAT_
#ifndef _SGEFUNC_INVERSE_VEC3_
#define _SGEFUNC_INVERSE_VEC3_
vec3 Inverse( vec3 x )
{
return vec3( 1.0 / x.x, 1.0 / x.y, 1.0 / x.z );
}
#endif // _SGEFUNC_INVERSE_VEC3_
#ifndef _SGEFUNC_MIX_VEC4_VEC4_VEC4_
#define _SGEFUNC_MIX_VEC4_VEC4_VEC4_
vec4 Mix( vec4 x, vec4 y, vec4 a )
{
return mix( x, y, a );
}
#endif // _SGEFUNC_MIX_VEC4_VEC4_VEC4_
#ifndef _SGEFUNC_MULTIPLY_FLOAT_FLOAT_
#define _SGEFUNC_MULTIPLY_FLOAT_FLOAT_
float Multiply( float x, float y )
{
return x * y;
}
#endif // _SGEFUNC_MULTIPLY_FLOAT_FLOAT_
#ifndef _SGEFUNC_MULTIPLY_VEC2_FLOAT_
#define _SGEFUNC_MULTIPLY_VEC2_FLOAT_
vec2 Multiply( vec2 x, float y )
{
return x * y;
}
#endif // _SGEFUNC_MULTIPLY_VEC2_FLOAT_
#ifndef _SGEFUNC_MULTIPLY_VEC3_VEC3_
#define _SGEFUNC_MULTIPLY_VEC3_VEC3_
vec3 Multiply( vec3 x, vec3 y )
{
return x * y;
}
#endif // _SGEFUNC_MULTIPLY_VEC3_VEC3_
#ifndef _SGEFUNC_MULTIPLY_VEC4_VEC4_
#define _SGEFUNC_MULTIPLY_VEC4_VEC4_
vec4 Multiply( vec4 x, vec4 y )
{
return x * y;
}
#endif // _SGEFUNC_MULTIPLY_VEC4_VEC4_
#ifndef _SGEFUNC_SUB_VEC2_VEC2_
#define _SGEFUNC_SUB_VEC2_VEC2_
vec2 Sub( vec2 a, vec2 b )
{
return a - b;
}
#endif // _SGEFUNC_SUB_VEC2_VEC2_
#ifndef _SGEFUNC_OUTPUT_VEC4_
#define _SGEFUNC_OUTPUT_VEC4_
void Output( vec4 color )
{
OUTPUT_COLOR = color;
// alpha processing
OUTPUT_COLOR.a = CalcAlphaProcess( OUTPUT_COLOR.a );
// custom shader
FinalAdjustmentFragmentColor();
}
#endif // _SGEFUNC_OUTPUT_VEC4_
#ifndef _SGEFUNC_GETTEXTURE0UV_
#define _SGEFUNC_GETTEXTURE0UV_
vec2 GetTexture0UV()
{
return nwTextureCoord0;
}
#endif // _SGEFUNC_GETTEXTURE0UV_
#ifndef _SGEFUNC_GETTEXTURE0_VEC2_
#define _SGEFUNC_GETTEXTURE0_VEC2_
vec4 GetTexture0( vec2 uv )
{
vec4 color = texture( nwAlbedoTexture0, uv );
return color;
}
#endif // _SGEFUNC_GETTEXTURE0_VEC2_
#ifndef _SGEFUNC_GETCONSTANTCOLORBLACK_
#define _SGEFUNC_GETCONSTANTCOLORBLACK_
vec4 GetConstantColorBlack()
{
return nwConstantColor0;
}
#endif // _SGEFUNC_GETCONSTANTCOLORBLACK_
#ifndef _SGEFUNC_GETCONSTANTCOLORWHITE_
#define _SGEFUNC_GETCONSTANTCOLORWHITE_
vec4 GetConstantColorWhite()
{
return nwConstantColor1;
}
#endif // _SGEFUNC_GETCONSTANTCOLORWHITE_
#ifndef _SGEFUNC_GETEXUSERDATAVEC3_0_
#define _SGEFUNC_GETEXUSERDATAVEC3_0_
vec3 GetExUserDataVec3_0()
{
return nwExUserDataVec3_0;
}
#endif // _SGEFUNC_GETEXUSERDATAVEC3_0_
#ifndef _SGEFUNC_GETEXUSERDATAVEC3_1_
#define _SGEFUNC_GETEXUSERDATAVEC3_1_
vec3 GetExUserDataVec3_1()
{
return nwExUserDataVec3_1;
}
#endif // _SGEFUNC_GETEXUSERDATAVEC3_1_
#ifndef _SGEFUNC_GETEXUSERDATAVEC2_0_
#define _SGEFUNC_GETEXUSERDATAVEC2_0_
vec2 GetExUserDataVec2_0()
{
return nwExUserDataVec2_0;
}
#endif // _SGEFUNC_GETEXUSERDATAVEC2_0_
#ifndef _SGEFUNC_GETVERTEXCOLOR_
#define _SGEFUNC_GETVERTEXCOLOR_
vec4 GetVertexColor()
{
return vColor;
}
#endif // _SGEFUNC_GETVERTEXCOLOR_
#ifndef _SGEFUNC_COMBF4_FLOAT_FLOAT_FLOAT_FLOAT_
#define _SGEFUNC_COMBF4_FLOAT_FLOAT_FLOAT_FLOAT_
vec4 CombF4( float f1, float f2, float f3, float f4 )
{
return vec4( f1, f2, f3, f4 );
}
#endif // _SGEFUNC_COMBF4_FLOAT_FLOAT_FLOAT_FLOAT_
#ifndef _SGEFUNC_DIVF3_FLOAT_FLOAT_FLOAT_VEC3_
#define _SGEFUNC_DIVF3_FLOAT_FLOAT_FLOAT_VEC3_
void DivF3( out float f0, out float f1, out float f2, vec3 v3 )
{
f0 = v3.x;
f1 = v3.y;
f2 = v3.z;
}
#endif // _SGEFUNC_DIVF3_FLOAT_FLOAT_FLOAT_VEC3_
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);
Output(Multiply_return_24416);
}
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.
Text#
|
|
To do: |
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.
Msg_Test_01
Msg_Test_02
Msg_Test_03
Msg_Test_04
Msg_Test_05
Msg_Test_06
Msg_Test_07
Msg_Test_20
Msg_Test_21
Msg_Test_30
Msg_Test_31
Msg_Test_32
Test X Menu#
LayoutMsg/Cmn_TestXMenu_00.msbt is currently present in all releases, only containing a single text line for all languages.
Shop
Region Change#
|
|
To do: |
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 |
|
Simplified Chinese |
|
Korean |
|
Traditional Chinese |
|
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) |
|---|---|---|
T_text_00 |
|
|
T_text_01 |
|
|
T_text_02 |
|
|
T_text_03 |
|
|
T_text_04 |
|
|
T_text_05 |
|
|
T_text_06 |
|
|
T_text_07 |
|
|
T_text_08 |
|
|
T_text_09 |
|
|
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 |
|---|---|
BugReportContent |
|
Debug Scenes#
|
|
To do: |
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)