DISCLAIMER: THIS SOFTWARE IN ITSELF DOES NOT MAKE PERMANENT AND/OR IRREVERSIBLE MODIFICATIONS TO Wii AND THEREFORE SHOULD BE THEORETICALLY SAFE TO INSTALL AND USE. HOWEVER, THIS SOFTWARE IS PROVIDED AS IS AND WITH NO GUARANTEE OF ANY SORT WHATSOEVER. THE USER IS ENTIRELY RESPONSIBLE FOR ANY POSSIBLE DAMAGE TO HARDWARE AND/OR DATA AS A RESULT OF INSTALLING, USING OR MISUSING THIS SOFTWARE !


ACKNOWLEDGEMENTS: Thanks going out to the GameCube Linux team, the GeeXboX team, the Team Twiizers and those users who have kindly provided feedback about previous release(s).


Sourceforge Page: http://sourceforge.net/projects/geexboxforwii


Summary:

  'GeeXboX' is an open-source media center software package based on linux and 'GeeXboX for Wii' is GeeXboX ported (UNOFFICIALLY) to run on Nintendo Wii game console.

  This is GeeXboX for Wii version 0.1alpha4. The main changes from previous version are related to video display and subtitles. Another important change affects the way non-open-source software used by GeeXboX is distributed. See below and change log for details.
 
  The 0.1 series of this application are based on the GameCube Linux team's whiite-linux-0.1a kernel patches and GeeXboX team's devel version around the time 2008/10.  Whiite-linux-0.1a includes support for Wii USB host controller. However, support for native wifi and DVD is still missing, and USB host controller support is imperfect, making some USB-related functions unusable.

  In short, this is a full-featured GeeXboX port. Nearly all GeeXboX features available in current mainstream GeeXboX devel version and within current Wii linux capabilities are incorporated, with added bluetooth and obex support.

  Major new features compared to prototype release: bluetooth (remote control, obex file push, networking and audio partially working), USB storage, USB ethernet, http/telnet/ftp server, netstreaming, image viewer, goom visuals for audio playback, .... Most of the new features are fully or partially tested, some are not, yet.

  More features bring more bugs. Some bugs are carried over from mainstream GeeXboX, some are particular to the Wii port and some are inevitable results of hardware/software limitations of linux-based Wii homebrew. These bugs will be addressed differently in future releases.


Requirements:

  Wii;
  SD card (non-SDHC, formatted in FAT/FAT32);
  One of these: wiimote;
                USB keyboard (theoretically any model supported by linux 2.6.24.4 should work, including wireless ones);
                Bluetooth mobile phone (MIDP 2.0-compatible with AT+CMER implementation, see below).

  Optional: USB ethernet adapter/PC-to-PC link cable (theoretically any model supported by linux 2.6.24.4 should work);
            USB storage (flash disks, card readers, external enclosures, etc. Nearly all major *nix/Win/Mac partition types are readable and most of them, except NTFS/UFS, are writable);


Usage:

  Homebrew channel users just need to copy everything into the root directory of your SD card and select GeeXboX in the channel.

  TP hack users have to copy or move apps/geexbox/boot.elf to the root directory of your SD card and start the hack.

  Other homebrew loaders that support front SD might also work. Consult their documentation for how.

  Regardless of the loader, the GEEXBOX file tree MUST reside in the root directory of SD card.


Control:

  Wiimote: this is the default remote control. Connecting and reconnecting wiimote to GeeXboX is possible at any time after GUI comes up by pressing ANY button (excepy maybe 'power'). If connection is (re)established, all four LEDs will flash once and wiimote will give a short rumble. Once connected, you can use arrow keys to navigate the OSD menu and view detailed controls in 'help'. You don't have to point your wiimote at the sensor bar. Holding down button(s) will send repeated commands at a rate of about 4 times per second. To add or change button definitions, edit GEEXBOX/etc/lirc/lircd_wiimote.conf and lircrc_wiimote. To disconnect wiimote, just press and hold down the red 'power' button for several seconds. This is useful for saving wiimote battery. 


  USB keyboard: use arrow keys to move around in the menu. For more detailed info on keyboard controls, view 'help' in menu, consult GEEXBOX/etc/mplayer/input.conf or the GeeXboX site (http://www.geexbox.org/en/controls.html, some info is outdated though).


  Bluetooth mobile phone: not all bluetooth-enabled phones are usable. For an incomplete list of usable models, see http://anyremote.sourceforge.net/devices.html (GeeXboX for wii does not use anyremote though). Models listed as working in bluetooth AT mode should be usable. You have to specify the bluetooth MAC of your mobile in GEEXBOX/etc/bluez. When GeeXboX boots up and finds your mobile, you will be prompted for password. The default password is '0000'. Key definitions in this release are based on Benq-Siemens S68. To use other models or to customize key definitions, you many have to edit GEEXBOX/etc/lirc/lircd_bluemobile.conf and lircrc_bluemobile. Some (Sony)Ericsson models can also be used with the 'bte' driver (GEEXBOX/etc/lirc/lircd_bte.conf and lircrc_bte).


Formats and protocols:

  All a/v formats supported by MPlayer (these include rmvb, but not WMV9 audio);
  Http/udp/rtp/rtsp network streams (shoutcast, icecast, lan unicast, multicast and VOD)


Media sources:

  Front SD (to swap, use the wiimote or OSD menu and follow the on-screen messages);
  USB storage (hot swappable. Card readers must be disconnected before swapping cards);
  Network shares (NFS/Plan 9 shares must be added manually before boot, uPnP shares are auto-discovered and mounted after boot, Samba/Windows shares can be used either way);
  Network streams (addresses manually defined before boot).


Customization:

  Customization requires manual editing of files in the GEEXBOX folder. It is probably better to edit files on harddisk and then copy them to SD card, as opposed to editing files on SD card directly. Windows users are also advised to use *nix-compatible editors such as UltraEdit, rather than Notepad or Wordpad. Please remember that corrupt or incorrectly modified file may cause boot failure!

  Non-opensource software: this is referring to non-free codecs (especially rmvb) and unrar utility used by MPlayer for codec and subtitile support. For license reasons, these will no longer be distributed in the GeeXboX for Wii package. Rmvb files will still be playable using ffmpeg's currently imperfect decoder with visual artifacts. To use the non-free software, you can download them (http://www1.mplayerhq.hu/MPlayer/releases/codecs/essential-ppc-20071007.tar.bz2 and http://www.rarlab.com/rar/unrar_ppclinux_380b2.tar.bz2) and put the extracted files in the GEEXBOX/codecs folder.

  Boot into console mode: edit GEEXBOX/settings and change the value of 'RUNLEVEL' to 'debug'. Enter "exit" in console to start GUI.

  Language and font: default to English. To change, edit GEEXBOX/settings and change the value of 'MENU_LANG' (for menu language) and 'SUB_CHARSET' (for subtitle language) accordingly. For some languages/charsets, for instance east Asian languages, you will have to provide necessary fonts for the settings to work. Consult GEEXBOX/etc/lang.conf for the correct font file name and make sure corresponding file is saved in GEEXBOX/usr/share/fonts. Alternatively, you can edit lang.conf to match the name of your font file. Please try not to use large size font files as they take up precious memory and affect playback quality. 

  Keyboard layout: default to qwerty. To change,  edit GEEXBOX/settings and change the value of 'KEYMAP' accordingly.

  Remote control device: default to wiimote. To change, edit GEEXBOX/settings and change the value of 'REMOTE' accordingly.

  Widescreen mode: if your Wii is set to widescreen mode, you can edit GEEXBOX/settings and change the value of 'WIDE' to 'yes'. This is optional and only affects the GUI background video.

  Display device aspect ratio compensation: GeeXboX for Wii automatically scales all video to fill up the display area as much as possible while keeping the correct aspect ratio. However, due to reasons out of GeeXboX's control and a bit too complicated to detail here, the scaled image is either horizontally or vertically stretched depending on different display devices and different Wii display modes (NTSC or PAL, 4:3 or 16:9, etc.), resulting in incorrect aspect ratio. To compensate for this, you can set the MONITORASPECT value in /GEEXBOX/settings.

  Vsync: 'vsync' can be enabled by setting VSYNC to yes in GEEXBOX/settings or through OSD menu. This may solve some screen tearing issues but negatively affects playback speed.

  Themeing: boot splash is hard coded into boot.elf and therefore not easily customizable for most users. To change the default background image/video, replace GEEXBOX/usr/share/mplayer/background.avi (or background-wide.avi if you set WIDE to yes). Again, avoid using large file for your own good.

  Other customizations: bluetooth, obex, network, netstream, net shares and so on are customized by manually editing corresponding files in GEEXBOX/etc. Simple explanations are included for almost all the settings. You can also find more detailed help on some of these settings from http://www.geexbox.org/en/doc.html or by visiting the forum.


A few notes:

  USB performance: Wii USB interface is supposedly 1.1, meaning the max speed is 12Mbps, or slightly over 1MB/s. This is NOT a GeeXboX or linux for Wii limitation, but one created by Nintendo. So by this release, front SD is still faster than any other storage media usable, including network shares, although not by that much. In addition, USB is resource-costly and current implementation of USB in linux for Wii is buggy. So don't expect performance of USB devices on Wii to be comparable to what you get on your PC, and always use front SD whenever possible.

  Bluetooth: bluetooth audio and networking only work partially at present, most likely a result of imperfections in USB implementation in linux for Wii. Bluetooth headphones can be connected but audio is broken. Telnet over bluetooth works, although some commands seem to hang the session. Http and ftp can't seem to get past the initial data transfer. Pushing files to Wii is working, although speed is slow. Pushing files from Wii to other devices is unstable. Sometimes small files get pushed successfully, sometimes transfer halts midway.

  Network sources: if you want to use shoutcast/icecast etc., remember to set long blacklist or short white list in GEEXBOX/etc/netstream. Better still, just define a few static netstreams pointing to the broadcasts you desire and disable shoutcast/icecast scan. The reason for this is because every broadcast url obtained by GeeXboX from scanning the server is saved in Wii memory as a playlist file. Thousands of such small files soon eat up all available space. For uPnP shares over lan, avoid exporting huge and complex directories.




Changelog

20090122:  0.1alpha4. Bugfix release.
           Revert libswscale to fix GOOM audio visual rendering;
           Improve GOOM audio visual performance;
           Improve performance in lowering subtitle mode;
           Make lowering subtitles work with DVD-VIDEO;
           Make lowering subtitles work with on-the-fly aspect ratio change;
           Support for optional mounting .nrg (DVD only) and .iso image file;
           Display cpu version number in OPTIONS -> INFO;
           Update GCC to 4.3.2.


20081001:  0.1alpha3. Bugfix release.
           Implementation of optional 'vsync' to improve screen tearing in certain cases;
           Support for on-the-fly aspect ratio change;
           Fixed DVD-VIDEO aspect ratio error when switching between menu and movie;
           Disabling libass to fix lagging and freezing caused by text subtitles;
           Disabling colored spu to fix DVD-VIDEO/vobsub subtitile display;
           Support for vobsub subtitles in rar archive format;
           Support for optionally lowering subtitles into blackbars;
           Fixed subtitle charset conversion;
           Update to MPlayer r27630.

20080808:  0.1alpha2. Feature improvement release.
           Simplified wiimote connection and reconnection;
           Auto-repeat wiimote commands when buttons are held down;
           Kernel patch update;
           Update to MPlayer svn snapshot 20080806.

20080730:  0.1alpha1. Feature improvement release.
           NTSC/PAL autodection (supposed to work);
           Improved support for widescreen mode;
           Aspect ratio software compensation support;
           Improved wiimote connection/reconnection routine;
           User-friendlier handling of boot failure.

20080717:  0.1alpha0. Feature addition release.
           Update kernel patch to whiite-linux-0.1a;
           USB and network support;
           'Bugs' (keypressing and OSD color) in previous version no longer there.

20080624:  Prototype release.
