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.







