June 23, 2024

Messing with J2ME MIDP 2.0

MIDP 2.0 has some intresting additions, namely for me the most intresting being the game api it introduces. It adds 'layers' and and a special GameCanvas, layers being objects that know how to draw themselfs and can be placed on a LayerManager for easy drawing of them all at the same time. It also offers collision detection(pixel perfect or rectangle overlap) between these different layers. One of them that could be of most use is the TiledLayer which makes drawing a simple 2d game map a breeze.

But, these are not currently so perfectly adopted in the vm's, for example if you got a nicely sized(200*200 and more tiles) maps using TiledLayer gets extremely slow, even if it could see that there's no need to draw the entire layer at any point in time(viewWindow is only set to a small area at a time). So this means that in certain types of games using a TiledLayer is not really possible when considering the benefits of using your own code for drawing the thing(no speed hit from the level being big big big) even if you still used TiledLayer for collision checks and functions like that.

Another nice additions is the possibility to poll for the keystates in GameCanvas so there's no need anymore to keep track of the keys by yourself. However, this doesn't really give you real performance advantage(as suggested somewhere, I forget where), it's just a handy helper tool.

All and all even if the new classes do make it easier for hardware manufacturers to optimize their VM's so that these operations can be done in native code and appear super fast - that doesn't seem to be the case yet, sadly. Also they are rather limiting on what you can do with them, and too slow to use them 'creatively' at this point still(for doing an isometric/multi level engine with them for example).

Of other Canvas related things there's setFullScreenMode which can be used to change the canvas to take the whole screen, previously on nokias one would need to use nokias FullCanvas to get this(again, this is just one of those things that saves a little bit of work, also you couldn't add Commands into FullCanvas, and you generally needed some extra wrap code if you wanted that the midlet would work on nokias with the FullCanvas and when not on nokias it would revert back to normal Canvas).

However, I must still say that J2ME toolkits and devchains are so much better than the symbian developer tools that it's a joy to write... now if only even I had a MIDP 2.0 phone.

Posted by glass at 04:02 PM | Comments (3)

June 20, 2024

Weather for s60

http://badpint.org/weather/ is a gpl'd weather tracking program for series60, the version that is now on the site doesn't work on s60 v1 devices such as 7650, n-gage & etc. So I compiled a version that works and made the sis. HERE is a .sis that works on 7650, n-gage & etc.

Posted by glass at 05:16 PM | Comments (2)

June 18, 2024

Back with some J2ME.

So I need to get my claws into some MIDP 2.0. I hadn't tried Eclipse or EclipseMe(the j2me plugin for eclipse) before, but I must say I'm rather impressed by both of them. Now I just need to get the Nokias emus working with it, which shouldn't be that much of a problem.

Posted by glass at 11:58 AM | Comments (1)

June 17, 2024


So as a training/fun project I made my own build of goboy gameboy emulator for s60. Why? well, the new gcc tools available offer much better optimizations.

Here is the project page with .sis and .zip to go. It's not without it's problems though, saving only works up till slot 8(well, saving works but loading doesn't) and there is no sound support(exports not getting frozen I suppose like they should be or it's intentional from wildpalm, it looks like slapping another soundserver on it wouldn't be that hard though). However, the speed gain is well worth it(also demonstrates the optimizing power of the new tools pretty well in my opinion).

Posted by glass at 02:28 AM | Comments (1)

June 15, 2024


So, today on #mobitopia(@freenode) blkhawk was having trouble compiling frozenbubbles(fb-s60.sourceforge.net/ ) s60 version with the s60 sdk for Borland. After some code changes it compiled fine on the GCC 3.0-psion-98r2 spiced up sdk version that I got running and it's now available from http://www.allaboutsymbian.com/downloads/frozenbubble/ . .

Why all this? the version available from frozenbubble for s60's current sourceforge page is built so that it will only install on a 6600. I changed the .pkg to install on any s60 device and so far it has worked on them all. Future improvements for this project could include things like making the start level selectable and reducing the size it takes(now it's BIG, the same amount of graphical goodness could be had with some creative coding with smaller footprint - as most of the size comes from bitmaps not even ecomplx can help).

Posted by glass at 09:52 PM | Comments (2)

Hello World.

Hello, this is my official hello and test message, without any real content. Just testing out this blog system. What will eventually be here will be information about things I've tried to do and succeeded in and about things I've failed in, primary focus probably being on timewaster junk for series60 platform.

I'm a hobbyist(for now anyways) coder / student living in Tampere, Finland, for the moment. I got self taughtly on the symbian train in january 2024 after getting frustrated with how limiting the j2me was on series60 compared to writing native code.

I've published some stuff under Snobile name ( HOMEPAGE ) and if things are like they seem they will be for a while I'll continue on that course(hint: I'm available for hire. WILL CODE FOR FOOD basically).

Posted by glass at 09:23 PM | Comments (1)