With Linux 5.12 Set To Boot On The Nintendo 64, The N64 Controller Driver Is Now Queued
A few days ago we wrote about Linux 5.12 to see support for the Nintendo 64 more than two decades after that MIPS-based video game console first shipped. While the practicality of Linux on the Nintendo 64 is particularly limited given only 4~8MB of RAM and the MIPS64 NEC VR4300 clocked under 100MHz, it's going upstream and now the N64 controller driver is also queued for this next kernel cycle.
The code talked about a few days ago was getting Linux to boot on the Nintendo 64. With those 200+ lines of code in the MIPS architecture space is enough to get Linux booting on the Nintendo 64 when using a Flashcart device to be able to load the arbitrary code onto the game console.
While this is already of limited interest and capability given the hardware specs, it's not of much use without controller support... So now the Nintendo 64 controller driver is queued by the Linux input subsystem's "next" branch ahead of Linux 5.12.
The Nintendo 64 controller driver was written by open-source developer Lauri Kasanen who wrote the MIPS code as well and has been spearheading this modern N64 Linux port that he announced back on Christmas.
This additional 353 lines of code in the new driver is able to get the four built-in controller ports and N64 controllers working with the analog stick, D-Pad, and various buttons. The "JOYSTICK_N64" kernel driver must be compiled built into the kernel and not as a standalone kernel module since even if expanding the Nintendo 64 to 8MB of RAM, it's still not enough space to handle the loading of kernel modules. This driver is also just about the Nintendo 64 controllers on the device itself and not the later N64 controllers designed for PC use with USB adapters, etc.
We'll see if anything interesting comes from mainlining Nintendo 64 support in the Linux kernel or if it will ultimately be dropped a few years down the road as another obsolete platform.