ScummVM
From iPodLinux
(wiki markup. yay) |
|||
| Line 54: | Line 54: | ||
[[User:Sid77|Sid77]] | [[User:Sid77|Sid77]] | ||
| - | = Compiling melknin's patch = | + | == Compiling melknin's patch == |
| - | To compile, I assume you have the [[toolchain]] already set up. Additionally, you should have retrieved the iPodLinux libraries: | + | To compile, I assume you have the [[toolchain]] already set up. Additionally, you should have retrieved the iPodLinux libraries: |
| - | + | svn co https://ipodlinux.svn.sourceforge.net/svnroot/ipodlinux/libs libs | |
| - | You should then get the patch and apply it to ScummVM revision 35535: | + | |
| - | + | You should then get the patch and apply it to ScummVM revision 35535: | |
| - | wget http://ipodlinux.org/w/images/b/b5/Scummvm.r35535.patch | + | wget http://ipodlinux.org/w/images/b/b5/Scummvm.r35535.patch |
| - | svn co -r 35535 https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk/ scummvm | + | svn co -r 35535 https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk/ scummvm |
| - | cd scummvm | + | cd scummvm |
| - | patch -p0 < ../Scummvm.r35535.patch | + | patch -p0 < ../Scummvm.r35535.patch |
| - | + | ||
| - | + | Finally, configure and make | |
| - | Finally, configure and make | + | ./configure --disable-mt32emu --host=ipod |
| - | + | make | |
| - | ./configure --disable-mt32emu --host=ipod | + | |
| - | make | + | At this point, I usually get the following linker error |
| - | + | scummvm.elf2flt(.text+0x3726c4): In function `wrapInSaveFile(Common::SeekableReadStream*)': | |
| - | + | backends/saves/compressed/compressed-saves.cpp:31: undefined reference to `Common::wrapCompressedReadStream(Common::SeekableReadStream*)' | |
| - | At this point, I usually get the following linker error | + | scummvm.elf2flt(.text+0x3726ec): In function `wrapOutSaveFile(Common::WriteStream*)': |
| - | + | backends/saves/compressed/compressed-saves.cpp:35: undefined reference to `Common::wrapCompressedWriteStream(Common::WriteStream*) | |
| - | scummvm.elf2flt(.text+0x3726c4): In function `wrapInSaveFile(Common::SeekableReadStream*)': | + | collect2: ld returned 1 exit status |
| - | backends/saves/compressed/compressed-saves.cpp:31: undefined reference to `Common::wrapCompressedReadStream(Common::SeekableReadStream*)' | + | |
| - | scummvm.elf2flt(.text+0x3726ec): In function `wrapOutSaveFile(Common::WriteStream*)': | + | I think this is caused by a bug in the Makefile of this revision. You have to add the <tt>common/libcommon.a</tt> library higher in the link chain, in particular before the backends/libbackends.a. I.e. issue the command (in one single line) |
| - | backends/saves/compressed/compressed-saves.cpp:35: undefined reference to `Common::wrapCompressedWriteStream(Common::WriteStream*) | + | arm-uclinux-elf-g++ -Wl,-elf2flt -lm backends/platform/ipod/events.o backends/platform/ipod/graphics.o backends/platform/ipod/main.o |
| - | collect2: ld returned 1 exit status | + | backends/platform/ipod/sdl.o backends/platform/ipod/cop.o base/libbase.a engines/scumm/libscumm.a engines/agi/libagi.a engines/agos/libagos.a |
| - | + | engines/cine/libcine.a engines/drascula/libdrascula.a engines/gob/libgob.a engines/groovie/libgroovie.a engines/kyra/libkyra.a engines/lure/liblure.a | |
| - | + | engines/parallaction/libparallaction.a engines/queen/libqueen.a engines/saga/libsaga.a engines/sky/libsky.a engines/sword1/libsword1.a | |
| - | I think this is caused by a bug in the Makefile of this revision. You have to add the common/libcommon.a library higher in the link chain, in particular before the backends/libbackends.a. I.e. issue the command | + | engines/sword2/libsword2.a engines/touche/libtouche.a engines/tucker/libtucker.a gui/libgui.a graphics/libgraphics.a sound/libsound.a common/libcommon.a |
| - | + | engines/libengines.a backends/libbackends.a common/libcommon.a ../libs/ttk/libs/SDL/libSDL.a -o scummvm | |
| - | arm-uclinux-elf-g++ -Wl,-elf2flt -lm backends/platform/ipod/events.o backends/platform/ipod/graphics.o backends/platform/ipod/main.o backends/platform/ipod/sdl.o backends/platform/ipod/cop.o base/libbase.a engines/scumm/libscumm.a engines/agi/libagi.a engines/agos/libagos.a engines/cine/libcine.a engines/drascula/libdrascula.a engines/gob/libgob.a engines/groovie/libgroovie.a engines/kyra/libkyra.a engines/lure/liblure.a engines/parallaction/libparallaction.a engines/queen/libqueen.a engines/saga/libsaga.a engines/sky/libsky.a engines/sword1/libsword1.a engines/sword2/libsword2.a engines/touche/libtouche.a engines/tucker/libtucker.a gui/libgui.a graphics/libgraphics.a sound/libsound.a common/libcommon.a engines/libengines.a backends/libbackends.a common/libcommon.a ../libs/ttk/libs/SDL/libSDL.a -o scummvm | + | |
| - | + | ||
== Setup/configuration == | == Setup/configuration == | ||
| Line 95: | Line 94: | ||
[[Category:Emulators]] | [[Category:Emulators]] | ||
| - | |||
Revision as of 10:06, 19 November 2009
| Script Creation Utility for Maniac Mansion Virtual Machine | |
| | |
| Category | Emulators |
|---|---|
| Maintainer | Sid77 |
| Last updated | 25 Mar 2008 |
| Version | 0.9.0_20080325 |
| Runs on | 5G, 5.5G, mini? |
| Requires | iPodLinux |
| Download | Melknin patch against ScummVM r35535, Old binary |
| Support | IRC |
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 game, allowing you to play them on systems for which they were never designed!
Contents |
Obtaining ScummVM
Binary
- Grab the binary from the link in the project box
- Unpack it on your ipod
Building source code
Those instructions are orribly outdated, left here just for reference: you should grab Melknin patch and toying around with it.
- Install the Toolchain
- Checkout the libs folder via Svn
- Download patched scummvm sources tarball from the link in the project box and unpack it, your working directory should ends up with two folders: one called "libs" and one called "scummvm"
- Enter the newly created scummvm folder
- Configure the program with:
sh cfg.txt - Build the program with:
make - Copy the newly created scummvm binary to your iPod
Running ScummVM
Launch
- You can run ScummVM games using iLaunch.
- A quick and dirty method is to directly call the ScummVM binary from loader.cfg passing two arguments:
scummvm --path=/path/to/gameid gameid
Commands
- Menu is UP
- Play/Pause is DOWN
- Forward is RIGHT
- Rewind is LEFT
- Scroll Left is LEFT MOUSE BUTTON
- Scroll Right is RIGHT MOUSE BUTTON
- Center Button is LEFT MOUSE BUTTON
- Hold is ESC
Clicking on the right target is tricky sometimes as pushing one button also generate scroll event from the touchpad but, at least, now we've both left and right mouse button :-p
Additional infos
- itsdvw original source code is still avalaible, you can get it with:
svn co http://opensvn.csie.org/ipodscummvm/trunk/scummvm - You need to play around with your config file in order to have a working installation, a vital entry is autosave, so set it ;-)
- Most of useful informations are stored in this forum thread.
- Forum user Melknin gives a new spin to the project! See this post: http://ipodlinux.org/forums/viewtopic.php?p=1030#p1030
Compiling melknin's patch
To compile, I assume you have the toolchain already set up. Additionally, you should have retrieved the iPodLinux libraries:
svn co https://ipodlinux.svn.sourceforge.net/svnroot/ipodlinux/libs libs
You should then get the patch and apply it to ScummVM revision 35535:
wget http://ipodlinux.org/w/images/b/b5/Scummvm.r35535.patch svn co -r 35535 https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk/ scummvm cd scummvm patch -p0 < ../Scummvm.r35535.patch
Finally, configure and make
./configure --disable-mt32emu --host=ipod make
At this point, I usually get the following linker error
scummvm.elf2flt(.text+0x3726c4): In function `wrapInSaveFile(Common::SeekableReadStream*)': backends/saves/compressed/compressed-saves.cpp:31: undefined reference to `Common::wrapCompressedReadStream(Common::SeekableReadStream*)' scummvm.elf2flt(.text+0x3726ec): In function `wrapOutSaveFile(Common::WriteStream*)': backends/saves/compressed/compressed-saves.cpp:35: undefined reference to `Common::wrapCompressedWriteStream(Common::WriteStream*) collect2: ld returned 1 exit status
I think this is caused by a bug in the Makefile of this revision. You have to add the common/libcommon.a library higher in the link chain, in particular before the backends/libbackends.a. I.e. issue the command (in one single line)
arm-uclinux-elf-g++ -Wl,-elf2flt -lm backends/platform/ipod/events.o backends/platform/ipod/graphics.o backends/platform/ipod/main.o backends/platform/ipod/sdl.o backends/platform/ipod/cop.o base/libbase.a engines/scumm/libscumm.a engines/agi/libagi.a engines/agos/libagos.a engines/cine/libcine.a engines/drascula/libdrascula.a engines/gob/libgob.a engines/groovie/libgroovie.a engines/kyra/libkyra.a engines/lure/liblure.a engines/parallaction/libparallaction.a engines/queen/libqueen.a engines/saga/libsaga.a engines/sky/libsky.a engines/sword1/libsword1.a engines/sword2/libsword2.a engines/touche/libtouche.a engines/tucker/libtucker.a gui/libgui.a graphics/libgraphics.a sound/libsound.a common/libcommon.a engines/libengines.a backends/libbackends.a common/libcommon.a ../libs/ttk/libs/SDL/libSDL.a -o scummvm
Setup/configuration
Copy the binary to your ipod as well as games. If you're using an iPod with low resolution, the default GUI theme is not going to display properly on the iPod. You should get the scummipod_theme.tgz file and extract it to /usr/share/scummvm. Then create a shortcut/link/loader entry to launch the binary with this theme: /usr/bin/scummvm --gui-theme=/usr/share/scummvm/scummipod.
Controls are as follows:
- Scroll counter-clockwise to left click
- Scroll clockwise to right click
- Press each of the four directions to move the cursor
- Move the hold button to bring up the menu (to save/load or quit)