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...
Activité du Site

Pages vues depuis 06/01/2019 : 112 864

  • Nb. de membres 307
  • Nb. d'articles 2 154
  • 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 ?

Comment porter un jeu sur MorphOS ?#392

5Contributeur(s)
BeWorldPapiosaurFabcratoTemplario
2 Modérateur(s)
PapiosaurBeWorld
Templario Templarioicon_post
Are there problems to port from msdos/windows c to Morphos? For example with dos commands or screen/graphics modes.
BeWorld BeWorldicon_post
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
Templario Templarioicon_post

One question is very difficult make ports from c?
For example if I found a c file drom dos.
crato cratoicon_post
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
BeWorld BeWorldicon_post
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
Fab Fabicon_post
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. :)
BeWorld BeWorldicon_post
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
BeWorld BeWorldicon_post
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 !!! :paf

/* 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
Fab Fabicon_post
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.
BeWorld BeWorldicon_post
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