freej2me
freej2me copied to clipboard
Munkiki's Castles and so-called M3D(O) related issues
For the context, read the related article on LMW
For a gameplay on Nokia 3410 (i.e. how exactly it is supposed to be) refer to this video and for the current emulation state refer to that video
First of, thanks for the working M3D(O) implementation to @recompileorg . It is really a breakthrough
The game runs mostly fine, however there are several (mostly minor) issues with how it runs. From what was noticed so far,
-
No sound (although probably unrelated to M3D(O) )
-
No back-light changes emulation (although not sure how to emulate)
-
No/improper background lattice emulation refer to a screenshot
-
Improper notes' (and probably not only them) alpha outline alpha handling. It is white but not transparent.
Other than that, it runs really well. Very grateful for all your hard work
Believe it or not, the last two issues are actually correct.
The 3410's display is just black and white. It doesn't do shades of gray. For grays, it dithers. That's why the background looks like a lattice -- it's just the dithering used to represent the light gray color on a display that doesn't do grays. The game itself passes 32bit RGBA colors to M3D(O). I'm a little surprised that the game is still gray scale and that the background and blocks aren't secretly in color.
That dithering also helps hide an interesting fact about textures.
Textures, like those used for notes and keys, are surprising. I had thought that there would be black, white, and transparent areas on their images. The monkey and stars, for example, are 1bbp images with a transparency mask. Notes and keys don't have the transparency mask, so we just get black and white.
An early release had the white portions of textures transparent. That turned out to be wrong. This image on LMW shows that the corners of notes (which you'd expect to be transparent) are actually not!
https://www.lostmediawiki.com/File:Munkiki_03.gif
I also have absolutely no idea how to simulate the backlight effects as there's no way of knowing what kind of display the game is expecting, short of adding more per-game config options. Even then, it would mean a lot of complicated changes to the graphics routines to simulate some of those odd displays. (This is also why you see solid colors and not dithering in Munkiki's Castles).
Sound in Munkiki's Castles isn't related to M3D(O). That's just me not getting around to implementing com.nokia.mid.sound.Sound (That's a great starter project for someone who wants to contribute code.)
Here's just a small list of additional issues not yet mentioned:
-
In the emulator, there are some invisible blocks in particular levels that are clearly visible when playing on a standard Nokia 3410. http://www.framecompare.com/image-compare/screenshotcomparison/KYWPNNNX
-
The options are apparently missing

-
Text in the instructions are cut off no matter what display size I set it to.

-
Pressing R (or #) should force the camera to shift to what Munkiki sees and allow the player to maneuver it in 1st person mode (as seen here https://youtu.be/SnxkqO3ZFww?t=269). When playing in the emulator, all it does is make Munkiki disappear.
Despite all these issues, I have to thank you for engineering the M3D class, so we can all play this game!!
Sound in Munkiki's Castles isn't related to M3D(O). That's just me not getting around to implementing com.nokia.mid.sound.Sound (That's a great starter project for someone who wants to contribute code.)
No worries. Actually , there is the Nokia 3410 SDK available online. Be aware, as other links online do contain viruses.
This SDK includes pure Nokia classes, including com.nokia.mid.sound.Sound (but not M3D(O) ). This class is perfectly de-compilable by JD Project.
I tried to go the easy way, i.e. de-compile class, copy-paste the code to the emulator class, refactor it slightly, however I did not find the freej2me-end method for producing sounds. Am I missing out on something?
Either way, it's certainly not urgent and playing without sound is still enjoyable. Again, thanks for all your hard work
@TAbdiukov
Copying and pasting code from a decompiled class is not something that this project can allow under any circumstances. It is theft. The very suggestion taints the entire project.
Regardless of the legal side, it's a lot of completely unnecessary work. com.nokia.mid.sound.* is already stubbed out, based on the information in the javadocs: http://www.j2megame.org/j2meapi/Nokia_UI_API_1_1/com/nokia/mid/sound/package-summary.html Javadocs are great. You get better and more accurate information from those than from decompiling a class.
For the actual sound part, you can use whatever J2SE provides for sound.
The latest update should fix most rendering issues caused by large polygons in some levels.
RnoLMW: The invisible blocks issue was fixed more than a year ago, I just failed to update this thread. The "look around" issue is fixed as of today:
LONELY-WOLF fixed the "look around" feature and solved the mystery of the how the one drawArrays call was expected to draw the water.