Skip to content
Archive of entries posted on August 2009

gpSP4Symbian Teaser

I have been porting the gpPS to Symbian for a while now and it’s finally running! There is still a lot to do. For example UI, audio and some config stuff, but the actual core is now working. You can get a pretty good estimate about the speed from the video. It’s really not as fast as I hoped, but you should still be able to play some games with it. At least it should be better with newer phones and faster processors ;-)

PSX4All running on Symbian

I’m currently porting gpSP to the Symbian. Psx4all uses pretty much same SDL stuff and same ARM assembly emitter as gpSP. I just took my porting tricks from gpSP and compiled them with psx4all and here is the result. It’s really not fully optimized yet, but you’ll get the idea that it’s not going to run on N95 smoothly :) I still have some other tricks that would speed it up, but not enough.

It’s just a proof of concept that this emu could be ported to Symbian with moderate effort, but it’s going to require a lot faster CPU. I might take a second look of this after I’ll get the gpSP port finished.

See the performance by yourself.

Symbian patched Makekeys, now we can have self-signed certificates valid for 10 years

I don’t know how this got past me.  Luckily I found out that Symbian has patched the makekeys.exe. The new one allows you to create self-signed certificates which can be valid for 10 years. I know that there are a lot of people like me whe are still using the old S60 3.0 MR SDK for maximium compability, which gives you certificates valid for only one year. This reminders me that the AntSnes certificate will end up soon, so I should at least sign it with the newer certificate.

You should get the newer makekeys tool with new Symbian SDK’s. However, I didn’t get newer one with S60 3rd edition FP1 even when it should be using Symbian 9.2. So I guess that Nokia forgot to patch this tool into their SDK.

If you didn’t get the new makekeys.exe from you new SDK you can download it from Symbian website. Enjoy!

Using the new makekeys.exe:
makekeys -cert [-expdays |cert-expiry-in-days|][-password |password|] [-len [key-length|] -dname |distinguised-name-string| |priv
ate-key-file| |public-key-cert|

Continue reading ‘Symbian patched Makekeys, now we can have self-signed certificates valid for 10 years’ »

Generic Makefile Build Chain for Symbian OS With GCCE and MinGW

The build chain was originally made by Harry Li. I just continued the project and added support for static library linking, debugging etc.


  • The generic makefile  gives you a better control of the build. You can define your own rules for each file, if you like. Therefore it’s also easier to fight against the compiler/build chain bugs.
  • The C preprocessor can be used much better with makefile, than with abld build. You can not compile a project relying heavily on c preprocessor with abld build, so the makefile build makes the porting a lot easier.
  • It makes porting software from linux based systems easier. The GCCE is just a GCC, build for Symbian  so now you can use GCC (hopefully almost same version) and same the build rules for the project in Symbian also.
  • The generic makefile build is also faster than the abld build.


Here are the instructions to use this environment.

  1. install SVG2SVGConvertter. The installation file can be found under EPOCROOT\S60tools\svg2svgt\installer\
  2. The script should be executed from \gms directory. The script also expects to have \dist\gcce and \obj\gcce directories under the gms directory, so you should also make these folders.
  3. The OS_HRH part doesn’t seem to work in the I solved this my replacing the include statement in epoc32\gcce\gcce.h to
    #if defined(__PRODUCT_INCLUDE__)
     #include  //for MinGW
     //#include __PRODUCT_INCLUDE__ //quick hack

Continue reading ‘Generic Makefile Build Chain for Symbian OS With GCCE and MinGW’ »

Degugging gpSP

The porting process of gpSP has been going forward quite well until this came up. The code behavior in debug session seems to be very strange.

The following code should branch into the address located in register r0.  The address 0x9cc00080 is marked as code in Symbian OS, and IMB_Range() has been called in prior to execution.

bx r0  @r0 value is 0x9cc00080

However, when debugging it seems that the pc is going into address 0x9b14a4a8.

Here is some debug data from carbide:

  1. call stack
  2. registers during this time
  3. memory starting from 0x9cc00078. It seem to be mapped to code
  4. call stack after branch
  5. registers after branch

I really can’t tell why this is behaving in such odd way. Hopefully some ARM guru is reading this and knows the cause for this problem.

I’ll make a post, when i’ll get this one solved…

Continue reading ‘Degugging gpSP’ »