Yes, this is another Wii rant. There are plenty of other articles talking about the poor recent game offerings, the hardware limitations, and the primitive online play. I’m not here to talk about those. Instead, I’m going to talk about the Wii’s software stack, and how it compares to other consoles.
The Wii’s software architecture sucks.
If you look at lists of software updates for the PS3 or the XBox 360, you’ll find things such as PS3 update 2.40, which made XMB available in-game, or XBox 360 update 2.0.7357.0, which added the New XBox Experience, among many smaller updates are stability fixes, new peripheral support, and new features like in-game screenshots. A large amount of the features affect or improve the in-game experience.
Meanwhile, the Wii got all of:
Things, such as copying saves to SD, which should have been there from the start
Support for new features for new games, with zero improvements for any games already released (USB keyboards, WiiSpeak, etc).
Updates to built-in channels (WiiShop, etc)
Wii menu or messageboard tweaks, like moving channels or, get this, a clock.
Security updates, or their failed attempts at stopping homebrew.
This isn’t a coincidence. As it turns out, Nintendo chose not to have any operating system or common code at all running on the Broadway CPU. When you run a game, everything that shows up on your screen, ever, is being loaded from that spinning polycarbonate disc. And there are no mechanisms for anything else to run on that CPU: no update infrastructure, no Home Menu updates, nothing. If they ever want to have a “hypervisor” run above games, they’ll need to get a new CPU with full-blown virtualization capability (or an emulator), because games assume they have direct access to the CPU and most of the hardware.
If you’ve been following the Wii scene, you might be thinking, “what about IOS?” Indeed, Nintendo’s security and I/O Operating System runs alongside games (on a separate CPU built in to the Hollywood chipset) and it is updated as part of system updates. It includes some important bits and pieces like some peripheral drivers. However, as it turns out, Nintendo has decided that every new feature will be developed as a separate fork. Your Wii contains many IOS versions, and the older have never been updated except for security reasons (to fix our exploits). Not that they’ve added many new features, but if you look closely, new IOS features do not operate when you’re playing older games. This includes any updates to the WiiConnect24 downloads code, and even some minor things like the “slot LED blinks when you eject a disc” feature - try it when you’re playing Zelda and you’ll see that it doesn’t work, because it’s using the very old IOS9.
There are 23 IOS versions installed with current updates (this is also wasting the scarce 512MB internal memory!). Any new feature that they want to use in older games would have to be retroactively and individually added to each version, and it could create compatibility concerns because the interfaces with IOS functions aren’t all that stable either. Just doing these updates would cost them an immense amount of effort - it took them well over half a year to fix the fakesigning exploit and ship the IOS updates for all 23 versions, and that’s a minor update that can’t possibly affect games. Every time they’ve added a new feature (for example, the recent Wii Speak support, or USB keyboard support, or USB mouse support) they’ve just made a new fork of IOS for it. And IOS is limited to what it already handles - the ARM CPU that it runs on has no access to the graphics capabilities of the Wii (nor is it fast enough anyway - it has no floating point capability and it is a lot slower than the Broadway), so they can’t add any user-interface features to it.
Even worse - some things that should have been implemented in IOS aren’t. Like the Bluetooth stack and the Wii Remote code. Forget about any Bluetooth device support in older games - they couldn’t pull off a VoIP feature, ever. The SD card filesystem code is implemented in the games, which means that they can’t possibly add any code that uses SD card files, because two filesystem drivers can’t be used on the same device at the same time. Some things, such as saving games to SD for titles that don’t otherwise use the SD slot, are possible, but the changes needed to accomplish them would be so hacky and intrusive that I doubt they’re ever going to happen. One of the few things they can update with relative ease is networking (because the TCP/IP stack runs in IOS), but even then they still need to touch all IOS variants to fix it retroactively in older games. We’ve seen some changes but I doubt we’ll see many more.
As a specific example, let’s look at the much-discussed future ability to load Virtual Console and WiiWare titles from an SD card (seriously, what the hell were they thinking with 512MB of internal storage and no sane infrastructure to ever expand
...
Catherine: Full Body’s English translation for the Vita