Wednesday, April 28, 2010

Progress

Even if I've not written about it lately, there's been some very interesting progress lately.
I released alpha 5 of Bennu, which includes and improved version of mod_wpad. This new version allows you to query your Wiimote for the raw accelerometer data, make it vibrate...
A few days later, my brother found the cause of the bug that was triggered when using save and load. I released alpha5~1 which solved it and integrated mod_iconv (a wrapper around iconv I created some time ago).

For alpha 6, I'm working on making module loading dependant on your code. Right now, all the bits from all the supported modules are loaded when you fire the interpreter.
This is suboptimal as you may end up initializing things you won't be using later; and memory is an important concern in this particular platform. So, from alpha 6 on, if you want to use the functions in -say- mod_wpad, you'll have to import it.
This'll make the code more compatible with upstream Bennu, and less cluttered.
Also, mod_wpad will be expanded to allow reading the data from the Nunchuk's accelerometers and a way to find the appropriate resolution for each Wii.

Now, some people have been working with the latest alphas in the BennuGD forums, and they've shown the things is quite usable, already.
Have a look at this video by BomberLink that shows an arcade game he's currently working on where he's using accelerometers to control the main character.

Also, Me Matsusaka has ported his KOF Flames of Courage v5 (a King of Fighters clone) to the Wii. You can get it here:
http://www.megaupload.com/?d=ZZKFY5VL

I have not tried it myself, but hope to do it this evening :)

Tuesday, April 20, 2010

The first game

Carles V. Ginés has released the first BennuGD game for the Wii, called Garnatron
It's a very small one and leaves a lot of room for improvement, but it's fun to play :)
You can see a video of Garnatro in action in the link above.

Also, Pixel has added Wii as a platform for your games to the BennuGD projects uploading form, so now you can just add your BennuGD Wii games to the list :)

PS: Don't tell anybody, but full WPAD support (rumble support, accelerometer data reading, angle checking....) is done and should come as a binary soonish.

Friday, April 16, 2010

Alpha 4 released

Today, I'm releasing alpha 4.
This version changes the way mod_say works: until now, it'd just do a printf(). This caused artifacts onscreen. From now on, mod_say will output text to a file named "stdout.txt"
Also, this version includes a new module: mod_wpad. This Wii-specific module tries to provide much more info about the controller input than what the normal Bennu version would.
This is a very preliminary set of functions, and seems to not be working perfectly right now:

  • WPAD_IS_READY(int channel). Will return 1 if channel channel is available and started. Otherwise, it'll return <0.
  • WPAD_IS_BALANCEBOARD(int channel). Will return 1 if channel channel corresponds to a Wii Balance Board.
  • WPAD_QUERY_BALANCEBOARD(int channel, int data). Will query info from a balanceboard. Data can be:
    • 0: X position of the center of gravity.
    • 1: Y position of the center of gravity.
    • 2: Weight measured on the TOP-LEFT base.
    • 3: Weight in TOP-RIGHT.
    • 4: Weight in BOTTOM-LEFT.
    • 5: Weight in BOTTOM-RIGHT.
  • WPAD_BATTERY_LEVEL(int channel). Will return the battery level for a particular channel. 0<level<256.
Other functions will come, and you'll be able to get info on Wiimote acceleration, and other data. Also, as I said, the function names or return values are not done yet. It's a beginning, though.

Thursday, April 8, 2010

Alpha 3

Today I released alpha 3 for BennuGD-Wii (can be found at the google code project page).
Alpha 2 brought some upstream fixes to the BennuGD core (including Splinter's own fix for the endianess issue, which is believed to be solved both upstream and here).
Alpha 3 brings just a quick fix to the wrong ALPHA_STEPS behaviour present in previous builds. Now FADE's should work fine.

Wednesday, April 7, 2010

Endianess, color and mod_effects; let's call it the alpha 1 release

Yesterday, my brother found the solution to the endianess bug (that resulted in Bennu displaying the wrong colors) that you can see in the video I posted a couple of days ago. So, big thanks to him!
I also integrated mod_effects and now te vast majority of modules that apply and are needed for creating 2D games have been integrated.
There are many things that don't yet work as expected -the most notorious of which is sound, that always plays @ 30KHz, no matter what your music files want-

However, I'd like to call this alpha version 1 of BennuGD for the Wii. It's now very buggy but usable, and you're more than welcome to test it and start creating your BennuGD games targetting the Wii.
If you get'em to work fine with this version, fear not, they'll work in the final version. Should you find any bugs, please report them in the project bugtrack.

So, go get the alpha 1 release at the google code project page.

Monday, April 5, 2010

Pixbros working on the Wii

A shortish video that shows how the port is doing. You can see Pixjuegos' Pixbros working on the Wii. As you can see in the video, some colors are now showing well (I did some digging and some things got fixed) but I must work on others.

Judge for yourself:

Friday, April 2, 2010

One short entry more today

mod_blendop is in.

The future

After yesterday's post with some screenshots of different existing games running fine in the static version of Bennu, I wanted to share some thoughts/questions about the future of the port and the work that needs to be done.

  • First of all; soon after posting the message, I fixed the scrolls. This was particularly easy. Most of the times a module acts weird it's because I screwed something in core/includes/offsets.h. I just opened that file and changed [83+16=] 98 for [83+16=] 99. Problem solved :)
  • My brother sent some code that adds some support for bigendian systems. Will have to test it on a real Wii.
  • If you think about the Wii controls, I can think of at least 5 different ways of controlling your game in a Wii, depending on how many accessories you plug in your Wiimote and how you grab your Wiimote.
    I will have to write some helper code to make control handling easier for bennu newbies.
  • There are a few modules I'd like to create specifically for the Wii that add support for some very interesting Wii features. These include:
    • Reading Mii info. It'd be based on Matthew Bauer's libmii.
    • Reading Wiimote's and Nunchuk's accelerometer output.
    • Reading output from things like the Wii balance board. According to wikipedia, it creates a virtual device by emulating two joysticks.
    • I'd like to find out how easy/difficult it is to play sounds in Wiimote's integrated speaker.
    • Others? Stub implementation should also exist for your pc, to make game creation/debugging easier.
  • I'd like to integrate some video functionality into the port. Currently Bennu natively supports some prehistoric video format, but that's really not enough. I have created a video module based on VLC that works great on both Linux and win32, but I don't think porting that would be easy.
    I might go for mpeg support. We've got a couple of mpeg implementations that might fit in here perfectly.
  • I'd like to make the port's code cleaner and bring it closer to the upstream BennuGD code. Ideally this would mean that given the right compilation script, my code could generate both the upstream modular BennuGD release and the Wii-specific monolithic Bennu version. This would make it easier to keep sync with future upstream changes.
I think that's pretty much it :)