Difference between revisions of "Compiling ScummVM/Wii"

Jump to navigation Jump to search
1,150 bytes added ,  19:40, 18 February 2011
then again, this isn't really required
(new git URLs)
(then again, this isn't really required)
 
(5 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.
First, you have to choose how to obtain the sources:
* a downloaded [http://scummvm.org/downloads.php#source sources archive]
* a [https://sourceforge.net/svn/?group_id=37116 SVN] checkout (latest is ''trunk'')


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 15: Line 11:


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].
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].
Reasons:
* libogc's <tt>malloc()</tt> has been [http://repo.or.cz/w/libogc.git?tag=ce9b85c1fa659d39ac26b72b82e31844c50bfdf6&p=libogc.git&a=commitdiff&h=ce9b85c1fa659d39ac26b72b82e31844c50bfdf6&hb=28e632dab2820a98ea3399e3090761581f034df7&tm=1366734 modfied] to utilize [http://wiibrew.org/wiki/Memory_Map MEM2]. Without this patch, a single binary with all game engines won't be able to run all games (like COMI) due to memory limits
* libfat gained a read-ahead cache, without it video sequences will stutter
Nevertheless, ScummVM should build just fine with either versions.


== 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
* ''trunk'' (and eventually v0.13.0) changed to devkitPPC r16
* 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 74: Line 64:
=== Tremor ===
=== Tremor ===


Get a SVN checkout (rev 15592 as of this writing):
Get a SVN checkout (r16259 as of this writing):


  svn co http://svn.xiph.org/branches/lowmem-branch/Tremor
  svn co http://svn.xiph.org/trunk/Tremor


patch it:
patch it:
Line 151: 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/
24

edits

Navigation menu