Thursday, October 28, 2010

On yesterday's post

Yesterday, I posted an entry with a photo of Pixbros working in a Wii with the latest SVN build.
There are a few bugs to fix yet, but there are some things that it's worth noting:

  • The game is working pretty well in 32bpp mode.
  • scale_resolution seems to not work at all in the Wii, don't try to use it yet :)
  • In the photo, you can see there are two characters playing. This is, in fact, a bug as there was only one controller present. Libjoy was reporting incorrect values for joysticks that weren't present. I've uploaded some changes to the SVN repo and this issue seems to be fixed.
  • You might notice that the score counter is blank. There seems to be some problem with FNT loading or displaying. I'll have a look at it as soon as possible.
  • The game is using music in MP3, as recommended, and those are encoded @48KHz, which is the new default frequency for BennuGD games in the Wii, starting with the next beta release.
If you really, really, want to give it a try, you can compile the latest BennuGD for the Wii from the SVN repo yourself and then compile pixbros from their SVN repo, otherwise you can just wait a little bit; it shouldn't take us long to have everything ready for release!

This game is pretty big and uses many features from BennuGD, so I'm pretty excited to see it's working that well with very little effort on the game author's side. So thanks him a lot for taking the time to make the game Wii compatible.

PS: The game is so cool that it's even been featured in Spain's public TV (Pixbros appears @ 1:21)

PS2: As the cow points ot, there are now more than 20000 users of BennuGD for the Wii. Future game release will only make that number bigger and bigger, so big thanks to everybody!

Wednesday, October 27, 2010


I asked for it long ago and, well...

Have fun!

PS: It's not ready yet, but it's definitely working quite well. It'll arrive soon!

Monday, October 25, 2010

Early bennugd-monolithic builds running on a PSP

I'm going slightly off-topic with this one, but as you might know, the same source code used for creating the Wii version of BennuGD is being used by Daniel Franzini to create a PSP port.
He's shared a video of an early BennuGD build running on his PSP, which you can see below.

Go, Daniel, go!

Experiencing random crashes? Use MP3!

After some debugging -using the info I mentioned the other day- some game that used to crash "randomly", I've found that all the crashes I could reproduce were related to Tremor (the library used to play OGG files) and in particular to oggpack_readinit. I believe this problem arises more on games with multiple sound sources playing at once, and doesn't seem to appear in simpler games with only one or two sound channels.
This error might well be related to this other bug or even this other one.

I'm not really sure I'll be able to fix this anytime soon, but I've made some simple tests with MP3 playback and they seem to work much better; the interpreter doesn't seem to crash anymore and I believe that both bugs mentioned above might also go away. If this is true, I'll update the transcode_music scripts so that they recode&resample your music to MP3 by default.

Just one note: You will only be able to play what smpeg can: MPEG-1 - Layer III sound files (the simplest/oldest kind of MP3 available), but hopefully the transcoding script will do all the hard work converting your files so that you don't have to.

Hope this solves stability problems, in case you found'em.

Happy coding! :)

Sunday, October 24, 2010

Send me photos of your crashes so I can fix them!

I just found this article on the wiibrew site. It explains how to debug that ugly -but useful- crash messages the PPC CPU inside your Wii dumps when bgdi crashes.
I don't own a USB Gekko device (which is the preferred debugging method) but it should help during debugging nonetheless. Thanks, devkitpro guys!

So, if you find your Wii crashes when running BennuGD games, please send me a photo of the screen where I can read the text, and possibly the source code for your game and a little explanation or what your code was doing when it crashed.

This will help create more stable builds and might eventually help BennuGD upstream, too. So thanks for your help!

Thursday, October 21, 2010

Brewing your own builds

A couple of days ago I uploaded the SDK I'm using to compile the bennugd-monolithic code.

  • In order to install the SDK, follow the instructions to install devkitpro from here.
  • Download the latest copy of my DevkitPPC directory available here -it can be used in win32, linux or OS X- and uncompress it to (following the example in the Getting Started page) /opt/devkitpro/ so that there you'll have threee folders: devklitPPC, libogc & portlibs.
  • Now, set the DEVKITPRO & DEVKITPPC environment vars as described in the Devkitpro "Getting Started" page.
  • Get the latest bennugd-monolithic code as described here.
  • Last, in your favorite console, and from the bennugd-monolithic-read-only/core directory type make. That's it! After that, your binaries will be in core/bgdc/bgdc.elf & core/bgdi/bgdi.elf.
  • Should you want to create a monolithic build for Linux (which should work just as fine as the normal BennuGD build, as you won't experience any endianess issues), type make linux instead of make.
Hope you find this info useful, I'll use this same info in the Wiki page.

Saturday, October 9, 2010

On the lack of updates

Sorry for the lack of updates lately, I've had a lot to do in my university (again) and couldn't work much on this. I did get to touch the code a bit, with mixed results:

  • I will probably change the default sound frequency from the current 33KHz to 48KHz. I've done this primarily because recent versions of VLC refuse to transcode the audio files to 33KHz but are happy with 48KHz. Also, many audio programs can use 48KHz just fine. For example, if you use my FMOD Ex bindings (they include spectrum analysis support for both the available mics and for the playing songs!) for BennuGD in your normal computer, you can use the same audio files in your computer and the Wii; you might have to code a couple of ifdef's to handle the API differences, though.
    Sorry for that, I expect not to have to touch the audio frequency again.
  • I've found out that set_volume doesn't work as expected, if you use it you'll just hear a very nasty noise... Will have to have a look at it.
  • There have been some pretty important changes in the most basic libs used by the Wii version of the port... I'm trying to update SDL and libogc in order to get things working again.
  • I've been integrating some changes to the code that Daniel (the guy working on getting this working on the PSP) passed me, and we've been trying to set up my development environment to be able to code for the PSP, in case I can help him at all.
  • I mostly completed the port for Puzsion. I contacted the author and they're happy to replace some graphics for some more... Wii-specific. This is on top of the to-do list.
So you see: not much coding, but still a little bit of progress.

PS: As for the PSP SDK, we're using this one.
PS2: I would really LOVE to integrate my VLC module into this Wii port, and now that VLC has been released for the iOS (which doesn't allow dynamic linking, either) that seems to be possible. If anyone can help me with getting the iOS libVLC.a to compile for the Wii, I'd be REALLY grateful.