N64, Gamecube and Wii source code leak
The past week has been a bit of a doozy for Nintendo. The several decades-old projects have had their source code leak to the public bit by bit on 4chan over the past few months. The latest installment includes
Where did the leak come from?
Though the source of the leak has not yet been confirmed, it is speculated that Zammis Clark, former security researcher at Malwarebytes might be responsible. Back in 2017 he uploaded a web shell that allowed hackers to access Microsoft’s servers freely.
Later on in March 2018 he accessed Nintendo’s highly confidential game development servers where Nintendo’s staff stored files during the development process. These servers were run by BroadOn, what looks like a now-defunct communications company.
There have been a few leaks from Nintendo’s servers in the past, the most recent ones involving Pokémon Gen1 unused Pokémon sprites, trainer sprites and music. Some of these even show that Magby was planned even in Gen 1.
What’s in the source code leak?
This update is just a few GB in size, and seem to be just a small part of the full 2018 leak. Most of it refers to source code relating to the Wii, but some of it involves the Gamecube and Nintendo 64. Since the date of the leaked content is from a company that operated from 2002-2008, we can assume that the N64 hardware resources were for the iQue Player.
The biggest and craziest thing in this leak is the datasheets, block diagram and Verilog files for every component. Verilog is a hardware description language; is used to describe circuits via code, so with this we can learn how every single piece of the Wii was made.
Atheerios, Resetera
Here is how the file types in the leak are distributed:
- .sdf, .sdf_**** and .v files – These are filetypes used in Verilog, and contain the data about how the console’s architecture is built. Since these files are from 2002, it’s likely that they’re in Verilog 2001 format.
- .pdf – Portable Document Format. If you don’t know what this is, please direct yourself to your nearest grill.
- .c .a and .h – Files used in C Programming Language. Contain source code, libraries and headers respectively.
- .txt – Plaintext documents
- .z – UNIX compressed files
- .vpd – I’m not sure about this, but it might have to do with VoxPro audio recordings. Maybe they’re recordings of business calls that they made since the filesize is way too big to be practical in a video game, at least back then.
- .uu – Unix-to Unix encoded file. Used to transfer binary files as text where binary transfers are not allowed.
- .aiff – Audio files. These are fairly small, so they’re likely to be short sound effects.
- .doc – Microsoft Word documents from before 2007.
- .rgb – Image files
- . – No file extension. Mostly Linux files.
- .img – Disk image file, like a floppy disk or CD backup.
- .tgz – short for .tar.gz, it’s a compressed data file. It could contain anything.
- .verbose – detailed output of a program, usually used for debugging.
- .archive – not sure exactly, but it’s probably another disk image or compressed file type.
- .vsyn – Not sure. Maybe has to do with vertical sync.
- .s – Assembly code
Everything else is pretty small and inconsequential, but there might still be something interesting in there. It is a few GB of decades-old data, so it’s mostly text files which are much more data-dense than the video or audio that we use today.
Some of the people reading though it have noted that there are circuit board diagrams, plus hardware demos for the Nintendo 64. The demos have been around for a very long time since they were included in the N64 SDK. I even commented on some of them like nu0.
One of the things that did come out that I haven’t seen before is this demo called Mirror House Cornflake. It’s a short game where you guide a character through a labyrinth-shaped cornfield. Might be worth doing proper post on it if I can get my hands on it.
Implications of the leak
Nintendo is working overtime trying to get the leaked data off the internet. It makes sense, this isn’t like game ROMs where they’re distributing publicly available (yet copyrighted) or like the Dev Kit which is something which they made available to developers. This is highly confidential information which in the right (or wrong) hands could allow someone to design and manufacture a perfect clone of the Nintendo 64, Gamecube or Wii.
From a homebrew development point of view, I’m sure that there’s some interesting new stuff that can come from this source code leak. Like with Mirror House Cornflake, there might be a few unseen demos and source code that can be used for Homebrew development projects, or some of those PDFs or Docs might have some tutorials on how to develop better, who knows.
As with everything, with great power comes great responsibility.