Munkiki's Castles (found Nokia 3410 mobile game; 2002)
Title screen of Munkiki's Castles.
Date found: 10 Jul '17 (Game) / 29 May '18 (M3D Class)
Found by: Qwerty36078 (Game) / recompileorg (M3D Class)
Munkiki's Castles is a mobile game released in 2002, exclusively for the Nokia 3410 via the Club Nokia service. It was one of the first ever mobile games to feature 3D graphics and also one of the first ever mobile games released for the Java ME platform, albeit only for the Nokia 3410. The game features a character named Munkiki wandering around the 3D landscape by pushing and destroying the blocks to try and collect items to finish the levels.
Technically, it was one of the first ever mobile games to feature 3D graphics, one year before OpenGL ES was standardized. Because of the limitations of the original Java ME (known as J2ME 1.0), Nick Reed and Nick Slaven developed a proprietary API for this game, exclusively for the Nokia 3410 mobile phone, which allows rudimentary 3D graphics rendered on a black and white cellphone display.
The Club Nokia service has been shut down and only a very few Nokia 3410 handsets do have this game installed. Two videos of this game, as well as screenshots for this game, has been surfaced since on the Internet.
On July 10, 2017 Lost Media Wiki user Qwerty36078 managed to get the .jar executable. Because the game is completely dependent on a specific set of Nokia 3410 firmware, it was previously thought that there was no way to run it in any form.
On May 29, 2018 an emulator called FreeJ2ME released an update featuring all the software required to emulate Munkiki's Castles."
Previous research on the game and specific firmware set is featured down in the next section.
Attempts to Run/Emulate
Previously, lots of research has been made on Munkiki's Castles and unfortunately, the vast majority of it is of no use; however, some of the research results are worth sharing.
There are many different emulators present for PC, but on every emulator, including KEmulator 1.00, MicroEmulator and even the native Nokia 3410 SDK fails to run this game. This is because the proprietary Nokia 3D handling class "com/nokia/mid/m3d/M3D" is missing in both the game and the emulator libraries. In fact, it was previously thought to be missing on the Internet completely. Due to the lack of information on this class, it can be speculated that the M3D class was only used in Munkiki's Castles.
Search Effort on the M3D Class
Before we go, it is important to differentiate between the terms used in this section.
- M3D(O) - A library called M3D [O here stands for old, M3D(O) itself is just a nickname] used in Nokia 3410. It contains a class of "com/nokia/mid/m3d/M3D"
- M3D(N) - A library also called M3D [N here stands for new, M3D(N) itself is just a nickname] used in the latter budget phones. Most likely a newer version of M3D(O) It does have many files; however, "com/nokia/mid/m3d/M3D" isn't present there
- M3G - A newer version of M3D(N) used in the late Nokia phones such as Nokia X3. Also known as JSR184. Again, "com/nokia/mid/m3d/M3D" isn't present there
Here are some bits and pieces that can help run the game.
- M3D was greatly described in this scholar article. It is unknown if the topic is related to M3D(N) or M3D(O).
- M3D(N) is described on this documentation page, and
- M3G is described on this documentation page.
- M3D(O) and M3D(N) is present in the latest builds of FreeJ2ME, and the M3G library can be downloaded here
Running on a Phone
Many Discord members of the Lost Media Wiki community believe the found .jar executable can be run on physical phones. Although many of the non-touchscreen devices do run Java games very well, this game is certainly problematic primarily because, again, it uses the proprietary 3D engine class developed by Nokia. on which there is practically no information. In other words, to run this game, the phone is required to contain the "com/nokia/mid/m3d/M3D" class, which appears to have been used only on Nokia 3410. And to make things worse, a brief analysis of the Nokia 3410 firmware files available on the Internet shows that not every firmware of Nokia 3410 references this class, thus running this game may fail on even the game-native Nokia device. And the best example for this would be the Nokia 3410 SDK that fails to run this game although it natively emulates the Nokia 3410 firmware.
- Qwerty36078's comment featuring the link to the game @ LMW Retrieved 20 Jue '17