Chuta muy bien en GP32, tanto 24bit como 8bit, yo siempre lo uso.Iniciado por Wave
Chuta muy bien en GP32, tanto 24bit como 8bit, yo siempre lo uso.Iniciado por Wave
si los tienes en arrays, simplemente create un programita que cargue los graficos en pantalla y o bien haces un dump y los grabas a disco o haces una captura en el geepeeIniciado por Wave
Aiken
Ya hice el tuto de D_skywalk, pero le falta que funcionen las librerías extras de SDL para win(SDL_image, SDL_mixer...) que chui ha incluido en gp32. Ya que intentas compilar para win alguno de los ejemplos y no funciona...
enkonsierto las puedes bajar de aqui para el PC:
http://www.ferzkopp.net/~aschiffler/...e/SDL_gfx-2.0/
Edit: de ahi las SDL_gfx (en el INSTALL tienes como instalarlo para mingw)
Última edición por anibarro; 04/09/2005 a las 12:50
Sí, si bajarlas las tengo bajadas, pero despues algo mál debo hacer al instalarlas porque no acaban de compilar bien los ejemplos...
Saludos
Yo por mi parte he seguido este cojonudo tutorial y he conseguido compilar y ejecutar los ejemplos del señor Chui, ademas de pintar unos tiles por mi parte, un spritecete y tocar un .xm en cinco minutillos (tanto en windows como en la gp32 con el mismo codigo). Osea que muchas gracias por todo ^_^
Ahora tengo un problemilla: no consigo compilar codigo en C++. He estado mirando los foros sobre ello y no he sacado nada en claro. Luego he estado toqueteando el makefile y jugaria el cuello a que tengo bien los directorios, pero el arm-elf-gcc se empeña en decirme lo siguiente:
Perdonad el tochazo, pero creo que asi es mejor para que los expertos vean donde he metido la gamba. Como se ve, el compilador no encuentra el sdl.h y demas ficheros, pero ya creo que tengo bien los directoriosCódigo:Makefile:74: Makedepend: No such file or directory arm-elf-gcc -I/opt/include/sdl -I/opt/include -mtune=arm920 -march=armv4t -marm -mno-thumb-interwork -msoft-float -ffast-math -nostdlib -fno-common -fno-builtin -fno-exceptions -mstructure-size-boundary=8 -fomit-frame-pointer -fstrict-aliasing -O6 -DGFXST -DGP32 -DGP32_LIBC -Wall -Wno-switch -DUSE_FIXED_POINT -M Source/prueba.cpp > Makedepend arm-elf-as -o crt0x_gp32.o crt0x_gp32.s g++ -c -o Source/prueba.o Source/prueba.cpp Source/prueba.cpp:3:21: sdl/SDL.h: No such file or directory Source/prueba.cpp:4:27: sdl/SDL_image.h: No such file or directory Source/prueba.cpp:5:27: sdl/SDL_mixer.h: No such file or directory Source/prueba.cpp:13: error: expected constructor, destructor, or type conversion before '*' token Source/prueba.cpp:13: error: expected `,' or `;' before '*' token Source/prueba.cpp: In function `void waitEvent()': Source/prueba.cpp:17: error: `SDL_Event' undeclared (first use this function) Source/prueba.cpp:17: error: (Each undeclared identifier is reported only once for each function it appears in.) Source/prueba.cpp:17: error: expected `;' before "event" Source/prueba.cpp:18: error: `event' undeclared (first use this function) Source/prueba.cpp:18: error: `SDL_PollEvent' undeclared (first use this function) Source/prueba.cpp:19: error: `SDL_Delay' undeclared (first use this function) Source/prueba.cpp: In function `int main(int, char**)': Source/prueba.cpp:29: error: `SDL_INIT_VIDEO' undeclared (first use this function) Source/prueba.cpp:29: error: `SDL_INIT_AUDIO' undeclared (first use this function) Source/prueba.cpp:29: error: `SDL_Init' undeclared (first use this function) Source/prueba.cpp:35: error: `screen' undeclared (first use this function) Source/prueba.cpp:35: error: `SDL_HWSURFACE' undeclared (first use this function) Source/prueba.cpp:35: error: `SDL_DOUBLEBUF' undeclared (first use this function) Source/prueba.cpp:35: error: `SDL_SetVideoMode' undeclared (first use this function) Source/prueba.cpp:39: error: `SDL_Quit' undeclared (first use this function) make: *** [Source/prueba.o] Error 1
A ver si algun alma caritativa me puede ayudar (tambien podria ser con un ejemplillo en C++ usando las SDL de chui ).
Muchas gracias por adelantado
Iniciado por Gammenon
Yo diría que te falta declarar los flags para el compilador C++ y que solo los tienes para el compilador C.
En tu makefile deberías de tener alguna línea del estilo para los flags del compilador C
y otra para los flags del compilador C++, aquí tienes la que tengo yo (para el SDK oficial):Código:CFLAGS = ...
A ver si hay suerte.Código:CPPFLAGS = $(CFLAGS) -fno-exceptions
Oankali.
Bueno bueno, parece ser que ya compilo el asunto este. Ahora el problema esta en el proceso de enlazado XDD Esto es lo que me dice el make:
He visto que hay un libc por ahi, y tambien que hay un libc_bluplus (que he renombrado a libc_plusplus, pa no liarme). Lo he añadido al makefile y me suelta lo de arriba, que no lo encuentra el muy ******Código:Makefile:75: Makedepend: No such file or directory arm-elf-gcc -I/opt/include/sdl -I/opt/include -mtune=arm920 -march=armv4t -marm -mno-thumb-interwork -msoft-float -ffast-math -nostdlib -fno-common -fno-builtin -mstructure-size-boundary=8 -fomit-frame-pointer -fstrict-aliasing -O6 -DGFXST -DGP32 -DGP32_LIBC -Wall -Wno-switch -DUSE_FIXED_POINT -I. -fno-exceptions -M source/prueba.cpp > Makedepend arm-elf-as -o crt0x_gp32.o crt0x_gp32.s arm-elf-g++ -I/opt/include/sdl -I/opt/include -mtune=arm920 -march=armv4t -marm -mno-thumb-interwork -msoft-float -ffast-math -nostdlib -fno-common -fno-builtin -mstructure-size-boundary=8 -fomit-frame-pointer -fstrict-aliasing -O6 -DGFXST -DGP32 -DGP32_LIBC -Wall -Wno-switch -DUSE_FIXED_POINT -I. -fno-exceptions -c -o source/prueba.o source/prueba.cpp arm-elf-ld -Map prueba.map -nostartfiles --script arm-gp32bin.x -L/opt/lib crt0x_gp32.o source/prueba.o -lSDL_mixer -lSDL_image -lSDL -lc_plusplus -lc -lpng -ljpeg -lz -lm -lgcc -o prueba.elf source/prueba.o(.text+0x80): In function `main': : undefined reference to `x_gp32_SetCPUSpeed(long, int, int)' make: *** [prueba.elf] Error 1
En fin, este es mi makefile, a ver si alguien encuentra algun fallo garrafal:
Código:CC = arm-elf-gcc CXX = arm-elf-g++ AS = arm-elf-as LD = arm-elf-ld OBJCOPY = arm-elf-objcopy DEPENDFILE = Makedepend MAPFILE = prueba.map TARGET_ELF = prueba.elf TARGET_BIN = prueba.gxb TARGET_FXE = prueba.fxe LDSCRIPT = lnkscript X_LDSCRIPT = arm-gp32bin.x .SFILES = crt0x_gp32.s .CPPFILES = source/prueba.cpp source/cplusplus.cpp .OFILES = $(.SFILES:.s=.o) $(.CFILES:.c=.o) $(.CPPFILES:.cpp=.o) OPTFLAGS = -mtune=arm920 -march=armv4t -marm -mno-thumb-interwork \ -msoft-float -ffast-math -nostdlib -fno-common \ -fno-builtin -mstructure-size-boundary=8 \ -fomit-frame-pointer -fstrict-aliasing -O6 CFLAGS = -I$(GP32PATH)/include/sdl -I$(GP32PATH)/include \ $(OPTFLAGS) -DGFXST -DGP32 -DGP32_LIBC \ -Wall -Wno-switch -DUSE_FIXED_POINT -I. \ CPPFLAGS = $(CFLAGS) -fno-exceptions LDFLAGS = -Map $(MAPFILE) -nostartfiles --script $(X_LDSCRIPT) \ -L$(GP32PATH)/lib SYSTEMLIBS = -lSDL_mixer -lSDL_image -lSDL -lc_plusplus -lc \ -lpng -ljpeg -lz -lm -lgcc DOLINK = $(LD) $(LDFLAGS) $(.OFILES) $(SYSTEMLIBS) -o $(TARGET_ELF) $(TARGET_FXE): $(TARGET_BIN) b2fxec $< $@ $(TARGET_BIN): $(TARGET_ELF) $(OBJCOPY) -O binary $< $@ $(TARGET_ELF): $(.OFILES) $(DEPENDFILE) $(DOLINK) .PHONY: all clean depend all: clean depend $(TARGET_BIN) tags: $(DEPENDFILE) ctags -e *.cpp *.s *.h *.S clean: -rm -f $(.OFILES) $(DEPENDFILE) $(MAPFILE) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_FXE) TAGS send: $(TARGET_FXE) gplink -c -x put $(TARGET_FXE) /GPMM depend: $(CC) $(CPPFLAGS) -M $(.CPPFILES) > $(DEPENDFILE) $(DEPENDFILE): $(CC) $(CPPFLAGS) -M $(.CPPFILES) > $(DEPENDFILE) include $(DEPENDFILE)
Muy buenas a todos!
Me he pasado la tarde trasteando con el SDL, he seguido el tutorial del principio del post (mu bueno D_Skywalk, si señor!) y ha funcionado todo a la primera.
El único problemilla lo he tenido a la hora de empezar a compilar algun programilla de prueba, ya que una vez tienes el fxe lo más práctico en mi caso era mandarlo al geepee32 0.43 para ver que tal furula.
Pues bien, me he pasado como dos horas intentando pasarle el fxe como parámetro sin resultado, pero como al final ya me he hartado de abrir cada vez el fichero a mano y me he puesto a buscar más en serio, al final he encontrado como se hace!
Más que nada para que nadie más pierda el tiempo tontamente como yo, lo que pone en la web de firefly está mal y para cargar un binario desde la línea de comandos no es con /FXE ni con /GXB, sino con /BIN
Las SMC sí que se pueden cargar con /SMC y el /RUN funciona, pero ese /BIN no le he encontrado documentado por ninguna parte.
Bueno, a lo mejor esto ya se sabia, pero despues del frustre que he pillado esta tarde he tenido que postearlo para quedarme tranquilo!
Un saludo a todos, especialmente para Chui que es quien realmente se ha currado el tema.
Y el proximo mod para la gp? pronto pronto...
Iniciado por AdventChild
Efectivamente en la web de Firefly la cosa está mal documentada. En este post se habló del tema.
Oankali.
Yo diría que te estás liando con la libc_bluplus, no creo que sea para C++ sino que es para las BLU+ que tienen una pantalla diferente. O sea que me imagino que habrá que crear dos ejecutables, uno con libc_bluplus para las BLU+ y otro con libc para las otras consolas.Iniciado por Gammenon
Prueba poniendo solo una de las dos libs.
Oankali.
Si, ahi la he cagao, justo esta mañana me he dicho "*****, a que va a ser por la blu+" XDD.
La cuestion es que tambien probe sin esa libreria, y me salta el mismo error Mmmm... en el VC++ habia una libreria del main, algo asi como sdlmain.lib. No habra algo equivalente pa la Gepeto? :|
Solo se me ocurre una cosa y es que a la cabecera x_gp32.h le faltan las declaracionesIniciado por Gammenon
para hacerla compatible con C++.Código:#ifdef __cplusplus extern "C" { #endif ... #ifdef __cplusplus } #endif
Si no es esto, pues no podré ayudarte más ya que aún no he empezado a trastear con las librerías SDL.
Oankali.
Mmmm si tiene pinta de que puede ser eso. Ya lo probare cuando llegue a casa (esto de salir a las 7:30 y llegar a las 19:30 es un asco ).
Muchas gracias por las respuestas Oankali
Marcadores