I considered this! There were a lot of things I wanted to try but didn't want the timeline of this project to blow up any more than it already had. Now that I've done the hard part of writing about it and publishing it, I can revisit some of these ideas :)
Thanks! The project was mostly C for the bootloader and C++ for the drivers.
As for which part was the most challenging... probably understanding the IOKit driver model. I really would have benefitted from having an expert explain some of the concepts to me, and give me some advice about how to structure my own drivers.
This would work for an idle screen but I can't imagine this would be very efficient for real use, unless the hardware cursor is put in some other framebuffer (I assume it's not otherwise the author would have probably mentioned it?)
on computer timescales, humans are basically motionless, as long as there is motion, you do the 60Hz update, occasionally you take a page fault too, not a high cost compared to a screenfull of colorpsace conversion. But when display is not changing you save a lot of cpu power.
But also Wii has the gpu abilities to trivially support hardware cursor
Presumably Wii has AltiVec that you could use to accelerate the conversion? Did you happen to look into the code the compiler generates for your loop around rgbrgb16toycbycr?
Yes - this project (and countless others) would not have been possible without the incredible work to hack the Wii from Team Twiizers (now fail0verflow) back in the day. The work they did was a huge inspiration for me getting into computer science when I was a teenager.
Xcode is definitely not perfect, but it's IDE I'm most used to, so I ended up doing my most of my editing in it.
reply