Nintendo 64 Java Adds 32 Million More Devices to the Java Ecosystem
Both released in 1996, they finally come together in 2023.
In 1996 the computing technology world saw two iconic introductions: Java and the Nintendo 64. Despite entering the world around the same time, it took 27 years before they worked together. Finally, after two years of hacking away at code, software developer Michael Kohn has released Nintendo 64 Java.
"Unfortunately, the simplicity of the hardware made the implementation a more complicated job. Actually, I should rephrase that a bit, it was painful."
Kohn based the Nintendo 64 Java on a tool he developed called Java Grinder. This (software) tool allows Java to run natively on various hardware, such as microcontrollers, video game machines, and computers. It even works with 8-bit platforms! Instead of being a java virtual machine (JVM), this tool translates byte-code into the target's native assembly code. Kohn calls it an "ahead of time" compiler, a play on Java's "Just In Time (JIT) compiler.
In its console generation, the Nintendo 64 had the highest performance computing power. Its CPU was a 64-bit MIPS-core R3000i running at 93.75 MHz. However, it had a 32-bit bus. (So, Atari fans would argue: "DO THE MATH!") A GPU called the "Reality Coprocessor" contained a signal and display processor core. These handled audio and graphics. Both processors shared four megabytes of Rambus DRAM.
In the generation following the N64, Sony also based its Playstation 2's CPU on MIPS. Previously, Kohn developed Playstation 2 Java, so he had a good starting point for N64 Java. However, he notes that working with the N64 was less fun. Despite the two platforms sharing a similar CPU architecture, the rest of their hardware is different.
Nintendo 64 Java runs Java code examples that contain graphics and music. The following video shows these demos running on a genuine Nintendo 64.
While there is a seemingly short list of examples and a short video, the overall effort represents at least two years of development effort. This time is in addition to previously working on the Playstation 2 Java project!
For more information, check out Kohn's Nintendo 64 Java write-up. There are details on the implementation, an explanation of the capabilities, and links to his other work. In addition, this GitHub repo has the Nintendo 64 demo.