It has been a while since my last update so I am sharing with you some of my latest work.
In my spare time, I have been working on a PSP emulator (PPSSPP). I have ported it to Qt and made adaptations for Symbian, Blackberry and other platforms as well as working significantly on the core code.

Ridge Racer 2, running on a mobile phone

This has been quite an experience for me. In particular, I will share my story of porting PPSSPP to Symbian.

Despite Symbian devices having weak processors, I noticed that this would not affect PSP. Instead, the GPU is the most important hardware factor from my experience. The VideoCore GPUs are quite respectable on that front and so I had no doubt I could get many games running full speed on this hardware.

Knowing that Symbian would be able to handle this emulator and realising a certain lack in Symbian emulators, I started off on my adventure.

The first issue I had to contend with was that Symbian did not conform to POSIX or other standards that are generally taken for granted when porting code. There was a lot of work to do in actually getting it to compile in the first place. The most important step was getting the dynamic recompiler working by utilising Symbian’s RChunk allocator rather than ‘mmap’ which every other platform used.

After this, I set my sights to performance. Many games were only running at 5-10 FPS and the dynamic recompiler didn’t seem to help all that much. After working out a solution for Fast Memory, however, there was a significant boost to speed. Combined with advances in ARMv6-compatible instructions for the dynamic recompiler, many games were now hitting 10-20 FPS. This was not enough, however, and I later worked at implementing more of the recompiler for ARMv6 and accelerating ARMv6 memory loads by using a ‘Literal Pool’.

Fast forward to today and I am about to release v0.6.7 of PPSSPP for Symbian and Blackberry. A preview of the next version, based on the latest available code in the source repository. Now even the low-end Nokia N8 with its 680MHz ARMv6 processor can play some 3D games at full speed (40-60 FPS). While its bigger brother, the Nokia 808, with its 1300MHz ARMv6 processor is able to play many 3D PSP games at full speed. And I’m not done yet ;)

I will keep you guys updated with my progress on this blog. I may even post some videos of my Nokia N8′s aging 680MHz processor pushing out emulated 3D games that look better than anything available on Nokia Store.

Hello everyone,

Here is another fabulous Qt + QtQuick project, Dukto. It allows fast WiFi file transfer to any other device that is running Dukto. Playbook joins a growing list of platforms that support Dukto including Windows, Linux, Mac, Symbian and Meego.
While the portrait orientation and Metro styling may not suit the Playbook, it is consistent with its representation on other platforms. I hope you all enjoy it.

It has been submitted to App World and you’ll likely see it available soon.
For now, you can side-load it. Download

Hey guys,

I have a policy of providing source code for any project I make so others can learn or build from it. Wouldn’t the world be a better place if everyone did this?

So, here I provide the source code to a project I spent many months on, Dingleberry 3.3.3. It could be used to learn Qt/QtQuick or even for the basis of a BDM replacement application (it’s almost there!). Hopefully it serves to improve the tools available for those that are still rooted.

I hope it comes to some use. It has been compiled and tested on: Windows, Linux, Mac, Symbian, Meego.

Download Source


Dingleberry 3.0 has been released for Mac/Windows.

 

Download: http://www.dingleberry.it

Changelog: http://bnxtreme.com/drupal/content/dingleberry-release-notes

To all Playbook users, I am proud to release ‘DingleBerry’, a tool that allows you to gain root access to your Playbook.

Written in Qt, of course.

Download it here.

 

If you have any issues or  need support for this application, it is offered on #dingleberry.it on Freenode IRC.

Well, in record time — just two days from submission to approval and listing — ReQognise has appeared on App World. I believe this may be the first Qt app listed on Playbook (but can’t be sure). Was a very good experience submitting an app to RIM and I think I will submit a few more shortly.

Find Reqognise listed here: http://appworld.blackberry.com/webstore/content/63684 <

I also have some free opensource apps planned such as ‘BubbleKid’ by Marcelo. Missing some graphics at the moment but I’ll try to get it set up after the weekend.

No news on the Harmattan/N9 release yet.

Well today was a progressive one.

There were some bugs in the N9 version that required UI changes. I have moved the tiles off the edge so it doesn’t interfere with swiping. While I am able to prevent swiping, I felt it was better to keep the N9′s natural gestures. As on other platforms, there is still an exit button in the top corner should you prefer it.

Another glitch in the N9 version was with the vibrate function. Apparently this does not work with QtQuick yet, so it will have to wait.

After my bug fixing spree, I submitted the latest version to the Nokia Store for Harmattan and to the App World for BBX (Playbook).

I hope you enjoy the game.

As always, if you have an issue on your platform, feel free to comment on here or email me to quickly resolve the issue. I check these every day and have plenty of free time to fix what ails you.

Update: Now the latest Whatsapp as of 5th Jan 2013 is provided.

While not entirely related to Qt, I am very excited at the amount of applications that are now possible on Playbook thanks to the new Android Player. Many games are working perfectly. Most importantly, Skype and Whatsapp now run flawlessly.

Whatsapp Playbook

The versions I got working are: Skype Beta and Whatsapp 2.6.7814. I had troubles with newer Skype.

Update: A number of people have requested the installable .bar files, so I have provided them here.

Now, as the Playbook does not support 3G, there is some extra steps you need to do to prove your phone number:

  1. Enter your phone number as per normal and wait for the four minute timer to expire.
  2. When the verification fails, it asks if you want to be called instead. Choose ‘Call Me’
  3. Now you will receive a phone call with a three digit number that you can enter in to Whatsapp.
  4. Now you’re all activated with Whatsapp on your Playbook.

In other news, the native Cascades UI that will be released soon is based on Qt. It seems RIM has made Qt a focus for its porting efforts. You can find RIM’s Qt port at their new opensource repository: http://blackberry.github.com

I now have ReQognise working perfectly on Playbook (without having to modify its cross-platform Qt code!).

In fact, I now have all my applications working on Playbook thanks to the successful port of Qt to the Playbook platform (thanks octorian).

Reqognise (Playbook/Qt)

ReQognise for Playbook Beta available here (no longer representative of the game).

Known bug: Holding down touch to pick up objects doesn’t work, just swipe it across quickly.

 

Sky is the limit for the Playbook. If you have any favourite opensource Qt applications you want me to port to the platform, just leave a comment here.

ReQognise (and my other apps) will appear on Playbook’s AppWorld when the NDK (and Qt) becomes official.

Well, I attempted to compile Qt for Playbook today. I can now tell you that Qt without GUI works completely unmodified on Playbook. This makes a lot of sense since Qt works on QNX and there has been no changes made to anything except the UI in Playbook.

For anyone who is interested, here is my method:

1. Ensure that your ntoarmv7 binaries are in $PATH
2. Download, extract and cd to latest Qt 4.8 source code
3. Run this code:
MAKE=`which make` ./configure -force-pkg-config -arch armv7 
-little-endian -host-little-endian -no-gui -opensource 
-xplatform unsupported/qws/qnx-armv7-g++
make -k
make -k install

Then you will be provided with all the Qt shared libraries (minus QtGui), linkable in your projects.

There are a few people working on porting Playbook UI to Qt. So, never fear, all your Qt apps *will* be running on the Playbook in the near future.