Sorry to be a bit off-topic with this one, but the news are pretty exciting.
One of the users of the BennuGD forums has written an article for the TodoLinux magazine that is on sale in Spain.
If you want to know more on the issue, go to the main news piece in the main Bennu website, here.
Thursday, January 7, 2010
Friday, January 1, 2010
Some work on video
New year: more work done.
I've integrated libgrbase, libvideo & libblit into the runtime. As you can see from the module dependency diagram above, only librender rests to be integrated before I can integrate mod_video and do a set_mode() (or others, of course).
On a couple of related notes, on the last post I told you that all the modules that didn't depend on libgrbase that I wanted to integrate were already in. Well, I realized a bit later that mod_regex
(which only provides one funtcion, but a very useful one: split()) isn't in and should be. I'll fix that as soon as possible.
On an unrelated note, the main idea of the modular design behind Bennu is that the user should only load the modules they need, so no resources are wasted moving parts of Bennu that won't really get used.
Well, as you might know, the Wii has a pretty limited amount of RAM (~88MB) and therefore memory is a pretty serious concern here.
So, as this project basically takes all the modules and integrates them into the Bennu core, that main advantage of the modular design will be lost. To fix that, Splinter (the guy who does all the real Bennu hacking) has suggested that I find a way to only integrate -at Bennu compilation time- the modules the user will be needing, so that you can get a version of Bennu tailored to your particular needs.
I have a couple of ideas of how to implement that, as it seems pretty reasonable so expect to hear more on that when the project advances.
PS: Oh! And happy new year!
I've integrated libgrbase, libvideo & libblit into the runtime. As you can see from the module dependency diagram above, only librender rests to be integrated before I can integrate mod_video and do a set_mode() (or others, of course).
On a couple of related notes, on the last post I told you that all the modules that didn't depend on libgrbase that I wanted to integrate were already in. Well, I realized a bit later that mod_regex
(which only provides one funtcion, but a very useful one: split()) isn't in and should be. I'll fix that as soon as possible.
On an unrelated note, the main idea of the modular design behind Bennu is that the user should only load the modules they need, so no resources are wasted moving parts of Bennu that won't really get used.
Well, as you might know, the Wii has a pretty limited amount of RAM (~88MB) and therefore memory is a pretty serious concern here.
So, as this project basically takes all the modules and integrates them into the Bennu core, that main advantage of the modular design will be lost. To fix that, Splinter (the guy who does all the real Bennu hacking) has suggested that I find a way to only integrate -at Bennu compilation time- the modules the user will be needing, so that you can get a version of Bennu tailored to your particular needs.
I have a couple of ideas of how to implement that, as it seems pretty reasonable so expect to hear more on that when the project advances.
PS: Oh! And happy new year!
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:
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!
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....
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!
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!
Saturday, November 28, 2009
Mod_dir is in & you don't want to move files
Mod_dir is in, just remember that you don't want to move files around the filesystem or rename them.... It seems like those functions won't work as we're dealing with a very minimal C library.
You can create those functions with Bennu code, though, by opening the destination file+copying contents+deleting original file.
You can create those functions with Bennu code, though, by opening the destination file+copying contents+deleting original file.
Subscribe to:
Posts (Atom)
