Connexion
Vous n'avez pas encore de compte personnel ? Vous devriez en créer un. Une fois enregistré vous aurez certains avantages, comme pouvoir modifier l'aspect du site, ou poster des commentaires signés...
Support
Activité du Site

Pages vues depuis 06/01/2019 : 21 759 737

  • Nb. de membres 372
  • Nb. d'articles 3 013
  • Nb. de forums 24
  • Nb. de sujets 13
  • Nb. de critiques 0

Top 10  Statistiques

Index du forum »»  Développement »» Comment réaliser des portages pour MorphOS

Comment réaliser des portages pour MorphOS#2420

5Contributeur(s)
PapiosaurSergiussayasupacrewJediTemplario
2 Modérateur(s)
PapiosaurBeWorld
Papiosaur Papiosauricon_post
Bonjour à tous,

je vais essayer de partager mon expérience dans le portage pour MorphOS :-)

Tout d'abord, il faut installer le SDK sur son système, il est dispo sur le site officiel.

Ensuite, il faut mettre à jour son SDK en installant des librairies (.a) et les in cludes (.h) supplémentaires.

SDL2, OpenGL, GLUT sont par exemple des librairies de développement (nommé dépendances) que les logiciels ou jeux peuvent avoir besoin et qu'il faut installer dans le SDK pour que le compilateur puisse générer un fichier exécutable compatible MorphOS.

Ces fichiers sont disponibles dans les archives TinyGL (qui contient également la librairie GLUT) et SDL2 qui ont été porté respectivement par bigfoot et BeWorld.

Il en existe bien sûr des dixaines d'autres qui sont disponibles ici :

https://www.morphos-storage.net/?page=Development/Library

Ces libraires et ces in cludes s'installent normalement dans les chemins suivants :

gg:user/local/lib pour les libraries (.a)
gg:user/local/!!!!!!!!include!!!!!!!!s/ pour les !!!!!!!!!!include!!!!!!!!!!s liés à la librairie


Ne pas tenir compte des !

Ensuite, il faut chercher un projet (jeu, commande ou logiciel) sur Github, SourceForge ou autre qui soit portable à l'instant T, c'est à dire que les dépendances disponibles.

Dans tous mes projets, j'ai normalement mis une archive nommée Sources.lha qui contient les sources et le Makefile.

Le Makefile est un script contenant toutes les informations nécessaires au compilateur pour générer le fichier exécutable.

Le ligne d'exécution d'un script Makefile est la suivante :

cd chemin-du-projet
make


Perso, j'ai réalisé un mimetype qui exécute le Makefile si on clique deux fois dessus (plus simple je trouve).

Si votre projet contient un fichier CMakeLists.txt à la racine (normalement)
il faut utiliser la commande suivante:

cd chemin-du-projet
cmake -DCMAKE_CXX_FLAGS="-noixemul"
..

A noter que nous disposons pour le moment que de la commande cmake version 3.9.6.
Certains scripts demandent des versions supérieurs, vous pouvez essayer d'éditer le fichier CMakeLists.txt et de modifier le numéro de version
à la ligne cmake_minimum_required(VERSION x.xx.x) en mettant 3.9.6 (sur un malentendu ça peut passer).

Vous retrouverez ce 'flag' (ou drapeau) -noixemul souvent sur MorphOS (dans le script Makefile notamment).

Voici quelques explications :

Le flag -noixemul sur MorphOS sert à désactiver l'émulation UNIX (IX). Plus précisément :

Objectif principal :
Évite l'utilisation de la couche d'émulation UNIX intégrée
Permet d'accéder directement aux fonctions natives de MorphOS

Avantages :
Meilleures performances car pas de couche d'émulation
Exécutables plus petits
Accès direct aux API natives

Contexte :
Par défaut, le compilateur GCC sur MorphOS utilise une couche d'émulation pour supporter les appels système UNIX
Cette couche sert à la compatibilité avec les programmes UNIX
Mais elle n'est pas nécessaire pour les programmes natifs MorphOS

En bref, -noixemul est souvent recommandé pour les applications natives MorphOS car il améliore les performances en évitant une couche d'émulation inutile.
Le prochain post parlera plus précisément du script Makefile.

N'hésitez à me contacter sur papiosaur2 hotmail fr si vous avez des questions.
Si vous désirez me soutenir, n'hésitez pas, vous avez un lien Paypal à coté de mes projets :

https://www.morphos-storage.net/?all=1&dev=Papiosaur

Pour info, cette activité est chronophage :-)
Il faut de la patience et de la persévérance pour obtenir des résultats : pas mal de choses doivent être corrigé après avoir réaliser le "bon" Makefile, il faut tout d'abord obtenir un fichier "éxécutable", souvent des chemins sont à corriger, des soucis de couleurs, des commandes pour quitter incomplètes qui génèrent des soucis sur MorphOS en quittant, des utilisations CPU importantes qui nécessite des optimisations, etc.

Bon courage si vous êtes motivé :-)

Je remercie encore BeWorld pour son portage de SDL2 et pour son aide.
Je pose des questions à l'IA Claude pour m'aider dans mes portages. La partie sur "noixemul" a été généré par lui.
Il peut parfois apporter des solutions pertinentes mais il faut bien l'aiguiller...
 Message édité par : Papiosaur / 18-02-2025 15:19
Papiosaur Papiosauricon_post
Parfois, dans certain projet, il y a un fichier "configure" qui permet de créer et configurer votre fichier Makefile.

Vous pouvez taper:

configure --help

pour obtenir les options qu'il propose et peut-être certains modules sont à désactiver (réseau par exemple)
 This message was edited by : Papiosaur / 2025-02-19 21:59
Sergius Sergiusicon_post
Merci beaucoup Papiosaur pour ce partage.

Je tenterai peut-être l'expérience ?.
Amigalement
Papiosaur Papiosauricon_post
De rien, j'espère que ça motivera du monde à commencer :-D

Si tu as des questions ou des soucis, n'hésites pas à me contacter ;-)
sayasupacrew sayasupacrewicon_post
Lut Papiosaur; Como esta !

Perso j'ai la même idée qui me trotte dans la tête et depuis le debut que j'ai des machine sous l'OS au papillon bleu.
Franchement tu m'épate d'en être arrivée la ou tu en est et franchement si je pouvais porté aussi; c'est carrement un rêve.
J'ai franchement des idées pour ce que l'on pourrais amener a gonflé la logithèque du papillon, parce comme il évolue, on perd
forcement les plus vieux software, enfin la je t'apprend rien;

un gros kiff ce sujet.
Papiosaur Papiosauricon_post
Salut Saya,

va bene et tu ?

content que le sujet te plaise, la semaine prochaine je vais essayer de proposer des scripts Makefile "génériques" : C/C++, SDL1, SDL2, OpenGL

Il faudra bien sûr les adapter aux projets que vous voulez porter (des projets simples hein).

Je vais également décrire chaque ligne du Makefile pour que vous compreniez un peu mieux le fonctionnement de ce script.

A bientôt ;-)
Jedi Jediicon_post
Citation : Papiosaur
Pour info, cette activité est chronophage :-)
Il faut de la patience et de la persévérance pour obtenir des résultats : pas mal de choses doivent être corrigé après avoir réaliser le "bon" Makefile, il faut tout d'abord obtenir un fichier "éxécutable", souvent des chemins sont à corriger, des soucis de couleurs, des commandes pour quitter incomplètes qui génèrent des soucis sur MorphOS en quittant, des utilisations CPU importantes qui nécessite des optimisations, etc.

Bon courage si vous êtes motivé :-)


Pour moi, tout est dit là :)

En fin d'année / début d'année (pendant une semaine), j'ai tenté des dizaines de portages, j'ai gardé les plus sympas là :
http://www.boingball.net/AMIGA_FOR_EVER/Codes/C/MorphOS-Ports/

Quelques autres ont abouti mais peu intéressants, et deux ou trois où il fallait trop approfondir le code (forcément non commenté) pour corriger les trucs qui n'allaient pas (affichages absents ou buggés, saturations CPU, plantages ou freezes divers, etc).

Donc j'admire Papio pour sa persévérance et sa motivation (montrant que c'est faisable), et BeWorld pour avoir autant approfondi tout ça et au niveau qu'il a atteint (niveau moins évident à atteindre, sauf avec beaucoup plus de temps à consacrer).

:)

Perso, pour l'heure je n'ai que des connaissances générales en langage C et makefiles (et c'est lourd la gestion des bibliothèques avec makefile).

A ce stade, je préfère davantage m'amuser de temps en temps à découvrir la programmation avec SDL2 et produire mes propres trucs originaux (ou pas ^^), ça m'intéresse davantage, davantage motivant. Reste le temps qu'on a toujours trop peu... :/

(si vous ne voulez pas être démoralisés, ne lisez pas ça : au bout d'un moment, je me suis aussi dit "à quoi bon porter tous ces trucs que je peux avoir directement sur mon Linux" :/
avertissement inutile si vous êtes toujours là :D )
Papiosaur Papiosauricon_post
@Jedi: j'aime bien me donner des challenges et la programmation en est un qui n'a de limite que son imagination et ses envies ! Je te comprend quand tu dis que tu préfères créer tes propres jeux, malheureusement je n'ai pas encore le niveau pour ça mais ça viendra avec le temps j'espère. La programmation m'a toujours attiré, je commence un peu tard, 48 ans, mais y'a pas d'âge comme on dit :-D Je progresse mois après mois et ça fait plaisir de voir que j'arrive à porter des trucs pas trop mal et qui j'espère vous plaisent.

Le petit dernier qui sort aujourd'hui : 3D-Chess avec support de Stockfish 5 (porté par Domico Lattanzi) et qui m'a permis de rajouter un mode "Human vs CPU" qui n'existait pas d'origine.

Un support réseau serait sympa pour pouvoir jouer à distance :-D

[EDIT] La semaine prochaine je vais essayer de me repencher sur tes soucis de CPU trop élevé sur Asteroid et Path-Ball, j'espère que j'y arriverais cette fois-ci ;-)
 This message was edited by : Papiosaur / 2025-03-08 10:21
Templario Templarioicon_post
Make your own game is easy only you must start for some easy like a card game, or board game, because the shot' em Up, arecade, sports, are more complex and if you are interest I cand send you the code someone game mine for example the High Low Card, that now I am working in a new version to can play with Baphomet Decks, cards more big than before.
Jedi Jediicon_post
@Papio (et autres intéressés par ce type d'apprentissage) :

Ça peut aider : http://obligement.free.fr/articles/animation_image_c_sdl2_morphos.php

Il y aura une suite dans pas longtemps... ;)

Avec des fonctionnalités très concrètes, progressives, et très détaillées, justement pour ceux qui débutent aussi en programmation :)

(je pense qu'il faut débuter avec ce genre de choses, ça montre bien les grands principes, utiles pour aller plus loin après)

[EDIT] La semaine prochaine je vais essayer de me repencher sur tes soucis de CPU trop élevé sur Asteroid et Path-Ball, j'espère que j'y arriverais cette fois-ci ;-)


Ce serait cool :)

J'avais tenté plusieurs pistes pour Path Ball, sans impact :/ et pas regardé pour Ast3r0id (j'y vois moins d'intérêt).