Bennu Game Development

Foros en Español => Extensiones => Topic started by: DCelso on February 15, 2010, 03:17:16 PM

Title: mod_mappy
Post by: DCelso on February 15, 2010, 03:17:16 PM
Hola a todos,
os dejo un nuevo módulo para bennu,
esta vez se trata de mod_mappy, un módulo de carga de mapas "fmp" creados con la herramienta mappy (http://tilemap.co.uk/mappy.php).

Es una adaptación de otra librería llamada SDLMappy que tiene el mismo objetivo pero para C++/SDL en vez de bennu.
Viene con el código fuente y con un "*.prg" de ejemplo, que también es una adaptación de un ejemplo de uso de SDLMappy.
Title: Re: mod_mappy
Post by: l1nk3rn3l on February 15, 2010, 05:11:55 PM
aqportazo..

incluire este editor en el proximo bennupack..

y la dll  ;D
Title: Re: mod_mappy
Post by: Drumpi on February 15, 2010, 05:50:18 PM
Woooh, directo al disco duro para su estudio e integración en cierto motorcillo tileado, muchas gracias.
A ver si al abrirlo me entero mejor de qué es lo que hace, porque a simple vista, carga el mapa en memoria ¿y luego?
Title: Re: mod_mappy
Post by: DCelso on February 15, 2010, 06:28:37 PM
Mira el ejemplo.
Básicamente sirve para todo lo relaccionado con mapas.
Lleva soporte multicapa, fondo parallax, tiles animados, etc, hay mucha información acerca del formato en la página de mappy y también muchos tutoriales de como usar el programa.

Faltan cosas, y seguro que casi todo no va a ir, por ejemplo, actualmente, para que el sistema multi capa pueda tener varios niveles de z distintos en bennu,hay que hacer una piñuela: habría que crear n procesos, en cada uno cargar el fmp y controlar en cada uno una capa distinta del fmp.
Title: Re: mod_mappy
Post by: SplinterGU on February 15, 2010, 09:24:39 PM
karma++
Title: Re: mod_mappy
Post by: josebita on February 16, 2010, 12:09:45 AM
Genial, felicidades.
Le echaré un ojo.
Title: Re: mod_mappy
Post by: Prg on February 16, 2010, 01:43:15 AM
lo acabo de mirar, se ve genial.
karma++
funcionará a 32b?
Title: Re: mod_mappy
Post by: DCelso on February 16, 2010, 09:50:23 AM
Quote from: Prg on February 16, 2010, 01:43:15 AM
lo acabo de mirar, se ve genial.
karma++
funcionará a 32b?
Umn, pues no se, me limité a hacer funcionar el ejemplo de SDLMappy, me da la impresión de que no va a ir los 32 bits por lo que leí en la página web.
De todas formas, he visto que he usado SDLMappy1.0 que es del 2003 mientras que los de mappy actualizaron este SDLMappy a la versión 1.1 (este es del 2006, creo haber leído), estoy insertando este nuevo sdlmapy al mod. En cuanto lo tenga lo comparto, pero tampoco veo que tenga soporte de 32 bits, tendré que ver qué puedo hacer.
Title: Re: mod_mappy
Post by: DCelso on February 16, 2010, 09:53:06 AM
ah, muuuchas gracias por los karmas, hace mucho que no recibía ninguno y me estaba quedando atrás :D :D.
Title: Re: mod_mappy
Post by: josebita on February 16, 2010, 05:26:10 PM
Lo he compilado en ubuntu y me va genial. ¿En general qué tal va de rendimiento con mapas grandes?.

En cuanto tengas la versión actualizada, ¡no dudes en subirla!
Title: Re: mod_mappy
Post by: Windgate on February 16, 2010, 07:58:14 PM
Veo bonitos los mapas que se pueden hacer, ¿Hay algún ejemplo que use un mapa además de la dll en sí misma?

Lo probaré cuando descanse un poquito del 3D :D
Title: Re: mod_mappy
Post by: FreeYourMind on December 06, 2010, 08:33:01 PM
DCElso, de que modulos externos depende esta dll ?
Bueno, me confieso de una vez, es este tu modulo que he portado a Caanoo  ;D, pero no encuentra el modulo por alguna dependencia xDDDD
Title: Re: mod_mappy
Post by: DCelso on December 06, 2010, 10:39:59 PM
umn, pues no tiene dependencias externas, a parte de libSDL y libbgdrtm.
Tiene que ser por otra cosa ¿Has tocado algo del código?
Title: Re: mod_mappy
Post by: FreeYourMind on December 06, 2010, 11:56:53 PM
Pues no, bueno en el primer intento me lie con el import <vector>, pero al final consegui poner bien esta dependencia y compilar (ya que la toolchain de Caanoo tambien tiene estas cabeceras).
Tuve que cambiar el makefile para compilar en modo c++ por el tema este, pero se ha compilado con exito.
Una cosa, los loadings de una imagen .bmp que dependencias tienen ?
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 12:15:52 AM
pues no se, las de bennu, ¿mod_map? o de alguna de las que dependa esta.
mira que a mi al principio me pasaba que los modulos C++ no me los reconocía bennu, y era debido a que hay que ponerle el extern C, a ver si van por ahí los tiros.
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 12:28:55 AM
Pues los que compile para Windows con codeblocks no tuve problema si eran c++.
Aqui utilizó tu source tal cual (menos las rutas de las cabeceras), lo compilo con makefile en Linux, al menos que tenga que cambiar algo...

#include <vector>

//BennuGD functions
#include "include/bgddl.h"

extern "C"{
#include "include/libgrbase.h"
#include "include/xstrings.h"
}

#include "include/SDLMappy.h"
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 12:39:38 AM
cagoen, entonces no se que falla, otro error para que bennu no te reconozca la libreria es que no la llames igual que como la llamaste dentro del .cpp, es decir, tiene que llamarse mod_mappy y que dentro del mod_mappy.cpp haya lo siguiente:
DLSYSFUNCS __bgdexport( mod_mappy, functions_exports) [] = {
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 12:44:35 AM
No, si este ultimo he caido una vez y no vuelvo a caer xDDD
Lo siento tampoco es eso.
Me huele a temas del formato .bmp, o dll's que parecen estar en la distribución de Windows y no de Caanoo.
Por cierto otra cosa rara es que la de Windows ocupa 66,3 kb y la de Caanoo sólo 14,4 kb, y suelen ocupar parecido...
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 12:49:32 AM
umn, nose, voy a compilarlo en linux y te digo.
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 01:45:47 AM
Bueno, a mi no me ha dado ningún problema el port a linux. Quizás uno muy leve, de como usar los include de bennugd.
Ha sido compilar y probar, todo ok.
Mira a ver si te vale este código mejor.
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 02:12:47 AM
Karma  ;)
Lo que yo veo distinto es que creas tambien el objeto de SDL_Mappy, y los mezclas al final.

Mi makefile es el siguiente:

BASE_DEV=/home/geca/Geca/mod_mappy/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi
PREFIX=$(BASE_DEV)/bin/arm-gph-linux-gnueabi-
BUILD_EXT=.so
PLATFORM=__ARM__
EXTRA_LIBS=
BENNU_CORE=/home/geca/Geca/mod_mappy
BENNU_BASE=/home/geca/Geca/mod_mappy/bennugd
BUILD_APP = mod_mappy$(BUILD_EXT)

CC    := $(PREFIX)gcc
LD    := $(PREFIX)gcc
AS    := $(PREFIX)as
AR    := $(PREFIX)ar

OBJECTS =   mod_mappy.o

CFLAGS = -DTARGET_CAANOO -mcpu=arm926ej-s -mtune=arm926ej-s -O3 -DARM -D_ARM_ASSEM_ -I. -I$(BASE_DEV)/include  -I$(BENNU_BASE)/core/include -I$(BENNU_BASE)/bgdrtm/include -I$(BENNU_BASE)/modules/libgrbase/ -I$(BENNU_BASE)/modules/libblit/ -I$(BASE_DEV)/arm-gph-linux-gnueabi/include/c++/4.2.4/ -I$(BASE_DEV)/include -fPIC
LDFLAGS = -shared -module -avoid-version -L$(BASE_DEV)/lib -L$(BENNU_BASE)/modules/libblit/.libs -lblit -L$(BENNU_BASE)/modules/libgrbase/.libs -lgrbase $(EXTRA_LIBS)

all: $(BUILD_APP)

$(BUILD_APP): $(OBJECTS) Makefile
$(CC) -o $@ $(OBJECTS) $(LDFLAGS)

%.o:%.cpp Makefile
$(CC) -c $(CFLAGS) $< -o $@

clean:
rm -f $(OBJECTS) $(BUILD_APP)

release: clean all
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 02:47:41 AM
prueba a eliminar -lblib y a insertar "-lSDL -lbgdrtm"
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 10:42:49 AM
Vale, de momento he tenido otro problema con mi disco duro de Windows, estoy backupeando, cuando termine me pongo.

Edit: No veo ese nombre en el makefile! Puedes cambiar tu la linea que dices y ponerla aqui ?
Gracias.
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 02:45:57 PM
LDFLAGS = -shared -module -avoid-version -L$(BASE_DEV)/lib -L$(BENNU_BASE)/modules/libblit/.libs -lblit -L$(BENNU_BASE)/modules/libgrbase/.libs -lgrbase $(EXTRA_LIBS)


LDFLAGS = -shared -module -avoid-version -L$(BASE_DEV)/lib -L$(BENNU_BASE)/modules/libblit/.libs -lSDL -lbgdrtm -L$(BENNU_BASE)/modules/libgrbase/.libs -lgrbase $(EXTRA_LIBS)
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 04:49:11 PM
Igual, mismo tamaño, mismo problema.
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 08:02:39 PM
joe chico pues le pasa algo en canoo, ¿ pero usaste el código fuente último que compartí, el de linux?
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 08:47:00 PM
Pensaba que era identico (le heche un ojo rápido). Lo voy a probar, ya te cuento.
Title: Re: mod_mappy
Post by: DCelso on December 07, 2010, 09:01:23 PM
si, es casi idéntico :)
Title: Re: mod_mappy
Post by: FreeYourMind on December 07, 2010, 09:03:44 PM
Casi idéntico !!!! Me acabas de tomar el pelo, he ido por el portátil de Linux para nada  ;D Si encuentras una diferencia no te quito el karma que ahora mismo me apetece quitarte  :D
Title: Re: mod_mappy
Post by: Windgate on December 08, 2010, 01:14:31 AM
¿Algún ejemplo por ahí que use la librería?
Title: Re: mod_mappy
Post by: FreeYourMind on December 08, 2010, 10:30:53 AM
Windgate, nose, peo las 3D te estan afectando :) Nos pides siempre cosas o haces siempre observaciones que se comentan varios posts arriba  ;D
El ejemplo viene con la dll compilada, tanto la de Windows en la primera página, como la de Linux algunos posts atras...
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 11:52:56 AM

Free, :'(, ya te dije que era la forma de como hacer los includes de bennuGD, antes hacía #include "bgdl.h" y ahora hace #include < bgdl.h > y así para todos los includes de bennu, para usar cadenas y otras funciones.
La diferencia es poca pero apreciable, con "" le dices al compilador que es una cabecera hecha por tí y con < > le dices al compilador que es una cabecera externa a tu proyecto.
Lo que no entiendo es qué es lo que te pasa, porque compilarte te compila para canoo ¿No? ¿el problema es luego al usarla con bgdc de canoo?
Intenta crear el .dcb de ejemplo en linux y luego intentar ejecutarlo en canoo insertando el mod_mappy.so para canoo que compilaste en la canoo.

Wind, efectivamente, en los dos códigos, tanto el de windows, como el de linux, tienen un directorio llamado prg donde va un prg de ejemplo de como usar mod_mappy.
Mappy es una aplicación (en versiones windows y linux) para generar archivos de mapas en un formato propietario. mod_mappy sirve para poder abrir y mostrar en pantalla los mapas hechos con Mappy y así poder usar estos mapas en tus juegos bennu.
Title: Re: mod_mappy
Post by: FreeYourMind on December 11, 2010, 02:44:19 PM
No se porque me dices eso de los includes, eso fue de las pocas cosas que no se me han olvidado :)
Si, la tengo compilada, pero nose para que quieres que pruebe la de Linux, eso no va ayudar a que funcione la de Caanoo.
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 02:57:34 PM
no te digo que pruebes la de linux, sino que compiles el .dcb en linux (por tanto para el bgdc de linux necesitarás la de linux) y luego lo ejecutes en canoo (por tanto para el bgdi de canoo necesitarás la de canoo).
Title: Re: mod_mappy
Post by: FreeYourMind on December 11, 2010, 03:40:13 PM
Ha vale, aunque lo probé con el compilado en windows.
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 03:48:11 PM
umn,, pues eso mismo me vale, y que resultados te dio?
Title: Re: mod_mappy
Post by: FreeYourMind on December 11, 2010, 04:02:14 PM
Cual te imaginas ? Pues lo mismo, sino da error al compilar porque lo haces en un SO en el cual tiene la dll válida, pues te da error al ejecutarlo despúes porque no encuentra las funciones del modulo...
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 04:13:12 PM
Y tienes el mod_mappy.so de canoo con todos los .so del runtime de bennu, no?
pues entonces debe de ser una dependencia con alguna librería del sistema de canoo, prueba a ponerle -lz -lc o algo así.
Sino, también, puedes probar a quitarle el -shared, a ver si te da algún undefinided refference la compilación.
Title: Re: mod_mappy
Post by: FreeYourMind on December 11, 2010, 04:20:22 PM
Es lo que pienso, por eso te preguntaba por las dependencias. Tambien esta lo raro del tamaño que ocupa la mitad, y los modulos suelen tener tamaños parecidos entre varios SO.

Donde son esos cambios que comentas ? Parametros del dcb ?!
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 06:11:48 PM
no, de la compilación para canoo, te acuerdas que te señalé en negrita un cambio en tu makefile? pues ahí mismo.
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 06:48:04 PM
De  este  (http://sbock.net/upload/GPH_SDK-10.08_en.pdf) documento, extraigo que para compilar en caanoo necesitas cambiar lo siguiente en tu makefile:

BASE_DEV=/home/geca/Geca/mod_mappy/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi
PREFIX=$(BASE_DEV)/bin/arm-gph-linux-gnueabi-
BUILD_EXT=.so
PLATFORM=__ARM__
BENNU_CORE=/home/geca/Geca/mod_mappy
BENNU_BASE=/home/geca/Geca/mod_mappy/bennugd
BENNU_RUNTIME=/home/geca/Geca/bgdrtm_caanoo
BUILD_APP = mod_mappy$(BUILD_EXT)

EXTRA_LIBS= -L$(BENNU_RUNTIME) -lgrbase -lbgdrtm

CC    := $(PREFIX)gcc
LD    := $(PREFIX)gcc
AS    := $(PREFIX)as
AR    := $(PREFIX)ar

OBJECTS =   mod_mappy.o

CFLAGS = -DTARGET_CAANOO  -DARM -D_ARM_ASSEM_ -I. -I$(BENNU_BASE)/core/include -I$(BENNU_BASE)/bgdrtm/include -I$(BENNU_BASE)/modules/libgrbase  -I$(BASE_DEV)/DGE/include -I$(BASE_DEV)/DGE/include/SDL -I$(BASE_DEV)/include -Wall -O3 -fexceptions -fomit-frame-pointer -fPIC

LDFLAGS = -shared -module -avoid-version -L$(BASE_DEV)/DGE/lib/target -L$(BASE_DEV)/lib/target  -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lDGE -lglport -lopengles_lite -lpng -lz -lts -lsmpeg –lfreetype -s $(EXTRA_LIBS)

all: $(BUILD_APP)

$(BUILD_APP): $(OBJECTS) Makefile
$(CC) -o $@ $(OBJECTS) $(LDFLAGS)

%.o:%.cpp Makefile
$(CC) -c $(CFLAGS) $< -o $@

clean:
rm -f $(OBJECTS) $(BUILD_APP)

release: clean all


En primer lugar, puede que tu error provenga de que no estabas enganchando con las libs runtime de bennu para caanoo.
Y en segundo lugar, del documento ese he extraído todas las librerías con las que enganchas con el sistema caanoo (fijo que todas no son necesarias pero poniendo todas aseguramos que vaya :D)
Prueba y me cuentas.
Title: Re: mod_mappy
Post by: FreeYourMind on December 11, 2010, 07:26:07 PM
Funcione o no soy tu fan :). Karma.
Ya he compilado 2 modulos antes para Caanoo y funcionaban de la otra forma, ya te comento luego que ahora es party time :)
Title: Re: mod_mappy
Post by: DCelso on December 11, 2010, 07:50:43 PM
Pues entonces ahora lo vas a flipar, me he bajado las  SDK de caanoo (http://sbock.net/upload/gphsdk1008.7z) y he compilado el mod_mappy cambiando el makefile del ejemplo adjunto en las sdl, el resultado es el siguiente, me gustaría que alguien intentase probar el ejemplo .prg que adjunto en la caanoo añadiendo el .so que también adjunto de mod_mappy.
Title: Re: mod_mappy
Post by: FreeYourMind on December 12, 2010, 01:20:20 AM
Si ya me lo esperaba justo al entrar y ver que habia novedades en este post.
La proxima no te digo nada, roba curro xDDDD
Lo voy a probar ahorita en la Caanoo.
Title: Re: mod_mappy
Post by: FreeYourMind on December 12, 2010, 01:30:29 AM
Funciona :)
Yo ya tenia el prg y todo adaptado para la Caanoo listo a distribuir (mapeado de los botones, resolución, instalación).
Así que si no te importa lo voy a publicar yo, como ya he hecho con los 2 anteriores modulos que porte a Caanoo, sólo que con tu modulo XDDDD

La proxima no te digo nada xDDD
En serio, muchas gracias, así da gusto :)

Mañana lo pruebo a compilar.

(http://forum.bennugd.org/index.php?action=dlattach;topic=1184.0;attach=1653)

http://dl.openhandhelds.org/cgi-bin/caanoo.cgi?0,0,0,0,19,601 (http://dl.openhandhelds.org/cgi-bin/caanoo.cgi?0,0,0,0,19,601)
Title: Re: mod_mappy
Post by: FreeYourMind on December 12, 2010, 02:58:54 PM
Por fin he podido compilar el tuyo (cambiando rutas lógicamente), decirte que lo probé con el antiguo poniendo todas las dependencias y también la distinta configuración de CFLAGS, pero faltaba la lib DGE, y sin ella se generaba igual que antes.
Con el oficial, pues solo veo esta diferencia, y la so tiene unos 3kb mas, de todas formas me parece raro, ya que con los módulos anteriores no tuve problemas, es sin duda algo que se nos escapa.

Bueno, pues ya descanso en paz.
Gracias compi, por la nueva configuración para futuros compilados, no se que haría sin ti :)

Title: Re: mod_mappy
Post by: DCelso on December 12, 2010, 03:05:41 PM
pero te diste cuenta de que había una ruta mal en el Makefile? en las dos líneas de LIBS, en una pone algo como bgd_bin_target cuando debería ser bgd_bin_host, y viceversa (osea donde pone bgd_bin_host debería poner bgd_bin_target). pero curiosamente parece que no afecta al binario final :D. Luego resubo el proyecto con esta errata corregida.
Title: Re: mod_mappy
Post by: DCelso on December 12, 2010, 03:15:20 PM
mod_mappy caanoo src
Title: Re: mod_mappy
Post by: l1nk3rn3l on December 12, 2010, 04:19:06 PM
deberia haber un repositorio donde se puedan subir los ports de las dlls
Title: Re: mod_mappy
Post by: FreeYourMind on December 12, 2010, 05:07:16 PM
Esta dañado el zip.
Lo del repositorio deberia estar hace tiempo con todos los ports y versiones de cada modulo para distintos SO.
Title: Re: mod_mappy
Post by: blostec on December 12, 2010, 07:45:21 PM
Quote from: l1nk3rn3l on December 12, 2010, 04:19:06 PM
deberia haber un repositorio donde se puedan subir los ports de las dlls

Tienes toda la razón.
Title: Re: mod_mappy
Post by: l1nk3rn3l on December 12, 2010, 10:25:19 PM
recomiendo google code
Title: Re: mod_mappy
Post by: blostec on December 12, 2010, 10:30:39 PM
o sourceforge (http://sourceforge.net/)
Title: Re: mod_mappy
Post by: FreeYourMind on December 12, 2010, 10:47:23 PM
sourceforge cada dia apesta mas, hasta 3, 4 páginas hay que abrir para hacer la descarga que quieres.
google code me gusta, auqnue ya estuvo mejor, ahora necesitas abris 2 paginas para hacer tu descarga.