SEARCH

TOOLBOX

LANGUAGES

SMDH

From 3dbrew

This page describes the format of the icon stored at CXI ExeFS:/icon and CIA icons.
The size of icons is 0x36c0 bytes. The CXI icon is displayed by Home Menu and System Settings(3DS Software Management), while CIA icons are dummies and not yet utilised by Dev 3DS' (as of rev 47586).

These flags tell the 3DS the 'Age Rating' of the software for the below regions:

START

SIZE

DESCRIPTION

0x2008

0x1

CERO (Japan)

0x2009

0x1

ESRB (USA)

0x200A

0x1

Reserved

0x200B

0x1

USK (German)

0x200C

0x1

PEGI GEN (Europe)

0x200D

0x1

Reserved

0x200E

0x1

PEGI PRT (Portugal)

0x200F

0x1

PEGI BBFC (England)

0x2010

0x1

COB (Australia)

0x2011

0x1

GRB (South Korea)

0x2012

0x1

CGSRR (China)

0x2013

0x1

Reserved

0x2014

0x1

Reserved

0x2015

0x1

Reserved

0x2016

0x1

Reserved

0x2017

0x1

Reserved

Active ratings have a bitmask of 0x80, and inactive ratings have no bitmask at all. Ratings without the 0x80 bitmask are ignored. 0x40 bitmask indicates Rating Pending. 0x20 bitmask indicates No Age Restriction.

This u32 flag is what the Home Menu uses to determine the Region Lockout of a title.

REGION

BITMASK

Japan

0x01

North America

0x02

Europe

0x04

Australia

0x08

China

0x10

Korea

0x20

Taiwan

0x40

Regions are 'included' in region lock by setting their bitmask value. Nintendo defines region free as 0x7fffffff. Early in the 3DS' development, Nintendo grouped the Australian and Europe markets together. Nintendo defines market Europe as having the combined bitmasks of Europe and Australia. No 3DS' which check the Australia bitmask have been seen (Australia uses the European 3DS model).

This is the EULA version which is checked when the Accept EULA flag is set, the version is compared to one stored in the 3DS. If the SMDH version is greater, then the user will be prompted to accept the EULA.

Both of the icons are encoded in RGB565 meaning 16bpp. Although both icons are known to be RGB565, developers have the option of encoding icons (and banners) with the following encodings :

RGBA8

RGB8

RGBA5551

RGB565

RGBA4

LA8

HILO8

L8

A8

LA4

L4

ETC1

ETC1A4

This does not necessarily mean the other encodings will be used, it is just that those are the options when compiling. Like we've seen with Super Mario 3D Land Nintendo has changed save file encryption, and likewise they can encode icons and banners differently should they choose to. Currently we've seen just RGB565 so don't be fooled if an icon doesn't show up right! It is probably one of these formats above. Although we will probably not see other formats used for a while it's nice to know they have an opportunity to change.

The data is encoded in tiles (starting from size 8x8, continuing recursively).