TinyLoad

From WiiFloWiki
Jump to: navigation, search
TinyLoad
Tinyload.png
General
Author(s)marcan
TypeLoader
Latest Version0.2
LicenceGPLv2
Links
Download
Source
Peripherals
DVD Drive
Donate to this Wiki and Wiiflow!

Page Cloud
Page "TinyLoad" has no subpages to list.

TinyLoad is a region-free original Wii game loader in 4096 bytes.

Contents

2011-08 update: LetterBomb compatible build

LetterBomb compatible version. This fixes a bug and makes it work straight from LetterBomb, which lets you play imports while making no changes to your Wii. To use this, download LetterBomb without the "bundle" checkbox checked, and instead place this boot.elf on your SD card. Clicking on the red envelope will then boot whatever (original, but possibly imported) disc is inserted (the disc must be inserted first).

What?

TinyLoad is a simple original Wii game launcher. You run it, it launches whatever's inserted into the drive. Simple. It ignores game regions, so it's region-free. It won't install updates. It won't load burned copies. There are no controls or settings.

The user interface shows two things: progress, and error status. A white bar across the bottom of the screen shows the current (rough) progress. If an error is detected, a portion of the top of the screen will turn red. It will then attempt to launch The Homebrew Channel (only applies to recent versions with the JODI Title ID). If this fails then it will simply hang.

If the launcher freezes with the progress bar visible and no red error box, then you've probably hit a bug. Try the debug version if you have a USB Gecko.

If it freezes with a black screen after the progress bar has reached its endpoint and disappeared, then the game itself is freezing.

I obviously have only tested this with a few games. Chances are it doesn't work with every Wii game out there.

The debug version requires a USB Gecko and shows debug messages over it.

Notes

Broken stuff

Who?

Program:
Copyright 2008-2009 Hector Martin (marcan) <marcan@marcansoft.com>

Supporting code:
Copyright 2008-2009 Segher Boessenkool <segher@kernel.crashing.org>
Copyright 2008-2009 Andre Heider (dhewg) <dhewg@wiibrew.org>
Copyright 2008 Nuke <wiinuke@gmail.com>

Awesome icon:
Copyright 2009 Freddy Leitner (drmr)

This code is licensed to you under the terms of the GNU GPL, version 2; see file COPYING or [1].

The icon is licensed under CC-BY-NC-SA 3.0

Why?

Because:

I also think that low-level apps that tightly hug the hardware are very educational, so why not. And hey, the code is pretty short, so you ought to be able to read it completely and learn how all this crazy Wii stuff actually works :-)

How?

TinyLoad is not compressed. The 4 kilobytes are raw code and data, plus the ELF header. The original loader was fit in 4 kilobytes by avoiding bloated libraries like libogc and instead using a small codebase pieced together from bits of the Twilight Hack and of HBC's reload stub. Extra features (SYSCONF reading, RTC reading, proper lowmem settings, VI stuff, progress bar, etc) were added by making space via a combination of increasingly complex compiler options, manual tweaks, and micro-optimization.

Nonetheless, there is almost no assembly code and the C code, though compact and odd at times, should be moderately readable. Just keep in mind that I deliberately leave old values floating around and/or use odd initializations in order to simplify the code. Also, I haven't commented most of it. If you're really interested, give me a shout and I'll see what I can do to make it more acceptable.

If you want some real fun, load the ELF in IDA. The function inlining and tail call goodness ought to provide tons of entertainment.

The 4K binary was compiled with powerpc-linux-gcc version 4.3.3.

Where?

Personal tools
View and edit namespaces data
Variants
Actions
Navigation
Wiiflow
Softmod
Toolbox
Google AdSense