Chloé – Arts & Sciences

Créer un Application Bundle Mac OS pour les jeux ScummVM

par Chloé le 18 octobre 2009, dans la catégorie Informatique, Tutoriel

Le but de ce tutoriel: vous aider à créer un Application Bundle OSX transportable, déplaçable sur d’autres systèmes, permettant de jouer à des jeux Scumm, en gardant ses sauvegardes dans les applications, pour éviter toute dispersion au delà de ce fichier. C’est idéal si vous transportez ces jeux sur une carte CF ou une clé USB par exemple.

Création du .app

Ouvrez l’application Terminal (Utilitaires/Terminal). Créez un répertoire ‘MyScummGame.app’;

mkdir MyScummGame.app

Créer la hiérarchie des fichiers

mkdir -p 'Contents/MacOS/' # va contenir les binaires
mkdir -p 'Contents/Resources/game' # va contenir les données du jeu
mkdir -p 'Contents/Resources/saves' # va contenir les sauvegardes du jeu

Créer ensuite un fichier d’icônes. Trouver une capture d’écran, une icône PNG ou quoi que ce soit et avec un quelconque logiciel capable de le faire, la convertir en icône .icns. Nommer le fichier game.icns et le déplacer vers la destination ‘Contents/Resources/game.icns’

cp ~/Images/monIcone.icns Contents/Resources/game.icns

Ensuite, déplacer les données du jeu Scumm dans Contents/Resources/game/

cp -R ~/monJeuScumm/* Contents/Resources/game/

Extraire de ScummVM.app (en imaginant qu’il se trouve dans le répertoire de base de l’utilisateur) le fichier scummvm et le déplacer dans le répertoire Contents/MacOS/

cp ~/ScummVM.app/Contents/MacOS/scummvm Contents/MacOS/

Voici une liste des jeux pour la version actuelle de Scumm (1.0.0rc143760). Il faut tenir compte de la valeur « Game ID »

Game ID              Full Title
-------------------- ------------------------------------------------------
atlantis             Indiana Jones and the Fate of Atlantis
indy3                Indiana Jones and the Last Crusade
loom                 Loom
maniac               Maniac Mansion
monkey               The Secret of Monkey Island
monkey2              Monkey Island 2: LeChuck's Revenge
pass                 Passport to Adventure
samnmax              Sam & Max Hit the Road
tentacle             Day of the Tentacle
zak                  Zak McKracken and the Alien Mindbenders
ft                   Full Throttle
dig                  The Dig
comi                 The Curse of Monkey Island
activity             Putt-Putt & Fatty Bear's Activity Pack
brstorm              Bear Stormin'
fbear                Fatty Bear's Birthday Surprise
fbpack               Fatty Bear's Fun Pack
funpack              Putt-Putt's Fun Pack
puttmoon             Putt-Putt Goes to the Moon
puttputt             Putt-Putt Joins the Parade
airport              Let's Explore the Airport with Buzzy
arttime              Blue's Art Time Activities
balloon              Putt-Putt and Pep's Balloon-O-Rama
baseball             Backyard Baseball
baseball2001         Backyard Baseball 2001
Baseball2003         Backyard Baseball 2003
basketball           Backyard Basketball
Blues123Time         Blue's 123 Time Activities
BluesABCTime         Blue's ABC Time Activities
BluesBirthday        Blue's Birthday Adventure
BluesTreasureHunt    Blue's Treasure Hunt
catalog              Humongous Interactive Catalog
chase                SPY Fox in Cheese Chase
farm                 Let's Explore the Farm with Buzzy
football             Backyard Football
football2002         Backyard Football 2002
freddi               Freddi Fish 1: The Case of the Missing Kelp Seeds
freddi2              Freddi Fish 2: The Case of the Haunted Schoolhouse
freddi3              Freddi Fish 3: The Case of the Stolen Conch Shell
freddi4              Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch
freddicove           Freddi Fish 5: The Case of the Creature of Coral Cave
FreddisFunShop       Freddi Fish's One-Stop Fun Shop
jungle               Let's Explore the Jungle with Buzzy
lost                 Pajama Sam's Lost & Found
maze                 Freddi Fish and Luther's Maze Madness
moonbase             Moonbase Commander
mustard              SPY Fox in Hold the Mustard
pajama               Pajama Sam 1: No Need to Hide When It's Dark Outside
pajama2              Pajama Sam 2: Thunder and Lightning Aren't so Frightening
pajama3              Pajama Sam 3: You Are What You Eat From Your Head to Your Feet
pjgames              Pajama Sam: Games to Play On Any Day
puttcircus           Putt-Putt Joins the Circus
puttrace             Putt-Putt Enters the Race
PuttsFunShop         Putt-Putt's One-Stop Fun Shop
putttime             Putt-Putt Travels Through Time
puttzoo              Putt-Putt Saves the Zoo
readtime             Blue's Reading Time Activities
SamsFunShop          Pajama Sam's One-Stop Fun Shop
soccer               Backyard Soccer
Soccer2004           Backyard Soccer 2004
SoccerMLS            Backyard Soccer MLS Edition
socks                Pajama Sam's Sock Works
spyfox               SPY Fox 1: Dry Cereal
spyfox2              SPY Fox 2: Some Assembly Required
spyozon              SPY Fox 3: Operation Ozone
thinker1             Big Thinkers First Grade
thinkerk             Big Thinkers Kindergarten
water                Freddi Fish and Luther's Water Worries
agi                  Sierra AGI game
elvira1              Elvira - Mistress of the Dark
elvira2              Elvira II - The Jaws of Cerberus
waxworks             Waxworks
simon1               Simon the Sorcerer 1
simon2               Simon the Sorcerer 2
feeble               The Feeble Files
dimp                 Demon in my Pocket
jumble               Jumble
puzzle               NoPatience
swampy               Swampy Adventures
cine                 Cinematique evo.1 engine game
cruise               Cinematique evo.2 engine game
drascula             Drascula: The Vampire Strikes Back
gob                  Gob engine game
groovie              Groovie engine game
kyra1                The Legend of Kyrandia
kyra2                The Legend of Kyrandia: The Hand of Fate
kyra3                The Legend of Kyrandia: Malcolm's Revenge
lure                 Lure of the Temptress
made                 MADE engine game
parallaction         Parallaction engine game
queen                Flight of the Amazon Queen
saga                 SAGA Engine game
sky                  Beneath a Steel Sky
sword1               Broken Sword 1: The Shadow of the Templars
sword1demo           Broken Sword 1: The Shadow of the Templars (Demo)
sword1mac            Broken Sword 1: The Shadow of the Templars (Mac)
sword1macdemo        Broken Sword 1: The Shadow of the Templars (Mac demo)
sword1psx            Broken Sword 1: The Shadow of the Templars (PlayStation)
sword1psxdemo        Broken Sword 1: The Shadow of the Templars (PlayStation demo)
sword2               Broken Sword 2: The Smoking Mirror
sword2alt            Broken Sword 2: The Smoking Mirror (alt)
sword2psx            Broken Sword 2: The Smoking Mirror (PlayStation)
sword2psxdemo        Broken Sword 2: The Smoking Mirror (PlayStation/Demo)
sword2demo           Broken Sword 2: The Smoking Mirror (Demo)
tinsel               Tinsel engine game
touche               Touche: The Adventures of the Fifth Musketeer
tucker               Bud Tucker in Double Trouble

Créer un wrapper (fichier de script bash) qui va servir à lancer ScummVM avec les options de jeu préconfigurées:

nano Contents/MacOS/scumm_w

Insérer dans ce fichier le contenu suivant, en remplaçant les infos par des valeurs pertinentes dans votre cas (il faut tenir compte de l’ID du jeu précédent).

#!/bin/bash
DESCRIPTION="La description du jeu"
ID_JEU="l'ID du jeu" # par exemple, ft pour Full Throttle
echo "Starting game $DESCRIPTION"
THEPATH=$0;
echo "$THEPATH";
THEDIR=$(dirname "$THEPATH");
UPDIR="$THEDIR/../"
SAVEPATH="$UPDIR/Resources/saves"
mkdir -p "$SAVEPATH"
GAMEPATH="$UPDIR/Resources/game/"
"$THEDIR/scummvm" --savepath="$SAVEPATH" --path="$GAMEPATH" $ID_JEU
echo "Ran the game $DESCRIPTION"

Rendre ce fichier exécutable

chmod +x Contents/MacOS/scumm_w

Maintenant, on va créer le fichier Info.plist, qui indique à MacOS comment exécuter l’application.

nano Contents/Info.plist

Le remplir avec les informations suivantes:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>CFBundleDisplayName</key>
 <string>Description du jeu</string>
 <key>CFBundleExecutable</key>
 <string>scumm_w</string>
 <key>CFBundleIconFile</key>
 <string>game.icns</string>
 <key>CFBundleIdentifier</key>
 <string>com.scumm.identifiant_du_jeu</string>
 <key>CFBundleName</key>
 <string>identifiant_du_jeu</string>
 <key>CFBundlePackageType</key>
 <string>APPL</string>
 <key>CFBundleShortVersionString</key>
 <string>1.0</string>
 <key>NSAppleScriptEnabled</key>
 <string>false</string>
 <key>NSHumanReadableCopyright</key>
 <string>Copyleft Pirate, Inc.</string>
 <key>NSPrincipalClass</key>
 <string>NSApplication</string>
</dict>
</plist>

Le fichier .app devrait maintenant être exécutable. Si ce n’est pas le cas, en effectuer une copie et tester sur la copie.

:, , , , , , , ,

Laisser un commentaire

Vous cherchez quelque chose ?

Utilisez ce formulaire pour rechercher un contenu:

Vous ne trouvez pas votre bonheur ? Contactez-moi avec un commentaire, je verrai que faire pour vous.