ScummVM/Wii compilation instructions?

Subforum for discussion and help with ScummVM's Nintendo Wii port

Moderator: ScummVM Team

Nvaer
Posts: 7
Joined: Thu Aug 14, 2008 1:20 pm

Post by Nvaer »

I replaced the boot.dol from inside the apps/scummvm directory with the one inside /new/0.13.0_Other (I don't remember the name exactly right now). 'Mouse' works, I have tested to play Lure of the temptress and it works.
User avatar
Mr_Nick666
Posts: 132
Joined: Wed Apr 11, 2007 9:59 am
Location: Bideford, Devon, UK
Contact:

Post by Mr_Nick666 »

Im interested to try this myself :) Will post feedback
Nvaer
Posts: 7
Joined: Thu Aug 14, 2008 1:20 pm

Post by Nvaer »

I tried to compile it myself and I'm getting this error:

Code: Select all

ld.exe: cannot find -lvorbisidec
collect2: ld returned 1 exit status
make: *** [scummvm-wii.elf] Error 1
Tried to search the vorbisidec library I think I need, but no luck, anyone knows how to fix this?
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

Nvaer wrote:I tried to compile it myself and I'm getting this error:

Code: Select all

ld.exe: cannot find -lvorbisidec
collect2: ld returned 1 exit status
make: *** [scummvm-wii.elf] Error 1
Tried to search the vorbisidec library I think I need, but no luck, anyone knows how to fix this?
You need the OGG Vorbis library, which you can get from http://www.vorbis.com/
Nvaer
Posts: 7
Joined: Thu Aug 14, 2008 1:20 pm

Post by Nvaer »

Final steps, when creating the scummvm-wii.elf, I'm getting many errors.
Although I have set not to use tremor, flac, mpeg2. I'm getting:

Code: Select all

graphics/libgraphics.a(mpeg_player.o): In function 'Graphics::BaseAnimationState::init(char const*)':
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:138: undefined reference to 'mpeg2_init'
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:144: undefined reference to 'mpeg2_info'
graphics/libgraphics.a(mpeg_player.o): In function '~BaseAnimationState':
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:55: undefined reference to 'mpeg2_close'
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:55: undefined reference to 'mpeg2_close'
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:55: undefined reference to 'mpeg2_close'
graphics/libgraphics.a(mpeg_player.o): In function 'Graphics::BaseAnimationState::decodeFrame()':
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:161: undefined reference to 'mpeg2_parse'
..\backends\platform\wii/../../../graphics/mpeg_player.cpp:167: undefined reference to 'mpeg2_buffer'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::getStreamDecoderState() const':
..\backends\platform\wii/../../../sound/flac.cpp:290: undefined reference to 'FLAC__seekable_stream_decoder_get_stream_decoder_state'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::callbackError(FLAC__StreamDecoderErrorStatus)':
..\backends\platform\wii/../../../sound/flac.cpp:704: undefined reference to 'FLAC__StreamDecoderErrorStatusString'
..\backends\platform\wii/../../../sound/flac.cpp:704: undefined reference to 'FLAC__StreamDecoderErrorStatusString'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::processSingleBlock()':
..\backends\platform\wii/../../../sound/flac.cpp:299: undefined reference to 'FLAC__seekable_stream_decoder_process_single'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::seekAbsolute(unsigned long long)':
..\backends\platform\wii/../../../sound/flac.cpp:317: undefined reference to 'FLAC__seekable_stream_decoder_seek_absolute'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::readBuffer(short*, int)':
..\backends\platform\wii/../../../sound/flac.cpp:393: undefined reference to 'FLAC__StreamDecoderStateString'
..\backends\platform\wii/../../../sound/flac.cpp:393: undefined reference to 'FLAC__StreamDecoderStateString'
..\backends\platform\wii/../../../sound/flac.cpp:276: undefined reference to 'FLAC__seekable_stream_decoder_finish'
..\backends\platform\wii/../../../sound/flac.cpp:277: undefined reference to 'FLAC__seekable_stream_decoder_delete'
..\backends\platform\wii/../../../sound/flac.cpp:276: undefined reference to 'FLAC__seekable_stream_decoder_finish'
..\backends\platform\wii/../../../sound/flac.cpp:277: undefined reference to 'FLAC__seekable_stream_decoder_delete'
sound/libsound.a(flac.o): In function 'Audio::FlacInputStream::processUntilEndOfMetadata()':
..\backends\platform\wii/../../../sound/flac.cpp:308: undefined reference to 'FLAC__seekable_stream_decoder_process_until_end_of_metadata'
sound/libsound.a(flac.o): In function 'FlacInputStream':
..\backends\platform\wii/../../../sound/flac.cpp:200: undefined reference to 'FLAC__seekable_stream_decoder_new'
..\backends\platform\wii/../../../sound/flac.cpp:212: undefined reference to 'FLAC__seekable_stream_decoder_set_read_callback'
..\backends\platform\wii/../../../sound/flac.cpp:213: undefined reference to 'FLAC__seekable_stream_decoder_set_seek_callback'
..\backends\platform\wii/../../../sound/flac.cpp:214: undefined reference to 'FLAC__seekable_stream_decoder_set_tell_callback'
..\backends\platform\wii/../../../sound/flac.cpp:215: undefined reference to 'FLAC__seekable_stream_decoder_set_length_callback'
..\backends\platform\wii/../../../sound/flac.cpp:216: undefined reference to 'FLAC__seekable_stream_decoder_set_eof_callback'
..\backends\platform\wii/../../../sound/flac.cpp:217: undefined reference to 'FLAC__seekable_stream_decoder_set_write_callback'
..\backends\platform\wii/../../../sound/flac.cpp:218: undefined reference to 'FLAC__seekable_stream_decoder_set_metadata_callback'
..\backends\platform\wii/../../../sound/flac.cpp:219: undefined reference to 'FLAC__seekable_stream_decoder_set_error_callback'
..\backends\platform\wii/../../../sound/flac.cpp:220: undefined reference to 'FLAC__seekable_stream_decoder_set_client_data'
..\backends\platform\wii/../../../sound/flac.cpp:222: undefined reference to 'FLAC__seekable_stream_decoder_init'
sound/libsound.a(vorbis.o): In function 'Audio::VorbisInputStream::refill()':
..\backends\platform\wii/../../../sound/vorbis.cpp:225: undefined reference to 'ov_time_tell'
..\backends\platform\wii/../../../sound/vorbis.cpp:240: undefined reference to 'ov_time_seek'
..\backends\platform\wii/../../../sound/vorbis.cpp: undefined reference to 'ov_read'
sound/libsound.a(vorbis.o): In function 'Audio::VorbisInputStream::readBuffer(short*, int)':
..\backends\platform\wii/../../../sound/vorbis.cpp:205: undefined reference to 'ov_time_tell'
..\backends\platform\wii/../../../sound/vorbis.cpp:210: undefined reference to 'ov_time_seek'
sound/libsound.a(vorbis.o): In function '~VorbisInputStream':
..\backends\platform\wii/../../../sound/vorbis.cpp:188: undefined reference to 'ov_clear'
..\backends\platform\wii/../../../sound/vorbis.cpp:188: undefined reference to 'ov_clear'
sound/libsound.a(vorbis.o): In function 'VorbisInputStream':
..\backends\platform\wii/../../../sound/vorbis.cpp:144: undefined reference to 'ov_open_callbacks'
..\backends\platform\wii/../../../sound/vorbis.cpp:166: undefined reference to 'ov_time_total'
..\backends\platform\wii/../../../sound/vorbis.cpp:177: undefined reference to 'ov_time_seek'
..\backends\platform\wii/../../../sound/vorbis.cpp:183: undefined reference to 'ov_info'
..\backends\platform\wii/../../../sound/vorbis.cpp:184: undefined reference to 'ov_info'
collect2: ld returned 1 exit status
make: *** [scummvm-wii.elf] Error 1
raschi
Posts: 46
Joined: Mon Jan 23, 2006 6:57 pm

Post by raschi »

Bossk: I believe your 0.12.0 SDHC build is the GameCube build. I tested it with Monkey 3. No wiimote. GameCube pad works.

By the way. Where is dhewg? Haven't seen him post here for months. Have the Nintendo ninjas taken him?
User avatar
Bossk
Posts: 101
Joined: Mon Nov 03, 2008 2:15 pm

Post by Bossk »

I spoke to dhewg yesterday. He's quite busy lately and does not have a lot of time for ScummVM. He still is the Wii port maintainer and is planning to spend more time on it.

I've made a new svn build which could use some feedback.
The same svn checkout is used, linked to libogc git (SDHC support) and libfat git (large SD performance boost).

COMI runs very smooth now, without any hickups at all.
FLAC, Ogg/Vorbis, MPEG2 is still supported.

Read the included README-SVN-BUILD for reasons why I had to split the boot.dol into two different version again.
Simply put it's the limited memory (70Mb) of the Wii which for large games (only COMI so far) just isn't enough sometimes.

Feedback please.
Which games work, does SDHC work? Does the large boot.dol work properly too?

scummvm-wii-SDHC_2008114.rar

//Bossk
raschi
Posts: 46
Joined: Mon Jan 23, 2006 6:57 pm

Post by raschi »

I figured he was busy. I was hoping for a bugfix release before v0.13.
I will test your new builds asap.
User avatar
Bossk
Posts: 101
Joined: Mon Nov 03, 2008 2:15 pm

Post by Bossk »

I will be doing some debugging / testing on COMI soon.
I really want to find out if that game really needs so much memory.
Nvaer
Posts: 7
Joined: Thu Aug 14, 2008 1:20 pm

Post by Nvaer »

If I compile scummvm without tremor, flac and mpeg2 support it works, but when I try to compile it with any of those three I can't.
Bossk, could you write a small tut about compiling these libs to see if I'm missing something, and some download links of the libs you used (version of the libs too) if possible?
User avatar
noize
Posts: 126
Joined: Mon Oct 31, 2005 3:08 pm

Post by noize »

How about using the ScummVM plugin system. That should save on some memory issues.
User avatar
Bossk
Posts: 101
Joined: Mon Nov 03, 2008 2:15 pm

Post by Bossk »

That would be great, but unfortunately the Wii homebrew does not support dynamic loading of modules (yet).
User avatar
Bossk
Posts: 101
Joined: Mon Nov 03, 2008 2:15 pm

Post by Bossk »

Nvaer wrote:If I compile scummvm without tremor, flac and mpeg2 support it works, but when I try to compile it with any of those three I can't.
Bossk, could you write a small tut about compiling these libs to see if I'm missing something, and some download links of the libs you used (version of the libs too) if possible?
You must crosscompile those libs to the Wii / gekko kit before you can use them.
These are the instructions for libTremor (for integer based vorbis decoding), the other libs are similar:

Code: Select all

cd libtremor/
CC=$DEVKITPRO/devkitPPC/bin/powerpc-gekko-gcc ./configure --host=ppc --disable-altivec --disable-sdl --disable-accel-detect
make
(don't worry IF the linking phase fails, you're only interested in the headers + .a file)

cp .libs/libvorbisidec.a $DEVKITPRO/devkitPPC/powerpc-gekko/lib/
mkdir -p $DEVKITPRO/devkitPPC/powerpc-gekko/include/tremor
cp *.h $DEVKITPRO/devkitPPC/powerpc-gekko/include/tremor
User avatar
dhewg
ScummVM Porter
Posts: 166
Joined: Wed Jun 04, 2008 8:41 pm

Post by dhewg »

i wanted to post build instructions for a long time now, sorry i haven't... until now ;)

find it here: http://wiki.scummvm.org/index.php/Compiling_ScummVM/Wii

if there is anything unclear just let me know
Post Reply