https://www.segasaturno.com/portal/viewtopic.php?f=33&t=7702 ----------------------------------- Indiket 20 May 2014, 10:55 PM [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- [color=#F20000][b]ACTUALIZADO A MARZO DE 2016!![/b][/color] Amigos, lo prometido es deuda!! Lo que van a leer en las siguientes líneas es un buen tostón (jajaja) para adentrarse en el apasionante mundo de la scene Saturnera!! [align=center][img src="http://www.segasaturno.com/portal/files/images/2584/inkfill1.png" width=628 /][/align] [b][color=red]Aviso[/color][/b]: Tutorial de dificultad alta / hardcore de carácter bastante técnico! He realizado la compilación usando [b]Mac Os X (10.11) y Homebrew[/b], así que en entornos Unix o Cygwin... YMMV [b][color=#4E99FF]¿Host, target, tool-chain, cross-compiler, libyaul? Ayuda!![/color][/b] Así que quieres hacer juegos para la Sega Saturn eh? Estupendo, aquí la lección 101: - [b]Host[/b]: Máquina en la que programaremos (un PC, Mac). - [b]Target[/b]: La máquina dónde queremos que se ejecuten nuestro programa (la Saturn) - [b]Cross-compile[/b]: Necesitamos algo que traduzca nuestro código del host , a código binario en el target. Ese proceso es lo que se llama compilación cruzada: una máquina genera código para otra. - [b]Tool-chain[/b]: La toolchain es el conjunto de herramientas para hacer la cross-compile. Incluye los compiladores, linkadores, ensambladores... - [b]Libyaul[/b]: (Yet Another Useless Library) es un estupendo development kit open-source para SEGA Saturn que ofrece un conjunto de rutinas de bajo-nivel para que hagamos programas a alto-nivel (toma ya!). ¿Y para qué todo ese rollo? Fácil! Antes de usar la libyaul, debemos de tener nuestra Tool-chain compilada (es decir, el entorno básico de programación!). Así que la primera parte del tutorial se basará en compilar nuestra propia Tool-chain :) [b][color=#4E99FF]Requisitos previos[/color][/b] Para poder compilar la Toolchain necesitaremos tener las siguientes herramientas (si no lo sabéis, escribid el comando en un terminal para ver si la tenéis instalada): - [b]wget[/b]: para descargar los paquetes GCC. - [b]gpg[/b]: se usa para comparar la integridad de los paquetes descargados. - [b]make[/b]: herramienta base para compilar cosas. - [b]md5sum[/b]: otra herramienta de comparación de hashes. - [b]patch[/b]: herramienta para aplicar parches especificos. - [b]gcc / g++[/b]: el compilador básico para que compilemos cosas. [color=#FF0000]IMPORTANTE:[/color] Usad la versión 4 (4.7, 4.8...) pero NO os funcionará con la 5! - [b]git[/b]: para obtener los fuentes de libyaul - [b]genisoimage / mkisofs[/b]: para crear imágenes ISO - [b]awk[/b]: util de scripting. - [b]makeinfo[/b]: de serie en OSX, en ubuntu es el package "texinfo" * Para Cygwin, todos ellos los encontraréis en los packages (menos CMAKE). El CMAKE lo podéis instalar en Windows y luego añadirlo en vuestro PATH para que Cygwin lo pueda llamar. * En UNIX con apt-get se deberían encontrar todos sin problemas. * Para los fans del OSX, podéis usar Macports o Homebrew para los siguientes paquetes (en Mac no tenemos md5sum pero sí md5, como veremos más adelante): [code linenumbers=false] wget, gnupg, coreutils, cdrtools [/code] [b][color=#4E99FF]Preparando la compilación[/color][/b] La URL de la libyaul es la siguiente: https://github.com/ijacquez/libyaul Primero la descargaremos una copia en nuestro ordenador. Por ejemplo, yo la tengo dentro de mi HOME: [code linenumbers=false] cd ~ mkdir saturn cd saturn git clone https://github.com/ijacquez/libyaul.git libyaul cd libyaul git submodule init git submodule update -f [/code] Si miráis dentro, veréis varias carpetas, pero la que nos interesa ahora es la de tools/build-scripts. Esa carpeta contine varios scripts para que compilemos la tool-chain, así que entrad dentro de ella. El siguiente comando os creará un fichero de configuración ;) [code linenumbers=false] cd tools/build-scripts cp -v config{.in,} [/code] Ahora habrá que editar varios ficheros de la siguiente manera: [b]config[/b] * BUILD_INSTALL_DIR: Aquí debéis poner la ruta dónde queréis tener vuestra toolchain. Ej: /Users/ryo/saturn/tool-chains # Tools for host [color=red]Sólo para Mac Os X![/color]: Descomentad "md5" y comentad "md5sum" * OPTION_DOWNLOAD_TARBALLS="yes" (descarga los paquetes él solito) * OPTION_ENABLE_GDB="no" (no queremos el debugger GDB... lo dejamos para otro día xD) [b]build-compiler[/b] [color=red]Sólo para Mac Os X![/color] Bien, como hemos cambiado la herramienta md5sum por md5, también debemos de cambiar el script que se usa para recoger el HASH de los ficheros. Por suerte, es un cambio menor! Hacía la línea 380, debéis de cambiar la línea que define a calculated_md5 (sólo cambiad para el caso de md5, que es el que usará el script!). [code linenumbers=false] case "${MD5}" in "md5") calculated_md5=`"${MD5}" -r "${NEWLIB}" | awk '{print $1;}'` ;; "md5sum") calculated_md5=`"${MD5}" "${NEWLIB}" | sed -r -n 's/^([a-f0-9][a-f0-9]*)\s+.*?$/\1/pg'` ;; esac [/code] [b]sh-elf/scripts/build m68k/scripts/build[/b] Si queremos evitar un error del tipo "error: 'sbrk' is deprecated" http://stackoverflow.com/questions/20426213/error-building-ellcc asegurémonos que el CFLAGS esté así (en los 2 ficheros): [code linenumbers=false] message "Configuring Binutils" CFLAGS="-Wno-error=deprecated-declarations" LDFLAGS="" ../"${BINUTILS_SRC_DIR}"/configure \ [/code] [b][color=#4E99FF]¿Compilo ya?[/color][/b] Eeerh... no! jajajajaja. Veréis, hay un pequeño detalle que no os he contado. Este script nos compilará un GCC para el SH y el M68K (los dos procesadores de la Saturn), pero lamentablemente no es tan listo, y os pedirá las dependencias de GCC!!! Así pues, necesitaréis tener [b]instaladas también[/b] las siguientes librerías!! [b]- GMP 5.1.2 - MPFR 3.1.2 - MPC 1.0.1[/b] Seguramente las podáis obtener de vuestros paquetes (acordaros de elegir las versiones "dev", si hay más de una!). Ni las intentéis compilar, de verdad! [color=red]Sólo para Mac Os X![/color]: En Macports se hace así (importante el orden en que se instalan: libmpc depende de las dos anteriores): [code linenumbers=false] sudo port install gmp +universal sudo port install mpfr +universal sudo port install libmpc +universal [/code] Con Homebrew: [code linenumbers=false] brew install gmp brew install mpfr brew install libmpc [/code] Luego, tendréis que decirle a los [b]dos scripts anteriores[/b] cuál es la ruta de las librerías recién instaladas. Añadid al LDFLAGS_FOR_TARGET lo siguiente (/opt/local para Macports, /usr/local para Homebrew): [code linenumbers=false] --with-gmp="/opt/local" \ --with-mpfr="/opt/local" \ --with-mpc="/opt/local" \ [/code] [b][color=#4E99FF]¡Por dios, dime que puedo compilar ya![/color][/b] Pues claro que sí, campeón!! Si has llegado hasta aquí es que te lo mereces jajaja. Ingresa a la carpeta /tools/build-scripts y ejecuta: >> ./buid-compiler El script funciona de la siguiente manera: - va trabajando sobre la carpeta temporal que le habéis definido en el config. - a cada paso completado, irá creando un fichero "vacío", como si fueran checkpoints. Por ejemplo: downloaded-tarballs , checked-integrity... - si os fallara la compilación, gracias a esos ficheros, al volver a ejecutarlo no empezará desde 0. Y si queréis que repita un paso, simplemente borrad ese fichero vacío! [b][color=#4E99FF]¡¡Aleluya!! ¡Terminó y no tengo errores![/color][/b] Eres un fenómeno :mrgreen: . Lo primero es añadir tu nuevo compilador en tu PATH de la consola. [code linenumbers=false] echo $PATH; export PATH="/Users/ryo/saturn/tool-chains/sh-elf/bin:/Users/ryo/saturn/tool-chains/m68k-elf/bin:${PATH}" [/code] Eso lo añadirá al PATH, pero sólo en la sesión actual. Si no quieres escribir esto cada vez, lo puedes poner en tu .profile. [b][color=#4E99FF]Seguimos con la libyaul[/color][/b] La libyaul se compone de diferentes módulos: release (la lib propiamente dicha), tools (herramientas necesarias para compilar) y examples (makefile para generar los ejemplos). Es MUY importante seguir bien los siguientes pasos, cracks!! Ahora os iré comentando diferentes aspectos a arreglar antes de hacer la compilación final... [b][color=#4E99FF]Generar y cargar el entorno[/color][/b] Libyaul usa un fichero de entorno, en que se define las rutas que usará la librería. Hay que crear y editar este fichero: [code linenumbers=false] cp -v yaul.env{.in,} [/code] [b]INSTALL_ROOT:[/b] Aquí pondremos la ruta dónde hemos instalado nuestra toolchain (concretamente, el directorio sh-elf). Ejemplo: /Users/ryo/saturn/tool-chains/sh-elf [b]BUILD_ROOT:[/b] Aquí pondremos la ruta dónde tenemos la librería libyaul. Ejemplo: /Users/ryo/saturn/libyaul Una vez definidos, cada vez que usemos la consola, debemos de cargar este entorno con el comando (y lo haremos ahora mismo): [code linenumbers=false] source yaul.env [/code] [b][color=#4E99FF]/tools/Makefile[/color][/b] Para evitaros problemas de cabeza, es mejor quitar la tool "ssload" (necesitaréis pkg-ino y libftdi, entre otros xD). [b][color=#4E99FF]/tools/make-iso/make-iso[/color][/b] Si sois viejunos como yo, y usáis mkisofs en vez del nuevo genisoimage, cambiadle el comando "genisoimage" por "mkisofs" dentro del script. [b][color=#4E99FF]/tools/bin2c/Makefile /tools/genromfs/Makefile[/color][/b] Quitad la línea del strip (borradla, no es correcta en el entorno Mac): [strike]$(SILENT)$(STRIP) -s $@[/strike] [b][color=#4E99FF]COMPILAR LA MALDITA LIBRERÍA Y SUS HERRAMIENTAS xDDD[/color][/b] [code linenumbers=false] cd ~ cd saturn/libyaul make release make install-release make tools make install-tools [/code] Tools os compilará: bin2c, bin2o, genromfs y make-iso. [b][color=#4E99FF]¡Quiero ver ejemplos![/color][/b] Bueno, casi casi estamos!!! Todavía hay algunos pequeños bugs que libyaul no los ha arreglado, así que os indico qué más ficheros debéis de tocar!! :D :D :D [b]tool-chains/sh-elf/share/yaul/pre.common.mk[/b] Debéis de arreglar el path a la libfixmath y libyaul con estas líneas: [code linenumbers=false] -I$(BUILD_ROOT)/libfixmath \ -I$(BUILD_ROOT)/libyaul \ [/code] [b]tool-chains/sh-elf/share/yaul/post.common.mk[/b] Eliminad el comentario dentro del comando awk (es decir, borrad esta línea): [strike]# TODO: Allow for titles to be greater than 16 characters \[/strike] Para compilar los ejemplos, es tan fácil como ir a la carpeta raíz de libyaul y ejecutar: [code linenumbers=false] make examples [/code] NOTA: Si os falla algún ejemplo (como el dark-blue, u otros), lo mejor es que los comentéis en el fichero "examples/Makefile" (a fecha de hoy, no todos compilan correctamente). Oh magia!! Si todo ha ido bien, tendrás un nuevo fichero binario en cada carpeta de ejemplo. Acabas de crear un fichero que ya lo puede ejecutar una Sega Saturn!! Además, también verás un IP.BIN autogenerado (maravilla!) y el fichero ISO que lo podéis ejecutar :putoamo: [align=center] [img]http://www.segasaturno.com/portal/files/images/2584/inkfill2.png[/img][/align] [align=center][img]http://www.segasaturno.com/portal/files/images/2584/inkfill3.png[/img] [/align] [b][color=#4E99FF]Conclusiones[/color][/b] Aquí termina este [b]TOSTÓN[/b] de tutorial... lo reconozco!! Personalmente, le veo bastante potencial a la librería, así que os animo a que la probéis! Espero vuestro comentarios, dudas, problemas con impaciencia!! :oops: Un gran saludo sceners!!! ;) ----------------------------------- Ryo Suzuki 21 May 2014, 11:17 AM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Extraordinario tuto, muchas gracias!! :putoamo: Un gran descubrimiento que hemos hecho con esta [b]libyaul: Yet Another Useless Library[/b] de [b]mrkotfw[/b]. Al tratarse como dices de software distribuido y desarrollado libremente y que no usa nada creo de lo que SEGA uso para desarrollar en su Saturn seria la mejor para nosotros a la hora de acercarnos a la programacion de esta maquina. Me parece a mi que esto quiere decir que ni Saturn Orbit, ni Lua Player... me parece que tenemos que centrarnos en este YAUL! Tengo bastante curro estos dias, pero a ver si puedo hacerlo funcionar bajo Windows tambien y montar la toolchain ahi y pongo/completo este tutorial para los que usen el OS de Microsoft. Tengo algunas preguntas tambien que se me ocurren de como diablos funciona esto y como lo han conseguido, luego te comento... P.D: Esto es algo que esperabamos hace mucho tiempo. Desarrollar en Saturn con open source y todo 100% legal!! ----------------------------------- Raizing 21 May 2014, 11:25 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Muy interesante todo ;) Cuando tenga un ratillo le hecho un vistacillo a ver si logro que chute algo. Que sea 100% libre siempre es un aliciente como bien comentais. ----------------------------------- FacundoARG 21 May 2014, 04:05 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Animo :D que se puede. Felicitaciones por el tuto. ----------------------------------- Indiket 27 Enero 2016, 11:43 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Bueno amigotes de la scene Saturnera!! Tocaba un update de este magnífico tutorial, adaptándolo a los cambios que se ha realizado en libyaul en estos últimos meses (por no decir años xD). Aún lo veo un poco verde, veréis que hay muchos pequeños patches que espero que se resuelvan en futuras revisiones. ¡Ánimo!! ^^ ----------------------------------- Ryo Suzuki 28 Enero 2016, 12:14 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Qué bien, tío. Gracias por el update. Lo intentaré instalar de cara al finde en un Ubuntu y te cuento. Me alegra que se vaya moviendo el tema de libyaul. Con paciencia sin continúan dándole caña puede ser el futuro... Apuesto a que nadie en el foro ha conseguido compilarla, por otro lado :mrgreen: ----------------------------------- Indiket 29 Enero 2016, 10:49 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- [b][color=#00CCFF]BONUS! COMPILAR EL EJEMPLO DARK-BLUE :)[/color][/b] Si tenéis curiosidad por saber qué es este juego, y no lo podéis compilar, prestad atención al siguiente "briconsejo" jejeje. Para este juego, se necesita de un programa específico para convertir mapas TMX a formato MAP. De ahí que os dé el error que no encuentra "tiled", que es precisamente el encargado de hacerlo. Id a la página del programa: http://www.mapeditor.org/ y os descargáis según vuestro sistema operativo. Luego, tenéis que editar el fichero "examples/games/dark-blue/Makefile" y adaptar la ruta. Atención al idioma que uséis, yo por ejemplo uso OSX y Español. [code linenumbers=false] %.json: %.tmx #tiled --export-map "Json files (*.json)" $< $@ /Applications/Tiled.app/Contents/MacOS/Tiled --export-map "Archivos de mapa Json (*json)" $< $@ tools/tmx2map $(RM) $@ [/code] Si os fijáis bien, en OSX el ejecutable está dentro del Bundle App, y además hay que poner exactamente la frase entrecomillada jejeje. Y listos!! Ahora sí os compilará con el make examples, y os generará el ISO. No os desvelo la sorpresa! (por ahora) ;) ----------------------------------- Fandu 30 Enero 2016, 01:22 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Muchas gracias Indiket, siempre me interesan estos temas aunque no entienda nada. Quería preguntaros, ¿qué herramienta es más accesible para un novato? esta o el Jo engine?. Me he leido toda la explicación y aún sigo sin saber qué es compilar, también vi hace unos meses un tuto en videos que colgó un compañero aquí (SaturnAR creo que fue) sobre cómo traducir y me costaba también muchísimo seguir el ritmo. ¿Qué recomendais para un usuario de excel a la hora de intentar empezar en esto del homebrew en Saturn?, otra opción algo más compleja es la herramienta de Rocking´B, luego ya nos quedarán los cursos del CCC :lol: Gracias ! ----------------------------------- Indiket 30 Enero 2016, 10:57 AM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- No he probado Jo engine, pero por lo que me han comentado, la de Jo es mucho más acesible que libyaul. Tiene más tools que facilitan la programación. Libyaul es más verde, primitivo, pero por la parte positiva es 100% opensource ;) Jo engine funciona sobre SGL, así que empezaría por ahí (creo que el gran Ryo hizo unos tutoriales de SGL, verdad?). De nada!! :D ----------------------------------- Ryo Suzuki 30 Enero 2016, 12:11 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Fandu, sin duda el Jo creo que es más accesible para gente como nosotros que no tenemos casi ni idea del tema y queremos empezar a trastear. Yo le estuve echando un ojo el otro día y me hice todos los ejemplos tratanto de comprenderlos modificandolos y demás (incluso es bueno tratar de mezclar cosas de unos con otros) y es relativamente fácil empezar a enterarse de cómo va el asunto... Echale un vistazo, cualquier duda te trato de echar un cable. No tiene misterio, es editar con Notepad y con un click compilar y con otro más lo lanza en el emulador para que veas como te va quedando. Luego es cuestión de ir mirándose la documentación que hay en la web del Jo para empezar a asimilar más comandos y conceptos... El libyaul, como dice Indiket, tiene que ser más complicado y está todavía más en pañales. Aunque, como también comenta, el tema de ser open source tira y mucho. Yo no he conseguido compilar la librería libyaul, así que no puedo decirte como va a la hora de probar ejemplos y hacer mis pinitos, ojalá lo consiga pero de fácil no tiene nada porque te salen mil incidencias que no son fáciles de resolver. Ya que estamos, ¿alguien sabe bien la diferencia que hay entre la Saturn Graphic Library ([b]SGL[/b]) y la SEGA Basic Library ([b]SBL[/b])? P.D: Indiket fue el bueno de FacundoARG el que hizo los tutoriales de SGL con Saturn Orbit. Yo lo que hice son los de Lua (aunque en realidad creo que en el fondo estabas trabajando con SGL también en gran medida) ----------------------------------- SebasSBM 01 Marzo 2016, 09:09 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Intenté prepararme un entorno de desarrollo basado en [i]libyaul[/i] usando los los pasos documentados al inicio de este hilo, aunque adaptándolos a Linux (Ubuntu para ser exactos) como he podido. Como dijo Indiket, con Linux es otra historia... Utilicé la última versión del repositorio de github (en la cual el directorio [i]build-scripts[/i] ya no está en [i]tools/[/i], sino en el directorio raíz del proyecto, dicho sea de paso) [u]He logrado compilar la toolchain[/u] (aparentemente sin errores, y digo "aparentemente" porque las apariencias no son fiables). A partir de ahí, he intentado compilar libyaul. Al ejecutar " > make release", me escupe algunos errores (como tipos de variables que no coinciden, entre otros), aunque eso no le impide terminar la ejecución, al parecer. Al ejecutar " > make install-release" se para(casca, lo que en inglés llamarían "crash"); "install-release" se comporta como si la variable de entorno INSTALL_ROOT se vaciara de repente (a juzgar por su forma de fallar), por lo cual no he podido pasar de aquí. [b]Esto es lo lejos que yo he podido llegar.[/b]. No sé si debería informar al desarrollador de libyaul sobre esta incidencia... talvez lo haga... Tan sólo posteo esto para compartir mi frustración. Espero que a los usuarios de MacOS os haya ido mejor que a mí (después de todo, el tutorial iba enfocado a ellos). :cry: Al menos, lo he intentado. Saludos. ----------------------------------- Indiket 02 Marzo 2016, 10:40 AM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- SebasSBM, yo creo que casi lo tienes!! :D Antes de compilar, debes de cargar el entorno de YAUL (ahí se define el INSTALL_ROOT): >>source yaul.env Asegúrate que tengas bien configurada la ruta, de que exista, y de que tengas permisos para escribir ficheros el usuario que ejecute el "install-release". Contacta conmigo en MP si tienes dudas más específicas :) Saludos!! ----------------------------------- Ryo Suzuki 02 Marzo 2016, 12:05 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- SebasSBM si finalmente logras compilar libyaul y eres tan amable te agradecerías que pusieras aquí como lo has hecho para Ubuntu. Yo lo intenté y no lo conseguí (entiendo perfectamente lo de compartir la frustración, jeje), estoy seguro que otros usuarios que usan este sistema operativo les vendría de perlas esa información. P.D: Tampoco lo consigo con KOS :( ----------------------------------- tito_danir7 02 Marzo 2016, 12:48 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Buenas a todos yo soy amigo de sebassbm ,hoy probaremos otra vez, haber si lo podemos conseguir ya que estamos interesados los dos en hacer algo para sega saturn. Por el momento intentaremos compilar libyaul y luego disponemos de una sega saturn model 1 con pseudosaturn para hacer pruebas. A medida que nos vayan surgiendo dudas las iremos comentando con vosotros y haber si entre todos podemos hacer algo para la negrita. :D ----------------------------------- SebasSBM 02 Marzo 2016, 01:14 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Reproduciré el problema de nuevo y extraeré los outputs relevantes para tratar de generar un informe claro y conciso. Con eso en mano enviaré un MP a Indiket, y, si logramos hacerlo funcionar, postearé aquí los pasos documentados. Gracias por los ánimos :) ----------------------------------- tito_danir7 02 Marzo 2016, 01:22 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="SebasSBM" post="94178"]Reproduciré el problema de nuevo y extraeré los outputs relevantes para tratar de generar un informe claro y conciso. Con eso en mano enviaré un MP a Indiket, y, si logramos hacerlo funcionar, postearé aquí los pasos documentados. Gracias por los ánimos :)[/quote] Acuerdate de pasar por casa,quizás necesite ayuda para tenerlo listo yo tambien nen,avisame de los avances. ----------------------------------- Ryo Suzuki 02 Marzo 2016, 03:08 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="tito_danir7" post="94175"] Por el momento intentaremos compilar libyaul y luego disponemos de una sega saturn model 1 con pseudosaturn para hacer pruebas. [/quote] Si teneis un Action Replay de los de antes hay algunas opciones como el USB Datalink para lanzar el código directamente desde el ordenador a la consola. También creo que Facundo por ejemplo consiguió cargar CD-RW para poder testear cosas de desarrollo sin tener que gastar tantos CDs. [quote user="SebasSBM" post="94178"]Reproduciré el problema de nuevo y extraeré los outputs relevantes para tratar de generar un informe claro y conciso. Con eso en mano enviaré un MP a Indiket, y, si logramos hacerlo funcionar, postearé aquí los pasos documentados. Gracias por los ánimos :)[/quote] A ver si lo conseguís y tenemos un tutorial para configurar Libyaul en Ubuntu y distros de Linux similares y/o derivadas... ----------------------------------- tito_danir7 02 Marzo 2016, 03:20 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Gracias Ryo no me había fijado en lo de Usb datalink,en cuanto avancemos un poco más iremos publicando paso por paso lo que hemos conseguido.Da gusto ver como todos remamos para conseguir algo. Yo hoy probaré con SebasSBM pero con la distro de Linux Xubuntu y os comento. ----------------------------------- Ryo Suzuki 02 Marzo 2016, 03:27 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- De nada, para eso estamos. Hay otras opciones para cargar código homebrew en la Saturn, tengo que postear alguna noticia con las novedades del tema. A ver qué lográis, yo estoy usando últimamente Lubuntu. Tampoco lo he conseguido :S ----------------------------------- tito_danir7 02 Marzo 2016, 05:21 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="Ryo Suzuki" post="94192"]De nada, para eso estamos. Hay otras opciones para cargar código homebrew en la Saturn, tengo que postear alguna noticia con las novedades del tema. A ver qué lográis, yo estoy usando últimamente Lubuntu. Tampoco lo he conseguido :S[/quote] Vale genial espero con impaciencia esas novedades,voy a mirar haber si consigo algo con XUbuntu ----------------------------------- Ryo Suzuki 02 Marzo 2016, 06:53 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- De acuerdo. Dale caña! Cualquier cosa tenemos la ventaja de contar con Indiket que seguro que nos echa un cable ante cualquier imprevisto, es un crack de cuidao para todo esto!! P.D: Yo me veo al final mendigando un Linux Virtual Machine HD con el libyaul y el KOS compilaos listo para descargar :oops: ----------------------------------- tito_danir7 04 Marzo 2016, 03:55 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Ayer volvimos a intentar compilarlo y de momento no hay manera alguien ha conseguido algún avance? ----------------------------------- Ryo Suzuki 04 Marzo 2016, 04:30 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Yo tampoco, además yo me estanco casi en el principio. Le he podido dar otra intentona que tengo un Lubuntu aquí en un sobremesa prácticamente recién instalado. Si miro lo que pide [quote]Requirements GCC 4.6.3 or greater SH7604 cross-compiler tool-chain[/quote] Así que instalo GCC con: [code linenumbers=false] sudo apt-get update sudo apt-get install g++5[/code] Parece que todo ha ido bien. Compruebo la versión instalada con: [code linenumbers=false]gcc --version [/code] Y me confirma que tengo la [b]GCC 5.2.1[/b] lista, así que cumplo los requisitos en principio. Ahora me instalo el git [code linenumbers=false] sudo apt-get install git[/code] Creo una carpeta que se llama saturn en mi home. Navego hasta ella y hago como dice Indi: [code linenumbers=false]git clone https://github.com/ijacquez/libyaul.git libyaul[/code] Y todo parece ir bien, me clona el contenido en mi HD: [quote]ryo@ryo-ANTEC:~/saturn/libyaul$ git clone https://github.com/ijacquez/libyaul.git libyaul Clonant a 'libyaul'... remote: Counting objects: 7860, done. remote: Compressing objects: 100% (9/9), done. remote: Total 7860 (delta 0), reused 0 (delta 0), pack-reused 7851 Rebent objectes: 100% (7860/7860), 2.29 MiB | 816.00 KiB/s, fet. Resolent les deltes: 100% (5371/5371), fet. [/quote] Ahora hago la copia de yaul.env: [code linenumbers=false]cp -v yaul.env{.in,}[/code] Ahora tengo que editar ese archivo que intuyo que se refiere al entorno yaul. Contiene esto: [quote]# -*- mode: config -*- # Copyright (c) 2012-2016 # See LICENSE for details. # # Israel Jacquez # Only ABSOLUTE paths are to be used when applicable! # Path to tool-chain installation directory export INSTALL_ROOT=${HOME}/tool-chains/sh-elf # Path to where the build is to ba located export BUILD_ROOT=${HOME}/work/libyaul # Name of build directory export BUILD=build # Option: Development cart used: # 0: None # 1: USB flash cartridge # 2: Datel Action Replay cartridge export OPTION_DEV_CARTRIDGE=1[/quote] Intuyo que lo imporante y que tengo que editar con mis rutas es: [b]# Path to tool-chain installation directory export INSTALL_ROOT=${HOME}/tool-chains/sh-elf # Path to where the build is to ba located export BUILD_ROOT=${HOME}/work/libyaul[/b] En el primer caso supongo que tengo que cambiarlo por /home/ryo/saturn/libyaul/build-scripts/sh-elf Así que lo dejo asi: [b]export INSTALL_ROOT=/home/ryo/saturn/libyaul/build-scripts/sh-elf[/b] Y el el otro caso voy sin mucha fe tampoco con: [b]export BUILD_ROOT=/home/ryo/saturn/libyaul[/b] Voy al lío con: [code linenumbers=false]make release[/code] Y evidentemente me tira el error: [quote]Makefile:8: *** Undefined INSTALL_ROOT (install root directory). Stop. [/quote] Por lo que me dice es en la linea 8, o sea: export INSTALL_ROOT=${HOME}/tool-chains/sh-elf ¿Qué tengo que poner en esa ruta? He probado varias cosas y no hay forma... ¿Igual tengo que poner la ruta del GCC que estará por algún lado? Echadme un cable, please. A ver si lo consigo finalmente... :o ----------------------------------- Indiket 04 Marzo 2016, 06:26 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Ryo, unos detalles: * Antes de intentar compilar libyaul, debes de compilar la toolchain! * No pruebes con el GCC 5 porque falla la compilación!! Usa un 4.7, 4.8 o similar, es decir, una versión 4. * El undefined es porqué una vez creado el yaul.env, lo debes de cargar con el comando: >> source yaul.env antes de compilar la lib. Saludos!! ----------------------------------- SebasSBM 04 Marzo 2016, 06:35 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Ryo, a mi me pasaba algo parecido con el `make release`. El desarrollador de libyaul recomienda usar estos comandos para actualizar algunas dependencias del proyecto. A mí me solucionó una parte de los errores de `make release`. [code linenumbers=false] # Desde el directorio de libyaul > git submodule init > git submodule update -f [/code] Si aún así `make release` casca, prueba esta modificación en `yaul.env`: [code linenumbers=false] export INSTALL_ROOT=${HOME}/tool-chains [/code] Meter el directorio padre de tool-chains en vez del subdirectorio `sh-elf` me solucionó otro de los errores de parada (contradice las instrucciones originales, aunque podría ser que el desarrollador haya modificado la arquitectura de libyaul en sus últimos commits). Después, lo que obtengo es una lluvia de errores de compilación de C, pero no impiden que `make release` termine su ejecución. [strike]Por otra parte, he notado que mi versión de GCC es inferior a la recomendada. Miraré si actualizándola logro avanzar algo...[/strike] Espero que esto sirva de ayuda. [b]EDICION[/b] Tengo gcc 4.8.4 me he equivocado, no necesito una >5.x.x :P ----------------------------------- tito_danir7 04 Marzo 2016, 08:43 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Si no voy mal creo que poco a poco lo vamos a conseguir chicos no hay que rendirse. Ryo ayer con SebasSBM grabamos atlas y carga perfectamente pero a la hora de darle a START sale el logo de sega y se nos queda ahí,debería devolver el action replay a su estado original y probar de flashearlo de 0? ----------------------------------- Ryo Suzuki 05 Marzo 2016, 03:56 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Gracias por la ayuda, me ha ido bien. Me tira un error en el build compiler cuando esta en [b]Building GCC[/b]. Me remite a gcc-sh-elf.log Y creo que se refiere a esto: [quote]rm gcc.pod make[1]: Leaving directory '/tmp/sh-elf/gcc/gcc' Makefile:3849: recipe for target 'all-gcc' failed make: *** [all-gcc] Error 2[/quote] ¿Sabéis que puede ser y como puedo solucionarlo? Thnks!! P.D: tito_danir7, te lo contesto el el otro hilo del AR, ¿ok? ----------------------------------- SebasSBM 05 Marzo 2016, 06:02 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Ryo, prueba a usar rutas absolutas en `yaul.env`. Para ello, sustituye la llamada a la variable de entorno $HOME. Reemplaza: [codeblock]{$HOME}[/codeblock] Por la ruta a la carpeta personal del usuario: [codeblock]/home/mi_usuario/[/codeblock] [u]La variable $BUILD déjala como está.[/u] `Makefile` la usa para concatenarla con otras rutas. Si no recuerdo mal, el error que te sale ahí lo solucioné así. ----------------------------------- Ryo Suzuki 05 Marzo 2016, 07:24 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- No, no me funciona. Me sigue dando del mismo error. Pégame por aquí si eres tan amable cómo tienes tu archivo [b]config [/b]en [i]saturn_ide/libyaul/build-scripts[/i] y tambien tu [b]yaul.env[/b] en [i]saturn_ide/libyaul[/i] Como dices estoy casi seguro que tiene tratarse de alguna pequeña tontería de esos dos archivos que estoy poniendo mal :o ----------------------------------- SebasSBM 06 Marzo 2016, 12:00 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- En mi caso, estoy usando Ubuntu 14.04 LTS. Te dejo aquí el [i]build-scripts/config[/i]: [code linenumbers=false] # Path to tool-chain installation directory BUILD_INSTALL_DIR="${HOME}/saturn/tool-chains" # Path to previously downloaded source packages as well as the # location for temporary files BUILD_SRC_DIR="/tmp" # Specifies the number of jobs (commands) to run simultaneously. If # BUILD_MAKE_JOBS is not set with a value, make(1) will not limit the # number of jobs that can run simultaneously BUILD_MAKE_JOBS=8 # Versions BINUTILS_VERSION="2.24" GCC_VERSION="4.7.3" GDB_VERSION="7.7" NEWLIB_VERSION="1.20.0" # Tools for host # The variables below might need to change depending on your OS AWK="awk" FETCH="wget" FETCH_FLAGS="" GPG="gpg" MAKE="make" MD5="md5sum" # Uncomment the line below if on *BSD or Mac OS X # MD5="md5" PATCH="patch" # Options # Only valid values are either 'yes' or 'no' -- anything else is # ignored # 'yes': Download packages for building the compiler # 'no': Already downloaded OPTION_DOWNLOAD_TARBALLS="yes" # 'yes': Download and build GDB for the sh-elf target # Be aware dependencies not covered # 'no': Do not build OPTION_ENABLE_GDB="no" [/code] Y aquí el [i]yaul.env[/i]: [code linenumbers=false] # Path to tool-chain installation directory export INSTALL_ROOT=/home/mi_usuario/saturn/tool-chains # Path to where the build is to be located export BUILD_ROOT=/home/mi_usuario/saturn/libyaul # Name of build directory export BUILD=build # Option: Development cart used: # 0: None # 1: USB flash cartridge # 2: Datel Action Replay cartridge export OPTION_DEV_CARTRIDGE=1 [/code] [b]EDICIÓN:[/b] Por si sirve, he instalado estas librerías: [code linenumbers=false] >>> sudo apt-get install libgmp-dev libgmp3-dev >>> sudo apt-get install libmpfr-dev >>> sudo apt-get install libmpc-dev >>> sudo apt-get install realpath >>> sudo apt-get install libncurses5-dev texinfo [/code] ----------------------------------- Ryo Suzuki 06 Marzo 2016, 02:13 AM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Nada, no hay forma, me tira el fatídico error de nuevo: [quote]rm gcc.pod make[1]: Leaving directory '/tmp/sh-elf/gcc/gcc' Makefile:3849: recipe for target 'all-gcc' failed make: *** [all-gcc] Error 2[/quote] Es posible que sea por la cagada mía de instalar el GCC 5, porque aunque se baja y parece usar el GCC_VERSION 4.7.3 por lo que parece sigo teniendo el 5: [quote]ryo@ryo-ANTEC:~/saturn/libyaul/build-scripts$ gcc --version gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[/quote] No hay forma de quitarmelo de encima. ¿Sabéis como puedo desinstarlo definitvamente? Lo intentaré de todas formas en otra máquina para descartar posibilidades... P.D: En el script que me pasastéis (mejor dicho que me pasó Indi) estaba [b]mkdir tool_chains[/b] y luego usais en rutas y demás [b]tool-chains[/b]. Es otra carpeta y puede llegar a dar lugar a error quizás trambién. ----------------------------------- Ryo Suzuki 06 Marzo 2016, 03:43 AM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Siento el doble post pero confirmo que debe ser cosa de algo que tengo mal en el Lubuntu. Acabo de probarlo en un Kubuntu que tengo en el portátil y con tus rutas y demás parece que todo ha ido bien: [quote]ryo@ryo-EasyNote-TJ72:~/saturn/libyaul/build-scripts$ ./build-compiler build-compiler: Downloading files... build-compiler: Downloading `binutils-2.24.tar.bz2' build-compiler: Downloading `gcc-4.7.3.tar.bz2' build-compiler: Downloading `gnu-keyring.gpg' build-compiler: Downloading `newlib-1.20.0.tar.gz' build-compiler: Downloading `md5.sum' build-compiler: Checking integrity... build-compiler: Checking integrity of `binutils-2.24.tar.bz2' build-compiler: Checking integrity of `gcc-4.7.3.tar.bz2' build-compiler: Checking integrity of `newlib-1.20.0.tar.gz' build-compiler: Building sh-elf target... build-compiler: Extracting 'binutils-2.24.tar.bz2' build-compiler: Extracting 'gcc-4.7.3.tar.bz2' build-compiler: Extracting 'newlib-1.20.0.tar.gz' build-compiler: Applying patches build-compiler: Applying patch 'newlib-1.20.0.patch' build-compiler: Configuring Binutils build-compiler: Building Binutils build-compiler: Installing Binutils build-compiler: Configuring GCC build-compiler: Building GCC build-compiler: Installing GCC build-compiler: Configuring Newlib build-compiler: Building Newlib build-compiler: Installing Newlib build-compiler: Building GCC build-compiler: Installing GCC build-compiler: Add '/home/ryo/saturn/tool-chains/sh-elf/bin' to the $PATH environment variable build-compiler: Building m68k-elf target... build-compiler: Extracting 'binutils-2.24.tar.bz2' build-compiler: Extracting 'gcc-4.7.3.tar.bz2' build-compiler: Extracting 'newlib-1.20.0.tar.gz' build-compiler: Configuring Binutils build-compiler: Building Binutils build-compiler: Installing Binutils build-compiler: Configuring GCC build-compiler: Building GCC build-compiler: Installing GCC build-compiler: Configuring Newlib build-compiler: Building Newlib build-compiler: Installing Newlib build-compiler: Building GCC build-compiler: Installing GCC build-compiler: Add '/home/ryo/saturn/tool-chains/m68k-elf/bin' to the $PATH environment variable build-compiler: Cleaning up '/tmp' ryo@ryo-EasyNote-TJ72:~/saturn/libyaul/build-scripts$ [/quote] Espero que no haya algún problema del que no sea consciente. Sigo con el tema al siguiente paso. Gracias!! ----------------------------------- tito_danir7 06 Marzo 2016, 02:14 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="Ryo Suzuki" post="94333"]Gracias por la ayuda, me ha ido bien. Me tira un error en el build compiler cuando esta en [b]Building GCC[/b]. Me remite a gcc-sh-elf.log Y creo que se refiere a esto: [quote]rm gcc.pod make[1]: Leaving directory '/tmp/sh-elf/gcc/gcc' Makefile:3849: recipe for target 'all-gcc' failed make: *** [all-gcc] Error 2[/quote] ¿Sabéis que puede ser y como puedo solucionarlo? Thnks!! P.D: tito_danir7, te lo contesto el el otro hilo del AR, ¿ok?[/quote] Ok sin problema ! Referente a libyaul probaré esta tarde de compilarlo de nuevo haber si hay suerte y tambien actualizo el action replay. ----------------------------------- SebasSBM 06 Marzo 2016, 03:16 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="Ryo Suzuki" post="94369"] En el script que me pasastéis (mejor dicho que me pasó Indi) estaba [b]mkdir tool_chains[/b] y luego usais en rutas y demás [b]tool-chains[/b]. Es otra carpeta y puede llegar a dar lugar a error quizás trambién.[/quote] Bueno, en mi sistema usé tool_chains (me gusta más así). En el hilo público, lo dejé como estaba por defecto para que nadie se líe, pero he sido consistente con las rutas al hacer las configuraciones en mi sistema. [u]Da igual si es tool-chains o tool_chains, pero debe ser la misma en todo.[/u] En otras palabras, BUILD_INSTALL_DIR en `build-scripts/config` debe contener la misma ruta que INSTALL_ROOT en `source.env`. BUILD_ROOT será la carpeta vacía en la cual se generarán los archivos compilados de "libyaul" al ejecutar las instrucciones `make`. Lamento la confusión. ----------------------------------- SebasSBM 06 Marzo 2016, 03:54 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Estoy que ya no sé qué más probar. Se me había ocurrido probar de instalar el paquete g++5, pero puede que eso empeore el problema. He echado mano de los logs que `build-compiler` genera en `/tmp/`. Aparentemente no dan errores, pero sí aparecen una larga serie de logs tipo Warning que mencionan usos prohibidos de sintaxis C++ y otras historias. Voy a documentar esos logs, por si tengo que usarlos para abrir una "Issue" en el repositorio de GitHub. Puede que el desarrollador nos eche una mano si me curro el informe. [b]PD:[/b] Si sentís curiosidad por los logs que `build-compiler` genera en `/tmp/`, tienen extensión *.log y, se pueden encontrar los Warnings buscando la cadena de texto " ^" (con un espacio). En el vim esta búsqueda se puede expresar como [i]/\s\^[/i] ----------------------------------- SebasSBM 06 Marzo 2016, 07:12 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="Ryo Suzuki" post="94369"] Es posible que sea por la cagada mía de instalar el GCC 5, porque aunque se baja y parece usar el GCC_VERSION 4.7.3 por lo que parece sigo teniendo el 5: [quote]ryo@ryo-ANTEC:~/saturn/libyaul/build-scripts$ gcc --version gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[/quote] No hay forma de quitarmelo de encima. ¿Sabéis como puedo desinstarlo definitvamente? [/quote] Si instalaste el gcc5 con: [code linenumbers=false] >>> sudo apt-get install g++5 [/code] Podrías desinstalarlo con: [code linenumbers=false] >>> sudo apt-get purge g++5 [/code] Purge es diferente de remove; la diferencia es que [i]purge[/i] borra también los archivos de configuración del paquete (excepto si los mete en el directorio del usuario). ----------------------------------- Ryo Suzuki 07 Marzo 2016, 01:01 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="SebasSBM" post="94379"] Bueno, en mi sistema usé tool_chains (me gusta más así). En el hilo público, lo dejé como estaba por defecto para que nadie se líe, pero he sido consistente con las rutas al hacer las configuraciones en mi sistema. [u]Da igual si es tool-chains o tool_chains, pero debe ser la misma en todo.[/u] En otras palabras, BUILD_INSTALL_DIR en `build-scripts/config` debe contener la misma ruta que INSTALL_ROOT en `source.env`. BUILD_ROOT será la carpeta vacía en la cual se generarán los archivos compilados de "libyaul" al ejecutar las instrucciones `make`. Lamento la confusión.[/quote] No hombre, no hay problema. Además tu script me ha ayudado mucho. Creo que deberías compartirlo por aquí, porque además de la ayuda que me habéis prestado si he llegado a casi acabar de compilarla y usar la librería ha sido gracias a él. [quote user="SebasSBM" post="94380"]Estoy que ya no sé qué más probar. Se me había ocurrido probar de instalar el paquete g++5, pero puede que eso empeore el problema. [/quote] Ni se te ocurra, creo que por eso no he sido capaz de compilar la toolchain en ese "sistema maldito". Yo es que inocente de mi, como ponía superior a 4 y pico pensé.. instalo el 5! sin tener en cuenta que el propio Indi ya lo había avisado. Por cierto no he podido quitar el GCC 5.2.1 de ese sistema ni como dices. He probado de todo (de hecho hasta me jode el VLC cuando pongo el comando que me comentabas) SebasSBM, ¿tú exactamente dónde te has quedado? Es que no me queda claro del todo... Yo os pongo los últimos avances con el portátil y Kubuntu (con GCC 4.8 :mrgreen: ) que han sido conseguir compilar las librerías finalmente con el [b]make release [/b]y que trague todo aparentemente bien. Irónicamente el problema lo tengo ahora en lo que podríamos considerar el paso final, el [b]make install-release [/b] que no lo realiza bien escupiéndome un montón de errores de ruta en plan: [quote]root@ryo-EasyNote-TJ72:/home/ryo/saturn/libyaul# make install-release release libyaul make[1]: Entering directory `/home/ryo/saturn/libyaul/libyaul' make[1]: Nothing to be done for `release'. make[1]: Leaving directory `/home/ryo/saturn/libyaul/libyaul' release libbcl make[1]: Entering directory `/home/ryo/saturn/libyaul/libbcl' make[1]: Nothing to be done for `release'. make[1]: Leaving directory `/home/ryo/saturn/libyaul/libbcl' release libfixmath make[1]: Entering directory `/home/ryo/saturn/libyaul/libfixmath' make[1]: Nothing to be done for `release'. make[1]: Leaving directory `/home/ryo/saturn/libyaul/libfixmath' release libtga make[1]: Entering directory `/home/ryo/saturn/libyaul/libtga' make[1]: Nothing to be done for `release'. make[1]: Leaving directory `/home/ryo/saturn/libyaul/libtga' install-release libyaul make[1]: Entering directory `/home/ryo/saturn/libyaul/libyaul' /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/././yaul.h: El fitxer o directori no existeix libyaul/yaul.h mkdir: no s’ha pogut crear el directori «/home/ryo/saturn/libyaul/libyaul/./yaul.h»: El fitxer ja existeix /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/./common/./common.h: El fitxer o directori no existeix /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/./common/.: El fitxer o directori no existeix libyaul/common/common.h mkdir: no s’ha pogut crear el directori «/home/ryo/saturn/libyaul/libyaul/./common/common.h»: El fitxer ja existeix /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/./common//irq-mux.h: El fitxer o directori no existeix /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/./common/: El fitxer o directori no existeix libyaul/common/irq-mux.h mkdir: no s’ha pogut crear el directori «/home/ryo/saturn/libyaul/libyaul/./common/irq-mux.h»: El fitxer ja existeix /home/ryo/saturn/tool-chains/sh-elf/sh-elf/include/yaul/./common/./stack.h: El fitxer o directori no existeix[/quote] Y así sigue con todo... ¿Se os ocurre qué puede ser? Me ha estado echando un cable Indiket pero no lo hemos conseguido. Hemos cambiado el realpath por readlink -f, mirando el tema rutas, probando con comillas en los paths y mil cosas más y no ha habido forma. A ver si lo conseguimos. Estamos muy cerca. Lo que está claro es que es harto difícil y no parece estar nada documentado cómo instalar y trabajar con la librería en un Linux al uso... (Indiket me parece casi un superhéroe por haberlo conseguido en Mac Os :putoamo: ) Un saludo. ----------------------------------- SebasSBM 07 Marzo 2016, 11:45 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Ryo: a mí me falla en el mismo paso: `make install-release`. Tras haber realizado el proceso de instalación tal que así: [code linenumbers=false] # Preparar el directorio para el IDE de saturn cd ~ mkdir saturn_ide cd saturn_ide git clone https://github.com/ijacquez/libyaul.git libyaul mkdir tool_chains cd libyaul # Actualizar submódulos git submodule init git submodule update -f # Copiar el archivo de configuración por defecto para editarlo cd build_scripts cp -v config{.in,} [/code] Luego, en el config editamos: [code linenumbers=false] # Ruta donde se instalará la tool-chain BUILD_INSTALL_DIR="${HOME}/saturn_ide/tool_chains" # Opcional: Archivos temporales de build-compiler (logs incluidos) BUILD_SRC_DIR="/tmp/libyaul_dump/" # Desactivar GDB OPTION_DOWNLOAD_TARBALLS="yes" OPTION_ENABLE_GDB="no" [/code] Me instalo estas librerías: [code linenumbers=false] sudo apt-get install libgmp-dev libgmp3-dev sudo apt-get install libmpfr-dev sudo apt-get install libmpc-dev apt-get install libncurses5-dev sudo apt-get install realpath [/code] Luego ejecuto: [code linenumbers=false] ./build-compiler [/code] Aquí me genera la tool-chain sin errores. Pero me deja un montón de Warnings en los logs temporales. Son fácilmente localizables buscando " ^" dentro de ellos (o \s\^ como regexp si lo abres con [i]vim[/i]). Vuelvo al directorio de libyaul y preparo el nuevo entorno: [code linenumbers=false] export PATH="/home/sebassbm/saturn_ide/tool_chains/sh-elf/bin:/home/sebassbm/saturn_ide/tool_chains/m68k-elf/bin:${PATH}" cd ~/saturn_ide/libyaul cp -v yaul.env.in yaul.env [/code] En yaul.env edito: export INSTALL_ROOT=${HOME}/saturn_ide/tool-chains/sh-elf export BUILD_ROOT=${HOME}/saturn_ide/libyaul Entonces, ejecuto [b]make release[/b]. Parece que se lo traga, pero va dejando un reguero de errores de compilación a su paso: [u]Los errores extraídos del output:[/u] [code linenumbers=false] kernel/mm/realloc_r.c: In function '_realloc_r': kernel/mm/realloc_r.c:11:9: warning: implicit declaration of function 'realloc' [-Wimplicit-function-declaration] kernel/mm/realloc_r.c:11:16: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h: In function 'isonum_723': kernel/vfs/fs/iso9660/iso9660-internal.h:200:9: warning: implicit declaration of function 'be16dec' [-Wimplicit-function-declaration] kernel/vfs/fs/iso9660/iso9660-internal.h: In function 'isonum_733': kernel/vfs/fs/iso9660/iso9660-internal.h:225:9: warning: implicit declaration of function 'be32dec' [-Wimplicit-function-declaration] kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_mount': kernel/vfs/fs/iso9660/iso9660.c:63:28: warning: implicit declaration of function 'bread' [-Wimplicit-function-declaration] kernel/vfs/fs/iso9660/iso9660.c:66:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c:81:9: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration] kernel/vfs/fs/iso9660/iso9660.c:81:37: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default] kernel/vfs/fs/iso9660/iso9660.c:100:17: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration] kernel/vfs/fs/iso9660/iso9660.c:100:17: warning: incompatible implicit declaration of built-in function 'free' [enabled by default] kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find_file': kernel/vfs/fs/iso9660/iso9660.c:117:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find_directory': kernel/vfs/fs/iso9660/iso9660.c:140:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find': kernel/vfs/fs/iso9660/iso9660.c:191:25: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c:199:33: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c:200:37: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c:226:33: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' kernel/vfs/fs/iso9660/iso9660.c:245:37: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign] In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0: kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *' scu/bus/b/vdp2/vdp2_scrn_back_screen_color_set.c: In function 'vdp2_scrn_back_screen_color_set': scu/bus/b/vdp2/vdp2_scrn_back_screen_color_set.c:23:9: warning: implicit declaration of function 'vdp2_scrn_back_screen_addr_set' [-Wimplicit-function-declaration] scu/bus/b/vdp2/vdp2_scrn_bitmap_format_set.c: In function 'vdp2_scrn_bitmap_format_set': scu/bus/b/vdp2/vdp2_scrn_bitmap_format_set.c:173:41: warning: 'bank' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c: In function 'vdp2_scrn_cell_format_set': scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:386:17: warning: 'pncnx' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:178:31: warning: 'sc_number' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:161:31: warning: 'sp_number' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/cpu/smpc/smpc_peripheral_digital_get.c: In function 'smpc_peripheral_digital_get': scu/bus/cpu/smpc/smpc_peripheral_digital_get.c:26:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] scu/bus/cpu/smpc/smpc_peripheral_digital_get.c:27:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] scu/bus/cpu/smpc/smpc_peripheral_init.c: In function 'peripheral_update': scu/bus/cpu/smpc/smpc_peripheral_init.c:218:39: warning: 'connected' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/cpu/smpc/smpc_peripheral_init.c:305:26: warning: 'multitap_id' may be used uninitialized in this function [-Wmaybe-uninitialized] scu/bus/cpu/smpc/smpc_smc_call.c: In function 'smpc_smc_call': scu/bus/cpu/smpc/smpc_smc_call.c:61:1: warning: control reaches end of non-void function [-Wreturn-type] prs.c: In function 'prs_decompress': prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat] prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat] prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat] prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat] fix16_str.c: In function 'fix16_from_str': fix16_str.c:62:5: warning: array subscript has type 'char' [-Wchar-subscripts] fix16_str.c:73:5: warning: array subscript has type 'char' [-Wchar-subscripts] fix16_str.c:93:9: warning: array subscript has type 'char' [-Wchar-subscripts] fix16_str.c:106:9: warning: array subscript has type 'char' [-Wchar-subscripts] fix16_str.c:106:9: warning: array subscript has type 'char' [-Wchar-subscripts] [/code] Y al ejecutar [b]make install-release[/b]: [code linenumbers=false] mrelease mlibyaul make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libyaul» make[1]: No se hace nada para «release». make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libyaul» mrelease mlibbcl make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libbcl» make[1]: No se hace nada para «release». make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libbcl» mrelease mlibfixmath make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libfixmath» make[1]: No se hace nada para «release». make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libfixmath» mrelease mlibtga make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libtga» make[1]: No se hace nada para «release». make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libtga» minstall-release mlibyaul make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libyaul» realpath: opción incorrecta -- «m» Uso: realpath [-s|--strip] [-z|--zero] nombre de archivo ... realpath -h|--help realpath -v|--version realpath: opción incorrecta -- «m» Uso: realpath [-s|--strip] [-z|--zero] nombre de archivo ... realpath -h|--help realpath -v|--version mlibyaul/yaul.h mkdir: falta un operando Pruebe 'mkdir --help' para más información. install: falta el operando archivo de destino después de «/home/sebassbm/saturn_ide/libyaul/libyaul/./yaul.h» Pruebe 'install --help' para más información. [...] make: *** [install-release] Error 2 [/code] Algo va mal en el paso [b]make release[/b], pero lo más raro es el fallo que hace [b]make install-release[/b] el cual parece estar comportándose como si algo fallara en el Makefile con install-release (aunque sólo es una corazonada). También puede ser que los fallos extraídos de [b]make release[/b] tengan mucho que ver con lo que está pasando, o los cientos de Warnings que el [b]build-compiler[/b] deja en la carpeta temporal al generar la tool-chain. ----------------------------------- FacundoARG 09 Marzo 2016, 04:33 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- [quote user="Ryo Suzuki" post="94188"] También creo que Facundo por ejemplo consiguió cargar CD-RW para poder testear cosas de desarrollo sin tener que gastar tantos CDs. A ver si lo conseguís y tenemos un tutorial para configurar Libyaul en Ubuntu y distros de Linux similares y/o derivadas...[/quote] Si, logre cargar CD-RW ahora no se lo recomiendo a nadie. Reventé mi lente original de Saturn :( igual la reemplace por una nueva, pero nunca volvió a ser la misma, a veces me da problemas y.... cada tanto se descalibra. ----------------------------------- Ryo Suzuki 14 Marzo 2016, 01:49 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Vaya, pues entonces no es nada recomendable el tema de usar CDRW :o Facundo, ¿lo has intentantado tú por casualidad compilar la librería en algún Linux que tengas a mano? Quizás tú que controlas del tema puedas ayudarnos... SebasSBM y tito_danir7, ¿no deberíamos crear un issue en el github oficial de libyaul a ver si nos ayudan? Es raro que nadie hayamos podido compilarlo con Ubuntu... Yo intentaré de todas formas probar en algún otro sistema e insistir en el tema, estamos cerca y creo que finalmente lo conseguiremos. ----------------------------------- Indiket 16 Marzo 2016, 02:58 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Últimamente voy de bólido, pero he visto que se ha actualizado el GIT de la libyaul quitando la dependencia de realpath / readlink. Please, podéis hacer un git update, y volverlo a intentar? Contad experiencias! :) ----------------------------------- tito_danir7 19 Marzo 2016, 02:23 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Buenas chicos de momento sebassbm y yo hemos dejado en pausa libyaul pero estamos preparando una demo con jo_engine ----------------------------------- Ryo Suzuki 21 Marzo 2016, 05:25 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- tito_danir7 & sebassbm haced si podéis otra intentona porque ahora sí que por fin hemos conseguido que funcione y haga bien el [b]make install-release[/b] en ubuntu con la nueva update. Estoy casi seguro que os va a funcionar. Lo único es que cuando lo tenía todo, gracias a la ayuda a distancia de Indiket!, me falla a la hora de compilar los ejemplos el[b] genromsfs[/b]. Seguro que es una tontería que acabamos solventando. Al menos eso espero... Probad un momento que estáis muy cerca y yo creo que os va a funcionar. P.D: Aún así está muy bien también que os lies con el Jo Engine que esté finde precisamente se actualiza y ya podrá además trabajar con 3D! ----------------------------------- tito_danir7 24 Marzo 2016, 07:50 AM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Pues tendremos que volver a probar ,hoy mismo contactare con sebassbm y le comentaré el tema. Referente al Jo engine sebassbm tiene un RPG battle test de prueba y yo por mi parte quiero mirar de alguna manera portear el Extreme butoden lo mas fiel posible a Saturn.Ryo si tienes email mandamelo por privado y te envio las fotos de lo que tenemos y si lo ves conveniente las publicamos en el hilo de Jo engine ----------------------------------- Ryo Suzuki 24 Marzo 2016, 12:40 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- MP enviado, a ver qué cocéis... Probad [b]git update[/b] y demás que creo que os chutará el tema esta vez. Probablemente ni os topéis con el problema inesperado del [b]genromsfs[/b] que tengo yo. Tengo ganas de compilar ya algunos ejemplos con libyaul y comenzar a hacer algunas pruebas, la verdad. ----------------------------------- ULTIM4TEGAM3RPR0 25 Septiembre 2017, 09:30 PM Re: [Tutorial 5J] Compilación De La Librería Libyaul ----------------------------------- Está genialmente implementado, habrá que irlo probando jiji ----------------------------------- Ryo Suzuki 21 Septiembre 2021, 02:09 PM Re: [Tutorial 5J] Compilación de la librería libyaul ----------------------------------- Me avisan que esto se ha actualizado bastante y se puede instalar mucho más cómodo a través de Windows 10, por ejemplo. Tiene un instalador: https://github.com/ijacquez/libyaul-installer/releases Más información aquí: https://opensourcelibs.com/lib/libyaul A ver si lo probáis y me comentáis. Es buena señal que siga actualizando esta librería. P.D. Web con más info: https://www.yaul.org