vendredi 23 septembre 2011

Tester en local la bêta de Diablo III

Vous connaissez sans doutes Diablo, le celebre Hack'n Slash sortie en 1997 créé par Blizzard et sa suite Diablo 2 sortie en 2000. Depuis il y a eu des extensions mais pas suite... Blizzard a annoncé en 2008 un nouvel épisode : Diablo III, et c'est depuis le mois de septembre que la version bêta est disponible pour les plus chanceux d'entre nous.

Le problème avec Diablo III c'est qu'il faut être obligatoirement connecté à Battle.Net pour pouvoir y jouer, et c'est d'ailleurs assez regrétable pour un jeu avec une campagne solo (mais que voulez vous c'est la mode actuellement de faire chier les gens avec une connexion obligatoire pour jouer). Comme cela a été le cas avec Starcraft 2 mais aussi et surtout avec World of Warcraft, une solution alternative a été développée afin de pouvoir jouer quand même à ce jeu, sans connexion internet.

Je vous met en garde tout de suite, en lisant ce poste vous pourrez rentrer dans la première ville de Diablo III et c'est tout, il n'y a aucune interaction avec les objets, les PNJ, etc...

Update 28/01/2012 : Un article plus récent a été rédigé, retrouvez le à cette adresse.
Update 26/09/2011 : Les choses avancent vite, désormais on peut se déplacer un peut plus dans la ville et il y a des monstres et des PNJ :)

Il commence d'y avoir du monde dans ce petit univers
On quitte New Trimstram

Nous sommes d'accord, actuellement Diablo III est en phase de bêta test et le downloader est disponible publiquement sur le net via le site de Blizzard, donc télécharger le jeu, même sans invitation n'a rien d'illégal, de plus utiliser un serveur privé local sur une version bêta (donc non terminée) du jeu n'est pas illégal non plus aux dernières nouvelles, d'ailleurs les émulateurs que vous trouverez en lien sur ce blog sont tous Open Sources. Enfin pour réduire le piratage on n'emploi pas des méthodes où les connexions internet sont obligatoire, ce genre de connerie ne fait qu'énerver les joueurs qui ont acheter le jeu car oui Mr Activision/Blizzard : ton jeu va bien se vendre.

Je vous encourage d'ailleurs vivement à acheter le jeu quand il sortira pour profiter du multi, mais l'émulation pourra peut être vous sauvez si vous avez par exemple à prendre le train et que vous n'avez pas de connexion internet ;) Là le hack prend tout son sens et on parle bien d'un hack et pas d'un piratage. Maintenant que les "mentions légales" sont dites passons au concret.

Installation du jeu et Emulation

Pour pouvoir jouer à la version bêta de Diablo III vous aurez besoin du client du jeu, l'installation vous prendra un peut moins de 4 Go bien que l'installeur annonce quatre fois cette taille ! Ensuite vous aurez besoin d'un émulateur, là je vous présenterais Mooege  (anciennement D3Sharp) mais libre à vous de choisir celui que vous voulez parmi cette liste.

Commencez donc par installer le jeu et faire les mises à jour, ensuite téléchargez la version compilée de l'émulateur et décompressez son contenu où vous voulez. Petite note : Merci de ne pas leaker cette version compilée car l'émulateur est Open Source et c'est très facile de se faire sa propre build, de plus l'émulateur est en constante évolution donc dans 3 jours cette version ne vaudra plus rien ;) alors lisez bien ce que j'ai mis plus haut, et allez sur github pour avoir plus d'informations.

Dans le dossier vous trouverez deux fichiers exécutables mais un seul vous sera utile ici. Pour résumer l'émulateur est D3Sharp.exe et l'autre exécutable D3SharpDatabase.exe est un autre projet qui permet de travailler avec la base de données du jeu (création de personnage, de compte, etc...) mais ce gestionnaire de base de données n'est pas encore assez stable pour être utilisé et puis on en a pas besoin, je l'ai juste mis pour les currieux ;)

Attention : Vous devez avoir le Framework .Net 4.0 installé sur votre PC pour que D3Sharp fonctionne. Si vous êtes sur Mac ou Linux il vous faudra une version récente de Mono.Vous devez vous assurer aussi que la dll System.data.sqlite.dll est bien dans le pack. Enfin faites attention à votre réglage de parefeu (Firewall).

Au lancement de D3Sharp.exe vous aurez une fenêtre noir qui s'affiche avec du texte et sans doute une fenêtre de votre Firewall qui vous demandera si il faut filtrer ou pas se programme, là il faudra laisser passer le programme (de toute façon c'est en local) donc ne pas filtrer. D3Sharp va émuler 2 serveurs, le serveur de jeu et le serveur Battle.Net, nous ce qui nous intéresse pour le moment c'est Battle.Net, on va donc passer à la création d'un raccourci qui se connectera à l'émulateur et je vous laisserais jouer tranquille :D

Configuration du jeu

Alors là je vous assiste à fond mais c'est ultra simple. Concrétement vous avez à créer un raccourci de l'exécutable Diablo III.exe et d'y ajouter les paramètres suivants :

"C:\Program Files\Diablo III Beta\Diablo III.exe" -launch -auroraaddress localhost:1345

Bien entendu si vous n'avez pas installé Diablo III dans C:\Program Files\Diablo III Beta\ il faudra adapter en conséquence. Voilà la démarche étape par étape :

1. Dans le dossier de Diablo III faite un "copier" sur l'exécutable Diablo III.exe
2. Coller le nouveau raccourci dans le même dossier (vous pouvez le renommer bien entendu)
3. Aller dans les propriétés du raccourci
4. Ajouter -launch -auroraaddress localhost:1345 après le dernier guillemet, cliquer sur OK et c'est fini ! (sur le screen c'est indiqué 127.0.0.1 mais vous pouvez mettre localhost, normalement dans la majorité des cas c'est pareil)
Tristram await you...

Vous êtes prêt pour essayer Diablo III bêta mais rappelez vous que c'est une version de test et que surtout vous passez par un émulateur qui est loin d'être pleinement fonctionnel. L'idée c'est de pouvoir essayer un peu le jeu avant de l'acheter ou d'être selectionné par Blizzard pour la bêta.
C'est aussi sympa de bricoler un peut et c'est justement le but du hacking à ne surtout pas confondre avec le piratage. Je vous invite maintenant à lire mon autre article qui vous expliquera comment garder un émulateur à jour facilement.

Je tiens à finir cette article en précisant une chose suite à une remarque sur Google+ Ce que je propose ici n'est pas à comparer à du piratage car le jeu ne se vend pas encore donc il n'y a pas de perte, au contraire cela fait une diffusion supplémentaire pour Blizzard et ça va permettre de faire buzzer un peut plus l'actualité autour de Diablo III.

Maintenant je sais bien que quand Diablo III sortira des gens le téléchargerons illégalement, mais ça ne sera pas les émulateurs qui seront en cause, le problèmes est beaucoup plus profond.

Sur ce, bon jeu et bonne bidouille à tous.

Mise à jour du 26/09/2011 : Mise à jour de l'émulateur et ajout de précisions à l'installation.
Mise à jour du 29/09/2011 : Mise à jour de l'émulateur. 
Mise à jour du 02/10/2011 : Ajout d'un lien vers un autre article concernant les mises à jour.


Contrat Creative Commons

dimanche 28 août 2011

Le moteur OpenRaider : Tomb Raider

Suite à la reprise du moteur Free in the Dark j'étudie un maximum les autres moteurs de jeux Open Source et en particuliers les moteurs écrits avec des langages de programmation orientés objet comme le C++ ou le C# par exemple.

Lors de mes recherches je suis tombé sur OpenRaider, un moteur de jeu permettant de faire fonctionner la saga des Tomb Raider du premier épisode jusqu'au cinquième.

 Au vue des screens que j'ai pu trouver sur le net le moteur à l'air de fonctionner un minimum et on peut déjà utiliser plusieurs versions du jeu.



Ce qui est assez cool ce sont les sources car en plus d'être bien commentées elles sont documentées ! L'architecture du jeu est assez bien faite et on s'y retrouve très facilement. C'est donc une source d'inspiration pour moi.


Je vais tenter de remettre en route ce projet pour voir comment il fonctionne en profondeur, cela me permettra d'avoir une meilleur approche pour porter le moteur de Free in the Dark du C au C++ et surtout du paradigme procédural au paradigme objet.


Actuellement il n'y a pas de paquet binaire pour Windows mais ils existent pour Linux ! Si vous êtes sur une Debian ou dérivée (comme ubuntu) vous pouvez télécharger un paquet sur sourceforge, si vous êtes sur une autre distribution vous pouvez télécharger un binaire du moteur ou compiler les sources.


J'attire votre attention sur le fait que le but de l'auteur était de faire un moteur compatible PC (Linux pour l'instant) et Playstation 2.

samedi 27 août 2011

Free in the Dark : Reprise du moteur libre d'Alone in the Dark

Je vais vous présenter le projet sur lequel je travail actuellement, c'est un moteur de jeu permettant de rejouer à Alone in the Dark sur des ordinateurs récents et sans passer par un émulateur. Il vous faut simplement les fichiers du jeu original (ou prochainement de la démo) et l'exécutable Free in the Dark. Le moteur fonctionne sous Windows, Linux (32 et 64 bit) et Mac Os X. Historiquement ce projet Open Source fut lancé en 2003 par Vincent Hamm et Nicolas Noble, la dernière activité date de 2009 et depuis les sources ne sont plus publiquement disponibles sur Sourceforge, on peut les retrouver avec un peut de difficulté en cherchant vraiment très dur sur google. Dans un premier temps je vais vous présenter rapidement la série des Alone in the Dark, puis je vous parlerais du projet Free in the Dark, de là je vous donnerais mon point de vue sur l'état actuel du moteur et ce que je pense pouvoir faire avec.

Avant de commencer je vous invite à consulter ma petite collection , ce n'est certes pas énorme mais je suis très content de mon édition limitée collector des 3 premiers épisodes :) et du pack collector d'Alone in the Dark 5.

La série Alone in the Dark

Alone in the Dark est un jeu développé par la société Française Infogrames (aujourd'hui Atari) sortie en 1992, c'est le premier jeu de type "Survival Horror". Le concept du jeu est simple, vous êtes dans un manoir hanté par des fantômes et des forces démoniaques qui vous dépassent largement et votre but sera de sortir vivant de cet enfer. La musique a une grande place dans le jeu car elle va conditionner le joueur dans son périple. Afin d'arriver à sortir du manoir le joueur devra d'une part combattre des monstres avec tout un tas d'armes allant du couteau à l'arme à feu, et d'autre part étudier son environnement en lisant des vieux livres de magie par exemple pour trouver les failles d'un monstre, ou de vielles notices pour comprendre le fonctionnement d'un objet. L'ambiance est largement inspiré des nouvelles de H.P. Lovecraft, un écrivain américain connu pour ses histoires d'horreur et le fameux Cthulhu. Alone in the Dark peut être caractérisé par plusieurs points mais on notera surtout son système de caméra fixe qui participe au mythe du titre.

AITD3 : Dans chaque épisode il y a ce passage où on vous observe par la fenêtre, Jack c'est toi ?
Par la suite d'autres éditeurs ont créé des jeux de ce type en plus évolués, on citera par exemple Resident Evil de Capcom ou Silent Hill de Konami.

Alone in the Dark 1 - Emily Hartwood
La série Alone in the Dark aura connu 5 épisodes et un mini épisode intitulé Jack in the Dark. On notera aussi 2 adaptations en film, si le premier film est assez agréable à regarder (avec une bande son signée Nightwish !) le deuxième est quant à lui très difficile à regarder.

Alone in the Dark premier du nom sort en 1992 et vous propose deux personnages jouables, Edward Carnby (que l'on retrouvera dans les autres opus) et Emily Hartwood (que l'on devra sauver dans le 3éme épisode). A l'époque le jeu fait fureur car c'est un tout nouveau genre qui vient de naître (et pour une fois c'est Français).

Jaquette d'Alone in the Dark
Le jeu sera adapté sur plusieurs supports, on pourra citer par exemple la 3DO (la première console à CD de Panasonic) ou les ordinateurs Mac.

C'est en 1993 qu'Alone in the Dark 2 sort en version disquette et en 1994 en version cd-rom. Le jeu se déroule 1 an après le premier épisode et vous devrez résoudre une affaire d'enlèvement d'une petite fille par un pirate du nom de One Eye Jack. L'histoire se déroule dans un vieux manoir nommé hell's kitchen et vous finirez par vous retrouver sur le bateau pirate de One Eye Jack. Techniquement c'est une amélioration du moteur du premier mais il n'y a rien d'exceptionnel. Le jeu est assez bogué et très difficile. Deux personnages sont jouables dans le même scénario (un peut comme dans certains Resident Evil), Edward Carnby le détective de l'étrange et Grace Saunders la petite fille qui a été kidnapée.

Jaquette d'Alone in the Dark 2
Il sera adapté sur Saturn et Playstation sous le nom Jack is Back, tous les personnages du jeu seront re-modélisés avec une 3D plus fine et plus détaillé.

Alone in the dark 2 : Le labyrinthe
 Alone in the Dark 3 est sortie en 1995 et utilise le même moteur que Alone in the Dark 2 il n'y avait donc pas de révolution graphique et c'est bien dommage. Le jeu innove cependant car cette fois ci vous n'êtes pas prisonnier d'un manoir mais d'une ville fantôme du Far West ! Suite à la sortie de cet épisode une bande déssiné a été éditée par les éditions Vent D'ouest, elle se nomme Alone in the Dark et reprend grosso modo la progression du troisième épisode.

Jaquette d'Alone in the Dark 3
Dans cet épisode vous ne pouvez contrôler que Edward Carnby cependant votre apparence changera au fil du jeu, une fois vous serez transformé en couguar (ce passage est assez cours et limité mais très fun) et enfin vers là fin vous fusionnerez avec l'ex shérif de Slaughter Gulch (qui vous ressemble comme deux goutes d'eau mais en mort..) ce qui changera légèrement votre apparence (nouvelle veste, chapeau de cowboy et étoile de shérif). Les musiques sont géniales et mettent vraiment le joueur dans l'ambiance du Western :)
    Le saloon !
    Carnby en cowboy
    Alone in the Dark 4 sort en 2001 et cette fois ci il est développé par le studio Darkwork. Il sort sur pas mal de support différent (Pc, Ps2, Psx, Dreamcast, Gameboy Color) il est assez bon et reprend un Game Play très proche de Resident Evil en y ajoutant une dimension supplémentaire avec des jeux de lumières (certains monstres n'aiment pas la lumière, d'autres c'est le noir alors il faut jouer avec sa lampe torche) ce qui le rend beaucoup plus accessible que les 3 premiers épisodes.

    Jaquette d'Alone in the Dark : The new Nightmare

    Cette fois c'est l'ile de Shadow Island qui aura besoin de vous, pour cela vous pourrez incarner au choix Edward Carnby ou Aline Cedrac et suivant ce choix un scénario et un type de Game Play différent vous sera proposé. Aline favorisera la recherche alors que Carnby lui sera toujours égal à lui même avec son flingue bien chargé ;) Les deux scénarios se déroulent en même temps et c'est donc le jeu vue par les yeux des deux personnages qui vous sont proposés.
    Jouer avec la lumière est vital


    Entre 2001 et 2008 plus un signe de la franchise avant qu'Atari annonce Alone in the Dark : Near Investigation (aka Alone in the Dark 5 ou Alone in the Dark 2008). Cette fois ci ce sont les Lyonnais de Eden Studio qui s'y collent et c'est Olivier Derivière qui s'occupe de la bande son.

    Jaquette d'Alone in the Dark : Near Investigation

    Cet épisode était vraiment très attendu car les démonstrations vidéo étaient vraiment hallucinantes, il y avait une interaction avec l'environnement complétement folle ! et des musiques réellement splendides ! 

    Je vous invite à regarder cette vidéo qui vous fera très certainement comprendre l'euphorie de 2008 (et avant lors de son annonce).

    Les graphismes sont superbes sur un bon PC et sur les consoles next-gen
    Cet épisode se déroule après le tout premier de 1992 et met en scène un Edward Carnby amnésique. Graphiquement le jeu est assez réussi mais la richesse qu'offre le Game Play est très difficile à prendre main. L'originalité à souligner est que le jeu propose chaque partie du scénario sous forme de mini épisode et lorsque vous reprenez votre ancienne partie, une petite scène vous rappelle les événements passés (avec une voix "Précédemment dans Alone in the Dark").

    Le jeu est très porté sur l'utilisation du feu !


    Vous devrez créer vos armes en combinant des objets comme le fait Mac Guyver

    Vous pouvez vous procurer Alone in the Dark 1, 2 et 3 sur le site Good Old Game pour 5.99 dollars soit un tout petit plus de 4 € ou passer par des ventes d'occasion sur des sites bien connus, là ça sera moins chère et généralement en boite. Les autres épisodes se trouvent encore en neuf dans les magasin ou en occasion. Alone in the Dark 5 par exemple se trouve actuellement à 4.99 € en neuf dans un grand magasin commençant par la lettre E et se terminant par la lettre C :)

    Free in the Dark

    C'est en 2003 que sort Free in the Dark 0.1 un moteur codé en C et permettant de jouer à Alone in the Dark avec les fichiers du jeu. Le moteur a été développé par Vincent Hamm (aka yaz0r) déjà auteur d'autres moteur de jeu et Nicolas Noble (aka Pixel). Le moteur était disponible sur sourceforge, mais depuis 2009 (date de la dernière activité publique de l'auteur sur ce projet) les sources ont été supprimée et le moteur n'est plus disponible. Si vous faites une recherche sur google avec fitd-0.1.tar.gz vous devriez néanmoins pouvoir trouver les sources.

    J'ai contacté l'auteur début Aout pour savoir si il serait possible d'avoir les sources comme celles ci ne sont plus disponible, Vincent m'a répondu par mail que c'était possible mais qu'elles étaient en "mauvaise état", après cela je n'ai pas eu de réponse de sa part, ni de sources alors j'ai commencé de travailler sur celles que j'avais trouvé via mes longues heures de recherche sur google.

    J'ai d'abord compiler fitd (Free in the Dark) sous Linux et je n'ai pas rencontré de problèmes, les dépendances sont minimes (libsdl-dev, sdl_mixer-dev, glu-dev, zlib-dev et bien sur openGL). J'ai ensuite tenté de compiler les sources avec Visual Studio et là j'ai recontré quelques problèmes, je suis alors passé à MinGW et j'ai pu compiler fitd pour Windows. Le résultat pour la version 0.1 n'est pas magique mais :


    • Alone in the Dark 1 version disquette peut être lancé et on peut y jouer (par contre il faut passer la cinématique d'intro, pas dés le début car le moteur plante) ;
    • Alone in the Dark 2 version disquette peut aussi être lancé mais il est assez bogué (les menus par exemple et pas de scène d'intro) ;
    • Jack in the Dark fonctionne assez bien, je n'ai pas tenté de finir le jeu (il n'est pas très long à finir je vous rappel que c'est un mini épisode) mais mise à part quelques problèmes d'affichage le reste à l'air de tourner correctement (le menu est un peut rapide par contre).
    Les démos d'Alone in the Dark 1 et 2 ne fonctionnent pas et Alone in the Dark 3 ne se lance pas à cause de la protection du jeu.


    jack in the Dark fonctionnant avec Free in the Dark 

    Alone in the Dark 1 et 2 lancé via Free in the Dark sous Linux !

    Les deux jeux "in game" sous Linux :)

    Comment ça marche ?

    Alone in the Dark est composé de 4 types de fichiers
    • Les fichiers .PAK (ressources du jeu)
    • Les fichiers .ITD (ressources et sauvegardes)
    • Les fichiers .COM (c'est un exécutable pour le 1 et le 2)
    • Les fichiers .EXE (c'est l'exécutable du jeu)
    Le moteur Free in the dark se présente sous la forme d'un exécutable fitd.exe sous Windows fitd sous Linux et Mac Os X et il le copier dans le dossier de votre jeu. Ensuite un double clique dessus et le jeu se lance :) En gros fitd va remplacer l'exécutable par défaut.

    En fait le moteur va lire les fichiers .PAK et .ITD (les autres ne sont pas nécessaires) et les extraires pour y récupérer les informations dont il a besoin pour afficher le jeu, donc récupérer les coordonnées des caméras, les différents objets et personnages du jeu (ce sont des collection de points ou de coordonnées pas des modèles directement exploitables), etc.. A partir de là le moteur remplace totalement l'ancien et utilise les ressources d'origine (les scripts, les cinématiques, etc...).

    Et moi dans tout ça je fais quoi ?

    Comme je vous l'ai indiqué au début j'ai déjà commencé de travailler sur les sources et je vois plusieurs choses qui peuvent être faites à court terme (du moins important au plus important) :

    Moins important
    • Ajouter un lanceur permettant de choisir son jeu ce qui évitera de devoir copier l'exécutable du moteur dans le dossier de chaque jeu ;
    • Ajouter des options de configuration (affichage, contrôle clavier, contrôle manette, activation de hacks...)
    Moyennement important
    • Pouvoir utiliser les démos des jeux ce qui permettrait de distribuer le moteur avec une ou plusieurs démos ;
    • Permettre de lancer AITD 3 en contournant la protection.
    Plus important
    • Corriger le bug en fin d'intro dans AITD 1 ;
    • Corriger le plantage de AITD 1 quand on saute la scène d'intro ;
    • Afficher le menu de AITD 2 correctement ;
    • Éviter au maximum les plantages avec des solutions "Try/Catch Like" ;
    • Déboguer un maximum les jeux d'origine terminer certaines implémentations dans le code.
    Démo anglaise de AITD1 (Attract) via Free in the Dark 0.2-dev

    J'ai déjà obtenu des résultats encouragent après quelques heures d'analyse et de deboguage du moteur mais je suis face a des difficultés qui ne sont pas à prendre à la légère :
    1. Je travail à plein temps et le soir il n'est pas toujours évident de se mettre dans le code surtout que je suis développeur dans la vrai vie donc du code j'en vois tout le temps :)
    2. J'avais de bonnes compétences en C++ (avant que je ne fasse presque que du web) et je suis assez bon en programmation objet (je ne jure que par l'objet) mais là le moteur est écrit en C et c'est de la programmation procédurale. Depuis que je pense objet j'ai beaucoup de mal avec le paradigme procédurale.
    3. Le moteur possède une partie pour le rendu 3D et qui dit 3D dit mathématiques. Les lecteurs de ce blog depuis son commencement (y'en a t'il parmis vous ?) savent que je ne suis pas un as des maths, ils savent par contre que j'ai travaillé très dur à mes examens pour réussir en math. Ce que je veux dire c'est que je ne maitrise pas certains concepts mathématiques qu'on utilise en 3D.
    4. Les moteur est énorme (83 fichiers sources ! avec un fichier main.c qui fait presque 6000 lignes), il est très peut commenté et c'est assez dur de reprendre le travail dans ces conditions (je parle du manque de commentaires et de documentations). Les fonctions ont généralement des noms explicites (of course) mais ce n'est quand même pas évident de comprendre comment fonctionne tout ce grand monde et ce qu'a voulu faire l'auteur.

    Je ne m'avoue pas vaincu pour autant, vous le savez il m'en faut bien plus :) En 2008 j'avais commencé un remake d'Alone in the Dark 2 avec mon frère (avec comme nom de code original "Project InDark") qui s'occupait des ressources graphiques (modèles 3D, etc...) et moi j'étais au commandes du moteur. Pour ce projet j'avais choisis Irrlich un moteur 3D en C++ assez pratique et facile à prendre en main. Les études ont eux raison de se projet par la suite mais je peux vous assurez que je parlais toujours de Project InDark qui était devenu "Project In The Dark" à mon frère il y a quelques mois (ce projet n'est donc pas mort, il est simplement suspendu et ajouté à la pile de projets que j'aimerais réaliser). J'ai un peut honte de vous montrer ce screen mais voilà à quoi ressemblait le jeu, vous pourrez tentez d'y trouver une ressemblance avec l'entrée de Hell's Kitchen et de son labyrinthe, le personnage n'était pas prêt à l'époque c'est donc un modèle que j'ai récupéré sur le net pour faire les tests. La caméra était fixe comme sur les autres épisodes de la série.

    Project InDark... un projet tombé In The Dark pour le moment




    Pour en revenir à Free in the Dark, j'ai implémenté pour l'instant une nouvelle méthode détection des jeux ce qui me permet de lancer désormais les version démos. Après quelques heures de hacking sur le moteur j'ai réussi à avoir la démo américaine de AITD 1 "In Game" mais après quelques modification j'ai mis en l'air mon hack et je suis bloqué au menu. La démo d'AITD2 quand à elle montre une image (la palette n'est pas la bonne) et c'est tout. J'ai aussi commencé d'implémenter un système qui permettra d'utiliser un exécutable pour tout les jeux, ce qui va être assez pratique pour moi pour essayer le moteur sur toutes les versions du jeu que j'ai (entre les version démo, démo-attract, disquettes, cd-rom, mac... vous comprendrez que coller un .exe avec 6 dll dans chaque dossiers ça me gonfle ^^').

    Et pour le futur

    Je compte faire deux choses

    1. Maintenir la version C du jeu au maximum et peut être monter une équipe pour ça. Le jeu se nommera toujours Free in the Dark et sera distribué dans les mêmes conditions que le premier. 
    2. Forker certaines parties du moteur et le réécrire entièrement avec une architecture objet dans un autre langage
    Pour le point numéro 2 j'hésite beaucoup entre C++ et C#
    •  C++ a ses avantages (Poo, template, STL) mais aussi ses inconvénient (complexité, exception pas super pratique à mettre en place, encore beaucoup de monde dans le code .c et .h). Un bon port en C++ permettrait d'avoir un jeu fonctionnel à peut prêt sur tout les PC et sur les consoles (Wii, Psp, Dreamcast, Ps2, etc.. comme le fait ScummVM, mais la difficulté est vraiment ENORME) ;
    • C# via .Net/Mono permettrait d'avoir un moteur certes pas aussi performant qu'en C ou en C++, mais on gagnerais en souplesse, en facilité de débogage, en portabilité si on utilise les bonnes APIs et les bons Frameworks (on va me resortir la même chose pour C++ je le sais). Le gros avantage du C# est que je peux cibler tout les PC récents (qui exécute au moins .Net 2.0 avec une carte graphique DX8 et/ou OpenGL 1.5) sous Windows, Linux et Mac Os X ainsi que les terminaux Android (via ExEn ou OpenTk), iOS (ExEn ou MonoGame), Xbox 360 et Windows Phone 7 (je doute que Microsoft me laisse proposer ça sur le store Market Place, mais techniquement c'est possible).
    Le choix entre ces deux langages n'est pas simple et demande réflexion car je ne veux pas perdre de temps inutilement. Rester sur les sources C va être compliqué sur le long terme donc je dois faire un choix.

    Si vous êtes programmeur que ce soit amateur et/ou professionnel et que le développement d'un moteur de jeu vous intéresse alors n'hésitez pas à me contacter :) Je lancerais un recrutement sur divers sites lorsque j'aurais publié ma version 0.2 de Free in the Dark sur une forge (Github ou Google Code).

    mardi 16 août 2011

    Une nouvelle PSP et une PS3 moins chère

    Après une baisse du prix de la Nintendo 3DS le 12 aout qui est passée de 249 € à 169 € c'est au tour de la Playstation 3 et de la PSP de voir leurs prix diminuer. C'est en effet lors de la GamesCon 2011 qui se tient actuellement à Cologne en Allemagne que Sony a fait son annonce pour les deux consoles. Ainsi la Playstation 3 Slim 160 Go passe à 249 € mais l'annonce qui a largement marqué est la sortie prochaine d'un nouveau modèle de PSP qui sera vendu seulement 99,99 Euros.

    La nouvelle PSP E-1000

    La PSP E-1000 (c'est son nouveau nom) est une PSP avec des fonctionnalités en moins et avec un look légèrement changé. On notera que le Wifi a été supprimé donc fini les partie en ligne et le réseau entre console, le micro à lui aussi été éliminé de cette nouvelle portable, cependant il y aura toujours un lecteur de disque UMD comme sur les autre modèles classiques (non GO). On ne pourra donc plus se connecter sur le Playstation Network pour y acheter du contenu via la console mais cela restera possible en utilisant Media GO et en effectuant ses transactions directement depuis le logiciel.

    Elle est très propre en mat

    La petite portable sera disponible en Charcoal Black, ce qui lui donne un look mat. Pour le moment nous n'avons pas d'information sur les tailles de la bête ni ses autres caractéristiques (batterie, etc...). En regardant bien les photos proposées par Sony on voit qu'il n'y a plus les boutons "Note" (je n'ai jamais compris à quoi servait ce bouton) et éclairage de l'écran mais ces images ne sont pas de vrais photos donc attendons les prochains jours pour avoir plus d'information.

    Vue de dos, la prise en main à l'air toujours aussi efficace


    C'est en tout cas une bonne nouvelle pour la scène underground car actuellement je pense que la PSP est la console portable la meilleur pour utiliser des homebrews et des émulateurs, alors à ce prix il ne faut vraiment pas se priver surtout que dans la pratique on utilise très rarement le micro (qui n'était pas présent sur les première PSP) et aller sur internet avec la PSP n'est pas ce qu'il y a de plus agréable car c'est lent et le navigateur ne supporte rien mise à par un HTML vieux d'un siècle et deux pauvres instructions JavaScript ;) (ne pensez surtout pas à JQuery).

    Notez les touches home, volume, select et start, sont-elles tactiles ?


    En résumé pour 99,99 Euros nous allons avoir le droit à une console ayant un nouveau look, quelques fonctionnalités en moins (vraiment pas nécessaire pour jouer) et qui sera réellement abordable. Que va faire Nintendo pour contrer Sony ? On constate depuis un moment déjà que la PSP se vend très bien (elle arrive souvent en première position au Japon). Nintendo va t-il descendre ses consoles aussi ? Les prochains jour nous le dirons peut être...

    Sources : Playstation.Blog
    Twitter : Gx-Mod et Psp-gen

    dimanche 14 août 2011

    Le hack sur Playstation 2 : Volume 2

    Hello, après l'article "Le hack sur Playstation 2" qui rencontre un fort succès, je vous propose cette fois une mise à jour de cette article car beaucoup de choses ont changé et il fallait bien un nouveau billet pour parler de tout ces changements. La grosse nouveauté c'est que maintenant le hack de la carte mémoire peut être installé depuis un PC et qu'il fonctionne sur tous les modèles de Playstation 2 (PAL, NTSC, JAP, toutes versions même les dernières avec alimentation interne). Alors dans un premier temps je vous présente FreeMCBoot 1.8c ensuite je vous explique comment l'installer et je reviens très rapidement sur les deux lanceurs de jeux USB : l'incontournable Open PS2 Loader et le tout nouveau PS2ESDL ainsi que sur ESR ce fantastique outil qui permet de jouer à des backup PS2 sans puces :) On finira avec un micro Foire Aux Questions (FAQ).

    Présentation de FreeMCBoot (FMCB pour les intimes)

    A quoi sert ce hack et comment fonctionne t-il ? pourquoi hacker sa console ? A l'origine vous avez votre console Playstation 2 qui est toute d'origine (pas de puce, pas de swap magic, rien) et elle ne lit que les jeux originaux de PS2 et de PSX. Le problème c'est qu'au bout d'un moment votre console a du mal à lire les jeux car ils sont soit trop abimés soit votre lecteur DVD est en fin de vie, voir hors service. Alors que faire ? jeter sa console à la poubelle et en acheter une autre ? Il existe un hack qui s'installe sur la carte mémoire de Playstation 2 (et pas PSX) et qui permet lors du démarrage de la console d'avoir de nouvelles options dont un lanceur de fichier (les fameurs fichiers elf, les exécutables de la PS2, ce sont les équivalent des .exe sous Windows et des .bin sous Linux). A partir de ce nouveau menu vous pouvez lancer des applications que vous aurez installé sur la carte mémoire comme :
    • Un explorateur de fichier ;
    • Un serveur HDL pour copier des jeux depuis son PC sur le disque dur interne de la console via FTP ;
    • Un lanceur de jeux (OPL, PS2ESDL, FreeHDL, etc...) ;
    • Des homebrews (media center, utilitaires divers, etc...) ;
    • Des émulateurs (Super Nes, Megadrive, etc...) ;
    • Etc...
    Le menu de la carte mémoire hackée au démarrage de la console

    Ce qui est magique voyez vous c'est que quand vous retirez la carte mémoire votre console est toute "clean", elle ne propose plus ce nouveau menu (vous n'avez que le navigateur et les paramètres de configuration de la console) et n'est donc plus capable de lancer des homebrews, des émulateurs, etc... Dés que vous redémarrez la console avec la carte mémoire vous avez tout, c'est propre, ça ne laisse pas de trace alors pourquoi se priver ?

    Ce qu'il faut retenir c'est que pour avoir une console qui permet de lancer des jeux et des homebrews sans puce il faut hacker (modifier) sa carte mémoire en lui injectant un programme spécial qui va modifier le comportement au démarrage de la console.

    Installation de FMCB 1.8c

    L'installation est ultra simple et peut se faire sous Windows, Linux et Mac OSX, pour cela vous devez avoir le matériel suivant :
    1. Un PC avec Windows (XP, Vista, 7 en 32 ou 64 bits) ;
    2. Une carte mémoire Playstation 2 de 8Mb* ;
    3. Un adaptateur*** de carte mémoire PS2 pour PS3 (qui est en réalité un adapteur de carte mémoire PS2 USB)** ;
    4. Si vous êtes sous Windows, le driver pour cet adaptateur ;
    5. Le logiciel qui permet de formater et d'installer le hack sur la carte mémoire.
    * Il faut obligatoirement une carte mémoire de Playstation 2, ça ne fonctionne pas sur une carte mémoire de Playstation 1. Les cartes mémoire DATEL ne sont pas compatibles. Vous pouvez utiliser des carte mémoire sans marque mais il est préférable d'utiliser une vrai carte mémoire Sony. Au niveau des tailles je vous recommande 8Mb, ça peut passer avec une plus grosse mais ça ne sert pas à grand chose et parfois ça ne fonctionne pas (cas des 32Mb et 64 Mb).
    ** Il existe un tutoriel pour en fabriquer un soit même mais je n'ai pas le lien sous la main. Sinon c'est environ 8 Euros donc il ne faut pas se priver surtout que ça va vous servir pour toutes vos cartes mémoire et celles de vos amis. Je vous recommande d'acheter un adaptateur de marque Sony (un officiel) car j'ai noté certains problèmes avec les non officiels (en plus ils sont aussi chère que les Sony).
    *** Attention : Après tous les retours que j'ai eu seul l'adaptateur officiel Sony fonctionne avec cette manipulation. Si vous avez réussi à hacker une carte mémoire avec un autre modèle merci de l'indiquer en commentaire avec la référence exact (ça en aidera certainement plus d'un ;) )

    L'adaptateur de carte mémoire PS2 pour PS3 de Sony branché en USB


    Première étape : le téléchargement
    1. Le programme de jimmikaelkael ps3mca-tool ;
    2. [Windows] le driver de l'adaptateur USB.
    Vous pouvez retrouver toutes les informations de ce hack sur le poste ouvert à cet effet sur psx-scene. Vous trouverez aussi des informations sur le fichier readme.md inclue dans l'archive de ps3mca-tool.

    Décompressez le fichier ps3mca-tool-fmcb-1.8c.zip sur votre ordinateur et le fichier ps3mca-windrv.zip si vous êtes sous Windows. Si vous avez besoin d'un utilitaire de décompression efficace et gratuit vous pouvez regarder du côté de PeaZip (disponible dans beaucoup de langues pour Windows et Linux) ou 7Zip (disponible dans beaucoup de langues pour Windows et Linux en ligne de commande).

    Deuxième étape : branchement et installation du driver

    Pour Linux il faut que libusb soit installé et il faut que votre système puisse exécuter des programmes 32 bit. Si vous êtes en 64 bit il faudra installer les bibliothèques 32 bits pour pouvoir lancer le programme. Bien sur si vous faites la manipulation sous Linux c'est que vous devez connaitre un minimum le sujet donc je ne me fais pas de soucis pour vous :)

    Pour Windows vous n'avez qu'à brancher l'adaptateur sur votre port USB, il n'est pas reconnu donc on va installer manuellement le driver. Commencer par ouvrir le gestionnaire de périphérique avec un clique droit sur poste de travail / Propriétés / Paramètres système avancés / onglet matériel / gestionnaire de périphériques. Je vous invite à suivre les étapes des captures d'écran suivante :


    1 - Choisir propriété depuis le poste de travail.
    2 - Choisir paramètres système avancé puis l'onglet matériel et enfin gestionnaire de périphérique.

    3 - Sur le nouveau périphérique non reconnu faire Propriétés et choisir mettre à jour le pilote.


    4 - Choisissez l'emplacement du dossier qui contient le driver et validez.
    5 - Ce pilote n'est pas certifier Microsoft (normal), cliquez sur Installer ce pilote quand même.
    6 - Le pilote est installé et vous êtes prêt à utiliser l'adaptateur.
    C'est amusant car pour une fois sous Linux c'est rapide et sous Windows plus long.. Bon la partie la plus difficile à été réalisée, maintenant on va formater et injecter le hack sur la carte mémoire.


    Formatage de la carte mémoire et installation

    Bon là c'est très facile car il suffit d'aller dans le dossier de ps3mca-tool-fmcb-1.8c et de lancer le script de formatage de la carte mémoire puis lancer le script d'installation du hack. Sous Windows il suffit donc de cliquer sur mc-format.bat puis sur full-install.bat, sous Linux par contre il faudra lancer ces commandes à la main dans un terminal en n'oubliant pas de faire un petit chmod sur les scripts avant pour qu'ils soient exécutables, il faudra aussi lancer ces scripts en mode super utilisateur (root). Donc si vous êtes sous Ubuntu ou une de ses dérivées vous utiliserez sudo ./nom-commande.sh et si vous êtes sur une vrai distribution Linux vous passerez directement en mode super utilisateur avec la commande su puis vous lancerez les scripts normalement dans un terminal. Sachez que si vous êtes sous Ubuntu vous pouvez quand même passer en mode super utilisateur en feintant avec sudo su :P On résume ?

    Linux : On rend les scripts exécutables avec la commande chmod +x *.sh puis on met la carte mémoire dans le lecteur, on lance en ligne de commande (en utilisateur root ou avec sudo) ./mc-format.sh puis une fois que le formatage est terminé on exécute ./full-install.sh (toujours en root ou avec sudo).

    Windows : On met la carte mémoire dans le lecteur, on formate en cliquant sur mc-format.bat puis une fois le formatage terminé on installe le hack avec full-install.bat

    Il faut savoir que le formatage et surtout l'installation son assez long, c'est dû au débit de la carte mémoire qui est affreusement lent donc pas de panique si ça ne formate pas dans la minute qui suis et si l'installation ne se fait pas en 2 minutes chrono, c'est tout à fait normal :)

    Votre carte mémoire est hackée et désormais vous pouvez profiter de tous les homebrews et émulateurs disponibles sur PS2.


    Que faire en cas de problèmes ?


    Il m'est arrivé que la carte mémoire ne veuille plus formater et que l'installation échoue, j'avais donc ces deux messages d'erreur :

    ERROR: failed to format
    ERROR: failed to sign boot kelf


    Pour remédier à ce problème j'ai simplement débranché le lecteur de carte mémoire du PC puis je l'ai rebranché. Ce problème est apparu après avoir formaté une carte mémoire une fois puis en essayant de la reformater une deuxième fois (j'ai de drole d'idées des fois hein). Si vous avez un adaptateur qui fonctionne bien, une bonne carte mémoire et un PC bien configuré il n'y aura normalement pas de problèmes ;)

    Et si j'ai d'autres problèmes ?

    Avez vous bien installé libusb ? et exécutez vous les scripts en root ou avec sudo ? Si vous êtes sous Windows vérifiez qu'un logiciel ne vous bloque pas l'accès au ports USB (si vous avez une machine virtuelle de lancée ça peut être une cause de problème), normalement il n'y a pas besoin de passer par le mode administrateur de Windows mais vous pouvez aussi essayer de lancer le script de formatage et d'installation en mode administrateur (clique droit sur le script / exécuter en tant qu'administrateur).

    Le point sur les lanceurs de jeux par USB, Réseau, HDD interne

    Il existe plusieurs lanceurs de jeux et je vais vous en présenter deux : Open PS2 Loader et PS2ESDL. Déjà voyons pourquoi utiliser un lanceur de jeux et qu'est ce qu'on peut faire avec, puis je ferais un petit comparatif des deux.

    Votre lecteur de PS2 est peut être hors service ou alors vous n'avez pas envie de vous déplacer avec tout vos jeux d'un coup. C'est mon cas actuellement, la semaine je suis dans un petit studio et je n'ai pas de place donc je prend le strict nécessaire et le week-end je retrouve ma collection dans mon placard (j'ai aussi quelques PS2 avec lecteur HS). Alors avouez qu'avoir une petite partie de votre collection sur clé USB ou sur disque dur n'est pas du luxe dans ce cas là. Le problème aussi avec la PS2 mais aussi avec toutes les consoles qui utilisent un lecteur de disque est le temps de chargement des jeux qui peut parfois être très long (mon Valkyrie Profile 2 en ligne de mire). C'est là qu'on utilise un lanceur de jeu. Voici les fonctionnalités d'un lanceur de jeu :
    • Lancer des jeux depuis une clé USB ;
    • Lancer des jeux depuis un disque dur externe USB ;
    • Lancer des jeux depuis le réseau via le protocole Samba ;
    • Lancer des jeux depuis le disque dur interne de votre console (sur FAT avec adaptateur réseau ou sur Slim V12 avec adaptateur soudé)
    Dans tout les cas il faut au préalable avoir un support amovible (une clé USB par exemple) formaté en FAT32 et convertir votre jeu avec un utilitaire adapté (suivant le lanceur). Vous ne pouvez pas lire directement un fichier ISO sur la PS2.

    Open PS2 Loader

    Vous pouvez le télécharger à cette adresse et si vous vous êtes un peut débrouillard avec les outils de graphisme vous pouvez même faire votre propre thème. Sachez que ce programme est Open Source et qu'il est totalement gratuit. Voici quelques fonctionnalités d'OPL (Open PS2 Loader) :
    • Lancer des jeux depuis des support variés (voir plus haut) ;
    • Lancer des applications (on se rapproche d'un dashboard) ;
    • Lancer un serveur HDL pour transférer via FTP ses jeux depuis un PC vers le disque dur interne de la console (sur FAT avec adaptateur réseau ou sur Slim V12 avec adaptateur soudé) ;
    • Utiliser des patchs sur les jeux (pour augmenter la compatibilité).
    Il faut savoir que tout les jeux ne passent pas pareil avec OPL, certains passeront super bien comme le sublime Final Fantasy X par exemple (c'est vraiment le must d'ailleurs sur une PS2 Slim sur clé USB car il n'y a pas de bruit, juste le jeu :) ) et d'autres auront des problèmes lors des vidéos (lags) voir ne se lanceront même pas. Pour résoudre ces problème il faut soit utiliser des patchs (depuis OPL en appuyant sur la touche triangle) soit passer par un autre lanceur de jeu, soit passer par le jeu original et ne pas utiliser OPL (donc là c'est compatibilité nulle).

    Son développement est actif, d'ailleurs si vous n'avez pas peur de mettre les mains dans le cambouis vous pouvez même compiler vous même les dernières versions de développement pour profiter des derniers bugs et des dernières avancés de ce fantastique programme.

    Pour lire des jeux avec OPL il faudra les convertir avec USBUtil (ou d'autre softs comme HDL Dump/HDL Gui si vous avez un disque dur interne). Vous trouverez une vidéo réalisée par algeriano qui montre comment installer un jeu PS2 avec USBUtil.

    Si la partie réseau vous branche (la bonne blague, réseau => branche, hahaha je vais finir sur bashfr avant ce soir) vous pouvez suivre le tutoriel de GnOm consacré à ce sujet.

    PS2ESDL

    Le petit nouveau dans les lanceurs de jeux sur PS2, il a des fonctionnalités identiques à OPL par contre son but et de faire fonctionner un maximum de jeux par l'USB, donc d'éviter d'avoir des vidéos qui saccadent ou qui ne passe pas. Ce lanceur propose donc d'utiliser un disque dur (ou une clé USB. Je me répète mais vous avez compris hein ? tout ce qui se branche en USB et qui a de la mémoire peut être utilisé) branché en USB ou alors d'utiliser un disque dur en FireWire (une norme plus rapide que l'USB 1.0) ce qui théoriquement devrait donner un débit bien meilleur.

    Je n'ai pas encore eu le temps de le tester et c'est via un retour de niccoooodu61 du forum metagame que j'ai découvert cette petite perle. Vous pouvez le télécharger sur son site officiel, il est gratuit et les sources sont disponibles. Un tutoriel en français (toujours de nicoooodu61) vous expliquera comment le configurer et l'utiliser avec des jeux (qu'il faudra convertir car là aussi on n'utilise pas directement des fichiers ISO, ok ?)
    PS2ESDL lancé depuis FMCB 1.8c

    ESR ou comment lancer des backup sans puce et sans swap

    ESR est un programme qui permet de lancer des backup sans puce, sans swap, sans rien si ce n'est ESR lui même. Dans un premier temps il faut patcher votre image ISO avant avec ESR Patcher (qui fonctionne très bien sous Linux avec Wine au passage) et la graver comme n'importe quel autre ISO PS2, ensuite vous mettez votre jeu dans votre lecteur et vous allumez la console, ESR fait le reste.

     Bien entendu il faut avoir ESR d'installé sur votre carte mémoire en plus de FreeMCBoot et c'est généralement le cas quand si vous utilisez un pack tout prêt. Si ce n'est pas le cas, téléchargez ESR depuis le forum de psx-scene puis copier le une clé USB et enfin transférez le sur votre carte mémoire. J'ai par exemple créeé avec uLaunchElf un dossier APPS sur ma carte mémoire et j'ai copié ESR dedans. Ensuite allez dans les paramètres de FMCB (menu principal quand vous allumez la console avec la carte mémoire) et choisissez le chemin du programme ESR, cela permettra à la console de directement booter les jeux patchés pour ESR !

    Voici enfin le wiki d'ESR où vous y trouverez des informations sur la compatibilité des jeux, le fonctionnement du programme et les résolutions de problèmes.

    Micro FAQ

    Est ce que je peux lire un ISO avec Open Ps2 Loader, ESR, PS2ESDL ?

    Non vous ne pouvez pas, il faut convertir votre jeu avant avec le programme adapté suivant le lanceur de jeux utilisé.

    Est ce que je peut utiliser une carte mémoire de Playstation 1 (la première) ?

    Non il faut une carte mémoire de Playstation 2 de préférence 8Mb et si c'est une officielle c'est encore mieux

    Est ce que je peux utiliser une carte mémoire de grosse capacité qui n'est pas de marque DATEL mais qui utilise un CD pour fonctionner ?

    Non vous ne pouvez pas, voir mon commentaire précédent

    Où acheter l'adaptateur de carte mémoire PS2 USB pour PS3 ?

    Chez le marchant :) j'ai trouvé le mien dans un petit magasin de jeux vidéo mais on en trouve aussi sur internet et peut être même dans un grand magasin pres de chez vous. L'accessoire est relativement abordable, comptez entre 5 € et 8 € suivant où vous l'achetez. Et je le répète : Celui de chez Sony coûte aussi chère que les no-name alors favorisez un adaptateur de marque Sony.

    Comment lire des jeux gravés ?

    Alors tu relis la dernière partie de mon article

    Où télécharger des jeux de PS2 ?

    Alors tu va aller lire ma politique sur le téléchargement de jeu puis suivant le type de personne que tu es je t'inviterais à dégager de ce blog et à ne plus y revenir ou alors à y revenir autant de fois que tu veux :) Pour couper court : Je ne propose RIEN d'illégal, je ne fournis RIEN d'illégal, je n'incite pas le piratage et je fais ça pour rendre service aux possesseurs de consoles qui veulent l'exploiter au maximum et le plus longtemps possible.

    Remerciements

    J'aimerais remercier toute la scène underground PS2 car c'est grâce a elle qu'on passe plus de temps à bidouiller qu'à jouer :P mais c'est surtout grâce à des programmeurs et passionnés tels que ffgriever (ESR, PS2PSXe), jimmikaelkael (Open PS2 Loader) et bien d'autres que l'on peut vraiment profiter de nos consoles.

    Un autre merci aux membres du forum de metagame pour leurs tutoriels et leurs conseils. Mais aussi à mes lecteurs qui me contacts parfois par mail ou par commentaire pour me proposer de nouvelles news ou simplement pour me dire que je fais du bon travail et c'est toujours agréable.

    Enfin je voudrais faire un clin d’œil au nouveau magasin de jeux vidéo Game Universe de Paray le Monial, c'est là-bas que j'ai trouvé mon adaptateur de carte mémoire PS2. Si vous habitez en Saône-et-Loire ou que vous passez prés de Paray le Monial, allez donc lui rendre une petite visite de ma part, il a de loin les meilleurs prix en neuf et occasion que j'ai pus voir et vous serrez accueilli chaleureusement comme tout bon magasin de jeu vidéo digne de ce nom :) Si vous ne pouvez pas vous déplacer vous pouvez toujours aller voir sa page Facebook ou son site de vente en ligne.

    Contrat Creative Commons