SMDH: Difference between revisions

3dsguy (talk | contribs)
3dsguy (talk | contribs)
Line 96: Line 96:
|-     
|-     
|  0x2028
|  0x2028
0x8
0x2
|  Flags
|  Flags
|-   
|  0x202A
|  0x2
|  Reserved
|-   
|  0x202C
|  0x2
|  EULA Version
|-   
|  0x202E
|  0x2
|  Reserved
|-   
|-   
|  0x2030
|  0x2030
Line 183: Line 195:
|}
|}


These are generated by converting the age rating(decimal) to a hex value and then adding it to '0x80'. For example if '7 years' was the rating, then the flag would be 0x87.
Active ratings have a bitmask of 0x80, and inactive ratings have no bitmask at all. Ratings without the 0x80 bitmask are ignored.


=== Region Lockout ===
=== Region Lockout ===


This flag is what the Home Menu uses in order to determine the [[Home Menu#Region Lockout|Region Lockout]] of a title. This exists inside the ICN data as little endian. (In the table below they are presented in big endian)
This flag is what the Home Menu uses in order to determine the [[Home Menu#Region Lockout|Region Lockout]] of a title. These are bitmask flags. Byte[0] is currently the only byte used, the rest are reserved.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!  REGION
!  REGION
VALUE
BITMASK
|-
|  All Regions (No region restrictions)
|  7F FF FF FF
|-
|-
|  Japan
|  Japan
00 00 00 01
0x01
|-
|-
|  North America
|  North America
00 00 00 02
0x02
|-
|-
|  Europe
|  Europe
00 00 00 0C
0x04
|-
|  Australia
|  0x08
|-
|  China
|  0x10
|-
|-
|  Korea
|  Korea
00 00 00 20
0x20
|-
|-
|  Taiwan  
|  Taiwan  
00 00 00 40
0x40
|-
|  China
|  00 00 00 50
|}
|}
As these are bitmask flags, multiple regions can be 'allowed' access to a title if Nintendo chose. A "Region Free" title would have each byte = 0xff. (For reference, the CTR_SDK implementation of "region free", has bytes[0-2] = 0xff, and byte[3] = 0x7f)


=== Match Maker IDs ===
=== Match Maker IDs ===
Line 244: Line 258:
|-
|-
|  0
|  0
|  See Table Below
|  See Below
|-
|-
|  1
|  1
Unknown - Usually 0x01(Some Dev Apps have this set to 0x00)
See Below
|-
|  2
|  Unknown/Unused
|-
|  3
|  Unknown/Unused
|-
|  4
|  Unknown/Unused
|-
|  5
|  Unknown - Usually 0x01
|-
|  6
|  Unknown/Unused
|-
|  7
|  Unknown/Unused
|}
|}


Line 274: Line 270:
!  BITMASK VALUE
!  BITMASK VALUE
|-
|-
|  Visibility Flag (always present)
|  Visibility Flag (Required for visibility on the Home Menu)
|  0x01
|  0x01
|-
|-
Line 299: Line 295:
|}
|}
   
   
For example, if we wanted an application to use the 3D effect, autosave on exit and use save data. The combined flag would be 0x95: (0x01 | 0x04 | 0x10 | 0x80)
==== Byte[1] ====
{| class="wikitable" border="1"
|-
!  FLAG
!  BITMASK VALUE
|-
|  Icon Database related (Most applications have this set)
|  0x01
|}
 
=== EULA Version ===
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.
 
{| class="wikitable" border="1"
|-
!  START
!  SIZE
!  DESCRIPTION
|-
|  0x202C
0x01
|  EULA Version Minor
|-
|  0x202D
| 0x01
| EULA Version Major
|}


=== 'Optimal Animation Default Frame' (for BNR) ===
=== 'Optimal Animation Default Frame' (for BNR) ===