GeeXboX for Wii is GeeXboX ported, UNOFFICIALLY, to run on Nintendo Wii game console. This has been made possible by the exellent work of Wii 'hackers’ and homebrewers, especially TeamTwiizers and the gc-linux team.
Starting with 0.1beta1, GeeXboX for Wii is released as two separate versions: GeeXboX for Wii (IOS) and GeeXboX for Wii (MINI). It is difficult to explain the differences between the two to someone without prior knowledge about Homebrew Channel (HBC) and Bootmii, etc.
GeeXboX for Wii (IOS) is basically the continuation of previous 0.1alpha releases and has to be launched by, preferrably, HBC or other similar homebrew loading methods. This version does not support native wifi or DVD; does not support USB 2.0; does not support front SD slot hot-swapping; does support returning to HBC.
GeeXboX for Wii (MINI) is basically the IOS version modified to take advantage of MINI firmware and has to be launched through MINI, i.e. manually from Bootmii GUI or automatically by replacing ppcboot.elf in bootmii folder. This version does support native wifi (currently at a rather low speed); does support USB 2.0; does support front SD slot hot-swapping; does support native DVD; does not support returning to HBC.
Except the differences listed above, the IOS and MINI versions are nearly identical as far as other features are concerned. Please note that the extra features in MINI version do put heavier burden on CPU and memory usage. Therefore, if the MINI version-specific features are of little or no use to you, you are advised to stick to the IOS version.
[IOS version] This document assumes that Homebrew Channel (HBC) is used for loading homebrew applications. For other loaders, please consult their documentation and make necessay changes to what is written here.
[MINI version] Bootmii should be installed as either boot2 or IOS, or if you wish, both.
[IOS version] Both SD and (some) SDHC cards can be used. Whether a particular card can be used mostly depends on whether it can be recognized by your version of HBC. For instance, HBC beta 9 or higher is required for SDHC booting. (Note that SDHC support in HBC is achieved in a somewhat hackish fashion and as a result, not all SDHC cards are usable. A list of user-verified compatible cards is available here.
For non-SDHC, it is probably better not to use cards larger than 2GB.
[MINI version] Both SD and (some) SDHC cards can be used.
The card should be formatted in FAT/FAT16 or FAT32. It is not necessay to use 'special' formatting software, unless media defect is suspected or the card has been previously manipulated by certain boot managers, in which cases the Panasonic tool could be tried. If a digital device (mobile phone, DC, DV, etc.) that can use the card in question is available, formatting the card in such a device sometimes gives the most reliable result.
Extract to SD card
The downloaded package is usually a compressed archive. Open the archive and extract ALL the contents to the root folder of the SD card. There is NO need to manually move any file or folder around. If you have a previously installed GeeXboX for Wii version on the SD card, it is STRONGLY advised that the GEEXBOX folder is deleted before extracting a new version to the card.
Boot GeeXboX for Wii
[IOS version] Power up Wii, insert the SD card, launch HBC and GeeXboX for Wii (IOS) application banner will be displayed (among other applications if there are any on the card). Select the banner and click on 'OK' to load GeeXboX for Wii (IOS).
[MINI version] In Bootmii GUI, choose the SD card icon, browse to the /bootmii folder and select geexbox.elf file. Video modes other than 480i(NTSC) are untested. If the elf file fails to boot into GeeXboX for Wii splash screen, you might consider hex-editing the elf file to change the gcnfb parameters (see this link).
If you wish to make MINI start GeeXboX for Wii (MINI) automatically instead of going through Bootmii GUI, where wiimote is not supported, you could hex-edit the geexbox.elf file to set correct gcnfb parameters and rename it to ppcboot.elf.
Debugging booting problem
- [IOS version] GeeXboX for Wii not loaded by HBC
Typical symptoms include: GeeXboX for Wii banner not displayed by HBC; HBC refuses to load GeeXboX for Wii after the banner is clicked; HBC loads GeeXboX for Wii but HBC progress bar (NOT the GeeXboX splash screen progress bar) stalls midway.
All of the above are caused, almost without exception, either by a card that has not been properly inserted in place, or by corruption of GeeXboX for Wii files in /apps/geexbox folder, which is usually fixed by re-extracting the files.
Please note, it is absolutely NOT necessary to convert the boot.elf file to dol format, whichever version of HBC is being used. Doing this can result in HBC refusing to load GeeXboX for Wii.
- [IOS version] Black screen after HBC loading success
It has been noted that with recent HBC versions (post-1.0.5), sometimes HBC loads GeeXboX for Wii boot.elf fine (progress bar reaches 100%) but GeeXboX for Wii boot screen fails to come up, only a black screen is displayed.
How this happens is not very clear at the moment, but one possible solution to try is using an older version of HBC. Yes, it IS possible to have two different versions of HBC installed side by side, as long as they have different title IDs. For instance, HBC 1.0.1 (HAXX) alongside HBC 1.0.6 (JODI) works fine. It is mandatory to install JODI version first, otherwise HAXX version will be removed during installation. Note that GeeXboX for Wii will always return to, or launch, to be exact, the JODI version if it is installed.
- GeeXboX for Wii booting aborts or stalls
Here 'abort' refers to those situatiosn where GeeXboX booting process stops before completion and drops into console (text) mode, whereas 'stall' refers to those situations where GeeXboX boot splash progress bar stalls midway, but without dropping into console mode.
Such problems are caused, almost without exception, either by corruption of GeeXboX for Wii files in /GEEXBOX folder, or by corruption and/or errors in the SD card file system. If re-extracting the files does not fix the problem, re-formatting the card should be considered.
- Black screen or wrong color
[IOS version] Interlaced mode over progressive-capable component cables does not work. In other words, display devices set to 480i and connected to Wii using component cables may display black screen (loss of signal), garbled colors or split screen when GeeXboX for Wii is booted. This is caused by wii-linux kernel forcing 480p display when progressive-capable cables are detected. Set the display device to 480p or use S-video/composite cables to work around this. Note that this issue may have been fixed since 0.1alpha7.
Black Screen after boot success is usually caused by corrupt or incorrectly modified /GEEXBOX/etc/mplayer/mplayer.conf.
Wiimote is the default remote control device in GeeXboX for Wii. For unmodified versions, nothing needs to be changed to enable wiimote support. If in doubt, check that in /GEEXBOX/settings file, the 'REMOTE=wiimote' and 'WIIMOTE=00:00:00:00:00:00' lines are not modified or commented out.
When GeeXboX for Wii has booted successfully, press ANY button, except the 'power' button, on wiimote and it will automatically tries to connect to GeeXboX for Wii. If connection is successful, LEDs on the wiimote will flash and wiimote will rumble for a short while.
The connection is automatically terminated by the power-saving feature of the wiimote after long periods of inactivity and can also be manually terminated by pressing the 'power' button. Reconnection is done by pressing ANY button, except the 'power' button, again.
Only single and combo button-pressings on the wiimote are received by GeeXboX for Wii to trigger specific events. Therefore, it is useless to point wiimote at the sensor bar, which is powered off by the way, or to wave the wiimote in any fashion. Holding down button(s) will send repeated commands at a rate of about 4 times per second.
Detailed button commands can be viewed from the GUI 'help' menu. For customization of the commands, lircd_wiimote.conf and lircrc_wiimote files in /GEEXBOX/etc/lirc can be modified, which requires prior knowledge of lirc config file formats and is not advised for ordinary users.
GeeXboX for Wii supports keyboard control by default and such support does not conflict with other remote control devices. Therefore, it is not necessary to try to enable or disable such support.
USB devices are hot-pluggable in GeeXboX for Wii and USB keyboards are no exception. This is probably also true for RF wireless keyboards with USB receivers.
Bluetooth keyboards usually requires pairing before they can be used. To be able to use bluetooth keyboards in GeeXboX for Wii, the /GEEXBOX/etc/bluez file must be modified to set the correct paring key, specify the keyboard bluetooth MAC if targeted connection is desired, and uncomment proper HID-related options. Prior knowledge and experience of using bluetooth keyboards in linux is required.
GeeXboX currently only supports single pressing of basic keys. Combo keys and multimedia keys are not yet supported. Simplified information about keyboard control is available from GUI 'help' menu and /GEEXBOX/etc/mplayer/input.conf. More detailed but slightly outdated information is available at GeeXboX wiki.
Bluetooth Mobile Phones
- Supported devices
Not all bluetooth-enabled phones are usable as remote control for GeeXboX for Wii. For an inexhaustive list of usable models, check out this anyremote page (GeeXboX for Wii does not use anyremote though). Models listed there as working in bluetooth AT mode should be usable.
Please note that 1), wiimote support will be disabled when mobile phones are used as remote control; 2), prior knowledge and experience of using bluetooth devices in linux is required for setup.
To specify mobile phone as remote control device, the first step is to edit /GEEXBOX/settings file and change the value of 'REMOTE' to 'bluemobile'. For some (Sony)Ericsson models, it is also possible to set 'REMOTE' to 'bte'. Then /GEEXBOX/etc/bluez file should be modified to set the default pass key and specify the bluetooth MAC and serial service channel of the mobile phone by setting the respective options to correct values. Finally, on the mobile phone, bluetooth should be enabled and the phone should be made discoverable and connectable. Consult the phone's user manual for detailed procedures.
If setup is successful, upon booting of GeeXboX for Wii, you will be prompted on the phone to enter pass key for incoming connection. Enter the pass key specified in /GEEXBOX/etc/bluez and the phone will start to function as a remote control.
Only single key-pressing-releasing events are supported. Key definitions in the released versions are based on Benq-Siemens S68 and specified in lircd_bluemobile.conf and lircrc_bluemobile files in /GEEXBOX/etc/lirc folder. Edit these files to customize for other models. If the bte driver is used instead of bluemobile driver, edit lircd_bte.conf and lircrc_bte files in the same folder to customize. Prior knowledge of lirc config file formats is requried for such editing.
GeeXboX for Wii comes with built-in http server, which provides web-based playback control and is accessible through USB ethernet, bluetooth or wifi (MINI version only). The interface is straightforward and requires no explanation.
See the 'Networking' Page for more information about networking.
GeeXboX for Wii also supports, theoretically, remote control through lirc over udp. This is an untested feature and only advanced lirc users should attempt to make it work.
Front SD Slot
[IOS version] As of this writing, Wii's front SD card slot is the fastest storage media available for use in GeeXboX for Wii (IOS). Hot-plugging is not supported. To change the card, use either the GUI menu or wiimote button commands and follow the OSD messages.
[MINI version] Hot-plugging is supported. At least some MMC cards are also supported.
USB External Storage
GeeXboX for Wii supports external storage devices connected through Wii's backside USB interfaces, including flash disks, card readers, hard/optical drive enclosures etc. Other devices such as mobile phones, MP3/MP4 players and handheld game consoles are also theoretically supported if they can function as USB storage devices. Hot-plugging is possible, except for cards on card readers, which have to be plugged or unplugged while the card reader is detached.
Partition Type and File System Support
GeeXboX for Wii supports MS-DOS and Apple partition types, reads nearly all major *nix/Windows/Mac file systems and writes many of them, except exFAT, NTFS, UFS, etc.
[MINI version]Wii Native DVD
Native DVD support is currently incompatible with (at least some) modchips. The affected modchips have to be disabled for GeeXboX for Wii (MINI) to access DVD contents.
It seems that only DVD-R and pressed Discs are readable. This may or may not change in the future.
GeeXboX for Wii (MINI) only auto-mounts the disc (if present) during booting. To mount/unmount disc(s) after that, use the GUI menu options or wiimote commands. This only concerns non-DVD-VIDEO discs. It is not necessary to mount DVD-VIDEO discs, which can be watched using the 'Play DVD' menu item without mounting. GeeXboX for Wii (MINI) bypasses region protection and CSS encryption automatically.
GeeXboX for Wii supports both *nix/Mac NFS and Windows (i.e. Samba) shares, as well as Plan 9 9p shares.
NFS and 9p shares are mounted at boot time. Source paths and mount points are defined in 'nfs' and '9p' files in /GEEXBOX/etc folder, repectively. Examples are given in these files for you to follow when defining your own shares.
Windows shares can be automatically found and mounted when GeeXboX for Wii is running. If username and/or password are set for these shares, they have to be specified in /GEEXBOX/etc/network. It is also possible to specify static shares to be mounted at boot time by following examples given in /GEEXBOX/etc/network. Please make sure that share priviledge and firewall rules are properly set up on the sharing host machine, otherwise the shares may fail to mount.
LAN UPnP Servers
GeeXboX for Wii supports accessing UPnP servers on local network. These include dedicated LAN UPnP devices, game consoles serving content using UPnP protocol, or PCs running UPnP server software. UPnP servers are automatically connected or disconnected, depending on server status, while GeeXboX for Wii is running. UPnP support must be manually enabled by modifing /GEEXBOX/etc/network.
GeeXboX for Wii supports http/udp/rtp/rtsp protocol network streams, shoutcast/icecast network broadcasts, as well as extended .pls and .m3u playlists over http. These have to be manually defined in /GEEXBOX/etc/netstream by following the examples given therein.
Supported audio/video formats and codecs
Media playback in GeeXboX for Wii is performed by mplayer, which in turn uses ffmpeg to provide audio and video decoding. All formats and codecs supported by ffmpeg are therefore supported by GeeXboX for Wii. This means that nearly all of the commonly used container formats and audio/video codecs, including WMA9 (starting with 0.1beta1) are supported by GeeXboX for Wii. In addition, MPlayer also offers the possibility of dynamically loading non-open-source binary libraries for decoding certain non-open codecs (see below).
Due to hardware limitation and/or codec code complexity, certain codecs can not be decoded fast enough, especially at high resolutions/bitrates, and consequently, audio/video artifacts/stuttering/desyncing might occur.
Supported subtitle formats
Mplayer in GeeXboX for Wii supports both major text subtitle formats (.srt, etc.) and vobsub subtitle formats (.idx/.sub). Support for .ssa text subtitles is not yet fully implemented. For vobsub subtitles, archived .sub file in .rar format is also supported.
Using non-open-source binaries
Starting with version 0.1alpha5, GeeXboX for Wii no longer guarantees the usability of non-open-source codec binaries in /GEEXBOX/codecs folder. The reasons are 1), the few available binaries may not actually work, as they were compiled against different glibc version using different gcc version; 2) ffmpeg already decodes these codecs natively and with little to no artifacts. In addition, unrar is now built-in with GeeXboX for Wii. Therefore, the following is only applicable for 0.1alpha4.
Due to licence restrictions, GeeXboX for Wii releases do not contain non-open-source binaries. If functions related to such binaries, as mentioned above, are desired, they can be downloaded from http://www1.mplayerhq.hu/MPlayer/releases/codecs/essential-ppc-20071007.tar.bz2 and http://www.rarlab.com/rar/unrar_ppclinux_380b2.tar.bz2. The extracted files should be saved to /GEEXBOX/codecs folder.
USB ethernet device support in GeeXboX for Wii is provided by linux kernel (2.6.31 as of this writing). Many adapters and PC-to-PC connectors are supported, including the over-priced adapter for Wii sold by Nintendo.
By default, GeeXboX for Wii will attempt to use DHCP to obtain IP address and gateway information, if USB ethernet device is detected and powered up. To use static IP address, /GEEXBOX/etc/network must be modified to provide the necessary information. Values for options HOST, SUBNET, GATEWAY, DNS_SERVER and possibly DHCP_TIMEOUT must be correctly specified.
[MINI version] If you wish to use USB ethernet rather than native wifi, you must set PHY_TYPE to “ethernet” in /GEEXBOX/etc/network.
Wii's built-in bluetooth adapter is used for bluetooth networking in GeeXboX for Wii. For ethernet over bluetooth, remote PC or handheld devices should support bluetooth PAN. For obex over bluetooth, remote devices should support OBEXPUSH and/or OBEXFTP. Due to imperfections in current Wii USB host contrller driver, many bluetooth functions in GeeXboX for Wii are still buggy. The following services are disabled by default.
Ethernet over bluetooth
To enable bluetooth PAN, you have to modify /GEEXBOX/etc/bluez and specify correct values for PAN-related options. Prior experience with using bluetooth PAN, especially in linux, is recommended.
Obex over bluetooth
GeeXboX for Wii supports OBEXPUSH between Wii and remote devices. Pushed files received by Wii are stored in the folder specified in /GEEXBOX/etc/obex. Pushing files from Wii is currently only implemented for USB keyboard operation (pressing 'B' when file is highlighted), but adding it to wiimote operation is possbile and easy. Obex related configurations are stored in /GEEXBOX/etc/obex and some functions are configurable though GUI options menu.
Audio over bluetooth
GeeXboX for Wii supports streaming mono or stereo (A2DP) audio to bluetooth headsets. Bluetooth MAC address of remote device must be specified in /GEEXBOX/etc/bluez. Switching between normal audio and bluetooth audio is done through GUI options menu.
[MINI version] Wifi
Wifi setup is done through specifying related options in /GEEXBOX/etc/network. If problems are encountered while connecting to AP/router using WPA encryption, different WPA_SCAN_SSID and/or WPA_AP_SCAN values can be tried. Note that wifi support is not yet perfect speed-wise (see this link).
GeeXboX for Wii features built-in TELNET, FTP and HTTP server services, which run over any available USB ethernet, bluetooth PAN, or Wifi (MINI version only). They are disabled by default and can be enabled by modifying /GEEXBOX/etc/network.
There is no username/password set for TELNET service and clients will be logging in as root.
User name and password for FTP service are defined in /GEEXBOX/etc/ftp.
The built-in HTTP server in GeeXboX for Wii serves only as remote control GUI interface. To modify or add content, files in /GEEXBOX/var/www can be edited.
GeeXboX for Wii allows for customization of many of its built-in features, most of them are detailed in this and other pages on this site. Customization generally requires editing of /GEEXBOX/settings and files in /GEEXBOX/etc folder. These files should be edited in *nix or, if Windows is used, in *nix-compatible text editors, otherwise desired effects may not be achieved and boot failure may occur.
GeeXboX for Wii supports two boot modes: normal and debugging. Debugging mode provides a text console to debug various problems, or if so desired, to use Wii as a linux machine. Input in debugging mode requires USB keyboard. To boot in debugging mode, edit /GEEXBOX/settings and change the value of 'RUNLEVEL' option to 'debug'. Once in debugging mode, enter 'exit' to exit to GUI menu.
Language and Fonts
GeeXboX, through contribution by developers and users from all over the world, supports many major languages, and so does the Wii port. It is also possible to specify different languages for GUI menu and subtitles. To change menu or subtitle language, change the values of 'MENU_LANG' and 'SUB_CHARSET' in /GEEXBOX/settings. Do not confuse this subtitle language with the subtitle languages selectable in GUI menu. As the option name indicates, here language actually refers to the character set the subtitles are encoded in.
For certain languages, especially east-Asian languages, corresponding fonts must be provided. Consult /GEEXBOX/etc/lang.conf for the correct file name the font file should use. Alternatively, /GEEXBOX/etc/lang.conf can be edited to match custom font file name.
Fonts used by GeeXboX for Wii are stored in /GEEXBOX/usr/share/fonts folder. Fonts required for east-Asian languages should be copied here. For other languages, the default font files can also be replaced to change the GUI font. Please note that large-size font files should be avoided, as they take up too much memory space. Also, remember to delete any unused font files in the folder.
This only concerns USB keyboard users. By default, 'QWERTY' layout is used in GeeXboX for Wii. To change to other layouts, edit /GEEXBOX/settings and change the value of option 'KEYMAP' accordingly. This feature is currently untested.
Boot splash screen of GeeXboX for Wii is hardcoded and not easily changeable. GUI background image (video actually) can be changed by replacing background.avi or background-wide.avi (for widescreen users) in /GEEXBOX/usr/share/mplayer. Please note that large-size avi files should be avoided, as they take up too much memory space.
GeeXboX for Wii does not have the ability to autodetect whether widescreen mode is being used by Wii. Additionally, due to lack of hardware scaling, images output by GeeXboX for Wii is often in incorrect aspect ratio when displayed. To compensate for this, the value for option 'MONITORASPECT' in /GEEXBOX/settings can be modified. Some suggested values are provided for certain setups. Feel free to experiment with different values to achieve correct aspect ratio on your setup. If widescreen mode is being used by Wii, value of option 'WIDE' in /GEEXBOX/settings can be set to 'yes'. This only affects the GUI background image though.
WII homebrew: GeeXboX on WII (farterwii)
- Updated linux to 188.8.131.52
- Updated ffmpeg to r21465
- Updated MPlayer to r30437
- Fixed compatibility with certain charset encodings
- Updated linux to 184.108.40.206
- Fixed compatibility with multi-channel audio
- Fixed issues with device mounting/unmounting
- Updated linux to 220.127.116.11
- Updated MPlayer and ffmpeg to 2009-10-03 snapshots
- Added fuseiso to handle more disc image formats
- Fixed OSD and aspect ratio in FBI image viewer
- Added compatibility with new HBC title ID
- Updated linux to 18.104.22.168
- Support for reading exFAT partition
- Fixed wiimote (re)connection
- Updated linux to 22.214.171.124
- Updated MPlayer to r28852
- Map seeking to arrow keys too
- Fixed mounting usb storages at bootup
- Fixed unmounting disc images
- Updated linux to 126.96.36.199
- Support for SDHC (partial)
- Updated MPlayer to r28184
- Fixed boot from SD cards with no partition table
- Support for SD cards with multi-partitions
- Use built-in unrar
- Dropped support for non-open binary codecs
- Disabled most playback-unrelated services by default
- Reverted libswscale to fix GOOM audio visual rendering
- Improved GOOM audio visual performance
- Improved performance in lowering subtitle mode
- Made lowering subtitles work with DVD-VIDEO
- Made 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
- Updated GCC to 4.3.2
- 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
- Disabled libass to fix lagging and freezing caused by text subtitles
- Disabled 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
- Updated to MPlayer r27630
- Simplified wiimote connection and reconnection
- Auto-repeat wiimote commands when buttons are held down
- Updated Kernel patch
- Updated to MPlayer svn snapshot 2008-08-06
- 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
- Based on whiite-linux-0.1a which has USB host controller enabled
- USB and network related functions of GeeXboX are therefore included in this release
- Fixed keypressing and OSD color bug in previous version
- Prototype release
The GeeXboX for Wii project is possible as a result of the excellent work by the Team Twiizers, the GameCube Linux team, and of course the GeeXboX team.
This project is also greatly helped by the following donators, whose generosity is deeply appreciated:
- S. Lippert