https://www.3dbrew.org/w/api.php?action=feedcontributions&user=Yls8bot&feedformat=atom3dbrew - User contributions [en]2024-03-28T10:05:51ZUser contributionsMediaWiki 1.35.8https://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=22221FirmwareNews2023-05-23T00:55:18Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.17.0-50]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.14.0-46, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.17.0-50&diff=2222011.17.0-502023-05-23T00:55:16Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.17.0-50 system update was released on May 23, 2023 (UTC). This Old3DS update was released for the following regions: USA, EUR, and JPN. This New3DS update..."</p>
<hr />
<div>The Old3DS+New3DS 11.17.0-50 system update was released on May 23, 2023 (UTC). This Old3DS update was released for the following regions: USA, EUR, and JPN. This New3DS update was released for the following regions: USA, EUR, and JPN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/kw/system%20update Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.<br />
* <br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2023-05-23_00-00-33&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2023-05-23_00-00-41&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=22219Home Menu2023-05-23T00:55:15Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|-<br />
| [[11.14.0-46|11.14.0-46]]<br />
| <br />
| November 17, 2020<br />
| See [[11.14.0-46|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 17, 2020<br />
|-<br />
| [[11.15.0-47|11.15.0-47]]<br />
| <br />
| July 27, 2021<br />
| See [[11.15.0-47|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 27, 2021<br />
|-<br />
| [[11.16.0-48|11.16.0-48]]<br />
| <br />
| August 30, 2022<br />
| See [[11.16.0-48|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 30, 2022<br />
|-<br />
| [[11.16.0-49|11.16.0-49]]<br />
| <br />
| September 13, 2022<br />
| See [[11.16.0-49|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 13, 2022<br />
|-<br />
| [[11.17.0-50|11.17.0-50]]<br />
| <br />
| May 23, 2023<br />
| See [[11.17.0-50|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 23, 2023<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
<br />
{| class="wikitable" border="1"<br />
! Value<br />
! Meaning<br />
|-<br />
| 0x0<br />
| Badge is a standalone badge<br />
|-<br />
| 0x0100<br />
| Badge is the left piece of a horizontal 2x1 badge<br />
|-<br />
| 0x0101<br />
| Badge is the right piece of a horizontal 2x1 badge<br />
|-<br />
| 0x1000<br />
| Badge is the top piece of a vertical 1x2 badge<br />
|-<br />
| 0x1010<br />
| Badge is the bottom piece of a vertical 1x2 badge<br />
|-<br />
| 0x1100<br />
| Badge is the top left piece of a 2x2 badge<br />
|-<br />
| 0x1101<br />
| Badge is the top right piece of a 2x2 badge<br />
|-<br />
| 0x1110<br />
| Badge is the bottom left piece of a 2x2 badge<br />
|-<br />
| 0x1111<br />
| Badge is the bottom right piece of a 2x2 badge<br />
|}<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu Jump Parameters ==<br />
<br />
Parameters can be provided to [[APT:JumpToHomeMenu]] to perform certain actions when jumping to the home menu.<br />
<br />
=== Command Header ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Magic Value "ASHP"<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Command ID<br />
|}<br />
<br />
If the command requires extra arguments, this header will be padded and the arguments will start at offset 0x8. Otherwise it is just 0x5 bytes large as presented here.<br />
<br />
=== Command IDs ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! ID<br />
! Description<br />
! Extra Arguments<br />
|-<br />
| 0x0<br />
| Does Nothing<br />
| None<br />
|-<br />
| 0x1<br />
| Open Instruction Manual<br />
| None<br />
|-<br />
| 0x2<br />
| Download Theme from Theme Shop<br />
| 4-byte ID of the theme (total command size 0xC bytes). This is divided by 1000000 to determine the [[Titles#Title_IDs|title ID variation]], and the remainder corresponds to the theme's DLC content index. If the value is 0 the theme shop will not open correctly, and if the ID isn't valid the theme shop will just return to the home screen after initializing the DLC title.<br />
|-<br />
| 0x3<br />
| Open Badge Picker<br />
| None<br />
|}<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=22218News/Archive2023-05-23T00:55:13Z<p>Yls8bot: </p>
<hr />
<div>*'''27 July 2021''' Nintendo released system update [[11.15.0-47]].<br />
*'''17 November 2020''' Nintendo released system update [[11.14.0-46]], with Luma3DS 10.2.1 released less than two hours after.<br />
*'''11 May 2020''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9057 devkitARM release 54]<br />
*'''2 December 2019''' Nintendo released system update [[11.13.0-45]].<br />
*'''4 November 2019''' Nintendo released system update [[11.12.0-44]].<br />
*'''26 August 2019''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 2019''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January 2019''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=22217News2023-05-23T00:55:12Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''23 May 23''' Nintendo released system update [[11.17.0-50]].<br />
*'''13 September 22''' Nintendo released system update [[11.16.0-49]].<br />
*'''30 August 22''' Nintendo released system update [[11.16.0-48]].<br />
*'''2 Feb 22''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9308#p17221 devkitARM release 57]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=21966FirmwareNews2022-09-13T00:15:17Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.16.0-49]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.14.0-46, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.16.0-49&diff=2196511.16.0-492022-09-13T00:15:16Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.16.0-49 system update was released on September 13, 2022 (UTC). This Old3DS update was released for the following regions: USA, EUR, and JPN. This New3DS..."</p>
<hr />
<div>The Old3DS+New3DS 11.16.0-49 system update was released on September 13, 2022 (UTC). This Old3DS update was released for the following regions: USA, EUR, and JPN. This New3DS update was released for the following regions: USA, EUR, and JPN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/231/~/system-menu-update-history Official] USA change-log:<br />
* <br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.<br />
* <br />
* <br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2022-09-13_00-00-33&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2022-09-13_00-00-39&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21964Home Menu2022-09-13T00:15:14Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|-<br />
| [[11.14.0-46|11.14.0-46]]<br />
| <br />
| November 17, 2020<br />
| See [[11.14.0-46|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 17, 2020<br />
|-<br />
| [[11.15.0-47|11.15.0-47]]<br />
| <br />
| July 27, 2021<br />
| See [[11.15.0-47|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 27, 2021<br />
|-<br />
| [[11.16.0-48|11.16.0-48]]<br />
| <br />
| August 30, 2022<br />
| See [[11.16.0-48|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 30, 2022<br />
|-<br />
| [[11.16.0-49|11.16.0-49]]<br />
| <br />
| September 13, 2022<br />
| See [[11.16.0-49|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 13, 2022<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=21963News/Archive2022-09-13T00:15:13Z<p>Yls8bot: </p>
<hr />
<div>*'''17 November 2020''' Nintendo released system update [[11.14.0-46]], with Luma3DS 10.2.1 released less than two hours after.<br />
*'''11 May 2020''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9057 devkitARM release 54]<br />
*'''2 December 2019''' Nintendo released system update [[11.13.0-45]].<br />
*'''4 November 2019''' Nintendo released system update [[11.12.0-44]].<br />
*'''26 August 2019''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 2019''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January 2019''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=21962News2022-09-13T00:15:11Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''13 September 22''' Nintendo released system update [[11.16.0-49]].<br />
*'''30 August 22''' Nintendo released system update [[11.16.0-48]].<br />
*'''2 Feb 22''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9308#p17221 devkitARM release 57]<br />
*'''27 July 2021''' Nintendo released system update [[11.15.0-47]].</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=21947FirmwareNews2022-08-30T00:05:18Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.16.0-48]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.14.0-46, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.16.0-48&diff=2194611.16.0-482022-08-30T00:05:17Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.16.0-48 system update was released on August 30, 2022 (UTC). This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN...."</p>
<hr />
<div>The Old3DS+New3DS 11.16.0-48 system update was released on August 30, 2022 (UTC). This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/231/~/system-menu-update-history Official] USA change-log:<br />
* <br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.<br />
* <br />
* <br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2022-08-30_00-00-33&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2022-08-30_00-00-41&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21945Home Menu2022-08-30T00:05:16Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|-<br />
| [[11.14.0-46|11.14.0-46]]<br />
| <br />
| November 17, 2020<br />
| See [[11.14.0-46|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 17, 2020<br />
|-<br />
| [[11.15.0-47|11.15.0-47]]<br />
| <br />
| July 27, 2021<br />
| See [[11.15.0-47|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 27, 2021<br />
|-<br />
| [[11.16.0-48|11.16.0-48]]<br />
| <br />
| August 30, 2022<br />
| See [[11.16.0-48|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 30, 2022<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=21944News/Archive2022-08-30T00:05:14Z<p>Yls8bot: </p>
<hr />
<div>*'''11 May 2020''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9057 devkitARM release 54]<br />
*'''2 December 2019''' Nintendo released system update [[11.13.0-45]].<br />
*'''4 November 2019''' Nintendo released system update [[11.12.0-44]].<br />
*'''26 August 2019''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 2019''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January 2019''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=21943News2022-08-30T00:05:13Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''30 August 22''' Nintendo released system update [[11.16.0-48]].<br />
*'''2 Feb 22''' [https://devkitpro.org devkitPro] have announced [https://devkitpro.org/viewtopic.php?f=13&t=9308#p17221 devkitARM release 57]<br />
*'''27 July 2021''' Nintendo released system update [[11.15.0-47]].<br />
*'''17 November 2020''' Nintendo released system update [[11.14.0-46]], with Luma3DS 10.2.1 released less than two hours after.</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.15.0-47&diff=2153811.15.0-472021-07-28T00:00:41Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.15.0-47 system update was released on July 27, 2021 (UTC). This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. Th..."</p>
<hr />
<div>The Old3DS+New3DS 11.15.0-47 system update was released on July 27, 2021 (UTC). This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, and KOR.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/231/~/system-menu-update-history Official] USA change-log:<br />
* <br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.<br />
* <br />
* <br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2021-07-27_00-00-33&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=2021-07-27_00-00-37&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21537Home Menu2021-07-28T00:00:40Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|-<br />
| [[11.14.0-46|11.14.0-46]]<br />
| <br />
| November 17, 2020<br />
| See [[11.14.0-46|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 17, 2020<br />
|-<br />
| [[11.15.0-47|11.15.0-47]]<br />
| <br />
| July 27, 2021<br />
| See [[11.15.0-47|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 27, 2021<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21352Home Menu2020-11-17T16:44:23Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|-<br />
| [[11.14.0-46|11.14.0-46]]<br />
| <br />
| November 17, 2020<br />
| See [[11.14.0-46|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 17, 2020<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=21119FirmwareNews2019-12-03T00:05:17Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.13.0-45]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.9.0-42, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.13.0-45&diff=2111811.13.0-452019-12-03T00:05:17Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.13.0-45 system update was released on December 2, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This..."</p>
<hr />
<div>The Old3DS+New3DS 11.13.0-45 system update was released on December 2, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Resolved an issue where StreetPass would not work in some cases.<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=12-02-19_07-00-36&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=12-02-19_07-00-40&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21117Home Menu2019-12-03T00:05:16Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|-<br />
| [[11.13.0-45|11.13.0-45]]<br />
| <br />
| December 2, 2019<br />
| See [[11.13.0-45|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 2, 2019<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=21116News/Archive2019-12-03T00:05:14Z<p>Yls8bot: </p>
<hr />
<div>*'''2 January''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=21115News2019-12-03T00:05:13Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''2 December 19''' Nintendo released system update [[11.13.0-45]].<br />
*'''4 November 19''' Nintendo released system update [[11.12.0-44]].<br />
*'''26 August 19''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 19''' Nintendo released system update [[11.10.0-43]].</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=21094FirmwareNews2019-11-05T00:15:19Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.12.0-44]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.9.0-42, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.12.0-44&diff=2109311.12.0-442019-11-05T00:15:18Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.12.0-44 system update was released on November 4, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This..."</p>
<hr />
<div>The Old3DS+New3DS 11.12.0-44 system update was released on November 4, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=11-04-19_07-05-06&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=11-04-19_07-05-11&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21092Home Menu2019-11-05T00:15:18Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|-<br />
| [[11.12.0-44|11.12.0-44]]<br />
| <br />
| November 4, 2019<br />
| See [[11.12.0-44|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 4, 2019<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=21091News/Archive2019-11-05T00:15:16Z<p>Yls8bot: </p>
<hr />
<div>*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=21090News2019-11-05T00:15:16Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''4 November 19''' Nintendo released system update [[11.12.0-44]].<br />
*'''26 August 19''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 19''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=21041FirmwareNews2019-08-27T00:52:23Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.11.0-43E]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.9.0-42, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.11.0-43E&diff=2104011.11.0-43E2019-08-27T00:52:22Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.11.0-43E system update was released on August 26, 2019. This Old3DS update was released for the following regions: EUR. This New3DS update was released fo..."</p>
<hr />
<div>The Old3DS+New3DS 11.11.0-43E system update was released on August 26, 2019. This Old3DS update was released for the following regions: EUR. This New3DS update was released for the following regions: EUR.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=08-26-19_08-00-37&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=08-26-19_08-00-40&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=21039Home Menu2019-08-27T00:52:22Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|-<br />
| [[11.11.0-43E|11.11.0-43E]]<br />
| <br />
| August 26, 2019<br />
| See [[11.11.0-43E|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| August 26, 2019<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=21038News/Archive2019-08-27T00:52:20Z<p>Yls8bot: </p>
<hr />
<div>*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=21037News2019-08-27T00:52:20Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''26 August 19''' Nintendo released system update [[11.11.0-43E]].<br />
*'''27 May 19''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=20979FirmwareNews2019-05-28T00:05:18Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.10.0-43]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.9.0-42, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.10.0-43&diff=2097811.10.0-432019-05-28T00:05:18Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.10.0-43 system update was released on May 27, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3..."</p>
<hr />
<div>The Old3DS+New3DS 11.10.0-43 system update was released on May 27, 2019. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=05-27-19_08-00-37&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=05-27-19_08-00-41&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=20977Home Menu2019-05-28T00:05:17Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|-<br />
| [[11.10.0-43|11.10.0-43]]<br />
| <br />
| May 27, 2019<br />
| See [[11.10.0-43|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| May 27, 2019<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=20976News/Archive2019-05-28T00:05:15Z<p>Yls8bot: </p>
<hr />
<div>*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=20975News2019-05-28T00:05:15Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''27 May 19''' Nintendo released system update [[11.10.0-43]].<br />
*'''2 January''' [https://devkitpro.org/viewtopic.php?f=13&t=8826 libctru 1.5.1, citro3d 1.5.0, citro2d 1.1.0 and 3ds-examples 20190102 were released.]<br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=FirmwareNews&diff=20865FirmwareNews2018-12-04T00:15:21Z<p>Yls8bot: </p>
<hr />
<div>As of this writing, the latest firmware is '''[[11.9.0-42]]'''.<br />
<br />
See [[Homebrew Exploits|here]] regarding running homebrew.<br />
<br />
----<br />
<br />
Software-based full system control exploits are known and publicly available for system versions up to and including 11.8.0-41, while [[Bootloader#Non-NAND_FIRM_boot|ntrboothax]] allows for ARM9 arbitrary code execution on any 3DS-family console regardless of system firmware version (or even its presence at all).</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.9.0-42&diff=2086411.9.0-422018-12-04T00:15:20Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.9.0-42 system update was released on December 3, 2018. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This N..."</p>
<hr />
<div>The Old3DS+New3DS 11.9.0-42 system update was released on December 3, 2018. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=12-03-18_07-00-37&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=12-03-18_07-00-42&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=20863Home Menu2018-12-04T00:15:19Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|-<br />
| [[11.9.0-42|11.9.0-42]]<br />
| <br />
| December 3, 2018<br />
| See [[11.9.0-42|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 3, 2018<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=20862News/Archive2018-12-04T00:15:18Z<p>Yls8bot: </p>
<hr />
<div>*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.<br />
*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=20861News2018-12-04T00:15:17Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''3 December 18''' Nintendo released system update [[11.9.0-42]].<br />
*'''11 August 18 ''' [[User:smea|Smealum]] [https://media.defcon.org/DEF%20CON%2026/DEF%20CON%2026%20presentations/smea/ publishes at Defcon 26] a complete userland to ARM9 exploit chain for N3DS, developed in the past two years.<br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.8.0-41&diff=2076211.8.0-412018-07-31T00:15:23Z<p>Yls8bot: </p>
<hr />
<div>The New3DS 11.8.0-41 system update was released on July 30, 2018. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=07-30-18_08-00-40&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.8.0-41&diff=2076111.8.0-412018-07-31T00:15:19Z<p>Yls8bot: Created page with "The Old3DS+New3DS 11.8.0-41 system update was released on July 30, 2018. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3..."</p>
<hr />
<div>The Old3DS+New3DS 11.8.0-41 system update was released on July 30, 2018. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=07-30-18_08-00-36&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=07-30-18_08-00-40&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=Home_Menu&diff=20760Home Menu2018-07-31T00:15:18Z<p>Yls8bot: </p>
<hr />
<div>The '''Home Menu''' is the heart of the Nintendo 3DS. From there one can start games, applications, and access various processes including the friends list. It is launched by [[NS]], and is always running in the background in 3DS-mode except when other programID-high 00040030 applications like Internet Browser, Friend-List, etc are running. Home Menu is still running while [[System Settings]] is running, however the System Settings application does not allow directly returning to home-menu. The system will normally re-launch Home Menu when the Home Menu process crashes/terminates. When this re-launch occurs while Home Menu is active, Home Menu displays an error message which says to manually reboot the system.<br />
<br />
== System Versions ==<br />
Nintendo devised a system, whereby updates would be delivered via two channels: <br />
*Card Updates (CUP) - The Nintendo 3DS is updated with data from an [[System Update CFA|update partition]] on retail gamecard title. <br />
*Network Updates (NUP) - The Nintendo 3DS is updated by downloading data from Nintendo's [[Title list|CDN]].<br />
<br />
CUPs will only deliver updates to core features, such as the Home Menu, [[Download Play]] etc. CUPs will not deliver updates to Network features, such as [[System Transfer]], [[Internet Browser]], [[StreetPass Mii Plaza]] or [[EShop|eShop]].<br />
<br />
NUPs can deliver updates to core features as well as (updated) Network Features.<br />
<br />
As a result of deciding to make a distinction between what content could be updated and how, Nintendo split the system version displayed by [[System Settings]] into two parts: [[CVer]] (Console Version) and [[NVer]] (Network Update Version). Represented as: <br />
<CVer Major>.<CVer Minor>.<CVer Micro>-<NUP Version><NUP Region><br />
<br />
The Console Version represents the version of the collectively installed core features. And the NUP Version represents the version of the collectively installed network features.<br />
<br />
So if a 3DS' System Firmware read '''2.1.0-2U''', it would indicate a console version of '''2.1.0''' and a NUP version of '''2U'''. <br />
<br />
NOTES:<br />
* CUPs can only update core content, so [[NVer]] is never updated with CUPs.<br />
* NUPs will not update [[NVer]] if network features are not updated. (Best seen with the USA vs JPN/EUR 6.0.0 NUP)<br />
<br />
<br />
CUPs are implemented by adding a [[System Update CFA]] to retail NCSD gamecard images. Nintendo generally creates CUPs after NUPs are released.<br />
<br />
<br />
When updating the system from 4.5.0-6 to 4.5.0-10, the following titles are updated(in the order of title download+install): [[Health and Safety Information]], [[Nintendo 3DS Camera]], [[eShop]], [[System Transfer]], [[Internet Browser]], [[Title_list|0004009B00014102]], [[Title_list|0004009B00014202]], [[Title_list|0004009B00014302]], [[NVer]], and [[FIRM|AGB_FIRM]].<br />
<br />
=== System Versions List ===<br />
{| class="wikitable"<br />
|-<br />
! System version <br />
! Home Menu title version<br />
! Release date <br />
! Changelog <br />
! System security [[3DS_System_Flaws|flaws]] fixed*<br />
! Userland security [[3DS_Userland_Flaws|flaws]] fixed*<br />
! 3DS-mode homebrew affected*<br />
! CUP Released<br />
! CDN Availability<br />
! CDN Post Date<br />
|-<br />
| [[1.0.0-0|1.0.0-0]]<br />
| 0<br />
| February 26, 2011<br />
| Shipped with 3DS on launch<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| February 18, 2011<br />
|-<br />
| [[1.1.0-1|1.1.0-1]] <br />
| 0 <br />
| February ?, 2011<br />
| General bug fixes<br />
Added 3D Video title to menu. ("For a Limited Time Only")<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| March 1, 2011<br />
|-<br />
| [[2.0.0-2|2.0.0-2]]<br />
| 1029<br />
| June 6/7, 2011<br />
| [[eShop]] added, web browser available, [[System Transfer]] added. Full DSiWare data management available. [[Automatic_System_Update_Download|Automatic]] downloading for system updates added. Video stubbed.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 6, 2011<br />
|-<br />
| [[2.1.0-3|2.1.0-3]]<br />
| 2049<br />
| June 15, 2011<br />
| Fixes the Ridge Racer freeze.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 15, 2011<br />
|-<br />
| [[2.1.0-4|2.1.0-4]]<br />
| Not updated<br />
| July 25, 2011<br />
| System stability improvements and other adjustments.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 25, 2011<br />
|-<br />
| [[2.2.0-X|2.2.0]]<br />
| ?<br />
| November 6, 2011<br />
| CUP Only Release. Add "join game" feature to [[Friend List]]. Update from some game cards such as Super Mario 3D Land.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Unavailable<br />
| ?<br />
|-<br />
| [[3.0.0-5|3.0.0-5]]<br />
| 4111<br />
| December 7, 2011<br />
| Added 3D video recording to the camera title, updated Mii Streetpass Plaza, [[System Transfer]] between 3DS systems available, improved eShop, home menu QR code scanning with QR codes containing URLs. [[Nintendo Zone]] is now always accessible, 3D video streaming support was added to NZone. This added support for running GBA VC titles via AGB_FIRM as well, support for GBA VC titles was also added to NATIVE_FIRM.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 7, 2011<br />
|-<br />
| [[3.0.0-6|3.0.0-6]]<br />
| Not updated<br />
| December 21, 2011<br />
| Only StreetPass Mii Plaza and the [[NVer]] title were updated. From Nintendo's release notes: "System stability improvements and other adjustments".<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| December 21, 2011<br />
|-<br />
| [[3.1.0-6|3.1.0-6]]<br />
| Not updated<br />
| Unknown<br />
| Unknown. Sighted preinstalled on some early European 3DS XLs.<br />
| <br />
| <br />
| <br />
| ?<br />
| Unknown<br />
| Unknown<br />
|-<br />
| [[4.0.0-7|4.0.0-7]]<br />
| 5131<br />
| April 24, 2012<br />
| Add folders to Home Menu, game patching added, buy more expensive games than 1000 yen in JPN. System titles for CHN, TWN, and KOR became available.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| April 24, 2012<br />
|-<br />
| [[4.1.0-8|4.1.0-8]]<br />
| Not updated<br />
| May 14, 2012<br />
| From changelog: "improvements to overall system stability and other minor adjustments". Once updated to [[4.1.0-8]], the parental-controls PIN is no longer required for future system updates.<br />
| Yes<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| May 14, 2012<br />
|-<br />
| [[4.2.0-9|4.2.0-9]]<br />
| 6146<br />
| June 26, 2012<br />
| Improved eShop safety for entering credit-card info, and behind the scenes improvements. Stored CC info will be deleted by this updated eShop, and can be re-entered again.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 26, 2012<br />
|-<br />
| [[4.3.0-10|4.3.0-10]]<br />
| Not updated<br />
| July 24, 2012<br />
| Updated eShop, bad word list and NZone hotspot list updated.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| July 24, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10]]<br />
| Not updated<br />
| September 19, 2012<br />
| NZone hotspot list updated and TWL_FIRM updated for blocking flash cards.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| September 19, 2012<br />
|-<br />
| [[4.4.0-10|4.4.0-10C]]<br />
| Not updated<br />
| October 17, 2012<br />
| China-only, the *only* updated title was [[System Settings]]. This title was updated to a version already available in TWN/KOR.<br />
| <br />
| <br />
| <br />
| ?<br />
| Available<br />
| October 17, 2012<br />
|-<br />
| [[4.5.0-10|4.5.0-10]]<br />
| Not updated<br />
| December 4, 2012<br />
| Flash-card block via updated TWL_FIRM and whitelist. NZone hotspot list updated as well.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 4, 2012<br />
|-<br />
| [[5.0.0-11|5.0.0-11]]<br />
| 7172<br />
| March 25, 2013<br />
| Many system titles including NATIVE_FIRM were updated, multiple vulnerabilities were fixed as well.<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| March 25, 2013<br />
|-<br />
| [[5.1.0-11|5.1.0-11]]<br />
| Not updated<br />
| April 4, 2013<br />
| NATIVE_FIRM and NS were updated. According to the official change-log: "Resolves an issue that may prevent access to the System Settings or other features."<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| April 4, 2013<br />
|-<br />
| [[6.0.0-11|6.0.0-12 (-11U)]]<br />
| 8198<br />
| June 17, 2013<br />
| Official change-log: "Users can now back up save data for downloadable versions of Nintendo 3DS software and most Virtual Console games". For EUR/JPN, the [[StreetPass Mii Plaza]] application and the [[Nintendo 3DS Camera]] application were updated. Other titles for all regions were updated as well.<br />
| Yes<br />
| <br />
| <br />
| No<br />
| Available<br />
| June 17, 2013<br />
|-<br />
| [[6.1.0-11|6.1.0-12 (-11U)]]<br />
| Not updated<br />
| June 27, 2013<br />
| Official change-log: "Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience."<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| June 27, 2013<br />
|-<br />
| [[6.1.0-12U]]<br />
| Not updated<br />
| July 11, 2013<br />
| This USA-only update added the updated network features applications which were first released in JPN/EUR with the [[6.0.0-11|6.0.0-12 NUP]] update.<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 11, 2013<br />
|-<br />
| [[6.2.0-12]]<br />
| Not updated<br />
| August 6, 2013<br />
| This update added support for the StreetPass relay feature, updated TWL_FIRM, and updated the Nintendo Zone hotspots list.<br />
| <br />
| <br />
| <br />
| Yes<br />
| Available<br />
| August 6, 2013<br />
|-<br />
| [[6.3.0-12]]<br />
| Not updated<br />
| September 13, 2013<br />
| See [[6.3.0-12|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 13, 2013<br />
|-<br />
| [[6.4.0-12]]<br />
| ?<br />
| November 11, 2013<br />
| See [[6.4.0-12|this]](Only for the KOR and TWN regions).<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| November 11, 2013<br />
|-<br />
| [[7.0.0-13]]<br />
| 9230<br />
| December 9, 2013<br />
| See [[7.0.0-13|this]].<br />
| Yes<br />
| Yes<br />
| <br />
| No<br />
| Available<br />
| December 9, 2013<br />
|-<br />
| [[7.1.0-14]]<br />
| Not updated<br />
| December 19, 2013<br />
| See [[7.1.0-14|this]].<br />
| No<br />
| <br />
| <br />
| Yes<br />
| Available<br />
| December 19, 2013<br />
|-<br />
| [[7.1.0-15]]<br />
| Not updated<br />
| January 22, 2014<br />
| See [[7.1.0-15|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| January 22, 2014<br />
|-<br />
| [[7.1.0-16]]<br />
| Not updated<br />
| February 26, 2014<br />
| See [[7.1.0-16|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| February 26, 2014<br />
|-<br />
| [[7.2.0-17]]<br />
| Not updated<br />
| May 12, 2014<br />
| See [[7.2.0-17|this]].<br />
| <br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| May 12, 2014<br />
|-<br />
| [[8.0.0-18]]<br />
| Not updated<br />
| July 7, 2014<br />
| See [[8.0.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 7, 2014<br />
|-<br />
| [[8.1.0-18]]<br />
| Not updated<br />
| July 24, 2014<br />
| See [[8.1.0-18|this]].<br />
| No<br />
| <br />
| No<br />
| Yes<br />
| Available<br />
| July 24, 2014<br />
|-<br />
| [[8.1.0-19]]<br />
| Not updated<br />
| August 7, 2014<br />
| See [[8.1.0-19|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| August 7, 2014<br />
|-<br />
| [[8.1.0-0 New3DS]]<br />
| Not updated<br />
| September 26, 2014<br />
| See [[8.1.0-0 New3DS|this]].<br />
| <br />
| <br />
| No<br />
| No<br />
| Available<br />
| September 26, 2014<br />
|-<br />
| 8.1.0-19<br />
| Not updated<br />
| October 2, 2014<br />
| Japan-only "update", see [http://yls8.mtheall.com/ninupdates/reports.php?date=10-02-14_02-05-03&sys=ctr here]. The only change was that a new title([[New_3DS]]-only system application) was added, CVer/NVer titles were not even updated. The initial version of this [[Title_list|title]] is a stub.<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 2, 2014<br />
|-<br />
| [[9.0.0-20]]<br />
| v11272<br />
| October 6, 2014<br />
| See [[9.0.0-20|this]].<br />
| <br />
| <br />
| No<br />
| Yes (K)<br />
| Available<br />
| October 6, 2014<br />
|-<br />
| [[9.1.0-20J]]<br />
| v14336(JPN-region title)<br />
| October 10, 2014<br />
| Japan-only, see [[9.1.0-20J|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| October 10, 2014<br />
|-<br />
| [[9.2.0-20]]<br />
| <br />
| October 29, 2014<br />
| See [[9.2.0-20|this]].<br />
| No<br />
| <br />
| No<br />
| Yes (U/E)<br />
| Available<br />
| October 29, 2014<br />
|-<br />
| [[9.3.0-21]]<br />
| <br />
| December 8, 2014<br />
| See [[9.3.0-21|this]].<br />
| Yes<br />
| <br />
| Yes<br />
| No<br />
| Available<br />
| December 8, 2014<br />
|-<br />
| [[9.4.0-21]]<br />
| <br />
| December 11, 2014<br />
| See [[9.4.0-21|this]].<br />
| No<br />
| <br />
| No<br />
| No<br />
| Available<br />
| December 11, 2014<br />
|-<br />
| [[9.5.0-22]]<br />
| <br />
| February 2, 2015<br />
| See [[9.5.0-22|this]].<br />
| Yes<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| February 2, 2015<br />
|-<br />
| [[9.5.0-23]]<br />
| <br />
| March 2, 2015<br />
| See [[9.5.0-23|this]].<br />
| No<br />
| Yes<br />
| <br />
| As above<br />
| Available<br />
| March 2, 2015<br />
|-<br />
| [[9.6.0-24]]<br />
| <br />
| March 23, 2015<br />
| See [[9.6.0-24|this]].<br />
| See [[9.6.0-24|here]].<br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| March 23, 2015<br />
|-<br />
| [[9.7.0-25]]<br />
| <br />
| April 20, 2015<br />
| See [[9.7.0-25|this]].<br />
| Probably none?<br />
| <br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| April 20, 2015<br />
|-<br />
| [[9.8.0-25]]<br />
| <br />
| June 1, 2015<br />
| See [[9.8.0-25|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E)<br />
| Available<br />
| June 1, 2015<br />
|-<br />
| [[9.9.0-26|9.9.0-26]]<br />
| <br />
| July 13, 2015<br />
| See [[9.9.0-26|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E/K)<br />
| Available<br />
| July 13, 2015<br />
|-<br />
| [[10.0.0-27|10.0.0-27]]<br />
| <br />
| September 8, 2015<br />
| See [[10.0.0-27|this]].<br />
| Yes<br />
| No<br />
| No<br />
| No<br />
| Available<br />
| September 8, 2015<br />
|-<br />
| [[10.1.0-27|10.1.0-27]]<br />
| <br />
| September 14, 2015<br />
| See [[10.1.0-27|this]].<br />
| No<br />
| No<br />
| No<br />
| Yes (J/U/E/K)<br />
| Available<br />
| September 14, 2015<br />
|-<br />
| [[10.2.0-28|10.2.0-28]]<br />
| <br />
| October 19, 2015<br />
| See [[10.2.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| October 19, 2015<br />
|-<br />
| [[10.3.0-28|10.3.0-28]]<br />
| <br />
| November 9, 2015<br />
| See [[10.3.0-28|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| November 9, 2015<br />
|-<br />
| [[10.4.0-29|10.4.0-29]]<br />
| <br />
| January 18, 2016<br />
| See [[10.4.0-29|this]].<br />
| Yes<br />
| Launching old Ironfall was blocked.<br />
| Yes<br />
| No<br />
| Available<br />
| January 18, 2016<br />
|-<br />
| [[10.5.0-30|10.5.0-30]]<br />
| <br />
| January 25, 2016<br />
| See [[10.5.0-30|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| January 25, 2016<br />
|-<br />
| [[10.6.0-31|10.6.0-31]]<br />
| <br />
| February 22, 2016<br />
| See [[10.6.0-31|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| Yes (J/U)<br />
| Available<br />
| February 22, 2016<br />
|-<br />
| [[10.7.0-32|10.7.0-32]]<br />
| <br />
| March 14, 2016<br />
| See [[10.7.0-32|this]].<br />
| No<br />
| Yes<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| March 14, 2016<br />
|-<br />
| [[11.0.0-33|11.0.0-33]]<br />
| <br />
| May 9, 2016<br />
| See [[11.0.0-33|this]].<br />
| Yes<br />
| No<br />
| Yes<br />
| Yes (J/U/E)<br />
| Available<br />
| May 9, 2016<br />
|-<br />
| [[11.1.0-34|11.1.0-34]]<br />
| <br />
| September 13, 2016<br />
| See [[11.1.0-34|this]].<br />
| <br />
| <br />
| <br />
| Yes (J/U/E)<br />
| Available<br />
| September 13, 2016<br />
|-<br />
| [[11.2.0-35|11.2.0-35]]<br />
| <br />
| October 24, 2016<br />
| See [[11.2.0-35|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| October 24, 2016<br />
|-<br />
| [[11.3.0-36|11.3.0-36]]<br />
| <br />
| February 6, 2017<br />
| See [[11.3.0-36|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| February 6, 2017<br />
|-<br />
| [[11.4.0-37|11.4.0-37]]<br />
| <br />
| April 10, 2017<br />
| See [[11.4.0-37|this]].<br />
| Yes<br />
| Yes<br />
| Yes<br />
| No<br />
| Available<br />
| April 10, 2017<br />
|-<br />
| [[11.5.0-38|11.5.0-38]]<br />
| <br />
| July 10, 2017<br />
| See [[11.5.0-38|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 10, 2017<br />
|-<br />
| [[11.6.0-39|11.6.0-39]]<br />
| <br />
| September 18, 2017<br />
| See [[11.6.0-39|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| September 18, 2017<br />
|-<br />
| [[11.7.0-40|11.7.0-40]]<br />
| <br />
| June 18, 2018<br />
| See [[11.7.0-40|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| June 18, 2018<br />
|-<br />
| [[11.8.0-41|11.8.0-41]]<br />
| <br />
| July 30, 2018<br />
| See [[11.8.0-41|this]].<br />
| <br />
| <br />
| <br />
| No<br />
| Available<br />
| July 30, 2018<br />
|}<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*": This includes known flaws, and any fixed flaws discovered via code bin-diff.<br />
<br />
"[[3DS_System_Flaws|System]]/[[3DS_Userland_Flaws|Userland]] security flaws fixed*" and "3DS-mode homebrew affected" only apply to the changes done with that specific system-update("affected" does not include hax codebases breaking *just* due to updated codebins).<br />
<br />
[[Category:Nintendo Software]]<br />
<br />
== Auto-Boot Function ==<br />
When the Home Menu is initially loaded by [[NS]], it checks the gamecard ExeFS:/[[SMDH|icon]] for the auto-boot flag. If the auto-boot flag is set, it will load the application on the cartridge and the home menu will not remain running in the background, or at least not in an operational state. Using software cues to return to the home menu, or sleep menu while in this state, causes a shutdown.<br />
<br />
Notable features of demo titles:<br />
*Auto-boot demos generally disable the functionality of the home button.<br />
*The ''New Super Mario Bros 2'' demo, retained the functionality of the home button, and had an timer which triggered the demo to quit after a period of inactivity.<br />
<br />
Auto-boot cartridges, can bypass some of the functions of the Home Menu. Auto Booted software:<br />
* Doesn't show usage history in the [[Activity Log]]<br />
* Bypasses Parental controls<br />
* Bypasses Forced Game Card Updates<br />
* Bypasses Initial 3DS Setup<br />
* The console does not have a friends list presence.<br />
* Is still subject to region lock(see below).<br />
<br />
Region lock is still active, so the home menu will refuse to launch demos with incorrect region lock will not load, displaying "An Error has Occurred". However, game card update partition checks are not done, which allows launching demos that have region free encoding, but have an alternate(or even invalid) region update partition.<br />
<br />
<br />
<br />
The following auto-boot paths can be used by Home Menu, checked in the same order listed below(the above gamecard auto-boot is checked before this):<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, L, and X<br />
| This launches [[System Settings]] for touchscreen calibration.<br />
|-<br />
| R, L, and Y<br />
| This launches [[System Settings]] for circlepad calibration.<br />
|}<br />
<br />
The following is only checked when the low u16 from [[Config_Savegame|config]] block 0x00110000 is value zero(normally this is non-zero). Thus, the below is only handled when a system setup is required.<br />
{| class="wikitable"<br />
! Key-combo / requirements for this path<br />
! Description<br />
|-<br />
| R, X, Y, A, and B, a 3DS gamecard must be inserted as well.<br />
| This launches the gamecard application. Note that pressing the HOME button in the gamecard application launched this way will only result in the system shutting down.<br />
|-<br />
| This is used when the above path isn't used.<br />
| This launches System Settings for the system setup.<br />
|}<br />
<br />
== Region Lockout ==<br />
<br />
One of the Home Menu's functions, is to regulate region lockout. The region lockout data for any given title is held in the [[SMDH#BNR Region|ICN data]]. There are 6 regions of which have their own region lockout, Japan, USA, Europe(including Nintendo Australia), China, Taiwan and Korea. There is also a value which makes a title exempt from region lockout, and consequently accessible from any region of 3DS.<br />
<br />
The region-field stored in the [[SMDH|ICN-data]] is only checked when Home Menu itself launches a title, not when other titles use NS to have Home Menu launch titles. This isn't actually useful for gamecard region-free however, due to the gamecard system-updates, see below.<br />
<br />
Also note that while some gamecard games are mostly region-free(main CXI is identical for all regions of the gamecard), those gamecards can't actually be launched with all 3DS regions due to the gamecard system-update, see below. Note that the main CXI being identical for all regions of a gamecard also means the savedata keyY is identical for all regions of that gamecard too(except for old system-version <v2.2 games, in some cases, due to different cardIDs).<br />
<br />
=== Effects of Region Lockout ===<br />
Every 3DS title regardless of location (NAND/SD Card/Game Card) is subject to region lockout scrutiny by the Home Menu. And the home menu treats 'out-of-region' titles by simply refusing to show them on the home menu. No messages are shown on the home menu to notify the user, the title is simply ignored. However out-of-region SD Card titles, will appear and quickly disappear, while all the SD Titles are being processed. In cases where access to the home menu GUI is not needed to launch the title (like in the case of kiosk demos), the home menu states an error has occurred, and launching of the title is stopped.<br />
<br />
=== Game Card Updates ===<br />
Either intentionally a region lock mechanism or not, the function which checks the game card update partition returns an error when it is detected the update is for a region other than the 3DS's region (Most likely triggered by the absence of the correct CVer title). And errors returned from checking the update partition, will result in the home menu displaying "This Game Card cannnot be used", when the user attempts to launch the title.<br />
<br />
== Home-menu [[SpotPass]] usage ==<br />
<br />
Home-menu originally used two domains with HTTPS for SpotPass. SpotPass stores this content in Home-menu's NAND shared extdata.<br />
<br />
* The system notifications are downloaded from: <nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/<regionID>/<filename>/<langcode>/<filename></nowiki> Where langcode is the two-character language codes from [[Config Savegame#Languages|config]], and regionID is from the below table. <filename> is bashoX/sysmsgX where X is 0-3.<br />
* https://pls.c.shop.nintendowifi.net/pl/upload This URL is used for uploading data from the home menu NAND shared extdata, it's unknown what this is used for. This data is uploaded every 24 hours.<br />
* <nowiki>https://npul.c.app.nintendowifi.net/p01/recv/<regionID>/<filename></nowiki> This is used for uploading unknown data from extdata. <filename> can be one of the following:<br />
** "phu"<br />
** "tiu" The POST data contains a list of [[BOSS_Services|BOSS]] taskIDs etc. This seems to be only for Nintendo titles?(system+eShop apps)<br />
** "splu"<br />
** "sendmgn" For this it appears SpotPass does a HTTP POST with data originally from Launcher.dat?<br />
<br />
{| class="wikitable"<br />
|-<br />
! Region<br />
! ID<br />
|-<br />
| JPN<br />
| gWr4JXxb2mKTG3lq<br />
|-<br />
| NA<br />
| uuI82221UKkqmtbp<br />
|-<br />
| EUR / Others<br />
| UrXSeurnxhPrq7AS<br />
|}<br />
<br />
The SpotPass content payload for notifications begin with a header, followed by an [[SMDH|icon]] and the UTF-16 text, and various metadata.<br />
<br />
=== VersionList ===<br />
During startup, Home Menu loads "/versionList.dat" from NAND extdata 0xf000000e. This is downloaded via SpotPass, the file-data downloaded via HTTPS here is raw (no SpotPass container):<br />
* Retail: [https://tagaya-ctr.cdn.nintendo.net/tagaya/versionlist]<br />
* Dev-unit: [https://tagaya-dev-ctr.cdn.nintendo.net/tagaya/versionlist] The titles listed in this are not available on the [[Title list|normal]] CDN.<br />
<br />
This is a list of title-updates available on the eShop, for regular app titles and update-titles. This is what Home Menu checks to determine whether the currently selected application needs to be updated or not. When an Internet connection is not available or wifi is disabled, Home Menu will skip VersionList handling/messages when you launch applications.<br />
<br />
File structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| The first u32 is normally 0x1, the rest is normally all-zero.<br />
|-<br />
| 0x10<br />
| <Filesize-0x10><br />
| Title entries, 0x10-bytes each.<br />
|}<br />
<br />
Title entry structure:<br />
{| class="wikitable"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x8<br />
| u64 TitleID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32 titleversion<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Unknown u32, usually zero?<br />
|}<br />
<br />
=== [[BOSS_Services|BOSS]] usage notes ===<br />
Home Menu uses 4 hard-coded NsDataIds: 0x1, 0x2, 0x3, and 0x4, under a loop in the same function for writing to "bashotorya.dat".<br />
<br />
== Automatic System Update Download ==<br />
See [[Automatic System Update Download]].<br />
<br />
== Home Menu Error Messages ==<br />
{| class="wikitable"<br />
|-<br />
! Dialog Text<br />
! Description<br />
|-<br />
| "An error has occured. Please save your data ... then restart the system"<br />
| This dialog is displayed when a system applet(including Home Menu) crashes/terminates. This dialog is also displayed for system errors as well.<br />
|}<br />
<br />
== Home Menu Themes ==<br />
See [[Home_Menu/Themes|here]].<br />
<br />
As of [[11.0.0-33]] Home Menu themes are only supported with USA, EUR, and JPN. CHN Home Menu was last updated with v7.0, and TWN doesn't even have a Home Menu settings menu(just the old screen brightness config menu + an [[amiibo Settings]] icon on the right side of the browser icon).<br />
<br />
KOR Home Menu doesn't have the theme-settings menu button. While this does have the theme handling code, it isn't actually usable since extdataID 0x0 is used for theme-extdata for non-<JPN/USA/EUR> regions(which is invalid).<br />
<br />
== Home Menu [[System_SaveData|NAND]] savedata ==<br />
=== Launcher.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| Launcher.dat format version.<br />
|-<br />
| 0x1<br />
| 0x1<br />
| Padding?<br />
|-<br />
| 0x2<br />
| 0x2<br />
| u16, cart launcher position on the home menu<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally 0x0.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of NAND titleIDs. For an unused entry, the u64 value is ~0(in that case, the corresponding entries at 0xD9A/0x106A for this titleID are not used either). This is used for the icons displayed on the main Home Menu screen.<br />
|-<br />
| 0xB51<br />
| 0x1<br />
| u8, numbers of rows on the home menu, minus 1 (range 0..5) (with the enlarge/reduce option)<br />
|-<br />
| 0xB5C<br />
| 0x2<br />
| u16, position of the cursor on the home menu<br />
|-<br />
| 0xB5E<br />
| 0x2<br />
| u16, horizontal scrolling level (divided by the number of rows to get the actual number of columns hidden) on the home menu<br />
|-<br />
| 0xD80<br />
| 0x2 or 0x4<br />
| u16 or u32, number the next created folder will have (starts at 1)<br />
|-<br />
| 0xD9A<br />
| 0x2D0<br />
| Array of 360 s16 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position, 0x0 for the very first icon, 0x1 for the next one and so on. This is completely linear, no X/Y coordinates. Implemented with the format-version for [[4.0.0-7|4.0.0-X]].<br />
|-<br />
| 0x106A<br />
| 0x168<br />
| Array of 360 s8 fields, each one corresponds to the titleIDs at the array located at offset 0x8. This is used for icon position. When an s8 here is -1(which is the normal value), the icon is located with the first chunk of icons(outbuf+0), otherwise the base address is outbuf+0xB40+<s8val*0x1E0>(which is equivalent to 60 icons * s8val). Implemented with the format-version for [[4.0.0-7|4.0.0-X]]. Corresponds to the id of the folder the icon is in, range -1..59, with -1 meaning not in a folder<br />
|-<br />
| 0x11DC<br />
| 0x78<br />
| Array of 60 s16 fields, corresponding to folders position (with -1 meaning the folder is deleted/not yet created)<br />
|-<br />
| 0x1434<br />
| 0x3C<br />
| Array of 60 u8 fields, the number of rows in each corresponding folder (defaults to 2)<br />
|-<br />
| 0x1470<br />
| 0x78<br />
| Array of 60 u16 fields, the position of the cursor in each corresponding folder (defaults to 0)<br />
|-<br />
| 0x14E8<br />
| 0x78<br />
| Array of 60 u16 fields, the horizontal scroll level in each corresponding folder (divided by the number of rows to get the actual number of columns hidden) (defaults to 0)<br />
|-<br />
| 0x1560<br />
| 0x7F8<br />
| Array of 60 utf-16 strings of length 0x22 (in bytes, so only 0x11 utf-16 characters) (not NULL-terminated), the name of each corresponding folder<br />
|-<br />
| 0x1D58<br />
| 0xF0<br />
| Array of 60 u32, the number of each corresponding folder<br />
|}<br />
<br />
== SD ExtData ==<br />
The SD ExtData [[Extdata#Filesystem|File System]] for Home Menu introduced with [[2.0.0-2|2.0.0-X]] is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── SaveData.dat<br />
├── Cache.dat<br />
└── CacheD.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| icon<br />
| Stubbed. Always image 00000002.<br />
| 0x4 Bytes<br />
| n/a<br />
| <br />
|-<br />
| SaveData.dat<br />
| Always image 00000003.<br />
| 0x2cb0 Bytes (0x2da0 starting with [[4.0.0-7]])<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/SaveData.dat Download]<br />
|-<br />
| Cache.dat<br />
| Indexes and records details for the cached icon data. Always image 00000004.<br />
| 0x1688 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/Cache.dat Download]<br />
|-<br />
| CacheD.dat<br />
| Cached icon data for Home Menu. Always image 00000005.<br />
| 0x4cfe00 Bytes<br />
| [[2.0.0-2]]<br />
| [https://dl.dropboxusercontent.com/u/60710927/CTR/Sample/HomeMenuExtdata/CacheD.dat Download]<br />
|}<br />
<br />
=== Cache.dat & CacheD.dat ===<br />
These two files work in tandem to allow the home menu to cache icon data for applications which are presented on the Home Menu. The size of both files suggests a maximum cache size of 360 icons. Cache.dat stores details about the cache icon data, and CacheD.dat stores the icon data. The icon cache stores icon data for *all* applications shown on the Home Menu, this includes DSi NAND Titles, and DS(i) cartridges. The format of cached DS(i) icon data is not understood, but they are the same size as 3DS icon data (0x36c0).<br />
<br />
In Cache.dat the first 8 bytes are a header where the first byte is the format-version, then follows each icon slots's entry in the format:<br />
{| class="wikitable" border="1"<br />
|-<br />
! OFFSET<br />
! SIZE<br />
! DESCRIPTION<br />
|-<br />
| 0x0<br />
| 8<br />
| Title ID in Little Endian<br />
|-<br />
| 0x8<br />
| 4<br />
| Unknown<br />
|-<br />
| 0xc<br />
| 4<br />
| Unknown<br />
|}<br />
<br />
All unused entries have the Title IDs filled with "0xff".<br />
<br />
In CacheD.dat, the icon data is concatenated together, with the first icon at offset 0x0.<br />
<br />
=== SaveData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x1<br />
| SaveData.dat format version.<br />
|-<br />
| 0x8<br />
| 0xB40<br />
| 360 u64s, list of titleIDs(used with icons). Equivalent to the same array in Launcher.dat, but for SD titles.<br />
|-<br />
| 0xB48<br />
| 0x168<br />
| s8 bool array with 360 entries. Some SD-only icon array. Probably an array for each icon present status? Each entry is only known to be set to 0x00 or 0x01, with the former being the default.<br />
|-<br />
| 0xCB0<br />
| 0x2D0<br />
| s16 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0xF80<br />
| 0x168<br />
| s8 array with 360 entries, used with icons. Equivalent to the same array in Launcher.dat. Implemented with format-version 2.<br />
|-<br />
| 0x13b8<br />
| 0x8<br />
| Theme entry structure for the regular theme.<br />
|-<br />
| 0x13c0<br />
| 0x8*10(0x50)<br />
| Array of theme entry structures for theme [[9.3.0-21|shuffling]].<br />
|-<br />
| 0x141b<br />
| 0x1<br />
| 0 = one regular theme, 1 = multiple themes for theme [[9.3.0-21|shuffle]].<br />
|}<br />
<br />
The icon arrays above are handled exactly the same way as Launcher.dat.<br />
<br />
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid).<br />
<br />
Theme entry structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme.<br />
|-<br />
| 0x4<br />
| 0x1<br />
| Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from.<br />
|-<br />
| 0x5<br />
| 0x1<br />
| Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ?<br />
|-<br />
| 0x6<br />
| 0x1<br />
| Normally zero?<br />
|-<br />
| 0x7<br />
| 0x1<br />
| Normally zero?<br />
|}<br />
<br />
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10.<br />
<br />
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from).<br />
<br />
==== SaveData.dat format versions ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Version value<br />
! Filesize<br />
! Implemented with Home Menu system-version<br />
|-<br />
| 0<br />
| 0x2CB0<br />
| [[2.0.0-2|2.0.0-X]]<br />
|-<br />
| 2<br />
| 0x2DA0<br />
| [[4.0.0-7|4.0.0-X]]<br />
|-<br />
| 3<br />
| 0x2DA0<br />
| [[9.0.0-20|9.0.0-X]]<br />
|-<br />
| 4 (Latest version as of v10.6-v11.0 Home Menu)<br />
| 0x2DA0<br />
| [[9.3.0-21|9.3.0-X]]<br />
|}<br />
<br />
The Home Menu code for writing the updated SaveData.dat to FS is broken when the filesize is smaller than expected due to being from an older format-version originally. When writing to the file, Home Menu checks the filesize then attempts to use [[FSFile:SetSize]] on mismatch, but [[FSFile:SetSize]] can't be used with extdata(error from [[FSFile:SetSize]] appears to be ignored). When writing to SaveData.dat the write-size is the one for the current format-version, but since extdata files are fixed-size this will only result in the first {original filesize} bytes being written(result-code = 0xE0E046C1).<br />
<br />
Basically, unless the extdata is deleted from the SD card FS manually, the SaveData.dat filesize will never be successfully updated from an old filesize to the current-format filesize by Home Menu.<br />
<br />
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── ThemeManage.bin<br />
├── BodyCache.bin<br />
├── BgmCache.bin<br />
└── nsalist<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| ThemeManage.bin<br />
| Theme management info. The filesize must match 0x800, otherwise the Home Menu code returns an error.<br />
| 0x800<br />
| 00000003<br />
| [[9.0.0-20]]<br />
|-<br />
| BodyCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS body_LZ.bin file. The filesize must match 0x150000, otherwise the Home Menu code returns an error.<br />
| 0x150000<br />
| 00000004<br />
| [[9.0.0-20]]<br />
| <br />
|-<br />
| BgmCache.bin<br />
| Contains cached data from the last loaded [[Home_Menu/Themes|theme]] RomFS bgm.bcstm file. The filesize must match 0x337000, otherwise the Home Menu code returns an error.<br />
| 0x337000<br />
| 00000005<br />
| [[9.0.0-20]]<br />
|-<br />
| nsalist<br />
| Contains the list of DLC themes(IDs+prices), downloaded via [[SpotPass]].<br />
| <br />
| 00000007<br />
| [[9.0.0-20]]<br />
|}<br />
<br />
BodyCache.bin and BgmCache.bin contain cached theme data for the currently used DLC theme. ThemeManage.bin is loaded by Home Menu during startup. The cached theme data is loaded at startup when a DLC theme is selected. This also contains theme-shop [[SpotPass]] data.<br />
<br />
BodyCache.bin and BgmCache.bin are all-zero when no theme is selected.<br />
<br />
Starting with [[9.3.0-21|9.3.0-X]] Home Menu can use more files in this extdata, for theme shuffling. "theme:/ThemeManage.bin" "theme:/BgmCache_%02d.bin" "theme:/BodyCache_rd.bin"<br />
<br />
=== ThemeManage.bin ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| Unknown, normally value 0x1?<br />
|-<br />
| 0x4<br />
| 0x4<br />
| Unknown, normally zero?<br />
|-<br />
| 0x8<br />
| 0x4<br />
| Actual size of the cached body_LZ.bin data.<br />
|-<br />
| 0xC<br />
| 0x4<br />
| Actual size of the cached bgm.bcstm data.<br />
|-<br />
| 0x10<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x14<br />
| 0x4<br />
| Unknown<br />
|-<br />
| 0x18<br />
| 0x4<br />
| When a DLC theme is selected, this is the content-index of the DLC theme.<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| Unknown, usually value 0x200 when the data in theme-cache is actually used?<br />
|}<br />
<br />
The total filesize is 0x800-bytes, normally the data starting at offset 0x1C is all-zero.<br />
<br />
When no theme is actually used, the only non-zero fields are the following: the u32 stored at offset 0x0 in ThemeManage.bin is value 0x1, with offset 0x10 u32 set to value 0x1.<br />
<br />
== Home Menu badge SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
├── BadgeData.dat<br />
└── BadgeMngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
|-<br />
| BadgeData.dat<br />
| [[Home_Menu#BadgeData.dat|See below.]]<br />
| 0xF4DF80<br />
| <br />
| [[9.0.0-20]]<br />
|-<br />
| BadgeMngFile.dat<br />
| [[Home_Menu#BadgeMngFile.dat|See below.]]<br />
| 0xD4A8<br />
| <br />
| [[9.0.0-20]]<br />
|}<br />
<br />
=== BadgeData.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 100 * 16 * 0x8A<br />
| UTF-16 Badge Set Titles (16 per set for different languages)<br />
|-<br />
| 0x35E80<br />
| 1000 * 16 * 0x8A<br />
| UTF-16 Badge Titles (16 per set for different languages)<br />
|-<br />
| 0x250F80<br />
| 100 * 0x2000<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 Badge Set Icons<br />
|-<br />
| 0x318F80<br />
| 1000 * 0x2800<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 64x64 + Tiled A4 64x64 Badge Icons<br />
|-<br />
| 0xCDCF80<br />
| 1000 * 0xA00<br />
| [http://en.wikipedia.org/wiki/Z-order_curve Tiled] RGB565 32x32 + Tiled A4 32x32 Badge Icons<br />
|}<br />
<br />
=== BadgeMngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Must Be Zero<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Number of Badge Sets<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Number of Placed Badges<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Selected Badge Set in Home Menu (0xFFFFFFFF = All Badges)<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Selected Badge Column in All Badges<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Nintendo Network ID Number<br />
|-<br />
| 0x20<br />
| 0x338<br />
| Unknown (always zeros? unused?)<br />
|-<br />
| 0x358<br />
| 0x80<br />
| Used Badge Slots (each bit = 1 slot)<br />
|-<br />
| 0x3D8<br />
| 0x10<br />
| Used Badge Set Slots (each bit = 1 slot)<br />
|-<br />
| 0x3E8<br />
| 1000 * 0x28<br />
| [[Home_Menu#BadgeInfo|BadgeInfo]] Entries<br />
|-<br />
| 0xA028<br />
| 100 * 0x30<br />
| [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries<br />
|-<br />
| 0xB2E8<br />
| 360 * 0x18<br />
| [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries<br />
|}<br />
<br />
==== BadgeIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Badge ID<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0xC<br />
| 0x2<br />
| u16, Badge Index<br />
|-<br />
| 0xE<br />
| 0x2<br />
| u16, Badge Sub ID (used for multi-part badges)<br />
|}<br />
<br />
==== BadgeSetIdentifier ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x4<br />
| 0x4<br />
| u32, Unknown (Usually 0xFFFFFFFF)<br />
|-<br />
| 0x8<br />
| 0x4<br />
| u32, Unknown (Usually 0x0)<br />
|-<br />
| 0xC<br />
| 0x4<br />
| u32, Unknown (Usually 0x2710)<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Badge Set ID<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Badge Set Index<br />
|}<br />
<br />
==== BadgeInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x2<br />
| u16, Number Placed<br />
|-<br />
| 0x12<br />
| 0x2<br />
| u16, Quantity<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Unknown (packed data?)<br />
|-<br />
| 0x18<br />
| 0x10<br />
| u64[2], Shortcut Title ID (twice, once per u64)<br />
|}<br />
<br />
==== BadgeSetInfo ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x18<br />
| [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]]<br />
|-<br />
| 0x18<br />
| 0x4<br />
| u32, Unknown (usually 0xFFFFFFFF)<br />
|-<br />
| 0x1C<br />
| 0x4<br />
| u32, Number of Unique Badges<br />
|-<br />
| 0x20<br />
| 0x4<br />
| u32, Number of Total Badges<br />
|-<br />
| 0x24<br />
| 0x4<br />
| u32, Start Badge Index<br />
|-<br />
| 0x28<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|-<br />
| 0x2C<br />
| 0x4<br />
| u32, Unknown (usually 0x0)<br />
|}<br />
<br />
==== BadgeLayoutSlot ====<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x10<br />
| [[Home_Menu#BadgeIdentifier|BadgeIdentifier]]<br />
|-<br />
| 0x10<br />
| 0x4<br />
| u32, Position<br />
|-<br />
| 0x14<br />
| 0x4<br />
| u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder)<br />
|}<br />
<br />
The file size must match 0xD4A8, otherwise the Home Menu code returns an error.<br />
<br />
== Home Menu theme layout SD [[Extdata|ExtData]] ==<br />
The filesystem for this extdata(when it actually exists) is as follows:<br />
<br />
root<br />
├── icon<br />
├── boss<br />
└── user<br />
└── MngFile.dat<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! File<br />
! Details<br />
! Size<br />
! Extdata image ID<br />
! FW Introduced<br />
! Plaintext<br />
|-<br />
| MngFile.dat<br />
| See below.<br />
| 0x004D1280<br />
| 00000003<br />
| [[9.6.0-24]]<br />
|}<br />
<br />
=== MngFile.dat ===<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x4<br />
| u32, must be zero.<br />
|-<br />
| 0x4<br />
| 0xC<br />
| array of 8 u8, 0 if the corresponding layout slot is not set, 1 if it is<br />
|-<br />
| 0xC<br />
| 0x3000 * 8<br />
| Start of the layout entries.<br />
|-<br />
| 0x1800C<br />
| 0xC<br />
| Padding<br />
|-<br />
| 0x18010<br />
| 0x2DA0 * 8<br />
| Start of the [[Home_Menu#SaveData.dat|SaveData.dat]] entries.<br />
|-<br />
| 0x2ED10<br />
| 0xD4A8 * 8<br />
| Start of the [[Home_Menu#BadgeMngFile.dat|BadgeMngFile.dat]] entries.<br />
|-<br />
| 0x99250<br />
| 0x30<br />
| Padding<br />
|-<br />
| 0x99280<br />
| 256*3*8 * 400/8 * 8<br />
| Start of the top screen (400x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|-<br />
| 0x2F1280<br />
| 256*3*8 * 320/8 * 8<br />
| Start of the bottom screen (320x240) screenshots, in BGR8 tiled format, rotated 90 degrees and with 8 rows per "chunk", and actually 256 pixels wide instead of 240, with the last 16 being all black<br />
|}<br />
<br />
Layout entries structure:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Offset<br />
! Size<br />
! Description<br />
|-<br />
| 0x0<br />
| 0x2558<br />
| Exact copy of the entire Home Menu [[System_SaveData]] [[Home_Menu#Launcher.dat|Launcher.dat]], this is the actual layout data.<br />
|-<br />
| 0x2558<br />
| 0xAA8<br />
| Padding<br />
|}<br />
<br />
The filesize must match 0x004D1280, otherwise the Home Menu code returns an error. The saved Home Menu layouts are stored here.<br />
<br />
When saving a layout, the total layout field is increased, then a new layout entry is created with the contents of the current Home Menu [[System_SaveData]](NAND savedata) Launcher.dat + a screenshot of the main Home Menu screen is written. When loading a layout, Launcher.dat in savedata is written with the current Launcher.dat data already stored in memory(unknown if any data gets changed for it here), then data from the layout entry is copied into the Home Menu [[System_SaveData]] Launcher.dat.<br />
<br />
Home Menu *only* accesses this file with the Home Menu layout-settings menu / when entering that menu.<br />
<br />
== Home Menu startup ==<br />
The following is what Home Menu does at startup(converted from cmd-logs), from [[9.4.0-21]], in the same order Home Menu does it.<br />
<br />
Originally Home Menu mounted sdmc in main(), starting(?) with [[6.0.0-11]] Home Menu only has sdmc mounted while handling [[SD_Savedata_Backups]].<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Archive<br />
! Filename<br />
! Read size<br />
! Notes<br />
|-<br />
| <br />
| <br />
| <br />
| srv_init(), then srv_GetServiceHandle is used to initialize the service handles for the following services: [[NS_and_APT_Services|ns:s]], [[PTM_Services|ptm:sysm]], and [[Config_Services|cfg:s]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[CfgS:SecureInfoGetByte101]] and [[CfgS:GetLocalFriendCodeSeed]] are used, the output data from these are not used. If either of these return an error, Home Menu uses [[ERR:Throw]].<br />
|-<br />
| <br />
| <br />
| <br />
| [[Cfg:GetSystemModel]] is then used to initialize a Home Menu state field.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then loads the system language via [[CfgS:GetConfigInfoBlk2]], and uses [[Cfg:SecureInfoGetRegion]], to initialize Home Menu region/language state. Home Menu then uses [[Cfg:SecureInfoGetRegion]] again, then loads the [[Config_Savegame|CountryInfo]] via [[CfgS:GetConfigInfoBlk2]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu initializes [[Filesystem_services|fs:USER]] here. Home Menu then mounts the Home Menu CXI RomFS. Then Home Menu uses [[Filesystem_services|FSUSER:GetPriority]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts APT initialization / using APT service commands here. Eventually Home Menu then [[NSS:LaunchTitle|launches]] various system-modules.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu attempts to open NAND shared-[[extdata]] 0xe0000000, which will normally fail since it doesn't exist.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[Application_Manager_Services|AM]] command 0x00130040, with input u8 = value 0x0. Home Menu continues using APT commands after this.<br />
|-<br />
| <br />
| <br />
| <br />
| [[HID_Services|hid:SPVR]] service initialization is done here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTMSYSM:GetShellStatus]] is used here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read to check the auto-boot flag(see the auto-boot section on this page). The system-setup-required flag is then read here if needed, as mentioned under the auto-boot section of this page.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu then uses cfg commands to load system language, region, and CountryInfo.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/menu_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/hud_msbt_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| Home Menu CXI RomFS<br />
| "/message_hud/<Region>_<Language>/RI_mstl_LZ.bin"<br />
| Presumably loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| [[NS_and_APT_Services|APT:GetSharedFont]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| "/font/Hud_JP.bcfnt"<br />
| <br />
| <br />
|-<br />
| <br />
| <br />
|<br />
| Here Home Menu loads the [[Config_Savegame|cfg]] state for blkID 0x50005.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu loads the GPU shaders from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does DSP initialization then starts using DSP commands etc + loads sound data from RomFS.<br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu does GSP initialization.<br />
|-<br />
| <br />
| <br />
| <br />
| [[APT:GetCaptureInfo]] is used here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| Here Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]], [[PTMSYSM:GetSoftwareClosedFlag]], and [[PTMSYSM:ClearSoftwareClosedFlag]]. Home Menu then uses [[PTM_Services|PTMSYSM:GetShellStatus]] 3 times in a row. Starting from here, Home Menu uses [[PTM_Services|PTMSYSM:GetShellStatus]] frequently(presumably from a separate thread).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the archive for the Home Menu [[System_SaveData]] here. Then Home Menu attempts to open "/Launcher.dat" for reading, when successful Home Menu just closes the file.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| 0x2490<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| System CFA, titleID for USA: 0004009B00013302<br />
| "/country.bin"<br />
| <br />
| <br />
|-<br />
| [[NS CFA]]<br />
| "/ctr_backup_black_list"<br />
| <br />
| Home Menu first reads 0x10-bytes from offset 0x0, then after that it reads the rest of the file.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] the camera system-module here.<br />
|-<br />
| Home Menu CXI RomFS<br />
| <br />
| <br />
| Home Menu reads various RomFS files here.<br />
|-<br />
| NGWord bad word list CFA<br />
| "/version.dat"<br />
| 0x4<br />
| Home Menu mounts the ngword archive here, then reads version.dat. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000A0000.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu [[NSS:LaunchTitle|launches]] various system-modules here(from a separate thread?).<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens the following NAND shared extdata archives here: 0xf0000001, 0xf0000002, 0xf0000009, 0xf000000b, 0xf000000c, 0xf000000d, and 0xf000000b again.<br />
|-<br />
| NAND [[extdata]] 0xf000000b<br />
| "/ubll.lst"<br />
| 0x2ee0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_DB.dat"<br />
| 0xe4c0<br />
| Home Menu only does one read with size 0xe4c0 for this, even though the value it loads from [[FSFile:GetSize]] is larger than that.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/CFL_OldDB.dat"<br />
| <br />
| Home Menu just closes this file immediately after opening it, when opening it was successful at least.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the [[Config_Savegame|cfg]] data for blkID 0x000C0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu opens NAND shared extdata archive 0xf000000b again.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| [[Extdata|"/gamecoin.dat"]]<br />
| 0x14<br />
| Home Menu first tries to use [[FS:CreateFile]] with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM:GetTotalStepCount]], then uses [[FSFile:GetSize]]. Then the service handle for [[NDM_Services|"ndm:u"]] is initialized with srv_GetServiceHandle(done from a separate thread perhaps?). Then Home Menu writes to the already opened gamecoin.dat file.<br />
|-<br />
| <br />
| <br />
| <br />
| [[Filesystem_services|FSUSER:CardSlotIsInserted]] and [[Filesystem_services|FSUSER:GetCardType]] is used here. AM commands are then used to get the inserted gamecard programID, when successful the gamecard ExeFS:/icon is then read.<br />
|-<br />
| <br />
| <br />
| <br />
| [[BOSS_Services|"boss:P"]] service handle initialization with srv_GetServiceHandle is done here. Then [[Services|srv_Subscribe]] is used with various noticationIDs. Home Menu then uses [[FS:IsSdmcDetected]] and [[FS:IsSdmcWritable]]. Home Menu then loads the [[Config_Savegame|cfg]] data for blkID 0x000D0000. Home Menu uses boss:P command 0x4010082, then uses srv_GetServiceHandle for initializing service handles with the following services: [[News_Services|"news:s"]] and "cecd:s".<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for service [[Friend_Services|"frd:a"]], then various service commands are used for that.<br />
|-<br />
| NAND [[extdata]] 0xf000000c<br />
| <br />
| <br />
| Home Menu first attempts to use [[FS:CreateFile]] with "/bashotorya.dat", which normally fails since that file already exists. Home Menu then repeats this with "/bashotorya2.dat".<br />
|-<br />
| <br />
| <br />
| <br />
| Here, Home Menu opens the following SD extdata archives: Home Menu badge SD extdata, Home Menu SD extdata, and the theme-cache SD extdata.<br />
|-<br />
| Home Menu SD extdata<br />
| "/SaveData.dat"<br />
| 0x2da0<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/Cache.dat"<br />
| 0x1688<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu SD extdata<br />
| "/CacheD.dat"<br />
| 0x36c0<br />
| This is used to read the cached icon data for the currently inserted gamecard, if any. Prior to doing the read, Home Menu uses [[FSFile:GetSize]]. After opening the file and before [[FSFile:GetSize]] is used, Home Menu uses AM commands 0x10070102(for theme DLC) and 0x30084(gamecard "title-listing").<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu uses the following AM commands for theme DLC here: 0x10050084 and 0x10020104.<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BodyCache.bin"<br />
| 0x150000<br />
| Before opening the file, Home Menu firsts opens this archive under a new archive-handle again, then closes it. Prior to doing the read, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/ThemeManage.bin"<br />
| 0x8<br />
| Prior to doing the read, Home Menu uses [[FSFile:GetSize]](the result is filesize 0x800).<br />
|-<br />
| Home Menu Theme SD extdata<br />
| "/BgmCache.bin"<br />
| <br />
| The data is read from here as needed. After opening the file, Home Menu uses [[FSFile:GetSize]].<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P commands 0x00040000 and 0x04040080 are used here. Home Menu opens NAND shared-extdata 0xf000000e, then closes it when the archive was opened successfully. Then Home Menu uses boss:P command 0x04500102 with the theme extdata, with string "thmtop".<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x04040080 is used, with the input programID set to the gamecard one. Then boss:P commands 0x000E0000 and 0x00160082 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=SD and maxTIDs = 0x1c00.<br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00160082 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[PTM_Services|PTM:GetStepHistory]] is used.<br />
|-<br />
| <br />
| <br />
| <br />
| srv_GetServiceHandle is used to initialize the service handle for [[AC_Services|"ac:u"]], then [[AC_Services|ACU:SetClientVersion]] is used. [[Services|srv_Subscribe]] is used, then ACU command 0x002F0004 is used.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AMNet:GetTitleIDList|AM:GetTitleIDList]] is used with mediatype=NAND and maxTIDs = 0x1c00.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/gamecoin.dat"<br />
| 0x14<br />
| Home Menu first tries to use FS:CreateFile with this, which will fail when the file already exists. This file is then opened with openflags=RW. After reading this file, Home Menu then uses [[PTM_Services|PTM:GetTotalStepCount]], then uses FSFile:GetSize. Then Home Menu writes to the already opened gamecoin.dat file. <br />
<br />
At the same time as doing the above, Home Menu also uses(probably from a different thread) [[AMNet:GetTitleIDList3|AM:GetTitleIDList3]] with mediatype=NAND and maxTIDs=0x2000. Then Home Menu uses [[AMNet:ListTitles|AM:ListTitles]] with the NAND promotional-video titleID. Then Home Menu attempts to open the ExeFS:/icon in the NAND promotional-video title.<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| Prior to doing the write, Home Menu uses [[FSFile:GetSize]]. Home Menu writes 0x2490-bytes to the file here. From a separate thread(?) at the same time, Home Menu also uses [[AM:ReloadDBS]] and AM command 0x00130040 with input=0x1.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu loads the u8 value from [[Config_Savegame|cfg]] blkID 0x000E0000 here.<br />
|-<br />
| <br />
| <br />
| <br />
| [[AM:ReloadDBS]], AM command 0x10070102(for theme DLC), AM command 0x00130040, and AM command 0x10050084(for theme DLC) are used here.<br />
At the same time(from a different thread?), the "act:u" service handle is initialized with srv_GetServiceHandle. Then ACTU commands 0x00010084 and 0x000600C2 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| The [[NIM_Services|"nim:u"]] service handle is initialized with srv_GetServiceHandle. Then NIMU commands 0x000F0042, 0x00170042, 0x00150000, and 0x00050000 are used.<br />
|-<br />
| <br />
| <br />
| <br />
| AM command 0x10020104(theme DLC) is used here. Then Home Menu CXI RomFS data is read.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu CXI RomFS data is read. [[Filesystem_services|FS:GetSpecialContentIndex]] for the gamecard is used, then MICU initialization is done here(separate thread maybe?).<br />
|-<br />
| <br />
| <br />
| <br />
| [[ACU:GetWifiStatus]] is used, the NAND shared-extdata 0xf000000b archive is then opened here.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idb.dat"<br />
| 0x2008<br />
| This first opens the file for writing, then uses [[FSFile:GetSize]](output filesize is 0x6d4000). Then it writes to the file using size 0, then closes the file. Then [[PTM_Services|PTM:GetStepHistory]] is used. Then Home Menu opens "/idbt.dat", then reads 0x2008-bytes.<br />
|-<br />
| <br />
| <br />
| <br />
| Home Menu starts using [[News_Services|"news:s"]] commands here. While Home Menu is doing this, it also uses(from another thread?) [[NS_and_APT_Services|APT:PrepareToStartNewestHomeMenu]], [[NIM_Services|NIMU:GetState]], and [[NDM_Services|NDMU:OverrideDefaultDaemons]] with input value 0xF.<br />
Later with that news-command code still running, Home Menu also uses the following commands: [[ACU:GetWifiStatus]], [[NDM_Services|NDMU:QueryExclusiveMode]], and CECDS command 0x000E0000. Then [[Config_Savegame|cfg]] blkID 0x000D0000 is loaded.<br />
|-<br />
| NAND extdata 0xf000000b<br />
| "/idbt.dat"<br />
| <br />
| Home Menu writes 0x2008-bytes to this file.<br />
|-<br />
| NAND extdata 0xf000000e<br />
| "/versionList.dat"<br />
| Loaded from the filesize.<br />
| <br />
|-<br />
| <br />
| <br />
| <br />
| boss:P command 0x00200082 is used with string "mmVerDl".<br />
|-<br />
| <br />
| <br />
| <br />
| ...<br />
|-<br />
| Home Menu [[System_SaveData]]<br />
| "/Launcher.dat"<br />
| <br />
| When Home Menu is terminating(?), Home Menu writes 0x2490-bytes to the file here. After doing this, Home Menu opens, writes, and closes the file again.<br />
|}<br />
<br />
=== Hardware reboot ===<br />
During Home Menu start-up it uses [[APT:PrepareToStartNewestHomeMenu]]. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with [[APT:StartNewestHomeMenu]] etc.<br />
<br />
On retail this essentially means a hardware-reboot will automatically trigger if [[Configuration_Memory|configmem]] SYSCOREVER doesn't match FIRM_SYSCOREVER, or when the current APPMEMTYPE doesn't match the default APPMEMTYPE for this Old3DS/New3ds model. The latter can happen with running New3DS NATIVE_FIRM with Old3DS system-titles, for example.<br />
<br />
== Returning to Home Menu from a crashed application ==<br />
When returning to Home Menu from an application that didn't properly shutdown(like with an exception), PTM module writes data to the PTM system savedata. Then the system terminates Home Menu, and starts Home Menu again.<br />
<br />
== See Also ==<br />
* http://www.nintendo.com/consumer/systems/3ds/en_na/menu_update.jsp<br />
* http://www.nintendo.co.jp/netinfo/3ds/JPN/ja.html<br />
* https://yls8.mtheall.com/ninupdates/reports.php</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News/Archive&diff=20759News/Archive2018-07-31T00:15:16Z<p>Yls8bot: </p>
<hr />
<div>*'''20 May 17''' Sighax/Boot9Strap is released with Luma 7.1 adding support for b9s a while after.<br />
*'''10 April 17''' Nintendo released system update [[11.4.0-37]].<br />
*'''10 February 17''' [[User:smea|smea]] updated [https://smealum.github.io/3ds/ *hax payloads] with 11.3 support. A while afterwards hblauncher_loader v1.3 was [https://github.com/yellows8/hblauncher_loader/releases released] by [[User:Yellows8|Yellows8]].<br />
*'''6 February 17''' Nintendo released system update [[11.3.0-36]].<br />
*'''17 January 2017''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8643 devkitARM release 46].<br />
*'''9 January 2017''' [[User:Yellows8|Yellows8]] released: new oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages], ctr-httpwn [https://github.com/yellows8/ctr-httpwn/releases v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.2], [https://github.com/yellows8/ctpkpwn ctpkpwn_tfh], and others.<br />
*'''27 December 2016''' [https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8344.html Nintendo Hacking 2016] lecture at Chaos Communication Congress.<br />
*'''26 December 2016''' [[User:Dazzozo|Dazzozo]] released an update to [https://citizens.salthax.org/ humblehax] with [[11.2.0-35]] support.<br />
*'''31 October 2016''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_dsiwarehax_installer/releases 3ds_dsiwarehax_installer] v1.0. v1.1 was released on November 2nd.<br />
*'''24 October 2016''' Nintendo released system update [[11.2.0-35]].<br />
*'''4 October 2016''' An update for EUR version of VVVVVV was finally released (title was re-added to the eShop versionlist). Likewise for the USA version on the October 11th (this title was already listed in the versionlist however).<br />
*'''22 September 2016''' [[User:shinyquagsire23|Shiny Quagsire]] released an update to [https://smd.salthax.org/ supermysterychunkhax] with [[11.1.0-34]] support.<br />
*'''20 September 16''' [[User:Smea|Smea]] released an update to [http://smealum.github.io/ninjhax2/ Ninjhax 2] with [[11.1.0-34]] support.<br />
*'''16 September 16''' [[User:Plutooo|plutoo]] released an update to [https://plutooo.github.io/freakyhax/ freakyhax] with [[11.1.0-34]] support.<br />
*'''15 September 16''' [[User:Yellows8|Yellows8]] released updated oot3dhax [https://github.com/yellows8/oot3dhax/releases/tag/09-15-16 saveimages] for latest *hax payloads + [[11.1.0-34]] support.<br />
*'''13 September 16''' Nintendo released system update [[11.1.0-34]].<br />
*'''20 August 16''' [[User:Yellows8|Yellows8]] released hblauncher_loader [https://github.com/yellows8/hblauncher_loader/releases/tag/v1.2 v1.2], menuhax [https://github.com/yellows8/3ds_homemenuhax/releases/tag/v3.1 v3.1], and updated the starter-kit. The sploit_installer build from the starter-kit now supports all regions for stickerhax except CHNTWN. This also sends the Home Menu title-version for the initial *hax payload network request, unless the user changed the system-info(like the latest menuhax_manager and hblauncher_loader).<br />
*'''9 August 16''' An updated version of USA SmileBASIC is now available(the updated JPN version was released exactly 2 weeks ago).<br />
*'''29 July 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/stickerhax stickerhax], which supports <=[[11.0.0-33]].<br />
*'''27 July 16''' [[User:Yellows8|Yellows8]] released new browserhax(see changelog [[browserhax|here]]) and menuhax [https://github.com/yellows8/3ds_homemenuhax/releases v3.0], all of these now support [[11.0.0-33]].<br />
*'''26 July 16''' Various JPN-only eShop app updates were released. This includes JPN SmileBASIC: the update-title was removed from versionlist, and the main-title was updated. Updating an already installed version of the game will currently update to 3.3.1. Uninstalling and redownloading will give you 3.3.2. [https://plutooo.github.io/smilehax/ smilehax] was fixed in [http://smilebasic.com/debug/ 3.3.2].<br />
*'''22 July 16''' [[User:Dazzozo|Dazzozo]] released [https://citizens.salthax.org/ humblehax v2], supporting the Citizens of Earth update released on the eShop 3 days ago.<br />
*'''20 July 16''' [[User:Plutooo|plutoo]] (with help from [[User:Yellows8|Yellows8]]) released [https://plutooo.github.io/smilehax/ smilehax].<br />
*'''19 July 16''' An updated version of the EUR "Citizens of Earth" regular-title is now available on the EUR-eShop, ~2 months after being originally removed. Likewise for USA on the 21st.<br />
*'''18 July 16''' [[User:Smea|Smea]] updated the hosted *hax payload builds(only otherapp for non-KOR) and this [https://smealum.github.io/3ds/ page]. KOR is now supported thanks to d3m3vilurr(system-version >=v9.6). All otherapp payloads were rebuilt+updated, hence these now include a commit for compression(committed by [[User:Yellows8|Yellows8]] with compression code by mtheall). Due to this, oot3dhax+payload can now be installed with multiple other normal save-files, without any issues(via sploit_installer from the starter-kit). [[User:Yellows8|Yellows8]] also updated the [https://smealum.github.io/3ds/ hosted] boot.3dsx to hbmenu 1.1.1.<br />
*'''10 July 16''' MrNbaYoh released [https://mrnbayoh.github.io/basicsploit/ BASICSploit] for version 3.2.1 of SmileBASIC. Currently only the US version is supported. On July 11th the main-app title was removed from USA/JPN eShop: it's no longer listed on the former, while on the latter it can't be purchased.<br />
*'''26 June 16''' [[User:Yellows8|Yellows8]] released oot3dhax builds for supporting [[11.0.0-33]], via updated sploit_installer in the [https://smealum.github.io/3ds/ starter-kit] and raw [https://github.com/yellows8/oot3dhax/releases/tag/06-26-16 saveimages]. Note that attempting to run sploit_installer on a 11.0.0-33 system with *hax payload <=v2.7 is equivalent to [[11.0.0-33|trying]] to use the older oot3dhax on that version.<br />
*'''3 June 16''' [[User:Plutooo|plutoo]] released [https://plutooo.github.io/freakyhax/ freakyhax]. The USA game was removed from the eShop <=3-hours later("... currently unavailable" message).<br />
*'''9 May 16''' Nintendo released system update [[11.0.0-33]].<br />
*'''24 March 16''' Nintendo updated the pages stored on the server used for browser-version-check. Due to almost all of the Old3DS/New3DS pages for non-latest-browser being updated(content is now "99999"), browser versions prior to [[10.7.0-32]] are not usable anymore without using the browser-version-check bypass(fixed with [[10.7.0-32]]). The only exception is New3DS v10.2, it was "updated" but the content is still "0"(this is due to browser-version-check being [[Internet_Browser|broken]] with New3DS v10.2).<br />
*'''22 March 16''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/ctr-httpwn/releases ctr-httpwn]. v1.0.1 was released on the 25th for a RootCA cert update.<br />
*'''14 March 16''' Nintendo released system update [[10.7.0-32]].<br />
*'''24-25 February 16''' On the 24th the Old3DS [[Internet_Browser|browser-version-check]] pages were updated so that browser version >=v10.6 is now required. The New3DS pages for this were not changed. About 5 hours later, [[User:Yellows8|Yellows8]] disclosed a bypass for the browser-version-check. User instructions are available [http://yls8.mtheall.com/3dsbrowserhax.php here], details [[3DS_Userland_Flaws|here]].<br />
*'''22 February 16''' Nintendo released system update [[10.6.0-31]].<br />
*'''1 February 16''' As of this date (time zones notwithstanding) following server maintenance Nintendo now checks server-side that users are on current firmware before allowing access to online functionality in games. See [[10.5.0-30|here]] for details.<br />
*'''25 January 16''' Nintendo released system update [[10.5.0-30]].<br />
*'''25 January 16''' [[User:Yellows8|Yellows8]] updated [http://yls8.mtheall.com/3dsbrowserhax.php browserhax], [https://github.com/yellows8/3ds_homemenuhax/releases menuhax], and the oot3dhax [https://github.com/yellows8/oot3dhax/releases saveimages] for v10.4.<br />
*'''18 January 16''' Nintendo released system update [[10.4.0-29]].<br />
*'''7 January 16''' (roughly, not automatically detected) Ironfall v1.0 is no longer downloadable due to the main-CXI content files on CDN being removed (TMD wasn't removed).<br />
*'''27 December 15''' A 3DS console hacking [https://events.ccc.de/congress/2015/Fahrplan/events/7240.html talk] was at 32C3. A recording can be found [https://www.youtube.com/watch?v=UutYOidFx3c here]. Around the end of the talk, [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]] compatible with the latest system-version at the time of release ([[10.3.0-28]]). The homebrew [https://smealum.github.io/3ds/ starter-kit] was updated for latest menuhax, and for an option for downloading the old vulnerable version of Ironfall from eShop.<br />
*'''15 December 15''' Nintendo released Smash Bros update v1.1.3 which fixed [[smashbroshax]], see [https://github.com/yellows8/3ds_smashbroshax here] for details. However, [[smashbroshax]] is still possible on latest firmware: simply remove the update from SD card before attempting the exploit.<br />
*'''13 December 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8542 devkitARM release 45].<br />
*'''25 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/hblauncher_loader/releases hblauncher_loader].<br />
*'''17-20 November 15''' Nintendo released an update for the normal (non-invite-code) Super Smash Bros demos in USA, EUR and JPN, fixing [[smashbroshax]]. Only the demos were updated, the cartridge and eShop version of the full game are still vulnerable.<br />
*'''12 November 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/oot3dhax/releases oot3dhax] raw savedata images for gamecards with the latest *hax payloads. The official [https://github.com/smealum/sploit_installer installer] is now [https://smealum.github.io/3ds/ included] in the homebrew starter kit.<br />
*'''9 November 15''' Nintendo released system update [[10.3.0-28]].<br />
*'''2 November 15''' Following an eShop servers maintenance, changes to the [[eShop]] system application require an update of the Homebrew starter kit for eShop access on system versions older than [[10.0.0-27]]. See [[EShop|here]] for details.<br />
*'''30 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_homemenuhax/releases menuhax] v2.0.<br />
*'''29 October 15''' [[User:Yellows8|Yellows8]] released [https://github.com/yellows8/3ds_smashbroshax/releases 3ds_smashbroshax] v1.2.<br />
*'''26 October 15''' A [[Internet_Browser#v9.9_dummy_web-browser|dummy web browser]] is now being included in CUPs (cart updates) on Old3DS/New3DS likely starting with games shipping [[9.9.0-26|9.9.0-X]]. NVer is not updated by this.<br />
*'''26 October 15''' The system web-browser on Old3DS/New3DS now displays a "sysupdate required" message on systems with [[9.9.0-26]] or above installed, if the installed browser(?) is not the latest version. See [[Internet_Browser#Forced_system-update|here]] for details.<br />
*'''25 October 15''' [[User:Smea|smea]] released *hax 2.5 payloads, which fixes a number of bugs and adds new features such as screenshot-taking, romhacking and eshop access.<br />
*'''20 October 15''' Nintendo released system update [[10.2.0-28]]. The publicly available versions of [[menuhax]] and [[browserhax]] at the time of sysupdate release, were blocked.<br />
*'''15 October 15''' The [[YouTube]] application was updated with a fix for [[tubehax]]. This update is forced: the app itself checks whether a newer version of the title is available.<br />
*'''13 October 15''' "Ironfall: Invasion" was made available on the eShop again (originally pulled on August 11th). The updated version blocks [[ironhax]].<br />
*'''25 September 15''' [[User:Yellows8|Yellows8]] released [[browserhax]] and [[menuhax]]. On the 26th menuhax v1.2 was [https://github.com/yellows8/3ds_homemenuhax/releases released].<br />
*'''14 September 15''' Nintendo released system update [[10.1.0-27]].<br />
*'''11 September 15'''(11:30 EDT) [[User:Yellows8|Yellows8]] released [[smashbroshax]]. On the 30th v1.1 was [https://github.com/yellows8/3ds_smashbroshax/releases released] for supporting Super Smash Bros v1.1.1.<br />
*'''8 September 15''' Nintendo released system update [[10.0.0-27]].<br />
*'''18 July 15''' smea released [[ninjhax]] 2 beta [http://smealum.github.io/ninjhax2/], enabling ARM11 homebrew execution on Old/New 3DS up to firmware 9.9.0-26.<br />
*'''13 July 15''' Nintendo released system update [[9.9.0-26]].<br />
*'''1 June 15''' Nintendo released system update [[9.8.0-25]].<br />
*'''03 May 15''' smea released regionFOUR [https://github.com/smealum/regionFOUR/blob/master/README.md], enabling region free gaming on latest firmware. (again)<br />
*'''20 April 15''' Nintendo released system update [[9.7.0-25]].<br />
*'''23 March 15''' Nintendo released system update [[9.6.0-24]].<br />
*'''2 March 15''' Nintendo released system update [[9.5.0-23]].<br />
*'''15 February 15''' WinterMute released [http://devkitpro.org/viewtopic.php?f=13&t=8409 devkitARM release 44].<br />
*'''2 February 15''' Nintendo released system update [[9.5.0-22]], which fixes [[3DS System Flaws|firmlaunch-hax]].<br />
*'''16 January 15''' smea released regionthree [https://github.com/smealum/regionthree/blob/master/README.md], enabling region free gaming on latest firmware.<br />
*'''24 December 14''' smea released [[Ninjhax]] 1.1 ('''NOT''' a fix for firmware [[9.3.0-21]] or [[9.4.0-21]]).<br />
*'''11 December 14''' Nintendo released system update [[9.4.0-21]].<br />
*'''8 December 14''' Nintendo released system update [[9.3.0-21]], which fixes [[3DS System Flaws|rohax]].<br />
*'''20 November 14''' smea released [[Ninjhax]], the first public [[Homebrew Exploits|homebrew exploit]] compatible with system-versions [[4.0.0-7]]-[[9.2.0-20]].<br />
*'''29 October 14''' Nintendo released system update [[9.2.0-20]].<br />
*'''10 October 14''' Nintendo released system update [[9.1.0-20J]].<br />
*'''6 October 14''' Nintendo released system update [[9.0.0-20]].<br />
*'''29 August 14''' Nintendo announced [[New 3DS]].<br />
*'''7 August 14''' Nintendo released system update [[8.1.0-19]].<br />
*'''24 July 14''' Nintendo released system update [[8.1.0-18]].<br />
*'''7 July 14''' Nintendo released system update [[8.0.0-18]].<br />
*'''12 May 14''' Nintendo released system update [[7.2.0-17]].<br />
*'''26 February 14''' Nintendo released system update [[7.1.0-16]].<br />
*'''22 January 14''' Nintendo released system update [[7.1.0-15]].<br />
*'''19 December 13''' Nintendo released system update [[7.1.0-14]].<br />
*'''9 December 13''' Nintendo released system update [[7.0.0-13]].<br />
*'''13 September 13''' Nintendo released system update [[6.3.0-12]].<br />
*'''20 August 13''' [[3DSExplorer|3DSExplorer v1.5.3]] updated by [[User:Elisherer|Elisherer]] (Enable trimming NCSD)<br />
*'''6 August 13''' Nintendo released system update [[6.2.0-12]].<br />
*'''11 July 13''' Nintendo released system update [[6.1.0-12U]] for only USA.<br />
*'''27 June 13''' Nintendo released system update [[6.1.0-11]] (6.1.0-12 for all regions except USA).<br />
*'''17 June 13''' Nintendo released system update [[6.0.0-11]] (6.0.0-12 for all regions except USA).<br />
*'''4 April 13''' Nintendo released system update [[5.1.0-11]].<br />
*'''25 March 13''' Nintendo released system update [[5.0.0-11]].<br />
*'''14 January 13''' [[3DSExplorer|3DSExplorer v1.5.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''4 December 12''' Nintendo released system update [[4.5.0-10]].<br />
*'''1 December 12''' [[3DSExplorer|3DSExplorer v1.4]] updated by [[User:Elisherer|Elisherer]]<br />
*'''2 November 12''' Added page for [[Fundraiser|Chip decapping fundraiser]]<br />
*'''8 January 13''' [[3DSExplorer|3DSExplorer v1.5]] updated by [[User:Elisherer|Elisherer]]<br />
*'''23 September 12''' [[005tools|005tools v0.1b]] by [[User:McHaggis|McHaggis]]<br />
*'''19 September 12''' Nintendo released system update [[4.4.0-10]].<br />
*'''17 August 12''' Nintendo released New Super Mario Bros. 2, the first 3DS title released simultaneously in stores and as an [[eShop]] download.<br />
*'''28 July 12''' [[3DSExplorer|3DSExplorer v1.3]] (modified by 3DSGuy) updated by [[User:Elisherer|Elisherer]]<br />
*'''24 July 12''' Nintendo released system update [[4.3.0-10]].<br />
*'''26 June 12''' Nintendo released system update [[4.2.0-9]].<br />
*'''19 May 12''' [[3DSExplorer|3DSExplorer v1.2.1]] updated by [[User:Elisherer|Elisherer]]<br />
*'''15 May 12''' Nintendo released its first implementation of 3DS '[[Title list#0004000E - Add-on Content|Add-on Content]]' with the Mario Kart 1.1 update.<br />
*'''14 May 12''' Nintendo released system update [[4.1.0-8]].<br />
*'''24 April 12''' Nintendo released system update [[4.0.0-7]].<br />
*'''08 February 12''' [[CiTRUS|CiTRUS v0.2]] updated by [[User:Xcution|Xcution]]<br />
*'''04 February 12''' [[CiTRUS|CiTRUS v0.1]] released by [[User:Xcution|Xcution]]<br />
*'''02 February 12''' [[3DSExplorer|3DSExplorer v1.2]] updated by [[User:Elisherer|elisherer]]<br />
*'''26 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.07]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''05 January 12''' [[Crappy Tiny Reader|CTR - Crappy Tiny Reader v0.06]] updated by [[User:PsyKopaT|PsyKo]]<br />
*'''21 December 11''' Nintendo released system update [[3.0.0-6]]<br />
*'''21 December 11''' [[3DSExplorer|3DSExplorer v1.1.1]] updated by [[User:Elisherer|elisherer]]<br />
*'''7 December 11''' [[3DSExplorer|3DSExplorer v0.96]] updated by [[User:Elisherer|elisherer]]<br />
*'''4 September 11''' [[3DSViewer|3DSViewer v0.1]] released by [[User:Elisherer|elisherer]]<br />
*'''1 August 11''' [[3DS Save DeEncrypter3DS|Save DeEncrypter v1.0]] released by [[User:Blite|Blite]]<br />
*'''25 July 11''' Nintendo released system update [[2.1.0-4]].<br />
*'''15 June 11''' Nintendo released system update [[2.1.0-3]].<br />
*'''6 June 11''' Nintendo released system update [[2.0.0-2]].<br />
*'''6 April 11''' [[DSaveManager|DSaveManager v0.1]] released by [[User:Crediar|crediar]]<br />
*'''4 April 11''' [[3DSaveTool|3DSaveTool v0.2b]] released by [[User:Crediar|crediar]]<br />
*'''2 April 11''' [[3DSaveTool|3DSaveTool v0.1]] released by [[User:Crediar|crediar]]<br />
*'''28 March 11''' Fixed 3DBrew wiki issues, now fully operational!<br />
*'''18 March 11''' 3DBrew launched.<br />
<br />
<br />
== 3DBrew International ==<br />
Our community is an international community.<br />
<br />
We have freedom, and we will express it in our language (but you have to write it in English before ;)!</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=News&diff=20758News2018-07-31T00:15:15Z<p>Yls8bot: </p>
<hr />
<div><noinclude><br />
==Adding an item==<br />
* Log in to the wiki. Editing is disabled if you don't have an account.<br />
* Add the news event to the top of the list, using this format for the date: <tt><nowiki>'''</nowiki>{{#time: d F y}}<nowiki>''' </nowiki></tt>. Please include the application's creator, version number, and a link to a page on 3DBrew about the application. No external links please.<br />
* '''Move the last entry to the [[:News/Archive|news archive]]. There should be no more than 4 entries in the list.'''<br />
<br />
==Archives==<br />
For older news, see the [[:News/Archive|news archive]].<br />
<br />
=== News ===<br />
<!-- Add news below --></noinclude><br />
*'''30 July 18''' Nintendo released system update [[11.8.0-41]].<br />
*'''18 June 18''' Nintendo released system update [[11.7.0-40]].<br />
*'''18 September 17''' Nintendo released system update [[11.6.0-39]].<br />
*'''10 July 17''' Nintendo released system update [[11.5.0-38]].<br />
*'''04 June 17''' [https://github.com/SciresM/boot9strap/releases/tag/1.2 Boot9strap] updated to 1.2, with [https://github.com/AuroraWright/Luma3DS/releases/tag/v8.1 Luma] support quickly after. With the luma update, *hax payloads are no longer needed.</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.7.0-40&diff=2072211.7.0-402018-06-19T22:25:28Z<p>Yls8bot: </p>
<hr />
<div>The New3DS 11.7.0-40 system update was released on June 18, 2018. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=06-18-18_08-00-41&sys=ktr]</div>Yls8bothttps://www.3dbrew.org/w/index.php?title=11.7.0-40&diff=2072111.7.0-402018-06-19T22:25:21Z<p>Yls8bot: </p>
<hr />
<div>The Old3DS+New3DS 11.7.0-40 system update was released on June 18, 2018. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.<br />
<br />
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.<br />
<br />
==Change-log==<br />
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/667/p/430/c/267 Official] USA change-log:<br />
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience<br />
<br />
==System Titles==<br />
<fill this in (manually) later><br />
<br />
==See Also==<br />
System update report(s):<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=06-18-18_08-00-36&sys=ctr]<br />
* [https://yls8.mtheall.com/ninupdates/reports.php?date=06-18-18_08-00-41&sys=ktr]</div>Yls8bot