Bienvenue sur WArMUp Association Mondiale des Utilisateurs de MorphOS
L'association WArMUp vous propose un site dédié au système d'exploitation alternatif MorphOS
    Connexion

Identifiant

Mot de Passe


Vous n'avez pas encore de compte ?
S'incrire sur le site
    Activité du site
Pages vues depuis le 06/06/2008 : 4 069 924

  • Nb. de Membres : 304
  • Nb. d'Articles : 2 117
  • Nb. de Forums : 24
  • Nb. de Sujets : 13
  • Nb. de Critiques : 0

  • Top 10  Statistiques

      
        Index du Forum » » Développement » » Comment porter un jeu sur MorphOS ?
    Les plus récents en premier
    AuteurComment porter un jeu sur MorphOS ?
    BeWorld
        
    995

    BeWorld
      Posté : 23-01-2010 10:06

    Salut à tous !

    Bon, j'aimerais bien essayer de porter quelque chose sur MorphOS. Sachant que je ne connais pas trop le C.... mais bon il y a moyen je pense....

    Existe t-il un tutoriel pour ça ?

    J'ai vu qu'il y a un dev sur AROS qui a dit qu'en deux heures on peux faire un portable de jeu !?!
    http://aros-exec.org/modules/newbb/viewtopic.php?start=0&topic_id=4178&viewmode=flat&order=ASC

    J'ai téléchargé son jeu Glaxium, il a mis les sources, que dois-t-on faire pour rendre ça compatible avec notre papillon ?

    J'aimerais bien que l'on m'explique un peu les bases pour Développer sur MorphOS, j'ai déjà installer le SDK... mais la cela devient bien moche... Y a t-il une solution simple pour éditer/compiler en C avec MorphOS ?

    De plus une fois que j'aurais compris le fonctionnement, je pourrais me lancer un peu dans le DEV.

    Merci d'avance.

    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    Papiosaur
         
    5542

    Papiosaur
      Posté : 23-01-2010 10:22

    pour la programmation sur MorphOS, je te conseille les liens suivants:

    - le site Gurumed

    - le site MorphOS development Wiki

    - le site de CubicIDE

    - Bien débuter avec SDL

    Glaxium a l'air très sympa, je te souhaite bon courage


      Profil  E-mail  www
    BeWorld
        
    995

    BeWorld
      Posté : 23-01-2010 18:48

    ok merci pour les liens.

    Pour commencer, je vais déjà essayer de compiler un jeu existant sous morphos, pour voir si tout est ok au niveau SDK.


    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    BeWorld
        
    995

    BeWorld
      Posté : 23-01-2010 20:40

    Je commence tranquille.

    Pour info, J'ai installé PowerSDL (les bin/lib/!include! etc...) dans GG:

    J'essai de recompiler avec MorphED, le jeu TheGoonies....
    Voici les manip que j'ai fait :
    - renommer makefile.mos en makefile
    - Modifier le main.c et 2DCCMC.cpp pour modifier les !include!s SDL (rajouter SDL/ devant)
    - Appuyer sur F3 (pour compiler)

    J'ai une erreur :
    ppc-morphos-g++ `sdl-config --cflags` -g -O2 -Wall -c 2DCMC.cpp -o 2DCMC.o
    In file !include!d from /gg/!include!/SDL/SDL_types.h:27,
    from /gg/!include!/SDL/SDL.h:34,
    from 2DCMC.cpp:13:
    /gg/!include!/SDL/SDL_stdinc.h:64: inttypes.h: No such file or directory
    make: *** [2DCMC.o] Error 1

    Genre il manque le fichier inttypes.h.

    Ma question donc est la suivante : Je trouve cela où ??? merci d'avance.



    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    Papiosaur
         
    5542

    Papiosaur
      Posté : 23-01-2010 21:09

    je te conseille d'aller sur les canaux IRC notés à gauche, de nombreux développeurs pourrons sans doute te filer un coup de mains.

      Profil  E-mail  www
    Fab
        
    369

    Fab
      Posté : 24-01-2010 02:58

    Citation : beworld

    Genre il manque le fichier inttypes.h.

    Ma question donc est la suivante : Je trouve cela où ??? merci d'avance.



    Dans l'archive libnix_update du sdk, qu'il te faut donc installer.

      Profil
    BeWorld
        
    995

    BeWorld
      Posté : 24-01-2010 09:40

    ok merci.


    Bon j'ai récupé les source de Glaxium......
    J'ai modifié la partie SDL de tout le code, maintenant quand je compile, j'ai ça comme erreur :

    gcc -c -o o/variables.o variables.cpp
    variables.cpp: In function `static bool GlaxiumVariables::isExtensionSupported(const char *)':
    variables.cpp:965: assignment to `const GLubyte *' from `GLbyte *' changes signedness
    make: *** [o/variables.o] Error 1

    Il manquait le glext.h, que j'ai trouvé dans un des répertoire d'un jeu SDL ?
    Une idée ? (fab, tu veux pas m'aider sur ce coup la)....

    Merci

    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    Fab
        
    369

    Fab
      Posté : 24-01-2010 14:50

    Citation : beworld

    gcc -c -o o/variables.o variables.cpp
    variables.cpp: In function `static bool GlaxiumVariables::isExtensionSupported(const char *)':
    variables.cpp:965: assignment to `const GLubyte *' from `GLbyte *' changes signedness
    make: *** [o/variables.o] Error 1



    Va falloir caster la variable en question. Mais il me faudrait la ligne en question pour voir.

      Profil
    BeWorld
        
    995

    BeWorld
      Posté : 24-01-2010 15:26

    ok, voici tout le bout de cote (avec la ligne 965) :


    bool GlaxiumVariables::isExtensionSupported(const char *extension)

    {

    const GLubyte *extensions = NULL;

    const GLubyte *start;

    GLubyte *where, *terminator;



    /* Extension names should not have spaces. */

    where = (GLubyte *) strchr(extension, ' ');

    if (where || *extension == '\0')

    return false;

    extensions = glGetString(GL_EXTENSIONS); <<<<<<<<<< c'est la le pb !!!

    /* It takes a bit of care to be fool-proof about parsing the

    OpenGL extensions string. Don't be fooled by sub-strings,

    etc. */

    start = extensions;

    for (; {

    where = (GLubyte *) strstr((const char *) start, extension);

    if (!where)

    break;

    terminator = where + strlen(extension);

    if (where == start || *(where - 1) == ' ')

    if (*terminator == ' ' || *terminator == '\0')

    return true;

    start = terminator;

    }

    return false;

    }



    Si tu veux autre chose ? merci





    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    BeWorld
        
    995

    BeWorld
      Posté : 24-01-2010 16:03

    J'ai commenté ce code pour voir la suite... la cela me dis qu'il me manque le fichier :
    glx.h.... je l'ai trouvé dans mesa-Amiwin.lha
    Et ensuite il me dis qu'il manque X11... j'ai mis aussi : libX11-1.0.1.lha....
    Je sens que je pars en vrille la.....
    sniff....

    Fab, tu veux pas regarder directement pour faire le port des fois

    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    Fab
        
    369

    Fab
      Posté : 24-01-2010 23:00

    pour l'erreur en question, tu aurais pu caster avec :
    extensions = (const GLubyte *) glGetString(GL_EXTENSIONS);

    Sinon, pour le mélange glx/tinygl, ça va pas le faire du tout. Là c'est typiquement un jeu pour lequel il faut vraiment faire un portage, et une simple recompilation n'a aucune chance de passer. Par exemple, il faudrait ouvrir toi même la fenêtre et créer le contexte opengl attaché à cette fenêtre pour remplacer le code glx, puis remplacer le code de gestion des évènements, ...(on peut voir comment c'est fait dans le port de Q3, par exemple).

    Pour un début, tu pourrais plutôt commencer par recompiler un truc comme la ré implémentation du moteur de flashback (Raw je crois?). Au moins ça compile direct, ça.

      Profil
    BeWorld
        
    995

    BeWorld
      Posté : 25-01-2010 07:50

    ok merci pour ta réponse...

    Bon je vais m'attaquer à plus petit et regarde ça un peu dans le détail.
    merci quand même.

    Bruno

    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    crato

    1

    crato
      Posté : 24-11-2018 22:58

    bonjour

    ayant les memes envie qu BeWorld

    c est a dire porter des jeux sous morphos je lisais le forum mais les liens de papiosaure en message 2 ne sont plus valide
    auriez vous des liens valide pour acceder a ses sites ??

    par avance merci
    crato
      Profil
    Templario
        
    472

    Templario
      Posté : 26-11-2018 16:49


    One question is very difficult make ports from c?
    For example if I found a c file drom dos.
      Profil  www
    BeWorld
        
    995

    BeWorld
      Posté : 26-11-2018 18:39

    Salut,

    Porter des jeux c'est pas facile quand même.

    Il faut déjà bien maîtriser le C ou c++ ensuite les outils GCC ou G++, make etc....,

    De mon coté j'ai fais pas mal de jeux qui utilisent la bibliothèque SDL 1.2.

    MorphOS ne possédant pas de SDL 2.0 stable, impossible de continuer pour le moment, car tous les nouveaux trucs utilisent ce SDL 2.0....

    Je me suis aidé notamment de ce site : http://amigacommunity.free.fr/phpBB/viewtopic.php?topic=132&forum=1 (Merci à Sixk) et des sources qui traînent avec les portages existants.

    Pour le reste, les utilitaires simples (depuis le shell), c'est assez facile, mais il faut connaitre un peu la différence entre le monde linux / windows et morphos, par exemple le système de fichiers.
    Exemple : http://www.morphos-storage.net/index.php?page=Graphics%2FTools&file=dcraw_9.27.lha
    il y a source avec.

    Après ayant les sources modifiées et en cherchant les sources originales, je compare les fichiers pour voir les différences.
    (J'utilise Windows, WinMErge... honte à moi lol)
    Et au fur à mesure de mes portages, on apprends

    Conclusion : j'aimerais bien voir SDL 2.0 pour continuer....


    PB 1.5G 17 / PM G5 2.7
    Mes ports
      Profil  E-mail  www
    Templario
        
    472

    Templario
      Posté : 27-11-2018 18:19

    Are there problems to port from msdos/windows c to Morphos? For example with dos commands or screen/graphics modes.
      Profil  www

    Sauter à :
     
        Stickers
    Information


    4,90 euros

        Carte MorphOS
    Utilisateurs MorphOS
        Association

    WArMUp-asso.fr - Site mis en ligne par K-L en Juin 2008 suite à une idée de Papiosaur, thème réalisé par PowerMetal et améliorations du site par BeWorld, JaMiGa et TUBbrain.