Difference between revisions of "Homebrew Channel"

From WiiBrew
Jump to: navigation, search
m (1.0.2)
(Installation)
 
(140 intermediate revisions by 49 users not shown)
Line 1: Line 1:
 
{{Distinguish|Homebrew Browser}}
 
{{Distinguish|Homebrew Browser}}
 
 
{{Infobox homebrew
 
{{Infobox homebrew
 
| title      = Homebrew Channel
 
| title      = Homebrew Channel
Line 6: Line 5:
 
| type        = loader
 
| type        = loader
 
| author      = [[Team Twiizers]]
 
| author      = [[Team Twiizers]]
| licence    = Freeware
+
| licence    = GNU GPL v2
| version    = 1.0.6
+
| version    = 1.1.2 (December 8, 2012)
 
| download    = http://bootmii.org/download/
 
| download    = http://bootmii.org/download/
 
| website    = http://hbc.hackmii.com/
 
| website    = http://hbc.hackmii.com/
 +
| discussion  = http://Bugs.hackmii.com/index.php/project=6 Bugs
 +
| source      = http://github.com/fail0verflow/hbc
 
| peripherals = {{Wiimote1}} {{SensorBar}} {{Nunchuk}} {{ClassicController}} {{GCNController}} {{LesPaul}} {{FrontSD}} {{FrontSDHC}} {{USBGecko}} {{SDGecko}} {{WiFi}} {{Internet}} {{USBMSD}}
 
| peripherals = {{Wiimote1}} {{SensorBar}} {{Nunchuk}} {{ClassicController}} {{GCNController}} {{LesPaul}} {{FrontSD}} {{FrontSDHC}} {{USBGecko}} {{SDGecko}} {{WiFi}} {{Internet}} {{USBMSD}}
 
}}
 
}}
Line 15: Line 16:
  
 
== Installation ==
 
== Installation ==
 +
{{seealso|Homebrew status}}
 +
 +
'''READ THE DISCLAIMER! In the VERY unlikely case that your Wii gets [[Brick|bricked]] by the installer, this will let you know where you stand in regards to Team Twiizers.'''
  
'''Note: To install the [[Homebrew Channel]] on System Menu 4.0 to 4.1 use [[Bannerbomb]] v1 in conjunction with the [http://bootmii.org/download HackMii Installer].'''
+
=== Pick an exploit ===
  
'''Note: If you updated to System Menu 4.2 this can still be installed via [[Smash Stack]] or [[Indiana Pwns]] as of this edit. You can also use [[Bannerbomb]] v2 in conjunction with the [http://bootmii.org/download HackMii Installer].'''
+
Some of these are specific to certain versions of the [[System Menu]], while others are not but require you to own a certain Wii game in order to use them.  
  
'''READ THE DISCLAIMER! In the VERY unlikely case your Wii should be [[Brick|bricked]] by the installer, this will let you know where you stand in regards to Team Twiizers.'''
+
{|class="apptable"
 +
|-
 +
!System Menu 3.4 And Below
 +
!System Menu 4.2 And Below
 +
!Any System Menu
 +
|-
 +
|[[File:TwilightHack_0.1beta1.png|center|130 px|link=Twilight Hack]]
 +
|[[File:Bannerbomb.png|center|100 px|link=Bannerbomb]]
 +
|<center>
  
=== Using The [[Twilight Hack]], [[Bannerbomb]], [[Smash Stack]], or [[Indiana Pwns]]. ===
+
'''NTSC-U/NTSC-J/PAL'''
Assuming that the [[Twilight Hack]], [[Bannerbomb]], [[Smash Stack]], or [[Indiana Pwns]] is already setup on your Wii;
 
  
 +
[[File:Smashstack.png|50 px|link=Smash Stack]]/[[File:smashstackJP.png|50 px|link=Smash Stack#Unofficial_Japanese_Version]]/[[File:smashstackKOR.png|50 px|link=Smash_Stack#Unofficial_PAL.2FKOR_Version]]</center>
 +
|-
 +
!Any System Menu
 +
!Any System Menu
 +
!Any System Menu
 +
|-
 +
|[[File:Indiana pwns.png|center|130 px|link=Indiana Pwns]]
 +
|'''PAL ONLY'''
 +
[[File:Yu-Gi-OWNED.png|center|130 px|link=Yu-Gi-OWNED!]]
 +
 +
'''''(NTSC-U/J use [[Yu-Gi-Vah]])'''''
 +
|[[File:Bathaxx.png|center|130 px|link=Bathaxx]]
 +
 +
|-
 +
!Any System Menu
 +
!Any System Menu
 +
!System Menu 4.3 - LetterBomb
 +
|-
 +
|[[File:Return of the Jodi.png|center|130 px|link=Return of the Jodi]]
 +
|[[File:EriHakawai.png‎|center|130px|link=Eri HaKawai]]
 +
|[[File:Letterbomb.png|center|130 px|link=LetterBomb]]
 +
|}
 +
 +
=== Using a loader ===
 
# Download the [http://bootmii.org/download/ HackMii Installer].
 
# Download the [http://bootmii.org/download/ HackMii Installer].
# Expand the archive to find README.txt, wiiload and boot.elf or boot.dol
+
# Extract the HackMii Installer to find the boot.elf
# Place the boot.elf or boot.dol file in the root of your SD card.
+
# Place the boot.elf file in the root (SD:/ ) of your SD card.
# Run the [[Twilight Hack]], [[Bannerbomb]], [[Smash Stack]], or [[Indiana Pwns]], and allow the installer to load.
+
# Boot the loader that will work for your [[System Menu]].
# Press 1 when given and continue installing things you want.
+
# Wait for the Hackmii Installer to run tests on your Wii
 +
# Press {{Wiimote1Button}} when told to continue installing HBC and [[BootMii]]. <strike>NOTE: Newer Wii Remotes with WiiMotion+ integrated will not work with the Hackmii Installer. You'll need to use (borrow from a friend?) the older Wii Remote style and perform a red-button synchronisation on the System Menu to use the Hackmii Installer.</strike> As in Hackmii Installer v1.0, Wii Remotes with WiiMotion+ will work.
  
 
The installation should be automatic from this point on, and your Wii will reboot.
 
The installation should be automatic from this point on, and your Wii will reboot.
  
=== Using DVD ===
+
=== Using a DVD ===
 
The DVD method requires a [[drivechip]] and won't work with the [[June16 update|3.3 firmware update]] or newer. DVD images for the more recent versions are currently unavailable, though you can install beta8 and then update.
 
The DVD method requires a [[drivechip]] and won't work with the [[June16 update|3.3 firmware update]] or newer. DVD images for the more recent versions are currently unavailable, though you can install beta8 and then update.
 
<!--<Youtube>6ji2imug_bc</Youtube>-->
 
<!--<Youtube>6ji2imug_bc</Youtube>-->
  
 
=== Using a previous unsigned code-loading method ===
 
=== Using a previous unsigned code-loading method ===
If you have an older version of the Homebrew Channel or another means of executing unsigned code, you can use that to install the latest version.
+
If you have an older version of the Homebrew Channel or another means of executing unsigned code, you can use the auto update function to install the latest version.
  
 
== Configuring Applications ==
 
== Configuring Applications ==
Line 44: Line 80:
  
 
# Make a folder on the root of your SD card called "apps".
 
# Make a folder on the root of your SD card called "apps".
# In the folder "apps," create a folder for the application (for this example, [[Homebrew apps/ScummVM|ScummVM]] will be used).
+
# In the folder "apps," create a folder for the application (for this example, [[ScummVM]] will be used).
 
# Copy the files for the application into its folder (e.g. apps/scummvm/).
 
# Copy the files for the application into its folder (e.g. apps/scummvm/).
 
# Find the executable file (either .elf or .dol) and rename it to boot.elf (or boot.dol if it was a .dol file) if it is not already named that (e.g. apps/scummvm/boot.dol). If the app comes with these files, copy the icon.png and meta.xml files into this folder.
 
# Find the executable file (either .elf or .dol) and rename it to boot.elf (or boot.dol if it was a .dol file) if it is not already named that (e.g. apps/scummvm/boot.dol). If the app comes with these files, copy the icon.png and meta.xml files into this folder.
Line 53: Line 89:
 
To add text to an application in the Homebrew Channel, do the following: (note: you may install the [[Homebrew Browser]] and download pre-formatted apps without performing this step for every app)
 
To add text to an application in the Homebrew Channel, do the following: (note: you may install the [[Homebrew Browser]] and download pre-formatted apps without performing this step for every app)
 
<ol>
 
<ol>
<li>Make a file in the folder of the application (e.g. apps/[[ScummVM]]/) called "meta.xml" (e.g. apps/[[ScummVM]]/meta.xml).</li>
+
<li>Make a file in the folder of the application (e.g. apps/ScummVM/) called "meta.xml" (e.g. apps/ScummVM/meta.xml).</li>
 
<li>Open "meta.xml" in Notepad and add the following text as a template:</li>
 
<li>Open "meta.xml" in Notepad and add the following text as a template:</li>
 
<source lang="xml">
 
<source lang="xml">
Line 84: Line 120:
 
</source>
 
</source>
 
</ol>
 
</ol>
An example of a completed "meta.xml" for [[ScummVM]] is provided below:
+
An example of a completed "meta.xml" for ScummVM is provided below:
 
<source lang="xml">
 
<source lang="xml">
 
   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 
   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Line 107: Line 143:
 
</source>
 
</source>
  
''A web application to create meta.xml files and code was made by abeisgreat, but has been taken down due to repeated abuse. Alternatively, you can use [[User:Pinecone|Pinecone's]] Java-based [[HBCXMLGen]] program.''
+
=== Optional ''meta.xml'' XML nodes ===
 +
 
 +
The following nodes must be children of the '''<app>''' node.
 +
 
 +
Additionally supported by The Homebrew Channel (starting with v1.0.7):
 +
 
 +
{| class="wikitable"
 +
|-
 +
! node name !! meaning !! example
 +
|-
 +
| arguments || list of arguments passed to the loaded application as '''argc''' and '''argv''' ||
 +
<source lang="xml"><arguments>
 +
  <arg>--loaded-by-hbc</arg>
 +
  <arg>insane argument with spaces</arg>
 +
</arguments></source>
 +
|-
 +
| ahb_access || Requests full hardware access (AHBPROT) || <source lang="xml"><ahb_access/></source>
 +
|}
 +
 
 +
==== FAQ ====
 +
'''Q:''' Is this required to get full hardware access?
  
 
=== Adding an Icon ===
 
=== Adding an Icon ===
Line 133: Line 189:
  
 
=== Loading from USB ===
 
=== Loading from USB ===
Files and folders on your USB storage device must be structured in the same way that they would be structured on an SD card for use with the Homebrew Channel. For example, you must have an "apps" folder on the root of your USB storage device with sub-folders containing an executable, meta.xml, and icon.png for each homebrew application.  Any specific homebrew instructions related to file and folder placement on and SD card also apply if you are using a USB storage device instead.
+
Apps on your USB storage device are stored like on a SD card.
 +
 
 +
== Controls ==
 +
You can use {{WiimoteAim}} to navigate though the app list.
 +
 
 +
{| class="wikitable"
 +
|-
 +
!{{Wiimote}}
 +
!{{ClassicController}} or {{Nunchuk}}
 +
!Action
 +
|-align="center"
 +
|colspan="2"|{{WiimoteDPadUp}} '''/''' {{WiimoteDPadDown}}
 +
|Up/Down
 +
|-align="center"
 +
|{{WiimoteMinusButton}}
 +
|{{ClassicMinusButton}} '''/''' {{ClassicLTrigger}}
 +
|Page left
 +
|-align="center"
 +
|{{WiimotePlusButton}}
 +
|{{ClassicPlusButton}} '''/''' {{ClassicRTrigger}}
 +
|Page right
 +
|-align="center"
 +
|{{WiimoteAButton}}
 +
|{{ClassicAButton}}
 +
|Select
 +
|-align="center"
 +
|colspan="2"|{{WiimoteHomeButton}}
 +
|Menu
 +
|-align="center"
 +
|{{WiimoteAim}} '''+''' {{WiimoteBButton}}
 +
|{{ClassicLControlStick}} '''or''' {{NunchuckControlStick}}
 +
|Scroll text
 +
|-align="center"
 +
|{{WiimoteBButton}}
 +
|{{ClassicBButton}}
 +
|Back
 +
|-align="center"
 +
|{{Wiimote1Button}}
 +
|{{ClassicXButton}}
 +
|Settings
 +
|-align="center"
 +
|{{Wiimote2Button}}
 +
|{{ClassicYButton}}
 +
|Swap view
 +
|-align="center"
 +
|{{WiimotePowerButton}}
 +
|
 +
|Shutdown
 +
|-align="center"
 +
|
 +
|{{NunchukZButton}} + {{NunchukCButton}}
 +
|Screenshots
 +
|}
 +
 
 +
== Uninstall ==
 +
Removing the channel can be done by simply deleting it with the channel management in the Wii system software.
  
Your USB storage device should be plugged in before loading the homebrew channel, but it is not required. If you do not have it plugged in when the Homebrew Channel is loaded, simply plug it in and then bring up the Homebrew Channel menu, then select the "Reload" option.
+
== Compatibility ==
 +
{{cleanup|section}}
 +
Note: The Homebrew Channel requires that you system have at least one unpatched [[IOS]] in order to guarantee reliable performance; we've received too many bug reports that were later traced to misbehaving versions of IOS.  The HackMii Installer will automatically choose an appropriate (unpatched) IOS to use when installing the Homebrew Channel; if you attempt to defeat this safety measure by replacing its IOS with a corrupted version, you may experience an "impaired HBC experience" (an upside-down screen or a warning message at every startup).  Please just don't do it.
  
'''Notes:''' At this time, loading applications from USB is considerably slower than loading from an SD or SDHC card. When reading the applications to display from the "apps" folder of a usb device, an SD card icon will appear even though it is loading from USB. If you have an sd card inserted at the same time as a USB storage device, the SD card takes priority and apps from the USB device will not be shown even if there are no visible apps on the SD card.
+
== Themes ==
 +
As of 1.0.7, The Homebrew Channel is capable of theming. The images and fonts are stored in a theme.zip, which can be executed like a boot.dol from the Homebrew Channel.
  
== Controls ==
+
For a theme database and a "How to install" guide, check [[Homebrew_Channel/Themes|this page]].
You can use {{WiimoteAim}} to navigate though the application list.
+
 
 +
Further details on this can be found at [http://hackmii.com/2010/08/theming-the-homebrew-channel/ Hackmii].
 +
 
 +
=== Fonts ===
 +
As for 1.1.0, you can use your own TrueType or OpenType fonts with The Homebrew Channel. You can assign a font, size, and color to individual GUI elements:
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! {{Wiimote}} !! {{ClassicController}} !! {{Nunchuk}} !! Action
+
! element ID !! meaning
 
|-
 
|-
| {{WiimoteDPadUp}} '''/''' {{WiimoteDPadDown}} || {{ClassicDPadUp}} '''/''' {{ClassicDPadDown}} || || Move through the applications Up/Down
+
| label || Labels (background info, group headings, "Author" and "Version")
 
|-
 
|-
| {{WiimoteMinusButton}} or {{WiimoteDPadLeft}} || {{ClassicMinusButton}} or {{ClassicDPadLeft}} or {{ClassicLTrigger}}  || || Change applications page left
+
| button || Buttons (and "radio" buttons)
 
|-
 
|-
| {{WiimotePlusButton}} or {{WiimoteDPadRight}} || {{ClassicPlusButton}} or {{ClassicDPadRight}} or {{ClassicRTrigger}}  || || Change applications page right
+
| button_desel || Radio buttons (not currently selected)
 
|-
 
|-
| {{WiimoteAButton}} || {{ClassicAButton}} || || Select option
+
| dlgtitle || Message box title
 
|-
 
|-
| {{WiimoteHomeButton}} || {{ClassicHomeButton}} || || Menu
+
| memo || Text box (description or message)
 
|-
 
|-
| {{WiimoteBButton}}+{{WiimoteAim}} || {{ClassicLControlStick‎}} || {{NunchuckControlStick‎}} || Scroll text
+
| appname || Application name in main browser
 
|-
 
|-
| {{WiimoteBButton}} || {{ClassicBButton}} || || Returns from app screen
+
| appdesc || Application description in main browser
|-
 
| {{Wiimote1Button}} || {{ClassicXButton}} || || Settings menu
 
|-
 
| {{Wiimote2Button}} || {{ClassicYButton}} || || Swap view
 
|-
 
| {{WiimotePowerButton}} || || || Shutdown
 
 
|}
 
|}
  
== Removal ==
+
Each font can be specified using a &lt;font&gt; element inside the theme.xml file. You can specify the file, size, and color like this:
Removing the channel can be done by simply deleting it with the channel management in the Wii system software.
+
 
 +
<source lang="xml">
 +
        <font target="memo,dlgtitle">
 +
                <file>foo.ttf</file>
 +
                <size>16</size>
 +
                <color><red>0</red><green>0</green><blue>0</blue><alpha>255</alpha></color>
 +
        </font>
 +
</source>
 +
 
 +
As you can see, each &lt;font&gt; element can be assigned to one or multiple targets, separated by commas. There can also be a single &lt;font&gt; element with no target attribute that overrides the defaults for the entire theme. The rule is that for each font, each parameter (size, color, font name) gets individually looked up first in a &lt;font&gt; element with the specific target; if it doesn't exist or doesn't have that parameter, it gets looked up in the base &lt;font&gt; element, and if that doesn't exist or doesn't have that parameter, the default is used. You should no longer use the old &lt;font_color&gt; element (though it is still supported for backwards compatibility).
 +
 
 +
As an example, the following theme.xml (combined with the appropriate TTF files) sets up the fonts exactly the same way as they are by default, but without actually falling back to the defaults:
 +
 
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 +
<theme version="1">
 +
        <description>Droid Sans font</description>
 +
        <font>
 +
                <file>DroidSans-Bold.ttf</file>
 +
                <size>16</size>
 +
        </font>
 +
        <font target="button,dlgtitle,appname">
 +
                <size>20</size>
 +
        </font>
 +
        <font target="memo">
 +
                <file>DroidSans.ttf</file>
 +
                <size>16</size>
 +
        </font>
 +
        <font target="button_desel">
 +
                <file>DroidSans.ttf</file>
 +
                <size>20</size>
 +
        </font>
 +
</theme></source>
 +
 
 +
Additionally, you can specify that the theme supports certain CKJ languages in its fonts, to enable those translations (though currently only Japanese is supported). Specify the language codes separated by commas as the langs attribute of the main &lt;theme&gt; element:
 +
<source lang="xml"><theme version="1" langs="ja"></source>
  
== Compatibility ==
+
Keep in mind that the button and button_desel fonts should always be different in some way (weight, size, color). Otherwise, you will not be able to tell the currently selected options in the options menu.
Note:  The Homebrew Channel requires that you system have at least one unpatched [[IOS]] in order to guarantee reliable performance; we've received too many bug reports that were later traced to misbehaving versions of IOS. The HackMii Installer will automatically choose an appropriate (unpatched) IOS to use when installing the Homebrew Channel; if you attempt to defeat this safety measure by replacing its IOS with a corrupted version, you may experience an "impaired HBC experience" (reportedly an upside-down screen).  Please just don't do it.
 
  
 
== Changelog ==
 
== Changelog ==
 +
=== 1.1.2 ===
 +
* PAL 50Hz (576i) video mode now works properly
 +
* BootMii/boot2 can be installed again on newer Wiis
 +
* Icons load again in The Homebrew Channel
 +
 +
=== 1.1.1 ===
 +
* WiiU (WiiMode) compatibility - new title ID and exploit
 +
 +
=== 1.1.0 ===
 +
* Added support for RVL-CNT-01-TR Wii Remotes
 +
* New TrueType font renderer (FreeType) with antialiasing and theming
 +
* The new default font is Droid Sans
 +
* Added full UTF-8/Unicode support (font dependent)
 +
* Added Japanese translation
 +
* IOS is always reloaded, use ahb_access to keep AHB access enabled
 +
* Fixed HBC framebuffer tearing/lag/sync/corruption issues
 +
* Aligned HBC graphics to the pixel grid (sharper graphics)
 +
* Aligned font rendering to the pixel grid in both 4:3 and 16:9 mode
 +
* Fixed/improved text layout
 +
* Fixed support for huge meta.xml files (e.g. very long descriptions)
 +
* Renamed "Coder" to "Author" in app descriptions (&lt;coder&gt; is now an alias for <author>)
 +
* Fixed missing theme app entries (sometimes)
 +
* Changed many crashes into explicit errors / a panic screen
 +
* Speed and stability improvements when launching apps (cleanup after IOS)
 +
* Reload stub: support any BAT setup (or even real mode)
 +
* Reload stub: do not depend on existing exception vectors
 +
* Reload stub: do not touch HID4
 +
* Reload stub: disable IRQs ASAP
 +
* Fixed bugs in device hotplugging support
 +
* Added nicer error message triggered when HBC runs out of memory while loading an app
 +
* Removed the <unknown> coder/version labels
 +
* Fixed memory leaks while loading themes and in app entries
 +
* Reduced the minimum theme size (for xml-only themes)
 +
* Increased the maximum theme size up to 20MB (for huge fonts)
 +
* Reduced memory fragmentation when loading apps/themes (less OOM errors)
 +
* Fixed sorting by release date
 +
* Fixed crashes with incomplete meta files
 +
* Themes now affect language choice (due to font differences)
 +
* HBC now allows apps to load code at 0x3400
 +
* Fixed various buffer overflow / error conditions
 +
* Fixed/improved thread synchronization and race conditions
 +
* Theme ZIP files can now contain .txt files, which are ignored (README.txt, etc.)
 +
* HBC can now take screenshots (Nunchuk Z+C, in that order)
 +
* Updated to devkitPro r24 and latest libogc/libfat git
 +
 +
=== 1.0.8 ===
 +
* General USB improvements for all IOS versions, this fixes the regression introduced in version 1.0.7.
 +
* USB2 support through IOS58.
 +
 +
=== 1.0.7 ===
 +
* New title id to circumvent its deletion by [[System Menu 4.3]].
 +
* New look from our favorite pixel artist drmr.
 +
* Both views now show five rows of application entries.
 +
* On-NAND settings.
 +
* HBC now has the HW_AHBPROT flags set for direct hardware access, thus replacing DVDX.
 +
* Ability to not reload IOS when launching an application.
 +
* USB access is more stable, thanks to tueidj
 +
* Fixed the retry mechanism for the network initialization.
 +
* Fixed some rare hangs upon launch and exit (Hopefully all of them).
 +
* Notable speed improvement.
 +
* Now capable of custom themes granted all files are of the same dimensions.
 +
 
=== 1.0.6 ===
 
=== 1.0.6 ===
 
* Freeze fix
 
* Freeze fix
Line 221: Line 429:
  
 
=== 1.0.1 ===
 
=== 1.0.1 ===
* Fixed B button issues
+
*Fixed B button issues
* Wiimotes are in-sync with System Menu
+
*Wii Remotes are in-sync with System Menu
 
* Possibly fixed the USB Ethernet Issues
 
* Possibly fixed the USB Ethernet Issues
 
* Fixed wiimote auto-shutdown
 
* Fixed wiimote auto-shutdown
Line 229: Line 437:
  
 
=== 1.0 ===
 
=== 1.0 ===
* Meta.xml supports all ISO-8859-1 characters
+
*Meta.xml supports all ISO-8859-1 characters
* Wiimote shutdown support
+
*Wii Remote shutdown support
 
* Rumble support (system menu settings)
 
* Rumble support (system menu settings)
 
* Fixed some crash bugs
 
* Fixed some crash bugs
 
* Fixed meta.xml UNIX style newline regression
 
* Fixed meta.xml UNIX style newline regression
* Support for Non-Nintendo wiimotes
+
* Support for Non-Nintendo Wii Remotes
 
* Classic Controller support
 
* Classic Controller support
 
* Nunchuk support (scroll only)
 
* Nunchuk support (scroll only)
 
* Guitar Hero 3 guitar support
 
* Guitar Hero 3 guitar support
 
* Left/Right button page scrolling
 
* Left/Right button page scrolling
* Hit 1 on [[Wiimote]] for net reload (like net icon click or GC Z)
+
* Hit 1 on [[Wii Remote]] for net reload (like net icon click or GC Z)
 
* Add information to installer
 
* Add information to installer
 
* Fixed network issues
 
* Fixed network issues
Line 259: Line 467:
 
* Removed return to system menu warning
 
* Removed return to system menu warning
 
* Fixed some graphical glitches
 
* Fixed some graphical glitches
* Compliant ELF loading code (if you get errors use [[ELF to DOL Converter]])
+
* Compliant ELF loading code (iff you get errors use [[ELF to DOL Converter]])
 
* Improved XML load code
 
* Improved XML load code
 
* Many fixes to underlying stuff in the newer [[libogc]]
 
* Many fixes to underlying stuff in the newer [[libogc]]
Line 266: Line 474:
 
* Removed the need to eject your memcards
 
* Removed the need to eject your memcards
 
* Converted from IOS35 to IOS21 (hbc is usable on older firmwares now)
 
* Converted from IOS35 to IOS21 (hbc is usable on older firmwares now)
* Improved SD card support **Thanks, [[User:svpe|svpe]]
+
* Improved SD card support
 +
**Thanks, [[User:svpe|svpe]]
 
* Improved translations
 
* Improved translations
 
* Fixed IP label
 
* Fixed IP label
Line 273: Line 482:
 
* Apps are now sorted alphabetically
 
* Apps are now sorted alphabetically
 
* Rumble support
 
* Rumble support
* Installer overhaul  
+
* Installer overhaul
 
** Added warning if your system menu is too new (future updates)
 
** Added warning if your system menu is too new (future updates)
  
Line 287: Line 496:
 
* GUI overhaul chapter 2
 
* GUI overhaul chapter 2
 
* Added translations
 
* Added translations
* Wiimote dragging on memo widget
+
* Wii Remote dragging on memo widget
* Auto-disconnect wiimote after idle time
+
* Auto-disconnect Wii Remote after idle time
 
* Other fixes I can't remember
 
* Other fixes I can't remember
  
Line 295: Line 504:
 
* Improved IR pointer
 
* Improved IR pointer
 
* Improved argv support
 
* Improved argv support
* Fixed [[wiimote| wiimote code]] bugs
+
* Fixed [[Wii Remote]] code bugs
 
* Fixed update bugs
 
* Fixed update bugs
 
* SD card is scanned for boot.dol then boot.elf
 
* SD card is scanned for boot.dol then boot.elf
  
 
=== Beta 4 ===
 
=== Beta 4 ===
* Added wiimote IR cursor
+
* Added Wii Remote IR cursor
  
 
=== Beta 3 ===
 
=== Beta 3 ===
 
* Fixed flicker glitch
 
* Fixed flicker glitch
* Stable wiimote libs
+
* Stable Wii Remote libs
 
* Support for argv
 
* Support for argv
  
 
==FAQ== <!-- Do not remove this section without asking permission on #wiidev -->
 
==FAQ== <!-- Do not remove this section without asking permission on #wiidev -->
The official FAQ from the developers of the Homebrew Channel can be found [http://hbc.hackmii.com/faq here.]
+
The official FAQ from the developers of the Homebrew Channel can be found [http://hbc.hackmii.com/faq here].
 
 
== Bugs ==
 
If you believe you've found a bug in the Homebrew Channel, report it [http://Bugs.hackmii.com here].
 
  
 
== Easter Eggs ==
 
== Easter Eggs ==
Line 317: Line 523:
 
Being able to pop the bubbles in the background of the HBC was a frequent request, and as of 1.0, it is possible.
 
Being able to pop the bubbles in the background of the HBC was a frequent request, and as of 1.0, it is possible.
  
Press {{Nowrap begin}}{{Wiimote2Button}} '''+''' {{Wiimote1Button}}{{Nowrap end}} and the animated background will be the only thing visible, along with a score counter in the bottom right hand corner.  Place the hand cursor over any bubble and it will pop, spawning smaller bubbles and adding to the score counter. The smaller bubbles can also be popped.  When you are done, press {{Nowrap begin}}{{Wiimote2Button}} '''+''' {{Wiimote1Button}}{{Nowrap end}} again to return to the list of applications.
+
Press {{Nowrap begin}}{{Wiimote2Button}} '''+''' {{Wiimote1Button}}{{Nowrap end}} and the animated background will be the only thing visible, along with a score counter in the bottom right hand corner.  Place the hand cursor over any bubble and it will pop, spawning smaller bubbles and adding to the score counter. The smaller bubbles can also be popped.  When you are done, press {{Nowrap begin}}{{Wiimote2Button}} '''+''' {{Wiimote1Button}}{{Nowrap end}} again to return to the list of applications.
 
If you leave the wii on this screen for too long, it will crash.
 
If you leave the wii on this screen for too long, it will crash.
  
Line 326: Line 532:
 
:1. {{Note|1}}[[IOS51]] problems
 
:1. {{Note|1}}[[IOS51]] problems
  
[[Category:Loaders| Wii Homebrew Launcher|Homebrew]]
+
[[Category:Wii channels]]
[[Category:Featured homebrew]]
 

Latest revision as of 00:02, 11 April 2019

Homebrew Channel
Homebrew channel logo.png
General
Author(s)Team Twiizers
TypeLoader
Version1.1.2 (December 8, 2012)
LicenceGNU GPL v2
Links
Download
Website
Bugs Discussion
Source
Peripherals
Wiimote1.svg SensorBar.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller Les Paul Controller Loads files from the Front SD slot Loads files from SDHC cards in the Front SD slot USBGecko2.svg SD Gecko Local WiFi Internet USB mass storage device

The Homebrew Channel is a self-updating homebrew application loader by Team Twiizers which allows users to load homebrew applications without having to run an exploit every time. Once installed, users can access the channel from the Wii System Menu just like any other Wii channel. It can launch or install homebrew applications from an SD or SDHC card or via TCP/USB Gecko using Wiiload. You can install the Homebrew Channel as part of the HackMii Installer by seeing the Installation part of this page.

Installation

See also: Homebrew status


READ THE DISCLAIMER! In the VERY unlikely case that your Wii gets bricked by the installer, this will let you know where you stand in regards to Team Twiizers.

Pick an exploit

Some of these are specific to certain versions of the System Menu, while others are not but require you to own a certain Wii game in order to use them.

System Menu 3.4 And Below System Menu 4.2 And Below Any System Menu
TwilightHack 0.1beta1.png
Bannerbomb.png

NTSC-U/NTSC-J/PAL

Smashstack.png/SmashstackJP.png/SmashstackKOR.png
Any System Menu Any System Menu Any System Menu
Indiana pwns.png
PAL ONLY
Yu-Gi-OWNED.png

(NTSC-U/J use Yu-Gi-Vah)

Bathaxx.png
Any System Menu Any System Menu System Menu 4.3 - LetterBomb
Return of the Jodi.png
EriHakawai.png
Letterbomb.png

Using a loader

  1. Download the HackMii Installer.
  2. Extract the HackMii Installer to find the boot.elf
  3. Place the boot.elf file in the root (SD:/ ) of your SD card.
  4. Boot the loader that will work for your System Menu.
  5. Wait for the Hackmii Installer to run tests on your Wii
  6. Press Wiimote 1 Button when told to continue installing HBC and BootMii. NOTE: Newer Wii Remotes with WiiMotion+ integrated will not work with the Hackmii Installer. You'll need to use (borrow from a friend?) the older Wii Remote style and perform a red-button synchronisation on the System Menu to use the Hackmii Installer. As in Hackmii Installer v1.0, Wii Remotes with WiiMotion+ will work.

The installation should be automatic from this point on, and your Wii will reboot.

Using a DVD

The DVD method requires a drivechip and won't work with the 3.3 firmware update or newer. DVD images for the more recent versions are currently unavailable, though you can install beta8 and then update.

Using a previous unsigned code-loading method

If you have an older version of the Homebrew Channel or another means of executing unsigned code, you can use the auto update function to install the latest version.

Configuring Applications

In order to make an application appear in the Homebrew Channel, the following steps must be taken:

  1. Make a folder on the root of your SD card called "apps".
  2. In the folder "apps," create a folder for the application (for this example, ScummVM will be used).
  3. Copy the files for the application into its folder (e.g. apps/scummvm/).
  4. Find the executable file (either .elf or .dol) and rename it to boot.elf (or boot.dol if it was a .dol file) if it is not already named that (e.g. apps/scummvm/boot.dol). If the app comes with these files, copy the icon.png and meta.xml files into this folder.

Now the application will appear in the Homebrew Channel. However, if the application did not come with icon.png or meta.xml, its appearance on the menu is ugly, and difficult to distinguish from other applications. To fix this, text and an image can be added.

Adding Text

To add text to an application in the Homebrew Channel, do the following: (note: you may install the Homebrew Browser and download pre-formatted apps without performing this step for every app)

  1. Make a file in the folder of the application (e.g. apps/ScummVM/) called "meta.xml" (e.g. apps/ScummVM/meta.xml).
  2. Open "meta.xml" in Notepad and add the following text as a template:
  3.   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <app version="1">
        <name></name>
        <coder></coder>
        <version></version>
        <release_date></release_date>
        <short_description></short_description>
        <long_description></long_description>
      </app>
  4. Add the appropriate information in between the relevant indicators. For example, the name of the application goes between <name> and </name>. The purpose of each field is as follows:
  5.   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <app version="1">
        <name>The name of the application</name>
        <coder>The name of the person or group that wrote the code for the program.</coder>
        <version>The version of the application.</version>
        <release_date>The data the application was released.
        It has to be a timestamp using this format: YYYYmmddHHMMSS</release_date>
        <short_description>This is displayed on the main menu of the Homebrew Channel 
        (before you select an application) and is used as a space to add a few words
         to describe the program.</short_description>
        <long_description>This is displayed once the application is chosen. It describes 
         the program and its function in great detail, and can be used to elaborate 
         on a program's controls.</long_description>
      </app>

An example of a completed "meta.xml" for ScummVM is provided below:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <app version="1">
    <name>ScummVM</name>
    <coder>dhewg</coder>
    <version>rev32231</version>
    <release_date>20080523000000</release_date>
    <short_description>Point &amp; Click Adventures</short_description>
    <long_description>ScummVM is a program which allows you to run certain classic 
    graphical point-and-click adventure games,provided you already have their 
    data files. The clever part about this: ScummVM just replaces the executables 
    shipped with the games, allowing you to play them on systems for which they 
    were never designed! Some of the adventures ScummVM supports include Adventure 
    Soft's Simon the Sorcerer 1 and 2; Revolution's Beneath A Steel Sky, 
    Broken Sword 1 and Broken Sword 2; Flight of the Amazon Queen; Wyrmkeep's Inherit 
    the Earth; Coktel Vision's Gobliiins; Westwood Studios' The Legend of Kyrandia 
    and games based on LucasArts' SCUMM (Script Creation Utility for Maniac Mansion) 
    system such as Monkey Island, Day of the Tentacle, Sam and Max and more.
    </long_description>
  </app>

Optional meta.xml XML nodes

The following nodes must be children of the <app> node.

Additionally supported by The Homebrew Channel (starting with v1.0.7):

node name meaning example
arguments list of arguments passed to the loaded application as argc and argv
<arguments>
  <arg>--loaded-by-hbc</arg>
  <arg>insane argument with spaces</arg>
</arguments>
ahb_access Requests full hardware access (AHBPROT)
<ahb_access/>

FAQ

Q: Is this required to get full hardware access?

Adding an Icon

See also: Homebrew Channel icons

In order to make icons for the Homebrew Channel show up, they must be in .png format with dimensions of 128x48 pixels. The full alpha channel can be used. Copy it into the folder of the application under the name "icon.png" (e.g. apps/scummvm/icon.png).

Complete Setup Format

You should have a compatible SD or SDHC card. See here for a list of SD and SDHC cards known to be compatible or incompatible. Note: it is by no means a complete list.

An SD card should be formatted in FAT16 or FAT32. After you have installed the apps on your SD card, its folder structure should look something like this:

  • Removable Disk (eg: (E:) on Windows and where it is mounted to on Linux or Mac OS X eg: /media/disk/ )
    • apps
      • ScummVM
        • boot.dol
        • meta.xml(Optional)
        • icon.png(Optional)
      • WiiShopInstaller
        • boot.dol
        • meta.xml(Optional)
        • icon.png(Optional)

If you have any problems having your Applications showing up on the 'HBC', make sure you are following the correct format.

Loading from USB

Apps on your USB storage device are stored like on a SD card.

Controls

You can use Wii Remote Aim to navigate though the app list.

Wiimote.svg ClassicController.svg or Nunchuck alternative.svg Action
Wiimote D-Pad Up / Wiimote D-Pad Down Up/Down
Wiimote - Button Classic - Button / Classic L Trigger Page left
Wiimote + Button Classic + Button / Classic R Trigger Page right
Wiimote A Button Classic a Button Select
Wiimote HOME Button Menu
Wii Remote Aim + Wiimote B Button Classic Left Control Stick or Nunchuck Control Stick Scroll text
Wiimote B Button Classic b Button Back
Wiimote 1 Button Classic x Button Settings
Wiimote 2 Button Classic y Button Swap view
Wiimote Power Button Shutdown
Nunchuck Z Button + Nunchuck C Button Screenshots

Uninstall

Removing the channel can be done by simply deleting it with the channel management in the Wii system software.

Compatibility

Note: The Homebrew Channel requires that you system have at least one unpatched IOS in order to guarantee reliable performance; we've received too many bug reports that were later traced to misbehaving versions of IOS. The HackMii Installer will automatically choose an appropriate (unpatched) IOS to use when installing the Homebrew Channel; if you attempt to defeat this safety measure by replacing its IOS with a corrupted version, you may experience an "impaired HBC experience" (an upside-down screen or a warning message at every startup). Please just don't do it.

Themes

As of 1.0.7, The Homebrew Channel is capable of theming. The images and fonts are stored in a theme.zip, which can be executed like a boot.dol from the Homebrew Channel.

For a theme database and a "How to install" guide, check this page.

Further details on this can be found at Hackmii.

Fonts

As for 1.1.0, you can use your own TrueType or OpenType fonts with The Homebrew Channel. You can assign a font, size, and color to individual GUI elements:

element ID meaning
label Labels (background info, group headings, "Author" and "Version")
button Buttons (and "radio" buttons)
button_desel Radio buttons (not currently selected)
dlgtitle Message box title
memo Text box (description or message)
appname Application name in main browser
appdesc Application description in main browser

Each font can be specified using a <font> element inside the theme.xml file. You can specify the file, size, and color like this:

        <font target="memo,dlgtitle">
                <file>foo.ttf</file>
                <size>16</size>
                <color><red>0</red><green>0</green><blue>0</blue><alpha>255</alpha></color>
        </font>

As you can see, each <font> element can be assigned to one or multiple targets, separated by commas. There can also be a single <font> element with no target attribute that overrides the defaults for the entire theme. The rule is that for each font, each parameter (size, color, font name) gets individually looked up first in a <font> element with the specific target; if it doesn't exist or doesn't have that parameter, it gets looked up in the base <font> element, and if that doesn't exist or doesn't have that parameter, the default is used. You should no longer use the old <font_color> element (though it is still supported for backwards compatibility).

As an example, the following theme.xml (combined with the appropriate TTF files) sets up the fonts exactly the same way as they are by default, but without actually falling back to the defaults:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<theme version="1">
        <description>Droid Sans font</description>
        <font>
                <file>DroidSans-Bold.ttf</file>
                <size>16</size>
        </font>
        <font target="button,dlgtitle,appname">
                <size>20</size>
        </font>
        <font target="memo">
                <file>DroidSans.ttf</file>
                <size>16</size>
        </font>
        <font target="button_desel">
                <file>DroidSans.ttf</file>
                <size>20</size>
        </font>
</theme>

Additionally, you can specify that the theme supports certain CKJ languages in its fonts, to enable those translations (though currently only Japanese is supported). Specify the language codes separated by commas as the langs attribute of the main <theme> element:

<theme version="1" langs="ja">

Keep in mind that the button and button_desel fonts should always be different in some way (weight, size, color). Otherwise, you will not be able to tell the currently selected options in the options menu.

Changelog

1.1.2

  • PAL 50Hz (576i) video mode now works properly
  • BootMii/boot2 can be installed again on newer Wiis
  • Icons load again in The Homebrew Channel

1.1.1

  • WiiU (WiiMode) compatibility - new title ID and exploit

1.1.0

  • Added support for RVL-CNT-01-TR Wii Remotes
  • New TrueType font renderer (FreeType) with antialiasing and theming
  • The new default font is Droid Sans
  • Added full UTF-8/Unicode support (font dependent)
  • Added Japanese translation
  • IOS is always reloaded, use ahb_access to keep AHB access enabled
  • Fixed HBC framebuffer tearing/lag/sync/corruption issues
  • Aligned HBC graphics to the pixel grid (sharper graphics)
  • Aligned font rendering to the pixel grid in both 4:3 and 16:9 mode
  • Fixed/improved text layout
  • Fixed support for huge meta.xml files (e.g. very long descriptions)
  • Renamed "Coder" to "Author" in app descriptions (<coder> is now an alias for <author>)
  • Fixed missing theme app entries (sometimes)
  • Changed many crashes into explicit errors / a panic screen
  • Speed and stability improvements when launching apps (cleanup after IOS)
  • Reload stub: support any BAT setup (or even real mode)
  • Reload stub: do not depend on existing exception vectors
  • Reload stub: do not touch HID4
  • Reload stub: disable IRQs ASAP
  • Fixed bugs in device hotplugging support
  • Added nicer error message triggered when HBC runs out of memory while loading an app
  • Removed the <unknown> coder/version labels
  • Fixed memory leaks while loading themes and in app entries
  • Reduced the minimum theme size (for xml-only themes)
  • Increased the maximum theme size up to 20MB (for huge fonts)
  • Reduced memory fragmentation when loading apps/themes (less OOM errors)
  • Fixed sorting by release date
  • Fixed crashes with incomplete meta files
  • Themes now affect language choice (due to font differences)
  • HBC now allows apps to load code at 0x3400
  • Fixed various buffer overflow / error conditions
  • Fixed/improved thread synchronization and race conditions
  • Theme ZIP files can now contain .txt files, which are ignored (README.txt, etc.)
  • HBC can now take screenshots (Nunchuk Z+C, in that order)
  • Updated to devkitPro r24 and latest libogc/libfat git

1.0.8

  • General USB improvements for all IOS versions, this fixes the regression introduced in version 1.0.7.
  • USB2 support through IOS58.

1.0.7

  • New title id to circumvent its deletion by System Menu 4.3.
  • New look from our favorite pixel artist drmr.
  • Both views now show five rows of application entries.
  • On-NAND settings.
  • HBC now has the HW_AHBPROT flags set for direct hardware access, thus replacing DVDX.
  • Ability to not reload IOS when launching an application.
  • USB access is more stable, thanks to tueidj
  • Fixed the retry mechanism for the network initialization.
  • Fixed some rare hangs upon launch and exit (Hopefully all of them).
  • Notable speed improvement.
  • Now capable of custom themes granted all files are of the same dimensions.

1.0.6

  • Freeze fix
  • Some other minor hiccups

1.0.5

  • System Menu 4.2 support
  • Improved startup
  • HBC prefers boot.elf over boot.dol when launching apps
  • Improved fonts [enjoy :)]
  • Widescreen support:
    • If your Wii is set to 16:9 in the system menu options, HBC won’t stretch the picture like it did in older versions
  • Grid view:
    • 4 columns on 16:9 TVs
    • 3 columns on 4:3 TVs
  • Device hot-swapping:
  • Added a menu for device options
  • App sorting
    • Name
    • Release date
      • For release date sorting to work a valid release_date tag must be present in the apps meta.xml file
  • Wiiload overhaul
    • On-the-fly compression
    • Improved USBGecko support
    • libftdi support
      • Because of these improvements, older wiiload versions and 3rd party upload clients are incompatible. Use the bundled v0.5, binaries and source code are included
  • Basic app management :
    • To add apps: Just wiiload a ZIP archive, it will then get extracted to the active device. The ZIP file must be structured in a certain way, check this description for the details
    • Added option to delete apps

1.0.4

  • Fixed POWER button bug (BootMii IOS)
  • Turned HBC upside down for those who modified the contents of the HBC or installed it using a "wad manager"

1.0.3

  • SDHC support... again
  • Improved SD Card support (regression was introduced in v1.0.2)
  • HBC is compatable with all pre-4.2 system menu versions (stock 3.3 post Oct 23 has issues1)
  • Fixed rare hangs when exiting HBC
  • Added translation for "Launch BootMii" button

1.0.2

  • Added "Launch BootMii" button (BootMii IOS) to home menu
  • System Menu 4.0 support
  • USB support
  • Manual shutdown support

1.0.1

  • Fixed B button issues
  • Wii Remotes are in-sync with System Menu
  • Possibly fixed the USB Ethernet Issues
  • Fixed wiimote auto-shutdown
  • Possibly fixed "video after shutdown" Issues
  • Changes to () -> *

1.0

  • Meta.xml supports all ISO-8859-1 characters
  • Wii Remote shutdown support
  • Rumble support (system menu settings)
  • Fixed some crash bugs
  • Fixed meta.xml UNIX style newline regression
  • Support for Non-Nintendo Wii Remotes
  • Classic Controller support
  • Nunchuk support (scroll only)
  • Guitar Hero 3 guitar support
  • Left/Right button page scrolling
  • Hit 1 on Wii Remote for net reload (like net icon click or GC Z)
  • Add information to installer
  • Fixed network issues
  • Pushed in some text to avoid overscan crop
  • Widened video width to match System Menu ("black bars" fix)
  • B returns from app screen (unless scrolling)
  • Auto-connect support
  • Retry network init
  • Reload stub now identifies itself (magic number)
  • Support for broken HTTP proxies in update check
  • Added IOS revision in main menu

Beta 9

  • Installer / updater now works with the October 23 update
  • SDHC support
  • Fixed memory card bug
  • Installer now picks newest sane IOS (fixes some beta 8 regressions)
  • Added reload button (SD card)
  • Removed return to system menu warning
  • Fixed some graphical glitches
  • Compliant ELF loading code (iff you get errors use ELF to DOL Converter)
  • Improved XML load code
  • Many fixes to underlying stuff in the newer libogc

Beta 8

  • Removed the need to eject your memcards
  • Converted from IOS35 to IOS21 (hbc is usable on older firmwares now)
  • Improved SD card support
  • Improved translations
  • Fixed IP label
  • Improved argv support
  • Fixed wiiload issue
  • Apps are now sorted alphabetically
  • Rumble support
  • Installer overhaul
    • Added warning if your system menu is too new (future updates)

Beta 7

(Initial Public Release besides chainloader)

  • Minor bugfixes
  • GUI updates
  • Added translations
  • ISO distribution
  • First public beta

Beta 6

  • GUI overhaul chapter 2
  • Added translations
  • Wii Remote dragging on memo widget
  • Auto-disconnect Wii Remote after idle time
  • Other fixes I can't remember

Beta 5

  • GUI overhaul chapter 1
  • Improved IR pointer
  • Improved argv support
  • Fixed Wii Remote code bugs
  • Fixed update bugs
  • SD card is scanned for boot.dol then boot.elf

Beta 4

  • Added Wii Remote IR cursor

Beta 3

  • Fixed flicker glitch
  • Stable Wii Remote libs
  • Support for argv

FAQ

The official FAQ from the developers of the Homebrew Channel can be found here.

Easter Eggs

Pop the Bubbles!

Being able to pop the bubbles in the background of the HBC was a frequent request, and as of 1.0, it is possible.

Press Wiimote 2 Button + Wiimote 1 Button and the animated background will be the only thing visible, along with a score counter in the bottom right hand corner. Place the hand cursor over any bubble and it will pop, spawning smaller bubbles and adding to the score counter. The smaller bubbles can also be popped. When you are done, press Wiimote 2 Button + Wiimote 1 Button again to return to the list of applications. If you leave the wii on this screen for too long, it will crash.


NOTE: As of version HBC 1.0.5 the Pop the bubbles (with scoring) is removed. You can still pop the bubbles (without scoring) by pointing at the bubbles as usual, but you cannot prompt a score board. You can also remove the SD Card (and/or USB drive) to make more room on the screen.

Notes

1. ^ IOS51 problems