New Super Mario Bros. U

Contents
1. Subpages
2. Levels
3. Engine
4. Tilesets
5. Other resources

New Super Mario Bros. U is a game released in 2012 by Nintendo for the Wii U. Mario and co. need to travel through eight worlds again (physically connected to each other this time) to reach an apocalyptic Peach's Castle. Its sequel, which is largely the same game, is New Super Luigi U.

Note: the New Super Luigi U page should not be merged with this one because it documents only the differences between that game and this.

1. Subpages

To-do lists:
New Super Mario Bros. U/To-do
New Super Mario Bros. U/List of Files
New Super Mario Bros. U/Sprite to Actor To-do
New Super Mario Bros. U/Testing To-do

Files that can be used in Reggie:
New Super Mario Bros. U/levelnames.xml
New Super Mario Bros. U/music.txt
New Super Mario Bros. U/ts1 descriptions.txt
New Super Mario Bros. U/entrancetypes.txt

Game files:
New Super Mario Bros. U/HIOSubjectData CAFE.exbin
New Super Mario Bros. U/Effects
New Super Mario Bros. U/Replay files

Save files:
New Super Mario Bros. U/rp savedata.dat

Other:
New Super Mario Bros. U/Memory Addresses
New Super Mario Bros. U/Updates
New Super Mario Bros. U/Sprite Classes
New Super Mario Bros. U/Sound Effect Sequence List
New Super Mario Bros. U/Sound Wave List
New Super Mario Bros. U/Actor Files

2. Levels

The format for levels is very similar to that of New Super Mario Bros. 2, and somewhat similar to that of New Super Mario Bros. Wii. The data for settings and items for each level is contained in a SARC archive file. Unlike previous games, however, these archives are contained in another SARC archive, containing tilesets and 3D models that the level requires (presumably for faster read access). This outer archive is Yaz0-compressed, and the .sarc extension is replaced with .szs (following Nintendo's tradition of using that file extension for compressed archives).

The levels are big-endian because the Wii U's Espresso processor is big-endian.

Levels can be edited with a compatible version of the Reggie Next Level Editor. Here is one copy that is updated relatively frequently.


3. Engine

The "process" system which treated Scenes, Actors and some misc things like various interface elements in a similar way in New Super Mario Bros. Wii is gone -- now there's just one system for actors, used in levels and on the world map.
(Thank you to Treeki/Ninji for that information.)


4. Tilesets

Tileset tiles are each 60x60, and are padded to 64x64 in the files. Tilesets are much more similar to those of New Super Mario Bros. Wii than those of New Super Mario Bros. 2. They are included in each level SZS. In the original retail game, they were compiled specifically for each level, producing seemingly-random object arrangements; Pa0 (slot 1) tilesets are an exception to this. One notable new feature is the ability to define tile substitutes for randomization, a concept that, in the other recent games, was hardcoded for specific tileset names.

Tilesets also include normal maps, which has never been done before, either.

Tileset textures -- both the main textures and the normal maps -- are stored in the GTX format. Though writing a general-case converter for the GTX format is a challenge that nobody has yet accomplished, tileset GTX converters are significantly simpler because their size is always the same (2048x512), and because only two pixel formats are ever used (RGBA8 and BC3). RGBA8 is used in Pa0 (slot 1) tilesets, and BC3 is used in all others.

Tilesets, including all of their new features, can be created and modified with Puzzle HD.


5. Other resources

Names of Unknown and Unused Sprites
Unused Sprite IDs
Sprite IDs unused in both NSMBU and NSLU
Table of Actors
Folder of Sprite Images

WiiUExplorer, SarcUnpacker, SarcExtract and Every File Explorer can open SARC archives (which have the file extension .sarc, or .szs when Yaz0-compressed).
yaz0enc, yaz0dec, and yaz0kit (yaz0comp and yaz0unp) can be used to [un]compress files with Yaz0.