Northport

From Super Mario Galaxy wiki
(Redirected from Lingcod)
Jump to navigation Jump to search
This page is in progress and may contain incomplete information or editor's notes.

Northport[1][2][3] was Nvidia's project to release GameCube and Wii games in China for the Nvidia Shield, with Super Mario Galaxy 1 being one of these games. It was unprecedented as the first time in Nintendo's history that they allowed their games to be sold for another company's platform, likely due to Nvidia supplying the Tegra X1 SoC in the Nintendo Switch. Northport bundles lingcod, a GameCube and Wii emulator developed by Nvidia, with custom builds of the games optimized for running under lingcod.

History and development

The earliest evidence of Northport is dated March 8, 2016, from the Nintendo leak archive Documents.7z/Documents/セキュリティチーム運営/プロジェクト/NorthPort/. The build date in the released Northport build of New Super Mario Bros. Wii is May 3, 2016. It was presumably around this time that Nintendo gave Nvidia the games' source code and that lingcod development started. Most evidence points to Northport having been developed by Nvidia, specifically their GameWorks division.[4] However, the documents in Documents.7z/Documents/セキュリティチーム運営/プロジェクト/NorthPort/ show some involvement by Nintendo, specifically regarding anti-piracy and anti-cheating.

The public first became aware of Northport in any capacity in January 2017, when the Chinese government announced that "New Super Mario Bros" (actually referring to New Super Mario Bros. Wii, not the Nintendo DS game of that name) had been approved for sale in the country. It was officially announced in December 2017 alongside the release of three of the five Wii games that would be released for the Shield.

The sale of Northport games was discontinued in July and August 2021. On October 8, 2021, the online verification servers lingcod requires to run were shut down, making it impossible to run without a bypass.

Details

lingcod is a C++ written GameCube and Wii emulator that runs on Android. It's optimized for the Shield and the Tegra X1 SoC used in it, using GPU drivers specific to the X1. Furthermore, the builds of games running under lingcod were optimized for doing so. Super Mario Galaxy had the file LingcodPatch.cpp added to its Util tree.

Configuration files

Each Northport release contains a series of commented INI configuration files.

.alf files

Instead of a DOL, Northport builds' code is in the new ALF format, an executable format developed by Nvidia optimized for runtime patching. Additionally, these files are not simply named "main.alf", but have the name of the original ELF created by the game's build script. For example, Super Mario Galaxy's executable is named "product.alf", as its build script creates a file named "product.elf". For the Wii builds, product.elf would be converted to a DOL and then named "main.dol" when packed into a Revolution Master (or "Wii ISO").

.pak files

The games' file systems and their lingcod specific assets archives are in the new PAK format. https://github.com/simontime/iQiPack can be used to extract this format.

Games

At any point during its development, Northport planned to release at least the following titles for the Shield.

  • Cooking Mama (canceled; listed in game_specific_asset_locations.ini)
  • Donkey Kong Country Returns (released July 4, 2019)
  • Mario Kart Wii (canceled later; listed in game_specific_asset_locations.ini; public demo presented before cancellation)
  • New Super Mario Bros. Wii (released December 5, 2017)
  • Punch-Out!! (released December 5, 2017)
  • Super Mario Galaxy (released March 22, 2018)
  • Super Mario Sunshine (canceled early on; not listed in game_specific_asset_locations.ini)
  • The Legend of Zelda: Twilight Princess (released December 5, 2017)

Super Mario Galaxy release

Super Mario Galaxy was released for the Shield in March 2018. The Super Mario Galaxy build released for the Shield was compiled from the same updated source tree as the Korean Wii version. This tree was updated to use the latest RVL SDK at the time of the Korean version's 2008 release. This is why the copyright date is 2007 - 2008. It is also believed that the Chinese localization was not created by Nvidia, but rather by Nintendo for an intended release on the Chinese iQue Wii. The iQue Wii was ultimately canceled, so this of course never happened.

Supporting this theory:

  • iQue is listed in the Shield release's credits.
  • Nvidia did not credit any localizers or translators in their credits list.
  • The Chinese government requires video games to display ISBN numbers on launch. The code for this, IsbnManager.cpp, is in the Korean Wii release as well as the Shield release.
  • The Korean Wii release's code references a directory named CnSimpChinese in LocalizeData.

New files

The Shield build contains several new files from the time of the game's development that are not present in the earlier Wii releases, nor the later Super Mario 3D All-Stars release. These include the contents of AllTargetAddressMap, and the file Debug.arc in every LocalizeData directory. This is because EAD had to manually remove these files upon releasing a new build, and Nvidia was not aware of this.

Nvidia's files

The Shield build additionally contains several files created by Nvidia, such as nintendoLogo.arc, the Nintendo logo image that is displayed on launch. Notably, these files break the capitalization convention used by the games' other files, and are not Yaz0 compressed as are other files in the same directory.

The existence of these new files indicates that in addition to the source code of Super Mario Galaxy itself, Nintendo also supplied Nvidia with several development tools, at least including Resarc and the BRLYT and TPL creators.

Credits

Shield Dev Team

Engineering Team

  • Aayush Prakash
  • Anthony Pesch
  • Chris Dannemiller
  • Chris Spyropoulos
  • Denis Barkar
  • Eric Cameracci
  • Eric van Beurden
  • Ian Bullard
  • Jihui Shentu
  • Jim McArthur
  • John Ratcliff
  • Jonathan Lim
  • Ryan Houdek (notable as a former Dolphin developer)
  • Stefanos Piiditis
  • Terry Caton

Additional Engineering

  • Jeffrey Qiu
  • Johnny Costello
  • Lindsay Moore
  • Nima Nikfetrat
  • Roggie Zhang
  • Ryan Prescott
  • Sujit Tupe
  • Willy Lau

Engineering Support

  • Jim McCaffrey
  • Paul Hodgson
  • Seth Williams
  • Robert Stepinski

Quality Assurance

  • Adam Chamberlain
  • Benjamin Feuerstein
  • Felipe Alves
  • Jason Lee
  • Joel Sansait
  • Joseph Astillero
  • Shaad Boochoon
  • Trevor Holm
  • Whitney Kitchur

Project Management

  • Blair Yakimovich
  • Dane Johnston
  • Gavriel State
  • John Han
  • Nan Li
  • Ryan Elam

Nvidia Management

  • Ali Kani
  • Bill Bean
  • David Sullins
  • Fredrik Liljegren
  • Kashi Anoosheh
  • Mike Pepe
  • Rev Lebaredian
  • Stephanie Johnson
  • Sunny Thakkar
  • Teresa Jones
  • Tim Bender
  • Tony Tamasi
  1. com.nvidia.nintendo.smg/smg_assets.pak/ini/{smg/smg.ini,game_specific_asset_locations.ini}
  2. https://www.linkedin.com/in/willy-lau-318a3380/
  3. Documents.7z/Documents/セキュリティチーム運営/プロジェクト/NorthPort/
  4. https://www.linkedin.com/in/rob-stepinski-27a3b256/