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 527

  • 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
Merci Jedi pour cet excellent tuto !!!

J'attends la suite avec impatience ;-)

Concernant Path-Ball, j'ai remis les main dans le camboui (si on peut dire) mais rien... j'ai désactivé le son, fais des optimisations sur l'affichage, sur le chrono du jeu mais rien de rien. J'ai viens de lancer une issue sur Github et le dev a déjà répondu :
https://github.com/YassWrld/Path-Ball/issues/1
Jedi Jediicon_post
Citation : Papiosaur
Merci Jedi pour cet excellent tuto !!!

J'attends la suite avec impatience ;-)

Two more weeks ^^

Citation : Papiosaur
Concernant Path-Ball, j'ai remis les main dans le camboui (si on peut dire) mais rien... j'ai désactivé le son, fais des optimisations sur l'affichage, sur le chrono du jeu mais rien de rien. J'ai viens de lancer une issue sur Github et le dev a déjà répondu :

https://github.com/YassWrld/Path-Ball/issues/1

Super ! :)

"We tried to remove the background since it was calculated and drawn at every single frame"

Je ne sais pas si tu te souviens, mais je t'avais envoyé un retour de ce genre. J'ai l'impression que ce jeu, où il y a peu de changements à l'écran, recalcule des trucs inutiles à chaque fois... (ça, c'est typique quand on fait du dev avec des systèmes trop puissants, on n'optimise plus rien...).
Papiosaur Papiosauricon_post
Je ne sais pas si tu te souviens, mais je t'avais envoyé un retour de ce genre. J'ai l'impression que ce jeu, où il y a peu de changements à l'écran, recalcule des trucs inutiles à chaque fois... (ça, c'est typique quand on fait du dev avec des systèmes trop puissants, on n'optimise plus rien...).

Oui, maintenant ça me revient... on dirait que c'est toutes les parties du jeu qui sont dans le même cas...

Sur MorphOS on est obligé d'optimiser et c'est pas plus mal... Là c'est typiquement un glouton le jeu, 97% d'utilisation dans le menu sur le G5!

Si le truc recalcule des trucs à chaque frame, ça le fait pas... J'espère qu'ils pourront faire quelque chose pour l'optimiser, j'aime bien ce jeu, il sort un peu de l'ordinaire.
Jedi Jediicon_post
Yes.

Yes.

Pareil, je le trouve bien fait et c'est prenant comme casse-tête ^^
Papiosaur Papiosauricon_post
Le voili, le voila...

Le Makefile, le truc qui doit être bien fait sinon ça part mal...

Il s'agit du script qui permet de compiler un projet, il contient toutes les informations nécessaires au compilateur pour rendre le projet "exécutable".

Il se met à la racine du projet. Parfois les fichiers .c sont dans la racine, parfois ils sont bien rangés dans un répertoire src/

J'ai mis exécutable car ce n'est pas parce qu'on a un exécutable que c'est forcement gagné... loin de là parfois :-)

Voici la description des différentes lignes d'un Makefile générique pour un code en C


CC = gcc # le nom du compilateur pour du C

# Nom de l'exécutable final
TARGET = MonApplication

# -Wall : active tous les avertissements
# -O2 : optimisation niveau 2 (le plus utilisé)
# -noixemul : n'utilise pas la bibliothèque ixemul.library (code plus natif), nécessaire pour les logiciels avec fenêtre
CFLAGS = -Wall -O2 -noixemul

# Fichiers sources (ajouter tous vos fichiers .c)
SRCS = src/fichier1.c \ #la barre en travers c'est pour dire qu'il y a encore des fichiers dessous
src/fichier2.c

# Génération automatique des noms de fichiers objets (.o)
OBJS = $(SRCS:.c=.o)

# Bibliothèques requises
# -lSDL2 bibliothèque SDL2 principale
# -lSDL2_mixer : bibliothèque SDL2 pour le son
LIBS = -lSDL2_mixer -lSDL2 # comme -lSDL2_mixer dépend de -lSDL2, il est placé avant

# Chemins d'inclusion pour les headers
# Peut varier selon votre installation
!!!!include!!!!S = -I/gg/user/local/!!!!include!!!! -I/gg/user/local/!!!!include!!!!/SDL2 #pour gérer à la fois les et dans les codes.

# Règle par défaut (première cible = cible par défaut)
all: $(TARGET)

# Règle pour créer l'exécutable en liant les objets
$(TARGET): $(OBJS)
$(CC) -o $(OBJS) $(LIBS)

# Règle générique pour compiler les fichiers source en objets
%.o: %.c
$(CC) $(CFLAGS) $(!!!!include!!!!S) -c $< -o $@

# Nettoyage des fichiers objets et de l'exécutable en tapant Make clean
clean:
rm -f $(OBJS) $(TARGET)

# Indiquer que les cibles clean et rebuild ne correspondent pas à des fichiers
.PHONY: clean rebuild all

Pour du C++, il faudra remplacer les 'CC' par des 'CXX', les '.c' par des '.cpp', et le nom du compilateur de gcc en g++

Des compilateurs plus récents peuvent vous être demandé en fonction du code:

ppc-morphos-gcc-9 ou 11 à la place de gcc pour le C
ppc-morphos-g++-9 ou 11 à la place de g++ pour le C++


J'ai fait un petit mimetype qui doit être dans le pack qui permet de lancer l'exécution d'un Makefile en double-cliquant dessus.

Comme le mot !include! apparait mal dans le forum... L'idéal ça serait de reprendre un Makefile dispo dans un de mes projets et de le modifier.

A vous de 'jouer' pour porter un petit jeu, si vous avec des questions n'hésitez pas à me contacter sur papiosaur2 at hotmail.fr
 This message was edited by : Papiosaur / 2025-03-20 14:07
 This message was edited by : Papiosaur / 2025-03-20 14:19