Preenv/FAQ

m (Angry Birds Rio)
(How to get a specific game working)
Line 217: Line 217:
  # apt-get install libvorbisidec1
  # apt-get install libvorbisidec1
-
=== H.A.W.X ===
+
=== H.A.W.X , Castle of Magic ===
*Create the cryptofs folder and symlink it to your installation directory:
*Create the cryptofs folder and symlink it to your installation directory:
  mkdir -p /media/cryptofs/apps/usr/palm/applications
  mkdir -p /media/cryptofs/apps/usr/palm/applications
  ln -s /(Installation path)/com.gameloft.app.hawx / /media/cryptofs/apps/usr/palm/applications/
  ln -s /(Installation path)/com.gameloft.app.hawx / /media/cryptofs/apps/usr/palm/applications/
 +
*For Castle of Magic, replace the H.A.W.X folder name with Castle of Magic's(i.e:com.gameloft.app.castleofmagic)
Symlinking is not required if you are using preenv 0.1.6 or equivalent.
Symlinking is not required if you are using preenv 0.1.6 or equivalent.

Revision as of 17:51, 5 May 2011

Contents

How to install Preenv?

Gain root access and use apt-get in the terminal:

$ root
# apt-get install preenv
# exit

What do I use to extract an ipk file

An .ipk file can be extracted with 7-zip or any tool that is able to extract Debian packages (dpkg, file-roller, etc)


Here is a video guide on how to install WebOS games on the N900: http://www.youtube.com/watch?v=pGQwWZ_VriA

Or you can follow the steps below...

How to install a game

You will need FileBox and rootsh from the Extras repository.

  • Use 7-zip to extract the game-folder from the .ipk file.
  • Copy the game-folder to /home/user/[webOS-games]
$ sudo gainroot
# cd game-folder
# chmod ug+x filename

where, filename = nfsuc in case of Need for Speed or sims in case of Sims3.

  • You also need to change file ownership and group of the game-folder using the command:
# chown -R user:users game-folder

Taking Hero Of Sparta as an example,

# chown -R user:users /home/user/webOS/com.gameloft.app.heroofsparta/HeroOfSparta

NOTE: If your game was installed via a .deb file then you shall find it in

/home/opt/preenv/usr/palm/applications/com.gameloft.app.heroofsparta/HeroOfSparta

Changing the file ownership is vital for allowing the execution of any game.

  • Launch the game
$ preenv
$ ./filename
  • Once you know that the game runs properly, you can add a menu icon
$ sudo gainroot
$ preenv
# desktopgen game-folder/appinfo.json
# exit
# exit

How to delete a game

  • Run preenv and cd to the game-folder
$ preenv
$ cd game-folder
  • Become root and use desktopgen to delete the menu entry
$ sudo gainroot
# preenv
# desktopgen -r appinfo.json
# exit
# exit
  • Now you can delete the game folder itself
$ cd ..
$ rm -r game-folder

Deleting games installed with old preenv 0.1

  • Become root and delete the folder
$ sudo gainroot
# rm -r game-folder
  • To remove the menu icon, you need to delete three files
# rm /usr/share/applications/hildon/filename.desktop
# rm /usr/share/dbus-1/services/filename.service
# rm /usr/share/icons/hicolor/scalable/hildon/filename.png
  • Or try this (if you used nfsuc installer before) :
$ rm -rf /home/user/NFS*
$ rm -rf /home/user/MyDocs/NFS*
$ rm /home/user/.local/share/applications/hildon/filename.desktop
$ rm /home/user/.local/share/icons/hicolor/scalable/hildon/filename.png
  • Refresh your menu
$ killall hildon-desktop

How to get a specific game working

N.O.V.A

  • You need to install a few extra packages first, and then you can follow the regular install guide.
$ sudo gainroot   
# apt-get update   
# apt-get install libsdl-net1.2 

Monopoly

  • After installing and creating an icon, perform the following step:
$ cd *monopoly
$ sudo gainroot
# chmod -R 777 monopolyclassic/save

Asphalt5

How to make it run:

$ mkdir -p /home/user/webos/gamesave 
$ ln -s /home/user/webos/gamesave /media/internal
$ chown -R user:root /home/user/webos/
$ chmod -R 755 /home/user/webos/
$ chown -R user:root /home/user/webos/gamesave
$ chmod -R 755 /home/user/webos/gamesave
  • if using preenv 0.1.7, you also need to install libvorbisidec1 in the case of music problems:
$ root
# apt-get install libvorbisidec1

NFSU

Easy way:

Manual way:

  • Get root privileges:
root
  • Install preenv and OpenGLES1 (you need to enable extras-devel):
apt-get install libgles1 preenv
  • Create main game dirECTORY on eMMC card:
mkdir -p /home/user/MyDocs/Games/nfs
  • Go to that directory and copy dowloaded .ipk file from your desktop (or download here directly) :
cd /home/user/MyDocs/Games/nfs
scp user@COMPUTER:/path/to/game/com.ea.app.nfsuc_20.0.28_all.ipk /home/user/MyDocs/Games/nfs
  • Create file for loopback mount:
dd if=/dev/zero of=/home/user/MyDocs/Games/nfs/nfsu.ext2 count=120 bs=1024k
  • Create ext2 filesystem on it
mkfs.ext2 /home/user/MyDocs/Games/nfs/nfsu.ext2
  • Press 'y'
  • Make a mount-point:
mkdir /mnt/nfsu
  • Save it to the /etc/fstab :
echo -e "/home/user/MyDocs/Games/nfs/nfsu.ext2\t/mnt/nfsu\text2\tloop,auto\t0\t0" >> /etc/fstab 
  • Finally, mount it:
mount  /mnt/nfsu/
  • Create symlink from /usr/palm (NFSU installs there) to the mount-point:
ln -s /mnt/nfsu/ /usr/palm
  • Extract the .ipk file:
dpkg -X /home/user/MyDocs/Games/nfs/com.ea.app.nfsuc_20.0.28_all.ipk /mnt/nfsu/
  • Make binary executable:
chmod +x /mnt/nfsu/applications/com.ea.app.nfsuc/nfsuc
  • Create desktop launcher:
desktopgen /mnt/nfsu/applications/com.ea.app.nfsuc/appinfo.json

Unable to connect to USB after above method?

After following the above tutorial, if you are unable to access your N900 on your PC via USB Mass Storage mode, open xterm on your device:

  • Get root privileges:
root
  • Unmount the image file:
umount /mnt/nfsu
  • Once you're done with USB you can remount the image:
mount /mnt/nfsu

Driver

Install libgles

  • Get root privileges
root
apt-get install libgles1 libgles2

Fix corrupt/black screen problem

  • Create the file /etc/powervr.d/driver.ini containing these two lines:
[default]
ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add ONE extra BLANK line (so a total of three lines) and try again.

see http://talk.maemo.org/showpost.php?p=862561&postcount=455

Shrek Karting

Install libgles1

  • Get root privileges
root
  • Install OpenGLES1 and OpenGLES2 (needs extras-devel)
apt-get install libgles1 libgles2

Improve corrupted/black graphics problem

  • Create the file /etc/powervr.d/ShrekKarting.ini containing these two lines:
[default]
ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add TWO extra BLANK lines (so a total of four lines) and try again.

Graphics is still not perfect - lighting textures are still not good.

Galcon , Cronk

  • (With external libsdlpre.so)Rotate the screen to 0 by typing the following command in X-Terminal):
gconftool-2 --set --type int /apps/preenv/Galcon/screen_rotation 0

Replace Galcon with your exe name for Cronk.

Settlers

  • If using preenv 0.1.7, in order to get the music working you need to install libvorbisidec1:
# apt-get install libvorbisidec1

H.A.W.X , Castle of Magic

  • Create the cryptofs folder and symlink it to your installation directory:
mkdir -p /media/cryptofs/apps/usr/palm/applications
ln -s /(Installation path)/com.gameloft.app.hawx / /media/cryptofs/apps/usr/palm/applications/
  • For Castle of Magic, replace the H.A.W.X folder name with Castle of Magic's(i.e:com.gameloft.app.castleofmagic)

Symlinking is not required if you are using preenv 0.1.6 or equivalent.

Angry Birds Rio

If the game crashes, perform the following step:

$ cd (Angry Birds Rio folder(the folder with settings.lua))
$ sudo gainroot
# chmod -R 777 settings.lua

Is there a way to get multitouch working in Preenv

Currently there is an unofficial modifiable patch for preenv 0.1.4 that is using the keyboard as the second touch.It needs to be configured properly for each game to get the QWERTY keyboard to work.There is a tutorial for it.

  • To get the patch working,download the patch to your device and type in X-terminal(Assuming that your patch is allocated in MyDocs):
cd MyDocs
sudo gainroot
/home/user/MyDocs # mv libsdlpre.so /opt/preenv/lib/libsdlpre.so 

There are also some unofficial Mods that makes the configuration easier: Avatar

Download all configuration files from Here or Here (also includes PS3 Controller and Game Gripper)

  • To get the mods working to, you need to type the following commands in the X-terminal(Assuming that the file is allocated in the MyDocs):
$ mv /home/user/MyDocs/(Modname).sh (Modname).sh 
$ chmod +x (Modname).sh
$ ./(Modname).sh

Save space (Transfer games to MyDocs folder)

If you are running out of space in the /home/user/ directory, you can move part of the game, which usually takes up the most space, to /home/user/MyDocs.

NOTE: You still need the game folders to be in the /home/user/[webos] directory; only some of the files are transferred to MyDocs.

Example using NFSU:

This example assumes NFSU does not exist in /home/user/[webos].

  • Open xterm and create a folder in MyDocs:
mkdir /home/user/MyDocs/preenv
mkdir /home/user/MyDocs/preenv/nfsu
  • Create NFSU folder in /home/user/[webos]:
mkdir /home/user/[webos]/com.ea.app.nfsuc
  • Copy only the files indicated as below from the NFSU source (location where ipk file has been extracted) to /home/user/[webos]
cp [SOURCE]/com.ea.app.nfsuc/appinfo.json /home/user/[webos]/com.ea.app.nfsuc/
cp [SOURCE]/com.ea.app.nfsuc/nfsuc /home/user/[webos]/com.ea.app.nfsuc/
  • Copy res_nfsuc folder from NFSU to MyDocs:
cp -r [SOURCE]/com.ea.app.nfsuc/res_nfsuc /home/user/MyDocs/preenv/nfsu/
  • Now create a symbolic link res_nfsuc in the [webos] nfsuc folder that points to the actual res_nfsuc folder in the MyDocs folder:
ln -s /home/user/MyDocs/preenv/nfsu/res_nfsuc /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc
  • Don't forget to change the permission of the executable nfsu file in [webos]:
sudo gainroot
chmod +rwx /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc/nfsuc
exit
  • Now you should still be able to play NFSU, having saved roughly 110MB on /home/user/[webos].

Example using BrainChallenge

The example assumes BrainChallenge does not exist in /home/user/[webos].

  • Open xterm and create a folder in MyDocs:
mkdir /home/user/MyDocs/preenv
mkdir /home/user/MyDocs/preenv/brainchallenge
  • Create BrainChallenge folder in /home/user/[webos]:
mkdir /home/user/[webos]/com.gameloft.app.brainchallenge
  • Copy only the files indicated as below from the BrainChallenge source (location where ipk file has been extracted) to /home/user/[webos]
cp [SOURCE]/com.gameloft.app.brainchallenge/appinfo.json /home/user/[webos]/com.gameloft.app.brainchallenge/
cp [SOURCE]/com.gameloft.app.brainchallenge/icon.png /home/user/[webos]/com.gameloft.app.brainchallenge/
  • Copy files from the brainchallenge folder from BrainChallenge source to MyDocs:
cp [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/*.* /home/user/MyDocs/preenv/brainchallenge/
  • Also copy any subdirectories in the brainchallenge folder to MyDocs:
cp -r [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/sounds /home/user/MyDocs/preenv/brainchallenge/
  • Copy the following code and save it to a file with the name 'createln.sh'. NOTE: Do not save this file using Windows Notepad; if using Windows, use software like TextPad to save the file in unix format. Copy this file to any folder on your N900.
#!/bin/sh

cd $1
files="`ls -1 $1`"

for file in $files
do
    echo $file
    ln -s $1/$file $2/$file
done
  • Create folder brainchallenge in [webos] brainchallenge folder:
mkdir /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge
  • Copy the brainchallenge executable file from Brainchallenge source location to the [webos] folder:
cp [source]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/
  • Now create symbolic links in the [webos] brainchallenge folder that point to the actual files in the brainchallenge folder located in MyDocs (using createln):
sh [..]/createln /home/user/MyDocs/preenv/brainchallenge/brainchallenge/ /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge
  • Also create symbolic links to any folders inside the brainchallenge folder in MyDocs:
ln -s /home/user/MyDocs/preenv/brainchallenge/brainchallenge/sounds /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/sounds
  • Don't forget to change the permission of the executable brainchallege file in [webos]:
sudo gainroot
chmod +rwx /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge
exit
  • Now you should still be able to play BrainChallenge, having saved roughly 114MB on /home/user/.

This method has been confirmed to work with Asphalt 5, Blades of Fury, Oregon Trail and X-Plane Airliner also.

Save space (Transfer games to MyDocs folder) NOOB Version 1.0

Use this method if previous method is too tricky as it was for me. You will need FileBox, Rootsh, and a basic understanding of X Terminal

Step 1: Locate your game folders. There are two possible locations:

Either at /home/user/ or /home/opt/preenv/usr/palm/applications

Step 2: Once found you need to distinguish which files are the largest and would be wise to move to save space. I suggest moving sound folders, music folders, and videos folders. Leave save files and executable files as it is.

NB: Save folders usually are named "save" and are usually small in size (kb/b) To locate executable files for games use this command:

Using Hero Of Sparta as an example:

cd /home/user/webOS/com.gameloft.app.heroofsparta
grep main appinfo.json

This will give you the result:

"main" : "HeroOfSparta/HeroOfSparta"

So you know not to move this file.

Step 3: Time to move!

  • Using FileBox's "Create New Folder" feature {found after you tap the wrench icon} go to MyDocs and make a folder their called WebOSGames.
  • Now using the copy feature {which is accessed when a specific folder is "pressed" for about 2seconds, a menu pops up giving options such as copy, etc}, copy the folders and files desired from the game folder to the WebOSGames folder in MyDocs

DELETE the originals from the game folder.

Step 4: Time to create some symlinks! Open up X Terminal and get rooted. TIP: Have FileManager open in the WebOSGames folder to see what files and folders you need to link.

The command to create symlinks is:

ln -s {source} {link}

Using NFSUC as an example:

ln -s /home/user/MyDocs/WebOSGames/res_nfsuc /home/user/webOS/com.ea.app.nfsuc/res_nfsuc

This will create a link from the NFSUC game folder to the folder containing the res_nfsuc folder

Now your game will still run and you have lots of space to add more games.

TIP: You can also delete videos from game folders that are not necessary or that do not play. Asphalt 5 has videos not necessary for the game to run so they can be DELETED.

For some games you will need to create symlinks for multiple folders e.g. Driver and N.O.V.A. this is why I suggest having a separate filemanager open such as the one that comes with the N900, so that you can see which file/folder you have to link next.

Enjoy :)

References

  • 1. Asphalt fix TMO post #1, #2
  • 2. Avatar fix TMO post #1, #2
  • 3. H.A.W.X fix TMO post #1, #2

External links

External libsdlpre.so download