Android NDK GCC 4.6 (Update) + Bug Fix

Now that GCC 4.6 has been made the default toolchain in the Android NDK there is no need to follow any special steps. Check out Android NDKr8b.

It has a known bug already.  The STANDALONE toolchain that some use build from the NDK incorrectly sets up the paths for C++ headers.  The fix is seen here on the bug report (https://android-review.googlesource.com/#/c/39878/).

In short:


mv $NDK_TOOLCHAIN/arm-linux-androideabi/include/c++/4.6 $NDK_TOOLCHAIN/arm-linux-androideabi/include/c++/4.6.x-google

Enjoy the extra C++11 features such as lambda and constexpr.

Android SurfNet Workshop

Over the past year I was on the intern team for a Canadian research network called SurfNet.  SurfNet primarily concerns itself with interactive surfaces and things you can touch like a touch table or SMART boards.  The intern team gets projects submitted to them by professors that are part of the research network.  It was fun to work on the intern team but unfortunately it was not a lot of team work.  The majority of the projects came from my local university and I worked alone.  Even after finishing with them September 1, 2011 they are still keeping me on the payroll to work unofficially for them.  They wish to put the entire team on a project I have been working on over the past few months.

Every year they hold a conference and gather all the people involved in SurfNet.  This year it was held in Calgary, Alberta at the University of Calgary.  Excellent establishment, great people and an all around fun time.  This year they offered students to submit ideas for workshops.  I decided to submit a workshop on Android development.  Albeit not to related to SurfNet it is still an interactive surface and almost everyone is beginning to pick up on Android as the best way to developer quick research projects targeting mobile devices.  So I gave a 1.5hr talk on Android and it generated some pretty good interest. Here are the slides purely for interests sake.

Presentation Download

Halsafar

GambatteDroid

With the blessing of the author of libgambatte I am able to publically announce GambatteDroid.  Gambatte is a cycle accurate open source Gameboy and Gameboy Color emulation library.  As a developer I must say that libgambatte is very well written.  Kudo’s to all the authors involved in the project (Project Home)  As a Gameboy fan nothing is more nostalgic than playing it on a mobile device.  Go ahead and visit the forums if you have any comments to make.  Please rate or comment on the market page!

Video (Link):

Market:

https://market.android.com/details?id=ca.halsafar.gambattedroid

GambatteQRCode

NESDroid – Real Time Rewind

To continue the last post about GENPlusDroid real time rewind.  NESDroid rewind uses the exact same method. Required only some small changes to the emulation core, nothing major just how it loads/saves its state. The FCEU state saves are around 75Kb per frame. We are using a 20MB heap for the NES version which only provides 15-20s of rewind as you see in the final segment of the video.

Certainly more fun to real time rewind NES that Genesis in my honest opinion.

Download:

QR Code:

GENPlusDroid – Real Time Rewind

Not to long ago I adopted a method created by Maister into the genplus emulator that allows for real time rewinding (think Prince of Persia or Braid).  The method is somewhat like video compression P-Frames where you store the diff of the last frame.  Emulators like FCEU use state saving to disk to pull this off which is very expensive.  The individual state frames are often large ranging anywhere from 75Kb to 300Kb.   This method of storing the diffs in memory allows us to provide almost 30 seconds of rewind (varies depending on the game).  You can do the math to get a rough estimate how much space 30 seconds at 60fps worth of frames would take in its raw form.  The only real performance hit is the serialization and unserialization of the state itself, this proves fairly negligible.  This is really just a for fun feature it is however neat none the less.

See a video here:

This also marks the release of GENPlusDroid (for free). If you have any problems please visit the forums. Download from the market, leave a comment.
https://market.android.com/details?id=ca.halsafar.genesisdroid

Scan the QR Code for quick access:

Halsafar