Thursday, February 25, 2010

libtext & mod_text in

I've integrated libtext and mod_text. This means that you can now use write, write_var and similar functions.
The test code sets the text color to red, and moves it when you press the right mouse button. Then deletes it. Seems to be working pretty well.

Things are starting to come up nicely so if you want to give it a try, I've uploaded new binaries to the google code page for you to give'em a try.

Fixed librender, mod_map working (minus byte-order). Regressions in mod_proc.

Today I fixed librender, there were a few thing I had omitted, the most important of which was telling Bennu to redraw the screen every FRAME.

So after some rough testing, I believe that mod_map is working fine. I'll have to do more thorough testing, though.
I'm expecting to find problems with mod_map when working in a real Wii (I tested the code in my linux box) because of the different byte-order it uses. Colours will most likely seem broken. Expect a couple of demos about this later today or maybe tomorrow.

I've also found a regression in mod_proc. signal seems to not be working as expected. I'll have a look into that.

Also, the module dependency diagram is growing :)

Wednesday, February 24, 2010

libmouse, mod_mouse, libfont & mod_map

Today I've integrated libmouse into the core & runtime. I didn't need to integrate mod_mouse as it has no real code and all it does is declare its dependency upon libmouse.
Also, while doing yesterday's changes to the way the offsets were defined, I pretty much broke all the GLOBALs because of a stupid error. That made Bennu think the mouse was static at (9999,9999) and make it not detect mouse events such as clicking. That's fixed now.

So now that the mouse is working pretty much as expected, I've integrated libfont into the runtime & compiler. No major hiccups with that and it was a required step for integrating mod_map.
Mod_map is in and parts of it work fine. Other parts don't, yet. So for example, you can do a png_load and a png_save but you cannot display GRAPHs onscreen. I'll have to look into that a bit further, but I think I'll post a small surprise after I get mod_map working, so that you can get an idea of the real state of the port, in case you don't care at all about/understand all the technical jargon.

To sum up, things are going great! :)

Monday, February 22, 2010

libblit, libvideo, libgrbase, librender & video initializarion

It's been a long time! But well, I bring good news :)

Today I finally integrated libblit, libvideo, libgrbase and librender into the runtime. The test code works fine in my linux box and graphics are initialized to the default resolution (windowed+320x240) so it seems to be doing well.
The code needs to be tested in a real Wii, but I'll wait until I integrate mod_video (and probably finish integrating mod_mouse&mod_text) so that I can check that my code is running properly.

It took me longer than needed to complete the integration of these modules today as I hit a problem with the GCC preprocessor. The problem is that Bennu defines the byte offsets in the DCB files incrementally. So if you want to read property C from the DCB file, that property will be located in position: B+32bits.
B's position will itself depend in A's position. So to calculate the position of C, the GCC preprocessor had to do:

This method works well if you don't have too many properties and is very easy to maintain, but it has its limits, and while integrating more and more properties -coming from more and more modules- I hit that limit. Now I'm defining the fixed location of the properties by hand (A=0; B=32; C=64....), which is pretty painful to maintain.
It compiles, though.

Just in case you want to have a look, you can see how the offsets file is looking right now here.

Wednesday, February 3, 2010

Second article on BennuGD in the TodoLinux magazine, status update

Remember that the second part of the article Osk wrote should now be available in a store near you. In this second part you'll be able to create a complete (although simple) game with Bennu.

Related to the status of the project I'm currently busy with my exams in the university so I'm not working on it. Doesn't mean that the project is dead; it's just on hold until I finish my exams.
That means that you should hopefully have a feature-complete -and probably buggy- native version of Bennu for the Wii by march or so.