Thursday, December 31, 2009

Finally! The all-text release

Today I integrated the last three text-mode-only modules left I had planned to integrate before starting work in the graphical part of Bennu: mod_sort, mod_mem & mod_timers.

This means that most of the non-graphics related part of Bennu for the Wii is now done -just in time to celebrate the new year- and now it's time for me to focus on the part of Bennu that you can actually show to other people.

I also updated mod_sound and fixed a couple of bugs I had put there.

Last but not least, I did the same offsetting for the GLOBALs as I had to do for the LOCALs.

Happy new year, and say welcome 2010: the year of graphics for Bennu in the Wii! :)

PS: Just like it happens with the MacOSX platform (which isn't compiling right now in Bennu but has a lot of supporting code inside) memory_total() and memory_free() are placeholders and always return 0. I might be able to implement those, but I am not sure.
PS2: The text-only modules I have not yet implemented fall in one of these categories:

  • Either they don't make sense in the Wii (mod_wm, mod_sys). These will just be a list of placeholder functions that will only return default values and run no code.
  • Or they provide functionality not always present in the Wii (mod_key, mod_cd).
  • They're mod_debug, This one is big&complex and even if it's very useful, I want to focus on the rest of Bennu first.

Monday, December 28, 2009

Upsss! mod_proc is now working

mod_proc seems to be working now. I will have to do more testing, but LOCALs such as FATHER seem to work now.
The problem was that when I inserted the code for the LOCALs defined in mod_proc, I had not taken into the account how their values where referred in the DCB (file offsets.h).

This was quite a complex bug in the sense that it would've been very hard for me to find. I have created a modified Makefile so that now I can compile and test most of the code without having to be in front of my Wii.
That helped a bit to find the bug but it was my brother who did most of the debugging this time, so thanks to him :)

So now, only mod_sort, mod_mem and mod_timers are left before I start with the graphical part of Bennu!

Sunday, December 13, 2009

mod_proc is in, but it has problems with signal...

mod_proc is now in, but there seems to be a problem with signal...
Processes seem to be affected by signal, but they won't die; their id changes but nothing else.
Also, when a process is called, their father local var is not set correctly (it's always set to 0).

let_me_alone does kill the processes that you didn't try to kill with signal before.

There's also some other function that I've not yet isolated that results in an unhandled exception...

Will have to look into this....

A bit of hacking with globals, locals and DLVARFIXUP, in general

I'm not having much time lately to work on Bennu, but today I got to hack a bit on it.
Basically, what I've done is finish the mod_sound module (remember some time ago I said there were some bits left?).

What I've one is implement the code that initializes the global variables. The mechanism is the same as used for initializing local vars, so those should be easy to do now, too.

This is, however, a more important change that it can appear to be, as this was basically the only thing I didn't really understand about the new Bennu modular architecture (as opposed to the old Fenix static design). This means that I can finally also try to finish mod_proc.

So I'm hoping on having all applicable non-video related modules done very soon so that I can start with the code that makes Bennu so great: graphics :)

Happy coding!