Skip to content
Archive of entries posted on December 2008

Compiling assembly sources in S60 project

Compiling assembly sources with different build options is not easy with Symbian OS MMP-files. You can add assembly files as normal sources, but then they will be compiled with same rules as all other files in the project, which can cause problems. My solution was to make a separate build for assembly sources.

I’m building the assembly sources from command line. You can use the GCCE’s assembler arm-none-symbianelf-as.exe directly. Building asm_func.s source for an example:

arm-none-symbianelf-as.exe asm_func.s -marmv4t -mthumb-interwork -o asm_func.o

Now we have an object file asm_func.o. Copy the object file to \epoc32\release\armv5\urel. Now the object file can be added to the project as a static library. Just put the following line into your mmp-file:


Adding object files as a static library seems like a strange idea at start, but it actually makes sense. After all a static library is just a collection of object files, so why not use a single object file.

AntSnes alpha version ready

My Snes9x port to S60 is somewhat working and the alpha-version is ready for download. I have been testing AntSnes with N95 and N96, but I assume that it will run on other 3.1 and 3.2 S60 phones as well. Please send a comment if you are using it with some other phone. Please also keep in mind that this is the first alpha version, and I haven’t tested it much, so any problem reports are welcome to the comments.

With N95 the frame rate is decent, but you must install the Magic keys, to get the multimedia keys working. Unfortunately you must hack your phone for magic keys installation. There is nothing I can do about it. Use the Magic keys to map keys 1-4 to play, stop, forward and backward buttons. Start/select are mapped to volume up/down keys on the side.

The N96 multimedia keys can be used directly, so there is no need for magic keys. Unfortunately the N96 is much slower than N95. The n96 has only ARM9 processor running 260 MHz and no OpenGL ES hardware acceleration, and N95 has ARM11 running 330 with OpenGL ES hardware acceleration. Therefore I made two different packages, one for directscreenacces and one for opengles (I will combine these in the future, when I have a settings dialog). The AntSnes_dsa_alpha is faster for N96, but the there is no interpolation, so the size of a frame is 256×224(NTCS) or 256×248(PAL). The AntSnes_gles_alpha can be used with N95. I haven’t run benchmarks which are faster in N95 the gles, or dsa package. They both should work though.

Continue reading ‘AntSnes alpha version ready’ »

Christmas present for Nokia 3rd party developers: Carbide 2.0 and Maemo 5.0

Nokia just released Carbide 2.0. And the big news is that it’s free, even the OEM edition, which was about $1200 in the past. I know that 3rd party developers don’t require the OEM edition features, but it’s still nice to receive that for free. I was able to start my own snes9x port, because I got the carbide 2.0 beta program and therefore I was able to do on device debugging and profiling (PRO edition features) for free. It seems that I will be able to continue my development for free in the future.

I have been slaking from my porting work for couple of months now. I have been busy ;-) But I still intend to continue this port. Maybe I will just make some alpha release even without sound (if I get the emulator running at decent speed).

Nokia also released Maemo 5.0 pre-aplpha SDK. The new release seems quite nice. It already contains X11-opengl support. Currently I have some experience with Snes9x, Maemo and Opengl ES, so maybe I will make a snes9x port to Maemo too.

Nokia also released Maemo 5.0 pre-aplpha SDK. The new release seems quite nice. It already contains X11-opengl support. Currently I have some experience with Snes9x, Maemo and Opengl ES, so maybe I will make a snes9x port to Maemo too.

Starting Maemo and QT4 development

I have been working with Maemo platform for couple of weeks, and I wanted to share few tips for starting the development. It’s not as easy to start with as S60 ;-) But it’s an open platform and you can find a lot of source( and binary) for it, so developing you own applications are quite fast. Really fast with QT actually :) Actually I wanted to learn QT and try running apps developed with qt in ARM, since it’s coming to S60 too. The S60 QT will be QT embedded, so it will have a bit more features, than the regular QT, which is currently ported to Maemo. Currently there is already QT preview available for S60

The SDK installation:

For windows environment one must first install a virtual machine to run Linux in. I tested both VmWare and VirtualBox. The VmWare is a lot easier to install, if you have a premade image. However the VirtualBox can take snapshots from file system, which can be used for recovering the fully installed development environment, if you will broke it by accident.

Continue reading ‘Starting Maemo and QT4 development’ »