Skip to content
Archive of entries posted on April 2010

gpsp running on Symbian

I have the gpsp port already running on my N97, and it looks really promising. Take a look at the video :)

The dynarec isn’t stable yet. I can run one track with mario kart, and then it freezes.  It’s same with all other games too. I hope to solve this freeze/crash issue soon, so I can make the release.

Memory Mapping solution for Dynamic Recompilation in Symbian OS

The gpsp was my first emulator port with dynamic recompilation. The problem in memory mapping and dynarec is  that local data in Symbian OS is too far away from the user area, where we the new memory chunk for the dynamic area was created. My first solution was the memory trampoline pattern.

However I got an optimal solution from Olli Hinkka. The solution is called dynamic text segment relocation routine. Basically the relocator is relocating the process into the user memory are in Symbian. With this approach no memory trampoline is required, since the static side is close enough to the dynamic side.

How to use it:

You’ll need Olli Hinkka’s relocator code. You can find it at least from gpsp github. relocutils.h relocator.cpp and relocator_glue.S

First you’ll have to relocate your process on the user area in the Symbian. The user local data area is between 0x04000000-0x38000000, see the Symbian OS memory map.I’m using 0x10000000 in this example.

#include "relocutils.h"

int main(int argc, char** argv)
// all code from the code section of this process is run in the specified address

// return to the original code section

Continue reading ‘Memory Mapping solution for Dynamic Recompilation in Symbian OS’ »

AntSnesQt 0.5 : first beta

The AntSnes Qt is ready for first testing round. The whole UI is now working on top of Qt, so I expect there to be some new bugs compared to the older AntSnes version. The good news is that this installation won’t overwrite the older AntSnes. I also heard the the D-pad doesn’t suck anymore, so you should be able to use this emu with touch only phones too.

I didn’t even try to get the Audio working, since the QAudio is not yet working in the Qt 4.6.2. I’ll continue with that after the QAudio is finalized by Nokia.

Know issues:

1. The audio is not yet implemented.
2. Save states are now found in different slots than in the previous AntSnes release.
3. The installation is now a bit more complicated, since the SWEvent capability is required.

Continue reading ‘AntSnesQt 0.5 : first beta’ »

Running the AntSnesQt

I have been working with the new Qt UI that I’m going to use with my all emus in the future. The AntSnes Qt is quite close to be ready for first beta release, and the gpsp emu is on pretty good shape too. Here’s a short video of the new AntSnesQt running on my N97.

You can read my AntSnes qt development posts at

Implementing AntSnes with Qt part 6: Final touch, using stylesheets

The Qt’s default style tries to look as much your original S60 theme as possible. The big problem is that each phone can have very different theme, and then your application might look really bad.

The good news is that you can write your own style, and use it in your own application.

Here’s a “before image” with my Symbian foundation default theme and AtnSnes:

AntSnes with Symbian default theme

AntSnes with default theme

The default theme has a lot of problems. For example the default blue color is used, when Qt doesn’t know what color to use.  The donw arrow is also way too big in the default Qt theme.

AntSnes with style sheet

The Style sheet makes a huge difference in here. Now I can add some nice application logo’s etc, and I know that the color fits the application style. For example using that black and green AntSnes text wouldn’t really work with my default theme ;-)

Continue reading ‘Implementing AntSnes with Qt part 6: Final touch, using stylesheets’ »