Ver la versión completa : Otros Engines Como compilar para wiz y open dingux?
_-Caleb-_
08/10/2019, 10:24
Holas
He estado buscando info pero no encuentro nada apenas o no se buscar como
La cosa es que quisiera intentar compilar unas cosas para wiz y para open dingux a ver si no explota nada y no se preparar mi sistema para ello (tengo una vm basada en debían para esto)
Como veis apenas sé nada de estas cosas pq siempre he usado game maker o similares pero me gustaría intentarlo al menos como un proyecto personal.
El objetivo principal a portar es nblood, una implementación gnu de blood basada en eduke32 (que si tiene port para ambas consolas)
https://github.com/nukeykt/NBlood
NBlood lo compilé para Linux sin muchos problemas y aún con varios warnings funciona como debería, con renderizado por software sólo.
Había pensado en bajar eduke32 para wiz (el source) y estudiarlo para meter los archivos del source de nblood y a ver qué pasa y a partir de ahí ir editando
Pero se agradecería una ayudita para torpes porque no se que necesito ni como hacer que el target sea la consola específica (vamos que saque un gpe por ejemplo)
Gracias!!
Enviado desde mi Redmi Note 6 Pro mediante Tapatalk
¡Ostras! Pues eso en la Wiki estaba perfectamente explicado... o más o menos.
Primero necesitas las toolchains, que son unas herramientas para compilar y testear en la máquina (librerías, compiladores cruzados...). Creo recordar que había dos o tres: el oficial y los "oficiosos". El oficial te aseguraba compatibilidad incluso con Caanoo ¿o era con GP2X?, mientras que los oficiosos te daban mejor rendimiento y librerías más actualizadas.
No sé si la wiki inglesa sigue abierta, pero si el idioma no es un problema, puedes mirar por ahí. De Wiz es que no he hecho nada a tan bajo nivel, en GP2X sé que las herramientas no oficiales se llamaban Open2X, igual que el firmware.
Preparar el entorno es un peñazo hasta que consigues que funcione. Una vez que lo haces, no tienes que volver a tocarlo ^^U
_-Caleb-_
08/10/2019, 11:22
Me bajé el SDK de openhandhelds (El oficial) y lo instalé junto con codeblocks que me lo pedía el readme... ahora a investigar :-)
futu-block
08/10/2019, 11:31
Espiando...
_-Caleb-_
09/10/2019, 10:24
Vale, ya tengo todo instalado (El oficial) y lo que me pide y el código de lo que quiero portar... la pregunta es.. y ahora qué? xD
Lo de siempre: coger un código de "hola mundo", compilarlo y ver si funciona en la máquina.
Donde digo "hola mundo" me refiero a un programa sencillo, que sabes que funciona. La idea es comprobar, antes de meterte con cosas grandes, que tienes el SDK bien instalado y configurado para trabajar. Créeme, no valen atajos en esta parte, es fundamental cerciorarse bien de que el entorno de programación funciona, porque te va a fallar, y mejor arreglarlo con algo sencillo que con un código de 40000 líneas.
_-Caleb-_
15/10/2019, 10:39
Bueno por lo pronto y avanzando en esto, he pedido algo de ayuda en dingoonity sobre cómo preparar el sistema para opendingux y he bajado (yuju!) los sources de eduke32 para dingoo que me imagino que habrá que tocar poquito pero así voy entendiendo como va, hay varios scripts bash y luego los makefile así que me imagino que por allí estará la respuesta para llegar a portar nblood jejeje
jduranmaster
16/10/2019, 10:13
¿Tienes el enlace concreto al SDK de Wiz en openhandhelds? Estuve buscando pero encontré varias versiones.
_-Caleb-_
18/10/2019, 09:42
¿Tienes el enlace concreto al SDK de Wiz en openhandhelds? Estuve buscando pero encontré varias versiones.A ver si veo el zip en las descargas jejeje
Para gcw zero me están echando un cable en dingoonity con scripts pero aun no he probado nada jejeje
https://r.tapatalk.com/shareLink/topic?url=https%3A%2F%2Fboards%2Edingoonity%2Eorg% 2Findex%2Ephp%3Ftopic%3D14836%2E0&share_tid=14836&share_fid=38197&share_type=t&link_source=app
Antes de portar algo a un sistema investiga las caracteristicas de programación del sistema destino, por ejemplo: los controles (teclas, ratón, botones, jostick) y dispositivos que soporta y como programarlos con SDL, que suele ser la librería más fácil de portar. Asegurate de que solo usa librerías multiplataforma o librerías que estén soportada en el sistema destino. Deberías compilar primero lo que quieres portar y asegurarte de que funciona en PC. También prueba a compilar un test gráfico (hay código de pruebas con la SDL) con el SDK para comprobar que tienes todo bien configurado y pruebalo en el sistema a portar. Luego tendrás que ver cómo de fácil es reducir la resolución del juego a la resolución de la consola destino. Se puede hacer de dos formas: cambiando las coordenadas en el código original, o pintar todo en un buffer temporal y escalarlo a la dimensión de la pantalla. Depende mucho de cómo esté hecho el juego/motor, asi que lo primero es entender cómo está pintando y cómo gestiona los controles.
Suerte con el proyecto.
-----Actualizado-----
Bueno por lo pronto y avanzando en esto, he pedido algo de ayuda en dingoonity sobre cómo preparar el sistema para opendingux y he bajado (yuju!) los sources de eduke32 para dingoo que me imagino que habrá que tocar poquito pero así voy entendiendo como va, hay varios scripts bash y luego los makefile así que me imagino que por allí estará la respuesta para llegar a portar nblood jejeje
Normalmente los programas que se compilan en Linux vienen preparados para ejecutar unos cuantos comandos y compilan. Esa es la teoría, pero en la práctica las diferentes versiones, sabores y colores de Linux vuelven esto un pequeño infierno, porque un código puede que necesite cierta versión de una librería y en tu sistema tengas otra versión que no es compatible exactamente. Casi siempre hay un readme que indica como compilarlo, y se suelen ejecutar los comandos configure y make. Pero como portar equivale a utilizar un compilador cruzado(compilar para otro sistema), hay que cambiar el makefile (el script para compilar) para que apunten a tu compilador, es decir el SDK de la consola que quieras.
./configure
./make
-----Actualizado-----
Aqui tienes un mini tutorial de programación de GCW Zero con SDL, este es muy útil para portar cosas.
Lamentablemente la página original ya no existe, pero está en archive.org.
https://web.archive.org/web/20160316013703/http://wiki.surkow.com/Tutorials:SDL
_-Caleb-_
28/10/2019, 12:47
Gracias tío, estoy dejando esto aparcado hasta que llegue la RG350 a ver si puedo hacer algo para opendingux :-)
Neodreamer
06/11/2019, 14:01
Hola Caleb, veo que eres de Tenerife como yo y que te pica la curiosidad como a mí. Yo tengo por aquí la wiz y la caanoo y siempre he tenido pendiente hacer algo con sdl por el mero hecho de aprender c++ un poco en su base, en lugar de como hago ya hoy en día, usar unity y c# que me lo hace casi todo "automático" pero no para consolas de este tipo.
El caso es que como comenté por aquí hace unos días...meses... quise meterme a portar un juego hecho en unity a la wiz, pero tengo rotaciones jodidas de sacar en sdl 1.2. De ahí pense en meterme con la psvita que tiene sdl2 y finalmente he visto que la switch yambien tiene ya sdl2 y es muy sencillo de instalar el entorno con un simple pack devkitpro. Lo digo por si te interesa probar ya que al final no deja de ser sdl y c++ pero la switch esta mas al alcance de muchos que una wiz, caanoo o la rg-350 (que por cierto me tienta mucho pero no tengo pasta ahora).
Suerte y animo cuando te pongas con ello.
Un saludo
Buenas,
¿Alguien ha podido compilar para gcw zero / rg350? Estoy intentando compilar para la rg350 con el toolchain de gcw zero, descargado de http://www.gcw-zero.com/develop. Tenía entendido que el sdk de desarrollo de gcw zero era válido para rg350.
Tras instalar el sdk, compilo un hola mundo:
/opt/gcw0-toolchain/usr/bin/mipsel-gcw0-linux-uclibc-g++ app.cpp -o hello
Pero al ejecutarlo en la consola me tira un error tal que así:
./hello: can't load library 'D1Ev'
Lo he intentado también con programas usando SDL2, y el resultado es parecido (cambiando el nombre de la librería que no puede cargar).
Por añadir información, para compilar estoy usando una máquina virtual con Ubuntu 18.04 de 64 bits. Tuve que instalar varias librerías i386 hasta que conseguí compilar, pero no tengo claro si eso es suficiente y añadí todo lo necesario, pero la compilación parece funcionar bien.
¿Alguna idea?
Gracias
_-Caleb-_
09/12/2019, 23:31
Buenas,
¿Alguien ha podido compilar para gcw zero / rg350? Estoy intentando compilar para la rg350 con el toolchain de gcw zero, descargado de http://www.gcw-zero.com/develop. Tenía entendido que el sdk de desarrollo de gcw zero era válido para rg350.
Tras instalar el sdk, compilo un hola mundo:
/opt/gcw0-toolchain/usr/bin/mipsel-gcw0-linux-uclibc-g++ app.cpp -o hello
Pero al ejecutarlo en la consola me tira un error tal que así:
./hello: can't load library 'D1Ev'
Lo he intentado también con programas usando SDL2, y el resultado es parecido (cambiando el nombre de la librería que no puede cargar).
Por añadir información, para compilar estoy usando una máquina virtual con Ubuntu 18.04 de 64 bits. Tuve que instalar varias librerías i386 hasta que conseguí compilar, pero no tengo claro si eso es suficiente y añadí todo lo necesario, pero la compilación parece funcionar bien.
¿Alguna idea?
Gracias saboteur es tu hombre
saboteur
10/12/2019, 12:13
¿Lo has intentado con las librerías que necesitas?
-Lcarpeta_librería -lSDL ...
etc... no puedo verlo ahora porque lo hago en code:blocks, pero era así
He intentado todo lo que se me ha ocurrido :(. Y la compilación supuestamente se hace, pero al intentar ejecutar el programa es donde aparecen los errores.
Al principio estuve probando con una programa usando SDL2, y conseguí compilar pero fallaba al ejecutar el programa. Por eso pasé a intentarlo simplemente con un hola mundo, pero tuve el mismo problema.
Intentaré ejecutar la misma compilación sobre una GCW Zero, a ver si es que simplemente no sirve el SDK.
Gracias :brindis:
saboteur
10/12/2019, 14:04
El toolchain que has bajado es que tengo yo, así que debería funcionar.
Por qué no pruebas a descargar algún juego sencillo de la misma página de gcw y lo compilas?
Lo mismo es alguna lib que hay que meter siempre -lm -lz o vete a saber. Yo he pillado programas de wiz y cambiando los botones a los de rg350 ha funcionado a la primera. Debe ser alguna tontería, pero hasta esta noche no puedo probar lo que has hecho xD
Bueno,
Con decirme que es el toolchain que usas tú ya me has ayudado bastante. Ahora sé que es algo que yo estoy haciendo mal.
Gracias de nuevo
Buenos días,
Sigo aprendiendo, probando, pero sin conseguir ejecutar un hola mundo en la rg350 :llorosr:
Por si se os ocurre alguna cosa y me podéis ayudar, lo que he llegado a ver y por donde creo que pueden ir los tiros es que estoy mirando las librerías dinámicas linkadas al ejecutable (todo esto lo voy aprendiendo sobre la marcha así que lo mismo hay algo incorrecto / inexacto). Cuando genero el ejecutable en Ubuntu, puedo ver lo siguiente como salida la comando readelf -d:
Dynamic section at offset 0x180 contains 25 entries:
Marca Tipo Nombre/Valor
0x00000001 (NEEDED) Biblioteca compartida: [libstdc++.so.6]
0x00000001 (NEEDED) Biblioteca compartida: [libm.so.0]
0x00000001 (NEEDED) Biblioteca compartida: [libgcc_s.so.1]
0x00000001 (NEEDED) Biblioteca compartida: [libc.so.0]
Sin embargo, al pasar el archivo a la consola (lo hago por FTP), la salida de ese comando es:
Dynamic section at offset 0x180 contains 26 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [D1Ev]
0x00000001 (NEEDED) Shared library: [_MAP]
0x00000001 (NEEDED) Shared library: [BLE_]
0x00000001 (NEEDED) Shared library: [so.1]
Al menos ahora sé de done viene el error al intentar ejecutar el archivo:
./hello: can't load library 'D1Ev'
He probado todas las opciones que conozco y se me han ocurrido, pero estoy un poco desesperado ya.
saboteur
12/12/2019, 13:20
Mira este hilo, le pasabaa lo mismo que a ti y el problema era la transferencia ftp:
https://boards.dingoonity.org/gcw-development/problems-with-codeblocks-compiles-not-running-on-the-zero/
Puedes probar a meter el archivo en una tarjeta sd externa?
MIL GRACIAS saboteur!!! Era eso!! [Ahhh]
Al final resulta que la compilación se estaba haciendo bien y bueno, me quedo con lo aprendido por el camino :D
Lo dicho, gracias de nuevo :brindis:
saboteur
12/12/2019, 21:44
Pues hala.... a programar juegos a saco xD
Pues hala.... a programar juegos a saco xD
Jaja, eso espero!
Empezare despues de Navidades a hacer backport de las actualizaciones de dos emuladores de la RG350 a la zero, el picodrive y el psx4all (este ultimo cuando tenga claro cual es el 'oficial' o el mejor mantenido :D), asi que si me falla algo ya se donde preguntar :D
_-Caleb-_
13/12/2019, 01:50
MIL GRACIAS saboteur!!! Era eso!! [Ahhh]
Al final resulta que la compilación se estaba haciendo bien y bueno, me quedo con lo aprendido por el camino :D
Lo dicho, gracias de nuevo :brindis:Hay un grupo de Telegram y un server de discord por si te quieres pasar, esta en el hilo de la rg350
Veo el enlace de discord, pero no el de Telegram :D
Tampoco has puesto el documento compartido en el primer mensaje. Estás descuidando el mantenimiento del hilo:awesome:
-----Actualizado-----
Vale, ya he encontrado el enlace en la página 25 :D
Ya soy miembro de la secta.
futu-block
13/12/2019, 13:07
fué un placer conocerte
_-Caleb-_
13/12/2019, 13:35
Veo el enlace de discord, pero no el de Telegram :D
Tampoco has puesto el documento compartido en el primer mensaje. Estás descuidando el mantenimiento del hilo:awesome:
-----Actualizado-----
Vale, ya he encontrado el enlace en la página 25 :D
Ya soy miembro de la secta.Tío que estoy en Venezuela sin pc y muchas veces sin Internet hasta mitad de enero.... Que me caso mañana XD
Si tus inclinaciones masoquistas se van a interponer en tu trabajo, no lo empieces :D
Naaah! Es broma. Felicidades por la boda (creo) y si estás fuera sin internet... ¿Qué leches haces respondiendo al foro y al Telegram? Apaga y disfruta, y cuando termines, vuelve ya más tranquilo :D
Qué callado te lo tenías :D
Ahora, FUERA DEL FORO DE GORDI-VÍRGENES!!!
fbustamante
13/12/2019, 14:43
¡Felicidades por aquí también! :brindis::brindis::brindis::brindis::brindis::brin dis::brindis:
Tío que estoy en Venezuela sin pc y muchas veces sin Internet hasta mitad de enero.... Que me caso mañana XD
Enhorabuena y suerte :D
fbustamante
14/12/2019, 07:32
Por no abrir otro hilo...
Me estoy metiendo en las SDL. Ahora mismo estoy con la 1.2 y me asaltan algunas dudas.
¿SDL 1.2 ó 2.0? Tengo entendido que la 1.2 se usa más en sistemas retro. ¿Es la que usa la RG350? Mi idea es programación para Wiz, Caanoo, Bittboy y en el futuro, RG350.
¿Usáis alguna librería de manejo de sprites externa o SDL a pelo?
Saludos.
Neodreamer
14/12/2019, 10:32
A esto si te puedo responder yo. La 1.2 está mas extendida porque lleva mas años, peeeero. Yo mismo me vi en la necesidad de usar sdl2 para poder usar cosas como las rotaciones. Si puedes hazlo con sdl2
Yo usaría SDL 1.2.
El SDL 2.0 en estas consolas va de culo.
Estoy trabajando en un juego y acabo de encontrarme que en RG350, SDL2 no soporta las rotaciones con SDL_RenderCopyEx. :shock: Diría que directamente no está soportado, porque tengo el mismo código funcionando en Mac y Ubuntu, y en la consola se dibujan los sprites pero las rotaciones no se aplican.
Si tienes el código de las SDL tal vez puedas hacer un copy&paste entre las versiones de Mac y de RG350
Si tienes el código de las SDL tal vez puedas hacer un copy&paste entre las versiones de Mac y de RG350
Si, no sé si me explicado bien. Yo tengo el código en C++ y SDL2, y funciona todo igual en Mac, Ubuntu y RG350, menos las rotaciones que no se aplican en RG350.
Ya, si te he entendido, pero ¿no puedes murar el código fuente de la función SDL_RenderCopyEx a ver que leches le pasa? Puede que tenga mediante compilación condicional que en determinadas plataformas hace un ... lo que sea, sin aplicar la rotación.
Voy a ver lo que veo en github.
-----Actualizado-----
Mirando en GitHub he visto que en este fichero. https://github.com/SDL-mirror/SDL/blob/04e6c1cdd2ba40a50fb11a1248b898d64c7a9752/src/render/software/SDL_render_sw.c en la función SW_QueueCopyEx hace un simple SDL_memcopy por eso pasa de las rotaciones, en la implementación del render en openGL crea un quad con las coordenadas de textura correspondientes...
Lo habrán dejado como ejercicios XDXDXD.
Lo ideal seria hacer que las SDL en la RG350 fueran por hardware, parece que esta tirando del render por software.
Gracias por tomarte la molestia de mirarlo swapd0, mi nivel de C++ no me permite llegar tan lejos, jeje :lamer:
Pero si es C no C++ XD, de todas formas no seria muy complicado cambiar la función para que en caso de que el ángulo no sea cero, dibujar el sprite rotado.
Yo en un juego tuve que implementar un rotate a mano, ya que usaba la SDL 1.2 que no soporta esas modernidades :D. Es curioso lo que has visto swapd0, es decir que en la SDL 2 el render básico pasa de la rotaciones, pero con el render OpenGL si que las usa. Ah, pues lo mismo en la GCW Zero puede estar pasando lo mismo, no lo he probado.
Ahora que me acuerdo, en la SDL 1.2 use una librería adicional que se llama SDL_gfx, que incluye esta función para rotar y/o escalar. Creo que es la que usé y funcionaba, al menos en la Wiz.
SDL_Surface *rotozoomSurface (SDL_Surface *src, double angle, double zoom, int smooth);
Pues yo de momento las he dejado "para más adelante". Me gustaría empezar con OpenGL pero de momento estoy usando SDL2, que exceptuando las rotaciones funciona bien en RG350
Que mal, no consigo forzar el render por software en mac. He cogido uno de los ejemplos he cambiado el main de esta forma y me saltan asertos.
DrawState *drawstate = &drawstates[i];
drawstate->window = state->windows;
[I]// drawstate->renderer = state->renderers[i];
surface = SDL_GetWindowSurface(drawstate->window); // cambiado
drawstate->renderer = SDL_CreateSoftwareRenderer(surface); && cambiado
drawstate->sprite = LoadTexture(drawstate->renderer, "icon.bmp", SDL_TRUE);
drawstate->background = LoadTexture(drawstate->renderer, "sample.bmp", SDL_FALSE);
Puck2099
25/01/2020, 21:50
No sé si he entendido bien, ¿decís que el mismo ejecutable de wiz funciona en dingux?
Otras duda, ¿se puede ejecutar código en una RG350 directamente desde el pc por telnet o ssh como en la GP2X?
Otras duda, ¿se puede ejecutar código en una RG350 directamente desde el pc por telnet o ssh como en la GP2X?
Yo he probado a acceder a la RG350 por ssh y lanzar el ejecutable, y se ejecuta la aplicación en la consola
Puck2099
26/01/2020, 21:02
Gracias, entonces es como la GP2X, red por usb y ssh, en la wiz creo recordar que había que andar con la sd para todo...
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.