Lots of things, new iPad game

First of all, I'd like to thank all those who donated for the iPad fundraise! I already wrote directly to those who donated, but I want to publicly thank them, too.
Here's a couple of photos of the iPad showing a post on the BennuGD forums and Puzsion running in the iPad (it works great!):


It's a refurbished iPad 2 -they're a bit less expensive- with 16GiB storage space and it's pretty cool, so thanks!
In the days since I wrote the last post, a few things that might interest you happened:
  • After buying the iPad, I believe I found the cause of the graphic glitch that appeared in it and I believed I've fixed it: BennuGD automatically starts the graphic mode to a default one (320x240) and then when you do a set_mode() it tries to switch to the mode you specify.
    For some reason, this was failing in the iPad 2 but not in the rest of hardware from Apple nor in the Simulator.
    The workaround is that now BennuGD won't set the graphic mode until you do a set_mode. This also helps in Android.
  • 32bpp graphics mode is now working in iOS! iOS -like OSX- uses BGR color ordering, instead of RGB, like most other OSes do. I integrated DCelso's patches for the PSP and expanded them a bit where needed and now 32bpp seems to be working just fine.
    There's still some work to be done, yet, as now all the iOS games start in 32bpp, no matter what you set with set_mode(). It shouldn't be a problem in most cases, but you know, this project wants to always be as compatible with upstream BennuGD as possible.
  • I created and integrated mod_curl. It's just a wrapper around libcurl that allows you to work woith resources in the internet. This allows you to perform two very interesting tasks:
    • Download resources from the internet, thus allowing you to bypass the 20MiB AppStore limit.
    • Do some client-server communication like fetching highscore tables from your servers, checking for updates...
  • Integrated mod_fmodex, which is another wrapper around FMOD Ex. FMOD Ex is one of the most powerful sound engines available and it's used in many AAA games. Right now it provides sound playback with variable frequency plus spectrum analysis (think Singstar) for both microphones and playing sound. The binding will be expanded in the future as needed so if you feel a particular area needs improvement, please let me know.
    Please take into account that FMOD Ex is a commercial product and it costs quite a bit of money in case you want to profit from it. Check here for a full list of prices. Also, please note that FMOD Ex is entirely optional. You can continue to use the regular BennuGD sound system, as usual.
  • Integrated mod_multi into the iOS builds so that people using iOS -the code was already working in Android- can implement multitouch in their games. The implementation is still a bit rough around the edges, but it's working and solving the remaining issues should be easy.
  • I compiled the old code found in the available templates for the simulator and uploaded it to the google code project site.
  • I integrated mod_curl into the old code found in the available templates and uploaded both the iOS and the iOSSimulator templates. You can find these in the Downloads page in the project site.
  • I compiled the new code found in the SVN -containing the new code which directly uses  the SDL1.3 API and not its ugly SDL1.2 compatibility layer- into a template and sent it to those who donated for the iPad 2.
  • I worked with the guys at iPhoneGamesDev.com on their new iPad game called iDraw for Family, which you can already get from here.
    Yeah! I coloured the teapot! Did I unlock any achievements?
That's pretty much it! In the next few days I'll try to upload some sample code for the new modules so that those interested can start coding with them.
Hope you liked the news!

Update on progress

Just a quick update on the progress of the project:

Android port:
  • I'm trying to add SDL_RWops support to the file operations so that resources can be read directly from the apk instead of from the real filesystem. I'd say the code is now there, but the code has started to crash on launch... I must've broken something during the latest changes but cannot find the cause, will have to investigate.
  • Appart from that, many things were progressing nicely. You can grab a very early preview of the code from here. Install the apk and then place your main.dcb file in /mnt/sdcard/data directory. Be aware that if you call set_mode BennuGD will crash. (Details here).
iOS port:
  • The only remaining issue regarding the iOS port seems to be the color ordering (Apple uses BGR for describing colors, instead of RGB). I've already added code for BGR loading for PNG loading by using DCelso's code for the PSP and PNGs are now loaded correctly. I must now fix MAP loading, which shouldn't take long, either.
  • I also figured out how to use native resolution in iPad and iPhone 4, I'll tell you when I release the new binaries.

Stay tuned!

Blog Archive