The Platinum leak occurred on the 9th of September 2020 and included gigabytes of content, hence why some call it GigaLeak 3.
Gigaleak - SNES Source Code Leak
For more information on the original Gigaleak check out this post.
Most notably it contains the source code for Pokemon Platinum, the Wii Startup Disc and a ton of previously un released Game Boy and Game Boy Color ROMS from the Nintendo Lot Check process.
The Platinum.7z archive contains the following contents:
Similar to the previous Gigaleak, this leak also contains content from the Nintendo Lot Check process, in this case it was Game Boy and Game Boy Color roms. Tons of these games had been previously unreleased, you can find more details in our post about the Nintendo Lot Check roms.
Nintendo Lot Check ROM Leak
For full information on the new GBC and DMG roms in the leak check out this post.
The Wii Startup Disc is a Wii disc containing a firmware upgrade, this was required on development kits and demo Kiosks, but was also originally intended to be required for the first retail units too. In fact a few retail units were sold that required the disc, a few had the disc included but many did not, making the console useless 1.
The Disc was only needed to run once, sort of like installing an Operating System but when its installed there was no going back, it was impossible to downgrade or re-install with the disc.
The archive contains the following files
A GCM file is a basically a Game Cube ISO Image, so a file with all the contents of a physical Game Cube/Wii disc. The main_cn41v2_2009-0508-1945.gcm file is the first revision of the Wii Startup Disc and can be loaded into Dolphin with a couple of byte changes.
Lost Media Wiki article on Wii Startup Disc
For more information about the leaked start up disc check out this article from the Lost Media Wiki
The Nintendo DS Boot ROM is flashed on every retail DS unit sold and it is the first piece of code to execute when you start up the console.
The source code for this is contained in the ntr-bootrom.7z archive in the form of a Subversion (SVN) repository.
In order to access the contents of the SVN repository you have to run the following command:
svn checkout "file:///Users/blah/Downloads/platinum/ntr_bootrom" ntr-bootrom-src
When you checkout the repository you will get the following files:
Note that Iris was the codename for the Nintendo Ds while in early development, it was later changed to Nitro 2.
As you can see above the DS had 3 different Boot ROMS:
This is because the DS has 2 CPUs, the ARM9 (main) and the ARM7 (sub) so needs boot ROMs for each, and of course for backwards compatibility there is also the GBA boot ROM.
Booting the Nintendo DS – a technical summary – CorgiDS
Were these headers available in the main developer SDK for the Nintendo DS?
Name | Description |
---|---|
Iris.h | Main interface, basically includes all the other Header files |
Iris2D.h | 2D drawing such as BG_SetAffine |
Iris2D_Arm.s | Arm assembly version of Iris2D.h |
Iris2D_Mw.s | Mw assembly assembly version of Iris2D.h |
IrisDefine.h | Preprocessor constants are defined here |
IrisDefineArm.s | Assembly constants defined here |
IrisGX.h | 3D functions such as GX_Viewport |
IrisGXB.h | Generate display list to buffer (mainly data TCM) |
IrisGXB_Primitive.h | Generate primitive drawing display lists |
IrisGXC.h | Generate IRIS compressed display list to buffer (data TCM) |
IrisGX_Primitive.h | IRIS Primitive Drawing Display List Generation |
IrisMTX.h | Matrix library |
IrisMacro.h | Preprocessor Macros |
IrisMacroArm.s | Assembly Macros |
IrisMacroMw.s | Assembly Macros (for MWASMARM) |
IrisMemoryMap.h | Contains constants for all the memory locations |
IrisMemoryMapArm.s | Assembly version of IrisMemoryMap.h |
IrisOS.h | Operating System functions such as OS_EnableITCM |
IrisOS_Arm.s | Arm assembly version of IrisOS.h |
IrisOS_Mw.s | Mw assembly version of IrisOS.h |
IrisQUAT.h | Quaternion library |
IrisSinTable.h | Pre-generated Sine table for optimization |
IrisSystemCall.h | System calls such as SVC_CpuClear |
IrisSystemCallArm.s | Arm assembly version of IrisSystemCall.h |
IrisSystemCallDefine.h | Just defines both SWI_NO_WAIT_INTR and SWI_NO_WAIT_VBLANK_INTR |
IrisSystemCallDefineArm.s | In addition to the header above it also defines SWI_NO_CPU_SET and SWI_NO_CPU_SET_FAST |
IrisSystemCallMw.s | Mw version of IrisSystemCallArm.s |
IrisTarget.h | Defines what target the bios is for such as Breadboard, TS orTEG |
IrisTargetArm.s | Same as IrisTarget.h but for assembly |
IrisTypes.h | Standard type declaration such as unsigned char |
IrisUTL.h | Utility functions such as UTL_CpuClear16 |
IrisUTL_Arm.s | Arm assembly version of IrisUTL.h |
IrisUTL_Mw.s | Mw assembly version of IrisUTL.h |
IrisVEC.h | Vector Library for Dot Product, Cross Product etc |
Unfortunately there is no make file so it is unclear how to build it back into the original ROM. However there is an MCP file which can be opened in CodeWarrior and should be able to compile.
Name | Description |
---|---|
Cp15InitArm.s | Startup routine in assembly |
IRISモニタ履歴.txt | |
IrisMon.c | Contains the main function IrisMonMain |
IrisMon.h | Main header file that includes all other header files |
IrisMon.mcp | CodeWarrior project file |
IrisMon.ses | CodeWarrior configuration session |
IrisMonCard.c | |
IrisMonDefine.h | |
IrisMonDefineArm.s | |
IrisMonMacro.h | |
IrisMonMemoryMap.h | |
IrisMonMempryMapArm.s | |
IrisMonSub.c | |
IrisMonSub.h | |
IrisMonTarget.h | |
IrisMonTargetArm.s | |
IrisTegOnlySub.c | |
NitroAgbMonTS1_040304.bin | Compiled GBA Boot ROM |
NitroMainpMonTS1_040304.bin | Compiled Main DS Boot ROM |
crt0Arm.s | |
crt0subArmCommon.s |
Were these headers available in the main developer SDK for the Nintendo DS?
Name | Description |
---|---|
IrisSubp.h | |
IrisSubpDefine.h | |
IrisSubpDefineArm.s | |
IrisSubpMacro.h | |
IrisSubpMacroArm.s | |
IrisSubpMacroMw.s | |
IrisSubpMemoryMap.h | |
IrisSubpMemoryMapArm.s | |
IrisSubpOS.h | |
IrisSubpOS_Arm.s | |
IrisSubpOS_Mw.s | |
IrisSubpSystemCall.h | |
IrisSubpSystemCallArm.s | |
IrisSubpSystemCallDefine.h | |
IrisSubpSystemCallDefineArm.s | |
IrisSubpSystemCallMw.s | |
IrisSubpTarget.h | |
IrisSubpTargetArm.s | |
IrisSubpTypes.h | |
IrisSubpUTL.h | |
IrisSubpUTL_Arm.s | |
IrisSubpUTL_Mw.s |
Unfortunately there is no make file so it is unclear how to build it back into the original ROM.
Name | Description |
---|---|
Blowfish.c | |
Blowfish.h | |
BlowfishInitTable.s | |
BlowfishTestTable.s | |
IRIS-SUBPモニタ履歴.txt | |
IrisMonSharedArea.h | |
IrisSubpMon.c | |
IrisSubpMon.h | |
IrisSubpMon.mcp | |
IrisSubpMon.ses | |
IrisSubpMonCard.c | |
IrisSubpMonDefine.h | |
IrisSubpMonDefineArm.s | |
IrisSubpMonMacro.h | |
IrisSubpMonMemeoryMap.h | |
IrisSubpMonMemoryMapArm.s | |
IrisSubpMonRtc.c | |
IrisSubpMonSpi.c | |
IrisSubpMonSub.c | |
IrisSubpMonSub.h | |
IrisSubpMonTarget.h | |
IrisSubpMonTargetArm.s | |
NintendoLogoData.s | |
SndDataArm.s | |
crt0Arm.s | |
crt0subArmCommon.s | |
crt0subExceptions.s | |
snd_ptable.bin | |
snd_sinetable.bin | |
snd_vtable.bin |
During development the Nintendo Dsi had the code name Twilight hence the name of the archive containing this content is twl.7z.
When the archive is extracted it contains the following folders, which are all SVN repositories:
Each of the folders in this archive is a separate Subversion repository and each one will need to be checked out with a command like so:
svn checkout "file:///Users/blah/Downloads/platinum/ntr_bootrom" ntr-bootrom-src
The source code to the MCU (Auxiliary Microcontroller) firmware which was responsible for controlling the hardware LED such as camera, power and wifi along with volume and reset buttons.
The contents of the repository are listed in the table below:
Name | Description |
---|---|
ADC.c | |
ADC.h | |
DCP.c | |
DCP.h | |
EEPe.c | |
EEPe.h | |
I2C.c | |
I2C.h | |
I2C_selfprog.c | |
I2C_selfprog.h | |
Int.h | |
LEDs.c | |
LEDs.h | |
PMIC_TWL2.c | |
PMIC_TWL2.h | |
Port.c | |
Port.h | |
SW_I2C.c | |
SW_I2C.h | |
System.c | |
System.h | |
System_user.c | |
TWL_MCU_33-MP_95811supp.hex | |
Timer.c | |
Timer.h | |
Timer_user.c | |
WDT.c | |
WDT.h | |
callback_funcs.c | |
callback_funcs.h | |
config.h | |
demo.c | |
demo.h | |
flash.c | |
flash.h | |
incs.h | |
jhl_defs.h | |
lk.dr | |
macrodriver.h | |
main.c | |
option.asm | |
option.inc | |
twl2mcu2.h | |
user_define.h | |
vreg.c | |
vreg.h |
This looks like the main Nintendo DS SDK updated for DSi, however it is unclear why it has the word “wrap” in the title. Also it is quite different from the previously leaked version 5.5 of the TWL SDK and is missing tons of content.
When the SVN repository has been checkout out it has the following contents:
The project builds the DS SDK version 4.0 as described in the readme file.
The tools folder contains the following items:
The build folder contains the main source code, which is rather odd as the name would suggest that it would be the built artefacts and not the main source code.
Has similarities to the previously released SDK version 5.5 but is also missing quite a few files and has a number of new files. Still need to figure out what this is.
This repository contains internal tools used in Nintendo RED (Research & Engineering Department).
When you check out the SVN repository you get the following folders:
Contains the source code for the following tools:
Unsure why this folder is called sctools but this is what it contains:
This is a tool that can be run either through the terminal console or via GUI. To run via the console you can do the following:
FingerprintTWL.exe input_rom output_rom fingerprint [options]
It supports both ROM formats (SRL and TAD) and modifies the fingerprint of the input rom and saves it as the output rom. So this is basically a tool to update the checksum of the ROM.
The Master Editor is a tool for Windows PCs to
The tools folder simply contains a bin folder that contains:
Not sure what this is, but guessing it is the Initial Program Loader/Operating System for DSi, but this is unconfirmed.
When the repository has been checked out it contains the following files and folders:
This folder contains the source code for a bunch of tools and different firmware:
This archive contains the full source code for the Nintendo DS game called Pokemon Platinum.
CPUJ is the Product ID for the Japanese Pokemon Platinum (CPUE is the North American product ID). The two zeros at the end of the filename are also part of the internal ID and just represent the revision number. So this is the source code for the first released version of Platinum.
When the archive is extracted it contains the following three top level folders:
The lib folder contains the following items:
This folder contains all the different librarys that are used to make the pokemon platinum source code, including the full SDK and CodeWarrior IDE.
The zip files are:
Note that almost all of these have been extracted in the /lib folder so you don’t need to extract them manually. The only exception is the PPWLobby which you will need to extract if you are interested in it.
There are two archives that contain source code patches for the Pokemon Platinum source code, they are:
The two patch archives are identical apart from one file called platinum.rsf which is only available in the _nobanner version.
An RSF file is a Nitro ROM SPEC FILE used for building the DS ROM file.
When the archive is extracted it is found to contain the following archives inside it:
The DSiWareROM.rar archive contains a ton of DSiWare ROMS in TAD format. The repository is split into folders based on the date, presumably from when Nintendo sent the data to iQue.
We have a separate post on the DSiWareROM.rar archive contents with the intention to do a deep dive into the various debug versions included in the archive.
Nintendo DsiWare Leak
For more information on the files inside the DsiWare archive check out this post.
The archive contains the Chinese versions of some DSi titles by iQue, when extracted this archive has the following folders:
This folder contains all the iQue Chinese ports of the Game & Watch DsiWare titles, it includes the following tad files:
This folder contains the raw ROMS (srl files) for the Chinese version of Dr Mario:
Not sure what the difference between the two ROM files is.
This folder contains the WarioWare: Snapped Chinese localisation.
This folder contains two different games, one is Pyoro (Bird and Beans) and the other is Paper Airplane Chase, both versions are Chinese for the iQue DSi.
The files in this folder are:
When the RAR file is extracted the contents are:
The DPDeliver application for Windows is a tool to create a Pokemon Distribution event ROM, it is completely in Japanese.
DPDeliver.exe, a program that is NOT rendering correctly for me in American Locale, but, this can generate a distro ROM for Gen 4 Pokemon game events I think. pic.twitter.com/CJboJPhIjX
— Kaitlyn Molinas (@orcastraw) September 12, 2020
The .NLF file is interesting as it is a NitroROM List File as it seems to list the contents of the DS SRL file, it lists the contents of the DS ROM as follows:
This archive is a backup of an iQue developer or testers SD card. it contains different builds of multiple DSiWare applications such as SystemUpdater.
The Contents are:
It also contains the following builds of the SystemUpdater:
This is a tool for debugging the DSiStore only to be used on development hardware. It is a standard TAD ROM file that can be installed on development DSi hardware.
It adds an item to the DSi menu called “EC file utility” which simply had a few options to delete files such as “ec.cfg” from the DsiShop.
This folder contains the Windows Installer for the software that connects to the PARTNER-CTR-CAPTURE development hardware. This is a way for developers to take screenshots and short videos from the Nintendo 3DS.
The from_nintendo.rar archive contains what looks like an email attachment dump of all the files that Nintendo sent to iQue(?). They are all split by folders depending on what date they were sent from Nintendo and overall it is quite a random bunch of files.
The date folders contained in the archive are:
The ManualTools application for Windows PCs is actually sent to iQue twice, on the 3rd of July and then again on the 24th of August.
The tools are to update the digital manuals that come with DSi titles and can be viewed on the Nintendo DSi.
There is a viewer which is an application for the DSi that can be used to preview manual files on the console itself.
The following files and folders can be extracted from the TWL-ManualTools archive:
Inside the manual tools there is also source code for the M2D library that is used to show the electronic manuals on the Nintendo DS.
This is also called libntmvm2d elsewhere in the files, lib is a standard prefix for precompiled libraries, guessing the nt stands for Nitro (DS codename).
The Manual Editor is a Windows application for editing the digital manuals present in Nintendo DS games.
Pages are saved with the extension .ntpg, presumably standing for NITRO Page.