Title

From WiiUBrew
Jump to navigation Jump to search

A title is a group of code and/or data. On the Wii U, titles generally represent apps such as OSes or apps on the System Menu, although other titles also exist, such as Version Data. The information on this page only applies to Wii U titles unless otherwise specified. For info about Wii and vWii titles, see WiiBrew: Title.

Title ID

Every title is given an 8-byte title ID that usually uniquely identifies the title. The upper title ID (the first 4 bytes) is a bitmask describing the category of the title, while the lower title ID (the last 4 bytes) is a unique identifier for the title itself.

A title's title ID is stored in the TMD, ticket, app.xml, and meta.xml. The title ID is stored in the TMD and ticket as 8 hexadecimal bytes, and it is stored in app.xml and meta.xml as the "title_id" 8-byte hexadecimal string (letters can be either uppercase or lowercase). Not all titles include all 4 files. At the very least, a complete title will always include either a TMD or app.xml.

Note that due to the way the Wii U handles game updates, the title ID in meta.xml for update titles will be the title ID of the base title. Separately, the title ID in meta.xml can be different from the actual title ID. The actual title ID of a title will always be in the TMD, ticket, and app.xml.

TODO: Do title IDs with uppercase/lowercase letters have anything in common? Might be tied to meta.xml format version. Why do some titles have incorrect title IDs in meta.xml?

If two titles have the same title ID, then they are usually different versions of the same title. However, it is possible for 2 clearly distinct titles to use the same title ID. In that scenario, they will often have unique product codes, although that alone is not sufficient to determine if they are separate titles. Ultimately, whether or not they can be considered as the same title is up to interpretation.

Upper Title ID

The following upper title IDs are known to exist.

Upper Title ID Description
00050000 Game Application Titles
00050001 Cafe SDK NDEBUG OS Titles (Pre-2.0)
00050002 Kiosk Interactive Demo and eShop Demo Titles
0005000B Shared User Data (FCT/Factory) Titles
0005000C Game DLC Titles
0005000E Game Update Titles
00050010 System Application Titles and Overlay Application Titles (OSv5, OSv6, OSv7)
00050011 Unconfirmed (Data, System)
00050012 Unconfirmed (Free, System)
00050013 Unconfirmed (Data, Free, System)
00050014 Unconfirmed (Patch, System)
00050015 Unconfirmed (Data, Patch, System)
00050016 Unconfirmed (Free, Patch, System)
00050017 Unconfirmed (Data, Free, Patch, System)
00050018 Unconfirmed (Add-On, System)
00050019 Unconfirmed (Data, Add-On, System)
0005001A Unconfirmed (Free, Add-On, System)
0005001B Shared Data Title
0005001C Unconfirmed (Patch, Add-On, System)
0005001D Unconfirmed (Data, Patch, Add-On, System)
0005001E Unconfirmed (Free, Patch, Add-On, System)
0005001F Unconfirmed (Data, Free, Patch, Add-On, System)
00050030 Overlay Application Titles (OSv9, OSv10, OSv255)
00050031 Unconfirmed (Data, System, Overlay)
00050032 Unconfirmed (Free, System, Overlay)
00050033 Unconfirmed (Data, Free, System, Overlay)
00050034 Unconfirmed (Patch, System, Overlay)
00050035 Unconfirmed (Data, Patch, System, Overlay)
00050036 Unconfirmed (Free, Patch, System, Overlay)
00050037 Unconfirmed (Data, Free, Patch, System, Overlay)
00050038 Unconfirmed (Add-On, System, Overlay)
00050039 Unconfirmed (Data, Add-On, System, Overlay)
0005003A Unconfirmed (Free, Add-On, System, Overlay)
0005003B Unconfirmed (Data, Free, Add-On, System, Overlay)
0005003C Unconfirmed (Patch, Add-On, System, Overlay)
0005003D Unconfirmed (Data, Patch, Add-On, System, Overlay)
0005003E Unconfirmed (Free, Patch, Add-On, System, Overlay)
0005003F Unconfirmed (Data, Free, Patch, Add-On, System, Overlay)
0005004E Disc Update Package Title
00058001 Cafe SDK DEBUG OS Title (Pre-2.0)
0005C001 Cafe SDK FDEBUG OS Title (Pre-2.0)

Upper title IDs listed as "Unconfirmed" do not have any known titles that use them. These upper title IDs are referenced in the "exceptions.txt" file used in memoryclear_exceptions and wagonu_specification. These upper title IDs are listed among others as folders to not be deleted in case of a formatted system memory or system transfer. They are almost certainly just placeholders in case those upper title IDs were used in the future. The parentheses for each upper title ID is a speculative guess based on the bitmask.

For upper title IDs labeled "Pre-2.0", this is mostly an assumption. Cafe SDK versions 1.7 and 1.8.1 are known to use these upper title IDs. At some point between 1.8.1 and 2.0, system application titles were reclassified as 00050010.

Overlay application titles running under OSv5, OSv6, and OSv7 have the same upper title ID as other system application titles. Overlay application titles running under OSv9, OSv10, and OSv255 were given a separate upper title ID of 00050030. It is unknown what upper title ID overlay application titles running under OSv8 would use (assuming any exist in the first place) as OSv8 itself has never been found.

The first 2 bytes are the platform ID, which is 5 for Wii U titles. The second 2 bytes are likely a bitmask. The following bits are recognized.

Mask Meaning
0x1 Non-executable data / SDK OS (Pre-2.0)
0x2 Free
0x4 Patch
0x8 Add-on content
0x10 System title
0x20 Runs in background
0x40 Disc GI partition title
0x4000 Cafe SDK FDEBUG enabled (Pre-2.0)
0x8000 Cafe SDK DEBUG enabled (Pre-2.0)

Lower Title ID

TODO: Have this section describe the ranges of lower title IDs and what they are used for. Figure out if this should cover de facto ranges or de jure ranges. The smallest lower title ID is "10000100" so is that the start of the section or should that section actually start at "10000000"?

Start End Description
00000000 100000FF Reserved
10000100 1FFFFFFF TODO
20000000 FFFFFFFF Reserved

vWii

vWii titles have 2 different title IDs, a Wii U mode title ID and a Wii mode title ID. The Wii U mode title ID is considered to be the correct title ID. vWii titles are stored under their Wii U mode title ID on CDNs. The Wii U mode title key is also used for generating the title key. The Wii mode title ID is used only in the context of Wii mode. The Wii mode title ID is stored inside of the TMD and ticket.

The following upper title IDs are used by vWii titles.

Upper Title ID (Wii U Mode) Upper Title ID (Wii Mode) Description
00000007 00000001 Essential System Titles
00070002 00010002 System Channel Titles
00070008 00010008 Hidden Channel Titles

The platform ID for vWii is 7, except for essential system titles which use a platform ID of 0. The second 2 bytes are likely a bitmask. The following bits are recognized.

Mask Meaning
0x1 Essential system title
0x2 System channel
0x6 Hidden channel / vWii essential system title

Title Database

In the title database, title IDs are written with uppercase letters and a hyphen between the upper title ID and the lower title ID. For example, the title ID for "New SUPER MARIO BROS. U (USA)" would be written as "00050000-10101D00". Notes should be added if the title ID in meta.xml is incorrect, and the incorrect title ID should be considered a separate reference title (if not used by a complete title). If this is the case, then the correct title ID of that title is taken (in order of priority) from its TMD, ticket, or app.xml.

Update titles have the title ID of the base title in meta.xml. This is not considered an incorrect title ID. However, if the base title has not been found, it will need a title entry of its own. Product code, company code, group ID, and region can all be inferred from the update title, although a note should be added saying that those values are all unconfirmed. The source of such a title would be undumped because it is almost a certain a base title existed at some point. For an example, see "Know Your Friends (USA)" and "Know Your Friends (EUR)".

Group ID

Most titles have a 4-byte group ID to categorize the title, with both an upper group ID (the first 2 bytes) and a lower group ID (the last 2 bytes).

A title's group ID is stored in its app.xml and meta.xml. The lower group ID is also stored in the TMD as 2 hexadecimal bytes. In app.xml and meta.xml, it is stored as the "group_id" 4-byte hexadecimal string (letters can be either uppercase or lowercase). For all known titles, the group ID in the app.xml and meta.xml are identical, and the lower group ID in the TMD always matches as well. If a title does not include an app.xml or meta.xml file, then the upper group ID can be assumed to be "0000".

TODO: Do group IDs with uppercase/lowercase letters have anything in common? Might be tied to app.xml and/or meta.xml format version.

The lower group ID will usually be the middle 2 bytes of the lower title ID. However, a title can also use the group ID of a different title. For example, the title ID of "Wii Fit U (USA)" is "00050000-10102300", and its group ID is "0000-1023". "Wii Fit U Quick Check (USA)", "Wii Fit U (Free) (USA)", and "Wii Fit U Info" all have a group ID of "0000-1023" due to their relation to "Wii Fit U (USA)".

TODO: A couple more examples could help. Many titles by Nintendo use the same group ID as "New Super Mario Bros. U (USA)" for some reason.

The upper group ID is likely meant to categorize the group ID. The following upper group IDs are used.

TODO: This table might be incomplete.

Upper Group ID Description
0000 Standard upper group ID used by most titles
0001 Used for most titles on the Dev CDN and always accompanied by a lower group ID of "0000"
000F Used for some titles on the Dev CDN that have a lower title ID beginning with "1F"

Title Database

Group IDs should be written with uppercase letters and a hyphen between the upper group ID and the lower group ID. For example, the group ID for "New SUPER MARIO BROS. U (USA)" would be written as "0000-101D".

If a title's group ID is not derived from its own title ID, a note should be added mentioning the title the group ID came from.

If a title does not include an app.xml or meta.xml, its upper group ID is "0000". If a title does not a TMD either, then its group ID should be left blank.

Version

A title's version is stored in the TMD, ticket, app.xml, and meta.xml. The version is stored in app.xml as the "title_version" 2-byte hexadecimal string, and it is stored in meta.xml as the "title_version" unsigned integer (may or may not be stored with leading zeroes).

TODO: Is there any pattern for leading zeroes? Might be tied to meta.xml format version.

For unknown reasons, the version in meta.xml may be incorrect.

TODO: Any pattern why versions in meta.xml can be incorrect?

Macros for getting the major version and minor version of a title from the integer version value (does not necessarily correspond with the official version numbering):

#define TITLE_VERSION_MAJOR(ver) ((ver) >> 4)
#define TITLE_VERSION_MINOR(ver) ((ver) & 0xF)

Title Database

All versions of a title should be listed, from lowest to highest. Versions should be written as an integer with a leading "v". For example, if the "title_version" in app.xml is stored as "00A0", it would be written as "v160".

Because the TMD itself is always copied inside of an installed title, variations in the TMD should be considered separate versions. If two versions of a title have identical files except for the TMD, then a suffix should be added to the version. A CDN version (TMD includes certificates) of a title should be considered the default and does not need a suffix. A disc version (TMD does not include certificates) should have the suffix "_DISC". A CDN dev version (TMD includes certificates and has a certificate issuer beginning with "Root-CA00000004", or "Root-CA00000002" for vWii titles) should have the suffix "_DEV". A disc dev version (qualifies for both "_DISC" and "_DEV") should have the suffix "_DISC_DEV".

If possible, there should be parentheses with the version specifying what the "official" (used publicly and/or is displayed in the software itself) version is called.

If the version in meta.xml is incorrect, then the version is taken (in order of priority) from its TMD, ticket, or app.xml with a note mentioning the discrepancy. If the incorrect version is not used by an actual version of that title, it should still be considered a version, but only as a reference.

If two versions of a title have the same version number but have different files (other than the TMD), then the non-standard version should have a parenthesis distinguishing it. If a title does not have a TMD, but does have other titles inside of it, then the suffix depends on the format of the inner title TMDs. If a title does not have a TMD and does not have any titles inside of it, the version does not need a suffix, but may need a parentheses for clarity.

Name

A title's name is either its literal name or a description of what the title is.

Title Database

For most titles, the name is copied verbatim from the "longname_en" string in its meta.xml. If "longname_en" is empty, then "longname_jp" (or any other field containing a name) should be used. If the resulting name would include Japanese characters, it should be translated to English with a note mentioning the original name and what method was used to translate. As an example, refer to "Disney Infinity 3.0 (JPN)".

If multiple titles share the same name, region, and upper title ID, then parentheses should be added to one or more of their names to distinguish them, depending on which title can be considered the "default" version. For example, title IDs 00050000-10129500 and 00050000-10113C00 are both named "Funky Barn" and have a region of "USA". 00050000-10129500 is the eShop version, so it gets the name "Funky Barn". 00050000-10113C00 is the disc version, so it gets the name "Funky Barn (Disc)".

Parentheses can also be added as needed to help clarify what the title actually is. For example, 00050000-10013000 has the name "TVii" despite having no obvious relationship to Nintendo TVii. To add further context, the name of its RPX file is added in parentheses to give it the name "TVii (aoc_demo_simple.rpx)".

If the name from meta.xml is clearly a placeholder (such as "Long Title Name (EN)"), is not sufficiently descriptive (such as "Non Playable Demo"), or consists only of spaces, then it should not be used. If the title does not include a meta.xml, then any other reference to it that could be interpreted as a name should be used. For example, the "longname_en" for 00050010-10060000 is " ", so instead it gets the name "rear.rpx" (referenced in its cos.xml). If a title still does not have any other obvious name, then the name can simply be a description. For example, 0005001B-10042400 contains font files, so it gets the name "Fonts". If a title's name changes between versions, then all names should be written (in order of highest version to lowest version) with parentheses detailing what versions use each name.

Product Code

A title's product code is stored in its meta.xml as the "product_code" string (letters are always uppercase). Product codes are usually stored with hyphens separating their 3 segments, but sometimes are stored without the hyphens. Titles that do not include a meta.xml do not have product codes.

TODO: Do product codes with no hyphens have anything in common? Might be tied to meta.xml format version.

The 3 segments that compose a product code are the platform (always "WUP" for Wii U), the app type, and a unique identifier provided to developers by Nintendo. The first 3 characters of the unique identifier is a combination of uppercase letters and numbers. The last character of the unique identifier is meant to represent the locale and/or the supported languages of the title. The following characters are used by at least one known title.

TODO: The following table is likely not comprehensive and further investigation is needed. Add all languages supported by that lo

Character Locale
A All
D Germany / Placeholder
E USA / USA & Europe
F France
I Italy
J Japan
P Europe
R Russia
S Spain
X Scandinavia / Australia
Y USA
Z USA / Europe / USA & Europe / Spain & Italy / Scandinavia & Finland

App Type

App types are not guaranteed to be accurate to the contents of the title. As an example, "N" is not universally used by digital-only titles.

Character Type
B Kiosk Interactive Demo
M Downloadable Content
N Digital-Only Titles
P Standard Titles
T eShop Demo
U Update

Placeholders

Product codes are meant to be unique for each title. However, "WUP-P-ABCD" is commonly used as a placeholder product code, and it is shared by many titles. The following table includes all product codes that are known to be used by multiple titles.

Product Code Description
WUP-P-ABCD Placeholder product code used by many titles

Title Database

If a product code is in meta.xml without the hyphens between the three segments, it should be written with hyphens for consistency. For example, if meta.xml contains "WUPMDHQA", it should be written as "WUP-M-DHQA".

If a title's product code changes between versions, then all values should be listed (in order of highest version to lowest version) with parentheses detailing what versions use each value.

If a title does not include a meta.xml, then its product code should be left blank.

Company Code

Every title that includes a meta.xml has a company code. Company codes uniquely identify the publisher of the title rather than the developers.

TODO: Verify this is correct.

A title's company code is stored in its meta.xml as the "company_code" string. Company codes are 4 characters long and only contain numbers and uppercase letters. Titles that do not include a meta.xml do not have company codes.

TODO: Verify letters in company codes are always uppercase. If not, it may be dependent on meta.xml version format.

A common placeholder company code is "ZZZZ". It is often seen in combination with a placeholder product code of "WUP-P-ABCD".

The following is a list of all company codes known to have been used.

TODO: This table is incomplete. Ideally, be sure to verify the publisher in multiple places and ideally with multiple titles. Different releases often have different publishers. Don't use the official Nintendo site for publishers as those are often abbreviated. Been going off of the publishers listed on Wikipedia, GameFAQs, Nintendo World Report etc.

Company Code Publisher/Description
0001 Nintendo
0002 Typo used by v2 of "c (CaffeineTestTool_For_Prod.rpx) (ALL)"
0008 Capcom
0013 Electronic Arts
002P The Pokémon Company
0036 Codemasters
0041 Ubisoft
004Q Disney Interactive Studios
0052 Activision
0054 2K
005G Majesco
0069 EA Sports
006H BBC
006V Nordic Games
0078 THQ
007W Carbon Fire Studio
007X Nyamyam
007Y RingZero Game Studio
007Z WaterMelon
008P Sega
008R Ludosity
008S From Nothing Game Studios
008U RCMADIAX
008V ZeNfA Productions
008Z 2020 Venture
0091 Spike Chunsoft
0099 XSEED Games
009T Fuzzy Wuzzy Games
009U Arbelos Interactive
009V Wales Interactive
009W BeautiFun Games
009X PhobosLab
009Y Eclipse Games
009Z Crunchyroll
00AF Namco Bandai Games
00AS Dark Roast Entertainment
00AT CoderChild
00AV Rain Games
00AW Henchmen Studios
00AY Yacht Club Games
00BR Maestro Interactive Games
00BU Ynnis Interactive
00BV Squids Odyssey
00BX CW-Games
00C8 Tecmo Koei
00CR Dark Horse Books
00CS Dakko Dakko Limited
00CX Black Forest Games
00CY Ripstone
00DU Mojang AB
00DV Farsight Studios
00DW Delirium Studios
00DY Keen Games
00DZ Moving Player
00E9 Natsume Inc.
00EB Atlus
00ET Joindots
00EX Tomorrow Corporation
00EY Vblank Entertainment
00FV Hörberg Productions
00FY BiP Media
00FZ Frozenbyte
00G9 D3 Publisher
00GD Square Enix
00GT 505 Games
00HF Level-5
00HL Frontier Developments
00HQ Abstraction Games
00J8 Konami
00JF Aksys Games
00JJ Deep Silver (USA)
00JR Engine Software
00JW Nacon
00JX Shin'en Multimedia
00KM Deep Silver (EUR)
00LF KEMCO
00LW
00LY
00ME
00NK
00NN
00NS
00NT
00NV
00Q4
00QC
00QE
00R0
00R5
00R7
00R8
00RG
00RV
00S6
00SA
00SE
00SF
00SS
00T2
00T6 Flyhigh Works
00TD
00TF
00TJ
00TL
00TW
00TY
00TZ
00U6
00UA
00UB
00UC
00UE
00UP
00UZ
00V0
00V3
00V4
00V9
00VA
00VB
00VC
00VD
00VE
00VF
00VW
00VZ
00W0
00W1
00W4
00W5
00W6
00W7
00W8
00W9
00WB
00WD
00WH
00WR
00WY
00X9
00XB
00XN
00XQ
00XS
00XT
00XY
00Y4
00YD
00YF
00YG
00YM
00YR
00YT
00YV
00ZR
0102
0103
0108
010C
010E
010L
010M
010N
010P
010Q
010V
010Z Unity Games Japan
0111
0113
0115
0116
0119
011A
011C
011D
011F
011H
011P
011R
011S
011X
011Y
0127
0128
0129
012A
012C
012F
012J
012P
012Q
012S
012U
012Y
0130
0134
0136
0137
013A SOEDESCO
013H
013J
013P
013Q
013R
013S
013T
0142
0146
0147
0148
0149
014A
014D
014J
014K
014L
014P
014T
014U
014V
014W
014Z
0157
015D
015G
015J
015K
015L
015R
015S
015U
015V
015W
015Y
0164
0167
0169
016D
016E
016G
016J
016V
016X
016Z
0170
0171
0172
0173
0175
017B
017C
017D
017E
017F Alliance Digital Media
017G
017H
017J
017K
017L
017M
017P
017T
017W
017X
017Y
017Z
0182
0183
0184
0185
0186
0188 Microsoft Japan
0189
018D
018G
018L
018P
018Q
018R
018S
018W
018X
018Z
0190
0191
0195
0198
0199
019A
019D
019G
019H
019K
019M
019P
019Q
019T
019X
0202
0206
0207
0209
020A
020K
020P
020Q
020V
020W
020X
020Z
0210
0212
0215
021D
021F
021G
021Q
021T
021V
0222
0225
022P
022Z
0231
0237
023A
023B
0246
024G
024V
024X
025N
025V
025X
026S
026Y
028N
029S
029Z
030Q
031J
0326
0339
ZZZZ Placeholder used by many titles

Title Database

If a title's company code changes between versions, then all values should be listed (in order of highest version to lowest version) with parentheses detailing what versions use each value.

If a title does not include a meta.xml, then its company code should be left blank.

Region

Every title can be considered to have a region. For most titles, the region is stored in its meta.xml. For titles without a meta.xml, a region has to be inferred. If there are no other region specific indicators inside the title, then it can usually be considered to be region-free.

The region is stored in meta.xml as the "region" 4-byte hexadecimal string (letters can be either uppercase or lowercase). The following regions are known to exist.

TODO: Do regions "FFFFFFFF" and "ffffffff" have any pattern? Might be tied to meta.xml format version.

Value Region
0x00000001 JPN
0x00000002 USA
0x00000003 Unconfirmed (USA/JPN)
0x00000004 EUR
0x00000005 Unconfirmed (EUR/JPN)
0x00000006 USA/EUR
0x00000007 ALL (USA/EUR/JPN)
0xFFFFFFFF ALL (Placeholder)
0xffffffff ALL (Placeholder)

Regions listed as "Unconfirmed" do not have any known titles that use them. Regions listed as "ALL" are functionally identical to each other.

The region value functions as a bitmask. The following bits are recognized.

Mask Meaning
0x1 Title is compatible with JPN consoles
0x2 Title is compatible with USA consoles
0x4 Title is compatible with EUR consoles
0x8+ Reserved

Due to how the region value works, if Nintendo had chosen to create a new console region (for example if they decided to later release the Wii U in South Korea), all titles with a region of "00000007" would have to be updated to add compatibility with the new region.

Title Database

A region should be listed for every title and may need to be inferred if meta.xml is not included.

The region should be written as either "JPN" ("00000001"), "USA" ("00000002"), "EUR" ("00000004"), "USA/EUR" ("00000006"), or "ALL" ("00000007", in addition to the placeholder regions of "FFFFFFFF" and "ffffffff"). Region values of "00000003" and "00000005" would be written as "USA/JPN" or "EUR/JPN" respectively, although no known titles have those region combinations.

If a title's region changes between versions, then all values should be listed (in order of highest version to lowest version) with parentheses detailing what versions use each value.

Source

A title's sources refers to the known sources that title comes from.

Title Database

For titles with multiple sources, it is usually implicit which versions come from which source. If all known versions that match the sources suffix can come from that source, it is not necessary to specify the exact versions that come from that source. If that is not the case, then parentheses will need to be added to each source specifying what versions come from which source.

The following sources are used.

Source Description Implicit Suffix
CDN The title is known to have existed on the retail CDN for some period of time. If it was deleted, then a note should specify the date deleted. No Suffix
Dev CDN The title is known to have existed on the dev CDN for some period of time. Because there are few known dumps of the dev CDN (none of which are complete as the dev CDN is no longer online), the titles listed as being from the dev CDN should not be interpreted as exhaustive. For example, 0005000E-10176900 is on the dev CDN with the last update being v272_DEV (2.12.0), in contrast to the retail CDN with the last update being v288 (2.12.1). Because v288 was released on August 3, 2023, and the dev CDN was taken offline before that, it is impossible to definitely say whether or not a v288_DEV ever existed. "_DEV"
Lotcheck CDN The title is known to have existed on the lotcheck CDN for some period of time. There is only one known dump of the lotcheck CDN (the completeness of which can likely no longer be verified) that was last updated in 2022. All caveats with the dev CDN also apply to the lotcheck CDN. "_DEV"
Disc The title is known to have existed on at least one retail disc. It can be as its own partition on the disc, or can be located inside of another title that does have its own partition. "_DISC"
Dev Disc The title is known to have existed on at least one developer (titles on the disc use dev common key) disc. Kiosk discs are part of this category. "_DISC_DEV"
Undumped The title ID and its associated title is known to have existed at some point, but no dumps are known to currently exist. N/A
Reference A broad category for title IDs known to have been used, but not attached to a complete title. Notes should be added describing where these title IDs can be found. N/A
Disputed It has been claimed that the title ID exists in some capacity, but the supporting evidence is disputed and/or private. N/A