Création d’un package pour recalbox : ZELDA ROTH
-
bon ça plante.. lol j'ai ce message : CMake Error: The source directory "/home/ana/recalbox-buildroot/output/build/zeldaroth-linux" does not appear to contain CMakeLists.txt. et il ne me télécharge pas du tout le code source.. j'ai tenté un $(eval $(generic-package)) en bas du fichier .mk à la place de $(eval $(cmake-package)) , ça ne plante plus... par contre je ne trouve pas l’exécutable dans TARGET/output/usr/games .. Bon je continuerai mes investigations demain
-
D'après vous, est ce qu'il vaut mieux que je le compile en partant des source pour pandora en patchant le Makefile pour que ça compile pour recalbox, ou alors il vaut mieux que je fork la version pour Linux de base sur mon Github, que je vire le makefile et crée à la place un cmakelist.txt? voir proposer à l'auteur de Zelda Roth une version avec cmakelist.txt plutôt qu'avec makefile? car actuellement du coup il a une archive de source pour chaque système: http://www.zeldaroth.fr/dlroth.php Par contre on peut voir que le makefile a été généré par cmake.. c'est donc que ce dernier existe mais n'est juste pas fournit. ce qui du coup est quand même moins pratique que de passer par cmake . (oui je me tape des cours sur la création de makefiles d'un coté et l'utilisation de cmake de l'autre et entre nous je trouve l'utilisation de cmake (qui du coup se charge de créer les makefile) plus adapté et forcément plus polyvalente.. ^^)
-
Salut @HellRider ! Base toi sur un libretro que j'ai patché, genre https://github.com/digitalLumberjack/recalbox-buildroot/blob/recalbox/package/mupen64plus-core/mupen64plus-core.mk Si tu regarde, tu peux injecter des valeurs dans ce que tu veux modifier, même sans patcher le Makefile. Ce que tu mets avant le $(MAKE) est utilisé comme variable d'environnement, donc ici ne fonctionnera pas car tout est en dur. Ce que tu mets apres le $(MAKE) remplace les valeurs du makefile. Donc ce qui nous interesse ici c'est :
PREFIX = /mnt/utmp/ZeldaROTH CFLAGS = -O2 -Wall -I/usr/local/pandora/arm-2009q3/usr/include LDFLAGS = -L/usr/local/pandora/arm-2009q3/usr/lib -Wl,-rpath,/usr/local/pandora/arm-2009q3/usr/lib -lSDL_gfx -lSDL_image -lSDL_mixer -lSDL CC = arm-none-linux-gnueabi-g++ RM = rm -f INSTALL_PROG = install -m 755 -s EXE = ZeldaROTH
Tout ça a injecter
-
Super merci pour les infos ^^ Bon j'ai quand même appris à créer des patch c'est pas perdu ^^ Par contre comme je l'ai mis dans mon Edit ce matin, le Makefile a été généré par un cmake... c'est donc que le cmakelist a été fait je suppose.
-
je viens de remarquer que le lien "ici" ne fonctionne pas..?
-
re^^ bon j'ai effacé le patch, j'ai modifié mon mk en m'inspirant de ton fichier pour libreto et j'ai aussi ajouté des dépendances dans Config.in La compilation s'est lancé, s'est arrêté sans message d'erreur, mais rien n'est copié là où ça devrait se trouver.. le problème c'est que sans aucun message d'erreur, pas évident de comprendre ce qui ne va pas... (en tout cas j'ai poussé le tout sur mon dépôt) Edit: j'ai fait un locate zeldaroth et il en sort ça: http://pastebin.com/ACyC2j1x j'en déduis que le build se passe pas trop mal et que c'est l'installer qui cloche..? Edit 2: je viens de réalisé que c'est juste les sources téléchargés dans le répertoire build... arff.. suis dépité.. donc en gros il ne build pas ,même pas une tentative, les sources.... Edit 3: j'ai testé avec ce mk aussi mais ça change rien (les tabulations ont disparu mais sont bien présentes dans mon ficier):
################################################################################ # # Zelda Roth # ################################################################################ ZELDAROTH_VERSION = linux ZELDAROTH_SOURCE = ZeldaROTH-src-$(ZELDAROTH_VERSION).tar.gz ZELDAROTH_SITE = http://www.zeldaroth.fr/fichier/ROTH/pandora ZELDAROTH_LICENCE = GPL ZELDAROTH_DEPENDENCIES = sdl #TARGET_CFLAGS = -O2 -Wall #TARGET_LD = -lSDL_gfx -lSDL_image -lSDL_mixer -lSDL ZELDAROTH_TARGET = ZeldaROTH define ZELDAROTH_BUILD_CMDS $(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" \ CFLAGS="$(TARGET_CFLAGS)" LD="$(TARGET_LD)" \ TARGET="$(ZELDAROTH_TARGET)" -C $(@D) all endef define ZELDAROTH_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/$(ZELDAROTH_TARGET) \ $(TARGET_DIR)/usr/games/$(ZELDAROTH_TARGET) endef $(eval $(generic-package))
-
j'ai peut être une idée. le Makefile se trouve dans le répertoire src/ lui même inclus dans zeldaroth-linux/ du coup je pense que le Make reste au niveau de zeldaroth-linux/ et ne "rentre" pas dans src/ Comment lu indiquer de rentrer dans src/ si c'est bien ça?
-
Regarde la : https://github.com/digitalLumberjack/recalbox-buildroot/blob/recalbox/package/libretro-gambatte/libretro-gambatte.mk#L10 -C $(@D)/libgambatte/ te permet de changer le repertoire d'execution du make.
-
Je viens de réaliser que lors de mon dernier test j'avais déjà testé: -C $(@D)/src et que ça ne marche pas non plus.. le pire c'est l'absence de message d'erreur ou de warning !
-
Pour ceux qui suivraient, j'ai fais une pull request avec des modifications qui font compiler zelda roth : https://github.com/BlessedHellRider/recalbox-buildroot/pull/2/files
-
j'ai répondu sur GH à ton derniers commentaire ^^ (désolé j'aurai du pousser ma dernière version du mk sur GH et pas seulement la coller ici.. )
-
Je viens de tester ça en ssh (après avoir copié les *.so nécessaires dans /usr/lib): SDL_VIDEO_GL_DRIVER=/usr/lib/libGLESv2.so SDL_NOMOUSE=1 ./ZeldaROTH pas de message d'erreur dans le terminal, mais l'écran reste noir (j'ai fait un killall emulationstation avant ) et ctrl-C ne quitte pas le programme et si je ssh dans un autre terminal , pas moyen de killer le process... peut être que je me trompe dans la ligne de commande pour le lancer? ou il faut jouer sur tvservice??
-
j'ai tenté de changer les modes de tvservices: # tvservice –explicit= "CEA 1 HDMI" # tvservice –explicit= "CEA 2 HDMI" Mais ça ne change rien.. en plus ce coup-ci à deux reprise j'ai eu un "plantage" dans le terminal avec le message "Segmentation Fault"
-
Le binaire est compilé avec SDL1. Pas besoin de spécifier le driver.
-
oui ma première tentative était sans spécifier le driver avec juste ./ZeldaROTH mais comme ça n'a pas marché, j'ai tenté autre chose... je retenterai avec CEA 1 HMDI sans spécifier le driver néanmoins..
-
bon j'ai testé , ça ne fonctionne pas non plus, j'ai soit un segmentation fault et dans ce cas je récupére la main, soit pas de message d'erreur et là il faut que j'ouvre une autre session ssh pour faire un halt car le process ne se kille pas..
-
Pas bonne nouvelle du tout le mieux je pense c'est de prendre les sources linux, et de tester une compilation sur un raspbian, et voir si ca passe déjà.
-
oui c'est ce que je me suis dis... mais faut que j'achète une autre carte SD pour ça. la seule que j'ai sert à ma recalbox ^^ et c'est sur elle que je fais mes tests d'ailleurs.... question un peu dans le vide, tu as une idée, même très vague, d'où ça peut venir?
-
voilà ce que me donne la ligne de commande file: ~/recalbox-buildroot/output/target/usr/games/ZeldaROTH$ file ZeldaROTH ZeldaROTH: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
-
Bon j'essaye d'aider un peu, vu que c'est moi qui ai parlé du jeu au départ Bon j'ai tenté sur une raspbian propre, de compiler le jeu (source linux) par un simple make j'ai au choix soit l'image correctement en tout petit dans un coin ou en plein écran coupé en deux inversé. un file me donne bien un bin arm
pi@raspberrypi ~/ZeldaROTH-src-linux/src $ file ZeldaROTH ZeldaROTH: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x8858af8dba72bdad327820e4b78ddbc7e15b1b86, not stripped