Overview: Difference between revisions
GRAnimated (talk | contribs) mNo edit summary |
(Added information about the game’s release date.) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
''Super Mario Bros. Wonder'''s internal project name is '''Secred'''. | '''''Super Mario Bros. Wonder''''' is a side-scrolling platform game released worldwide for the Nintendo Switch on October 20, 2023. It was first announced during the June 2023 Nintendo Direct, and is also the twenty-second installment in the ''Super Mario'' series and the first new full-fledged 2D ''Super Mario'' game since ''New Super Mario Bros. U'' released almost 11 years prior. In addition, it is the first game to feature Kevin Afghani as the voice of Mario and Luigi, succeeding Charles Martinet, as well as the first game in the ''Super Mario'' franchise as a whole to be released since the initial release of ''Mario + Rabbids Sparks of Hope'' exactly one year prior. | ||
''Super Mario Bros. Wonder''<nowiki/>'s internal project name is '''Secred'''. | |||
== Framework == | == Framework == | ||
Line 5: | Line 7: | ||
=== Code === | === Code === | ||
The game's executable is stripped, only containing symbols for exported functions and typeinfo for a statically linked ''nn::pia''. The game also makes use of clang's [https://en.wikipedia.org/wiki/Profile-guided_optimization Profile Guided Optimization] to optimize function calls. This makes ''Super Mario Bros. Wonder'' and ''The Legend of Zelda: Tears of the Kingdom'' the only [[ModuleSystem|ModuleSystem]] games to not use [https://www.llvm.org/docs/LinkTimeOptimization.html Link Time Optimization], which acts much more aggressively for a bigger boost in performance. | The game's executable is stripped, only containing symbols for exported functions and typeinfo for a statically linked '''nn::pia'''. The game also makes use of clang's [https://en.wikipedia.org/wiki/Profile-guided_optimization Profile Guided Optimization] to optimize function calls. This makes ''Super Mario Bros. Wonder'' and ''The Legend of Zelda: Tears of the Kingdom'' the only [[ModuleSystem|ModuleSystem]] games to not use [https://www.llvm.org/docs/LinkTimeOptimization.html Link Time Optimization], which acts much more aggressively for a bigger boost in performance. | ||
The optimization applied to the recent games may be in response to the influx of modding and reverse engineering on Nintendo's most important switch games. PGO and LTO act as a layer of obfuscation, which is a total opposite from the earliest switch games like | The optimization applied to the recent games may be in response to the influx of modding and reverse engineering on Nintendo's most important switch games. PGO and LTO act as a layer of obfuscation, which is a total opposite from the earliest switch games like ''Splatoon 2'' and ''Super Mario Odyssey'' releasing with full symbols and typeinfo. | ||
The game was compiled with '''NintendoSDK 16.2.0''', linking in '''NintendoWare''' and several middleware libraries in relation to online. | The game was compiled with '''NintendoSDK 16.2.0''', linking in '''NintendoWare''' and several middleware libraries in relation to online. |
Latest revision as of 12:59, 11 October 2024
Super Mario Bros. Wonder is a side-scrolling platform game released worldwide for the Nintendo Switch on October 20, 2023. It was first announced during the June 2023 Nintendo Direct, and is also the twenty-second installment in the Super Mario series and the first new full-fledged 2D Super Mario game since New Super Mario Bros. U released almost 11 years prior. In addition, it is the first game to feature Kevin Afghani as the voice of Mario and Luigi, succeeding Charles Martinet, as well as the first game in the Super Mario franchise as a whole to be released since the initial release of Mario + Rabbids Sparks of Hope exactly one year prior.
Super Mario Bros. Wonder's internal project name is Secred.
Framework[edit | edit source]
Super Mario Bros. Wonder is a first-party game developed by Nintendo EPD. This wiki refers to the game's engine as ModuleSystem, based on one of the heaps created by the executable. This engine has also been used in Splatoon 3, Nintendo Switch Sports, and The Legend of Zelda: Tears of the Kingdom. It's currently unknown where this game's development lies in a timeline of these games.
Code[edit | edit source]
The game's executable is stripped, only containing symbols for exported functions and typeinfo for a statically linked nn::pia. The game also makes use of clang's Profile Guided Optimization to optimize function calls. This makes Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom the only ModuleSystem games to not use Link Time Optimization, which acts much more aggressively for a bigger boost in performance.
The optimization applied to the recent games may be in response to the influx of modding and reverse engineering on Nintendo's most important switch games. PGO and LTO act as a layer of obfuscation, which is a total opposite from the earliest switch games like Splatoon 2 and Super Mario Odyssey releasing with full symbols and typeinfo.
The game was compiled with NintendoSDK 16.2.0, linking in NintendoWare and several middleware libraries in relation to online.
Libraries | Package | Usage |
---|---|---|
NPLN |
NPLN-1_16_4-Release Google_APIs_For_NPLN-1_16_4-Release gRPC_For_NPLN-0_0_0-Release OpenSSL_For_NPLN-0_0_0-Release |
|
libcurl | libcurl-16_2_0-Release | |
Pia |
PiaClone-6_30_0 PiaCommon-6_30_0 Pia-6_30_0 PiaLocal-6_30_0 PiaLan-6_30_0 PiaSession-6_30_0 PiaSync-6_30_0 PiaTransport-6_30_0 PiaNpln-6_30_0 |
|
NintendoWare |
NintendoWare_Vfx2-16_2_0-Release NintendoWare_Font-16_2_0-Release NintendoWare_Ui2d-16_2_0-Release NintendoWare_G3d2-16_2_0-Release |
|
libz | libz-16_2_0-Release |
In addition to middleware, the game's engine also links in some notorious libraries used in a majority of first-party Nintendo games, like sead, agl, gsys, and XLink2.
In the refactoring that created the engine, several classes were moved from BOTW into their own namespaces. al::ByamlIter, a class borrowed from Super Mario Odyssey, was present in Breath of the Wild and exists in this game as byaml::ByamlIter.
The namespace pp was introduced in Super Mario 3D All Stars as hardcoded parameters in pp::TypedParam classes within .bgyml files (and are BYAMLs), generated by an intermediate format .gyml. The library continues to be used in this game.