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.
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.
As you may have noticed, I have released ReQognise 2.3 on App World for Playbook devices. The reason why this hasn’t appeared on other devices is, well, because other devices don’t need the update.
The update provides:
- Update to Qt 4.8.1
- Update to NDK 2.0
- Fixes ‘Browse’ button automatically re-opening when cancelling dialog
- Screen issues when opening from portrait mode
- Bug fixes with file opening.
- Dialog improvements (UI).
One of the side-effects of all these changes is that the application is much slower now! I was hesitant to provide this update for a while because of the slow down. I have identified the issue to be caused from the updated version of Qt. In particular, they have enabled too many samples, anti-aliasing or something similar upstream.
So, I aim to fix this speed issue in 2.4 which I will be submitting to App World today.
The next update will provide:
- Even newer version of Qt 4.8.1
- Faster rotation / running
- Improved image ordering. No longer pure random. Image rotation is decided PRIOR to running and cycles through a fixed order so that you never see the same image until you have cycled through all others first. This is especially significant in the new trial versions.
Again, the Symbian and Meego versions are unaffected by this. Weaker hardware they may have but this app runs very fast on them.
On a side note, I have released several free versions of ReQognise on Playbook (Animals, Flowers, Landscapes, ..). This will allow people to trial the game before purchase. Each game comes with 15 pre-set images. To choose your own images you would then upgrade to the full version.
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
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.
Dingleberry 3.0 has been released for Mac/Windows.
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.
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:
- Enter your phone number as per normal and wait for the four minute timer to expire.
- When the verification fails, it asks if you want to be called instead. Choose ‘Call Me’
- Now you will receive a phone call with a three digit number that you can enter in to Whatsapp.
- 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