24
edits
m (still learning how to diff ;)) |
(then again, this isn't really required) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
This page describes how you build a Wii or Gamecube binary from the ScummVM source tree. | This page describes how you build a Wii or Gamecube binary from the ScummVM source tree. | ||
Required tools and/or libraries might change at times, and differences for various ScummVM versions are pointed out when necessary. | Required tools and/or libraries might change at times, and differences for various ScummVM versions are pointed out when necessary. | ||
Line 14: | Line 10: | ||
* libogc and libfat | * libogc and libfat | ||
The latter two libraries are part of devkitPPC and are already installed with it. However, official ScummVM Wii and Gamecube binaries use unofficial versions, available via [http://git.or.cz/ git] [http:// | The latter two libraries are part of devkitPPC and are already installed with it. However, official ScummVM Wii and Gamecube binaries use unofficial versions, available via [http://git.or.cz/ git] [http://repo.or.cz/w/libogc.git here] and [http://repo.or.cz/w/libfat.git here]. | ||
== Versions differences == | == Versions differences == | ||
* v0.12.0 (first official version) is built with devkitPPC r15 | * v0.12.0 (first official version) is built with devkitPPC r15 | ||
* | * starting with v0.13.0, devkitPPC r16 is used | ||
* starting with revision 44189, [http://repo.or.cz/w/libgxflux.git libgxflux] in mandatory | |||
= Optional libraries = | = Optional libraries = | ||
Line 76: | Line 64: | ||
=== Tremor === | === Tremor === | ||
Get a SVN checkout ( | Get a SVN checkout (r16259 as of this writing): | ||
svn co http://svn.xiph.org/ | svn co http://svn.xiph.org/trunk/Tremor | ||
patch it: | patch it: | ||
Line 153: | Line 141: | ||
= Compiling = | = Compiling = | ||
This port doesn't utilize ScummVM's <tt>configure</tt> system, instead it comes with a simple Makefile. The port code can be found in two directories: | == 1.0.0 and greater == | ||
The Wii and Gamecube port can be compiled with the <tt>configure</tt> script. The most basic way to accomplish this is to run: | |||
./configure --host=wii | |||
make | |||
If you want to build a Gamecube binary, just use | |||
./configure --host=gamecube | |||
make | |||
instead. | |||
The script supports various arguments, which you can use to en- or disable features, see <tt>./configure --help</tt>. | |||
Two of the [[#Optional libraries|optional libraries]] are already part of libogc: | |||
* zlib, used to (de-)compress save games. It gets automatically detected with a recent libogc version. | |||
* libmad, used for MP3 playback. It gets automatically detected with a recent libogc version. | |||
Others are not, and if you want support for it, you need cross-compiled binaries: | |||
* libFLAC, used for FLAC lossless audio playback. Use the ''--with-flac-prefix=<directory>'' argument. | |||
* Tremor, used for OGG audio playback. Use the ''--with-tremor-prefix=<directory>'' argument. | |||
If you followed the [[#Optional libraries|above description]] and have those libraries in <tt>$DEVKITPRO/3rd/wii</tt>, the <tt>configure</tt> command line would look like this: | |||
./configure --host=wii --with-flac-prefix=$DEVKITPRO/3rd/wii --with-tremor-prefix=$DEVKITPRO/3rd/wii | |||
Additionally, there're a few make targets for your convenience: | |||
* <tt>make wiiload</tt> - uploads a compiled Wii binary over TCP/IP. | |||
* <tt>make geckoupload</tt> - uploads a compiled binary over a USBGecko device. | |||
* <tt>make wiidist</tt> - copies all required files for the Wii into the ''dist'' subdirectory, read to copy onto your SD card for the Homebrew Channel. | |||
* <tt>make gcdist</tt> - same for Gamecube. | |||
* <tt>make wiigdb</tt> - starts GDB and loads your compiled binary, ready to debug. | |||
* <tt>make wiidebug</tt> - starts GDB with your binary and attaches remotely to the Wii via a USBGecko device. | |||
== v0.13.x and below == | |||
This port doesn't utilize ScummVM's <tt>configure</tt> system for v0.12.0, instead it comes with a simple Makefile. The port code can be found in two directories: | |||
./backends/fs/wii/ | ./backends/fs/wii/ | ||
Line 163: | Line 190: | ||
* There is no support for dynamic libraries on the Wii or Gamecube, keep an engine toggle at <tt>STATIC_PLUGIN</tt> or disable it by just commenting that line | * There is no support for dynamic libraries on the Wii or Gamecube, keep an engine toggle at <tt>STATIC_PLUGIN</tt> or disable it by just commenting that line | ||
* Vanilla scalers | * Vanilla scalers are not supported by the Wii port | ||
* [http://www.zlib.net/ zlib] and [http://www.underbit.com/products/mad/ MAD] are part of libogc | * [http://www.zlib.net/ zlib] and [http://www.underbit.com/products/mad/ MAD] are part of libogc | ||
* MPEG2 support has been dropped from the Wii port, if you want support for it, you have to cross compile [http://libmpeg2.sourceforge.net/ libmpeg2] | * MPEG2 support has been dropped from the Wii port, if you want support for it, you have to cross compile [http://libmpeg2.sourceforge.net/ libmpeg2] |
edits