Bennu Game Development

Foros en Español => Novedades y Releases => Topic started by: SplinterGU on April 17, 2008, 03:00:51 AM

Title: Avances, Diario de...
Post by: SplinterGU on April 17, 2008, 03:00:51 AM
Abro este hilo para ir comentando los avances importantes que vayan surgiendo...

Al 16/04/2008

Ya existe una version reducida del core... solo instrucciones basicas de la maquina virtual, sin ninguna dependencia a video, sonido, teclado, etc... solo procesos, jerarquias, prioridades, y esas cosas...
Aparicion de la primera version Linux.
Aparicion nuevamente de la consola de la aplicacion, adios stdout.txt y stderr.txt.
Core (compilador e interprete) sin ninguna dependencia a SDL.
Modulos que no usan SDL, ya no dependen de esta.
Interprete de alrededor de 40k (menos) tanto en linux como en windows. Libreria de runtime de 199k, modulos un promedio de 8k, algunos menos (5k) y otros mas (37k)
De momento no hay modulos de todo aquello que tenga que ver con video y formatos graficos, estoy trabajando en eso.

Bien esas son las novedades que queria compartir del dia de hoy.
Title: Re: Avances
Post by: DCelso on April 18, 2008, 07:30:25 AM
Que gran noticia.
¿Para cuando soltarás una versión de pruebas del nuevo sistema?, me pica la curiosidad usar bennugd sin soporte gráfico ni de sonido ni de teclado.  Solo se podrán hacer aplicaciones del tipo hola mundo ¿No?;D.
Saludos.
Title: Re: Avances
Post by: Elelegido on April 21, 2008, 08:40:11 PM
Quote from: dcelso on April 18, 2008, 07:30:25 AM
Que gran noticia.
¿Para cuando soltarás una versión de pruebas del nuevo sistema?, me pica la curiosidad usar bennugd sin soporte gráfico ni de sonido ni de teclado.  Solo se podrán hacer aplicaciones del tipo hola mundo ¿No?;D.
Saludos.

Yo creo que ni eso, a no ser que se hayan creado para la ocasión nuevas funciones (o quizas ya existian?) para tirar texto por la consola. Ánimo Splinter ^^
Title: Re: Avances
Post by: SplinterGU on April 21, 2008, 10:25:33 PM
Existian esas funciones... ahora mismo las quite... de momento... con la version que funcional tengo se puede hacer todo lo que no impleque un mapa ni salida a pantalla... pero bueno, hacer una dll que implemente el SAY son 2 minutos...

Ya el core esta limpio como para liberarlo... pero se que me faltan algunas cosas, por ejemplo:

- Tema de byteorder en el dcb... hacerlo de una vez por todas 100% compatible entre plataformas...
- Dependencias de modulos... esto es, si un modulo depende de otro modulo o libreria, que esta sea importada automaticamente y sin necesidad de tener que incluirla en un import (codigo o archivo)
- Warning al declarar desde un modulo constantes o variables ya existentes... siempre y cuando el valor o prototipo de la misma coincidan... o quizas la posibilidad de poder declarar si no existe...
- Ver posibilidad de no requerir el -Ca para poder compilar con funciones no declaradas, pero que el -Ca pase a ser algo asi como -pendantic del C...

Y algunas otras cosas mas que ahora mismo no recuerdo, pero las tengo anotadas por ahi... y primero quiero tener los modulos que ya existian listos, para que no me quede nada del core faltante a la hora de implementar algun modulo.

Tambien estoy pensando quitar el soporte de mapas animados... la verdad que no me parece muy practico, los mapas estandard deberian ser algo basico.... y no es demasiado complejo animar un mapa por codigo... creo que no vale la pena... igual actualmente no se estan usando porque no estan terminados, y si bien trabaje bastante en eso no me preocupa mucho tirar ese trabajo...
Title: Re: Avances
Post by: DCelso on April 22, 2008, 07:48:39 AM
Me parece bien quitar el soporte que comentas de mapas animados, si alguien los usaba es facil readaptarlos en código.
Pero podría dejarnos ya una versioncilla del core del bennugd tal y como está aunque no sirva ni para hacer hola mundos :D.
Asi podríamos incluso buscar fallos al núcleo.
Saludos.
Title: Re: Avances
Post by: TYCO on April 22, 2008, 08:32:03 AM
Quote from: SplinterGU on April 21, 2008, 10:25:33 PM
Tambien estoy pensando quitar el soporte de mapas animados... la verdad que no me parece muy practico, los mapas estandard deberian ser algo basico.... y no es demasiado complejo animar un mapa por codigo... creo que no vale la pena... igual actualmente no se estan usando porque no estan terminados, y si bien trabaje bastante en eso no me preocupa mucho tirar ese trabajo...

Tienes razon, no es dificil animar un mapa por codigo incluso creo que es mas personalizable por codigo (quizas me equivoco no se). Pero si te ha llevado mucho trabajo ponerlo al dia, compensa tirarlo a la basura?

Realmente no se como empezo el tema de meter animaciones en un fgc, supongo seria hacer mas comodo a un novato hacer un loop de animacion?? yo en mi proyecto no tengo animaciones por fgc, lo tengo todo por codigo.

PD: Gracias por todo SplinterGU y tiene un pinta estupenda.
Title: Re: Avances
Post by: GINO on April 22, 2008, 09:18:30 AM
Hombre tanto los fgc como los fbm tienen la estructura para meter animaciones desde el principio. Es en los map/fpg donde si que no tiene ningun sentio extender eso.
Yo las animaciones predefinidas en fichero no lo veo mal, aunque siempre he dicho que el sistema que esta ahora no me parece el mejor.
Title: Re: Avances
Post by: SplinterGU on April 22, 2008, 12:27:16 PM
dcelso: Pronto pondre una preview del core reducido... a modo demo, no final... quizas hoy al fin del dia...

TYCO: No importa tirar cosas a la basura (aunque guarda backup por si en el futuro parte del codigo me sirve para alguna libreria) si es para clarificar y ordenar un poco mas las cosas.

GINO: Si, esos formatos graficos siempre estuvieron preparados para animaciones, pero nunca estuvieron funcionales, hasta la 0.93preview9 que esta a un 98% funcional... pero lamentablemente, todos los datos asociados a esto estan metidos internamente en las mismas estructuras que estan los datos de los MAPS... a nivel interno no existen los conceptos de fgc, fbm, fpl... todo se termina traduciendo a los clasicos fpg, map, pal... y las animaciones creo que son un desproposito... y a esta altura no tiene sentido hacer un reanalisis de todo el sistema de animaciones, cuando es demasiado facil escribirlo por codigo... seria algo diferente si nuestro bennu seria un browser o una aplicacion que no permite codificar, en ese caso, un grafico al estilo gif animado seria espectacular, pero aca es otra historia...

Nuevos avances:

- Se quitaron los formatos fgc, fbm y fpl... se volveran a introducir soporte completo a los formatos fpg, map y pal...
- Se divide lo que es fpg, map y map... en 3 partes: libreria base (creacion/borrado/navegacion), librerias de carga de ficheros, libreria de funciones de manipulacion...
- Se quita de las librerias base toda dependencia a SDL. (Al hacer esto, tambien se esta ganando velocidad, ya que se usaban estructuras de datos SDL y para usarlas nunca se usaban en formato SDL, y habia que hacer conversiones para luego usarlas... por ejemplo, datos rgb de las paletas)
- Se empieza a dar soporte a 32bits... (por ahora no render)
Title: Re: Avances
Post by: GINO on April 22, 2008, 04:41:27 PM
jejeje entonces habra unos nuevos formatos con cabecera f32 y m32 no?
Title: Re: Avances
Post by: SplinterGU on April 22, 2008, 06:47:16 PM
Posiblemente... todavia no llegue a esa parte...

Tengo pensado de dar soporte a algun tipo de archivo empaquetado, quizas un zip standard o algo similar... donde podamos meter todos los archivos que querramos facilmente... quizas usar .zip como si fueses .fpg y que el nombre de cada uno de los archivos (numerico) sea el id del grafico (podrian ser 001.bmp, 002.png, etc)... seria muy simple manipularlos, incluso se podrian guardar con password... pero bueno, de cualquier forma esto seria un modulo...
Title: Re: Avances
Post by: TYCO on April 23, 2008, 08:09:17 AM
Quote from: SplinterGU on April 22, 2008, 12:27:16 PM
- Se quitaron los formatos fgc, fbm y fpl... se volveran a introducir soporte completo a los formatos fpg, map y pal...
Entonces nada de load/save de fgc, fbm ni fpl; y solo queda load/save fpg, map y pal?? Si es asi en Bennu me das una alegria porque como bien dices en memoria se trataban por igual, y mejor no tener funciones repetidas que hacian practicamente lo mismo (ahora que se quitan las animaciones de graficos).

Quote from: SplinterGU on April 22, 2008, 12:27:16 PM
- Se quita de las librerias base toda dependencia a SDL. (Al hacer esto, tambien se esta ganando velocidad, ya que se usaban estructuras de datos SDL y para usarlas nunca se usaban en formato SDL, y habia que hacer conversiones para luego usarlas... por ejemplo, datos rgb de las paletas)
Significa esto que para hacer un juego mas o menos con graficos y sonidos y tal habra que inicializar la SDL o algo parecido, con alguna instruccion no como la "mod_sdlevthandler (install SDL event handler)"???

Quote from: SplinterGU on April 22, 2008, 12:27:16 PM
- Se empieza a dar soporte a 32bits... (por ahora no render)
Eres un maestro y no tienes limites.
Title: Re: Avances
Post by: SplinterGU on April 23, 2008, 11:54:46 AM
Con respecto a las dependencias SDL es solo librerias de nivel mas basico, las de alto nivel por ahora si tienen dependencias SDL, y a nivel programador Bennu no hay que hacer nada...
Title: Re: Avances
Post by: Drumpi on April 23, 2008, 03:01:47 PM
Como se nota que ya no hay presiones por el tema de fpg y map.
Y el uso de estos ¿serán los de siempre o hay modificaciones en el formato?
Por cierto, pensé que no ibas a meter 32bits en los mapas, es bueno saber que se está haciendo (sobre todo porque, si se está escribiendo el código de cero, ya es trabajo que te ahorras si finalmente decides incluirlo oficialmente), pero no te agotes mucho con ello ^^

Por cierto, respecto a las animaciones... si el gráfico ya está animado de por sí, no es por ahorrar código al programador, pero creo que siempre irá más rápido si se anima internamente que por el propio código... aunque claro, dadas las máquinas de hoy, eso ni se nota ^^U
Title: Re: Avances
Post by: SplinterGU on April 23, 2008, 03:36:56 PM
Sinceramente, no me importa si hay presiones o no de los fpg o map... en todo caso es un modulo, asi que de ultima se quita y ya... pero primero me tienen que encontrar... :P
Por ahora seran los de siempre... no se si para los 32bits tendre que modificar algo del formato... por ahora no estoy metido con eso... voy paso a paso...
Tenerlo interno o no, no mejora absolutamente nada... ya que no se hacen animaciones de 1000 frames por segundo... asi que no afecta en lo mas minimo...
Title: Re: Avances
Post by: SplinterGU on April 23, 2008, 10:53:06 PM
Aca les dejo lo prometido...

No hay ningun modulo de salida a video... ni siquiera a consola... pero si compilan con -g (informacion de debug) y luego ejecutan con -d podran ver en consola el trace (mejorado con respecto a Fenix) de lo que se va ejecutando...

Tambien se corrigen muchos errores tanto de Fenix como algunos de la ultima Bennu preview...

ATENCION: Esto es experimental, no tomarlo para hacer proyectos ya que tiene un set reducido de instrucciones, todo lo que tiene que ver con graficos no se incluye... asi sea usar un mapa para poner el iconito a la ventana de ejecucion...
Se requiere la instalacion de librerias SDL, SDL_Mixer, etc... leer el readme.txt

Tambien dejo unos ejemplos...

Otra cuestion, en linux agregar en la consola donde corren el bgdi la variable de enviroment LD_LIBRARY_PATH con el valor del directorio donde se encuentran las librerias .so, por ejemplo:

export LD_LIBRARY_PATH=/opt/bennu/modules

link http://betatester.bennugd.org/20082304/
Title: Re: Avances
Post by: DCelso on April 24, 2008, 07:45:53 AM
Gracias, pero no veo el enlace con la descarga.
Puede que esté un poco ciego o que se te haya olvidado.
¿Lo puedes resaltar o poner?

Otra  cosa, si no hay dependencia de SDL ¿porqué son necesarias las librerías?
Y por último, ¿lleva soporte para usar extensiónes? Lo digo por intentar hacer una librería que imprima en la stdout y stderr y tal.

Saludos.
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 01:10:29 PM
Perdon, me olvide... aca esta...

http://betatester.bennugd.org/20082304/
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 01:16:05 PM
Aclarare un poco mas... dije...

Quote from: SplinterGU on April 17, 2008, 03:00:51 AM
Core (compilador e interprete) sin ninguna dependencia a SDL.
Modulos que no usan SDL, ya no dependen de esta.

Core sin dependencia...
Modulos que NO usan SDL, sin dependencia de la SDL... (modulos que si usan alguna funcion SDL, si tienen dependencia de esta)

Quote from: SplinterGU on April 22, 2008, 12:27:16 PM
- Se quita de las librerias base toda dependencia a SDL. (Al hacer esto, tambien se esta ganando velocidad, ya que se usaban estructuras de datos SDL y para usarlas nunca se usaban en formato SDL, y habia que hacer conversiones para luego usarlas... por ejemplo, datos rgb de las paletas)

Librerias "base", o sea "basicas", o sea, "bajo nivel"... los modulos no son "base", no son "basicos", no son "bajo nivel"...
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 01:22:00 PM
Quote from: dcelso on April 24, 2008, 07:45:53 AM
Gracias, pero no veo el enlace con la descarga.
Puede que esté un poco ciego o que se te haya olvidado.
¿Lo puedes resaltar o poner?

Otra  cosa, si no hay dependencia de SDL ¿porqué son necesarias las librerías?
Y por último, ¿lleva soporte para usar extensiónes? Lo digo por intentar hacer una librería que imprima en la stdout y stderr y tal.

Saludos.


Si, puedes hacer extensiones simplemente, salvo que ahora la libreria que era "bgdi.dll" es "bgdrtm.dll", y solo trae funciones basicas que si te bajas el "Dependency Walker" (un exe chiquito) podes ver que funciones exporta la "bgdrtm.dll" (o cualquier otra dll, modulo o ejecutable), incluso podes ver que dependencias externas (librerias dinamicas requiere).
Title: Re: Avances
Post by: TYCO on April 24, 2008, 05:43:22 PM
Quote from: SplinterGU on April 24, 2008, 01:22:00 PM
Si, puedes hacer extensiones simplemente, salvo que ahora la libreria que era "bgdi.dll" es "bgdrtm.dll", y solo trae funciones basicas...

Entonces el CORE de Bennu va a depender al menos de una libreria para su ejecucion no??? la "bgdrtm.dll", o la tienes pensado quitar esa dependencia??

Otra cosa, me ha extrañado que http://bennugd.sourceforge.net/ no se use para colgar las veriones betatester, se va a usar solo para releases??
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 05:58:54 PM
Esa no se quitara, esa sera la dependencia del core y la mas basica para todos los modulos... (no quiere decir que todos los modulos la vayan a usar, pero casi todos... si interactuan con procesos o usan strings... entonces deben usarla)

El sourceforge voy a actualizarlo cuando tenga el primer release, despues de ahi en adelante todo se hara ahi...
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 07:16:01 PM
Alguien probo la version linux? Si alguien lo hizo, seria bueno saber en que version lo probaron y que resultados dio...
Title: Re: Avances
Post by: TYCO on April 24, 2008, 08:01:26 PM
Yo he probado el ejemplo arrays.prg y se queda "colgado" el otro perfecto 4 calculadoras a la vez y 4 bloc de notas uno detras de otro.

hago "bgdc.exe -Ca arrays.prg" y todo bien con el resumen de siempre.
hago "bgdi.exe arrays.dcb" y se queda sin hacer nada como esperando algo y no funciona la tecla ESC, lo cierro con Crontrol+C, que esta pasando?

Las librerias uso las que has dicho:
SDL_mixer v1.2.7.0
SDL v1.2.13.0
Title: Re: Avances
Post by: SplinterGU on April 24, 2008, 10:05:39 PM
No, no se queda colgado... es que no ves nada lo que hace... por eso hay que correrlo en modo debug y ver en consola que hace...
El modulo de teclado no funciona sin el modulo de video, ya que para el teclado se usa la SDL y SDL instala los handlers de teclado cuando tiene el modulo de video.
Hace lo siguiente:

bgdc -Ca -g arrays.prg
bgdi -d arrays

Veo que lo probaste en windows... gracias por las pruebas...
Title: Re: Avances
Post by: DCelso on April 25, 2008, 12:42:12 PM
No consigo compilar en Ubuntu
He verificado si tenía la version correcta de SDL
He cambiado los archivos imp de los samples para quitar el directorio modules.
He añadido al path el directorio de bennu, de camino también lo he metido en ld_libary_path por si la moscas.
He compilado y nada da error.
Siempre intenta buscar el .so en el directorio actual, pero bueno tambien he probado a poner todos los .so ahí y sigue igual.
Saludos.

ubuntu@ubuntu-desktop:~/bennugd/samples$ bgdc arrays.prg
BGDC 0.93 (Apr 26 2008 21:34:48)
Copyright � 2006-2007 SplinterGU
Copyright � 2002-2006 Fenix Team
Copyright � 1999-2002 Jos� Luis Cebri�n Pag
Fenix comes with ABSOLUTELY NO WARRANTY; see COPYING for details

Error in file arrays.imp at line 0: Library .\libsdlhandler.so not found (EOF)
ubuntu@ubuntu-desktop:~/bennugd/samples$ ls
arrays.imp    libkey.so         mod_joy.so   mod_rand.so    mod_sys.so
arrays.prg    libsdlhandler.so  mod_key.so   mod_regex.so   mod_timers.so
exec.imp      mod_cd.so         mod_math.so  mod_sort.so    mod_time.so
exec.prg      mod_dir.so        mod_mem.so   mod_sound.so
libbgdrtm.so  mod_file.so       mod_proc.so  mod_string.so
ubuntu@ubuntu-desktop:~/bennugd/samples$
Title: Re: Avances
Post by: SplinterGU on April 25, 2008, 02:10:45 PM
EDIT: es cierto... ahora lo estoy corrigiendo... gracias...

EDIT2:

Corregido, en el mismo link de la WIP3, pueden bajar el nuevo paquete, ahora los samples estan en el mismo paquete.
En el caso de linux agregue 2 scripts 1 llamado "compile" y otro llamado "run", que obviamente sirven para compilar y ejecutar... ambos setean las variables de enviroment necesarias... los modulos en linux se encuentran en la carpeta modules.
En el caso de windows se podrian poner tambien en una carpeta modules, pero hay que agregar la carpeta a la variable de enviroment PATH.

Tambien modifique la mod_sys para que no sea necesario ponerle el path del archivo, ahora lo busca en el path... tanto en linux como windows...

Tambien se probo ejecutar un dcb compilado en windows en linux, y a la inversa...
Title: Re: Avances
Post by: SplinterGU on April 28, 2008, 12:23:26 AM
- Se corrigen finalmente la precedencia de los operadores like C... (http://www.cppreference.com/operator_precedence.html)
- Se corrigen errores de compilacion en cosas como "a = 1<<2+3;"
- Se da soporte al sizeof de resolucion de size de elementos de un puntero, por ejemplo:

char ** p;

sizeof(p) = 4
sizeof(*p) = 4
sizeof(**p) = 1

PD: dcelso, no comentaste como te fueron las pruebas...
Title: Re: Avances
Post by: l1nk3rn3l on April 28, 2008, 05:40:20 AM
nuevos avances que bien
Title: Re: Avances
Post by: DCelso on April 28, 2008, 07:57:02 AM
Aún no he podido, pero ya dices que probaste que iba en linux ¿No?
En cuanto pueda lo pruebo en mi Ubuntu y edito este post.

Editado: Ya he probado bennu en Ubuntu y van bien los dos ejemplos con los siguiente comandos:
añades en el path la ruta de bennugd y luego desde el directorio donde está el prg
compile -g -Ca arrays.prg
run -d arrays.dbc

Si no pones el comando -g o pones el comando -d al "compile" cuando ejecutas "run" se queda colgado el ejemplo.
Title: Re: Avances
Post by: SplinterGU on April 29, 2008, 03:36:49 AM
Quote from: dcelso on April 28, 2008, 07:57:02 AM
Aún no he podido, pero ya dices que probaste que iba en linux ¿No?
En cuanto pueda lo pruebo en mi Ubuntu y edito este post.

Editado: Ya he probado bennu en Ubuntu y van bien los dos ejemplos con los siguiente comandos:
añades en el path la ruta de bennugd y luego desde el directorio donde está el prg
compile -g -Ca arrays.prg
run -d arrays.dbc

Si no pones el comando -g o pones el comando -d al "compile" cuando ejecutas "run" se queda colgado el ejemplo.


No necesitas añadir el path, puedes ejecutar asi:

./compile -g -Ca arrays.prg
./run -d arrays

Me parece que esto ya te lo respondi, pero bueno, puede ser algun dejavu... te respondo:

No es que se queda colgado, esta trabajando, solo que al no tener ningun I/O no ves nada... pero esta corriendo y a los pedos (rapidisimo)...

EDIT: Gracias por probarlo.
Title: Re: Avances
Post by: SplinterGU on April 29, 2008, 03:37:28 AM
Acabo de subir una nueva WIP4... corrigiendo completamente (eso creo) la precendencia de los operadores... pediria que por favor me ayuden a depurarlo...

En el paquete agregue, un programa de ejemplo llamado "precedencias.prg" con algunos test de precedencia, pero necesitaria probar todas las combinaciones posibles... o hasta donde se pueda... fui probando contra lo mismo en C... hasta obtener los mismos resultados...
Tambien inclui un directori DOC, con un html (basado en el del link que puse unos posts atras, pero corregido en base a Bennu) con la referencia de el orden de precendencia de los operadores.

Realmente en Fenix todo el tema de la precedencia de operadores estaba funcionando mal, y es por eso que a veces nos encontramos con errores ilogicos en nuestros codigos... ahora se supone que ya se acabaran... pero necesito que me ayuden a depurarlo...

Aca les dejo el link (solo compile windows, si alguien en verdad quiere ayudar y solo tiene linux, le genero una version, pero por favor no me lo pidan solo querer una version linux que ni siquieran van a probar...)

http://betatester.bennugd.org/20080429/

Desde ya, muchas gracias.

EDIT: dcelso, no olvides ver la respuesta que te puse http://forum.bennugd.org/index.php?topic=102.msg907#msg907
Title: Re: Avances
Post by: DCelso on April 29, 2008, 01:14:11 PM
Ah, es verdad, vi que respondiste a ello en este mismo "topic" a TYCO.
Creía que en mi caso podría ser otra cosa.

Voy a intentar probar las precedencias. Ya te comentaré si encuentro alguna mal. De todas formas usando paréntesis para obligar un orden irá bien, digo yo :D.

Por cierto he intentado compilar un dll con una función que hace un simple fprinft(stdout,"%s", cadena) y resulta que no consigo que me lo reconozca como un dll válido ni para fenix ni para bennugd.
Sigo los pasos de los tutoriales de hacer dlls para fenix pero nada, creo que algo configuro mal en el IDE codeblocks.
A ver si alguien sabe que pasos hay que seguir en este IDE. O, simplemente, SplinterGU ¿que comandos pongo para compilar y enlazar el .c usando GCC?
Gracias de antemano.
Title: Re: Avances
Post by: SplinterGU on April 29, 2008, 03:59:14 PM
Busca en este foro dllkit... o algo asi... no hay muchos temas en el foro, asi que no te va a costar mucho navegar y encontrar el tema...
Title: Re: Avances
Post by: TYCO on April 29, 2008, 04:47:47 PM
Si he entendido bien, hay que probar los distintos OPERADORES, y comprobar que cada uno de ellos se va ejecutando segun la tabla de precedencia no?? aunque estos OPERADORES este casi al final de la instruccion, es asi???
Title: Re: Avances
Post by: SplinterGU on April 29, 2008, 07:25:55 PM
no entendi

"aunque estos OPERADORES este casi al final de la instruccion, es asi???"

Pero si, hay que probar...
Title: Re: Avances
Post by: TYCO on April 29, 2008, 09:35:15 PM
Queria decir que al haber OPERADADORES que tienen mas PRECEDENCIA que otros en un IF (15+3*5 == 30), el "*" esta casi al final de la instruccion, aun asi se ejecutaria antes que el "+", cierto?

Y a todo esto el resultado de:
15+3*5 deberia ser 30 y no 90. No es un buen ejemplo pero es sencillo de entender.
Title: Re: Avances
Post by: SplinterGU on April 30, 2008, 12:53:22 AM
No, ahi el + no es un operador de signo, sino un operador de adicion... o sea, que de nivel 4, y la multiplicacion de nivel 3... o sea, que la multiplicacion se ejecuta primero...
Title: Re: Avances
Post by: SplinterGU on April 30, 2008, 12:55:27 AM
A mi me da 30, tanto en el viejo como en el nuevo Bennu.
Title: Re: Avances
Post by: DCelso on April 30, 2008, 04:56:01 PM
Sasto, aplicando las matemáticas escritas de toda la vida también da ese resultado :D.

Creo que quiere decir que ti te referias tu a que había probar ese tipo de preferencias.
Asi que la respuesta debería ser sí, hay que hacer operaciones más complejas y ver si se aplica correctamente el orden viendo como lo hacer C o simplemente viendo tu documento adjunto.

Title: Re: Avances
Post by: SplinterGU on April 30, 2008, 05:03:29 PM
Si, probarlo, yo ya encontre errores del sizeof([puntero].elemento) o &((cast *)0).elemento o sizeof(((cast *)0).elemento), estoy corrigiendo esas cosas... y probando tambien varias.
Title: Re: Avances
Post by: l1nk3rn3l on May 01, 2008, 08:15:14 PM
que paso con la mod_draw y faltan otras?

es que intento compilar el test que viene con el fenix ,

note que no tiene dependencias a otras dlls solo requiere la runtime estilo NET o VB

esta genial ,




Title: Re: Avances
Post by: SplinterGU on May 01, 2008, 08:56:53 PM
Quote from: l1nk3rn3l on May 01, 2008, 08:15:14 PM
que paso con la mod_draw y faltan otras?

es que intento compilar el test que viene con el fenix ,

note que no tiene dependencias a otras dlls solo requiere la runtime estilo NET o VB

esta genial ,


http://forum.bennugd.org/index.php?topic=102.msg867#msg867
Title: Re: Avances
Post by: SplinterGU on May 08, 2008, 12:46:19 PM
Correcciones importantisimas en el core, bugs transmitidos desde Fenix, se detallan a continuacion:

- Se corrige y se completa el soporte de casteo, direccionamiento(&) y sizeof. (al final adjunto ejemplo y resultados)
- Se corrige precedencia de operadores.
- Se corrige tamaño de arrays asignados en la declaracion.
  1) El error consistia en 2, si el tamaño era especificado pero se le incluian valores, el tamaño del array era modificado con respecto a la cantidad de valores que se ingresaban. Tambien el calculo de dichos valores era incorrecto, con lo que el tamaño para esa area de memoria era menor que el necesario.
  2) Cuando no se especificaba dimension, el tamaño era calculado erroneamente (mismo caso que el punto 1)
- Se mejora y acelera el switcheo y ejecucion de procesos. Ahora cada proceso tiene su propio stack, no hay un stack global. Ahora todo deberia ir mucho mas rapido, con muchos procesos deberia notarse la mejora.

[code language="bennu"]
global
    a;
    f;
    i;
    array[10]=10,9,8,7,6,5,4,3,2,1,0;
    char carray[10]=10,9,8,7,6,5,4,3,2,1,0;
    char * pcarray;
    char ** ppcarray;
    pointer p;
    v = 7;
    float d;

begin

    say("-----------");

    for (i=0;i<=10;i++)
        say("array["+i+"]="+array[ i ]);
    end

    say("-----------");

    p = &array[2];
    for (i=0;i<=5;i++)
        say("p["+i+"]="+p[ i ]);
    end

    say("-----------");
    p = &array[2];
    for (i=0;i<=5;i++)
        say("p["+i+"]="+ *++p);
    end

    say("-----------");
    p = &array[0];
    say("p[0]="+ *p);

    say("-----------");
    say("sizeof(carray)="+ sizeof(carray));
    say("sizeof(carray[0])="+ sizeof(carray[0]));
    say("sizeof(*pcarray)="+ sizeof(*pcarray));
    say("sizeof(pcarray[0])="+ sizeof(pcarray[0]));
    say("sizeof(ppcarray)="+ sizeof(ppcarray));
    say("sizeof(*ppcarray)="+ sizeof(*ppcarray));
    say("sizeof(**ppcarray)="+ sizeof(**ppcarray));
    say("sizeof(*p)="+ sizeof(*p));
    say("sizeof(p[0])="+ sizeof(p[0]));
    say("sizeof(p)="+ sizeof(p));
    say("sizeof(array)="+ sizeof(array));
    say("sizeof(array[0])="+ sizeof(array[0]));

    say("-----------");

    say("1 && 2 & 1 = "+(1 && 2 & 1));
    say("(1 && 2) & 1 = "+((1 && 2) & 1));
    say("1 & 2 && 1 = "+(1 & 2 && 1));
    say("1 & (2 && 1) = "+(1 & (2 && 1)));

    say("-----------");

    say("1 || 2 && 0 = "+(1 || 2 && 0));
    say("1 || (2 && 0) = "+(1 || (2 && 0)));
    say("(1 || 2) && 0 = "+((1 || 2) && 0));

    say("-----------");

    say("0 && 1 || 2 = "+(0 && 1 || 2));
    say("0 && (1 || 2) = "+(0 && (1 || 2)));
    say("(0 && 1) || 2 = "+((0 && 1) || 2));

    say("-----------");

    say("1 ^ 2 & 3 ^ 5 = "+(1 ^ 2 & 3 ^ 5));
    say("1 ^ (2 & 3) ^ 5 = "+(1 ^ (2 & 3) ^ 5));
    say("(1 ^ 2) & (3 ^ 5) = "+((1 ^ 2) & (3 ^ 5)));

    say("-----------");

    say("1 == 3 == 3 = "+(1 == 3 == 3));
    say("(1 == 3) == 3 = "+((1 == 3) == 3));
    say("1 == (3 == 3) = "+(1 == (3 == 3)));
    say("1 == 2 > 1 == 3 = "+(1 == 2 > 1 == 3));
    say("1 == (2 > 1) == 3 = "+(1 == (2 > 1) == 3));
    say("1 == 2 > 1 == 1 = "+(1 == 2 > 1 == 1));
    say("1 == (2 > 1) == 1 = "+(1 == (2 > 1) == 1));

    say("1<<2+3 = "+(1<<2+3));

    say("-----------");

    say("15.0 / 3.0 / 2.0 = "+(15.0 / 3.0 / 2.0));
    say("(15.0 / 3.0) / 2.0 = "+((15.0 / 3.0) / 2.0));
    say("15.0 / (3.0 / 2.0) = "+(15.0 / (3.0 / 2.0)));
    say("15+3*5=" + (15+3*5));

end
[/code]

Resultados


-----------
array[0]=10
array[1]=9
array[2]=8
array[3]=7
array[4]=6
array[5]=5
array[6]=4
array[7]=3
array[8]=2
array[9]=1
array[10]=0
-----------
p[0]=8
p[1]=7
p[2]=6
p[3]=5
p[4]=4
p[5]=3
-----------
p[0]=7
p[1]=6
p[2]=5
p[3]=4
p[4]=3
p[5]=2
-----------
p[0]=10
-----------
sizeof(carray)=11
sizeof(carray[0])=1
sizeof(*pcarray)=1
sizeof(pcarray[0])=1
sizeof(ppcarray)=4
sizeof(*ppcarray)=4
sizeof(**ppcarray)=1
sizeof(*p)=4
sizeof(p[0])=4
sizeof(p)=4
sizeof(array)=44
sizeof(array[0])=4
-----------
1 && 2 & 1 = 0
(1 && 2) & 1 = 1
1 & 2 && 1 = 0
1 & (2 && 1) = 1
-----------
1 || 2 && 0 = 1
1 || (2 && 0) = 1
(1 || 2) && 0 = 0
-----------
0 && 1 || 2 = 1
0 && (1 || 2) = 0
(0 && 1) || 2 = 1
-----------
1 ^ 2 & 3 ^ 5 = 6
1 ^ (2 & 3) ^ 5 = 6
(1 ^ 2) & (3 ^ 5) = 2
-----------
1 == 3 == 3 = 0
(1 == 3) == 3 = 0
1 == (3 == 3) = 1
1 == 2 > 1 == 3 = 0
1 == (2 > 1) == 3 = 0
1 == 2 > 1 == 1 = 1
1 == (2 > 1) == 1 = 1
1<<2+3 = 32
-----------
15.0 / 3.0 / 2.0 = 2.5
(15.0 / 3.0) / 2.0 = 2.5
15.0 / (3.0 / 2.0) = 10
15+3*5=30


[code language="bennu"]
program prueba;

type struct3 // 4 + 1 + 4 = 9
    char   *var0;
    char    var1;
    float   var2;
end;

type struct2 // 1 + 4 + 4 + 4 = 13
    char    status;
    float   flags;
    struct3 * s3;
    float   * f;
end;

type struct1 // 4 + 2 + 4 + 4 + 13 = 27
    string  name;
    short   score;
    struct2 * s;
    struct2 ** s1;
    struct2 s2;
end;


global
    struct1 st[6] =  "Jugador 1",  10, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 2",   5, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 3", 210, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 4",   3, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 5",  33, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 6",  12, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 7", 210, 0, 0, (0, 0.0, NULL, NULL);
    struct1 st2[6][10];

    struct1 st3[] =  "Jugador 1",  10, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 2",   5, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 3", 210, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 4",   3, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 5",  33, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 6",  12, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 7", 210, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 8",   3, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 9",  33, 0, 0, (0, 0.0, NULL, NULL),
                     "Jugador 10", 12, 0, 0, (0, 0.0, NULL, NULL);

    int array[15] = 1,2,3,4,5,6,7,8;

    int array1[] =  1,2,3,4,5,6,7,8,9,10,11,12;
    short array2[] =  1,2,3,4,5,6,7,8,9,10,11,12,13,14;

    struct2 fill = ( 'A', 2.3, NULL, NULL);

    char ** ch;
    char carr[10][10];
    string str[10][10];
    string str1[10];
    string str2;
    string pstr;
    i;
    struct1 * pst = NULL; // Auxiliar
    struct1 ** ppst = NULL;
    struct1 *** pppst = NULL;
    int total;
    int o;
    float f;

#define OFFS(s,m)  &((s *)0.m)

process test()
public
    n;
    struct1 m;
begin
    say("offset(struct2, flags)=" + OFFS(struct2,flags));
    say("offset(struct1, s)=" + OFFS(struct1,s));

    say("-----------");
    say("sizeof(n)=" + sizeof(n));
    say("sizeof(m.score)=" + sizeof(m.score));

    quicksort(&st, sizeof(st[0]), total, OFFS(struct1,score), sizeof(pst.score), 0);
    for (i = 0; i < total; i++)
        say("st["+i+"].name="+st[ i ].name+" - score=" + st[ i ].score);
    end

    say("-----------");

    say("&[pst].score=" + &[pst].score);
    say("&pst.score=" + &pst.score);
    say("&[ppst].score=" + &[ppst].score);
    say("&[[ppst]].score=" + &[[ppst]].score);
    say("&[[pppst]].score=" + &[[pppst]].score);
    say("&(**pppst).score=" + &(**pppst).score);
    say("&(struct1 *)pst.score=" + &(struct1 *)pst.score);
    say("&(struct1 *)pst.s=" + &(struct1 *)pst.s);
    say("offset=" + &((struct1 *)0).score);
    say("sizeof(float)=" + sizeof(float));
    say("sizeof(*pst)=" + sizeof(*pst));
    say("sizeof(*pst.score)=" + sizeof((*pst).score));
    say("sizeof(pst.score)=" + sizeof(pst.score));
    say("sizeof(pst.s.status)=" + sizeof(pst.s.status));
    say("sizeof([pst])=" + sizeof([pst]));
    say("sizeof([ch])=" + sizeof([ch]));
    say("sizeof([[ch]])=" + sizeof([[ch]]));
    say("sizeof(*ch)=" + sizeof(*ch));
    say("sizeof(**ch)=" + sizeof(**ch));

    while(1)
        frame;
    end

end

local
    test    t;

begin

    say("sizeof(dword) =" + sizeof(dword) );
    say("sizeof(int)   =" + sizeof(int)   );
    say("sizeof(string)=" + sizeof(string));
    say("sizeof(float) =" + sizeof(float) );
    say("sizeof(short) =" + sizeof(short) );
    say("sizeof(word)  =" + sizeof(word)  );
    say("sizeof(char)  =" + sizeof(char)  );
    say("sizeof(byte)  =" + sizeof(byte)  );

    say("sizeof(dword *) =" + sizeof(dword *) );
    say("sizeof(int *)   =" + sizeof(int *)   );
    say("sizeof(string *)=" + sizeof(string *));
    say("sizeof(float *) =" + sizeof(float *) );
    say("sizeof(short *) =" + sizeof(short *) );
    say("sizeof(word *)  =" + sizeof(word *)  );
    say("sizeof(char *)  =" + sizeof(char *)  );
    say("sizeof(byte *)  =" + sizeof(byte *)  );

    say("sizeof(pst.score)=" + sizeof(pst.score));
    say("sizeof((pst).score)=" + sizeof((pst).score));
    say("sizeof((*pst).score)=" + sizeof((*pst).score));
    say("sizeof([*ppst].score)=" + sizeof([*ppst].score));
//    say("sizeof([**ppst].score)=" + sizeof([**ppst].score)); // error - pointer required
//    say("sizeof([*ppst.score])=" + sizeof([*ppst.score])); // error - pointer required

    say("sizeof((*pst.s).s3)=" + sizeof((*pst.s).s3));
    say("sizeof(*(*pst.s).s3)=" + sizeof(*(*pst.s).s3));

    say("sizeof(pst.s)=" + sizeof(pst.s));
    say("sizeof([pst].s)=" + sizeof([pst].s));
    say("sizeof([[pst].s])=" + sizeof([[pst].s]));
    say("sizeof([ppst].s)=" + sizeof([ppst].s));
    say("sizeof([[[ppst]].s])=" + sizeof([[[ppst]].s]));
    say("sizeof([[ppst]].)=" + sizeof([[ppst]].));
    say("sizeof(pst.s)=" + sizeof([pst].s));
    say("sizeof([pst].)=" + sizeof([pst].));
    say("sizeof([[*ppst].s])=" + sizeof([[*ppst].s]));
    say("sizeof([*ppst.s])=" + sizeof([[ppst]].));

    say ("sizeof([pst].s)="+ sizeof([pst].s));
    say ("sizeof(*[pst].s)="+ sizeof(*[pst].s));
    say ("sizeof([[pst].s])="+ sizeof([[pst].s]));
    say ("sizeof([pst].)="+ sizeof([pst].));

    say("sizeof(pst[0])=" + sizeof(pst[0]));
    say("sizeof(pst[0].score)=" + sizeof(pst[0].score));

    say("sizeof(ppst)=" + sizeof(ppst));
    say("sizeof(ppst[0])=" + sizeof(ppst[0]));
    say("sizeof(*ppst)=" + sizeof(*ppst));
    say("sizeof(**ppst)=" + sizeof(**ppst));
    say("sizeof(*ppst[0])=" + sizeof(*ppst[0]));
//    say("sizeof(ppst[0][0])=" + sizeof(ppst[0][0])); // error - exceded array access from pointer
//    say("sizeof(***ppst)=" + sizeof(***ppst)); // error - exceded pointer reference
//    say("sizeof(pst[0][0].score)=" + sizeof(pst[0][0].score)); // error - exceded array access from pointer
    say("sizeof(ppst[0].score)=" + sizeof(ppst[0].score));
//    say("sizeof(ppst.score)=" + sizeof(ppst.score)); // error - requiere estructura
    say("sizeof([[ppst]].score)=" + sizeof([[ppst]].score));
    say("sizeof([ppst].score)=" + sizeof([ppst].score));
    say("sizeof([ppst[0]].score)=" + sizeof([ppst[0]].score));
//    say("sizeof(ppst[0][0].score)=" + sizeof(ppst[0][0].score)); // error - exceded array access from pointer

//    say("sizeof([st[0]].score)=" + sizeof([st[0]].score)); // error - pointer required
    say("sizeof(st[0].score)=" + sizeof(st[0].score));
    say("sizeof(pst.s)=" + sizeof(pst.s));
    say("sizeof(*pst.s)=" + sizeof(*pst.s));
    say("sizeof(*pst[0].s)=" + sizeof(*pst[0].s));
    say("sizeof(pst.s[0])=" + sizeof(pst.s[0]));
    say("sizeof(*pst.s1)=" + sizeof(*pst.s1));
    say("sizeof(**pst.s1)=" + sizeof(**pst.s1));
//    say("sizeof(***pst.s1)=" + sizeof(***pst.s1)); // error - exceded pointer reference
    say("sizeof(pst.score)=" + sizeof(pst.score));
    say("sizeof(pst[0].score)=" + sizeof(pst[0].score));
    say("sizeof(pst.s.s3)=" + sizeof(pst.s.s3));
    say("sizeof(pst[0].s[0].s3)=" + sizeof(pst[0].s[0].s3));
    say("sizeof(*pst.s.s3)=" + sizeof(*pst.s.s3));
//    say("sizeof(**pst.s.s3)=" + sizeof(**pst.s.s3)); // error - exceded pointer reference
    say("sizeof(pst[0].s[0].s3[0])=" + sizeof(pst[0].s[0].s3[0]));
//    say("sizeof(*pst.score)=" + sizeof(*pst.score)); // error - no es puntero
//    say("sizeof(st[0][0].score)=" + sizeof(st[0][0].score)); // error - Excede dimensiones de array
//    say("sizeof(st2[0].score)=" + sizeof(st2[0].score)); // error - Referencia array no es correcta, falta un indice
    say("sizeof(st2[0][0].score)=" + sizeof(st2[0][0].score));
//    say("sizeof(st2[0][0][0].score)=" + sizeof(st2[0][0][0].score)); // error - Excede dimensiones de array

    say("sizeof(struct1)=" + sizeof(struct1));
    say("sizeof(struct2)=" + sizeof(struct2));
    say("sizeof(struct3)=" + sizeof(struct3));

    say("sizeof(*pst)=" + sizeof(*pst));
    say("sizeof((*pst).score)=" + sizeof((*pst).score));
    say("sizeof(*pst.s)=" + sizeof(*pst.s));
    say("sizeof(*(pst.s))=" + sizeof(*(pst.s)));

    say("sizeof(carr[0])=" + sizeof(carr[0]));
    say("sizeof(carr[0][0])=" + sizeof(carr[0][0]));
    say("sizeof(pstr[0])=" + sizeof(pstr[0]));
    say("sizeof(str2[0])=" + sizeof(str2[0]));

    say("sizeof(str[0])=" + sizeof(str[0]));
    say("sizeof(str[0][0])=" + sizeof(str[0][0]));
    say("sizeof(str[0][0][0])=" + sizeof(str[0][0][0]));

//    say("sizeof(str[0][0][0][0])=" + sizeof(str[0][0][0][0])); // error - array dimension error

    say("sizeof(str1[0])=" + sizeof(str1[0]));
    say("sizeof(str1[0][0])=" + sizeof(str1[0][0]));

    say("sizeof(st)="+sizeof(st));
    say("sizeof(st[0])="+sizeof(st[0]));

    say("sizeof(st3)="+sizeof(st3));
    say("sizeof(st3[0])="+sizeof(st3[0]));

    say("sizeof(array)="+sizeof(array));
    say("sizeof(array1)="+sizeof(array1));
    say("sizeof(array2)="+sizeof(array2));

    say("sizeof(t.m.score)=" + sizeof(t.m.score));
    say("sizeof(t.m)=" + sizeof(t.m));
    say("sizeof(t)=" + sizeof(t));

    pst = alloc(sizeof(struct1));
    [pst].s = alloc(sizeof(struct2));
    memset([pst].s, 126, sizeof([[pst].s]));

    ppst = &pst;
    pppst = &ppst;

    total = sizeof(st)/sizeof(st[0]);

    t = test();

    say("&t.m.score=" + &t.m.score);
    say("&t.m=" + &t.m);
    say("&t=" + &t);

    say("sizeof(st)="+sizeof(st)+" sizeof(st[0])="+sizeof(st[0]) +" total="+total);

    say("[pst].s="+ [pst].s + " [pst].s.status=" + [pst].s.status);
    say("[pst].s="+ [pst].s + " [[pst].s].status=" + [[pst].s].status);

    [[pst].s] = fill;

    say("&fill="+ &fill);

    say("[pst].s="+ [pst].s + " [pst].s.status=" + [pst].s.status);
    say("[pst].s="+ [pst].s + " [[pst].s].status=" + [[pst].s].status);

    say ("memset("+[pst].s+", 35, "+sizeof([pst.s])+")");
    memset([pst].s, 35, sizeof([pst.s]));

    say("[pst].s="+ [pst].s + " [pst].s.status=" + [pst].s.status);
    say("[pst].s="+ [pst].s + " [[pst].s].status=" + [[pst].s].status);

    [[pst].s] = fill;

    say("[pst].s="+ [pst].s + " [pst].s.status=" + [pst].s.status);
    say("[pst].s="+ [pst].s + " [[pst].s].status=" + [[pst].s].status);

    let_me_alone();

end
[/code]


sizeof(dword) =4
sizeof(int)   =4
sizeof(string)=4
sizeof(float) =4
sizeof(short) =2
sizeof(word)  =2
sizeof(char)  =1
sizeof(byte)  =1
sizeof(dword *) =4
sizeof(int *)   =4
sizeof(string *)=4
sizeof(float *) =4
sizeof(short *) =4
sizeof(word *)  =4
sizeof(char *)  =4
sizeof(byte *)  =4
sizeof(pst.score)=2
sizeof((pst).score)=2
sizeof((*pst).score)=2
sizeof([*ppst].score)=2
sizeof((*pst.s).s3)=4
sizeof(*(*pst.s).s3)=9
sizeof(pst.s)=4
sizeof([pst].s)=4
sizeof([[pst].s])=13
sizeof([ppst].s)=4
sizeof([[[ppst]].s])=13
sizeof([[ppst]].[s])=13
sizeof(pst.s)=4
sizeof([pst].[s])=13
sizeof([[*ppst].s])=13
sizeof([*ppst.s])=13
sizeof([pst].s)=4
sizeof(*[pst].s)=13
sizeof([[pst].s])=13
sizeof([pst].[s])=13
sizeof(pst[0])=27
sizeof(pst[0].score)=2
sizeof(ppst)=4
sizeof(ppst[0])=4
sizeof(*ppst)=4
sizeof(**ppst)=27
sizeof(*ppst[0])=4
sizeof(ppst[0].score)=2
sizeof([[ppst]].score)=2
sizeof([ppst].score)=2
sizeof([ppst[0]].score)=2
sizeof(st[0].score)=2
sizeof(pst.s)=4
sizeof(*pst.s)=13
sizeof(*pst[0].s)=13
sizeof(pst.s[0])=13
sizeof(*pst.s1)=4
sizeof(**pst.s1)=13
sizeof(pst.score)=2
sizeof(pst[0].score)=2
sizeof(pst.s.s3)=4
sizeof(pst[0].s[0].s3)=4
sizeof(*pst.s.s3)=9
sizeof(pst[0].s[0].s3[0])=9
sizeof(st2[0][0].score)=2
sizeof(struct1)=27
sizeof(struct2)=13
sizeof(struct3)=9
sizeof(*pst)=27
sizeof((*pst).score)=2
sizeof(*pst.s)=13
sizeof(*(pst.s))=13
sizeof(carr[0])=11
sizeof(carr[0][0])=1
sizeof(pstr[0])=1
sizeof(str2[0])=1
sizeof(str[0])=44
sizeof(str[0][0])=4
sizeof(str[0][0][0])=1
sizeof(str1[0])=4
sizeof(str1[0][0])=1
sizeof(st)=189
sizeof(st[0])=27
sizeof(st3)=270
sizeof(st3[0])=27
sizeof(array)=64
sizeof(array1)=48
sizeof(array2)=28
sizeof(t.m.score)=2
sizeof(t.m)=27
sizeof(t)=4
offset(struct2, flags)=00000001
offset(struct1, s)=00000006
-----------
sizeof(n)=4
sizeof(m.score)=2
st[0].name=Jugador 4 - score=3
st[1].name=Jugador 2 - score=5
st[2].name=Jugador 1 - score=10
st[3].name=Jugador 6 - score=12
st[4].name=Jugador 5 - score=33
st[5].name=Jugador 7 - score=210
st[6].name=Jugador 3 - score=210
-----------
&[pst].score=00592A54
&pst.score=00592A54
&[ppst].score=00592A54
&[[ppst]].score=00592A54
&[[pppst]].score=00592A54
&(**pppst).score=00592A54
&(struct1 *)pst.score=00592A54
&(struct1 *)pst.s=00592A56
offset=00000004
sizeof(float)=4
sizeof(*pst)=27
sizeof(*pst.score)=2
sizeof(pst.score)=2
sizeof(pst.s.status)=1
sizeof([pst])=27
sizeof([ch])=4
sizeof([[ch]])=1
sizeof(*ch)=4
sizeof(**ch)=1
&t.m.score=00592B00
&t.m=00592AFC
&t=005917CC
sizeof(st)=189 sizeof(st[0])=27 total=7
[pst].s=00592A38 [pst].s.status=~
[pst].s=00592A38 [[pst].s].status=~
&fill=003FED46
[pst].s=00592A38 [pst].s.status=A
[pst].s=00592A38 [[pst].s].status=A
memset(00592A38, 35, 13)
[pst].s=00592A38 [pst].s.status=#
[pst].s=00592A38 [[pst].s].status=#
[pst].s=00592A38 [pst].s.status=A
[pst].s=00592A38 [[pst].s].status=A
Title: Re: Avances
Post by: l1nk3rn3l on May 09, 2008, 01:05:30 AM
Es que pienso adicionar al flamebird la opcion de incluir todo en el dcb
osease mochila(exe) y por fuera las dlls lo normal..

cual es la opcion para decirle a bennu que incluya todos los recursos
referenciados en el codigo fuente...

gracias
Title: Re: Avances
Post by: SplinterGU on May 09, 2008, 04:33:55 AM
http://forum.bennugd.org/index.php?topic=53.0
Title: Re: Avances
Post by: TYCO on May 09, 2008, 02:27:34 PM
Por el amor de dos!! (o de dios XD) a ver si le damos a buscar que encima hace dos dias yo postee en ello para ver si la opcion "-c" se iba a INVERTIR (que seria lo mas logico ya que en MS-DOS no funciona Bennu)
o si se iba a suprimir (que tambien seria lo mas logico). SlinterGU que opinas??

http://forum.bennugd.org/index.php?topic=53.msg937#msg937
Title: Re: Avances
Post by: SplinterGU on May 09, 2008, 03:05:18 PM
Lo lei, pero no respondi porque esperaba que otro lo haga, esto no tiene nada que ver con MS-DOS, es la codificacion de caracteres MS-DOS que todavia muchos la usamos.
Title: Re: Avances
Post by: TYCO on May 09, 2008, 04:04:52 PM
Ok, nunca dejaremos ms-dos enterrado jeje, entonces la respuesta seria.. que se mantiene la opcion "-c", que no se va a quitar, y que tampoco se va invertir, pues a usar "-c" entonces.

Que conste que solo lo pregunte porque no hace mucho alguien posteo que en ms-dos no funcionaba Fenix/Bennu y por eso me extrañaba que aun en Bennu se mantuviera esa opcion si nunca se podria ejecutar en ms-dos.

Una mala interpretacion de las palabras por mi parte, por mi esta aclarado el porque de esa opcion. Gracias.
Title: Re: Avances
Post by: SplinterGU on May 09, 2008, 04:57:41 PM
Luego analizare bien el tema y te dire si vale la pena mantenerlo asi.
Title: Re: Avances
Post by: SplinterGU on May 09, 2008, 09:46:32 PM
- Se permite declaracion de variables, constantes, en diferentes modulos. Esto permite poder definir una variable necesaria para mas de 1 modulo en cada uno de ellos, para evitar el tener que depender de un modulo especifico solo para declarar las variables. Por ejemplo, tengo 2 modulos que necesitan tener una variable "VAR1", pero ambos modulos no dependen entre si, y si la variable existe para 1 necesito mantener dicho valor para el otro modulo, entonces declaro dicha variable en los 2 modulos y solo se toma la primera, el 2do modulo solo usa la ya declarada. El compilador advierte con un warning esta situacion, si los tipos no coinciden obviamente tendremos problemas, pero se supone que uno sabe lo que hace al construir un modulo.
En el caso de las constantes, si el valor es diferente aborta la compilacion, en caso contrario se ignora.
- Se agregan constantes __DATE__, __TIME__, __FILE__ y __LINE__.
__DATE__ = fecha de compilacion del .prg
__TIME__ = hora de compilacion del .prg
__FILE__ = archivo en el cual esta la linea que se esta ejecutando
__LINE__ = numero de linea que se esta ejecutando

ejemplo:

prueba2.prg

[code language="bennu"]
include "debug.inc"

begin
    say("Build: "+__DATE__+" "+__TIME__);

    DEBUG("msg1");
    say(__FILE__ + ":" + __LINE__ + ":" + " msg2");
    say(__FILE__ + ":" + __LINE__ + ":" + " msg3");

    hello();
    hello2();
end[/code]

debug.inc
[code language="bennu"]

#define DEBUG(msg) say(__FILE__ + ":" + __LINE__ + ": " + msg)

include "prueba2.pr2"


process hello()
begin
    DEBUG("hello");
end[/code]

prueba2.pr2
[code language="bennu"]process hello2()
begin
    DEBUG("hello2");
end[/code]

output:
Build: 2008/05/09 18:46:21
prueba2.prg:6: msg1
prueba2.prg:7: msg2
prueba2.prg:8: msg3
debug.inc:8: hello
prueba2.pr2:3: hello2
Title: Re: Avances
Post by: SplinterGU on May 12, 2008, 02:40:46 AM
- Se corrigio y reescribio mucho del tokenizador del compilador
- Se dio soporte a #include(adicionalmente de include sin #), correcto tratamiendo de # ..., comentarios, continuacion de linea, numeracion de lineas y archivos, y otras tantas cosas mas... con esto tambien se corrigieron muchos bugs ocacionados por el mal parseo de los token...
Title: Re: Avances
Post by: DCelso on May 16, 2008, 06:50:02 AM
Hola, con el bennu wip actual que hay subido no me funciona ni el say ni el Debug. Supongo que aún no has subido otra versión nueva con los avances que comentas en estos 3 últimos post. ¿no?

Por cierto, ¿Como va la parte de separación de dependencias SDL del núcleo? y ¿ya te pusiste con los modulos de tratamiento de teclado y gráficos?

Por otro lado me preguntaba si la independecia de SDL fuera total, sería factible reimplementar eso módulos SDL en Allegro (u OpenGL o Directx a pelo que quizás ganen en velocidad) para hacer lo mismo. ¿Verdad?
Saludos.
Title: Re: Avances
Post by: SplinterGU on May 16, 2008, 07:04:33 AM
Bien, no se que version estas probando, si linux o windows, cual de todas las wip? ya que el say funciona perfectamente.
No, no subo version por cada avance, solo informo como va.
Teclado ya esta... hace tiempo... video lo deje por un momento de lado, para meterme un rato en el core... cambios que explique estos dias, y voy a terminar de corregir el byteorder de los dcb... y creo que con eso (tengo que revisar que no me falte nada) podria liberar la primer version del core...
El core como ya dije no tiene ninguna dependencia SDL ni tendra nunca Allegro ni nada parecido, ya que el core no entiende de graficos, sonidos, ni ninguna cosa rara... esos son los modulos... y como ya lo explique (hay que leer los posts :D) se va a dividir en 2 partes (los que ameriten), una capa independiente (basica) y otra capa dependiente de lo que sea, oficialmente solo hare SDL, si algun otro quiere hacer otra, podra hacerlo tranquilamente.

PD: Tambien me entretuve estos 2 ultimos dias (y por ende no me dedique al codigo) haciendo un driver para xp64 de mi tableta grafica serial, ya que no hay... al final no hice un driver, sino un programa que inyecta en windows eventos de mouse... y con eso ya tengo mi tabletita funcionando en cualquier windows sin necesidad de drivers... :P
Ahhh, y 2 dias antes, con los nuevos iconos... asi me distraigo un poco y no me saturo...
Title: Re: Avances
Post by: kim-elet-o on May 16, 2008, 11:12:34 AM
como dice en los paises anglosajones: "take it easy man!".
Tu a tu ritmo, por que como decimos en aqui en españa: "lo bueno se hace esperar".

Saludos a todos.

Title: Re: Avances
Post by: TYCO on May 16, 2008, 06:18:21 PM
Que bueno que esta! de unta pan y moja XD

PD: Perdon el offtopic (tampoco hago muchos)
Title: Re: Avances
Post by: SplinterGU on May 20, 2008, 05:03:01 PM
He probado el nuevo core (el que no tiene nada de rutinas graficas, ni formatos graficos) con una version recompilada de la m8ee (de coldev), salvo que tuve que agregar una funcion de inicializacion del video SDL para que active el teclado y comentar las lineas de codigo dependiente de las rutinas graficas de Bennu/Fenix (set_mode, set_fps, write, etc), la dll se integro perfectamente, incluso antes de agregar esta funcion de inicializacion, salvo que no tenia teclado. No pude comprobar el rendimiento en fps, ya que no existen funciones de texto.
En resumen, se comprobo que ya es factible integrar un render externo al core de bennu de forma satisfactoria.
Title: Re: Avances
Post by: Drumpi on May 21, 2008, 03:12:16 PM
Solo puedo decir una cosa: ¡GUAAUUUU!  :o

Al final Bennu va a tener 3d antes que 2d, jajajaja.
Title: Re: Avances
Post by: SplinterGU on May 21, 2008, 03:33:12 PM
- Se agrega parametro de linea de comando -o, que permite definir el nombre del archivo de salida. (esto tambien es valido para el sistema de stub -generacion de ejecutable-)
- Se permiten como extensiones dcb validas: .dcb, .dat, .bin. (se podrian agregar otros)
- Se quita en el sistema de stub, el limite de que solo se permiten incluir archivos del directorio de trabajo. (Ahora se almacena el path completo serializado)
- Se optimiza comienza a serializar la grabacion/lectura de los archivos dcb y dejar de ser archivos que graban estructuras de datos fijas, con lo cual se graban datos basura.
- Se normalizan tamaños maximos en nombres de archivos y pathnames completos.
- Se agregan chequeos de previa inclusion de modulos.
- Optimizaciones y correcciones varias al manejo de strings. (fix en funcion format)
- Se incrementan limites en la cantidad de includes y en la cantidad de parametros tanto de macros como de funciones. (estos limites seran eliminados)
Title: Re: Avances
Post by: SplinterGU on May 21, 2008, 10:18:50 PM
- Corregido bug al usar defines que usan otros defines
Title: Re: Avances
Post by: SplinterGU on May 24, 2008, 08:36:39 AM
- Concepto de procesos huerfanos. Ahora es posible saber exactamente cuando un padre muere, ya que los abuelos no heredan mas a los nietos tras la muerte del padre. (Esto consumia muchisima cpu)
- Los modulos ahora soportan dependencia a otros modulos (esto es cargar automaticamente otras dlls, requeridas por un modulo)
- Se mejoran la logica de las rutinas de control de instancias y se logra con esto un incremento de velocidad muy muy importante.
Title: Re: Avances
Post by: kim-elet-o on May 24, 2008, 11:23:13 AM
Bien, bien, bien, esto pinta muy bien.

Title: Re: Avances
Post by: SplinterGU on May 24, 2008, 01:58:28 PM
Ummm... ahora recuerdo uno de los motivos importantes por los que quite eso de los procesos huerfanos... en principio me acordaba del tema de no poder ver la lista total de procesos con el debugger, ahora me acuerdo que tampoco habia forma de mandar signals en tree a los procesos huerfanos...
Title: Re: Avances
Post by: kim-elet-o on May 24, 2008, 08:14:20 PM
Ahora recaera en nosotros la responsabilidad de tener controlados los procesos huerfanos, no?

Title: Re: Avances
Post by: SplinterGU on May 24, 2008, 08:30:52 PM
Estoy trabajando en eso.
Por ejemplo, ahora la signal, puede recibir como parametro 0, y de esta forma afecta a todos los ids de todos los procesos, huerfanos o no, menos el nuestro. De esta forma, puedo por ejemplo, mandar a freezar todos los procesos. Tambien existe el get_id(type ...) con lo que trae a los procesos de un tipo determinado, por ejemplo, enemigos.
Estoy pensando quizas en agregar un parametro de runtime, o ciertas variables, que definan el comportamiento que puede tomar el sistema, solo que en el caso de heredar procesos huerfanos, la performance decae mucho.
Title: Re: Avances
Post by: kim-elet-o on May 24, 2008, 10:33:09 PM
Lo ultimo de poder definir el comportamiento del sistema, lo encuentro muy interesante, aunque supongo que es el camino mas dificil, pero creo es el mas idoneo, lo facil (y supongo que chapuzero), seria definir un estado mas (por ejemplo: Orphan) para los procesos.

Title: Re: Avances
Post by: SplinterGU on May 24, 2008, 10:48:31 PM
Pero ser huerfano no significa que un proceso este muerto, congelado, dormido, etc... solo significa que no tiene padre... asi que eso no puede ir como un estado.
Title: Re: Avances
Post by: kim-elet-o on May 25, 2008, 08:20:32 AM
Si tienes toda la razon, es que ayer te escribi a las 0:30, y tenia mucho sueño, por cierto haciendo un poco Offtopic, no estoy muy seguro, pero me parece que no hay una funcion que sea inversa a SIGNAL, una funcion a la cual introduzcas el Id de un proceso y esta te devuelva el estado de el, vuelvo a repetir que probablemente este yo equivocado, ya que hace tiempo que no programo, pero si no fuera asi, seria interesante incluir una funcion de este tipo.

Title: Re: Avances
Post by: SplinterGU on May 25, 2008, 04:12:04 PM
Es una variable... reserved.status
Title: Re: Avances
Post by: kim-elet-o on May 25, 2008, 05:20:08 PM
Bien, bien, bien, me gustan que los planes salgan bien. :D :D :D 

Title: Re: Avances
Post by: SplinterGU on May 25, 2008, 09:52:18 PM
- Se mejora rutinas de strings internas, se replantea la logica de creacion/borrado de strings con lo que se logra un incremento en el rendimiento. Se reduce tambien el consumo de memoria.
- Se mejora la performance en rutinas internas file (fgets)
- Se mejora el manejo de modulos (cambios internos)
- Varias mejoras internas en strings.
Title: Re: Avances
Post by: l1nk3rn3l on May 26, 2008, 03:27:37 PM
genial que se pueda cambiar el rendimiento
desde codigo

esperare la beta
Title: Re: Avances
Post by: SplinterGU on May 27, 2008, 10:59:35 AM
Ummm... bueno, cambiar desde el codigo, no... cambiar el rendimiento del codigo, si...

Nuevos avances...

- Se sigue mejorando el rendimiento del manejador de procesos y acceso a los mismas desde otros procesos.
- Se mejora agregan nuevos tipos de hooks.
- Se agrega la posibilidad ignorar señales y tambien la posibilidad de forzar envio de estas (señal ignorada o no).
- Funciones para obtener el estado actual de un proceso
Title: Re: Avances
Post by: Drumpi on May 28, 2008, 02:42:27 PM
Si se aceptan sugerencias, te sugiero que mires en el foro de Fenix el hilo de Gemix, por si te ineteresa algo de lo dicho sobre "priority_signals".
Lo escribiría aqui, pero ando justo de tiempo, y ya me he calentado las neuronas escribiendo cierto pseudo-código-chapucero-horrible :D:D:D
Title: Re: Avances
Post by: SplinterGU on May 28, 2008, 03:41:29 PM
Ya vi ese hilo, no me parece logico... mi idea de Bennu es hacerlo un lenguaje profesional, preferente "like C", que al tener una logica similar a un sistema operativo con seudo-procesos, se comporte casi como tal... por otro lado, no tiene sentido teniendo estas funciones, se puede implementar facilmente desde codigo con la nueva funcion y nuevo comportamiento adicional de las existentes...
Title: Re: Avances
Post by: DCelso on May 29, 2008, 07:23:31 AM
SplinterGU estas muy activo últimamente :D.
¿Como va el tema de la pantalla y el teclado?
¿Se puede ya poner una imagen y moverla con las teclas dentro de un fondo?:).
Por cierto he hecho unas muchas pruebas de prioridades de operadores y no le he visto comportamiento errático a ninguna.
Por otro lado, tienes pensado implementar algo como fscanf(stdout,"%s",cadena), para poder optener datos del usuario, sería interesante.
Title: Re: Avances
Post by: SplinterGU on May 29, 2008, 07:45:03 AM
Si, claro, existe la SAY...
Title: Re: Avances
Post by: DCelso on May 29, 2008, 12:42:27 PM
Jur, me había sorprendido la respuesta porque no me la esperaba,no me he explicado bien, bueno confundí fprintf con fscanf, y me he asustado al creer que con SAY se le podía pedir a un usuario una cadena.
He rehecho la pregunta en el reply anterior.
Saludos.
Title: Re: Avances
Post by: SplinterGU on May 29, 2008, 02:13:36 PM
No, scanf para input de teclado es una funcion blockeante, no es logica para un lenguaje para programacion de videojuegos.
Title: Re: Avances
Post by: DCelso on May 29, 2008, 03:46:10 PM
:D. Todo juego que se digne debe tener un hiscore, ya me dirás si sería util para poder registrar las iniciales. Ahora tengo implementado teniendo que usar variables globales, obteniendo el codigo asccii, restando, sumando cadenas, etc y control de bloqueo manual :D.
Pero bueno, yo lo decia por ayudar a ello. Si es chungo de meter en el nucleo y eso pues nada a la manera dificil dificilisima siempre se podrá. No hay nada imposible sino solo casi imposible   ::)
Title: Re: Avances
Post by: SplinterGU on May 29, 2008, 03:53:49 PM
Pero no se hace un scanf, es demasiado simple hacer un input por codigo...
Title: Re: Avances
Post by: SplinterGU on May 29, 2008, 03:54:33 PM
No es que sea imposible, no es logico...
Title: Re: Avances
Post by: Drumpi on June 02, 2008, 10:35:57 AM
Lo que quiere decir es que un fscanf paraliza todo el código hasta que el usuario introduce la cadena de texto, y como lenguaje concurrente eso no se DEBE hacer. Y aunque se implementase de forma no bloqueante, cada vez que pulsas una tecla puedes provocar que otros procesos respondan (crear un proceso disparo, mover al personaje...)
Si usas la global ASCII en un bucle verás lo sencillo que es hacer un input. Creo que por el foro de Fenix ya se ha puesto unos cuantos ejemplos.
Title: Re: Avances, Diario de...
Post by: DCelso on June 03, 2008, 01:18:53 PM
Si, bueno da igual, me refería a que formara parte del núcleo alguna forma para recibir información del usuario y no tener que hacerla a manini. Como decís hay por ahí código para ello. Tema zanjado.
Por otro lado SplinterGU, que buenas nuevas tienes? ¿Ya estás liado con la parte del teclado y el video?
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 03, 2008, 01:24:24 PM
3/6:

- Se corrige comportamiento de los tipos de datos CHAR  (espero que no quede ningun bug)... ahora son realmente strings de ancho fijo (1 caracter o arrays N caracteres)...

- Se agrega labels (etiquetas) locales y nuevas instrucciones de control de flujo (al momento goto) al mejor estilo C.

[code language="c"]#include <stdio.h>
int main()
{
etiqueta: //La etiqueta
    printf("Uso del GOTO");
    goto etiqueta;
}
[/code]

[code language="bennu"]
import "mod_say"
begin
etiqueta: //La etiqueta
    say("Uso del GOTO");
    goto etiqueta;
end
[/code]

- OnExit pasa a comportarse como una etiqueta (especial)

- Ya casi tengo el formato definitivo del dcb (version Bennu 1.0), que con el cambio de etiquetas ahora se podran poner cosas al estilo "ON ERROR" sin necesidad de tocar el dcb.

- El dcb ya casi es totalmente portable entre plataformas de diferentes byteorders, solo me queda recorrer las variables y darles el formato adecuado segun corresponda... (obviamente, y probarlo...)
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 03, 2008, 01:26:17 PM
Quote from: dcelso on June 03, 2008, 01:18:53 PM
Si, bueno da igual, me refería a que formara parte del núcleo alguna forma para recibir información del usuario y no tener que hacerla a manini. Como decís hay por ahí código para ello. Tema zanjado.
Por otro lado SplinterGU, que buenas nuevas tienes? ¿Ya estás liado con la parte del teclado y el video?
No aun, me urgen otras cosas para cerrar el tema del core, que es lo mas cercano a ser liberado... el teclado esta desde hace mucho tiempo, salvo que al no tener video no se puede usar, pero por ejemplo usando el modulo 3d de coldev como driver de video, el modulo de teclado funciona a la perfeccion...
Title: Re: Avances, Diario de...
Post by: DCelso on June 03, 2008, 03:35:52 PM
okis, entonces a esperar toca. ¿Tienes pensada alguna estimación de tiempo para liberarla?
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 03, 2008, 09:14:48 PM
Quote from: SplinterGU on June 03, 2008, 01:24:24 PM
3/6:
- Se corrige comportamiento de los tipos de datos CHAR  (espero que no quede ningun bug)... ahora son realmente strings de ancho fijo (1 caracter o arrays N caracteres)...

Umm... creo que no lo escribi bien...

CHAR son strings de 1 byte (son el analogico a BYTE, pero que manejan strings), pero pueden ser usados en expresiones numericas.

EDIT: Hoy no estoy bien... donde decia "SIGNED BYTE" lo cambie por "BYTE"
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 03, 2008, 09:15:21 PM
Quote from: dcelso on June 03, 2008, 03:35:52 PM
okis, entonces a esperar toca. ¿Tienes pensada alguna estimación de tiempo para liberarla?

Sin presion por favor... :)
Title: Re: Avances, Diario de...
Post by: kim-elet-o on June 03, 2008, 10:34:15 PM
Dioooxxx, recuperamos el GOTO, jejejejejeje, no lo utilizaba desde aprendi a programar en pascal, y deje el quick basic, bienvenido abuelo GOTO, vuelves a entrar en accion.


P.D: bueno de hecho si lo uso, lo uso en un lenguaje de psudocodigo que estoy creando para manejar la logica de los enemigos en un juego de machacamarcianos, jejejeje, pero no si lo llegare a acabar algun dia.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 03, 2008, 10:52:16 PM
GOTO/JMP y voy a agregar GOSUB/CALL para rutinas rapidas que cuando terminen regresen al punto donde fueron llamados... serviran como funciones, pero son sin parametros, locales, y sin retorno por valor, ya que usan el mismo espacio de variables que quien las llama, por ende son rapidisimas...
Y otras funciones mas de este estilo... que ya se informaran...
Title: Re: Avances, Diario de...
Post by: DCelso on June 04, 2008, 07:51:41 AM
Vaya, pinta bien, lo malo que le veo es que se van a difurcar muchísimo la forma de hacer las cosas :D
Title: Re: Avances, Diario de...
Post by: kim-elet-o on June 04, 2008, 08:16:45 AM
Sip pero tambien se adaptara mejor el codigo para casos mas concretos, me encanta cada vez mas este bennu. ;D ;D ;D

Title: Re: Avances, Diario de...
Post by: SplinterGU on June 04, 2008, 02:07:04 PM
La idea es que sea una opcion, el que la quiera usar que la use, el que no, no...
Para casos concretos como dice kim-elet-o, es muy util. Bueno, ya de hecho para el caso de un handler de error... aunque este enmascarado en otras instrucciones.
Title: Re: Avances, Diario de...
Post by: Drumpi on June 04, 2008, 02:49:16 PM
Veo tu pascal y subo a Basic 1.0 en mi viejo amstrad  :o.
Y ahora también gosub, fue de las pocas cosas que llegué a aprender de programación en aquel entonces (y eso que iba sin ánimos de hacerlo).
No sabía que las etiquetas se usasen en C, sólo las vi en ensamblador.
De todas formas, splinter, no te pases añadiendo cosas, que cuanto más metas más complicado será el lenguaje (aunque seguramente muchos habrá que les interesen estos cambios :))
Por cierto ¿no se habían creado ya los "procesos subrutinas"? eran procesos normales sin la seccion de variables y toda la carga de un proceso normal, que hacía precisamente eso, ser una subrutina, pero llamándola como si fuera un proceso.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 04, 2008, 02:54:21 PM
Las cosas que se agregan no son necesarias para hacer un juego/programa, pero seguro haran un juego/programa mejor.
No, no existe eso de procesos subrutinas... habia algo que era si se llamaba a una funcion o proceso que no tuviese frame, se usaba el mismo espacio de algunas cosas, pero si mal no recuerdo, no de variables, pero... estaba mal implementado, y no era tan rapido como lo que plantea una implementacion CALL del estilo que menciono.
Title: Re: Avances, Diario de...
Post by: Phreak on June 05, 2008, 09:03:39 PM
Faaa como avanza esto!!

una pregunta.. ya esta como para empezar a usarla? o falta un poco mas?
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 05, 2008, 09:12:56 PM
Falta...
Title: Re: Avances, Diario de...
Post by: Transdiv on June 06, 2008, 10:51:17 AM
Quote from: Drumpi on June 04, 2008, 02:49:16 PM
Por cierto ¿no se habían creado ya los "procesos subrutinas"? eran procesos normales sin la seccion de variables y toda la carga de un proceso normal, que hacía precisamente eso, ser una subrutina, pero llamándola como si fuera un proceso.

La ventaja creo, es que como no procesa internamente parametros ni retorno , el nuevo comando seria mas rapido.
Title: Re: Avances, Diario de...
Post by: DCelso on June 06, 2008, 12:01:01 PM
se parece a las funciones inline de C++. ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 13, 2008, 02:29:14 PM
- Se corrige grabacion y lectura de array de strings usando SAVE y LOAD, solo guardaba el primer valor del array. Se optimiza tambien la grabacion de variables (SAVE/LOAD)
- Se corrigen for, from, switch/case... ahora soportan correctamente los siguiente tipos de datos (tenian bugs o no soportaban):
  for: byte, word, dword, short, long, int, float, char (es posible hacer cosas como FOR (a = "A"; a <= "F"; a++) siendo "a" de tipo char).
  from: byte, word, dword, short, long, int, float, char (es posible hacer cosas como FROM a = "A" TO "F"; siendo "a" de tipo char). STEP ahora puede tener incrementos float.
  switch: cualquier tipo de dato, excepto TYPE, los case son tratados/convertidos al formato de la expresion provista en el switch. En los casos de char, por ejemplo, es posible especificar un case 101: y un case "e", ambos son validos, pero solo ejecutara la primera ocurrencia.
- Se agrega constante __VERSION__ = COMPILER_VERSION
Title: Re: Avances, Diario de...
Post by: kim-elet-o on June 13, 2008, 09:28:10 PM
Buen trabajo!
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 17, 2008, 02:39:33 AM
- Documento sobre Varspaces.
- Correcciones menores en el uso de variables.
- Se elimina limite en cantidad de TYPEs permitidos, antes solo se permitian 64.
Title: Re: Avances, Diario de...
Post by: DCelso on June 17, 2008, 08:25:30 AM
Deja de poner la miel en los labios que te vamos a morder,  >:( grgr.  :'(
La próxima noticia que venga con versión beta nueva, sino no pongas  :)  ;)  ;D.
Title: Re: Avances, Diario de...
Post by: Kel on June 17, 2008, 09:29:01 AM
ánimo Splinter, veo que no paras, ese es el espíritu  ;D

Y los demas no metáis bulla que con prisas todo sale mal xdd
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 29, 2008, 12:58:59 PM
Novedades

- Se agrega soporte completo call/return
- Se agrega comandos on exit y on error, con la siguiente sintaxis:
   on exit goto label; // Cambia el callback de salida
   on exit goto 0; // Deshabilita el callback de salida
   on error goto label; // Cambia el manejador de errores. Se parsea y se executa, pero no se le da tratamiento de error por ahora.
   on error goto 0; // Deshabilita el manejador de errores.   
   resume; // no es funcional ahora, pero regresa al mismo punto que origino una llamada al manejador de errores, reintentando la operacion.
   resume next;  // no es funcional ahora, pero salta la instruccion del error y continua el flujo del programa normalmente.
   resume label;  // no es funcional ahora, pero sale del manejador de errores y continua el flujo del programa a partir de label.
- Se pasa el interprete a la bgdrtm, ahora con esto es posible llamar a funciones del usuario (codigo escrito en lenguaje Bennu) desde una dll.
Title: Re: Avances, Diario de...
Post by: kim-elet-o on June 29, 2008, 10:57:50 PM
Interesantes novedades, ademas que casualidad justamente estos dias me he estado peleando con la gestiones de errores en delphi, y vas tu, y amplias el lenguaje hacia esta direccion, jejejejejeje, no me estaras leyendo la mente de forma insconciente?, saludos.


P.d: el programa en delphi es una utilidad para un juego que estoy elaborando, cuando vera luz?, uuuufffff mejor seria preguntarse si algun proyecto mio pasa de ser eso, un proyecto.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 29, 2008, 11:00:35 PM
;)
Title: Re: Avances, Diario de...
Post by: DCelso on June 30, 2008, 06:44:41 AM
Se puede probar ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 01, 2008, 03:33:04 AM
Podria subir una version para probar, pero sigue estando sin video... si queres probar decime, tengo una version windows que se puede probar...
Title: Re: Avances, Diario de...
Post by: DCelso on July 02, 2008, 06:47:56 AM
Bueno, no podemos mover nada aun por la pantalla así que la satisfacción será menor, esperemos al video si no le queda mucho :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 03, 2008, 08:40:54 PM
Haciendo pruebas de performance, he notado que la nueva version de Bennu, es 40 veces mas rapido en procesamiento que la version WIP2...
Se realizo una prueba de 1000 procesos corriendo 1000 frames (o ciclos de ejecucion), con calculos de animacion pero sin render, tardando en realizarlo en la WIP2, unos 40 segundos... mientras que en la WIP6.2 unos 700ms... maquina dualcore 1.6 intel...
El mismo programa, renderizando con una libreria experimental opengl sobre SDL (no compatible con la vieja sintaxis y motor Fenix/Bennu) da unos 400fps en Bennu... mientras que la misma logica en C llamando a la misma libreria (modulo bennu) da unos 423fps... o sea, 1000 procesos rebotando y cambiando su grafico en pantalla (animacion), un total de 1000 frames... demas esta decir que al usar opengl, en un sistema dualcore, hace uso de los 2 procesadores para el render... es una caracteristica del opengl...

PD: Olvide decir que las pruebas fueron con 1000 graficos 32x32x32... con 40 cuadros de animacion cada uno...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on July 03, 2008, 10:16:45 PM
No esta nada mal  B-0........|  :o :o
Title: Re: Avances, Diario de...
Post by: Prg on July 08, 2008, 08:00:42 PM
disculpa, ¿cuándo podremos probar el bennu wip 4 para programar? y ¿Habrá cambios en cuanto al lenguaje y la sintaxis de las funciones?, ¿se necesitará el declare todavía? y ¿en verdad utilizará 32b en gráficos? gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 08, 2008, 08:19:41 PM
De momento esta un poco parado el desarrollo, estas ultimas semanas estuve complicado...

Ya voy por una WIP6.2, que envio a ciertos usuarios que me ayudan con pruebas... para el video todavia falta un tiempo... las versiones actuales no tienen librerias graficas... es todo procesamiento y alguna libreria experimental de algunos usuarios... pero no compatible con lo que estamos acostumbrados...

Si te interesa usar la WIP6.2 (sin libs graficas) puedo pasartela o subirla, pero si no la van a usar, es mejor esperar...
Title: Re: Avances, Diario de...
Post by: Prg on July 09, 2008, 03:57:54 PM
ok, gracias, creo que mejor espero.¡Que sea una verdadera sorpresa el final!. :)  Bueno, entonces continuaré con la versión que tengo, creo que el wip 2. Gracias amigo.
Title: Re: Avances, Diario de...
Post by: DCelso on July 23, 2008, 12:13:20 PM
Ualaa, cuantos dias sin noticias ya.
Que, de vacas ya no?. :D , que suerte.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2008, 12:22:06 PM
Hola...
Aca no hay vacaciones... tuve un poco de trabajo... y bueno, ahora otros problemas que me han bajado el animo un poco...
Title: Re: Avances, Diario de...
Post by: DCelso on July 23, 2008, 12:45:23 PM
Ah, ok, pues nada, a ver si se soluciona todo bien.
Venga ánimo.
Saludos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2008, 12:53:16 PM
Los problemas son de publico conocimiento... No hay solucion, solo tiempo para que pase el bajon...
Title: Re: Avances, Diario de...
Post by: osk on July 23, 2008, 02:47:40 PM
Bueno, yo creo que lo más inteligente es partir peras y se acabó.
Que cada uno vaya por su lado y punto. Está visto que estar en un mismo sitio (Divsite) con tantos problemas absurdos no tiene ningún sentido. Que Bennu tenga su foro y su web, y que Gemix haga lo que quiera por su lado. Y que la gente, libremente, escoja dónde y con quién quiere estar. Porque Fénix -el vínculo de unión- tal como yo lo veo está un poco muerto. Y ningún problema: todos amigos pero cada uno en su casa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2008, 03:27:07 PM
Otra cosa no queda, pero sinceramente me siento mal porque defraude a todo el equipo de moderacion... porque hicieron un trabajo tremendo con el foro, sin olvidad la cantidad de veces que, yo particularmente, limpie el ftp/site de hackeos, incluso parche el sistema de foro en muchos lugares para mejorar la seguridad y agregarle caracteristicas, y muchas otras cosas mas... hace 2 años atras el foro era algo inhabitable, un caos... todo el equipo hizo posible que ahora sea un lugar donde se puede participar, y en vez de un agradecimiento o apoyo, lo unico que se obtuvo fue un quite de permisos de golpe y porrazo, sin previo aviso, sin aunque sea, una ayuda para corregir aquello que se consideraba que se estaba haciendo mal... el mensaje recibido, fue el de "les quito todo porque hicieron todo para el culo...", y la verdad que no fue asi... ninguno del equipo se merecio esto... y yo me siento responsable de haberlos defraudado, por darles algo que luego se les quito sin ver siquiera todo lo que se hizo positivamente... pero bueno, quizas haya intereses mayores de por medio (personales en algunos, economicos en otros)... y no hay nada que hacerle a esto...
Sinceramente me afecto mucho...
No quiero hacer de este post un flame... aunque ya seguro habra quien quiera hacerlo...
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on July 23, 2008, 06:34:53 PM
 ;D, adelante

Title: Re: Avances, Diario de...
Post by: kim-elet-o on July 23, 2008, 10:07:25 PM
Ni caso tu, pasando de esa gente de cuyo nombre no quiero acordarme, el foro de bennu es tu casa, y el que quiere de verdad tu trabajo, a ella viene, la verdad es que migre hace poco a bennu wip 2, y no me arrepiento para nada, por cierto haciendo un poco off-topic, he batido mi propio record ya llevo 2 meses y medio con un mismo proyecto, pero me esta costando un pelin, por que estoy paralelamente desarrollando las herramientas necesarias para la edicion de los datos que usara mi programa, bueno en fin, gracias de corazon por tu trabajo, y pienso seguir preguntando mis dudas por aqui.

Title: Re: Avances, Diario de...
Post by: Prg on July 23, 2008, 11:46:04 PM
amigo, no entiendo muy bien lo que está pasando, pero todos te apoyamos, levanta ése semblante, y alégrate, que el tiempo frente a la pc es corto y hay que saberlo utilizar, ja ja ja, alégrate amigo, y que la codicia o la oposición ajena no te afecte.  :)
Title: Re: Avances, Diario de... (retomando la senda)
Post by: SplinterGU on July 30, 2008, 01:44:57 AM
Bien, despues de un tiempo parado, he decido retomar la senda perdida... y he retomado el engine grafico, pero con un cambio de planes, he dejado de lado lo que estaba haciendo, porque era un poco ambicioso y la verdad que me urge liberar una version con fuentes lo mas rapido posible, asi que he tomado la version mas vieja (Bennu) del modulo grafico, sin grandes cambios de los nuevos (32 bits por ejemplo) y empece a trabajar en ello.
Sí he quitado todo lo referente a mapas animados, tambien fgc, fpl, y los nuevos formatos de archivos, no es que estaban mal, pero el soporte de algunos estaba incompleto y tambien algunos pensados en la filosofia de animacion, asi que como no se incluiran mapas animados, esto no tiene sentido...
Quizas se incluya soporte 32 bits en esta version, quizas no... pero si en alguna futura version...
Por ahora no hay muchos avances que anunciar al respecto, solo que volvi a las pistas...
Title: Re: Avances, Diario de...
Post by: DCelso on July 30, 2008, 07:16:55 AM
Me parece perfecto. Será una versión "fenix" con dll separados, cientos de bugs corregidos y algunas mejoras funcionales. Espero ansioso el nuevo bennu  :D.

Por cierto, sería estupendísmo que se hiciera un subversion con los fuentes y poner un IDE oficial de desarrollo (por ejemplo codeblocks,o eclipseCDT. Entre otras muchas cosas porque te abstraen de los makefiles sin necesidad de usar ni automake ni cmake y solo te preocupas de los fuentes y te ayudan a sincronizarte o subir y bajar comodamente a subversion).
Así se podría ampliar el número de programadores en activo y cada uno dedicarse a tareas distintas y siempre tener una rama de fuentes estable y otra de desarrollo. Y los no programadores podrían descargarse en cualquier momento versiones inestables de desarrollo para ver avances (o bugs) sin necesidad de esperar que se suelten unos binarios.

Saludos.
Title: Re: Avances, Diario de...
Post by: animanegra on July 30, 2008, 11:57:40 AM
"la verdad que me urge liberar una version con fuentes lo mas rapido posible"
AMEN, espero desde hace mucho tiempo con ansia. Ya sabeis que mi credo impide el uso de programas que no acompañen fuente  :P

Espero que deis cobijo en este santo foro para gente que aun no usa bennu pero que siente aprecio por la gente de esta iglesia :D

Animos y que sepais que si necesitais gente para hacer determinadas librerias o para cualquier cosa, si puedo hechar una mano la hechare con sumo gusto. ;)
Title: Re: Avances, Diario de...
Post by: osk on July 30, 2008, 02:15:18 PM
Celebro que vuelvas a la senda!!
Yo estoy de acuerdo dcelso que no sería mala idea tener un gestor de versiones público... Tampoco hace falta matarse mucho: en sourceforge ya vale, no? Y lo del entorno, me parece que tú usas Ultraedit, verdad? Bueno, tampoco creo que sea lo más importante, cada uno que haga lo que quiera...pero el hecho de tener las fuentes a mano, realmente es algo que merecería mucho la pena, y quién sabe si se une alguien más al proyecto...

*Yo creo que para que la cosa empiece a despegar se necesitaría publicar (porque yo reconozco que ando perdido) la versión "estable" de Bennu, y la de desarrollo, y ADEMÁS, empaquetar (aunque sea de forma oficiosa) toda esta pléyade de DLLs que están flotando por ahí, si puede ser también con su código fuente.
*Luego, ya puestos a pedir, una interfaz gráfica multiplataforma para los comandos de consola de manipulación de FPGs/FNTs/PAL sería la repera.
*Y un IDE de Bennu (o varios) multiplataforma también (al estilo BennuPack, pero para Linux también!!).De hecho, en la búsqueda de IDEs para Fénix que funcionen en Linux (no haaaaayy!!!?) he encontrado uno programado por Semitex llamado FPadSharp, que no lo he probado, pero que viene con las fuentes y está programado en .NET (Mono) y GTK+. Me lo tengo que mirar, pero si resulta factible, estaría muy chulo si se pudiera integrar ya dentro de algún pack, junto con el Flamebird y tal, no? Por aquello del multiplataforma y eso... 
*Tema aparte es el de la documentación, que yo ya sabéis que me puedo comprometer a escribir algún manualillo como el de Fénix, cuando esté más o menos todo esto que digo.

Venga, que vaya bien el lío.

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 30, 2008, 03:17:31 PM
Exacto, esto no es mas que Fenix con las mismas funcionalidades separadas en dlls, y obviamente, funcionalidades nuevas y diria que varios cientos de bugs corregidos, tantos que deje de anotarlos... Asi como el Gaim, paso a nombrarse Pidgin... este proyecto es "Fenix, nombre clave Bennu Game Development" (aunque algunos se esfuercen en convencer al resto de lo contrario)

Con respecto al SVN, ya tenemos el sourceforge para eso, aunque tambien se baraja la posibilidad de hacer uno tambien (adicionalmente) en este site...

No esta en planes hacer un IDE oficial, pero si esta en mis planes hacer plantillas para integrar diversos IDEs (o editores que den funcionalidad adecuada para programadores), y asi cada uno puede adaptar su IDE favorito que ya use para otras cosas a Bennu... para esto, tambien se esperan colaboracion de los usuarios... y todo esto operable a traves de algun instalador (que puede estar escrito en Bennu).

En cuanto a la documentacion, cosa muy importante, yo suministrare (o quizas algun otro si se atreve) documentacion de estilo tecnico, resumida pero detallada... y documentacion y diagramas a nivel interno... (todo esto de la documentacion seguramente no saldra con la primera release, sera en una etapa posterior, aunque algunas cosas ya se estan liberando). No voy a hacer un manual tipo curso para iniciados, asi que un osk-manual al respecto seria algo grandioso.

Con respecto a la distribucion, sera en 3 paquetes bien delimitados:
- Core (bgdc, bgdi y bgdrtm)
- Modules (todos los modulos oficiales)
- Tools (fpg, map, moddesc,...)
Title: Re: Avances, Diario de...
Post by: kim-elet-o on July 30, 2008, 03:45:09 PM
bien, bien, bien, ansioso a migrar de nuevo a la proxima wip de bennu, y ansioso de ir cazando bugs sobre la marcha (aunque a veces el bug soy precisamente yo, pero mi yo-bug lo machaco con mi yo-depurador).

 
Title: Re: Avances, Diario de...
Post by: osk on July 30, 2008, 05:00:18 PM
Genial!! :D
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on July 31, 2008, 03:53:52 PM
YA QUE estan tocando el tema, el ide hecho en fenix
porque no liberan el codigo y yo continuo su desarrollo
ya que permitia la edicion de textos grandes (campos memo)
menus, listas ,etc

no se a ver si se animan los autores y se termina en bennu
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 31, 2008, 04:03:40 PM
a que IDE hecho en fenix te referis? al "Black Pearl IDE"? si te referis a ese, Phreak lo esta haciendo, y lo paso a Bennu, al final decidio reescribir nuevamente el GUI grafico, y el editor es rapidisimo, moviendose en un archivo como de 30mb (algo exagerado) se mueve mas rapido que cualquier editor windows, incluido el Ultraedit... pero bueno, quizas deberias ponerte en contacto con el y ver si puedes colaborar con el... o lo que sea... cuando lo vea le comento muestro este post...
Title: Re: Avances, Diario de...
Post by: blostec on July 31, 2008, 08:19:40 PM

He estado un tiempo alejado de este foro por motivos personales y me alegra ver que el proyecto sigue adelante. Lamento las movidas que has tenido en divnet. Animo Splinter!! Saludos :)
Title: Re: Avances, Diario de...
Post by: Phreak on August 01, 2008, 01:14:40 AM
El IDE va encaminado, pero le falta mucho...
Si hay alguien interesado en ayudar muyy bienvenido sea...
El codigo esta muy prolijo y comentado, no creo que sea dificil de entender.
Cualquier cosa mi mail: gal_head@hotmail.com
Saludos
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2008, 12:50:47 PM
Se corrigen comparaciones entre expresiones flotantes, cuyos valores son indeterminados, este bug se arrastra desde la 0.84a

ejemplo:

[code language="bennu"]
begin

     say (0.93 == 0.93); // (un)comment this line

     if (0.93 == 0.93)

          say ("true");

     else

          say ("false");

     end

end
[/code]

Tambien se corrige todo el tema del uso de directivas de preprocesador (esta vez espero que definitivamente), donde nunca funcionarion correctamente #if*, #else, #endif, encadenados.

Temas graves.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 06, 2008, 04:10:14 AM
En prueba, los siguientes nuevos modulos:

libblit.dll
libdraw.dll
libfont.dll
libgrbase.dll
libmouse.dll
librender.dll
libtext.dll
libvideo.dll
libwm.dll

mod_draw.dll
mod_map.dll
mod_path.dll
mod_text.dll
mod_video.dll
mod_wm.dll

- Soporte Vsync (con y sin limitacion a la velocidad del refresco del monitor, normalmente 60 fps)
- Eliminados limites de resolucion de pantalla
- Soporte de mapas y fps a 32 bits.
- Correccion en el comportamiento de espera o salto de fps... antes (en Fenix y WIP2) no era correcto, y trabajaba sobre el tiempo que tardo en completarse el ultimo frame... con lo que solo se ajustaba 1 salto, y por consiguiente no se alcanzaba la velocidad deseada.
- Correccion en el cambio de modos de video y la paleta de los graficos de 8 bits cargados.
- No se corrompe mas el fondo al cambiar de modo de video, incluso entre diferentes profundidades.
- Ya no se utilizan mas 2 fondos (8 y 16 bits), hay 1 fondo unico como debe ser, con su propia profundidad de colores.
- Optimizaciones varias tanto en grafico, como en procesamiento.
- Muchos otras mejoras y agregados que ire comentando luego.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on September 06, 2008, 01:16:55 PM
recuerda realizar backup en un medio externo (web,cd,etc)

;D
Title: Re: Avances, Diario de...
Post by: TYCO on September 06, 2008, 01:53:07 PM
Esto...
- Correccion en el cambio de modos de video y la paleta de los graficos de 8 bits cargados.

Es el problema que te comente de que si ponias un grafico de 8 bits y le hacias un load_pal y seguidamente hacias un set_mode y se quedaba la pantlla en negro con bennu colgado??? Si es asi OLE!

PD: A ver si sale pronto la primera version.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 06, 2008, 05:51:15 PM
Quote from: TYCO on September 06, 2008, 01:53:07 PM
Esto...
- Correccion en el cambio de modos de video y la paleta de los graficos de 8 bits cargados.

Es el problema que te comente de que si ponias un grafico de 8 bits y le hacias un load_pal y seguidamente hacias un set_mode y se quedaba la pantlla en negro con bennu colgado??? Si es asi OLE!

PD: A ver si sale pronto la primera version.

No estoy pudiendo reproducir el error en la version anterior, no tenes a mano el ejemplo? a ver si se corrige esto en la nueva?

EDIT: Si, ya lo pude reproducir, ya no pasa eso.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 06, 2008, 09:21:35 PM
Bueno, tuve que cambiar unos de los comportamientos...

habia hecho que se mantenga el fondo aunque cambies de resolucion o profundidad, pero claro, el blit no soporta dibujar mapas de 16 sobre mapas de 8 bits (si a la inversa), entonces ese funcionamiento era confuso, porque en algunos casos iba bien ( 8 a 16 ) pero en otros no ( 16 a 8 )... entonces ahora hice que solo se mantenga el fondo mientras no se cambia alto, ancho, o profundidad, en todos los otros casos se mantiene, o sea, que se puede hacer un full_screen o window_mode o incluso poner o quitar un modo escalado y se mantiene el fondo, cosa que antes no se podia...

No se si lo comente, pero ahora el scale se puede hacer a cualquier resolucion...
Title: Re: Avances, Diario de...
Post by: Prg on September 07, 2008, 01:48:23 AM
wow, esto se ve muy bien  :), y me alegro que se corrijan lo del path_find, ya que si la función se llamaba y uno de los puntos de búsqueda estaba en una zona blanca, el juego se trababa. Y también considero que los ángulos deberían de ser float (no se si lo sea, pero el trabajar con milésimas sigue siendo impreciso en ángulos muy pequeños) para evitar los problemas de trabajar con ángulos muy pequeños.
Title: Re: Avances, Diario de...
Post by: blostec on September 07, 2008, 01:40:11 PM
Quote from: SplinterGU on September 06, 2008, 09:21:35 PM
No se si lo comente, pero ahora el scale se puede hacer a cualquier resolucion...

Una gran noticia, buen trabajo Splinter!  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 12, 2008, 11:15:08 PM
nueva version disponible...

http://betatester.bennugd.org/betas/
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 14, 2008, 10:51:53 AM
Tras una ardua noche de trabajo, voy a comentar las novedades...

Estuve con el port a linux... y me encontre con unos cuantos problemas...

1) tuve que escribir una nueva implementacion sobre la dlopen, ya que la maldita dlopen cuando uno hace una dll que usa otras dlls y pide un simbolo de la primera dll, la dlopen busca el simbolo en la dll creada y si no lo encuentra (aunque mas bien creo que retorna el primero cargado) en las subsiguientes... y no hay forma de decir, que no haga eso... y por ende muchas de las funciones declaradas por otros modulos eran vistas y ejecutadas por el principal... asi que tuve que parchar la dlopen, escribiendo un wrapper encima...

2) quizas parte del comportamiento anterior, una vez solucionado que solo importe los simbolos de la dll en curso, empece a probar y si bien ahora cargaba todo adecuadamente y el interprete hacias las cosas como debian ser, el maldito linker (o el modulo de runtime del operativo) asociaba todas las referencias a las tablas que se llamaban iguales pero eran locales (y exportables) al primero cargado desde una dll... (concretamente me refiero a las estructuras fixup, que son necesarias que cada una sea local)... yo se que diran que eso no se debe hacer, pero que va, si yo quiero trabajar en un ambito local exportable, porque el tipo tiene que asumir que yo quiero que la variable sea una sola?

Bueno, tras maldecir a linux (ya que windows se porto como un señorito frances)... me vi obligado a reeplantear y a modificar todo el sistema actual de dll, y publicacion de servicios, funciones, etc...

Si bien no es un gran cambio externamente, si tuve que escribir bastante...

bueno, ahora todos los simbolos que interactuan con el core de bennu, deben ser prefijados con el nombre del modulo + un "_". por ejemplo, supongamos que la lib libkey exportaba module_initialize, ahora debe exportar libkey_module_initialize (todo en minusculas, claro esta eso)... esto tambien obliga a que los accesos a variables ahora requieran un nuevo parametro, por ejemplo... un GLODWORD(a), ahora es GLODWORD(libkey, a)... libkey siguiendo el caso de la libkey, pero puede ser cualquier nombre de modulo y define el ambito de referencia... (fixups)

prepare macros para hacer un poco mas homogenea la cosa...

__bgdexport( module, variable/funcion)

por ejemplo

char * __bgdexport( libkey, modules_dependency )[] =
{
    "libsdlhandler",
    NULL
};

o

void __bgdexport( libkey, module_finalize )()
{
return;
}

espero sepan disculpar las molestias, pero todo esto es por el putisimo linux... maldito linux...

ahora tengo otro problema y es que la maldita sdl no me crea el surface de video... quizas el linux que tengo no es compatible con la version de sdl que tengo o vaya uno a saber... ya veremos que pasa...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 14, 2008, 11:24:21 AM
Demas esta decir que si bien el cambio fue grande y violento, esto no afecta a los dcb ya compilados con la 7.5... siguen funcionando con las nuevas dlls...
Title: Re: Avances, Diario de...
Post by: josebita on September 14, 2008, 02:02:56 PM
Vaya Splinter, siento que linux te haya dado tantos problemas :(. En fin, aunque no escriba mucho, está bien ver que bennu avanza.
Supongo además que si andas ya con el port a linux es porque estás cerquita de la release.
En fin, ánimo y gracias por el curro.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 14, 2008, 04:03:59 PM
hola, me laegra leerte nuevamente, luego del ultimo mail donde te mande una version de los fuentes del core, nunca supe mas nada de vos....
bien, yo diria muy cerca, aunque voy a dejar muchas cosas para luego de la release, como por ejemplo, las mejoras finales al render o mejor dicho el nuevo render optimizado (ya lo tengo diseñado, pero bueno, tengo que escribirlo)... por ahora esta mejorado, pero no son las mejoras finales... tambien optimizaciones en general y toda la normalizacion de los nombres de funcion a PREFIJO_funcion... (con compatibilidad a lo existente)...
otra capa grafica que trabaje directamente a nivel SDL, otra opengl... puf, hay mucho trabajo... mucho... pero bueno, todo eso despues de liberar la release actual (y tomarme un pequeño descanso)... que no falta mucho...
Title: Re: Avances, Diario de...
Post by: josebita on September 14, 2008, 04:39:49 PM
Jeje, perdona. Como me pediste que no comentara nada, lo estuve mirando y me callé :)
En fin, mucho ánimo, acaba con la release y date un descanso, que te lo has currado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 14, 2008, 05:04:11 PM
:)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 14, 2008, 05:41:42 PM
Se agregaron 4 nuevas funciones a la mod_joy (thanks Sandman)

JOY_NUMHATS
JOY_NUMBALLS
JOY_GETHAT 
JOY_GETBALL

Tambien por sugerencia de Sandman se optimizo la funcion abriendo los joysticks solo en el momento de inicializacion, ya que de todas formas la SDL solo los detecta cuando inicializa...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 03:17:56 AM
Bien, debo decir que los cambios de anoche sobre la version linux, dieron resultados positivos... sin tener que tocar nada mas que el tema de las malditas librerias dinamicas en linux, bennu funciona de maravillas, y ejecuta los mismos dcb compilados en windows...

Un exito...

El problema con la SDL era el maldito Suse, ni siquiera funcionaban los samples que vienen en la SDL... asi que ahora compile todo y probe en un DSL linux en una VM, chiquito y rapido... voy a hacer unas pruebas mas y luego subire los nuevos paquetes tanto de linux como de windows...

luego resta modulo scroll y modulo m7... a todo esto, interesa el modulo m7? alguien lo extrañaria si no fuera incluido?

PD: http://www.damnsmalllinux.org/index_es.html
Title: Re: Avances, Diario de...
Post by: TYCO on September 15, 2008, 07:21:18 AM
SplinterGU:
"luego resta modulo scroll y modulo m7... a todo esto, interesa el modulo m7? alguien lo extrañaria si no fuera incluido?"

a ver, aunque el m7 no evolucione, esta bien que se quede como esta (sin bugs claro) por ser una forma distinta al 2d y al m8(3d) de hacer un paisaje/juego/etc.

Mi voto es que se quede.
Title: Re: Avances, Diario de...
Post by: animanegra on September 15, 2008, 09:53:49 AM
Yo creo que esta bien que se quede. Pero que si se saca la release sin el modo 7 por ahora pues prefiero que salga antes la release y poder usar bennu que se demore mas la salida de bennu. Es solo una opinion. (Por cierto que no he visto el link a la release de bennu para linux, ¿soy yo o esque aun no ha salido?)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 01:27:56 PM
aun, no ha salido, ya que he tenido algunos problemas con dicha version, pero creo que se debe a faltas de .so en el operativo, tengo que debuguear, pero me pase toda la noche limpiando los "warnings" de compilacion y haciendo pruebas...
el tema es que funcionan ejemplos, como el de flic, scroll_test (tileado), pero no funcionan win-to-full, grbrowser (que es un browseador de graficos contenidos en un directorio haciendo miniaturas), ni un test de angulos, funcionar funcionan, pero no aprece nada en pantalla... pero tengo que entrar a debuguear el codigo a ver que pasa...

tampoco esta la nueva version windows... ya saldran los 2 paquetes...

esto de dormir 2-3 (ocacionalmente 4) horas por dia desde hace un mes, me esta matando... pero bueno, dejar temas inconclusos no me deja dormir...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 02:20:19 PM
Decir que soy un idiota es ser generoso...

Los ejemplos no funcionaban por las mayusculas/minusculas de los archivos... siempre recomiendo atencion a eso, y se me pasa a mi... :P

Me pase toda la noche recompilando, je, bueno, o vino demas...

igual quedan 2 temas, no aparecen los write y tampoco veo los draw... espero que no sea nada complicado de rastrear...
Title: Re: Avances, Diario de...
Post by: animanegra on September 15, 2008, 05:06:45 PM
Sigue el consejo de arquimedes y date un baño. :D A veces se gana mas relajando y dejando la mente libre que intentando meter mas horas sin descansar. ;-)

Muchos animos, que yo tambien me he tenido que pegar temporadas de no dormir... y se pasa mal
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 06:38:10 PM
Linux version 100% working!!!

El error con los write era que tenia mal prefijados los simbolos exportados por la libfont, los tenia como mod_font... :P

y luego corregi la implementacion glob sobre linux, ya habia hecho lo propio en la version windows, restaba la linux...

100% working, lo importante es que toda la logica elaborada no tuvo que ser modificada solo tema de exportacion y pavadas menores descriptas en este diario...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 07:28:05 PM
WIP8 Windows y Linux disponible

http://betatester.bennugd.org/betas
Title: Re: Avances, Diario de...
Post by: josebita on September 15, 2008, 08:22:13 PM
Le estoy echando un ojo, pero veo que en Ubuntu Intrepid (8.10, aún en desarrollo) funciona el ejemplo win_to_full. Sólo está el tema de las mayúsculas (el código hace referencia a globe8.PNG y el fichero el globe8.png). Pasa algo parecido con fondo_8.png.
La funcionalidad, eso sí, está bien. Voy a probar con código viejo, a ver qué tal :)

[Edito] Y va a unos 180fps con compiz activado en modo ventana.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 08:27:25 PM
si, corregir las mayusculas y minusculas, no lo hice en los ejemplos que subi al ftp... es cierto...

anda eliminando y poniendo cosas, con f1 tenes el help, y tambien hay cambios con la simple linea de f1-help o sin esta... los fps que consumen los textos sos horribles... pero bueno, ya se optimizara...

gracias por probar...
Title: Re: Avances, Diario de...
Post by: josebita on September 15, 2008, 08:31:27 PM
Sí, eso funciona sin problemas: incluso mover la ventana, que supongo que puede ser muy problemático.
El escalado también funciona.... En esa demo todo funciona sin problemas :)
Title: Re: Avances, Diario de...
Post by: osk on September 15, 2008, 08:31:57 PM
Ese ahíiííííí!!!
Pues yo uso un Suse y el win-to-full no me va, aunque estoy seguro que es por un error estúpido mio. Básicamente al compilar me dice:

win-to-full.prg:2: error: Library "mod_proc.so" not found ("mod_proc")

cuando es evidente que la librería sí que está. He copiado todo el juego en la misma carpeta donde está el compilador pero da el mismo error...¿El setvars.sh influye en algo...?

Muchas gracias!!!
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 08:37:15 PM
export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):<path donde estan las librerias bennu>

o hay un archivo en el /etc que ahora no recuerdo como se llama que se pueden agregar los paths de las librerias dinamicas... lamentablemente en la mierda de linux, no se pueden cargar las librerias dinamicas especificando un path, el path debe estar registrado por el sistema...

si, fijate el setvars.sh, lo deje a modo de ejemplo...
Title: Re: Avances, Diario de...
Post by: josebita on September 15, 2008, 08:38:28 PM
osk, tienes que añadir el directorio bin a las variables de entorno LD_LIBRARY_PATH y PATH (el setvars.sh hace eso, pero para un path predefinido). En general el siguiente código funcionará, siempre que lo ejecutes desde el directorio "bin" donde estén los ejecutables de Bennu y las librerías:
export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH
export PATH=$(pwd):$PATH

Por cierto, que el ejemplo de los flic tira sin problemas también.

Echo de menos cabeceras para poder compilar mis librerías antiguas (o mejor, el código fuente :))
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 08:41:13 PM
probaste el escalado, rotacion y moviento de los flics? me parecio interesante incluir esas caracteristicas...
Title: Re: Avances, Diario de...
Post by: osk on September 15, 2008, 08:45:42 PM
Muchas gracias!!!!

Ahora funcionó de maravilla!!
Title: Re: Avances, Diario de...
Post by: josebita on September 15, 2008, 08:49:11 PM
Splinter: Todo va sin problemas, he tocado todas las teclas que pone en la ayuda :).
A primera vista, diría que has hecho un trabajo genial :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 08:56:37 PM
gracias... se hizo esperar y dio mucho trabajo, no por lo complicado, sino por la cantidad de trabajo... y eso que todavia faltan muchas cosas por incluir y mejorar...
pues bien...
Title: Re: Avances, Diario de...
Post by: josebita on September 15, 2008, 09:22:36 PM
El juego Bloqueado (http://forum.bennugd.org/index.php?topic=157.0) tira sin problemas (he tenido que añadir unos mod_*, pero poco más).
Uno de los screenshots tiene un contador de fps:

(http://lh5.ggpht.com/josebagar/SM7RNyIXR4I/AAAAAAAAHgE/xW4bZid-hYc/s512/Pantallazo-bloqueado-2.png)
(http://lh3.ggpht.com/josebagar/SM7RNlUWZMI/AAAAAAAAHf8/7lZktzFdF1o/s512/Pantallazo-bloqueado-1.png)
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 15, 2008, 09:31:01 PM
Acabo de bajar la wip 8 para windows. Tengo problemas al compilar un proyecto que incluye una dll propia.
En la 7.5 funciona perfectamente bien:

player.inc:75:error:Undefined procedure ("check_side")

Check_side es una funcion de la dll.Dejo el codigo de la dll:

#include <stdio.h>
#include <bgdi.h>
#include <bgddl.h>
#include <math.h>

static int *Tiles;
static int Map_width;//ancho del mapa en columnas
static int Map_height;//altura del mapa en filas
static int aux;

static int bgd_collision_init (INSTANCE * my, int * params){
    Tiles = (int *)params[0];
    Map_width = params[1];
    Map_height = params[2];
    return 1;
}

int bgd_check_down(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32)*Map_width;
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[params[0]+aux]){
            return -params[2]%32;
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

int bgd_check_up(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32)*Map_width;
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[params[0]+aux] == 1){
            return 32-params[2]%32;
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

int bgd_check_side(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32);
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[aux+params[0]*Map_width] == 1){
            if(params[3] == 0){
                return -params[2]%32;
            }else{
                return 32-params[2]%32;
            }
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

DLSYSFUNCS  functions_exports[] = {
{ "COLLISION_INIT", "PII", TYPE_DWORD, bgd_collision_init },
{ "CHECK_DOWN", "III", TYPE_DWORD, bgd_check_down },
{ "CHECK_UP", "III", TYPE_DWORD, bgd_check_up },
{ "CHECK_SIDE", "IIII", TYPE_DWORD, bgd_check_side },
    { NULL          , NULL    , 0        , NULL             }
};

Tambien quiero comentar que desde la 7.5 tengo este warning:

librender:2: warning: Variable redeclared ("alpha_steps")

Un saludo
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 15, 2008, 09:56:09 PM
tenes que prefijar functions_exports con el nombre de la dll, seguido de _, por ejemplo...

collision_functions_exports

lo del warning es solo un "warning" a nivel dlls, ignorarlo...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 15, 2008, 10:06:21 PM
Perfecto.Ademas ya no esta el problema con el map_clear.Gracias.
Title: Re: Avances, Diario de...
Post by: animanegra on September 15, 2008, 10:06:43 PM
Epa tragamanzanas en linux tambien compila y funciona perfectamente en bennu. Una cosa :D si no os quereis complicar para probar un juego:

for I in `ls mod_*`; do echo $I >> nombrejuego.imp; done;

y despues compilar y ejecutar.

PD: Esque no me queria complicar mirando cuales eran las librerias que debia meterle XD
PD2: enhorabuena!! al final dominaste al caballo!!! :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 16, 2008, 12:41:05 AM
seguimos trabajando...
correccion en reasignacion de ids strings reciclados, lo mismo para los mapas...
en el caso de las strings hacia que los textos bajan mas lento que en fenix... ahora esta corregido...

pronto subire nueva version...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 16, 2008, 12:52:01 AM
Buenas.Encontre un posible pequeño bug. Si haces un define, que termine en ; y sin dejar espacio haces un comentario:

#define cosa a;//comentario

o si no pones el ;

#define cosa a//comentario

Tenes este error en el compilador:
La instruccion 0 en "0x7c920f29" hace referencia a la memoria en "0x00000000".La memoria no se puede "read".
Se soluciona dejando el espacio.El segundo caso es poco comun pero el primero no tanto.

Edito:
Pongo la linea en cuestion por que da otros problemas:

#define set_hitTester(a,b,c,d,e)  a._relx = b;a._rely = c ;a.size_x = d*10;a.size_y= e*10;a._attack = 0

Aca la linea en la que lo uso:

(linea 339) set_hitTester(hitTester_id,20,-30,10,20);

Si multiplico d*10 y e*10 no compila: Invalid Character ("HITTEST") (linea 339)
pero si multiplico solo uno compila bien.
Hay otro error que no he podido recrear, con las mismas lineas, pero la salida era: Unknow identifier ("_r")  (linea 339)
lo cual no tiene ningun sentido.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 16, 2008, 02:07:18 AM
los voy a revisar... y te digo... gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 17, 2008, 02:27:15 PM
Quote from: Packo_z007 on September 16, 2008, 12:52:01 AM
Buenas.Encontre un posible pequeño bug. Si haces un define, que termine en ; y sin dejar espacio haces un comentario:

#define cosa a;//comentario

o si no pones el ;

#define cosa a//comentario

Tenes este error en el compilador:
La instruccion 0 en "0x7c920f29" hace referencia a la memoria en "0x00000000".La memoria no se puede "read".
Se soluciona dejando el espacio.El segundo caso es poco comun pero el primero no tanto.

Edito:
Pongo la linea en cuestion por que da otros problemas:

#define set_hitTester(a,b,c,d,e)  a._relx = b;a._rely = c ;a.size_x = d*10;a.size_y= e*10;a._attack = 0

Aca la linea en la que lo uso:

(linea 339) set_hitTester(hitTester_id,20,-30,10,20);

Si multiplico d*10 y e*10 no compila: Invalid Character ("HITTEST") (linea 339)
pero si multiplico solo uno compila bien.
Hay otro error que no he podido recrear, con las mismas lineas, pero la salida era: Unknow identifier ("_r")  (linea 339)
lo cual no tiene ningun sentido.

revise estos errores y a mi no me pasan, seguro tienen que ver con la expansion del comando, pero no pude reproducirlos, los use, pero no paso nada... tiene sentido que me digas que esto te paso en la wip2, pero en estas versiones lo dudo, porque recuerdo claramente haber corregido el tema del con/sin espacio...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 17, 2008, 02:40:32 PM
estuve trabajando en los bugs de rotaciones y en acelerar el dibujado en pantalla...
el eterno error de las rotaciones ya esta corregido... se debia principalmente a un problema de precision de calculos al usar ints, ahora pase algunos campos a float, elimine codigo innecesario, pero supongo que ahora algunos casos el dibujado podria ser mas lento... aun queda una diferencia de desplazamiento de 1 pixel con respecto al grafico sin rotar y el grafico rotado, todavia tengo que hacer un analisis mas detallado y ver si lo que falla es el blit rotativo, el blit normal, o el calculo de los vertices (quizas esto tambien sea parte de otro problema que tengo y explicare mas abajo en este post)...
tambien acelere el tema de los dibujado de textos en pantalla, en los casos de numeros enteros, hice una nueva funcion que es un 800% mas rapida la conversion de numeros a texto con respecto a la funcion de C... (lo que no quiere decir que los textos se dibujen un 800% mas rapido, pero todo cuenta)
tambien en la version actual se me escapo algo, que al restaurar el fondo de pantalla y si el dump es = 0, restaura siempre el fondo, por eso no hay una mejora significativa con respecto a versiones anteriores que si lo hacen, aun asi, el rendimiento en la mayoria de los casos es mejor, con este cambio nuevo, en circunstancias de resposo obtuve un rendimiento de 102000 fps cuando antes obtenia con la misma prueba unos 24000 maximo... en casos de varios procesos en pantalla, y uno con actualiaciones, obtuve rendimientos 3500fps donde antes eran 670... pero me esta quedando alguna basura en el video que tengo que corregir y no logro detectar aun la cirscuntancia, pero mientras estaba escribiendo este texto se me ocurrio posibles motivos...
Title: Re: Avances, Diario de...
Post by: Prg on September 17, 2008, 03:39:27 PM
Felicitaciones Splinter, esto se ve muy bien. Que bien que ya está lo de los ángulos. Y la velocidad que has alcanzado me impresiona bastante. Felicidades.  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 17, 2008, 04:14:21 PM
Si, tampoco voy a mentir diciendo que esas velocidades son en todos los casos, se logran mejoras de rendimiento cuando hay procesos estaticos (sin cambio en ningun aspecto) y procesos con cambios frecuentes... si todos los procesos se mueven o se actualizan constantemente no hay una mejora tan significativa, pero bueno, supongo que esto supondra una mejora en la mayoria de los casos...
Title: Re: Avances, Diario de...
Post by: JaViS on September 17, 2008, 04:42:29 PM
Quote from: SplinterGU on September 17, 2008, 02:40:32 PM
estuve trabajando en los bugs de rotaciones y en acelerar el dibujado en pantalla...
el eterno error de las rotaciones ya esta corregido... se debia principalmente a un problema de precision de calculos al usar ints, ahora pase algunos campos a float, elimine codigo innecesario, pero supongo que ahora algunos casos el dibujado podria ser mas lento... aun queda una diferencia de desplazamiento de 1 pixel con respecto al grafico sin rotar y el grafico rotado, todavia tengo que hacer un analisis mas detallado y ver si lo que falla es el blit rotativo, el blit normal, o el calculo de los vertices (quizas esto tambien sea parte de otro problema que tengo y explicare mas abajo en este post)...
tambien acelere el tema de los dibujado de textos en pantalla, en los casos de numeros enteros, hice una nueva funcion que es un 800% mas rapida la conversion de numeros a texto con respecto a la funcion de C... (lo que no quiere decir que los textos se dibujen un 800% mas rapido, pero todo cuenta)
tambien en la version actual se me escapo algo, que al restaurar el fondo de pantalla y si el dump es = 0, restaura siempre el fondo, por eso no hay una mejora significativa con respecto a versiones anteriores que si lo hacen, aun asi, el rendimiento en la mayoria de los casos es mejor, con este cambio nuevo, en circunstancias de resposo obtuve un rendimiento de 102000 fps cuando antes obtenia con la misma prueba unos 24000 maximo... en casos de varios procesos en pantalla, y uno con actualiaciones, obtuve rendimientos 3500fps donde antes eran 670... pero me esta quedando alguna basura en el video que tengo que corregir y no logro detectar aun la cirscuntancia, pero mientras estaba escribiendo este texto se me ocurrio posibles motivos...

Uh maestro, por fin alguien se digno a ver esos errores!! son añejos!! XD


A proposito, no entiendo eso de q cuando cambias la resolucion el fondo no se dibuja.

Title: Re: Avances, Diario de...
Post by: SplinterGU on September 17, 2008, 06:46:07 PM
cuando hacias set_mode, el fondo se perdia, ahora solo se pierde cuando se hace un set_mode de dimensiones o profundidad de color diferente... en un principio habia hecho que no se pierda, pero en algunas combinaciones no es correcto ni conceptual ni practicamente, asi que solo se mantiene en casos de por ejemplo, querer cambiar a full_screen, esperar vsync, usar doublebuffer, scale, etc...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 17, 2008, 07:51:03 PM
Quote from: SplinterGU on September 17, 2008, 02:27:15 PM
revise estos errores y a mi no me pasan, seguro tienen que ver con la expansion del comando, pero no pude reproducirlos, los use, pero no paso nada... tiene sentido que me digas que esto te paso en la wip2, pero en estas versiones lo dudo, porque recuerdo claramente haber corregido el tema del con/sin espacio...

En realidad me pasa usando la wip 8. Tengo problemas en los defines del principio.Quizas sea error mio. Fijate que si al primer define le pones un comentario se cuelga el compilador. Link del source
http://rapidshare.com/files/146124464/Bin-WIP8.rar.html
no compila sin cambiar el define de la linea 6 (RPG.prg)
y el define ese es usado en el Player.inc linea 346.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 17, 2008, 09:27:42 PM
ahora si, no me da los mismos errores, pero me da errores, lo voy a revisar... gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 18, 2008, 07:48:38 AM
Quote from: Packo_z007 on September 17, 2008, 07:51:03 PM
Quote from: SplinterGU on September 17, 2008, 02:27:15 PM
revise estos errores y a mi no me pasan, seguro tienen que ver con la expansion del comando, pero no pude reproducirlos, los use, pero no paso nada... tiene sentido que me digas que esto te paso en la wip2, pero en estas versiones lo dudo, porque recuerdo claramente haber corregido el tema del con/sin espacio...

En realidad me pasa usando la wip 8. Tengo problemas en los defines del principio.Quizas sea error mio. Fijate que si al primer define le pones un comentario se cuelga el compilador. Link del source
http://rapidshare.com/files/146124464/Bin-WIP8.rar.html
no compila sin cambiar el define de la linea 6 (RPG.prg)
y el define ese es usado en el Player.inc linea 346.

Bien, costo pero salieron, eran 2 bugs, referentes a los defines... uno era un bug viejo y el otro era nuevo...
el error viejo se debia a que solo funcionan bien expansiones hasta 128bytes, ya que el expand hacia mal el calculo de la relocacion del espacio para la expasion del define.
el error nuevo, era que no se descartaban bien los comentarios en la expansion de defines...

luego subire una nueva version del compilador, ahora me voy a dormir un ratito... no doy mas...

gracias por el reporte...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 18, 2008, 04:32:54 PM
No voy a subir nueva version de momento... para solucionar tu problema por ahora te recomiendo no hagas defines largos... y que no pongas comentarios en la misma linea del define... en unos dias sacare nueva version cuanto tenga depurado el tema del dibujado que veo alguna basura (parece ser que ahora es solo con los textos) en la nueva version optimizada...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 18, 2008, 04:34:26 PM
Ok, no hay problema.Los defines no son de vida o muerte.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 18, 2008, 04:47:08 PM
gracias, por cierto, esta muy bueno tu proyecto, muy simpaticos los personajes y muy buena animacion...

la verdad prefiero esperar un poco mas para la nueva version, salvo que sea un error que no deje progresar en los proyectos, asi agrego el scroll, corrigo un par de cosas que me gustaria tener resueltas ahora, y luego si sacar la primer release con fuentes... aunque se que luego hay muchas cosas por mejorar, corregir y completar...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 18, 2008, 04:58:58 PM
Gracias. Sin dudas el punto mas flojo es el consumo de recursos, pero por el momento trato de tener un codigo mas ordenado y facil de entender.La optimizacion vendra despues.
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 19, 2008, 11:57:40 PM
Hola.Encontre unos problemas con los operadores bitwise uno de los operandos supera MAX_int. El primer caso siempre devuelve 0.El segundo 2147483903.


Program Ejemplo;
private
   dword var1;
   dword var2 = 2147483650 ;
end
begin
   full_screen = false;
   set_fps(24,1);
   set_mode(640,480,16);
   var1 = (var2 & 255);
   say(var1);
end

Program Ejemplo2;
private
   dword var1;
   dword var2 = 2147483904;
end
begin
   full_screen = false;
   set_fps(24,1);
   set_mode(640,480,16);
   var1 = (var2 | 255);
   say(var1);
end
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2008, 12:48:25 AM
el problema no esta en los bitwise, ni tampoco es un problema, el problema esta en el uso... en ambos casos estas superando el valor de un int, pero sin embargo escribis el numero como un int... para casos dword, los numeros para una correcta interpretacion deben ser escritos en hexadecimal... mira el siguiente codigo...


Program Ejemplo;

import "mod_say";

private
   dword var1;
   dword var2 = 2147483650 ;
end
begin
   var1 = (var2 & 255);
   say(var1);

   var2  = (dword)2147483904;
   say(var2);

   var1 = ( var2 | 255);
   say(var1);

   var2 = 80000002h ;

   var1 = (var2 & 255);
   say(var1);

   var2  = 080000100h;
   say(var2);

   var1 = ( var2 | 255);
   say(var1);

end

/*
max_int: 2147483647
*/


vamos a ver si puedo hacer algo al respecto
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 20, 2008, 01:03:10 AM
Eso no sabia.. Muchas gracias. Me gustaria comentar, aunque posiblemente ya lo hayas notado, que si el numero hexadecimal comienza con una letra, lo considera una variable y no compila.. pero se soluciona con un 0 adelante.¿Esto va a seguir asi verdad?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2008, 01:14:05 AM
otro ejemplo


Program Ejemplo;

import "mod_say";

private
  dword var1;
  dword var2 = 2147483650 ;
end
begin
  var1 = (var2 & 255);
  say(var1);

//   var2  = 2147483904;
  var2  = 2147483647 + 257;
  say(var2);

  var1 = ( var2 | 255);
  say(var1);

  var2 = 80000002h ;

  var1 = (var2 & 255);
  say(var1);

  var2  = 080000100h;
  say(var2);

  var1 = ( var2 | 255);
  say(var1);

end

/*
max_int: 2147483647
*/



la norma es que si empieza con una letra es variable, y que los numeros deben empezar con numeros...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2008, 01:24:52 AM
para mas datos...

si compilamos este programa en C


int main(int argc, char * argv[])
{
    double f = 2147483904;
    int i = f;
    int ii = ( int )f;

    printf ("%f\n", f);
    printf ("%u %x\n", i, i);
    printf ("%u %x\n", ii, ii);

}


da los siguientes resultados (acordes a lo que da bennu):


2147483904.000000
2147483648 80000000
2147483648 80000000


Bennu usa double para obtener el numero y luego lo convierte a int usando el casteo...
numeros fijos que superan el valor del dato es un tema delicado...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2008, 01:57:08 AM
ya se cual es el problema, el problema es que desde C, por lo menos desde GNUC, al castear un float que supera el valor del tipo de dato esperado, lo limita al valor maximo segun el signo de este, asi que lo solucione no usando float/double para tomar el dato numerico, en realidad uso los 2 a la vez, un float para floats y un int para ints...

y ahi parece funcionar adecuadamente, gracias...

No se si sera un bug del gcc o por norma es asi... pero bueno, es un poco problematico ese comportamiento... ahora me pregunto en que otros tantos lugares esto podria estar afectando...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2008, 05:34:25 PM
Siguiendo el tema de las rotaciones, trabaje un poco mas en el tema, y ya quedo bastante preciso... tambien corregi un tema de marcado de dirtyrects, llegando a los limites de un rectangulo dirty, no era muy preciso y limpiaba/marcaba uno de los rects limitrofes, ya esta solucionado... por otro lado, corregi el temas de los espejados (MIRROR) estos no tenian en cuenta los angulos, solo hacian mirror de la textura... ya esta corregido... ahora el mirror es mirror... como debio ser siempre... ahora es posible crear de esta forma el efecto visto en muchos juegos de un piso espejado o un espejo en si... quizas esto provoque problemas a algunos juegos ya hechos, pero bueno, es era un bug...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 21, 2008, 01:56:23 AM
Quote from: SplinterGU on September 20, 2008, 05:34:25 PM
Siguiendo el tema de las rotaciones, trabaje un poco mas en el tema, y ya quedo bastante preciso... tambien corregi un tema de marcado de dirtyrects, llegando a los limites de un rectangulo dirty, no era muy preciso y limpiaba/marcaba uno de los rects limitrofes, ya esta solucionado... por otro lado, corregi el temas de los espejados (MIRROR) estos no tenian en cuenta los angulos, solo hacian mirror de la textura... ya esta corregido... ahora el mirror es mirror... como debio ser siempre... ahora es posible crear de esta forma el efecto visto en muchos juegos de un piso espejado o un espejo en si... quizas esto provoque problemas a algunos juegos ya hechos, pero bueno, es era un bug...

Bueno, sigo teniendo problemas con el blitter, creo que este capricho mio por aprovechar el que ya existe es un error, ya que no es tan preciso... ahora si le pongo size, cuando es 0 el angulo, y cuando hay ambos mirror, el grafico se corrompe... bueno, ya vere que pasa, pero me esta consumiendo mas tiempo del esperado...
Title: Re: Avances, Diario de...
Post by: blostec on September 21, 2008, 02:07:01 PM

Gran trabajo el que estas haciendo. Tomate un descanso que te lo mereces  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 22, 2008, 07:00:38 PM
En el site (Betas) hay 2 nuevos parches... que corrigen varios temas, como mapas, actualizaciones en pantalla, dirtys, files, strings...

nota, no usar librender por el momento, o si se usa, tener en cuenta que hay problemas con los fonts de 1bpp, esto se debe a un error en el blit de video con mapas de 1bpp, ya esta corregido, pero como el blitter todavia no esta al 100% sugiero no usarlo si se usan fonts del sistema para imprimir textos...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 09:30:17 AM
Nueva wip9 disponible...

Se incluyen todos los fix a los bugs reportados, y otros cambios mas, entre los que destacan:

- fpg_save o save_fpg, con soporte de 8, 16 y 32 bits... (idem map_save o save_map)
- correccion a las rotaciones con escalado. bugs conocidos, al rotar o escalar, se le agrega un pixel de ancho a al dibujo, en mapas de 1pixel (ancho o alto) puede que en ocaciones no se dibuje al rotarlo o escalarlo. en cuento a todo lo demas referente al bliteo se mejoro.
- mejora de velocidad del sistema en reposo (sin cambios en pantalla o incluso con algunos cambios)
- mejora en el render de textos
- correcccion en el modulo de graficos png
- 32 bits parcial, se permite cargar mapas de 32 bits, setear modo de video y algunas operaciones mas, todavia no esta disponible el bliteo y tampoco operaciones que impliquen el uso del blitter

y algunos otros mas que no recuerdo ahora mismo...

nota adicional: como la version linux nadie la esta probando o por lo menos no hay feedback al respecto, no generare version de momento... luego saldra una version si empiezan a usarla activamente o cuando salga la version final...

saludos, y gracias a todos por colaborar con los reportes de bugs.

EDIT: AHHH, importantisimo, se corrigio el sistema de mirror... ahora tiene en cuenta el angulo, y se puede hacer un mirror real, no como antes que era solo de la textura...
Revisen la carpeta samples, hay nuevos ejemplos...
Title: Re: Avances, Diario de...
Post by: blostec on September 24, 2008, 10:29:41 AM

Que ritmo llevas, impresionante. Ahora mismo la bajo, gracias!  :)
Title: Re: Avances, Diario de...
Post by: blostec on September 24, 2008, 11:18:56 AM
Veo que no has incluido la libreria libblit.dll, significa que ya no la usas o la has implementado en otra?

Edit: acabo de probar y sin ella el compilador no funciona.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 12:39:45 PM
se me paso...

subiendo, gracias por el aviso...
Title: Re: Avances, Diario de...
Post by: TYCO on September 24, 2008, 01:27:52 PM
Se siguen añadiendo cosas nuevas a Bennu y mejorandolo, cosa que es genial, pero porque aun no estan el mod_scroll y el mod_m7??? tanto errores o problemas tienen que no se pueden incluir aun???

Gracias por la nueva wip.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 01:32:49 PM
no estan porque habia que corregir errores, y scroll asi como esta no es posible meterla en bennu, porque es incompatible con el nuevo sistema de optimizacion de procesos... ademas que tienen errores...
la m7, creo que nunca funciono correctamente, y para ser sincero no quiero lidiar con algo obsoleto como la m7... prefiero en todo caso pensar en un nuevo modulo 3d, usando opengl...

m7 no la incluire...

de nada, es un placer...

por otro lado, el scroll es lo proximo que hare, creo que la version actual ya tiene todos los cambios nuevos bastante estables...

el soporte a 32bits por ahora quedara a medio hacer, no estara completo en la primera version, por lo menos esos son mis plantes de momento... quizas luego me emociono y lo hago, pero por el momento no lo tengo en planes... asi que no te preocupes, no se agregaran muchas mas cosas... a pesar de tener muchos agregados y mejoras planificadas...

quiero agregar, que muchas de las cosas que salieron en esta wip, son correcciones de errores, y agregados que por necesitar tocar alguna parte asociada a ese codigo, y siendo mas complejo agregar luego las funcionalidades, entonces las pongo cuando paso por ese fuente por algun motivo...
Title: Re: Avances, Diario de...
Post by: blostec on September 24, 2008, 01:58:41 PM

Yo creo que podrías distribuir la m7 aunque ya no la modifiques. Por si alguien quiere adaptar su viejo código en Div o Fenix que usa ese modo. Bueno eso es lo que yo pienso, esta claro que el proyecto de Bennu es tuyo y tu decides que debe tener o no. Es solo una opinión. Saludos y gracias por el esfuerzo que realizas!
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 02:08:55 PM
ya se vera eso en el futuro...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 03:30:36 PM
Gracias por la wip. ¿Al final en que quedo el tema del load_fpg? Me refiero a eso de que el primer fpg cargado es 1 y no 0.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 03:33:31 PM
es 0... tambien 0 es la libreria del sistema, pero los graficos a partir del 1000...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 03:56:00 PM
Me parece que el problema de esto es que cuando descarguemos el primer fpg cargado tambien se van a descargar los graficos creados con new_map y funciones por el estilo. La verdad es que me parecia correcto que el primero cargado tenga el codigo 1. Pero bueno.. es solo una opinion.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 04:08:37 PM
no, no... los del fpg son del 1-999... los demas son del sistema... estan en la misma libreria pero son diferentes...

es que de lo contrario deja de funcionar lo que ya funcionaba...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 04:41:00 PM
A ver si entiendo ¿unload_fpg(0) descarga los graficos 1-999? ¿los graficos a partir del 1000 se descargan cuando termina la ejecucion del programa?

De ser asi.. se podria incluir un unload_fpg(-1) para descargar los del 1000 en adelante?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 08:19:17 PM
eso no seria factible, porque arriba de los 999, no solo estan los mapas creados con load_map, map_new, etc, sino que estan los font del sistema, los fonts cargados por los usuarios, y cualquier grafico interno, o sea, que no se puede hacer eso, si alguien quiere descargar graficos que cargo individualmente debe hacerlo de la misma forma...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 09:41:13 PM
Ahora me queda claro.Gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 10:13:56 PM
;)

de nada...

como van las pruebas con esta version? me gustaria tener feedback... y de esta forma saber si no hay reportes de bug porque no la estan usando o porque no se encuentran...

siempre es bueno el feedback hacia ambos lados... ayuda a mover la maquinaria...

gracias a todos...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 10:30:28 PM
La baje y la probe muy poco.. desde ayer que estoy con el tema de la wiki. Lo que si quiero comentar es que hay un bug (seguramente en el juego) que descubri con esta version (tengo que fijarme si tambien pasa en la wip 8 ).
En el archivo de salida de error obtengo:

^C

Que significa esto?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 24, 2008, 10:43:15 PM
control+c...

estas actualizando la wiki de bennu? no se si esta realmente operativa, creo que es basura, me parece que fueron intentos pero no va, creo que hay que borrarla... no se, eso sabe sandman, pero en el hosting hay muchos directorios con de wiki, con nombres como FAIL y cosas raras...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 24, 2008, 10:49:08 PM
Pero que significa que el interprete salga y deje en el log Control+C?

Sip.. Tiene mucha informacion.Y ya arrgle el menu (medio que lo ate con alambre pero funciona correctamente) pero nose como editarlo. Lo que no puedo hacer es editar la portada.

http://wiki.bennugd.org/index.php?title=Category:Index
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 25, 2008, 12:22:21 AM
wait... no se si sirve ese wiki, dejame consultar, hasta donde sabia habia que borrarlo... estaba mal instalado...

no tengo idea de eso del ^C, si me pasas un ejemplo lo podria ver...

y disculpa por no responder antes, hace un par de horas que hay un problema global de conectividad en argentina con mi provider de internet... y ahora mismo esta es la unica pagina a la que me puedo conectar... (gracias a dios), ni google me va...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 25, 2008, 07:56:57 PM
Eso del control C lo deje pasar. Nose por que aparecia, pero el juego se quedaba por un error mio.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 28, 2008, 03:16:25 AM
Modulo de scroll activo...
Se corrigen comportamientos de region1 y region2 dentro del scroll, o sea, area de no scroll y area de movimiento maximo con camaras...

voy a ver si incluyo el m7...
Title: Re: Avances, Diario de...
Post by: TYCO on September 28, 2008, 10:41:04 AM
Esto se pone interesante,  a ver si pronto se queda estable por completo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 28, 2008, 12:29:53 PM
WIP10 lista para descarga...

Se incluye...

- mod_mouse
- mod_scroll
- libscroll

y varios fixes extra...

no olviden bajar el test de scroll...
Title: Re: Avances, Diario de...
Post by: blostec on September 28, 2008, 03:02:42 PM
No sabes que alegría me ha dado leer este post, esperaba con muchas ganas el scroll. Ahora mismo me la bajo y el sample también. Muchas gracias Splinter, de verdad, GRACIAS!!!  :)
Title: Re: Avances, Diario de...
Post by: Prg on September 28, 2008, 04:25:32 PM
Excelente noticia. Sobre el m7, creo que sólo sería para la nostalgia, lo más importante es el scroll.
Una pregunta ¿Las librerías de m8 no son parte oficial del bennu?  :)
Bueno, pues a descargar la nueva versión y ver lo que ha cambiado.
Otra pregunta, me la quería guardar, pero mejor la saco: ¿el path_find  sigue teniendo la distancia de búsqueda definida, o se amplió la distancia de búsqueda, o qué pasó con esa función? :)

Gracias por todo.  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 28, 2008, 04:43:15 PM
la m7 la tengo lista, y funciona, pero me da problemas al salir del modo 7, se cae el ejecutable... no quiero perder tiempo en esto, yo sabia que habia problemas con este modulo...

m8ee no es parte oficial de bennu...

a que te referis con eso de la distancia de busqueda? yo no veo ningun limite en la libreria... te estas refiriendo a la pathfind de bennu o alguna de coldev?
Title: Re: Avances, Diario de...
Post by: TYCO on September 28, 2008, 06:39:32 PM
Lo he probado por encima (aun tengo que probar bien la wip10) noto varias cosas:

1. En los FROM hay que ponerles ";" para que compile, a parte de eso compila todo el codigo sin tocar mas.
2. Uso scroll y noto que al hacer un: map_xput(file,102,graph,x,y,angle,60,0); no lo veo en el fondo del scroll como lo veia en la WIP2.
3. La consola debug no sale con ALT+C, se ha cambiado la combinacion de teclas y no me he enterado??? He probado poner -d, -g en compilador e interprete pero no consigo activar la consola en ejecucion.

Repito que aun tengo que testear bien todo con la wip10
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 28, 2008, 09:00:24 PM
1) si
2) necesito un ejemplo, eso deberia funcionar
3) no hay consola de debug, solo debug por log
Title: Re: Avances, Diario de...
Post by: Prg on September 28, 2008, 10:07:10 PM
Quotea que te referis con eso de la distancia de busqueda? yo no veo ningun limite en la libreria... te estas refiriendo a la pathfind de bennu o alguna de coldev?

no estoy seguro que wip utilizaba, creo que era el wip 2, y cuando utilizaba path find a una distancia mayor a 600 por ejemplo (el punto a buscar estaba a una distancia mayor a 600) no encontraba nada, no me daba puntos. Este era uno de mis problemas con el bomberman que estaba haciendo, por eso lo dejé en espera. Sin embargo no eh tenido tiempo de probar la función actual. La probaré y luego te digo ¿ok?.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 28, 2008, 10:35:31 PM
- Solucionado el tema con la m7... ya hay m7 disponible...

pronto para descarga...

wip10a disponible para descarga...

- fix reportado al cambiar el grafico a 0 en un proceso que hacia que este desaparezca
- modulo m7
Title: Re: Avances, Diario de...
Post by: TYCO on September 29, 2008, 03:00:53 PM
Program Pruebas;

Global
int fpg;

Begin
    set_mode(320,200,16);
    ctype=c_scroll;

    fpg=load_fpg("test.fpg");

    start_scroll(0,fpg,1,0,0,0);
// SI EN VEZ DE USAR EL "START_SCROLL" PONGO EL "PUT_SCREEN" NO VEO EL "GRAPH" ENCIMA DE EL.
    //put_screen(fpg,1);



// Con este grafico lo hace bien
//    graph=new_map(10,10,8);

// Con este grafico lo hace mal
    graph=new_map(10,10,16);


    map_clear(fpg,graph,rgb(255,255,255));

    x=160;
    y=100;

    While (NOT key(_esc))
        IF (key(_right))
            x+=5;
            map_xput(fpg,1,graph,x,y,angle,60,0);
        END
        IF (key(_left))
            x-=5;
            map_xput(fpg,1,graph,x,y,angle,60,0);
        END
        IF (key(_down))
            y+=5;
            map_xput(fpg,1,graph,x,y,angle,60,0);
        END
        IF (key(_up))
            y-=5;
            map_xput(fpg,1,graph,x,y,angle,60,0);
        END
        Frame;
    End
End


Bueno con ese codigo y probando las funciones de los "comentarios" se puede reproducir el efecto que me pasa en el scroll, aunque tambien he visto que al hacer un PUT_SCREEN no veo el GRAPH para moverlo por la pantalla.

PD: "test.fpg" es el mismo que el del ejemplo "scroll.prg"
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 06:20:53 PM
a ver... el proceso es de tipo c_scroll, por ende, si no haces start_scroll, el grafico no debe verse... entonces el comportamiento esta perfecto...
lo que veo mal es que al usar el mapa de 8 que decis va bien, deja una estella... que no deberia dejar... o sea, el que decis va bien, esta mal... y el de 16 va bien...
si el proceso es de tipo c_scroll no debe verse si no tenes start_scroll...

EDIT:
ahhh, ya veo, el map_xput...

claro, esta perfecto que no funcione... no se puede poner sobre un mapa de 8 bits graficos de 16 bits...

el ejemplo funciona correctamente... no hay bugs...

si se necesita alguna aclaracion mas simple, "ask me"

gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 06:29:50 PM
fix win32-wip10a1.rar disponible para descarga, soluciona el problema de la z, mencionado unos posts atras...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 06:44:15 PM
ya empezamos con las pruebas a 32 bits...

debo decir que sobre escritorio de 32 bits, render de 32 bits tiene mejor performance que 16 bits... lo mismo para escritorio de 16 y graficos de 16...

bueno, vamos a los resultados...

pruebas con ablend y sblend...

donde antes en 16 bits daba 240 fps, ahora esta rondando los 870 fps...
en 32 bits va un poco mas lento, unos 710 fps... pero bueno, es satisfactorio, y 32 bits es una version experimiental, con casi nada de optimizaciones...

asi esta la cosa...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on September 29, 2008, 08:53:25 PM
B-O.......| Dioooooxxxxxxxx esto pinta muy bien, pardiez haber si acabo con mi dichosa herramienta en delphi, y me pongo a probar la wip10 y pico ya.
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 29, 2008, 09:26:02 PM
Splinter como cargo graficos de 32 bits? Con load_png seteando el modo de video en 32 los carga como de 16.

Edit: Por lo menos es eso lo que devuelve graphic_info..  Ademas no puedo visualizar las imagenes.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 10:01:23 PM
Todavia tengo que ver de que forma hacer para cargar png como 32 bits y no romper la compatibilidad con lo actual, que es cargar png de 24bits como si fueran de 16bits... y esta forma no puede ser por el modo de video, ya que la carga de graficos debe ser independiente de modo de video seleccionado... por ahora me inclino a un nuevo parametro que defina la profundidad del mapa a cargar... o una nueva funcion, quizas load_png32... (aunque esta ultima no me gusta mucho), no se... si se les ocurre alguna forma mejor, acepto sugerencias...
Visualizacion, solo en mi version interna... no funciona completamente todas las combinaciones aun... es completamente experimental...
Title: Re: Avances, Diario de...
Post by: Danielo515 on September 29, 2008, 10:16:52 PM
Me parece mejor una nueva función para cargar los gráficos de 32 que añadir un parámetro más a todas las funciones de map existentes, aunque, que sabre yo...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 29, 2008, 10:26:13 PM
La verdad es que  me parece que lo mas comodo seria que dependa del modo de video.. pero si no se puede me inclino mas por un parametro opcional. Me parece mas prolijo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 10:31:09 PM
el parametro de ser agregado seria opcional... no es requerimiento, sino opcional... si no esta se comportaria como hasta ahora...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 29, 2008, 10:37:42 PM
Quote from: Packo_z007 on September 29, 2008, 10:26:13 PM
La verdad es que  me parece que lo mas comodo seria que dependa del modo de video.. pero si no se puede me inclino mas por un parametro opcional. Me parece mas prolijo.

no es que no se pueda hacer, pero en esta version me preocupe porque los graficos no esten restringidos al modo de video actual, para de esta forma poder manipular mapas de cualquier resolucion sin preocuparse por conversiones automaticas y cosas raras segun el modo de video, por ejempo, para un conversor de png a fpg... o cualquier manipulacion de imagenes...
Title: Re: Avances, Diario de...
Post by: Packo_z007 on September 29, 2008, 10:43:53 PM
Bueno.. podrias hacer que los graficos se carguen en el modo de video actual con el load_png comun y corriente.. y poner un parametro opcional para cargarlos con una profundidad diferente.
Title: Re: Avances, Diario de...
Post by: TYCO on September 30, 2008, 07:38:51 AM
Program Pruebas;

Global

int fpg1;
int fpg2;

Begin
    set_mode(320,200,8);

// CARGAMOS VARIOS FPG EN EL JUEGO
    fpg1=load_fpg("test.fpg");
    fpg2=load_fpg("test.fpg");

// INICIAMOS UN SCROLL CON UN FPG QUE NO SEA EL "PRIMERO" CARGADO
    start_scroll(0,fpg2,1,0,0,0);

    graph=new_map(10,10,8);
// SEGUN LA FENIXWIKI MAP_XPUT SOLO SE PUEDE UTILIZAR EN UN MISMO FPG Y DICE USAR "MAP_CLONE"
// PARA ESTOS CASOS, AUN ASI PARECE NO FUNCIONAR EL MAP_XPUT
    graph=map_clone(0,graph);
    map_clear(0,graph,rgb(255,255,255));

say(fpg1);
say(fpg2);

    x=160;
    y=100;

    While (NOT key(_esc))
        IF (key(_right))
            x+=5;
            map_xput(fpg2,1,graph,x,y,angle,60,0);
        END
        IF (key(_left))
            x-=5;
            map_xput(fpg2,1,graph,x,y,angle,60,0);
        END
        IF (key(_down))
            y+=5;
            map_xput(fpg2,1,graph,x,y,angle,60,0);
        END
        IF (key(_up))
            y-=5;
            map_xput(fpg2,1,graph,x,y,angle,60,0);
        END
        Frame;
    End
End


Este codigo si no me equivoco deberia dejar un rastro.
Solo funciona bien (el cuadradito blanco deja un rastro tras de si) si eliminamos la linea: "fpg1=load_fpg("test.fpg");"
Habia otro tema de problemas con los fpg, el numero de graficos y tal, no tendra nada que ver???

PD: El "test.fpg" sigue siendo el del ejemplo "scroll.prg", que es un fpg de 8bits.

---------------------------------

Con respecto a lo que hablais de la profundidad de color....

Seria logico que si tienes seteado a "set_mode(640,480,16)" no te dejara cargar FPG/MAP/PNG de 32Bits, asi bennu no tendria que cargar por ejemplo uno de 24Bits como si fuera uno de 16Bits no???
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 30, 2008, 08:52:31 AM
no, no deberia dejar nada... el funcionamiento es correcto... ya que estas haciendo un map_xput sobre fpg2 con un grafico que no existe en fpg2... tenes 2 formas de que esto te de el resultado que vos esperas...

forma 1 (usando fpg_add)

Program Pruebas;

#ifdef COMPILER_VERSION
import "mod_key";
#endif

#ifdef __VERSION__
import "mod_say";
import "mod_wm";
import "mod_video";
import "mod_screen";
import "mod_map";
import "mod_text";
import "mod_scroll";
#else
#ifdef COMPILER_VERSION
import "mod_sdlevthandler";
#endif
#endif


Global

int fpg1;
int fpg2;

Begin
    set_mode(320,200,8);

// CARGAMOS VARIOS FPG EN EL JUEGO
    fpg1=load_fpg("test.fpg");
    fpg2=load_fpg("test.fpg");

// INICIAMOS UN SCROLL CON UN FPG QUE NO SEA EL "PRIMERO" CARGADO
    start_scroll(0,fpg2,1,0,0,0);

    graph=new_map(10,10,8);
// SEGUN LA FENIXWIKI MAP_XPUT SOLO SE PUEDE UTILIZAR EN UN MISMO FPG Y DICE USAR "MAP_CLONE"
// PARA ESTOS CASOS, AUN ASI PARECE NO FUNCIONAR EL MAP_XPUT
    graph=map_clone(0,graph);
    map_clear(0,graph,rgb(255,255,255));

    fpg_add(fpg2,10,0,graph);

say(fpg1);
say(fpg2);

    x=160;
    y=100;

    While (NOT key(_esc))
        IF (key(_right))
            x+=5;
            map_xput(fpg2,1,10,x,y,angle,60,0);
        END
        IF (key(_left))
            x-=5;
            map_xput(fpg2,1,10,x,y,angle,60,0);
        END
        IF (key(_down))
            y+=5;
            map_xput(fpg2,1,10,x,y,angle,60,0);
        END
        IF (key(_up))
            y-=5;
            map_xput(fpg2,1,10,x,y,angle,60,0);
        END
        Frame;
    End
End



forma 2 (usando map_xputnp)

Program Pruebas;

#ifdef COMPILER_VERSION
import "mod_key";
#endif

#ifdef __VERSION__
import "mod_say";
import "mod_wm";
import "mod_video";
import "mod_screen";
import "mod_map";
import "mod_text";
import "mod_scroll";
#else
#ifdef COMPILER_VERSION
import "mod_sdlevthandler";
#endif
#endif


Global

int fpg1;
int fpg2;

Begin
    set_mode(320,200,8);

// CARGAMOS VARIOS FPG EN EL JUEGO
    fpg1=load_fpg("test.fpg");
    fpg2=load_fpg("test.fpg");

// INICIAMOS UN SCROLL CON UN FPG QUE NO SEA EL "PRIMERO" CARGADO
    start_scroll(0,fpg2,1,0,0,0);

    graph=new_map(10,10,8);
// SEGUN LA FENIXWIKI MAP_XPUT SOLO SE PUEDE UTILIZAR EN UN MISMO FPG Y DICE USAR "MAP_CLONE"
// PARA ESTOS CASOS, AUN ASI PARECE NO FUNCIONAR EL MAP_XPUT
    graph=map_clone(0,graph);
    map_clear(0,graph,rgb(255,255,255));

say(fpg1);
say(fpg2);

    x=160;
    y=100;

    While (NOT key(_esc))
        IF (key(_right))
            x+=5;
            map_xputnp(fpg2,1,0,graph,x,y,angle,60,60,0);
        END
        IF (key(_left))
            x-=5;
            map_xputnp(fpg2,1,0,graph,x,y,angle,60,60,0);
        END
        IF (key(_down))
            y+=5;
            map_xputnp(fpg2,1,0,graph,x,y,angle,60,60,0);
        END
        IF (key(_up))
            y-=5;
            map_xputnp(fpg2,1,0,graph,x,y,angle,60,60,0);
        END
        Frame;
    End
End


con respecto a los mapas 32, la idea como ya dije es que siempre se pueda cargar cualquier grafico independiente del modo de video, y uno tenga libertad luego para usarlo a su antojo...
Title: Re: Avances, Diario de...
Post by: TYCO on September 30, 2008, 10:54:45 AM
Luego miro las propuestas que me comentas a ver si me sirven, pero entonces... porque ese codigo si deja un "rastro" en Bennu WIP2??? era un bug???
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 30, 2008, 10:59:41 AM
ummm... ahora que lo pienso, si el codigo del grafico es mayor a 999 deberia tomarlo del fpg 0... aunque quizas no es tan correcto... bien...

ahora lo cambio, gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 30, 2008, 11:06:28 AM
ya esta corregido, gracias...
ahora lo que veo es que el rgb(255,255,255) en wip2 da un color marron, y en la ultima bennu da blanco (correcto)
Title: Re: Avances, Diario de...
Post by: TYCO on September 30, 2008, 01:10:40 PM
Se supone que un FPG cargado contiene hasta un maximo de 999 graficos no???, entonces los new_map, map_clone, etc deberan tener un numero de 1000 en adelante que se almacenaran en el FPG "0", es decir... el fpg del sistema... o del primer fpg que has cargado.

PD: En mi caso solo serviria "map_xputnp" ya que el ancho de "graph" varia dependiendo de la velocidad de los coches.

Title: Re: Avances, Diario de...
Post by: SplinterGU on September 30, 2008, 01:52:11 PM
si, claro, hasta 999, los de arriba de 999 en el fpg 0 (no fichero sino libreria en memoria) son los mapas del sistema... busca unas paginas atras en este thread, se explica como se comporta...

gracias.
Title: Re: Avances, Diario de...
Post by: Danielo515 on October 01, 2008, 09:43:49 AM
Splinter,no se si lo que digo es una varbaridad, pero ¿no se podría eliminar, tarde o temprano, la limitación de los map_put, y map_xput, y similares, de que ambos mapas estén en la misma librería? Es que es un poco coñazo andar con map_clone y unload map todo el rato, al menos para mí.
Un saludo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 01, 2008, 09:49:51 AM
Quote from: Danielo515 on October 01, 2008, 09:43:49 AM
Splinter,no se si lo que digo es una varbaridad, pero ¿no se podría eliminar, tarde o temprano, la limitación de los map_put, y map_xput, y similares, de que ambos mapas estén en la misma librería? Es que es un poco coñazo andar con map_clone y unload map todo el rato, al menos para mí.
Un saludo.

map_xputnp
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 11:21:17 AM
Soporte de modos 32 bits...

- modos: 1 a 32, 8 a 32, 16 a 32, 32 a 32
- normal, translucent, ablend, sblend, nocolorkey, alphas sobre todos los modos anteriores (salvo nocolorkey, obviamente)
- alphas por pixel (solo 32 a 32 y modos diferentes a nocolorkey)

- Optimizados los algoritmos de ablend y sblend del blitter...

Limitaciones:

- blendop no soportado en 32 bits, usar el metodo de tablas requeriria 24mb de memoria por tabla, una locura... y demasiado procesamiento...

- Fade 32, no soportados aun...

Otros cambios

- mejoras en los translucent sobre cualquier otro efecto, ahora es 50% sobre lo que sea (antes no lo era en todos los casos, en algunos si y en otros no...)

Los resultados de performance con respecto a la primera version ya no son tan significativos, mejoro significativamente los xblend sobre 16, pero decayo en 32bits... la cosa es que en la primera version no tuve en cuenta los alphas...

Todavia queda intentar optimizar mucho mas los algoritmos... pero bueno, ya hay una version funcional en desarrollo.
Title: Re: Avances, Diario de...
Post by: Rincewind on October 03, 2008, 11:55:10 AM
QuoteSoporte de modos 32 bits...

Cool, thanks. :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 02:15:49 PM
Bien, al final hice algo que no queria pero bien, quizas no es la mas prolija o la mejor de las formas...

- load_png, pngs con alphas son cargados en mapas de 32 bits salvo si el modo de pantalla seteado es de 16 bits, caso en el que el png es creado como de 16 bits...

Voy a armar un ejemplo y voy a subir una version asi la testean y me comentan...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 03:09:18 PM
Capturas

(http://img401.imageshack.us/img401/2469/capture1xu2.png)

(http://img523.imageshack.us/img523/2273/capture2bv7.png)

esta demas decirlo, pero vean la gota de agua, es el puntero del mouse con varios canales alpha...
y miren en la zona amarilla y las azules en el cubo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 05:12:00 PM
descarga wip11

http://betatester.bennugd.org/betas/win32-wip11.rar

http://betatester.bennugd.org/betas/dlls-externals-mandatory-pack.rar (nunca olvidar esto si no lo tienen)

sample

http://betatester.bennugd.org/betas/samples/rotate-mirror-32bits.rar

teclas del sample:

tab - switchea entre 32 y 16 bits
f1 - activa b_translucent
f2 - desactiva b_translucent
f3 - activa ablend
f4 - desactiva ablend
f5 - activa sblend
f6 - desactiva sblend
+/- - zoom
1 - incrementa alpha general sobre el grafico
2 - decrementa alpha general sobre el grafico
q/w - angulos incrementos de 1000
a/s - angulos incrementos de 100 (hay que quitar la linea que autoincrementa en el codigo para darle utilidad a esto)
z/x - angulos incrementos de 10 (hay que quitar la linea que autoincrementa en el codigo para darle utilidad a esto)
0/9 - fading (solo 16 bits)
h - mirror horizontal
v - mirror vertical
f10 - captura pantalla
space - angle = 0
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on October 03, 2008, 06:59:58 PM
hola estoy armando el pack y no he podido compilar el ejemplo de cebrian
desearia que lo modifiques para correrlo con la ultima version..

gracias...


// --------------------------------------------------------------------------
// Fenix Tests                                         2000 José Luis Cebrián
// --------------------------------------------------------------------------

   

GLOBAL option ;

import "mod_draw"
import "mod_key"
import "mod_timers"
import "mod_sound"
import "mod_path"
import "mod_m7"
import "mod_proc"
import "mod_scroll"

PROCESS Menu()
PRIVATE i, c, map ;
BEGIN
    load_fpg ("../media/test.fpg") ;
    set_fps (30, 4) ;
    write (0, 160,  4, 1, "Fenix tests") ;
    write (0, 160, 14, 1, "Select your option") ;
    write (0, 60,  50, 0, "1. Basic sprite drawing") ;
    write (0, 60,  60, 0, "2. Blending operations") ;
    write (0, 60,  70, 0, "3. Primitive drawing") ;
    write (0, 60,  80, 0, "4. Scroll interactive test") ;
    write (0, 60,  90, 0, "5. Mode 7 interactive test") ;
    write (0, 60, 100, 0, "6. Path-finding interactive test") ;
    write (0, 60, 110, 0, "7. Sound test") ;
    write (0, 60, 150, 0, "0. Exit") ;
    map = new_map (320, 200, 8) ;
    map_clear (0, map, 0) ;
    option = 0 ;
    REPEAT
        IF key(_1): option = 1; END
        IF key(_2): option = 2; END
        IF key(_3): option = 3; END
        IF key(_4): option = 4; END
        IF key(_5): option = 5; END
        IF key(_6): option = 6; END
        IF key(_7): option = 7; END
        IF key(_0): BREAK; END
        c = rgb (rand(32,128), rand(32,64), rand(32,64)) ;
        x = timer/5%100 ;
        IF (x > 50) x = 100-x; END
        xput (0, map, 160, 100, timer*-50, 200+x, 4, 0) ;
        FROM i = 0 TO 100
            map_put_pixel (0, map, rand(0,320), rand(0, 200), c) ;
            map_put_pixel (0, map, rand(0,320), rand(0, 200), 1) ;           
        END
        FRAME ;
    UNTIL option != 0;
    unload_map(0, map) ;
END

PROCESS Header(string title)
BEGIN
    delete_text (0) ;
    write     (0, 160,  4, 1, title) ;
    write     (0, 155, 15, 2, "FPS:") ;
    write_int (0, 165, 15, 0, &fps) ;
    write     (0, 155, 25, 2, "Speed %:") ;
    write_int (0, 165, 25, 0, &speed_gauge) ;
    write     (0, 160, 185, 1, "Press ESC to continue") ;
END

// ----------------------------------------------------------------------
// Simple sprite drawing
// ----------------------------------------------------------------------
PROCESS FallingObject(graph, size, flags, angleinc)
PRIVATE xspeed, yspeed, inispeed ;
BEGIN
    z      = rand (-5, 125) ;
    x      = rand (15, 305) ;
    y      = - rand (20, 100) ;
    xspeed = rand (-10, 10) ;
    yspeed = rand (-4, 0) ;
    inispeed = rand (10, 15) ;
    angle  = rand (0, 50 * angleinc) ;
    LOOP
        alpha = timer;
        x += xspeed ;
        IF (x > 305 || x < 15) xspeed = -xspeed; END
        y += yspeed++ ;
        IF (yspeed < -14) yspeed = -14; END
        IF (y > 180)
            yspeed = -inispeed ;
            IF (inispeed > 1)
                inispeed--;
            ELSE
                inispeed = 15;
            END
        END
        IF (out_region(ID, 0)) y = -rand(20, 100) ; inispeed = 15 ; END

        angle += angleinc ;
        FRAME ;
    END
END



PROCESS FallingObjects()
BEGIN
    set_mode (320, 200, 16);
    put_screen (0, 1);

    Header ("400 sprites") ;
   FROM x = 0 TO 400
      FallingObject(100, 100, 0, 0);
    END;
    WHILE !key(_ESC): FRAME; END;
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 rotating sprites") ;
    FROM x = 0 TO 100: FallingObject(101, 100, 0, rand(500,1000)); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 sprites with transparency") ;
    FROM x = 0 TO 100: FallingObject(100, 100, 4, 0); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 scaled up sprites") ;
    FROM x = 0 TO 100: FallingObject(100, 150, 0, 0); END
   WHILE !key(_ESC): FRAME; END
END



// ----------------------------------------------------------------------
// Blendop tests
// ----------------------------------------------------------------------

PROCESS BlendedObject (x, y, string text, string text2, int flags, blendop)
BEGIN
    write (0, x, y+32, 4, text) ;
    write (0, x, y+40, 4, text2) ;
    angle = 1000 ;
    size = 150 ;
    graph = 101 ;
    LOOP
        angle += 2000 ;
        FRAME ;
    END
END

PROCESS BlendedObjects()
BEGIN
    graph_mode = mode_16bits ;
    set_mode (320,200,16) ;
    put_screen (0, 1) ;
    Header ("Blit flags") ;
    BlendedObject (60, 65, "Normal", "", 0, 0) ;
    BlendedObject (160, 65, "H-Mirror", "", 1, 0) ;
    BlendedObject (260, 65, "V-Mirror", "", 2, 0) ;
    BlendedObject (60, 135, "Normal", "Transparency", 4, 0) ;
    BlendedObject (160, 135, "H-Mirror", "Transparency", 5, 0) ;
    BlendedObject (260, 135, "No key", "", 128, 0) ;
    WHILE !scan_code: FRAME; END
    scan_code = 0 ;
    signal (TYPE BlendedObject, S_KILL) ;
    Header ("Blending operations") ;
    blendop = blendop_new() ;
    blendop_translucency (blendop, 0.70) ;
    BlendedObject (60, 65, "Transparency", "(70%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    BlendedObject (160, 65, "Grayscale", "(Luminance)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 2.00) ;
    BlendedObject (260, 65, "Lighting", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_tint (blendop, 0.50, 255, 0, 0) ;
    BlendedObject (60, 135, "Red tint", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 0.75) ;
    BlendedObject (160, 135, "Darkening", "(25%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    blendop_intensity (blendop, 3.0) ;
    blendop_swap (blendop);
    BlendedObject (260, 135, "Inverted", "(Grayscale)", 0, blendop) ;
    WHILE !scan_code: FRAME; END
    fade_off() ;
    graph_mode = 0 ;
    set_mode (320,200,16) ;
END

// ----------------------------------------------------------------------
// Primitive drawing
// ----------------------------------------------------------------------

PROCESS PrimitiveTests()
PRIVATE
    map, color, i ;
    word POINTER ptr ;
BEGIN
    load_fpg   ("test.fpg") ;
    Header ("Primitive drawing") ;
    graph = new_map (400, 400, 8) ;
    set_center (0, graph, 200, 200) ;
    drawing_map (0, graph) ;
    x = 160 ; y = 100 ; flags = 4 ;
    REPEAT
        drawing_color (rgb (rand(0,255), rand(0,255), rand(0,255))) ;
        draw_fcircle  (rand(0,399), rand(0,399), rand(0,25)) ;
        draw_rect     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_line     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_circle   (rand(0,399), rand(0,399), rand(0,100)) ;
        FRAME ;
        angle += 1000 ;
    UNTIL scan_code;
    unload_map (0, graph) ;
END

// ----------------------------------------------------------------------
// Scrolling
// ----------------------------------------------------------------------
PROCESS ScrollSphere (x, y, graph)
BEGIN
    priority = 100 ;
    ctype = c_scroll;
    LOOP
        IF (key(_right)) x += 4 ; END
        IF (key(_left))  x -= 4 ; END
        IF (key(_down))  y += 4 ; END
        IF (key(_up))    y -= 4 ; END
        IF (key(_space)) x = y = 0 ; END
        FRAME;
    END
END

PROCESS ScrollTriangle (follow, angle)
BEGIN
    priority = 101 ;
    graph = 102 ;
    ctype = c_scroll ;
    LOOP
        x = follow.x + get_distx (angle, 40) ;
        y = follow.y + get_disty (angle, 40) ;
        angle += 185000 ;
        FRAME ;
        angle -= 180000 ;
    END
END

PROCESS ScrollTest()
BEGIN
    define_region (1,   0,   0, 160, 100) ;
    define_region (2,   0, 100, 160, 100) ;
    define_region (3, 160,   0, 160, 100) ;
    define_region (4, 160, 100, 160, 100) ;
    start_scroll(0, 0, 200, 1, 1, 15);
    start_scroll(1, 0, 200, 1, 2, 15);
    start_scroll(2, 0, 200, 1, 3, 15);
    start_scroll(3, 0, 200, 1, 4, 15);
    scroll[0].camera = ScrollSphere (160, 100, 100) ;
    scroll[1].camera = ScrollTriangle (scroll[0].camera, 0) ;
    scroll[2].camera = ScrollTriangle (scroll[0].camera, 120000) ;
    scroll[3].camera = ScrollTriangle (scroll[0].camera, 240000) ;
    scroll[0].ratio  = 400 ;
    scroll[1].ratio  = 800 ;
    scroll[2].ratio  = 50 ;
    scroll[3].ratio  = 2000 ;
    scroll[0].speed  = 3 ;
    scroll[0].flags1 = 4 ;
    scroll[1].flags1 = 4 ;
    scroll[2].flags1 = 4 ;
    scroll[3].flags1 = 4 ;
    scroll[0].flags2 = 129 ;
    scroll[1].flags2 = 129 ;
    scroll[2].flags2 = 129 ;
    scroll[3].flags2 = 129 ;
    Header ("Scroll test") ;
    REPEAT: FRAME; UNTIL key(_esc);
    fade_off() ;
    stop_scroll(0) ;
    stop_scroll(1) ;
    stop_scroll(2) ;
    stop_scroll(3) ;
END





// ----------------------------------------------------------------------
// Mode 7
// ----------------------------------------------------------------------


PROCESS Mode7Object (x, y, graph)
PRIVATE
    speed = -1 ;
BEGIN
    ctype = c_m7 ;
    cnumber = 1 ;
    height = rand (0, 16) ;
    resolution = 4 ;
    x *= 4 ; y *= 4 ;
    LOOP
        IF height > 0 && speed > -8: speed-- ; END
        height += speed ;
        IF (height < 0)
            height = 0 ;
            speed = rand(5, 15) ;
        END
        FRAME;
    END
END

PROCESS Mode7Test()
PRIVATE
    a, b ;
BEGIN
    put_screen (0, 1) ;
    Header ("Mode 7 - Press cursor keys, Q, W, A, Z") ;
    start_mode7 (0, 0, 1, 0, 0, 64) ;
    start_mode7 (1, 0, 0, 200, 0, 64) ;

    m7[0].distance = 0 ;
    m7[0].camera = id ;
    m7[0].height = 90 ;

    m7[1].distance = 0 ;
    m7[1].camera = id ;
    m7[1].height = 80 ;
    m7[1].flags  = 4 ;

    resolution = 100 ;
    FROM a = 0 TO 64 Step 16
        FROM b = 0 TO 64 Step 16
            Mode7Object (a, b, 100) ;
        END
    END
    FRAME;
    LOOP
        m7[0].z = m7[0].height ;
        m7[1].z = m7[1].height ;
        IF (m7.height < 0)
            m7[0].z = -m7[0].height ;
            m7[1].z = -m7[1].height ;
        END
        IF (key(_up))   advance(200) ; END
        IF (key(_down)) advance(-200) ; END
        IF (key(_left)) angle += 2000 ; END
        IF (key(_right)) angle -= 2000 ;END
        IF (key(_a)) m7.height+=2 ; m7[1].height+=2 ; END
        IF (key(_z)) m7.height-=2 ; m7[1].height-=2 ; END
        IF (key(_q)) xadvance(angle+90000, 200) ; END
        IF (key(_w)) xadvance(angle-90000, 200) ; END
        scan_code = 0 ;
        FRAME ;
        IF key(_esc): BREAK; END
    END
    fade_off() ;
    stop_mode7(0) ;
    stop_mode7(1) ;
END



// ----------------------------------------------------------------------
// Path-finding
// ----------------------------------------------------------------------

CONST
    width   = 64 ;
    height  = 32 ;

GLOBAL
    int     graphic ;
    int     title ;
    int     wall_color ;
    int     start_color ;
    int     end_color ;
    int     color_ruta ;
    int     last_x, last_y ;
    int     start_x, start_y ;
    int     end_x, end_y ;

PROCESS ClearRoute ()
PRIVATE
    byte POINTER ptr ;
    int pitch ;
BEGIN
    ptr = map_buffer (0, graphic) ;
    pitch = graphic_info(0, graphic, G_PITCH) ;
    FROM y = 0 TO HEIGHT:
        ptr = map_buffer(0,graphic) ;
        ptr += pitch * y ;
        FROM x = 0 TO WIDTH:
            IF [ptr] == color_ruta: [ptr] = 0; END
            ptr++ ;
        END
    END
END

PROCESS Reset()
BEGIN
    drawing_color (0) ;
    draw_box (0, 0, WIDTH, HEIGHT) ;
    drawing_color (wall_color) ;
    draw_rect (0, 0, WIDTH, HEIGHT) ;
    start_x = WIDTH/4 ;
    end_x = WIDTH*3/4 ;
    start_y = HEIGHT/2 ;
    end_y = HEIGHT/2 ;
    map_put_pixel (0, graphic, start_x, start_y, start_color) ;
    map_put_pixel (0, graphic, end_x, end_y, end_color) ;
END



PROCESS PathFinding()
BEGIN
    mouse.graph = 200 ;
    graphic = new_map (WIDTH, HEIGHT, 8) ;
    wall_color = rgb (196, 196, 196) ;
    start_color = rgb (255, 0, 0) ;
    end_color = rgb (0, 0, 255) ;
    color_ruta = rgb (128, 64, 128) ;
    drawing_map (0, graphic) ;
    Reset() ;
    title = write (0, 160, 4, 1, "Path finding") ;
    write (0, 160, 180, 1, "Draw walls with the mouse") ;
    write (0, 160, 190, 1, "(S) start (E) end (R) reset (SPACE) go") ;
    last_x = mouse.x / 4 ;
    last_y = mouse.y / 4 ;
    WHILE !key(_esc):
        clear_screen() ;
        xput (0, graphic, 160, 100, 0, 400, 0, 0) ;
        x = mouse.x / 4 - (40-WIDTH/2);
        y = mouse.y / 4 - (25-HEIGHT/2);

        IF mouse.left:
            drawing_color (wall_color) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, wall_color) ;
        END
        IF mouse.right:
            drawing_color (0) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, 0) ;
        END
        IF key(_s):
            ClearRoute() ;
            map_put_pixel (0, graphic, start_x, start_y, 0) ;
            start_x = x ; start_y = y ;
            map_put_pixel (0, graphic, x, y, start_color) ;
        END
        IF key(_r):
            Reset() ;
        END
        IF key(_e):
            ClearRoute() ;
            map_put_pixel (0, graphic, end_x, end_y, 0) ;
            end_x = x ; end_y = y ;
            map_put_pixel (0, graphic, x, y, end_color) ;
        END
        IF key(_space):
            FRAME ;
            ClearRoute() ;
            IF !path_find(0, graphic, start_x, start_y,
                end_x, end_y, PF_NODIAG):
                delete_text(title) ;
                title = write (0, 160, 6, 1, "The path is blocked") ;
            ELSE:
                FRAME ;
                clear_screen() ;
                delete_text(title) ;
                title = write (0, 160, 6, 1, "Path found in " + (speed_gauge*60/100) + " ms") ;
                set_fps (60, 0) ;
                WHILE path_getxy(&x, &y):
                    map_put_pixel (0, graphic, x, y, color_ruta) ;
                    xput (0, graphic, 160, 100, 0, 400, 128, 0) ;
                    FRAME ;
                END
                set_fps (60, 0) ;
                map_put_pixel (0, graphic, start_x, start_y, start_color) ;
                map_put_pixel (0, graphic, end_x, end_y, end_color) ;
            END
            WHILE key(_space): FRAME; END
        END
        IF key(_esc): BREAK; END
        last_x = x ;
        last_y = y ;
        FRAME ;
    END
    unload_map (0, graphic) ;
    fade_off() ;
END

// ------------------------------------------------------------------------
// Sound test
// ------------------------------------------------------------------------



PROCESS SoundTest()
PRIVATE
    int pat, pos, vol, time, md ;
BEGIN
    header ("Sound test") ;
    md = load_song("../media/game.s3m") ;
    play_song (md,-1) ;
    vol = 128 ;
    WHILE is_playing_song() AND scan_code != _esc:
        FRAME ;
    END
    WHILE is_playing_song() AND vol > 0:
        FRAME ;
        set_song_volume ( vol -= 2) ;
    END
    stop_song() ;
    unload_song(md) ;
END

// ----------------------------------------------------------------------

PRIVATE proc ;
BEGIN
    FULL_SCREEN = FALSE ;
    LOOP
        proc = Menu() ;
        WHILE exists(proc): FRAME; END
        fade_off() ;
        put_screen(0, 1) ;
        delete_text(0) ;
        fade_on() ;
        IF option == 0: BREAK; END
        SWITCH (option)
            CASE 1: proc = FallingObjects(); END
            CASE 2: proc = BlendedObjects(); END
            CASE 3: proc = PrimitiveTests(); END
            CASE 4: proc = ScrollTest(); END
            CASE 5: proc = Mode7Test(); END
            CASE 6: proc = PathFinding(); END
            CASE 7: proc = SoundTest(); END
        END
        WHILE exists(proc): FRAME; END
        fade_off() ;
        let_me_alone() ;
        clear_screen() ;
        delete_text(0) ;
        fade_on() ;
    END
END
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 07:01:57 PM
por que no pudiste compilarlo? solo tenes que hacer los imports...


// --------------------------------------------------------------------------
// Bennu Tests                                         2000 José Luis Cebrián
// --------------------------------------------------------------------------

#ifndef __VERSION__
    import "mod_sdlevthandler";
    import "mod_pathfind";
#else
    import "mod_blendop";
    import "mod_text";
    import "mod_grproc";
    import "mod_video";
    import "mod_map";
    import "mod_screen";
    import "mod_path";
    import "mod_rand";
    import "mod_say";
    import "mod_mouse";
    import "mod_scroll";
    import "mod_math";
#endif

import "mod_m7";
import "mod_proc";
import "mod_key";
import "mod_draw";
import "mod_timers";
import "mod_sound";

#define SCR_DEPTH   16

GLOBAL option ;

PROCESS Menu()
PRIVATE i, c, map ;
BEGIN
    set_mode(320,200,SCR_DEPTH);
    load_fpg ("test.fpg") ;
    set_fps (0, 0) ;
    write (0, 160,  4, 1, "Bennu tests") ;
    write (0, 160, 14, 1, "Select your option") ;
    write (0, 60,  50, 0, "1. Basic sprite drawing") ;
    write (0, 60,  60, 0, "2. Blending operations") ;
    write (0, 60,  70, 0, "3. Primitive drawing") ;
    write (0, 60,  80, 0, "4. Scroll interactive test") ;
    write (0, 60,  90, 0, "5. Mode 7 interactive test") ;
    write (0, 60, 100, 0, "6. Path-finding interactive test") ;
    write (0, 60, 110, 0, "7. Sound test") ;
    write (0, 60, 150, 0, "0. Exit") ;

    map = new_map (320, 200, 8) ;
    map_clear (0, map, 0) ;
    option = 0 ;
    REPEAT
        IF key(_1): option = 1; END
        IF key(_2): option = 2; END
        IF key(_3): option = 3; END
        IF key(_4): option = 4; END
        IF key(_5): option = 5; END
        IF key(_6): option = 6; END
        IF key(_7): option = 7; END
        IF key(_0): BREAK; END
        c = rgb (rand(32,128), rand(32,64), rand(32,64)) ;
        x = timer/5%100 ;
        IF (x > 50) x = 100-x; END
        xput (0, map, 160, 100, timer*-50, 200+x, 4, 0) ;
        FROM i = 0 TO 100;
            map_put_pixel (0, map, rand(0,320), rand(0, 200), c) ;
            map_put_pixel (0, map, rand(0,320), rand(0, 200), 1) ;
        END
        FRAME ;
    UNTIL option != 0;
    unload_map(0, map) ;
END

PROCESS Header(string title)
private
w, h;
BEGIN
    delete_text (0) ;

    w = graphic_info(0, 0, G_WIDTH) ;
    h = graphic_info(0, 0, G_HEIGHT) ;

    write     (0, w/2,  4, 1, title) ;
    write     (0, w/2-15, 15, 2, "FPS:") ;
    write_int (0, w/2+10, 15, 0, &fps) ;
    write     (0, w/2-15, 25, 2, "Speed %:") ;
    write_int (0, w/2+10, 25, 0, &speed_gauge) ;
    write     (0, w/2, h-20, 1, "Press ESC to continue") ;
END

// ----------------------------------------------------------------------
// Simple sprite drawing
// ----------------------------------------------------------------------

PROCESS FallingObjects()
BEGIN
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1);

    Header ("400 sprites") ;

    FROM x = 0 TO 400; FallingObject(100, 100, 0, 0); END
    WHILE !key(_ESC); FRAME; END;
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC); FRAME; END;
    Header ("100 rotating sprites") ;
    FROM x = 0 TO 100; FallingObject(101, 100, 0, rand(500,1000)); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 sprites with transparency") ;
    FROM x = 0 TO 100; FallingObject(100, 100, 4, 0); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 scaled up sprites") ;
    FROM x = 0 TO 100; FallingObject(100, 120, 0, 0); END
    WHILE !key(_ESC): FRAME; END
END

PROCESS FallingObject(graph, size, flags, angleinc)
PRIVATE xspeed, yspeed, inispeed ;
BEGIN
    z      = rand (-5, 125) ;
    x      = rand (15, 305) ;
    y      = - rand (20, 100) ;
    xspeed = rand (-10, 10) ;
    yspeed = rand (-4, 0) ;
    inispeed = rand (10, 15) ;
    angle  = rand (0, 50 * angleinc) ;
    LOOP
        alpha = timer;

        x += xspeed ;
        IF (x > 305 || x < 15) xspeed = -xspeed; END
        y += yspeed++ ;
        IF (yspeed < -14) yspeed = -14; END
        IF (y > 180)
            yspeed = -inispeed ;
            IF (inispeed > 1)
                inispeed--;
            ELSE
                inispeed = 15;
            END
        END

        IF (out_region(ID, 0)) y = -rand(20, 100) ; inispeed = 15 ; END

        angle += angleinc ;
        FRAME ;
    END
END

// ----------------------------------------------------------------------
// Blendop tests
// ----------------------------------------------------------------------

PROCESS BlendedObject (x, y, string text, string text2, int flags, blendop)
BEGIN
    write (0, x, y+32, 4, text) ;
    write (0, x, y+40, 4, text2) ;
    angle = 1000 ;
    size = 150 ;
    graph = 101 ;
    LOOP
        angle += 2000 ;
        FRAME ;
    END
END

PROCESS BlendedObjects()
BEGIN
//    graph_mode = mode_16bits ;
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1) ;
    Header ("Blit flags") ;
    BlendedObject (60, 65, "Normal", "", 0, 0) ;
    BlendedObject (160, 65, "H-Mirror", "", 1, 0) ;
    BlendedObject (260, 65, "V-Mirror", "", 2, 0) ;
    BlendedObject (60, 135, "Normal", "Transparency", 4, 0) ;
    BlendedObject (160, 135, "H-Mirror", "Transparency", 5, 0) ;
    BlendedObject (260, 135, "No key", "", 128, 0) ;
    WHILE  !key(_ESC); FRAME; END;
    scan_code = 0 ;
    signal (TYPE BlendedObject, S_KILL) ;
    Header ("Blending operations") ;
    blendop = blendop_new() ;
    blendop_translucency (blendop, 0.70) ;
    BlendedObject (60, 65, "Transparency", "(70%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    BlendedObject (160, 65, "Grayscale", "(Luminance)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 2.00) ;
    BlendedObject (260, 65, "Lighting", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_tint (blendop, 0.50, 255, 0, 0) ;
    BlendedObject (60, 135, "Red tint", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 0.75) ;
    BlendedObject (160, 135, "Darkening", "(25%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    blendop_intensity (blendop, 3.0) ;
    blendop_swap (blendop);
    BlendedObject (260, 135, "Inverted", "(Grayscale)", 0, blendop) ;
    WHILE  key(_ESC); FRAME; END;
    WHILE  !key(_ESC); FRAME; END;
    fade_off() ; while (fading); frame; end;
    set_mode (320, 200, SCR_DEPTH);
END

// ----------------------------------------------------------------------
// Primitive drawing
// ----------------------------------------------------------------------

PROCESS PrimitiveTests()
PRIVATE
    map, color, i ;
    word POINTER ptr ;
BEGIN
//    load_fpg ("test.fpg") ;
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1) ;
    Header ("Primitive drawing") ;
    graph = new_map (400, 400, 8) ;
    set_center (0, graph, 200, 200) ;
    drawing_map (0, graph) ;
    x = 160 ; y = 100 ; flags = 4 ;
    REPEAT
        drawing_color (rgb (rand(0,255), rand(0,255), rand(0,255))) ;
        draw_fcircle  (rand(0,399), rand(0,399), rand(0,25)) ;
        draw_rect     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_line     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_circle   (rand(0,399), rand(0,399), rand(0,100)) ;
        FRAME ;
        angle += 1000 ;
    UNTIL scan_code;
    unload_map (0, graph) ;
END

// ----------------------------------------------------------------------
// Scrolling
// ----------------------------------------------------------------------

PROCESS ScrollTest()
BEGIN

    set_mode(640,480,SCR_DEPTH);

    define_region (1,   0,   0, 320, 240) ;
    define_region (2,   0, 240, 320, 240) ;
    define_region (3, 320,   0, 320, 240) ;
    define_region (4, 320, 240, 320, 240) ;

    define_region (5,  80,  80, 160,  80) ;

    start_scroll(0, 0, 200, 1, 1, 15);
    start_scroll(1, 0, 200, 1, 2, 15);
    start_scroll(2, 0, 200, 1, 3, 15);
    start_scroll(3, 0, 200, 1, 4, 15);

    scroll[0].camera = ScrollSphere (160, 100, 100) ;
    scroll[1].camera = ScrollTriangle (scroll[0].camera, 0) ;
    scroll[2].camera = ScrollTriangle (scroll[0].camera, 120000) ;
    scroll[3].camera = ScrollTriangle (scroll[0].camera, 240000) ;

/*
    scroll[0].ratio  = 400 ;
    scroll[1].ratio  = 800 ;
    scroll[2].ratio  = 50 ;
    scroll[3].ratio  = 2000 ;
*/

    scroll[0].region1 = 5 ;
    scroll[0].region2 = 1 ;

    scroll[0].ratio  = 100 ;
    scroll[1].ratio  = 100 ;
    scroll[2].ratio  = 100 ;
    scroll[3].ratio  = 100 ;

    scroll[0].speed  = 3 ;
    scroll[1].speed  = 3 ;
    scroll[2].speed  = 3 ;
    scroll[3].speed  = 3 ;

    scroll[0].flags1 = B_TRANSLUCENT ;
    scroll[1].flags1 = B_TRANSLUCENT ;
    scroll[2].flags1 = B_TRANSLUCENT ;
    scroll[3].flags1 = B_TRANSLUCENT ;

    scroll[0].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[1].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[2].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[3].flags2 = B_NOCOLORKEY | B_HMIRROR;

    Header ("Scroll test") ;

    REPEAT: FRAME; UNTIL key(_esc);

    fade_off() ; while (fading); frame; end;

    stop_scroll(0) ;
    stop_scroll(1) ;
    stop_scroll(2) ;
    stop_scroll(3) ;

    set_mode(320,200,SCR_DEPTH);
END

PROCESS ScrollSphere (x, y, graph)
BEGIN
    priority = 101 ;
    ctype = c_scroll;
    LOOP
        IF (key(_right)) x += 4 ; END
        IF (key(_left))  x -= 4 ; END
        IF (key(_down))  y += 4 ; END
        IF (key(_up))    y -= 4 ; END
        IF (key(_space)) x = y = 0 ; END
        FRAME;
    END
END

PROCESS ScrollTriangle (follow, angle)
BEGIN
    priority = 100 ;
    graph = 102 ;
    ctype = c_scroll ;
    LOOP
        x = follow.x + get_distx (angle, 40) ;
        y = follow.y + get_disty (angle, 40) ;
        angle += 185000 ;
        FRAME ;
        angle -= 180000 ;
    END
END

// ----------------------------------------------------------------------
// Mode 7
// ----------------------------------------------------------------------

PROCESS Mode7Test()
PRIVATE
    a, b ;
BEGIN
    set_mode(320,200,8);
    put_screen (0, 1) ;
    Header ("Mode 7 - Press cursor keys, Q, W, A, Z") ;
    start_mode7 (0, 0, 1, 0, 0, 64) ;
    start_mode7 (1, 0, 0, 200, 0, 64) ;

    m7[0].distance = 0 ;
    m7[0].camera = id ;
    m7[0].height = 90 ;

    m7[1].distance = 0 ;
    m7[1].camera = id ;
    m7[1].height = 80 ;
    m7[1].flags  = 4 ;

    resolution = 100 ;

    FROM a = 0 TO 64 Step 16;
        FROM b = 0 TO 64 Step 16;
            Mode7Object (a, b, 100) ;
        END
    END

    FRAME;

    LOOP
        m7[0].z = m7[0].height ;
        m7[1].z = m7[1].height ;
        IF (m7.height < 0)
            m7[0].z = -m7[0].height ;
            m7[1].z = -m7[1].height ;
        END
        IF (key(_up))   advance(200) ; END
        IF (key(_down)) advance(-200) ; END
        IF (key(_left)) angle += 2000 ; END
        IF (key(_right)) angle -= 2000 ;END
        IF (key(_a)) m7.height+=2 ; m7[1].height+=2 ; END
        IF (key(_z)) m7.height-=2 ; m7[1].height-=2 ; END
        IF (key(_q)) xadvance(angle+90000, 200) ; END
        IF (key(_w)) xadvance(angle-90000, 200) ; END
        scan_code = 0 ;
        FRAME ;
        IF key(_esc): BREAK; END
    END
    fade_off() ; while (fading); frame; end;

    stop_mode7(1) ;
    stop_mode7(0) ;

    set_mode(320,200,SCR_DEPTH);
END

PROCESS Mode7Object (x, y, graph)
PRIVATE
    speed = -1 ;
BEGIN
    ctype = c_m7 ;
    cnumber = 1 ;
    height = rand (0, 16) ;
    resolution = 4 ;
    x *= 4 ; y *= 4 ;
    LOOP
        IF height > 0 && speed > -8: speed-- ; END
        height += speed ;
        IF (height < 0)
            height = 0 ;
            speed = rand(5, 15) ;
        END
        FRAME;
    END
END

// ----------------------------------------------------------------------
// Path-finding
// ----------------------------------------------------------------------

CONST
    width   = 64 ;
    height  = 32 ;

GLOBAL
    int     graphic ;
    int     title ;
    int     wall_color ;
    int     start_color ;
    int     end_color ;
    int     color_ruta ;
    int     last_x, last_y ;
    int     start_x, start_y ;
    int     end_x, end_y ;

PROCESS ClearRoute ()
PRIVATE
    byte POINTER ptr ;
    int pitch ;
BEGIN
    ptr = map_buffer (0, graphic) ;
    pitch = graphic_info(0, graphic, G_PITCH) ;
    FROM y = 0 TO HEIGHT;
        ptr = map_buffer(0,graphic) ;
        ptr += pitch * y ;
        FROM x = 0 TO WIDTH;
            IF [ptr] == color_ruta: [ptr] = 0; END
            ptr++ ;
        END
    END
END

PROCESS Reset()
BEGIN
    drawing_color (0) ;
    draw_box (0, 0, WIDTH, HEIGHT) ;
    drawing_color (wall_color) ;
    draw_rect (0, 0, WIDTH, HEIGHT) ;
    start_x = WIDTH/4 ;
    end_x = WIDTH*3/4 ;
    start_y = HEIGHT/2 ;
    end_y = HEIGHT/2 ;
    map_put_pixel (0, graphic, start_x, start_y, start_color) ;
    map_put_pixel (0, graphic, end_x, end_y, end_color) ;
END

PROCESS PathFinding()
BEGIN
    mouse.graph = 200 ;
    graphic = new_map (WIDTH, HEIGHT, 8) ;
    wall_color = rgb (196, 196, 196) ;
    start_color = rgb (255, 0, 0) ;
    end_color = rgb (0, 0, 255) ;
    color_ruta = rgb (128, 64, 128) ;
    drawing_map (0, graphic) ;
    Reset() ;
    title = write (0, 160, 4, 1, "Path finding") ;
    write (0, 160, 180, 1, "Draw walls with the mouse") ;
    write (0, 160, 190, 1, "(S) start (E) end (R) reset (SPACE) go") ;
    last_x = mouse.x / 4 ;
    last_y = mouse.y / 4 ;
    WHILE !key(_esc):
        clear_screen() ;
        xput (0, graphic, 160, 100, 0, 400, 0, 0) ;
        x = mouse.x / 4 - (40-WIDTH/2);
        y = mouse.y / 4 - (25-HEIGHT/2);

        IF mouse.left:
            drawing_color (wall_color) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, wall_color) ;
        END
        IF mouse.right:
            drawing_color (0) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, 0) ;
        END
        IF key(_s):
            ClearRoute() ;
            map_put_pixel (0, graphic, start_x, start_y, 0) ;
            start_x = x ; start_y = y ;
            map_put_pixel (0, graphic, x, y, start_color) ;
        END
        IF key(_r):
            Reset() ;
        END
        IF key(_e):
            ClearRoute() ;
            map_put_pixel (0, graphic, end_x, end_y, 0) ;
            end_x = x ; end_y = y ;
            map_put_pixel (0, graphic, x, y, end_color) ;
        END
        IF key(_space):
            FRAME ;
            ClearRoute() ;
            IF !path_find(0, graphic, start_x, start_y, end_x, end_y, PF_NODIAG):
                delete_text(title) ;
                title = write (0, 160, 6, 1, "The path is blocked") ;
            ELSE:
                FRAME ;
                clear_screen() ;
                delete_text(title) ;
                title = write (0, 160, 6, 1, "Path found in " + (speed_gauge*60/100) + " ms") ;
                set_fps (0, 0) ;
                WHILE path_getxy(&x, &y):
                    map_put_pixel (0, graphic, x, y, color_ruta) ;
                    xput (0, graphic, 160, 100, 0, 400, 128, 0) ;
                    FRAME ;
                END
                set_fps (0, 0) ;
                map_put_pixel (0, graphic, start_x, start_y, start_color) ;
                map_put_pixel (0, graphic, end_x, end_y, end_color) ;
            END
            WHILE key(_space): FRAME; END
        END
        IF key(_esc): BREAK; END
        last_x = x ;
        last_y = y ;
        FRAME ;
    END
    unload_map (0, graphic) ;
    fade_off() ; while (fading); frame; end;
END

// ------------------------------------------------------------------------
// Sound test
// ------------------------------------------------------------------------

PROCESS SoundTest()
PRIVATE
    int pat, pos, vol, time, md ;
BEGIN
    header ("Sound test") ;
    md = load_song("game.s3m") ;
    play_song (md,-1) ;
    vol = 128 ;
    WHILE is_playing_song() AND scan_code != _esc:
        FRAME ;
    END
    WHILE is_playing_song() AND vol > 0:
        FRAME ;
        set_song_volume ( vol -= 2) ;
    END
    stop_song() ;
    unload_song(md) ;
END

// ----------------------------------------------------------------------

PRIVATE proc ;
BEGIN
    FULL_SCREEN = FALSE ;
    LOOP
        proc = Menu() ;
        WHILE exists(proc): FRAME; END
        fade_off() ; while (fading); frame; end;
        put_screen(0, 1) ;
        delete_text(0) ;
        fade_on() ; while (fading); frame; end;
        IF option == 0: BREAK; END
        SWITCH (option)
            CASE 1: proc = FallingObjects(); END
            CASE 2: proc = BlendedObjects(); END
            CASE 3: proc = PrimitiveTests(); END
            CASE 4: proc = ScrollTest(); END
            CASE 5: proc = Mode7Test(); END
            CASE 6: proc = PathFinding(); END
            CASE 7: proc = SoundTest(); END
        END
        WHILE exists(proc): FRAME; END
        fade_off() ; while (fading); frame; end;
        let_me_alone() ;
        clear_screen() ;
        delete_text(0) ;
        fade_on() ;
    END
END
Title: Re: Avances, Diario de...
Post by: TYCO on October 03, 2008, 07:22:51 PM
Tiene buena pinta, la gota de agua queda muy bonita, el Zoom (+,-) no funciona, y ver asi el efecto espejado gusta.

Por otro lado a ver porque estre codigo no muestra un cuadrado blanco con un rectagulo rojo como cola. Probado en la WIP11, en la WIP10a tampoco va.

Program Pruebas;

Global

int fpg1;
int fpg2;

int map1;
int map2;

Begin
    set_mode(320,200,8);

// El FPG es el de los TESTS de siempre
    fpg1=load_fpg("test.fpg");
//    fpg2=load_fpg("test16.fpg");

    put_screen(fpg1,1);

    graph=map1=new_map(20,20,100);//rgb(255,255,255));

    x=160;
    y=100;

    sombra(x,y,angle);

    While (NOT key(_esc))
        IF (key(_right))
    angle-=5000;
        END
        IF (key(_left))
    angle+=5000;
        END
        IF (key(_down))
    advance(-5);
        END
        IF (key(_up))
    advance(5);
        END
        Frame;
    End
End

Process sombra (x, y, angle)

Begin
flags=5;
graph=map2=new_map(30,10,200);//rgb(255,0,0));
While (NOT key(_esc))
x=father.x;
y=father.y;
angle=father.angle;
advance(-20);
Frame;
End
End
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 07:29:28 PM
no es el + y - del teclado numerico, es el + y - al lado del backspace.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 03, 2008, 07:35:11 PM
Quote from: TYCO on October 03, 2008, 07:22:51 PM
Tiene buena pinta, la gota de agua queda muy bonita, el Zoom (+,-) no funciona, y ver asi el efecto espejado gusta.

Por otro lado a ver porque estre codigo no muestra un cuadrado blanco con un rectagulo rojo como cola. Probado en la WIP11, en la WIP10a tampoco va.

Program Pruebas;

Global

int fpg1;
int fpg2;

int map1;
int map2;

Begin
    set_mode(320,200,8);

// El FPG es el de los TESTS de siempre
    fpg1=load_fpg("test.fpg");
//    fpg2=load_fpg("test16.fpg");

    put_screen(fpg1,1);

    graph=map1=new_map(20,20,100);//rgb(255,255,255));

    x=160;
    y=100;

    sombra(x,y,angle);

    While (NOT key(_esc))
        IF (key(_right))
    angle-=5000;
        END
        IF (key(_left))
    angle+=5000;
        END
        IF (key(_down))
    advance(-5);
        END
        IF (key(_up))
    advance(5);
        END
        Frame;
    End
End

Process sombra (x, y, angle)

Begin
flags=5;
graph=map2=new_map(30,10,200);//rgb(255,0,0));
While (NOT key(_esc))
x=father.x;
y=father.y;
angle=father.angle;
advance(-20);
Frame;
End
End


obviamente que no va a mostrar nada, mapas de 100 bits de profundidad por ahora no soportamos...
Title: Re: Avances, Diario de...
Post by: Danielo515 on October 03, 2008, 11:28:37 PM
Lo de la gota me ha dejado realmente impresionado, por fin podremos con bennu hacer todos esos programas multimedia que siempre quise con preciosas interfaces, adiós a los problemas de paletas e imágenes con colores raros ¡todo en 32 bits! viva el color, viva el preciosismo. Se me hace la boca agua...
Por cierto, la gota de agua es un mapa con esas transparencias aplicadas con un  programa de edición de imagen (es decir, es así y se respeta dentro de bennu) o es una gota corriente a la que le has aplicado por software como distintas capas de transparencias y demás historias?

Un saludo, y muchas gracias splinter.
Title: Re: Avances, Diario de...
Post by: DCelso on October 04, 2008, 12:11:20 AM
hola a todos, hay alguna forma de insertar los dlls en el ejecutable final?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 12:33:39 AM
Quote from: Danielo515 on October 03, 2008, 11:28:37 PM
Lo de la gota me ha dejado realmente impresionado, por fin podremos con bennu hacer todos esos programas multimedia que siempre quise con preciosas interfaces, adiós a los problemas de paletas e imágenes con colores raros ¡todo en 32 bits! viva el color, viva el preciosismo. Se me hace la boca agua...
Por cierto, la gota de agua es un mapa con esas transparencias aplicadas con un  programa de edición de imagen (es decir, es así y se respeta dentro de bennu) o es una gota corriente a la que le has aplicado por software como distintas capas de transparencias y demás historias?

Un saludo, y muchas gracias splinter.

es un png con canales alpha a nivel pixel... hecho con un editor grafico comun y corriente...

en el ejemplo tenes el mapa que podes ver tranquilamente en cualquier editor...
Title: Re: Avances, Diario de...
Post by: darío on October 04, 2008, 01:53:33 AM
Uff, he estado unos 40 minutos para leerme toda la información de este post... estaba bastante desactualizado...

Pero bueno quería decir que me alegro de que la cosa marche... 32 bits uhmm nice. Voy a jugar un poquillo con la WIP de bennu :).

Un saludo a los que se acuerden de mí! Cada vez que enciendo el ordenador me dan ganas de retomar viejos proyectos...

Danko (acá Darío)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 02:36:29 AM
hola dario, hacia tiempo que no te veia por aca... me alegra tu visita... saludos...
Title: Re: Avances, Diario de...
Post by: Danielo515 on October 04, 2008, 11:09:33 AM
debo entender que en modo 32 bits los degradados se verán más que majetes no? porque me acuerdo de un proyecto que tenía en fenix y que los degradados salian caca, y lo tuve que quitar.

Un saludo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 11:11:56 AM
muchas preguntas y pocas pruebas... prueba y lo veras con tus propios ojos...
Title: Re: Avances, Diario de...
Post by: blostec on October 04, 2008, 03:49:08 PM
He estado probando el ejemplo de 32 bits y las transparencias son alucinantes. Gran trabajo Splinter.

Disculpa mi ignorancia pero podrías explicarme esta linea del ejemplo:

depth = depth == 32 ? depth = 16 : 32 ;

Gracias!
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 04:41:01 PM
claro, esto es lo mismo que poner...


if (depth == 32)
   depth = 16;
else
   depth = 32;
end

Title: Re: Avances, Diario de...
Post by: blostec on October 04, 2008, 06:49:47 PM
Gracias, desconocía ese método para declarar un condicional.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 08:20:29 PM
Siguiendo con el trabajo

- Se corrigen varios temas con el bliteo de 32 bits (cuando se hacen combinaciones de map_put o map_xput con flags y otras combinaciones de mapas)
- Se modifica la rgb para que en el caso de 32bits retorne el rgba adecuado (con alpha al 100% o sea, 255)
- Se agrega correccion al soporte de vsync, ahora se usa directx para el vsync (por el momento solo windows, pero ya tengo las funciones para linux, solo que no tengo un linux nativo para probarlas... pero ya estara en su momento)
- Otros fixes varios que no recuerdo... (no me pidan recordar mucho, vengo durmiendo 2 horas por dia desde hace 2 meses...)
Title: Re: Avances, Diario de...
Post by: Makinor on October 04, 2008, 09:19:13 PM
Hola a todos y fantastico trabajo Splinter.

Una duda, porque en el fichero test.prg que ha posteado linkernel aparece muy lento y brusco el scroll a diferencia de tu ejemplo en la pagina de betas Splinter? y el modo 7 tambien aparece fatal y brusco?

Gracias y genial el trabajo.....

P.D. A ver si cuando saques la primera release pudieras pasar una recopilacion de cambios con respecto a Fenix porque a veces no se te puede seguir el ritmo. ;)
Title: Re: Avances, Diario de...
Post by: Makinor on October 04, 2008, 09:21:51 PM
Otra cuestion es que al parecer cuando ejecutas varias veces bennu se va volviendo algo brusco....se liberan bien los recursos? parece como si le costara a sdl...

Un abrazo
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 04, 2008, 10:11:49 PM
sinceramente no me pasa, es la primera persona que lo dice, los recursos se liberan todos, pero como sea, cuando uno cierra un programa los recursos se liberan automaticamente... actualmente en bennu solo se estan liberando por algun futuro desarrollo donde se necesite ejecutar varias veces el motor en casos donde la aplicacion no termine cuando termina el runtime... y este se pueda volver a ejucutar bajo ciertas condiciones...
por otro lado una cosa diferente es setear comportamientos y no volver a restaurarlos, pero los recursos se liberan al morir los programas, esto es siempre asi... salvo casos muy especificos de uso de memoria compartida y/o colas de algun tipo especifico... todas cosas que no usamos con bennu... pero si podes ser mas explicito ayudaria con el tema....
Title: Re: Avances, Diario de...
Post by: DCelso on October 05, 2008, 12:10:43 AM
nen, duerme un pokillo mas que lo recomendable son 8 a ver si nos keamos sin coder :D. Por cierto, serìa factible de no depender de SDL?, es dedir, usar Allegro u otra libreria que te abstaiga del HW pero que siga siendo trasnparente para el coder en bennu.
Por otra parte, repregunto si es posible con alguna opcion o programa externo insertar las dll necesarias en el exe final.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 05, 2008, 12:18:57 AM
cual es el problema con la SDL? estuve viendo algunas cosas de allegro y no me gustaron nada, los que conocen ambas librerias desaconsejan allegro...
no, las dlls son recuersos separados, el sistema operativo las tiene que cargar, y por eso no pueden ser metidas dentro del exe...
Title: Re: Avances, Diario de...
Post by: DCelso on October 05, 2008, 12:26:57 AM
Problema con SDL?. Ninguno,simplemente digo tener opciones, usar directx del tiron u opengl o alternativas de cualquier índole, no se allegro es clavadito a SDL, si alguien dice que es peor, es
simplemente porque no ve sus cosas buenas. nada es peor o mejor solo son formas distintas de realiza una solución ambas tendran eficiencia en cosas distintas a las otras, no creo que tú con la solera que demuestras tener seas capaz de declinarte por una o por otra objetivamente :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 05, 2008, 03:36:35 AM
bien... tenemos que recordar que no solo el video es lo que ofrece SDL, y SDL actualmente se usa para muchas cosas, no solo para el video... de hecho es muy poco lo que se usa del video SDL...

Opengl, por supuesto, pero esto no quitara la dependencia de SDL, ya que se usa para cosas como el teclado, mouse, sonido, y otras tantas cosas mas...
Title: Re: Avances, Diario de...
Post by: Drumpi on October 08, 2008, 10:33:55 AM
Quote from: Makinor on October 04, 2008, 09:19:13 PM
P.D. A ver si cuando saques la primera release pudieras pasar una recopilacion de cambios con respecto a Fenix porque a veces no se te puede seguir el ritmo. ;)

Me uno a la petición, porque agosto sin internet me ha dejado muchísimo que leer, y en este mes otro tanto XD
En fin, mi enhorabuena por como va quedando todo, y viendo que ya tenemos modo 32 bits, podré hacer una versión de Venturer en HD (como me pidió Donan en su dia).

NOTA MENTAL: al acabar el programa que estoy haciendo, portar el motor de tiles v3 a Bennu.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 08, 2008, 10:50:39 AM
Hola drumpi, pense que ya nos habias abandonado... El de tiles que vos me pasaste ya lo corri en bennu, hace tiempo, incluso en 32 bits, pero claro, no tiene graficos a 32 bits... :D
Title: Re: Avances, Diario de...
Post by: MythomizeR on October 12, 2008, 05:21:22 PM
Hola,

Quote from: SplinterGU on October 04, 2008, 08:20:29 PM- Se agrega correccion al soporte de vsync, ahora se usa directx para el vsync (por el momento solo windows...

pese a que se dice que se corrigió el problema del vsync, lo cierto es que yo he probado y, aunque mejora muchísimo la nitidez del scroll (comparado con Fenix), lo cierto es que sigue sin irme fino, pues cada 'x' segundos se nota que se produce la dessincronía y entonces aparece el típico efecto de una banda horizontal que va subiendo por la pantalla desde abajo y que al llegar arriba desaparece para estar unos instantes mostrándose perfecta la pantalla y entonces vuelta a empezar con la barra...

Mi pregunta es si existe algún flag o combinación de estos para añadir a set_mode u otra solución y que se me haya escapado (ya he probado con la pareja MODE_DOUBLEBUFFER | MODE_HARDWARE pero sigue sin ir fino) para solucionar esto, y si no, pues nada :-)

Saludos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 12, 2008, 11:09:56 PM
no, no son esos los flags... el flag es WAITVSYNC...
Igualmente puede que no te vaya bien, si tenes ATI... funciona bien en GFORGE... por otro lado, la version que tengo en mi poder que todavia tengo que subir, si esta corregida para que funcione con todas las tarjetas...
Title: Re: Avances, Diario de...
Post by: MythomizeR on October 12, 2008, 11:24:19 PM
Vale, perfecto, ahora sí que va fino con el WAITVSYNC  :)

Por cierto, mi chip gráfico es un nvidia GeForce 8400M G.

Gracias y gran trabajo el que estás realizando con Bennu.
Title: Re: Avances, Diario de...
Post by: Drumpi on October 12, 2008, 11:50:47 PM
Quote from: SplinterGU on October 08, 2008, 10:50:39 AM
Hola drumpi, pense que ya nos habias abandonado... El de tiles que vos me pasaste ya lo corri en bennu, hace tiempo, incluso en 32 bits, pero claro, no tiene graficos a 32 bits... :D

No, no os he abandonado, simplemente que tenía flojera de lectura :D:D:D Solo pido un poco de paciencia porque soy MUY MUY MUY reacio a cambiar de programas cuando estoy cómodo con uno. El DIV2 no lo abandoné hasta que fui obligado por w2k, así que, aunque Bennu es, en el fondo, Fenix "splinter version", tardaré en acostumbrarme a incluir librerías.

Y si, es cierto, probamos el scroll tileado, lo recordé un par de noches despues de escribirlo. Pero aun no había soporte de los FPG (que es una de las razones del miedo al cambio, tengo que admitir). En fin, si ya lo hay pronto lo pasaré oficialmente a Bennu, tan pronto termine las pruebas en GP2X. Por cierto, que los FPG eran de 8bits hechos con el DIV2, por si quedaban dudas del funcionamiento de estos en otros modos de color ^^U
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 13, 2008, 12:13:01 AM
;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 13, 2008, 11:46:20 PM
se da funcionalidad a la variable local "palette", donde se permite asignar una paleta propia a los procesos con graficos de 8 bits...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 14, 2008, 02:13:15 AM
Actualizacion del modulo render en el site de betas... tambien bajar el sample "palettes.rar" y probar unos ejemplos de uso de paletas... incluido la asignacion de paletas por proceso, usando un mismo grafico...
Title: Re: Avances, Diario de...
Post by: osk on October 16, 2008, 01:45:08 PM
Hola.
No sé si lo que voy a escribir está fuera de tiesto, pero es que me he dado cuenta ahora de un warning en la versión para Linux, del cual no me había dado cuenta hasta ahora (soy poco observador, sí). No sé si ya se ha solucionado...
Va todo bien, pero cuando compilo sale este mensaje:

librender:0: warning: Variable redeclared ("ALPHA_STEPS")

¿Es importante?
Title: Re: Avances, Diario de...
Post by: HaCkZJuaNN on October 16, 2008, 01:54:04 PM
Pasa en la de windows también desde hace tiempo, según SplinterGU parece que no tiene importancia.
Title: Re: Avances, Diario de...
Post by: blostec on October 16, 2008, 01:54:53 PM
Sale desde hace unas cuantas versiones, Splinter dijo que lo ignorasemos : error (http://forum.bennugd.org/index.php?topic=102.msg1954;topicseen#msg1954)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 16, 2008, 03:29:50 PM
Voy a explicar el motivo del por que el warning...

Los modulos (dlls) pueden declarar las variables que les son utiles/propias en su codigo, resulta que muchas de estas variables son utiles/propias a varios modulos pero no necesariamente los modulos que la declaran tienen que estar si o si en la compilacion, entonces cada uno de estos modulos opcionales necesitan declarar dichas variables, estas variables al momento de ejecucion apuntan al mismo espacio de memoria y deben ser del mismo tipo para no tener problemas... entonces el compilador no considera esto como un error de redeclaracion ya que estos casos son posibles, entonces, lo advierte como un warning para que el programador del modulo lo tenga en cuenta y revise de no haber declarado la variable con un tipo diferente... es solo una advertencia de que la variable tambien fue declarada previamente por otro modulo...
Title: Re: Avances, Diario de...
Post by: Prg on October 16, 2008, 04:58:56 PM
aprovechando que hablamos de los módulos, cuando se exporte el proyecto a exe, ¿es necesario tener todas las librerías en la carpeta o sólo las que carga nuestro proyectos, y las dependencias (de las que dependen)?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 16, 2008, 05:00:26 PM
solo las que carga y sus dependencias...
estoy pensando en poner algun log que diga que modulos se usan... pero lamentablemente podre informar los modulos/libs bennu, las externas como SDL, ogg, etc... no puedo saber si se necesitan o no... por lo menos no de forma automatica...
Title: Re: Avances, Diario de...
Post by: Prg on October 16, 2008, 05:09:01 PM
Quotesolo las que carga y sus dependencias...
estoy pensando en poner algun log que diga que modulos se usan... pero lamentablemente podre informar los modulos/libs bennu, las externas como SDL, ogg, etc... no puedo saber si se necesitan o no... por lo menos no de forma automatica...

Es muy bueno saber que ya no es necesario poner todas las librerías. En cuanto a lo de las externas, por ahora sería incluirlas todas, al fin y al cabo no son tantas.

La idea de poner un "log que diga que modulos se usan" es una excelente idea, sin embargo de mientras con la lista que nos diste en la nueva versión creo que podemos saber cuáles  mods son los que nuestro proyecto usa. Gracias por todo :) , la nueva versión cada vez me deja más asombrado, Felicidades.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 01:04:41 AM
Wip 14, Linux/Win32

Core:

- args fix, now argc (argument count) say count of argv... and argv[0] is dcbname in not stub version, and executable name in stub version.

Modules:

- Several casts
- Add some includes
- Indent
- Some pointers size fix
- Remove unused vars
- Fix in use of grlib_destroy when error creation.
- Somes casts in palette module
- Linux port of libvideo
- Load map functions return 0 on fail
- Split MAGIC used in fpg/map/pal to MAGIC of 7 bytes and 1 byte for version
Title: Re: Avances, Diario de...
Post by: osk on October 19, 2008, 01:18:12 AM
Ese ahíí!!
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 02:18:39 AM
ejemplo?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 02:22:17 AM
Fixed sample 4 of palettes.rar... bad name in fpg...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 02:22:51 AM
si queres agregame al msn y hablamos antes que me retire a dormir...
Title: Re: Avances, Diario de...
Post by: osk on October 19, 2008, 02:29:51 AM
Perdona Splinter, ha sido fallo mío.
Estaba probando el tutorial de matamarcianos que hizo Drumpi hace mil años, para aprovecharlo para mañana y no me fijé en ponerle el "&" a la variable de un write_int.  Ahora va bien; de todas maneras, estoy investigando por qué los dibujos se ven mal, sin colores y el negro absoluto viéndose como un blanco raro...Me parece que es un problema de paletas al querer usar en modo 16 un gráfico de 8 bits...ahora lo pruebo.
Title: Re: Avances, Diario de...
Post by: osk on October 19, 2008, 03:12:07 AM
Hola. MIrad, he estado probando el tema de los gráficos con la nueva Wip14 (en Linux, pero supongo que es igual en Windows) y esto es a lo que he llegado:

-Si se cargan gráficos de 8 bits (o sea, voy al Gimp al menú Imagen->Modo->Indexado) con load_png, aparentemente no hay ningún problema...
-Si se cargan gráficos que no son de 8 bits (o sea, voy al Gimp al menú Imagen->Modo->RGB) con load_png, directamente no se ve nada de nada.
-Si se cargan gráficos de 8 bits con load_fpg, se ven raros: las zonas de negro (las transparentes) se ven blancas, y los colores precisamente se ven transparentes...
-No he podido cargar gráficos que no son de 8 bits en un fpg porque el png2fpg no lo hace: no genera ninguna salida.

Qué cosas. ¿A alguien más le pasa este mismo problema?
Bueno, hasta luego.


P.D: Si alguien quiere probar este tema, aquí os paso las imágenes de 8 bits, el fpg con éstas dentro y el código del jueguecito: http://www.xtec.net/~otorren2/MataMarcianos.tar.gz  (EDIT: Link Corregido...)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 03:20:31 AM
Para el png2fpg, todos los graficos tienen que ser de la misma profundidad de color...
Podes tambien probar forzar el modo de video en el png2fpg...
Lo demas que dijiste no entendi nada... o sea, no se ven en el gimp? no entiendo...
Title: Re: Avances, Diario de...
Post by: osk on October 19, 2008, 03:28:07 AM
Ah!, vale, gracias. Seguramente el fallo del png2fpg viene por ahí, porque estaba mezclando imágenes de diferentes  profundidades. Ahora lo pruebo: si no digo nada es que va bien.

Lo que quería decir es que si la misma imagen, la convierto de indexada a RGB con el Gimp, cuando luego ejecuto el juego entonces se deja de ver, pasa a estar invisible.

Gracias por tener paciencia a las molestias que estoy causando...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 19, 2008, 03:32:17 AM
Si lo pasas a RGB de 32 bits y no estas seteando el alpha al 100% (255), entonces significa que el alpha es 0, por ende invisible.
Title: Re: Avances, Diario de...
Post by: osk on October 19, 2008, 03:55:00 AM
Funciona perfectooooo!!!!!!! A 32 bits con transparencias, fuera o dentro del fpg creado con el png2fpg. Aaaaaahhh!!!
Se acabó lidiar con el color negro como transparente. Los 8 bits al olvido!!! Aaaaahhh!!!
Ejem,ejem. Es muy tarde, ya no controlo lo que digo...

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 20, 2008, 12:54:48 AM
- new set_window_pos, get_window_pos and get_window_size functions
- GET_WINDOW_SIZE now difference between window size and client area
- GET_DESKTOP_SIZE added
- Linux Port (need tested)
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 20, 2008, 09:59:51 PM
Estoy intentando migrar a la wip14, pero tengo un problema, cuando intento compilar mi programa machaca marcianos, me salta un error diciendo que le falta bgdi.dll, me he fijado que la wip14 viene sin esa dll, y usar la dll de la wip2 no soluciona el problema, donde puedo encontrar la dll que falta?.


Title: Re: Avances, Diario de...
Post by: SplinterGU on October 20, 2008, 10:33:42 PM
no va mas bgdi.dll... quitala...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 21, 2008, 10:13:21 AM
Ok, "yasta" ya he emigrado a wip14, el problema con la dll fantasma, era que sin querer habia copiado el fichero bgdc.import de la version wip2 ::) ::) :P :P :D :D, pero he vaciado el import y problema casi solucionado, por que aparte he tenido que ir añadiendo mas dll nuevas, y algun que otro cambio que ha habido de sintasis en el bennu, pelearme con alguna que otra constante redefinida. Bueno a partir de ahora a seguir desarrollando el machacamarcianos e ir cazando bugs en el bennu wip14. hasta pronto.


Title: Re: Avances, Diario de...
Post by: SplinterGU on October 21, 2008, 10:36:43 AM
Fantastico, me alegra saber que ya te pasaste a la ultima...
Title: Re: Avances, Diario de...
Post by: blostec on October 21, 2008, 03:47:12 PM
Juan, no quiero meterte prisa ni nada parecido porque la WIP14 ya es increiblemente funcional. Pero tengo la duda; en que fase se encuentra el desarrollo de Bennu, esta cerca de la 1.0 o todavia le falta algo? Es solo curiosidad. El trabajo que estas haciendo es fantastico. Saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 21, 2008, 04:08:07 PM
para la release de la siguiente version falta poco...
para la 1.0, falta unas cuantas releases, todavia... tiene que quedar todo finalizado, y hay algunos cuantos temas que completar... mas alla de las nuevas funcionalidades que tengo planificadas, que no necesariamente tienen que estar incluidas en la 1.0...
para la 1.0 (que no es la 0.93 release) calculo faltan de 6 a 12 meses...
Title: Re: Avances, Diario de...
Post by: izubiaurre on October 21, 2008, 05:25:19 PM
Quote from: SplinterGU on October 21, 2008, 04:08:07 PM
para la 1.0, falta unas cuantas releases, todavia... tiene que quedar todo finalizado, y hay algunos cuantos temas que completar... mas alla de las nuevas funcionalidades que tengo planificadas, que no necesariamente tienen que estar incluidas en la 1.0...
para la 1.0 (que no es la 0.93 release) calculo faltan de 6 a 12 meses...

A este ritmo, en 6 o 12 meses, cualquiera sabe las novedades que nos traes.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 24, 2008, 10:38:34 PM
- Prohibit unload font 0
- Fix controls points + mirrors + angle
- Check if graph exist on gr_save_png
- Fix on 32 bits collision
- Fix on 32 bits blits
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 06:28:50 AM
- mod_debug added! with some improvements... ;)
Title: Re: Avances, Diario de...
Post by: darío on October 26, 2008, 10:03:06 AM
Great!!
Title: Re: Avances, Diario de...
Post by: izubiaurre on October 26, 2008, 11:02:21 AM
Quote from: SplinterGU on October 26, 2008, 06:28:50 AM
- mod_debug added! with some improvements... ;)


This looks like great... Great work Juan, there're no words to say it.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 01:22:10 PM
I forget...

- Spanish runtime error translated to English
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 03:51:24 PM
- Linux Port
- Fixes on mod_wm, linux
Title: Re: Avances, Diario de...
Post by: TYCO on October 26, 2008, 04:20:23 PM
Por qué se habla en ingles en el Foro Español??? XD eso está bien en el Foro English para postear más allí.

Por fin la consola de debug! gracias, y con mejoras, habrá que ver esas mejoras... o habrá que adivinarlas porque no son visibles??? Esperando la nueva WIP con ganas, veo que la WIP-15 para linux se está subiendo (veo como los KB van cambiando jeje), así que no tardará mucho en estar completa y también la de windows.

Gran trabajo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 04:24:30 PM
en ingles, porque me resulta mas facil copy&paste del svn... sorry...

mmm... ya estoy subiendo la version 15... en un rato estara disponible...

exacto...

me olvide algunas cosas, que no puse en el help...

con shift+cursor se agranda y se achica la consola...
Title: Re: Avances, Diario de...
Post by: blostec on October 26, 2008, 04:39:15 PM
Juan como esta el fpg.exe y el map.exe, ya tienen soporte 32 bits? Seria mucho pedir que los incluyeras en las WIP?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 04:42:15 PM
Wip 15 disponible...

lamentablemente esas utilidades no tienen soporte 32bits... de momento te sugiero usar el png2fpg... prg esta trabajando en un editor, si la cosa se complica, voy a hacer uno yo, uno simple, no pretendo hacer algo complejo, sino algo que permita importar graficos (no exportar, ni tampoco convertir) y ponerle puntos de control... nada mas que eso...
Title: Re: Avances, Diario de...
Post by: blostec on October 26, 2008, 04:52:20 PM
Entendido, pero sigo pensando que seria bueno incluirlos en la WIP aunque no tengan soporte 32 bits. Gracias por la WIP15, bajando y probando. Karma plus. Saludos!  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 04:55:07 PM
sin soporte 32 bits, tenes la version de fenix, que sirve igualmente ...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 26, 2008, 09:17:24 PM
Mañana en el curro (trabajo) emigro a la wip 15, tengo por desgracia  :( 8 horas para hacerlo.

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2008, 11:03:54 PM
- Some debug fixes

WIP15a uploaded!
Title: Re: Avances, Diario de...
Post by: Phreak on October 28, 2008, 08:29:57 AM
Que bueno!! gracias por devolverme el debug, me estaba volviendo loco!
Title: Re: Avances, Diario de...
Post by: josebita on October 28, 2008, 03:44:51 PM
Quote from: SplinterGU on October 26, 2008, 04:24:30 PM
en ingles, porque me resulta mas facil copy&paste del svn... sorry...
Mmmm, me pregunto dónde andará el svn.... svn.bennugd.org me dice que tururú, que a ver quién soy :)
A ver si cojo mi viejo karaoke y lo porto a bennu, que tengo ganas de tocarlo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 28, 2008, 04:10:06 PM
el svn esta en mi pc... ;)

pronto se liberara, en tanto todos colaboren con las pruebas y lo depuremos...
Title: Re: Avances, Diario de...
Post by: josebita on October 28, 2008, 08:33:45 PM
:)
A ver si me pongo y porto mis librerías que tengo unas cuantas ideas para mi karaoke.
Si sale algo, te cuento.
Title: Re: Avances, Diario de...
Post by: izubiaurre on October 28, 2008, 08:36:24 PM
Quote from: josebita on October 28, 2008, 08:33:45 PM
:)
A ver si me pongo y porto mis librerías que tengo unas cuantas ideas para mi karaoke.
Si sale algo, te cuento.

Karaoke?
Title: Re: Avances, Diario de...
Post by: josebita on October 28, 2008, 08:41:32 PM
Código rápido que escribí para una fiesta de mi cumple del año pasado. Puede leer los ficheros del ultrastar, aunque está muy verde por algunos lados, es divertido y funciona.
Por cierto, que usa librerías para poder utilizar ficheros de texto de cualquier charset (un binding para iconv) y para podeer reproducir sonido por gstreamer (por historias de codecs y alguna cosilla más).
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 01:57:22 AM
- Debugger's new appearance
- New characters added to debug's system font
- New debug's functions: breakall, breakalltypes, deleteall, deletealltypes, go, nextframe, nextproc.
- Process list in brief mode
- Process browse window, by id or by type, allowing to set/remove breakpoints, inspect his variables, etc...
- Palete fix on 8 bits fpg save
- Mirror fix on angle = 0
- Several module's dependencies added
- SDL_Initializations on some modules
- Debug info add at loading modules in runtime...
- English messages in compiler
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 03:33:15 AM
Wip 15b uploaded
Title: Re: Avances, Diario de...
Post by: blostec on October 29, 2008, 07:41:13 AM
Bajando para probar el debbuger, gracias!
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 29, 2008, 08:30:31 AM
Re-emigrando "again" a la wip15b, tengo 8 horas para hacerlo esta tarde en el "curro". ::) ::)

Title: Re: Avances, Diario de...
Post by: TYCO on October 29, 2008, 09:10:26 AM
Quote from: SplinterGU on October 29, 2008, 01:57:22 AM
- Debugger's new appearance
- New characters added to debug's system font
- New debug's functions: breakall, breakalltypes, deleteall, deletealltypes, go, nextframe, nextproc.
- Process list in brief mode
- Process browse window, by id or by type, allowing to set/remove breakpoints, inspect his variables, etc...

Simplemente genial, ahora es una consola mucho mas controlable, me ha gustado mucho nextframe, nextproc(que en vez de hacer un "TRACE" por todas las lineas de todos los procesos hasta llegar al procesos que te interesa; con esto pasas directamente al proceso siguiente y luego ya usas TRACE linea a linea), la browse window by id or by type, el poder set/remove breakpoints y inspect his variables. Pero he tenido que adivinar las TECLAS jeje, con el SHIFT para ver la browse window, y con el ALT+FECHAS ajustar el tamaño de la consola, mucho mejor que como era antes (COLUM.. =80, etc). He testeado todo lo que pongo que me agrada y no he visto bugs.

Gran trabajo.

PD: ya verías que en la WIP15a no se podía escribir en la consola, esto ya no pasa en la WIP15b
Title: Re: Avances, Diario de...
Post by: izubiaurre on October 29, 2008, 09:25:16 AM
Quote from: SplinterGU on October 29, 2008, 01:57:22 AM
- Debugger's new appearance
- New characters added to debug's system font
- New debug's functions: breakall, breakalltypes, deleteall, deletealltypes, go, nextframe, nextproc.
- Process list in brief mode
- Process browse window, by id or by type, allowing to set/remove breakpoints, inspect his variables, etc...
- Palete fix on 8 bits fpg save
- Mirror fix on angle = 0
- Several module's dependencies added
- SDL_Initializations on some modules
- Debug info add at loading modules in runtime...
- English messages in compiler

Qué buena pinta tiene! Ahora todo está mucho más controlable y accesible. No tienes que memorizar comandos y con atajos de teclado que -además- se muestran en la consola, todo se hace más fácil. Todo un acierto!
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 11:37:59 AM
Me alegra que haya gustado... yo si encontre un bug... que me pasó con nextframe teniendo 2 procesos... luego de un tiempo o tras un let_me_alone (creo) la consola quedo llamandose constantemente... mostrando la imagen animada y las entradas a la consola a la vez, solo parando al pulsar nuevamente alt+c... quizas tenga simple solucion, pero por ahora es un bug conocido...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 12:13:26 PM
Bueno, ya tengo una solucion temporal, el problema es que cuando da la vuelta completa de los procesos a ejecutar (hizo un frame completo sobre todos los procesos) el primer proceso entra 2 veces a la consola, no ejecuta nada, pero la instruccion aparece 2 veces en la consola...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 12:43:17 PM
Solucionado!
Title: Re: Avances, Diario de...
Post by: Prg on October 29, 2008, 07:39:31 PM
descargando y probando :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2008, 11:04:12 PM
Bien gente, muchas visitas y pocos comentarios...
Necesito que por favor le dediquen unos minutos a probar esta version... que yo diria ya empieza a ser "Release Candidate"... pero tambien necesito un poco de feedback de Uds., para dejarla lista para liberarla como Release...
Gracias...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 30, 2008, 09:47:52 AM
Hola SplinterGU, he cazado un bug en la wip15b, es poco importante pero es un bug de todas formas, cuando compilo un programa en el bgdc, en el resultado de la compilacion hay omision de etiquetas en los datos sacados a la consola de los comando, para que se entienda:


BGDC 0.93 (Oct 18 2008 18:33:02)
Copyright ® 2006-2008 SplinterGU (Fenix/Bennugd)
Copyright ® 2002-2006 Fenix Team (Fenix)
Copyright ® 1999-2002 JosÚ Luis Cebrißn Pag³e (Fenix)
Fenix comes with ABSOLUTELY NO WARRANTY; see COPYING for details

librender:1: warning: Variable redeclared ("ALPHA_STEPS")

File AirWars_0v06.dcb compiled (145153 bytes):

  Processes                    26
  Global data               1592      bytes
  Local data                  204      bytes
  Private data              2512      bytes
  Public data                   24      bytes
  Code                      54060      bytes
  System processes        238
  Globals vars                  72
  Locals vars                   28
  Private vars                  93
  Publics vars                    6
  Identifiers                   994
  Structs                        11
  Strings                         41      (407 bytes)

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2008, 10:02:44 AM
omision de etiquetas? a que te referis?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2008, 10:05:10 AM
si te referis al texto que iba detras de los totalizadores, si te referis a eso, lo elimine... era redundante, poner:

"Processes 123 processes"
etc
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 30, 2008, 10:20:47 AM
Otro posible error, digo posible error por que puede ser un comportamiento del fenix, es el caso siguiente, tengo una serie de procesos los cuales han reservado memoria dinamica, y los cuales cuando son destruidos liberan la memoria dinamica que han reservado mediante la clausula ONEXIT, el proceso principal tambien reserva memoria dinamica, liberando igualmente la memoria dinamica cuando este es destruido, usando de nuevo un ONEXIT, pero antes de liberar su correspondiente memoria, el proceso principal mata a todos los procesos con un Let_Me_alone().

[code language="bennu"]
BEGIN  // Proceso principal.

...   // Codigo
...

ONEXIT
Let_Me_Alone();  // Matamos todos los procesos menos el principal
FinalizaGeneral(); // Liberamos recursos y memoria dinamica
END
[/code]

ejecuto el juego, finalizo el juego saliendome del bucle principal del proceso principal y dejando terminar el proceso principal, si entre los procesos que Let_Me_Alone a muerto hay Procesos que han reservado memoria dinamica, se produce un error tipo de windows "DGDI.EXE ha detectado un problema y debe cerrarse, bla bla, bla" con los tres clasicos botones, pero si entre Let_Me_alone() y FinalizaGeneral(), añadimos un FRAME tal que asi: 

[code language="bennu"]
BEGIN  // Proceso principal.

...   // Codigo
...

ONEXIT
Let_Me_Alone();  // Matamos todos los procesos menos el principal
FRAME;              // Con esto me libro del BUG.
FinalizaGeneral(); // Liberamos recursos y memoria dinamica
END
[/code]

El bug desaparece, dandole asi tiempo a los procesos a liberar su memoria dinamica, antes que lo haga el proceso principal.


P.D: El post es un poco "tocho" pero es la mejor forma que he encontrado para explicarme.

Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 30, 2008, 10:25:44 AM
Quote from: SplinterGU on October 30, 2008, 10:05:10 AM
si te referis al texto que iba detras de los totalizadores, si te referis a eso, lo elimine... era redundante, poner:

"Processes 123 processes"
etc

Aaaah ok, entendido.

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2008, 10:32:39 AM
Quote from: kim-elet-o on October 30, 2008, 10:20:47 AM
Otro posible error, digo posible error por que puede ser un comportamiento del fenix, es el caso siguiente, tengo una serie de procesos los cuales han reservado memoria dinamica, y los cuales cuando son destruidos liberan la memoria dinamica que han reservado mediante la clausula ONEXIT, el proceso principal tambien reserva memoria dinamica, liberando igualmente la memoria dinamica cuando este es destruido, usando de nuevo un ONEXIT, pero antes de liberar su correspondiente memoria, el proceso principal mata a todos los procesos con un Let_Me_alone().

[code language="bennu"]
BEGIN  // Proceso principal.

...   // Codigo
...

ONEXIT
Let_Me_Alone();  // Matamos todos los procesos menos el principal
FinalizaGeneral(); // Liberamos recursos y memoria dinamica
END
[/code]

ejecuto el juego, finalizo el juego saliendome del bucle principal del proceso principal y dejando terminar el proceso principal, si entre los procesos que Let_Me_Alone a muerto hay Procesos que han reservado memoria dinamica, se produce un error tipo de windows "DGDI.EXE ha detectado un problema y debe cerrarse, bla bla, bla" con los tres clasicos botones, pero si entre Let_Me_alone() y FinalizaGeneral(), añadimos un FRAME tal que asi: 

[code language="bennu"]
BEGIN  // Proceso principal.

...   // Codigo
...

ONEXIT
Let_Me_Alone();  // Matamos todos los procesos menos el principal
FRAME;              // Con esto me libro del BUG.
FinalizaGeneral(); // Liberamos recursos y memoria dinamica
END
[/code]

El bug desaparece, dandole asi tiempo a los procesos a liberar su memoria dinamica, antes que lo haga el proceso principal.


P.D: El post es un poco "tocho" pero es la mejor forma que he encontrado para explicarme.



no sera que los demas procesos acceden en el onexit a datos alocados por el principal o datos que libera el principal? o estaras desalocando varias veces lo mismo (llamando a la misma funcion de desalocar en todos los procesos, sin hacer chequeos de que si estos ya fueron liberados)?
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 30, 2008, 10:54:43 AM
No, los procesos "hijos" acceden a los datos dinamicos del proceso principal fuera de su ONEXIT, el codigo de ONEXIT de los procesos "hijos" solo elimina los datos dinamicos de los procesos "hijo" .
No, uso una funcion comun, cada uno tiene su codigo propio para eliminar sus datos dinamicos propios.


te paso mi directorio de trabajo por si le quieres hechar una ojeada:

http://rapidshare.com/files/158960023/airwars.zip.html

P.D: Y aunque suene contradictorio despues de haberte dado mas trabajo: Leñe! descansa un poquito que no queremos que te pongas pachucho, que te queremos mucho.  ;D ;D ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2008, 12:33:22 PM
Ya tengo que salir, por la noche lo bajo y lo miro, gracias...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on October 30, 2008, 09:42:01 PM
No te preocupes, como viene siendo habitual, es un error mio, resulta al morir estos procesos "hijos", generaban otros procesos hijos que intentaban utilizar los recursos ya borrados del proceso principal, solucion: he añadido una funcionalidad a mi "engine" de enemigos, un sistema de señales especificas para evitar estos casos y otros casos futuros que ya ire desarrollando en un futuro cercano, gracias por las molestias tomadas.

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2008, 09:44:40 PM
puf, me da error la descarga... no lo puedo chequear...

ahhh, ok, no era problema de bennu, fantastico...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 31, 2008, 03:08:03 AM
Corregido tremendo bug al procesar comandos de preprocesamiento:

#if <expresion>

dejaba el codigo generado por la expresion en el codigo del dcb... :P
Title: Re: Avances, Diario de...
Post by: blostec on October 31, 2008, 08:51:12 AM
Quote from: SplinterGU on October 31, 2008, 03:08:03 AM
Corregido tremendo bug al procesar comandos de preprocesamiento:

#if <expresion>

dejaba el codigo generado por la expresion en el codigo del dcb... :P

ufff suerte que lo has detectado, buen trabajo!  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 31, 2008, 11:42:57 AM
Me volvi loco preguntandome que tenia mal dentro de las funciones nuevas que habia hecho en la GUI y no era la GUI, era el compilador...
Tambien detecte otros bugs o mejor dicho comportamiento que no es el deseado, pero bueno, ya lo arreglare, aunque no es nada tan grave...
gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 03, 2008, 02:26:17 AM
Version Wip15c (solo windows por ahora, luego subo la version linux y actualizo las noticias en la seccion ingles, ahora mismo no tengo tiempo de hacerlo)

Incluye, Core:

- Fix copyright text in bgdc and bgdi
- Add project basename path to includes paths
- Add project basename path in messages errors
- #if preprocesor fix
- English message fixed

Modules:

- Get graphic library fix when lib == 0 and map-> is > 0 and < 999
- NEXTPROC fix in mod_debug
- Mouse x and y now setting with value 99999 on startup

Title: Re: Avances, Diario de...
Post by: laghengar on November 03, 2008, 10:37:32 PM
Hola, perdona Splinter, en la wip 15.c ha dejado de salirme el gráfico que tenía para el mouse, un saludo  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 03, 2008, 10:55:58 PM
que grafico no te sale? da un poco mas de detalles, a mi me funciona perfectamente.
Title: Re: Avances, Diario de...
Post by: laghengar on November 03, 2008, 11:33:22 PM
Pues es uno normal a traves del load_fpg, mouse.file y mouse.graph etc  :-\ esque con el wip 11 si iba, y no he hecho nada con el mouse para que ahora no funcione. no se, la verdad esque no estoy seguro, mando ahora todo el trabajo hecho.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 04, 2008, 01:22:31 AM
ya vi el error, ya lo corregi, gracias por el reporte, ahora en un rato subo un parche... para el modulo corregido...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 04, 2008, 01:33:38 AM
patch disponible... wip15c.2
Title: Re: Avances, Diario de...
Post by: TYCO on November 06, 2008, 10:52:25 AM
Bueno esto no es un bug en el "mod_debug", pero a ver que te parece...

En cierto momento del código, hago:

fade_off()
...
....
...
debug;
..
......
..
....
fade_on();

Entre los Fade_on/off hago unloads, loads, coloco cosas en su sitio... incluso FRAMES para que otros procesos puedan hacer cosas concretas con la pantalla apagada(fade_off), el problema es bien sencillo, cuando llamo a la "consola de debug", no la veo, aunque estar si que está, tengo que hacer //fade_off() cuando hay "debug;" cerca, la consola no debería hacer un encendido/apagado de pantalla automáticamente al llamarla??? en el viejo div2 creo recordar que si estaba apagada... al llamar al trazador... la encendida... y al cerrar el trazador la dejaba apagada otra vez.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 06, 2008, 12:35:34 PM
podria ser...
Title: Re: Avances, Diario de...
Post by: TYCO on November 06, 2008, 01:47:33 PM
Ejecuto: "Bennu-WIP15c2\bgdi Rally.dcb >Log.txt 2>Error.txt" desde la consola en win xp.

Desde el juego salgo con: "exit("Gracias por jugar.",9);"

Problema: Este exit no muestra "Gracias por jugar." en ningún lado, ni en la consola ms-dos, ni en Log.txt, ni en Error.txt, ni en un msgbox. Eso sin contar con que funcione bien y Retorne 9, al .BAT que le llamó por ejemplo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 06, 2008, 02:14:36 PM
Quote from: TYCO on November 06, 2008, 01:47:33 PM
Ejecuto: "Bennu-WIP15c2\bgdi Rally.dcb >Log.txt 2>Error.txt" desde la consola en win xp.

Desde el juego salgo con: "exit("Gracias por jugar.",9);"

Problema: Este exit no muestra "Gracias por jugar." en ningún lado, ni en la consola ms-dos, ni en Log.txt, ni en Error.txt, ni en un msgbox. Eso sin contar con que funcione bien y Retorne 9, al .BAT que le llamó por ejemplo.

En el codigo Fenix (tambien en Bennu) dice claramente...


/** EXIT ()
*  Leaves the program at next frame (two parameters accepted for compatibility)
*/


A esto agrego, la funciones "exit" no es retorno directo al SO, hace una salida ordenada, matando primero a todos los procesos... aunque realmente tampoco lo hace, y no tiene mucho sentido lo que se hace, ya que si bien envia la señal de kill a todos los procesos, apenas retorna de la ejecucion del proceso actual, fuerza una salida del loop principal, sin esperar que los demas ejecuten su exit...
Title: Re: Avances, Diario de...
Post by: TYCO on November 06, 2008, 03:49:25 PM
for compatibility... simplemente los acepta... pero no los usa, si la frase "Gracias por jugar." no se va a mostrar en "Bennu v1.0" no veo lógico que se pueda poner como parámetro. Fénix desde la 0.84 y más aún Bennu dejaron hace tiempo de ser compatibles con div (empezando por los fwrite, fread, load, save, etc).

Lo único que quede claro para los novatos que no es un bug que no salga ese mensaje.
Title: Re: Avances, Diario de...
Post by: TYCO on November 06, 2008, 04:04:55 PM
Otra cosa... si en el código hay funciones que llaman a la consola (debug;) y no has hecho: import "mod_debug"; genera el archivo DCB sin dar errores ni advertencias. Es algo sin importancia, pero ahí lo dejo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 06, 2008, 05:05:48 PM
1) Quizas la exit necesite un replanteo...
2) La instruccion "debug" es propia de bennu, no del modulo debug... por ende es correcto que no de error... quizas deba removerse del core y meterse en el mod_debug...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 03:24:55 AM
Nuevo modulo interface portable de funciones externas... (importar cualquier dll/so a bennu)... version experimental que sufrira ciertos cambios, pero ya es funcional... se pueden importar dlls del operativo, ya hice un ejemplo, que manipula la ventana, muestra un MessageBox (del operativo), lee el estado de la pulsacion de los botones y actua en consecuencia...
Con esto, mucha de la creacion de modulos para incorporar funcionalidades existentes en dlls externas ya no sera necesaria... en la mayoria de los casos, solo bastara con importar la dll y a disfrutar...
Actualmente solo se soportan tipos de datos basicos, pero pronto soportara estructuras, la idea es probar que el metodo es factible... y de hecho ya es una realidad...
Title: Re: Avances, Diario de...
Post by: TYCO on November 07, 2008, 08:30:07 AM
Esto no dará problemas en multiplataforma? (linux, etc)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 09:56:49 AM
No, como dije, es portable... se usa una libreria opensource con una licencia totalmente permisiva para realizar esto... soporta:

arm oabi linux
arm eabi linux
hppa linux
mips o32 linux (little endian)
powerpc darwin
powerpc64 linux
sparc solaris
sparc64 solaris
x86 cygwin
x86 darwin
x86 freebsd
x86 linux
x86 openbsd
x86-64 darwin
x86-64 linux
x86-64 OS X
x86-64 openbsd

y actualmente se usa en muchos lenguajes populares, algunos son:

PHP, Lua, Java, Python, PyObjC, RubyCocoa, gcj, GNU Smalltalk, IcedTea, Pawn, Squeak,...

Como dije es portable, da una forma standard de llamar a librerias dinamicas entre sistemas operativos... obviamente que esto no quiere decir que podes llamar a una lib de windows desde linux, pero asi como usamos la exec para ejecutar aplicaciones externas desde Bennu, tambien podes usar este modulo para hacer lo propio con las dls... recorda que en todo momento desde Bennu podes saber en que operativo estamos corriendo...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on November 07, 2008, 10:00:21 AM
Me encanta esa funcionalidad, pero mucho mucho. :D :D :D :D :D


Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 10:16:30 AM
Quote from: kim-elet-o on November 07, 2008, 10:00:21 AM
Me encanta esa funcionalidad, pero mucho mucho. :D :D :D :D :D

gracias

Codigo de ejemplo (las funciones pueden sufrir modificaciones, por ahora es experimental, y lamentablemente por problemas de internet no puedo subir ninguna version hasta que me solucionen el problema de que no puedo subir mas de 4kb y con problemas):



import "mod_video";
import "mod_ffi";
import "mod_say";
import "mod_wm";
import "mod_key";

/* --------------------------------------------------------------------------- */

#define SW_HIDE 0
#define SW_NORMAL 1
#define SW_SHOWNORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_MAXIMIZE 3
#define SW_SHOWMAXIMIZED 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11

/* --------------------------------------------------------------------------- */

#define MB_ABORTRETRYIGNORE 2
#define MB_APPLMODAL 0
#define MB_DEFAULT_DESKTOP_ONLY 020000h
#define MB_HELP 04000h
#define MB_RIGHT 080000h
#define MB_RTLREADING 0100000h
#define MB_TOPMOST 040000h
#define MB_DEFBUTTON1 0
#define MB_DEFBUTTON2 256
#define MB_DEFBUTTON3 512
#define MB_DEFBUTTON4 0300h
#define MB_ICONINFORMATION 64
#define MB_ICONSTOP 16
#define MB_OKCANCEL 1
#define MB_RETRYCANCEL 5

/* --------------------------------------------------------------------------- */

#define HWND_BROADCAST (0FFFFh)
#define HWND_BOTTOM (1)
#define HWND_NOTOPMOST (-2)
#define HWND_TOP (0)
#define HWND_TOPMOST (-1)
#define HWND_DESKTOP 0

/* --------------------------------------------------------------------------- */

type _RECT;
    INT left;
    INT top;
    INT right;
    INT bottom;
end

/* --------------------------------------------------------------------------- */

Global
    fMessageBox;
    fGetForegroundWindow;
    fGetConsoleWindow;
    fGetWindowThreadProcessId;
    fShowWindow;
    fGetCurrentProcessId;
    fBringWindowToTop;
    fSetWindowPos;
    fGetWindowRect;
end

/* --------------------------------------------------------------------------- */

process ImportExternals()
begin
    fMessageBox = ffi_declare(FFI_STDCALL, "user32.dll", "MessageBoxA", "PPPI", "I");
    fGetForegroundWindow = ffi_declare(FFI_STDCALL, "user32.dll", "GetForegroundWindow", "", "I");
    fGetConsoleWindow = ffi_declare(FFI_STDCALL, "kernel32.dll", "GetConsoleWindow", "", "I");
    fGetWindowThreadProcessId = ffi_declare(FFI_STDCALL, "user32.dll", "GetWindowThreadProcessId", "IP", "I");
    fGetCurrentProcessId = ffi_declare(FFI_STDCALL, "kernel32.dll", "GetCurrentProcessId", "", "I");
    fShowWindow = ffi_declare(FFI_STDCALL, "user32.dll", "ShowWindow", "II", "I");
    fBringWindowToTop = ffi_declare(FFI_STDCALL, "user32.dll", "BringWindowToTop", "I", "I");
    fSetWindowPos = ffi_declare(FFI_STDCALL, "user32.dll", "SetWindowPos", "IIIIIII", "I");
    fGetWindowRect = ffi_declare(FFI_STDCALL, "user32.dll", "GetWindowRect", "IP", "I");
end

/* --------------------------------------------------------------------------- */

function GetWindowRect(int hWnd, _RECT * lpRect)
private
    int ret = 0;
    int * values[1];
begin
    values[0] = &hWnd;
    values[1] = &lpRect;
    ffi_call(fGetWindowRect, &ret, &values);
    return ret;
end

/* --------------------------------------------------------------------------- */

function SetWindowPos(int hWnd, int hWndInsertAfter, int x, int y, int cx, int cy, int uFlags)
private
    int ret = 0;
    int * values[6];
begin
    values[0] = &hWnd;
    values[1] = &hWndInsertAfter;
    values[2] = &x;
    values[3] = &y;
    values[4] = &cx;
    values[5] = &cy;
    values[6] = &uFlags;
    ffi_call(fSetWindowPos, &ret, &values);
    return ret;
end

/* --------------------------------------------------------------------------- */

function GetForegroundWindow()
private
    int ret = 0;
begin
    ffi_call(fGetForegroundWindow, &ret, NULL);
    return ret;
end

/* --------------------------------------------------------------------------- */

function GetConsoleWindow()
private
    int ret = 0;
begin
    ffi_call(fGetConsoleWindow, &ret, NULL);
    return ret;
end

/* --------------------------------------------------------------------------- */

function GetCurrentProcessId()
private
    int ret = 0;
begin
    ffi_call(fGetCurrentProcessId, &ret, NULL);
    return ret;
end

/* --------------------------------------------------------------------------- */

function GetWindowThreadProcessId(int hWnd, int * dwProcessId)
private
    int ret = 0;
    int * values[1];
begin
    values[0] = &hWnd;
    values[1] = &dwProcessId;
    ffi_call(fGetWindowThreadProcessId, &ret, &values);
    return ret;
end

/* --------------------------------------------------------------------------- */

function BringWindowToTop(int hWnd,)
private
    int * values[0];
    int ret = 0;
begin
    values[0] = &hWnd;
    ffi_call(fBringWindowToTop, &ret, &values);
    return ret;
end

/* --------------------------------------------------------------------------- */

function ShowWindow(int hWnd, int nCmdShow)
private
    int ret = 0;
    int * values[1];
begin
    values[0] = &hWnd;
    values[1] = &nCmdShow;

    ffi_call(fShowWindow, &ret, &values);

    return ret;
end

/* --------------------------------------------------------------------------- */

function MessageBox(int hWnd, string title, string message, int btype)
private
    int ret = 0;
    int * values[3];

    char _message[30];
    char _title[30];

    char * pmessage;
    char * ptitle;
begin
    _message = message; pmessage = &_message;
    _title = title; ptitle = &_title;
    values[0] = &hWnd;
    values[1] = &pmessage;
    values[2] = &ptitle;
    values[3] = &btype;
    ffi_call(fMessageBox, &ret, &values);
    return ret;
end

/* --------------------------------------------------------------------------- */

private
    ret;
    int hWnd, hMainWnd;
    DWORD dwProcessId;
    _RECT   rect;
begin

    ImportExternals();

    hMainWnd = GetForegroundWindow();

    hWnd = GetConsoleWindow();
    GetWindowThreadProcessId( hWnd, &dwProcessId );
    if ( dwProcessId == GetCurrentProcessId() )
        ShowWindow( hWnd, SW_SHOW );
    end

    GetWindowRect(hMainWnd, &rect);
    SetWindowPos(hMainWnd, HWND_TOPMOST, rect.left, rect.top, 0, 0, 0);

    loop
        if (key(_ESC))
            GetWindowRect(hMainWnd, &rect);
            SetWindowPos(hMainWnd, HWND_NOTOPMOST, rect.left, rect.top, 0, 0, 0);
            ret = MessageBox(NULL, argv[0], "Are you sure you want to quit?", MB_OKCANCEL);
            if (ret == 1)
                break;
            end
            GetWindowRect(hMainWnd, &rect);
            SetWindowPos(hMainWnd, HWND_TOPMOST, rect.left, rect.top, 0, 0, 0);
        end
        frame;
    end

end
Title: Re: Avances, Diario de...
Post by: osk on November 07, 2008, 10:27:26 AM
Aaagghh qué guapoo!!!
Cuando Bennu esté listo hay que lanzar la buena nueva en todos los rincones del mundo!!
Revistas, foros, portales ... aquí viene una nueva era!!
Title: Re: Avances, Diario de...
Post by: josebita on November 07, 2008, 12:32:20 PM
Joé, tiene muy buena pinta. A ver si lo probamos :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 12:39:45 PM
http://wiki.bennugd.org/images/1/1c/Ffitest.zip

aca va el link del programa de prueba con el ultimo update de bennu, perdon que no lo suba como wip, pero no solo es prueba, sino que tengo problemas de internet y para hacer esto, tuve que pasarselo a sandman en 77 fragmentos de 2k, y con varios intentos hasta lograrlo... gracias Sandman por la ayuda y la paciencia.


pd: en el ejemplo, veran que se usa el api para desocultar la ventana de la consola de comandos, tambien veran como se obtiene las coordenadas de la ventana, como se hace que esta sea siempre visible, como se usa un MessageBox y como se interpreta sus resultados... y tambien hay otras funciones mas a modo de ejemplo...
Title: Re: Avances, Diario de...
Post by: TYCO on November 07, 2008, 02:31:23 PM
Ese ejemplo solo consigo ver el MsgBox de salida, pero está curioso.

-------------------------------------------------------------------------------

Lo de la función exit("",0); por ejemplo yo en mi código tengo esto:

memoria_libre=memory_free();
memoria_libre=memoria_libre/1024000;
If (memoria_libre < 16)
    exit("ERROR_03: Memoria insuficiente. Se necesita un mínimo de 16MB de RAM.",3);
End

Entonces si no puedo leer ese mensaje en la consola... no se por qué ha salido del juego, yo creo que es útil que saldría el mensaje.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 03:37:09 PM
puf no solo tiene el messagebox de salida, tiene todas las cosas que describi un post antes del tuyo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 03:38:11 PM
Quote from: TYCO on November 07, 2008, 02:31:23 PM
Ese ejemplo solo consigo ver el MsgBox de salida, pero está curioso.

-------------------------------------------------------------------------------

Lo de la función exit("",0); por ejemplo yo en mi código tengo esto:

memoria_libre=memory_free();
memoria_libre=memoria_libre/1024000;
If (memoria_libre < 16)
    exit("ERROR_03: Memoria insuficiente. Se necesita un mínimo de 16MB de RAM.",3);
End

Entonces si no puedo leer ese mensaje en la consola... no se por qué ha salido del juego, yo creo que es útil que saldría el mensaje.

si, si, no digo lo contrario...
Title: Re: Avances, Diario de...
Post by: MythomizeR on November 07, 2008, 04:15:03 PM
potencia&flexibilidadDeBennu+=5;

¿A un pasito para crear aplicaciones con el escritorio como fondo, verdad?

Por decir solo una, que ésto abre muchas puertas...

Grande.
Title: Re: Avances, Diario de...
Post by: blostec on November 07, 2008, 04:34:00 PM
TYCO siempre puedes crearte un fichero para guardar los mensajes de error si se da el caso.
Title: Re: Avances, Diario de...
Post by: Prg on November 07, 2008, 11:04:45 PM
QuoteNuevo modulo interface portable de funciones externas... (importar cualquier dll/so a bennu)...

Increíble, cada vez me dejas más con la boca abierta splinter, esto será muy bueno a la hora de hacer programas como el editor fpg  :D .
Increíble todo lo que se puede ahorrar uno usando librerías del sistema... que lo que ya está hecho nos quite los problemas de hacerlo nosotros mismos  ;D

oye, y la función set_text_color  ya funciona?
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 07, 2008, 11:23:04 PM
eso iba a responderte y me olvido, funciona la set_text_color, solo que para fonts de 1 bit de color... para fonts de mas bits el color es el definido...
Title: Re: Avances, Diario de...
Post by: osk on November 07, 2008, 11:39:59 PM
De todas maneras, Prg, yo pediría que en el caso concreto del editor Fpg no se hiciera uso de esta funcionalidad, si se quiere que el programa funcione igual para todas las plataformas... Si se meten funciones que manejan dll de windows, se tendría que hacer lo propio para Linux y eso puede ser un follón. La gracia de esto yo lo veo cuando uno quiere hacer un programa para una plataforma concreta, para exprimir sus posibilidades...porque repetir lo mismo para diferentes sistemas operativos repito que puede ser algo tedioso, no?

Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2008, 12:13:44 AM
tal vez si, tal vez no tanto...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2008, 05:42:00 AM
- Soporte de todas las formas exit
- Soporte "#define lala()  pepe"
- Fonts 32 bits
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2008, 02:04:53 PM
- STRINGS en la consola de debug, ahora saca la informacion en la misma.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 08, 2008, 11:10:51 PM
¿He leido bien? ¿dll externas? ¿sin recompilacion y sin usos de los headers? esto hay que celebrarlo.
Es que, si no me he vuelto loco, eso implica no solo el uso de las funciones del sistema para crear ides, o integrarse en el escritorio, tambien el uso de DX, OGL y demás sin necesitar los módulos (salvo para simplificar su uso, claro ^^U) y de librerías libres ya precompiladas que aumentarían exponencialmente la velocidad de los juegos.
Sumo una de karma a Splinter. A este paso, el propio código de Bennu va a quedar a la sombra de todo lo que puede serle compatible XD
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2008, 12:17:31 AM
entendiste bien...

ahora me surge una duda... el codigo de Bennu va a "quedar" a la sombra o va a "dejar" a la sombra a los demas compatibles...?

XD

Saludos y gracias
Title: Re: Avances, Diario de...
Post by: Prg on November 09, 2008, 02:05:34 AM

Quoteahora me surge una duda... el codigo de Bennu va a "quedar" a la sombra o va a "dejar" a la sombra a los demas compatibles...?
el bennu tiene que quedar arriba  :) , y es verdada, otro karma para splinter.

QuoteDe todas maneras, Prg, yo pediría que en el caso concreto del editor Fpg no se hiciera uso de esta funcionalidad, si se quiere que el programa funcione igual para todas las plataformas... Si se meten funciones que manejan dll de windows, se tendría que hacer lo propio para Linux y eso puede ser un follón. La gracia de esto yo lo veo cuando uno quiere hacer un programa para una plataforma concreta, para exprimir sus posibilidades...porque repetir lo mismo para diferentes sistemas operativos repito que puede ser algo tedioso, no?

Es verdad blostec, no te preocupes, no tengo intenciones de hacerlo, por el contrario, tengo otras mejoras que pienso mensionar en el foro. Eh hecho otras mejoras a la gui, y otras cosas que después, quizá en la próxima semana les comente.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2008, 10:12:27 AM
fantastico...

Nuevos avances...

- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);
- Ternary condition fixed... and improved speed in ternary condition when expression is constant.
- Add core's functions bgdrtm_entry and bgdrtm_exit to bgdrtm...
- Now exit code can be return at finish execution of bgdi
- Lib WM now don't exit when close botton are clicked, only set exit_status to true
- EXIT(...) functions now fixed, and use the params
Title: Re: Avances, Diario de...
Post by: HaCkZJuaNN on November 09, 2008, 10:52:33 AM
Quote from: SplinterGU on November 09, 2008, 10:12:27 AM
- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);

TE AMO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Una pregunta sobre esto, entiendo que un float se vuelve infinito cuando dices que es por ejemplo 2/0, y que se vuelve ¿nan? cuando dices que es 0/0, es esto así?. Qué ocurre si un float que es infinito dices say(variable);??

Gracias por todo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2008, 11:25:22 AM
Quote from: HaCkZJuaNN on November 09, 2008, 10:52:33 AM
Quote from: SplinterGU on November 09, 2008, 10:12:27 AM
- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);

TE AMO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Una pregunta sobre esto, entiendo que un float se vuelve infinito cuando dices que es por ejemplo 2/0, y que se vuelve ¿nan? cuando dices que es 0/0, es esto así?. Qué ocurre si un float que es infinito dices say(variable);??

Gracias por todo.



import "mod_say"
import "mod_math"

Private
    int i;
    float n = 10,n1 = 0;
    int i2=2;
Begin
    say ("n=" + n + " n1=" + n1 );
    say ("");
    say ("n/n1=" + n/n1 + " isinf(n/n1)="+ isinf(n/n1) + " isnan(n/n1)="+ isnan(n/n1)+ " finite(n/n1)="+ finite(n/n1));
    say ("n/0.0=" + n/0.0 + " isinf(n/0.0)="+ isinf(n/0.0) + " isnan(n/0.0)="+ isnan(n/0.0)+ " finite(n/0.0)="+ finite(n/0.0));
    say ("n/2=" + n/2 + " isinf(n/2)="+ isinf(n/2) + " isnan(n/2)="+ isnan(n/2)+ " finite(n/2)="+ finite(n/2));
    say ("(1+n/0.0)=" + (1+n/0.0) + " isinf((1+n/0.0))="+ isinf((1+n/0.0)) + " isnan((1+n/0.0))="+ isnan((1+n/0.0))+ " finite((1+n/0.0))="+ finite((1+n/0.0)));
    say ("n/0=" + n/0 + " isinf(n/0)="+ isinf(n/0) + " isnan(n/0)="+ isnan(n/0)+ " finite(n/0)="+ finite(n/0));

    say ("");
    say ("i2/0.0=" + i2/0.0 + " isinf(i2/0.0)="+ isinf(i2/0.0) + " isnan(i2/0.0)="+ isnan(i2/0.0)+ " finite(i2/0.0)="+ finite(i2/0.0));
    say ("0.0/0.0=" + 0.0/0.0 + " isinf(0.0/0.0)="+ isinf(0.0/0.0) + " isnan(0.0/0.0)="+ isnan(0.0/0.0)+ " finite(0.0/0.0)="+ finite(0.0/0.0));

    say ("");
    n = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; //130 zeros
    say ("n=" + n + " (10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)");
    say( "isinf(n)=" + isinf(n) );
    say( "isnan(n)=" + isnan(n) );
    say( "finite(n)=" + finite(n) );

    say ("");
    n = 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001; //130 zeros
    say ("n=" + n + " (0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)");
    say( "isinf(n)=" + isinf(n) );
    say( "isnan(n)=" + isnan(n) );
    say( "finite(n)=" + finite(n) );

    say ("");
    n = -1;
    say ("n=" + n );
    say ("sqrt(n)=" + sqrt(n) + " isinf(sqrt(n))="+ isinf(sqrt(n)) + " isnan(sqrt(n))="+ isnan(sqrt(n))+ " finite(sqrt(n))="+ finite(sqrt(n)));

    say ("");
    n = 1/0.0;
    say ("n=" + n + " (1/0.0)");
    say ("1.0/n=" + 1.0/n + " isinf(1.0/n)="+ isinf(1.0/n) + " isnan(1.0/n)="+ isnan(1.0/n)+ " finite(1.0/n)="+ finite(1.0/n));
    say ("1.0/0=" + 1.0/0 + " isinf(1.0/0)="+ isinf(1.0/0) + " isnan(1.0/0)="+ isnan(1.0/0)+ " finite(1.0/0)="+ finite(1.0/0));
    say ("1.0/0=" + 1.0/0 + " isinf(1.0/0)="+ isinf(1.0/0) + " isnan(1.0/0)="+ isnan(1.0/0)+ " finite(1.0/0)="+ finite(1.0/0));

End


output:

n=10 n1=0

n/n1=1.#INF isinf(n/n1)=1 isnan(n/n1)=0 finite(n/n1)=0
n/0.0=1.#INF isinf(n/0.0)=1 isnan(n/0.0)=0 finite(n/0.0)=0
n/2=5 isinf(n/2)=0 isnan(n/2)=0 finite(n/2)=1
(1+n/0.0)=1.#INF isinf((1+n/0.0))=1 isnan((1+n/0.0))=0 finite((1+n/0.0))=0
n/0=1.#INF isinf(n/0)=1 isnan(n/0)=0 finite(n/0)=0

i2/0.0=1.#INF isinf(i2/0.0)=1 isnan(i2/0.0)=0 finite(i2/0.0)=0
0.0/0.0=-1.#IND isinf(0.0/0.0)=0 isnan(0.0/0.0)=1 finite(0.0/0.0)=0

n=0 (10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
isinf(n)=0
isnan(n)=0
finite(n)=1

n=0 (0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)
isinf(n)=0
isnan(n)=0
finite(n)=1

n=-1
sqrt(n)=-1.#IND isinf(sqrt(n))=0 isnan(sqrt(n))=1 finite(sqrt(n))=0

n=1.#INF (1/0.0)
1.0/n=0 isinf(1.0/n)=0 isnan(1.0/n)=0 finite(1.0/n)=1
1.0/0=1.#INF isinf(1.0/0)=1 isnan(1.0/0)=0 finite(1.0/0)=0
1.0/0=1.#INF isinf(1.0/0)=1 isnan(1.0/0)=0 finite(1.0/0)=0


Recordar, solo para expresiones flotantes, si se hace una division por cero de numeros no flotantes, vamos a recibir el mensaje ya conocido de "Division by zero".
Title: Re: Avances, Diario de...
Post by: TYCO on November 11, 2008, 08:33:58 AM
No me acorde de agradecer en la nueva consola debug.... el que cuando cambias valores de X, Y, Z, angle, size, write_int y supongo que un largo etcétera, lo cambia al instante! sin tener que hacer un frame global (F10) o pasar a otro proceso (F11), es algo que ayuda mucho a la hora de ir haciendo pruebas y buscar errores en tiempo real y que particularmente me ha gustado mucho también aparte de todo lo que me gusto de la nueva consola debug.

Gran trabajo.

Ahora quiero plantear un duda que tengo.... y es que... a veces como todos sabemos Bennu al dar un error estilo: Procedimiento no activo Pepe(65578) se sale de la ejecución... y me preguntaba... si en vez de que salga de la ejecución... podría abrirse la consla de debug y dar el error ahí.... y con esto poder localizar el error dado, viendo que línea de código produjo el error, y poder hacer pruebas para localizar el error desde consola... lógicamente si haces un Frame (F10) podría llegar a entender que Bennu se cerrará a causa de ese Procedimiento no activo, pero ya tienes la oportunidad de investigar un poco en la consola debug antes de cerrarse Bennu. Igual estoy diciendo una barbaridad... no lo sé.

Si no se entiende... lo intento explicar mejor.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 11, 2008, 01:14:41 PM
Se entiende, es una buena sugerencia, ahora hay que ver de que forma se puede implementar esto sin hacer que el core dependa de un modulo externo como es el debug.
Title: Re: Avances, Diario de...
Post by: laghengar on November 11, 2008, 07:44:16 PM
Un momento, creo que me he flipao, ¿ahora se le puede meter opengl a bennu?
Title: Re: Avances, Diario de...
Post by: kim-elet-o on November 11, 2008, 09:33:23 PM
mas o menos creo que si, y algunas cosillas mas. :D :D :D
Title: Re: Avances, Diario de...
Post by: Zardoz on November 17, 2008, 10:11:43 AM
Quote from: SplinterGU on November 07, 2008, 03:24:55 AM
Nuevo modulo interface portable de funciones externas... (importar cualquier dll/so a bennu)...

Esto implica poder usar OpenGL, OpenAL, o lo que a uno se le ocurra ??
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 17, 2008, 11:30:54 AM
si, pero obviamente no de la forma automatica de render (por ejemplo), pero si llamar a las funciones de OpenGL y de esta forma hacer los renders...
Title: Re: Avances, Diario de...
Post by: Goku jr on November 17, 2008, 10:59:07 PM
Vamos que incluso se podria crear juegos 3d usando motores externos,si necesidad de que la gente creara dll especificas?

Title: Re: Avances, Diario de...
Post by: Drumpi on November 18, 2008, 05:23:53 PM
La bennu 3d no iba ya sobre openGL? es que me parece raro que la gente se sorprenda a estas alturas lo de poder usar otras lib gráficas: ya se dijo hace tiempo que se podía mediante los módulos que fueran saliendo ¿o hay algo que no he pillado?
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 18, 2008, 08:22:22 PM
claro no has pillado que ahora bennu se pueden meter dlls "normales" sin necesidad de crear un modulo externo.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 19, 2008, 01:33:00 PM
Si, eso lo he pillado: ahora usar openGL tal cual, pero antes de ese cambio, tambien se podía usar openGl ¿o no? :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 19, 2008, 02:02:40 PM
a ver, que se pueda no significaba que estaba hecho... hay un modulo experimental de Sandman, pero cuando yo dije "se puede" lo decia en sentido potencial... o sea, hay que hacer el modulo, pero se puede hacer de forma de meter luego la pieza y quitando el otro render facilmente...

alguno mas habia entendido, tambien, mal esto?
Title: Re: Avances, Diario de...
Post by: DCelso on November 19, 2008, 02:52:37 PM
Yo,:(:(, y sigo sin entenderlo. Lo leo y releo, pero no capto el mensaje.
A ver, cuando añadiste plugins a fenix, ya se podía enganchar con cualquier librería externa, simplemente programando un plugin para ello.
Aqui en bennu, has separado en módulos el core de fenix, siguiendo algun sistema parecido para enganchar con las dll de los modulos, pero no es el mismo sistema como con los plugins.
Antes había que crear en c o c++ una especie de wrapper para poder encapsular las librerías dinámicas a usar.

Nos estás diciendo que a partir de ahora no hace falta hacer eso y que directamente podemos enganchar de alguna forma nuestro código con las dlls dinámicas son solo tener sus "headers" mas no menos¿?.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 19, 2008, 03:01:57 PM
Verás: Fenix usaba SDL para representar gráficos, así que cuando creabas una libreria (dll) con otro motor gráfico, al final, tenías que recurrir de nuevo a SDL para integrarlo.

Splinter, al separarlos en módulos, dejó de usar SDL, y para representar gráficos podías usar los módulos que ha hecho él (creo que van por software, ¿no?) o crear la tuya propia con openGL, DX o la que te diera la gana (es decir, podías hacer cosas como cambiar el angle, el size, trabajar con paletas y demás usando aceleracion hardware con.. directX, por ejemplo. O como han hecho con la bennu3D, que es otra librería gráfica, pero 3d)

El cambio actual permite que, sin crearte ninguna librería que usase las librerías gráficas, con símplemente el core, puedas hacer llamadas directamente a dichas librerías. Es decir, te quita una capa en medio que tenías que diseñar.
Antes: creabas una librería con la funcion dibuja_cuadrado, en la que se llamaba a SDL_draw_box.
Ahora: llamas directamente a SDL_draw_box.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 20, 2008, 02:03:06 PM
Quote from: DCelso on November 19, 2008, 02:52:37 PM
Yo,:(:(, y sigo sin entenderlo. Lo leo y releo, pero no capto el mensaje.
A ver, cuando añadiste plugins a fenix, ya se podía enganchar con cualquier librería externa, simplemente programando un plugin para ello.
Aqui en bennu, has separado en módulos el core de fenix, siguiendo algun sistema parecido para enganchar con las dll de los modulos, pero no es el mismo sistema como con los plugins.
Antes había que crear en c o c++ una especie de wrapper para poder encapsular las librerías dinámicas a usar.

Nos estás diciendo que a partir de ahora no hace falta hacer eso y que directamente podemos enganchar de alguna forma nuestro código con las dlls dinámicas son solo tener sus "headers" mas no menos¿?.


En Fenix no podias llamar a cualquier dll, solo a dlls fenix...

Quote from: Drumpi on November 19, 2008, 03:01:57 PM
Verás: Fenix usaba SDL para representar gráficos, así que cuando creabas una libreria (dll) con otro motor gráfico, al final, tenías que recurrir de nuevo a SDL para integrarlo.

Splinter, al separarlos en módulos, dejó de usar SDL, y para representar gráficos podías usar los módulos que ha hecho él (creo que van por software, ¿no?) o crear la tuya propia con openGL, DX o la que te diera la gana (es decir, podías hacer cosas como cambiar el angle, el size, trabajar con paletas y demás usando aceleracion hardware con.. directX, por ejemplo. O como han hecho con la bennu3D, que es otra librería gráfica, pero 3d)

El cambio actual permite que, sin crearte ninguna librería que usase las librerías gráficas, con símplemente el core, puedas hacer llamadas directamente a dichas librerías. Es decir, te quita una capa en medio que tenías que diseñar.
Antes: creabas una librería con la funcion dibuja_cuadrado, en la que se llamaba a SDL_draw_box.
Ahora: llamas directamente a SDL_draw_box.

No es tan directo, pero bueno, no se necesita crear una dll para poder usarlo, o sea, los programadores que no tienen conocimiento de C podran hacer sus propias llamadas a dlls normales sin necesidad de depender de alguien que sepa C para que le arme una dll, incluso a uno que sepa C, para simplificarle trabajo.

Mas adelante el soporte podra ser mejor y mas intuitivo, por ahora hay que llamar a una serie de funciones.

Y ya tenia una version nueva, con bugs corregidos, pero bueno, tendre que hacer esas correcciones nuevamente cuando pueda dedicarle un tiempo a rearmar el entorno.
Title: Re: Avances, Diario de...
Post by: blostec on November 20, 2008, 04:59:40 PM
Quote from: SplinterGU on November 18, 2008, 08:22:22 PM
claro no has pillado que ahora bennu se pueden meter dlls "normales" sin necesidad de crear un modulo externo.

Simplemente genial!  :)
Title: Re: Avances, Diario de...
Post by: DCelso on November 20, 2008, 05:41:21 PM
Quote from: SplinterGU on November 20, 2008, 02:03:06 PM
Quote from: DCelso on November 19, 2008, 02:52:37 PM
Yo,:(:(, y sigo sin entenderlo. Lo leo y releo, pero no capto el mensaje.
A ver, cuando añadiste plugins a fenix, ya se podía enganchar con cualquier librería externa, simplemente programando un plugin para ello.
Aqui en bennu, has separado en módulos el core de fenix, siguiendo algun sistema parecido para enganchar con las dll de los modulos, pero no es el mismo sistema como con los plugins.
Antes había que crear en c o c++ una especie de wrapper para poder encapsular las librerías dinámicas a usar.

Nos estás diciendo que a partir de ahora no hace falta hacer eso y que directamente podemos enganchar de alguna forma nuestro código con las dlls dinámicas son solo tener sus "headers" mas no menos¿?.


En Fenix no podias llamar a cualquier dll, solo a dlls fenix...

Quote from: Drumpi on November 19, 2008, 03:01:57 PM
Verás: Fenix usaba SDL para representar gráficos, así que cuando creabas una libreria (dll) con otro motor gráfico, al final, tenías que recurrir de nuevo a SDL para integrarlo.

Splinter, al separarlos en módulos, dejó de usar SDL, y para representar gráficos podías usar los módulos que ha hecho él (creo que van por software, ¿no?) o crear la tuya propia con openGL, DX o la que te diera la gana (es decir, podías hacer cosas como cambiar el angle, el size, trabajar con paletas y demás usando aceleracion hardware con.. directX, por ejemplo. O como han hecho con la bennu3D, que es otra librería gráfica, pero 3d)

El cambio actual permite que, sin crearte ninguna librería que usase las librerías gráficas, con símplemente el core, puedas hacer llamadas directamente a dichas librerías. Es decir, te quita una capa en medio que tenías que diseñar.
Antes: creabas una librería con la funcion dibuja_cuadrado, en la que se llamaba a SDL_draw_box.
Ahora: llamas directamente a SDL_draw_box.

No es tan directo, pero bueno, no se necesita crear una dll para poder usarlo, o sea, los programadores que no tienen conocimiento de C podran hacer sus propias llamadas a dlls normales sin necesidad de depender de alguien que sepa C para que le arme una dll, incluso a uno que sepa C, para simplificarle trabajo.

Mas adelante el soporte podra ser mejor y mas intuitivo, por ahora hay que llamar a una serie de funciones.

Y ya tenia una version nueva, con bugs corregidos, pero bueno, tendre que hacer esas correcciones nuevamente cuando pueda dedicarle un tiempo a rearmar el entorno.

A eso me refería yo, a eso mismo, no me expliqué bien, entonces la idea que tenía era la correcta, es que con tanto alboroto me pusisteis en duda.
Yo quise decir que en fenix se podía enganchar con cualquier dll, pero no directamente, sino a través de una "dll fenix" que hiciera de wrapper (envoltorio, encapsulador, puente) entre fenix y la dll. Esta había que programarla en C.
Y lo que comentas que tendrá bennu es una forma de conectar "directamente" con la dll externa conociendo sus funciones y estructuras lo que se denomina cabecera "header". Esto de directamente me refiero a través de código Bennu, independientemente de que tengas que usar alguna función adicional para activar la dll tipo "dllimport" o "LoadLibrary" de c.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 20, 2008, 07:38:44 PM
"tendrá", no... "tiene", es el "mod_ffi" que subi hace unas semanas con un sample...
Title: Re: Avances, Diario de...
Post by: syous on November 24, 2008, 05:54:28 PM
para cuando unas tcpsock o fsock para bennu  ???
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 25, 2008, 02:24:53 AM
Debo anunciar gratamente que luego de muchisimos intentos y distros probadas, y tras tomarme una buena ducha fria y una pastillita para la presión he logrado compilar bennu en linux... donde otros fallaron la fuente fue la solucion... no me quedo otra opcion (gratamente) que instalar un debian puro, ahi todo fue fluido... y la verdad que va muy lindo... supongo que otras distro base podran ir tambien bien... pero bueno, ubuntu un fracaso, ultimas distros de otros linux que antes me funcionaban ahora son un desastre... no se que pasara en el mundo linux, pero bueno, la buena noticia es que el tema se soluciono...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 25, 2008, 04:18:12 AM
En el site hay nueva version binaria para linux, esto es lo ultimo que recupere del SVN, tiene todos los ultimos cambios informados, me faltan algunos que yo habia corregido y que ahora tengo que recordar.

La novedad es que ahora linux posee un instalador (hay que descomprimir el paquete principal, no lo que esta dentro de este), es precario, pero cumple su objetivo, se necesita tener permisos de root o superusuario para instalar el paquete, si haces "./install.sh help" muestra una ayuda, pero basicamente es:

./install.sh                instala el producto
./install.sh remove     desinstala el producto

ya no hay que hacer LD_LIBRARY_PATH, ni veran las dlls desperdigadas en el directorio del proyecto.
Para aquellos que no quieran usar el instalador, dentro del paquete hay un archivo bgd.pkg, que es un simple tgz con todos los archivos de bennu.

No se incluyen SDL, ogg, etc... esos hay que instalarlos con la herramienta para tal fin...

NOTA: Acabo de probar que el instalador solo funciona bien en linux 32, en 64 bits no se encuentran luego las dlls... en 64 bits sugiero el metodo manual.
Title: Re: Avances, Diario de...
Post by: osk on November 25, 2008, 10:23:32 AM
Hola! Está bueno!!
Una pregunta: el moddesc no está (ni el function-list.txt). ¿Es por alguna razón?
He visto el script...sólo por curiosidad, ¿por qué la comparación que haces es x$1="xhelp" en vez de $1="help" ? Por otro lado, no sé si sería buena idea dar la opción a la hora de instalar de poder elegir dónde: si no he visto mal, desempaqueta automáticamente en la carpeta donde estés...no sé.
Y una chorrada tocapelotas: ¿qué tal cambiar el nombre del script con algo como "setup" o similar? Lo digo porque un "install remove" es como un poco esquizofrénico...un "setup install" o un "setup remove" estaría más guay, no?

...Y finalmente, ¿por qué no hacer algo similar para Windows también? Hay multitud de programas generadores de instalación open source, no hace falta que os lo diga...por ejemplo http://nsis.sourceforge.net . En verdad yo casi que prefiero no usar instalador, pero reconozco que la mayoría de usuarios estándar lo agradecerán.

Ah, y lo de instalar todas las librerías en una subcarpeta dentro de /usr/lib...¿daría muchos problemas? Manía con el orden y eso...


Title: Re: Avances, Diario de...
Post by: josebita on November 25, 2008, 11:16:31 AM
Genial!, muchas gracias :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 25, 2008, 12:10:28 PM
1) El moddesc ni el function list no estan incluidos por razones de publico conocimiento con mi instalacion previa de windows+grub...
2) el hecho de tener "x$1" = "xhelp" y no lo otro, es por el simple motivo de que sino cuando ejecutas sin argumentos el if dara un error de expresion unaria (logicamente)
3) no desempaqueta donde estas, lo hace en el directorio /usr
4) porque no estas "setupeando" nada, sino que estas instalando... setup es mas bien para "seteos", esto no es un seteo es una instalacion
5) preguntar el path ira en alguna proxima version, anuncie que esto es un poco precario y rapido, pero que cumple con su funcion
6) Windows ya tendra su instalador... (conozco el nsis, de hecho lo use varias veces, para armar o para "desarmar" y toquetear instaladores) por ahora el problema de la mayoria es linux... a pesar de que los que usan linux son los pocos... pero bueno... me uni al club...
7) /usr/lib, quizas deberia usar otro, por si se llega a pisar (por ahora no pasa) alguna libreria del sistema que no haya tenido en cuenta, pero eso no deberia pasar, y ademas todos los productos instalan sus libs en dicha carpeta... quizas la solucion sea cambiar los nombres de las libs internas por algo asi como libbgd* o bgdlib*, eso no afectaria en nada, ya que ningun usuario deberia usarlas...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 25, 2008, 12:12:15 PM
espero me digan como va esta version y si encuentran algun bug... saludos...
yo por lo pronto encontre problemas con librerias libvorbisfiles3 en ubuntu 64, que no instala la lib 32 de esa y otras libs mas.

ahora mismo hare una instalacion de debian, como dios manda, adios a las distro fantasmas...
Title: Re: Avances, Diario de...
Post by: josebita on November 25, 2008, 05:57:32 PM
Bueno, por lo pronto veo que ya no hace falta aquello de LD_PRELOAD=/usr/lib/libX11.so.6, ¿verdad?.
Mi mini-proyecto de karaoke funciona sin problemas, no sabría decir objetivamente si más rápido, pero parece que sí. En fin, felicidades.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 25, 2008, 10:55:39 PM
fantastico
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 26, 2008, 02:32:44 PM
Nuevo instalador para linux, no hubo cambios en codigo, solo el instalador, por eso se subio el paquete nuevamente, recordar que si ya hicieron ./install.sh, hay que hacer "./install.sh remove" antes de correr el nuevo instalador.
No se dio opcion de preguntar el path, porque solo un directorio permite el uso de mod_* como shared library, o por lo menos todavia no se hacer que me soporte otro directorio, la otra opcion es poner todos los modulos como lib*, pero ahi ya no funcionan...
Title: Re: Avances, Diario de...
Post by: josebita on November 26, 2008, 04:42:46 PM
No sé si es exactamente lo que preguntas, pero puedes añadir un ficherico en /etc/ld.so.conf.d con el directorio de instalación de las librerías. Algo como:

echo "/opt/bennugd/lib" > /etc/ld.so.conf.d/bennugd-i386.conf

Obviamente, cambiando ese directorio por el de instalación. Luego conviene hacer un

ldconfig

como root, claro.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 26, 2008, 05:05:31 PM
en el script de instalacion hago eso... solo que otro path y no puse el "-i386" no se me ocurrio eso...
chequeatelo en la ultima version subida
Title: Re: Avances, Diario de...
Post by: HaCkZJuaNN on November 26, 2008, 05:59:36 PM
El tema de los floats infinitos y demás no está incluido en la WIP 15.c.2, que es la última que hay para windows en el directorio de betas, o sí???, porque no logro encontrar en qué módulo está y no viene en la lista de funciones. Además, pone que esa se subió el 3 de noviembre, y el mensaje en el que hablaste de ello es del 9 de noviembre, así que supongo que aún no lo habrás subido.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 26, 2008, 06:35:29 PM
en la de linux
Title: Re: Avances, Diario de...
Post by: josebita on November 26, 2008, 08:47:22 PM
Quote from: SplinterGU on November 26, 2008, 05:05:31 PM
en el script de instalacion hago eso... solo que otro path y no puse el "-i386" no se me ocurrio eso...
chequeatelo en la ultima version subida
Hoy no puedo, pero mañana te lo miro, ¿ok?
Title: Re: Avances, Diario de...
Post by: josebita on November 27, 2008, 08:43:00 PM
A mí el instalador me funciona sin mayor problema. Sólo una sugerencia: en vez de usar "cp" quizás te interese mirar el programa "install".
En cuanto a lo de las librerías que empiezan por 'mod' parece que no hay suerte. Según estos dos enlaces:
http://ubuntuforums.org/showthread.php?t=834388
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
todas las librerías salvo las de más bajo nivel deben tener por nombre lib*.so o ld-*.so
Sin embargo, acabo de comprobar que copiándolas con mod* al directorio que sea (yo las tengo en /opt/bennugd/lib) y haciendo softlinks a ellas, las encuentra. Esto es:
[code language="bash"][root@localhost lib]# pwd
/opt/bennugd/lib
[root@localhost lib]# /sbin/ldconfig -p | grep '/opt'
        libwm.so (libc6) => /opt/bennugd/lib/libwm.so
        libvideo.so (libc6) => /opt/bennugd/lib/libvideo.so
        libtext.so (libc6) => /opt/bennugd/lib/libtext.so
        libsdlhandler.so (libc6) => /opt/bennugd/lib/libsdlhandler.so
        libscroll.so (libc6) => /opt/bennugd/lib/libscroll.so
        librender.so (libc6) => /opt/bennugd/lib/librender.so
        libmouse.so (libc6) => /opt/bennugd/lib/libmouse.so
        libkey.so (libc6) => /opt/bennugd/lib/libkey.so
        libgrbase.so (libc6) => /opt/bennugd/lib/libgrbase.so
        libfont.so (libc6) => /opt/bennugd/lib/libfont.so
        libdraw.so (libc6) => /opt/bennugd/lib/libdraw.so
        libblit.so (libc6) => /opt/bennugd/lib/libblit.so
        libbgdrtm.so (libc6) => /opt/bennugd/lib/libbgdrtm.so
[root@localhost lib]# for i in mod_*; do ln -s $i lib$i; done
[root@localhost lib]# /sbin/ldconfig
[root@localhost lib]# /sbin/ldconfig -p | grep '/opt'
        mod_wm.so (libc6) => /opt/bennugd/lib/mod_wm.so
        mod_video.so (libc6) => /opt/bennugd/lib/mod_video.so
        mod_timers.so (libc6) => /opt/bennugd/lib/mod_timers.so
        mod_time.so (libc6) => /opt/bennugd/lib/mod_time.so
        mod_text.so (libc6) => /opt/bennugd/lib/mod_text.so
        mod_sys.so (libc6) => /opt/bennugd/lib/mod_sys.so
        mod_string.so (libc6) => /opt/bennugd/lib/mod_string.so
        mod_sound.so (libc6) => /opt/bennugd/lib/mod_sound.so
        mod_sort.so (libc6) => /opt/bennugd/lib/mod_sort.so
        mod_scroll.so (libc6) => /opt/bennugd/lib/mod_scroll.so
        mod_screen.so (libc6) => /opt/bennugd/lib/mod_screen.so
        mod_say.so (libc6) => /opt/bennugd/lib/mod_say.so
        mod_regex.so (libc6) => /opt/bennugd/lib/mod_regex.so
        mod_rand.so (libc6) => /opt/bennugd/lib/mod_rand.so
        mod_proc.so (libc6) => /opt/bennugd/lib/mod_proc.so
        mod_path.so (libc6) => /opt/bennugd/lib/mod_path.so
        mod_m7.so (libc6) => /opt/bennugd/lib/mod_m7.so
        mod_mouse.so (libc6) => /opt/bennugd/lib/mod_mouse.so
        mod_mem.so (libc6) => /opt/bennugd/lib/mod_mem.so
        mod_math.so (libc6) => /opt/bennugd/lib/mod_math.so
        mod_map.so (libc6) => /opt/bennugd/lib/mod_map.so
        mod_key.so (libc6) => /opt/bennugd/lib/mod_key.so
        mod_joy.so (libc6) => /opt/bennugd/lib/mod_joy.so
        mod_grproc.so (libc6) => /opt/bennugd/lib/mod_grproc.so
        mod_flic.so (libc6) => /opt/bennugd/lib/mod_flic.so
        mod_file.so (libc6) => /opt/bennugd/lib/mod_file.so
        mod_ffi.so (libc6) => /opt/bennugd/lib/mod_ffi.so
        mod_effects.so (libc6) => /opt/bennugd/lib/mod_effects.so
        mod_draw.so (libc6) => /opt/bennugd/lib/mod_draw.so
        mod_dir.so (libc6) => /opt/bennugd/lib/mod_dir.so
        mod_debug.so (libc6) => /opt/bennugd/lib/mod_debug.so
        mod_cd.so (libc6) => /opt/bennugd/lib/mod_cd.so
        mod_blendop.so (libc6) => /opt/bennugd/lib/mod_blendop.so
        libwm.so (libc6) => /opt/bennugd/lib/libwm.so
        libvideo.so (libc6) => /opt/bennugd/lib/libvideo.so
        libtext.so (libc6) => /opt/bennugd/lib/libtext.so
        libsdlhandler.so (libc6) => /opt/bennugd/lib/libsdlhandler.so
        libscroll.so (libc6) => /opt/bennugd/lib/libscroll.so
        librender.so (libc6) => /opt/bennugd/lib/librender.so
        libmouse.so (libc6) => /opt/bennugd/lib/libmouse.so
        libkey.so (libc6) => /opt/bennugd/lib/libkey.so
        libgrbase.so (libc6) => /opt/bennugd/lib/libgrbase.so
        libfont.so (libc6) => /opt/bennugd/lib/libfont.so
        libdraw.so (libc6) => /opt/bennugd/lib/libdraw.so
        libblit.so (libc6) => /opt/bennugd/lib/libblit.so
        libbgdrtm.so (libc6) => /opt/bennugd/lib/libbgdrtm.so
[root@localhost lib]# [/code]
Title: Re: Avances, Diario de...
Post by: josebita on November 27, 2008, 10:02:22 PM
Venga, más cosas:
En las cabeceras de desarrollo, la libgrbase.h no incluye en ningún momento SDL.h, aunque la usa. Si mi librería no la incluye a mano, no puedo compilar. Creo que debería iincluirla.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 02:33:42 AM
son headers viejos, igual creo que la grbase no la usa, la usa otro modulo... por otro lado, no sirven hacer softlinks, ya que el nombre de la dll es usado como parte de los symbolos de exportacion, y cambiar ahora los nombres no va...

si usas LD_LIBRARY_PATH, toma los mod donde sea... y si los pones en /usr/lib o /usr/lib32 va fenomeno...
Title: Re: Avances, Diario de...
Post by: josebita on November 28, 2008, 12:24:56 PM
El tema es que no conviene no respetar la convención de nombres. Entre otras cosas eso significa que, si alguna vez intentas meter bennu en los repositorios de debian (por ejemplo) no te lo van a aceptar.
En cuanto a lo de que las librerías no van... A mí me funciona en dos ordenadores distintos, uno con fedora y otro con ubuntu... En realidad no toma el nombre de la librería como libmod*, porque sigue el enlace. La salida de "ldconfig -p" muestra que realmente está tomando la librería como mod*, pero hay que crear los enlaces.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 02:26:39 PM
yo la probe y no me funciono, pero cuando haces el import, que pones?

si usas el ultimo Bennu, no te puede funcionar que pongas import "libmod_video"... ya que al importarla bennu intentara cargar las funciones llamadas "libmod_video_*", las cuales no existen... y si pones "mod_video", no te la tomara porque el nombre es "mod_video"... por lo menos en mi debian no me funciona poner esto ultimo si hago un soflink... asi que no entiendo como te funciona...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 02:29:41 PM
puedo hacer que internamente se busque por libmod_ o por mod_ en los unix, no hay problema con eso, pero me obliga a tener que renombrar a mano los modulos, porque libtool y toda la porqueria esa lo genera sin el prefijo.
Title: Re: Avances, Diario de...
Post by: josebita on November 28, 2008, 06:55:30 PM
No sé si estamos haciendo lo mismo. Siento ser tan pesado, pero entiendo que estás dejando las librerías mod* como tal y estás creando los enlaces a ellas como libmod*, ¿verdad?. Y en mi código bennu, lo he dejado como estaba cuando hacía lo de LD_LIBRARY_PATH: import "mod_video";
Sólo por si tiene alguna trascendencia, he puesto todas las lib* (las que vienen con el paquete) y las mod* en el mismo directorio, y he creado los enlaces en ese también.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 07:17:36 PM
no, esta bien... no hay problema...

que directorio? el de tu proyecto? el que usas con LD_LIBRARY_PATH? como haces el import?
Title: Re: Avances, Diario de...
Post by: josebita on November 28, 2008, 07:35:22 PM
A ver, lo que yo he hecho es copiar las librerías mod* y lib* a /opt/bennugd/lib. Además, he copiado los binarios bgdc y bgdi a /opt/bennugd/bin.
Luego he creado el fichero /etc/ld.so.conf.d/bennugd-i386.conf con el siguiente contenido:/opt/bennugd/libLuego he hecho los enlaces de las librerías mod* a libmod* del directorio /opt/bennugd/lib de la siguiente forma:[code language="bash"]for i in mod*; do ln -s $i lib$i; done[/code]De forma que ahora tengo en ese directorio las lib* originales, las mod* originales y un montón de libmod* enlazando con éstas últimas.
Ahora hago un /sbin/ldconfig para que actualice la base de datos de librerías.
Al consultar esa base de datos obtengo:[code language="bash"][root@localhost ~]# /sbin/ldconfig -p | grep '/opt'
        mod_wm.so (libc6) => /opt/bennugd/lib/mod_wm.so
        mod_video.so (libc6) => /opt/bennugd/lib/mod_video.so
        mod_timers.so (libc6) => /opt/bennugd/lib/mod_timers.so
        mod_time.so (libc6) => /opt/bennugd/lib/mod_time.so
        mod_text.so (libc6) => /opt/bennugd/lib/mod_text.so
        mod_sys.so (libc6) => /opt/bennugd/lib/mod_sys.so
        mod_string.so (libc6) => /opt/bennugd/lib/mod_string.so
        mod_sound.so (libc6) => /opt/bennugd/lib/mod_sound.so
        mod_sort.so (libc6) => /opt/bennugd/lib/mod_sort.so
        mod_scroll.so (libc6) => /opt/bennugd/lib/mod_scroll.so
        mod_screen.so (libc6) => /opt/bennugd/lib/mod_screen.so
        mod_say.so (libc6) => /opt/bennugd/lib/mod_say.so
        mod_regex.so (libc6) => /opt/bennugd/lib/mod_regex.so
        mod_rand.so (libc6) => /opt/bennugd/lib/mod_rand.so
        mod_proc.so (libc6) => /opt/bennugd/lib/mod_proc.so
        mod_path.so (libc6) => /opt/bennugd/lib/mod_path.so
        mod_m7.so (libc6) => /opt/bennugd/lib/mod_m7.so
        mod_mouse.so (libc6) => /opt/bennugd/lib/mod_mouse.so
        mod_mem.so (libc6) => /opt/bennugd/lib/mod_mem.so
        mod_math.so (libc6) => /opt/bennugd/lib/mod_math.so
        mod_map.so (libc6) => /opt/bennugd/lib/mod_map.so
        mod_key.so (libc6) => /opt/bennugd/lib/mod_key.so
        mod_joy.so (libc6) => /opt/bennugd/lib/mod_joy.so
        mod_grproc.so (libc6) => /opt/bennugd/lib/mod_grproc.so
        mod_flic.so (libc6) => /opt/bennugd/lib/mod_flic.so
        mod_file.so (libc6) => /opt/bennugd/lib/mod_file.so
        mod_ffi.so (libc6) => /opt/bennugd/lib/mod_ffi.so
        mod_effects.so (libc6) => /opt/bennugd/lib/mod_effects.so
        mod_draw.so (libc6) => /opt/bennugd/lib/mod_draw.so
        mod_dir.so (libc6) => /opt/bennugd/lib/mod_dir.so
        mod_debug.so (libc6) => /opt/bennugd/lib/mod_debug.so
        mod_cd.so (libc6) => /opt/bennugd/lib/mod_cd.so
        mod_blendop.so (libc6) => /opt/bennugd/lib/mod_blendop.so
        libwm.so (libc6) => /opt/bennugd/lib/libwm.so
        libvideo.so (libc6) => /opt/bennugd/lib/libvideo.so
        libtext.so (libc6) => /opt/bennugd/lib/libtext.so
        libsdlhandler.so (libc6) => /opt/bennugd/lib/libsdlhandler.so
        libscroll.so (libc6) => /opt/bennugd/lib/libscroll.so
        librender.so (libc6) => /opt/bennugd/lib/librender.so
        libmouse.so (libc6) => /opt/bennugd/lib/libmouse.so
        libkey.so (libc6) => /opt/bennugd/lib/libkey.so
        libgrbase.so (libc6) => /opt/bennugd/lib/libgrbase.so
        libfont.so (libc6) => /opt/bennugd/lib/libfont.so
        libdraw.so (libc6) => /opt/bennugd/lib/libdraw.so
        libblit.so (libc6) => /opt/bennugd/lib/libblit.so
        libbgdrtm.so (libc6) => /opt/bennugd/lib/libbgdrtm.so
[/code]Y como digo, las librerías que mete en la base de datos son las mod*, no las libmod*·
Por lo que tengo entendido, la razón de que busque las lib* pero luego meta en la base de datos las librerías reales (en caso de que las lib* sean enlaces) es porque así, con linkar contra (p. ej.) /usr/lib/libamarok.so y en cada sistema se puedan utilizar versiones de librerías distintas, mientras sean compatibles a nivel de símbolos. Es decir, en mi ordenador /usr/lib/libamarok.so es en realidad un enlace a /usr/lib/libamarok.so.0.0.0 y en otro sistema puede ser un enlace a /usr/lib/libamarok.so.0.1.2. Eso te permite linkar contra librerías de forma genérica o contra versiones en particular (linkando contra el enlace o contra el fichero en sí).

En cuanto a lo del LD_LIBRARY_PATH me refería a que mi código lo tengo igual que cuando hacía falta lo del LD_LIBRARY_PATH, es decir, para importar mod_video hago un simple:[code language="bennu"]import "mod_video";[/code] y no [code language="bennu"]import "libmod_video";[/code] En realidad mi variable de entorno LD_LIBRARY_PATH no está ni siquiera definida... Y bueno, mi proyecto está en /home/user/Programas/karaoke en un ordenador y en /home/joseba/cvs/karaoke en otro, pero podría estar en cualquier lado.

¡Vaya rollo que te acabo de meter!. Espero haberme explicado :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 07:52:13 PM
no, no hay rollo...
exactamente eso mismo hice yo, pero el ldconfig de mi debian 64, no me incorporo los mod... si las libs, pero no los mods... y ademas de eso, haciendo luego import "mod_video", no lo tomo... no se si sera un bug de la version 64 bits, pero no me extraña... que version tenes vos?
Title: Re: Avances, Diario de...
Post by: josebita on November 28, 2008, 07:55:29 PM
Estoy con una fedora 8 de 32 bits y con una Ubuntu 8.10 de 32 también.
Si me das un minuto, voy a probar con una redhat ws 4 de 64 bits.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 07:58:32 PM
dale... gracias...
igualmente para quitarnos de la duda, luego vuelvo a probar, pero tene por seguro que el asunto de los links fue una de las primeras cosas que hice y no funciono... quizas me olvide el ldconfig, pero es raro porque lo tengo en el script install, pero quien sabe... ahora no puedo, pero luego vuelvo a probar y te comento.
Title: Re: Avances, Diario de...
Post by: josebita on November 28, 2008, 08:03:49 PM
Bueno, entramos en el campo de lo extraño. Lo acabo de comprobar en el ordenador de 64 bits con la redhat (un poquito antigua, todo hay que decirlo) y funciona igual...
Yo qué se... son chorradas, pero intenta hacerlo a mano y comprueba los permisos y esas cosas que a veces se nos pasan.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2008, 08:26:32 PM
lo hice a mano, por eso quizas me falto algo, volver a hacerlo nuevamente
incluso hice tambien un for para los link... volvere a probar... gracias por la preocupacion...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 02, 2008, 07:14:43 PM
Funciono, me faltaba incluir un directorio mas en el bgd.conf, pero bueno, ya que estamos lo mejore un poco...
Con respecto a debian y los archivos que no empiezan con lib en el lib32, temo decir que tengo en la instalacion de debian paquetes que no cumplen con eso... asi que no veo motivos por no incluir a bennu...

El script quedo asi:


#!/bin/sh

MACHINE=$(uname -m)
if [ "$MACHINE" == "x86_64" ];
then
    TARGET_LIB=/usr/lib32
else
    TARGET_LIB=/usr/lib
fi

if [ "x$1" == "xhelp" ];
then
    echo "Bennu Game Development Installer"
    echo "(C) 2008 - SplinterGU"
    echo
    echo "usage: $0 [options]"
    echo "options:"
    echo "    help   - show this text"
    echo "    remove - uninstall Bennu Game Development"
    echo

elif [ "x$1" == "xremove" ];
then
    echo "Uninstalling Bennu Game Development..."
    rm -f /usr/bin/bgdc
    rm -f /usr/bin/bgdi
    rm -Rf $TARGET_LIB/bgd
    rm /etc/ld.so.conf.d/bgd.conf
    ldconfig
    echo "done!"

else
    CPWD=$PWD
    echo "Installing Bennu Game Development..."
    mkdir -p /tmp/bgd>/dev/null 2>/dev/null
    cd /tmp/bgd
    tar -zxvf $CPWD/bgd.pkg
    cp -Rf bin/* /usr/bin
    cp -Rf bgd $TARGET_LIB
    echo $TARGET_LIB/bgd>/etc/ld.so.conf.d/bgd.conf
    echo $TARGET_LIB/bgd/lib>>/etc/ld.so.conf.d/bgd.conf
    echo $TARGET_LIB/bgd/module>>/etc/ld.so.conf.d/bgd.conf
    ldconfig
    cd $CPWD
    rm -Rf /tmp/bgd
    echo "done!"

fi


Con la siguiente release, saldra con ese script...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 02, 2008, 07:35:12 PM
josebita, te ganaste un karma!
Title: Re: Avances, Diario de...
Post by: josebita on December 02, 2008, 09:12:20 PM
Quote from: SplinterGU on December 02, 2008, 07:14:43 PM
Funciono, me faltaba incluir un directorio mas en el bgd.conf, pero bueno, ya que estamos lo mejore un poco...
¡Genial!, me alegro mucho.
Quote from: SplinterGU on December 02, 2008, 07:14:43 PM
Con respecto a debian y los archivos que no empiezan con lib en el lib32, temo decir que tengo en la instalacion de debian paquetes que no cumplen con eso... asi que no veo motivos por no incluir a bennu...
Tendré que revisar eso, porque pensaba que era así :).

En fin, gracias por mirarlo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 02, 2008, 09:28:20 PM
por ejemplo, mira el paquete bonobo

/usr/lib/bonobo/servers/*.server (xml que no empiezan con lib)

(lib o lib32, segun el caso)

/usr/lib/bonobo-activation/* (hay ejecutables, que no empiezan con lib)

/usr/lib/dri/*.so (no empiezan con lib)

y hay un monton...

Title: Re: Avances, Diario de...
Post by: josebita on December 02, 2008, 10:31:40 PM
No puedo más que darte la razón :). El tema es que dejarlos en /usr/lib directamente me da cosita.... ¿Quizás /usr/lib/bgd?

Bueno, que no te quiero liar más, concéntrate en lo importante que es sacar la 1.0, que ya hay ganitas :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 02, 2008, 10:38:20 PM
si, ahi van ahora, en /usr/bin/bgd... nada en el /usr/lib... igual deberia no darte cosita, todos los productos meten sus libs en /usr/lib... no solo los del sistema...

y ahora mejore la version del instalador, ahora es un solo script... no hay mas 2 archivos... es un .sh, que se ejecuta e instala...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 12:24:30 AM
nuevo instalador linux agregado... ahora es un solo archivo... (http://betatester.bennugd.org/betas/bgd-wip16-installer.sh)
Title: Re: Avances, Diario de...
Post by: osk on December 03, 2008, 12:52:04 AM
Ei, ahora estoy en Windows y no lo he podido probar, pero he abierto el código con el bloc de notas y justo después del script hay un montón un montón un montón de líneas con símbolos raros...(?) Míratelo a ver si se te ha colado algo, porque es bastante extraño
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 12:54:39 AM
esos simbolos raros es la idea del instalador, esta en perfectas condiciones...
gracias...
Title: Re: Avances, Diario de...
Post by: animanegra on December 03, 2008, 01:17:52 AM
Creo que prefiero la otra version ^^ no me gusta eso de ejecutar un script como root :P. Se que al final es lo que hacemos con los paquetes .deb :D pero , dejaria tambien la posibilidad de untarear en un lugar especificado. podrias añadir que como argumento te puedan pasar instalar en el directorio actual y simplemente te untaree todo en el directorio actual.

Por cierto no se si conoceras, kdialog. Podrias ponerle al instalador ventanitas sin casi esfuerzo usando el programa. Para la gente mas acostumbrada al tema wizard de siguiente siguiente y siguiente les gustara mas ^^.

Basicamente ejecutas algo en plan:

kdialog --msgbox "Se va a proceder a la instalacion de bennu game development" y te pone un dialogo con el mensaje y un aceptar. Puedes con las diferentes opciones montar menus sencillos listas pedir ficheros y directorios, passwords y tal

Se puede usar tambien el gtkdialog que se supone puede coger interfaces hechas con el glade eso es ya rollo quiero ponerlo como me gusta :D pero yo no lo he usado aun. ^^

se me olvidaba ¿porque le añades la x antes de las variables?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 01:29:12 AM
caramba! como desconfian del producto!
la version anterior tambien necesita de permisos de root... todo instalador necesita permisos de root... todos los productos serios tienen su instalador o paquete... siempre pueden tocar el script y obtener los archivos si no les gusta que un script les haga el trabajo y setear todo lo que setea el script...
ya tendra su instalador de ventanitas, por ahora es asi... ultimamente no tengo tanto tiempo para dedicarle...
lo de las x en las variables ya lo explique unos mensajes atras, es algo basico en el uso de scripts con datos opcionales... leete un par de mensajes atras...
hay muchos productos que usan metodos de stub-script... no veo el problema de que bennu tambien lo use...
Title: Re: Avances, Diario de...
Post by: syous on December 03, 2008, 07:57:19 AM
Quote from: SplinterGU on December 03, 2008, 01:29:12 AM
caramba! como desconfian del producto!
la version anterior tambien necesita de permisos de root... todo instalador necesita permisos de root... todos los productos serios tienen su instalador o paquete... siempre pueden tocar el script y obtener los archivos si no les gusta que un script les haga el trabajo y setear todo lo que setea el script...
ya tendra su instalador de ventanitas, por ahora es asi... ultimamente no tengo tanto tiempo para dedicarle...
lo de las x en las variables ya lo explique unos mensajes atras, es algo basico en el uso de scripts con datos opcionales... leete un par de mensajes atras...
hay muchos productos que usan metodos de stub-script... no veo el problema de que bennu tambien lo use...

no hay desconfianza simplemente son  sugerencias o opiniones para mejorar un producto eso es lo que significa una comunidad recibir criticas constructivas para crecer
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 08:32:55 AM
Perfecto, pero la idea del installer es mejorar, cuantos mensajes hubo diciendo que no iba en linux, que como se hacia para que funcione, que el metodo de instalacion y tener todas las dlls junto al juego y a los ejecutables era algo feo y desordenado? ahora que esta ordenado y mejorado como lo hace cualquier producto serio, no entiendo la sugerencia.
pero bueno, los instaladores saldran asi, y si alguien considera que no es adecuado o no cumple con sus exigencias podra tirar de los fuentes...
sinceramente me esperaba una felicitacion por hacer que la instalacion sea tan simple, compacta, seria y ordenada (1 solo archivo de instalacion y no 2 o mas como habia antes...), pero bueno...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 08:42:23 AM
con respecto al kdialog o gtkdialog no viene instalado por default, y la instalacion dependeria del SO... pero veo que si esta instalado el dialog... y esta muy bueno... quizas luego se incluya, aunque no hay mucho para configurar, y el path de instalacion debe ser el que instala el script, por normas generales de instalacion de librerias y porque asi funciona tanto en 64bits como en 32bits...
Title: Re: Avances, Diario de...
Post by: josebita on December 03, 2008, 09:14:31 AM
Yo no tengo ningún problema con el instalador en modo stub, los instaladores de GarageGames, ID, icculus... lo hacen. En realidad, es lo más sensato si no te quieres meter con historias de empaquetar para cada distribución que tiende a ser un infierno.

Además, se puede sacar un tar.gz (o como esté comprimido en el paquete) del script con una línea de bash. Ahora no tengo tiempo para mirarlo, pero si quereis esta tarde puedo intentar postearlo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 09:18:28 AM
Sinceramente no es la idea, y me desagrada la intencion, pero bueno, la linea para obtener el paquete original es...

tail -n +52 bgd-wip16-installer.sh > bgd.tgz
Title: Re: Avances, Diario de...
Post by: josebita on December 03, 2008, 09:27:20 AM
Si en esto te doy la razón. Lo suyo es eso.
Tampoco hay razón para que quien quiera toquetear su sistema no lo pueda hacer. Tú dejas éste como sistema de instalación recomendado y punto, porque a la mayor parte de la gente le será más útil eso.

En fin, que en mi Ubuntu de 32 bits el instalador va como genial. Rápido y limpio.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 09:39:35 AM
Yo lo probe en linux 64, asi que excelente... lo unico malo que vi a esto, es que hay .so necesarias para bennu que no instala el apt de linux64... bueno, supongo tambien que es cosa de debian... ya que en 32 bits las instala, asi que el trabajo fue instalarlas en un jail de 32 bits y luego copiarlas a la carpeta /usr/lib32... estas .so son las de libsdl_mixer...
Gracias.
Title: Re: Avances, Diario de...
Post by: animanegra on December 03, 2008, 10:24:51 AM
jo lo siento. No me exprese bien :S No estaba diciendo que estubiese mal ni nada de eso. Ni pretendi expresar desconfianza. Lo que pretendia decir es que seria bueno tener la opcion de desempaquetar en el propio directorio. Algo  parecido al prefix de los configure. Pero era simplemente por el tema de que determinadas cosas yo las suelo instalar en directorios aparte, no como critica a que estubiese mal hecho ni nada ni fuese mala idea. Como dije todos los paquetes .deb se instalan con root. :( Siento que te pudiese sentar mal.
Title: Re: Avances, Diario de...
Post by: DCelso on December 03, 2008, 10:42:30 AM
Hola, por cierto esto podria meterse en otra sección llamada linux bennu, o problemas bennu o algo asi no?
lo digo porque he entrado varias veces a lo largo de estos dos dias creyendo que había novedades y releases en el avance de bennu y me he encontrado con esto :(.

Creía que ya estabas puesto manos a la obra con el código fuente de BennuGD :D

Venga, saludos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 10:51:28 AM
animanegra, no, disculpame a mi... es que estoy un poco agotado estos ultimos dias, con linux y trabajo, y la cabeza siente ese cansancio.. y quizas respondo de la forma adecuada... disculpame...
dcelso, festival, si bien no es codigo C, esto es parte del proyecto... y si bien no toco el codigo estoy relevando informacion sobre las cosas que hay que tocar... ademas de que emplee tiempo en el documento de estilo...
Title: Re: Avances, Diario de...
Post by: DCelso on December 03, 2008, 11:06:22 AM
ok, no yo era por organizarlo un poco, en verdad no pasa nada donde esté, era simplemente eso que al ver que habia nuevas respuestas pues entraba animado creyendo en una posible nueva versión :D :D.
No te mosquees ni te satures, no era mi intención.
Bastante haces con estar las 24 horas viendo el foro :D.
Gracias por todo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 11:24:51 AM
:)
Title: Re: Avances, Diario de...
Post by: HaCkZJuaNN on December 03, 2008, 05:28:13 PM
Para cuando tienes planeado colgar la release para windows? Lo digo porque tengo un pequeño código ya hecho que probar usando las funciones nuevas de floats, y querría probar el código antes de seguir complicándolo.

Gracias por todo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 03, 2008, 06:10:01 PM
apenas tenga un momento de hacer la compilacion...
Title: Re: Avances, Diario de...
Post by: Foni on December 08, 2008, 02:29:42 PM
Buenas tardes a todos:

Aprovechando la salida del WIP16 me descargue el sh y lo ejecute correctamente. El tema es que soy usuario div/fenix/bennu en windows de toda la vida y no sé por donde empezar, ni para adaptar los codigos a linux ni para que corran en linux.

Algo de documentacion al respecto tenemos?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 08, 2008, 02:43:44 PM
hola, creo que no hay ningun documento... lo que debes saber en linux principalemente es que las mayusculas y minusculas en los nombres de archivos y directorios es de importancia... yo sugiero tener todo en minusculas... tambien no usar paths absolutos y usar las barra de division para los paths... luego de eso, no deberias tener mayores problemas.
quizas me olvide algo, pero creo que con eso es suficiente por ahora.
Title: Re: Avances, Diario de...
Post by: Foni on December 08, 2008, 02:55:24 PM
Quote from: SplinterGU on December 08, 2008, 02:43:44 PM
hola, creo que no hay ningun documento... lo que debes saber en linux principalemente es que las mayusculas y minusculas en los nombres de archivos y directorios es de importancia... yo sugiero tener todo en minusculas... tambien no usar paths absolutos y usar las barra de division para los paths... luego de eso, no deberias tener mayores problemas.
quizas me olvide algo, pero creo que con eso es suficiente por ahora.

Y a parte de la gramática... ¿algun entorno de desarrollo para linux?

en windows creas el programa, lo compilas con el compilador y lo ejecutas con el interprete.

necesito saber el equivalente a esos pasos en linux, ya que como veis estoy bastante verde en este sistema operativo... jeje

Gracias Splinter por la respuesta, y por la velocidad de ella, un saludo
Title: Re: Avances, Diario de...
Post by: osk on December 08, 2008, 03:00:53 PM
Pues lo mismo: creas el programa con el editor de texto que más te guste, lo compilas con el compilador (bgdc) y lo interpretas con el intérprete (bgdi). Nada más.

P.D: Foni, mejor pon los posts de ayuda en su tema correspondiente,ok?...para mejorar la legibilidad y eso.
Title: Re: Avances, Diario de...
Post by: Foni on December 08, 2008, 03:03:44 PM
Quote from: osk on December 08, 2008, 03:00:53 PM
Pues lo mismo: creas el programa con el editor de texto que más te guste, lo compilas con el compilador (bgdc) y lo interpretas con el intérprete (bgdi). Nada más.


vale bien, jaja, pense que sería algo mas complicado, voy a probar!


PD: vale, postearé en la ayuda
Title: Re: Avances, Diario de...
Post by: josebita on December 14, 2008, 01:46:31 PM
¡¡No había visto que habías subido la wip 17!!
Ahora lo miro, si encuentro algo ya aviso :)

[Edito] Sólo una cosita con el instalador , si lo instalo como "sudo ./bgd-installer" me dice que no encuentra el ejecutable ldconfig.
¿Podrías explicitar en el script que es /sbin/ldconfig?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 14, 2008, 02:45:25 PM
claro que podria...
No avise que la subi, esperaba subir una de windows... aunque de esta wip17 solo corregi pocas cosas... pero la mas importante es el tema de los floats en linux...
Y para compilar la version windows es linux, es un tema, con el cygwin no va... tarda una locura siquiera correr el configure... asi que le estoy dando a una vm, pero estoy armando todo el tema de las librerias necesarias, poniendo todas las ultimas versiones de todos los productos.
Title: Re: Avances, Diario de...
Post by: Prg on December 14, 2008, 03:35:15 PM
Quoteesperaba subir una de windows...

;D  :) Dentro de poco.  :) dentro de poco... (Sonrisa de docientos [de cien a cien]).  ;)

Amigo, no se si te había agradecido por todo, de lo contrario, ¡Gracias!   :)

... (vocesita a lo lejos) Dentro de poco tendremos versión nueva los de windows...

PDT: (Si falta aún un poco de tiempo, no nos quiten las esperanzas, sólo digan que dentro de poco y se sobreentiende). :)

¡¡¡versión de windows, versión de windows!!!

;)
Title: Re: Avances, Diario de...
Post by: blostec on December 14, 2008, 04:55:35 PM
Yo cada dia visito el site de betas a ver si esta  ;D

Que novedades aporta la wip17 respeto a la wip15c2? Saludos!
Title: Re: Avances, Diario de...
Post by: DCelso on December 14, 2008, 05:45:19 PM
es verdad que novedades va a tener la nueva versión de windows.
La wip16 no salió aún ¿no?
Title: Re: Avances, Diario de...
Post by: josebita on December 14, 2008, 06:38:38 PM
La wip16 sólo salió para linux.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 14, 2008, 07:55:07 PM
ya dije que cosas corrije la wip17...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2008, 03:29:08 PM
Problemas con la version windows...
Despues de actualizar todos los paquetes compilador+SDL+SDL_Mixer+ogg+png+etc+etc+etc... parece que SDL cambio varios nombres en las constantes de teclado, lo que me obligara a reescribir parte del modulo de teclado y chequear que no haya inconsistencias... quizas tambien esto solucione el tema del mapeo incorrecto de teclas que pasaba con version anterior de la SDL.
Title: Re: Avances, Diario de...
Post by: MythomizeR on December 15, 2008, 04:33:44 PM
Dichosos cambios, ¿eh? :-)

[MENSAJE_DE_ALIENTO ON]
En cualquier caso, gracias por estar metiéndole la caña que le estás metiendo al Bennu, lenguaje divertido y potente a la par como pocos :-)
[MENSAJE_DE_ALIENTO OFF]

¡Saludos!
Title: Re: Avances, Diario de...
Post by: Prg on December 15, 2008, 10:36:03 PM
Quote
Despues de actualizar todos los paquetes compilador+SDL+SDL_Mixer+ogg+png+etc+etc+etc... parece que SDL cambio varios nombres en las constantes de teclado, lo que me obligara a reescribir parte del modulo de teclado y chequear que no haya inconsistencias... quizas tambien esto solucione el tema del mapeo incorrecto de teclas que pasaba con version anterior de la SDL.

:)  No importa, podemos esperar todavía. Además, si esto soluciona algo, ¡qué mejor! :)

Title: Re: Avances, Diario de...
Post by: DCelso on December 15, 2008, 11:40:23 PM
que sdl usas?  la 1.2.13 o la 1.3
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on December 15, 2008, 11:54:36 PM
la version windows esta muy rapida y estable , asi que no se va a acabar el mundo...    ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 16, 2008, 04:00:08 PM
1.3...

nuevamente problemas de equipo... tuve que reinstalar nuevamente linux, tras varios intentos infructuosos de instalar linux 64, termine con linux32... puf, que lento es linux 32 bits!

No me queda claro cual fue el problema, si hard, si grabadora de dvd que no funciona adecuadamente, o simplemente porque no se puede pasar de una etch a una sid sin pasar antes por una lenny... no se, pero me volvi loco, toda la noche despierto...

pero esta vez no perdi nada...
Title: Re: Avances, Diario de...
Post by: Prg on December 16, 2008, 10:37:19 PM
Quote
pero esta vez no perdi nada...

Cuando inicié a leer el mensaje me asusté,
que bueno, que no pasó a mayores...

A dormir amigo, hay que recuperar ese tiempo que no dormiste. :)
Title: Re: Avances, Diario de...
Post by: Transdiv on December 18, 2008, 11:50:43 PM
Quote from: SplinterGU on December 16, 2008, 04:00:08 PM
1.3...

nuevamente problemas de equipo... tuve que reinstalar nuevamente linux, tras varios intentos infructuosos de instalar linux 64, termine con linux32... puf, que lento es linux 32 bits!

No me queda claro cual fue el problema, si hard, si grabadora de dvd que no funciona adecuadamente, o simplemente porque no se puede pasar de una etch a una sid sin pasar antes por una lenny... no se, pero me volvi loco, toda la noche despierto...

pero esta vez no perdi nada...


Go Back to Windows,Go Back to Windows,Go Back to Windows,.......... (Leer esto recordando la musiquita de inicio de Windows, ta-ra.....)
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 19, 2008, 12:59:07 AM
jeje... en linux pasan cosas extrañas... hoy se me "trabo" el X, no respondia el teclado, solo se movia el mouse, pero obviamente, ningun evento de este era procesado... no siquiera respondio el ctrl+backspace, ctrl+alt+backspace, ctrl+alt+F1/F10... nada... no me quedo otra que pulsar el boton de reset... y con el vmware corriendo... raro, pero no se corrompio nada (aparentemente)...
esto es como cuando me lei la biblia completa para poder criticar con propiedad a la religion... tengo que seguir usando linux como desktop para poder criticarlo con propiedad... y realmente la cantidad de problemas que tengo en linux, no me pasaban en windows... y eso que no se puede decir que es por ser un usuario iniciado, ya que manejo el linux a nivel mas que avanzado, y corregi problemas que no vi solucion en ningun lado... y tengo detectados, diagnosticados y analizados unos cuantos bugs... pero me doy cuenta que linux es una caja de pandora...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 29, 2008, 02:22:17 AM
svn creado

http://bennugd.svn.sourceforge.net/viewvc/bennugd/
Title: Re: Avances, Diario de...
Post by: josebita on December 29, 2008, 02:27:34 AM
Genial :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 31, 2008, 04:02:18 PM
bueno, chequeen el svn cada tanto, hay cambios bastante frecuentemente.
Title: Re: Avances, Diario de...
Post by: MythomizeR on December 31, 2008, 06:07:22 PM
Interesante el poder ir observando las novedades/modificaciones/fixs/etc. que se van realizando en el proyecto gracias al svn...

Saludos y... ¿cómo no lo digo? Feliz Año 2009 :-)
Title: Re: Avances, Diario de...
Post by: josebita on January 03, 2009, 11:08:44 PM
Una cosita:

El script "configure" que viene del svn en "modules" no chequea que esté instalada la cabecera ffi.h.
Otra cosa es que tampoco tiene permiso de ejecución, pero eso es un poco chorradilla...
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2009, 01:47:57 AM
exacto, no chequea por el ffi.h puesto que aun ese modulo es experimental, no es definitivo...
Title: Re: Avances, Diario de...
Post by: josebita on January 04, 2009, 02:17:18 AM
ok.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 15, 2009, 08:03:28 AM
varios fix... revisar http://forum.bennugd.org/index.php?topic=343.0 y el svn http://bennugd.svn.sourceforge.net/viewvc/bennugd/
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2009, 12:26:08 AM
Corregido error de actualizacion del grafico al cambiar su centro.
Title: Re: Avances, Diario de...
Post by: DCelso on January 21, 2009, 01:20:36 AM
Ostras, que bien, en cuanto tenga un hueco pruebo el ejemplo que hice enel que ví el bug.
Mis felicitaciones.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2009, 01:33:03 AM
No se si sera el mismo bug... hay un bug pendiente, pero no tengo tiempo ahora de mirarlo, vi el ejemplo del jetpack, pero ese error no lo corregi aun... cuando tenga tiempo lo hago...
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 24, 2009, 04:41:21 PM
Corregido bug de actualizacion de pantalla con mirror y punto de control no centrado y sin usar angle.
Title: Re: Avances, Diario de...
Post by: DCelso on January 25, 2009, 02:49:02 AM
Splinter, no he podido probar nada aún, creí que estaba el exe por algún lado, veo que ya dejaste definitivamente de mantener los binarios de windows :( (siento ser windowsnero buaaa). Esto de depender de compilar los fuentes es mas complejo. Mingw32 es un asquillo, hay que compilar todo todo todo. Estoy intentandolo desde cygwin que veo que ya hay bastantes paquetes compliados como los zlib, png y SDL, a ver si consigo pronto un binario (y dlls) para win :(.
De todas formas, gracias por el bugfix.
PD: por cierto, ¿hay alguna forma de cargar jpgs?¿Sería dificil adaptar la parte del código de fenix de lectura de jpgs para hacer un modulo bennugd?¿o existe alguna librería power para hacer eso ya en bennu?
Es que los fondos ocupan un huevo en png de 32 bits :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 25, 2009, 04:57:56 AM
yo no me preocuparia mucho por el tamaño, en memoria va a ocupar lo mismo un png que un jpg... ademas un jpg para funcionar correctamente necesitaria ser un jpg sin compresion (o sin perdida de calidad), ya que en bennu los colores (0 por ejemplo) son significativos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 25, 2009, 06:03:28 AM
No deje de mantener los binarios windows, Sandman se estaba encargando de compilarlos, pero pronto volveré a hacerlo yo... quiero armar un instalador, asi las distro (tanto linux como windows) salen con su instalador...
Title: Re: Avances, Diario de...
Post by: kim-elet-o on January 25, 2009, 11:13:57 AM
Ok la paciencia es una virtud, y como por aqui queremos ser virtuosos en el arte del fenix, seremos pacientes, ademas como me gusta decir "lo bueno se hace esperar".

:D :D
Title: Re: Avances, Diario de...
Post by: blostec on January 25, 2009, 12:24:53 PM
SplinterGu no hay prisa, yo de momento sigo usando la beta 15c y tan contento.  ;)
Saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 05, 2009, 02:33:49 AM
binarios de la revision 22 listos para descarga
http://betatester.bennugd.org/betas/
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 05, 2009, 11:49:37 AM
Oh Yeah!, Thankcias, voy a probarla...

SplinterGU.Karma++
Title: Re: Avances, Diario de...
Post by: DCelso on February 05, 2009, 03:45:12 PM
buenísimo, ya lo tenía yo desde ayer por la mañana.
es lo que tiene revisar el svn cada dia :D.
Title: Re: Avances, Diario de...
Post by: blostec on February 08, 2009, 04:35:28 PM
Bajando la 22, gracias Juan!  :)
Title: Re: Avances, Diario de...
Post by: Prg on February 16, 2009, 04:22:11 AM
hola
tengo rato revisando y las librerías de la wip 22 no me funcionan correctamente.
aunque todas dicen haber sido creadas el 4 de febrero, excepto dos archivos que fueron creados el 5, encuentro los mismos bugs que la versión de diciembre que recibimos como regalo de navidad. no cierra ventana en la cruz, no se crean fpgs nuevos, etc, etc, etc. no entiendo qué pasa, pues había leido que todos estos problemas ya se habían resuelto.

antes de decir algo más, quisiera preguntar si a todos les ha funcionado bien la nueva versión. es suficiente con que revisen que se cierra la ventana de windows al dar click en la cruz. a mi no me pasa, y ya revisé la ruta de compilación y ejecusión, lo hice manualmente, y borré todas las versiones anteriores, revisé que no compilara al eliminar algunas librerías, me descargué los librerías externas zdl, etc.

saludos a todos :) (no se me ocurre nada más  :-[ )
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 16, 2009, 12:36:49 PM
ya se explico que lo de no cerrar ventana con la cruz no es un bug, cuando se pulsa la cruz se setea una variable que indica esta acccion... de hecho si mal no recuerdo lo use en el ejemplo de la GUI...

eso de que no se crean fpg nuevos no entiendo a que te referis el programa que crea fpg a partir de pngs funciona perfectamente... y no se que otros bugs mas decis... podrias numerarlos?
Title: Re: Avances, Diario de...
Post by: Prg on February 17, 2009, 12:11:35 AM
??? no es bug... oh??? perdón  :D

he revisado y si se crean fpgs nuevos en memoria, pero le doy a save_fpg, y no se guarda, y cambio las librerías a las de octubre y ahí si se guarda el fpg  ???

ehhhh, perdón por lo alarmista, como antes si funcionaba la x y ahora no (y parte esta cosita), pues pensé que había muchas cositas (cositas que no funcionaban) más, sin embargo no he tenido tiempo de buscar, por eso puse etc  ::) (je je, lo siento)

de todas formas, eso de que no se guarde los fpgs está raro, y les dejo un ejemplo.
saludos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 12:26:37 AM
si los maps en una lib tienen distinta profundidad no se grabaran...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 12:34:12 AM
el error esta en la fpg_new, que da 0... voy a revisar si es correcto...

bueno, tampoco se cuanto daba la version anterior...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 12:56:32 AM
Fixeado, gracias!
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 07:32:36 AM
Hola, tengo un error  con la ultima versión y los 32 bits de color.
Cuando pongo esa profundidad, si cargo un proceso con un gráfico con regiones transparentes y cargo otro proceso con otro gráfico mas chico que se moverá por encima del otro, me detecta colisión en las zonas transparentes del primer gráfico. En cambio en profundidad de 16 bits no pasa.
¿Es conocido ya?
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 07:56:27 AM
eso no es un bug...
las transparencias son colisionables... tanto en 16, como en 32bits..
el 0 absoluto es la unica transparencia que no colisiona, en 16 bits las transparencias con valor menos a 50% son convertidas a 0 absoluto, en 32 bits cada transparencia es respetada...

yo creo que de esto ya se hablo...
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 08:40:10 AM
Sí, se habló de eso y eso que comentas lo veo correcto, el problema es que te hablo de transparente transparente osea 0 absoluto. No he dicho transparencias en ningún caso sino transparente. Voy a revisar la imagen no vaya a ser que sea cercano a 0 y no 0.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 08:51:19 AM
si seguis teniendo el error, por favor, postea un ejemplo (con imagenes) asi lo pruebo...

gracias...
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 09:15:30 AM
Lo he revisado y no encuentro nada raro, a ver si podes ayuarme a verlo.
Saludos.
NOTA: Te mando un ejemplo con imágenes si lo pones a 16 va bien, si lo pones a 32 va mal, presento la variable hay colisión en la pantalla por si te sirve para algo.

Se me ha olvidado explicar lo esperado. El proceso player incrementa la coordenada "y"  hasta colisionar con el proceso backgr. En 32 bits siempre está colisionando y no cae nunca (asi que parece que el player vuela), en 16 bits va bien cae hasta tocar algo distinto de transparente.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 03:15:59 PM
Como dije, el problema esta en que no estas usando color absoluto 0, estas usando un RGBA de 255,255,255,0... en 32 bits poner un canal alpha en 0, solo hace a un pixel no visible, pero el pixel sigue estando, es hacerlo invisible, pero existe y colisiona...

esto es un grafico con un fondo 0 absoluto (RGBA=0,0,0,0)...

espero que ahora con la nota del RGBA se entienda el asunto...
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 07:45:56 PM
Ostras tu, pues eso no es lo típico de los programas, por ejemplo, el gimp no lo tiene en cuenta.
Yo creo que deberías permitir que fuera cualquier color a alpha 0. Date cuenta que el RGB(0,0,0) es otro color, asi que se está suponiendo que el "transparente transparente" es el negro con alpha 0. Cosa que hasta ahora ningún programa de los que he usado presupone: irfranview, acdsee,photoshop, inkscape, painshop pro. Para todos ellos alpha 0 es transparente independiente del color que tengan los otros canales. Cosa diferente sería que alpha fuera distinto de 0 porque supondría un color translúcido no transparente total.
Bueno, en fin, da igual, teniéndolo en cuenta tendré que pintar de negro lo que quiera que sea transparente y aplicarle alpha 0.
Muchas gracias por la aclaración.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 07:55:22 PM
alpha 0 es transparente... como un vidrio, porque sea transparente no significa que no este... proba correr contra una ventana y luego me decis si colisionas o no contra esta...

hay algo que todavia veo no se logra entender... una cosa es transparente otra cosa es ausente... 0 es ausencia... alpha 0 es transparente... pero no significa que este ausente, es un objeto transparente... esto es fantastico para 32 bits, porque nos permite poder colisionar contra objetos no visibles (transparentes)... cosa que en 16 y los otros modos no se puede...

EDIT:
Tampoco te equivoques, los programas graficos que mencionas se comportan igual... si vos tenes varios graficos de diferente color y luego le aplicas alpha 0 a cada 1 de estos, los colores de estos objetos siguen siendo el que tenian anteriormente, solo que no se ven... conservan su propiedad color... y si vos aplicas el selector magico para seleccionarlos por color, no va a tocar toda el area transparente porque tienen alpha 0, sino que van a tomar la seleccion del objeto por su color y no por su alpha...
veo que es dificil entender paletas, transparencias, alphas, huecos en los graficos (ausencia de pixels)...
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 08:10:42 PM
ok, gracias de nuevo
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 17, 2009, 10:34:17 PM
pero se entiende ahora?
Title: Re: Avances, Diario de...
Post by: DCelso on February 17, 2009, 11:11:33 PM
sipo, eso del RGBA lo explica bien. El único color que no produce colixion en 32 bits es el rgba (0,0,0,0) el resto sí producen colixion aunque no se vean.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 18, 2009, 01:13:51 AM
perfect!
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 23, 2009, 01:43:20 PM
binarios r24 estan disponibles... http://betatester.bennugd.org/betas/
Title: Re: Avances, Diario de...
Post by: Prg on February 24, 2009, 01:40:33 AM
wow, muchísimas gracias, descargando  :)
Title: Re: Avances, Diario de...
Post by: blostec on February 24, 2009, 10:42:09 AM
Actualizando versión, muchas gracias Splinter. Karma up!!  :)
Title: Re: Avances, Diario de...
Post by: izubiaurre on February 24, 2009, 12:31:53 PM
Novedades, SplinterGU?
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 24, 2009, 03:02:34 PM
Quote from: izubiaurre on February 24, 2009, 12:31:53 PM
Novedades, SplinterGU?

http://bennugd.svn.sourceforge.net/viewvc/bennugd/modules/?sortby=rev&sortdir=down&view=log
Title: Re: Avances, Diario de...
Post by: izubiaurre on February 24, 2009, 04:31:34 PM
No lo conocía. Una cosa, ya que la página de inicio de bennugd.org está tan vacío. Porqué no se ponen algunos links interesantes además de acceder al foro? Podrían ser acceso a la wikipedia, descargar la última versión, ...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 24, 2009, 04:44:59 PM
podria ser... no es mala idea... algo basico... si alguien se anima a armar esa pagina, yo la subo y luego actualizo los links...
Title: Re: Avances, Diario de...
Post by: syous on February 24, 2009, 05:00:54 PM
Hola por que no pruebas este mod  para smf  y  integrar los foros y un cms con portal de noticias, descargas, enlaces y en un plisaplas y manteniendo la estica


;Dhttp://www.tinyportal.net (http://www.tinyportal.net)
Title: Re: Avances, Diario de...
Post by: blostec on February 24, 2009, 05:15:00 PM
Muy bueno ese link syous.

Pixel ya creó una pagina (http://web.bennugd.org/) para el proyecto usando el CMS Drupal. Solo habría que redireccionar para que se mostrara por defecto al acceder a http://bennugd.org/ y buscar un theme acorde con el aspecto del foro. También veo importante que sea multilingue pudiéndose escoger el idioma. Drupal esta preparado para ello. Es imprescindible que esté en inglés para darse a conocer pero sin olvidar a la comunidad de usuarios en español que aquí somos la mayoría.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 24, 2009, 05:48:19 PM
por motivos de los ultimos hackeos, estamos intentando mantener todo por separado... en dominios y usuarios diferentes... la idea es el foro en un lugar, el portal en otro, etc, se que sera una complicacion, pero por lo menos limitamos un poco los hackeos...
Title: Re: Avances, Diario de...
Post by: panreyes on February 24, 2009, 09:48:41 PM
Actualmente Sandman está toqueteando la web, y planea hacer un tema común para ella, para el wiki, y no sé si para el foro, aunque creo que es más bien basado en el del foro actual.
Title: Re: Avances, Diario de...
Post by: izubiaurre on February 27, 2009, 10:01:37 AM
Coincido con ello. Es necesario unificar los contenidos aunque estén en diferentes servidores o sitios. Cosas imprescindibles:

Title: Re: Avances, Diario de...
Post by: osk on February 27, 2009, 10:12:48 AM
Si es cuestión de promocionarlo, yo me comprometo a escribir algún artículo de iniciación para las revistas que hagan falta (TodoLinux, LinuxMagazine, Linu+...otra cosa es que me hagan caso), cuando salga una versión definitiva de Bennu.
Y evidentemente, ir por otros foros.
Title: Re: Avances, Diario de...
Post by: Windgate on March 01, 2009, 06:02:48 AM
Eso de tener algún tipo de página web además del foro, por muy sencilla que sea, me parece fundamental.

Muchas veces recomiendo Bennu, pero la gente se extraña de que haya que conocerlo a través de un foro. A mí personalmente también me pasó en un principio, hasta que me decidí a postear y me encontré con las grandes personas que sois todos  ;)

Siento no poder ayudar en el tema de la web, soy bloggero pero no soy webero...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 01, 2009, 01:26:20 PM
muchas gracias a ambos...
Title: Re: Avances, Diario de...
Post by: Foni on March 02, 2009, 07:02:14 PM
Quote from: izubiaurre on February 27, 2009, 10:01:37 AM
Coincido con ello. Es necesario unificar los contenidos aunque estén en diferentes servidores o sitios. Cosas imprescindibles:


  • Foro
  • Página de inicio
  • Noticias
  • Documentación y Wiki
  • Material:

    • Ejemplos
    • Imágenes
    • Fuentes
    • Sonidos
    • ...
    En inglés como en castellano. Convendría promocionarlo un poco, Div_arena se convirtión en un gran portal con muchos usuarios...

100% de acuerdo, cada dia que pasa que alguien cae en esta web y no ve toda la informacion a golpe de vista, es un posible nuevo usuario de bennu que se pierde.

Es IMPRESCINDIBLE si se quiere que bennu sea utilizado que disponga de una WEB, simple, que tenga muy resumido ¿que es? ¿como empezar? etc, para que cualquier persona con conocimientos basicos de programacion pueda estar en 5 minutos trasteando con el.


en mi opinion intentaria basarme ya en alguna web que tenga todo eso para ver como lo estructuran. es necesario que salgan en portada imagenes de juegos ya echos con bennu y con un buen acabado esteticamente, que la gente vea lo que se puede hacer, una vez visto que con un simple click vea como se empieza, que de un simple click pueda descargar todo lo necesario, y tenga a la vista un tutorial para principiantes (ESPECIFICO DE BENNU)

es decir, que si yo le doy el link a mi primo de 15 años, le pique la curiosidad 1º, 2º que intente hacer el algo, y 3º que lo consiga por basico que sea, si se consiguen estos 3 pasos en la primera hora de contacto con bennu (cosa mas que sencilla) el usuario ya indagara mas a fondo por los foros etc... y sera un habitual de bennu.

En cambio si llega y ve: click para acceder a los foros ya dices: vaya, ni una triste web... entras en el foro y no sabes ni por donde buscar... y tardas 3 horas en encontrar simplemente como funciona en comparacion con fenix... eso es lo q no puede pasar, que alguien que ya conozca div/fenix tenga que tirarse 3 horas para ver como funciona esto...donde conseguirlo etc...

Y se deberia hacer cuanto antes, pues cuanto mas se tarde menos usuarios nuevos en esta comunidad tendremos y estaremos perdiendo
Title: Re: Avances, Diario de...
Post by: syous on March 03, 2009, 04:34:25 PM
 ;D podría mirar otro sistema mas completo de integrar smf y sistema de portal muy completo http://mkportal.es/ (http://mkportal.es/) y serie independientes a la vez de que se integran
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 03, 2009, 04:46:26 PM
si puede ser independiente (alojado fisicamente en otro subdominio o usuario) seria lo ideal...

con respecto a los cambios que estan haciendo en el site, por favor, no me toquen el foro... solo denme ese gustito... despues hagan lo que crean conveniente con el resto del site...
Title: Re: Avances, Diario de...
Post by: Windgate on March 03, 2009, 07:54:00 PM
Ya os he dicho que soy bloggero, un blog de Wordpress direccionado con bennugd.org podría servir temporalmente... Aunque por supuesto que no es la mejor solución ni mucho menos. Una web sería lo adecuado, preferiblemente con su propio alojamiento para poder modificar cualquier cosa en cualquier momento.

El foro ni tocarlo, es el único foro que uso, nunca me han gustado usar foros pero es que este es sencillamente perfecto!
Title: Re: Avances, Diario de...
Post by: animanegra on March 04, 2009, 07:43:34 PM
Holas, pregunta supertonta. Donde andan las fuentes? Que toy con un mac que me han dejado pa compilar el bennu, y no las veo por ningun sitio. ^^ Asi le meto un compile y dejo una release compilada para macosX con motorola. Me he bajado de betatester los sh y nas. Hay solo versiones compiladas, y en sources no me sale la page :( (Puede que me haya perdido algo ya que llevo mucho tiempo sin tiempo para leer los foros en condiciones :S aparte de lo empanao que suelo ser ^^)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 04, 2009, 08:38:10 PM
Quote from: animanegra on March 04, 2009, 07:43:34 PM
Holas, pregunta supertonta. Donde andan las fuentes? Que toy con un mac que me han dejado pa compilar el bennu, y no las veo por ningun sitio. ^^ Asi le meto un compile y dejo una release compilada para macosX con motorola. Me he bajado de betatester los sh y nas. Hay solo versiones compiladas, y en sources no me sale la page :( (Puede que me haya perdido algo ya que llevo mucho tiempo sin tiempo para leer los foros en condiciones :S aparte de lo empanao que suelo ser ^^)


http://forum.bennugd.org/index.php?action=search2

pones sourceforge... y le das enter...

o podes ver mi firma...
Title: Re: Avances, Diario de...
Post by: animanegra on March 04, 2009, 08:56:22 PM
joder menudo empane, te juro que habia visto tu firma pero se ve que me habia fijado solo en la parte de betatesters :S ^^ Gracias :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 04, 2009, 09:15:02 PM
je, eso lo agregue cuanto respondi... ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 08, 2009, 03:40:52 AM
- Soporte de fade 32 bits (disponible en SVN)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 12, 2009, 10:52:44 PM
Finalmente funciona correctamente (eso creo)!

- Fixed Translucent tables in 8 bits
- Fixed blend operations in 8 bits
- Fixed Translucent+Blend in 8 bits

sample

Program Pruebas;

#ifdef __VERSION__
import "mod_screen";
import "mod_video";
import "mod_map";
import "mod_say";
import "mod_text";
import "mod_rand";
import "mod_mouse";
#endif
import "mod_file";
import "mod_key";
import "mod_draw";
import "mod_proc";
import "mod_math";

#define GR_DEPTH    depth
//#define GR_DEPTH    16

global
   int recta;
   int cubo;
   int fondo;
   int depth = 32;
   int gflags = 0;
   int gangle = 0;
   int gsize = 100;
   int galpha = 255;
   int sw = 0;

begin

    set_fps(0,0);

    action();

    While (NOT key(_esc))
        if (key(_TAB))
            let_me_alone();

            depth /= 2;
            if (depth<8) depth = 32; end

            delete_text(all_text);
            unload_map(0,fondo);
            unload_map(0,cubo);
            unload_map(0,recta);
            unload_map(0,mouse.graph);
            action();
            while (key(_TAB)) frame; end;
         end

        frame;
    end
end



process action()
private
map;
count ;
Begin
//    scale_mode = scale_normal2x;

/*
    dump_type=1;
    restore_type=1;
*/
    set_mode(640,480,GR_DEPTH|WAITVSYNC); // For rgb for graphs

    cubo=new_map(100,100,GR_DEPTH);
    drawing_map(0,cubo);
    drawing_color(rgb(0,0,200));
    draw_box(50,0,100,100);
    drawing_color(rgb(0,100,200));
    draw_box(0,0,50,100);
    drawing_color(rgba(100,0,200,50));
    draw_box(25,0,75,25);
    /* Hole */
    drawing_color(rgba(255,255,0,200));
    draw_box(35,35,65,65);
    drawing_color(rgba(255,0,255,64));
    draw_box(45,45,55,55);

/*
    cubo=new_map(100,100,GR_DEPTH);
    drawing_map(0,cubo);
    drawing_color(rgb(0,0,200));
    draw_fcircle(50,50,50);
    drawing_color(rgb(0,100,200));
    draw_fcircle(50,25,20);
*/

    recta=new_map(5,100,GR_DEPTH);
    drawing_map(0,recta);
    drawing_color(rgb(200,0,0));
    draw_box(0,0,5,100);
    drawing_color(rgb(0,200,0));
    draw_box(0,0,5,5);
    drawing_color(rgb(0,0,200));
    draw_box(5,0,5,100);

    set_mode(640,480,depth);

    mouse.graph=png_load("pngtest.png");

    fondo=new_map(640,480,depth);

    for (y=0;y<480;y++)
        for (x=0;x<640;x++)
             //((y*100/256)<<(((y>>2)%3)<<3))
//            map_put_pixel(0,fondo,x,y,rgb(y*256/480,y*256/480,y*256/480));
            map_put_pixel(0,fondo,x,y,rgb((y&1)?x*256/640:0,(x&1)?x*256/640:0,(y&1)?y*256/480:0));
        end
    end

    put_screen(0,fondo);

    write_int (0,100,10,1,&fps);
    write_int (0,200,10,1,&depth);

    write_int (0,300,10,1,&gangle);
    write_int (0,400,10,1,&gsize);
    write_int (0,500,10,1,&galpha);

    jugador(120,180,cubo,-180000,0);
    jugador(240,180,cubo,-180000,B_HMIRROR);
    jugador(120,300,cubo,-180000,B_VMIRROR);
    jugador(240,300,cubo,-180000,B_HMIRROR|B_VMIRROR);

    jugador(440,180,recta,-180000,0);
    jugador(560,180,recta,-180000,B_HMIRROR);
    jugador(440,300,recta,-180000,B_VMIRROR);
    jugador(560,300,recta,-180000,B_HMIRROR|B_VMIRROR);

    While (NOT key(_esc))
        gangle+=100;

        If (key(_F1)) gflags |= B_TRANSLUCENT; end
        If (key(_F2)) gflags = gflags & ~B_TRANSLUCENT; end
        If (key(_F3)) gflags |= B_ABLEND; end
        If (key(_F4)) gflags = gflags & ~B_ABLEND; end
        If (key(_F5)) gflags |= B_SBLEND; end
        If (key(_F6)) gflags = gflags & ~B_SBLEND; end

        If (key(_minus)) gsize-=10; if (shift_status) while(key(_minus)) frame; end ;end; end
        If (key(_plus))  gsize+=10; if (shift_status) while(key(_plus))  frame; end ;end; end

        If (key(_1) && galpha > 0)   galpha--; if (shift_status) while(key(_1)) frame; end ;end; end
        If (key(_2) && galpha < 255) galpha++; if (shift_status) while(key(_2)) frame; end ;end; end

        If (key(_q)) gangle-=1000;   if (shift_status) while(key(_q)) frame; end ;end; end
        If (key(_w)) gangle+=1000;   if (shift_status) while(key(_w)) frame; end ;end; end
        If (key(_a)) gangle-=100;    if (shift_status) while(key(_a)) frame; end ;end; end
        If (key(_s)) gangle+=100;    if (shift_status) while(key(_s)) frame; end ;end; end
        If (key(_z)) gangle-=10;     if (shift_status) while(key(_z)) frame; end ;end; end
        If (key(_x)) gangle+=10;     if (shift_status) while(key(_x)) frame; end ;end; end

        If (key(_9) && !fading) fade_off(); while(key(_9)) frame; end; end
        If (key(_0) && !fading) fade_on() ; while(key(_0)) frame; end; end

        if ( key( _H ) ) gflags ^= B_HMIRROR; while ( key( _H ) ) frame; end; end
        if ( key( _V ) ) gflags ^= B_VMIRROR; while ( key( _V ) ) frame; end; end

        if ( key(_F10)) map = get_screen(); while(file_exists("capture"+count+".png"));count++;end;save_png(0,map,"capture"+count+".png"); unload_map(0,map);while ( key(_F10)) frame; end; end

        if ( key( _SPACE ) ) gangle = 0; end

        Frame;
    End

    let_me_alone();

End

Process jugador(x,y,graph,angle,iflags)
Private
    int mapa;
Begin
    While (NOT key(_esc))
        alpha = galpha;
        size = gsize;
        angle = gangle;
        flags = gflags ^ iflags;

        Frame;
    End
End
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 13, 2009, 02:09:11 AM
r28 available for download...
Title: Re: Avances, Diario de...
Post by: blostec on March 13, 2009, 08:22:26 AM
Actualizando versión, gracias SplinterGU! karma++  :)
Title: Re: Avances, Diario de...
Post by: blostec on March 13, 2009, 09:25:45 AM
No se si lo has hecho a propósito o es un descuido, pero en esta release falta el describe.bat.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 13, 2009, 09:07:12 PM
r29 in svn...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 13, 2009, 09:07:49 PM
Quote from: blostec on March 13, 2009, 09:25:45 AM
No se si lo has hecho a propósito o es un descuido, pero en esta release falta el describe.bat.

no me di cuenta... gracias... lo incluire en la proxima... me esta costando mucho subir las releases...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 15, 2009, 12:05:01 AM
r30 in svn...

core:

- new string_ptoa more efficient and same result in different SO.
- check constants already defined as variable
- Fix variant arg for pointer vars
- Fix unsigned comparations

modules:
   
- 32 bits drawing alpha support (alpha-pixel and drawing_alpha)
- speed up some drawing functions
- write_var pointer vars support

sample:


import "mod_draw"
import "mod_wm"
import "mod_key"
import "mod_video"
import "mod_text"
import "mod_say"
import "mod_rand"
import "mod_map"

Process Main()
private
unsigned int ga = 255;
unsigned int r = 255, g = 255, b = 255;
unsigned int a = 255;
char * rgba;

Begin
    set_mode(640,480,32);

    write(0,10,10,0,"drawing_alpha:");   write_var(0,110,10,0,ga);
    write(0,10,20,0,"r:");               write_var(0,110,20,0,r);
    write(0,10,30,0,"g:");               write_var(0,110,30,0,g);
    write(0,10,40,0,"b:");               write_var(0,110,40,0,b);
    write(0,10,50,0,"alpha");            write_var(0,110,50,0,a);
    write(0,10,60,0,"color32:");         write_var(0,110,60,0,rgba);

    Repeat
        if (key(_1) and ga>0) drawing_alpha(ga--); end
        if (key(_2) and ga<255) drawing_alpha(ga++); end

        if (key(_q) and r>0) drawing_color(rgba(r--,g,b,a)); end
        if (key(_a) and r<255) drawing_color(rgba(r++,g,b,a)); end

        if (key(_w) and g>0) drawing_color(rgba(r,g--,b,a)); end
        if (key(_s) and g<255) drawing_color(rgba(r,g++,b,a)); end

        if (key(_e) and b>0) drawing_color(rgba(r,g,b--,a)); end
        if (key(_d) and b<255) drawing_color(rgba(r,g,b++,a)); end

        if (key(_r) and a>0) drawing_color(rgba(r,g,b,a--)); end
        if (key(_f) and a<255) drawing_color(rgba(r,g,b,a++)); end

        if (key(_SPACE)) draw_box(rand(0,640),rand(0,480),rand(0,640),rand(0,480)); end

        rgba = rgba(r,g,b,a);

        frame;

    Until(exit_status||key(_ESC))

End

Title: Re: Avances, Diario de...
Post by: Drumpi on March 18, 2009, 10:13:03 AM
Por curiosidad ¿cuando sacas los binarios? cuando ya se ha probado como estable, cuando trabajas en la siguiente revisión, al poco tiempo...
Es que hay ganas :D :D :D :D
Title: Re: Avances, Diario de...
Post by: splinter_work on March 18, 2009, 12:42:45 PM
hoy a la noche generare todo...
Title: Re: Avances, Diario de...
Post by: blostec on March 18, 2009, 01:31:14 PM
splinter_work? a que se debe ese nuevo nick?
Title: Re: Avances, Diario de...
Post by: splinter_work on March 18, 2009, 02:35:15 PM
a que estoy en el trabajo... mi otro nick es solo para uso en zona militarizada...
Title: Re: Avances, Diario de...
Post by: HaCkZJuaNN on March 18, 2009, 05:29:14 PM
Quote from: splinter_work on March 18, 2009, 02:35:15 PMen zona militarizada...

???
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 20, 2009, 09:35:38 AM
Gran trabajo con las últimas optimizaciones/incorporaciones al lenguaje con cosas tales como "new string_ptoa more efficient and same result in different SO", "speed up some drawing functions", "write_var pointer vars support"... me gustan esas cosas...

Por cierto, puesto que ya diste soporte de fade en 32bits, ya se podría eliminar la línea que hace referencia a ello en la sección "a completar (urgencia media)" del hilo "TODO", así como quizás actualizar alguna cosa de ese hilo...

Saludos.
Title: Re: Avances, Diario de...
Post by: izubiaurre on March 20, 2009, 06:46:04 PM
Quote from: SplinterGU on March 15, 2009, 12:05:01 AM
(...)


import "mod_draw"
import "mod_wm"
import "mod_key"
import "mod_video"
import "mod_text"
import "mod_say"
import "mod_rand"
import "mod_map"

Process Main()
private
unsigned int ga = 255;
unsigned int r = 255, g = 255, b = 255;
unsigned int a = 255;
char * rgba;

Begin
    set_mode(640,480,32);

    write(0,10,10,0,"drawing_alpha:");   write_var(0,110,10,0,ga);
    write(0,10,20,0,"r:");               write_var(0,110,20,0,r);
    write(0,10,30,0,"g:");               write_var(0,110,30,0,g);
    write(0,10,40,0,"b:");               write_var(0,110,40,0,b);
    write(0,10,50,0,"alpha");            write_var(0,110,50,0,a);
    write(0,10,60,0,"color32:");         write_var(0,110,60,0,rgba);

    Repeat
        if (key(_1) and ga>0) drawing_alpha(ga--); end
        if (key(_2) and ga<255) drawing_alpha(ga++); end

        if (key(_q) and r>0) drawing_color(rgba(r--,g,b,a)); end
        if (key(_a) and r<255) drawing_color(rgba(r++,g,b,a)); end

        if (key(_w) and g>0) drawing_color(rgba(r,g--,b,a)); end
        if (key(_s) and g<255) drawing_color(rgba(r,g++,b,a)); end

        if (key(_e) and b>0) drawing_color(rgba(r,g,b--,a)); end
        if (key(_d) and b<255) drawing_color(rgba(r,g,b++,a)); end

        if (key(_r) and a>0) drawing_color(rgba(r,g,b,a--)); end
        if (key(_f) and a<255) drawing_color(rgba(r,g,b,a++)); end

        if (key(_SPACE)) draw_box(rand(0,640),rand(0,480),rand(0,640),rand(0,480)); end

        rgba = rgba(r,g,b,a);

        frame;

    Until(exit_status||key(_ESC))

End



Una cosa, ¿el código no se tendría que ver con colores?
Title: Re: Avances, Diario de...
Post by: izubiaurre on March 20, 2009, 06:49:26 PM
Bueno, me respondo a mí mismo:


[code language="bennu"]
import "mod_draw"
import "mod_wm"
import "mod_key"
import "mod_video"
import "mod_text"
import "mod_say"
import "mod_rand"
import "mod_map"

Process Main()
private
unsigned int ga = 255;
unsigned int r = 255, g = 255, b = 255;
unsigned int a = 255;
char * rgba;

Begin
    set_mode(640,480,32);

    write(0,10,10,0,"drawing_alpha:");   write_var(0,110,10,0,ga);
    write(0,10,20,0,"r:");               write_var(0,110,20,0,r);
    write(0,10,30,0,"g:");               write_var(0,110,30,0,g);
    write(0,10,40,0,"b:");               write_var(0,110,40,0,b);
    write(0,10,50,0,"alpha");            write_var(0,110,50,0,a);
    write(0,10,60,0,"color32:");         write_var(0,110,60,0,rgba);

    Repeat
        if (key(_1) and ga>0) drawing_alpha(ga--); end
        if (key(_2) and ga<255) drawing_alpha(ga++); end

        if (key(_q) and r>0) drawing_color(rgba(r--,g,b,a)); end
        if (key(_a) and r<255) drawing_color(rgba(r++,g,b,a)); end

        if (key(_w) and g>0) drawing_color(rgba(r,g--,b,a)); end
        if (key(_s) and g<255) drawing_color(rgba(r,g++,b,a)); end

        if (key(_e) and b>0) drawing_color(rgba(r,g,b--,a)); end
        if (key(_d) and b<255) drawing_color(rgba(r,g,b++,a)); end

        if (key(_r) and a>0) drawing_color(rgba(r,g,b,a--)); end
        if (key(_f) and a<255) drawing_color(rgba(r,g,b,a++)); end

        if (key(_SPACE)) draw_box(rand(0,640),rand(0,480),rand(0,640),rand(0,480)); end

        rgba = rgba(r,g,b,a);

        frame;

    Until(exit_status||key(_ESC))

End
[/code]
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 20, 2009, 10:34:52 PM
Quote from: MythomizeR on March 20, 2009, 09:35:38 AM
Gran trabajo con las últimas optimizaciones/incorporaciones al lenguaje con cosas tales como "new string_ptoa more efficient and same result in different SO", "speed up some drawing functions", "write_var pointer vars support"... me gustan esas cosas...

Por cierto, puesto que ya diste soporte de fade en 32bits, ya se podría eliminar la línea que hace referencia a ello en la sección "a completar (urgencia media)" del hilo "TODO", así como quizás actualizar alguna cosa de ese hilo...

Saludos.

gracias... hoy hay nuevas mejoras, en un rato las subo...
cierto...
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 20, 2009, 11:45:35 PM
A ti por la labor, estaré pendiente de esas novedades ;-)
Title: Re: Avances, Diario de...
Post by: Windgate on March 21, 2009, 09:49:39 AM
Arg, siento decir que desde Windows, copiando y pegando ese codigo y pulsando F6 (Compilar+Ejecutar) el programa se me cierra solo...

¿Me falta actualizar una DLL verdad? Me ha pasado varias veces en los ultimos meses. Si usa alguna DLL nueva de las ultimas 3-4 semanas tiene que ser eso. Confirmadme!
Title: Re: Avances, Diario de...
Post by: blostec on March 21, 2009, 11:37:49 AM
Ese código no te funciona porque el soporte 32bits alpha se ha añadido en la r30 de la cual no se han liberado los binarios. Es normal que con la r28 no funcione. Si tienes dudas con las dll's, lo mejor es que las borres y te bajes de nuevo la release 28 y el mandatory pack. Saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 21, 2009, 01:17:49 PM
maldicion, ayer pense que habia subido los cambios, pero se ve que fallo...

ahora si, revision 33 disponible en el svn...

lamentablemente no estoy pudiendo subir los ejecutables, mi ISP me tiene cansado...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 21, 2009, 05:21:27 PM
no mas betas... ahora son snapshot...

http://betatester.bennugd.org/snapshot/
Title: Re: Avances, Diario de...
Post by: izubiaurre on March 21, 2009, 08:50:48 PM
Diferencias entre betas, wips, revisions y snapshots?
Title: Re: Avances, Diario de...
Post by: blostec on March 21, 2009, 09:41:04 PM
Veo que ya estas subiendo la r34, mañana me la bajo y la pruebo. Gracias!  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 21, 2009, 10:21:39 PM
betas son betas...
wips, son versiones en desarrollo, podria ser lo mismo que snapshots.
revision es la numeracion de cada cambio...
snapshot es una foto binaria de lo que esta en el repositorio en tal revision
Title: Re: Avances, Diario de...
Post by: Prg on March 22, 2009, 03:39:36 AM
Quoteahora si, revision ...
gracias, :)
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 22, 2009, 10:54:47 AM
Gracias por la r34.

A ver si se me ocurren más sugerencias para el lenguaje y las digo, aunque supongo que lo prioritario en éstos momentos sea su depuración...
Title: ¿Problema con fread?
Post by: MythomizeR on March 22, 2009, 10:31:53 PM
Bueno, escribo en un post nuevo no vaya a ser que por editar el anterior pase desapercibido... :-)

El caso es que tras probar la última release, la r34, un sencillo fragmento de código que antes me funcionaba sin problemas ahora ha dejado de hacerlo, a saber:

private
  int fichero;
  word *buffer;
  int n;
begin
  buffer = alloc(1000);
  fichero = fopen(filename,O_READ);
  for(n=1000;n;n--)
    fread(fichero,buffer);
    buffer++;
  end
  fclose(fichero);
end


Antes me cargaba los 1000 bytes correctamente en 'buffer' y ahora lo carga con datos "basura" que nada tienen que ver con lo que antes cargaba...

Ello me hace pensar que quizás en este tiempo ha habido algún cambio (quizás bug, no se...) en la función fread.

Y que sí, que es un poco gañán usar fread en su versión de dos parámetros teniendo una de tres que te lee todos los datos de una, pero lo cierto es que cuando vi la documentación de ésta, no me lo dejaba claro (INT FREAD(POINTER, INTEGER, INTEGER))... y bueno, ya se que es cuestión de probar, pero aprovecho para preguntar cual de los dos enteros es el que recoge el dato y cual la cantidad de este :-)

Por cierto, aprovecho tambien para decir que qué chulo estaría que el Bennu dejara usar llaves {} en lugar del begin-end... y ya de paso, que nos dejara ahorrarnos éstas en aquellos casos de sentencia única a lo C style, of course... pero bueno, esto ya es por pedir, que para eso es gratis :-)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2009, 11:41:00 PM
iba a probar tu codigo, pero caramba! claro que no va a funcionar... buffer es un pointer... lo unico que haces con fread es leer punteros (4 bytes, pointer), no su contenido...
por otra parte con alloc 1000 solo estas alocando espacio para 500 words...
esta todo mal por donde lo mires... no puede ser que antes te funcionara... si antes te funcionaba habia un bug...
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 23, 2009, 12:08:43 AM
LOL qué cosas me dices :-), me sorprende, pues te puedo asegurar que me ha estado funcionando perfectamente hasta no sé que versión, porque no sé si me quedé por la r28 o por ahí, no recuerdo bien... yo pensaba que debe recibir un puntero al área a cargar, como en C...

Y sí, claro que sé que alloc reserva bytes, y por tanto en words son la mitad, pero es que por otro lado ese no es el código exactamente original, pero vamos, que el original es así solo que algo más engorroso... pero vamos que es así.

Pues a ver si va a ser un bug que hubo, no se... pero ya te digo que me ha ido de rechupete para una librería que hice y que, bueno... tendrá que ver la luz algún día y espero os guste :-)

Editado:
Viendo la documentación de la Wiki, jaja ya lo veo, pero es que qué raro que no viera tal docu, pues echo mano de ésta con frecuencia como es natural... y qué suerte por tanto he tenido todo este tiempo al funcionarme jaja

Pues voy a ver si subsano el asunto...
Gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2009, 12:21:18 AM
perdon, quizas no me explique bien... intentare explicarlo, para que razonemos juntos y veamos porque no deberia funcionar...

el prototipo de la funcion (original) es:

fread(fichero, variable)

donde fichero es lo que retorna el fopen
y variable es la variable a cargar

bien, la funcion fread, toma del "tipo" de variable los valores de address y tamaño...
esto es:

&variable y sizeof(variable)

entonces, al variable ser un pointer... lo unico que haces es leer el puntero. ("&variable" NO variable...)

se entiende ahora?

Cuando dije 500, lo dije, porque en el ejemplo haces un for de 1000, y no de 500...

EDIT:
En otro prototipo es:

fread(address, size, fichero);

casi como C.
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 23, 2009, 12:30:14 AM
Sí, bien, todo aclarado... con la primera explicación que me has dao ya he empezado a ver el asunto y luego después al mirar la wiki (que no sé por que se me habia pasado por alto mirar allí)...

Y sí, lo del bucle 1000 es que es por lo que te he contado después en el EDIT de mi post anterior, que el código no es el original y entonces por eso se me ha pasado modificar eso...

Gracias, voy a ver si arreglo la cosa y no hay más problemas en el código :-D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2009, 12:37:01 AM
aca te pongo un ejemplo, llama al codigo "fread.prg"

[code language="bennu"]
import "mod_file";
import "mod_mem";
import "mod_say";
import "mod_string";
private
  int fichero;
  char *buffer;
  string str;
  int n;
begin
  buffer = alloc(1000);
  fichero = fopen("fread.prg",O_READ);
  fread(buffer,1000-1,fichero);
  buffer[1000]=0;
  fclose(fichero);
  str = "";
  for (n=0;n<1000;n++)
    str += chr(buffer[n]);
    if (!buffer[n]) break; end
  end
  say(str);
end
[/code]
Title: Re: Avances, Diario de...
Post by: MythomizeR on March 23, 2009, 12:44:34 AM
Nada, no te preocupes, si ya lo he visto todo claro y ya me vuelve a funcionar perfecto el código, era esa chuminá y que lógicamente he solucionado con simplemente añadir un bonito asterisco punterístico delante de 'buffer' y así cargar donde hay que cargar X-D) (pero sabía yo que mi fallo provenía del fread... :-):

fread(fichero,*buffer);

La confusión vino porque al no dar yo con la documentación de fread en su versión dos parámetros, pues yo imaginé que la variable que recibe el dato leido era tambien un puntero como ocurre con el fread de C, más o menos...

Pues nada me alegro de que me vuelva a rular el código.

Gracias de nuevo :-)
Title: Re: Avances, Diario de...
Post by: Drumpi on March 23, 2009, 11:34:24 AM
Pregunta tonta del día [música del "wanna be a millionarie"]
¿Se puede compilar el código de Bennu del SVN usando dev-c++?
a- Sí, compilando sólo el código principal.
b- Sí, pero tendrías que crear un proyecto nuevo.
c- Sí, pero tendrías que configurarlo.
d- No, tienes que usar los comandos gcc, etc... que vienen en la carpeta bin del dev-c++

NOTA: es la pregunta 10 y estamos sin comodines ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2009, 12:03:11 PM
no se.
Title: Re: Avances, Diario de...
Post by: Drumpi on March 23, 2009, 12:12:08 PM
¿Cómo haces tu los binarios para windows, pues?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2009, 12:26:33 PM
Quote from: Drumpi on March 23, 2009, 12:12:08 PM
¿Cómo haces tu los binarios para windows, pues?

esa es la pregunta el millon!

bien, te respondere...

Quote
For compile BennuGD in windows, you need:

- Last version of gcc (only install "current", and g++ and gnumake)
- autotools is suggest
- MSYS
- SDL (source and compile it)
- SDLMixer (source and compile it)
- libogg (source and compile it)
- libungif (source and compile it)
- libpng (source and compile it)
- zlib (this must installed manual)

- and bennugd sourcecode from svn.

I think that is all.

for core compilation (from core folder):

./configure && make

for modules compilation (from modules folder):

./configure --with-bennu-prefix=<path where core reside> && make

p.e.: ./configure --with-bennu-prefix=/opt/bennugd/core && make

Title: Re: Avances, Diario de...
Post by: SplinterGU on April 02, 2009, 02:39:55 PM
r38 en el svn
Title: Re: Avances, Diario de...
Post by: TYCO on April 02, 2009, 04:03:27 PM
New function MAP_NEW(w,h,depth,flags) where flags can be: B_CLEAR (bitmap clear) or 0 (no clear new bitmap)

mmm... cuando se crea un map_new no se supone que esta limpio por defecto?
Title: Re: Avances, Diario de...
Post by: MythomizeR on April 02, 2009, 04:44:46 PM
No.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 02, 2009, 04:47:43 PM
Quote from: TYCO on April 02, 2009, 04:03:27 PM
New function MAP_NEW(w,h,depth,flags) where flags can be: B_CLEAR (bitmap clear) or 0 (no clear new bitmap)

mmm... cuando se crea un map_new no se supone que esta limpio por defecto?

por eso mismo...
Title: Re: Avances, Diario de...
Post by: TYCO on April 02, 2009, 06:05:06 PM
A ver que quede claro, porque aún no hay que pagar por escribir, ni hay limite de carácteres como en un SMS.

"MAP_NEW(100,100,16,B_CLEAR)" que tiene de diferente de "MAP_NEW(100,100,16,0)"???
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 02, 2009, 08:06:59 PM
que "MAP_NEW(100,100,16,0)" no limpia el mapa, y por consiguiente es mas rapida.
Esto sirve para casos donde se necesita crear cantidades de mapa, que luego seran sobreescritos en su totalidad. En estos casos se evita la limpieza del area de memoria asignada al grafico al momento de la creacion.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2009, 01:23:08 AM
r39 disponible!
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2009, 01:25:33 AM
Tyco: Se entendio para que sirve? es una funcion para usuarios avanzados, solo para maniaticos. No te preocupes, para tu tranquilidad, la clasica MAP_NEW sigue disponible.
Title: Re: Avances, Diario de...
Post by: TYCO on April 04, 2009, 01:59:15 PM
Será para maniaticos sí XD. Supongo que puedes crear 100 mapas sin "rellenar", ocupando así menos memoria, y según vas necesitando los mapas, si se pinta uno, ese mapa pintado ya ocurá más en memoria (como un map_new clásico) por tener algo pintado en él.

PD: No soy maniaTyco. XD
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2009, 02:05:24 PM
je, en realidad la memoria que consume es la misma, es el tiempo empleado...
supone que necesitas cortar un mapa grande en 100 porciones, y para eso necesitas crear 100 mapas mas pequeños... no tiene sentido que el code pierda tiempo en limpiar esos 100 mapas si vos vas a sobreescribir esa informacion... entonces en esos casos esto es mucho mas rapido.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 21, 2009, 12:53:55 AM
r40 released!

http://betatester.bennugd.org/snapshot/
Title: Re: Avances, Diario de...
Post by: DCelso on April 21, 2009, 07:40:18 AM
Muchas gracias SplinterGU, ¿algo que probar?
Por cierto una cosilla veo desactualizado la información de los binarios
********************
C:\DevBennu\bin>bgdc
BGDC 0.93 (Apr 20 2009 20:38:27)
Copyright ® 2006-2009 SplinterGU (Fenix/BennuGD)
Copyright ® 2002-2006 Fenix Team (Fenix)
Copyright ® 1999-2002 JosÚ Luis Cebrißn Pag³e (Fenix)
Bennu Game Development comes with ABSOLUTELY NO WARRANTY;
see COPYING for details
*************
Bueno más o menos.
Recuerdo que en muchos proyectos existe un configure -version="r40" o asi que añade esa cadena en los sitions necesarios de código en los que se necesite saber la versión.
En algunos otros proyectos simplemente es editando un archivo version.txt y ejecutando en configure como siempre.
Aqui podrias plantear en hacer alguna autogestión de versiones para que la cabecera siempre esté al día y podamos ver rápidamente la versión actual que tenemos instalada en el equipo. También ya de camino un --version vendría genial :D.
¿Que te parece?
Title: Re: Avances, Diario de...
Post by: blostec on April 21, 2009, 07:53:31 AM
Actualizando, gracias Juan  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 21, 2009, 10:39:36 AM
incluire la version pronto, aunque ya esta mas para sacar la 0.93 release o 0.94...

la fecha sale bien... eso es el indicador de la version...

gracias a uds por usar la herramienta...
Title: Re: Avances, Diario de...
Post by: Prg on April 22, 2009, 02:31:14 AM
descargando.... gracias :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 22, 2009, 03:00:30 AM
hay nueva version en SVN...
Title: Re: Avances, Diario de...
Post by: TYCO on April 22, 2009, 10:49:10 AM
Gracias, sólo una cosa... en la R40 como la R34, la consola de debug en 8Bits se transparenta el fondo negro, y se ve el juego detrás impidiendote leer correctamente la consola de debug. En 16/32 bits no sucede.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 22, 2009, 11:26:19 AM
Asi es, gracias.
El color 0, para el fondo no es algo muy acertado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 05, 2009, 02:46:20 AM
Bien, a partir de ahora, paleta cargada, paleta asignada.

Recordar liberar la paleta cuando ya no se use. Porque las paletas permanecen cargadas en memoria.

Si se usa modo de video 16 o 32, la cada mapa de 8 bits tiene su paleta, o sea, que si se quiere que use la del sistema hay que eliminarle la paleta asignada usando map_assign, poniendole como paleta 0 (paleta del sistema).

Se agregan nuevas funciones de paleta:

pal_set(byte raw[768])
pal_set(palid)

para setear la paleta del sistema por medio de un array con la info rgb o desde otra paleta previamente cargada

tambien si a pal_set se le pasa 0 como id de paleta entonces setea sobre la paleta del sistema.
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 05, 2009, 02:54:59 AM
get_screen ahora retorna un clone de la pantalla dibujada en el ultimo frame.

y funciona perfectamente con los efectos de paleta:


Program prueba;

import "mod_video";
import "mod_map";
import "mod_string";
import "mod_screen";

import "mod_draw";

Global
    int counter=0;
    int map;

begin
    full_screen=false;
    set_mode(640,480,32,WAITVSYNC);
    set_fps(25,0);

    drawing_map(0,0);
    draw_box(50,50,100,100);

    fade(200,0,0,1);
    while(fading)
        frame;
        map = get_screen();
        save_png(0,map,"captures/img"+substr("00000"+counter,-5)+".png");
        counter++;
        unload_map(0,map);
    end
end
Title: Re: Avances, Diario de...
Post by: MythomizeR on May 05, 2009, 05:29:10 AM
¡Buen trabajo!

Por cierto, ¿no habria que sacar fuera del while el unload_map(0,map);? o ¿es que acaso hay que ir liberando el mapa antes de cada nueva llamada a get_screen() al devolver ésta ids diferentes por cada una de ellas?

Ahora que lo pienso, creo va a ser lo segundo por resultarme más lógico...
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 05, 2009, 10:41:20 AM
1) ¿no habria que sacar fuera del while el unload_map(0,map);?
No, dentro, porque cada get_screen (ahora y antes) crea un map nuevo en cada ejecucion.
2) o ¿es que acaso hay que ir liberando el mapa antes de cada nueva llamada a get_screen() al devolver ésta ids diferentes por cada una de ellas?
Exacto "o".... ;)
Title: Re: Avances, Diario de...
Post by: Drumpi on May 05, 2009, 11:35:56 AM
Esto: pal_set(byte raw[768]) es lo que antiguamente se hacía con set_colors? Y cómo se sabe a qué paleta se le están cambiando los colores?
Title: Re: Avances, Diario de...
Post by: MythomizeR on May 05, 2009, 11:54:35 AM
Quote from: SplinterGU on May 05, 2009, 10:41:20 AM2) o ¿es que acaso hay que ir liberando el mapa antes de cada nueva llamada a get_screen() al devolver ésta ids diferentes por cada una de ellas?
Exacto "o".... ;)
Era de esperar :-)
Title: Re: Avances, Diario de...
Post by: splinter_work on May 05, 2009, 03:23:15 PM
Quote from: Drumpi on May 05, 2009, 11:35:56 AM
Esto: pal_set(byte raw[768]) es lo que antiguamente se hacía con set_colors? Y cómo se sabe a qué paleta se le están cambiando los colores?

Elemental mi querido Watson...

En aquellas funciones que permiten no especificar paleta, trabajan sobre la del sistema.
No es lo que se hacia, es lo que se hace. Uno de los modos de esta funcion (la que tiene los mismos parametros) es un alias a set_colors.
Title: Re: Avances, Diario de...
Post by: Windgate on May 05, 2009, 08:40:20 PM
get_screen() es una de las funciones que nunca me había dado por probar, no me lo había planteado todavía pero en cuanto tenga un momento me pongo a hacer efectos graciosos de transición de fase y cosas así xD

En cuanto a paletas... Soy amigo de usar sprites "robados". y como provienen de paletas diversas trabajo directamente en 16 bits. No he usado una paleta desde el antiguo DIV2...
Title: Re: Avances, Diario de...
Post by: splinter_work on May 11, 2009, 02:10:30 PM
Ya esta disponible en el SVN "Bennu Game Development 1.0.0 RC (Release Candidate)"...
Title: Re: Avances, Diario de...
Post by: blostec on May 11, 2009, 02:23:15 PM
Genial, ahora mismo me actualizo con tortoise. Gracias Juan!!
Title: Re: Avances, Diario de...
Post by: Drumpi on May 11, 2009, 04:31:04 PM
(Casi)yujuuuuu.
Bennu, bennu, bennu ¡2009! (http://www.youtube.com/watch?v=qCcaNTrHkPs)
Title: Re: Avances, Diario de...
Post by: osk on May 12, 2009, 09:01:48 AM
Hola. ¿El módulo fsock no entrará dentro de la versión oficial de bennu? Graciaaas.
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 12, 2009, 10:38:28 AM
no, es un contrib... quizas lo ponga en contrib...

todavia no se bien que hacer con los contrib... ya esta creada una carpeta para que se siga una norma de donde agregarlos (a nivel usuario)... pero no se si se incluiran en la version oficial... en principio, no
Title: Re: Avances, Diario de...
Post by: DCelso on May 12, 2009, 10:50:48 AM
¿que es un contrib?
¿Una contribución?
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 12, 2009, 11:12:48 PM
yep!
Title: Re: Avances, Diario de...
Post by: DCelso on May 14, 2009, 08:08:55 AM
Ya he nominado a Bennu.
Me ha respuesto con un link que no sé exactamente para qué sirve, creo que es para que otros nominen, cosa un poco tonta porque para eso los mandaría a donde yo lo encontré.
<a href="http://sourceforge.net/community/cca09/nominate/?project_name=Bennu Game Development&project_url=http://forum.bennugd.org/"><img src="http://sourceforge.net/images/cca/cca_nominate.png" border="0"/></a>
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 14, 2009, 10:32:36 AM
eso es para que si vos tenes un site, lo pongas en el y ayudes de esta forma a promocionar el proyecto y tambien a votar por el.

Gracias.

EDIT: Lei las reglas y es posible votar el mismo proyecto para otras categorias, pero solo se puede votar 1 vez por categoria, esto se valida contra el mail.
Los mails no se guardan en ninguna base de datos, solo se usan para enviar la confirmacion de la votacion que uno tiene que clickear para confirmar.

Gracias.
Title: Re: Avances, Diario de...
Post by: osk on May 14, 2009, 10:54:40 AM
Yo no sabía en qué categoría votar...al final he votado en "best project for developers" y "best project for gamers"...
Title: Re: Avances, Diario de...
Post by: Drumpi on May 14, 2009, 12:42:42 PM
Lo suyo es mejor proyecto para desarrolladores... al menos, por la descripción que se da. Dudo mucho que gane el de mejor proyecto del mundo :D
Bueno, que tambien he votado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 14, 2009, 11:08:00 PM
Quote from: Drumpi on May 14, 2009, 12:42:42 PM
Lo suyo es mejor proyecto para desarrolladores... al menos, por la descripción que se da. Dudo mucho que gane el de mejor proyecto del mundo :D
Bueno, que tambien he votado.

Gracias por la confianza! :P

Igual la idea es que podamos dar a conocer un poco mas el proyecto... por favor colaboren pidiendo a sus conocidos que voten por el proyecto.

Saludos.
Title: Re: Avances, Diario de...
Post by: Drumpi on May 16, 2009, 01:30:28 AM
Splinter, estamos en la era de la web 2.0: el internet de la sociedad, donde lo importante son los blogs chorra cn la última borrachera del botellón de anoche, las páginas de relacion social tipo tuenti o myspace donde darse a conocer y acumular la mayor lista de amigos a ver quien es el primero en desbordar el servidor, o programas de chat donde acumular correos y más correos para despues mandar un spam masivo (si, las cartas de la cadena ya son eso), saturar la red y preguntarse por qué la red va lenta.
No, Juan, se realista, no podemos competir con pidgin y demás programas de interaccion social, aunque evangelicemos tres paises enteros :D :D :D :D :D

De todas formas, ya sabes que, por mi parte, estoy ganando adeptos por donde puedo: ya me he labrado una fama en gp32spain (no se si buena o mala ;D) y tdos los que conozco con problemas con el C++ o señales y procesos los mando para acá (o al "foro padre"), jejeje.
Title: Re: Avances, Diario de...
Post by: darío on May 16, 2009, 04:05:15 AM
Yo también voté... dos veces... no se si es hacer trampa :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 16, 2009, 01:12:19 PM
Obviamente no se pretende ganar, pero si se ve bennu cada tanto entre los ultimos votados eso ayuda mucho, alguno que otro querra saber de que trata...
Title: Re: Avances, Diario de...
Post by: DCelso on May 16, 2009, 01:42:42 PM
Oye, ¿Qué es Bennu? :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 01:38:09 AM
Nueva version en el svn...

------------------------------------------------------------------------
r83 | SplinterGU | 2009-07-01 21:20:53 -0300 (mié 01 de jul de 2009) | 23 lines

- New dirs lib and new glob, diropen, dirread, dirclose functions
- New mod_crypt:

        method
        ------
        CRYPT_NONE
        CRYPT_DES
        CRYPT_3DES

        functions
        ---------

        handle CRYPT_NEW(int method, byte * key); /* key = byte [8] in DES, byte [24] 3DES */
        int CRYPT_DEL(handle);
        int CRYPT_ENCRYPT(handle, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_DECRYPT(handle, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_ENCRYPT(int method, byte * key, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_DECRYPT(int method, byte * key, pointer in, pointer out, int blocks ); /* each block = 8 bytes */

- add vendor folder and modified libdes-4.04b
- some configure fix


Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 03:24:35 AM
samples de encripcion... no recomiendo usar esta logica, sino variantes de la misma, por tema de tener una logica cerrada de encripcion... por ejemplo, encriptar distintos fragmentos con distintas keys o incluso distintos metodos...
Title: Re: Avances, Diario de...
Post by: josebita on July 02, 2009, 09:08:57 AM
¡Genial!

¿Esto será parte de la 1.0?
Title: Re: Avances, Diario de...
Post by: MythomizeR on July 02, 2009, 09:39:16 AM
Muy interesante, aunque _parece_ algo engorroso el sistema (aunque también parece potente y flexible)...

Gracias.

Edit: Por cierto, quizás en Argentina esté bien dicho, pero tengo entendido que es "encriptación", en cualquier caso, es un detalle sin importancia pibe ;-)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 03:14:25 PM
La idea es que sea engorroso para evitar hackeos... es muy simple siendo esto opensource hackear un sistema transparente, asi que tras mucho pensar y debatir juntos Sandman y a otros... se me ocurrio que el mejor metodo es hacerlo asi ya que es mas complicado de hackear... ya que la forma de llamar a la encripcion, claves, metodos y el orden lo define el programador en el dcb, y este es cerrado.
Si bennu fuera codigo cerrado, se podria hacer bastante seguro (nada lo es) de forma transparente, pero lamentablemente (para esto) no lo es.
Title: Re: Avances, Diario de...
Post by: syous on July 02, 2009, 03:24:51 PM
 ;D una gran idea :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 03:45:41 PM
aca hay otro ejemplo, menos rebuscado. las variantes posibles son muchas.

Title: Re: Avances, Diario de...
Post by: osk on July 02, 2009, 04:01:42 PM
Hola ¿AES no se tiene previsto implementar?
Sólo por tocar las narices...
Title: Re: Avances, Diario de...
Post by: MythomizeR on July 02, 2009, 04:03:01 PM
Quote from: SplinterGU on July 02, 2009, 03:14:25 PM
La idea es que sea engorroso para evitar hackeos... es muy simple siendo esto opensource hackear un sistema transparente, asi que tras mucho pensar y debatir juntos Sandman y a otros... se me ocurrio que el mejor metodo es hacerlo asi ya que es mas complicado de hackear... ya que la forma de llamar a la encripcion, claves, metodos y el orden lo define el programador en el dcb, y este es cerrado.
Si bennu fuera codigo cerrado, se podria hacer bastante seguro (nada lo es) de forma transparente, pero lamentablemente (para esto) no lo es.
Ahora comprendo... pues sí, mucho mejor así entonces.
Title: Re: Avances, Diario de...
Post by: josebita on July 02, 2009, 04:43:02 PM
Siento ser pesado, pero es que estoy empaquetando el deb con los últimos cambios para el PPA. ¿Incluyo el módulo o no?.

Graciaaaaas
Title: Re: Avances, Diario de...
Post by: josebita on July 02, 2009, 07:03:30 PM
Una cosilla más, dentro de mod_crypt creo que falta el Makefile.in.
El core y la nueva dependencia ya los he subido al PPA (falta que se compilen).
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 07:39:59 PM
si, se implementaran luego mas metodos, por ahora solo estos.

Incluye el nuevo modulo, por supuesto.

me falta me svn add... ahora lo incluyo... gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 08:17:55 PM
Quote from: josebita on July 02, 2009, 07:03:30 PM
Una cosilla más, dentro de mod_crypt creo que falta el Makefile.in.
El core y la nueva dependencia ya los he subido al PPA (falta que se compilen).

ya esta incluido el Makefile.in... voy a corregir un poco el tema de los Makefiles y configure... porque no todos los modulos deberian depender de todas las libs... por ejemplo, X11, libz, etc... asi que voy a corregir eso...
Title: Re: Avances, Diario de...
Post by: josebita on July 02, 2009, 08:20:58 PM
Genial, gracias.
Era lo que me hacía falta. Pongo el bennugd-modules en la cola de compilación.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2009, 10:26:37 PM
Nuevos cambios.

- Fix all configure/makefiles dependencies
Title: Re: Avances, Diario de...
Post by: Drumpi on July 03, 2009, 11:48:49 PM
Genial, creo que era una de las pocas carencias de Fenix respecto a su predecesor :D
De todas formas, como decía mi profesor de Sistemas Operativos "la seguridad del sistema no depende de cómo esté implementado el sistema, sino de la clave con la que se protege".
Si, es posible que haya sitemas más seguros que otros, pero sin la clave habría que dar muchas vueltas, además, tampoco vamos a proteger secretos de estado ¿no? sólo son videojuegos :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 04, 2009, 03:06:15 PM
seguro, pero trabajar en un sistema que en 10 minutos sea hackeado, no sirve de mucho.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on July 04, 2009, 03:29:22 PM
recomiendo tambien una funcion que genere hashes como string MD5(string)

para por ejemplo colocar records en paginas web u otras cosas utiles

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 04, 2009, 03:40:02 PM
se incluira...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 05, 2009, 04:32:43 AM
New version in SVN

- Add "types_def" to shared library systems
- Add "types_def" to moddesc
Title: Re: Avances, Diario de...
Post by: splinter_work on July 07, 2009, 01:00:38 PM
ya subi un paquete binario windows con la ultima version, por ahora sin instalador, solo el autoextraible...

estamos trabajando en el instalador bennu.
Title: Re: Avances, Diario de...
Post by: DCelso on July 07, 2009, 01:42:52 PM
probemos, pues
Title: Re: Avances, Diario de...
Post by: Danielo515 on July 17, 2009, 02:20:15 PM
Quote from: SplinterGU on July 02, 2009, 01:38:09 AM
Nueva version en el svn...

------------------------------------------------------------------------
r83 | SplinterGU | 2009-07-01 21:20:53 -0300 (mié 01 de jul de 2009) | 23 lines

- New dirs lib and new glob, diropen, dirread, dirclose functions
     


¿no hay una documentación un poco más extensa? o algún ejemplo, o algo asín
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 17, 2009, 03:30:40 PM
je, me olvide poner la documentacion... solo esta en el fuente...

Quote
int DIROPEN (STRING path)

Open a dir for read it, returns handle id.
return 0 if fail.


int DIRCLOSE (INT handle)

Close a dir

string DIRREAD (INT handle)

Given a path with wildcards ('*' or '?' characters), returns the first
file that matches and, in every next call, all matching files found
until no more files exists. It then returns NIL.

esto trabaja con las misma estructuras que glob, asi que devolvera resultados en la misma estructura.
Title: Re: Avances, Diario de...
Post by: Danielo515 on July 18, 2009, 06:31:56 PM
La nueva versión me da error al cargar la image.dll, la ponga donde la ponga me dice que no encuentra la librería, y eso que la he probado con proyectos que funcionan en antigüas versiones de bennu con la image.dll.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 18, 2009, 09:58:58 PM
donde la estas poniendo?
Title: Re: Avances, Diario de...
Post by: Danielo515 on July 19, 2009, 09:52:53 AM
¿donde debería ponerla? la he puesto en todos los sitios que se me ha ocurrido. En la misma carpeta que el prorgrama, en la carpeta de los mod_x, en la carpeta de las dlls, y nada de nada.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 19, 2009, 08:15:37 PM
Portado pacman de tyco a wiz... subido con el runtime al sitio de snapshots...

http://betatester.bennugd.org/snapshot/

tambien he corregido del pacman aquello que dice de premovimiento... y alguna otra cosa mas que ahora no recuerdo bien...
Title: Re: Avances, Diario de...
Post by: Danielo515 on July 19, 2009, 09:59:59 PM
al final que pasa con la image.dll? está confirmado que funciona con la 1.0 y es por lo pronto un problema mío o le pasa a más gente?

Un saludín
Title: Re: Avances, Diario de...
Post by: TYCO on July 20, 2009, 08:34:22 PM
Ultimamente suelo faltar a clase... eso de WIZ.. ¿Qué es? algo de la GP32???

La verdad es que el Pacman ocupa muy poco y es un buen juego para pasarlo a plataformas como la GP32 que son más reducidas que un pc. A ver que tal funciona, si alguien lo puede probar.
Title: Re: Avances, Diario de...
Post by: Windgate on July 20, 2009, 09:08:55 PM
Yo tampoco sé qué es lo que es eso de WIZ, acabo de leer a Josebita hablando de ello y ??? xD

Si es que se intenta estar a todo, pero son días tan cortos y laburosos...
Title: Re: Avances, Diario de...
Post by: DCelso on July 20, 2009, 11:16:13 PM
:D, pues mas o menos tyco y windgate, la nueva de esos mismos.
http://www.gameparkwiz.com/
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 20, 2009, 11:31:13 PM
Quote from: TYCO on July 20, 2009, 08:34:22 PM
Ultimamente suelo faltar a clase... eso de WIZ.. ¿Qué es? algo de la GP32???

La verdad es que el Pacman ocupa muy poco y es un buen juego para pasarlo a plataformas como la GP32 que son más reducidas que un pc. A ver que tal funciona, si alguien lo puede probar.

funciona muy lindo... puse eso de la pre-pulsacion de las teclas... y tambien hice un resize automatico de todos los mapas y fonts, ya qe esto corre a 320x200, en cuanto al codigo, no me tome el trabajo de cambiar todas las coordenadas, solo puse "/2" en casi todo el codigo... y toque alguna otra cosa que no iba bien... pero ya esta funcionando y va muy lindo...
Title: Re: Avances, Diario de...
Post by: Windgate on July 21, 2009, 01:42:11 AM
¿Otra consola que soporta Bennu? No estuve muy al día con la GP32, miré su precio y dije:  :o :o :o

Ahora miro la información para comprar la GamePark Wiz y sólo veo un banner publicitario ???

Intentaré ponerme más al día con el tema, pero la verdad es que dejé el mundo de las videoconsolas hace muchos años...
Title: Re: Avances, Diario de...
Post by: darío on July 21, 2009, 08:16:58 AM
Wow, la verdad es que es muy buena noticia... Nunca me animo a comprarme una consola porque luego no tengo tiempo de disfrutarlas pero esto es fácil atraer a algunos usuarios de la Wiz a Bennu :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 22, 2009, 03:40:19 AM
La verdad que estoy muy conforme con la consola...

----

nueva version en el svn... mañana procupare subir versiones nuevas...

------------------------------------------------------------------------

r95 | SplinterGU | 2009-07-21 23:39:43 -0300 (mar 21 de jul de 2009) | 2 lines

- Open2xWiz setup vars for configure

------------------------------------------------------------------------
r94 | SplinterGU | 2009-07-21 23:02:45 -0300 (mar 21 de jul de 2009) | 9 lines

- Add GP2XWIZ
- New fps limit and frameskip system... now, all time is adjusted it.
- Fix mod_joy help
- Fix align rgb_component struct
- Fix mod_map, palette use and discard
- Add Makefile.openwiz to libdes
- libvideo, add VIDEO_WIDTH, VIDEO_HEIGHT, VIDEO_DEPTH environment vars to change initial video mode

------------------------------------------------------------------------
Title: Re: Avances, Diario de...
Post by: Windgate on July 22, 2009, 12:20:43 PM
Quote- libvideo, add VIDEO_WIDTH, VIDEO_HEIGHT, VIDEO_DEPTH environment vars to change initial video mode

¿Son constantes donde consultar la resolución horizontal y vertical de vídeo actual o son globales donde establecer la resolución horizontal y vertical? ¿O son otra cosa? :P

Siempre acabo definiendo esas CONST y la verdad, es buena idea que ahora vengan "de serie" xD
Title: Re: Avances, Diario de...
Post by: splinter_work on July 22, 2009, 02:15:25 PM
Quote from: Windgate on July 22, 2009, 12:20:43 PM
Quote- libvideo, add VIDEO_WIDTH, VIDEO_HEIGHT, VIDEO_DEPTH environment vars to change initial video mode

¿Son constantes donde consultar la resolución horizontal y vertical de vídeo actual o son globales donde establecer la resolución horizontal y vertical? ¿O son otra cosa? :P

Siempre acabo definiendo esas CONST y la verdad, es buena idea que ahora vengan "de serie" xD

no, son "variables de entorno", que definis en tu operativo (o script de arranque) y al cargar el modulo de video, se setea en ese modo en vez de hacerlo en 320x240x32 al iniciar.

no podes consultar nada.
para consultar eso, map_info de 0,0, o las funciones del modulo mod_wm (en casos donde hay ventanas)...
Title: Re: Avances, Diario de...
Post by: Windgate on July 22, 2009, 06:59:52 PM
Oh, cierto, el map_info de 0,0 ¿Porque ahí se guarda un map con el contenido actual de la pantalla verdad?

Ciertamente había oído hablar de ello muchas veces, pero nunca le he sacado partido :-[

Bastante fuera del tema, llevo tiempo pensando en la posibilidad de manipular el size de un scroll... ¿Hay pensado algún cambio en el funcionamiento de scroll[] en ese sentido o en algún otro?

Simple curiosidad...
Title: Re: Avances, Diario de...
Post by: splinter_work on July 22, 2009, 07:10:08 PM
chequea el ejemplo...

scroll.rar en el sitio de descargas...

:)
Title: Re: Avances, Diario de...
Post by: osk on July 25, 2009, 11:02:11 AM
Me he bajado la última versión del instalador para Linux y me sigue haciendo lo mismo que ya comenté: no acepta los parámetros.

Si pongo --help me sale:
[: 57: --help: unexpected operator
[: 57: --help: unexpected operator
e intenta instalarse.

Si pongo --remove lo mismo:
[: 57: --remove: unexpected operator
[: 57: --remove: unexpected operator
y tira para alante también.

Y si no pongo nada, también me da un aviso de error:
[: 57: unexpected operator
[: 57: unexpected operator

Malamente,pues.


EDIT: El instalador de Windows tampoco me va. Salta un messagebox diciendo: "Error al iniciar la aplicación porque no se encontró libbgdrtm.dll.La reinstalación de la aplicación puede solucionar el problema". Parece obvia la solución: copiar esta dll a la carpeta del instalador...pero precisamente para eso está el instalador, para instalar las dll necesarias, no? Es el pez que se muerde la cola...en un ordenador limpio sin que tengan ningún Bennu instalado previamente.
Title: Re: Avances, Diario de...
Post by: darío on July 25, 2009, 12:37:55 PM
Hola, yo el lunes instalé bennu en un "ordenador limpio" (con windows xp) con el último instalador disponible que había y si me funcionó el instalador a la perfección. La versión de bennu era la que estaba disponible en la web oficial a esa fecha (ahora no tengo acceso al ordenador donde lo instalé).

Lo que si que creo recordar es que como se hace modificación en la variable de entorno PATH, hay que reiniciar el sistema para que funcionen los comandos bgdc y bgdi desde la consola. Quizá sería intersante un mensaje al final del instalador diciendo que es posible que deba reiniciar el equipo o algo.

Un saludo,
Darío
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2009, 04:25:44 PM
Quote from: osk on July 25, 2009, 11:02:11 AM
Me he bajado la última versión del instalador para Linux y me sigue haciendo lo mismo que ya comenté: no acepta los parámetros.

Si pongo --help me sale:
[: 57: --help: unexpected operator
[: 57: --help: unexpected operator
e intenta instalarse.

Si pongo --remove lo mismo:
[: 57: --remove: unexpected operator
[: 57: --remove: unexpected operator
y tira para alante también.

Y si no pongo nada, también me da un aviso de error:
[: 57: unexpected operator
[: 57: unexpected operator

Malamente,pues.


EDIT: El instalador de Windows tampoco me va. Salta un messagebox diciendo: "Error al iniciar la aplicación porque no se encontró libbgdrtm.dll.La reinstalación de la aplicación puede solucionar el problema". Parece obvia la solución: copiar esta dll a la carpeta del instalador...pero precisamente para eso está el instalador, para instalar las dll necesarias, no? Es el pez que se muerde la cola...en un ordenador limpio sin que tengan ningún Bennu instalado previamente.

en que distribucion de linux lo estas queriendo hacer?
a mi me funciono perfecto recien, como comentario adicional, la instalacion debe hacerse desde el usuario root.
Title: Re: Avances, Diario de...
Post by: Prg on July 26, 2009, 03:02:19 AM
hola, me quice instalar el "bgd-1.0.0RC6(r95)-win32" en mi windows y me dice que no encuentra el libgdrtm.dll...

¿Qué tengo que hacer? gracias :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2009, 03:47:26 AM
eso puede ser que me falto algo entonces... a ver...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2009, 04:14:34 AM
ya esta corregido... disculpas las molestias...
Title: Re: Avances, Diario de...
Post by: Prg on July 26, 2009, 07:17:19 PM
:) muchas gracias, ya pude...
una cosita... seleccioné c y luego bennugd (anterior instalación), pero sólo le di un click a la carpeta, no doble, y la nueva carpeta (donde se instaló bennu) se llamaba c:/bennugdbennugd, también... las letras de abajo corrían muy deprisa(las  verdes que dan los mensajes), estaba haciendo un análisis de virus, no se si eso tiene que ver (aunque el analisis pone lenta la pc y ls letras corrían muy rápido)

nuevamente muchas gracias :)
saludos
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2009, 07:29:57 PM
tiene un set_fps(0,0) al momento de instalar, pero en ese momento no deberian haber letras abajo... y lo de la carpeta, bien, faltara poner una barra... lo voy a revisar.
Title: Re: Avances, Diario de...
Post by: osk on July 26, 2009, 09:13:26 PM
Vale, he visto que el error de Windows ya se ha solucionado.
Mi error de Linux es en una Ubuntu normal y corriente...no sé, por mi parte puedo intentar toquetear el shellscript a ver qué es lo que pasa...pero es raro que me pase sólo a mi.
Venga, hasta pronto.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2009, 09:22:30 PM
El problema debe estar en el shell que tenes configurado como root (supongo que lo estas lanzando desde root), podrias probar ejecutarlo con otro shell...

en windows, hay un problema con el tema de los fps... con linux y wine anda perfecto... pero se ve que en windows no le da el timing... por la fraccion de tiempo... o algun otro problema, estoy intentando resolverlo, pero el putisimo windows me cago el teclado y me es imposible teclear ciertas cosas... voy a ver si pruebo actualizando vmware...
Title: Re: Avances, Diario de...
Post by: osk on July 26, 2009, 10:46:49 PM
Efectivamente, es un problema de shells.
Según el foro de Ubuntu:

"It looks like it's a bug in their script, based on the (technically) incorrect but usually safe assumption that /bin/sh is just an alias of bash, Ubuntu is one of two distributions (ubuntu and debian) that use the more sh compliant dash by default."

Así que lo que he hecho ha sido cambiar la primera línea del script:
#!/bin/sh
por
#!/bin/bash
y ha funcionado perfecto.

Por otro lado, tanto mi usuario normal como el usuario root utilizan el shell bash por defecto, a tenor de lo que hay en /etc/passwd.

Espero que este hecho sea de provecho.

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2009, 11:02:22 PM
creo que si haces

bash ./bgd-...

functionaria igual

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 27, 2009, 02:45:05 AM
Bueno, la ultima version windows y linux, no esta usable... para corregir los fps en la wiz, destrui el sistema en los otros operativos... bueno, no es nada grave, pero necesito darme mejor precision al sistema de fps... con los cambios que estoy haciendo ahora va mejor, pero entre muestra y muestra hace pausas un poco mayores a las que deberia...
ya lo solucionare.
Title: Re: Avances, Diario de...
Post by: osk on July 27, 2009, 11:03:16 AM
Claro, claro. Si haces lo que tú dices sí que funciona, porque estás diciéndole con qué shell quieres ejecutar el script, pero si no le dices nada (como suelo hacer yo) entonces por defecto coge el shell que hay en la primera línea del script...no sé si sería buena idea pues poner como shell por defecto el bash, que es de hecho el que todos los Linux tienen (salvo cosas muy raras) y para el que está pensado el script.
Pero vaya, veo que tienes cosas más importantes que mirar. Sólo era una sugerencia tonta.
Hasta luego.
Title: Re: Avances, Diario de...
Post by: DCelso on July 27, 2009, 01:25:58 PM
entonces en windows tenemos que seguir con la anterior a la r95 ¿no? para evitar problemas de fps digo.
Title: Re: Avances, Diario de...
Post by: splinter_work on July 27, 2009, 01:30:57 PM
Si usas fps(0,0) podes usar la nueva version...
ahora si necesitas ajustar los fps, va a ir muy rapido... a menos que tengas un equipo lento (600mhz supongo) donde ahi si va bien...
Title: Re: Avances, Diario de...
Post by: osk on August 13, 2009, 08:13:39 PM
Quote from: SplinterGU on July 02, 2009, 01:38:09 AM
- New mod_crypt:

        method
        ------
        CRYPT_NONE
        CRYPT_DES
        CRYPT_3DES

        functions
        ---------

        handle CRYPT_NEW(int method, byte * key); /* key = byte [8] in DES, byte [24] 3DES */
        int CRYPT_DEL(handle);
        int CRYPT_ENCRYPT(handle, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_DECRYPT(handle, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_ENCRYPT(int method, byte * key, pointer in, pointer out, int blocks ); /* each block = 8 bytes */
        int CRYPT_DECRYPT(int method, byte * key, pointer in, pointer out, int blocks ); /* each block = 8 bytes */

Acabo de entrar en el "Sitio Maldito" y me he encontrado con algo que a priori parece interesante.
No he mirado nada, pero por si lo consideráis útil...a lo mejor se puede aprovechar algo:
http://forum.divsite.net/viewthread.php?tid=6481
http://forum.divsite.net/viewthread.php?tid=6465
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 14, 2009, 01:40:28 AM
:)
gracias... ya lo habia visto... el md5 podria ser incluido, pero no es crypt... el hash no puede ser desencriptado... y tampoco es la data encriptada... lo mismo el md5...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 19, 2009, 03:30:18 AM
Nueva funcionalidad

variable global "scale_resolution"

descripcion:

sirve para escalar hacia abajo un modo de video... esto es, el modo interno para el juego es el del set_mode, pero el modo a dibujar es el especificado en scale_resolution.

uso:

scale_resolution = WWWWHHHH ;

donde:

"WWWW" es el ancho
"HHHH" es el alto

puede ser cualquier valor menor a las dimensiones de set_mode...

nota:
por ahora no se aplica ningun como ser escalado bilineal, bicubic, etc... con lo que si se usan resoluciones a la mitad puede que si tenemos algo con ancho 1, y esta fijo en pantalla no se vea.

contra:
hay que tener cuidado con el uso de los fonts, ya que si usamos el del sistema, al reducir no entiende lo que se ve...

ventajas:
Facilidad para portar los juegos a consolas.
Title: Re: Avances, Diario de...
Post by: panreyes on August 19, 2009, 11:41:23 AM
Ahora falta la opción para poder hacer resize de la ventana con el ratón :D

Perdón por darte trabajo xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 19, 2009, 11:53:29 AM
eso es mucho mas dificil... no te envicies...
Title: Re: Avances, Diario de...
Post by: Windgate on August 19, 2009, 01:23:51 PM
lol, eso de dar resize a la ventana de forma "dinámica" sería un follón de mucho cuidado...

La ventana muestra la resolución del set_mode dentro de la resolución de escritorio, y aumentar la ventana sería casi un pecado tal y cómo está estructurada la cosa ahora mismo.

Se me ocurre hacer uso del map 0,0 (El que almacena el último FRAME) e ir haciendo el set_mode correspondiente y mostrar ese gráfico con un size adecuado... Pero es una cochinada :-\

Con el nuevo scale_resolution por ahora no se me ocurre nada, lo probaré, y gracias Splinter :P
Title: Re: Avances, Diario de...
Post by: splinter_work on August 19, 2009, 02:51:08 PM
Quote from: Windgate on August 19, 2009, 01:23:51 PM
Con el nuevo scale_resolution por ahora no se me ocurre nada, lo probaré, y gracias Splinter :P

Te dare algunas ideas...

que tal si tienes tu juego hecho en 1280x1024 y lo quieres correr en una gp2x wiz, o en una dingoo o en una xbox, o en algun otro aparatejo que no te deje llegar a esa definicion? simple, seteas set_resolution y ya tu juego funcionara, asi de simple... y no tienes que andar perdiendo tiempo ni matandote en modificar toda la logica del programa para cuadrarlo a la resolucion del hard a portar.
Title: Re: Avances, Diario de...
Post by: panreyes on August 19, 2009, 04:36:07 PM
Ahora, no hay duda de que es tirar recursos, pero en muchos casos merecerá la pena. Por ejemplo, algunos de mis juegos están en 1024x768, pero el Acer Aspire One que tengo sólo soporta 1024x600. ¿Solución? Esta :)

Otro: PiX Pang - 800x600 -> 640x480 y a correr en la Wii :D
Title: Re: Avances, Diario de...
Post by: Drumpi on August 19, 2009, 05:04:36 PM
Je, no conseguí hacer funcionar un juego de 800x600 en GP2X, pese a que usa el reescalado automático de UFenix (no se si es HW o SW)... Incluso me da problemas con otro porque me falta memoria y voy a tener que rehacerlo reescalando los gráficos. Menos mal que construí en un par de horas un programilla que me abre los FPG de una lista y me crea otros nuevos al escalado que le indique, aunque claro, usa el size de Fenix/Bennu, que es uno básico sin filtrados ni los escalados que comentaba splinter.

Lo cierto es que es una de esas funcionalidades que todos los novatos agradecen y que puede ser util segun los requisitos y la máquina, pero que los más experimentados acaban por no usar.
Title: Re: Avances, Diario de...
Post by: splinter_work on August 19, 2009, 05:54:12 PM
Quote from: Drumpi on August 19, 2009, 05:04:36 PM
Je, no conseguí hacer funcionar un juego de 800x600 en GP2X, pese a que usa el reescalado automático de UFenix (no se si es HW o SW)... Incluso me da problemas con otro porque me falta memoria y voy a tener que rehacerlo reescalando los gráficos. Menos mal que construí en un par de horas un programilla que me abre los FPG de una lista y me crea otros nuevos al escalado que le indique, aunque claro, usa el size de Fenix/Bennu, que es uno básico sin filtrados ni los escalados que comentaba splinter.

Lo cierto es que es una de esas funcionalidades que todos los novatos agradecen y que puede ser util segun los requisitos y la máquina, pero que los más experimentados acaban por no usar.

No se con que escalado basico de fenix/bennu probaste eso, porque esto que nombre es nuevo... todavia no libere ningun binario...
No vas a tener que rehacer tu juego, va a correr sin cambios (salvo los del teclado).
Title: Re: Avances, Diario de...
Post by: Drumpi on August 20, 2009, 12:08:57 AM
No, si digo que en Fenix y UFenix de GP2X puedo hacer un juego de 800x600 y, sin cambiar nada, este se ajusta a la pantalla de la consola (que recordemos que tiene una resolución fija de 320x240).
La GP2X tiene un HW de escalado (que Puck añadió para esto en concreto en su port), por lo que dicha operación no consume nada de CPU, y se pueden hacer el juego del tamaño que se quiera (sólo probado con resoluciones mayores que la pantalla), pero claro, si un juego de 320x240 ya requiere optimización, meterle un renderizado de 800x600...
Lo digo porque probé, por accidente, mi motor a dicha resolución y el framerate cayó por los suelos (de 50 fps a 320x240, a 12 fps siendo generosos). No es lo mismo (320/32)*(240/32)*2 procesos que (800/32)*(600/32)*2.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 20, 2009, 12:15:15 AM
ya te dire como funciona en las consolitas...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 20, 2009, 04:00:21 AM
ya probe la version en la wiz, cero problemas de velocidad... se ve impecable... probe el pacman, que volvi a restaurar a su resolucion original...
Title: Re: Avances, Diario de...
Post by: DCelso on August 20, 2009, 08:20:18 AM
esto va a ser genial para el apagame, que estabamos cambiando resoluciones para ajustarlo a 640x480 para wii y no veas que chungo es reajustar todo :D. Por cierto, el proyecto lo tengo olvidadísimo, a ver si despues de verano le meto un cambio :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 20, 2009, 11:28:12 AM
bueno, no todo es color de rosas... pase el galaxian... y ahi como hay scroll, el rendimiento no es tan bueno.

EDIT: Con un frame_skip 3, va de lujo... supongo que con 1 o 2, tambien va bien... tendria que probarlo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 21, 2009, 12:46:09 AM
version RC8 (r101) disponible http://betatester.bennugd.org/snapshot/
Title: Re: Avances, Diario de...
Post by: Drumpi on August 21, 2009, 02:31:48 AM
Pregunta tonta: ¿los DCB son compatibles con versiones anteriores? es decir, si no se usan las novedades, claro.
Es que aun tengo en la cabeza los problemas de compilar Fenix y de que tal no es un DCB compatible cuando uno es el 0.xxa y el otro el 0.xxb.
Estaría bien saber cuando llega la hora de cambiar de versión, cuando hay que recompilar viejos códigos para que vuelvan a funcionar...

Hablando de esto ¿donde está SandMan? Hace tiempo que no le veo, le dejé un mensaje en el subforo inglés, a ver si puede hacer el port para GP2X de la versión actual, ya que él tiene experiencia, sabe más que yo...
Title: Re: Avances, Diario de...
Post by: josebita on August 21, 2009, 02:47:42 AM
Sandman es como un fantasma.... de vez en cuando (ahora, en particular) aparece en la lista de usuarios que están leyendo el foro, pero permanece silencioso...
Title: Re: Avances, Diario de...
Post by: panreyes on August 21, 2009, 07:47:57 AM
VA DE CINE! :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 21, 2009, 11:51:53 AM
Quote from: PiXeL on August 21, 2009, 07:47:57 AM
VA DE CINE! :D

quien va al cine?
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 21, 2009, 11:53:05 AM
Quote from: Drumpi on August 21, 2009, 02:31:48 AM
Pregunta tonta: ¿los DCB son compatibles con versiones anteriores? es decir, si no se usan las novedades, claro.
Es que aun tengo en la cabeza los problemas de compilar Fenix y de que tal no es un DCB compatible cuando uno es el 0.xxa y el otro el 0.xxb.
Estaría bien saber cuando llega la hora de cambiar de versión, cuando hay que recompilar viejos códigos para que vuelvan a funcionar...

Hablando de esto ¿donde está SandMan? Hace tiempo que no le veo, le dejé un mensaje en el subforo inglés, a ver si puede hacer el port para GP2X de la versión actual, ya que él tiene experiencia, sabe más que yo...

creo que en este caso, por incluir una nueva global, hay que recompilar el dcb... no estoy seguro... tengo que revisar...
Title: Re: Avances, Diario de...
Post by: DCelso on August 21, 2009, 12:10:13 PM
Drumpi, he intentado compilar bennu para gp2x, por toda la información recopilada acerca de wiz y gp2x y por la forma de crear los entornos de desarrollo de ambas plataformas (en el caso del devkit y open2x misma configuración), juraría que son 100% compatibles en binarios, así que mi opinión es que pruebes a ejecutar la versión wiz de splinter.
Title: Re: Avances, Diario de...
Post by: splinter_work on August 21, 2009, 01:33:29 PM
Quote from: DCelso on August 21, 2009, 12:10:13 PM
Drumpi, he intentado compilar bennu para gp2x, por toda la información recopilada acerca de wiz y gp2x y por la forma de crear los entornos de desarrollo de ambas plataformas (en el caso del devkit y open2x misma configuración), juraría que son 100% compatibles en binarios, así que mi opinión es que pruebes a ejecutar la versión wiz de splinter.

Yo he intentado a la inversa... o sea, correr cosas gp2x en la wiz, y no va... pero claro, posiblemente sea porque usan particularidades de la consola... habria que probar con algo generico, y bennu es ideal para eso...
Title: Re: Avances, Diario de...
Post by: Drumpi on August 22, 2009, 02:34:45 AM
Mmm, puedo probar, pero juraría que hay cambios de ciertas librerías a la hora de compilar y no sirven, no se, mañana lo miro.

Pero estoy más interesado en saber cómo hacer funcionar los entornos: tengo el oficial con dev-c++, pero Splinter usa los makefiles para compilar y no se cómo se hace eso con el Dev-c++, luego tengo otro con una cosa llamada minsys y un porrón de carpetas que, supuestamente, debo añadir al PATH de windows para compilar... ahora se, pero en su día usaba una opción de make que cambiaba de directorio previamente a la compilación y saqué un ejemplo de SDL... pero había un problema con el resto o no se.
Y el del Open2X jamás lo encontré, su web es un labreinto y no he visto ni los ejecutables del entorno, ni del IDE ni na de na. Estoy harto de pedir ayuda, sobre todo en gp32spain, pero parece que allí todo el mundo sabe y no le dicen nada a los novatos, así que...

Y me interesa tenerlo funcionando, porque luego quiero basarme en la librería de scroll para montar otra de tiles y, si puedo, meter la VSE de una vez. Se que no es una librería tan seria como la Bennu3D, pero me sirve para lo que quiero hacer (proyecto nº 7 de la pila, lleva como tres años sin bajar de ese puesto, por lo que debo tener interés en él).
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 22, 2009, 02:35:06 PM
pero la VSE funcionaba mal...
Title: Re: Avances, Diario de...
Post by: Drumpi on August 23, 2009, 03:30:04 AM
Mmmm, mal no. Se que en la version 084 se hicieron cambios en la estructura interna de los mapas (que aun ignoro por qué) y el código ya no servía porque usaba la antigua.
Aparte de eso, había un problema de división por cero al usar la función VSE_Target con determinados ángulos, pero localicé la linea del fallo (y lo comenté en el foro de Fenix)... lo que no se es qué valor ponerle en ese caso porque no conozco el funcionamiento del código en si.
Y bueno, también está la cosita del auto-escalado de los sprites 2D según la distancia a la cámara, que no está bien calibrado, pero podrían ser sustituibles por los "sprites 3D" que se añadieron en la última versión (el efecto con el que se hace el cubo rotatorio en la demo).

Ahora, que si alguien se quiere hacer cargo de hacer una nueva que haga lo mismo, oye... yo quiero hacer ese plataformas pseudo3D que empecé para aprender a manejar la librería.
Title: Re: Avances, Diario de...
Post by: josebita on August 23, 2009, 08:30:20 PM
Splinter, mira a ver si he pillado lo del scale_resolution:

http://www.bennugd.org/?q=node/27

También, si alguien me pone un par de screenshots con el mismo código funcionando con y sin el efecto para la noticia, se lo agradezco, que ahora no tengo mucho tiempo libre para probar.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 01, 2009, 02:42:34 AM
nueva version disponible que corrige el contador de fps que no se mostraba correctamente... lo mismo para el speed_gauge...
Title: Re: Avances, Diario de...
Post by: Windgate on September 07, 2009, 08:45:18 PM
Acabo de tener un problemilla: Necesito una CONST donde poner el máximo valor float para el lenguaje (Bennu xD).

He comprobado que MAX_INT existe, pero en function_list.txt no aparece... También he comprobado que MAX_FLOAT no existe.

¿Alguien sabe decirme cuál es el máximo valor float en Bennu? Una precisión de +/- 20% me es suficiente, no quiero arriesgarme a excederme y tener overflow ni quedarme demasiado corto y que el algoritmo que estoy escribiendo funcione mal :P

PD: Hago esta pregunta en este hilo porque es el más relevante donde se ha hablado de MAX_INT
Title: Re: Avances, Diario de...
Post by: panreyes on September 09, 2009, 12:50:27 PM
Hello :)
Habría que modificar una cosa.

Al poner
  scale_resolution=06400480;
y hacer
set_mode(1280,1024,16);
sobre un monitor que sólo soporta hasta 1024x768, el juego se sale. ¿Esto tiene solución?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 09, 2009, 11:59:01 PM
no se si sera eso... es raro eso...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 12, 2009, 01:31:42 AM
RC9 r105... disponible...

fix en fps como anuncie hace unos cuantos dias
fix en posicion del mouse, cuando se usea scale_resolution

agradeceria si pueden postear la noticia en todos lados...
Title: Re: Avances, Diario de...
Post by: josebita on September 12, 2009, 11:25:25 AM
Gracias, ya he actualizado los enlaces de la página de descargas.
Title: Re: Avances, Diario de...
Post by: blostec on September 12, 2009, 01:09:03 PM
Bajando nueva RC, gracias Juan!  ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 18, 2009, 03:36:06 AM
nuevo parche que corrige el tema de nombres de parametros llamados igual a constantes...
Title: Re: Avances, Diario de...
Post by: josebita on September 18, 2009, 05:04:48 AM
Genial, gracias :)
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on September 18, 2009, 04:03:39 PM
gracias
Title: Re: Avances, Diario de...
Post by: darío on September 18, 2009, 06:19:57 PM
:) Gracias
Title: Re: Avances, Diario de...
Post by: blostec on September 19, 2009, 03:36:34 PM
Parcheado, gracias por tu labor.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 15, 2009, 02:36:49 AM
avances al dia de hoy...

------------------------------------------------------------------------
r110 | SplinterGU | 2009-10-14 23:30:25 -0300 (mié 14 de oct de 2009) | 11 lines

- Add more modifier to shift_status:

   STAT_RCTRL              0x0000010
   STAT_LCTRL              0x0000020
   STAT_RALT               0x0000040
   STAT_LALT               0x0000080
   STAT_NUM                0x0000100
   STAT_CAPS               0x0000200
   STAT_SHIFT              0x0000400


------------------------------------------------------------------------
r109 | SplinterGU | 2009-10-14 20:44:00 -0300 (mié 14 de oct de 2009) | 2 lines

- scale_resolutions now works in any resolution

------------------------------------------------------------------------
r108 | SplinterGU | 2009-10-07 22:16:14 -0300 (mié 07 de oct de 2009) | 2 lines

- Fix on arrays chars

------------------------------------------------------------------------
r107 | SplinterGU | 2009-10-06 09:11:00 -0300 (mar 06 de oct de 2009) | 2 lines

- scale speed up

Title: Re: Avances, Diario de...
Post by: Windgate on October 15, 2009, 05:40:27 AM
Oh, ¿Esos "modifier to shift status" son GLOBAL que indican el estado de pulsación de esas teclitas o cómo se usan? Creo que fue en base a un hilo propuesto por uno de mis alumnos, si es que se les ocurren cosas que a mí no se me ocurrirían en la vida :P

Qué Bien ;D

Karmón que te ganaste
Title: Re: Avances, Diario de...
Post by: josebita on October 15, 2009, 10:00:01 AM
Genial, pal ppa que se va.
Title: Re: Avances, Diario de...
Post by: TYCO on October 15, 2009, 01:25:26 PM
Bien bien, esto avanza. Pero hay muchas versiones 1.0.
Title: Re: Avances, Diario de...
Post by: DCelso on October 15, 2009, 02:40:54 PM
Splinter, esto no soluciona el problema de write_in_map en 32 bits que detectó sandman cuando hizo el mod_ttf ¿no?
http://forum.bennugd.org/index.php?topic=837.msg12061#msg12061
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 15, 2009, 05:46:42 PM
Gracias Aladdin Splinter :)
Mis deseos se convierten siempre en realidad, grande genio me pille! :)
Title: Re: Avances, Diario de...
Post by: La momia que fuma on October 15, 2009, 06:44:35 PM
Que es exactamente lo de scale speed up? Optimización de scale_resoultion? O de size, size_x y size_y?

Toda optimización me parece cojonudisima, es solo curiosidad ;)
Title: Re: Avances, Diario de...
Post by: splinter_work on October 15, 2009, 07:22:18 PM
Quote from: La momia que fuma on October 15, 2009, 06:44:35 PM
Que es exactamente lo de scale speed up? Optimización de scale_resoultion? O de size, size_x y size_y?

Toda optimización me parece cojonudisima, es solo curiosidad ;)

scale_resolution
Title: Re: Avances, Diario de...
Post by: splinter_work on October 15, 2009, 07:22:47 PM
Quote from: DCelso on October 15, 2009, 02:40:54 PM
Splinter, esto no soluciona el problema de write_in_map en 32 bits que detectó sandman cuando hizo el mod_ttf ¿no?
http://forum.bennugd.org/index.php?topic=837.msg12061#msg12061

ni idea de ese problema... no lo lei... que era?
Title: Re: Avances, Diario de...
Post by: DCelso on October 15, 2009, 09:55:15 PM
Básicamente es que al hacer un write_in_map en modo 32 bits no escribe bien los colores.

set_mode(320,240,32);
f = ttf_loadx("C:\Windows\fonts\vladimir.ttf",40,32,rgba(255,255,255,255),rgba(255,255,255,0),0);
map_clear(0,0,rgb(0,255,0));
drawing_map(0,graph);
drawing_color(rgb(255,0,0));
draw_box(100,100,200,200); // Borramos con rojo el grafico
graph = write_in_map(f,"HELLO WORLD",0); // escribimos hello world en blanco

Title: Re: Avances, Diario de...
Post by: SplinterGU on October 15, 2009, 11:57:28 PM
ya hable con sandman... la cosa es que cuando dibujas sobre un grafico de 32 bits, el alpha de los pixels dibujados es 255... y eso tiene que ser asi... la conclusion que llegamos es que necesitamos tener un flag para poder modificar ese comportamiento... (pero no lo hare ahora)

una solucion es poner text_flags = B_NOCOLORKEY; pero justo con el font que sandman esta probando da problemas ya que cada caracter si pisa sobre el anterior, entonces se corta parte del grafico... pero en un font normal (no italico) o italico con un espaciado mas amplio funcionaria correctamente.

el por que de alpha a 255 en el mapa destino tiene un porque... y es algo un poco largo de explicar...
Title: Re: Avances, Diario de...
Post by: Windgate on October 16, 2009, 08:26:42 PM
Me ocurrió algo relacionado en un juego que hice... Todavía no lo había comentado pero quizás sea ahora el momento:

En ese juego disparaba a un objeto con una ametralladora y quería que el objeto se agujerease con las balas (Agujeros transparentes). Para ello hice un map_block_copy y no conseguí poder dibujar un círculo con su alpha correcto para los bordes... Así que terminé dibujando cuadrados negros que trabajando en 16 bits hacían la vez de alpha.

Pero me quedé con las ganas de poder hacerlo en 32, los agujeritos totalmente redondos hubiesen sido muy graciosos.

Me alegro que esté en la lista de tareas pendientes Splinter. Esperaremos con paciencia :D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 16, 2009, 11:17:22 PM
Splinter porfa la snapshot de la r107 que me prometiste :) Que quiero programar en Bennu todo el Sabado.
Title: Re: Avances, Diario de...
Post by: Windgate on October 17, 2009, 03:27:50 AM
Con las DLL de la última RC me dejaron de funcionar los juegos en 3D... No sé qué pasó, si sale nueva RC sustituyo DLLs a ver qué es... Ya lo reporté con captura del error pero nadie me dijo nada al respecto :'(
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 17, 2009, 03:54:07 AM
subida rc10 revision 110...

por favor, "difundid la palabra..." :D

PD:
les debo el instalador windows, solo esta el rar... lo siento, pero el ultimo upgrade de mingw32 para linux esta cagado... no entiendo por que meten mano y hacen cagadas que no arreglan en varias versiones de mingw que estan saliendo en el toolchains de linux...
Title: Re: Avances, Diario de...
Post by: La momia que fuma on October 18, 2009, 04:43:38 PM
Quote from: Windgate on October 16, 2009, 08:26:42 PM
En ese juego disparaba a un objeto con una ametralladora y quería que el objeto se agujerease con las balas (Agujeros transparentes). Para ello hice un map_block_copy y no conseguí poder dibujar un círculo con su alpha correcto para los bordes... Así que terminé dibujando cuadrados negros que trabajando en 16 bits hacían la vez de alpha.

Para eso lo que puedes hacer es (a ver si me doy explicado bien), tener un gráfico aparte con el agujero, irlo recorriendo con map_get_pixel, y donde encuentres el color que le hayas puesto al agujero, meter un pixel transparente en el gráfico a agujerear con map_put_pixel teniendo en cuenta la referencia que acabas de obtener en el gráfico del agujero y en que coordenadas del gráfico vas a meter el bujero

Usé el truco este hace mucho (DIV1) para un remake que había hecho del mitico gorilla del Qbasic (http://www.pixfans.com/wp-content/uploads/2008/12/gorilla-bas.gif), que causaba furor por aquel entonces en las clases de informática de mi instituto XD

Sin embargo este método sería demasiado lento para cumplir mi viejo anhelo de meter en un juego la siempre encantadoramente hortera cortinilla de estrellas (vease el capitulo de los simpson en el que la palma la mujer de Flanders) para cambiar de escena XD
Title: Re: Avances, Diario de...
Post by: Drumpi on October 18, 2009, 04:52:47 PM
¿Y que tal las funciones draw? permiten pintar en color transparente, y no se si en modo 32 bits o con alguna variable incluso con alphas distintas.
Title: Re: Avances, Diario de...
Post by: La momia que fuma on October 18, 2009, 06:16:29 PM
También es verdad, mucho mejor que lo que decía yo, aunque sigue siendo complicado hacer una cortinilla de estrellas XD
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 18, 2009, 11:18:52 PM
el problema es que actualmente si uno dibuja sobre un grafico de 32 bits, el alpha del grafico destino es 255... a menos que usemos b_nocolorkey... pero al hacer eso, las areas negras se copian...
Title: Re: Avances, Diario de...
Post by: Drumpi on October 19, 2009, 05:07:25 PM
Ya, pero pensaba que como el color es rgbA ya se incluía el valor del alpha para cada pixel en el destino.
Y la cortinilla de estrellas, es posible hacerla con las lineas, sólo debes definir a cada frame la posición de los 10 vértices y dibujar las lineas correspondientes (aunque creo que dejan algunos huecos por los redondeos).
Title: Re: Avances, Diario de...
Post by: Windgate on October 20, 2009, 11:41:35 AM
Ok, probaré lo que dices Momia a ver qué tal queda, me dolió no poder dejar el juego terminado como quería :'(

Los problemas que estamos hablando con los 32 bits supongo que serán a causa de que todavía no hemos testeado a fondo los videojuegos con esta profundidad de color. Imagino que a base de darles caña y reportar posibles fallos se irán arreglando, al fin y al cabo sólo es añadir A a las ya existentes R G y B... Con los flags que comentaba Splinter para transparencia aditiva, sustractiva y esas cosas que tiene el color se debería poder hacer "cualquier" cosa.

Drumpi, el trazado de líneas no tiene "suavizado" (No tiene alpha, vamos) y cuando lo probé en mi visor 3D para el wireframe sí que salía algún hueco.

¿Hay algo pensado para primitivas de dibujo en 32 bits? Simple curiosidad, hay otras cosas más importantes ;)
Title: Re: Avances, Diario de...
Post by: Drumpi on October 21, 2009, 11:11:32 PM
No, no tiene suavizado, pero cada color en 32bits si que lo tiene, ya que se usan 8 para la componente roja, 8 para la verde, 8 para la azul y 8 para el ALPHA, por lo que un color hFFFFFFF0 debería ser un color blanco con transparecia al 50%
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 22, 2009, 02:11:15 AM
las primitivas graficas de 32 bits estan soportadas
Title: Re: Avances, Diario de...
Post by: Windgate on October 22, 2009, 08:51:37 AM
las primitivas graficas de 32 bits estan soportadas

Sí, eso ya me imaginaba, que es posible dibujar una línea con cierto alpha, de hecho lo probé con mi visor 3D.

Lo que quería saber es si era posible trazar la línea con suavizado, de forma que las diagonales no muestren "escalones", para ello la línea añade algunos píxeles con transparencia extra en los "escalones" y da mayor sensación de diagonal.

¿Eso no está, verdad? Tampoco lo hecho en falta, es por curiosidad y por conocer bien lo que hay y lo que no hay.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 22, 2009, 12:13:22 PM
no, podes modificar el alpha como ya probaste, pero no con suavizado...
eso implicaria que la linea realmente sea mas grande que 1 pixel... lo que podes hacer es trazar varias lineas con diferentes alfas y con algun pixel de diferencia... y finalmente trazar la linea final sin el alfa...
Title: Re: Avances, Diario de...
Post by: Windgate on October 22, 2009, 12:26:49 PM
Ok Splinter gracias por la aclaración. Aquí dejo el detalle del efecto de línea con suavizado, a 1 píxel en negro puro, sin alpha, por si a alguien le diese por implementar el algoritmo en un futuro, fijaros que ni un sólo pixel queda totalmente negro realmente xD

(http://trinit.es/images/linea_alpha.png)

Por supuesto sin zoom la línea queda estupendamente, no se ve ni un pixel.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2009, 09:47:01 PM
he incluido nuevos productos en el svn de autoria propia con licencia LGPL... y he actualizado el componente loadlib a LGPL... ire haciendo lo propio con los modulos de mi autoria... y si en el futuro puedo pasar todo a LGPL, asi lo hare.

saludos...
Title: Re: Avances, Diario de...
Post by: Windgate on November 09, 2009, 09:58:55 PM
Por lo que leo: http://es.wikipedia.org/wiki/GNU_Lesser_General_Public_License

Con ello Bennu es todavía más libre... No puede ser más libre diría yo... Karma++ SplinterGU, ¿Sabes que vas a ir al cielo quieras o no? ;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2009, 10:06:18 PM
je, gracias... todavia no estan todos los modulos, hay que estudiar bien, cuanto tienen de fenix aun... y si se llegara a conseguir que todos los que participaron en Fenix (o por lo menos los principales) autoricen a cambiar la licencia a LGPL entonces seria fantastico y se cambiaria...
Title: Re: Avances, Diario de...
Post by: Windgate on November 10, 2009, 12:01:05 AM
He accedido al Centro de Software de Ubuntu, el "gestor de paquetes" de la nueva 9.10, he buscado Bennu para ver si había algo pero veo que no... En el tema de Linux ya sabéis que apenas llevo 1 año y eso es "nada", ¿Habría alguna forma de hacer que el paquete de Bennu fuese un paquete instalable desde ese menú?

Por tema de hostearlo supongo que no hay problema, bennugd tiene su hosting y algunos más podríamos aportar, ¿Qué clase de impedimentos hay? Por curiosidad :P
Title: Re: Avances, Diario de...
Post by: DCelso on November 10, 2009, 09:25:05 AM
http://forum.bennugd.org/index.php?topic=496.0
Title: Re: Avances, Diario de...
Post by: Windgate on November 10, 2009, 09:27:24 AM
Gracias DCelso... Ahora creo recordar que mire ese hilo tiempo ha, voy a verlo de nuevo porque tengo memoria de pez :P
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 27, 2009, 11:49:10 AM
Me estaba haciendo una preguntilla:


Sobre el map_block_copy:


Seria posible crear un mapa 'virtual' que no ocupará memória à diferencia de crear uno cargando un mapa vacio, el cual si va ocupar memória ?

Lo pregunto sobretodo por temas de rendimiento, ya que el mapa seria para pintarlo utilizando el map_block_copy, y lo ideal es que la memória que este ocupa fuera sólo la memória ocupada por los gráficos utilizados en el map_block_copy (y sus punteros) y creo que la memória del mapa inicial para poder utilizar el map_block_copy sobrária....

Vamos, resumiendo, actualmente este mapa se carga al principio de la fase para poder pintar los tiles sobre el, pero creo que la memória de este mapa en sí sobraria, ya que sólo sirve para servir de referencia a los tiles pintados con map_block_copy...

a lo mejor existe otra alternativa para hacer esto sin usar un mapa de base ...

No se se me entendeis...

Title: Re: Avances, Diario de...
Post by: Windgate on November 27, 2009, 12:25:59 PM
No comprendo, un mapa virtual seguiría ocupando memoria, ¿Dónde iba a estar si no?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 27, 2009, 12:42:42 PM
Claro es que le llamo virtual para decir un mapa null.
Vamos lo ideal seria que el map_block_copy puediera copiar sobre una region nula (o mapa nulo que es lo mismo), sin tener aparte de la memória del tile, la memória del mapa vacio (ya que me imagino que los otros tiles iguales apuntarian a la memoria del primero y no ocuparian espacio).

O sea, que el map_block_copy pudiera poner ese tile en las coordenadas x,y pero sin necesidad de basarse en un mapa destino, y al final tendriamos un mapa completo pero compuesto sólo por la memória de los tiles.

Porque me imagino que al usar un mapa + tiles, vas a tener aparte de la memoria de mapa que cargaste al inicio, la memoria de los tiles usados en el. Si este ultimo no es así pues el problema ya estaria resuelto ;)

Por otro lado, creo que no ocupa lo mismo un mapa con X,Y dimensión pintado de negro, que el mismo mapa lleno de colores.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 27, 2009, 05:05:27 PM
Pues yo sigo sin enterarme de lo que quieres decir, la verdad...
Creo que map_block_copy coge los datos del mapa origen y los pega en el destino, sin usar memoria intermedia, porque no vas a descargar el mapa origen durante la operación. Si lo que quieres es tener una copia en memoria tienes map_clone, y si quieres guardar un trozo creas un nuevo mapa del tamaño que quieras y haces el map_block_copy sobre este.

Pero un mapa con dimensión (x,y) pintado de negro ocupará lo mismo que el mismo mapa lleno de colores, porque el propio negro es un color (aunque hablemos de negro, transparente o vacío, el 0 ocupa una posición de memoria). Lo que dices sería cierto si se usase algún tipo de compresión en memoria, pero no es así.
Title: Re: Avances, Diario de...
Post by: Windgate on November 28, 2009, 04:12:33 AM
Yo tampoco entiendo del todo la sugerencia, pero FreeYourMind, créeme que he estado investigando map_block_copy y me interesan mucho las posibles mejoras sobre esta función, especialmente en 32 bits.

Entiendo que propones una mejora de eficiencia, pero no comprendo qué propósito tiene ese mapa virtual... ¿Para qué caso o casos en concreto ahorraría memoria?

Por tu último comentario me parece que te refieres a hacer un map_block_copy sobre un mapa "vacío", para componerlo completamente desde 0. Por ejemplo con mí módulo "Dialog Boxes" hacía algo así, la idea de hacerlo desde 0 es interesante pero no la tuve en cuenta, exprésate más a fondo sobre el tema please.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2009, 05:30:20 AM
Quote from: FreeYourMind on November 27, 2009, 12:42:42 PM
Claro es que le llamo virtual para decir un mapa null.
Vamos lo ideal seria que el map_block_copy puediera copiar sobre una region nula (o mapa nulo que es lo mismo), sin tener aparte de la memória del tile, la memória del mapa vacio (ya que me imagino que los otros tiles iguales apuntarian a la memoria del primero y no ocuparian espacio).

O sea, que el map_block_copy pudiera poner ese tile en las coordenadas x,y pero sin necesidad de basarse en un mapa destino, y al final tendriamos un mapa completo pero compuesto sólo por la memória de los tiles.

Porque me imagino que al usar un mapa + tiles, vas a tener aparte de la memoria de mapa que cargaste al inicio, la memoria de los tiles usados en el. Si este ultimo no es así pues el problema ya estaria resuelto ;)

Por otro lado, creo que no ocupa lo mismo un mapa con X,Y dimensión pintado de negro, que el mismo mapa lleno de colores.

La idea de un tile no es que si tenes que pintar un tile 10 veces tengas 10 graficos clones... la idea es que uses un solo grafico para cada uno de los tiles...

tiles no necesariamente significa que tengas que usar map_block_copy (puede, pero no es necesario), podes usar procesos tambien...

como sea, en el caso del block_copy, solo copias a un mapa mas grande... pero no por eso vas a consumir mas memoria...

segun leo en el mensaje que queres transmitir es que ademas de hacer el map_block_copy, tenes un grafico unico por cada uso del tile... eso no es necesario... si no es eso lo que quisiste decir, entonces no te entendi...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 01:40:26 AM
Buenas. Estoy de vuelta, por fin espero no volver a quedar sin portatil, ya que de una vez quite el maldito disco duro de mi portatil, ahora acabo de estrenar disco duro de 680 gigas, como evolucionan estos trastos :)

Comento lo del map_block_copy, porque cargo 3 mapas para pintar las distintas partes de un nivel (objectos de fondo, objetos de colisiones y objetos frontales que tapan a los personajes), como si fueran 3 en 1. Al hacerlo repito 3 veces el mismo mapa, ya que cada uno va construir su respectiva region o scroll. Lo que pienso es que internamente esta función podria ser más optimizada, no veo sentido que se necesite de principio un mapa para poner tiles en el, tener un mapa sin memória y que al final los tiles al copiarse en realidad se estarian creando regiones de mapas con esos tiles. o sea, se construyerá el mapa con tiles sin tener una base para ponerlos... ya se que hay formas de hacerlo, pero si tuvieramos una función equivalente a la que le pasaramos un mapa destino que no existierá molaria por comodidad.

Es que noto que por ejemplo si no borro este mapa al empezar de nuevo el nivel, al generar de nuevo los tiles (ya que lo hago al empezar el nivel), estos se sobreponen sobre los antiguos del mismo mapa en memoria (y como los antiguos son los mismos en la misma posición), el mapa va tener cada vez mas memoria ya que se va sobrecargar de objetos, aunque siga teniendo la misma dimensión...

Esto tambien me parece un poco raro ya que si estamos poniendo tiles en ese mapa es como si estuvieramos de nuevo pintando en el, y si un mapa ocupa siempre el mismo tamaño tenga el pintado que tenga como decis, el mapa no tendria que aumentar de memoria...
Title: Re: Avances, Diario de...
Post by: DjSonyk on November 29, 2009, 01:55:10 AM
Humm Free ,has probado como te a dicho Splinter ¿crear los tiles por procesos?,mira yo te doy dos opciones.

1- Si no quieres nada de fondo ,usar una estructura que segun valla leyendola te valla colocando los tiles en la posición que quieres ,como map_block_copy,pero con procesos...
2- Si quieres fondo,le pones y haces lo de 1. Una estructura de 1024x1024pixel dividida en tiles de 16x16 te ocupa 16 kb+los graficos de los tiles....

Creo que la forma que estas haciendo para colocar los tiles a base de map_block_copy,es un poco ,y permitemelo decir ^^,estraña....
Title: Re: Avances, Diario de...
Post by: Drumpi on November 29, 2009, 01:59:56 AM
Te estas armando un lio tu solo:
Si quieres sacar información de un mapa, esa información debes colocarla en alguna parte, no puedes dejarla en el aire, porque ocupa un espacio de memoria si o si, por lo que debes guardarla en un mapa, o en su defecto, en una zona de memoria que hayas reservado con un puntero, pero va a gastar memoria... y entonces es mejor que la tengas en un mapa.

Otra cosa: si pegas información de un mapa en otro, el destio NO AUMENTA SU MEMORIA, sigue con la misma que ocupa siempre (ancho*alto*profundidad_de_color(8/16/32)), sobreescribes información, lo que hubiera antes en esa posición se pierde porque se ha cambiado, no existe la función "deshacer" sobre los mapas.

Ten en cuenta que todo lo que sea copia, requiere una memoria: en el caso de map_block_copy usa el espacio de memoria donde está el mapa origen (si descargas el mapa origen, entonces desaparecen estos datos y no se pueden copiar), si usas map_clone se crea un nuevo mapa con esa info. Hasta el copy/paste que haces en windows ocupa memoria nueva, esa info se almacena en una zona de memoria, y puedes consultarla si usas el "visor del portapapeles" (si sigue existiendo, es una vieja aplicación que traía w95, w98 y creo que w2000)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 02:15:52 AM
Otra cosa: si pegas información de un mapa en otro, el destio NO AUMENTA SU MEMORIA, sigue con la misma que ocupa siempre (ancho*alto*profundidad_de_color(8/16/32)), sobreescribes información, lo que hubiera antes en esa posición se pierde porque se ha cambiado, no existe la función "deshacer" sobre los mapas.

Vale, el problema se resume sólo a eso, segun las pruebas parece que esto no ocurre, si se sobrescribe información y se pierde lo que existia en esa posición, porque el juego pierde rendimiento si lo hago ? y porque si hago unload y vuelvo a cargar el mapa antes de volver a poner de nuevo los tiles en el, esto no ocurre ? Alguna cosa de errado hay, porque eso no parece que este funcionando, me gustaria que Splinter revisara justamente eso en map_block_copy, que confirmará que el tile anteriormente pintado en la posición del segundo que lo va a substituir, se pierde (hablando de memoria claro).
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2009, 05:47:35 AM
eso que dices no tiene sentido como lo dices...

lo que necesitas es no pintar sobre ningun mapa, sino usar 1 proceso para cada tile.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2009, 05:48:42 AM
Quote from: FreeYourMind on November 29, 2009, 02:15:52 AM
Otra cosa: si pegas información de un mapa en otro, el destio NO AUMENTA SU MEMORIA, sigue con la misma que ocupa siempre (ancho*alto*profundidad_de_color(8/16/32)), sobreescribes información, lo que hubiera antes en esa posición se pierde porque se ha cambiado, no existe la función "deshacer" sobre los mapas.

Vale, el problema se resume sólo a eso, segun las pruebas parece que esto no ocurre, si se sobrescribe información y se pierde lo que existia en esa posición, porque el juego pierde rendimiento si lo hago ? y porque si hago unload y vuelvo a cargar el mapa antes de volver a poner de nuevo los tiles en el, esto no ocurre ? Alguna cosa de errado hay, porque eso no parece que este funcionando, me gustaria que Splinter revisara justamente eso en map_block_copy, que confirmará que el tile anteriormente pintado en la posición del segundo que lo va a substituir, se pierde (hablando de memoria claro).

WTF!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 08:25:28 AM
Quote from: SplinterGU on November 29, 2009, 05:48:42 AM
WTF!

Bueno, en lugar de espanto, estaria bien aclarar si el mapa destino ocuparia la misma memória, haciendo sobre el 10 map_block_copy
que 10000.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 29, 2009, 02:12:41 PM
Free, no debería haber aumento de memoria en el mapa, hagas 10, 1000 o 100000000000000 map_block_copy, porque map_block_copy es como map_put_pixel pero con varios pixels a la vez. Una cosa es que los comandos PUT y familia (entre ellos map_block_copy) sean comando "lentos" (la gp2x no puede "refrescar" una pantalla de 320x240 a 30fps) y otra cosa es que se ralenticen.

Si haces unload del mapa, lógicamente se pierden los cambios porque no los has guardado, al hacer load cargas el que tenías en el disco, sin cambios. Si quieres que se guarden, debes hacerlo en el disco, no sólo en la memoria.

Me parece que no tienes claro el concepto de memoria.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 02:52:53 PM
Hombre, la culpa ha sido mia no expresarme bien, si que tengo el concepto, si creeme :)

Lo que ocurre es que yo pongo los tiles en el mapa al empezar la fase, con lo cual no tendria que hacer un unload_map antes, ya que si voy a volver a poner los mismos tiles en el al repetir la fase, la logica es que como vuelve a pintar el mismo mapa con los mismos tiles,  no habria ningun cambio en la memoria.
Pero con las pruebas que hice (y claro esto sólo se puede observar en la Wiz), si no descargo antes el mapa al repetir la fase, la memoria se va incrementando (sea o no la del mapa en concreto, esto se me escapa, pero no cargo más ningun recurso en ese instante) hasta el punto que quedaba lento y petaba por memoria.

Otra cosa que ocurria y que arregle en parte, es que en ciertos puntos de algunos mapas el fps caia en picado haste el 0,1 fps, y lo curisoso es que salia al menu, y como tengo un let_me_alone tendria que recuperar su fps normal.
Esto no ocurria (dandole tiempo para hacerlo claro), y me entero que tambien es por problemas de memoria, ya que lo que hice fue descargar tambien el mapa al entrar al menu y no sólo al repetir fase.
Esto me soluciono lo del fps al salir de una fase que ocurra la caida brusca :) (lo bueno es que si descargas un mapa que no existe Bennu no peta, al reves de lo que ocurria con las musicas, pero vamos esto tampoco importa mucho, es ponerle la condicion is null y listo).
Así que con esto se conprueba que ni siempre los errores tienen origen en lo mismo, la caida del fps y su recuperación  siempre esta asociada al numero de procesos y rendimiento en determinado punto, pero tambien tiene origen en la memória que en ese punto se consume...

Sobre lo del unload, es buena tu observación, pero me imagino que cuando haces unload de un mapa cargado este será sobre el mapa que ya ha sido modificado en ejecución, o sea, con los cambios que tuvo en la Ram.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 03:03:11 PM
Ha y se me olvidaba. Sobre el tema tambien tengo una muy buena pregunta:

Como sabes ahora se permite, tal como en DIV, poner un tile sobre el mapa destino en regiones negativas (fuera del mapa destino), la pregunta es, las partes que quedan fuera (regiones del tile que no coincidan con el area del mapa destino) tambien se pintan o desaparecen ??

Es que estas partes si se pintan pues tambien ocuparan memória, o sea, si estan ahí, no vas a tener sólo la memória que ocupe el mapa destino, ya que el resultado va ser una region mayor...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2009, 05:14:29 PM
Quote from: Drumpi on November 29, 2009, 02:12:41 PM
Free, no debería haber aumento de memoria en el mapa, hagas 10, 1000 o 100000000000000 map_block_copy, porque map_block_copy es como map_put_pixel pero con varios pixels a la vez. Una cosa es que los comandos PUT y familia (entre ellos map_block_copy) sean comando "lentos" (la gp2x no puede "refrescar" una pantalla de 320x240 a 30fps) y otra cosa es que se ralenticen.

Si haces unload del mapa, lógicamente se pierden los cambios porque no los has guardado, al hacer load cargas el que tenías en el disco, sin cambios. Si quieres que se guarden, debes hacerlo en el disco, no sólo en la memoria.

Me parece que no tienes claro el concepto de memoria.

esto es correcto...

Free, lo que dices no es asi, si lo piensas y haces las cosas correctamente, no hay forma de que pase lo que dices... el map_block_copy (ya lo dije en su momento) no escribe mas alla de los limites del mapa destino, no crea ningun mapa nuevo ni lo agranda ni lo achica... seria ilogico si hace eso. Entonces, si yo tengo un escritorio con 10 cajones que solo entra un objeto en cada cajon, si yo hago un copy a ese cajon de otro objeto (reemplazando el que tenia previamente) cómo eso va a ser que mi escritorio tenga mas cajones? imposible. Por eso el "WTF!"

Desaparecen, ya te lo habia explicado, se ve que no lo hice bien. Es completamente ilogico que queden.

Ahora, si creas el mapa destino muchas veces o cargas constantemente los tiles y no los desacargas, o haces clone y no haces unload de esos mapas, entonces seguramente te va a consumir mas memoria cada vez. Revisa tu codigo, quizas tienes algo de eso...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2009, 10:02:09 PM
Ok, esta todo aclarado, entonces el cambio que hiciste en la rc112, para poder poner tiles que tienen parte de su gráfico fuera del mapa destino, se 'limpian' automaticamente y sólo queda en memoria la parte visible que pertenece a la region del mapa destino ???

No se si te acuerdas, pero DCelso te puso unas pantallas que aclaraban esto, y en ellas y segun el cambio que hiciste, ya se podian pintar tiles fuera de la region destino (como en DIV), o sea, tiles que parte de su cuerpo salian fuera del mapa destino.

Por otro lado lado me parece un poco raro que con el cambio que hiciste en la rc112, no ponga nada fuera del mapa destino, ya que yo por ejemplo pongo un tile (que creo que esta fuera del mapa destino, x<0) que sirve como pared invisible, que no deja que el prota pase de x < 0 del mapa destino, y esta pared ya se encuentra fuera del mapa visible pero tiene que estar ahí ya que el prota colisiona con ella.

De momento esta todo OK, esto fue a titulo de reflexión/dudas, para mi el map_block_copy no necesita ningun cambio, ni necesito buscar otra solución de momento, ya que en principio y segun mis ultimas pruebas ya no voy a tener más problemas de rendimiento en la Wiz, ya que en el juego final no vas a tener vida infinita como en mis pruebas :) Es que esto me permite pasar por varios enemigos y matar varios a la vez, encima que tenia el tiro en automatico (tirando mogollon de tiros al mismo tiempo) pero en la version final el jugador no llega a este estremo ya que va a morrir antes, con suerte luchará con 2 enemigos al mismo tiempo, heheheh, así que en rendimiento no va poder caer tan en picado :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2009, 11:14:22 PM
a ver... nunca se copio mas alla del espacio que existe... antes directamente no se copiaba nada... si eran negativas las coords...

nooo! nunca se pintan tiles fuera de la region, ni en bennu ni en DIV...

que dificil es explicar algo muy basico... si yo tengo una bolsa (mapa destino) que entra 1kg de pan... por mas que yo tenga 10kg de pan para ponerle... en la bolsa solo entra 1kg de pan... el resto no entra, entonces no se pone...

creo que aun no logro que entiendas el concepto.

Por favor, alguien que me de una mano a explicar la cosa de forma mas simple...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 30, 2009, 12:09:42 AM
Si te entiendo, no te preocupes. Grácias por la paciencia de santo.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 30, 2009, 12:13:46 AM
Lo del map_block_copy es muy sencillo:
Imagina que en una pared cuelgas un papel grande, ahora trazas una linea enorme y esta se sale del papel y pintas la pared (es lo que sucede cuando tu mapa pinta fuera del mapa, cuando se sale), pues bien, si retiras el papel de la pared, sólo verás la linea que ha quedado dentro, lo que has pintado en la pared no aparece y el papel no se ha hecho más grande para abarcarlo. En el mapa destino pasa lo mismo, sólo almacena los datos del papel, lo que pase en la pared se pierde, como si nunca hubiera existido.
Y no, eso que se sale del mapa no ocupa memoria extra, simplemente no se dibuja en ningún sitio, en ese aspecto la brocha es "inteligente" y no mancha nada fuera del papel.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 30, 2009, 12:45:36 AM
si, con la salvedad que en bennu, cuando se va a pintar mas alla de los limites del papel, directamente no se pinta... no se hace el trabajo de pintarlo...

pero si, esa es la idea, gracias.
Title: Re: Avances, Diario de...
Post by: DjSonyk on November 30, 2009, 12:55:46 AM
Mira Free eso lo puedes ver bien en mi editor,que como tiene Scroll ciclico,si te pasas con el scroll el tamaño que has selecionado veras que no puedes pintar,y otra prueba que tambien puedes hacer es pintar un tile por ejemplo de 32x32 en el limite y veras que "SOLO"se pinta el cacho que entre en tu mapa y el resto no se pinta ^^,ahi lo puedes comprobar perfectamente ^^...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 30, 2009, 07:10:49 AM
Grácias compis. Sobre funcionamiento y como debe funcionar nunca tuve dudas, otra cosa era saber si realmente lo hacia de esa forma ;)
Con vuestras palabras ya me fio, no tengo que probarlo, es suficiente  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 30, 2009, 10:07:30 PM
nuevas correcciones:

- Tablas de calculos trigonometricos se calculan ahora al cargar el modulo mod_grproc y no al momento de usar las funciones, esto corrige la pausa en el juego galaxian cuando la primera nave entraba en rotacion
- Se reemplaza la des-4.04b por la libssl (openssl)
- la carpeta vendor ahora se llama 3rdparty
- los fuentes crypt.* ahora se llaman b_crypt.* para evitar conflictos con los del SO
- la libreria de log se agregar comando para controlar nivel de log (aun no se usa esta lib en el proyecto)
- revision del modulo de sonido, y se agregan 2 nuevas funciones SOUND_INIT y SOUND_CLOSE, sirven para resetear el sistema de sonido y poder modificar cosas como cantidad de canales, frecuencia y otras cosas.
Title: Re: Avances, Diario de...
Post by: josebita on December 30, 2009, 10:58:28 PM
Genial, gracias :)
Me pongo a empaquetar.
Title: Re: Avances, Diario de...
Post by: josebita on December 31, 2009, 12:03:59 AM
Venga, un pequeño comentario: al enlazar contra libssl me da un error de dependencias, tengo que enlazar contra libcrypto, que también viene del paquete libssd-dev. (En Ubuntu libssl.so depende de libcrypto.so).
Lo que he hecho es cambiar el configure.in para enlazar contra libcrypto, no sé si te parece bien.

Bueno, el bennugd-core ya se ha compilado en el servidor y pronto se copiará a los servidores de actualizaciones y los módulos empezarán en unos 20 minutillos a compilar, así que si todo va bien, en un ratito le dais a actualizar y listo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 31, 2009, 12:16:45 AM
lo raro es que a mi no me dio esos errores y compilo correctamente...

pero me parece bien...
Title: Re: Avances, Diario de...
Post by: Drumpi on December 31, 2009, 01:49:51 AM
Bueno, ya lo comenté en el otro hilo: si esto funciona, podría resolver los problemas de incompatibilidad entre firms de GP2X.
A Splinter ya le di un karma por el trabajo hecho, ahora le doy otro al Josebita por mantener la versión Linux (ahora tendré que pillar un rato de desconexión para actualizar :D :D :D).
Title: Re: Avances, Diario de...
Post by: kim-elet-o on December 31, 2009, 07:54:53 PM
 ;D ;D ;D, Jejejeje, o sea que mi Galaxian ha provocado el cambio y revision de los calculos trigonometricos, no se si sentirme orgulloso o sentirme lapidado por SplinterGU.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 01, 2010, 02:31:09 AM
la cosa es que la tabla de cosenos y senos se calculaba cuando se usaban las funciones de getangle o similares... en pc se caga de la risa, pero en wiz se reciente mucho el uso de flotantes... y se frena un momento cuando el primer marciano cae en ataque...

despues de revisar el galaxian y optimizar un monton de cosas, pero aun asi ver que no mejoraba, sospechaba que el problema estaba ahi, pero cuando lo modifique confirme que ese era el problema...

gracias, un karma...
Title: Re: Avances, Diario de...
Post by: Windgate on January 01, 2010, 03:39:38 PM
Gracias Splinter, ni sabía que hubiese una tabla de trigonometría que se inicializaba, un granito de arena más de tantos otros :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 01, 2010, 07:28:39 PM
para optimizar calculos luego.
Title: Re: Avances, Diario de...
Post by: Windgate on January 04, 2010, 11:08:44 PM
Grandioso que exista algo así, se presupone que la primera utilización de una función trigonométrica supondrá posteriores usos, no es lo habitual cuando empiezas "desde 0", pero un videojuego es un videojuego, y si se usa una... Se usarán también en adelante.

Veo que todos los años de desarrollo tienen su fruto, si es que da "yuyu" pensar en usar otra cosa que no sea Bennu para hacer un videojuego :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 20, 2010, 12:47:52 AM
bien, tras un tiempo sin actualizacion, acabo de liberar una nueva version que incluye todos los nuevos fixes, incluido el uso de openssl para la encripcion...

vuelve a funcionar el instalador de win32 (en teoria, deberia decir, lo hice compilar)

ver mi firma para la descarga... version 1.0 RC11(r131)
Title: Re: Avances, Diario de...
Post by: Drumpi on January 20, 2010, 02:03:09 AM
Permíteme ser el primero en darte el merecido karma por la release :)

No te quejarás, acabo de terminar de programar en bennu por hoy y son las 3 de la noche ;D
Title: Re: Avances, Diario de...
Post by: osk on January 20, 2010, 02:41:47 AM
Gracias!!
Title: Re: Avances, Diario de...
Post by: simulatorone on January 21, 2010, 09:33:13 AM
Quote from: SplinterGU on January 20, 2010, 12:47:52 AM
bien, tras un tiempo sin actualizacion, acabo de liberar una nueva version que incluye todos los nuevos fixes, incluido el uso de openssl para la encripcion...

vuelve a funcionar el instalador de win32 (en teoria, deberia decir, lo hice compilar)

ver mi firma para la descarga... version 1.0 RC11(r131)

Que cosas nuevas tiene? fixes arreglados?

:)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2010, 04:02:41 PM
hay que revisar en el svn el log desde la ultima release a esta... esos son los cambios...
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2010, 04:09:32 PM
------------------------------------------------------------------------
r113 | SplinterGU | 2009-11-08 15:09:38 -0300 (dom 08 de nov de 2009) | 3 lines

- Fix modvideo_mode_is_ok parameters
- Fix mod_crypt args types

------------------------------------------------------------------------
r114 | SplinterGU | 2009-11-09 14:24:33 -0300 (lun 09 de nov de 2009) | 3 lines

- Add liblog (LGPL)
- Add libdict (LGPL)

------------------------------------------------------------------------
r115 | SplinterGU | 2009-11-09 14:33:47 -0300 (lun 09 de nov de 2009) | 2 lines

- loadlib LGPL upgrade

------------------------------------------------------------------------
r116 | SplinterGU | 2009-11-12 00:41:19 -0300 (jue 12 de nov de 2009) | 2 lines

- Log update

------------------------------------------------------------------------
r117 | SplinterGU | 2009-11-12 21:45:45 -0300 (jue 12 de nov de 2009) | 2 lines

- Log Update

------------------------------------------------------------------------
r118 | SplinterGU | 2009-12-26 19:29:45 -0300 (sáb 26 de dic de 2009) | 2 lines

- Add module_initialize with init_cos_tables in mod_grproc and mod_m7, for speedup

------------------------------------------------------------------------
r119 | SplinterGU | 2009-12-26 21:13:10 -0300 (sáb 26 de dic de 2009) | 3 lines

- Add SOUND_INIT and SOUND_CLOSE for initialize and deinitialize the module
- Remove unusefull variables

------------------------------------------------------------------------
r120 | SplinterGU | 2009-12-29 16:25:47 -0300 (mar 29 de dic de 2009) | 2 lines

- Log level control added

------------------------------------------------------------------------
r121 | SplinterGU | 2009-12-30 18:15:17 -0300 (mié 30 de dic de 2009) | 6 lines

- Rename vendor folder to 3rdparty
- Remove use des-4.04b, and now use openssl
- Update configure/autotools
- rename crypt* to b_crypt*


------------------------------------------------------------------------
r122 | SplinterGU | 2009-12-30 18:23:40 -0300 (mié 30 de dic de 2009) | 5 lines

- Rename vendor folder to 3rdparty
- Remove use des-4.04b, and now use openssl



------------------------------------------------------------------------
r123 | SplinterGU | 2009-12-30 18:26:57 -0300 (mié 30 de dic de 2009) | 3 lines

- Rename vendor folder to 3rdparty
- Remove use des-4.04b, and now use openssl

------------------------------------------------------------------------
r124 | SplinterGU | 2009-12-30 18:47:27 -0300 (mié 30 de dic de 2009) | 2 lines

- Replace libdes to libssl

------------------------------------------------------------------------
r125 | SplinterGU | 2010-01-15 14:52:27 -0300 (vie 15 de ene de 2010) | 2 lines

- Fix some problems with set mouse position on scale_mode

------------------------------------------------------------------------
r126 | SplinterGU | 2010-01-15 19:29:46 -0300 (vie 15 de ene de 2010) | 2 lines

- path_find memory leak fix

------------------------------------------------------------------------
r127 | SplinterGU | 2010-01-17 17:28:55 -0300 (dom 17 de ene de 2010) | 2 lines

- mod_path memory leak patch fix

------------------------------------------------------------------------
r128 | SplinterGU | 2010-01-18 02:50:36 -0300 (lun 18 de ene de 2010) | 2 lines

- Fix libssl on mingw

------------------------------------------------------------------------
r129 | SplinterGU | 2010-01-18 03:02:25 -0300 (lun 18 de ene de 2010) | 2 lines

- libSSL fix

------------------------------------------------------------------------
r130 | SplinterGU | 2010-01-18 03:06:33 -0300 (lun 18 de ene de 2010) | 2 lines

- LibSSL fix mingw

------------------------------------------------------------------------
r131 | SplinterGU | 2010-01-19 18:38:26 -0300 (mar 19 de ene de 2010) | 2 lines

- Win32 libpng fix

------------------------------------------------------------------------
r132 | SplinterGU | 2010-01-19 21:34:43 -0300 (mar 19 de ene de 2010) | 2 lines

- Change ssl by crypto

------------------------------------------------------------------------
Title: Re: Avances, Diario de...
Post by: Prg on January 22, 2010, 10:11:55 PM
gracias por la nueva versión, karma++ splinter :)
Title: Re: Avances, Diario de...
Post by: blostec on January 24, 2010, 12:36:56 PM
Muchas gracias Juan, otro karma y superando ya los 100  ;D
Title: Re: Avances, Diario de...
Post by: Windgate on January 24, 2010, 08:17:46 PM
Me uno al K++, el tema del path_find estaba pendiente y me interesaba desde hace tiempo, gracias!
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 25, 2010, 03:23:54 AM
:)

por favor, si hacen pruebas pasenme feedback... gracias...
Title: Re: Avances, Diario de...
Post by: blostec on January 25, 2010, 08:10:51 PM
A mi el instalador de Windows no me funciona, uso Windows XP.
Title: Re: Avances, Diario de...
Post by: DCelso on January 29, 2010, 04:56:50 PM
SplinterGU, felicidades por los cambios al bennu, el último punto no lo entiendo, has cambiado ssh por crypto? o que un tal crypto ha sido el que ha hecho el ssh o ...,  no me queda claro :D.

Por otro lado ahora la dependencia de libdes no existe no? ahora necesitamos en las demás platarormas una nueva librería dinámica externa de ssh o está dentro de las internas de bennu.

Saludos.,
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 29, 2010, 05:12:14 PM
crypto es parte del openssl, la libssl era la incorrecta para las funciones que uso, deberia haber puesto inicialmente libcrypto, pero me confundi... y linux no chillo...

libdes no va mas... ahora se usa openssl, es una lib estandard... hasta ya la compile en wiz...
Title: Re: Avances, Diario de...
Post by: DCelso on January 29, 2010, 05:35:36 PM
ok, thanks for the explanation.  ::)
Title: Re: Avances, Diario de...
Post by: DCelso on February 03, 2010, 10:39:58 AM
Pero libcrypto ahora será una dependencia externa no?, necesitamos de un libcrypto.dll.
O esta compilado de forma estática como antes estaba libdes.

Y como compilaste libcrypto en wiz? o ya viene.

No tengo claro en wiz aún las dependencias que en linux y windows se hacen con las external libs.

He mirado la distribución de wiz y no he visto ningún "*.so" de las external libs, esto quiere decir que van de forma estática en el bennu de wiz o que vienen ya en el sistema de la wiz o como va la cosa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 03, 2010, 02:53:45 PM
las que se necesitan en wiz y no estan incluidas en el SO, van en la misma carpeta que el bgd-runtime... trato de no modificar el sistema operativo.
Title: Re: Avances, Diario de...
Post by: DCelso on February 03, 2010, 06:08:02 PM
Pero libcrypto ahora será una dependencia externa no?
Y como compilaste libcrypto en wiz? porque el codigo fuente viene para cc en sus makefiles. Y tampoco veo libcrypto en bdd-runtimes del binario de openwiz r131, por ejemplo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 03, 2010, 08:08:48 PM
entonces en wiz esta metida estatica... la compile con make...

no te funciona la version wiz?
Title: Re: Avances, Diario de...
Post by: DCelso on February 03, 2010, 08:58:52 PM
No tengo wiz, estoy esperando a pandora :).
Yo lo comentaba por saber para un futuro poder hacer compilaciones cruzadas de bennu.
he probado a compilar el código de openssl usando open2x y no lo he logrado, los makefiles no están muy bien hechos para compilaciones cruzadas.
Resulta que usan el compilador "cc" sin la variable CC, y así las demás.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 03, 2010, 09:45:32 PM
algo tuve que tocar a mano...
Title: Re: Avances, Diario de...
Post by: Danielo515 on February 09, 2010, 10:13:58 PM
Jolín, hace mucho que no me paso por aquí, y ya estoy totalmente perdido, ja ja ja. ¿Por que versión de bennu vamos ya? yo me quedé en la wip 11 ¿merece la pena que pruebe alguna de las betas no oficiales? ya que he leido en la página oficial que la última versión estable es la 11 ¿ o hay algo que he interpretado mal?
Title: Re: Avances, Diario de...
Post by: josebita on February 09, 2010, 10:28:46 PM
La última versión es la RC11 (Release Candidate). Vamos por la casi1.0.
Bienvenido de nuevo :)
Title: Re: Avances, Diario de...
Post by: Drumpi on February 09, 2010, 11:54:30 PM
Si, es la RC11, version r131 ;D
Splinter no se atreve aun a dar por definitiva la versión actual, pues aun se van encontrando bugs, cada vez menos.

Por cierto, hace mucho que no se te ve :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 09, 2010, 11:58:55 PM
betas no oficiales? y eso?

por otro lado, wip11, es viejisima...
Title: Re: Avances, Diario de...
Post by: Danielo515 on February 10, 2010, 08:53:45 AM
Puede ser que esté equivocado y la r-24 sea más nueva que la wip 11? pues en ese caso, voy por la r-24  ;D

No se, yo en bennugd.org he leido en downloads algo de 11..... a lo mejor me he flipado
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 10, 2010, 02:29:29 PM
muchacho... vamos por la r131... o mas... r24 es viejisima...
Title: Re: Avances, Diario de...
Post by: panreyes on February 11, 2010, 09:33:10 AM
Hello. Una pregunta, ¿es normal que pida libcrypto el configure del core?
Title: Re: Avances, Diario de...
Post by: Drumpi on February 11, 2010, 01:51:34 PM
Se supone que si, ahora que se ha pasado a openssl. Creía haber entendido que era una de las librerías que venían con él ¿o era porque la función de encriptado era nueva?
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2010, 02:21:04 PM
viene en la openssl
Title: Re: Avances, Diario de...
Post by: DCelso on February 11, 2010, 02:46:30 PM
Creo que pregunta que cree que solo sería necesario enlazar con ella el módulo de encriptado y que si el core no hace de uso de ella pues no sería necesar "linkarlo" con esta librería.
Dicho de otra forma, ¿Es necesario el uso de la librería libcrypto de openssl para compilar el core de bennugd?
Title: Re: Avances, Diario de...
Post by: panreyes on February 11, 2010, 04:59:27 PM
Quote from: DCelso on February 11, 2010, 02:46:30 PM
Creo que pregunta que cree que solo sería necesario enlazar con ella el módulo de encriptado y que si el core no hace de uso de ella pues no sería necesar "linkarlo" con esta librería.
Dicho de otra forma, ¿Es necesario el uso de la librería libcrypto de openssl para compilar el core de bennugd?

Esa era mi pregunta concreta :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2010, 05:55:07 PM
si, es necesario, puesto que esta pensando para en un futuro tener dcb encriptados.
Title: Re: Avances, Diario de...
Post by: DCelso on February 11, 2010, 06:29:31 PM
moola, ¿un futuro próximo?¿Será extensible para archivos de recursos fpg,oggs,etc?
Por otro lado, entonces para que pixel lo compile para el linux de la wii ahora no es necesario, es decir, podemos prescindir del módulo de encriptación y compilar el core sin el libcrypto por ahora para optener una versión de bennugd para wii sin necesidad de compilar libcrypto en wii.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2010, 07:54:38 PM
es la idea... pero a nivel compilacion solo dcb encriptados.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2010, 07:55:45 PM
no, no se puede prescindir... no me explique bien entonces...

si, es necesario, puesto que esta pensando para en un futuro tener dcb encriptados, e incluido en los apis basicos.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 11, 2010, 08:08:37 PM
¿Y tiene utilidad encriptar los DCBs? es decir ¿tan sencillo es hacer ingeniería inversa con ellos en proyectos de índole comercial cuyo código debe ser protegido bajo cuatro llaves en el fondo del mar?
Los gráficos, músicas y demás todavía lo entiendo (aunque seamos aficionados, no nos hace gracia que otros se enriquezcan con nuestro trabajo, como ya ha pasado alguna vez), pero los DCB... al menos, muchos de nosotros hasta compartimos código ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 12, 2010, 01:19:13 AM
el dcb puede contener datos sensibles que si bien para tus proyectos no son necesarios, no significa lo mismo para todos los proyectos...
Title: Re: Avances, Diario de...
Post by: Windgate on March 02, 2010, 02:02:23 PM
Yo no saco absolutamente nada sin todo el código y recursos abiertos para que cualquiera pueda utilizarlos ;D

Y si se forra alguien me alegraré, pues significa que yo también puedo hacerlo xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 02, 2010, 03:54:42 PM
es correcto, pero hay gente que no quiere eso...
Title: Re: Avances, Diario de...
Post by: Drumpi on March 02, 2010, 08:02:15 PM
Yo, por ejemplo. Me fastidiaría sobremanera que alguien se lucrase de MI trabajo sin ni siquiera pedirme permiso.
O sea, no me importa que se use el código que he subido (por ejemplo, del motor de tiles), los juegos que haga o las aplicaciones, mientras no se cobre por ello. Pero si se va a conseguir algún beneficio, al menos, avisar para llegar a algun acuerdo (o llevarme la parte que me corresponde) ¿no? ;D ;D ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 18, 2010, 03:29:47 PM
primeras pruebas con opengl...

una modificacion muy cutre del core bennu para usar opengl hecho en 15 minutos anoche... me dio en una prueba de un programa que hace rebotar 1000 pelotas en una resolucion de 640x480x32 con graficos de 32x32x32 unos 254fps, cuando la misma prueba en bennu por soft me da unos 48fps...

esta es una rapida version... con cero optimizacion, muy sucia y ejecutando mucho codigo que no deberia ejecutar... solo soporta procesos con graficos sin rotacion ni escalado.. si con alphas... pero bueno, es un adelanto y queria compartirlo con Uds.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 18, 2010, 04:48:17 PM
Lo ideal, es que despues pongas una variable que permita elegir el modo al principio del programa (aceleración por Software/Hardware).
Incluso puedes ir sacando versiones del mismo modo que lo haces hasta ahora, pero que ni que tenga la parte por Hardware en estado beta, cosa que no implica que puedas seguir sacando Bennu sin que tenga la parte por hardware completa al 100%, y podemos seguir usando la parte por software como hasta ahora...
Title: Re: Avances, Diario de...
Post by: DCelso on March 18, 2010, 05:13:33 PM
genial, pero ¿SDL no traía una forma de usar opengl internamente?+
http://www.libsdl.org/opengl/index.php
El primer ejemplo hacel algo como SDL_SetVideoMode(640, 480, 0, SDL_OPENGL)


//
// This code was created by Jeff Molofee '99
// (ported to SDL by Sam Lantinga '2000)
//
// If you've found this code useful, please let me know.
//
// Visit me at www.demonews.com/hosted/nehe
//
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif
#if defined(__APPLE__) && defined(__MACH__)
#include <OpenGL/gl.h> // Header File For The OpenGL32 Library
#include <OpenGL/glu.h> // Header File For The GLu32 Library
#else
#include <GL/gl.h> // Header File For The OpenGL32 Library
#include <GL/glu.h> // Header File For The GLu32 Library
#endif
#include "SDL.h"

/* A general OpenGL initialization function.  Sets all of the initial parameters. */
void InitGL(int Width, int Height)         // We call this right after our OpenGL window is created.
{
  glViewport(0, 0, Width, Height);
  glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // This Will Clear The Background Color To Black
  glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
  glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
  glEnable(GL_DEPTH_TEST); // Enables Depth Testing
  glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading

  glMatrixMode(GL_PROJECTION);
  glLoadIdentity(); // Reset The Projection Matrix

  gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f); // Calculate The Aspect Ratio Of The Window

  glMatrixMode(GL_MODELVIEW);
}

/* The main drawing function. */
void DrawGLScene()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
  glLoadIdentity(); // Reset The View

  glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0

  // draw a triangle
  glBegin(GL_POLYGON); // start drawing a polygon
  glVertex3f( 0.0f, 1.0f, 0.0f); // Top
  glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
  glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
  glEnd(); // we're done with the polygon

  glTranslatef(3.0f,0.0f,0.0f);         // Move Right 3 Units

  // draw a square (quadrilateral)
  glBegin(GL_QUADS); // start drawing a polygon (4 sided)
  glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
  glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
  glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
  glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
  glEnd(); // done with the polygon

  // swap buffers to display, since we're double buffered.
  SDL_GL_SwapBuffers();
}

int main(int argc, char **argv)

  int done;

  /* Initialize SDL for video output */
  if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
    fprintf(stderr, "Unable to initialize SDL: %s\n", SDL_GetError());
    exit(1);
  }

  /* Create a 640x480 OpenGL screen */
  if ( SDL_SetVideoMode(640, 480, 0, SDL_OPENGL) == NULL ) {
    fprintf(stderr, "Unable to create OpenGL screen: %s\n", SDL_GetError());
    SDL_Quit();
    exit(2);
  }

  /* Set the title bar in environments that support it */
  SDL_WM_SetCaption("Jeff Molofee's GL Code Tutorial ... NeHe '99", NULL);

  /* Loop, drawing and checking events */
  InitGL(640, 480);
  done = 0;
  while ( ! done ) {
    DrawGLScene();

    /* This could go in a separate function */
    { SDL_Event event;
      while ( SDL_PollEvent(&event) ) {
        if ( event.type == SDL_QUIT ) {
          done = 1;
        }
        if ( event.type == SDL_KEYDOWN ) {
          if ( event.key.keysym.sym == SDLK_ESCAPE ) {
            done = 1;
          }
        }
      }
    }
  }
  SDL_Quit();
  return 1;
}
Title: Re: Avances, Diario de...
Post by: DCelso on March 18, 2010, 05:14:26 PM
Un artículo que entra a fondo en SDL y aceleración hardware
http://linuxdevcenter.com/pub/a/linux/2003/08/07/sdl_anim.html

¿Es esto lo que estás haciendo? porque esto supongo que será más facil para empezar.

O por el contrario lo que estas haciendo es eliminar SDL de Bennu, lo que estaría genial y optimizaría el sistema increiblemente.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 18, 2010, 05:26:25 PM
Si, si, eliminaba el SDL y tu harias los ports multiplataforma :)
Title: Re: Avances, Diario de...
Post by: DCelso on March 18, 2010, 06:16:21 PM
Quote from: FreeYourMind on March 18, 2010, 05:26:25 PM
Si, si, eliminaba el SDL y tu harias los ports multiplataforma :)
¿?
Title: Re: Avances, Diario de...
Post by: Drumpi on March 18, 2010, 06:35:34 PM
Genial, si se le mete aceleración HW, Bennu, en vez de volar, viajaría por el espacio :D
Lo que me llama la atención es que los cambios se hagan en el core de bennu en lugar de en los módulos/librerías que tratan con gráficos y toda la pesca, y así luego poder escoger entre las librerías con SDL y las otras con OGL, sin variables ni nada, a traves de los imports ¿no era ese el objetivo?
Title: Re: Avances, Diario de...
Post by: josebita on March 18, 2010, 07:20:56 PM
Ha dicho que es una primera versión muy preliminar.
Pero si le estás metiendo cosas nuevas,  no deberíamos llamar a la rc11 cómo 1. 0 final?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 18, 2010, 10:12:27 PM
ufff... vamos por partes...

Quote from: FreeYourMind on March 18, 2010, 04:48:17 PM
Lo ideal, es que despues pongas una variable que permita elegir el modo al principio del programa (aceleración por Software/Hardware).
Incluso puedes ir sacando versiones del mismo modo que lo haces hasta ahora, pero que ni que tenga la parte por Hardware en estado beta, cosa que no implica que puedas seguir sacando Bennu sin que tenga la parte por hardware completa al 100%, y podemos seguir usando la parte por software como hasta ahora...

Sera mucho mejor que eso... podras elegir...

Quote from: DCelso on March 18, 2010, 05:13:33 PM
genial, pero ¿SDL no traía una forma de usar opengl internamente?+
http://www.libsdl.org/opengl/index.php
El primer ejemplo hacel algo como SDL_SetVideoMode(640, 480, 0, SDL_OPENGL)


quien dijo que no estaba usando eso? es mas arranque con opengl directo (cosa que no descarto) pero luego use SDL_gl... por otro lado, no es tan transparente como vos decis... solo estoy usando SDL para setear el modo de video y que no me cree una ventana nueva, para hacer el swap del video, y para activar cosas como el vsync... pero nada mas que eso, no uso surfaces SDL ni nada de eso... todo directo... asi que nada...

Quote from: Drumpi on March 18, 2010, 06:35:34 PM
Genial, si se le mete aceleración HW, Bennu, en vez de volar, viajaría por el espacio :D
Lo que me llama la atención es que los cambios se hagan en el core de bennu en lugar de en los módulos/librerías que tratan con gráficos y toda la pesca, y así luego poder escoger entre las librerías con SDL y las otras con OGL, sin variables ni nada, a traves de los imports ¿no era ese el objetivo?

"core" me refiero al core grafico (parte del core que reside en los modulos), creo que eso es mas que obvio, no necesita explicacion... sin embargo no toda la parte de lo que se dice "core" esta residente en el bgdrtm... mucha funcionalidad del core se encuenta en los modulos o librerias y se proveen a traves de callbacks o hooks.

Quote from: josebita on March 18, 2010, 07:20:56 PM
Ha dicho que es una primera versión muy preliminar.
Pero si le estás metiendo cosas nuevas,  no deberíamos llamar a la rc11 cómo 1. 0 final?

exacto, es preliminar, aunque mas que premiliar diria experimental, y es otra rama de modulos por ahora... esta lejos de ser version distribuible...

----

a todos... la noticia es que estoy empezando a trabajar en la acceleracion grafica de bennu y que ya es en parte un prototipo funcional, pero no final... yo no dije nada mas... no dije que voy a quitar el swrender... ni tampoco dije que no iba a ser posible elegir entre sw o hardware... tampoco dije que use o no use SDL... ni otra cosa... solo digo que estoy trabajando en prototipos con acceleracion y me da un 500% mas rapido que el actual render...
Title: Re: Avances, Diario de...
Post by: josebita on March 19, 2010, 12:23:22 AM
Eso es genial.  Intento decir que ya es hora de tener la 1.0 en base a lo que ya hay,  que es mas que estable.
Title: Re: Avances, Diario de...
Post by: DCelso on March 19, 2010, 12:34:45 AM
 :o anda que no molaría ver el test.
podrías ponernos un vídeo o algo que ver :D
No es bueno enseñar una piruleta a un niño y luego esconderla  ;).
Title: Re: Avances, Diario de...
Post by: Drumpi on March 19, 2010, 01:36:17 AM
Pues nada, esperaremos, será que no hay cosas por hacer mientras.
Como ya tenemos experiencia con el tema de esperar una release que maneje gráficos (¿alguien se acuerda de la WIP2? ;D) sabemos lo que nos toca, aunque claro, splinter, lo primero es lo primero, no descuides tu vida exterior ;)

Pues nada, voy a seguir con mis ratos libres, a ver si consigo el deslumbramiento que se me pidió hace un par de días, estoy trabajando en el editor de terrenos.
Title: Re: Avances, Diario de...
Post by: Prg on March 19, 2010, 03:05:01 AM
excelente noticia la de bennu con opengl :)  ;D  ;D nadie le ha dado karmas a splinter por esta noticia?
karma++
Title: Re: Avances, Diario de...
Post by: gecko on March 19, 2010, 03:48:07 AM
Muy muy buena noticia!

Siento ser un poquito parte de algo cada vez mas y mas importante como lo es Bennu!

jajaja

Gracias Splinter! :)
Title: Re: Avances, Diario de...
Post by: DCelso on March 19, 2010, 07:39:25 AM
Yo no le doy karmas que ya tiene muchos, y si no me va a costar más alcanzarlo :D.

Veeenga va, si nos pones algo que ver, almenos un screenshot con ese 300% de "performanze" te doy unos karmas  ;).
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 19, 2010, 09:44:08 AM
Quote from: DCelso on March 19, 2010, 07:39:25 AM
Yo no le doy karmas que ya tiene muchos, y si no me va a costar más alcanzarlo :D.

Veeenga va, si nos pones algo que ver, almenos un screenshot con ese 300% de "performanze" te doy unos karmas  ;).

vos tambien tenes muchos karmas y sin embargo te seguimos dando mas...

las 2 versiones de bennu corriendo juntas... corriendo solo la version opengl da unos 254fps... y la bennu normal 48fps...

la imagen no sale perfecta porque el capturador no espera vsync...

(http://img59.imageshack.us/img59/4245/pantallazoe.jpg)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 19, 2010, 09:48:23 AM
ahora me doy cuenta que el tema de los colores, no siempre van bien... veo que en algunos casos tengo que hacer algun swap de bytes y en otros no...

bueno, 1 es png y los fonts son fonts de bennu...

como sea, estos son solo pruebas, todo lo que estoy haciendo va a la basura... la cosa es probar el funcionamiento y adquirir toda el conocimiento opengl, para luego hacer el cambio correctamente...

no es 300% es 500%...
Title: Re: Avances, Diario de...
Post by: DCelso on March 19, 2010, 09:57:07 AM
Oh, pues siendo test mola mucho, encima ya usa fonts y múltiples procesos con imágenes.

ea, karmita pal nene que se lo ha currao :).

Title: Re: Avances, Diario de...
Post by: Windgate on March 19, 2010, 12:21:19 PM
Karma up, el incremento de rendimiento para el dibujado nunca me ha dado problemas significativos, ni con miles de procesos, pero siempre viene bien acelerar los cálculos para permitir liberar de carga a la CPU y poder hacer otras cosas. Con 32 bits he hecho alguna prueba exhaustiva con unos 1000 procesos con transparencia y ahí se nota más la pérdida de fps, quizás OpenGL sea la solución para poder hacer videojuegos en 32 bits con grandes cantidades de procesos activos... Sólo nos faltan unos buenos grafistas, pero bueno xD
Title: Re: Avances, Diario de...
Post by: Drumpi on March 19, 2010, 01:37:19 PM
Es cierto, olvidé darle karma al amigo para que tenga suficiente energía para seguir con ello (y no es al único).
De todas formas ¿esto tiene algo que ver con que WIZ soporte OpenGL ES 1.1? ;D Lo cierto es que le daría un empujón muy grande a la scene portatil, sobre todo para que no se me quejen de cierto proyecto por tener un frameskip cada segundo :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 19, 2010, 04:16:06 PM
todavia no probe nada en Opengl ES... pero basicamente es lo mismo... con alguna que otra diferencia... pero claro, la idea es que la version opengl tambien sea portable...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 19, 2010, 05:54:35 PM
Ahora que esta el SDK oficial con soporte OpenGL habrá que ver como funciona, y que dependencias tiene para controlar correctamente la aceleración hardware de la consola, ya que por ejemplo con el GLBasic el OpenGL todavia no funciona correctamente en la Wiz.
Title: Re: Avances, Diario de...
Post by: blostec on March 20, 2010, 12:54:40 PM
Fantástica noticia Splinter, gracias por tu esfuerzo. karma up!
Title: Re: Avances, Diario de...
Post by: kim-elet-o on March 20, 2010, 07:31:14 PM
CROOOOOOMMMM! que rendimiento, como diriamos por aqui, SplinterGU eres el puto amo, gracias por todo el curro que te esta pegando.
Title: Re: Avances, Diario de...
Post by: josebita on March 22, 2010, 09:17:36 AM
Quote from: SplinterGU on March 18, 2010, 03:29:47 PM
primeras pruebas con opengl...

una modificacion muy cutre del core bennu para usar opengl hecho en 15 minutos anoche... me dio en una prueba de un programa que hace rebotar 1000 pelotas en una resolucion de 640x480x32 con graficos de 32x32x32 unos 254fps, cuando la misma prueba en bennu por soft me da unos 48fps...

esta es una rapida version... con cero optimizacion, muy sucia y ejecutando mucho codigo que no deberia ejecutar... solo soporta procesos con graficos sin rotacion ni escalado.. si con alphas... pero bueno, es un adelanto y queria compartirlo con Uds.

¿Está en el SVN?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2010, 03:37:23 PM
no
Title: Re: Avances, Diario de...
Post by: josebita on March 22, 2010, 06:32:44 PM
Ok :)
Title: Re: Avances, Diario de...
Post by: Windgate on March 27, 2010, 03:19:54 AM
Mucho ánimo Splinter, cuenta con mi ayuda para lo que necesitas, yo me "apuesto" ya un donativo para cuando salga la versión que use OpenGL para dibujar, qué menos :D

La verdad no sabía que estabas hablando de ese tema en este hilo, lo sigo a partir de ahora :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 30, 2010, 08:33:33 AM
por fin logre renderizar texturas de 16 y 32 bits a la vez en opengl... lo unico que ahora los mapas de 16bits para opengl seran convertidos a RGBA=5551...

me voy a dormir... saludos.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 30, 2010, 08:46:29 AM
Que diferencia horaria tienes, siempre me lo he perguntado :) Los libros que he puesto han servido de algo ? alguien sabe donde sacar los 4 ? Tengo eso pendiente...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 30, 2010, 08:54:30 AM
Me autorespondo  ;D

Justo ahora aqui van ser las 11 de la mañana y en Argentina las 6 de la mañana  ;)

Currando hasta tarde, he Splinter! Me imagino que ya no tienes curro de día  ;D
Title: Re: Avances, Diario de...
Post by: panreyes on March 30, 2010, 08:55:01 AM
No ayuda mucho, pero un karma por el sueño invertido! Bueno, más bien por el logro :)
Title: Re: Avances, Diario de...
Post by: josebita on March 30, 2010, 11:14:22 AM
¡Muchas felicidades!
Title: Re: Avances, Diario de...
Post by: Drumpi on March 30, 2010, 11:36:08 AM
Yo también me sumo al karma, porque es un curro impresionante y va a repercutir muy positivamente en aquellas máquinas con aceleración HW.
Además, es posible que ayude a la integración de aquellas librerías que usen OGL en lugar de SDL.

De todas formas, muchas gracias por currártelo tanto, Splinter. Te mereces todo nuestro apoyo y mucho más :)
Title: Re: Avances, Diario de...
Post by: Prg on March 30, 2010, 02:50:15 PM
Quote from: SplinterGU on March 30, 2010, 08:33:33 AM
por fin logre renderizar texturas de 16 y 32 bits a la vez en opengl... lo unico que ahora los mapas de 16bits para opengl seran convertidos a RGBA=5551...

me voy a dormir... saludos.

genial, excelente noticia  :)
me uno al karma ++
buenas noches... más bien diría buenos días que ya deben ser como las 8  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 30, 2010, 03:35:05 PM
lamentablemente los libros no me sirvieron para resolver el problema... pero me serviran para otras cosas... al final consegui varios en rapidshare...

tengo curro de dia, pero curro en casa... duermo un poco de dia muy tarde y despues me cuesta dormir a la noche... y luego duermo a la noche un poco... no logro dormir mas de 3 horas... asi que tengo sueño invertido y corto...

por ahora los experimentos tienen render mixto... o sea, render por soft para dibujar texturas sobre texturas o para cosas como dibujar el fondo (ahora mismo no recuerdo bien porque hay un dibujado sobre una textura y luego sobre la pantalla... mmmm... anoche lo mire y ya me olvide... tengo que revisar...) y SDL esta detras de opengl para inicializar video, para manejar el input (joys, key, mouse, etc...) y el sonido, pero eso es un modo bien independiente...

no creo que vaya a eliminar completamente la SDL, porque SDL no es solo video...
Title: Re: Avances, Diario de...
Post by: josebita on March 30, 2010, 03:51:16 PM
Menudo transtorno del sueño que tienes.... :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 30, 2010, 04:14:39 PM
Bueno, teniendo en cuenta que ha tardado 7 horas a volver a postear, me imagino que ha dormido las 7 horas, o sea, eso es el máximo que puedo llegar a dormir todas las noches, tampoco es para tanto  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 30, 2010, 04:19:25 PM
si, bueno, la cosa es que realmente no me fui a dormir con el ultimo post... pero supongo que 5 horas dormi...
Title: Re: Avances, Diario de...
Post by: Drumpi on March 31, 2010, 01:17:35 AM
Tres Karmas al que consiga hacer un juego para que Splinter duerma sus horas ;D
Aunque si no lo consiguió el WiiFat...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 31, 2010, 06:09:52 PM
bien, sin usar SDL (usando directo opengl) para hacer el swap del video, en las pruebas donde antes obtenia 500fps ahora obtengo 1600fps...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 31, 2010, 06:27:44 PM
Mi modulo Open3D ha dejado de tener sentido, para continuar con el sólo tendria sentido usar una version beta de tu nuevo motor compilado para windows, para que yo creará las ventanas usando tus funciones, y ahora ya tendria sólo una ventana renderizada por open gl (la disponibilizada por Bennu), y el modulo serviria para crear funcionalidades, o sea, seguir con la creacion de funciones 3d, modelación, carga de mapas, etc, etc.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 31, 2010, 06:35:38 PM
te repito, lo que yo estoy trabajando es 2D, no es 3D...

tu modulo mas que nunca tiene sentido... no te preocupes por los detalles que luego se pueden ajustar...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 31, 2010, 06:45:36 PM
Que si, te entiendo y lo se, pero OpenGl es tanto 3D como 2D, el render de video es comun...
Se que tiene sentido, pero mi modulo, no tiene sentido en el punto en que, ha diferencia de otros modulos, tiene más caracter de trabajo oficial, que de no oficial, porque es mas un complemento al trabajo que tu o el equipo de bennu tendrá que hacer tarde o temprano, que es adaptar todas las funciones que OpenGL disponibiliza, al lenguaje Bennu.

Se que interesa por esto, pero infelizmente no me puedo dividir en dos chinos :), como ya comente antes, ese es un trabajo de chinos  ;D Ya veremos, lleva meses parado, me imagino las cosas chulas que ya podria tener si no lo hubiese abandonado, estoy por ponerlo en la sección 'StandBy' que curiosamente es la sección que más va creciendo de mi soft  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 04, 2010, 12:02:28 AM
nueva version del core en svn...

yo habia dicho que si uno usaba la opcion -a y tenia #include se incluian los fuentes en el dcb, bueno, me confundi, vi que corregi ese tema hace tiempo... por otro lado mejore el sistema de inclusion de archivos, ahora funciona mejor con los #import, no se incluye ninguno, antes usaba deteccion por extension, ahora directamente cuando se hace #import, la siguiente string que es el nombre del archivo no se tiene en cuenta en la inclusion de archivos.

tambien quite el uso de los arranges en la compilacion, solo se hacen en el momento de grabacion... (igualmente, el sistema de byteorder no esta completo aun)

y otros cambios mas...

Saludos.
Title: Re: Avances, Diario de...
Post by: josebita on May 04, 2010, 12:30:35 AM
¡Genial, Splinter!. Me alegra ver que te has puesto a trabajar en esto :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 04, 2010, 03:45:48 AM
por favor, decime ahora si sigue siendo necesario ese arrange que estas poniendo extra... igual todavia no esta completo el tema de los arranges... pero por lo menos ahora deberia funcionar compilando y leyendo en la misma plataforma... y posiblemente se solucione el tema del save/load... por favor, confirmame cuando puedas...
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on May 13, 2010, 01:57:57 AM
He subido una versión compilada del último SVN para Windows :
http://www.bombergames.net/BennuGD_win.zip

Incluye ultimas SDL y mixer  :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on May 13, 2010, 05:46:50 AM
Me tienes que dar classes como preparar el entorno de compilación...
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 18, 2010, 03:30:24 AM
Importante fix en bitmap_analize, que hacia que se analizara fuera de los limites del area de datos en algunos casos con mapas de 16 y 32bits.

Eternamente agradecido a Bomberlink, por la cantidad de pruebas (como 1 semana), para ayudarme a detectar el bug.

Gracias.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on May 18, 2010, 03:43:42 AM
No hay de que  ;)  los crashes empezaban a asustarme  :D

He subido los binarios de la versión Windows de forma temporal :
http://bombergames.net/BennuGD_win.zip
Title: Re: Avances, Diario de...
Post by: josebita on May 18, 2010, 02:16:30 PM
Versión modificada de camino a mi PPA :) Gracias a los dos.
Title: Re: Avances, Diario de...
Post by: kim-elet-o on May 19, 2010, 07:46:35 AM
Ya tengo el bennu actualizado en mi ubuntu, gracias a todos por vuestro trabajo.
Title: Re: Avances, Diario de...
Post by: blostec on June 06, 2010, 06:07:41 PM
Sin querer meter prisa ni nada por el estilo, Juan como va el desarrollo de Bennu, tienes previsto compilar alguna release próximamente? Saludos y gracias por todo tu magnífico trabajo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 06, 2010, 06:14:59 PM
pronto
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 06, 2010, 06:51:21 PM
por otro lado, la version windows la genero bomberlink de los ultimos fuentes, la version linux, cualquier linuxero la puede generar, estoy en falta con la gente de wiz.

estoy poniendo unas mejoras, cuando las tenga listas genero paquetes nuevos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 21, 2010, 03:42:26 AM
nueva version con m7 corregido y otras cosas mas (vean el log del svn please)

solo subi version windows, los de linux saben como compilar, pronto subire version wiz.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 21, 2010, 03:12:24 PM
subidas versiones windows, linux y wiz.

por favor, no he podido probarlas por falta de tiempo, a ver quien me hace el favor de probarlas.

aclaro porque ya veo que van a preguntar, son mas chicas porque no tienen simbolos de debug.
Title: Re: Avances, Diario de...
Post by: josebita on June 21, 2010, 04:29:38 PM
Ya están en mi PPA. Luego actualizo la página de decargas.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 21, 2010, 05:09:02 PM
Time to update r131  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 21, 2010, 05:19:26 PM
Quote from: josebita on June 21, 2010, 04:29:38 PM
Ya están en mi PPA. Luego actualizo la página de decargas.

gracias! karma para ti!
Title: Re: Avances, Diario de...
Post by: blostec on June 21, 2010, 09:13:07 PM
Bajando la nueva versión, muchas gracias Juan! karma++
Title: Re: Avances, Diario de...
Post by: Drumpi on June 21, 2010, 11:43:08 PM
Juas, vaya, no me lo esperaba ;D
Espero que esto no haya supuesto un retraso en tu trabajo, Splinter (y sobre todo, no ser el culpable de ello ^^U).
Karma hoy... y karma mañana (o bueno, dentro de una hora, que es cuando me deja... si me acuerdo ^^U).
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 22, 2010, 02:08:13 AM
tu culpa, si, al menos pruebalo, por favor.
Title: Re: Avances, Diario de...
Post by: Drumpi on June 22, 2010, 04:06:17 PM
^^U

Yujuuuu, ya tenemos modo7 como dios manda :)
http://www.youtube.com/watch?v=1nBg2pk_XFY
Hasta dentro de una hora no te puedo colmar de karmas :P
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 22, 2010, 05:08:42 PM
Todavia siguen aqui en la bolsa los 49 que te faltan por el port definitivo a las Gp2x  ;D
Title: Re: Avances, Diario de...
Post by: Drumpi on June 23, 2010, 01:43:10 AM
Pues le auguro un futuro muy próspero, lejano, pero próspero ;D (mínimo, hasta que termine la carrera).
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 24, 2010, 04:45:46 AM
encontre y corregi el bug en el fade que hacia que si se hace un fade_off + un fade_on  sin un frame entremedio el fading se quedara pegado en 1 (y todos los casos donde fading se quedaba pegado)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 24, 2010, 05:14:05 AM
Pufff, no estaras petando la compatibilidad con juegos antiguos a lo bestia ?!
Title: Re: Avances, Diario de...
Post by: Drumpi on June 24, 2010, 11:48:42 AM
Por lo que he leido, lo que ha hecho ha sido arreglar eso, no ha cambiado nada, antes fallaba sin un frame en medio, ahora funciona con o sin frame intermedio :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 24, 2010, 11:53:23 AM
Ya, pero a los que se me olvido ponerle el while (fading) frame; cuando hice la conversión de Fenix a Bennu por ejemplo, ahora si le ponemos la nueva version de Bennu van a tener fading en esos puntos, y aunque sea correcto no voy a tener el mismo resultado  ;D ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 24, 2010, 03:29:36 PM
free, por favor, lee lo que puse, no se cambio nada, solo se corrigio un bug que hacia que los juegos dejen de ir... por favor, lee.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 24, 2010, 05:47:41 PM
Ya se a lo que te refieres, he tenido ese  problema, eso tiene el origen en lo mismo, ocurria si no me he olvidado, al cambiar de proceso, teniendo fade_off al final del primero y fade_on al principio del segundo. El juego se paraba por ejemplo al ponerle el fading/frame para que se visualizará el fade, o sea, si no me equivoco la solución era poner todo al principio del segundo proceso y no repartido entre los 2.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 24, 2010, 06:49:30 PM
la solucion es que haya un frame entre medio, pero no es correcto que tengas que hacer eso.

este cambio no afectara en nada a tus juegos si ya estan funcionando.

ahora, tambien debo decir que el comportamiento del fade_on y fade_off no es el mismo que en DIV, en DIV todo se paraba hasta que el fade este completo, en Bennu no, y esto es porque no todos los modulos lo permiten parar su ejecucion, pero quizas deberia plantear darle soporte a esto, aunque sea seteando alguna variable global para definir este comportamiento like DIV.

pero bueno, tampoco tiene que ser exactamente igual a DIV, esto no es un clon de DIV, sino que va mucho mas alla.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 24, 2010, 06:56:29 PM
En este caso me refiero a Fenix (aunque el comportamiento en Fenix creo que era identico a DIV).
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 25, 2010, 12:24:21 AM
si, en un principio si, pero no iba del todo bien, o sea, habia cosas que seguian su marcha, a pesar de que todo deberia estar congelado esperando el fade.
Title: Re: Avances, Diario de...
Post by: Drumpi on June 30, 2010, 05:33:55 PM
Tengo que mirarlo, pero la versión Linux (PPA) me lanza un segmentation fault con el modo7. Si alguien puede probarlo, a ver si es algún cambio que hice en el código, que windows se lo traga y linux no...
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 30, 2010, 05:35:56 PM
debe ser que no tiene la ultima version compilada... a mi me pasa en la wiz, recordas?
Title: Re: Avances, Diario de...
Post by: Drumpi on June 30, 2010, 05:51:54 PM
Quote from: josebita on June 21, 2010, 04:29:38 PM
Ya están en mi PPA. Luego actualizo la página de decargas.

Creo que sí se actualizó.
Por cierto, creo que me toca a mi hacer lo mismo con GP2X, con ambas versiones ^^U Así lo puedo probar en mi negrita, aunque tendré que hacer ciertas modificaciones al código para que me funcione :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 30, 2010, 06:02:05 PM
por que tendras que hacer modificaciones?
Title: Re: Avances, Diario de...
Post by: josebita on July 01, 2010, 11:13:14 PM
Actualizo a la última versión SVN casi siempre que tengo oportunidad (y hay cambios). Lo mismo con la versión para Mac, aunque éste lo toco menos.

Las versiones de SVN casi siempre son tremendamente estables y lo único que hacen es corregir bugs de las versiones anteriores.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 01, 2010, 11:41:58 PM
Pues no se, el modo7 "casca" como una r146 o anteriores. Con windows me va bien. A ver qué dice el port de GP2X.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2010, 12:23:25 AM
con wiz y con mi version linux tambien va bien, posiblemente sea un tema de compilacion, proba la version que genere aca.
Title: Re: Avances, Diario de...
Post by: josebita on July 02, 2010, 12:35:52 AM
Intentaré recompilar todo de cero, a ver si es eso.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 02, 2010, 02:41:24 PM
Splinter, sabes que no soy muy amigo de los instaladores ^^U
De todas formas, he probado la versión que compilé ayer para gp2x oficial y también se cae. Sale el primer say que indica la posición inicial del coche, pero se me celga sin decir nada (aun tengo que mirar la salida por el puerto serie).
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2010, 03:42:46 PM
drumpi, de que instaladores me hablas?

todo lo que se "instala" en el script de linux se deinstala absolutamente con el mismo script.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 02, 2010, 04:13:08 PM
Nah, lo digo por el .sh de la zona de descargas.
Además, en Linux tengo instalado Bennu mediante el PPA de josebita.

Seguiré mirando pero cuando tengas un ratillo, mira a ver si es que se ha subido mal al svn el código.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2010, 04:48:09 PM
el script este deja menos cosas que el .deb que instales por dpkg, apt, aptitude, etc, ya que estos, por mas que desinstales el paquete, te queda en disco a menos que hagas un purge, el script bennu, haces un uninstall y no queda ni rastros.

que lo tengas por el PPA no tiene importancia, podes bloquearlo o retirar el repositorio...

el repositorio esta perfecto, lo acabo de verificar.

pero si no queres ni siquiera probar, segui rompiendote los sesos buscando donde esta el problema.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 02, 2010, 07:01:20 PM
Okis, lo probaré.
De todas formas, prefiero romperme la cabeza de vez en cuando porque siempre detecto algún nuevo fallo. En este caso, estaba haciendo "cosas raras" con punteros (inicializando un puntero desde una función y pasando los datos de un lado a otro) y temía haber hecho algo mal, no sería la primera vez que windows "se lo traga" sin problemas, y en otros SO pega un pantallazo.

Según mi gp2x, hay un fallo en mi código haciendo esto:
[code language="bennu"]say("COCHES COLOCADOS, CP_Detector creado");
   
    //preparamos el cronómetro
    l3_reloj_id=reloj(160-78,0,-20,l3_graficos[3]);
    reloj_data.run=false;
   
    fade(100,100,100,3);
    while (fading) frame; end

say("hola");[/code]
Lo cual es muy raro, pues me consta que dicho proceso reloj va perfecto en el resto del juego, y hasta el fade. Sigo haciendo pruebas y te comento.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 03, 2010, 11:04:07 AM
Vale, he probado la versión instalable de la página principal, y con esa funciona perfectamente, sin problemas.
Voy a volver a probar con la PPA a ver si funciona. Estooo... ¿cómo se desinstalaba la versión instalable? ^^U
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 03, 2010, 11:36:08 AM
si corres el script con el parametro --help te tira una ayuda
Title: Re: Avances, Diario de...
Post by: Drumpi on July 03, 2010, 11:58:44 AM
Si, ya me he dado cuenta.
Ahora el problema es que no me deja instalar la versión del PPA de nuevo. Como me dijiste lo de purgar, lo "desinstalé completamente" y eso me parece que ha debido tocar algo porque ahora me salta con el mensaje "Depende: libssl0.9.8 (>=0.9.8k-1) pero se va a instalar 0.9.8g-10.1ubuntu2.6" y no me deja instalar. He podido hacerlo desde la PPA en versión Intrepid, pero la Karmic no me lo permite :'( (supongo que por lo de la g y la k en la versión).
No se si esto tiene solución, pero los PCs me están tocando demasiado las narices como para liarme a destrozar cosas. Usaré la versión instalable en lugar de la PPA, hasta que sepa cómo arreglarlo.
Title: Re: Avances, Diario de...
Post by: josebita on July 03, 2010, 02:22:17 PM
Drumpi, si me das acceso por SSH a tu ordenador, quizás pueda arreglarte el tema de las dependencias.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 03, 2010, 02:41:14 PM
Mientras no termine el proyecto, prefiero no trastear demasiado con "cosas complicadas" que me puedan dejar el ordenador (o peor aun, el entorno de programación) inservible durante un tiempo.
De todas maneras, si me ves conectado (o (auto)ausente) por el pidgin, podemos hablar de ello.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 11, 2010, 06:48:29 PM
revivio mi version de bennu opengl... pense que mi maquina no tenia opengl... pero entre las pruebas que hice deje codigo malo... ya lo corregi...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2010, 06:41:29 AM
confirmo que la version binaria de bennu en linux funciona en opensuse, fedora, debian y ubuntu (todas 32 bits probadas), si alguien puede probar en otras versiones de linux y compartir los resultados se ganara su bonito karma.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 23, 2010, 06:58:18 AM
Linux Mint cuenta para mi cajita de karmas ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2010, 07:20:08 AM
cuenta, pagado!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 23, 2010, 08:09:09 AM
Pues paga otro, porque en Knoppix tambien funciona  :o
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2010, 12:23:23 PM
pagado!
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 02, 2010, 03:41:11 AM
corregido timing de fps en wiz, ahora se puede setear 60fps y no va a 50.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 04, 2010, 09:55:10 AM
Me alegro por Bomber (por cierto Bomber mi bici va de maravilla, da gustaco ver una peli mientras se pedala :)).
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 05, 2010, 03:26:36 AM
bien gente, ya tengo port a caanoo, con algunos mejoras añadidas...

funciones

soporte de accelerometros

joy_get_accel(&x,&y,&z)
joy_get_accel(joy,&x,&y,&z)

si se define la variable de enviroment OS_ID, bennu toma esta como el OS_ID que esta corriendo, lo que permite poner los juegos ya creados en Wiz, que corran en Caanoo.

es importante hacer el export de la variable para que lo tome.

se remapearon y mixearon los joysticks de la caanoo (3) para hacer la emulacion del joys de wiz, y se disponen de 2 joys, 1 idem a wiz (sin botones de volumen porque no existen en caanoo) + analogicos, y otro joys, con los botones especificos y analogicos de caanoo.

tambien mejore la jkeys.lib para soporte adecuado de Caanoo.
Title: Re: Avances, Diario de...
Post by: josebita on August 05, 2010, 01:50:55 PM
Genial! Me viene muy bien lo de la aceleración para la Wii.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 05, 2010, 05:07:41 PM
;)

es la idea, ya darle soporte donde sea posible...
Title: Re: Avances, Diario de...
Post by: josebita on August 05, 2010, 06:37:14 PM
Splinter, diría que se te han olvidado un par de líneas en modules/libjoy/libjoy.h:
[code language="c"]
extern int libjoy_get_accel( int * x, int * y, int * z );
extern int libjoy_get_accel_specific( int joy, int * x, int * y, int * z );
[/code]

PD: Y en el modules/mod_joy/mod_joy.c creo que hay otro pequeño error:
[code language="c"]
static int modjoy_get_accel( INSTANCE * my, int * params )
{
    return ( libjoy_get_accel_specific( ( int * ) params[0], ( int * ) params[1], ( int * ) params[2] ) );
}
[/code]
me imagino que debería ser:
[code language="c"]
static int modjoy_get_accel( INSTANCE * my, int * params )
{
    return ( libjoy_get_accel( ( int * ) params[0], ( int * ) params[1], ( int * ) params[2] ) );
}
[/code]
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 05, 2010, 07:39:31 PM
si, es correcto, muchas gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 06, 2010, 11:02:12 AM
nueva version disponible para descarga, se agrega version oficial Caanoo, se agregan funciones de acelerometros, ejemplos de uso de acelerometros, update de los ejemplos pacman y galaxians para usar la jkeys.lib con soporte Caanoo.
se agrega que si existe definida la variable de enviroment OS_ID, bennu informa dicho valor como OS_ID.
se agrega OS_WII con el valor 1000 (como se habia dicho)
se corrigen retornos de funciones joy como ser joy_get_button para que si el boton no existe retorne 0 en vez de -1, es mas facil de esta forma manejar los retornos.
se mejora finalmente el timing en wiz y caanoo, ahora si se pide 60fps da 60fps y no 50 como sucedia al usar SDL para los delay de ajuste de fps.
otras mejoras y fixes que ahora no recuerdo.

http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-caanoo.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-installer.sh
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-openwiz.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-win32.exe
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-win32.rar
Title: Re: Avances, Diario de...
Post by: josebita on August 06, 2010, 01:18:06 PM
Mira a ver si te gusta el artículo (http://www.bennugd.org/node/96) que he puesto; le tengo que añadir más enlaces y quizás cambiar la foto por alguna mejor.

Lo digo antes de tirarlo a la basura, que tampoco estoy muy convencido de cómo me ha quedado y a los de GPH hay que tenerles contentos :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 06, 2010, 03:13:58 PM
me gusta, claro esta...

bien, estoy viendo el tema de la version android.

android es todo java, y me parece que eso es motivo tambien de la horrible velocidad que da.

como es java, para hacer que bennu corra sobre este bicho tengo que hacer que bennu sea un jni, y no se si necesitare hacer una version monolitica, espero que no, como sea, voy a tener que pensar y diseñar seriamente como encararlo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 06, 2010, 03:20:06 PM
creo que ya lo tengo... tendre que hacer un bgdi java, que se limite a cargar la bgdrtm o un wrapper jni que cargara realmente la bgdrtm (las funciones del core) y con eso ya se solucionara el tema.

bueno, de apoco... ahora tengo sueño... :P
Title: Re: Avances, Diario de...
Post by: Prg on August 06, 2010, 09:30:22 PM
Quote from: SplinterGU on August 06, 2010, 11:02:12 AM
nueva version disponible para descarga, se agrega version oficial Caanoo, se agregan funciones de acelerometros, ejemplos de uso de acelerometros, update de los ejemplos pacman y galaxians para usar la jkeys.lib con soporte Caanoo.
se agrega que si existe definida la variable de enviroment OS_ID, bennu informa dicho valor como OS_ID.
se agrega OS_WII con el valor 1000 (como se habia dicho)
se corrigen retornos de funciones joy como ser joy_get_button para que si el boton no existe retorne 0 en vez de -1, es mas facil de esta forma manejar los retornos.
se mejora finalmente el timing en wiz y caanoo, ahora si se pide 60fps da 60fps y no 50 como sucedia al usar SDL para los delay de ajuste de fps.
otras mejoras y fixes que ahora no recuerdo.

http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-caanoo.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-installer.sh
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-openwiz.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-win32.exe
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC13(r156)-win32.rar

grandes noticias. lo del joystick ya hacía falta
karma++
y las noticias del bgdi java suenan muy bien, a ver si de ahí podemos probar bennu en otros lugares. ya tendremos la oportunidad de experimentar... saludos :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 06, 2010, 10:49:37 PM
pero en java seria solo el lanzador, luego el motor seguiria siendo una .so, como lo es ahora (bgdrtm)
Title: Re: Avances, Diario de...
Post by: josebita on August 06, 2010, 11:02:50 PM
Quote from: SplinterGU on August 06, 2010, 03:20:06 PM
creo que ya lo tengo... tendre que hacer un bgdi java, que se limite a cargar la bgdrtm o un wrapper jni que cargara realmente la bgdrtm (las funciones del core) y con eso ya se solucionara el tema.

bueno, de apoco... ahora tengo sueño... :P
Sí, cuando lo estuve mirando yo también pensé que esa sería la mejor opción, aunque no creo que haga falta binario monolítico; tienes libdl.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 06, 2010, 11:23:07 PM
si, no hace falta monolitico... mejor...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 11, 2010, 10:35:59 AM
bueno, para que te free se deje de quejar por todos lados, ya implemente en bennu, rotacion de pantalla, y correccion de aspectratio, ambos seteados por variables globales nuevas, esto solo funciona con scale_resolution, pero nada impide que tengas un scale_resolution a la misma resolucion que el set_mode.

esto es

scale_resolution_orientation = 0 (normal) 1 (rotado)
scale_resolution_apectratio = 0 ( amplia todo) 1 (mantiene el aspect ratio original, centando la imagen en el medio de la pantalla)


tambien corregi un tema con el ultimo cambio de __VERSION__ y COMPILER_VERSION.
Title: Re: Avances, Diario de...
Post by: josebita on August 11, 2010, 10:48:35 AM
Genial, ésto es útil.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 11, 2010, 10:56:44 AM
eso espero, me llevo como 3 horas, y no dormi... ahora me voy a ir a dormir, estoy subiendo los binarios...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 11, 2010, 11:07:15 AM
nueva version bennugd, con fix en __VERSION__ y COMPILER_VERSION, que con el ultimo cambio habian dejado de ser defines y eran constantes, ya son nuevamente defines y de tipo string.

y se agregan funciones de rotacion de pantalla y correccion de aspect ratio con el uso de scale_resolution, las nuevas variables son:

scale_resolution_orientation = 0 o 1, siendo 1 rotacion
scale_resolution_aspectratio = 0 o 1, 0 normal, 1 correccion de aspect ratio

aca van los paquetes de todas las versiones oficiales:

http://betatester.bennugd.org/snapshot/bgd-1.0.0RC14(r157)-caanoo.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC14(r157)-installer.sh
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC14(r157)-openwiz.tar.gz
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC14(r157)-win32.exe
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC14(r157)-win32.rar
Title: Re: Avances, Diario de...
Post by: panreyes on August 12, 2010, 09:57:54 AM
Holas, locurón de bug:
Si en el GPE, en vez de poner esto
LD_LIBRARY_PATH=../bgd-runtime:$LD_LIBRARY_PATH
pones esto
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime

Funciona todo menos el joystick. Y sólo en las dos últimas versiones, en la versión previa que me mandaste por mail no ocurría.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 10:28:45 AM
ay, ay, si leyeras...

la nueva sdl trabaja diferente, por eso hay que poner como esta en la primer linea que pusiste, ya que la otra apunta a la SDL vieja que aun esta en el firmware (pero que desaparecera) y tiene un manejo diferente de los joys.
Title: Re: Avances, Diario de...
Post by: Drumpi on August 12, 2010, 12:11:00 PM
Mmmmm, interesante: el orden de las direcciones altera al producto compilado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 01:57:36 PM
es que son los paths que marcan el camino de busqueda de las dll de linux, o sea, las .so
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 12, 2010, 02:21:03 PM
Muchas grácias Splinter :)
Eres mi idolo :)
Justo venia a Internet buscar el ejemplo de la lupa para apañarmelas por código y me llevo esta grata sorpresa.
Karma Thanks.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 02:23:41 PM
de nada, te tardaste en aparecer...

por favor, decime luego si quedo bien.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 12, 2010, 02:25:58 PM
En un rato salgo de internet y me temo que sólo vuelva la proxima semana para comentarlo.
Voy hacer pruebas luego, no se si con estos cambios podré tambien ajustar el tamaño del original (su resolucion) dentro de la resolucion soportada por la Wiz (como lo hace mame).
Grácias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 02:29:33 PM
podras, pero no seas desgraciado, el otro dia me pase despierto toda la noche para tenerte esto listo, al menos probalo y decime que tal te va, y si despues no queres aparecer por 1 mes, no aparezcas, pero no me dejes esperando hasta la semana que viene.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 12, 2010, 03:19:09 PM
Es que no puedo aparecer antes Splinter, no tengo internet en casa y no puedo hacer 8 kilometros todos los dias y perder unas horas en internet en la tienda.
Te he pedido esto porque por casualidad vine a internet estos dias (pero es algo que ya pedi hace tiempo y no contaba que lo hicieras ahora).
En realidad no estoy de vacaciones, tengo curro en el bar de mis padres que ahora son las fiestas de mi pueblo y hay mucha gente.
Tampoco tengo tiempo para programar, hoy lo miraré por la noche pero no se cuando volvere a tocar código ni a internet. A finales de la semana que viene volveré a Madrid, y ya tendré tiempo de sobra para testear Bennu y pedirte mas cosicas  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 03:23:38 PM
ok, entonces no hay problema.
Title: Re: Avances, Diario de...
Post by: La momia que fuma on August 12, 2010, 05:01:31 PM
La rotación funciona de lujo, pero no consigo que me funcione la correccion de aspecto, igual es que entiendo algo mal...

Como yo lo entiendo, con scale_resolution_aspectratio=1; al poner pantalla completa en un monitor panorámico usando una resolución "clásica" no panorámica, la imagen se debería de corregir automaticamente para que no aparezca "estirada" pero no lo consigo...

En el eek esto lo resolví "a mano" y se puede jugar a pantalla completa en un monitor panorámico sin que se estire la imagen, pero lo hice con scale_resolution "a ojo" xD, y aunque da el pego la imagen se deforma un poquillo.

Aprovecho para compartir con vosotros un truquillo que use para autodetectar el tipo de monitor y ahorrar al usuario que tenga que marcar una opción de corrección de aspecto si/no:

get_desktop_size(&dsx, &dsy);
aspect=dsx/dsy;

aspect debe ser tipo float

Si aspect vale 1.3 es que se esta usando un monitor normal, de lo contrario es que es panorámico (Luego ya en panorámicos creo que hay de dos tipos, 16:9 y 16:10, pero de ese tema ya no se mucho...en todo caso aspect equivaldría a la división de esos nºs: 4/3=1.3, 16/9=1.7 y 16/10=1.6)
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 07:24:27 PM
podrias poner las lineas que estas usando y decis no funciona?

el aspectratio es con respecto al modo original (al set_mode)
Title: Re: Avances, Diario de...
Post by: La momia que fuma on August 12, 2010, 08:51:48 PM
begin


//scale_resolution_orientation = 1;
full_screen=1;
scale_resolution_aspectratio=1;
scale_resolution=08000600;

set_mode(800,600,32,MODE_WAITVSYNC);


Me sale la pantalla igualmente "estirada", no me corrige el aspecto ni parece hacer nada apreciable.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 12, 2010, 09:12:58 PM
pero eso no es bennu... eso es tu monitor, si pones un 800x600 sin scale_resolution, te saldra estirado igual, porque tu monitor es wide.

lo que tenes que poner es un set_mode 800x600 y un scale_resolution de definicion 16:9, por ejemplo un 1366x768.
Title: Re: Avances, Diario de...
Post by: La momia que fuma on August 12, 2010, 11:36:50 PM
Quote from: SplinterGU on August 12, 2010, 09:12:58 PM
pero eso no es bennu... eso es tu monitor, si pones un 800x600 sin scale_resolution, te saldra estirado igual, porque tu monitor es wide.

lo que tenes que poner es un set_mode 800x600 y un scale_resolution de definicion 16:9, por ejemplo un 1366x768.

Uhhh....vale, pero....eso ya es lo que estaba haciendo y de hecho exactamente lo que hice en el Eeek (Versión PC) sin necesidad de esa global nueva...(Solo con scale resolution puedes contrarestar el estiramiento y corregir el aspecto) no entiendo para que sirve entonces, pense que reescalaría la resolución automaticamente a su equivalente panorámico, para no tener que hacer calculos.......

Que no entiendo para que sirve scale_resolution_aspectratio o en que influye exactamente, vaya  ???
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 12:08:05 AM
luego pongo unas capturas
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 03:40:03 AM
capturas...

normal

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

scale_resolution=ancho_original/2 + alto_original

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

scale_resolution=ancho_original/2 + alto_original
scale_resolution_aspectratio=1

(http://forum.bennugd.org/index.php?action=dlattach;topic=102.0;attach=1445)
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 03:43:29 AM
con rotacion...

scale_resolution=ancho_original/2 + alto_original
scale_resolution_orientation=1

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

scale_resolution=ancho_original/2 + alto_original
scale_resolution_orientation=1
scale_resolution_aspectratio=1

(http://forum.bennugd.org/index.php?action=dlattach;topic=102.0;attach=1449)
Title: Re: Avances, Diario de...
Post by: Drumpi on August 13, 2010, 06:17:55 AM
Oye, Splinter, sé que la respuesta a la pregunta será obvia, pero ¿por qué la rotación sólo se puede hacer a +90º? ¿Por qué no a 180º, o a 270º que sería lo ideal en WIZ?

Ahora es cuando te me tiras al cuello ^^U
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 07:26:50 AM
no esta bien la rotacion? ahora lo pruebo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 08:00:24 AM
fallo mio, lo correcto seria poner 4 modos de orientacion...

0, 90, 180 y 270

voy a tener que hacerlo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 09:56:00 AM
listo, agregados 3 modos mas de rotacion

scale_resolution_orientation = <0,1,2,3>

0 normal
1 rota 90 grados
2 rota 180 grados
3 rota 270 grados

ahora creo que es mas flexible.

bueno, luego hago los binarios, ya me quiero ir a dormir.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 13, 2010, 11:04:51 AM
Buenas. Acabas de hacer justo lo que venia a pedirte, o sea, que se pudiera rotar tambien hacia la derecha :)

Funciona de lujo, no noto diferencia en rendimiento ni en la Wiz (tambien es cierto que esto lo he mirado a ojo y no mirando el fps).

Lo que te pediria era aparte de la rotación, un modo espejado (cabinet, imagen invertida), o sea, que usando un espejo despues la imagen se vea de forma normal (como lo hacen algunas recreativas).

Lo que si he notado es que para corregir la inclinacion en la Wiz, en el scale resolution tuve que cambar los valores del width por los del height y viceversa.

Lo que intento hacer es que pueda poner margenes fuera de pantalla como lo hace mame, o sea, por ejemplo con la pantalla inclinada en la wiz, la resolucion original es de 254, pero como sólo tengo 240, la imagen se encoje en la horizontal (wiz inclinada) y lo que me gustaria es que esos 16 pixels que sobran sobrepasaran 8 pixels en cada lado para fuera de pantalla, de forma a tener los gráficos en su tamaño original aunque las margenes se oculten.

Hay alguna forma de hacerlo ?
Luego por la tarde intentaré pasarme por aqui, y ya os pongo la forma como estoy poniendo la imagen en la wiz.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 02:30:44 PM
lo del espejado olvidate por ahora, y lo mismo lo que salga de los margenes, si lo tenes bien configurado, uno de los lados deberia ir al 100% (alto o ancho).

eso es todo lo que puedo hacer por ahora.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 13, 2010, 02:40:57 PM
Os pongo mis pruebas para Wiz, a ver si me ayudais a poner la configuracion correcta para tener la pantalla inclinada pero que los 16 pixels sobrantes salgan de pantalla sin que la imagen del juego salga de sus dimensiones originales:

1 - Horizontal con juego centrado
scale_resolution = 03200240;
scale_resolution_aspectratio = 1;
set_mode(224, 256, 16);
    
2 - Horizontal fullscreen (strech)
scale_resolution = 03200240;
set_mode(224, 256, 16);
    
3 - Rotacion Izquierda (Imagem reduzida en la horizontal porque pasa de 256 a 240)
scale_resolution = 02400320;
scale_resolution_aspectratio = 1;
scale_resolution_orientation = 1;
set_mode(224, 256, 16);
    
4 - Rotacion Izquierda con fullscreen (strech)
scale_resolution = 02400320;
scale_resolution_aspectratio = 0;
scale_resolution_orientation = 1;
set_mode(224, 256, 16);


La opcion que tengo es la 3, pero como ya comente antes, me gustaria que la horizontal no se ajustase a la pantalla,
y que los 16 pixels sobrantes salieran ocultos por las laterales en lugar de ajustar los 256 pixels en 240.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 03:05:29 PM
y de cuanto es el tamaño real de la imagen? o sea, sin contar marcos negros, lo que es imagen.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 13, 2010, 05:39:37 PM
La imagen es del mismo tamaño que la resolución original, 224 * 256
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 13, 2010, 05:44:35 PM
Ups, perdon ahora me entero, son los 224 que se estan estirando a los 240, o sea, no hay region que quede fuera o tenga que quedar (16 pixels que comentaba), pero es al reves, o sea, el objectivo no es otro que la imagen tambien tenga tiras horizontales, o sea, he mirado como ocurre en Mame con el juego original, y este tiene tiras negras verticales y tambien horizontales en la pantalla de la wiz para respetar la resolucion original, cuando la imagen esta girada 90 grados en las opciones del menu antes de empezar la emulación.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 06:26:36 PM
la resolucion original no la tenes, porque significaria que pierdas imagen, la relacion del aspecto la tenes.

si vos queres bandas negras, vas a tener que hacer el set_mode correcto, con las bandas negra ya calculadas.

pero a mi me parece que no tenes que hacer eso, pero hacelo como vos quieras, yo no puedo hacer desde bennu lo que vos pretendes, eso ya es parte de que lo que vos como programador tenes que hacer desde tu codigo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 06:59:55 PM
nueva version, ahora se agrega soporte de 4 modos de scale_resolution_orientation, y la posibilidad de setear todas las variables del scale_resolution desde variables de enviroment, lo que nos permite poder correr un juego de una resolusion determinada en arquitecturas o resoluciones diferentes sin necesidad de recompilar.

version liberada

http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-caanoo.tar.gz (http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-caanoo.tar.gz)
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-installer.sh (http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-installer.sh)
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-openwiz.tar.gz (http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-openwiz.tar.gz)
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-win32.exe (http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-win32.exe)
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-win32.rar (http://betatester.bennugd.org/snapshot/bgd-1.0.0RC15(r159)-win32.rar)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 13, 2010, 08:10:03 PM
No te he entendido, si bennu pone las tiras de arriba y abajo al adaptarlo, tambien deberia hacer las tiras verticales (lados), porque esta ajustando la altura de la resolucion original dentro de una resolucion mayor, o sea, de lado deberia hacer lo mismo.
En este momento en la wiz pone tiras negras arriba y abajo, pero me estira la imagen en los lados a la resolucion de la consola, cuando deberia hacer un ajuste similar al aplicado arriba y abajo. Por favor compruebalo con una imagen de la resolucion original 224x256, girandola en la wiz, y verás que tengo razón.
Grácias, te doy otro karma por todo tu trabajo, que lamentablemente ahora mismo no puedo venir a internet muy a menudo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 09:40:52 PM
pues no, no deberia ser como dices.
no, si pone arriba y abajo, como va a poner de costado? no tiene logica.

tiene que mantener la relacion visual.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 13, 2010, 09:48:41 PM
no, lo probe y funciona perfecto, lo que vos estas pidiendo no es un escalado, sino un centrado.

o sea, el efecto solo funciona con escalado.

el aspecto se mentienen perfecto, lo que esta haciendo es ampliarlo.

si la imagen es 4:3 seguira siendo 4:3, pero ajustado al tamaño de la pantalla.

eso hacelo por soft, o sea, mentene en tu codigo constantes de ancho y alto de la pantalla y trabaja ubicando los objetos en relacion a eso, que imagino ya lo estas haciendo.

yo ya te hice la parte mas complicada.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 14, 2010, 02:40:53 AM
la version caanoo no soporta ogg, ya que la sdl_mixer no viene compilada con soporte ogg.

sin embargo, despues luchar un poco con los fuentes de la sdl_mixer, mikmod y copiando librerias ogg que tenia en mi SDK, logre que funcione, y ahi descubri algo.

el soporte de musica que tiene la SDL_Mixer es patetico, el echo de drumpi, que en caanoo anda de maravillas se debia a que no tenia sonidos reproduciendo, al ponerle el soporte ogg comenzo a petardear si le daba a la pantalla tactil (aun sin tener mouse en el juego) y lo mismo con el puzsion, en menor medida pero al fin.

tambien probe reducir los ogg hasta 64kbps (que se escucha fantastico), pero sin mejoras de rendimiento.

ahora probe cambiando los .ogg por .mp3, y mi sorpresa fue que la cosa mejoro mucho, sin embargo si dejo el dedo puesto en la pantalla al rato petardea, pero al soltarlo se recupera rapido, yo creo que la mixer y la sdl estan consumiento mucho tiempo en manejar los eventos de sonido.

lo maravilloso es saber que el MP3 funciona perfecto, tanto en caanoo como en pc linux, no probe en otros.

saludos.
Title: Re: Avances, Diario de...
Post by: osk on August 14, 2010, 09:29:59 AM
Hola. ¿Habría la posibilidad,por reota que fuera, de prescindir de la SDL_Mixer? Existen varias librerías de sonido muy buenas por ahí...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 14, 2010, 11:13:27 AM
No estas entendiendo splinter, si lo haces con una imagen es lo mismo, o sea, tienes 240 pixels en la Wiz de pantalla para una imagen de 224, y lo que ocurre es que esta se alarga hasta rellenar la pantalla (estamos hablando de la horizontal teniendo la imagen en 90 con la wiz de lado). Y no deberia ser así, deberia tener 2 tiras, cada una de 8 pixels para rellenar la pantalla.

Por favor, prueba el juego Pinball Action con mame en tu wiz, y antes de arrancar pon screen rotate, y veras como lo hace, veras que ajusta en las 4 diagonales la imagen.

De la forma que esta ahora, Bennu sólo lo hace arriba y abajo y deja la pantalla estirada, quedando el juego mal graficamente.

Imagina que podrias poner una resolucion 50x50 en la pantalla de la wiz inclinado 90, veras que quedaria un rectangulo, o sea, dos de los lados se ajustarian hasta el limite de pantalla, y no deberia ser asi, pero si quedar un cuadrado perfecto con tiras negras alrededor.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 14, 2010, 05:37:51 PM
te entiendo perfectamente, lo que quieres tu es rotar sin escalar y que rellene lo que falta o si sale de la pantalla que salga, el que no me entiendes eres tu.

nah, con scale_resolution_aspectratio, no se extiran ambos lados (alto y ancho) hasta el limite de la pantalla, solo se estira 1 hasta el limite y el otro se ajusta manteniendo la proporcion con el anterior.

lo siento, pero eso que pides no lo hare, eso lo debes hacer tu por soft, que es muy simple, solo tienes que centrar tus cosas en base a 2 variables.

lamento haber trabajado al pedo.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 14, 2010, 05:52:15 PM
Me alegra que entiendas lo que quiero. Pero yo tampoco estoy pidiendo que lo hagas, pero saber si ya es posible hacerlo con lo que hay.
Si dices que ya es posible pues me alegro, y es sólo esta mi duda nada mas, por otra parte lo pregunto en general, por si alguien lo sabe hacer cambiando las opciones de resolucion que he puesto.
No estoy obligando a nadie y ni mandando a nadie hacer mi trabajo, y si se puede hacer con estas variables de rescalado pues tampoco creo que sea dificil que alguien sepa como hacerlo y que nos enseñe  ;D
Porque mis dudas pueden ser las de otro en el futuro y viceversa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 14, 2010, 06:49:39 PM
disculpa, puedes hacerlo, lo que tienes que hacer es ubicar tu juego en un set_mode 320x240 o 240x320, segun corresponda, y luego ya puedes usar la rotacion de pantalla, pero tu modo nativo debe ya tener las bandas negras de costado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 15, 2010, 09:44:32 AM
nueva funcion al mod_sound

set_music_position( double segundos )

bueno, con respecto al tema de la performance, voy a intentar conseguir los fuentes de la SDL que esta en el SDK de GPH, quizas el problema esta en como maneja los threads de sonido (si es que esta compilada con threads) o los wait que hay que esperan que termine cada chunk de sonido.

necesito esta version porque tiene el manejo de los joys.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on August 15, 2010, 12:44:25 PM
Mola, eso vendra bien para devolver la canción en el trozo en el que se estaba reproduciendo, ej. entras a una tienda, suena otra canción, sales y sigue la música donde estaba  :)

Ahora que estas tocando el sonido has pensado en añadir alguna función para eco ? Se que se puede hacer por código sin embargo..
O una para decidir por donde empieza y acaba un bucle en una canción ?

Solo sugerencias claro  :)
Title: Re: Avances, Diario de...
Post by: Mr Matsusaka on August 15, 2010, 01:31:55 PM
Viene bien para canciones que tienen una intro, y no quieres que se repita desde el principio.
Title: Re: Avances, Diario de...
Post by: Drumpi on August 15, 2010, 03:56:56 PM
Oye, si viene alguna función para obtener la FFT o para obtener los datos antes de mandarlos a la tarjeta de sonido, se le podrían aplicar miles de efectos: con las muestras se podría conseguir eco, cancelación de ruido, reverberación... y con la FFT el cambio de frecuencia, ecualizador, filtrado de sonido...

Bueno, ya estoy soñando otra vez ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 15, 2010, 03:58:36 PM
Quote from: BoMbErLiNk on August 15, 2010, 12:44:25 PM
Mola, eso vendra bien para devolver la canción en el trozo en el que se estaba reproduciendo, ej. entras a una tienda, suena otra canción, sales y sigue la música donde estaba  :)

Ahora que estas tocando el sonido has pensado en añadir alguna función para eco ? Se que se puede hacer por código sin embargo..
O una para decidir por donde empieza y acaba un bucle en una canción ?

Solo sugerencias claro  :)

para hacer eso deberias saber donde estas en la reproduccion, pero para saber eso no hay funcion en la mixer.

con respecto al eco, podria fijarme que efectos hay.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 15, 2010, 03:59:39 PM
Quote from: Drumpi on August 15, 2010, 03:56:56 PM
Oye, si viene alguna función para obtener la FFT o para obtener los datos antes de mandarlos a la tarjeta de sonido, se le podrían aplicar miles de efectos: con las muestras se podría conseguir eco, cancelación de ruido, reverberación... y con la FFT el cambio de frecuencia, ecualizador, filtrado de sonido...

Bueno, ya estoy soñando otra vez ;D

no se que es la fft, pero si hay funciones de pre-proceso, que te permite modificar vos lo que quieras, pero dudo que eso sea performante.
Title: Re: Avances, Diario de...
Post by: Drumpi on August 15, 2010, 04:31:07 PM
Quote from: SplinterGU on August 15, 2010, 03:58:36 PMpara hacer eso deberias saber donde estas en la reproduccion, pero para saber eso no hay funcion en la mixer.

con respecto al eco, podria fijarme que efectos hay.

Eso es fácil: basta con tener un contador o usar un timer desde el principio de la reproducción.

Respecto a los efectos, la gran mayoría se limitan a versiones del eco, es decir, repetir muestras con mayor o menos retardo, con mayor o menor atenuación... al menos los que se hacen sin procesado.

Quote from: SplinterGU on August 15, 2010, 03:59:39 PMno se que es la fft, pero si hay funciones de pre-proceso, que te permite modificar vos lo que quieras, pero dudo que eso sea performante.

FFT: Fast Fourier Transform, transformada rápida de Fourier, transforma una señal representada por una serie de muestras en la suma de sinusoides que la componen, representado por valores delta que indican frecuencia y amplitud.
No se si te acuerdas de qué iba mi PFC inicialmente, programé la FFT en Bennu tomando datos desde un archivo wav.

Que si es perfomante o no, depende: los DSP pueden manejarla sin problema gracias al manejo de instrucciones SIMD, de la paralelización y de la posibilidad de hacer una suma y multiplicación en un único ciclo. Obviamente la transformada consume ciclos, pero no sé hasta qué punto es necesario hacer la transformada inversa (se puede obtener el valor de la siguiente muestra sumando el resultado de una multiplicación por sinusoide), o la directa (creo que OGG y MP3 comprimen en base a transformar la señal en su FFT y descartando frecuencias inaudibles, enmascaradas, con poca amplitud y tomando sólo una transformada cada x tiempo).

Vamos, la FFT es básico en el tratamiento de audio: puedes sintetizar un instrumento en menos de 5 sinusoides, y símplemente desplazandolos en frecuencia obtener cualquier nota.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on August 15, 2010, 06:24:56 PM
Quote from: SplinterGU on August 15, 2010, 03:58:36 PM
con respecto al eco, podria fijarme que efectos hay.

:)
--

set_music_position es dinamico y cambia la cancion en cualquier momento o hay que llamarlo antes del play_song ? Si es lo segundo se me ocurre una idea  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 15, 2010, 09:12:51 PM
dinamico...
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 15, 2010, 09:13:20 PM
drumpi, hasta donde recuerdo, si, creo que la mixer lo soporta...
Title: Re: Avances, Diario de...
Post by: panreyes on August 16, 2010, 11:23:55 AM
Esto... ¿no funciona load_song con wav?
En Fénix juraría que si que se podía, evitando cargar el wav entero en memoria y haciendo uso de buffer.

Ahora dice: "Couldn't load ./ogg/menu.wav: Module format not recognized" :S
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 16, 2010, 11:30:03 AM
eso no es memoria, es el formato de tu wav.

algo mal esta en el formato que la mixer no lo reconoce, o la sdl_mixer.dll que estas usando.
Title: Re: Avances, Diario de...
Post by: panreyes on August 16, 2010, 11:56:33 AM
Eso veo... Veo que en mod_sound no hay ninguna referencia a los formatos, se encarga todo la sdl_mixer!

Vale, my megafault y un FAIL que te cagas: el programica OGGDropXPd convierte los ogg a wav de 48khz :\
Title: Re: Avances, Diario de...
Post by: panreyes on August 17, 2010, 11:33:42 AM
¿Y funciona el instalador de Bennu para Windows? :S
Title: Re: Avances, Diario de...
Post by: osk on August 18, 2010, 09:10:14 PM
Quote from: osk on August 14, 2010, 09:29:59 AM
Hola. ¿Habría la posibilidad,por reota que fuera, de prescindir de la SDL_Mixer? Existen varias librerías de sonido muy buenas por ahí...

Estoooo...¿fao?
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 23, 2010, 07:34:53 AM
he agregado nuevas funciones de collision y mejorado la que ya existia (ahora colisiona bien con mapas de 1x1).

Se agregan las siguiente funciones:

- Collision_Box(p)
- Collision_Circle(p)

funcionan con type y con procesos, como la collision, comparten tambien el contexto en el caso de usar type, por eso tener cuidado con esto y recordarlo, no digan despues que no avise.
estas funciones son mas rapidas que la collision actual, pero no son tan rapidas como un calculo de distancias (quizas al ser en C lo sean), ya que se tiene en cuenta tamaño, angulo, espejado, etc.
para el caso del box, el box se calcula en base a los extremos, o sea, que si hay rotacion, el tamaño del area de colision varia.
para el caso del circle, se promedia el alto y el ancho (tambien del box del grafico rotado o escalado) y esa es el area circular de colision, que puede salir fuera del box del grafico o estar dentro de este, si el grafico no es igual el alto y el ancho.
puede tambien que el centro del grafico (punto de control) no se ajuste a todos los casos que necesitamos, aunque se necesitarian hacer mas pruebas.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on August 23, 2010, 08:46:52 AM
Me huele a que esa colision en circulo me va venir de perlas para el pinball action  :)
Title: Re: Avances, Diario de...
Post by: Drumpi on August 23, 2010, 11:26:37 PM
Y las collision box para reducir el uso de recursos.
Lo que no acabo de entender ¿la caja está siempre con los lados paralelos a los bordes de la pantalla? ¿aunque se rote el gráfico?
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 23, 2010, 11:38:48 PM
no, ya lo dije, esta en los bordes, a 90 grados y 180 con respecto a la pantalla, por eso dije que el area de colision varia.

con respecto a los pixelperfect de 1x1, si esta rotado o hay un size, no lo detecta, puedo hacerlo como estaba antes, pero no quiero, quiero resolverlo adecuadamente, vamos a ver si se puede.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 23, 2010, 11:58:36 PM
por fin, solucionado el tema de los graficos de pixel 1x1, o mejor dicho de ancho 1, el problema era el blitter, espero que esto no traiga nuevamente los problemas de dibujado de lineass raras en las rotaciones.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 24, 2010, 04:17:23 AM
bien, corregido un tema con el resolution y el collision_circle, tambien ahora solo colisionan procesos del mismo ctype (cosa que debio ser siempre), y tambien colisionan con el mouse, claro.

he hecho pruebas de performance, y la verdad que no hay muchas mejoras, debido a todo el tema que tenemos de rotaciones, sizes, etc.

se ganan unos 20fps en numeros de 230 fps mas o menos, no es algo grandioso.
Title: Re: Avances, Diario de...
Post by: Drumpi on August 24, 2010, 05:09:40 PM
Preguntaba porque creía que las collision box detectaban la colisión con el cuadrado del gráfico, es decir, también le afectaría la rotación y el escalado, porque de la otra forma se podía hacer por código. Era sólo una duda que tenía.

Mmmm, si eso que dices del bliter es cierto, tendré que volver a probar las rotaciones con gráficos de 1 pixel de ancho, que a un ángulo desaparecían y a otro eran el doble de anchos.

Y oye, 20 de 230 es casi un 10%, yo creo que es un gran avance, eso se va a notar, sobre todo en la negrita.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 24, 2010, 06:11:02 PM
si, las rotaciones y el size afectan el tamaño del area de colision, la cosa es simple, rotas un grafico y los extremos del grafico (no solo el era pintada, sino que se incluye el area transparente), y por cada extremo trazas rectas y paraleleas de 90° y 180°, con respecto a los ejes x e y de la PANTALLA.

el tema de que no se veia el grafico de 1px de ancho, ya se soluciono, ahora que sea vea segun la rotacion de 1px mas, a simple vista me parece que sigue, pero eso es por los calculos,

yo sigo pensando que no es importante la mejora, si se pudiese evitar todo el tema de las rotaciones, escalado y resolution, este tipo de colisiones seria muy rapido.

quizas se podria implementar un par de funciones que no consideren estos valores, algo asi como un collision_circle_fast y collision_box_fast, que se basen solamente en el alto y ancho del grafico con respecto a su centro, sin chequear rotaciones, escalado ni demas cosas, quizas el resolution no afecta mucho.

tambien quiza estas funciones puedan tener un parametro extra que indique radio de accion de la colision o quizas agregar una variable local que indique radio de accion para casos de colision circular y podria ser alto y ancho para casos box.

no esta mal, y creo que esto ameritaria un modulo de colisiones exclusivos, y para evitar el problema de lo que ya esta hecho (que usa mod_grproc), puedo hacer que mod_grproc cargue automaticamente este nuevo modulo (dependencia), y asi seria transparente para lo que ya actualmente lo use.

lo que tambien afecta mucho es el comparar en cada collision toda la lista de procesos (en el caso del type, si hay muchos de este tipo, o de collision ALL_PROCESS), collision directo a un proceso, supongo que va muy rapido, pero tambien lo ira en el collision normal.

la cosa es que estuve pensando, y no se puede hacer un cache de las colisiones, ya que uno de los procesos que previamente fue chequeado por colision en otro proceso, en el actual proceso pudo haber cambiado sus datos, por ende, no se puede asumir que la info anterior es valida.
Title: Re: Avances, Diario de...
Post by: Drumpi on August 24, 2010, 06:31:18 PM
No, si yo la collision box me refería a que al rotar el gráfico, los lados también rotaban, vamos, que no siempre son paralelos a los bordes de la pantalla, sino que delimitan los bordes del gráfico (ignorando las transparencias).

La idea de un módulo con diversas colisiones estaría muy bien,y para no romper la compatibilidad podrías dejar las colisiones "básicas" donde están, y crear las nuevas en el módulo aparte, o meter también las antiguas de manera que "tapen" las del mod_grproc.
Hombre, un cache de procesos sería útil con los procesos que permanezcan quietos, es cierto que suelen estar en movimiento pero ¿no hay una variable que los marque como "dirty" para actualizar sus valores o decir que hay que redibujarlo?
También es verdad que una cache come recursos, y si estamos usando colisiones simples por falta de los mismos, estaría interesante tener una variable para activarlas/desactivarlas, igual que hay para el volcado total/parcial de pantalla.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 24, 2010, 06:36:56 PM
hacer un box que tambien el box rote es ridiculo, seria tan complejo como hacer el pixelperfect o quizas mas.

no, el dirty se chequea en el frame final o cuando un grafico se modifica su contenido, pero eso solo se le setea un flag que indica que debe ser analizado. ademas cambiar el grafico es lo de menos, hay muchas cosas mas que hacen cambiar a lo que se dibuja, coordenadas, angulos, tamaño, etc, y hacer chequeos por todas esas cosas, haria al asunto mas lento, y muchas cosas internas que no tienen sentido discutir.

olvidate drumpi, es mucho mas complicado o elaborado que lo que decis.
Title: Re: Avances, Diario de...
Post by: blostec on August 24, 2010, 06:58:10 PM
Después de un tiempo desconectado, veo que el desarrollo de Bennu sigue imparable, gran trabajo Juan. Ahora mismo actualizo a la ultima versión. Sobra decir que te añado otro karma (no se que haras con tantos!). Saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 24, 2010, 07:33:55 PM
ja, gracias blostec, estos ultimos cambios que voy mencionando (collision y funcion de la mixer) estan solo en el svn, aun no genere version binaria.

los karmas? disfrutarlos. :D
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on August 24, 2010, 08:20:02 PM
excelente


(http://3.bp.blogspot.com/_pS7sKjlzwFg/R5yGh1lpuRI/AAAAAAAABN0/v3Vcsg0en7I/s320/MrBurns.gif)

karma up..
Title: Re: Avances, Diario de...
Post by: Drumpi on August 24, 2010, 11:23:23 PM
Oye, L1nk, ya que estás aquí, ¿Estás ayudando a Splinter con el problema que tiene con la vibración en los mandos para plataformas no-WIZ? si no, échale una mano, por favor :)
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on August 25, 2010, 09:23:47 PM
BUENO comentame, y publica los binarios de la ultima bennu xfavor que estoy por sacar
el proximo bennupack..

exactamente cual es el problema con los mandos? haber si soy util en algo
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 25, 2010, 10:36:36 PM
tengo que hacer los binarios, en estos dias.

con respecto a los mandos, no hay problemas, solo que quiero dar un soporte de forcefeedback o vibracion, pero necesito pensar en un api que sea portable, me refiero, al mismo set de funciones y tambien a los mismos archivos de efectos.

en caanoo, es basica la informacion, tiene numero de acciones, y por cada accion se define, duracion en milisegundos y fuerza de la vibracion, maximo 120 acciones.

necesito saber como son los demas apis al respecto, y ver si es posible hacer algo normalizado.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on August 26, 2010, 12:22:17 AM
http://www.libsdl.org/tmp/SDL-1.3-docs/SDL__haptic_8h.html

http://www.libsdl.org/hardware.php

bajar la version 1.3
http://www.libsdl.org/hg.php
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 26, 2010, 12:42:22 AM
esa misma usa caanoo, haptic... gracias... le echare un ojo.

edit: no me queda claro si haptic es una palabra generica que sirve para referenciar a todo esto de lo tactil o es algun estandard.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on August 26, 2010, 02:21:54 AM
haptic es solo para los efectos force feedback , (vibracion ), y fue incluido en la version 1.3
The SDL Haptic subsystem allows you to control haptic (force feedback) devices.


según veo la versión 1.3 tiene soporte multi-monitor que pidieron en otro tema
y otras cosas raras,, la sdl se esta poniendo buena..
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 26, 2010, 03:59:34 AM
la cosa es que no se si esta la 1.3 para todas las plataformas que soporta bennu.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 26, 2010, 08:59:08 PM
sigo mejorando el sistema de colisiones... pero no me termina de convencer.

con los ultimos cambios en una prueba que me daba ~240fps con el collision normal, con collision box llega a ~284 y con circle ~280.

mejoro bastante, me gustaria meter funciones que para el caso de colisiones circulares te permitan especificar el radio del hotspot y la posicion en base a un punto de control de la colision.
y para el caso de colisiones box, poder decir que no le de bola a las rotaciones, o trabajarlo un poco mas y en base a si no esta rotado, ni escalado, usar funciones mas rapidas.

pero ya el modulo se esta haciendo un poco mas grande, voy a tener que separarlo finalmente.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 28, 2010, 03:33:49 PM
nueva version bennugd disponible de descarga
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 29, 2010, 02:37:52 AM
bien, solucione el problema del sonido en las caanoo, me habia confundido de sdl_mixer, y puse la que no tenia sonido, pero aun asi hay petardeo con los ogg.

tambien cambie todos los retornos de las funciones load_wav y load_song, como asi tambien otras no importantes que retornaban -1, ahora retornan 0 si no se carga el sonido o en otros casos retorna 0 cuando el valor de retorno no es importante.

se agregan 2 nuevas funciones, o mejor dicho, 2 formas nuevas de usar 2 funciones ya conocidas.

unload_song(&song)
unload_wav(&wav)

estas funciones descargan los elementos pasados y los resetean a 0, asi no hay que preocuparse por ponerlos a 0.
Title: Re: Avances, Diario de...
Post by: panreyes on August 29, 2010, 07:26:50 AM
Aparte del seteo de la variable a 0, ¿qué diferencias tienen las nuevas unload_song y unload_wav?
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 29, 2010, 12:26:18 PM
nada, solo eso
Title: Re: Avances, Diario de...
Post by: blostec on September 01, 2010, 02:52:34 PM
Descargando la nueva versión, gracias Juan!
Title: Re: Avances, Diario de...
Post by: Drumpi on September 02, 2010, 02:31:22 AM
Por cierto, Splinter ¿has probado ya la nueva toolchain o el nuevo SDK liberado por GPH o es el mismo que tenías?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 02, 2010, 10:04:37 AM
deja vu.

lo mismo me pregunto free.

es el mismo que ya tenia.

gracias.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 02, 2010, 10:38:45 AM
Quote from: Drumpi on September 02, 2010, 02:31:22 AM
Por cierto, Splinter ¿has probado ya la nueva toolchain o el nuevo SDK liberado por GPH o es el mismo que tenías?

(http://img338.imageshack.us/img338/8766/owned2px4.jpg)
Title: Re: Avances, Diario de...
Post by: Mr Matsusaka on September 02, 2010, 11:19:22 AM
que foto mas horrible xddd
Title: Re: Avances, Diario de...
Post by: Drumpi on September 02, 2010, 02:35:38 PM
No recuerdo haberlo leido en los dos últimos dias, que es cuando salió la noticia.
Eso sí, es mi segundo owned, y al igual que aquella vez, la foto más horrible no puede ser ¬¬U
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 02, 2010, 03:18:16 PM
Que va, lo hablamos por msg ayer...

Tus neuronas parecen OK, tranquilo  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 25, 2010, 06:33:42 PM
nuevos cambios:

- soporte completo en 32bits de alpha, ahora van bien las funciones map_put, write_in_map, etc. y trabajan segun hacen los flags actuales, blend adictivo y blend substractivo o normal

- se corrige problema de velocidad en caanoo debido al ultimo firmware.
Title: Re: Avances, Diario de...
Post by: DCelso on October 25, 2010, 07:03:17 PM
oolee, karma plus plus.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 25, 2010, 07:11:44 PM
aquellos que puedan compilar la version del svn, necesitaria que lo prueben y me den sus impresiones, diria que lo de 32bits por ahora es experimental.
Title: Re: Avances, Diario de...
Post by: Windgate on October 25, 2010, 07:39:33 PM
Deseando probarlo Splinter, gracias y karma up!
Title: Re: Avances, Diario de...
Post by: josebita on October 25, 2010, 08:11:38 PM
Subiendo los paquetes actualizados al PPA. Pronto para lucid y un rato después para karmic y maverick.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 25, 2010, 08:34:58 PM
gracias joseba, yo voy compilando para windows, wiz y caanoo... ya que hay algunos cambios que afectan a todas las consolas (como el fix en el draw, los chequeos del path y otras cosas)
Title: Re: Avances, Diario de...
Post by: Drumpi on October 25, 2010, 11:00:20 PM
Nada, nada, hoy reparto karmas como si fueran caramelos :D :D :D
Yo mismo tengo que hacer ports, pero aun no tengo muy claro cómo hacerlo desde Linux, pues no encuentro una toolchain (encuentro SDKs preparados con codeblocks o el devkitpro, y no se si decantarme por ellos). Paciencia.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2010, 01:40:12 AM
RC18 (r181) disponible

Snapshot: http://betatester.bennugd.org/snapshot/
Sources: http://bennugd.svn.sourceforge.net/
Title: Re: Avances, Diario de...
Post by: Outlaw on October 26, 2010, 06:44:44 AM
Gracias Splinter! karma++
Title: Re: Avances, Diario de...
Post by: josebita on October 26, 2010, 10:18:19 AM
Los binarios ya están disponibles para lucid, karmic y maverick.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2010, 01:16:11 PM
por favor, agradeceria prueben los 32bits y cuelguen los programas de ejemplos que usaron para probarlos.

gracias.
Title: Re: Avances, Diario de...
Post by: Outlaw on October 26, 2010, 05:00:13 PM
Una pregunta, teniendo ya las librerias y todo, bajo solamente el interprete?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2010, 05:14:58 PM
el paquete incluye todo, tenes que meter todo...
Title: Re: Avances, Diario de...
Post by: Drumpi on October 26, 2010, 06:43:06 PM
Muchas gracias, Splinter (ya sabía yo que no te podías estar quieto el fin de semana sin internet :D), me viene justo al pelo para actualizarme y comprobar si cierto error es mío o no (que va a ser que no ^^U).
Karma++.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 26, 2010, 08:56:48 PM
no se de que error hablas.
Title: Re: Avances, Diario de...
Post by: Drumpi on October 27, 2010, 11:41:10 PM
Nada, olvídalo, como siempre, fallo de concepto.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 28, 2010, 12:30:23 AM
por favor, si necesitas decir algo, dilo... pregunto porque quizas me perdi un mensaje, porque no entendi de que hablabas.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2010, 06:11:08 PM
todos los que han pedido el tema del 32 bits, lo han probado? aun no veo respuestas de test...

agradeceria lo prueben...
Title: Re: Avances, Diario de...
Post by: DCelso on October 29, 2010, 11:01:38 PM
En el segundo test, el de fondo semitransparente verde me sale un marco que no se a qué se debe.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2010, 11:24:31 PM
gracias! a ver...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2010, 11:30:07 PM
falto el map_put con flag a 0

no me parece que esta bien el tema del translucent...

a ver como se veia antes...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2010, 11:37:15 PM
bueno, esta mal, muy mal... :(
Title: Re: Avances, Diario de...
Post by: panreyes on October 29, 2010, 11:51:54 PM
Ánimo! :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2010, 11:56:39 PM
jeje, ya lo arreglare... tengo que replantear la forma de usar los alphas.

pero tan mal no esta, no todos estan mal.
Title: Re: Avances, Diario de...
Post by: DCelso on October 30, 2010, 12:22:20 AM
Y lo del marco verde oscuros sabes a qué se debe?
Title: Re: Avances, Diario de...
Post by: DCelso on October 30, 2010, 12:44:36 AM
He añadido el 0 al xput y también una tercera file con la mezcla de imagenes de la segunda al revés, es decir, primero poniendo la esfera y luego añadiéndole un cuadrado semitransparente.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2010, 01:01:21 AM
tu grafico debe tener diferente alpha en los bordes.

edit: es eso, tu grafico tiene un borde de 2px de ancho que es 0 absoluto, y los demas pixels tienen alpha diferente a 0.
Title: Re: Avances, Diario de...
Post by: Drumpi on October 30, 2010, 02:55:47 AM
Ya que estás con los PUT, echa un vistacillo rápido al put_screen y su hermano map_put, porque he intentado poner una mapa de 8 bits en modo 16 bits de pantalla y no ha transformado los colores a los de la paleta (tenía colores vivos en las 7 primeras posiciones, pero al hacer el put se veían en tonos negros).
Pondría ejemplo rápido, pero no me dejan, lo siento :(
Mañana lo mismo te puedo pasar el código con el que trabajo (y sus ficheros), pero no te los puedo preparar.

¿Es normal que no se pueda usar SET_COLORS sin un LOAD_PAL previo en modo 16bits? ¿Y por qué si uso NEW_PAL tengo que usar SET_COLORS(int,int,int,pointer) en lugar de SET_COLORS(int,int,pointer)?
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2010, 04:22:09 AM
necesito ejemplo.

sin un load_pal o sin un new_pal, es correcto.

la otra pregunta es porque una trabaja con paletas individuales y otra con la del sistema.

.------------

volviendo al tema de los 32bits, funciona perfecto (bueno, a medias), es que ahora el render tambien considera el alpha de la pantalla donde se hace el render y entonces al tener este 0, no dibuja, si en el proceso esfera ponemos flags = b_nocolorkey; vamos a ver que se dibuja todo tal cual era en la anterior version, pero el map_put funciono perfectamente, aunque esto funciona perfecto, ahora van a surgir problemas al dibujar sobre la pantalla. diablos!
Title: Re: Avances, Diario de...
Post by: Drumpi on October 30, 2010, 02:21:55 PM
Pues te mando el código: es un programa que a partir de un fichero TMF (mi formato de mapas de tiles), genera un FPG de durezas de 8 bits (cada pixel equivale al número del tile en esa posición) usando como paleta un BMP "especial", y después un BMP del propio mapa de tiles para usarlo como textura.

Lo primero es lo de la linea 113 de tmf2mode7.prg, no puedo hacer set_colors (a la paleta del sistema) sin usar load_pal.
Lo importante está entre las líneas 116 y 129: en la línea 122 generamos un mapa de 8 bits, la función se encuentra en tmf_conv.inc. En ese fichero, verás la línea 16 comentada. Si quitas las //, cuando salga por pantalla se verá todo negro (salvo la paleta), pero si lo pegas en el paint y rellenas de blanco, verás un mini cuadrado negro en el centro, que no es realmente negro puro, se puede usar la herramienta de relleno y se notarán los diversos colores.
La línea 17 era una prueba para ver si el mapa estaba bién, como proceso el mapa de 8 bits se muestra con los colores de la paleta.

Y ya, si alguien puede decirme por qué tmf_dur.fpg, a pesar de estar bien creado y de tener bien la paleta (comprobado con editor hexadecimal) lo que debería verse gris se ve negro con el FPGedit viejuno...
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2010, 03:25:35 PM
si estas en modo 16 bits, no tenes paleta del sistema hasta que hagas un load_pal, como sea, en 16bits, todos los graficos de 8 bits tiene su paleta propia, si queres que usen la del sistema tenes que eliminar la paleta de cada un de los graficos de 8bits.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 04, 2010, 06:44:53 AM
corregi un nuevo bug, con collision con type mouse, si el grafico del proceso que se quiere testear tiene un tamaño diferente a 100 y supongo que tambien si tiene angle.
no pasaba con las nuevas de collision (box, circle).

esto se debe a que aun se ve que existe el tema que si es de 1px de ancho no pinta bien, no se en que circunstancias, ya que la que dibuja rotado/escalado y la que no son diferentes.

bueno, lo parche, haciendo que el area de colision del mouse sea 2x1, en vez de 1x1, aunque para la comprobaion se testea solo 1x1, asi que no afecta.

en estos dias subo ejecutables, ya que considero este un bug importante.

disculpen las molestias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2010, 02:32:30 AM
finalmente corregido el tema de los 32bits...

( sera cierto? :D )

bueno, svn actualizado, debo binarios.
Title: Re: Avances, Diario de...
Post by: Windgate on November 08, 2010, 08:13:28 PM
Nosotros con el Paper podemos hacer buena prueba, es todo 32 bits, incluso efectos bastante raros que mezclan una especie de foco de linterna en 32 bits con un fade_off. En cuanto estén los binarios avisa, sobre probar los write_in_map, map_block_copy, etc. Todavía no te puedo prometer nada pero lo intentaré :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2010, 10:29:51 PM
lo del paper eso que cuando pones un grafico con alpha sobre un blanco total, no va, y esta bien que asi sea, porque ya el fondo esta al maximo del alpha, y ponerle otro del mismo color con mas alpha, no va a hacer que el alpha baje, tenes que cambiar de color o poner en el original un alpha mas bajo.
Title: Re: Avances, Diario de...
Post by: DCelso on November 08, 2010, 11:12:44 PM
SplinterGU, mira, he estado hechándole un ojo al asunto del png de 24 bits de profundidad de color por pixel y con un color de pixel RGB a tratar como transparente y he visto que los visores como acdsee o eye of GNOME trabajan bien con el transparente y bennu no los cargaba bien. Así que explorando el código fuente de mod_map y el formato PNG he descubierto que metiendo este código podemos dar soporte a imágenes RGB de 24 bits con un pixel a tratar como transparente (es decir sin usar canales alfa)

  else
   {
       Rshift = 8;
       Gshift = 5;
       Bshift = 3;

       Rmask = 0xF80000 ; // 3
       Gmask = 0x00FC00 ; // 2
       Bmask = 0x0000F8 ; // 3
       for ( n = 0 ; n < height ; n++ )
       {
           rowpointers[0] = ( void * )row ;
           png_read_rows( png_ptr, rowpointers, 0, 1 ) ;

           ptr = ( uint16_t* )((( uint8_t * )bitmap->data ) + n * bitmap->pitch );
           orig = row ;
           for ( x = 0 ; x < width ; x++ )
           {
               ARRANGE_DWORD( orig );

               if (( *orig ) & 0x80000000 )
               {
                   *ptr = (( *orig & Rmask ) >> Rshift ) | (( *orig & Gmask ) >> Gshift ) | (( *orig & Bmask ) >> Bshift )  ;
                   if ( !*ptr )( *ptr )++ ;
               }
               else
                   *ptr = 0 ;
             
     <b> if ((color==PNG_COLOR_TYPE_RGB)&& (info_ptr->pixel_depth=24)&& (info_ptr->valid & PNG_INFO_tRNS)){
                uint8_t * ptr8 = (uint8_t *)orig;
        if(
        (ptr8[0]==info_ptr->trans_values.red) &&
        (ptr8[1]==info_ptr->trans_values.green) &&
        (ptr8[2]==info_ptr->trans_values.blue)
        )
        *ptr = 0;
               }
   </b>
               ptr++, orig++ ;
           }
       }

   }

como ejemplo pongo la imagen que nos pasó el muchacho este deetee,
La imagen adjunta si la abres con un visor cualquiera de imágenes verás que tiene fondo transparente, pero
Si la intentas cargar con el mod_map original no carga la información de transparente y es debido a que no es un formato png  que estemos acostumbrados a usar no es un png de 32 bits sino un png de 24 bits con tratamiento de un color como transparente.
Con esta modificación a mod_map ya sí trata bien este tipo de pngs.
Si quieres ver las diferencias puedes verlas con el siguiente ejemplo:

import "mod_key";
import "mod_map";
import "mod_screen";

process main()
private
int escape=0;
int square, pic6;
begin
 square=new_map(300,220,16);
 map_clear(0,square,rgb(0,255,0));
 pic6=png_load("A24b.png");
repeat
 put(0,square,100,100);
 put(0,pic6,100,100);
 if(key(_ESC)) escape=1; end
 frame;
until(escape);
unload_map(0,pic6);

end
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2010, 11:25:04 PM
muchas gracias DCelso, karma!
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 08, 2010, 11:29:15 PM
pregunta, aca creo que cometiste un error, cierto?

     if ((color==PNG_COLOR_TYPE_RGB)&& (info_ptr->pixel_depth =  24)&& (info_ptr->valid & PNG_INFO_tRNS)){

es ==, si?
Title: Re: Avances, Diario de...
Post by: DCelso on November 09, 2010, 12:37:10 AM
:D, sips, que bueno que no probé con otras imágenes, sino me petaría :D.
Menos mal que estás al loro y fijo que tienes ya ideas de como optimizarlo :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2010, 12:52:14 AM
por ahora queda como lo pusiste.

gracias.
Title: Re: Avances, Diario de...
Post by: DCelso on November 09, 2010, 01:06:34 AM
splinter ese arreglo solo funciona para cuando el modo de pantalla es 16 bits, para poder cargar también la información de transparencia de esos PNGS en modo 32 bits hay que poner en la parte de arriba de ese condicional algo parecido.

   else if ( depth == 8 && sys_pixel_format->depth != 16 )
   {
       for ( n = 0 ; n < height ; n++ )
       {
           rowpointers[0] = ( void * )row ;
           png_read_rows( png_ptr, rowpointers, 0, 1 ) ;

           ptr32 = ( uint32_t* )((( uint8_t * )bitmap->data ) + n * bitmap->pitch );
           orig = row ;
           for ( x = 0 ; x < width ; x++ )
           {
               ARRANGE_DWORD( orig );
               *ptr32 = *orig ;
              <b> if ((color==PNG_COLOR_TYPE_RGB)&& (info_ptr->pixel_depth==24)&& (info_ptr->valid & PNG_INFO_tRNS)){
                  uint8_t * ptr8 = (uint8_t *)orig;
if(
(ptr8[0]==info_ptr->trans_values.red) &&
(ptr8[1]==info_ptr->trans_values.green) &&
(ptr8[2]==info_ptr->trans_values.blue)
)
*ptr32 = 0;

              }</b>
               ptr32++, orig++ ;
           }
       }
   }

Ahora he probado con otras imágenes pa no volverla a cagar :d.
Title: Re: Avances, Diario de...
Post by: DCelso on November 09, 2010, 01:14:55 AM
splinter, haciendo probatinas si uso pantalla de 32 bits y creo imágnes de 16 bits, luego al usarlas no van bien los colores, por ejemplo, este ejemplillo me da un cuadrado amarillo en vez de verde

import "mod_key";
import "mod_map";
import "mod_screen";
import "mod_video";

process main()
private
int escape=0;
int square, pic6;
begin
  set_mode(320,240,32);
  square=new_map(300,220,16);
  map_clear(0,square,rgb(0,255,0));
repeat
  put(0,square,140,140);
  if(key(_ESC)) escape=1; end
  frame;
until(escape);
unload_map(0,pic6);

end

No se si es por culpa de los últimos cambios de alphas para soporte 32 bits de las últimas versiones de bennu, ¿Puede ser?
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2010, 02:57:48 AM
es probable, voy a volver atras tu cambio, ya que me decis no va bien, debo estar seguro que funciona en todos los casos, aunque me imagino porque no va bien, si lo corregis pasame el cambio, pero asegurate que funcione bien...

gracias...

ahora chequeo el otro tema, a mi tambien me da amarillo, voy a revisar por que.

EDIT: Ahhh, claro, es obvio, el RGB esta trabajando sobre 32bits no sobre 16bits.

proba cambiando el set_mode a 16 y luego poner un set_mode a 32, luego del map_clear, no lo probe aun, pero seguro es eso.

EDIT2: es eso.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2010, 03:37:10 AM
se agregan nuevas funciones RGB*, sintaxis:

RGB( r, g, b, depth )
RGBA( r, g, b, depth )
RGB_GET( color, &r, &g, &b, depth )
RGBA_GET( color, &r, &g, &b, &a, depth )
GET_RGB( color, &r, &g, &b, depth )
GET_RGBA( color, &r, &g, &b, &a, depth )

enjoy it!
Title: Re: Avances, Diario de...
Post by: Outlaw on November 09, 2010, 03:47:08 AM
Grande Splinter! Solo una pregunta: que diferencia hay entre get_rgba y rgba_get? me suena a que hacen lo mismo  :P
Title: Re: Avances, Diario de...
Post by: josebita on November 09, 2010, 04:04:17 AM
Me imagino que serán sintaxis diferentes para lo mismo.

En cuanto a "depth" me imagino que provoca que se trabaje en ese modo, de forma que se puedan obtener las componentes RGB de 32bpp aunque el modo actual sea de 16bpp, ¿verdad?.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2010, 04:06:16 AM
si, son lo mismo.

exacto, ese es el comportamiento...

pero he tenido que cambiar la sintaxis.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 09, 2010, 04:11:29 AM
ahora si funcionan... el ejemplo de DCelso quedaria asi:


import "mod_key";
import "mod_map";
import "mod_screen";
import "mod_video";

process main()
private
int escape=0;
int square, pic6;
begin
  set_mode(320,240,32);
  square=new_map(300,220,16);
  map_clear(0,square,rgb(0,255,0,16));
repeat
  put(0,square,140,140);
  if(key(_ESC)) escape=1; end
  frame;
until(escape);
unload_map(0,pic6);

end


esto era algo que tenia pendiente desde hace mucho tiempo y me habian pedido varios usuarios, decidi hacerlo.

habia pensando meter funciones separadas segun la profundidad, pero eso complicaria luego hacer los codigos, y no aprovecharse de variables profundidad para obtener resultados, asi que opte por poner un parametro depth.

eso si, esto es para modos mayores a 8bits, estas funciones tambien sirven para 8bits, pero 8bits funciona sobre la paleta del sistema, lamentablemente no lo hace para paletas individuales, pero para eso, estan las funciones de map y creo que hay tambien de pal.

disfrutenlo, me retiro a descansar un rato.
Title: Re: Avances, Diario de...
Post by: blostec on November 09, 2010, 07:20:35 PM
Después de un tiempo sin visitar el foro, bajada la RC18 y actualizando mis proyectos. Como siempre, muchas gracias por tu trabajo Juan, karma up :)
Title: Re: Avances, Diario de...
Post by: Windgate on November 09, 2010, 08:24:07 PM
Ese karma para el maestro, gracias :D
Title: Re: Avances, Diario de...
Post by: Outlaw on November 10, 2010, 04:01:01 AM
Karma++ para Splinter por el trabajo!
Title: Re: Avances, Diario de...
Post by: DCelso on November 10, 2010, 03:29:45 PM
me uno.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 13, 2010, 09:45:53 PM
Para cuando los últimos binarios ?
Espero como loco los de Caanoo, compilados con la version 4 del EABI :)
Title: Re: Avances, Diario de...
Post by: panreyes on November 15, 2010, 10:07:53 AM
Por cierto, actualicé hoy la versión de Windows y la de Caanoo, y en Caanoo no me funciona el límite de fps.
Todos ellos van superchutaos xD
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 15, 2010, 10:24:48 AM
Pero y que has actualizado si puede saberse ? :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 15, 2010, 10:49:45 AM
PiXeL, tienes la ultima version para Caanoo? y el firm?
Title: Re: Avances, Diario de...
Post by: panreyes on November 15, 2010, 11:11:19 AM
RC17 tanto para Caanoo como para Windows, y el firm 1.5
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 15, 2010, 11:18:24 AM
Que es la RC17, Bennu ?
Me pierdo  :(
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 15, 2010, 12:02:47 PM
al menos necesitas la RC18.
Title: Re: Avances, Diario de...
Post by: panreyes on November 15, 2010, 12:53:11 PM
Mmmm... La RC18 no estaba ayer en la web, no? xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 15, 2010, 01:10:24 PM
esta hace tiempo, todavia tengo que compilar una nueva.
Title: Re: Avances, Diario de...
Post by: josebita on November 15, 2010, 02:23:16 PM
Estaba en el directorio de snapshots... He cambiado hoy los enlaces, sorry
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 15, 2010, 03:57:21 PM
quizas deberiamos implementar algun sistema para que yo suba las versiones y aparezcan directamente en el portal, quizas algun panel o una pagina con password que solo yo tenga.

a ver que proponen y se les ocurre (esto es para PiXel y josebita)
Title: Re: Avances, Diario de...
Post by: panreyes on November 15, 2010, 04:03:50 PM
Sin problema :)
Es un script facilón en PHP
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 16, 2010, 05:37:57 AM
para los usuarios de linux, en la proxima release se incluira los archivos de autocompletado para el bash... si alguno ya lo quiere ir usando aca los pongo:

/etc/bash_autocompletion.d/bgdc

_bgdc()
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

    case "${prev}" in
-o)
            _filedir '@(dcb|DCB|dat|DAT|bin|BIN)'
            return 0
            ;;

        -i)
            _filedir '()'
            return 0
            ;;

-f)
            _filedir '@(*)'
            return 0
            ;;

        -l)
            return 0
            ;;

-s)
            _filedir '@(*)'
            return 0
            ;;

        -D)
            return 0
            ;;

        *)
            _filedir '@(prg|PRG)'
        ;;
    esac

    if [[ ${cur} == -* ]] ; then
        COMPREPLY=( $(compgen -W "-d -o -i -a -f -l -s -g -c -D -p -Ca" -- ${cur}) )
        return 0
    fi
}
complete -F _bgdc bgdc


/etc/bash_autocompletion.d/bgdi

_bgdi()
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

    case "${prev}" in
        -i)
            _filedir '()'
            return 0
            ;;

        *)
            _filedir '@(dcb|DCB|dat|DAT|bin|BIN)'
        ;;
    esac

    if [[ ${cur} == -* ]] ; then
        COMPREPLY=( $(compgen -W "-d -i" -- ${cur}) )
        return 0
    fi
}
complete -F _bgdi bgdi


cualquier sugerencia es bien recibida.
Title: Re: Avances, Diario de...
Post by: josebita on November 16, 2010, 11:24:39 AM
¡Maravilloso!, gracias.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 16, 2010, 11:37:58 AM
Hola, soy nuevo en esto, me podeis explicar todo lo que habeis puesto desde hace 2 páginas hacia aca (me gusta 'aca').
Title: Re: Avances, Diario de...
Post by: josebita on November 16, 2010, 01:06:33 PM
En casi todos los sistemas, cuando estás en la consola puedes pulsar la tecla "Tabulador" y la consola rellena los nombre de archivos. P. ej. si haces:
cd /sys<<tabulador>>
la consola rellena hasta
cd /system

Las últimas versiones de Ubuntu han mejorado esto en el sentido de que ahora sólo rellena con los nombres de fichero que pegan con el comando, es decir que si vas a descomprimir un zip desde la consola:
unzip ficher<<tabulador>>
añade texto, pero sólo entre los ficheros que vas a descomprimir, de forma que si existen dos ficheros en ese directorio de nombres "fichero.zip" y "fichero.avi", el sistema sabe que no es probable que quieras pedirle que descomprima un avi y directamente rellena a
unzip fichero.zip

Lo que ha hecho Splinter es lo mismo: con ésto cuando escribas
bgdc <<tabulador>>
el sistema sabrá qué clase de comando puede aceptar cada opción y sólo rellenará con las que tengan sentido.

No sé si me explico :)

RC17 es Release Candidate 17 de Bennu, una forma de nombrar a las versiones.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 16, 2010, 03:33:51 PM
Muchas grácias, karma por la explication.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 16, 2010, 05:41:35 PM
Quote from: FreeYourMind on November 16, 2010, 11:37:58 AM
Hola, soy nuevo en esto, me podeis explicar todo lo que habeis puesto desde hace 2 páginas hacia aca (me gusta 'aca').

jajaja, juro que cuando postee sabia que ibas a preguntar...

groso!

muy bien la explicacion josebita.

agrego, pones bgdc y pulsas tab y muestra todos los .prg o directorios que hay donde estas parados, y si pones una de las letras que componen alguno de ellos te autocompleta con el siguiente tab, y puedes ir agregando caracteres y tab hasta obtener lo que quieres, si tienes un solo prg en el directorio con 1 solo tab ya te lo pone, y si pones bgdc -<tab> (o sea, '-' de argumentos, te tira la lista de argumentos posibles).

bueno, esto mismo con el bgdi.

esto mismo deberia funcionar desde msys en windows, aunque no se bien donde iran los archivos, no lo he chequeado.

Title: Re: Avances, Diario de...
Post by: Outlaw on November 16, 2010, 05:52:32 PM
Splinter: karma up!

(http://www.bytelove.se/images/uploads/Bytelove/retro/1up%20-%20zoom.jpg)


Title: Re: Avances, Diario de...
Post by: SplinterGU on November 16, 2010, 09:48:15 PM
je, la verdad que ya estaba cansado que cada vez que tenia que compilar algo tener que escribir el nombre del prg y lo mismo para el dcb.

:D
Title: Re: Avances, Diario de...
Post by: osk on November 16, 2010, 11:49:17 PM
Hola.
Ei, no me toméis como un troll, porfa,pero estaba pensando...¿hay algún roadmap respecto los puntos clave que debe tener Bennu?
Estoy pensando en:
           -64 bits
           -Backend de OpenGL
           -Librería de red oficial
           ...
Title: Re: Avances, Diario de...
Post by: Outlaw on November 17, 2010, 07:03:37 AM
Hola Osk, perdona mi ignorancia pero ¿qué es un roadmap? (mapa de camino-ruta) es decir ¿sirve para ver que tipo de lenguaje queremos o algo asi?
Title: Re: Avances, Diario de...
Post by: Windgate on November 17, 2010, 09:57:54 AM
Creo que se refiere a un TODO, una lista de cositas por hacer.

A Splinter le hemos hecho llegar numerosas sugerencias, pero no hay lista oficial que yo sepa :P
Title: Re: Avances, Diario de...
Post by: osk on November 17, 2010, 02:04:30 PM
Sí, eso. Una lista de cosas por hacer temporizadas según su urgencia y el tiempo que se prevee en conseguirlo.
Title: Re: Avances, Diario de...
Post by: Outlaw on November 17, 2010, 04:02:45 PM
Y si abrimos un post para esto? yo creo que es buena idea y de paso lo charlamos entre todos y vemos lo que se puede y lo que no...saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 17, 2010, 04:30:53 PM
si, hay, aunque las prioridades cambian con las necesidades.

mas que ser rigido a un roadmap, mas bien veo las necesidades de la gente y segun la importancia, tiempo disponible y factibilidad lo voy haciendo.

si tuviera que seguir un roadmap creo que muchos se quedarian sin muchas cosas.

pero el roadmap general existe, si mal no recuerdo, esta en este mismo foro.

agrego, algunas cosas del roadmap no estan publicas, para evitar que otros tomen ideas.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 19, 2010, 12:43:34 AM
se cambia el MAX_PATH de 260 a 32768, debido a que windows dice que el maximo path puede ser de 32768, ademas de que en la actualidad es comun encontrarse con paths de mas de 260 caracteres.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 19, 2010, 07:59:12 AM
Para cuando el fix de sonido para Caanoo ?
Queria ver si empezaba a hacer los ports que me quedan, pero hasta que no este arreglado pues tendré que seguir esperando.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 19, 2010, 03:46:20 PM
este fin de semana intento, pero creo que hay problemas para compilar la mixer... todo es compilacion de la mixer.

por otro lado, podes tambien convertir los sonidos si urge tanto.

el ejemplo que me armaste no tenia los sonidos de ejemplo, asi que voy a perder un buen tiempo buscando sonidos, si me podes pasar un pack completo full estaria agradecido, no me importa si son 100mb o 1gb, mientras este completo.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 21, 2010, 10:39:06 PM
Que dices !?
El ejemplo que te arme tiene todos los sonidos que salen en el menu y en sus respectivos formatos...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 21, 2010, 10:44:22 PM
Lo he mirado, entan embebidos en el dcb...
Te los paso de nuevo sueltos...
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 22, 2010, 01:11:08 AM
gracias!
Title: Re: Avances, Diario de...
Post by: edgardo30 on November 26, 2010, 02:52:01 AM
Buenas Noches...

Soy nuevo en este foro, y viendo los avances de esta herramienta de desarrollo de video juegos (Bennu), solo queria felicitarlos por este grandioso proyecto basado en una herramienta que he usado anteriormente (DIV Games Studio), aunque extraño mucho DIV Games Studio...

Saludos...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 26, 2010, 07:47:58 PM
veo que ya has actualizado la sdl, pero para cuando los muy esperados binarios actuales ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 26, 2010, 10:32:19 PM
la de caanoo, la tengo compilada, tengo que hacer lo propio con el resto.

aunque no pude testearla como queria...
Title: Re: Avances, Diario de...
Post by: DCelso on November 28, 2010, 02:13:16 AM
SplinterGu, en un windows xp sp3 recien instalado no va el instalador oficial de bennu. Lo ejecutas y se ve por segundos una ventana de msdos y desaparece. He intentado sacar cualquier log posible pero no hay, lo ejecuté desde consola con  1> salida1.txt 2>salida2.txt y nada no saca nada por las salidas, lo intenté ejecutar en modo compatiblidad w95,w98,w2000 y nada, igual.
He visto que el 7zip puede entrar en el .exe y verlo como un zip, he intentado repararlo pero dice que está bien el archivo.
Lo he abierto con el dependency walker y he visto que da un warning: at least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Así que el programa con el que haces los instaladores debe estar mal configurado o depende indirectamente de alguna dll que no tenemos instalada en el sistema y por eso no suelta windows la ventara de error típica de que falta tal dll.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2010, 05:41:17 AM
en teoria aparece la ventana de msdos, esta unos segundos, desaparece y por un rato no aparece nada, y luego aparece la ventana del instalador, quizas falte alguna dll si eso no sucede.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2010, 08:08:39 AM
comprobado y solucionado... el maldito crosscompiler de windows sobre linux, esta dando problemas que desconozco en el exe generado, ya tengo el exe generado en windows y ahora solo añado los archivos y compilo la parte en bennugd desde linux y funciona ahora de maravilla.

en el proximo release vuelve el instalador...

quizas me gustaria un panel un poco mas chico, de 640x300 o algo mas onda 16:9, si alguien se anima...

gracias.
Title: Re: Avances, Diario de...
Post by: DCelso on November 28, 2010, 09:54:27 AM
 ;D, no  me he enterado del proceso que haces, pero me alegra que se haya solucionado el problema :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2010, 04:31:06 PM
el instalador es... pequeño exe con una mochila arriba que contiene un comprimido con la distribucion bennugd y un programa (setup) hecho en bennugd que se encarga de la instalacion... el pequeño exe se encarga de crear las carpetas temporales necesarias para la instalacion, descomprimir bennugd, ejecutar el setup, setear los path del sistema, y luego borrar todas las carpetas temporales.
Title: Re: Avances, Diario de...
Post by: DCelso on November 28, 2010, 06:26:16 PM
:D, un poco guarrete eso de crear carpetas temporales, pero eficaz :D.
Los instaladores como innosetup  (http://www.jrsoftware.org/isinfo.php) hacen algo parecido pero como el "pequeño exe" no es tan pequeño sino que directamente es el GUI instaldor pues no necesita de archivos temporales, él mismo inserta donde hace falta los archivos comprimidos, modifica las claves del registro necesarias, modifica los archicos .ini necesarios y modifica las variables del sistema necesarias :D. Quizás sería una gran opción para el instalador oficial de bennu en windows, es gratuito.

La ventaja que le veo al tuyo, es que si el "pequeño exe" lo compilas en linux o cualquier otro SO, ya tienes instalador para ese otro SO sin tocar nada mas :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 28, 2010, 07:15:08 PM
Quote from: DCelso on November 28, 2010, 06:26:16 PM
:D, un poco guarrete eso de crear carpetas temporales, pero eficaz :D.
Los instaladores como innosetup  (http://www.jrsoftware.org/isinfo.php) hacen algo parecido pero como el "pequeño exe" no es tan pequeño sino que directamente es el GUI instaldor pues no necesita de archivos temporales, él mismo inserta donde hace falta los archivos comprimidos, modifica las claves del registro necesarias, modifica los archicos .ini necesarios y modifica las variables del sistema necesarias :D. Quizás sería una gran opción para el instalador oficial de bennu en windows, es gratuito.

La ventaja que le veo al tuyo, es que si el "pequeño exe" lo compilas en linux o cualquier otro SO, ya tienes instalador para ese otro SO sin tocar nada mas :D.

muchacho, la idea de esto es que el instalador este escrito en BennugD, el pequeño exe solo se encarga de empaquetar todo incluidas las dlls, y no es guarro, es un metodo muy usado, incluso por el innosetup.
Todos los instaladores (o casi) que son 1 solo archivo de instalacion (el innosetup entre ellos) se descompactan en la carpeta %TEMP% y luego ahi ejecutan el instalador real, como lo hace BennuGD.
si no me crees instala algo y mientras lo hace, verifica la carpeta %TEMP% de tu sistema y veras que hace lo mismo.
Title: Re: Avances, Diario de...
Post by: DCelso on November 28, 2010, 08:42:28 PM
Sí?, no se, si lo dices tu, lo creo, pero juraría que era una de las ventajas que decía el autor que tenía éste sobre otros.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2010, 12:01:53 AM
;)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2010, 05:59:15 AM
ya subi los archivos a la pagina, pero falta actualizar el portal que se ve no actualiza automaticamente, asi que no podran ver las descargas por ahora.

entre la novedades:

- se corrigio la colision con el mouse.
- ahora la version caanoo usa la SDL del firmware (hay que probar si se puede usar la mixer del firmware y que suenen los ogg)
- el instalador de windows ya funciona correctamente nuevamente, y hay unas cuantas mejoras, ya no arruina las variables path y no es necesario reiniciar el windows una vez terminada la instalacion, tambien se cambio la forma en que se instalan los archivos, ahora es solo todos los archivos dentro de la carpeta de instalacion, para simplicar todo el tema del instalador y de tantos paths a setear.
- otras cosas que ahora no recuerdo, hay que revisar el log del svn si quieren saber que mas cambios se incluyen.

bueno, esperemos que pixel active las descargas y ya lo podran bajar

saludos.
Title: Re: Avances, Diario de...
Post by: panreyes on November 29, 2010, 08:28:26 AM
Listo :D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2010, 02:27:02 PM
Sigo viendo la 181  :o
Title: Re: Avances, Diario de...
Post by: DCelso on November 29, 2010, 02:37:33 PM
si, eso mismo noté yo, pero en www.bennugd.org en descargas encontrarás la RC19(r182)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2010, 06:21:46 PM
ahi quedo...

bien muchachos, difundan la palabra... ha salido nueva version bennugd! :D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2010, 07:40:47 PM
Vaya, pero yo quiero la ultima del src, la que arregla el port para Caanoo. Tengo que llamar al de la vara ?

(http://4.bp.blogspot.com/__pH2MZ9R3ok/S37QjmhV5CI/AAAAAAAAAQI/8IWmRHpPsMs/s400/t%C3%ADo+la+vara.JPG)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 29, 2010, 08:03:57 PM
es la ultima free... vos te drogas?
Title: Re: Avances, Diario de...
Post by: panreyes on November 29, 2010, 09:02:39 PM
LOL XD
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 29, 2010, 10:36:14 PM
Quote from: SplinterGU on November 29, 2010, 08:03:57 PM
es la ultima free... vos te drogas?

189 = 182 ?
Title: Re: Avances, Diario de...
Post by: Outlaw on November 29, 2010, 11:17:54 PM
Quote from: SplinterGU on November 29, 2010, 08:03:57 PM
es la ultima free... vos te drogas?
;D ;D ;D ;D (jajajajajaja ¡me causó risa en serio!)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 30, 2010, 12:09:35 AM
189???

la ultima es 182.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 30, 2010, 07:09:30 AM
(http://forum.bennugd.org/index.php?action=dlattach;topic=102.0;attach=1626)
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 30, 2010, 12:51:21 PM
un error de tipeo al ponerle nombre a las release... pero a ver... si sacamos unos binarios son los ultimos...

gracias por avisar.
Title: Re: Avances, Diario de...
Post by: DCelso on November 30, 2010, 04:32:58 PM
ya decía yo que solu hubera una revisión de diferencia entre los dos últimos binarios :D.
Por cierto, va a soportar pronto bennuGD SDL 1.3?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 30, 2010, 10:20:25 PM
Yo flipo la verdad xDDDD
Llevas semanas actualizando versiones, y es un 'mero' error de tipeo xDDD
Encima como si no importará que ponga 182 en lugar de 189, igual te pasas al Debian 5, o al Windows 3.1 como si nada xDDD
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 30, 2010, 11:31:45 PM
jajaja, tenes razon, no nos crucifiques, es que ahora con el nuevo sistema de subir los archivos me confundi... el sistema se encarga de renombrarlos.

esperemos que pixel los corrija.
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 30, 2010, 11:33:38 PM
probaron el instalador de windows?

y free, la version de caanoo, podrias comentarme como funciona? intentar tambien eliminar la sdl_mixer y probarla?

es que aun no tengo memoria para probar la caanoo.

gracias
Title: Re: Avances, Diario de...
Post by: panreyes on November 30, 2010, 11:40:03 PM
Quote from: SplinterGU on November 30, 2010, 11:31:45 PM
esperemos que pixel los corrija.

Corregido :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 01, 2010, 12:43:38 AM
Gracias amigos. De momento no he podido probar en Caanoo la nueva version (aunque os machaque pidiendo a gritos la release xDD).
Es finde va ser Bennu a tope, pero esta semana el curro me ocupa todo el tiempo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 01, 2010, 01:44:47 AM
sin apuro... gracias!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 05, 2010, 09:44:35 PM
Chicos, urgencia!!!!
Teneis problemas con la ultima versión compilada de BennuGD para Windows (sólo he probado de momento aqui).

Dice que no encuentra la libreria mod_sound.dll apesar de que existe en el directorio (estoy compilando un juego compilado de antes, con esta nueva version, toda la estrutura es la misma, sólo he puesto las dll's de la nueva version).
Me imagino que es por los cambios de la SDL y de su actualización en el apartado sonoro (por el tema de Caanoo).
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 05, 2010, 10:02:23 PM
Más urgencias!!!!!

He cambiado el runtime en la Caanoo y he probado el juego que ya habia sacado para Caanoo, el Skull (antes tenia el runtime r181 y ahora el r189).
He probado tambien las versiones de Wiz de Geca Blaster 2 y de Art Shot en la Caanoo:

Empiezo por lo bueno:

- Ya funciona el joy tirando de la SDL del firmware
(lo que es bueno, con el mapeo que tenia para Wiz todo funciona igual con Caanoo y no tengo que tocar nada en los joys).

#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime
echo 2 > /proc/cpu/alignment
....

- Lo malo:

- Todos los juegos van a 30% más lentos que antes
(ocurre algo similar a lo que le pasa a Drumpi con el port a Gp2x para el firm oficial)

- La musica sigue sin funcionar bien (tipos de ficheros que te comentaba en el test de sonido)
Tambien es cierto que yo uso el firmware anterior + el fix que pusiste aqui (no he puesto el ultimo todavia y no tenia intenciones de hacerlo).


Es urgente, una pena que casi nadie pruebe en Caanoo, y hasta Splinter lo tiene abandonadillo, he tenido que ser yo a actualizar en openhandhealds....
Pero cuando se enteren que la velocidad va peor, se van a moskear :(
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 05, 2010, 10:23:20 PM
Quote from: FreeYourMind on December 05, 2010, 09:44:35 PM
Chicos, urgencia!!!!
Teneis problemas con la ultima versión compilada de BennuGD para Windows (sólo he probado de momento aqui).

Dice que no encuentra la libreria mod_sound.dll apesar de que existe en el directorio (estoy compilando un juego compilado de antes, con esta nueva version, toda la estrutura es la misma, sólo he puesto las dll's de la nueva version).
Me imagino que es por los cambios de la SDL y de su actualización en el apartado sonoro (por el tema de Caanoo).

usaste el instalador previo borrado de la carpeta de la version anterior?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 05, 2010, 10:26:34 PM
Quote from: FreeYourMind on December 05, 2010, 10:02:23 PM
Más urgencias!!!!!

He cambiado el runtime en la Caanoo y he probado el juego que ya habia sacado para Caanoo, el Skull (antes tenia el runtime r181 y ahora el r189).
He probado tambien las versiones de Wiz de Geca Blaster 2 y de Art Shot en la Caanoo:

Empiezo por lo bueno:

- Ya funciona el joy tirando de la SDL del firmware
(lo que es bueno, con el mapeo que tenia para Wiz todo funciona igual con Caanoo y no tengo que tocar nada en los joys).

#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime
echo 2 > /proc/cpu/alignment
....

- Lo malo:

- Todos los juegos van a 30% más lentos que antes
(ocurre algo similar a lo que le pasa a Drumpi con el port a Gp2x para el firm oficial)

- La musica sigue sin funcionar bien (tipos de ficheros que te comentaba en el test de sonido)
Tambien es cierto que yo uso el firmware anterior + el fix que pusiste aqui (no he puesto el ultimo todavia y no tenia intenciones de hacerlo).


Es urgente, una pena que casi nadie pruebe en Caanoo, y hasta Splinter lo tiene abandonadillo, he tenido que ser yo a actualizar en openhandhealds....
Pero cuando se enteren que la velocidad va peor, se van a moskear :(


tenes que usar el nuevo firmware...

ya dije que no tengo SD para probar la caanoo, estoy esperando me lleguen las que compre, hasta que no lleguen no podre probar ni arrancar con el port de la dingoo...

ya lo avise hace unas semanas...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 05, 2010, 10:30:19 PM
No uso instalador, eso es para los lamers, yo uso el rar, yo substituyo todas las dll's por las nuevas (todo bennu).
Me he fijado que ahora en el rar habeis puesto todo sin carpetas...

No he hecho el update de Caanoo, de todas formas falta compilar los dcb's con la 189 para ser si la velocidad se arregla, de todas formas si esto ocurre habra que avisar a los usuarios del firmware antiguo.
De momento me resisto a actualizarlo por miedo a joder la consola.
A ver si Pixel ya lo ha hecho.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 05, 2010, 11:07:47 PM
Quote from: FreeYourMind on December 05, 2010, 10:30:19 PM
No uso instalador, eso es para los lamers, yo uso el rar, yo substituyo todas las dll's por las nuevas (todo bennu).
Me he fijado que ahora en el rar habeis puesto todo sin carpetas...

No he hecho el update de Caanoo, de todas formas falta compilar los dcb's con la 189 para ser si la velocidad se arregla, de todas formas si esto ocurre habra que avisar a los usuarios del firmware antiguo.
De momento me resisto a actualizarlo por miedo a joder la consola.
A ver si Pixel ya lo ha hecho.


bueno, ahi esta tu problema, necesitas correr el instalador o actualizar la variable path, y borrar los viejos archivos.

con compilar los dcbs no te va a ayudar en nada... necesitas actualizar el firmware o usar la vieja version del runtime, lamentablemente GPH cambio cosas del kernel que requirieron un cambio en los clocks de temporizacion... tanto esto como que hay que usar el nuevo firmware se explico cuando se hizo el cambio...

viejo firmware = viejo runtime
nuevo firmware = nuevo runtime

desconozco si hay forma de conocer la version del kernel, hasta no poder usar la caanoo no podre ver nada del tema...

ahhh... te iba a decir, esta version va mas rapido que la version anterior, pero necesitas el nuevo firmware...

sonidos y demas, como ya te dije cuando subi los binarios, no he podido compilar ni probar la mixer... y tambien te pedi que pruebes con la del firmware eliminando la que esta en el runtime... si algun sonido no funciona en el firm oficial, no puedo hacer nada... todo el soporte de sonido depende de la mixer, no de bennugd... cuando tenga la memoria intentare compilar la mixer con soporte de todos los formatos, pero me parece que no compilan todos los formatos en caanoo.
Title: Re: Avances, Diario de...
Post by: panreyes on December 05, 2010, 11:09:38 PM
Hello, yo actualicé ambas consolas sin problemas, la dev y la final, desde cualquier versión xD
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 12:59:29 AM
Quote from: SplinterGU on December 05, 2010, 11:07:47 PM
Quote from: FreeYourMind on December 05, 2010, 10:30:19 PM
No uso instalador, eso es para los lamers, yo uso el rar, yo substituyo todas las dll's por las nuevas (todo bennu).
Me he fijado que ahora en el rar habeis puesto todo sin carpetas...

No he hecho el update de Caanoo, de todas formas falta compilar los dcb's con la 189 para ser si la velocidad se arregla, de todas formas si esto ocurre habra que avisar a los usuarios del firmware antiguo.
De momento me resisto a actualizarlo por miedo a joder la consola.
A ver si Pixel ya lo ha hecho.


bueno, ahi esta tu problema, necesitas correr el instalador o actualizar la variable path, y borrar los viejos archivos.

con compilar los dcbs no te va a ayudar en nada... necesitas actualizar el firmware o usar la vieja version del runtime, lamentablemente GPH cambio cosas del kernel que requirieron un cambio en los clocks de temporizacion... tanto esto como que hay que usar el nuevo firmware se explico cuando se hizo el cambio...

viejo firmware = viejo runtime
nuevo firmware = nuevo runtime

desconozco si hay forma de conocer la version del kernel, hasta no poder usar la caanoo no podre ver nada del tema...

ahhh... te iba a decir, esta version va mas rapido que la version anterior, pero necesitas el nuevo firmware...

sonidos y demas, como ya te dije cuando subi los binarios, no he podido compilar ni probar la mixer... y tambien te pedi que pruebes con la del firmware eliminando la que esta en el runtime... si algun sonido no funciona en el firm oficial, no puedo hacer nada... todo el soporte de sonido depende de la mixer, no de bennugd... cuando tenga la memoria intentare compilar la mixer con soporte de todos los formatos, pero me parece que no compilan todos los formatos en caanoo.

Te estas liando Splinter, leeme bien, son 2 cosas distintas no las mezcles :)

La version de Windows falla al compilar, no tiene nada que ver con Caanoo, por favor revisalo.

Sobre la Caanoo, me habeis convencido, voy a actualizar al nuevo y espero que todo chute a la perfección, sonido incluido, sino vengo com mi primo de Zumosol xDDD
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 02:19:23 AM
Por cierto ya que estamos.

Cuales pueden ser los motivos para que el prg no encuentre un modulo de los que se estan importando ?
Me refiero a que el modulo este bien compilado, con el nombre externo correcto, pero que siga saliendo el error de que no lo encuentra (como es el caso del mod_sound) ?

Acabo de compilar un modulo para Caanoo, y acabo de llevar esta desagradable sorpresa, no me localiza el modulo, pero lo he revisado todo, y el nombre esta correcto (al exportar las funciones).
Title: Re: Avances, Diario de...
Post by: josebita on December 06, 2010, 02:36:43 AM
Puede que te falte alguna librería de la que depende mod_sound (la sdl_mixer, o alguna de sus dependencias).
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 02:51:32 AM
Si que esta, lo he mirado (recuerda que el la version rar de Bennu que me descargué de aqui, supuestamente la teneis completa).

Sobre mi modulo, puede ser una pista (aunque no creo que dependa de ningun modulo externo que me falte).
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 12:56:40 PM
Ya he actualizado el firmware, ok, el sonido parece que ya chuta al 100%

Sobre la release para Windows, no localiza la mod_sound, porque por algun motivo la SDL_mixer que habeis puesto no la consigue cargar o da error interno, le puse la SDL_mixer antigua, y si pude compilar, pero logicamente ocurrio como la release anterior para Caanoo, donde la mayoria de los sonidos daban error al cargar.

Ya sabeis, hay que revisar la SDL_mixer, ahora mismo a los usuarios que se descarguen vuestra nueva versión no les va funcionar Bennu si usan sonidos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 01:09:42 PM
nop, no estoy mezclando... te he comentado ambas cosas segun corresponde en cada punto.

a ver... si no usas el instalador debes incluir las dlls externas (que no se incluyen en el rar)... has como quieras, pero los paths han cambiado, si no usas el instalador entonces busca la opcion de que funcionen, pero la ultima version funciona bien en windows...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 01:17:07 PM
Pero que dll's externas ? Si hasta ahora todo se incluia en el rar (y la SDL_mixer tambien viene en el rar), y si dejais de hacerlo no tiene sentido, ya que deberian venir todas las dependencias (entiendo que estais acostumbrados a Linux, pero en Windows existe la buena practica de portabilidad de poner todo lo necesario con el juego).
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 01:36:44 PM
Quote from: FreeYourMind on December 06, 2010, 01:17:07 PM
Pero que dll's externas ? Si hasta ahora todo se incluia en el rar (y la SDL_mixer tambien viene en el rar), y si dejais de hacerlo no tiene sentido, ya que deberian venir todas las dependencias (entiendo que estais acostumbrados a Linux, pero en Windows existe la buena practica de portabilidad de poner todo lo necesario con el juego).

diablos no se cuando empece a meter las dlls externas en el rar... bueno, ahi estan...

ya veo, el stripeado de symbolos en la SDL_mixer la ha corrompido... hay que copiar la vieja version de dlls externas...

voy a regenerar esos paquetes...

gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 01:49:46 PM
actualizado, gracias!

karma!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 01:53:09 PM
Entonces en las descargas del rar 189 ya esta el nuevo ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 01:58:48 PM
ya esta el nuevo, puedes probarlo a ver si ahora te funciona? gracias
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 06, 2010, 02:20:25 PM
Pero que distribuciones has actualizado ? Es que las fechas de los archivos son las mismas en el rar !
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 03:04:02 PM
Quote from: FreeYourMind on December 06, 2010, 02:20:25 PM
Pero que distribuciones has actualizado ? Es que las fechas de los archivos son las mismas en el rar !

lo probaste?
Title: Re: Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on December 06, 2010, 09:53:30 PM
alguien podria poner los pasos para actualizar a la ultima version ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 06, 2010, 10:11:06 PM
si te refieres a windows.

borra el directorio de instalacion de bennugd, entra en propiedades del sistema y ve a variables de entorno y quita todos los paths de bennugd en la variable PATH.

luego de esto, solo corre el nuevo instalador.
Title: Re: Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on December 06, 2010, 10:56:13 PM
te refieres al instalador en tu firma splinter?
este:
http://betatester.bennugd.org/snapshot/bgd-1.0.0RC18(r181)-win32.exe
???
Title: Re: Avances, Diario de...
Post by: josebita on December 06, 2010, 10:58:06 PM
El de la página de descargas de la web, hombre.
Title: Re: Avances, Diario de...
Post by: DCelso on December 06, 2010, 10:59:15 PM
a este
http://www.bennugd.org/node/2
Title: Re: Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on December 06, 2010, 11:14:55 PM
gracias...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 07, 2010, 12:02:14 AM
Lo siento pero hasta que no disponibilizeis la versión en rar no podré probarlo.
Title: Re: Avances, Diario de...
Post by: DCelso on December 07, 2010, 12:19:18 AM
es que esto no es la version rar?
http://www.bennugd.org/downloads/bgd-1.0.0RC19(r189)-win32.rar
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 07, 2010, 12:30:45 AM
Si DCElso pero sigue teniendo las dlls antiguas (lo veo por fecha), y apesar de esto, lo volvi a probar, y sigue igual.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 07, 2010, 12:43:31 AM
mierda, copien las dlls viejas y ya...

Pixel, podrias revisar si subo un archivo con el mismo nombre, si me lo acepta o deja el viejo?
Title: Re: Avances, Diario de...
Post by: panreyes on December 07, 2010, 03:06:32 PM
Ya está arreglado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 07, 2010, 03:14:03 PM
funcionaba mal?
Title: Re: Avances, Diario de...
Post by: panreyes on December 07, 2010, 03:40:04 PM
No lo sé xD
Pero ante la duda, si se sube un fichero nuevo, antes de colocarlo en su sitio borramos el que estuviera xD
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 07, 2010, 04:03:31 PM
Sigue el antiguo, no mirais las fechas de las dll's incluidas ?!
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 07, 2010, 04:36:48 PM
lo voy a volver a subir, pero quiero volver a probarlo antes de hacerlo, y con el ultimo upgrade del debien se me cago la VM, y no me deja desinstalar el puto vmware...
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 08, 2010, 01:01:24 AM
ya esta la version windows, regenerado, y vuelto a testear... ahora si funciona...

mil disculpas.
Title: Re: Avances, Diario de...
Post by: blostec on December 08, 2010, 12:22:56 PM
Actualizando, muchas gracias Juan! karma++
Title: Re: Avances, Diario de...
Post by: Prg on December 08, 2010, 10:25:45 PM
gracias, descargado y probado
antes no funcionaban las colisiones + size!=100 y ahora si me funciona.

saludos, y karma++ para splinter.
Title: Re: Avances, Diario de...
Post by: Outlaw on December 12, 2010, 09:18:28 AM
Muchisimas gracias por meterle dia a dia y mantener actualizando...Splinter presidente che!!! karma++

(http://www.sosgroso.com.ar/don.jpg)
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 02:11:41 PM
subido al SVN (aunque necesite mas testing)

- char[] initialization fix         
- full arrays copy support added
- glyph_set fix
- better error messages
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 15, 2010, 03:00:17 PM
Como siempre muerto de prisa xDDD
Da igual, alfinal el fix no me sirve de nada, cuando tengo que crear el array en el cuerpo dentro de if's... Pero bueno, me alegro por los fix para los demás usuarios que hagan copias de sus arrays.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 03:04:16 PM
muerto de prisa? hace casi 2 semanas que tengo el cambio esperando pruebas, pero tu estas ocupado con otras pruebas y esto realmente es muy importante, porque no solo se tratan de copias de arrays, se trata del manejo de todo tipo de dato, si algo sale mal... bueno, gracias por la ayuda con las pruebas... (ironic mode)

puf, los fix no son para solucionarte la vida a una persona, son para arreglar cosas que funcionan mal...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 15, 2010, 03:20:35 PM
Yo no puedo estar en mil frentes, por esperar mas una semana tampoco se moria nadie....
Es curioso que digas eso, cuando tenemos que esperar siempre semanas o meses por los binarios, cuando sabes de sobra, que sólo 2 o 3 privilegiados se pueden compilar el codigo, y ni nos los pasan  ;D
Ahora mismo corrijes Bennu en la r191 a toda prisa, pero despues por los binarios nos tenemos que tomar 3, 4 semanas trincado los dientes  >:(
Title: Re: Avances, Diario de...
Post by: panreyes on December 15, 2010, 03:25:29 PM
FreeYourMind, te quejas por quejarte man :\

Y de hecho, esos privilegiados son todos los que puedan instalarse herramientas básicas de complilación, que los Makefiles van muy bien :\
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 15, 2010, 03:28:30 PM
Diselo a mis portatiles, que se quejan siempre de todo cuando intento compilar cosas que me pasais, que supuestamente sólo le tengo que cambiar las rutas....
Title: Re: Avances
Post by: DjSonyk on December 15, 2010, 03:39:55 PM
Quote from: DCelso on April 30, 2008, 04:56:01 PM
Sasto, aplicando las matemáticas escritas de toda la vida también da ese resultado :D.

Bueno se que no viene al caso pero me interesaba leer este hilo entero para enterarme de todo bien...y encotré un bug a DCelso que ya le tenia ganas,en plan sano no te mosquees, no se que matematicas has estudiado tú,pero las que he estudiado yo se aplican como una maquina,multiplicacions y divisiones se ejecutan antes que las sumas y restas.Si te lo enseñaron en la escuela de distinta forma entoces esque tenias un mal profesor de matematicas :P

15+3*5 =30 sea donde sea,de ahi que las matematicas también se use los parentesis.
Yo la verdad Splinter que las pruebas que realice yo con los chars eran muy basicas y parece que iban bien.
Aun asi estas haciendo un trabajo explendido no solo con bennugd windows/linux,ya con todas plataformas en general y es normal que lo quieras dar vida al asunto. Karma++
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 04:06:01 PM
Quote from: FreeYourMind on December 15, 2010, 03:20:35 PM
Yo no puedo estar en mil frentes, por esperar mas una semana tampoco se moria nadie....
Es curioso que digas eso, cuando tenemos que esperar siempre semanas o meses por los binarios, cuando sabes de sobra, que sólo 2 o 3 privilegiados se pueden compilar el codigo, y ni nos los pasan  ;D
Ahora mismo corrijes Bennu en la r191 a toda prisa, pero despues por los binarios nos tenemos que tomar 3, 4 semanas trincado los dientes  >:(

me pone triste que me diga eso, porque me da la sensacion que no se entiende lo que representa lo que hago para el proyecto... voy a intentar comentar algunos puntos...

1) "Yo no puedo estar en mil frentes, por esperar mas una semana tampoco se moria nadie...."

el tiempo que le dedico al proyecto es tiempo que tengo libre cada tanto, que le robo al trabajo o a mi familia... cada uno de esos minutos los tengo que aprovechar al maximo, asi que no puedo esperar 2 semanas o 3, porque los cambios se me acumulan y luego algun eventual bug en ellos se hace una tarea imposible de resolver... y ni contar que uso el SVN como backup, no quiero perder nuevamente fuentes...

y demas esta decir que estar en el frente de probar las versiones "customizadas" de Caanoo o Wiz que genera DCelso, existiendo ya versiones oficiales de los mismos... no le veo sentido.

2) "Es curioso que digas eso, cuando tenemos que esperar siempre semanas o meses por los binarios, cuando sabes de sobra, que sólo 2 o 3 privilegiados se pueden compilar el codigo, y ni nos los pasan  ;D
Ahora mismo corrijes Bennu en la r191 a toda prisa, pero despues por los binarios nos tenemos que tomar 3, 4 semanas trincado los dientes  >:("

a menos que sean bugs criticos, no puedo andar poniendo binarios por cada cambio, por el simple hecho que muchas veces son pocas lineas de codigo y porque no quiero aguantarme a nadie diciendo que saco binarios como chorizos.

tambien te comento, que compilarlos es muy simple una vez con el entorno preparado, y la unica complicacion para preparar los entornos es compilar las librerias externas, que en cualquier caso no se necesitan compilar, se bajan los paquetes compilados y se ponen en el directorio, luego no es ciencia, configura + make, esta explicado muchisimas veces por todos lados en el foro.
ahora si vos empezas a tocar los makefiles, a queres usar el codeblocks, metiendo mano donde no hay que meterla, entonces eso es otra cosa...

tampoco podes compararme con Uds. diciendo que yo les pido pruebas y las necesito rapido, cuando yo soy 1 sola persona y Uds. cientos... una simple prueba, un minimo compromiso... no les estoy exigiendo nada, ni siquiera les exijo dinero a cambio de lo que hago (que una donacion de 1$ a 5$ no me desagrada para nada), una simple mano en hacer unas pruebas para beneficio de todo es lo unico que pido... vamos que creo que no es mucho.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 15, 2010, 04:18:07 PM
Te entiendo Splinter, pero nunca he despreciado tu trabajo, si hablo así contigo es porque ya tenemos confianza para hacerlo, de lejos cuestiono tu trabajo.

Pero tienes que entender dos cosas tambien, nosotros tambien trabajamos (por lo menos yo y la mayoria de bennuseros), y tambien el tiempo se escasea, si te digo para esperar 2,3 semanas es porque por lo menos yo prefiero tener tiempo de probar y decirte que si funciona, que no probar y decirte que me va bien....

Sobre DCElso, creo que lo que hace por Bennu, es por pasion como la mayoria que estamos, y como tu mismo ya has dicho en ocasiones, hay cosas que motivan y otras no, por ejemplo ya han exisitido posibles cambios sujeridos para Bennu y no los quisiste hacer porque te aburria y no lo veias divertido de hacer, era mas bien una obligación, pues lo mismo ocurre con nosotros que usamos Bennu, ni siempre lo que hacemos nos resulta divertido, pero siempre intentamos ayudar a los demás del foro en sus pruebas.

Tu crees que me resulta divertido estar cambiando mis 2 sd's entre varias consolas de GPH para hacer varias pruebas, donde cada vez que lo hago tengo que cambiar el runtime y otros parametros ? Pues no, aún así lo hago por vosotros, ya que lo haceis tambien por mi.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 04:38:44 PM
creo que hay un grave error... nunca dejo de hacer algo en bennugd porque me aburre o porque no lo veo divertido... nada tiene que ver eso con mi trabajo en el proyecto... muchisimas cosas de las que hice, me hubiesen gustado no hacerlas... si hay algo que no hago en bennugd no es porque me aburra o no me resulte divertido, sino que porque no lo creo conveniente para el proyecto... muchas de las sugerencias que hacen al proyecto son para adaptar el lenguaje a sus actuales proyectos, y eso nunca puede ser asi, es el proyecto el que se tiene que adaptar al lenguaje, no al revez.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on December 15, 2010, 06:01:39 PM
Quote from: SplinterGU on December 15, 2010, 02:11:41 PM
subido al SVN (aunque necesite mas testing)

- char[] initialization fix        
- full arrays copy support added
- glyph_set fix
- better error messages

adelante----->>>> , continuemos .....  (recordad que es navidad!!!)

Gracias +karma
Title: Re: Avances, Diario de...
Post by: Drumpi on December 15, 2010, 07:12:11 PM
Perdona, Splinter, pero la versión "alpha" para test la pusiste hace como cinco días:
http://forum.bennugd.org/index.php?topic=1869.msg32989#msg32989
Yo aun no he tenido tiempo ni de pensarme en probarlo (y mira que lo tengo fácil, pero modificar los scripts de compilación me da pereza) :D :D :D

Nah, haré una prueba en cuanto pueda con los programas que tengo, con y sin compilación (para testear la compatibilidad de los DCB), aunque nunca hago nada "raro" (ya sabes, C style: todo a mano ;D).
Ya me conoces, soy reacio a los cambios de los programas ^^U

Aun así, muchas gracias por la nueva release :)
Title: Re: Avances
Post by: DCelso on December 15, 2010, 07:51:12 PM
Quote from: DjSonyk on December 15, 2010, 03:39:55 PM
Quote from: DCelso on April 30, 2008, 04:56:01 PM
Sasto, aplicando las matemáticas escritas de toda la vida también da ese resultado :D.

Bueno se que no viene al caso pero me interesaba leer este hilo entero para enterarme de todo bien...y encotré un bug a DCelso que ya le tenia ganas,en plan sano no te mosquees, no se que matematicas has estudiado tú,pero las que he estudiado yo se aplican como una maquina,multiplicacions y divisiones se ejecutan antes que las sumas y restas.Si te lo enseñaron en la escuela de distinta forma entoces esque tenias un mal profesor de matematicas :P

15+3*5 =30 sea donde sea,de ahi que las matematicas también se use los parentesis.
Yo la verdad Splinter que las pruebas que realice yo con los chars eran muy basicas y parece que iban bien.
Aun asi estas haciendo un trabajo explendido no solo con bennugd windows/linux,ya con todas plataformas en general y es normal que lo quieras dar vida al asunto. Karma++
¿?, lo siento ni idea de que me hablas. bennu y yo ahí también vemos 30.
Title: Re: Avances, Diario de...
Post by: DCelso on December 15, 2010, 07:56:44 PM
Creo que ya se por donde vas, a ver el operador asignación es distinto del operador igual. ¿Es eso a lo que te refieres?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 08:31:38 PM
Quote from: Drumpi on December 15, 2010, 07:12:11 PM
Perdona, Splinter, pero la versión "alpha" para test la pusiste hace como cinco días:
http://forum.bennugd.org/index.php?topic=1869.msg32989#msg32989
Yo aun no he tenido tiempo ni de pensarme en probarlo (y mira que lo tengo fácil, pero modificar los scripts de compilación me da pereza) :D :D :D

Nah, haré una prueba en cuanto pueda con los programas que tengo, con y sin compilación (para testear la compatibilidad de los DCB), aunque nunca hago nada "raro" (ya sabes, C style: todo a mano ;D).
Ya me conoces, soy reacio a los cambios de los programas ^^U

Aun así, muchas gracias por la nueva release :)

me perdi, que scripts de compilacion hay que modificar?
Title: Re: Avances, Diario de...
Post by: Drumpi on December 15, 2010, 08:36:08 PM
Los mios: compilo mediante scripts, lo que me ahorra la instalación de Bennu y me facilita la selección de versión a usar en cada momento :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 08:52:16 PM
con reemplazar los binarios no tenes que modificar ningun script.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 15, 2010, 10:42:33 PM
- Added 1bpp png support (save/load)
Title: Re: Avances, Diario de...
Post by: josebita on December 16, 2010, 07:39:57 AM
Quote from: SplinterGU on December 15, 2010, 10:42:33 PM
- Added 1bpp png support (save/load)
¡Anda!. Ni sabía que se pudiera hacer una png de 1bpp, gracias ;)
Title: Re: Avances, Diario de...
Post by: Drumpi on December 16, 2010, 02:10:16 PM
Yo me conformaba con sacar un PNG de 8/16/24 bits, pero mira, no sabía de los PNG de 1 bit. Gracias :)
Ya no sé ni cuantos karmas te he dado en los últimos tres días :D
Title: Re: Avances, Diario de...
Post by: blostec on December 20, 2010, 05:46:25 PM
Quote from: SplinterGU on December 15, 2010, 10:42:33 PM
- Added 1bpp png support (save/load)

Gran trabajo, gracias Juan!  :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 20, 2010, 05:52:19 PM
Quote from: blostec on December 20, 2010, 05:46:25 PM
Quote from: SplinterGU on December 15, 2010, 10:42:33 PM
- Added 1bpp png support (save/load)

Gran trabajo, gracias Juan!  :)

Gran observación, gracias blostec! :)
Title: Re: Avances, Diario de...
Post by: Windgate on December 23, 2010, 10:07:43 PM
OFFTOPIC: Splinter, tus dibujos en blanco y negro todo pixelado al pie de tus posts me son familiares, ¿De qué se trata?
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 23, 2010, 10:25:49 PM
Quote from: Windgate on December 23, 2010, 10:07:43 PM
OFFTOPIC: Splinter, tus dibujos en blanco y negro todo pixelado al pie de tus posts me son familiares, ¿De qué se trata?

:D :D :D

;) ;) ;)

son codigos de barra con mensajes... el que tenia antes tambien lo era, pero de otro tipo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 23, 2010, 10:27:32 PM
nuevo avance...

- Multiple sources can be compiled from command line (like #include), for example:

bgdc prg1.prg prg2.prg

this same that compile prg1.prg and do #include "prg2.prg" in prg1.prg
Title: Re: Avances, Diario de...
Post by: panreyes on December 24, 2010, 12:04:39 AM
Wow! nice! :D

But I'd rather force the developer to create specific prgs to do that, so it will be more ordered!

Something like this:

wii.prg:
include "game.prg";
include "wiicontrols.prg";

windows.prg:
include "game.prg";
include "windowscontrols.prg";
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 24, 2010, 12:12:21 AM
English in english forum please, 'Advances, Diary of...'
Title: Re: Avances, Diario de...
Post by: Noivern on December 24, 2010, 12:47:25 AM
Quote from: Windgate on December 23, 2010, 10:07:43 PM
OFFTOPIC: Splinter, tus dibujos en blanco y negro todo pixelado al pie de tus posts me son familiares, ¿De qué se trata?
http://es.wikipedia.org/wiki/Código_QR (http://es.wikipedia.org/wiki/C%C3%B3digo_QR)
Title: Re: Avances, Diario de...
Post by: josebita on December 24, 2010, 02:06:23 AM
Es el mismo texto que tenía antes, pero ahora en código QR.

En cuanto a la actualización, ya la teneis para Lucid en mi PPA; los paquetes se están copiando para Maverick y para Karmic y deberían estar listos en unos minutos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 24, 2010, 02:09:49 AM
esto es parte de un cambio importante que estoy pensando/intentando implementar, creo que algunos ya se estaran imaginando de que va.
Title: Re: Avances, Diario de...
Post by: josebita on December 24, 2010, 02:15:40 AM
Yo personalmente no tengo ni idea, pero ánimo con ello :)
Title: Re: Avances, Diario de...
Post by: DCelso on December 24, 2010, 10:45:23 AM
Quote from: SplinterGU on January 21, 2010, 04:09:32 PM

...
------------------------------------------------------------------------
r126 | SplinterGU | 2010-01-15 19:29:46 -0300 (vie 15 de ene de 2010) | 2 lines

- path_find memory leak fix
...
A partir de esta versión ha dejado de funcionar mi ejemplo de path_find, pega un casque tremendo ahora que bloquea la recepción de eventos de ratón y teclado :(.
Fijo que me basaba en algun fallo anterior del path_find, sin saberlo. Tengo que revisar el ejemplo.
Title: Re: Avances, Diario de...
Post by: blostec on December 24, 2010, 11:42:24 AM
Quote from: SplinterGU on December 23, 2010, 10:27:32 PM
nuevo avance...

- Multiple sources can be compiled from command line (like #include), for example:

bgdc prg1.prg prg2.prg

this same that compile prg1.prg and do #include "prg2.prg" in prg1.prg

Sos grande Juan!  :)
Title: Re: Avances, Diario de...
Post by: Drumpi on December 24, 2010, 01:54:36 PM
Yo no termino de entender hacia dónde va esto, pero bueno, ahí está (bueno, sí, para compilar según el SO).

¿En el ejemplo ese, prg2.prg se "incluiría" antes o después del código de prg1.prg? Lo digo por el orden de declaraciones y todo eso.
Title: Re: Avances, Diario de...
Post by: blostec on December 24, 2010, 02:23:51 PM
Por lo que entiendo del ejemplo, en primer lugar se debe indicar el .prg principal y luego los que contienen procesos que se invocan en el primero. De todas formas, supongo que ante la duda se puede seguir compilando con el tradicional #include dentro del .prg principal.
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 24, 2010, 04:23:17 PM
no, no, no tiene nada que ver con multiples operativos, no entiendo que quiso decir PiXeL.

ahora esto es como cualquier compilador, donde uno puede poner varios fuentes y generar un solo objeto binario, por linea de comando.

para modos de comparacion, es como hacer un #include, no prentende en lo mas minimo evitar el #include, por el contrario el uso de #include sera muy usado pronto, o por lo menos eso me gustaria.
Title: Re: Avances, Diario de...
Post by: Drumpi on December 25, 2010, 02:16:47 AM
Se podría hacer un script que decidiese el segundo prg que usar según el SO, que tuviese funciones con el mismo nombre (en ambos prg secundarios) pero código distinto según si se ejecuta en windows, linux o Wiz (por ejemplo, usando distintos comandos de sistema).
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 25, 2010, 02:43:52 AM
Quote from: Drumpi on December 25, 2010, 02:16:47 AM
Se podría hacer un script que decidiese el segundo prg que usar según el SO, que tuviese funciones con el mismo nombre (en ambos prg secundarios) pero código distinto según si se ejecuta en windows, linux o Wiz (por ejemplo, usando distintos comandos de sistema).

eso lo haces con OS_ID
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 28, 2010, 05:26:34 AM
bien, nuevas funciones, new_fnt o fnt_new.

sintaxis:

FNT_NEW (CHARSET, DEPTH)
FNT_NEW (FILE, GRAPH, CHARSET, WITDH, HEIGHT, FIRST, LAST, FLAGS)

donde CHARSET puede ser:

CHARSET_ISO8859
CHARSET_CP850

donde flags puede ser

NFB_VARIABLEWIDTH
NFB_FIXEDWIDTH

la mas interesante es la ultima, que nos permite a partir de un bitmap crear una fuente en memoria.

un codigo como el siguiente:


import "mod_video";
import "mod_wm";
import "mod_text";
import "mod_map";
import "mod_key";

private
   a,b,c;
   g;
   font, font2;
begin

   set_mode(640,480);

   g = png_load("font.png");
   font = fnt_new(0,g,CHARSET_ISO8859,16,16,0,255,0);

   write_int(font,0,0,0,&a);
   write_int(font,0,20,0,&b);
   write_int(font,0,40,0,&c);

   write(font,0,60,0,"hello world!");

   write_int(0,320,0,0,&a);
   write_int(0,320,20,0,&b);
   write_int(0,320,40,0,&c);

   write(0,320,60,0,"hello world!");

   font2 = fnt_new(0,g,CHARSET_ISO8859,16,16,0,255,1);

   write_int(font2,0,100,0,&a);
   write_int(font2,0,120,0,&b);
   write_int(font2,0,140,0,&c);

   write(font2,0,160,0,"hello world!");

   while( !key( _ESC ) && !exit_status )
       a++;
       b--;
       c*=2;
       if ( c == 0 ) c = 1; end
       frame;
   end

end


y un bmp como el siguiente:

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

produce una salida como la siguiente:

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

tambien se soportan bitmaps verticales de 1 sola fila o de 1 sola columna de fonts.

espero sea de su agrado.
Title: Re: Avances, Diario de...
Post by: Noivern on December 28, 2010, 05:55:18 AM
buenísimo, te vas a tapar en karmas xD
Title: Re: Avances, Diario de...
Post by: Fede on December 28, 2010, 06:47:27 AM
¡Eres mi semiDiooooooooos!  ;D

¡KARMA!
Title: Re: Avances, Diario de...
Post by: josebita on December 28, 2010, 07:39:03 AM
¡Genial! Gracias.
Title: Re: Avances, Diario de...
Post by: blostec on December 28, 2010, 08:10:59 AM
Impresionante, muchísimas gracias Juan. Karma up!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on December 28, 2010, 11:48:13 AM
Fantastico!!! Yo tenia un sistema interno para escribir fuentes a traves de imagenes guardadas en el fpg (fuentes de imagenes), con esto ya veo que no lo voy a necesitar :)
Karma!
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 28, 2010, 12:17:46 PM
me alegro que les haya gustado...

ahora estoy trabajando en un cambio y mejora muy importante... y luego de esto me pongo con el port de dingoo... antes de continuar con el plan de trabajo...

si yo no hago publico el plan de trabajo es porque me gusta sorprenderlos...
Title: Re: Avances, Diario de...
Post by: blostec on December 28, 2010, 12:44:28 PM
Y a nosotros que nos sorprendas  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on December 28, 2010, 02:22:23 PM
fix al sistema, para que ahora permita poner accesos a arrays de structuras sin poner [], solo se podra realizar para arrays de structuras y al primer elemento.

esto es valido

scroll.camera
scroll[0].camera

esto no es valido para acceder al address:

scroll

para acceder al mismo como un puntero, lo correcto es

&scroll
&scroll[0]
Title: Re: Avances, Diario de...
Post by: Drumpi on December 31, 2010, 04:13:58 PM
¡Uau! Geniales las funciones de los FNT, ahora sí que se pueden personalizar el tema de las fuentes.
¿Los flags de los charsets modifican de alguna manera el orden en el que se leen los caracteres del mapa o se ordenan en el FNT o es sólo para indicarlo en el fichero FNT de salida?

Bueno, karma++... y espero que esto no sea una inocentada :D
...y a la espera de nuevas sorpresas ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 01, 2011, 01:04:55 AM
usa el charset, no es solo en la salida.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 01, 2011, 11:36:26 PM
- Blitter fix
Title: Re: Avances, Diario de...
Post by: Fede on January 02, 2011, 07:58:43 AM
¿Taducción please?

Según la wiki Blitter es un chip de gráfico dedicado a la transferencia de memoria.

¿Que dices que has arreglado? ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 02, 2011, 11:35:07 AM
es la parte del motor encargada de dibujar en memoria (video o de un mapa)
Title: Re: Avances, Diario de...
Post by: Fede on January 02, 2011, 01:18:59 PM
Me olía algo de eso.

!Muchas gracias Splinter! ¡Ala! ¡Karma!

Title: Re: Avances, Diario de...
Post by: SplinterGU on January 02, 2011, 05:56:48 PM
:)

gracias.
Title: Re: Avances, Diario de...
Post by: Drumpi on January 02, 2011, 11:56:08 PM
¿Está subido al SVN? Estaba mirando código y creo que me hará falta en un futuro (espero que no muy lejano).
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 03, 2011, 01:00:19 AM
que cosa?
Title: Re: Avances, Diario de...
Post by: Drumpi on January 03, 2011, 01:51:41 PM
Los cambios de la libblit.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 03, 2011, 03:57:24 PM
si, drumpi, ya estan.
Title: Re: Avances, Diario de...
Post by: DCelso on January 03, 2011, 05:24:37 PM
sip, y la última versión que he compilado para GP2X tb los trae ya. :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 07:27:40 AM
- Optimize memory used for strings in compilation
- Fix max sources files in debug information (before 256, now 4093)
- Fix dcb version detection
- Several improvements in the core
- Better debug info messages
- Compilation warnings now are disabled by default
- New lib system, now can be possible build dcl libraries
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 07:41:26 AM
Bien, por fin lo tengo... me ha costado un buen trabajo...

el cambio del que hablaba se trata de un nuevo sistema con el cual es posible crear librerias para bennugd a nivel dcb.

esto es, dcbs que aportan funciones escritas en codigo bennugd.

esto nos permite liberar funciones de usuario sin necesidad de liberar codigo, asi sea por seguridad o porque queremos tener todo mas prolijo y ordenado, o simplemente porque no queremos compartir codigo.

si bien estos nuevos archivos .dcl no son mas que .dcb, pero tienen alguna que otra pequeña modificacion para hacer posible esto.

ejemplos de uso:

para crear una libreria, vamos a tomar el ejemplo de key_event.lib.

solo haremos:

bgdc --libmode key_event.lib

esto nos generara un bonito key_event.dcl, el cual luego utilizaremos en nuestros proyectos.

ahora, estos dcl tienen una limitacion, no contienen constantes ni tampoco contienen defines, por ende necesitamos un .h como el siguiente (key_event.h):


#ifndef __KEY_EVENT_LIB
#define __KEY_EVENT_LIB

#define _key_pressed    0
#define _key_down       1
#define _key_up         2

#define _key(k,ev) ((ev==_key_down)?(  _key_state[ k ][ _key_use ] && !_key_state[ k ][ _key_use ^ 1 ] ): \
                    (ev==_key_up  )?( !_key_state[ k ][ _key_use ] &&  _key_state[ k ][ _key_use ^ 1 ] ): \
                    ( _key_state[ k ][ _key_use ]))

#endif


NOTA: no se deben declarar las funciones que existan en la lib si la estamos linkeando, ya que sino dara error. Pero si es una funcion que pensamos usar como externa y no la estamos linkeando en ese momento (generar otra dcl que usara una dcl), si conviene declararla para evitar conversiones raras.

ahora para compilar nuestro programa usando la libreria previamente generada, hacemos:

bgdc -L key_event.dcl key_event_test.prg

esto nos generara nuestro dcb de toda la vida, pero incluyendo todas las funciones de la libreria.

espero que les haya gustado y empiecen a liberar y compartir cosas usando este metodo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 07:41:56 AM
hoy durante el dia prometo generar release binaria.
Title: Re: Avances, Diario de...
Post by: josebita on January 04, 2011, 08:27:25 AM
¡Muchas felicidades, Splinter! ¡Vaya regalazo de año nuevo!.
Voy a subir el paquete actualizado a mi PPA.
Title: Re: Avances, Diario de...
Post by: blostec on January 04, 2011, 11:02:32 AM
Impresionante, gran trabajo Juan. Esperamos los binarios con los brazos abiertos  ;D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 04, 2011, 11:56:24 AM
Gracias juan, espero que no estropee el espirito libre de Bennu, un gran update.
Title: Re: Avances, Diario de...
Post by: Drumpi on January 04, 2011, 01:46:36 PM
Mmmm, esto podría usarlo para mi motor de tiles, genial. Karma.

Aunque claro, la idea era que se tuviese el código para modificar el proceso tile o realizar mejoras al propio motor según se necesitase ^^U
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 02:59:01 PM
Quote from: FreeYourMind on January 04, 2011, 11:56:24 AM
Gracias juan, espero que no estropee el espirito libre de Bennu, un gran update.

yo espero que mejore el espiritu colaborativo de muchos que les gustaria colaborar con funciones o engines o lo que sea, pero no lo hacen porque no quieren compartir el codigo...

incluso podria dar paso a comercializar librerias escritas en bennugd, por ejemplo, un gui pago, un motor de tiles, funciones de encripcion, etc.

Quote from: Drumpi on January 04, 2011, 01:46:36 PM
Mmmm, esto podría usarlo para mi motor de tiles, genial. Karma.

Aunque claro, la idea era que se tuviese el código para modificar el proceso tile o realizar mejoras al propio motor según se necesitase ^^U

se pueden mejorar o agregar funciones a una libreria, creando otra nueva que usa la que ya esta cerrada, tipo wrapper.
Title: Re: Avances, Diario de...
Post by: Prg on January 04, 2011, 03:00:00 PM
genial, karma++

vamos a tenerles que hacer algunos cambios a nuestros ides a la hora de compilar... je je

Esto me cae genial para gui_so, donde hay funciones que no me gustaría que fueran modificadas como escanea (una pequeña modificación posiblemente desestabilice el programa)..

saludos
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 04, 2011, 03:02:14 PM
Opino lo mismo  ;D
Title: Re: Avances, Diario de...
Post by: DCelso on January 04, 2011, 03:42:27 PM
Splinter, genial, karma mas mas, siempre sorprendiéndonos :D, para cuando soporte de clases? :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 03:53:03 PM
odio las clases... desde lo mas profundo de mi ser...
Title: Re: Avances, Diario de...
Post by: DCelso on January 04, 2011, 04:40:43 PM
 :o, tonces descartao  pa siempre :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 05:28:06 PM
no para siempre, pero no a corto plazo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 05:43:46 PM
nueva version binaria liberada con todos los fix de las ultimas semanas/mes.
Title: Re: Avances, Diario de...
Post by: Noivern on January 04, 2011, 05:54:52 PM
:o asi que esto era jojjojo
Muy bien, como dijo prg, ahora toca repensar como hacer las cosas más modulares, de modo de reutilizarlas más fácilmente.
Me gusta, karma++

y karma-- por tu odio a las clases jajajajajaja
noooo, mentira :P

Quote from: FreeYourMind on January 04, 2011, 11:56:24 AM
Gracias juan, espero que no estropee el espirito libre de Bennu, un gran update.

No lo creo, al contrario, siempre puedes pasar el código fuente junto a tus librerías, de hecho lo deja más ordenado: modifícalo bajo tu propio riesgo, pero si quieres el original, ahi estará el .dcl
Title: Re: Avances, Diario de...
Post by: Prg on January 04, 2011, 06:36:09 PM
QuoteNo lo creo, al contrario, siempre puedes pasar el código fuente junto a tus librerías, de hecho lo deja más ordenado: modifícalo bajo tu propio riesgo, pero si quieres el original, ahi estará el .dcl

Estoy completamente de acuerdo.. je je. a descargar y probar
Title: Re: Avances, Diario de...
Post by: Prg on January 04, 2011, 06:38:37 PM
Quote from: SplinterGU on January 04, 2011, 05:43:46 PM
nueva version binaria liberada con todos los fix de las ultimas semanas/mes.


dónde está la versión?

la busqué acá y no veo nada del 2011

http://betatester.bennugd.org/snapshot/?C=M;O=D
Title: Re: Avances, Diario de...
Post by: DCelso on January 04, 2011, 06:57:26 PM
pues como las últimas veces, no está en su firma sino en la página principal de bennu, en la que parece ser que nadie entrais :D

http://www.bennugd.org/node/2
Title: Re: Avances, Diario de...
Post by: Fede on January 04, 2011, 08:47:13 PM
¡KARMAAAAAAAAAAAAAAAAAA!

Gracias Splinter por el nuevo binario.

Cada cual se alegra de lo que más le hace falta.  ;D

Que conste que yo pienso liberar todo lo que haga.  :D

Y las dcl me parece muy buena idea para hacerte tus propias librerias bien ordenaditas.

(Y no sé porque que me huelo que una dcl se puede descompilar).  8)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 10:24:51 PM
Quote from: Fede on January 04, 2011, 08:47:13 PM
¡KARMAAAAAAAAAAAAAAAAAA!

Gracias Splinter por el nuevo binario.

Cada cual se alegra de lo que más le hace falta.  ;D

Que conste que yo pienso liberar todo lo que haga.  :D

Y las dcl me parece muy buena idea para hacerte tus propias librerias bien ordenaditas.

(Y no sé porque que me huelo que una dcl se puede descompilar).  8)

si podes descompilar la dcl, entonces podes descompilar un dcb.

y si es asi, pasa el programa porque yo no logro hacerlo.
Title: Re: Avances, Diario de...
Post by: Prg on January 04, 2011, 10:37:46 PM
Quote from: DCelso on January 04, 2011, 06:57:26 PM
pues como las últimas veces, no está en su firma sino en la página principal de bennu, en la que parece ser que nadie entrais :D

http://www.bennugd.org/node/2

ahh
je je
perdón  ::)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 10:46:05 PM
Pongo un resumen de los cambios de la version binaria liberada:

- char[] initialization fix         
- full arrays copy support added
- glyph_set fix
- better error messages
- Added 1bpp png support (save/load)
- Multiple sources can be compiled from command line (like #include)
- new fonts functions, new_fnt or fnt_new.

syntax:

FNT_NEW (CHARSET, DEPTH)
FNT_NEW (FILE, GRAPH, CHARSET, WITDH, HEIGHT, FIRST, LAST, FLAGS)

where CHARSET can be:

CHARSET_ISO8859
CHARSET_CP850

where flags can be:

NFB_VARIABLEWIDTH
NFB_FIXEDWIDTH

The most sexy function is the last one [ FNT_NEW (FILE, GRAPH, CHARSET, WITDH, HEIGHT, FIRST, LAST, FLAGS) ], this function allow us create font from maps loaded in memory.

- Video blitter crash fix
- Optimize memory used for strings in compilation
- Fix max sources files in debug information (before 256, now 4093)
- Fix dcb version detection
- Several improvements in the core
- Better debug info messages
- Compilation warnings now are disabled by default
- New lib system, now can be possible build dcl libraries.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 04, 2011, 11:38:49 PM
Ni en sueños decompilareis un dcb xDDD
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 04, 2011, 11:47:52 PM
Quote from: FreeYourMind on January 04, 2011, 11:38:49 PM
Ni en sueños decompilareis un dcb xDDD

no seria posible, porque llevaria mucho trabajo y dependeria de la version del bgdc, y si yo cambio algo en el bgdc, ya el decompilador no serviria, necesitaria upgrade y asi podria ser eternamente.

aun asi, hay cosas que quizas podrian ser dificiles de detectar.
Title: Re: Avances, Diario de...
Post by: Drumpi on January 05, 2011, 12:38:35 AM
Lo de decompilar el BCD me recuerda a aquella vez que Pixel se puso a trastear en el DCB de Venturer y casi descubre el huevo de pascua que tiene. Encontró uno, pero el que lleva el intérprete me lo guardo para el posible juicio por su uso ilícito :D :D :D

Yo de clases no entiendo mucho: sé que son una serie de funciones públicas y otras privadas para manejar "algo" (ya sea una lista enlazada, una imagen...) y dejarlo encapsulado, de forma que sólo se pueda acceder usando sus propias funciones, lo cual beneficia el orden, la portabilidad y la actualización del código (no sé, como las funciones de acceso a los textos en bennu).
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 05, 2011, 12:40:26 AM
claro que se puede interpretar el dcb y ver que hace, como se puede interpretar un asm... pero de ahi a hacer un decompilador hay un paso gigantesco.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 05, 2011, 01:10:23 AM
- subida version con fix, que corrije el tema de que las funciones eran consideradas process
Title: Re: Avances, Diario de...
Post by: Noivern on January 05, 2011, 03:52:35 AM
Quote from: SplinterGU on January 05, 2011, 01:10:23 AM
- subida version con fix, que corrije el tema de que las funciones eran consideradas process
¿Esto no afecta las librerias y modulos importados verdad?
Justo acabo de subir el binario de mi juego y las librerias de windows a mi mediafire con la version anterior (sin fix), ojalá me salve de recompilar y resubir :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 05, 2011, 03:53:40 AM
si no usas dcl no hay problema.
Title: Re: Avances, Diario de...
Post by: Fede on January 05, 2011, 06:29:46 AM
Quote from: FreeYourMind on January 04, 2011, 11:38:49 PM
Ni en sueños decompilareis un dcb xDDD

Nunca digas nunca jamás.  ;D

Title: Re: Avances, Diario de...
Post by: blostec on January 05, 2011, 03:07:31 PM
Bajando la nueva release, muchas gracias Juan. karma up!
Title: Re: Avances, Diario de...
Post by: panreyes on January 06, 2011, 12:15:02 PM
Señores fede & free: su chat lo he separado a otro tema.

Si quereis hacer un offtopic teneis una sección para ello.
Y no se permite insultar a todas las mujeres del mundo, especialmente las peruanas. Esto va por ti free, ya que varias personas han dado un toque sobre ese mensaje.

Frenad, y hablar de lo que toca aquí. Pa otras cosas MasterC... Offtopic
Title: Re: Avances, Diario de...
Post by: josebita on January 06, 2011, 12:16:02 PM
Quote from: FreeYourMind on January 06, 2011, 10:10:35 AM
Mi último offtopic.

Si me puedo pillar novia, gorda, analfabeta, sin dientes, peruana, y infiel, si, me creo que no la tengo porque no quiero, tienes razón xDDD
Un usuario se ha quejado de que le parece despectiva la forma en la que dices "peruana", Free.
La verdad es que los últimos posts de la conversación que te traes con Fede son un poco chungos y no vienen mucho a cuento. Cortaos un poco, anda.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 06, 2011, 12:39:36 PM
Vaya, no era mi intención entrad en temas raciales, mis disculpas a los visitantes ocultos que se han sentido ofendidos, pero vamos, es que nos sentimos tan a gusto que a veces nos olvidamos que mas gente nos mira  :D
Tema cerrado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 06, 2011, 06:49:37 PM
- Subidos un par de fix que afectan al compilador y al runtime

estoy generando los binarios.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 06, 2011, 07:40:40 PM
subida la nueva version fixeada...

por favor, esparcid la noticia.
Title: Re: Avances, Diario de...
Post by: blostec on January 06, 2011, 08:39:58 PM
Entendido Juan, actualizando mi Bennu, de nuevo muchas gracias.  :)
Title: Re: Avances, Diario de...
Post by: Noivern on January 07, 2011, 12:21:15 AM
Gente hay que volver a bajar la última version, que el servidor no la actualizaba bien.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 07, 2011, 12:22:50 AM
justo estaba buscando este hilo...

estoy por subir nueva version caanoo, que corrije el problema de diferentes velocidades entre distintas versiones de firmware.

solo subire version caanoo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 09, 2011, 05:27:21 AM
la maldita version dingux no esta queriendo generar las .so

diablos!
Title: Re: Avances, Diario de...
Post by: Fede on January 09, 2011, 07:35:39 AM
¡Animo Splinter!

Yo no tengo dingoo pero estoy loco por pillarme una.  ;D

Besitos.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 09, 2011, 07:55:07 AM
Quote from: SplinterGU on January 09, 2011, 05:27:21 AM
la maldita version dingux no esta queriendo generar las .so

diablos!

Te lo dijé en su día, compila Bennu con su SDK oficial nativo, te va ser mas fácil de lo que piensas,incluso yo consegui compilar cosas para el y encima que si lo logras ya no necesitas versión Dingux ya que funcionará en cualquier Dingoo, y de esta forma, pensando que vas por el camino más fácil, sólo conseguiras rular Bennu en un numero limitado de Dingoo's cuyos dueños han instalado Dingux, pero hay mucha gente que se compra la consola y no tiene ni idea de como ponerle Dingux.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 09, 2011, 03:44:47 PM
el SDK nativo me parece que no tiene SDL, por lo menos no lo vi... ya del vamos es una mierda conseguir el toolchains, el SDK que encontre nativo y oficial no tiene SDL.

asi que para nada sera facil.

el camino mas facil? puf, muchacho, no se justifica el tiempo que se perdera en el port nativo con algo de lo que no se saca ni 1 centavo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 09, 2011, 03:57:14 PM
ademas, no te preocupes que me voy a cargar el sistema de configure en dingux...

si en dingoo nativo existe SDL, y demas libs necesarias, avisame y lo compilo en nativo.

saludos.
Title: Re: Avances, Diario de...
Post by: Transdiv on January 09, 2011, 04:03:31 PM
Corregidme si me equivoco, pero por lo que lei x ahi parece que las nuevas versiones de la Dingo van a soportar el Dingux en forma standart (no se si eso implique la desaparición del modo nativo). La version SDL para modo nativo tiene todavia algunos problemas y la verdad que no he visto casi entusiasmo x ella, por lo menos en el foro la gente no hace muchas consultas sobre ella. Las mas de las cosas parecen salir para el Dingux y ahora que ha habido un acercamiento entre chinachip y boboo se supone que posteriores versiones del Dingux soportaran lo que x ahora solo hay en modo nativo (Radio y otros).


Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 09, 2011, 05:20:20 PM
Pues que se acerquen tambien a Splinter.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 09, 2011, 10:49:09 PM
Quote from: Transdiv on January 09, 2011, 04:03:31 PM
Corregidme si me equivoco, pero por lo que lei x ahi parece que las nuevas versiones de la Dingo van a soportar el Dingux en forma standart (no se si eso implique la desaparición del modo nativo). La version SDL para modo nativo tiene todavia algunos problemas y la verdad que no he visto casi entusiasmo x ella, por lo menos en el foro la gente no hace muchas consultas sobre ella. Las mas de las cosas parecen salir para el Dingux y ahora que ha habido un acercamiento entre chinachip y boboo se supone que posteriores versiones del Dingux soportaran lo que x ahora solo hay en modo nativo (Radio y otros).




no entendi... el modo nativo en bennugd no existe para dingoo.
Title: Re: Avances, Diario de...
Post by: Transdiv on January 10, 2011, 06:35:24 AM
En resumen me referia que probablemente te va ser mas facil hacer el BennuGD para el Dingux que para el modo Nativo (a pesar de la joda que significa instalar el Dingux para los usuarios comunes y silvestres).
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 10, 2011, 11:42:40 AM
ah, si, si, eso ya lo teniamos en claro...
Title: Re: Avances, Diario de...
Post by: MythomizeR on January 10, 2011, 05:12:45 PM
Parece ser que el figura de Harteex portó la SDL al FW nativo de la Dingoo...

http://boards.dingoonity.org/dingoo-development/native-now-has-sdl/ (http://boards.dingoonity.org/dingoo-development/native-now-has-sdl/)

Me alegro Splinter de que finalmente consiguieras la Dingoo, no creo que te arrepientas de ello por lo práctica que es y por su precio... aunque creo que fue donada, mejor que mejor :-)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 10, 2011, 05:47:07 PM
gracias karma!

si, fue donada.
Title: Re: Avances, Diario de...
Post by: Transdiv on January 10, 2011, 08:32:09 PM
Quote from: MythomizeR on January 10, 2011, 05:12:45 PM
Parece ser que el figura de Harteex portó la SDL al FW nativo de la Dingoo...

http://boards.dingoonity.org/dingoo-development/native-now-has-sdl/ (http://boards.dingoonity.org/dingoo-development/native-now-has-sdl/)

Me alegro Splinter de que finalmente consiguieras la Dingoo, no creo que te arrepientas de ello por lo práctica que es y por su precio... aunque creo que fue donada, mejor que mejor :-)

Si te fijas en las fechas desde el 26 de setiembre no hay ningun comentario sobre el tema. Como que me da la duda que ese port sea muy exitoso y de todos modos por lo que he vuelto a leer, el Dingux remplazara al Nativo (a menos claro que haya un doble boot)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 10, 2011, 08:46:18 PM
ah, transdiv, no te habia entendido antes, dices que oficialmente reemplazaran al sistema nativo por dingux?
Title: Re: Avances, Diario de...
Post by: Transdiv on January 10, 2011, 09:26:14 PM
Quote from: SplinterGU on January 10, 2011, 08:46:18 PM
ah, transdiv, no te habia entendido antes, dices que oficialmente reemplazaran al sistema nativo por dingux?

No queda claro si van a coexistir de alguna manera, pero si, El soporte a Dingux sera oficial tanto con Chinachips como con la otra compañia que creaba los falsos dingoos.

www.dingux.com (http://www.dingux.com)

http://boards.dingoonity.org/other-game-systems/a-380!/?PHPSESSID=eisig4dlfv4e4liujnoa4sirg2 (http://boards.dingoonity.org/other-game-systems/a-380!/?PHPSESSID=eisig4dlfv4e4liujnoa4sirg2)











Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 03:44:53 PM
me doy por vencido con la version dingux...

compila todo, pero parece que tengo un sdk de mierda o el dingux que instale no va.

no se, la info de dingux es una recagada, no hay nada claro, todo desparramado por todos lados, el site de dingux es un blog donde no hay secciones how-to ni nada.

si alguien tiene entorno dingux, pediria que por favor intente compilar con la version del svn, que ya esta todo incluido para compilar.

si no hay avances, abandonare esto por unos dias, tengo albañiles en casa haciendome el baño nuevo y obligandome a levantarme a las 8:00am... estoy muerto de sueño...
Title: Re: Avances, Diario de...
Post by: Transdiv on January 11, 2011, 03:54:32 PM
Quote from: SplinterGU on January 11, 2011, 03:44:53 PM
me doy por vencido con la version dingux...

compila todo, pero parece que tengo un sdk de mierda o el dingux que instale no va.

no se, la info de dingux es una recagada, no hay nada claro, todo desparramado por todos lados, el site de dingux es un blog donde no hay secciones how-to ni nada.

si alguien tiene entorno dingux, pediria que por favor intente compilar con la version del svn, que ya esta todo incluido para compilar.

si no hay avances, abandonare esto por unos dias, tengo albañiles en casa haciendome el baño nuevo y obligandome a levantarme a las 8:00am... estoy muerto de sueño...

Hummm...... Algo de eso escuche; Por eso creo que habia hasta un proyecto opendingux. De todos modos hombre tomate el tiempo que quieras, que total, no te pagamos sueldo para hacer eso. Esperemos que con el soporte mas o menos oficial de las futuras versiones mejoren la documentación.

PD: Lo que si algunos usuarios van a llorar un poquito al escucharte esto.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 04:29:19 PM
gracias, lo importante es que compila... y me sirvio para mejorar el sistema de builds general.
Title: Re: Avances, Diario de...
Post by: DCelso on January 11, 2011, 05:22:50 PM
olee, algo es algo, por cierto splinter, que va a pasar con mod_ffi?, actualmente no compila ni para atrás, y clarop  casi nunca me acuerdo y me desespero hasta que veo ffi por algun lado y digo, olee, a eliminar de la compilación.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 11, 2011, 05:27:46 PM
Y que modulo es ese con nombre tan raro ?
Title: Re: Avances, Diario de...
Post by: DCelso on January 11, 2011, 05:37:56 PM
nu ze, exporta esto:

DLCONSTANT  __bgdexport( mod_ffi, constants_def )[] =
{
    { "FFI_FIRST_ABI"       , TYPE_DWORD    , FFI_FIRST_ABI     },

    /* ---- Intel x86 Win32 ---------- */
#ifdef _WIN32
    { "FFI_SYSV"            , TYPE_DWORD    , FFI_SYSV          },
    { "FFI_STDCALL"         , TYPE_DWORD    , FFI_STDCALL       },
    /* TODO: Add fastcall support for the sake of completeness */
#endif

    /* ---- Intel x86 and AMD x86-64 - */
#if !defined(_WIN32) && (defined(__i386__) || defined(__x86_64__))
    { "FFI_SYSV"            , TYPE_DWORD    , FFI_SYSV          },
    { "FFI_UNIX64"          , TYPE_DWORD    , FFI_UNIX64        },      /* Unix variants all use the same ABI for x86-64  */
#endif

    { "FFI_DEFAULT_ABI"     , TYPE_DWORD    , FFI_DEFAULT_ABI   },
    { "FFI_LAST_ABI"        , TYPE_DWORD    , FFI_LAST_ABI      },

    { NULL                  , 0             , 0                 }
} ;

/* ----------------------------------------------------------------- */
/* Declaracion de funciones                                          */

DLSYSFUNCS  __bgdexport( mod_ffi, functions_exports )[] =
{
    { "FFI_DECLARE" , "ISSSS"   , TYPE_INT  , modffi_declare    },
    { "FFI_CALL"    , "IPP"     , TYPE_INT  , modffi_call       },
    { 0             , 0         , 0         , 0                 }
};

Pero depende de una libffi que no existe, quizas sea un wrapper para esto
http://sourceware.org/libffi/
algo relaccionado con cargar librerías externas
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 06:32:57 PM
Quote from: DCelso on January 11, 2011, 05:22:50 PM
olee, algo es algo, por cierto splinter, que va a pasar con mod_ffi?, actualmente no compila ni para atrás, y clarop  casi nunca me acuerdo y me desespero hasta que veo ffi por algun lado y digo, olee, a eliminar de la compilación.


esta eliminado de la compilacion, posiblemente ese modulo desaparezca para integrarlo directamente al core.

que es eso? pues nada, un modulo que permite hacer llamadas a cualquier dll estandard del operativo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 07:07:38 PM
- se deja de usar openssl para las versiones consolas, y se usa libdes en su reemplazo, que es mucho mas liviana.
Title: Re: Avances, Diario de...
Post by: Drumpi on January 11, 2011, 07:11:18 PM
Quote from: SplinterGU on January 11, 2011, 07:07:38 PM
- se deja de usar openssl para las versiones consolas, y se usa libdes en su reemplazo, que es mucho mas liviana.

Esto puede provocar que vuelva a funcionarme el compilador de Windows (el cygwin tenía incompatibilidades con openssl) ;D
Lo que no significa que el port para firm oficial vaya a funcionar.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 07:22:04 PM
las version pc siguen con openssl, pero es tan facil como modificar el configure para que no lo haga y que compile la libdes.

Title: Re: Avances, Diario de...
Post by: Drumpi on January 11, 2011, 07:30:44 PM
Muy bien, lo haré para el próximo port de GP2X.

Por cierto, descansa, no te fuerces: si no puede ser, déjalo un par de días y verás cómo te viene la inspiración. Pero mientras tengas obras en casa, procura usar el tiempo libre que tengas en descansar, porque yo sé lo que es eso (obras+trabajo+poco dormir) y no rindes nada.
Sé que no me vas a hacer caso, pero bueno, es mi consejo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 11, 2011, 07:39:58 PM
gracias... intento hacerte caso. :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2011, 05:52:35 AM
new version released
Title: Re: Avances, Diario de...
Post by: Fede on January 21, 2011, 06:33:52 AM
Me he bajado la versión RC20f formato RAR de la web y no me vá.

Me dice:

D:\Bennu Mis Progamas\Bennu File Manager\Bennu File Manager: doesn't exist or is
n't version 7 DCB compatible
Presione una tecla para continuar . . .

¿Alguien más la ha probado?

Gracias y saludos.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on January 21, 2011, 08:03:31 AM
Para cuando version funcional de Dingoo ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2011, 11:33:17 AM
puede ser que no funcione el empaquetado, ahora lo pruebo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2011, 11:42:49 AM
verificado, el bgdc esta corrupto, ahora lo corrijo, gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2011, 11:59:29 AM
fixeado, con la version dingoo estoy trabajando...
Title: Re: Avances, Diario de...
Post by: Fede on January 21, 2011, 02:00:49 PM
Ok. Ya va.  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 21, 2011, 02:43:37 PM
joya!

es que semi-automatice un poco mas la compilacion y generacion de instalables... y bueno, habia que depurar algo en los scripts.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 23, 2011, 03:35:16 AM
empieza a funcionar el port dingux... el bgdc no va, pero el bgdi si... aunque no tengo joys y los timers revientan...

vamos a seguir probando.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 23, 2011, 05:48:34 AM
se viene la version dingux


Ya tengo una version que empieza a funcionar en bennugd... tengo varios temas por resolver...

1) la SDL crashea al inicializar los TIMERS, no se si ya lo hara por defecto sola esta incializacion o voy a tener fallos

2) no se como mapea las teclas la SDL, por lo menos los cursores y el SELECT van como cursores y ESC... tengo que averiguar el resto.

3) probe el galaxian de wiz/caanoo, funciona bien, salvo el disparo, aun no se que tecla va. y a buena velocidad.
probe tambien una demo que hice de componer una pantalla con 512 procesos o 756, no recuerdo, y si que se pone pesado ahi.

bueno, nada de momento eso...

ahh, me olvide, bgdc no funciona en dingux, pero tampoco me molesta ni me interesa eso...
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 23, 2011, 06:28:36 AM
mas resultados...

- crashean los wav al cargarlos
- no me aparecen los fonts cargados con load_fnt (quizas se lo mismo que le pasa a joseba con los endians)

- el tema de las keys ya las tengo resueltas, el jkeys va fantastico ya.

eso es todo por ahora...
Title: Re: Avances, Diario de...
Post by: josebita on January 23, 2011, 03:30:54 PM
Quote from: SplinterGU on January 23, 2011, 06:28:36 AM
[...]
- no me aparecen los fonts cargados con load_fnt (quizas se lo mismo que le pasa a joseba con los endians)
[...]
DungixDingux es bigendian?

Bueno, si lo solucionas avisa de cómo, a ver si la solución vale para la Wii tb.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 23, 2011, 04:33:39 PM
no se si es endian... lo voy a tener que verificar.
Title: Re: Avances, Diario de...
Post by: DCelso on January 23, 2011, 09:39:31 PM
y para psp.

A mi me escama que un programa bennu que carga un gráfico con un load_png o load_pcs se compile en pc (para obtener el dcb) y al ejecutarlo en psp o wii se vean los colores invertidos.

Y en cambio un programa que usa las funciones new_map,map_clear, RBG para crear un gráfico dinámicamente se compile en pc y al ejecutarlo en psp vaya perfecto, es decir igual.

Parece fallo solo del mod_map y de como inserta la imagen en el sdl_surface, la funcion RGB inserta correctamente cada componente de color en su sitio bueno del sdl_surface.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 02, 2011, 05:46:49 PM
Una cosilla...

En la última release, la función draw_box() no trabaja correctamente, pues el 2º y el 4º parámetro no trabajan de igual forma...

En concreto, si no recuerdo mal, en el segundo parámetro ('x2' o 'ancho', ahora no recuerdo qué indica, pero creo que es el 'ancho') sí que se incluye el píxel indicado a la hora de pintar, mientras que en el cuarto (el relativo a 'y2' o 'alto'), no...

¿No existe un hilo en concreto para indicar los bugs? para no poner esto aqui...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 02, 2011, 06:16:42 PM
Quote from: MythomizeR on February 02, 2011, 05:46:49 PM
Una cosilla...

En la última release, la función draw_box() no trabaja correctamente, pues el 2º y el 4º parámetro no trabajan de igual forma...

En concreto, si no recuerdo mal, en el segundo parámetro ('x2' o 'ancho', ahora no recuerdo qué indica, pero creo que es el 'ancho') sí que se incluye el píxel indicado a la hora de pintar, mientras que en el cuarto (el relativo a 'y2' o 'alto'), no...

¿No existe un hilo en concreto para indicar los bugs? para no poner esto aqui...

es correcto, creo que es cosa del blitter
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 03, 2011, 01:11:21 AM
Quote from: MythomizeR on February 02, 2011, 05:46:49 PM
Una cosilla...

En la última release, la función draw_box() no trabaja correctamente, pues el 2º y el 4º parámetro no trabajan de igual forma...

En concreto, si no recuerdo mal, en el segundo parámetro ('x2' o 'ancho', ahora no recuerdo qué indica, pero creo que es el 'ancho') sí que se incluye el píxel indicado a la hora de pintar, mientras que en el cuarto (el relativo a 'y2' o 'alto'), no...

¿No existe un hilo en concreto para indicar los bugs? para no poner esto aqui...

fixeado, era la libdraw... fixee varias funciones... gracias por el aviso. karma.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 03, 2011, 11:35:55 AM
Todo sea por el crecimiento del Bennu y de la buena comunidad que lo rodea ;-)
Title: Re: Avances, Diario de...
Post by: blostec on February 04, 2011, 04:50:30 PM
Bajando la RC20, como siempre, muchas gracias Juan. karma++
Title: Re: Avances, Diario de...
Post by: Outlaw on February 04, 2011, 05:57:30 PM
Gracias Splinter por el trabajo que te tomas siempre! karma++ y ++ ++ ...Saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 04, 2011, 05:58:39 PM
de nada, los 2 ultimos fix todavia no estan reflejados en los binarios.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 05, 2011, 04:36:19 AM
dingux beta

http://www.fileserver.cc/zu26ddb4c7iq.html

no funcionan los wav... puede que haya algun problema con los timers...

los scripts son iguales a los de wiz o caanoo, salvo que hay que poner export delante de LD_LIBRARY_PATH y de PATH

agradeceria testing.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 05, 2011, 04:53:53 AM
Yuuyuuuy, son las 6 de la mañana, despues de una noche llena de fiesta y sexo esto el la mejor noticia xDDD
Title: Re: Avances, Diario de...
Post by: Fede on February 05, 2011, 08:16:01 AM
Jua, jua, jua.

¡Y karma para Splinter!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 05, 2011, 11:31:49 AM
Splinter pasanos un fichero de arranque para el menu dingux y un ejemplo de prueba please.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 05, 2011, 04:06:03 PM
no hay ejemplos, pueden usar los de caanoo o wiz... para agregar al gmenu, hay que tocar un archivo de configuracion que no me acuerdo el path.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 05, 2011, 04:20:04 PM
No hay forma....
Los otros juegos de dingux si que van pero Bennu no hay forma que arranque (no llega ni a llamar el bgdi), el error que me da no lo consigo visualizar porque se sale muy rápido de nuevo al menu. Tengo los mismos problemas que tue al probar el anterior port de Bennu a Dingux.

Te paso los scripts del dmenu que es el que utilizo:

En 'local\dmenu\themes\toddler\menu_game.cfg' tengo mi link al juego:

MenuItem Bennu
{
Icon = "res/games/alice.png"
Name = " Bennu"
Executable = "./shootem"
WorkDir = "/usr/local/games/shootem"
}


Despues el juego lo tengo en 'local\games\shootem' y el script de llamada es:

#!/bin/sh
cd `dirname $0`
SDL_NOMOUSE=1 ./bgdi shootem.dcb 1>stdout1.txt 2>stderror2.txt

(Aqui tengo todos los ficheros de bennu en la misma carpeta del juego).


Otra forma que tenia era esta:


#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../mipsel-linux
PATH=$PATH:../mipsel-linux
echo 2 > /proc/cpu/alignment
bgdi shootem.dcb


Aqui tengo el runtime en 'local\games\mipsel-linux'


El problema parece que hay algun problema al ejecutar ./shootem, el cual ni llega a ejecutar bennu, pero no se que error es
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 05, 2011, 04:23:24 PM
free, que dije yo al respecto de los PATH y LD_LIBRARY_PATH? (lo mismo para cualquier otra variable)

Quote from: SplinterGU on February 05, 2011, 04:36:19 AM
dingux beta

http://www.fileserver.cc/zu26ddb4c7iq.html

no funcionan los wav... puede que haya algun problema con los timers...

los scripts son iguales a los de wiz o caanoo, salvo que hay que poner export delante de LD_LIBRARY_PATH y de PATH

agradeceria testing.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 05, 2011, 04:24:23 PM
por mas que tengas todos los archivos en la carpeta del juego, tenes que setear el LD_LIBRARY_PATH con export delante

el "echo 2 > /proc/cpu/alignment" me parece que no va, no me acuerdo
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 05, 2011, 04:45:21 PM
Lo he puesto así a ver si es correcto:

#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../mipsel-linux
export PATH=$PATH:../mipsel-linux
bgdi shootem.dcb 1>stdout1.txt 2>stderror2.txt


El error que pone creo que es este:

Read-only file system
Unable to open file system for writing
unable to execute command "./shootem"

O sea como te dijé, no llega ni a ejecutar, lo raro es que si funciona en los demás juegos del menu!!!!


Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 05, 2011, 05:12:40 PM
He encontrado esto:

http://boards.dingoonity.org/dingux-general/error-booting-dingux/
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 05, 2011, 08:10:13 PM
Splinter el último binario para todas las plataformas (RC21 - r228) tiene el fix de la fuente del sistema (1px de separación) ?

Hay alguna nueva actualización prevista para este mes o principios del próximo ?

Lo pregunto porque quiero hacerle test de estabilidad, comprobación de memoria, etc a mi juego en breve y quedarme en una versión concreta de Bennu para todas las plataformas.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 06, 2011, 08:46:16 PM
Puedes poner el script para dingux Splinter y la estrutura de carpetas ? Yo he ultrapasado el problema anterior pero ahora no me pilla el bgdi.

Sobre la compilación de Bennu, el makefile de windows (variables de compilación) que viene en el src, es para compilar la version de Bennu para windows estando en Linux ? Donde puedo descargar el compilador que tienes referenciado en el ? (el gnu-win)
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 06, 2011, 11:07:34 PM
Quote from: FreeYourMind on February 05, 2011, 04:45:21 PM
Lo he puesto así a ver si es correcto:

#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../mipsel-linux
export PATH=$PATH:../mipsel-linux
bgdi shootem.dcb 1>stdout1.txt 2>stderror2.txt


El error que pone creo que es este:

Read-only file system
Unable to open file system for writing
unable to execute command "./shootem"

O sea como te dijé, no llega ni a ejecutar, lo raro es que si funciona en los demás juegos del menu!!!!




esta intentando correr en un filesystem de solo lectura, quizas tengas proteccion en le memory, y entonces fallan los >... pero asi deberia funcionar.

Quote from: BoMbErLiNk on February 05, 2011, 08:10:13 PM
Splinter el último binario para todas las plataformas (RC21 - r228) tiene el fix de la fuente del sistema (1px de separación) ?

Hay alguna nueva actualización prevista para este mes o principios del próximo ?

Lo pregunto porque quiero hacerle test de estabilidad, comprobación de memoria, etc a mi juego en breve y quedarme en una versión concreta de Bennu para todas las plataformas.

si, tiene el fix.

en principio, salvo corregir bugs, no tengo pensado nada para este mes.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 06, 2011, 11:15:23 PM
Quote from: FreeYourMind on February 05, 2011, 04:45:21 PM
Lo he puesto así a ver si es correcto:

#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../mipsel-linux
export PATH=$PATH:../mipsel-linux
bgdi shootem.dcb 1>stdout1.txt 2>stderror2.txt


El error que pone creo que es este:

Read-only file system
Unable to open file system for writing
unable to execute command "./shootem"

O sea como te dijé, no llega ni a ejecutar, lo raro es que si funciona en los demás juegos del menu!!!!




lo que mencionas del link es probable pasa si quitas o apagas la consola sin que haya hecho sync de los datos a disco (desconectar de forma segura)... con lo que se corrige pasandole un scandisk a la memoria, o fsck en linux... y tendras que volver a copiar los archivos mal copiados a la memoria...

a mi me ha pasado varias veces en linux.
Title: Re: Avances, Diario de...
Post by: DCelso on February 06, 2011, 11:18:52 PM
eso también pasa por no expulsar (o desmontar) debidamente el pendrive, memoria o lo que sea usb . :D
Ya ma pasao mas de una vez con la memory stick de la psp. :D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 06, 2011, 11:39:11 PM
Sip, saco siempre las tarjetas a lo bruto, pero en windows nunca tuve problema.

Lo que quiero es el script de ejecución tal cual, porque ya no me fio de nada. y respondeme a lo de compilar bennu tb  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 12:29:37 AM

#!/bin/sh
unset OS_ID

## Is important set first bgd-runtime folder
LD_LIBRARY_PATH_BAK=$LD_LIBRARY_PATH
PATH_BAK=$PATH

export LD_LIBRARY_PATH=../bgd-runtime:$LD_LIBRARY_PATH
export PATH=../bgd-runtime:$PATH

### For use Wiz games on Caanoo uncomment the next lines
#OS_ID=8
#export OS_ID

echo 2 > /proc/cpu/alignment

for prg in *.prg; do
    name=`basename $prg .prg`
    bgdc $prg
    bgdi $name
done

sync

LD_LIBRARY_PATH=$LD_LIBRARY_PATH_BAK
PATH=$PATH_BAK


este es el que me funciona a mi...

no entiendo que querias saber del compilador.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 07, 2011, 05:12:17 AM
Quotesi, tiene el fix.

en principio, salvo corregir bugs, no tengo pensado nada para este mes.

Gracias.

He estado mirando aquí http://www.bennugd.org/downloads/old/, pero no veo la RC17 (r165) o anteriores, hay alguna forma de conseguirlas ?

Me gustaría verificar una cosa de rendimiento sobre Wiz  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 05:15:20 AM
si no esta, no esta... yo fui limpiando mi pc.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 07, 2011, 05:18:51 AM
Ok, voy a cruzar dedos a ver si alguien ha usado esas librerias en algun proyecto de Wiz..

Puedes pasarte por el msn un momento ?  ;D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 07, 2011, 07:14:05 AM
No cuadra ese script, el nombre de la carpeta que nos pasaste de la distro para Dingux no se corresponde...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 12:30:56 PM
Quote from: FreeYourMind on February 07, 2011, 07:14:05 AM
No cuadra ese script, el nombre de la carpeta que nos pasaste de la distro para Dingux no se corresponde...

free, lo que subi es un comprimido con los binarios, no es un paquete de distribucion, avise claramente que es una beta solo binarios, sin scripts ni ejemplos.

renombra la carpeta o modifica el script.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 07, 2011, 01:54:42 PM
Quote from: BoMbErLiNk on February 07, 2011, 05:12:17 AMHe estado mirando aquí http://www.bennugd.org/downloads/old/, pero no veo la RC17 (r165) o anteriores, hay alguna forma de conseguirlas ?

Me gustaría verificar una cosa de rendimiento sobre Wiz  :)

Yo tengo algunas versiones antiguas para windows, esa en concreto no, pero en el disco duro tengo las versiones r106, r110, r131, r147 y r181 (no se si entre las copias de seguridad tendré más), te las puedo comprimir y mandar.
Title: Re: Avances, Diario de...
Post by: DCelso on February 07, 2011, 04:56:57 PM
yo te puedo recompilar cualquiera, solo es elegir la versión de SVN, descargar y compilar :D. Lo malo es que no tengo windows, debería de explicarnos Splinter a free y a mí cómo hace la compilacion cruzada para generar binarios windows desde linux :D.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 07, 2011, 05:41:08 PM
Si no recuerdo haber leido mal, usaba VirtualBox ;D
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 07, 2011, 06:29:34 PM
Gracias Drumpi y Dcelso  :)

Yo tengo el entorno para compilar en Windows, pero es la que tengo  :)

Estuve toda la mañana buscando la r165 para Wiz y la encontre en " Agressive pong ".

Resulta que voy al limite con la memoria en Wiz y la última versión consume 1MB más que la de agosto, tampoco entiendo como Wiz reserva 24MB de 64MB que tiene, si hubiera algo como polluxset para liberar memoria al entrar en aplicaciones ya seria genial  :P

Supongo que usare la de agosto para todas las plataformas (me falta la de linux), por el tema del dcb que son 205MB y para tener una sola descarga con todos los ports  :)
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 07, 2011, 06:42:24 PM
Siento tener que dar un poco por saco con otro, diría, pequeño bug...

No se si será un problema general con el operador [code language="bennu" options="singleline"]/=[/code], pero lo cierto es que al ir a hacer [code language="bennu" options="singleline"]x_scale/=2;[/code]
no trabaja bien, mientras que con la versión "desintetizada" [code language="bennu" options="singleline"]x_scale=x_scale/2;[/code], sí...

Seguro que no es novedad, pero bueno.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 07, 2011, 06:55:54 PM
Quote from: BoMbErLiNk on February 07, 2011, 06:29:34 PM
Gracias Drumpi y Dcelso  :)

Yo tengo el entorno para compilar en Windows, pero es la que tengo  :)

Estuve toda la mañana buscando la r165 para Wiz y la encontre en " Agressive pong ".

Resulta que voy al limite con la memoria en Wiz y la última versión consume 1MB más que la de agosto, tampoco entiendo como Wiz reserva 24MB de 64MB que tiene, si hubiera algo como polluxset para liberar memoria al entrar en aplicaciones ya seria genial  :P

Supongo que usare la de agosto para todas las plataformas (me falta la de linux), por el tema del dcb que son 205MB y para tener una sola descarga con todos los ports  :)

Como superaste el problema de los 50 megas de dcb en Wiz ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 08:27:19 PM
Quote from: DCelso on February 07, 2011, 04:56:57 PM
yo te puedo recompilar cualquiera, solo es elegir la versión de SVN, descargar y compilar :D. Lo malo es que no tengo windows, debería de explicarnos Splinter a free y a mí cómo hace la compilacion cruzada para generar binarios windows desde linux :D.

no pide windows, ademas yo no hago compilacion cruzada para compilar la version windows... uso vmware.

Quote from: BoMbErLiNk on February 07, 2011, 06:29:34 PM
Gracias Drumpi y Dcelso  :)

Yo tengo el entorno para compilar en Windows, pero es la que tengo  :)

Estuve toda la mañana buscando la r165 para Wiz y la encontre en " Agressive pong ".

Resulta que voy al limite con la memoria en Wiz y la última versión consume 1MB más que la de agosto, tampoco entiendo como Wiz reserva 24MB de 64MB que tiene, si hubiera algo como polluxset para liberar memoria al entrar en aplicaciones ya seria genial  :P

Supongo que usare la de agosto para todas las plataformas (me falta la de linux), por el tema del dcb que son 205MB y para tener una sola descarga con todos los ports  :)

la ultima version (en wiz) no deberia consumir 1mb mas, en pc windows si, pero en los sistemas embebidos no deberia.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 07, 2011, 08:38:22 PM
Y porque ocurre eso ? Igual tendré que hacer lo mismo, porque en Wiz estoy al limite tb.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 08:43:31 PM
Quote from: FreeYourMind on February 07, 2011, 08:38:22 PM
Y porque ocurre eso ? Igual tendré que hacer lo mismo, porque en Wiz estoy al limite tb.

por que ocurre que cosa? lo del mega extra? porque en windows se pueden soportar paths hasta 32kb, y entonces las cadenas que soportaban paths se agrandaron a ese tamaño en windows... creo que ya lo explique cuando comente/corregi el bug que no permitir correr el bgdc en dingux y psp.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 07, 2011, 08:46:31 PM
Free todavia no he probado el DCB mochila en wiz, solo se lo que ocupará.

Splinter, lo comentaba porque en la última versión no puedo terminar algunas fases siguiendo el mismo procedimiento, la memoria rasca entre 38MB y 40MB, a partir de 39MB se pone a 1fps, lo que seria genial es encontrar algun comando o algo para liberar memoria  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 07, 2011, 08:48:22 PM
que recuerde no hay nada que haga incrementar mas memoria en wiz, por lo menos no esa cantidad.

y si vos no alocas memoria, no se que es.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 08, 2011, 01:09:07 AM
Como dije en el otro foro, existe una zona de memoria llamada "zona alta" que es ligeramente más rápida y que se guarda para OpenGL, si no me he confundido de consola ^^U
Para acceder a ella hay un truco... No sé cómo es, creo que algo de crear un puntero a esa zona de memoria o algo así.

Yo tuve que retrasar la salida del primer juego de Venturer por culpa de un problema similar, porque tenía un FPG enorme que no entraba en la memoria de la GP2X (28MB o mas), y tuve que partirlo. Aun así, habían algunas animaciones a pantalla completa que no pude reducir, y es que de los 32MB que tenía, sólo se podían usar 16MB con cada procesador (y sólo estaba usando 1), a eso le quitas la memoria del sistema, y la de Fenix y se me quedaban en unos ridículos 8MB (a veces 9MB). De ahí salió el tema del motor de scroll tileado ;D

Si no, siempre puedes cambiar la WIZ por una CAANOO que tiene el doble de RAM :D :D :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 08, 2011, 01:21:12 AM
realmente no se si es mas rapida, yo no lo aseguraria...
Title: Re: Avances, Diario de...
Post by: Drumpi on February 08, 2011, 01:27:34 AM
No he dicho nada, hilo equivocado ^^U

pero sí, dicen que es algo más rápida, y se recomienda usar esa si se quiere dar un pequeño empujoncito de rendimiento a los programas más exigentes.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 08, 2011, 02:08:54 AM
Segun he estado mirando se trata de la libreria warm_2.6.24.ko, para acceder a más memoria y ganar algo de rendimiento.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 08, 2011, 02:16:58 AM
un .ko es un modulo del kernel, no hay una libreria asociada a esta?

voy a investigar.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on February 08, 2011, 02:34:51 AM
Según he entendido funciona en conjunto con unas SDL :
http://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,23,271

Quote2. Supports MMUHACK/wARM Module for more performance.
  (If you wanna use this feature, please copy mmuhack.ko or warm_2.6.24.ko on same directory with libSDL-1.2.so.0.
   But you don't have to copy it if mmuhack.ko or warm_2.6.24.ko already exists.)

Pero me da que esto deshace los cambios previamente realizados con polluxset, porque da menos rendimiento  :P, aunque si es cierto que rasca menos en la carga de recursos, como si hubiera más RAM
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 08, 2011, 02:48:36 AM
es un modulo del kernel, hay que hacer llamadas ioctl para usarlas, por lo que veo del codigo del mame4all, es un modulo que cachea memoria, creo, no estoy seguro, que cachea el area de memoria alta.

por otro lado, el mame4all, tiene un codigo que accede a la memoria alta directamente, haciendo unas funciones de alocacion de memoria a lo bruto, simplemente dando direcciones de memoria alta por bloques y marcandolas en un array interno en el mismo codigo... lo que me hace dudar en que pasaria si otro programa que este corriendo en background hace uso de esta memoria alta o si incluso lanzamos otro programa con exec (por ejemplo de bennugd)... tengo que revisar mejor el codigo, pero en principio diria que esto haria desastres, ya que dichas funciones de alocacion no las controla el kernel sino el programa.

deberia preguntar a chui o franxis.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 08, 2011, 04:07:21 PM
Quote from: SplinterGU on February 05, 2011, 04:36:19 AM
dingux beta

http://www.fileserver.cc/zu26ddb4c7iq.html

no funcionan los wav... puede que haya algun problema con los timers...

los scripts son iguales a los de wiz o caanoo, salvo que hay que poner export delante de LD_LIBRARY_PATH y de PATH

agradeceria testing.
Me gustaría hacer pruebas con la beta de dingux bennu, pero necesito alguna indicación de cómo lanzar un .dcb con el intérpete (que supongo es el que colgó Splinter en el post que he quoteado) así como si hay que indicar algo más, que creo que sí...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 08, 2011, 04:39:23 PM
podes hacerlo en windows o linux.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 09, 2011, 12:58:22 AM
Quote from: SplinterGU on February 08, 2011, 02:48:36 AM
es un modulo del kernel, hay que hacer llamadas ioctl para usarlas, por lo que veo del codigo del mame4all, es un modulo que cachea memoria, creo, no estoy seguro, que cachea el area de memoria alta.

por otro lado, el mame4all, tiene un codigo que accede a la memoria alta directamente, haciendo unas funciones de alocacion de memoria a lo bruto, simplemente dando direcciones de memoria alta por bloques y marcandolas en un array interno en el mismo codigo... lo que me hace dudar en que pasaria si otro programa que este corriendo en background hace uso de esta memoria alta o si incluso lanzamos otro programa con exec (por ejemplo de bennugd)... tengo que revisar mejor el codigo, pero en principio diria que esto haria desastres, ya que dichas funciones de alocacion no las controla el kernel sino el programa.

deberia preguntar a chui o franxis.

A eso era a lo que me refería.
En principio creo que no hay ningún programa en segundo plano, al menos, no recuerdo que haya ninguno desde el firmware. Otra cosa es que se lo haya ejecutado el usuario, y no recuerdo tampoco ningún programa que trabaje en segundo plano... bueno, a lo mejor uno de apagado de pantalla o de capturas de pantalla.
De todas maneras, creo que esa memoria se usaba/reservaba para OpenGL, por lo que sólo la usan programas en búsqueda de memoria extra o algo más de rendimiento.

Vamos, que creo que la usan porque hay un muy bajo índice de riesgo :P
Pero no está de más preguntar.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 09, 2011, 10:01:32 PM
Por fin he podido probar 4 juegos Bennu en Dingoo con el gmenu.

Todos los juegos se salen al menu despues de cargar los recursos (lo se por el tiempo de carga y porque en 2 de ellos tengo el mensaje loading... en pantalla).
Despues de salir al menu este se congela, la unica forma de que mi dingoo vuelva a resucitar es haciendo reset...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 10, 2011, 03:14:20 AM
Quote from: Drumpi on February 09, 2011, 12:58:22 AM
Quote from: SplinterGU on February 08, 2011, 02:48:36 AM
es un modulo del kernel, hay que hacer llamadas ioctl para usarlas, por lo que veo del codigo del mame4all, es un modulo que cachea memoria, creo, no estoy seguro, que cachea el area de memoria alta.

por otro lado, el mame4all, tiene un codigo que accede a la memoria alta directamente, haciendo unas funciones de alocacion de memoria a lo bruto, simplemente dando direcciones de memoria alta por bloques y marcandolas en un array interno en el mismo codigo... lo que me hace dudar en que pasaria si otro programa que este corriendo en background hace uso de esta memoria alta o si incluso lanzamos otro programa con exec (por ejemplo de bennugd)... tengo que revisar mejor el codigo, pero en principio diria que esto haria desastres, ya que dichas funciones de alocacion no las controla el kernel sino el programa.

deberia preguntar a chui o franxis.

A eso era a lo que me refería.
En principio creo que no hay ningún programa en segundo plano, al menos, no recuerdo que haya ninguno desde el firmware. Otra cosa es que se lo haya ejecutado el usuario, y no recuerdo tampoco ningún programa que trabaje en segundo plano... bueno, a lo mejor uno de apagado de pantalla o de capturas de pantalla.
De todas maneras, creo que esa memoria se usaba/reservaba para OpenGL, por lo que sólo la usan programas en búsqueda de memoria extra o algo más de rendimiento.

Vamos, que creo que la usan porque hay un muy bajo índice de riesgo :P
Pero no está de más preguntar.

no me referia a que haya uno, sino que podria en un futuro existir uno que corra en background y adios a todo... no me parece una solucion limpia eso que se esta usando.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 10, 2011, 03:14:47 AM
Quote from: FreeYourMind on February 09, 2011, 10:01:32 PM
Por fin he podido probar 4 juegos Bennu en Dingoo con el gmenu.

Todos los juegos se salen al menu despues de cargar los recursos (lo se por el tiempo de carga y porque en 2 de ellos tengo el mensaje loading... en pantalla).
Despues de salir al menu este se congela, la unica forma de que mi dingoo vuelva a resucitar es haciendo reset...

proba sin sonido... a mi me revienta en la carga de un simple wav.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 10, 2011, 06:57:38 AM
No uso wav's en ninguno...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 10, 2011, 01:03:26 PM
Quote from: FreeYourMind on February 10, 2011, 06:57:38 AM
No uso wav's en ninguno...

dije que PRUEBES sin sonido y que A MI (A MI) se me caia al cargar un WAV.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 10, 2011, 01:54:42 PM
Quote from: SplinterGU on February 10, 2011, 01:03:26 PM
Quote from: FreeYourMind on February 10, 2011, 06:57:38 AM
No uso wav's en ninguno...

dije que PRUEBES sin sonido y que A MI (A MI) se me caia al cargar un WAV.

Eso en mi pueblo es lo que se dice RECALCAR y lo demás es tontería X-D

Bueno, yo también iba a postear -de hecho lo estoy haciendo- para decir que también he hecho rular Dingux Bennu...

He rulao el galaxian del APÁGAME-&-VÁMONOS y OK, aunque claro, nada de sonidos además de que los textos del principio no se visualizan...
También probé una ultraminidemo consistente en dibujar 3 box de 3 colores en pantalla y claro, también OK, :-)

Además probé otra mini demo que carga un .ogg reproduciéndolo en background mientras se producen 3 efectos básicos sobre un graph -traslación, rotación y escalamiento- y no llega ni siquiera a visualizar nada en pantalla saliéndose al frontend del gmenu2x y, finalmente, quedándose bloqueado... pero ya supongo yo que se deberá al ya conocido problema actual con los timers, pues supongo que la reproducción de .ogg y demás se apoya en ello, y/o a la carga de alguno/s de los recursos...

En cuanto a rendimiento, no he tenío más tiempo para probar... gran trabajo y gracias Splinter ;-)

Seguiré probándolo luego...
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 10, 2011, 02:56:54 PM
Quote from: MythomizeR on February 10, 2011, 01:54:42 PM
Quote from: SplinterGU on February 10, 2011, 01:03:26 PM
Quote from: FreeYourMind on February 10, 2011, 06:57:38 AM
No uso wav's en ninguno...

dije que PRUEBES sin sonido y que A MI (A MI) se me caia al cargar un WAV.

Eso en mi pueblo es lo que se dice RECALCAR y lo demás es tontería X-D

Bueno, yo también iba a postear -de hecho lo estoy haciendo- para decir que también he hecho rular Dingux Bennu...

He rulao el galaxian del APÁGAME-&-VÁMONOS y OK, aunque claro, nada de sonidos además de que los textos del principio no se visualizan...
También probé una ultraminidemo consistente en dibujar 3 box de 3 colores en pantalla y claro, también OK, :-)

Además probé otra mini demo que carga un .ogg reproduciéndolo en background mientras se producen 3 efectos básicos sobre un graph -traslación, rotación y escalamiento- y no llega ni siquiera a visualizar nada en pantalla saliéndose al frontend del gmenu2x y, finalmente, quedándose bloqueado... pero ya supongo yo que se deberá al ya conocido problema actual con los timers, pues supongo que la reproducción de .ogg y demás se apoya en ello, y/o a la carga de alguno/s de los recursos...

En cuanto a rendimiento, no he tenío más tiempo para probar... gran trabajo y gracias Splinter ;-)

Seguiré probándolo luego...

gracias... si, no se si sera la falta de inicializacion de los timers (que quizas se inician solos junto a otro sistema SDL) o a que la mixer quizas no va.
Title: Re: Avances, Diario de...
Post by: Drumpi on February 11, 2011, 02:08:27 PM
Quote from: SplinterGU on February 10, 2011, 03:14:20 AM
no me referia a que haya uno, sino que podria en un futuro existir uno que corra en background y adios a todo... no me parece una solucion limpia eso que se esta usando.

Como si al programar en microcontroladores existiesen "soluciones límpias" ;D
Cuando los recursos escasean y se necesita optimizar todo lo posible, el libro de estilo tiene vacaciones indefinidas :D
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 11, 2011, 02:49:12 PM
Como es el mapeo en la Dingoo Splinter ?
He visto que la cruceta si va, pero no los botones 'L' y 'R'.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2011, 04:07:14 PM
Quote from: Drumpi on February 11, 2011, 02:08:27 PM
Quote from: SplinterGU on February 10, 2011, 03:14:20 AM
no me referia a que haya uno, sino que podria en un futuro existir uno que corra en background y adios a todo... no me parece una solucion limpia eso que se esta usando.

Como si al programar en microcontroladores existiesen "soluciones límpias" ;D
Cuando los recursos escasean y se necesita optimizar todo lo posible, el libro de estilo tiene vacaciones indefinidas :D

no estoy de acuerdo, las soluciones limpias no dependen de en que o para que se programe

Quote from: FreeYourMind on February 11, 2011, 02:49:12 PM
Como es el mapeo en la Dingoo Splinter ?
He visto que la cruceta si va, pero no los botones 'L' y 'R'.

no se te ocurrio probar los ejemplos del paquete wiz o caanoo, ni tampoco ver el jkeys.lib que hay en ellos, especificamente en la funcion  jkeys_set_default_keys(), cierto?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on February 11, 2011, 06:03:08 PM
Cierto, mi unica prueba fue probar una demo ya compilada para Wiz, no he recompilado nada, preguntaba por si el mapeo de estos botones es distinto a los de Wiz.
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 11, 2011, 07:35:21 PM
si, fijate el fuente, ahi tenes el mapeo.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 15, 2011, 02:04:48 PM
Quote from: SplinterGU on January 04, 2011, 07:41:26 AM
Bien, por fin lo tengo... me ha costado un buen trabajo...

el cambio del que hablaba se trata de un nuevo sistema con el cual es posible crear librerias para bennugd a nivel dcb.

esto es, dcbs que aportan funciones escritas en codigo bennugd.

esto nos permite liberar funciones de usuario sin necesidad de liberar codigo, asi sea por seguridad o porque queremos tener todo mas prolijo y ordenado, o simplemente porque no queremos compartir codigo.

si bien estos nuevos archivos .dcl no son mas que .dcb, pero tienen alguna que otra pequeña modificacion para hacer posible esto.

ejemplos de uso:

para crear una libreria, vamos a tomar el ejemplo de key_event.lib.

solo haremos:

bgdc --libmode key_event.lib

esto nos generara un bonito key_event.dcl, el cual luego utilizaremos en nuestros proyectos.

ahora, estos dcl tienen una limitacion, no contienen constantes ni tampoco contienen defines, por ende necesitamos un .h como el siguiente (key_event.h):


#ifndef __KEY_EVENT_LIB
#define __KEY_EVENT_LIB

#define _key_pressed    0
#define _key_down       1
#define _key_up         2

#define _key(k,ev) ((ev==_key_down)?(  _key_state[ k ][ _key_use ] && !_key_state[ k ][ _key_use ^ 1 ] ): \
                   (ev==_key_up  )?( !_key_state[ k ][ _key_use ] &&  _key_state[ k ][ _key_use ^ 1 ] ): \
                   ( _key_state[ k ][ _key_use ]))

#endif


NOTA: no se deben declarar las funciones que existan en la lib si la estamos linkeando, ya que sino dara error. Pero si es una funcion que pensamos usar como externa y no la estamos linkeando en ese momento (generar otra dcl que usara una dcl), si conviene declararla para evitar conversiones raras.

ahora para compilar nuestro programa usando la libreria previamente generada, hacemos:

bgdc -L key_event.dcl key_event_test.prg

esto nos generara nuestro dcb de toda la vida, pero incluyendo todas las funciones de la libreria.

espero que les haya gustado y empiecen a liberar y compartir cosas usando este metodo.

Bueno, esta feature hace años que la solicité y descubrí ayer que recientemente  ha sido implementada...

Porque según he leido, se pueden crear dcbs (dcls) a partir de código -funciones- escritas en BennuGD, el problema, es que si bien logro compilar la librería generándose tal archivo con extensión .dcl, lo cierto es que a la hora de crear el dcb con ésta adherida estoy obteniendo un error como de que en la línea 2 aparece "DCL" o "DCB" y que no lo encuentra, no recuerdo ahora exactamente el mensaje que me lanza el compilador, pero siempre es el mismo error...

Otra cosa, ¿el archivo de cabecera .h que contiene las constantes y #defines es solo necesario para librerías escritas con código original c, o tambien lo es para las escritas en Bennu? supongo que sea lo segundo, aunque espero que no...

SplinterGU, se agradecería que pusieras un ejemplo explícito sobre esto, a través de una librería escrita en código Bennu, aparte del ejemplo que ya has puesto donde se emplea en su lugar una dll escrita originalmente en c...

Nada más, aprovecho para saludaros X-D
Title: Re: Avances, Diario de...
Post by: SplinterGU on February 15, 2011, 03:19:49 PM
anda a inicio y ahi pone dcl, vas a encontrar al menos 3 ejemplos.

podrias describir los pasos que hiciste y poner los codigos que has usado...

no se que codigo C mencionas, pero el .h es para el codigo bennugd, no hay nada de C en esto, salvo lo que hice en el motor para soportarlo.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 16, 2011, 11:51:10 AM
Vale, aclarado lo del archivo .h...

Pero no encuentro los al menos 3 ejemplos que dices, solamente he encontrado el post que quotée y alguno más sin relevancia... y tras hacer una busqueda en el foro entero... porque con inicio supongo que te refieres al principio de este hilo, o quizás del foro...

Bueno voy a seguir buscando...

Title: Re: Avances, Diario de...
Post by: SplinterGU on February 16, 2011, 02:32:31 PM
arriba de todo, hay unos cuantos botones, dicen "inicio", "ayuda", "buscar", etc... primero inicio, y luego buscar, sino el buscador parece que busca en la seccion que estas.

mira, hay varios ejemplos, el gui de (prg?), un efecto que puse yo, y hay otro que no recuerdo ahora, pero ayer me acordaba.
Title: Re: Avances, Diario de...
Post by: MythomizeR on February 17, 2011, 02:13:36 PM
Ok, ahora sí muestra más resultados (antes buscaba con el Search de arriba a la derecha), voy a mirarlo más tranquilamente, gracias...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 08, 2011, 04:45:48 AM
estos cambios aun no estan en el SVN, pero ya los tengo probados, los tengo que emprolijar.

- ahora si se compila un ejecutable con mochila, y este se pone en una carpeta del PATH del sistema, el ejecutable funciona.
- si un ejecutable se llama desde otra carpeta, se abren los recursos contenidos en la carpeta del ejecutable sin problema.

esto nos permite hacer ejecutables con tools que nos pueden servir para cualquier cosa, por ejemplo, yo hice un show_fpg con mochila, y lo puse en una carpeta del path, y ahora lo puedo usar como una utilidad del sistema para ver los fpg desde cualquier lugar.

tengo aun que arreglar unas cuantas cosas mas...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 09, 2011, 03:52:54 AM
ya es posible poner las dlls en carpetas separadas, pero con las siguientes restricciones:

- bgdrtm debe estar en la carpeta del ejecutable, en el caso de linux tambien debe estar en LD_LIBRARY_PATH (o ld.conf*) el path donde se haya la libreria.
- las dlls/so se pueden poner en las siguientes subcarpetas donde se encuentre el bgdi que se ejecuta: "runtime", "modules", "mod", "mods", "lib", "libs", "extensions", "plugins"
se puede usar 1 o varias de estas subcarpetas.
- ahora se agrega el path del binario en el path interno donde se abren los archivos de recursos del juego (incluido el dcb)

en un rato subo las modificaciones, no hare release binaria de momento, pero el que quiere compilar y probarla ahi lo tendra disponible.

me falta testear la version windows, y consolas, solo probe la version linux.
Title: Re: Avances, Diario de...
Post by: mz on March 09, 2011, 04:17:23 AM
¡Excelente, Splinter! :D Con esto ya no tengo ningún motivo para seguir usando MoleBox. :P

Muchísimas gracias, karma++.

Espero los binarios para Windows para empezar a probarlo. :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 09, 2011, 04:53:50 AM
de nada... pronto los subire, quiero probarlos antes... a menos que los que ya tienen el entorno de compilacion quieran bajarlo, compilarlo y compartirlo, yo no me voy a ofender.
Title: Re: Avances, Diario de...
Post by: Windgate on March 09, 2011, 08:02:16 PM
Qué groso Splinter, karma up :D
Title: Re: Avances, Diario de...
Post by: Drumpi on March 11, 2011, 02:22:21 AM
Otro karma más por aquí ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 11, 2011, 05:00:49 AM
- al escribir una funcion ya no es posible usar por nombre de parametros nombres diferentes a los declarados previamente.
- tampoco se puede declarar 2 veces una misma funcion/proceso.
Title: Re: Avances, Diario de...
Post by: DCelso on March 11, 2011, 02:38:53 PM
entonces no se va a permitir la sobrecarga de funciones ? es decir dos funciones con el mismo nombre pero con distinto tipo y o número de argumentos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 11, 2011, 02:47:07 PM
Quote from: DCelso on March 11, 2011, 02:38:53 PM
entonces no se va a permitir la sobrecarga de funciones ? es decir dos funciones con el mismo nombre pero con distinto tipo y o número de argumentos.

yo nunca dije eso... por ahora no se soportaron, y por ahora no se soportan... yo se en el futuro que pasara al respecto... por ahora no se soportan...
Title: Re: Avances, Diario de...
Post by: josebita on March 11, 2011, 02:51:07 PM
Quote from: DCelso on March 11, 2011, 02:38:53 PM
entonces no se va a permitir la sobrecarga de funciones ? es decir dos funciones con el mismo nombre pero con distinto tipo y o número de argumentos.
Entiendo que se refiera a que el prototipo de la función ha de ser el mismo cuando la declaras con declare y cuando la vas a escribir.
Title: Re: Avances, Diario de...
Post by: DCelso on March 11, 2011, 03:39:37 PM
Quote from: josebita on March 11, 2011, 02:51:07 PM
Quote from: DCelso on March 11, 2011, 02:38:53 PM
entonces no se va a permitir la sobrecarga de funciones ? es decir dos funciones con el mismo nombre pero con distinto tipo y o número de argumentos.
Entiendo que se refiera a que el prototipo de la función ha de ser el mismo cuando la declaras con declare y cuando la vas a escribir.
Sí, eso lo entendí y lo veo correcto. Mi pregunta vino acerca de no dejar crear dos funciones o procesos con el mismo nombre, al hacer esto evitas poder hacer la sobrecarga de funciones, y splinter me respondió muy correctamente :D.
Title: Re: Avances, Diario de...
Post by: DCelso on March 11, 2011, 06:43:04 PM
splinter, tus ultimos cambios me han hecho modificar otra cosa para la versión estática en el main del bgdc.

#ifdef __STATIC__
extern char * appexename;
extern char * appexepath;
extern char * appexefullpath;
#else
char * appexename       = NULL;
char * appexepath       = NULL;
char * appexefullpath   = NULL;
#endif

Nada, tenlo en cuenta para tu versión monolítica :d.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 11, 2011, 06:57:49 PM
cuando haga la version monolitica oficial, sera muy diferente a la version oficial, en realidad necesita reorganizar la version oficial... y quedara mas parecida a Fenix.

pero si, claro, gracias lo tendre en cuenta.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 12, 2011, 06:36:49 AM
- Fix mouse with scale_resolution*   
- Add constants for scale_resolution*

/* Scale resolution orientation */
#define SRO_NORMAL          0
#define SRO_LEFT            1
#define SRO_DOWN            2
#define SRO_RIGHT           3

/* Scale resolution aspectratio */
#define SRA_STRETCH         0
#define SRA_PRESERVE        1
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 12, 2011, 06:38:12 AM
estuvo duro esto del mouse... probalo bien... yo me canse de probarlo, creo que hice todas las pruebas posibles, pero nunca se sabe... puede que haya quedado algun bug...
Title: Re: Avances, Diario de...
Post by: josebita on March 12, 2011, 02:30:43 PM
Quote from: SplinterGU on March 12, 2011, 06:36:49 AM
- Fix mouse with scale_resolution*   
- Add constants for scale_resolution*

/* Scale resolution orientation */
#define SRO_NORMAL          0
#define SRO_LEFT            1
#define SRO_DOWN            2
#define SRO_RIGHT           3

/* Scale resolution aspectratio */
#define SRA_STRETCH         0
#define SRA_PRESERVE        1

Genial, muchas gracias. Cuando llegue a casa lo pruebo en el eek y, si va bien, intento liberar el eek para iOS hoy (si tengo tiempo, digo, porque tengo una versión de la SDL_mixer sin soporte para mikmod y las músicas en el juego aún no suenan...).
Title: Re: Avances, Diario de...
Post by: Drumpi on March 13, 2011, 02:06:14 AM
¿SDL_mixer usa mikmod? no lo parece, en GP2X va más lento, y en general, va muy limitado (vamos, creo haber leido que la mikmod tenía soporte para comandos de bucles, o para silenciar canales, por poner algunos ejemplos).
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 14, 2011, 04:32:49 AM
- Fix problems with cmdline args
- Only mod* can be moved in a optional folder
- Fix add files in list

----

bien, probado en windows el tema de las carpetas para las dlls, solo se pueden mover las dlls mod_*, todas las demas deben estar junto al bgdi o ejecutable del juego, esto es por un tema de que son enlazadas por el compilador C, y no se buscan desde bennugd.

como sea, son unas cuantas dlls menos... otra opcion es poner en el PATH donde estan las dlls, y ahi se ponen donde se quiera, pero eso ya pierde la gracia del cambio.

opciones hay.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 15, 2011, 03:36:16 PM
Splinter ya que has estado arreglando el tema mochila.

En windows no he probado mucho todavía, pero en Wiz si que he podido probar.

La Wiz carga un DCB de 404MB correctamente, pero se come aleatoriamente la carga de FPGs, a veces los carga a veces no, supongo que son todos los archivos afectados y no solo fpg, recuerdo que esto pasaba en windows en las primeras versiones.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 15, 2011, 04:15:13 PM
SORR esta cerquita cerquita  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 16, 2011, 02:09:45 AM
yo no recuerdo que pasara... memoria?
Title: Re: Avances, Diario de...
Post by: Kloppix on March 16, 2011, 08:53:32 AM
No se si éste sitio sea el mas lógico para comentarlo, pero la versión 1.0.0rc20-svn20110314 me da el siguiente problema:

# bgdc hola.prg
*** buffer overflow detected ***: bgdc terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x50)[0x2f7390]
/lib/tls/i686/cmov/libc.so.6(+0xe12ca)[0x2f62ca]
/lib/tls/i686/cmov/libc.so.6(+0xe19e8)[0x2f69e8]
bgdc[0x806b0f9]
bgdc[0x804953e]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x22bbd6]
bgdc[0x80493a1]
======= Memory map: ========
00200000-00213000 r-xp 00000000 08:07 782034     /lib/libz.so.1.2.3.3
00213000-00214000 r--p 00012000 08:07 782034     /lib/libz.so.1.2.3.3
00214000-00215000 rw-p 00013000 08:07 782034     /lib/libz.so.1.2.3.3
00215000-00368000 r-xp 00000000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00368000-00369000 ---p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00369000-0036b000 r--p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036b000-0036c000 rw-p 00155000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036c000-0036f000 rw-p 00000000 00:00 0
00883000-0089e000 r-xp 00000000 08:07 821200     /lib/ld-2.11.1.so
0089e000-0089f000 r--p 0001a000 08:07 821200     /lib/ld-2.11.1.so
0089f000-008a0000 rw-p 0001b000 08:07 821200     /lib/ld-2.11.1.so
00c92000-00caf000 r-xp 00000000 08:07 781919     /lib/libgcc_s.so.1
00caf000-00cb0000 r--p 0001c000 08:07 781919     /lib/libgcc_s.so.1
00cb0000-00cb1000 rw-p 0001d000 08:07 781919     /lib/libgcc_s.so.1
00cdd000-00e15000 r-xp 00000000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e15000-00e1d000 r--p 00137000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e1d000-00e2b000 rw-p 0013f000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e2b000-00e2f000 rw-p 00000000 00:00 0
00ecf000-00ed0000 r-xp 00000000 00:00 0          [vdso]
00f5e000-00f60000 r-xp 00000000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f60000-00f61000 r--p 00001000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f61000-00f62000 rw-p 00002000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
08048000-08071000 r-xp 00000000 08:07 271163     /usr/bin/bgdc
08071000-08072000 r--p 00028000 08:07 271163     /usr/bin/bgdc
08072000-08088000 rw-p 00029000 08:07 271163     /usr/bin/bgdc
08088000-081a1000 rw-p 00000000 00:00 0
09648000-09669000 rw-p 00000000 00:00 0          [heap]
b7738000-b773a000 rw-p 00000000 00:00 0
b7753000-b7755000 rw-p 00000000 00:00 0
bf95a000-bf96f000 rw-p 00000000 00:00 0          [stack]
Abortado
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 16, 2011, 04:51:48 PM
Quote from: SplinterGU on March 16, 2011, 02:09:45 AM
yo no recuerdo que pasara... memoria?

Yo reporte ese bug y verifique que funcionaba correctamente cuando hiciste el parche, de la mochila de Windows quiero decir.

En Wiz pasa ahora exactamente lo mismo, los fpgs de carga inmediata fallan aleatoriamente, los fpgs de carga y representación más tardía no, puedo hacer ejemplos de dcbs mochila más pequeños, pero no va a ser lo mismo..
Title: Re: Avances, Diario de...
Post by: josebita on March 17, 2011, 12:28:01 PM
Quote from: Kloppix on March 16, 2011, 08:53:32 AM
No se si éste sitio sea el mas lógico para comentarlo, pero la versión 1.0.0rc20-svn20110314 me da el siguiente problema:

# bgdc hola.prg
*** buffer overflow detected ***: bgdc terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x50)[0x2f7390]
/lib/tls/i686/cmov/libc.so.6(+0xe12ca)[0x2f62ca]
/lib/tls/i686/cmov/libc.so.6(+0xe19e8)[0x2f69e8]
bgdc[0x806b0f9]
bgdc[0x804953e]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x22bbd6]
bgdc[0x80493a1]
======= Memory map: ========
00200000-00213000 r-xp 00000000 08:07 782034     /lib/libz.so.1.2.3.3
00213000-00214000 r--p 00012000 08:07 782034     /lib/libz.so.1.2.3.3
00214000-00215000 rw-p 00013000 08:07 782034     /lib/libz.so.1.2.3.3
00215000-00368000 r-xp 00000000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00368000-00369000 ---p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00369000-0036b000 r--p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036b000-0036c000 rw-p 00155000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036c000-0036f000 rw-p 00000000 00:00 0
00883000-0089e000 r-xp 00000000 08:07 821200     /lib/ld-2.11.1.so
0089e000-0089f000 r--p 0001a000 08:07 821200     /lib/ld-2.11.1.so
0089f000-008a0000 rw-p 0001b000 08:07 821200     /lib/ld-2.11.1.so
00c92000-00caf000 r-xp 00000000 08:07 781919     /lib/libgcc_s.so.1
00caf000-00cb0000 r--p 0001c000 08:07 781919     /lib/libgcc_s.so.1
00cb0000-00cb1000 rw-p 0001d000 08:07 781919     /lib/libgcc_s.so.1
00cdd000-00e15000 r-xp 00000000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e15000-00e1d000 r--p 00137000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e1d000-00e2b000 rw-p 0013f000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e2b000-00e2f000 rw-p 00000000 00:00 0
00ecf000-00ed0000 r-xp 00000000 00:00 0          [vdso]
00f5e000-00f60000 r-xp 00000000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f60000-00f61000 r--p 00001000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f61000-00f62000 rw-p 00002000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
08048000-08071000 r-xp 00000000 08:07 271163     /usr/bin/bgdc
08071000-08072000 r--p 00028000 08:07 271163     /usr/bin/bgdc
08072000-08088000 rw-p 00029000 08:07 271163     /usr/bin/bgdc
08088000-081a1000 rw-p 00000000 00:00 0
09648000-09669000 rw-p 00000000 00:00 0          [heap]
b7738000-b773a000 rw-p 00000000 00:00 0
b7753000-b7755000 rw-p 00000000 00:00 0
bf95a000-bf96f000 rw-p 00000000 00:00 0          [stack]
Abortado

Me imagino que es desde mi PPA. Pásame el código para ver si lo puedo replicar y/o arreglar.
Title: Re: Avances, Diario de...
Post by: Kloppix on March 17, 2011, 01:57:15 PM
Quote from: josebita on March 17, 2011, 12:28:01 PM
Me imagino que es desde mi PPA. Pásame el código para ver si lo puedo replicar y/o arreglar.

El error no es con un código en específico, es con todos.  De hecho...

process main()
begin
end

...da el mismo problema.  

Josebita, quiero aprovechar para preguntarte cuál es la mejor manera para tener moddesc junto a tu PPA.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 17, 2011, 04:40:05 PM
Quote from: BoMbErLiNk on March 16, 2011, 04:51:48 PM
Quote from: SplinterGU on March 16, 2011, 02:09:45 AM
yo no recuerdo que pasara... memoria?

Yo reporte ese bug y verifique que funcionaba correctamente cuando hiciste el parche, de la mochila de Windows quiero decir.

En Wiz pasa ahora exactamente lo mismo, los fpgs de carga inmediata fallan aleatoriamente, los fpgs de carga y representación más tardía no, puedo hacer ejemplos de dcbs mochila más pequeños, pero no va a ser lo mismo..

si logras hacerlo con algun ejemplo, chico o no... te lo agradezco.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 17, 2011, 05:41:10 PM
Ok, en un rato te cuento, primero voy a probar que tal va la Wii  :)
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 21, 2011, 06:41:11 PM
Ya he visto el bug de la carga de fpgs de la mochila.

Si en el mismo proceso y mismo frame que vas a usar FILE haces también el LOAD_FPG, puede que file no se actualice en ese frame sino en el siguiente, por tanto ese proceso no se visualiza pero si lo haran otros que se llamen más tarde.

Orden :

Quotefichero=load_fpg("fpg.fpg");
file=fichero;
graph=1;

No solo pasa en Wiz, lo he visto en Windows también, aunque en mucho menor medida, solo 1 vez en una partida completa.

Espero que tenga solución  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 21, 2011, 08:06:28 PM
no hay ninguna operacion retardada en eso que decis... no tiene sentido, quizas tenes otro proceso o parte de la logica donde se modifica file en ese frame.

cargas y frames no tienen relacion, y mucho menos valores asignados a las variables... a menos que uses las load_fpg de background, esas que llevan un 2do parametro, pero me parece que no es el caso.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 21, 2011, 08:54:20 PM
Ok, te lo pongo mejor :

QuoteIF (fichero>-1) unload_fpg(fichero); fichero=-1; END
fichero=load_fpg("fpg.fpg");
file=fichero;
graph=1;

La mochila me falla exclusivamente en procesos que hagan esto y no en todas las condiciones.

Quieres que haga un ejemplo y te lo pase ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 21, 2011, 09:04:00 PM
por favor... muchas gracias por adelantado.

enviame tambien el codigo de ese ejemplo.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 04:04:02 AM
Aquí tienes el ejemplo :
http://bombergames.net/mochila.zip

Es un problema grave, se me ha colgado el sistema operativo, mucho cuidado con el ejemplo xD

Al principio no conseguia reproducir el fallo con un mini ejemplo porque debe estar sonando música de fondo cargada como load_song (ogg), en conjunto con el código que te mando hacen un boom importante.

Cosas que pasan :
El fpg puede o no visualizarse
La canción puede o no resetearse (sin que exista código para ello)
Si la aplicación muere, que lo acaba haciendo, puede dejar al sistema operativo KO.

En el ejemplo simplemente pulsas o mantienes ENTER, se va cargando de forma ciclica un fpg dentro de la mochila.

No he comprobado si esto es solo exclusivo de la mochila, pero se que SDL_mixer da problemas desde hace mucho tiempo, con la oficial que lleva Bennu de hecho puede petarte en un simple load_song tras haber escuchado varias canciones de forma completamente aleatoria, pero siempre en el inicio de la canción, hace tiempo cambie a una SDL_mixer concreta que soluciona este problema, que es la que lleva el zip que te mando, sin embargo aquí también termina cayendo.

Espero que sirva de ayuda :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 05:20:58 AM
gracias, lo revisare...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 05:26:28 AM
Quote from: BoMbErLiNk on March 22, 2011, 04:04:02 AM
Aquí tienes el ejemplo :
http://bombergames.net/mochila.zip

Es un problema grave, se me ha colgado el sistema operativo, mucho cuidado con el ejemplo xD

Al principio no conseguia reproducir el fallo con un mini ejemplo porque debe estar sonando música de fondo cargada como load_song (ogg), en conjunto con el código que te mando hacen un boom importante.

Cosas que pasan :
El fpg puede o no visualizarse
La canción puede o no resetearse (sin que exista código para ello)
Si la aplicación muere, que lo acaba haciendo, puede dejar al sistema operativo KO.

En el ejemplo simplemente pulsas o mantienes ENTER, se va cargando de forma ciclica un fpg dentro de la mochila.

No he comprobado si esto es solo exclusivo de la mochila, pero se que SDL_mixer da problemas desde hace mucho tiempo, con la oficial que lleva Bennu de hecho puede petarte en un simple load_song tras haber escuchado varias canciones de forma completamente aleatoria, pero siempre en el inicio de la canción, hace tiempo cambie a una SDL_mixer concreta que soluciona este problema, que es la que lleva el zip que te mando, sin embargo aquí también termina cayendo.

Espero que sirva de ayuda :P

necesito el prg de esto, si no me das el prg, no puedo hacer nada.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 05:44:20 AM
No hombre, esta todo dentro del zip.

mochila.prg se llama, tambien te he puesto la carpeta data comprimida,  para que puedes descomprimirla y compilar una nueva mochila en caso de que quieras recompilar el código en modo debug.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 22, 2011, 08:23:40 AM
Te has equivocado, el prg es de un juego extenso xDDD
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 02:16:38 PM
Quote from: BoMbErLiNk on March 22, 2011, 05:44:20 AM
No hombre, esta todo dentro del zip.

mochila.prg se llama, tambien te he puesto la carpeta data comprimida,  para que puedes descomprimirla y compilar una nueva mochila en caso de que quieras recompilar el código en modo debug.


tienes razon, se me escapo, disculpa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 03:10:31 PM
bien, el problema no es en la mochila o en el asignar el load_fpg a una variable y luego asignarla a file, y que lo cargue en un frame u otro... cuando lei que reportaste eso, me recordo a los reportes de los operadores de sistema cuando te reportan una caida de un sistema o servidor y te dicen, "si es dia martes y pasa por la calle una ambulancia con la sirena sonando y encima te pica la oreja izquierda, entonces ahi se te cae el servidor"

bien, con las pruebas, vi que incluso este codigo da problema...


PROGRAM mochila;

import "mod_video";
import "mod_sound";
import "mod_key";
import "mod_joy";
import "mod_string";
import "mod_math";
import "mod_proc";
import "mod_grproc";
import "mod_text";
import "mod_map";
import "mod_time";
import "mod_timers";
import "mod_file";
import "mod_wm";
import "mod_rand";
import "mod_screen";
import "mod_dir";
import "mod_effects";
import "mod_draw";
import "mod_say";

GLOBAL
animacion;
musica;
startup=1;
posicion=1;

BEGIN
        set_mode(320,240,16);
        set_fps(60,0);
        x=160;
        y=120;
        musica=load_song("data/00.ogg");
        play_song(musica,-1);

        LOOP
                IF (key(_esc)) exit(); END

                IF (posicion<50) posicion++; ELSE posicion=1; END
                unload_fpg(file);
                file=load_fpg("data/galsia"+posicion+".fpg");
                graph=1;

                FRAME;
        END
END


por lo que vi tambien es que si quitas el load_song/play_song funciona sin problema... voy a probar poniendo los sonidos fuera de la mochila a ver que pasa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 03:13:49 PM
efectivamente es cuando el sonido se encuentra en la mochila... por lo menos ogg y este en concreto...

voy a revisar el tema de las operaciones fake de archivos y como recorre la libogg/mixer el archivo
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 04:47:22 PM
Vale, si es por la música no me importa dejarla fuera de momento :D

En los primeros mensajes me tenia confudido el tema, ya te digo, no me salia el ejemplo hasta que cai en lo de la música.  ;)

PD: Splinter sería posible que los fpg se metieran comprimidos en la mochila ?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 22, 2011, 06:03:25 PM
Vas a inundar de capas el juego:

Ficheros encriptados con password, dentro de fpg's comprimidos, los cuales dentro de mochila, la cual dentro de un exe, el cual dentro de un rar xDDDDD
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 06:15:18 PM
no se pueden poner recursos comprimidos en la mochila, por limitaciones de la libreria de compresion.

quizas te convenga solo meter los recursos graficos en la mochila y dejar los sonidos fuera.

realmente no entiendo porque crashea, revise las librerias de files que son las que podrian dar el problema y parecen estar todas bien, pero evidentemente algun manejo de archivos requiere la mixer que aca falla.

aun no logro detectar el problema, viene por el sonido, pero no se por que.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 06:20:54 PM
El crash es solo con la música por streaming no ? El ogg, los wav deberian ser seguros al cargarse en memoria no ?
Más o menos es lo que me quedo claro ayer en todos los tests que hice, quizas deberia probar a reproducir un wav de forma continua a ver que pasa.

--
Free XDD

Que va, no estan encriptados con password, estan "ensuciados" mejor dicho  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 07:23:32 PM
el ogg en cuestion es el que provoca el crash, pero solo en la mochila, quizas alguna operacion este fallando... deberia meter log en cada operacion que se hace y ver que pide y que provoca el crash...

voy a intentar por ahi.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 07:39:47 PM
Ok, sobre un tema relacionado y si te sirve de ayuda, la única SDL_mixer que he encontrado estable durante todos estos meses es la que incluyo en el zip.

Se trata de :
SDL_mixer-devel-1.2.11-VC.zip (http://www.libsdl.org/projects/SDL_mixer)

Tengo verificado que es estable, lo deje 24horas reproduciendo musica de una lista gigante.

Sobre las otras sdl_mixer, probe la oficial y me petaba, sin mochila, al reproducir música simplemente con play_song y de forma muy aleatoria, puede petarte al reproducir la 4 canción de una lista, la 50, etc.. y todo sin tener carga de fpgs por medio, simplemente un programa que reproduzca oggs, he probado todas estas :
1.2.8
1.2.9
1.2.10
1.2.11 (SDL_mixer-1.2.11-win32.zip, de las 2 dlls 1.2.11 esta no estable)

Todas petan, justo cuando haces play_song, lo digo por si quizas hubiera un problema relacionado con alguna función de reproducción, en Wiz me pasa algo parecido con el sonido, pero en lugar de petar, la aplicación se pone a 1fps, con el sonido como atascado, o Wii que da como resultado codedumps.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 08:28:57 PM
ya se cual es el error... todavia no le encontre solucion, pero el problema es que todos los archivos virtuales usan el mismo file pointer de C, y la mixer usa un thread para reproducir la musica, por ende, modifica la posicion del FILE * cuando necesita leer nueva data, y si justo en ese momento otra parte del programa esta leyendo ese archivo, entonces lee cualquier porqueria.

vamos a ver como lo corrijo.

gracias bomber
Title: Re: Avances, Diario de...
Post by: josebita on March 22, 2011, 08:36:20 PM
Quote from: SplinterGU on March 22, 2011, 08:28:57 PM
ya se cual es el error... todavia no le encontre solucion, pero el problema es que todos los archivos virtuales usan el mismo file pointer de C, y la mixer usa un thread para reproducir la musica, por ende, modifica la posicion del FILE * cuando necesita leer nueva data, y si justo en ese momento otra parte del programa esta leyendo ese archivo, entonces lee cualquier porqueria.

vamos a ver como lo corrijo.

gracias bomber
¿Puede ser por eso que esté fallando la reproducción de OGG en Wii?.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 08:51:59 PM
podria ser, si tenes 2 veces el archivo abierto o si usas mochila.

duplique los handles, pero igual sigo teniendo problemas, tarda mas en caer, pero cae... a ver si no estoy haciendo algo mal.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 10:10:55 PM
bomber... ya esta solucionado, actualiza el repo y generate los ejecutables.

hice un parche feo para mi gusto pero que funciona.

queria hacerlo mas prolijo duplicando handles y/o fds, pero lamentablemente parece que comparten el puntero de posicion, asi que solamente pude hacerlo reabriendo el dcb tantas veces sea necesario.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 10:21:07 PM
Gracias ahora lo pruebo  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 10:27:26 PM
gracias a vos por el reporte y el sample... karma++
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 22, 2011, 10:48:57 PM
Ey, he hecho el svn up y el ./build-win32.sh
Pero no me genera el bgdc.exe, el bgdi.exe ni el libbgdrtm.dll, te pongo el error :

Quotedcbr.c:209: error: conflicting types for 'dcb_load_from'
../include/bgdrtm.h:74: error: previous declaration of 'dcb_load_from' was here
dcbr.c:209: error: conflicting types for 'dcb_load_from'
../include/bgdrtm.h:74: error: previous declaration of 'dcb_load_from' was here
make[2]: *** [libbgdrtm_la-dcbr.lo] Error 1
make[2]: Leaving directory `/c/msys/1.0/opt/bennugd/core/bgdrtm/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/msys/1.0/opt/bennugd/core/bgdrtm'
make: *** [all-recursive] Error 1
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 10:51:42 PM
vamos a chequear, creia que lo habia cambiado...

lo raro es que aca me compilo, vamos de nuevo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 22, 2011, 11:06:05 PM
prueba ahora...
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 23, 2011, 01:23:30 PM
Splinter, he probado ambas versiones.

Bennu sigue petando con la SDL_mixer oficial que compilas (creo que es la 1.2.8 ), no en el ejemplo de la mochila, si cargando y reproduciendo simples play_song, no he podido finalizar ni una partida completa.

La SDL_mixer-devel-1.2.11-VC.zip, que es la que yo uso para evitar los crashes con play_song, paradojicamente, muere en el ejemplo de la mochila, pero NO muere nunca con play_song fuera de una mochila.

Me da la impresión de que sigue habiendo algo en play_song / load_song, porque no es normal que peten todas las sdl_mixer excepto una y que esta condicionalmente si muere donde la oficial no.
--

La mochila en Wiz ya funciona bien, los archivos de Bennu pesan más, supongo que no estan pasados por strip, me esperare a la nueva release  :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 02:05:18 PM
no estan pasados por strip...

entonces, solo peta la version windows con play_song no en mochila? eso si es bien raro, porque sin la mochila, todo el manejo lo hace la SDL_mixer, voy a chequear nuevamente, a ver que pasa en estos casos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 02:12:06 PM
no veo nada raro, si el archivo no esta comprimido con zlib, no deberia petar.

como lo de la mochila, mandame un ejemplo donde crashee y lo debugueo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 02:27:52 PM
acabo de probar con el sample que me pasaste, poniendo en el loop, load_song, play_song, stop_song, unload_song y se ejecutaron 5000 veces sin crashear, tambien lo hice quitando el stop_song y tampoco crashea, tambien le quite el unload_song, y luego de un rato empieza a tirar "Play song called with invalid handle", pero no crashea.

ahora voy a probar tambien cargando y descargando el fpg, a ver que pasa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 02:31:20 PM
3500 veces loop, carga y descarga de sonidos y de fpg... agregue ahora animacion de graficos aunque sean de diferentes fpg, y no crashea en lo mas minimo.

espero tu ejemplo para debuguear el tema.

saludos.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 23, 2011, 03:02:44 PM
Recordar que uno usa Linux y el otro Windows...
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 23, 2011, 06:17:25 PM
Además has probado de cargar 2 oggs a la vez ?

Cargar 2 oggs, reproducir el primero (y esperar a que termine, play song a 0), is_playing_song en el primero, aunque ya no suene parar el primero, descargar el primero, reproducir el segundo (este con -1), parar el segundo manualmente, descargar el segundo, cargar los dos de nuevo, o mejor, cargar a otros 2 ogg diferentes, etc etc
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 08:54:43 PM
Quote from: FreeYourMind on March 23, 2011, 03:02:44 PM
Recordar que uno usa Linux y el otro Windows...

estaria bueno que recuerdes acotar acertadamente...

obviamente estamos probando sobre las mismas plataformas (windows, aunque para descartar un bug general, hice las pruebas en ambas plataformas)
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 08:56:02 PM
Quote from: BoMbErLiNk on March 23, 2011, 06:17:25 PM
Además has probado de cargar 2 oggs a la vez ?

Cargar 2 oggs, reproducir el primero (y esperar a que termine, play song a 0), is_playing_song en el primero, aunque ya no suene parar el primero, descargar el primero, reproducir el segundo (este con -1), parar el segundo manualmente, descargar el segundo, cargar los dos de nuevo, o mejor, cargar a otros 2 ogg diferentes, etc etc

mejor pasame el ejemplo con la prueba que quieras que haga.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 23, 2011, 09:00:58 PM
Vale, recuerdo que a Josebita le pase un ejemplo similar en el post de Wii, mirare si es el mismo código, sino te monto uno nuevo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 23, 2011, 09:05:13 PM
muchas gracias bomber!

lo espero.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 12:22:10 PM
Jarl no puedo aislar el problema en un ejemplo porque no peta fuera, he cogido el proceso que uso en el juego, que se llama MELODIA y gestiona todo lo relacionado con la reproducción de un OGG, la carga, la reproducción y la descarga.

He creado un pequeño ejemplo, con solo ese proceso, le hice un test de estres y lo deje toda la noche funcionando, pero no ha petado.

Sin embargo, dentro del juego, hago ese mismo test, que hablamos de basicamente este código :

IF (key(_space))
            cual=rand(1,75);
            melodia(cual,cual,0,0,0,0,0,0);
END

Y no dura más de un minuto.  :P

Quizas pisa algo en memoria que no esta en el test, podría sacar algun log del debug, pero creo que tienes que mandarme archivos que vengan con debug especifico para lo que buscas no ?

--
También he mirado y creo que ya te comente que hago la repetición de un OGG manualmente, esto es debido a que todavía, cuando un ogg se repite usando -1 puede empezar a sonar con glitches (es decir cuando llega al final de la canción y se vuelve a repetir), esto lo probe no hace mucho tiempo, quizas en agosto 2010 y ese bug seguia presente.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 24, 2011, 03:11:41 PM
antes de una version con debug, necesito saber donde cae...

compila con -g y ejecuta con -d y captura el log de eso... y veamos que instruccion es la ultima en ejecutarse.

has la prueba 2 o 3 veces y vemos...

necesito las ultimas 300 lineas de ese log.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 24, 2011, 03:29:10 PM
estuve trabajando con la version dingux y el problema del crash esta en la funcion MIX_OpenAudio, o sea, que el error es mas basico, no puede abrir el dispositivo de audio...

sigo investigando...
Title: Re: Avances, Diario de...
Post by: DCelso on March 24, 2011, 06:00:33 PM
y probaste con un ejemplo básico de sdl a secas? a ver si es culpa de sdl mixer.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 24, 2011, 06:37:41 PM
no, aun no lo probe, me tome un respiro, me canse de hacer pruebas.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 07:07:26 PM
Ok, voy a hacer el log.txt

Primero he intentado por consola, porque solo tengo 5GB de disco libre, me he ido, he vuelto a la hora y aún seguia eso haciendo calculos en el startup inicial  :D

Estaría genial poder activar y desactivar el log, así me iba al sitio en cuestión directamente.

Ahora te cuento.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 07:22:13 PM
Efectivamente, muere en play_song :

Quote
                                             [ 193] 00000092 00000000          PRIVATE             0

029C7B28
                                             [ 195] 00000084 00000000          PUSH                0

029C7B28 00000000
                                             [ 197] 00000047                   LETNP

                                             [ 198] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 200] 00000384 00000228 STRING   PUSH                552

00000228
                                             [ 202] 00000097 00000004          GET_PRIVATE         4

00000228 0000002D
                                             [ 204] 000000C4 00000000          INT2STR             0

00000228 00000476
                                             [ 206] 00000325          STRING   ADD

00000477
                                             [ 207] 00000384 000000A7 STRING   PUSH                167

00000477 000000A7
                                             [ 209] 00000325          STRING   ADD

00000478
                                             [ 210] 0000008A 0000011E          SYSCALL             FILE_EXISTS (286)

00000000
                                             [ 212] 0000009C 000000E7          JFALSE              231

                                             [ 231] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 233] 00000384 0000022A STRING   PUSH                554

0000022A
                                             [ 235] 00000097 00000004          GET_PRIVATE         4

0000022A 0000002D
                                             [ 237] 000000C4 00000000          INT2STR             0

0000022A 00000479
                                             [ 239] 00000325          STRING   ADD

0000047A
                                             [ 240] 00000384 000000A7 STRING   PUSH                167

0000047A 000000A7
                                             [ 242] 00000325          STRING   ADD

0000047B
                                             [ 243] 0000008A 0000011E          SYSCALL             FILE_EXISTS (286)

00000001
                                             [ 245] 0000009C 00000106          JFALSE              262

                                             [ 247] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 249] 00000392 0000003C STRING   PRIVATE             60

029C7B64
                                             [ 251] 00000384 0000022A STRING   PUSH                554

029C7B64 0000022A
                                             [ 253] 00000097 00000004          GET_PRIVATE         4

029C7B64 0000022A 0000002D
                                             [ 255] 000000C4 00000000          INT2STR             0

029C7B64 0000022A 0000047C
                                             [ 257] 00000325          STRING   ADD

029C7B64 0000047D
                                             [ 258] 00000384 000000A7 STRING   PUSH                167

029C7B64 0000047D 000000A7
                                             [ 260] 00000325          STRING   ADD

029C7B64 0000047E
                                             [ 261] 00000347          STRING   LETNP

                                             [ 262] 0000009B 00000185          JUMP                389

                                             [ 389] 000000FF 00006063          ------              sorr.prg:24675 -> IF (cambia==0)

                                             [ 391] 00000097 0000001C          GET_PRIVATE         28

00000000
                                             [ 393] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 395] 0000002D                   EQ

00000001
                                             [ 396] 0000009C 00000342          JFALSE              834

                                             [ 398] 000000FF 00006064          ------              sorr.prg:24676 -> stop_song();

                                             [ 400] 0000008C 00000010          SYSPROC             STOP_SONG (16)

                                             [ 402] 000000FF 00006065          ------              sorr.prg:24677 -> IF (jukebox_tipo==1) una_vez=1; jukebox_pos=0; signal(type jukebox,s_kill); signal(type letra_nombre4,s_kill); END

                                             [ 404] 00000097 00000018          GET_PRIVATE         24

00000000
                                             [ 406] 00000084 00000001          PUSH                1

00000000 00000001
                                             [ 408] 0000002D                   EQ

00000000
                                             [ 409] 0000009C 000001B9          JFALSE              441

                                             [ 441] 000000FF 00006066          ------              sorr.prg:24678 -> IF (jukebox_tipo==2) una_vez=1; jukebox_pos=1; signal(type jukebox,s_kill); END

                                             [ 443] 00000097 00000018          GET_PRIVATE         24

00000000
                                             [ 445] 00000084 00000002          PUSH                2

00000000 00000002
                                             [ 447] 0000002D                   EQ

00000000
                                             [ 448] 0000009C 000001D8          JFALSE              472

                                             [ 472] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 474] 00000099 00008198          GET_GLOBAL          33176

01057D80
                                             [ 476] 00000084 00000000          PUSH                0

01057D80 00000000
                                             [ 478] 0000002F                   GT

00000001
                                             [ 479] 0000009C 000001EE          JFALSE              494

                                             [ 481] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 483] 00000099 00008198          GET_GLOBAL          33176

01057D80
                                             [ 485] 0000008C 0000000F          SYSPROC             UNLOAD_SONG (15)

                                             [ 487] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 489] 00000094 00008198          GLOBAL              33176

00A22318
                                             [ 491] 00000084 00000000          PUSH                0

00A22318 00000000
                                             [ 493] 00000047                   LETNP

                                             [ 494] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 496] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 498] 00000084 00000000          PUSH                0

00C44B20 00000000
                                             [ 500] 0000002F                   GT

00000001
                                             [ 501] 0000009C 00000204          JFALSE              516

                                             [ 503] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 505] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 507] 0000008C 0000000F          SYSPROC             UNLOAD_SONG (15)

                                             [ 509] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 511] 00000094 00008194          GLOBAL              33172

00A22314
                                             [ 513] 00000084 00000000          PUSH                0

00A22314 00000000
                                             [ 515] 00000047                   LETNP

                                             [ 516] 000000FF 0000606B          ------              sorr.prg:24683 -> IF (bucle==80) ruta2="mod/games/"+ruta_sormaker+"/script/"+nombre_fase+".ogg"; END

                                             [ 518] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 520] 00000084 00000050          PUSH                80

0000002D 00000050
                                             [ 522] 0000002D                   EQ

00000000
                                             [ 523] 0000009C 00000220          JFALSE              544

                                             [ 544] 000000FF 0000606E          ------              sorr.prg:24686 -> IF (modo_sormaker==0)

                                             [ 546] 00000099 00006DF0          GET_GLOBAL          28144

00000000
                                             [ 548] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 550] 0000002D                   EQ

00000001
                                             [ 551] 0000009C 000002C1          JFALSE              705

                                             [ 553] 000000FF 0000606F          ------              sorr.prg:24687 -> IF (bucle==43 AND inicio==0)

                                             [ 555] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 557] 00000084 0000002B          PUSH                43

0000002D 0000002B
                                             [ 559] 0000002D                   EQ

00000000
                                             [ 560] 0000009E 00000238          JTFALSE             568

00000000
                                             [ 568] 0000009C 00000269          JFALSE              617

                                             [ 617] 000000FF 00006073          ------              sorr.prg:24691 -> IF (bucle==11 OR bucle==26 OR bucle==32 OR bucle==49 OR bucle==65 OR bucle==66) repetir=0; musica_LOOP=2; END

                                             [ 619] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 621] 00000084 0000000B          PUSH                11

0000002D 0000000B
                                             [ 623] 0000002D                   EQ

00000000
                                             [ 624] 0000009E 00000277          JTFALSE             631

00000000
                                             [ 631] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 633] 00000084 0000001A          PUSH                26

00000000 0000002D 0000001A
                                             [ 635] 0000002D                   EQ

00000000 00000000
                                             [ 636] 0000002B                   OR

00000000
                                             [ 637] 0000009E 00000284          JTFALSE             644

00000000
                                             [ 644] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 646] 00000084 00000020          PUSH                32

00000000 0000002D 00000020
                                             [ 648] 0000002D                   EQ

00000000 00000000
                                             [ 649] 0000002B                   OR

00000000
                                             [ 650] 0000009E 00000291          JTFALSE             657

00000000
                                             [ 657] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 659] 00000084 00000031          PUSH                49

00000000 0000002D 00000031
                                             [ 661] 0000002D                   EQ

00000000 00000000
                                             [ 662] 0000002B                   OR

00000000
                                             [ 663] 0000009E 0000029E          JTFALSE             670

00000000
                                             [ 670] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 672] 00000084 00000041          PUSH                65

00000000 0000002D 00000041
                                             [ 674] 0000002D                   EQ

00000000 00000000
                                             [ 675] 0000002B                   OR

00000000
                                             [ 676] 0000009E 000002AB          JTFALSE             683

00000000
                                             [ 683] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 685] 00000084 00000042          PUSH                66

00000000 0000002D 00000042
                                             [ 687] 0000002D                   EQ

00000000 00000000
                                             [ 688] 0000002B                   OR

00000000
                                             [ 689] 0000009C 000002C1          JFALSE              705

                                             [ 705] 000000FF 00006076          ------              sorr.prg:24694 -> IF (bucle==65 OR bucle==66) repetir=0; musica_LOOP=2; END

                                             [ 707] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 709] 00000084 00000041          PUSH                65

0000002D 00000041
                                             [ 711] 0000002D                   EQ

00000000
                                             [ 712] 0000009E 000002CF          JTFALSE             719

00000000
                                             [ 719] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 721] 00000084 00000042          PUSH                66

00000000 0000002D 00000042
                                             [ 723] 0000002D                   EQ

00000000 00000000
                                             [ 724] 0000002B                   OR

00000000
                                             [ 725] 0000009C 000002E5          JFALSE              741

                                             [ 741] 000000FF 00006078          ------              sorr.prg:24696 -> IF (bucle==80) repetir=0; musica_loop=2; END

                                             [ 743] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 745] 00000084 00000050          PUSH                80

0000002D 00000050
                                             [ 747] 0000002D                   EQ

00000000
                                             [ 748] 0000009C 000002FC          JFALSE              764

                                             [ 764] 000000FF 0000607B          ------              sorr.prg:24699 -> IF (inicio>0)

                                             [ 766] 00000097 00000000          GET_PRIVATE         0

00000000
                                             [ 768] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 770] 0000002F                   GT

00000000
                                             [ 771] 0000009C 00000321          JFALSE              801

                                             [ 801] 000000FF 00006080          ------              sorr.prg:24704 -> IF (bucle>0)

                                             [ 803] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 805] 00000084 00000000          PUSH                0

0000002D 00000000
                                             [ 807] 0000002F                   GT

00000001
                                             [ 808] 0000009C 00000342          JFALSE              834

                                             [ 810] 000000FF 00006081          ------              sorr.prg:24705 -> cancion_cargada = load_song(ruta2);

                                             [ 812] 00000094 00008194          GLOBAL              33172

00A22314
                                             [ 814] 00000397 0000003C STRING   GET_PRIVATE         60

00A22314 0000047E
                                             [ 816] 0000008A 0000000D          SYSCALL             LOAD_SONG (13)

00A22314 00C44B20
                                             [ 818] 00000047                   LETNP

                                             [ 819] 000000FF 00006082          ------              sorr.prg:24706 -> play_song(cancion_cargada,0);

                                             [ 821] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 823] 00000084 00000000          PUSH                0

00C44B20 00000000
                                             [ 825] 0000008C 0000000E          SYSPROC             PLAY_SONG (14)
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 07:35:15 PM
Te pongo el código fuente en el sitio concreto que apunta el debug :

QuotePROCESS melodia(inicio,bucle,fade_cancion,cambia);

PRIVATE
volumen;
repetir=-1;
STRING ruta1;
STRING ruta2;

BEGIN
priority=130;
set_song_volume(vol);
tiempo_baja_volumen=vol;

// SI QUIERE MANTENER CANCION PERO NO HAY
IF (cambia!=0)
       IF (is_playing_song()<1 AND guarda_cancion!=bucle) cambia=0; END
       guarda_cancion=bucle;
END

// REMAPEA RUTAS
musica_LOOP=1;
IF (fade_cancion==1) volumen=vol; END
IF (file_exists("mod/"+inicio+"a.ogg")) ruta1="mod/"+inicio+"a.ogg"; ELSE inicio=0; END
IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE bucle=0; END

// CARGA RECURSOS
IF (cambia==0)
       stop_song();
       IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END
       IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END


       IF (inicio>0)
               trozo_cancion = load_song(ruta1);
               cancion_cargada = load_song(ruta2); //Wii, no cargar 2
               play_song(trozo_cancion,0);
               ELSE
               IF (bucle>0)
                       cancion_cargada = load_song(ruta2);
                       play_song(cancion_cargada,0); // AQUI MUERE
                       musica_LOOP=0;
               END
       END

END

IF (inicio==0 AND bucle==0) musica_LOOP=-1; END

LOOP

       // LOOP DE CANCION CON INTRO
       IF (musica_LOOP==1 OR musica_LOOP==2)
          IF (is_playing_song()<1)
                     IF (musica_LOOP==2) musica_LOOP=0; END
            stop_song();
            IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END
                     play_song(cancion_cargada,0);
          END
       END

       // LOOP DE CANCION SIN INTRO
       IF (musica_LOOP==0 AND repetir==-1)
          IF (is_playing_song()<1 AND cancion_cargada>0)
                  stop_song();
                      play_song(cancion_cargada,0);
          END
       END

       FRAME;
       END
END
Title: Re: Avances, Diario de...
Post by: FreeYourMind on March 24, 2011, 09:16:50 PM
Mis ojos han brillado por un momento!!!  ;D ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 24, 2011, 09:26:03 PM
estamos fritos, si cae ahi, porque si cae ahi, luego de haber sonado varios songs es algun problema de la mixer...

para estar seguros, baja nuevamente los ultimos fuentes, compila y prueba nuevamente, porque he corregido una situacion de error que no se liberaba un handle, y por ende puede que a la larga de problemas.

asi descartamos que no sea eso.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 10:25:16 PM
He actualizado, sigue petando.
Has pensado en compilar con otra sdl_mixer en lugar de la 1.2.8 ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 24, 2011, 11:36:11 PM
por favor, pasame una version para poder ejecutarla en linux... a ver si es problema de la version de SDL o de windows...

pasamelo por mail, como siempre.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 24, 2011, 11:50:36 PM
O pasate por el msn si puedes, he conseguido aislarlo bastante del código y será más rápido.  :)
Title: Re: Avances, Diario de...
Post by: DCelso on March 25, 2011, 01:12:31 AM
umn,oleee, si se soluciona ese problema puede que de rebote se solucionen mis problemas de cuelgues de sonido de la psp.
Recompilaré por si la última versión de svn me quita algún problema en psp :D.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 25, 2011, 01:23:02 AM
pues no, es un tema de dlls vorbisfile, vorbis-0 y ogg.

puse las que tengo en mi entorno y funciona.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 25, 2011, 04:11:33 AM
solucionado el problema de la mixer en windows...

maldita version oficial, y sus dlls vorbis, vorbisfile y ogg...

ya salio andando, usando la mixer oficial (porque la mia le falta compilar con soporte de varios formatos de sonidos y si empiezo a probar 1 por 1, no termino mas) y mis vorbis/ogg... y sale de maravillas.

ni bien me confirmen que no hay ningun problema, subo las nuevas versiones de todas las plataformas oficialmente soportadas (menos dingux, porque aun esta verde por el tema de la mixer)
Title: Re: Avances, Diario de...
Post by: DCelso on March 25, 2011, 09:41:16 PM
Quote from: SplinterGU on March 25, 2011, 04:11:33 AM
solucionado el problema de la mixer en windows...

maldita version oficial, y sus dlls vorbis, vorbisfile y ogg...

ya salio andando, usando la mixer oficial (porque la mia le falta compilar con soporte de varios formatos de sonidos y si empiezo a probar 1 por 1, no termino mas) y mis vorbis/ogg... y sale de maravillas.

ni bien me confirmen que no hay ningun problema, subo las nuevas versiones de todas las plataformas oficialmente soportadas (menos dingux, porque aun esta verde por el tema de la mixer)
No entendí, ¿tienes tu propia mixer de que?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 25, 2011, 09:42:30 PM
no, la SDL_mixer oficial, pero las dlls que usa la SDL_mixer, compiladas propias, las oficiales crashean.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 26, 2011, 09:00:38 PM
En Windows me va bien esta versión Splinter, tengo que hacerle aún más rodaje, entre hoy y mañana, pero en principio el test aquel no lo cruje con la sdl_mixer que tu añades o la mia, creo que tu ya probaste el test de estres y de la mochila también.

En la Wiz me es imposible hacer una partida completa, creo que la memoria RAM disponible varia de una partida a otra o que no esta descargando bien los recursos, a la maquina le duele mucho el cambio de OGGs, se congela, se pone a 3fps de forma temporal, hace cosas raras con el sonido, si desactivo la música me dura más desde luego, supongo que todo esto es en parte porque el juego entra muy justo en Wiz (no uso la música dentro de la mochila), pero me extraña que una misma fase en una sesión la cargue 4 veces y en otra solo pueda 2, haciendo el mismo recorrido, asegurandome de que la gestión de memoria es correcta, por lo menos en Windows.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 27, 2011, 12:45:27 AM
supongo que sera cuestion de memoria... pone en algun lugar visible el retorno de la funcion mem_free()... a ver que pasa.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 28, 2011, 12:47:14 AM
Probare a jugar una partida completa sin música en Wiz, luego te cuento.

Has hecho cambios en set_fps desde agosto 2010 ?

Me comentan que hay caidas de rendimiento en esta versión concreta del lenguaje y en la que tienes subida en la web, cosa que no pasaba en la de agosto 2010, son caidas temporales y que no tienen que ver con la carga de instrucciones / procesos en pantalla, simplemente pasan de vez en cuando, durante varios segundos y se marchan, especialmente despues de cambios en set_fps a lo largo de la ejecución, como puede ser ponerlo a 24fps y luego a 60fps.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 28, 2011, 02:01:22 AM
nop, los ultimos cambios de FPS los testeamos juntos.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on March 28, 2011, 08:40:24 AM
Pude acabar una partida completa en la Wiz, sin música, es el OGG el problema.

Voy a ver si le hago algun test..
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 28, 2011, 11:10:09 AM
por que no probas con otro tipo de audio? por ejemplo, pasando los sonidos a wav o mp3? con esto podrias ver si el tema es de la vorbis u ogg o algun tema general de la sdl_mixer.

ya te digo que en wiz tienen la version 1.2.6 de la sdl_mixer.
Title: Re: Avances, Diario de...
Post by: josebita on March 28, 2011, 05:02:44 PM
Quote from: Kloppix on March 16, 2011, 08:53:32 AM
No se si éste sitio sea el mas lógico para comentarlo, pero la versión 1.0.0rc20-svn20110314 me da el siguiente problema:

# bgdc hola.prg
*** buffer overflow detected ***: bgdc terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x50)[0x2f7390]
/lib/tls/i686/cmov/libc.so.6(+0xe12ca)[0x2f62ca]
/lib/tls/i686/cmov/libc.so.6(+0xe19e8)[0x2f69e8]
bgdc[0x806b0f9]
bgdc[0x804953e]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x22bbd6]
bgdc[0x80493a1]
======= Memory map: ========
00200000-00213000 r-xp 00000000 08:07 782034     /lib/libz.so.1.2.3.3
00213000-00214000 r--p 00012000 08:07 782034     /lib/libz.so.1.2.3.3
00214000-00215000 rw-p 00013000 08:07 782034     /lib/libz.so.1.2.3.3
00215000-00368000 r-xp 00000000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00368000-00369000 ---p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
00369000-0036b000 r--p 00153000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036b000-0036c000 rw-p 00155000 08:07 786130     /lib/tls/i686/cmov/libc-2.11.1.so
0036c000-0036f000 rw-p 00000000 00:00 0
00883000-0089e000 r-xp 00000000 08:07 821200     /lib/ld-2.11.1.so
0089e000-0089f000 r--p 0001a000 08:07 821200     /lib/ld-2.11.1.so
0089f000-008a0000 rw-p 0001b000 08:07 821200     /lib/ld-2.11.1.so
00c92000-00caf000 r-xp 00000000 08:07 781919     /lib/libgcc_s.so.1
00caf000-00cb0000 r--p 0001c000 08:07 781919     /lib/libgcc_s.so.1
00cb0000-00cb1000 rw-p 0001d000 08:07 781919     /lib/libgcc_s.so.1
00cdd000-00e15000 r-xp 00000000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e15000-00e1d000 r--p 00137000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e1d000-00e2b000 rw-p 0013f000 08:07 821323     /lib/i686/cmov/libcrypto.so.0.9.8
00e2b000-00e2f000 rw-p 00000000 00:00 0
00ecf000-00ed0000 r-xp 00000000 00:00 0          [vdso]
00f5e000-00f60000 r-xp 00000000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f60000-00f61000 r--p 00001000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
00f61000-00f62000 rw-p 00002000 08:07 792413     /lib/tls/i686/cmov/libdl-2.11.1.so
08048000-08071000 r-xp 00000000 08:07 271163     /usr/bin/bgdc
08071000-08072000 r--p 00028000 08:07 271163     /usr/bin/bgdc
08072000-08088000 rw-p 00029000 08:07 271163     /usr/bin/bgdc
08088000-081a1000 rw-p 00000000 00:00 0
09648000-09669000 rw-p 00000000 00:00 0          [heap]
b7738000-b773a000 rw-p 00000000 00:00 0
b7753000-b7755000 rw-p 00000000 00:00 0
bf95a000-bf96f000 rw-p 00000000 00:00 0          [stack]
Abortado

En una instalación limpia de Ubuntu Natty puedo replicar el problema, más o menos. ¿Qué versión de Ubuntu usas?. ¡Ah! y moddesc no lo he subido nunca, pero lo intentaré subir en los próximos días.
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 31, 2011, 02:46:24 AM
nueva mejora

- ahora el scroll no crashea si se elimina alguno de los graficos del scroll

el scroll sigue activo, pero no se dibuja ni se procesa, si se setea un nuevo grafico con el mismo id con que se inicio el scroll en el mismo file, entonces se vuelve a procesar el scroll.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on March 31, 2011, 04:28:46 AM
pregunta..

estaba mirando el entorno de programacion de dreamcast
y como se compila bennu para tener un solo ejecutable...  sin dlls
en el cvs esta el make para llevarme una idea, de como empacar todo?
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 31, 2011, 10:44:10 AM
no se puede compilar en un solo ejecutable por ahora...

dreamcast no soporta dlls?
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on March 31, 2011, 08:13:20 PM
Quote from: SplinterGU on March 31, 2011, 10:44:10 AM
no se puede compilar en un solo ejecutable por ahora...

dreamcast no soporta dlls?
ni idea , hay poca info.  mirare..
Title: Re: Avances, Diario de...
Post by: SplinterGU on March 31, 2011, 08:59:28 PM
cuando reciba la dreamcast que me va a enviar Fuseki, me voy a tener que meter con eso.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on April 01, 2011, 02:16:11 AM
perfecto , encontre algo de pronto te pueda servir...

un port de fenix que no es de chui, es de otra gente que inclusive le metio soporte de dlls
hay que mirarloo..

http://webcache.googleusercontent.com/search?q=cache:_WQA--FyOykJ:www.dc-swat.ru/page/fenix/+Fenix_dll_sdk_v1.0.tar.bz2&cd=1&hl=es&ct=clnk&gl=co&source=www.google.com.co (http://webcache.googleusercontent.com/search?q=cache:_WQA--FyOykJ:www.dc-swat.ru/page/fenix/+Fenix_dll_sdk_v1.0.tar.bz2&cd=1&hl=es&ct=clnk&gl=co&source=www.google.com.co)
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 01, 2011, 04:52:38 AM
pero si soporta dlls entonces no creo haya nada raro, a menos que no soporte dlls nativas y sea un hack.

gracias, el makefile creo que puede resultar muy util.

lastima que no estan los fuentes de fenix... pero bueno, no importa, algo es algo.
Title: Re: Avances, Diario de...
Post by: Drumpi on April 01, 2011, 06:08:11 PM
Y si no, se puede probar con la versión monolítica que hay, la no oficial que se está usando en Wii y PSP ¿no?
Title: Re: Avances, Diario de...
Post by: DCelso on April 01, 2011, 08:14:13 PM
pues creo que son ligeramente distintas. :D, no se hasta qué punto usó josebita mi formato monolítico :D.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on April 01, 2011, 10:43:44 PM
voy a pedirle a los autores el codigo de fenix .. ese..
Title: Re: Avances, Diario de...
Post by: josebita on April 04, 2011, 02:09:53 AM
Splinter, en cuanto al crash (éste (http://forum.bennugd.org/index.php?topic=102.msg38910#msg38910)) veo que se produce en la llamada a realpath en core/include/files_st.h.
Para esa llamada en linux, el valor de __MAX_PATH es 260. Si aumento ese límite, el crash desaparece.
Me imagino que redujiste el límite para las plataformas pequeñitas, pero ¿no sería posible diferenciar linux pequeños y grandes?.

PD: ¿Esto sólo ocurre en Ubuntu?. ¿No te ocurre en Debian?.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2011, 02:21:34 PM
a mi no me pasa, pero podria ser causa de caida en varios linux... no se, voy a cambiarlo e intentar.

no se si esto no afecta a los dcb tambien... chequeaste eso?
Title: Re: Avances, Diario de...
Post by: josebita on April 04, 2011, 03:38:18 PM
He probado el firewhip y el eek y no me han dado mayor problema.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2011, 03:51:04 PM
los que ya estaban compilados? o los recompilaste?
Title: Re: Avances, Diario de...
Post by: josebita on April 04, 2011, 05:17:32 PM
Los ya compilados, claro. Lo otro es trampa :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2011, 05:32:01 PM
excelente, gracias.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on April 04, 2011, 09:15:56 PM
Splinter, exite algun problema con la función glob cuando hay empaquetado y se quiere hacer glob fuera de él ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 04, 2011, 10:47:22 PM
la funcion glob solo trabaja fuera del empaquetado.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 09, 2011, 12:24:24 AM
nueva version

bgd-1.0.0RC22(r243)
Title: Re: Avances, Diario de...
Post by: blostec on April 11, 2011, 03:30:47 PM
Gran trabajo Juan, bajando la nueva release. Muchas gracias! karma up  :D
Title: Re: Avances, Diario de...
Post by: Fede on April 11, 2011, 03:45:23 PM
Karma pa Splinter, que hace tiempo que no le doy ninguno.  ;D
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on April 12, 2011, 02:44:38 AM
XCLNT
Title: Re: Avances, Diario de...
Post by: blostec on April 12, 2011, 10:31:53 AM
Que ha cambiado con la opciones de mochila -s? en windows se me crea el ejecutable correctamente compilando con las opciones -a y -s para que me cree el ejecutable con el contenido añadido en él. El caso es que, aunque el tamaño del exe indica que si se ha incluido, al ejecutarlo da error. Si pongo el contenido que había añadido al exe en la carpeta, entonces si funciona. mmmm no se si me he explicado bien  :-[
Title: Re: Avances, Diario de...
Post by: Outlaw on April 12, 2011, 12:47:49 PM
Karma para Splinter! Como siempre, gracias!
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 12, 2011, 03:34:21 PM
Quote from: blostec on April 12, 2011, 10:31:53 AM
Que ha cambiado con la opciones de mochila -s? en windows se me crea el ejecutable correctamente compilando con las opciones -a y -s para que me cree el ejecutable con el contenido añadido en él. El caso es que, aunque el tamaño del exe indica que si se ha incluido, al ejecutarlo da error. Si pongo el contenido que había añadido al exe en la carpeta, entonces si funciona. mmmm no se si me he explicado bien  :-[

a mi no me ha pasado eso.

comenta paso a paso como lo compilas, si usas un script copia el script, etc, y comenta paso a paso como lo ejecutas, si por linea de comando o haciendo click desde el navegador, desde que directorio, donde estan las dlls y demas.
Title: Re: Avances, Diario de...
Post by: blostec on April 12, 2011, 04:48:12 PM
Ok te cuento:

compilo desde linea de comandos desde el directorio de BennuGD donde también tengo los archivos campo.prg y campo.fpg así:


bgdc -a -s bgdi.exe campo.prg


el caso es que compila y genera el ejecutable correctamente y al iniciarlo funciona correctamente. Pero cuando borro el archivo campo.fpg que se supone que esta añadido en el .exe, da error.

-Con campo.fpg en el directorio:

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

funciona correctamente

-Cuando quito el archivo campo.fpg que ya no debe estar allí, da error:

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

Adjunto el ejemplo campo en un rar. Lo he probado con diversos ejemplos y en todos falla. El caso es que eso mismo si funciona con la RC21 y anteriores.





Title: Re: Avances, Diario de...
Post by: SplinterGU on April 12, 2011, 06:25:19 PM
lo chequeare, gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 12, 2011, 07:40:15 PM
efectivamente falla en windows, estoy viendo donde es el tema.

gracias.
Title: Re: Avances, Diario de...
Post by: blostec on April 12, 2011, 08:54:48 PM
Gracias a ti por tu atención, saludos!
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 14, 2011, 03:26:58 AM
ya tengo el fix de la mochila, y otros fix mas que tienen que ver con esto mismo.

estoy compilando la version windows, hare una prueba mas y en estos dias la subo, no digo hoy ni mañana... pero si actualizare el svn.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on April 14, 2011, 07:42:36 AM
Creo recordar que eso ocurria en el juego de Futublog de la crap combo, se me habia olvidado relatar el problema
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 14, 2011, 06:50:05 PM
olvide anunciar que ya subi nueva version fixeada.

ahora es posible crear aplicaciones que si las ponemos en el path (junto a sus recursos, grafico, sonidos, etc), se pueden correr como cualquier otra aplicacion estandard.
Title: Re: Avances, Diario de...
Post by: josebita on April 14, 2011, 07:14:10 PM
Gracias, a ver si esta noche actualizo el PPA y mi versión monolítica.
Title: Re: Avances, Diario de...
Post by: blostec on April 17, 2011, 07:25:32 PM
Gracias Juan, ahora la bajo y la pruebo. Saludos acompañados de karma  :P
Title: Re: Avances, Diario de...
Post by: Outlaw on April 17, 2011, 07:45:00 PM
Gracias por tu trabajo Splinter! ( k++) Lo que quiero que me despejes una duda, ahora por lo que entiendo entonces, se puede tener todo un programa en un .exe y listo? sin necesidad de librerías junto con este .exe?
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 18, 2011, 12:32:22 AM
no, las librerias son otra cosa... igual puedes poner las libs en otro directorio mientras este en el path.
Title: Re: Avances, Diario de...
Post by: Fede on April 18, 2011, 06:16:57 AM
Gracias Splinter. Un karmita por aquí también.  ;D
Title: Re: Avances, Diario de...
Post by: Drumpi on April 19, 2011, 12:31:33 PM
Version nueva, Karma nuevo :)

Por cierto, Splinter ¿te funciona bien el Drajon Lol: devolución, extreme edition (vamos, el juego de drajon lol de la última crap compo) en WIZ? A mi me sale con los colores distorsionados y no sé si es del set mode o qué, pero en otros juegos no me pasa (y sí, cargo la paleta).
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 19, 2011, 01:16:35 PM
Quote from: Drumpi on April 19, 2011, 12:31:33 PM
Version nueva, Karma nuevo :)

Por cierto, Splinter ¿te funciona bien el Drajon Lol: devolución, extreme edition (vamos, el juego de drajon lol de la última crap compo) en WIZ? A mi me sale con los colores distorsionados y no sé si es del set mode o qué, pero en otros juegos no me pasa (y sí, cargo la paleta).

no lo probe, de donde lo bajo?
Title: Re: Avances, Diario de...
Post by: blostec on April 19, 2011, 04:00:49 PM
Desconozco si hay una versión mas nueva, pero creo que se refiere a este:
http://drumpi.se32.com/games/drajon_lol4.zip (http://drumpi.se32.com/games/drajon_lol4.zip)

Topic donde se habla de los problemas en wiz: http://forum.bennugd.org/index.php?topic=1718.msg31557#msg31557 (http://forum.bennugd.org/index.php?topic=1718.msg31557#msg31557)
Title: Re: Avances, Diario de...
Post by: Drumpi on April 19, 2011, 07:03:38 PM
Minipunto y punto para blostec.
karma por ahorrarme la búsqueda (este fin de semana he estado fuera de boda, así que las pilas están bajo mínimos ^^U).
Title: Re: Avances, Diario de...
Post by: DCelso on April 20, 2011, 11:25:18 PM
splinter, como complicas el uso de bennu en linux, joe, ahora resulta que necesito openssl 1.0.0 y libssl1.0.0 y resulta que no están en la versión de debian squeezy. Menos mal que los encontré en la versión experimental de debian y me he arrumbao los .deb que si no... :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on April 20, 2011, 11:58:22 PM
yo no complico nada, son los upgrade de los linux los que lo hacen... lo siento.
Title: Re: Avances, Diario de...
Post by: DCelso on April 21, 2011, 12:24:38 AM
:D, no lo sientas, el avance es el avance :D.
Title: Re: Avances, Diario de...
Post by: darío on May 10, 2011, 04:54:07 PM
Yo tengo el mismo problema :(
Title: Re: Avances, Diario de...
Post by: SplinterGU on May 10, 2011, 04:56:10 PM
yo uso la version testing.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 15, 2011, 03:41:44 AM
acabo de implementar m7 en 16 y 32bits, con ciertas limitaciones, tanto el grafico indoor, como el outdoor deben ser de la misma profundidad del modo de video, y tambien por ahora (por hoy) no hay flag translucent en 32bits.

aun no lo probe, pero bueno, la implementacion la tengo, ni bien la tenga probada y con la transparencia en los 32bits la subo al svn.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 15, 2011, 03:47:43 AM
bueno, en 8bpp sigue funcionando, necesito hacerme los graficos a 16bits y a 32bits para probar.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 15, 2011, 06:02:22 AM
karma (por hoy) tambien :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 15, 2011, 10:05:36 PM
probado m7 en 16 y en 32bits... funciona perfect... ahora solo resta meter transparencias en 32bits.
Title: Re: Avances, Diario de...
Post by: osk on June 15, 2011, 10:10:38 PM
ou, yeah!!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 15, 2011, 10:29:52 PM
(http://img822.imageshack.us/img822/4408/vlcsnap2011022401h59m39.jpg)


OHHH YEEAAAHH!
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 16, 2011, 01:21:30 AM
bien, free, ya tenes soporte 16bpp y 32bpp en el modo7.

1 punto menos de los pendientes.

unica limitacion, modo de video, grafico indoor y grafico outdoor, deben tener la misma profundidad de colores, luego los procesos pueden ser cualquier profundidad, obviamente con las mismas restricciones que el 2d comun.

ya esta el repositorio actualizado, asi que pueden generar sus versiones de ejecutables, yo aun no actualizare los binarios, voy a poner unos cambios mas.
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on June 16, 2011, 04:26:44 AM
Quote from: SplinterGU on June 16, 2011, 01:21:30 AM
ya tenes soporte 16bpp y 32bpp en el modo7.


joder bennu lleva años luz a sus competidores...
Title: Re: Avances, Diario de...
Post by: Krammer on June 16, 2011, 05:01:14 AM
Quote from: l1nk3rn3l on June 16, 2011, 04:26:44 AM
Quote from: SplinterGU on June 16, 2011, 01:21:30 AM
ya tenes soporte 16bpp y 32bpp en el modo7.


joder bennu lleva años luz a sus competidores...

No será al revés?
Ya era hora de que Bennu tuviera mode_7 a 32 bits, y ahún así es sin transparencia..
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 16, 2011, 07:14:55 AM
Vale, a la espera de los binarios para ver esos colores moviendose xD
Voy a atreverme a compilar la version Pandora ya que tengo el makefile de stuckie xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 16, 2011, 03:10:52 PM
quien dijo que no tiene transparencias? ya dije que si las tiene.
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 16, 2011, 03:19:46 PM
free, puedes bajarte los fuentes del svn y ahi tambien tienes los makes para generar la version windows o linux, linux te sera mas facil me parece.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 16, 2011, 04:03:37 PM
Ya, pero despues de las experiencias del pasado ya solo creo que conseguiré compilar la de Pandora xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 16, 2011, 04:07:27 PM
ok, para el resto de los binarios vas a tener que esperar un buen tiempo, hasta que no descargue la lista de pendientes creo que no liberare ejecutables oficiales.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 16, 2011, 04:50:31 PM
No te preocupes, en realidad lo que mas me urge es la lib de eventos para Wiz / Caanoo (nos gusta pedir hehehe)
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 16, 2011, 05:06:37 PM
pero si no te va la jkeys, dudo que te pueda servir la lib de eventos.

vas a tener que adaptar la logica a tu modificacion.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on June 16, 2011, 05:27:59 PM
Es esa la idea, puedo usar solo la parte de los eventos, cuando necesite evento uso la tuya, en los otros casos la mia. Tendré que probar si tus eventos van en mis caanoo's.
Title: Re: Avances, Diario de...
Post by: Drumpi on June 17, 2011, 08:06:17 PM
Pues nada, aprovechamos la coyuntura para darle a Splinter uno de sus merecidísimos karmas :D
Y bueno, ya con tiempo se le pedirán más cosas, de momento, hay pruebas en standby antes de poder decir nada más ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 19, 2011, 02:21:26 AM
fix collision with some flags, now only this mask is used for collision flag ( B_HMIRROR | B_VMIRROR )

se corrije collision con algunos flags, ahora solo se usa la mascara formada por ( B_HMIRROR | B_VMIRROR ) para el flag en la collision.
Title: Re: Avances, Diario de...
Post by: josebita on June 20, 2011, 12:29:11 AM
Quote from: SplinterGU on June 19, 2011, 02:21:26 AM
fix collision with some flags, now only this mask is used for collision flag ( B_HMIRROR | B_VMIRROR )

se corrije collision con algunos flags, ahora solo se usa la mascara formada por ( B_HMIRROR | B_VMIRROR ) para el flag en la collision.
Acabo de actualizar el PPA con el último código.
Title: Re: Avances, Diario de...
Post by: JaViS on June 20, 2011, 12:50:54 AM
buenisimo Josebita, gracias :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 20, 2011, 01:36:54 AM
Quote from: josebita on June 20, 2011, 12:29:11 AM
Quote from: SplinterGU on June 19, 2011, 02:21:26 AM
fix collision with some flags, now only this mask is used for collision flag ( B_HMIRROR | B_VMIRROR )

se corrije collision con algunos flags, ahora solo se usa la mascara formada por ( B_HMIRROR | B_VMIRROR ) para el flag en la collision.
Acabo de actualizar el PPA con el último código.

gracias! karma!
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 23, 2011, 05:10:16 AM
- Remove sound in dingux (this versions works nice!)
- Add new function FFLUSH(file handle)
- Fix fseek (file_seek) function, now return values like C. (wiki need fix)
Title: Re: Avances, Diario de...
Post by: SplinterGU on June 23, 2011, 05:48:55 AM
fucking problem in gcc-4.6, now don't support --as-needed, we must use

CC=gcc-4.5 ./build-std-unix.sh

for compile bennugd in linux

gcc-4.5 or other compatible
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2011, 02:11:46 AM
- Fix error in makefile with gcc 4.6 (--as-needed)
- add accessed and statechg into fileinfo struct,
created is not available in unix/linux,
status change is not available in windows
Title: Re: Avances, Diario de...
Post by: Drumpi on July 02, 2011, 12:09:07 PM
Jurl? ¿en cristiano? ¿o son cambios internos?
Aprovecho para darte uno d elos karmas que te debo por la nueva versión... en SVN :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 02, 2011, 08:52:11 PM
internos y externos... para las opendir y readdir.
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 10, 2011, 06:03:55 PM
Acabo de bajarme la última versión RC y (aunque he estado algunos meses sin seguir mucho) he visto que ahora todos archivos se encuentran en la misma carpeta, cuando antes se dividían en subcarpetas (/bin, /externals, /libs y /modules). Supongo que el cambio ha sido en pro de la facilidad de montar los proyectos, cosa que agradezco. Aún así le veo un "pero": la carpeta del ejecutable se llena de dlls. ¿Se podrían meter en subcarpetas para así tener sólo el ejecutable (por limpieza)? ¿Cómo? ¿Hay algún modo de saber exactamente, sin hacerlo manualmente, qué librerías, módulos... necesito en mi proyecto? Hasta ahora yo lo he hecho a lo fácil, copiar todo a la carpeta del ejecutable. (Creo que esto sería tema para un tutorial)

Un saludo
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 10, 2011, 11:27:06 PM
tenes carpetas especiales para hacer eso, que podes llamar plugins, modules, dlls, mod, y algunas mas, busca en este hilo y vas a encontrar la lista.
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 11, 2011, 08:59:48 AM
¿Podrías ser un poco más específico? Es un hilo de ciento y pico páginas...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 11, 2011, 09:32:44 PM
en este mismo hilo, en buscar, pone "plugins" y dale enter, el 2do resultado esta la solucion
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 11, 2011, 09:48:08 PM
Quote from: SplinterGU on March 09, 2011, 03:52:54 AM
ya es posible poner las dlls en carpetas separadas, pero con las siguientes restricciones:

- bgdrtm debe estar en la carpeta del ejecutable, en el caso de linux tambien debe estar en LD_LIBRARY_PATH (o ld.conf*) el path donde se haya la libreria.
- las dlls/so se pueden poner en las siguientes subcarpetas donde se encuentre el bgdi que se ejecuta: "runtime", "modules", "mod", "mods", "lib", "libs", "extensions", "plugins"
se puede usar 1 o varias de estas subcarpetas.
- ahora se agrega el path del binario en el path interno donde se abren los archivos de recursos del juego (incluido el dcb)

en un rato subo las modificaciones, no hare release binaria de momento, pero el que quiere compilar y probarla ahi lo tendra disponible.

me falta testear la version windows, y consolas, solo probe la version linux.

Supongo que te refieres a esto. Aunque no lo he entendido bien, esto exactamente:

Quoteahora se agrega el path del binario en el path interno donde se abren los archivos de recursos del juego (incluido el dcb)

Gracias de antemano
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 11, 2011, 10:02:31 PM
podes crear cualquiera de las siguientes subcarpetas y meter las dlls ahi

"runtime", "modules", "mod", "mods", "lib", "libs", "extensions", "plugins"
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 18, 2011, 09:16:19 PM
Quote from: SplinterGU on July 11, 2011, 10:02:31 PM
podes crear cualquiera de las siguientes subcarpetas y meter las dlls ahi

"runtime", "modules", "mod", "mods", "lib", "libs", "extensions", "plugins"

He hecho algunas pruebas, pero tengo que hacer lo de siempre, meter todas las dll en la misma carpeta que el ejecutable.

Los pasos que seguí fueron estos:

1-. Crear una carpeta "libs". Meter ahí todos los dll excepto libbgdrtm.dll.
2-. Meto libbgdrtm.dll en la misma carpeta que ele ejecutable y me pide libeay32.dll para que funcione.
3-. Meto libeay32.dll y al ejecutar me dice: "Could not load library."
4-. Así que sólo logro que funcione metiendo todo en el mismo sitio.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 18, 2011, 10:40:29 PM
creo que ya se explico, pero lo voy a repetir, no viene demas... (si alguien lo documenta en la wiki o en algun lugar seria grandioso)

estas carpetas solo se pueden usar para las librerias que carga bennugd, aquellas que se linkean deben estar en la carpeta del binario... para no perder mucho tiempo viendo que va en que y que no, yo recomiendo poner todas las .lib y las dlls externas (SDL, eay, crypt, etc) en la carpeta del binario y todos los mod_* donde quieren (de las carpetas mencionadas)
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 19, 2011, 08:48:14 AM
Pues sigo intentando y no lo consigo:

Si pongo cualquier mod_* necesario del juego en las carpetas mencionadas, me da este error: "a:0: error: a: file not found ( token error: EOF )."

¿Hay que compilar el prg de alguna otra manera? Yo, normalmente, compilo con bgdc -C a nombre_del_juego.prg

Gracias por la paciencia!
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 19, 2011, 01:30:19 PM
no, no deberias meter nada...

si revisas el hilo, vas a ver que alguien tambien tuvo la misma inquietud y la resolvio como yo digo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 19, 2011, 01:31:45 PM
perdon, las carpetas son estas

    "modules",
    "mod",
    "mods",
    "extensions",
    "plugins",
    "data",
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 19, 2011, 04:44:59 PM
Voy por la pág. 67 y hasta ahora nada de lo que estaba preguntando, pero mucho de lo que no leí en su tiempo. Eso sí, tiene tela tener un hilo con tantas págs.!

De todo esto, y relacionado con fbmx, sería interesante tener en el moddesc.exe, algunos parámetros para sacar sólamente nombres de funciones, funciones con sus parámetros, lista de variables...

por ejemplo

moddesc -func mod_scroll.dll

así, el cde completion help de fbmx podría añadir funciones, vars, ... de otros módulos que no fuesen oficiales, o sólo cargar los que aparezcan en los import.

Un saludo
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 19, 2011, 04:47:40 PM
esta buena la idea... le agregare esos features...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 22, 2011, 04:41:30 PM
bueno, me he tomado 10 minutos y he implementado scroll y modo7 sobre mapas, con lo cual ahora se va a poder hacer zoom en los scroll, rotaciones, deformaciones (size_x, size_y), y todo lo que se les ocurra.

me falta algo importante, testearlo... :D

y no me he olvidado de generar los binarios, estoy armando mi entorno de compilacion windows, asi que apenas lo tenga listo, subo los binarios, pero no va a pasar de este fin de semana.
Title: Re: Avances, Diario de...
Post by: Outlaw on July 22, 2011, 04:59:53 PM
Grande Splinter!!! Karma y despues te vuelvo a dar mas, excelente feature! Un abrazo!
Title: Re: Avances, Diario de...
Post by: JaViS on July 22, 2011, 05:10:39 PM
Quote from: SplinterGU on July 22, 2011, 04:41:30 PM
bueno, me he tomado 10 minutos y he implementado scroll y modo7 sobre mapas, con lo cual ahora se va a poder hacer zoom en los scroll, rotaciones, deformaciones (size_x, size_y), y todo lo que se les ocurra.

me falta algo importante, testearlo... :D

y no me he olvidado de generar los binarios, estoy armando mi entorno de compilacion windows, asi que apenas lo tenga listo, subo los binarios, pero no va a pasar de este fin de semana.

NOOOOOOO!!! plz ponete un ejemplo de como deberia ser el codigo!!!
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 22, 2011, 05:14:25 PM
simplemente se agregan 2 parametros opcionales a los comandos start_scroll y mode7_start, que son, file y graph donde se hara el render.

simplemente eso, y con eso ya ese scroll y todos los procesos dentro del scroll se dibujan en ese mapa.

las regiones pasan a ser regiones del mapa, o sea, el mapa pasa a ser la pantalla para el scroll o modo7.
Title: Re: Avances, Diario de...
Post by: osk on July 22, 2011, 05:45:46 PM
¡YES!
Title: Re: Avances, Diario de...
Post by: JaViS on July 22, 2011, 06:01:14 PM
Quote from: SplinterGU on July 22, 2011, 05:14:25 PM
simplemente se agregan 2 parametros opcionales a los comandos start_scroll y mode7_start, que son, file y graph donde se hara el render.

simplemente eso, y con eso ya ese scroll y todos los procesos dentro del scroll se dibujan en ese mapa.

las regiones pasan a ser regiones del mapa, o sea, el mapa pasa a ser la pantalla para el scroll o modo7.


o sea que despues para mostrarlo, hay que hacer un proceso que use ese mapa como graph , correcto?
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 22, 2011, 06:35:41 PM
Quote from: SplinterGU on July 19, 2011, 04:47:40 PM
esta buena la idea... le agregare esos features...

¡Gracias!
Title: Re: Avances, Diario de...
Post by: Drumpi on July 22, 2011, 08:28:58 PM
Punto 1: Genial, felicidades, Splinter, te has ganado karmas adicionales (de momento, uno, cuando me acuerde, más :D).

Punto 2: La parte técnica. Supongo que el rendimiento será algo menor, al tener que ejecutar el blitter dos veces para mostrar la imagen (uno para dibujar sobre el gráfico y otro para dibujar en la pantalla) ¿Llega a los niveles de PUT o se queda en algo intermedio?.
Sí, me estuve mirando las funciones del blitter (muy por encima) ¿lo de la dificultad para realizar los cambios que te dije lo decías por la cantidad de funciones que hay? (parece que hay un bliter para cualquier combinación de profundidades de color) ¿o por otra cosa?

Punto 3: Bueno, con esto conseguimos rotaciones en los modos7 (que vendrá de lujo cuando tenga que usar los giroscopios de CAANOO para girar en el Sonic Drift), y quiero hacer una prueba conceptual para comprobar qué tal se ve (como funcione a una velocidad decente FLIPO).
Title: Re: Avances, Diario de...
Post by: Outlaw on July 23, 2011, 01:10:12 AM
La verdad, es detestable lo que Erkosone pone, llega a un nivel de fanatismo innecesario, rayando lo anormal y actuando de "agente encubierto" para trollear en esta página. La verdad una conducta DETESTABLE y que me da vergüenza ajena.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2011, 01:15:05 AM
por favor, evitemos el conflicto y los comentarios al respecto, en verdad lo agradezco.

saludos y gracias.

edit: disculpas de la edicion masiva de posts que hice.
Title: Re: Avances, Diario de...
Post by: Outlaw on July 23, 2011, 01:16:30 AM
Ok, disculpa Splinter, es que me hacen calentar
Title: Re: Avances, Diario de...
Post by: kim-elet-o on July 23, 2011, 07:18:23 AM
Bien, bien y Rebien!!, sobre el horizonte se ve asomar bennuGD 1.0, ya va quedando menos. Karma up para SplinterGU por todo su trabajo.
Title: Re: Avances, Diario de...
Post by: KeoH on July 23, 2011, 04:42:48 PM
Quote from: SplinterGU on July 22, 2011, 04:41:30 PM
bueno, me he tomado 10 minutos y he implementado scroll y modo7 sobre mapas, con lo cual ahora se va a poder hacer zoom en los scroll, rotaciones, deformaciones (size_x, size_y), y todo lo que se les ocurra.

me falta algo importante, testearlo... :D

y no me he olvidado de generar los binarios, estoy armando mi entorno de compilacion windows, asi que apenas lo tenga listo, subo los binarios, pero no va a pasar de este fin de semana.


loool acabo de leer esto xDD esto soluciona de un plumazo lo de hacer zoom en un scroll q yo queria no? lo q tengo en el apartado de mesa de ayuda no? xDDD Karmazo!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 23, 2011, 04:50:52 PM
Siguiendo con los avances de Bennu, os comento:

En la pandora, me habia fijado que el juego 'Operation Fenix', el cual porte y que es touchscreen, el cursor a veces se volvia loco y se desaliñaba al jugar.
Pues bien, en los foros Gp2x hablan del problema, parece ser que es un problema del SDL al ocultar el cursor, Splinter si puedes hechale un ojo a este articulo que dice como resolver el problema en las llamadas al SDL, de momento parece que no ha afectado mas ports de bennu, pero si es sencillo de resolver internamente, pues cuanto antes se haga el fix mejor, para evitar problemas en el futuro:

http://blogs.distant-earth.com/wp/?p=293
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2011, 07:59:25 PM
eso solo pasa con Pandora? yo no mantengo el port Pandora, deberias meter ese fix en dicho port.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2011, 09:03:24 PM
maldito mingw nuevo, me esta dando miles de problemas para compilar, ahora la nueva libpng cambio toda la forma de acceder a la info de los png, y yo no dan mas acceso a las estructuras internas, ahora hay que usar funciones, por un tema de seguridad que encontraron.

maldicion, tengo que tocar por todos lados, la version windows se esta complicando un poco.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 23, 2011, 11:30:47 PM
Tengo que mirar a ver si con eclipse se puede compilar, nunca lo he usado para autotools... bueno, sí, pero para la BeagleBoard y sin tener ni idea de lo que hacía ^^U
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 23, 2011, 11:35:10 PM
ya esta solucionado el tema de la png, ahora estoy recompilando todo en windows, tarda demasiado.
Title: Re: Avances, Diario de...
Post by: josebita on July 24, 2011, 12:10:25 AM
Quote from: SplinterGU on July 23, 2011, 09:03:24 PM
[...]ahora la nueva libpng cambio toda la forma de acceder a la info de los png[...]
Lleva dando warnings de Deprecated APIs como dos años, hombre... :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 12:21:09 AM
que warnings, ya directamente con la 1.5.4 no compila... ademas no es por las funciones, sino por los accesos a estructuras, ya la png_info no es accesible al usuario directamente, ese es el mas grave problema, despues no hay ningun problema de deprecated...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 02:28:57 AM
tuve que dejar de usar openssl en win32, y volver a usar la lib des.

la compilacion con el nuevo mingw/gcc demoro el atemorizante tiempo de 1:20hs.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 04:28:49 AM
me olvide mencionar que modifique la moddesc con los cambios que pidio izaburre.

probe el scroll sobre mapas en windows y linux, me da la impresion que en windows en una VM va mas rapido que linux nativo, pero bueno, quizas es solo una impresion que me dio.

va de lujo.

ahora estoy armando los paquetes para subirlos al servidor, que va a incluir el m7 en 32 y 16 bits.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 04:54:09 AM
subidas las nuevas versiones incluido dingux.

por favor, prueben bien la version windows, que han cambiado las dlls y el compilador.

recuerden, para el scroll y m7 sobre map, solo se agregan 2 parametros a scroll_start y mode7_start (y sus alias), van al final y son, file, graph (del target o destino).

tambien me comentan luego que tal va el m7 en 16 y 32 bits, la unica limitacion que tiene el m7, es que los graficos de piso, cielo, etc, tienen que ir a la misma profundidad de colores que el modo de video, los graficos pueden tener diferente profundidad (menor o igual al modo actual de video)
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 24, 2011, 09:07:51 AM
Quote from: SplinterGU on July 24, 2011, 04:28:49 AM
me olvide mencionar que modifique la moddesc con los cambios que pidio izaburre.
(...)

izaburre!!! Jajaja, cómo os cuesta mi apellido :P
Title: Re: Avances, Diario de...
Post by: izubiaurre on July 24, 2011, 09:55:57 AM

Usage: moddesc.exe [options] modulename

    -e     On fenix, only report exported functions
    -L     only report locals
    -G     only report globals
    -T     only report types
    -C     only report constants
    -H     only report hooks
    -C     only report callbacks
    -D     only report modules/libs dependencies
    -l     only report locals dependencies
    -g     only report globals dependencies
    -h     This help



He estado probando un poco las funciones que pedí. De primeras veo que hay un parámetro para dos cosas diferentes: -C para constantes y para los callbacks. Supongo que los callbacks deberían ser -c. Otra cosa que he visto es que no hay un parámetro que vale para sacar una lista limpia de las funciones. Sólo he logrado con -e, pero con ello también sale todo lo demás.

Gracias por el aporte!
Title: Re: Avances, Diario de...
Post by: JaViS on July 24, 2011, 03:15:26 PM
Quote from: SplinterGU on July 24, 2011, 04:54:09 AM
subidas las nuevas versiones incluido dingux.

por favor, prueben bien la version windows, que han cambiado las dlls y el compilador.

recuerden, para el scroll y m7 sobre map, solo se agregan 2 parametros a scroll_start y mode7_start (y sus alias), van al final y son, file, graph (del target o destino).

tambien me comentan luego que tal va el m7 en 16 y 32 bits, la unica limitacion que tiene el m7, es que los graficos de piso, cielo, etc, tienen que ir a la misma profundidad de colores que el modo de video, los graficos pueden tener diferente profundidad (menor o igual al modo actual de video)

Buenisimo!! de donde se bajan! como quedan entonces la sfunciones nuevas?
habria que actualizar la Wiki ahora asi despes no nos olvidamos :P
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 04:20:21 PM
Quote from: izubiaurre on July 24, 2011, 09:55:57 AM

Usage: moddesc.exe [options] modulename

    -e     On fenix, only report exported functions
    -L     only report locals
    -G     only report globals
    -T     only report types
    -C     only report constants
    -H     only report hooks
    -C     only report callbacks
    -D     only report modules/libs dependencies
    -l     only report locals dependencies
    -g     only report globals dependencies
    -h     This help



He estado probando un poco las funciones que pedí. De primeras veo que hay un parámetro para dos cosas diferentes: -C para constantes y para los callbacks. Supongo que los callbacks deberían ser -c. Otra cosa que he visto es que no hay un parámetro que vale para sacar una lista limpia de las funciones. Sólo he logrado con -e, pero con ello también sale todo lo demás.

Gracias por el aporte!

me quedo mal el help, diablos!

los parametros son estos:

Quote
    -e     On fenix, only report exported functions
    -F     only report funcions
    -L     only report locals
    -G     only report globals
    -T     only report types
    -C     only report constants
    -H     only report hooks/callbacks
    -D     only report modules/libs dependencies
    -l     only report locals dependencies
    -g     only report globals dependencies
    -h     This help

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 04:23:35 PM
Quote from: JaViS on July 24, 2011, 03:15:26 PM
Quote from: SplinterGU on July 24, 2011, 04:54:09 AM
subidas las nuevas versiones incluido dingux.

por favor, prueben bien la version windows, que han cambiado las dlls y el compilador.

recuerden, para el scroll y m7 sobre map, solo se agregan 2 parametros a scroll_start y mode7_start (y sus alias), van al final y son, file, graph (del target o destino).

tambien me comentan luego que tal va el m7 en 16 y 32 bits, la unica limitacion que tiene el m7, es que los graficos de piso, cielo, etc, tienen que ir a la misma profundidad de colores que el modo de video, los graficos pueden tener diferente profundidad (menor o igual al modo actual de video)

Buenisimo!! de donde se bajan! como quedan entonces la sfunciones nuevas?
habria que actualizar la Wiki ahora asi despes no nos olvidamos :P

se bajan de la pagina principal.

las nuevas funciones son con 2 parametros mas al final (siguen estando las viejas).

una cosa a tener en cuenta es que esto solo dibuja sobre mapas lo que pertenece al scroll o al m7, si usan funciones de write u otras, procesos por fuera del scroll o m7, obviamente no se dibujan en el mapa.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 24, 2011, 04:48:24 PM
Una prueba rápida de esta versión r256 desde mi winXP64, usando el juego de carreras de Sonic (aka el nivel 3 de SBTime de forma independiente):

-Me dice que no se encuentra libpng-3.dll. He copiado y renombrado la libpng15-15.dll y se ha ejecutado el juego, pero se ha quedado con la pantalla en negro. Mismo resultado si la copio de la versión anterior. Tampoco si uso las tres libpng*.dll que había en mi versión anterior.
-He copiado las librerías de SDL y demás externals de la r228, y por error no copié la ogg.dll, pero el juego funciona pero sin sonido y dando mensajes de error por la consola. Al añadir la ogg.dll de nuevo vinieron los cuelgues.
-Instalación límpia, añado libpng1.dll, libpng12-0.dll y libpng-3.dll de la r228 y borro la libogg-0.dll: el juego arranca (tras un aviso de que no se encuentra la libogg-0.dll) pero de nuevo sin sonido y con los errores de consola.

-Parece que el modo7 va un poco más rápido que antes (apenas unos 2 ó 3 frames más), pero sólo se ve un único modo7: los pisos superiores (modos 7 a más altura sobre la misma región) no se ven, y los inferiores son tapados por el color negro (no hay transparencia para el color 0 de la paleta, recuerdo que uso aun el modo 8bits de color).

Si necesitas el "juego" para probar, me lo dices, Splinter. A ver si luego puedo probar con Linux.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 05:04:28 PM
porque posiblemente tengas alguna dll que no va, yo lo probe y no me dio problemas, pero quizas no cargue algun modulo que tu si, que pedia la png-3, podrias decirme que modulo te dice que falta al libpng-3?

gracias.

pasame el juego, pero te comento, si usas png, puede que haya problemas con la nueva dll y si estas usando la vieja dll png, pues claro que va a ir mal.

yo volvere a probar todo, la compilacion en windows tarda 1 hora 20, frente al minuto o 2 que tarda en linux, una locura.

si cambias las dlls, vas a obtener cuelgues.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 05:11:07 PM
parece que lo empaquete mal...
Title: Re: Avances, Diario de...
Post by: Drumpi on July 24, 2011, 05:23:06 PM
La mod_map, pero sí que está. La que no está es la libpng-3.dll.
Sin embargo con las librerías antiguas, salvo la de música OGG, sí que funciona.

De todas formas, te paso el "juego" por correo, tampoco quiero mostrarlo para que no me pidan más ^^U.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 07:50:02 PM
anoche reemplace accidentalmente la que usa la png correcta, pero como hice un clean ya no la tengo, y ahora me falla el configure, tengo que corregir alguna cosa en mi entorno y vuelvo a recompilar y subir.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 24, 2011, 08:59:09 PM
es correcto drumpi, meti un bug ayer con los cambios de ultimo momento en el m7, ya lo corregi.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 03:07:20 AM
que complicado se puso el entorno de windows... me volvi loco buscando porque no se dibujaban los graficos en los fpg, encima que la compilacion tarda al rededor de 1:20hs, me volvio loco... al final era la maldita zlib, no se si la tenia mal compilada o no se, pero incluso la de la vieja distro no abre los fpg comprimidos, por eso en la vieja distro habia 2, una zlib.dll y una zlib1.dll, la que se usaba era la zlib1.dll, y esa va de maravilla.

el sonido, parece que no va... no se, tengo que terminar de recompilar todo, quizas se deba tambien a la zlib que compilo estaticamente, o no tengo idea cual sea el problema...

lamentablemente se me acabo el fin de semana, espero poder terminar de probar hoy y subirlas, sino tendran que esperar a cuando tenga un tiempo libre, quizas el proximo fin de semana, aunque puede que este dificil.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 03:15:41 AM
si va el sonido... tenia la VM en mute... :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 03:31:51 AM
acabo de encontrar lindo bug en el core... los arrays multidimension se definen mal, hace cosas raras, se toma el ultimo parametro como dimension para casi todas las dimensiones.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 05:18:13 AM
arreglado el bug...

ya me voy a ir a dormir, pero voy a dejar compilando la version windows.
Title: Re: Avances, Diario de...
Post by: panreyes on July 25, 2011, 08:54:48 AM
¿Qué magnitud tiene ese pedazo de error? xD

¿Quieres decir que no reservaba bien la memoria cuando yo hacía int matriz[8][6]; ?
Title: Re: Avances, Diario de...
Post by: Drumpi on July 25, 2011, 01:22:12 PM
Sólo en la última versión. Supongo que era el error que me comentaba Splinter por correo en el "juego" que le mandé.
Por mi parte, no hay prisa, esta semana me voy de vacaciones (si me dejan), que ya hay ganas después de casi dos años sin, y encadenando un proyecto con otro (y encima, gratis :S).
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 01:23:12 PM
reserva si, pero [6][6], no se desde cuando es ese error... pero me suena que desde hace mucho... lo raro es que nadie se quejo, o nadie prueba, o nadie usa matrices o ven los bugs y se los guardan.

ya estan subiendo las nuevas versiones...

tambien corregi el error en la mod_sound, y bueno... disculpas por la version con tantos bugs.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 01:24:19 PM
Quote from: Drumpi on July 25, 2011, 01:22:12 PM
Sólo en la última versión. Supongo que era el error que me comentaba Splinter por correo en el "juego" que le mandé.
Por mi parte, no hay prisa, esta semana me voy de vacaciones (si me dejan), que ya hay ganas después de casi dos años sin, y encadenando un proyecto con otro (y encima, gratis :S).

yo no recuerdo haber tocado las lineas de codigo donde estaba el error... pero puede que me equivoque, ya estoy viejo y me olvido las cosas... como sea, ya esta solucionado.


ya salgo, que tengo medico... saludos.
Title: Re: Avances, Diario de...
Post by: JaViS on July 25, 2011, 05:31:38 PM
Quote from: SplinterGU on July 25, 2011, 01:23:12 PM
reserva si, pero [6][6], no se desde cuando es ese error... pero me suena que desde hace mucho... lo raro es que nadie se quejo, o nadie prueba, o nadie usa matrices o ven los bugs y se los guardan.

Lo que me pasa a mi con las matrices multidimencionales es que me olvide de como se usaban y en la ayuda no hay ejemplos.
Title: Re: Avances, Diario de...
Post by: josebita on July 25, 2011, 05:48:53 PM
El tema de los arrays puede tener que ver con los problemas que tuve en su momento con mi karaoke. Le voy a echar un ojo a ver si con el nuevo código funciona.
Title: Re: Avances, Diario de...
Post by: La momia que fuma on July 25, 2011, 06:29:17 PM
Quote from: SplinterGU on July 22, 2011, 04:41:30 PM
bueno, me he tomado 10 minutos y he implementado scroll y modo7 sobre mapas, con lo cual ahora se va a poder hacer zoom en los scroll, rotaciones, deformaciones (size_x, size_y), y todo lo que se les ocurra.

me falta algo importante, testearlo... :D

y no me he olvidado de generar los binarios, estoy armando mi entorno de compilacion windows, asi que apenas lo tenga listo, subo los binarios, pero no va a pasar de este fin de semana.



O _ O



Y va de lujo!!! Genial!! Gran trabajo! Karmazo obvio :P

Asi y todo sigue quedando un fallo de sonido, no van las músicas de formato modular...noseque de que no puede cargar la mikmod.dll me dice...

Title: Re: Avances, Diario de...
Post by: josebita on July 25, 2011, 07:07:25 PM
Ya sé que es ser un poco vago pero, me podríais poner un pequeño ejemplo/vídeo de la nueva capacidad funcionando para la portada de la web?
Title: Re: Avances, Diario de...
Post by: Drumpi on July 25, 2011, 07:55:55 PM
Quote from: La momia que fuma on July 25, 2011, 06:29:17 PM
Quote from: SplinterGU on July 22, 2011, 04:41:30 PM
bueno, me he tomado 10 minutos y he implementado scroll y modo7 sobre mapas, con lo cual ahora se va a poder hacer zoom en los scroll, rotaciones, deformaciones (size_x, size_y), y todo lo que se les ocurra.

me falta algo importante, testearlo... :D

y no me he olvidado de generar los binarios, estoy armando mi entorno de compilacion windows, asi que apenas lo tenga listo, subo los binarios, pero no va a pasar de este fin de semana.



O _ O



Y va de lujo!!! Genial!! Gran trabajo! Karmazo obvio :P

Asi y todo sigue quedando un fallo de sonido, no van las músicas de formato modular...noseque de que no puede cargar la mikmod.dll me dice...



Ah ¿pero ya ha salido el fix? Pues nada, a ver si le puedo echar un vistazo, pero no lo creo (ahora mismo debería estar cerca de la mar salada, cenando a la luz de una bombilla bajo un manto de estrellas... y no enganchado como un friki a intelné ;D).

EDIT: Vale, ahora sí, ninguna pega, del tirón. Funciona como en la versión original, lo poco que he podido probar, a una velocidad muy similar. Ahora tengo que hacer pruebas sobre un mapa y después pasar al plato fuerte, jias, jias, jias.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on July 25, 2011, 08:15:08 PM
Aprovecho que paso por aquí para comentarte algunas cosillas Splinter :

Hace tiempo me reportaron que los timer (alguno de ellos) no funcionan en esta configuración :
Windows 7 Ultimate SP1 x64 (64 bits)

Es lo mismo que te comente con Wiz, algunos contadores que usan timer no se mueven.

Parece que el filtro scanline es 100%, en emuladores se suelen usar más los scanlines al 25% o al 50% de transparencia, se me quejaron de que el resultado quedaba " demasiado oscuro " y que tenian que tocar el brillo del monitor.

Así que al final habia problemas con los arrays, que provocaban algun cuelgue ?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 08:20:30 PM
Tambien aprovecho que paso por aqui para ver alguna demo con las nuevas features porque no me entero de na  ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 09:40:54 PM
la sdl_mixer carga muchos formatos dinamicamente, hay que ver de buscar las dlls adecuadas, o tambien probar con una SDL_mixer compilada con mas cosas, la que estan usando ahora es la que se baja de los binarios compilados oficiales, 1.2.11 creo que es, la ultima.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 09:46:57 PM
Quote from: josebita on July 25, 2011, 07:07:25 PM
Ya sé que es ser un poco vago pero, me podríais poner un pequeño ejemplo/vídeo de la nueva capacidad funcionando para la portada de la web?

me pides mucho... no tengo nada como para subir, sino demos de otros modificadas, y no da para poner...

Quote from: BoMbErLiNk on July 25, 2011, 08:15:08 PM
Aprovecho que paso por aquí para comentarte algunas cosillas Splinter :

Hace tiempo me reportaron que los timer (alguno de ellos) no funcionan en esta configuración :
Windows 7 Ultimate SP1 x64 (64 bits)

Es lo mismo que te comente con Wiz, algunos contadores que usan timer no se mueven.

Parece que el filtro scanline es 100%, en emuladores se suelen usar más los scanlines al 25% o al 50% de transparencia, se me quejaron de que el resultado quedaba " demasiado oscuro " y que tenian que tocar el brillo del monitor.

Así que al final habia problemas con los arrays, que provocaban algun cuelgue ?

- lo de los timers no se que decir, no deberian fallar, no tiene que ver con windows ni nada, si tienes un ejemplo, lo vere.
- el filtro es el que se soporta, son basicos. pero anotare de ver dar soporte mas adelante de otros.
- no, no, los arrays no daban cuelgues, simplemente podias tener un acceso fuera de rango al compilar o si usabas variables para indexar, pues si, ahi si podrias obtener cuelgues.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 09:48:55 PM
bueno, ahora se puede hacer algun after-burner en m7, con el horizonte rotando.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 09:52:09 PM
Una demo please, no se usar lo nuevo xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 10:01:20 PM
prueba el m7 en 16 y 32 que tanto esperabas... dile a sik tambien que lo pruebe a ver que tal le va ahora.

intentare buscar una demo.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 10:06:46 PM
Voy a hacer una demo tambien.
Title: Re: Avances, Diario de...
Post by: josebita on July 25, 2011, 10:09:32 PM
Quote from: FreeYourMind on July 25, 2011, 09:52:09 PM
Una demo please, no se usar lo nuevo xD
Básicamente lo que Splinter ha implementado es poder hacer scrolls y animaciones tipo modo7 pero confinadas en un gráfico en particular, de forma que ahora puedes mezclar esa clase de efectos con las funciones normales. Imagina un juego de peleas en el que al fondo, en un monitor grande, se ve una carrera de coches tipo mario kart.

Si no lo he entendido mal, vamos :)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 10:13:40 PM
Empezamos mal, el moddesc no funciona, se queda congelao....

Veo que es el parametro -i del script que ha desaparecido!
Title: Re: Avances, Diario de...
Post by: josebita on July 25, 2011, 10:19:22 PM
Quote from: FreeYourMind on July 25, 2011, 10:13:40 PM
Empezamos mal, el moddesc no funciona, se queda congelao....

Veo que es el parametro -i del script que ha desaparecido!
Era un parámetro un tanto tonto en bennu...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 10:43:51 PM
Quote from: josebita on July 25, 2011, 10:19:22 PM
Quote from: FreeYourMind on July 25, 2011, 10:13:40 PM
Empezamos mal, el moddesc no funciona, se queda congelao....

Veo que es el parametro -i del script que ha desaparecido!
Era un parámetro un tanto tonto en bennu...

exacto, era un parametro tonto, por eso volo...

free, no se queda colgado... funciona bien.

joseba, entendiste a la perfeccion para eso tambien serviria... tambien sirve para hacer zoom de la pantalla del juego que este dentro de un scroll, o podriamos hacer girar un horizonte (y todo el modo7) si estuvieramos haciendo un "simulador" de vuelo en m7...

hacer un video es imposible, va, lo hice, pero al correr el xvidcap para capturar el video, los frames caen un monton, y mas caen los frames en el video final.
Title: Re: Avances, Diario de...
Post by: josebita on July 25, 2011, 10:57:59 PM
Quote from: SplinterGU on July 25, 2011, 10:43:51 PM
hacer un video es imposible, va, lo hice, pero al correr el xvidcap para capturar el video, los frames caen un monton, y mas caen los frames en el video final.
Ok, pondré una descripción, entonces.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 10:58:36 PM
Primera prueba a 32bpp, dista mucho de lo que quiero ver....

Como se puede hacer que se repitan las texturas usadas en el modo 7 en lugar de extenderla toda por la region ?

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

Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 11:08:26 PM
Definición brutal :)

(http://forum.bennugd.org/index.php?action=dlattach;topic=102.0;attach=2066)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:09:19 PM
ahora te paso un video, pero si alguien hace uno mejor, se agradecera.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:10:21 PM
Quote from: FreeYourMind on July 25, 2011, 11:08:26 PM
Definición brutal :)

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

esto es una autorespuesta a tu anterior pregunta?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 11:13:03 PM
A 1280x800, 32bpp, fullscreen

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


Splinter, lo que quiero es saber como definir la dimension xz del modo 7 y usar texturas peq
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:14:22 PM
1280x800!!!??? sos un asesino!!!

ahi el rendimiento debe ser desastroso.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 11:16:12 PM
Splinter, lo que quiero es saber como definir la dimension xz del modo 7 y usar texturas pequeñas que la completen repitiendose, en lugar que la textura se estire toda por la region definida...
Es para mejorar la calidad del suelo.

Quiero calidad absoluta en definición de imagen, es un test
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:24:05 PM
ya te digo...

mientras pongo el video, es patetico, pero bueno, muestra lo que hace

http://www.megaupload.com/?d=ULN53ISL
Title: Re: Avances, Diario de...
Post by: l1nk3rn3l on July 25, 2011, 11:38:36 PM
 8) genial , excelente trabajo ... karmaaaa
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 25, 2011, 11:41:10 PM
esta chulo, pon el prg para que puedamos probar el rendimiento
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:44:24 PM
free, tu pregunta para que se repita, lo hace automatico, lo que pasa es que cada pixel del suelo representa un area grande.

dale altura a tu camara, y mira el suelo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 25, 2011, 11:46:24 PM
vamos que no es mas que agregar 2 parametros al final del scroll.

y luego usas el mapa en cualquier cosa que quieras.
Title: Re: Avances, Diario de...
Post by: KeoH on July 26, 2011, 12:45:25 AM
no me entero yo de lo del zoom en el scroll  ... los parametros son file y grafico donde se pinta el scroll? entonces ya no se pinta en una region? no me entero xDD a ver si me actualizo la version de bennu y hago pruebas pero de momento no lo entiendo xDD con q funciones se hace zoom? y se rota? xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 12:49:56 AM
es lo mas simple que hay... no hay funciones ni variables extrañas... la idea es que el impacto en lo que hay que aprender sea minimo.

aca pongo un ejemplo...

teclas

1,2 (cambia fondo del scroll)
q,w (rota scroll)
a,s (zoom scroll)
z,x (size_x scroll)
c,v (size_y scroll)

luego le dejo a uds experimentar con flags (transparencias, alphas, etc)
Title: Re: Avances, Diario de...
Post by: josebita on July 26, 2011, 06:48:40 AM
Quote from: SplinterGU on July 25, 2011, 11:24:05 PM
ya te digo...

mientras pongo el video, es patetico, pero bueno, muestra lo que hace

http://www.megaupload.com/?d=ULN53ISL
Gracias.
Title: Re: Avances, Diario de...
Post by: panreyes on July 26, 2011, 07:28:18 AM
¿No sería mejor una función aparte que fuese tipo "start_scroll_to_map(parametros de siempre)" y que devuelva un graph id?

Lo digo pa seguir con los métodos de siempre.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 09:35:04 AM
Quote from: SplinterGU on July 25, 2011, 11:44:24 PM
free, tu pregunta para que se repita, lo hace automatico, lo que pasa es que cada pixel del suelo representa un area grande.

dale altura a tu camara, y mira el suelo...

No entiendo, dices mayor m7[1].height ? No consigo que se repita la textura...
Title: Re: Avances, Diario de...
Post by: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.
Title: Re: Avances, Diario de...
Post by: panreyes on July 26, 2011, 10:33:35 AM
Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.
No es tan bestia xD

Puedes usar la función con los parámetros de siempre (obligatorios) y si quieres puedes añadir los opcionales nuevos xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 12:19:52 PM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.

no rompi ninguna retrocompatibilidad.
Quote from: FreeYourMind on July 26, 2011, 09:35:04 AM
Quote from: SplinterGU on July 25, 2011, 11:44:24 PM
free, tu pregunta para que se repita, lo hace automatico, lo que pasa es que cada pixel del suelo representa un area grande.

dale altura a tu camara, y mira el suelo...

No entiendo, dices mayor m7[1].height ? No consigo que se repita la textura...

pasame tu ejemplo, y te lo adapto y te muestro.

Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 12:21:20 PM
Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.

Quote from: PiXeL on July 26, 2011, 10:33:35 AM
Quote from: josebita on July 26, 2011, 10:02:00 AM
Quote from: FreeYourMind on July 26, 2011, 08:19:23 AM
No habia dicho nada, pero Splinter estaba rompiendo la retrocompatibilidad de forma tan pancha, eso tiene mas sentido.
Entiendo que las funciones anteriores siguen valiendo sin problemas, se habrán creado nuevas que aceptan esos parámetros.
No es tan bestia xD

Puedes usar la función con los parámetros de siempre (obligatorios) y si quieres puedes añadir los opcionales nuevos xD

exacto, lo entendieron todos menos Free... y que raro, siempre lanzando esos comentarios sin antes leer adecuadamente, puse la palabra "opcional" varias veces... :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 12:23:55 PM
PiXeL, con respecto a tu pregunta para que devuelva ya el mapa, no lo hice porque eso imposibilitaria que se escriban varios scrolls en el mismo mapa (en regiones diferentes, por ejemplo) o hacer un mode7, en el mismo mapa que un scroll (en otra region por ejemplo)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 12:58:35 PM

program test_mode7;

import "mod_wm"
import "mod_video"
import "mod_key"
import "mod_scroll"
import "mod_timers"
import "mod_time"
import "mod_text"
import "mod_string"
import "mod_mouse"
import "mod_map"
import "mod_proc"
import "mod_sound"
import "mod_file"
import "mod_rand"
import "mod_screen"
import "mod_grproc"
import "mod_draw"
import "mod_math"
import "mod_m7"
import "mod_say"

GLOBAL
    int graficos1;
    int color;
BEGIN
    //scale_mode=scale_nofilter;
full_screen = true;
    set_mode(1280, 800, 32);
    set_fps(50,0);
   
    graficos1=load_fpg("Modo732.fpg");
    say(itoa(graficos1));
   
    start_mode7(1,graficos1,1,0,0,64);
    //start_mode7(2,graficos1,3,0,0,64);
    //m7.color=rgb(0,128,255);
    m7[1].color=15;
    m7[1].camera=id;
    m7[1].height=119; //A cierta altura del fondo
    m7[1].distance=64;//23;//12; //23; //A cierta distancia del fondo original
    m7[1].focus=1024;//256; //128;
   
    /*m7[2].color=15;
    m7[2].camera=id;
   
    m7[2].height=-6; //A cierta altura del fondo
    m7[2].distance=12; //23; //A cierta distancia del fondo original
    m7[2].focus=1024; //256; //128;
    m7[2].z=m7[1].z-1;*/
    ctype=c_m7;
    //cflags=1;
   
    resolution=100;
   
    while (!key(_esc))

        color=map_get_pixel(graficos1,2,x/resolution,y/resolution);
        if (key(_up)) x+=500; end
        if (key(_down)) x-=500; end
        if (key(_left)) y-=500; end
        if (key(_right)) y+=500; end
        if (key(_c_minus) && m7[1].height>9)
            m7[1].height--;
            m7[2].height--;
        end
        if (key(_c_plus))
            m7[1].height++;
            m7[2].height++;
        end

        if (key(_w)) advance(100); end
        if (key(_s)) advance(-100); end
        if (key(_a)) angle+=2000; end
        if (key(_d)) angle-=2000; end
       
        if (key(_f1)) m7[1].focus--; end
        if (key(_f2)) m7[1].focus++; end
        if (key(_z)) m7[1].distance--; end
        if (key(_x)) m7[1].distance++; end
        if (key(_c)) m7[2].height--; end
        if (key(_v)) m7[2].height++; end
IF (key(_esc)) exit("", 0);END
        frame;
    end
    stop_mode7(1);
    //stop_mode7(2);
    let_me_alone();
END



Title: Re: Avances, Diario de...
Post by: Drumpi on July 26, 2011, 12:59:01 PM
Para que se repita un mapa, siempre se puede usar el gráfico exterior:
Un Modo7 puede usar dos mapas, uno que es el que se ve, que suele ser el nivel. Por fuera de ese gráfico se puede dejar transparente (color 0), poner un color liso (a elegir de la paleta... o con RGB en modos de video superiores), o bien un segundo mapa... que por cierto, tengo que probar porque me parece que sólo admite un único tamaño (8x8, si es más grande se recorta) y encima se dibujaba escalado, no lo sé.

Se puede usar este grafico exterior para que se repita... o aprovechar la nueva feature:
Si haces un scroll con un mapa que se repita cíclicamente, lo puedes dibujar sobre un mapa, ¡y usarlo en el modo7! Es más, puedes usar un scroll y utilizarlo como mapa del modo7, por lo que no necesitas mover un mapa de 2048 pixels de largo: con uno de 256 puedes representar los niveles tan largos como quieras (y no hacer virguerías como las mías en el TBM).

¿Qué tal juegos de plataformas para jugar dos en una WIZ, cada uno a un lado de la consola? Rotas el mapa del jugador1 -90º y el del jugador 2 90º y listo (ni cambios de coordenadas, ni rotaciones de gráficos...).
Y estas sólo son algunas ideas. Ya tengo previsto que en el PilotWing para CAANOO la pantalla rote con la consola (bueno, depende del rendimiento que le saque a la cosa ^^U).

Aun así, creo que Pixel tiene razón en parte: debería ser una función nueva, porque no entiendo cómo encaja "region" en la llamada... pero bueno, sería quitar una variable y añadir 2, por lo que se permite la sobrecarga (y tampoco cuesta nada poner un 0 en el parámetro region, pero no sé si eso es "elegante").
Sólo por curiosidad ¿Hay una razón de peso para que existan limitaciones en el número de scrolls y modos7, aparte del número de estructuras en memoria?
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:05:57 PM
muchacho... pixel no dijo nada de la region... que es lo complicado de entender con la region? la region es siempre sobre el target... el target normalmente es la pantalla, ahora el target es el mapa que se usa para renderear el scroll/m7... o sea, que las regiones son regiones dentro del mapa... como es logica y como tiene sentido.

la razon, entre tantas cosas, es no romper la retrocompatibilidad que tanto le molesta a free... (y que obviamente yo no estoy de acuerdo en romper) demas esta decir, que la cantidad de scrolls y modo7 que tiene es exagerada.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 01:06:34 PM
Aqui el fpg del ejemplo (cambia el grafico al 2 para que veas la pintura en movimiento de las anteriores imagenes, definición brutal xD)

http://dl.dropbox.com/u/33372657/Modo732.fpg
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:07:50 PM
Quote from: FreeYourMind on July 26, 2011, 12:58:35 PM

program test_mode7;

import "mod_wm"
import "mod_video"
import "mod_key"
import "mod_scroll"
import "mod_timers"
import "mod_time"
import "mod_text"
import "mod_string"
import "mod_mouse"
import "mod_map"
import "mod_proc"
import "mod_sound"
import "mod_file"
import "mod_rand"
import "mod_screen"
import "mod_grproc"
import "mod_draw"
import "mod_math"
import "mod_m7"
import "mod_say"

GLOBAL
   int graficos1;
   int color;
BEGIN
   //scale_mode=scale_nofilter;
full_screen = true;
   set_mode(1280, 800, 32);
   set_fps(50,0);
   
   graficos1=load_fpg("Modo732.fpg");
   say(itoa(graficos1));
   
   start_mode7(1,graficos1,1,0,0,64);
   //start_mode7(2,graficos1,3,0,0,64);
   //m7.color=rgb(0,128,255);
   m7[1].color=15;
   m7[1].camera=id;
   m7[1].height=119; //A cierta altura del fondo
   m7[1].distance=64;//23;//12; //23; //A cierta distancia del fondo original
   m7[1].focus=1024;//256; //128;
   
   /*m7[2].color=15;
   m7[2].camera=id;
   
   m7[2].height=-6; //A cierta altura del fondo
   m7[2].distance=12; //23; //A cierta distancia del fondo original
   m7[2].focus=1024; //256; //128;
   m7[2].z=m7[1].z-1;*/
   ctype=c_m7;
   //cflags=1;
   
   resolution=100;
   
   while (!key(_esc))

       color=map_get_pixel(graficos1,2,x/resolution,y/resolution);
       if (key(_up)) x+=500; end
       if (key(_down)) x-=500; end
       if (key(_left)) y-=500; end
       if (key(_right)) y+=500; end
       if (key(_c_minus) && m7[1].height>9)
           m7[1].height--;
           m7[2].height--;
       end
       if (key(_c_plus))
           m7[1].height++;
           m7[2].height++;
       end

       if (key(_w)) advance(100); end
       if (key(_s)) advance(-100); end
       if (key(_a)) angle+=2000; end
       if (key(_d)) angle-=2000; end
       
       if (key(_f1)) m7[1].focus--; end
       if (key(_f2)) m7[1].focus++; end
       if (key(_z)) m7[1].distance--; end
       if (key(_x)) m7[1].distance++; end
       if (key(_c)) m7[2].height--; end
       if (key(_v)) m7[2].height++; end
IF (key(_esc)) exit("", 0);END
       frame;
   end
   stop_mode7(1);
   //stop_mode7(2);
   let_me_alone();
END





free, ejemplo con recursos, como el que subi yo cuando me lo pediste.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:09:59 PM
Quote from: FreeYourMind on July 26, 2011, 01:06:34 PM
Aqui el fpg del ejemplo (cambia el grafico al 2 para que veas la pintura en movimiento de las anteriores imagenes, definición brutal xD)

http://dl.dropbox.com/u/33372657/Modo732.fpg

ahora si, gracias.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:19:36 PM
Quote from: Drumpi on July 26, 2011, 12:59:01 PM
Para que se repita un mapa, siempre se puede usar el gráfico exterior:
Un Modo7 puede usar dos mapas, uno que es el que se ve, que suele ser el nivel. Por fuera de ese gráfico se puede dejar transparente (color 0), poner un color liso (a elegir de la paleta... o con RGB en modos de video superiores), o bien un segundo mapa... que por cierto, tengo que probar porque me parece que sólo admite un único tamaño (8x8, si es más grande se recorta) y encima se dibujaba escalado, no lo sé.

Se puede usar este grafico exterior para que se repita... o aprovechar la nueva feature:
Si haces un scroll con un mapa que se repita cíclicamente, lo puedes dibujar sobre un mapa, ¡y usarlo en el modo7! Es más, puedes usar un scroll y utilizarlo como mapa del modo7, por lo que no necesitas mover un mapa de 2048 pixels de largo: con uno de 256 puedes representar los niveles tan largos como quieras (y no hacer virguerías como las mías en el TBM).

¿Qué tal juegos de plataformas para jugar dos en una WIZ, cada uno a un lado de la consola? Rotas el mapa del jugador1 -90º y el del jugador 2 90º y listo (ni cambios de coordenadas, ni rotaciones de gráficos...).
Y estas sólo son algunas ideas. Ya tengo previsto que en el PilotWing para CAANOO la pantalla rote con la consola (bueno, depende del rendimiento que le saque a la cosa ^^U).

Aun así, creo que Pixel tiene razón en parte: debería ser una función nueva, porque no entiendo cómo encaja "region" en la llamada... pero bueno, sería quitar una variable y añadir 2, por lo que se permite la sobrecarga (y tampoco cuesta nada poner un 0 en el parámetro region, pero no sé si eso es "elegante").
Sólo por curiosidad ¿Hay una razón de peso para que existan limitaciones en el número de scrolls y modos7, aparte del número de estructuras en memoria?

drumpi, demas esta decir que podes jugar con el ejemplo que puse para ver como trabaja la region dentro del mapa.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:22:34 PM
free, a vos te funciona el ejemplo que acabas de subir, a mi me da un hermoso "segment violation"... diablos!

maldito 1280x800! que chistoso que sos...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:34:45 PM
como dice drumpi, repite mapas de cualquier tamaño...

cambia la linea de start_scroll por esta

    start_mode7(1,graficos1,1,1,0,64);

ahora, lo que no me queda muy claro en base a que dibuja el indoor... ya que si lo pones a 0, deja un hueco en medio... de que dimensiones? ni idea, parece que la dimension del grafico de fondo.

el m7 de div funcionaba igual?
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 01:36:57 PM
start_scroll !? me lo dices a mi, no hay scroll en el ejemplo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:40:50 PM
ya entendi, si es 0, el parametro del indoor, parece que dibuja la pantalla (que esta vacia), si le pongo un grafico inexistente o si pongo -1, entonces solo dibuja el piso completo.

creo que esto es un bug, voy a revisar el codigo.

pero si pones la linea siguiente

   start_mode7(1,graficos1,-1,1,0,64);

vas a obtener lo que preguntabas
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:41:36 PM
me confundi, quise decir start_mode7, como podras ver puse start_mode7 en la linea que tenias que cambiar.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:47:35 PM
era un bug, quedaba curioso si pones un grafico de fondo, pero evidentemente es un bug feo... ya lo acabo de corregir... no voy a generar version nueva por esto, por ahora usen -1 si no quieren que un grafico aparezca.

creo que por esto es que el color que mencionaba drumpi de fondo no aparecia.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 26, 2011, 01:51:10 PM
Ya estoy contento gracias, con algo mas de curro y buena elección se van a conseguir paisajes de ensueño xD

(http://forum.bennugd.org/index.php?action=dlattach;topic=102.0;attach=2071)
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 01:55:34 PM
ahora si funciona el color de fondo si no hay grafico... antes tambien funcionaba, pero el no hay grafico era -1.

como dije, por ahora no genero ejecutables nuevo, es un bug menor.
Title: Re: Avances, Diario de...
Post by: KeoH on July 26, 2011, 05:15:52 PM
homme .. creo q ya voy entendiendo lo de dibujar el scroll/modo7 en un mapa xD la verdad esq se pueden hacer virguerias con eso xD. Pero aumentar el size de ese mapa ... no es a lo que yo me refería con un zoom en un scroll .. aunq se puede aprovechar xDD
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 06:10:42 PM
entonces no se a que te referias, los que pidieron zoom en el scroll era para emular lo que hacian las consolas, donde hacian zoom del juego...

pero bueno, siento no haber sido de ayuda... habra que currarselo con tiles...
Title: Re: Avances, Diario de...
Post by: Drumpi on July 26, 2011, 07:04:20 PM
Okis, de acuerdo con lo de la retrocompatibilidad. Y sí, más o menos se entiende lo de las regiones, si las trasladamos de coordenadas de pantalla a coordenadas del mapa, pero no sabía que se podían especificar valores de región fuera de pantalla.

Lo que yo me refería con el mapa exterior es que en algunas pruebas que hice, los mapas exteriores de 16x16 sólo representaban los primeros 8x8 pixels antes de repetir, pero aun no estoy seguro de ser un fallo mío o no. Cuestión de probar en el ThunderBlade Maker con tiles de distintos tamaños (es más, creo que si se carga el mapa 01 se puede ver que los cuadrados exteriores del juego son más grandes que los de dentro del mapa, pese a usar el mismo FPG y mapa).

Aparte de eso, en teoría, 10 scrolls sí pueden ser suficientes (hablamos de 20 planos de scroll) pero si nos metemos en juegos a pantalla partida...
Por ejemplo, crear un efecto como el de los fondos de Sonic, que usan varios planos de scroll para conseguir ese efecto de profundidad, es fácil para un jugador: 4 scrolls = 8 planos. Pero si tenemos 2 jugadores necesitamos 8 scrolls, y a partir de ahí hay que sacrificar recursos o planteárselo de otra forma (ojo, que se puede hacer).
Y en modo7... Vale, soy el único que se plantea juegos de plataformas o de carreras con varios niveles de altura, pero como tenga que hacer un juego para 4 jugadores me puedo ir olvidando de recorridos de más de dos plantas, o que tengan más que suelo y techo. Pero bueno, eso es cosa mía ^^U

Era simple curiosidad. Según veo en el código, basta con recompilar cambiando el valor de una constante para tener más, para un juego específico no sería difícil crear un módulo personalizado (a no ser que se me haya pasado por alto algún otro valor por ahí que controle el máximo de M7 disponibles, que es por lo que preguntaba).
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 08:49:49 PM
tienes razon, se me escapo eso... las regiones no pueden ser mas grandes que la pantalla, diablos! tengo que pensar como resolverlo.

se me ocurre que tal vez las regiones se puedan definir de cualquier tamaño, solo se limitarian al momento de usarlas... pero quisiera pensar de que forma impactaria esto, si afectaria en algo o no... bueno, por ahora se limite al tamaño de region maximo igual al de la pantalla.

lo del tamaño del mapa de outdoor, aceptó mas grandes que lo que decis, creo que puede llegar hasta 64x64, aunque no lo se.

la cantidad de scrolls, puedes recompilar el codigo y tener tu propio modulo con la cantidad que quieras.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 26, 2011, 09:46:37 PM
bien, creo que en principio no habra problemas de quitar el limite de region al limite de pantalla... o sobrecargar la funcion y si existe 2 parametros extra, definira el limite del mapa donde va a funcionar...

actualmente la out_region se ve afectada, si sobrecargo la funcion, no deberiamos tener problemas si solo la usamos para los mapas que la creamos, si solo quito el limite de la region al tamano de pantalla, entonces podriamos tener problemas con la out_Region, en el sentido de que posiblemente no estemos detectando correctamente la region.

esto de scroll/m7 sobre maps, obviamente hace que no se pueden hacer colisiones con mouse en scroll o m7 dentro de un mapa.


escucho comentarios, sugerencias, insultos, etc.
Title: Re: Avances, Diario de...
Post by: Drumpi on July 27, 2011, 12:36:08 AM
No digo que no acepte mapas exteriores al modo7 más grandes de 8x8, sino que de los 64x64 que acepta, dibuja sólo 8x8 (la esquina superior derecha). Como digo, no tengo pruebas que lo demuestren, pero recuérdamelo a partir del lunes.

Cierto que el tema de las regiones es más peliagudo de lo que parecía en principio. Soluciones, ahora mismo, no se me ocurren.
Lo más que llego a pensar es que, al igual que existen valores reservados para ID de mapas de los FPG con ID==0, y que aquellos >=1000 corresponden a mapas cargados sin FILE asociado, se tengan las 10 regiones definidas para coordenadas de pantalla, y añadir un tipo de región especial para su uso en mapas, con valores superiores a 10 (por ejemplo, a partir de 1000).
Esto también serviría para las funciones MAP_XPUT, que también usaban regiones de dibujado (y, al menos, usando la región 0, ignoraba las coordenadas de pantalla), pero claro, habría que definir un tipo de estructura interna nuevo (supongo) y control sobre si se usan las regiones de pantalla o las "libres". Lo de limitarlas o no ya sería cosa del Designer Supremo (ejem :D).
También ayudaría por el tema de las regiones del scroll en el que el proceso "camara" se puede mover sin desplazarlo.

Respecto a collision, eso ya no sé cómo funciona. En mi cabeza tenía la imagen de que se calculaba en función de las coordenadas, tanto de los gráficos como de cada uno de los pixels, y estar en un scroll o no sólo influía en el desplazamiento respecto a los gráficos con CTYPE=C_SCREEN. Vamos, que daba igual dónde se dibujase. Pero si me dices que no se pueden hacer, tu sabes mejor que nadie por qué.
Eso sí, nunca entendí las colisiones en modo7: por lo general, los choques entre procesos debían hacerse por proximidad, ya que estos no se dibujan en el "suelo", sino de pie.

Los insultos los dejaremos para otra ocasión ;D

PD: todo esto son ideas al aire. Si te sirven de inspiración, bien, si no pues nada, y si no se entiende, por favor, recordadme que no hable bajo los efectos de la "borrachera nocturna" ;D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 27, 2011, 03:46:22 AM
Quote from: Drumpi on July 27, 2011, 12:36:08 AM
No digo que no acepte mapas exteriores al modo7 más grandes de 8x8, sino que de los 64x64 que acepta, dibuja sólo 8x8 (la esquina superior derecha). Como digo, no tengo pruebas que lo demuestren, pero recuérdamelo a partir del lunes.

Cierto que el tema de las regiones es más peliagudo de lo que parecía en principio. Soluciones, ahora mismo, no se me ocurren.
Lo más que llego a pensar es que, al igual que existen valores reservados para ID de mapas de los FPG con ID==0, y que aquellos >=1000 corresponden a mapas cargados sin FILE asociado, se tengan las 10 regiones definidas para coordenadas de pantalla, y añadir un tipo de región especial para su uso en mapas, con valores superiores a 10 (por ejemplo, a partir de 1000).
Esto también serviría para las funciones MAP_XPUT, que también usaban regiones de dibujado (y, al menos, usando la región 0, ignoraba las coordenadas de pantalla), pero claro, habría que definir un tipo de estructura interna nuevo (supongo) y control sobre si se usan las regiones de pantalla o las "libres". Lo de limitarlas o no ya sería cosa del Designer Supremo (ejem :D).
También ayudaría por el tema de las regiones del scroll en el que el proceso "camara" se puede mover sin desplazarlo.

Respecto a collision, eso ya no sé cómo funciona. En mi cabeza tenía la imagen de que se calculaba en función de las coordenadas, tanto de los gráficos como de cada uno de los pixels, y estar en un scroll o no sólo influía en el desplazamiento respecto a los gráficos con CTYPE=C_SCREEN. Vamos, que daba igual dónde se dibujase. Pero si me dices que no se pueden hacer, tu sabes mejor que nadie por qué.
Eso sí, nunca entendí las colisiones en modo7: por lo general, los choques entre procesos debían hacerse por proximidad, ya que estos no se dibujan en el "suelo", sino de pie.

Los insultos los dejaremos para otra ocasión ;D

PD: todo esto son ideas al aire. Si te sirven de inspiración, bien, si no pues nada, y si no se entiende, por favor, recordadme que no hable bajo los efectos de la "borrachera nocturna" ;D

drumpi, te estoy diciendo que probamos con mapas mas grandes que eso, y no dibuja solo 8x8, dibuja mapas grandes a la perfeccion, pero creo que los recorta a 64 maximo... proba el ejemplo de free.

con respecto al m7 creo que no hay colisiones sobre m7... tampoco le veo sentido.

gracias por tus comentarios.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 27, 2011, 04:42:45 AM
ya lo solucione, la region puede definirse de cualquier tamaño, no deberia molestar ni dar problemas, ya que las regiones no deberian autoajustarse internamente, sino que deberian ser lo que el usuario define.

funciona muy bien.
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 31, 2011, 03:08:06 AM
subiendo version release candidate 26 revision 262... (esto de release candidate ya parece chiste...)

:D
Title: Re: Avances, Diario de...
Post by: josebita on July 31, 2011, 10:10:45 AM
Oye, Splinter.

Desde que hiciste los cambios a lo de los arrays y arreglé otro bug en mi código mi karaoke no se cuelga.
No sé si la soluciónvino por tu fix o por el mío, pero gracias ;)
Title: Re: Avances, Diario de...
Post by: FreeYourMind on July 31, 2011, 10:26:11 AM
Tengo miedo algo funcione distinto en los arrays, miraré a lupa a ver si todo sigue funcionando igual  :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on July 31, 2011, 05:11:30 PM
Quote from: josebita on July 31, 2011, 10:10:45 AM
Oye, Splinter.

Desde que hiciste los cambios a lo de los arrays y arreglé otro bug en mi código mi karaoke no se cuelga.
No sé si la soluciónvino por tu fix o por el mío, pero gracias ;)

;)

Quote from: FreeYourMind on July 31, 2011, 10:26:11 AM
Tengo miedo algo funcione distinto en los arrays, miraré a lupa a ver si todo sigue funcionando igual  :D

si tienes miedo porque las cosas funcionan bien, estamos en un problema... :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 03, 2011, 12:45:34 AM
subida la version con el fix de las mochilas, gracias free.
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 07, 2011, 04:25:47 AM
mod_effects 32bits!

el alpha en 32 bits es el mismo alpha de la fuente, no se hace ningun efecto sobre el mismo.

ahora los efectos son mejores, premitiendo hacer effects sobre mapas de 16 o 32, en cualquier modo de video (antes para ser un effect correcto, el modo de video tenia que coincidir con la profundidad del mapa)
Title: Re: Avances, Diario de...
Post by: JaViS on August 07, 2011, 01:31:33 PM
Quote from: SplinterGU on August 07, 2011, 04:25:47 AM
mod_effects 32bits!

el alpha en 32 bits es el mismo alpha de la fuente, no se hace ningun efecto sobre el mismo.

ahora los efectos son mejores, premitiendo hacer effects sobre mapas de 16 o 32, en cualquier modo de video (antes para ser un effect correcto, el modo de video tenia que coincidir con la profundidad del mapa)

buenisimo!!! :D
Title: Re: Avances, Diario de...
Post by: Outlaw on August 07, 2011, 05:06:15 PM
Excelente Splinter! karma! Gracias!
Title: Re: Avances, Diario de...
Post by: peterpollito on August 11, 2011, 06:11:15 PM
Ah que bien, lo del alpha en 32 bits produjo problemas en Paper, no se veian las transparencias así que puse fondos opacos.

Karma Splinter!
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 11, 2011, 11:01:26 PM
no entiendo, ahora te dio problemas?
Title: Re: Avances, Diario de...
Post by: peterpollito on August 13, 2011, 08:12:52 AM
No, fue al principio de Paper cuando dio problemas con las transparencias http://forum.bennugd.org/index.php?topic=1756.0 (http://forum.bennugd.org/index.php?topic=1756.0) y era por lo de los 32bits, ahora con el cambio que hiciste podre modificar las imagenes
de nuevo y volver a poner las transparencias sin que de problemas.

Así que gracias! lo esperaba hace un tiempo. 
Title: Re: Avances, Diario de...
Post by: Windgate on August 19, 2011, 01:50:20 AM
¿Alpha 32 bits ya en funcionamiento? Se ha cumplido uno de los objetivos más ambiciosos, Karma para Splinter :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 19, 2011, 11:37:23 AM
el alpha 32 hace mucho que esta, lo que no esta son las blendop.
Title: Re: Avances, Diario de...
Post by: Outlaw on August 19, 2011, 03:07:22 PM
Che Splinter y esta planeando implementar las blendop en 32 bits? por curiosidad nomas te pregunto
Title: Re: Avances, Diario de...
Post by: SplinterGU on August 19, 2011, 06:00:38 PM
estaba pensando en eso justamente hoy... la cosa es que no puede ser como esta implementado ahora, no pueden hacerse tablas, ya que serian de 4GB cada 1... cosa imposible, deberian ser procesadas en runtime, lo que significa un considerable consumo de memoria, pero tambien estamos hablando de 32bits, y para mover 32bits ya hay que tener algun equipo medianamente bueno, las consolas portatiles de baja potencia no tienen 32bts (wiz/caanoo/dingux/etc)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 02, 2011, 11:07:45 PM
estoy haciendo pruebas y cambios en el engine, con el famoso ejemplo de las pelotas rebotando, con 1000 pelotas, dando antes un resultado de 68-70 fps, ahora da unos 98-100fps... 32 bits...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 02, 2011, 11:19:05 PM
Optimización de processos ?
Ostras eso es sin duda la mejor de las mejores noticias, si los procesos no pesaran tanto :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 02, 2011, 11:22:31 PM
nop, no es optimizacion de procesos... :D
Title: Re: Avances, Diario de...
Post by: josebita on September 02, 2011, 11:23:50 PM
Quote from: SplinterGU on September 02, 2011, 11:07:45 PM
estoy haciendo pruebas y cambios en el engine, con el famoso ejemplo de las pelotas rebotando, con 1000 pelotas, dando antes un resultado de 68-70 fps, ahora da unos 98-100fps... 32 bits...
¿Puedes dar algún detalle de los cambios?.
Title: Re: Avances, Diario de...
Post by: KeoH on September 02, 2011, 11:25:24 PM
yo he hecho pruebas en la psp asi creando procesos en cantidades masivas xD... he creado un codigo q lo que hace es crear un cuadrado, cada cuadrado hace un new_map (de entre 20x20 y 50x50 creo) y se lo pone de grafico coloreandolo con color aleatorio, y despues en cada fotograma se mueve un poco. El programa empieza a 90fps y a cada segundo se van creando cuadrados nuevos.... cuando llega a 500 cuadrados la PSP se pone a 30fps xDDDDD Pobrecita ... debe estar llorando xD
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 02, 2011, 11:32:32 PM
Quote from: josebita on September 02, 2011, 11:23:50 PM
Quote from: SplinterGU on September 02, 2011, 11:07:45 PM
estoy haciendo pruebas y cambios en el engine, con el famoso ejemplo de las pelotas rebotando, con 1000 pelotas, dando antes un resultado de 68-70 fps, ahora da unos 98-100fps... 32 bits...
¿Puedes dar algún detalle de los cambios?.

tamaño de las dirty... a la mitad, y 4 veces la cantidad de regiones (principalmente... hay otro cambio mas, pero el importante es ese...)
Title: Re: Avances, Diario de...
Post by: KeoH on September 02, 2011, 11:39:43 PM
Ni idea de lo q es eso xDD pero si mejora el rendimiento , bienvenido sea xD
Title: Re: Avances, Diario de...
Post by: edgardo30 on September 02, 2011, 11:51:25 PM
Buenas Splinter GU...

Ya empecé a realizar las pruebas del Modo7 en BennuGD...

Me bajé la última release en tu página (r263)...

Hice una prueba ejecutando el programa TUTORIAL7 que viene en DIV2, y me sale la pantalla en negro, solo me aparece el texto "Utilice los cursores para mover la cámara".

Todavía veo fallos...

[code language="bennu"]
//----------------------------------------------------------------------
// Program:  Tutorial 7
// Author:   Daniel Navarro
// Date:     20/09/97
//----------------------------------------------------------------------

PROGRAM Tutorial_7;

IMPORT "mod_m7"
IMPORT "mod_video"
IMPORT "mod_key"
IMPORT "mod_proc"
IMPORT "mod_text"
IMPORT "mod_map"
IMPORT "mod_screen"
IMPORT "mod_grproc"
IMPORT "mod_math"


GLOBAL
    // Tables with graphics' codes in 16 different positions
    // Chair's codes
    chair[]=16,100,101,101,103,104,105,106,107,
            108,109,110,111,112,113,114,115;
    // Trunk's codes
    trunk[]=16,200,201,202,203,204,205,206,207,
            208,209,210,211,212,213,214,215;
    // Table's codes
    table[]=16,300,301,302,303,304,305,306,307,300,301,302,303,304,305,306,307;
    // Hunger's codes
    hunger[]=16,400,401,402,403,400,401,402,403,400,401,402,403,400,401,402,403;
    // Chest's codes
    chest[]=16,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515;
    // Couch's codes
    couch[]=16,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615;

BEGIN
    // Sets video mode
    set_mode(m640x480);

    // Loads the requiered graphics' file
    load_fpg("FPG\tutorial\tutor7.fpg");

    // Fades the screen on
    fade_on();

    m7.camera=id;       // Forces camera to follow this process (main process)
    m7.height=512;      // Camera's height
    m7.distance=640;    // Camera distance to the observation point
    // Initiates mode7, or dejected plane
    start_mode7(0,0,1,0,0,128);
    // Writes an informative message
    write(0,320,0,1,"Use cursor keys to move camera");

    // Creates table type objects
    object(&table,128,128,0,600);
    object(&table,600,440,0,600);
    object(&table,600,340,0,600);

    // Creates chair type objects
    object(&chair,64,64,-pi/2,400);
    object(&chair,192,64,-pi/2,400);
    object(&chair,64,192,pi/2,400);
    object(&chair,192,192,pi/2,400);

    // Creates chest type objects
    object(&chest,32,384,0,600);
    object(&chest,384,32,-pi/2,600);

    // Creates trunk type objects
    object(&trunk,64,440,pi/2,800);
    object(&trunk,128,440,pi/2,800);
    object(&trunk,384,440,pi/2,800);

    // Creates hunger type objects
    object(&hunger,192,440,0,600);

    // Creates couch type objects
    object(&couch,512,32,-pi/2,400);
    object(&couch,600,128,-pi,400);

    // Sets coordinates for this process, which is the camera's
    x=320; y=240;
    LOOP
        // If cursor keys are pressed, camera's angle variates (it moves)
        if (key(_right)) angle-=pi/8; END
        if (key(_left)) angle+=pi/8; END
        FRAME;
    END
END

//----------------------------------------------------------------------
// Process object
// Visualizes all objects
// Entries: xgraph = Pointer to the graphics' table of object
//          x,y    = Coordinates
//          angle  = Object's angle
//          size   = Object's size, on percentage
//----------------------------------------------------------------------

PROCESS object(xgraph,x,y,angle,size)

BEGIN
    z=-16;          // Chooses a depth
    ctype=c_m7;     // Introduces the process within mode 7
    LOOP
        FRAME;      // Shows the graphic
    END
END
[/code]

Saludos...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 12:00:34 AM
puedes poner el fpg?
Title: Re: Avances, Diario de...
Post by: edgardo30 on September 03, 2011, 12:05:33 AM
http://www.megaupload.com/?d=E92Y2EDG
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 12:36:59 AM
el modo de video tiene que coincidir con el de los graficos y si estas en linux (unix) el nombre del archivo tiene que coincidir mayusculas/minusculas.

proba esto


//----------------------------------------------------------------------
// Program:  Tutorial 7
// Author:   Daniel Navarro
// Date:     20/09/97
//----------------------------------------------------------------------

PROGRAM Tutorial_7;

IMPORT "mod_m7"
IMPORT "mod_video"
IMPORT "mod_key"
IMPORT "mod_proc"
IMPORT "mod_text"
IMPORT "mod_map"
IMPORT "mod_screen"
IMPORT "mod_grproc"
IMPORT "mod_math"
import "mod_say"

GLOBAL
   // Tables with graphics' codes in 16 different positions
   // Chair's codes
   chair[]=16,100,101,101,103,104,105,106,107,
           108,109,110,111,112,113,114,115;
   // Trunk's codes
   trunk[]=16,200,201,202,203,204,205,206,207,
           208,209,210,211,212,213,214,215;
   // Table's codes
   table[]=16,300,301,302,303,304,305,306,307,300,301,302,303,304,305,306,307;
   // Hunger's codes
   hunger[]=16,400,401,402,403,400,401,402,403,400,401,402,403,400,401,402,403;
   // Chest's codes
   chest[]=16,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515;
   // Couch's codes
   couch[]=16,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615;

BEGIN
   // Sets video mode
   set_mode(640,480,8);

   // Loads the requiered graphics' file
   file=load_fpg("TUTOR7.FPG");

   // Fades the screen on
   fade_on();

   // Initiates mode7, or dejected plane
   start_mode7(0,file,1,0,0,64);

   m7.camera=id;        // Forces camera to follow this process (main process)
   m7.height=10;       // Camera's height
   m7.distance=0;       // Camera distance to the observation point
   m7.focus=1024;

   // Writes an informative message
   write(0,320,0,1,"Use cursor keys to move camera");

   // Creates table type objects
   object(&table,128,128,0,600);
   object(&table,600,440,0,600);
   object(&table,600,340,0,600);

   // Creates chair type objects
   object(&chair,64,64,-pi/2,400);
   object(&chair,192,64,-pi/2,400);
   object(&chair,64,192,pi/2,400);
   object(&chair,192,192,pi/2,400);

   // Creates chest type objects
   object(&chest,32,384,0,600);
   object(&chest,384,32,-pi/2,600);

   // Creates trunk type objects
   object(&trunk,64,440,pi/2,800);
   object(&trunk,128,440,pi/2,800);
   object(&trunk,384,440,pi/2,800);

   // Creates hunger type objects
   object(&hunger,192,440,0,600);

   // Creates couch type objects
   object(&couch,512,32,-pi/2,400);
   object(&couch,600,128,-pi,400);

   // Sets coordinates for this process, which is the camera's
   x=320; y=240;
   LOOP
        // If cursor keys are pressed, camera's angle variates (it moves)

        if (key(_up)) advance(10); end
        if (key(_down)) advance(-10); end
        if (key(_left)) angle+=1000; end
        if (key(_right)) angle-=1000; end

        if (key(_z)) m7[0].distance--; end
        if (key(_x)) m7[0].distance++; end
        if (key(_c)) m7[0].height--; end
        if (key(_v)) m7[0].height++; end
IF (key(_esc)) exit("", 0);END

        FRAME;
   END
END

//----------------------------------------------------------------------
// Process object
// Visualizes all objects
// Entries: xgraph = Pointer to the graphics' table of object
//          x,y    = Coordinates
//          angle  = Object's angle
//          size   = Object's size, on percentage
//----------------------------------------------------------------------

PROCESS object(xgraph,x,y,angle0,size)

BEGIN
   z=-16;          // Chooses a depth
   ctype=c_m7;     // Introduces the process within mode 7
   height = 0;
   LOOP
       angle = angle0 - m7[0].camera.angle;
       FRAME;      // Shows the graphic
   END
END

Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 12:59:31 AM
edito, el ejemplo estaba mal y no entendia porque no iba... los seteos del m7, deben hacerse despues del start_m7, ya que el start_m7 resetea algunas variables, para asegurarse de que se hace un m7 correcto.
Title: Re: Avances, Diario de...
Post by: edgardo30 on September 03, 2011, 01:09:40 AM
Quote from: SplinterGU on September 03, 2011, 12:59:31 AM
edito, el ejemplo estaba mal y no entendia porque no iba... los seteos del m7, deben hacerse despues del start_m7, ya que el start_m7 resetea algunas variables, para asegurarse de que se hace un m7 correcto.

En esa parte te equivocas, toda la información que definas de la estructura m7 se puede definir antes o después de llamar a start_m7. Además los procesos están ubicados mal tanto en posición como en tamaño, al momento de hacer rotación, los gráficos x cambian de manera incorrecta.
Title: Re: Avances, Diario de...
Post by: edgardo30 on September 03, 2011, 01:17:18 AM
Te doy un consejo...

No cambies el ejemplo que está en DIV....

El ejemplo está escrito de manera correcta, no entiendo el por qué tienes que cambiar el valor del ángulo a otro valor. La idea es que el programa debe ejecutarse correctamente tal y como está.

En cuanto a la ruta, el \ y / se tiene que manejarse internamente si se está usando otros sistemas operativos, no entiendo el por qué se tiene que poner en la ruta principal.

Por ahora eso es todo...
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 01:29:13 AM
Quote from: edgardo30 on September 03, 2011, 01:09:40 AM
Quote from: SplinterGU on September 03, 2011, 12:59:31 AM
edito, el ejemplo estaba mal y no entendia porque no iba... los seteos del m7, deben hacerse despues del start_m7, ya que el start_m7 resetea algunas variables, para asegurarse de que se hace un m7 correcto.

En esa parte te equivocas, toda la información que definas de la estructura m7 se puede definir antes o después de llamar a start_m7. Además los procesos están ubicados mal tanto en posición como en tamaño, al momento de hacer rotación, los gráficos x cambian de manera incorrecta.

en bennugd tienes que definirlos despues del start_m7...

con respecto a la rotacion de los objetos, fue algo que puse yo en el prg, para que roten segun rotes la vista... tampoco es perfecto, no lo pense demasiado, simplemente hice una resta de angulos (aunque creo que va bien).

como ya dije, el modo7 de BennuGD no es 100% compatible con el de DIV2, por eso lo cambie.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 01:31:10 AM
el path se maneja internamente, pero tienes que tener el directorio FPG\tutorial\ y yo no lo tenia, me resulto mas comodo borrar el path que crearlo... pero si es importante que si usas unix/linux respetes las mayusculas y minusculas...

repito, BennuGD no es ni pretende ser 100% compatible con DIV/DIV2.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 01:34:23 AM
nueva modificacion... ya los dirty trabajan con cualquier resolucion, no solo con resoluciones divisibles por 8 ni 16.
Title: Re: Avances, Diario de...
Post by: josebita on September 03, 2011, 12:33:17 PM
Quote from: SplinterGU on September 03, 2011, 01:34:23 AM
nueva modificacion... ya los dirty trabajan con cualquier resolucion, no solo con resoluciones divisibles por 8 ni 16.
¡Genial!
Title: Re: Avances, Diario de...
Post by: josebita on September 03, 2011, 12:47:59 PM
Quote from: edgardo30 on September 03, 2011, 01:17:18 AM
Te doy un consejo...

No cambies el ejemplo que está en DIV....

El ejemplo está escrito de manera correcta, no entiendo el por qué tienes que cambiar el valor del ángulo a otro valor. La idea es que el programa debe ejecutarse correctamente tal y como está.

En cuanto a la ruta, el \ y / se tiene que manejarse internamente si se está usando otros sistemas operativos, no entiendo el por qué se tiene que poner en la ruta principal.

Por ahora eso es todo...
:)
Hombre, el ejemplo de DIV estaba bien escrito en DIV, bennu es diferente en algunas cosas y DIV ya no es el referente para Bennu.
En cuanto a las rutas.... es windows el que lo hace "mal". Creo que Bennu convierte los "\" en "/" en caso de necesidad pero aún así usa siempre las barras de directorio "/" (aunque estés en windows) y verás cómo no tienes problemas. Y lo que te dice Splinter, en general deberías suponer que "Fichero.fpg" no es lo mismo que "fichero.fpg" porque en muchos sistemas no lo es.

Si lo haces así, luego te resultará mucho más fácil portar tus juegos a nuevas plataformas.
Title: Re: Avances, Diario de...
Post by: josebita on September 03, 2011, 01:03:10 PM
Quote from: josebita on September 03, 2011, 12:47:59 PM
Quote from: edgardo30 on September 03, 2011, 01:17:18 AM
Te doy un consejo...

No cambies el ejemplo que está en DIV....

El ejemplo está escrito de manera correcta, no entiendo el por qué tienes que cambiar el valor del ángulo a otro valor. La idea es que el programa debe ejecutarse correctamente tal y como está.

En cuanto a la ruta, el \ y / se tiene que manejarse internamente si se está usando otros sistemas operativos, no entiendo el por qué se tiene que poner en la ruta principal.

Por ahora eso es todo...
:)
Hombre, el ejemplo de DIV estaba bien escrito en DIV, bennu es diferente en algunas cosas y DIV ya no es el referente para Bennu.
En cuanto a las rutas.... es windows el que lo hace "mal". Creo que Bennu convierte los "\" en "/" en caso de necesidad pero aún así usa siempre las barras de directorio "/" (aunque estés en windows) y verás cómo no tienes problemas. Y lo que te dice Splinter, en general deberías suponer que "Fichero.fpg" no es lo mismo que "fichero.fpg" porque en muchos sistemas no lo es.

Si lo haces así, luego te resultará mucho más fácil portar tus juegos a nuevas plataformas.
PD: Splinter, no dejes de actualizar el post inglés, que les viene muy bien para enterarse. Aunque sea una notita corta traducida con google :)
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 01:14:44 PM
en el svn lo pongo en ingles... pero lo hare, muchas gracias joseba...

joseba, ya subi los cambios, me gustaria saber como se comporta en otros equipos/resoluciones/sistemas... en mi linux he consiguido una mejora de rendimiento... si podrias probar...

ahh, tambien ahora los scripts de compilacion (se que no los usas), compilan sin hacer configure ni clean a menos que se le pase el argumento release.
Title: Re: Avances, Diario de...
Post by: josebita on September 03, 2011, 01:37:57 PM
Intentaré probarlo cuando tenga un rato a ver qué sale.
Title: Re: Avances, Diario de...
Post by: edgardo30 on September 03, 2011, 02:15:53 PM
Quote from: SplinterGU on September 03, 2011, 01:31:10 AM
el path se maneja internamente, pero tienes que tener el directorio FPG\tutorial\ y yo no lo tenia, me resulto mas comodo borrar el path que crearlo... pero si es importante que si usas unix/linux respetes las mayusculas y minusculas...

repito, BennuGD no es ni pretende ser 100% compatible con DIV/DIV2.

Esta parte la entiendo perfectamente, yo solo decía que el SIZE no se calcula como debe de ser. Todos los objetos tienen el mismo tamaño y eso no es correcto.

Lo otro que vi raro es la forma como la cámara rota el escenario, pregunta, ¿Ustedes toman como punto central el punto de control 0 en el Mapa que carga el suelo?. Pienso que la cámara debe rotar en 3ra persona, y no en primera persona.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 03, 2011, 02:17:58 PM
Por cierto el os_id de la pandora ya esta en el codigo oficial ?
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 08:40:15 PM
Quote from: edgardo30 on September 03, 2011, 02:15:53 PM
Quote from: SplinterGU on September 03, 2011, 01:31:10 AM
el path se maneja internamente, pero tienes que tener el directorio FPG\tutorial\ y yo no lo tenia, me resulto mas comodo borrar el path que crearlo... pero si es importante que si usas unix/linux respetes las mayusculas y minusculas...

repito, BennuGD no es ni pretende ser 100% compatible con DIV/DIV2.

Esta parte la entiendo perfectamente, yo solo decía que el SIZE no se calcula como debe de ser. Todos los objetos tienen el mismo tamaño y eso no es correcto.

Lo otro que vi raro es la forma como la cámara rota el escenario, pregunta, ¿Ustedes toman como punto central el punto de control 0 en el Mapa que carga el suelo?. Pienso que la cámara debe rotar en 3ra persona, y no en primera persona.

x, y, son el centro, distancia y altura definen desde donde se ve... (eso creo)... por eso si ponemos distancia 0, rota en la camara.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 08:40:34 PM
Quote from: FreeYourMind on September 03, 2011, 02:17:58 PM
Por cierto el os_id de la pandora ya esta en el codigo oficial ?

creo que si, usa moddesc.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 03, 2011, 08:40:47 PM
Quote from: josebita on September 03, 2011, 01:37:57 PM
Intentaré probarlo cuando tenga un rato a ver qué sale.

gracias...
Title: Re: Avances, Diario de...
Post by: Drumpi on September 03, 2011, 11:38:05 PM
Yo he estado esta tarde haciendo mis pruebas con el modo7.
Creía que estaba con la r263, pero me he fijado que el script de compilación andaba usando la 253 ^^U
Pero bueno, el resultado ha sido muy bueno mientras no he hecho "cosas raras".

Primero he cogido el minijuego de SBTime en modo7 que estaba separando para otro juego y lo he probado con la versión más moderna. Para el que no lo recuerde, se trata de un circuito de carreras usando 3 modo7 a tres alturas distintas, con mapas gigantes (casi 3MB cada uno), y un scroll de fondo. De momento sin cambios en velocidad.
Luego lo dibujé en un mapa, sin problemas.

Lo siguiente era probar la "pantalla partida". Así que generé 3 modo7 más y otro scroll, e hice que se dibujasen en mapas independientes. Yo no he notado bajada de frames apreciables en mi ordenador, aunque tampoco estaba intentando ponerlo a tope.
Lo he puesto a pantalla partida horizontalmente (con size_y a 50), a un cuarto de pantalla e incluso superpuestos con flag transparente y ni se ha inmutado el ordenador. Todo ha funcionado como debía... salvo los colores.
Así que hice una conversión a 16bits de todo (modo gráfico, mapas sobre los que se dibujaba, y qué susto hasta que me di cuenta que me faltó cambiar los FPGs ^^U). Sin pegas ninguna, todo funcionaba como tenía que ir.

La pega vino cuando después de todo eso hice la "cosa rara". No se si Splinter se acordará del efecto visual que le pasé por privado hace un par de meses (prefiero no decir aun de qué se trata), pero he intentado usarlo con el modo7 :D
El ordenador no me ha dado más de 10FPS, y el efecto no es muy allá, en parte por la resolución de trabajo (320x240 + SCALE_NOFILTER), en parte por el tamaño de los pixels en el modo7 y en parte por la falta de precisión en los cálculos (no me quejo del modo7, simplemente es que este efecto exige ser pixel perfect).
Mientras no uso este efecto, el ordenador tira a los 50FPS programados.

Eso sí, lo he probado al final con la r263 y va igual :D

Conclusiones:

-De momento, no hay nada roto en el modo7.
-El dibujado en mapas funciona bien y no parece resentirse demasiado. Habría que hacer las pruebas en WIZ y máquinas menos potentes para dar un veredicto.
-Definitivamente, necesito pasar este efecto a una DLL si no quiero que Drumpi salga del ordenador a darme una colleja ;D

Así que aprovecho para decirle "buen trabajo" a Splinter y darle un karma.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 04, 2011, 12:34:15 AM
gracias Drumpi!
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on September 10, 2011, 08:52:10 PM
Splinter, hay algun motivo por el que GLOB no me funcione correctamente en un pc concreto ?

Tengo un eeepc que usa Windows XP SP3 y se niega a rellenar cualquier tipo de información de cualquier archivo o carpeta existente, siempre da resultado vacio.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 10, 2011, 09:46:35 PM
no deberia, menos segun la pc... podria ser por el operativo, pero la pc... no lo creo.

pon un ejemplo, para descartar cualquier otra cosa.
Title: Re: Avances, Diario de...
Post by: BoMbErLiNk on September 11, 2011, 01:00:42 AM
El test que he hecho no era más que un par de lineas, un glob a una carpeta existente y luego tratar de mostrarlo con write o say, pero no salia nada.

En otro pc, me sale ".", luego "..", luego el nombre de la primera carpeta.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 11, 2011, 01:08:06 AM
"more input..."

si tenias permisos sobre la carpeta, la verdad que no se me ocurre que puede ser.
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 13, 2011, 12:09:29 AM
- add build compile script for mingw32 cross on linux
- change all sdk now on /opt
Title: Re: Avances, Diario de...
Post by: panreyes on September 13, 2011, 07:44:53 AM
Bien :)
Nos libraremos de la VM de Windows para las nightlies!
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 19, 2011, 01:37:53 PM
Podrias compilar la ultima version ni que sea solo en Wiz/Caanoo ?
Necesito ver si gano rendimiento en los procesos en relacion a la r263, ya que se consta que has mejorado el rendimiento.
Title: Re: Avances, Diario de...
Post by: izubiaurre on September 20, 2011, 06:01:39 PM
Juan, usando la herramienta describe para listar las funciones, he visto que que existen mod_math.dll y mod_mathi.dll. Hasta ahora no me había fijado. Supongo que math a secas será para floats y mathi para integers, ¿me equivoco? pero viendo la salida de las funciones, veo que por ejemplo la función Abs() es float para ambas librerías.




Module name: mod_math.dll


Functions:


FLOAT ABS(FLOAT)
FLOAT POW(FLOAT, FLOAT)
FLOAT SQRT(FLOAT)
FLOAT COS(FLOAT)
FLOAT SIN(FLOAT)
FLOAT TAN(FLOAT)
FLOAT ACOS(FLOAT)
FLOAT ASIN(FLOAT)
FLOAT ATAN(FLOAT)
FLOAT ATAN2(FLOAT, FLOAT)
INT ISINF(FLOAT)
INT ISNAN(FLOAT)
INT FINITE(FLOAT)
INT FGET_ANGLE(INTEGER, INTEGER, INTEGER, INTEGER)
INT FGET_DIST(INTEGER, INTEGER, INTEGER, INTEGER)
INT NEAR_ANGLE(INTEGER, INTEGER, INTEGER)
INT GET_DISTX(INTEGER, INTEGER)
INT GET_DISTY(INTEGER, INTEGER)








Module name: mod_mathi.dll


Functions:


FLOAT ABS(FLOAT)
FLOAT POW(FLOAT, FLOAT)
FLOAT SQRT(FLOAT)
FLOAT COS(INTEGER)
FLOAT SIN(INTEGER)
FLOAT TAN(INTEGER)
FLOAT ACOS(INTEGER)
FLOAT ASIN(INTEGER)
FLOAT ATAN(INTEGER)
FLOAT ATAN2(INTEGER, INTEGER)
INT ISINF(FLOAT)
INT ISNAN(FLOAT)
INT FINITE(FLOAT)
INT FGET_ANGLE(INTEGER, INTEGER, INTEGER, INTEGER)
INT FGET_DIST(INTEGER, INTEGER, INTEGER, INTEGER)
INT NEAR_ANGLE(INTEGER, INTEGER, INTEGER)
INT GET_DISTX(INTEGER, INTEGER)
INT GET_DISTY(INTEGER, INTEGER)





¿No habrá algo mal?


Un saludo
Title: Re: Avances, Diario de...
Post by: SplinterGU on September 20, 2011, 07:07:49 PM
no hay nada mal... un modulo es reemplazo del otro... uno maneja floats y otro integers...

mod_mathi, es lo mismo que mod_math, solo que la funciones trigonometricas retornan enteros en milesimas, o sea, el valor de la mod_math * 1000.
Title: Re: Avances, Diario de...
Post by: FreeYourMind on September 26, 2011, 11:37:40 AM
Alguien puede compilar la ultima version para wiz y caanoo please
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2011, 08:02:21 AM
se agregan warnings sobre conversiones implicitas en las asignaciones, para evitar situaciones donde suponemos que una funcion nos retorna un tipo de dato y en realidad esta retornando otro, o si asignamos una variable de un tipo a otro y deseamos saber si se esta haciendo una conversion de tipos.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2011, 08:02:48 AM
Quote from: FreeYourMind on September 26, 2011, 11:37:40 AM
Alguien puede compilar la ultima version para wiz y caanoo please

este fin de semana te prometo que genero paquetes nuevos de todo.
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2011, 08:45:30 AM
nuevas versiones disponibles para descarga!
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2011, 05:24:59 PM
free ya probaste esta version?

esta version incluye:

------------------------------------------------------------------------
r264 | SplinterGU | 2011-08-07 01:22:18 -0300 (dom 07 de ago de 2011) | 2 lines

- mod_effects 32bits

------------------------------------------------------------------------
r265 | SplinterGU | 2011-08-07 01:36:59 -0300 (dom 07 de ago de 2011) | 2 lines

- fix rgb in texts

------------------------------------------------------------------------
r266 | SplinterGU | 2011-09-02 23:43:09 -0300 (vie 02 de sep de 2011) | 5 lines

- Fix problem with dirty and non-standards resolutions
- Add more dirty rects for get more performance
- Minor fix in render


------------------------------------------------------------------------
r267 | SplinterGU | 2011-09-11 13:24:11 -0300 (dom 11 de sep de 2011) | 2 lines

- fix for WII

------------------------------------------------------------------------
r268 | SplinterGU | 2011-09-12 21:08:38 -0300 (lun 12 de sep de 2011) | 3 lines

- Add build for cross compiling from windows
- Change all sdk, now on /opt

------------------------------------------------------------------------
r269 | SplinterGU | 2011-09-15 10:13:42 -0300 (jue 15 de sep de 2011) | 2 lines

- des fix in windows

------------------------------------------------------------------------
r270 | SplinterGU | 2011-10-29 04:57:43 -0300 (sáb 29 de oct de 2011) | 2 lines

- Warning on implicit conversion in assignament

Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 29, 2011, 05:55:57 PM
La estoy probando en wiz y pc de momento, la verdad es que no noto diferencia en rendimiento, pero me faltaria probar las 2 versiones en paralelo para confirmarlo. Aunque posiblemente vaya alguns fps mas rapido, tendria que mirarlo a lupa.

Gracias por el port.

Title: Re: Avances, Diario de...
Post by: gecko on October 29, 2011, 07:10:37 PM
gracias! joya! :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 29, 2011, 11:25:15 PM
Quote from: FreeYourMind on October 29, 2011, 05:55:57 PM
La estoy probando en wiz y pc de momento, la verdad es que no noto diferencia en rendimiento, pero me faltaria probar las 2 versiones en paralelo para confirmarlo. Aunque posiblemente vaya alguns fps mas rapido, tendria que mirarlo a lupa.

Gracias por el port.



la mejora de rendimiento depende del juego... en el ejemplo que probe obtuve una buena diferencia...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 30, 2011, 03:26:14 PM
Estoy compilando para Pandora, no he tocao nada de path's ni movidas, ahora me da este error:

### Building 3rd party software ###
/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/../bin/arm-angstrom-linux-gnueabi-gcc -DTARGET_PANDORA -mcpu=arm926ej-s -mtune=arm926ej-s -O3 -DARM -D_ARM_ASSEM_ -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/include -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/include/libxml2 -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/usr/include/SDL -DRAND       -fPIC   -c -o cbc_cksm.o cbc_cksm.c
make: /root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/../bin/arm-angstrom-linux-gnueabi-gcc: No se encontró el programa
make: *** [cbc_cksm.o] Error 127
*** ABORT ***
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 30, 2011, 03:46:39 PM
Esto esta todo muy raro, ahora ya no tengo el error.

Por partes, la version anterior me compila bien, esta la cual tengo en otra carpeta, pero con las rutas modificadas, me da este error:

### Building BennuGD Core ###
./build-pandora.sh: 82: ./configure: Permission denied
*** ABORT ***


Ni como root se resuelve el tema de los permisos...
Title: Re: Avances, Diario de...
Post by: josebita on October 30, 2011, 04:00:27 PM
Quote from: FreeYourMind on October 30, 2011, 03:46:39 PM
Esto esta todo muy raro, ahora ya no tengo el error.

Por partes, la version anterior me compila bien, esta la cual tengo en otra carpeta, pero con las rutas modificadas, me da este error:

### Building BennuGD Core ###
./build-pandora.sh: 82: ./configure: Permission denied
*** ABORT ***


Ni como root se resuelve el tema de los permisos...
chmod a+x configure
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2011, 05:14:11 PM
Quote from: FreeYourMind on October 30, 2011, 03:26:14 PM
Estoy compilando para Pandora, no he tocao nada de path's ni movidas, ahora me da este error:

### Building 3rd party software ###
/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/../bin/arm-angstrom-linux-gnueabi-gcc -DTARGET_PANDORA -mcpu=arm926ej-s -mtune=arm926ej-s -O3 -DARM -D_ARM_ASSEM_ -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/include -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/include/libxml2 -I/root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/usr/include/SDL -DRAND       -fPIC   -c -o cbc_cksm.o cbc_cksm.c
make: /root/Geca/BennuGD_Pandora2/pandora-toolchain/arm-angstrom-linux-gnueabi/../bin/arm-angstrom-linux-gnueabi-gcc: No se encontró el programa
make: *** [cbc_cksm.o] Error 127
*** ABORT ***


ya te he comentado que no hay soporte tecnico oficial pandora... cuando te pedi un zip con el SDK ya configurado me invitaste a que busque y baje el instalador o no se que... asi que pase de la version pandora...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 30, 2011, 05:37:54 PM
O sea no puedo ni preguntar dudas que tenga para hacer mi port ?
Pues vale....

Te vuelvo a repetir, el SDK lo configure como tu me dijiste, es paradojico que te tenga que yo enseñar ahora lo que tu me enseñaste a mi...
Las rutas estan en el makefile que has puesto y todo, y todo lo que yo he hecho lo he comentado en el hilo....
Quieres que te pase 1 giga de SDK por el aire no ? Ya me gustaria tener un servidor y fibra optica para enviar gigas como quien regala caramelos...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on October 30, 2011, 06:00:34 PM
Ya la he compilado, gracias
Title: Re: Avances, Diario de...
Post by: SplinterGU on October 30, 2011, 06:48:35 PM
jejeje, si puedes preguntar, claro... disculpa...

es que lleva bastante tiempo hacer lo que yo te dije que hagas, por ende, te pedi que por favor empaquetes tu SDK asi configurado y me lo pases...

1gb el SDK de pandora? ??? !!!!! imposible, si todos los otros SDK (caanoo, wiz, dingux) juntos comprimidos son 230mb en total... imposible lo que dices.
Title: Re: Avances, Diario de...
Post by: Drumpi on November 04, 2011, 07:18:21 PM
Versión nueva, karma extra. Poco a poco voy dejando a deber menos karmas a Splinter :D :D :D
Title: Re: Avances, Diario de...
Post by: SplinterGU on November 04, 2011, 07:29:07 PM
gracias! yo te voy a dar unos karmas... que hace tiempo no te doy y te los mereces...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on November 04, 2011, 08:11:05 PM
Karmas por tocar las pelotas!  ;D
Title: Re: Avances, Diario de...
Post by: izubiaurre on January 03, 2012, 10:53:37 AM
¿Ha habido algún cambio en la salida del compilador desde la version r263? Antes si había algún error de compilación, en el FBMX, te saltaba el aviso y te llevaba a la línea; ahora, sale un olesto error que no te ayuda en nada. Pienso que algo se habrá cambiado en la salida.
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 03, 2012, 02:12:06 PM
es problable... mejore los mensajes, pero no recuerdo en que version...

fijate en el svn, el log...
Title: Re: Avances, Diario de...
Post by: izubiaurre on January 03, 2012, 03:42:14 PM
Las pruebas que he hecho desde la consola, me dan la misma salida (excepto que ahora aparecen algunos warnings).


¿puede ser que hayas cambiado la salida de pantalla a log, o de log a pantalla?
Title: Re: Avances, Diario de...
Post by: SplinterGU on January 03, 2012, 08:28:06 PM
no, no ha cambiado eso...
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 25, 2012, 04:06:52 AM
Quote- Add new functions
WRITE*(fontid, x, y, z, alignm, ...)
SET_TEXT_COLOR(textid, color)
GET_TEXT_COLOR(textid)
MOVE_TEXT(textid, x, y, z)

- compiler improved, now can possible mix overload functions with V++
  and others params, but it must get diffent params count, pe.:

  "IIIIV++"

  and

  "IIIIIV++"

  and

  "IIIIIII"

necesito que por favor, todos aquellos que tengan posibilidad de compilar de los fuentes, prueben bien esta version, ya que hubo cambios importantes en el codigo... en la forma en que el compilador parsea los fuentes... ahora se precalcula la cantidad de parametros de cada funcion, y luego se busca la que corresponde (hablo de funciones de dlls o del core interna), y para hacer esto se hace rollback de los punteros dentro del tokenizador y tambien del codigo dcb que se va generando mientras parsea.

desde ya, gracias.
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 25, 2012, 04:10:52 AM
code sample


import "mod_text";
import "mod_mouse";
import "mod_key";
import "mod_video";
import "mod_rand";
import "mod_map";

private
    txt[10];
    counter;
    tz;
begin
    set_mode(640,480,32);

    txt[0]=write_int(0,10,10,10,0,&counter);
    txt[1]=write_int(0,10,20,-5,0,&tz);
    txt[2]=write(0,10,10,0,0,"hello world");

    set_text_color(txt[1], rgb(255,0,0));


    while(!key(_ESC))

        counter++;

        move_text(txt[2], mouse.x, mouse.y, tz );

        set_text_color(txt[0], rand(0101010h, 0ffffffh));

        if ( key( _DOWN ) ) tz--; end
        if ( key( _UP ) ) tz++; end

        frame;
    end
end


usen el mouse para mover el "hello world" y UP y DOWN para cambiar la Z del mismo, y muevanlo sobre los otros 2 textos que estan en diferentes Z.
Title: Re:Avances, Diario de...
Post by: josebita on February 25, 2012, 01:29:36 PM
He estado mirando un poco los cambios por encima y yo diría que a mi versión monolítica no tendría que afectarle. Aún así intentaré asegurarme.

Y en un rato trataré de subir el nuevo código a mi PPA.
Title: Re:Avances, Diario de...
Post by: Erkosone on February 25, 2012, 01:47:25 PM
No lo he entendido bien, yo tengo varios proyectos para iOS, que necesitas exactamente? compilar y ver si hay algún error en ejecución en los programas generados?
Creo que los templates que tengo son los que ya están compilados, pero si me pasais alguno nuevo pruebo los proyectos que tengo y te digo si veo algo raro.
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 25, 2012, 04:15:08 PM
joseba, no deberias tener problema en meter estos cambios en tu version monolitica, diria que en antes de subirlo al PPA, lo pruebes con algunos cuantos codigos, si son grandes mejor.

si, Erkosone, la idea es compilar los proyectos que tengan y probarlo, obviamente necesitan una version compilada de los ejecutables.

gracias a ambos.

el ejemplo que he puesto, ademas de cambiar las Z de los textos, cambian los colores de uno de los textos como si fuera un cartel luminoso multicolor, muchos se ahorrarian algunos efectos de este estilo.
Title: Re:Avances, Diario de...
Post by: Erkosone on February 25, 2012, 05:10:40 PM
Iba a probar esto en iOS pero ya en windows no me compila, me dice que error en el número de parámetros de write_int()


El compilador que tengo suelta por consola 1.0.0, tengo que descargar algo mas nuevo para hacer el test?
Title: Re:Avances, Diario de...
Post by: josebita on February 25, 2012, 08:19:23 PM
Quote from: Erkosone on February 25, 2012, 05:10:40 PM
Iba a probar esto en iOS pero ya en windows no me compila, me dice que error en el número de parámetros de write_int()


El compilador que tengo suelta por consola 1.0.0, tengo que descargar algo mas nuevo para hacer el test?
necesitarás compilarte una nueva versión binaria del código, primero.
Title: Re:Avances, Diario de...
Post by: izubiaurre on February 25, 2012, 08:33:58 PM
splinter, hay alguna forma de saber la versión de cada binario por medio de consola?
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 25, 2012, 09:16:39 PM
solo fecha de compilacion... tendria que agregar el numero de revision o algo...
Title: Re:Avances, Diario de...
Post by: izubiaurre on February 25, 2012, 10:21:24 PM

Estaría bien con un 


bgdc.exe -ver






Title: Re:Avances, Diario de...
Post by: SplinterGU on February 25, 2012, 10:42:26 PM
estaba pensando en algun similar.
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 26, 2012, 04:53:50 AM
- mejora en el render de mapas con size_x y size_y pequeños.
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 28, 2012, 11:04:12 PM
- new internal lib for background load
- fix bgload fpg & others
- add new backgound load functions
LOAD_MAP(filename, &id)
LOAD_PNG(filename, &id)
LOAD_PCX(filename, &id)
LOAD_SONG(filename, &id)
LOAD_WAV(filename, &id)
LOAD_PAL(filename, &id)
LOAD_FNT(filename, &id)
LOAD_BDF(filename, &id)
MAP_LOAD(filename, &id)
PNG_LOAD(filename, &id)
PCX_LOAD(filename, &id)
SONG_LOAD(filename, &id)
WAV_LOAD(filename, &id)
PAL_LOAD(filename, &id)
FNT_LOAD(filename, &id)
BDF_LOAD(filename, &id)
Title: Re:Avances, Diario de...
Post by: panreyes on February 28, 2012, 11:16:15 PM
¿Por qué el id se tiene que pasar como puntero? :?


¿No se podría hacer como siempre, pero con un parámetro extra que indique que se debe hacer en background y saber si ha acabado de cargar revisando el id?
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 28, 2012, 11:32:42 PM
Quote from: PiXeL on February 28, 2012, 11:16:15 PM
¿Por qué el id se tiene que pasar como puntero? :?


¿No se podría hacer como siempre, pero con un parámetro extra que indique que se debe hacer en background y saber si ha acabado de cargar revisando el id?

y yo te pregunto, si no le pasas un puntero, como te enteras en que id lo termina cargando? e incluso, como te enteras cuando termina de cargarlo?

por otro lado, nunca fue un parametro extra para indicar que es background, siempre ese parametro extra fue un puntero.

y no se pasa el id, se recibe el id.
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 28, 2012, 11:37:45 PM
lo que preguntas por que no hace, es exactamente lo que hace...

tu le pasas un puntero y cuando la funcion termina la carga, en ese puntero deja el id de lo que cargo.

mientras lo va cargando vale -2, si da error -1.
Title: Re:Avances, Diario de...
Post by: panreyes on February 29, 2012, 12:08:41 AM
Entiendo, es lógico.


Es que vengo de un mundo mu bonito en el que los punteros los usan los hackers xD
Title: Re:Avances, Diario de...
Post by: KeoH on February 29, 2012, 01:50:15 AM
Quote from: SplinterGU on February 28, 2012, 11:37:45 PM
lo que preguntas por que no hace, es exactamente lo que hace...

tu le pasas un puntero y cuando la funcion termina la carga, en ese puntero deja el id de lo que cargo.

mientras lo va cargando vale -2, si da error -1.


A ver si lo he entendido... supongamos q cargo un fpg. Y lo quiero hacer asincronicamente porq es un fpg gordote. Lo hago asi??



     idFpg = load_fpg("archivo_gordo.fpg", &idArchivoGordo);
      while(idArchivoGordo==-2)
            say("Archivo Gordo cargandose ....");
            frame;
      end
      if(idArchivoGordo==-1)
          say("Error gordisimo!!!, salvese quien pueda");
      elseif
          say("Archivo Gordo cargado!!!");
      end


      file=idFpg;
       graph = 7;



supongamos q he definido mas arriba como globales idArchivoGordo, y idFpg (q es el indicador q usaré en los procesos en su variable file).


Voy bien encaminado para usar estas funciones de esta manera?
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 29, 2012, 02:34:24 AM
no, no...


      load_fpg("archivo_gordo.fpg", &idFpg);
      while(idFpg==-2)
            say("Archivo Gordo cargandose ....");
            frame;
      end
      if(idFpg==-1)
          say("Error gordisimo!!!, salvese quien pueda");
          exit(); // o return
      end

      say("Archivo Gordo cargado!!!");

      file=idFpg;

      graph = 7;


o


      load_fpg("archivo_gordo.fpg", &file);
      while(file==-2)
            say("Archivo Gordo cargandose ....");
            frame;
      end
      if(file==-1)
          say("Error gordisimo!!!, salvese quien pueda");
          exit(); // o return
      end

      say("Archivo Gordo cargado!!!");

      graph = 7;
Title: Re:Avances, Diario de...
Post by: KeoH on February 29, 2012, 08:51:41 AM
Ah vale... q el puntero apunta al identificador del archivo .. ok .. creia q era una especie de variable de control .. oki
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 29, 2012, 11:16:16 AM
es las 2 cosas.
Title: Re:Avances, Diario de...
Post by: KeoH on March 03, 2012, 09:20:25 PM
Splinter .. la version de windows de bennu que esta el la web es la última que incorpora estos cambios?
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 04, 2012, 04:16:27 AM
no, hay que tirar de los fuentes aun...

quiero meter algunas cosas nuevas mas antes de sacar un binario, pero ahora en estos dias me tengo que ordenar un poco...
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 06, 2012, 05:24:22 AM
- now if set_mode fail return -1, else return 0
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 17, 2012, 05:10:09 PM
- several bug fix in pal system functions
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 22, 2012, 02:48:00 AM
- fix font cp850 charset use.
Title: Re:Avances, Diario de...
Post by: izubiaurre on March 22, 2012, 07:19:29 AM
Get revision (version) number of the compiler and the interpreter?
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 22, 2012, 12:53:03 PM
pending... in list...
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 23, 2012, 04:31:49 PM
r282 liberada!

por favor, pruebenla en windows, que use un nuevo cross y no se como ira.

ya le quite el RC, me parece que ya no tiene sentido que siga siendo una Release Candidate.
Title: Re:Avances, Diario de...
Post by: KeoH on March 23, 2012, 08:49:33 PM
Probandoooo

Deberias de hacer una lista con las cosas que has metido en la version xDD asi no se donde hacer las pruebas mas fastidiosas xD
Title: Re:Avances, Diario de...
Post by: Outlaw on March 23, 2012, 11:11:03 PM
Gracias Splinter! Me uno a Keoh en la petición de los cambios que has implementado, porque sino no sé de qué informarte una vez que la pruebe... (karmazo!! y te debo un par eh!)
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 23, 2012, 11:59:58 PM
puf, hay una lista de cambios, si revisan el hilo desde el anuncio de release a release, ahi estan los cambios
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 24, 2012, 12:03:08 AM
desde la pagina 117 a la actual, son anunciados los cambios.
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on March 24, 2012, 05:23:03 AM

excelente ..  karma

a que se refiere esto - several bug fix in pal system functions
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 24, 2012, 07:06:24 AM
perdon, PAL = PALETTE
Title: Re:Avances, Diario de...
Post by: BlySntK on March 25, 2012, 11:53:32 AM
Perdona Splin, por cierto, un placer verte...

Es la versión final del nuevo binario, se puede descarga y actualizar? No tiene fallos?

Lo de más arriba, es la nueva forma de poner escepciones en el set_mode? habéis añadido un sistema fail? y otra cosa.... Lo de la carga, no termino de comprenderlo del todo. El parametro opcional de load_fpg sólo admite un puntero a direción de memoria? Si es así, antes, imagino que habrá que definir dicho puntero, ¿no? Y tras definirlo, supongamos que es file... Una variable local predefinida se puede redefinir como puntero? Y si es así, a quién debe apuntar?
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 25, 2012, 04:45:49 PM
la puedes bajar, no tiene fallos detectados.

la excepcion la controlas tu ahora con el retorno, debes chequear el valor de retono de dicha funcion para saber si pudo o no establecer el modo de video.

con respecto a la carga, veo que tienes una confusion total con los punteros... es el puntero de la variable donde guardara el identificador una vez cargado el recurso... no tienes que convertir ninguna variable a puntero y tampoco apuntar a nada con ningun puntero, solo pones la direccion de memoria de la variable, usando el operador &.

por ejemplo,

&file

dejara el identificador en la variable file, el poner & delante es para referenciar la direccion/puntero de/a la variable.
Title: Re:Avances, Diario de...
Post by: BlySntK on March 25, 2012, 06:10:11 PM
Quote from: SplinterGU on March 25, 2012, 04:45:49 PM
la puedes bajar, no tiene fallos detectados.

la excepcion la controlas tu ahora con el retorno, debes chequear el valor de retono de dicha funcion para saber si pudo o no establecer el modo de video.

con respecto a la carga, veo que tienes una confusion total con los punteros... es el puntero de la variable donde guardara el identificador una vez cargado el recurso... no tienes que convertir ninguna variable a puntero y tampoco apuntar a nada con ningun puntero, solo pones la direccion de memoria de la variable, usando el operador &.

por ejemplo,

&file

dejara el identificador en la variable file, el poner & delante es para referenciar la direccion/puntero de/a la variable.

Ya me di cuenta, la propia función "asigna" en memoria a File lo que haya cargado, por eso no aparece ninguna variable que guarde el valor retornado... comprendo. Es que, al no ver ninguna variable que recogiera nada, por eso me confundía. Sabía que el andpersan referenciaba a direcciones de memoria, pero claro, una vez guardadas, no que las pudiera tambien asignar, ¿comprendes?

edito: por cierto, karma++ por la actualización :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 25, 2012, 08:24:18 PM
clarificando, el & no modifica el valor de "file" (usando de ejemplo file), sino que referencia/apunta al area de memoria donde "file" almacena su valor, entonces teniendo ese puntero, ya puedes usarlo para rellenar el valor de file.
Title: Re:Avances, Diario de...
Post by: KeoH on March 25, 2012, 10:53:19 PM
Splinter .. me pasa una cosa rarisima. Estoy peleandome con el motor de tiles de drumpi, y estoy haciendo pruebas y tal .. y me ocurre que de cada 10 veces que ejecuto el juego, bennu crashea 6 veces xD .. no me da error ni nada .. solo windows dice q bgdi ha dejado de funcionar. Y por la resolucion de la pantallita a la que tengo el juego, parece ser que hay veces q cruje en un sitio y otas veces cruje en otro sitio.
La cosa es que otras veces funciona. Y siempre me crashea si importo el "mod_screen", aunque no use ninguna funcion de ese modulo. Te adjuto el jueguecillo prueba para q veas si te pasas tambien

Solo lo he probado con la version de bennu para windows.
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 26, 2012, 12:23:20 AM
correlo con debug...

compilas con -g y desde la consola, corres con -d... y fijate donde crashea.
Title: Re:Avances, Diario de...
Post by: KeoH on March 26, 2012, 12:42:19 AM
Vaya festival de texto q sale por la consola xDDDD q locura xDD
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 26, 2012, 01:02:17 AM
:D

lo importante es ver donde termina.
Title: Re:Avances, Diario de...
Post by: KeoH on March 29, 2012, 12:24:53 AM
Splinter ... hoy me esta crasheando mucho al cargar un Fpg .. la cosa esq hay veces q lo carga .. xDD

Esto es lo que me sale por consola despues de la fiesta de texto xD, es lo ultimo q sale



0225C2BC
                                              [ 296] 000000B3 00000001
POSTINC             1

00000AEF
                                              [ 298] 00000005
POP

                                              [ 299] 0000009B 00000117
JUMP                279

                                              [ 279] 000000FF 00200044
------              tscroll_guardarYcargar.prg:68 -> for(cont;cont<(cantidadTile
s+1);cont++)

                                              [ 281] 00000097 00000014
GET_PRIVATE         20

00000AF0
                                              [ 283] 00000097 0000002C
GET_PRIVATE         44

00000AF0 00000AF0
                                              [ 285] 00000090 00000001
INDEX               1

00000AF0 00000AF1
                                              [ 287] 00000030
LT

00000001
                                              [ 288] 0000009C 0000014B
JFALSE              331

                                              [ 290] 0000009B 0000012D
JUMP                301

                                              [ 301] 000000FF 00200046
------              tscroll_guardarYcargar.prg:70 -> elementoXML = xml_nexteleme
nt(elementoXML);

                                              [ 303] 00000092 0000000C
PRIVATE             12

0225C2B4
                                              [ 305] 00000097 0000000C
GET_PRIVATE         12

0225C2B4 0598C418
                                              [ 307] 0000008A 000000D2
SYSCALL             XML_NEXTELEMENT (210)

0225C2B4 00000000
                                              [ 309] 00000047
LETNP

                                              [ 310] 000000FF 00200047
------              tscroll_guardarYcargar.prg:71 -> xml_attributei(elementoXML,
"val",&[xml_mapa].b_mapa[cont]);

                                              [ 312] 00000097 0000000C
GET_PRIVATE         12

00000000
                                              [ 314] 00000384 00000020 STRING
PUSH                32

00000000 00000020
                                              [ 316] 00000097 00000004
GET_PRIVATE         4

00000000 00000020 0096116C
                                              [ 318] 00000090 0000002A
INDEX               42

00000000 00000020 00961196
                                              [ 320] 00000016
PTR

00000000 00000020 059953B0
                                              [ 321] 00000097 00000014
GET_PRIVATE         20

00000000 00000020 059953B0 00000AF0
                                              [ 323] 00000091 00000001
ARRAY               1

00000000 00000020 05995EA0
                                              [ 325] 0000008C 000000CE
SYSPROC             XML_ATTRIBUTEI (206)

                                              [ 327] 000000FF 00200049
------              tscroll_guardarYcargar.prg:73 -> end

                                              [ 329] 0000009B 00000124
JUMP                292

                                              [ 292] 000000FF 00200044
------              tscroll_guardarYcargar.prg:68 -> for(cont;cont<(cantidadTile
s+1);cont++)

                                              [ 294] 00000092 00000014
PRIVATE             20

0225C2BC
                                              [ 296] 000000B3 00000001
POSTINC             1

00000AF0
                                              [ 298] 00000005
POP

                                              [ 299] 0000009B 00000117
JUMP                279

                                              [ 279] 000000FF 00200044
------              tscroll_guardarYcargar.prg:68 -> for(cont;cont<(cantidadTile
s+1);cont++)

                                              [ 281] 00000097 00000014
GET_PRIVATE         20

00000AF1
                                              [ 283] 00000097 0000002C
GET_PRIVATE         44

00000AF1 00000AF0
                                              [ 285] 00000090 00000001
INDEX               1

00000AF1 00000AF1
                                              [ 287] 00000030
LT

00000000
                                              [ 288] 0000009C 0000014B
JFALSE              331

                                              [ 331] 000000FF 0020004A
------              tscroll_guardarYcargar.prg:74 -> cargado_correcto=true;

                                              [ 333] 00000092 00000010
PRIVATE             16

0225C2B8
                                              [ 335] 00000084 00000001
PUSH                1

0225C2B8 00000001
                                              [ 337] 00000047
LETNP

                                              [ 338] 000000FF 0020004B
------              tscroll_guardarYcargar.prg:75 -> xml_close(id_lvlXML);

                                              [ 340] 00000097 00000008
GET_PRIVATE         8

058C4120
                                              [ 342] 0000008C 000000CB
SYSPROC             XML_CLOSE (203)

                                              [ 344] 000000FF 0020004D
------              tscroll_guardarYcargar.prg:77 -> return cargado_correcto;

                                              [ 346] 00000097 00000010
GET_PRIVATE         16

00000001
                                              [ 348] 00000001
RETURN

00000001
                                              [   8] 0000009C 00000010
JFALSE              16

                                              [  10] 000000FF 0000002C
------              prueba.prg:44 -> say("Cargado");

                                              [  12] 00000384 00000030 STRING
PUSH                48

00000030
                                              [  14] 0000008C 0000000B
SYSPROC             SAY      (11)

Cargado
                                              [  16] 000000FF 00000032
------              prueba.prg:50 -> set_mode(2240,320,32);

                                              [  18] 00000084 000008C0
PUSH                2240

000008C0
                                              [  20] 00000084 00000140
PUSH                320

000008C0 00000140
                                              [  22] 00000084 00000020
PUSH                32

000008C0 00000140 00000020
                                              [  24] 0000008C 00000006
SYSPROC             SET_MODE (6)

                                              [  26] 000000FF 00000034
------              prueba.prg:52 -> retGraficoTileado(&mapeado);

                                              [  28] 00000094 0000010C
GLOBAL              268

0096116C
                                              [  30] 0000008B 00000003
PROCESS             RETGRAFICOTILEADO (3)

***** INSTANCE RETGRAFICOTILEADO(65538) ENTRY StackBase=0595C3B0 StackPTR=0595C3
B4
                                              [   0] 000000FF 00300015
------              lvlToPng.prg:21 -> ncolumnas = [lvlMap].columnas;

                                              [   2] 00000092 00000004
PRIVATE             4

02291F64
                                              [   4] 00000097 00000000
GET_PRIVATE         0

02291F64 0096116C
                                              [   6] 00000090 00000008
INDEX               8

02291F64 00961174
                                              [   8] 00000016
PTR

02291F64 0000008C
                                              [   9] 00000047
LETNP

                                              [  10] 000000FF 00300016
------              lvlToPng.prg:22 -> nfilas = [lvlMap].filas;

                                              [  12] 00000092 00000008
PRIVATE             8

02291F68
                                              [  14] 00000097 00000000
GET_PRIVATE         0

02291F68 0096116C
                                              [  16] 00000090 00000004
INDEX               4

02291F68 00961170
                                              [  18] 00000016
PTR

02291F68 00000014
                                              [  19] 00000047
LETNP

                                              [  20] 000000FF 00300017
------              lvlToPng.prg:23 -> sizetile = 16;

                                              [  22] 00000092 0000000C
PRIVATE             12

02291F6C
                                              [  24] 00000084 00000010
PUSH                16

02291F6C 00000010
                                              [  26] 00000047
LETNP

                                              [  27] 000000FF 00300019
------              lvlToPng.prg:25 -> file=load_fpg([lvlMap].fpg);

                                              [  29] 00000093 00000040
LOCAL               64

058C40B0
                                              [  31] 00000097 00000000
GET_PRIVATE         0

058C40B0 0096116C
                                              [  33] 00000390 00000020 STRING
INDEX               32

058C40B0 0096118C
                                              [  35] 00000316          STRING
PTR

058C40B0 00000043
                                              [  36] 0000008A 000000B3
SYSCALL             LOAD_FPG (179)


C:\Users\Paco\Ubuntu One\Bennu\Pruebas\MotorTiles\Keoh>bgdc -g prueba.prg

Title: Re:Avances, Diario de...
Post by: SplinterGU on March 29, 2012, 01:34:03 AM
agrega un say de esto lvlMap y luego otro say de esto [lvlMap].fpg

antes del load_fpg

podes correrlo sin debug.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 29, 2012, 09:18:34 AM
Splinter cuando llamas a la función 'sysproc_init' tanto en el compilador como interprete que haces realmente ? Estas creando algun objeto o que ? Porque esa funcion esta vacia pero veo que en el momento que se llama se crea la ventana SDL_app.
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 29, 2012, 02:37:50 PM
esa funcion no esta vacia, es una de las funciones mas importantes... se encarga de cargar todos los modulos e inicializarlos, por eso, se crea la ventana del juego (si incluis el modulo de video).
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 29, 2012, 02:47:13 PM
Me puedes explicar un poco como funciona o de que funciones tira cuando se ejecuta, porque igual necesito pasar toda esa parte a C# y no se por donde cojer las orejas del gato, ya que usandola directamente tengo un problema de intento de escritura en memoria protegida.


Es que me siento un inutil lamer programando la verdad....

Tu dices que la función no esta vacia, pero yo miro el código en el fichero systub.c y sólo veo esto:

void sysproc_init( void )
{
}

O sea, ni con lupa veo nada ahí xD
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 29, 2012, 03:11:59 PM
eso en el compilador, en el interprete tenes que mirar los fuentes de la bgdrtm...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 29, 2012, 03:28:43 PM
Tienes razon, ha sido un problema al buscar con el notepad++, no he dado con la linea donde estaba la funcion en el interprete.

Una pregunta, la funcion esa se incluye directamente en el EXE del interprete o esta en la DLL
libbgdrtm.dll
?

Porque yo estaba usando la incluida en libgdrtm.dll, y si esta en el EXE no me queda otra que pasarla toda a C#
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 29, 2012, 04:01:35 PM
esta en la dll...

como es el asunto? las dlls no las pasas?
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 29, 2012, 05:35:41 PM
La idea es pasar solo lo minimo, de momento no paso ninguna.

Pues no deberia petar al usarla, la ventana se llega a crear pero peta despues...

Una pregunta, esa funcion utiliza alguna estructura inicializada antes ? Podria petar si la estoy llamando y esta usa estructuras que ya deberian tener valores antes de su llamada. En este caso tendria que pasar la funcion toda a C# ya que no podria pasarle estos valores internamente al llamarla.
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 29, 2012, 06:25:21 PM
sinceramente no se, ni entiendo que estas haciendo...

bennugd no es un ejecutable, es una dll, bennugd es el bgdrtm.dll.

si no necesitas pasar ninguna dll, entonces no tenes mucho que hacer, solo llamar a la bgdrtm como lo hace el bgdi.c

disculpa, pero no entiendo que estas haciendo.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 29, 2012, 06:52:38 PM
Es eso que estoy haciendo, pero mi bgdi esta en c# y llama a modulos c++ de Bennu.
De momento es que chute, despues es cambiar la funcion de carga de modulos para que cargue tambien modulos de c#, pero en eso ya no tendré problemas. Lo que pasa es que no puedo debuggear modulos importados en otro lenguaje ajeno a .net, con lo cual la información de errores al usarlos es minima
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 30, 2012, 09:23:59 AM
Bueno, sólo para tu información, te puedo dar una explicación logica de porque no puedo usar la función de C en C# en este caso en particular.

Porque antes usas la funcion 'dcb_load' la que rellena la estrucuctura dcb que se guarda en memoria en tu aplicación C, la cual es despues de nuevo usada en 'sysproc_init', pues en C# tengo esta limitación, que no puedo acceder a la estrucutra dcb ya rellena en dcb_load, porque es interna a tu modulo, con lo cual all llamar sysproc_init esta estrucutra va tener valores null, por eso peta.

Es una limitación, si una funcion de un modulo externo rellena variables internas, estas como es lógico no se podran acceder externamente. Con lo cual no me queda otra que pasar ambas funciones a C# y rellenar mi propria estrucuctura dcb creada en C#
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 30, 2012, 11:48:09 AM
estas confundido...

el ejecutable no llena ningun dcb, el dcb se llena en la bgdrtm, lo que pasa es que seguiste el fuente y no te fijaste como estaba organizado a nivel binario... y ahi esta tu problema...

el bgdi no hace nada, es una cascara que llama a las funciones de la dll... solo recoge los parametros y se los pasa a la dll.

el problema es que si pasas a C# las cosas, tenes que pasar todo, no le veo la gracia que tengas el bgdi en C# y el resto en dll C.

sino vas a tener que hacer algo para pasarme un area de memoria de un lenguaje a otro, pero me parece que te vas a complicar mucho.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on March 30, 2012, 12:15:21 PM
Veo que no me has entendido.... Me da igual donde se llene en tu codigo C, tu tendrás siempre la estructura en memoria, y yo sencillamente no podré tenerla porque la operacion se hace en tu dll....

Enfin, que tampoco importa, ya me he currado esa parte en C# y ahora mismo ya estoy leyendo el dcb en C# y guardando los valores en la estructura...
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 30, 2012, 02:15:04 PM
yo si te he entendido bien...

el dcb debe ser cargado en memoria del bgdrtm, porque sino el interprete no podra accederla, a menos que la hagas visible.
Title: Re:Avances, Diario de...
Post by: josebita on April 03, 2012, 09:24:52 PM
@Splinter ¿Hay alguna razón práctica para que las SDL de mac se incluyan como <SDL/SDL.h> en lugar de SDL.h?

Es que me obligan a hacer alguna chapucilla con los proyectos de Xcode para iOS y todavía no me he cruzado con nada donde haga falta. sdl-config en OSX me devuelve:


imac:monolithic joseba$ sdl-config --cflags
-I/opt/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 12:14:17 AM
Perdón por repostear, pero es que trabajando un poco en el port a iOS me he dado cuenta que modules/librender/scaler_scale_2x.c (que entiendo que es GPL) tiene la cabecera zlib, lo cual técnicamente está feo...
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 04:41:22 AM
no hace falta recordarlo, esta en la lista de pendientes para reemplazo o eliminacion de los modos escalados, por culpa de la licencia.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 04:42:35 AM
si, la razon es que en algun momento se requeria que se incluya asi...

pero ahora mismo no deberias tener problema con los nuevos configures, si tenes todos los productos apropiadamente instalados.
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 07:40:28 AM
Quote from: SplinterGU on April 04, 2012, 04:42:35 AM
si, la razon es que en algun momento se requeria que se incluya asi...

pero ahora mismo no deberias tener problema con los nuevos configures, si tenes todos los productos apropiadamente instalados.
Es que para iOS es un lío compilar con configures y uso el IDE...
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 08:41:01 AM
Quote from: SplinterGU on April 04, 2012, 04:41:22 AM
no hace falta recordarlo, esta en la lista de pendientes para reemplazo o eliminacion de los modos escalados, por culpa de la licencia.
Aunque tampoco es estrictamente necesario quitarlo: yo lo he metido dentro de un
#ifdef WITH_GPL_CODE
Y por defecto no compilo ese código en iOS, pero sí en Android.
Lo único que si el código se compila con ese código quedará licenciado bajo la GPL y por tanto no se podrá mezclar con librerías propietarias (en mi código).
En el caso del código oficial, de hecho, yo diría que sólo quedaría bajo GPL una parte de los módulos de Bennu...

Es una complicación adicional, pero otras librerías como ffmpeg lo hacen y no pasa nada.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 10:38:50 AM
Quote from: josebita on April 04, 2012, 07:40:28 AM
Quote from: SplinterGU on April 04, 2012, 04:42:35 AM
si, la razon es que en algun momento se requeria que se incluya asi...

pero ahora mismo no deberias tener problema con los nuevos configures, si tenes todos los productos apropiadamente instalados.
Es que para iOS es un lío compilar con configures y uso el IDE...

ahora el configure esta limpio, y no puedo incluir paths que no salgan del pkgconfig, porque sino luego tengo problemas con los ports.

si iOS tiene un cross, cosa que imagino, no creo sea lio que te lo configures adecuadamente para usarlo con los configure... sino te tocara tener unos makefile.ios, que no cambiaran, salvo rara vez.
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 09:18:52 PM
Quote from: SplinterGU on April 04, 2012, 10:38:50 AM
ahora el configure esta limpio, y no puedo incluir paths que no salgan del pkgconfig, porque sino luego tengo problemas con los ports.

si iOS tiene un cross, cosa que imagino, no creo sea lio que te lo configures adecuadamente para usarlo con los configure... sino te tocara tener unos makefile.ios, que no cambiaran, salvo rara vez.
Si a eso me refiero, a que dejes la parte de cabecera de SDL para Mac (e iOS) igual que el resto de sistemas:
#include <SDL.h>
en lugar de:
#ifdef TARGET_MAC
#include <SDL/SDL.h>
#else
#include <SDL.h>
#endif

Ya que esta segunda opción ni siquiera funciona por defecto usando una configuración estándar.
En todo caso, los scripts de configure no funcionan tal cual están en OSX: hay que parchearlos un poco así que tampoco debería suponer ningún problema.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 09:38:42 PM
ah, si, si, claro... te habia entendido que decias que cambie SDL.h por SDL/SDL.h.

si, claro, puedo cambiarlo.
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 09:49:55 PM
Igual no me he expresado bien. Mil gracias :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 09:52:14 PM
ya esta joseba, fixeado!

gracias!
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 04, 2012, 09:53:30 PM
Quote from: josebita on April 04, 2012, 09:49:55 PM
Igual no me he expresado bien. Mil gracias :)

no, tu lo has dicho bien, yo me confundi... gracias.
Title: Re:Avances, Diario de...
Post by: josebita on April 04, 2012, 10:09:52 PM
Quote from: SplinterGU on April 04, 2012, 09:52:14 PM
ya esta joseba, fixeado!

gracias!
Ya lo veo, actualizando...
Title: Re: Avances, Diario de...
Post by: FreeYourMind on April 09, 2012, 10:12:25 AM
Quote from: Phreak on August 01, 2008, 01:14:40 AM
El IDE va encaminado, pero le falta mucho...
Si hay alguien interesado en ayudar muyy bienvenido sea...
El codigo esta muy prolijo y comentado, no creo que sea dificil de entender.
Cualquier cosa mi mail: gal_head@hotmail.com
Saludos

Black Pearl IDE

Sigue vivo ? Alguien tiene el ultimo src ? Phreak no da señales de vida...
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 18, 2012, 04:53:19 AM
bien, quiero comentar que estoy trabajando en una version monolitica oficial, que los fuentes necesarios, asi como los makefiles se generaran por medio de scripts, asi no es necesario tener headers adicionales, ni codigo duplicado en los headers, ni tener que tocar los fuentes de la version oficial modular, solo se agregaran un par de funciones nuevas, muy pocas, creo que alrededor de 5. y simplemente con agregar un modulo nuevo a el makefile.am de modules, ya se lo incorporara a la version monolitica.

pero me surgen algunas preguntas (para joseba o quien quiera colaborar y conozca el sistema monolitico) con respecto a la actual version monolitica, mas que nada curiosidad y quizas ver si se puede aprovechar algo de lo que ya esta hecho, empiezo a tirar:

- en la version monolitica se incluyen todas las librerias/funciones sin importar lo que se defina por medio de "import" o archivos ".imp", cierto?
- los dcb compilados en la version monolitica, sirven para la version modular? y a la inversa?
- vi que no se hacen las inicializaciones desde el codigo de las librerias, sino que esta todo hardcode donde se "cargan" los modulos, y esto me parece que es por el tema de las dependencias.

creo que son esas preguntas por ahora.
Title: Re:Avances, Diario de...
Post by: josebita on April 18, 2012, 01:30:18 PM
Quote from: SplinterGU on April 18, 2012, 04:53:19 AM
bien, quiero comentar que estoy trabajando en una version monolitica oficial, que los fuentes necesarios, asi como los makefiles se generaran por medio de scripts, asi no es necesario tener headers adicionales, ni codigo duplicado en los headers, ni tener que tocar los fuentes de la version oficial modular, solo se agregaran un par de funciones nuevas, muy pocas, creo que alrededor de 5. y simplemente con agregar un modulo nuevo a el makefile.am de modules, ya se lo incorporara a la version monolitica.

pero me surgen algunas preguntas (para joseba o quien quiera colaborar y conozca el sistema monolitico) con respecto a la actual version monolitica, mas que nada curiosidad y quizas ver si se puede aprovechar algo de lo que ya esta hecho, empiezo a tirar:

- en la version monolitica se incluyen todas las librerias/funciones sin importar lo que se defina por medio de "import" o archivos ".imp", cierto?
- los dcb compilados en la version monolitica, sirven para la version modular? y a la inversa?
- vi que no se hacen las inicializaciones desde el codigo de las librerias, sino que esta todo hardcode donde se "cargan" los modulos, y esto me parece que es por el tema de las dependencias.

creo que son esas preguntas por ahora.
¡Genial!. En cuanto esté lista, cambio mis ports a la versión oficial y me ahorro trabajo :)

Resecto a las preguntas:
* En el binario que distribuyo van todas las librerías oficiales y algunas no oficiales (mod_chipmunk, mod_curl y alguna más), sí.
* Los DCBs son completamente compatibles entre mi fork de bennu y la versión oficial, siempre que no se importe alguna librería que no esté disponible en la versión monolítica, claro.
* La tercera cuestión no la acabo de entender... Las inicializaciones se siguen haciendo desde las propias librerías:
http://code.google.com/p/bennugd-monolithic/source/browse/trunk/modules/libsdlhandler/libsdlhandler.c#56

Cuando lo tengas medio-tirando, dímelo e intentamos rehacer el port a la Wii con el código monolítico oficial :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 18, 2012, 01:34:27 PM
ya veo que estaba viendo una version monolitica vieja...

en fin, actualizare y vere nuevamente.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 18, 2012, 01:42:13 PM
ya veo la ultima version, es bastante parecido a lo que estoy haciendo... pero estoy usando menos estructuras...

cuidado con esto

#include <mod_math_symbols.h>
#ifndef NO_MODMATHI
#  include <mod_mathi_symbols.h>
#endif

si usas modmathi, no deberias usar modmath... no pueden convivir juntas.
Title: Re:Avances, Diario de...
Post by: josebita on April 18, 2012, 08:02:58 PM
Quote from: SplinterGU on April 18, 2012, 01:42:13 PM
ya veo la ultima version, es bastante parecido a lo que estoy haciendo... pero estoy usando menos estructuras...

cuidado con esto

#include <mod_math_symbols.h>
#ifndef NO_MODMATHI
#  include <mod_mathi_symbols.h>
#endif

si usas modmathi, no deberias usar modmath... no pueden convivir juntas.
ya, casi seguro que tengo cuidado con eso en los defines de los proyectos de compilación.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 18, 2012, 08:58:28 PM
no, ahi no esta cuidado, deberia ser...


#ifdef NO_MODMATHI
#  include <mod_math_symbols.h>
#else
#  include <mod_mathi_symbols.h>
#endif


o algo similar metido en un #if/#else/#endif... no pueden compilarse juntas en la version monolitica, porque ambas exportan las mismas funciones, con los mismos parametros, aunque cambian el tipo, por la conversion automatica, estos tipos entran en conflicto (llegado el caso que habilites el MATHI)
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on April 19, 2012, 01:37:25 AM
Esto quiere decir que algunas de las versiones no oficiales monoliticas, pasaran a ser oficiales??
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 19, 2012, 01:53:45 AM
posiblemente, con trabajo o con ayuda para meter los cambios necesarios.
Title: Re:Avances, Diario de...
Post by: gecko on April 19, 2012, 02:40:54 AM
bennu seguira conquistando el mundo, y ahora de manera oficial! :D
Title: Re:Avances, Diario de...
Post by: josebita on April 19, 2012, 07:44:06 PM
Quote from: SplinterGU on April 18, 2012, 08:58:28 PM
no, ahi no esta cuidado, deberia ser...


#ifdef NO_MODMATHI
#  include <mod_math_symbols.h>
#else
#  include <mod_mathi_symbols.h>
#endif


o algo similar metido en un #if/#else/#endif... no pueden compilarse juntas en la version monolitica, porque ambas exportan las mismas funciones, con los mismos parametros, aunque cambian el tipo, por la conversion automatica, estos tipos entran en conflicto (llegado el caso que habilites el MATHI)
Tienes toda la razón del mundo, arreglado :)

Quote from: Rein (K´)ah Al-Ghul on April 19, 2012, 01:37:25 AM
Esto quiere decir que algunas de las versiones no oficiales monoliticas, pasaran a ser oficiales??
Y las que no se incluyan podrán pasar de ser un proyecto por su cuenta a un conjunto de parches con unas decenas de líneas de código.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 19, 2012, 09:23:55 PM
seguramente sea la 2da opcion que menciona josebita... la idea es simplificar un poco la generacion de la version monolitica de forma oficial.
Title: Re:Avances, Diario de...
Post by: KeoH on April 19, 2012, 10:47:33 PM
Una pregunta ahora q se comenta sobre eso. Tengo una duda. Las librerias que hagamos tienen que estar hechas SOLO en C?? O pueden ser en C++, pero tenemos que hacer el mod y "apantallar" el C++ para q se use como C. No se si me explico xDDD
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 20, 2012, 04:30:12 AM
bueno, ya tengo generada una version monolitica de 577kb


splinter@splinter-portatil:~/bennugd> ls -la bgdi-monolith
-rwxr-xr-x 1 splinter users 590816 Apr 20 01:02 bgdi-monolith


funciona a la perfeccion (testee con un dcb hecho con una version normal del bgdc)

al final los cambios se limitaron a una version modificada de la loadlib.h y un nuevo archivo .h que se genera con un shell script.
creo que solo hare la version monolitica del bgdi, para compilar, habra que usar una version de pc o alguna que tenga bgdc.

quedan pendiente generar los binarios por medio de makefiles, actualmente estoy usando un shell script (a modo de test), pero quiero ver la posiblidad de usar un makefile, y si es posible con configure y demas.
Title: Re:Avances, Diario de...
Post by: josebita on April 20, 2012, 08:56:18 AM
Quote from: SplinterGU on April 20, 2012, 04:30:12 AM
bueno, ya tengo generada una version monolitica de 577kb


splinter@splinter-portatil:~/bennugd> ls -la bgdi-monolith
-rwxr-xr-x 1 splinter users 590816 Apr 20 01:02 bgdi-monolith


funciona a la perfeccion (testee con un dcb hecho con una version normal del bgdc)

al final los cambios se limitaron a una version modificada de la loadlib.h y un nuevo archivo .h que se genera con un shell script.
creo que solo hare la version monolitica del bgdi, para compilar, habra que usar una version de pc o alguna que tenga bgdc.

quedan pendiente generar los binarios por medio de makefiles, actualmente estoy usando un shell script (a modo de test), pero quiero ver la posiblidad de usar un makefile, y si es posible con configure y demas.
genial, me gustaría hacer un par de sugerencias:
Hasta que no estén solucionados los bugs de endianess y similares, hará falta un bgdc monolítico para arquitecturas con endianess distinto del de x86 o los dcbs no funcionarán en Wii y similares.

Y no estaría mal que no tiraras ese script, que para iOS compilo con un IDE y no con autotools, así que me vendrán bien para que la gente pueda compilar directamente desde el IDE sin necesidad de ejecutar las autotools a mano antes.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 20, 2012, 12:53:50 PM
no hay problemas con generar tambien el bgdc...

el script no lo tiraria, seguramente no genere autotools, sino que el script cumpla la funcion de autotools... no se, aun tengo que estudiarlo un poco mas para darle la vuelta ideal.

pero los scripts no son fijos, son dimanicos... o sea, que segun lo que tengas en tus carpetas del proyecto se generan los scripts de compilacion y los archivos faltantes... digamos que el script es una suerte de preprocesador.
Title: Re:Avances, Diario de...
Post by: Goku jr on April 21, 2012, 11:01:36 AM
Buenas gente.


Sony ha sacado una Suite que sirve para desarrollar para  Psvita Y Android,y publicar en la Playstation Store,de momento esta en la fase de beta abierta,mas adelante se tendra que pagar 99$ al año.


No se si serviria para un futuro ¿port de bennu?,Bueno yo voi a descargarlo a ver como es,Aqui os dejo el enlace de la noticia.

Saludos!

http://www.elotrolado.net/noticia_disponible-en-beta-abierta-el-sdk-de-playstation-suite_20501 (http://www.elotrolado.net/noticia_disponible-en-beta-abierta-el-sdk-de-playstation-suite_20501)
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 21, 2012, 02:18:08 PM
gracias goku jr.
Title: Re: Avances, Diario de...
Post by: Goku jr on April 21, 2012, 03:10:31 PM
De nada ;) incluso lei en loa foros de elotrolado,que alguien esta portando un emulador de nes con exito,y tambien e visto en youtube un juego de android rulando en la vita.

Enviado desde mi HTC Desire HD A9191 usando Tapatalk
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 01, 2012, 04:11:59 AM
bueno, tengo el bgdi ya que se genera staticamente... pero me surge un serio problema para generar el bgdc... por problema de simbolos/funciones repetidas... ya estaba probando con un parser de C que me estaba armando, pero es una locura.

asi que tendre que tirar todo, y reescribir todos los modulos con una nueva filosofia, similar a la que tiene joseba en su version monolitica, donde requerira que los simbolos de exportacion esten en headers especiales, los simbolos y los #defines y enum que usen dichas estructuras (solo por constants_def)... pero igualmente manteniendo una parte dinamica, para no tener que tanto el bgdc como el bgdi tomen dinamicamente los modulos a incorporar y no tener que estar generando codigo especial para eso.

otro cambio que inclui, es que ahora los modulos pueden llamarse mod_X o libmod_X, se generaran a partir de ahora como libmod_X, pero podran tambien usarse la vieja nomemclatura... a nivel codigo bennugd, no cambia nada... se sigue necesitando usar import "mod_X".
Title: Re:Avances, Diario de...
Post by: KeoH on May 01, 2012, 12:56:08 PM
pero q vas a reescribir todo? xD hazlo ya en c++ xDDDDD
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 01, 2012, 01:17:20 PM
desde cero no... reescribir quiero decir que tendre que tocar todos los modulos y reestructurarlos...

ni loco uso C++...
Title: Re:Avances, Diario de...
Post by: KeoH on May 01, 2012, 01:34:28 PM
Quote from: SplinterGU on May 01, 2012, 01:17:20 PM
ni loco uso C++...


Jajajaja ¿por q?
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)
Title: Re:Avances, Diario de...
Post by: KeoH on May 02, 2012, 12:20:19 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


jajaja tu cuando eras chico en el colegio escribías en ensamblador o q? xD y la profesora te suspendio por decir q 1 + 1 = 10
Title: Re:Avances, Diario de...
Post by: JaViS on May 02, 2012, 01:01:30 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


Nunca voy a estar de acuerdo con vos en esto. Realmente no entiendo porque pensas asi.


Mi opinion es que los objetos permiten escribir código mucho mas facil de extender y mantener. Es lo que mas extraño en Bennu. Odio tener que estar repitiendo codigo todo el tiempo.
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on May 02, 2012, 01:28:32 AM
Quote from: JaViS on May 02, 2012, 01:01:30 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


Nunca voy a estar de acuerdo con vos en esto. Realmente no entiendo porque pensas asi.


Mi opinion es que los objetos permiten escribir código mucho mas facil de extender y mantener. Es lo que mas extraño en Bennu. Odio tener que estar repitiendo codigo todo el tiempo.

No era que los verdaderos hombres escribian sus propios controladores de disco?? :P

A fin de cuentas el compilador transforma todo a procedural, en codigo maquina no existen los objetos...
Me pregunto cuanta diferencia de performance entre una aplicacion que haga lo mismo en C y una en C++ (con objetos claro)

despues de todo es cuestion de gustos...
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 02, 2012, 04:25:23 AM
Quote from: KeoH on May 02, 2012, 12:20:19 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


jajaja tu cuando eras chico en el colegio escribías en ensamblador o q? xD y la profesora te suspendio por decir q 1 + 1 = 10

si programaba en ensamblador y mis profesores de computacion me miraban como un guro, recuerdo una vez que mi profesora de matematicas me decia que no se podia hacer un programa que graficara una funcion matematica escrita por un input... y yo le discutia que si, hasta que le dije, si lo hago me pone un diez... resultado, me saque un diez.

despues esa misma profesora me hizo llevar estadisticas por no tener la carpeta completa, y en los examenes de diciembre (aca cuando no aprobas una materia tenes 2 oportunidades de salvar, una es en diciembre y otra en marzo, esto es cuando terminan las clases y antes de empezar... por lo menos asi era antes) me aprobo la materia con 10. cosa imposible cuando te llevas una materia, pero se notaba que me queria molestar y hacerme ir los dias que ya no va nadie.

yo era de tener muchos diez, porque no iba a clases ni hacia trabajos practicos ni examenes (solo entregaba algun juego o algun algoritmo que hacia en la escuela, para demostrar todo lo que sabia), como ya conte mas de una vez, me la pasaba en el laboratorio... y entonces los profesores (de materias referentes a computacion) por lo general, me aprobaban con el basico para aprobar, que era un 7, quizas alguno que otro me ponia mas nota.

demas esta decir, que para los profesores era un alivio no tenerme en clases, ya que me la pasaba criticandolos, y cuestionandoles todo, y en algunos casos los ponia en aprietos o les demostraba que estaban equivocados, ya era un cabroncete troll de chico.

Quote from: JaViS on May 02, 2012, 01:01:30 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


Nunca voy a estar de acuerdo con vos en esto. Realmente no entiendo porque pensas asi.


Mi opinion es que los objetos permiten escribir código mucho mas facil de extender y mantener. Es lo que mas extraño en Bennu. Odio tener que estar repitiendo codigo todo el tiempo.

es que no necesitas repetir el codigo, puedes usar defines o funciones... ademas, yo no diseñe bennugd, bennugd es derivado de fenix, fenix es derivado de div, el lenguaje esta diseñado asi, sin objetos.

Quote from: Rein (K´)ah Al-Ghul on May 02, 2012, 01:28:32 AM
Quote from: JaViS on May 02, 2012, 01:01:30 AM
Quote from: SplinterGU on May 01, 2012, 01:57:26 PM
odio toda la filosofia de objetos, herencias y demas, ni hablar de la carga extra del C++...

los verdaderos hombres trabajan en C y usan el vi... :)


Nunca voy a estar de acuerdo con vos en esto. Realmente no entiendo porque pensas asi.


Mi opinion es que los objetos permiten escribir código mucho mas facil de extender y mantener. Es lo que mas extraño en Bennu. Odio tener que estar repitiendo codigo todo el tiempo.

No era que los verdaderos hombres escribian sus propios controladores de disco?? :P

A fin de cuentas el compilador transforma todo a procedural, en codigo maquina no existen los objetos...
Me pregunto cuanta diferencia de performance entre una aplicacion que haga lo mismo en C y una en C++ (con objetos claro)

despues de todo es cuestion de gustos...

es que no me gusta no tener el control de lo que se hace... por lo menos no saber lo que hay debajo o que se hagan cosas que yo no quiero porque el lenguaje es asi...
Title: Re:Avances, Diario de...
Post by: Transdiv on May 02, 2012, 08:19:12 AM

Quote
es que no necesitas repetir el codigo, puedes usar defines o funciones... ademas, yo no diseñe bennugd, bennugd es derivado de fenix, fenix es derivado de div, el lenguaje esta diseñado asi, sin objetos.


Pos.... tal vez ya llego la hora de descartar el pasado Div y hacer tu propio lenguaje de programación   ;D ;D ;D ;D ;D
Title: Re:Avances, Diario de...
Post by: KeoH on May 02, 2012, 09:26:13 AM
Quote from: Transdiv on May 02, 2012, 08:19:12 AM

Quote
es que no necesitas repetir el codigo, puedes usar defines o funciones... ademas, yo no diseñe bennugd, bennugd es derivado de fenix, fenix es derivado de div, el lenguaje esta diseñado asi, sin objetos.


Pos.... tal vez ya llego la hora de descartar el pasado Div y hacer tu propio lenguaje de programación   ;D ;D ;D ;D ;D

Apoyo la idea .. carguemonos la retrocompatibilidad si es necesario xD. La verdad esque yo echo de menos en Bennu algo de herencia y ¿polimorfismo? (era polimorfismo? xD )
Metele metodos a los procesos Splinter xD q ya son algo parecido a los objetos xD

Yo creo q para q Spliner haga algo con objetos hay q decirle "A que no tienes webos de .... " xDD
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 02, 2012, 12:32:04 PM
Quote from: KeoH on May 02, 2012, 09:26:13 AM
Yo creo q para q Spliner haga algo con objetos hay q decirle "A que no tienes webos de .... " xDD

si piensas eso, vas por mal camino, yo odio las competencias y los desafios... si alguien intenta de esa forma obtener algo de mi, va muerto, va a lograr todo lo contrario.
Title: Re:Avances, Diario de...
Post by: JaViS on May 02, 2012, 02:01:08 PM
Quote from: SplinterGU on May 02, 2012, 12:32:04 PM
Quote from: KeoH on May 02, 2012, 09:26:13 AM
Yo creo q para q Spliner haga algo con objetos hay q decirle "A que no tienes webos de .... " xDD

si piensas eso, vas por mal camino, yo odio las competencias y los desafios... si alguien intenta de esa forma obtener algo de mi, va muerto, va a lograr todo lo contrario.


Totalmente,


yo creo que para tener un Bennu o un DivLike orientado a objetos hay que arremangarse y hacerlo. Yo tengo una idea de posible SINTAXIS que es compatible con la actual. Es decir, que los juegos no OOP serían compatibles con el nuevo compilador. El tema es que no se nada de nada como para hacerlo, pero la idea esta XD
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 02, 2012, 02:45:14 PM
realmente seria el compilador, el codigo dcb y el interprete deberian mantenerse como estan.

pero de hacer esto nuevo, deberia reescribir el compilador usando herramientas para eso, como lex y yacc.
Title: Re:Avances, Diario de...
Post by: KeoH on May 02, 2012, 06:42:52 PM
bueno, yo pienso que si se puede hacer a bennu aun mejor y mas potente debería intentarse, aunque yo lo único que puedo hacer es apoyo moral xD
Title: Re:Avances, Diario de...
Post by: JaViS on May 02, 2012, 06:52:10 PM
yo ya voy a escribir por aca lo q tengo en mente para la sintaxis asi discutimos si es posible :D
Title: Re:Avances, Diario de...
Post by: KeoH on May 02, 2012, 07:02:16 PM
Quote from: JaViS on May 02, 2012, 06:52:10 PM
yo ya voy a escribir por aca lo q tengo en mente para la sintaxis asi discutimos si es posible :D
ponlo en sugerencias ahí :)
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on May 02, 2012, 09:54:09 PM
Quote from: SplinterGU on May 02, 2012, 02:45:14 PM
realmente seria el compilador, el codigo dcb y el interprete deberian mantenerse como estan.

pero de hacer esto nuevo, deberia reescribir el compilador usando herramientas para eso, como lex y yacc.

supongamos que el compilador existe
el nuevo compilador, crearia dcb compatibles con el viejo interprete, verdad??
es decir el nuevo compilador y el viejo generarian dcb que puedan ser ejecutados por el mismo interprete... ?

seria como una rama nueva de bennugd...
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 03, 2012, 12:37:13 PM
deberian generar el mismo dcb...

hace tiempo que tengo en mente realizar un nuevo compilador.
Title: Re:Avances, Diario de...
Post by: JaViS on May 05, 2012, 01:11:38 AM
Finalmente me hice un tiempito para escribir lo que tenia en mente:


http://forum.bennugd.org/index.php?topic=3068.0 (http://forum.bennugd.org/index.php?topic=3068.0)
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 05, 2012, 02:55:49 AM
por dios... estoy desde hoy con los cambios de la version estatica (monolitica) y hace horas que no paro de escribir, y no termino mas, cuanto mas escribo mas me falta... ya me hice 24 modulos/libs, me faltan 25... puf, no termino mas...

al final, tuve que usar algo similar a lo que hizo joseba, porque de otra forma se hacia complejo generar el bgdc... pero igual tendra una parte que se generar en momento de compilacion.
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on May 05, 2012, 03:06:45 AM
Quote from: SplinterGU on May 05, 2012, 02:55:49 AM
por dios... estoy desde hoy con los cambios de la version estatica (monolitica) y hace horas que no paro de escribir, y no termino mas, cuanto mas escribo mas me falta... ya me hice 24 modulos/libs, me faltan 25... puf, no termino mas...

al final, tuve que usar algo similar a lo que hizo joseba, porque de otra forma se hacia complejo generar el bgdc... pero igual tendra una parte que se generar en momento de compilacion.

tomatelo con calma Splinter
Trabajas como una rata :P
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 05, 2012, 03:18:59 AM
:P

jeje
Title: Re:Avances, Diario de...
Post by: josebita on May 05, 2012, 09:58:28 AM
Quote from: SplinterGU on May 05, 2012, 02:55:49 AM
por dios... estoy desde hoy con los cambios de la version estatica (monolitica) y hace horas que no paro de escribir, y no termino mas, cuanto mas escribo mas me falta... ya me hice 24 modulos/libs, me faltan 25... puf, no termino mas...

al final, tuve que usar algo similar a lo que hizo joseba, porque de otra forma se hacia complejo generar el bgdc... pero igual tendra una parte que se generar en momento de compilacion.
jeje. Yo cuando me puse con la arquitectura actual (la tercera iteración de la arquitectura monolítica de mi rama) y una vez tenía la idea de cómo lo quería hacer me puse en modo automático dos o tres tardes enteras sin parar :)

En cuanto lo tengas avisa y me pongo con mis ports.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 05, 2012, 04:07:07 PM
jajaja, me faltan 5 modulos... calculo que habre estado 5 horas tocando modulos y despues tengo que cambiar los scripts de compilacion...
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 05, 2012, 07:49:51 PM
ya tengo el engendro funcionando...

voy a revisarlo un poco mas... emprolijarlo otro poco... y hacer el commit pertinente.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 05, 2012, 08:47:23 PM
subiendo version statica (monolitica)...

me queda pendiente modificar los scripts de generacion de cross, pero quiero hacerlo de forma prolija usando el script de build, asi no tener que tocar todos los scripts cada vez.

la compilacion estatica se hace con un script llamado build-static.sh, que genera los archivos necesarios y luego corre el configure y el make, aunque en un orden diferente a la compilacion de la version modular.
Title: Re:Avances, Diario de...
Post by: josebita on May 05, 2012, 11:29:40 PM
Genial!
Mañana le echo un ojo.
Title: Re:Avances, Diario de...
Post by: KeoH on May 05, 2012, 11:45:29 PM
Animo con ese código ..  y descansa la vista de vez en cuando xD
Title: Re:Avances, Diario de...
Post by: josebita on May 07, 2012, 09:33:56 PM
Splinter, probé el script de compilación estática en Mac y no va. No fui capaz de arreglarlo en el rato que estuve intentándolo. El problema viene de que los scripts están escritos para las binutils GNU y Mac usa las BSD (que son peores).
Intentaré parchear el script para que vaya con las binutils BSD pero dado que las de GNU también se pueden instalar en Mac si se me complica demasiado, pues tiro con esas.

Sólo por dar un poco de feedback :)

Voy a probar en Ubuntu, a ver qué tal.
[Edito] En Ubuntu 12.04 se genera el fichero de cabecera pero yo diría que se genera mal:
Quote/*
*
*  include/fake_dl.h generated by bgd-monolith.sh
*
*  Copyright © 2006-2012 SplinterGU (Fenix/Bennugd)
*
*  This file is part of Bennu - Game Development
*
*  This software is provided 'as-is', without any express or implied
*  warranty. In no event will the authors be held liable for any damages
*  arising from the use of this software.
*
*  Permission is granted to anyone to use this software for any purpose,
*  including commercial applications, and to alter it and redistribute it
*  freely, subject to the following restrictions:
*
*     1. The origin of this software must not be misrepresented; you must not
*     claim that you wrote the original software. If you use this software
*     in a product, an acknowledgment in the product documentation would be
*     appreciated but is not required.
*
*     2. Altered source versions must be plainly marked as such, and must not be
*     misrepresented as being the original software.
*
*     3. This notice may not be removed or altered from any source
*     distribution.
*
*/

#ifndef __FAKE_DL_H
-e #define __FAKE_DL_H

-e #include <bgddl.h>
[...]

#ifndef __BGDC__
-e /* ---------- globals_fixup ---------- */

[...]

-e /* ---------- locals_fixup ---------- */

[...]

-e /* ---------- functions_exports ---------- */

[...]

-e /* ---------- module_initialize ---------- */

[...]
-e /* ---------- module_finalize ---------- */

[...]
-e /* ---------- instance_create_hook ---------- */

extern void librender_instance_create_hook( INSTANCE * );

-e /* ---------- instance_destroy_hook ---------- */

extern void librender_instance_destroy_hook( INSTANCE * );

-e /* ---------- instance_pre_execute_hook ---------- */


-e /* ---------- instance_pos_execute_hook ---------- */


-e /* ---------- process_exec_hook ---------- */

[...]
-e /* ---------- handler_hooks ---------- */

[...]
-e /* ---------- modules_dependency ---------- */
[...]
Sobran todos los "-e", claro, pero ni idea de por qué "echo -e" desde la consola me va bien y desde el script no...
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 07, 2012, 10:43:53 PM
en la consola usas bash o sh o algun otro?

por otro lado, muestra que errores te da... gracias por el feedback.

edit: igual quitare todos los -e, para hacerlo mas generico.
Title: Re:Avances, Diario de...
Post by: josebita on May 08, 2012, 12:02:59 AM
Quote from: SplinterGU on May 07, 2012, 10:43:53 PM
en la consola usas bash o sh o algun otro?

por otro lado, muestra que errores te da... gracias por el feedback.

edit: igual quitare todos los -e, para hacerlo mas generico.
En la consola uso bash tanto en Ubuntu como en Mac.

No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar pero yo si no recuerdo mal era un error en la línea que dice:
SCOPE=$(tail -n $(expr $(wc -l $MODULES_PATH/Makefile.am|cut -f1 -d\ ) - $(grep -n SUBDIRS $MODULES_PATH/Makefile.am | cut -f1 -d: )) $MODULES_PATH/Makefile.am | sed 's/\\//g' | grep -v mathi)
en make-fakedl.sh.
A ver si investigo un poco más y te puedo dar algún dato más concreto. Ya te digo que esta manía de Apple de usar las binutils de BSD es un tanto molesta a veces.


PD: Ahora que lo veo, ¿por qué en el primer cut no pones?
cut -f1 -d " "
En lugar de:
cut -f1 -d\
¿No es más sencillo?. Es sólo un comentario sin poder probarlo en el Mac, pero me huelo que igual viene de ahí el problema....
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 08, 2012, 02:00:54 AM
proba ahora...
Title: Re:Avances, Diario de...
Post by: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar


Ah, pero que tenes un leon de novia? XD
Title: Re:Avances, Diario de...
Post by: josebita on May 08, 2012, 01:59:02 PM
Quote from: SplinterGU on May 08, 2012, 02:00:54 AM
proba ahora...
Mejor: la cabecera parece generarse correctamente (Ubuntu).

Lo que estoy viendo es que el script del configure no me detecta correctamente la arquitectura (creo).
Me dice:
QuoteYour machine: x86_64 linux-gnu
De forma que no cabe en ninguna de las arquitecturas predefinidas en el configure.in (¿no?). Quizás habría que cambiar la línea 37 por algo como:
            i*86|x86_64)
Parece ir mejor aunque me sigue dando problemas de dependencias con la libcrypto de 32 bits, pero eso ya es cosa de mi instalación.
Quote from: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar
Ah, pero que tenes un leon de novia? XD
Más o menos, sí...  :P
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 08, 2012, 03:27:59 PM
Quote from: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar

Ah, pero que tenes un leon de novia? XD

jojojojo...

Quote from: josebita on May 08, 2012, 01:59:02 PM
Quote from: SplinterGU on May 08, 2012, 02:00:54 AM
proba ahora...
Mejor: la cabecera parece generarse correctamente (Ubuntu).

Lo que estoy viendo es que el script del configure no me detecta correctamente la arquitectura (creo).
Me dice:
QuoteYour machine: x86_64 linux-gnu
De forma que no cabe en ninguna de las arquitecturas predefinidas en el configure.in (¿no?). Quizás habría que cambiar la línea 37 por algo como:
            i*86|x86_64)
Parece ir mejor aunque me sigue dando problemas de dependencias con la libcrypto de 32 bits, pero eso ya es cosa de mi instalación.
Quote from: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar
Ah, pero que tenes un leon de novia? XD
Más o menos, sí...  :P

la compilacion no va en 64bits... necesitas un chroot de un ubuntu32... no me digas que tu ppa lo compilas en 64 bits...

aca te paso el fake_dl.h, para que compares como deberia quedar.
Title: Re:Avances, Diario de...
Post by: josebita on May 08, 2012, 03:56:44 PM
Quote from: SplinterGU on May 08, 2012, 03:27:59 PM
Quote from: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar

Ah, pero que tenes un leon de novia? XD

jojojojo...

Quote from: josebita on May 08, 2012, 01:59:02 PM
Quote from: SplinterGU on May 08, 2012, 02:00:54 AM
proba ahora...
Mejor: la cabecera parece generarse correctamente (Ubuntu).

Lo que estoy viendo es que el script del configure no me detecta correctamente la arquitectura (creo).
Me dice:
QuoteYour machine: x86_64 linux-gnu
De forma que no cabe en ninguna de las arquitecturas predefinidas en el configure.in (¿no?). Quizás habría que cambiar la línea 37 por algo como:
            i*86|x86_64)
Parece ir mejor aunque me sigue dando problemas de dependencias con la libcrypto de 32 bits, pero eso ya es cosa de mi instalación.
Quote from: JaViS on May 08, 2012, 12:29:14 PM
Quote from: josebita on May 08, 2012, 12:02:59 AM
No te he puesto el error del Mac porque lo tengo en la habitación y está mi novia durmiendo y no quisiera molestar
Ah, pero que tenes un leon de novia? XD
Más o menos, sí...  :P

la compilacion no va en 64bits... necesitas un chroot de un ubuntu32... no me digas que tu ppa lo compilas en 64 bits...

aca te paso el fake_dl.h, para que compares como deberia quedar.
La compilación se hace en los servidores de canonical (launchpad): yo sólo le digo que quiero que sea para i386 (o lo que sea) y launchpad se busca la vida.

[Edit] Intentaré, entonces, compilar nativamente en 32 bits.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 08, 2012, 04:04:43 PM
por favor, confirmame que genera el fake_dl.h correctamente...

por otro lado, mas alla de 64 o 32 bits, podriamos agregar eso que sugeriste, pero igual no serviria de mucho ya que no soporta 64bits...

por otro lado, no creo que a nadie le interese, me estoy instalando solaris 10 (intel) en una maquina virtual por cuestiones de trabajo, quizas pruebe compilarlo ahi tambien.
Title: Re:Avances, Diario de...
Post by: JaViS on May 08, 2012, 04:47:30 PM
Quote from: SplinterGU on May 08, 2012, 04:04:43 PMme estoy instalando solaris 10 (intel) en una maquina virtual por cuestiones de trabajo, quizas pruebe compilarlo ahi tambien.


quizas para montar un servidor en BennuGD para juegos multiplayer :P
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on May 08, 2012, 05:41:56 PM
Solaris, lengo ganas de probarlo desde hace tiempo, pero aun no domino bien linux...
Title: Re:Avances, Diario de...
Post by: josebita on May 08, 2012, 09:20:33 PM
Pues no, bien no se me crea el fichero (adjunto lo que se me crea a mí en Ubuntu 12.04).
Aquí la salida de la consola de make-fakedl.sh:
e8540@L2ZCVP4J:core$ ./make-fakedl.sh
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- libgrbase -------------------- */

    __fake_dl[0].dlname                       = "libgrbase";
#ifdef __BGDC__
    __fake_dl[0].constants_def                = NULL;
    __fake_dl[0].types_def                    = NULL;
    __fake_dl[0].globals_def                  = &libgrbase_globals_def;
    __fake_dl[0].locals_def                   = NULL;
    __fake_dl[0].globals_fixup                = NULL;
    __fake_dl[0].locals_fixup                 = NULL;
#else
    __fake_dl[0].constants_def                = NULL;
    __fake_dl[0].types_def                    = NULL;
    __fake_dl[0].globals_def                  = NULL;
    __fake_dl[0].locals_def                   = NULL;
    __fake_dl[0].globals_fixup                = libgrbase_globals_fixup;
    __fake_dl[0].locals_fixup                 = NULL;
#endif
    __fake_dl[0].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[0].module_initialize            = NULL;
    __fake_dl[0].module_finalize              = NULL;
    __fake_dl[0].instance_create_hook         = NULL;
    __fake_dl[0].instance_destroy_hook        = NULL;
    __fake_dl[0].instance_pre_execute_hook    = NULL;
    __fake_dl[0].instance_pos_execute_hook    = NULL;
    __fake_dl[0].process_exec_hook            = NULL;
    __fake_dl[0].handler_hooks                = NULL;
#else
    __fake_dl[0].module_initialize            = libgrbase_module_initialize;
    __fake_dl[0].module_finalize              = NULL;
    __fake_dl[0].instance_create_hook         = NULL;
    __fake_dl[0].instance_destroy_hook        = NULL;
    __fake_dl[0].instance_pre_execute_hook    = NULL;
    __fake_dl[0].instance_pos_execute_hook    = NULL;
    __fake_dl[0].process_exec_hook            = NULL;
    __fake_dl[0].handler_hooks                = NULL;
#endif
    __fake_dl[0].modules_dependency           = NULL;
: not found
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- libvideo -------------------- */

    __fake_dl[127].dlname                       = "libvideo";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = libvideo_constants_def;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = &libvideo_globals_def;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = libvideo_globals_fixup;
    __fake_dl[127].locals_fixup                 = NULL;
#endif
    __fake_dl[127].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = libvideo_module_initialize;
    __fake_dl[127].module_finalize              = libvideo_module_finalize;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#endif
    __fake_dl[127].modules_dependency           = libvideo_modules_dependency;
: not found
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- libblit -------------------- */

    __fake_dl[127].dlname                       = "libblit";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = libblit_constants_def;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#endif
    __fake_dl[127].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#endif
    __fake_dl[127].modules_dependency           = NULL;
: not found
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- librender -------------------- */

    __fake_dl[127].dlname                       = "librender";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = librender_constants_def;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = &librender_globals_def;
    __fake_dl[127].locals_def                   = &librender_locals_def;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = librender_globals_fixup;
    __fake_dl[127].locals_fixup                 = librender_locals_fixup;
#endif
    __fake_dl[127].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = librender_module_initialize;
    __fake_dl[127].module_finalize              = librender_module_finalize;
    __fake_dl[127].instance_create_hook         = librender_instance_create_hook;
    __fake_dl[127].instance_destroy_hook        = librender_instance_destroy_hook;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = librender_handler_hooks;
#endif
    __fake_dl[127].modules_dependency           = librender_modules_dependency;
: not found
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- libdraw -------------------- */

    __fake_dl[127].dlname                       = "libdraw";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#endif
    __fake_dl[127].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#endif
    __fake_dl[127].modules_dependency           = NULL;
: not found
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- libfont -------------------- */

    __fake_dl[127].dlname                       = "libfont";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#endif
    __fake_dl[127].functions_exports            = NULL;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = libfont_module_initialize;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#endif
    __fake_dl[127].modules_dependency           = libfont_modules_dependency;
: not found
[...El foro no me deja postear la salida completa pero viene siendo lo mismo para cada módulo/librería...]
./make-fakedl.sh: 142: ./make-fakedl.sh: data+=
    /* -------------------- mod_m7 -------------------- */

    __fake_dl[127].dlname                       = "mod_m7";
#ifdef __BGDC__
    __fake_dl[127].constants_def                = mod_m7_constants_def;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = &mod_m7_globals_def;
    __fake_dl[127].locals_def                   = &mod_m7_locals_def;
    __fake_dl[127].globals_fixup                = NULL;
    __fake_dl[127].locals_fixup                 = NULL;
#else
    __fake_dl[127].constants_def                = NULL;
    __fake_dl[127].types_def                    = NULL;
    __fake_dl[127].globals_def                  = NULL;
    __fake_dl[127].locals_def                   = NULL;
    __fake_dl[127].globals_fixup                = mod_m7_globals_fixup;
    __fake_dl[127].locals_fixup                 = mod_m7_locals_fixup;
#endif
    __fake_dl[127].functions_exports            = mod_m7_functions_exports;
#ifdef __BGDC__
    __fake_dl[127].module_initialize            = NULL;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#else
    __fake_dl[127].module_initialize            = mod_m7_module_initialize;
    __fake_dl[127].module_finalize              = NULL;
    __fake_dl[127].instance_create_hook         = NULL;
    __fake_dl[127].instance_destroy_hook        = NULL;
    __fake_dl[127].instance_pre_execute_hook    = NULL;
    __fake_dl[127].instance_pos_execute_hook    = NULL;
    __fake_dl[127].process_exec_hook            = NULL;
    __fake_dl[127].handler_hooks                = NULL;
#endif
    __fake_dl[127].modules_dependency           = mod_m7_modules_dependency;
: not found
e8540@L2ZCVP4J:core$
Como ves, el índice se mantiene siempre en 127. ¿Alguna idea de por qué?. Yo diría que no he hecho nada raro con mi sistema, pero vete a saber...
Title: Re:Avances, Diario de...
Post by: josebita on May 08, 2012, 09:23:51 PM
¡Amigo Mío! (Sólo Tú Encuentras Leña (http://www.youtube.com/watch?v=xcm9mmGOFJw))
Es que el script está escrito en bash, no en sh. Cambiando el intérprete la cabecera sale idéntica a la tuya.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 08, 2012, 10:55:17 PM
jeje... se ve que en mi sistema el sh debe ser un link al bash...

bueno, lo cambio por bash... aunque no se que tan portable sera...
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 08, 2012, 11:13:53 PM
por favor, decime si pudiste generar una version statica de bennugd con la version oficial... y como lo ves para meter tus cambios...

lo que intente hacer con el script es tener que evitar generar a mano los archivos para poder importar los simbolos al compilador y al runtime, y genera dicho archivo en base al makefile.am de modules y al contenido de los directorios, que deben tener un archivo *_exports.h donde iran los exports para el compilador (bgdc).

en el script hay un hack para evitar compilar la mathi, ya que es incompatible con la math.
Title: Re:Avances, Diario de...
Post by: josebita on May 09, 2012, 07:15:54 AM
Quote from: SplinterGU on May 08, 2012, 10:55:17 PM
jeje... se ve que en mi sistema el sh debe ser un link al bash...

bueno, lo cambio por bash... aunque no se que tan portable sera...
Típicamente sh ha sido un enlace a bash. Hace tiempo lo cambiaron en Ubuntu para que apuntara a una shell más rápida y de vez en cuando pasan estas cosas :) Creo que en Debian andan discutiendo hace tiempo la posibilidad de cambiar, también.

Quote from: SplinterGU on May 08, 2012, 11:13:53 PM
por favor, decime si pudiste generar una version statica de bennugd con la version oficial... y como lo ves para meter tus cambios...

lo que intente hacer con el script es tener que evitar generar a mano los archivos para poder importar los simbolos al compilador y al runtime, y genera dicho archivo en base al makefile.am de modules y al contenido de los directorios, que deben tener un archivo *_exports.h donde iran los exports para el compilador (bgdc).

en el script hay un hack para evitar compilar la mathi, ya que es incompatible con la math.
Te lo intento asegurar esta tarde.
La arquitectura, por lo que veo, es similar en concepto a la mía. Dado que ya puedo generar las cabeceras estáticas en Linux si te parece intento generar un parche sobre la versión oficial del SVN para Wii en estos días. Además así podrás probarlo en tu Wii :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 09, 2012, 12:42:18 PM
yo uso opensuse, desde hace un tiempo.

si, me gustaria tener ese parche, aunque aun me falta tener el entorno de compilacion wii.
Title: Re:Avances, Diario de...
Post by: josebita on May 09, 2012, 06:20:08 PM
Quote from: SplinterGU on May 09, 2012, 12:42:18 PM
yo uso opensuse, desde hace un tiempo.
Ah, ok.
Ya que estamos, ¿podrías cambiar los permisos de los configures del core y de los módulos para que se bajen con permiso de ejecución?. Es que se bajan sin ellos y el script de compilación falla.

El bgdc parece compilar sin problemas. El bgdrtm compila bien pero no se compila el código de los módulos dentro, sólo los ficheros propios de la bgdrtm.
El problema viene porque en Ubuntu no parece haber un script de pkg-config para SDL_mixer de forma que el configure de los módulos fallla; para que funcione he cambiado el script build-static.sh para que sea:
cd ../modules
SDL_mixer_CFLAGS="$(sdl-config --cflags)" SDL_mixer_LIBS="$(sdl-config --libs) -lSDL_mixer" ./configure --enable-static
make
cd ..

Con eso parece compilarse sin mayores problemas.

Quote from: SplinterGU on May 09, 2012, 12:42:18 PM
si, me gustaria tener ese parche, aunque aun me falta tener el entorno de compilacion wii.
Si quieres puedo intentar enviártelo, también.


[Edit] ¡Pixbros funcionando en bennugd monolítico!
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 09, 2012, 06:34:35 PM
Quote from: josebita on May 09, 2012, 06:20:08 PM
Quote from: SplinterGU on May 09, 2012, 12:42:18 PM
yo uso opensuse, desde hace un tiempo.
Ah, ok.
Ya que estamos, ¿podrías cambiar los permisos de los configures del core y de los módulos para que se bajen con permiso de ejecución?. Es que se bajan sin ellos y el script de compilación falla.

esta demas decir que tengo los permisos puestos, sino no compilaria; pero lamento decir que SVN no mantiene los permisos en el repositorio, SVN solo maneja archivos y contenidos, no attributos de los mismos.

Quote from: josebita on May 09, 2012, 06:20:08 PMEl bgdc parece compilar sin problemas. El bgdrtm compila bien pero no se compila el código de los módulos dentro, sólo los ficheros propios de la bgdrtm.

claro, se compilan los modulos en .a (librerias estaticas), luego se enlazan estaticamente al bgdrtm.

necesitas que todos los modulos generen sus respectivas librerias estaticas.

Quote from: josebita on May 09, 2012, 06:20:08 PM

El problema viene porque en Ubuntu no parece haber un script de pkg-config para SDL_mixer de forma que el configure de los módulos fallla; para que funcione he cambiado el script build-static.sh para que sea:
cd ../modules
SDL_mixer_CFLAGS="$(sdl-config --cflags)" SDL_mixer_LIBS="$(sdl-config --libs) -lSDL_mixer" ./configure --enable-static
make
cd ..

Con eso parece compilarse sin mayores problemas.

se requiere actualizar o generar los .m4 necesarios, yo necesite generar en algunas plataformas a mano, porque los empaquetados estan mal, podria meter eso, pero preferiria no hacerlo.

Quote from: josebita on May 09, 2012, 06:20:08 PM

Quote from: SplinterGU on May 09, 2012, 12:42:18 PM
si, me gustaria tener ese parche, aunque aun me falta tener el entorno de compilacion wii.
Si quieres puedo intentar enviártelo, también.


[Edit] ¡Pixbros funcionando en bennugd monolítico!

te agradeceria muchisimo si me pasas el entorno para compilar wii.

gracias por probar la version monolitica.

resulta facil ahora que lo tenes configurado meter nuevos modulos? como lo ves a nivel general?
Title: Re:Avances, Diario de...
Post by: josebita on May 09, 2012, 07:29:34 PM
Ok, de todas formas la variable de entorno se puede meter a mano antes de llamar al compilador.

El tema de añadir nuevos módulos parece fácil, sí (bastante más que con mi versión). Si no lo he entendido mal, sólo tengo que meter el módulo (preparado para compilar en la forma tradicional) en la carpeta modules, sacar los .o y recompilar con el script, ¿no?
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 09, 2012, 07:37:25 PM
si, claro, agregarlo en el makefile.am y todo lo que sigue para compilar de la forma habitual.
Title: Re:Avances, Diario de...
Post by: josebita on May 10, 2012, 07:18:28 PM
Ok. Usas un sistema de 64 bits, ¿verdad?
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 10, 2012, 07:59:48 PM
uso sistema de 32bits... simplemente para evitarme el rollo de no poder generar correctamente versiones de bennugd, de otra forma tendria ya desde hace rato un sistema de 64bits.
Title: Re:Avances, Diario de...
Post by: josebita on May 10, 2012, 09:08:23 PM
Quote from: SplinterGU on May 10, 2012, 07:59:48 PM
uso sistema de 32bits... simplemente para evitarme el rollo de no poder generar correctamente versiones de bennugd, de otra forma tendria ya desde hace rato un sistema de 64bits.
a ver si te monto el entorno y te lo paso.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 10, 2012, 09:45:35 PM
gracias!
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 27, 2012, 04:04:48 AM
esto es en lo que estoy trabajando actualmente

http://www.youtube.com/watch?v=TJCuNJp0mBs&feature=youtu.be

aun es una prueba de concepto, queda muchas cosas por pulir y luego hacerlo un modulo bennugd... esta totalmente desoptimizado, y hecho completamente desde un prg... la velocidad es excelente pese a todo lo comentado...

pero bueno, estoy trabajando en ello.
Title: Re:Avances, Diario de...
Post by: KeoH on June 27, 2012, 07:31:03 AM
Que buena pinta .. se ve que los desniveles son suaves xD ¿se podrá poner a mayor resolucion y a 32 b de color?
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 27, 2012, 07:42:59 AM
esta a 32bits de color...

claro que se puede a mas resolucion.
Title: Re:Avances, Diario de...
Post by: Erkosone on June 27, 2012, 07:57:07 AM
Tiene buena pinta.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 27, 2012, 07:18:59 PM
640x480x32 60 fps

http://www.youtube.com/watch?v=dM3bKtDVTiI&feature=youtu.be
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 27, 2012, 07:48:25 PM
pruebas con altura de la camara

http://youtu.be/3M73G2PvMU0
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 27, 2012, 08:09:42 PM
lo que veo es que la subida a youtube no le hace justicia a los videos, que son realmente de una calidad muy superior.
Title: Re:Avances, Diario de...
Post by: KeoH on June 27, 2012, 09:51:05 PM
Quote from: SplinterGU on June 27, 2012, 07:48:25 PM
pruebas con altura de la camara

http://youtu.be/3M73G2PvMU0 (http://youtu.be/3M73G2PvMU0)


Coche volador!! xDDDD
Title: Re:Avances, Diario de...
Post by: kim-elet-o on June 27, 2012, 10:27:11 PM
Tiene realmente muy buena pinta.


Title: Re:Avances, Diario de...
Post by: Kloppix on June 28, 2012, 10:24:02 AM
Quote from: KeoH on June 27, 2012, 09:51:05 PM
Quote from: SplinterGU on June 27, 2012, 07:48:25 PM
pruebas con altura de la camara

http://youtu.be/3M73G2PvMU0 (http://youtu.be/3M73G2PvMU0)


Coche volador!! xDDDD


Ahora sólo falta un sprite de un Delorean  ;D
Title: Re:Avances, Diario de...
Post by: oska on July 12, 2012, 08:58:11 AM
flipante  ;D ,puede dar mucho de si hacer un juego tipo outrun.Con sus desniveles de bajadas y subidas donde se aprecia en el primer video.
Title: Re:Avances, Diario de...
Post by: Erkosone on July 12, 2012, 11:25:36 AM
Esto tiene una pinta excelente.
Title: Re:Avances, Diario de...
Post by: DCelso on August 03, 2012, 12:35:12 AM
SplinterGU, he estado mirando tu versión estática o monolítica, es igual a la mía salvo un par de detalles que la tuya creo que mejora :D, ¿por cierto como se quitan módulos en tu versión monolítica? A priori leyendo el make-fakedl no lo veo sencillo. :'(
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 03, 2012, 12:48:02 AM
simplemente, borra la entrada del modulo que quieras eliminar del makefile.am en el directorio modulos.

si, las version oficial es muy parecida a las otras ramas... parecidas en parte (tampoco hay muchas opciones), pero no iguales...

si usas la version oficial, luego dime como te va con ella.
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 12:50:46 PM
corregi varias cosas en el blitter... encontre el maldito bug que hacia que se rompan los graficos cuando se usaba un size muy chico y el grafico era chico... ironicamente era un filtro para evitar distorsiones por falta de precision... y algun otro tema mas en el blitter...

tambien encontre el problema de precision del centro que si gira 360* se nota un saltito en la rotacion, pero si lo corrijo se me rompe la textura o el grafico (no se que realmente) dejando una linea vertical sin pintar en medio del grafico, en diferentes posiciones segun el angulo... y otro que al pasar de 100% a 99% el grafico parece mas ancho... pero eso no estoy seguro, quizas es un efecto visual...

ahh, y corregi los size_x, size_y y size que se comian 1 pixel cada 100% del grafico, o sea, 200% = 2pixels... 300% = 3 pixels... y asi...
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 01:28:50 PM
para los que no pueden esperar la nueva release....

http://www37.zippyshare.com/v/58152737/file.html

los demas (no windows) a tirar de los fuentes...

disculpas a todos los que el fix de size_* les genere incompatibilidades en sus codigos...

edit: fixeado, maldito update del compilador que me arruino los sdl.pc... en fin, creo que la ultima version windows que saque no era la ultima.
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 02:41:06 PM
por favor, necesito que no emparchen sus codigos para corregir bugs de bennu, sino reporten los bugs que vean...

puede que haya algun que otro error en el nuevo render... no puede probarlo mucho.
Title: Re:Avances, Diario de...
Post by: Erkosone on August 29, 2012, 05:01:43 PM
Hola Splinter, estos días he estado a tope de trabajo y no he atendido demasiado a los foros, que es exactamente lo que cambia de esta nueva versión, tengo algunos proyectos en bennu y podría probar a compilarlos haber si todo va bien.
Title: Re:Avances, Diario de...
Post by: josebita on August 29, 2012, 08:31:08 PM
Ey, veo que has añadido la constante OS_ANDROID.

Por cierto, te debía los comandos de compilación en Android, te los adjunto.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on August 29, 2012, 08:42:24 PM
hace meses dijó que pondria la constante de Pandora, ni me voy a molestar en mirar porque apuesto que no esta :(
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 10:05:33 PM
Quote from: josebita on August 29, 2012, 08:31:08 PM
Ey, veo que has añadido la constante OS_ANDROID.

Por cierto, te debía los comandos de compilación en Android, te los adjunto.

gracias!

Quote from: FreeYourMind on August 29, 2012, 08:42:24 PM
hace meses dijó que pondria la constante de Pandora, ni me voy a molestar en mirar porque apuesto que no esta :(

le prometo tantas cosas a tanta gente, complazco a pocos y defraudo constantemente a muchos... lo siento, no doy a vasto.
Title: Re:Avances, Diario de...
Post by: josebita on August 29, 2012, 10:38:01 PM
Splinter revisando un poco el tema este del rendimiento, me estoy dando cuando de que al hacer set_mode cuando hay puesto un scale_resolution bennu no comprueba si realmente hace falta el escalado.
Me explico: si alguien pone el valor de scale_resolution a un valor dinámico calculado por código (porque lo está poniendo a la resolución nativa de android, p.ej.) y resulta que esa resolución es justo la de diseño del juego (a la que hace set_mode) y no hay rotación, en ppio. el escalado sería innecesario y haría el código más lento al tener que escalar cada frame sin necesidad.
¿No sería mejor añadir a gr_set_mode() una comprobación para ver si el escalado es necesario?. Sería algo del tipo:
use_scale = 0;
if(scale_resolution_orientation || surface_width != width && surface_height != height)
    use_scale = 1;

Quizás eso obligaría a definir una variable global en g_video.h que dijera si se está haciendo escalado o no, porque ahora todo el código que he visto hace:
if (scale_resolution) {} else {}
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 11:00:18 PM
claro, esa variable para indicar que esta seteado el escalado, se llama scale_resolution... :P

pero si, no se hace desde el codigo C, se podria hacer desde codigo bennugd... me parece.
Title: Re:Avances, Diario de...
Post by: Transdiv on August 29, 2012, 11:05:47 PM
Quote from: FreeYourMind on August 29, 2012, 08:42:24 PM
hace meses dijó que pondria la constante de Pandora, ni me voy a molestar en mirar porque apuesto que no esta :(

A que si le regalas una Pandora si la pone  ;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 11:10:04 PM
lo que quiero decir es que reseteando scale_resolution a 0, ya estaria.

obviamente con los chequeos pertinentes para detectar el modo actual y demas.
Title: Re:Avances, Diario de...
Post by: josebita on August 29, 2012, 11:11:37 PM
Quote from: SplinterGU on August 29, 2012, 11:10:04 PM
lo que quiero decir es que reseteando scale_resolution a 0, ya estaria.

obviamente con los chequeos pertinentes para detectar el modo actual y demas.
Pues también es verdad...
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 29, 2012, 11:25:25 PM
lo pondre, aunque creo que esto lo pense cuando hice esta feature, y por algun motivo lo deje asi...

que porqueria de memoria.
Title: Re:Avances, Diario de...
Post by: josebita on August 29, 2012, 11:53:37 PM
Quote from: SplinterGU on August 29, 2012, 11:25:25 PM
que porqueria de memoria.
Para el cumpleaños una agendita :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 30, 2012, 12:08:38 AM
Quote from: josebita on August 29, 2012, 11:53:37 PM
Quote from: SplinterGU on August 29, 2012, 11:25:25 PM
que porqueria de memoria.
Para el cumpleaños una agendita :D

buena idea... la primer cosa que anotaria seria:

"recuerda que puedes usar la agendita..." oh, wait... si me olvido de usarla no podre leer el recordatorio de usarla... diablos!
Title: Re:Avances, Diario de...
Post by: Kloppix on August 30, 2012, 03:09:30 PM
Quote from: josebita on August 29, 2012, 08:31:08 PM
Ey, veo que has añadido la constante OS_ANDROID.

A veces creo que Splinter añade mejoras y no lo comenta a propósito. Asi existe la posibilidad de que alguien pida algo ya implementado y de la sensación de que se agregó a los 5 minutos de la propuesta ;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 30, 2012, 03:25:05 PM
es que android no esta completo... o sea, que esa parte aun no es usable...
Title: Re:Avances, Diario de...
Post by: Kloppix on August 30, 2012, 03:36:16 PM
Quote from: SplinterGU on August 30, 2012, 03:25:05 PM
es que android no esta completo... o sea, que esa parte aun no es usable...

Pero el valor 1003 es definitivo? Pregunto porque ya lo puse en la Wiki  :-\ .  Si es asi lo que haré es poner "under development" mientras tanto.   
Title: Re:Avances, Diario de...
Post by: SplinterGU on August 30, 2012, 03:57:36 PM
1003, si
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on September 01, 2012, 09:14:16 PM
Quote from: SplinterGU on August 29, 2012, 01:28:50 PM
para los que no pueden esperar la nueva release....

http://www37.zippyshare.com/v/58152737/file.html (http://www37.zippyshare.com/v/58152737/file.html)

los demas (no windows) a tirar de los fuentes...

disculpas a todos los que el fix de size_* les genere incompatibilidades en sus codigos...

edit: fixeado, maldito update del compilador que me arruino los sdl.pc... en fin, creo que la ultima version windows que saque no era la ultima.



Le hemos probado y en algunos test no se ve nada

aqui con esto...














// --------------------------------------------------------------------------
// Bennu Tests                                         2000 José Luis Cebrián
// --------------------------------------------------------------------------

#ifndef __VERSION__
    import "mod_sdlevthandler";
    import "mod_pathfind";
#else
    import "mod_blendop";
    import "mod_text";
    import "mod_grproc";
    import "mod_video";
    import "mod_map";
    import "mod_screen";
    import "mod_path";
    import "mod_rand";
    import "mod_say";
    import "mod_mouse";
    import "mod_scroll";
    import "mod_math";
#endif

import "mod_m7";
import "mod_proc";
import "mod_key";
import "mod_draw";
import "mod_timers";
import "mod_sound";

#define SCR_DEPTH   16

GLOBAL option ;

PROCESS Menu()
PRIVATE i, c, map ;
BEGIN
    set_mode(320,200,SCR_DEPTH);
    load_fpg ("../../media/test.fpg") ;
    set_fps (0, 0) ;
    write (0, 160,  4, 1, "Bennu tests") ;
    write (0, 160, 14, 1, "Select your option") ;
    write (0, 60,  50, 0, "1. Basic sprite drawing") ;
    write (0, 60,  60, 0, "2. Blending operations") ;
    write (0, 60,  70, 0, "3. Primitive drawing") ;
    write (0, 60,  80, 0, "4. Scroll interactive test") ;
    write (0, 60,  90, 0, "5. Mode 7 interactive test") ;
    write (0, 60, 100, 0, "6. Path-finding interactive test") ;
    write (0, 60, 110, 0, "7. Sound test") ;
    write (0, 60, 150, 0, "0. Exit") ;

    map = new_map (320, 200, 8) ;
    map_clear (0, map, 0) ;
    option = 0 ;
    REPEAT
        IF key(_1): option = 1; END
        IF key(_2): option = 2; END
        IF key(_3): option = 3; END
        IF key(_4): option = 4; END
        IF key(_5): option = 5; END
        IF key(_6): option = 6; END
        IF key(_7): option = 7; END
        IF key(_0): BREAK; END
        c = rgb (rand(32,128), rand(32,64), rand(32,64)) ;
        x = timer[0]/5 % 100;
        IF (x > 50) x = 100-x; END
        xput (0, map, 160, 100, timer[0]*-50, 200+x, 4, 0) ;
        FROM i = 0 TO 100;
            map_put_pixel (0, map, rand(0,320), rand(0, 200), c) ;
            map_put_pixel (0, map, rand(0,320), rand(0, 200), 1) ;
        END
        FRAME ;
    UNTIL option != 0;
    unload_map(0, map) ;
END

PROCESS Header(string title)
private
w, h;
BEGIN
    delete_text (0) ;

    w = graphic_info(0, 0, G_WIDTH) ;
    h = graphic_info(0, 0, G_HEIGHT) ;

    write     (0, w/2,  4, 1, title) ;
    write     (0, w/2-15, 15, 2, "FPS:") ;
    write_int (0, w/2+10, 15, 0, &fps) ;
    write     (0, w/2-15, 25, 2, "Speed %:") ;
    write_int (0, w/2+10, 25, 0, &speed_gauge) ;
    write     (0, w/2, h-20, 1, "Press ESC to continue") ;
END

// ----------------------------------------------------------------------
// Simple sprite drawing
// ----------------------------------------------------------------------

PROCESS FallingObjects()
BEGIN
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1);

    Header ("400 sprites") ;

    FROM x = 0 TO 400; FallingObject(100, 100, 0, 0); END
    WHILE !key(_ESC); FRAME; END;
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC); FRAME; END;
    Header ("100 rotating sprites") ;
    FROM x = 0 TO 100; FallingObject(101, 100, 0, rand(500,1000)); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 sprites with transparency") ;
    FROM x = 0 TO 100; FallingObject(100, 100, 4, 0); END
    WHILE !key(_ESC): FRAME; END
    signal (TYPE FallingObject, S_KILL) ;
    WHILE  key(_ESC): FRAME; END;
    Header ("100 scaled up sprites") ;
    FROM x = 0 TO 100; FallingObject(100, 120, 0, 0); END
    WHILE !key(_ESC): FRAME; END
END

PROCESS FallingObject(graph, size, flags, angleinc)
PRIVATE xspeed, yspeed, inispeed ;
BEGIN
    z      = rand (-5, 125) ;
    x      = rand (15, 305) ;
    y      = - rand (20, 100) ;
    xspeed = rand (-10, 10) ;
    yspeed = rand (-4, 0) ;
    inispeed = rand (10, 15) ;
    angle  = rand (0, 50 * angleinc) ;
    LOOP
        alpha = timer[0];

        x += xspeed ;
        IF (x > 305 || x < 15) xspeed = -xspeed; END
        y += yspeed++ ;
        IF (yspeed < -14) yspeed = -14; END
        IF (y > 180)
            yspeed = -inispeed ;
            IF (inispeed > 1)
                inispeed--;
            ELSE
                inispeed = 15;
            END
        END

        IF (out_region(ID, 0)) y = -rand(20, 100) ; inispeed = 15 ; END

        angle += angleinc ;
        FRAME ;
    END
END

// ----------------------------------------------------------------------
// Blendop tests
// ----------------------------------------------------------------------

PROCESS BlendedObject (x, y, string text, string text2, int flags, blendop)
BEGIN
    write (0, x, y+32, 4, text) ;
    write (0, x, y+40, 4, text2) ;
    angle = 1000 ;
    size = 150 ;
    graph = 101 ;
    LOOP
        angle += 2000 ;
        FRAME ;
    END
END

PROCESS BlendedObjects()
BEGIN
//    graph_mode = mode_16bits ;
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1) ;
    Header ("Blit flags") ;
    BlendedObject (60, 65, "Normal", "", 0, 0) ;
    BlendedObject (160, 65, "H-Mirror", "", 1, 0) ;
    BlendedObject (260, 65, "V-Mirror", "", 2, 0) ;
    BlendedObject (60, 135, "Normal", "Transparency", 4, 0) ;
    BlendedObject (160, 135, "H-Mirror", "Transparency", 5, 0) ;
    BlendedObject (260, 135, "No key", "", 128, 0) ;
    WHILE  !key(_ESC); FRAME; END;
    scan_code = 0 ;
    signal (TYPE BlendedObject, S_KILL) ;
    Header ("Blending operations") ;
    blendop = blendop_new() ;
    blendop_translucency (blendop, 0.70) ;
    BlendedObject (60, 65, "Transparency", "(70%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    BlendedObject (160, 65, "Grayscale", "(Luminance)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 2.00) ;
    BlendedObject (260, 65, "Lighting", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_tint (blendop, 0.50, 255, 0, 0) ;
    BlendedObject (60, 135, "Red tint", "(50%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_intensity (blendop, 0.75) ;
    BlendedObject (160, 135, "Darkening", "(25%)", 0, blendop) ;
    blendop = blendop_new() ;
    blendop_grayscale (blendop, 1) ;
    blendop_intensity (blendop, 3.0) ;
    blendop_swap (blendop);
    BlendedObject (260, 135, "Inverted", "(Grayscale)", 0, blendop) ;
    WHILE  key(_ESC); FRAME; END;
    WHILE  !key(_ESC); FRAME; END;
    fade_off() ; while (fading); frame; end;
    set_mode (320, 200, SCR_DEPTH);
END

// ----------------------------------------------------------------------
// Primitive drawing
// ----------------------------------------------------------------------

PROCESS PrimitiveTests()
PRIVATE
    map, color, i ;
    word POINTER ptr ;
BEGIN
//    load_fpg ("test.fpg") ;
    set_mode (320, 200, SCR_DEPTH);
    put_screen (0, 1) ;
    Header ("Primitive drawing") ;
    graph = new_map (400, 400, 8) ;
    set_center (0, graph, 200, 200) ;
    drawing_map (0, graph) ;
    x = 160 ; y = 100 ; flags = 4 ;
    REPEAT
        drawing_color (rgb (rand(0,255), rand(0,255), rand(0,255))) ;
        draw_fcircle  (rand(0,399), rand(0,399), rand(0,25)) ;
        draw_rect     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_line     (rand(0,399), rand(0,399), rand(0,399), rand(0,399)) ;
        draw_circle   (rand(0,399), rand(0,399), rand(0,100)) ;
        FRAME ;
        angle += 1000 ;
    UNTIL scan_code;
    unload_map (0, graph) ;
END

// ----------------------------------------------------------------------
// Scrolling
// ----------------------------------------------------------------------

PROCESS ScrollTest()
BEGIN

    set_mode(640,480,SCR_DEPTH);

    define_region (1,   0,   0, 320, 240) ;
    define_region (2,   0, 240, 320, 240) ;
    define_region (3, 320,   0, 320, 240) ;
    define_region (4, 320, 240, 320, 240) ;

    define_region (5,  80,  80, 160,  80) ;

    start_scroll(0, 0, 200, 1, 1, 15);
    start_scroll(1, 0, 200, 1, 2, 15);
    start_scroll(2, 0, 200, 1, 3, 15);
    start_scroll(3, 0, 200, 1, 4, 15);

    scroll[0].camera = ScrollSphere (160, 100, 100) ;
    scroll[1].camera = ScrollTriangle (scroll[0].camera, 0) ;
    scroll[2].camera = ScrollTriangle (scroll[0].camera, 120000) ;
    scroll[3].camera = ScrollTriangle (scroll[0].camera, 240000) ;

/*
    scroll[0].ratio  = 400 ;
    scroll[1].ratio  = 800 ;
    scroll[2].ratio  = 50 ;
    scroll[3].ratio  = 2000 ;
*/

    scroll[0].region1 = 5 ;
    scroll[0].region2 = 1 ;

    scroll[0].ratio  = 100 ;
    scroll[1].ratio  = 100 ;
    scroll[2].ratio  = 100 ;
    scroll[3].ratio  = 100 ;

    scroll[0].speed  = 3 ;
    scroll[1].speed  = 3 ;
    scroll[2].speed  = 3 ;
    scroll[3].speed  = 3 ;

    scroll[0].flags1 = B_TRANSLUCENT ;
    scroll[1].flags1 = B_TRANSLUCENT ;
    scroll[2].flags1 = B_TRANSLUCENT ;
    scroll[3].flags1 = B_TRANSLUCENT ;

    scroll[0].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[1].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[2].flags2 = B_NOCOLORKEY | B_HMIRROR;
    scroll[3].flags2 = B_NOCOLORKEY | B_HMIRROR;

    Header ("Scroll test") ;

    REPEAT: FRAME; UNTIL key(_esc);

    fade_off() ; while (fading); frame; end;

    stop_scroll(0) ;
    stop_scroll(1) ;
    stop_scroll(2) ;
    stop_scroll(3) ;

    set_mode(320,200,SCR_DEPTH);
END

PROCESS ScrollSphere (x, y, graph)
BEGIN
    priority = 101 ;
    ctype = c_scroll;
    LOOP
        IF (key(_right)) x += 4 ; END
        IF (key(_left))  x -= 4 ; END
        IF (key(_down))  y += 4 ; END
        IF (key(_up))    y -= 4 ; END
        IF (key(_space)) x = y = 0 ; END
        FRAME;
    END
END

PROCESS ScrollTriangle (follow, angle)
BEGIN
    priority = 100 ;
    graph = 102 ;
    ctype = c_scroll ;
    LOOP
        x = follow.x + get_distx (angle, 40) ;
        y = follow.y + get_disty (angle, 40) ;
        angle += 185000 ;
        FRAME ;
        angle -= 180000 ;
    END
END

// ----------------------------------------------------------------------
// Mode 7
// ----------------------------------------------------------------------

PROCESS Mode7Test()
PRIVATE
    a, b ;
BEGIN
    set_mode(320,200,8);
    put_screen (0, 1) ;
    Header ("Mode 7 - Press cursor keys, Q, W, A, Z") ;
    start_mode7 (0, 0, 1, 0, 0, 64) ;
    start_mode7 (1, 0, 0, 200, 0, 64) ;

    m7[0].distance = 0 ;
    m7[0].camera = id ;
    m7[0].height = 90 ;

    m7[1].distance = 0 ;
    m7[1].camera = id ;
    m7[1].height = 80 ;
    m7[1].flags  = 4 ;

    resolution = 100 ;

    FROM a = 0 TO 64 Step 16;
        FROM b = 0 TO 64 Step 16;
            Mode7Object (a, b, 100) ;
        END
    END

    FRAME;

    LOOP
        m7[0].z = m7[0].height ;
        m7[1].z = m7[1].height ;
        IF (m7.height < 0)
            m7[0].z = -m7[0].height ;
            m7[1].z = -m7[1].height ;
        END
        IF (key(_up))   advance(200) ; END
        IF (key(_down)) advance(-200) ; END
        IF (key(_left)) angle += 2000 ; END
        IF (key(_right)) angle -= 2000 ;END
        IF (key(_a)) m7.height+=2 ; m7[1].height+=2 ; END
        IF (key(_z)) m7.height-=2 ; m7[1].height-=2 ; END
        IF (key(_q)) xadvance(angle+90000, 200) ; END
        IF (key(_w)) xadvance(angle-90000, 200) ; END
        scan_code = 0 ;
        FRAME ;
        IF key(_esc): BREAK; END
    END
    fade_off() ; while (fading); frame; end;

    stop_mode7(1) ;
    stop_mode7(0) ;

    set_mode(320,200,SCR_DEPTH);
END

PROCESS Mode7Object (x, y, graph)
PRIVATE
    speed = -1 ;
BEGIN
    ctype = c_m7 ;
    cnumber = 1 ;
    height = rand (0, 16) ;
    resolution = 4 ;
    x *= 4 ; y *= 4 ;
    LOOP
        IF height > 0 && speed > -8: speed-- ; END
        height += speed ;
        IF (height < 0)
            height = 0 ;
            speed = rand(5, 15) ;
        END
        FRAME;
    END
END

// ----------------------------------------------------------------------
// Path-finding
// ----------------------------------------------------------------------

CONST
    width1   = 64 ;
    height1  = 32 ;

GLOBAL
    int     graphic ;
    int     title ;
    int     wall_color ;
    int     start_color ;
    int     end_color ;
    int     color_ruta ;
    int     last_x, last_y ;
    int     start_x, start_y ;
    int     end_x, end_y ;

PROCESS ClearRoute ()
PRIVATE
    byte POINTER ptr ;
    int pitch ;
BEGIN
    ptr = map_buffer (0, graphic) ;
    pitch = graphic_info(0, graphic, G_PITCH) ;
    FROM y = 0 TO HEIGHT1;
        ptr = map_buffer(0,graphic) ;
        ptr += pitch * y ;
        FROM x = 0 TO WIDTH1;
            IF [ptr] == color_ruta: [ptr] = 0; END
            ptr++ ;
        END
    END
END

PROCESS Reset()
BEGIN
   
    drawing_color (0) ;
    draw_box (0, 0, WIDTH1, HEIGHT1) ;
    drawing_color (wall_color) ;
    draw_rect (0, 0, WIDTH1, HEIGHT1) ;
    start_x = WIDTH1/4 ;
    end_x = WIDTH1*3/4 ;
    start_y = HEIGHT1/2 ;
    end_y = HEIGHT1/2 ;
    map_put_pixel (0, graphic, start_x, start_y, start_color) ;
    map_put_pixel (0, graphic, end_x, end_y, end_color) ;
END

PROCESS PathFinding()
BEGIN
    mouse.graph = 200 ;
    graphic = new_map (WIDTH1, HEIGHT1, 8) ;
    wall_color = rgb (196, 196, 196) ;
    start_color = rgb (255, 0, 0) ;
    end_color = rgb (0, 0, 255) ;
    color_ruta = rgb (128, 64, 128) ;
    drawing_map (0, graphic) ;
    Reset() ;
    title = write (0, 160, 4, 1, "Path finding") ;
    write (0, 160, 180, 1, "Draw walls with the mouse") ;
    write (0, 160, 190, 1, "(S) start (E) end (R) reset (SPACE) go") ;
    last_x = mouse.x / 4 ;
    last_y = mouse.y / 4 ;
    WHILE !key(_esc):
        clear_screen() ;
        xput (0, graphic, 160, 100, 0, 400, 0, 0) ;
        x = mouse.x / 4 - (40-WIDTH1/2);
        y = mouse.y / 4 - (25-HEIGHT1/2);

        IF mouse.left:
            drawing_color (wall_color) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, wall_color) ;
        END
        IF mouse.right:
            drawing_color (0) ;
            draw_line (x, y, last_x, last_y) ;
            map_put_pixel (0, graphic, x, y, 0) ;
        END
        IF key(_s):
            ClearRoute() ;
            map_put_pixel (0, graphic, start_x, start_y, 0) ;
            start_x = x ; start_y = y ;
            map_put_pixel (0, graphic, x, y, start_color) ;
        END
        IF key(_r):
            Reset() ;
        END
        IF key(_e):
            ClearRoute() ;
            map_put_pixel (0, graphic, end_x, end_y, 0) ;
            end_x = x ; end_y = y ;
            map_put_pixel (0, graphic, x, y, end_color) ;
        END
        IF key(_space):
            FRAME ;
            ClearRoute() ;
            IF !path_find(0, graphic, start_x, start_y, end_x, end_y, PF_NODIAG):
                delete_text(title) ;
                title = write (0, 160, 6, 1, "The path is blocked") ;
            ELSE:
                FRAME ;
                clear_screen() ;
                delete_text(title) ;
                title = write (0, 160, 6, 1, "Path found in " + (speed_gauge*60/100) + " ms") ;
                set_fps (0, 0) ;
                WHILE path_getxy(&x, &y):
                    map_put_pixel (0, graphic, x, y, color_ruta) ;
                    xput (0, graphic, 160, 100, 0, 400, 128, 0) ;
                    FRAME ;
                END
                set_fps (0, 0) ;
                map_put_pixel (0, graphic, start_x, start_y, start_color) ;
                map_put_pixel (0, graphic, end_x, end_y, end_color) ;
            END
            WHILE key(_space): FRAME; END
        END
        IF key(_esc): BREAK; END
        last_x = x ;
        last_y = y ;
        FRAME ;
    END
    unload_map (0, graphic) ;
    fade_off() ; while (fading); frame; end;
END

// ------------------------------------------------------------------------
// Sound test
// ------------------------------------------------------------------------

PROCESS SoundTest()
PRIVATE
    int pat, pos, vol, time, md ;
BEGIN
    header ("Sound test") ;
    md = load_song("../../media/game.s3m") ;
    play_song (md,-1) ;
    vol = 128 ;
    WHILE is_playing_song() AND scan_code != _esc:
        FRAME ;
    END
    WHILE is_playing_song() AND vol > 0:
        FRAME ;
        set_song_volume ( vol -= 2) ;
    END
    stop_song() ;
    unload_song(md) ;
END

// ----------------------------------------------------------------------

PRIVATE proc ;
BEGIN
    FULL_SCREEN = FALSE ;
    LOOP
        proc = Menu() ;
        WHILE exists(proc): FRAME; END
        fade_off() ; while (fading); frame; end;
        put_screen(0, 1) ;
        delete_text(0) ;
        fade_on() ; while (fading); frame; end;
        IF option == 0: BREAK; END
        SWITCH (option)
            CASE 1: proc = FallingObjects(); END
            CASE 2: proc = BlendedObjects(); END
            CASE 3: proc = PrimitiveTests(); END
            CASE 4: proc = ScrollTest(); END
            CASE 5: proc = Mode7Test(); END
            CASE 6: proc = PathFinding(); END
            CASE 7: proc = SoundTest(); END
        END
        WHILE exists(proc): FRAME; END
        fade_off() ; while (fading); frame; end;
        let_me_alone() ;
        clear_screen() ;
        delete_text(0) ;
        fade_on() ;
    END
END
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 02, 2012, 04:30:43 AM
yo tambien lo note...

acabo de probar, no se porque han dejado de funcionar los recursos comprimidos... y no es de esta ultima version, parece que sucede en la anterior tambien... que a decir verdad, creo que la anterior que libere en windows no era la correcta, el instalador/empaquetador no estaba copiando los ejecutables...

tengo que revisar que cambios meti en la ultima version...

si descomprimes el fpg, funciona.
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 08, 2012, 10:26:08 PM
joseba, creo que estoy empezando a tener los problemas que tenes vos (o tenias) con los recursos comprimidos, pero me esta pasando en linux (y creo que en windows tambien) con la ultima version (de supongo la zlib)...

podrias probar tocando en el fuente files.c donde esta la funcion file_read el bloque de zlib y cambiarlo por esto?

#ifndef NO_ZLIB
    if ( fp->type == F_GZFILE )
    {
        int result = gzread( fp->gz, buffer, len ) ;
        fp->error = ( result < len );
        int gerr=0;
        char * err = gzerror( fp->gz, &gerr);
printf( "%s:%d (%s) %d %d %d %d %s\n", __FILE__, __LINE__, __FUNCTION__, result, len, fp->error, gerr, err ); fflush( stdout );
        if ( result < 0 ) result = 0;
        return result ;
    }
#endif

y decirme, que te retorna en los casos que falla, a mi me da "XXXX: incorrect data check"

te adjunto uno de los fpg que me da error (algunos otros fpg van bien)

desde ya, gracias.
Title: Re:Avances, Diario de...
Post by: josebita on September 09, 2012, 09:12:27 AM
Quote from: SplinterGU on September 08, 2012, 10:26:08 PM
joseba, creo que estoy empezando a tener los problemas que tenes vos (o tenias) con los recursos comprimidos, pero me esta pasando en linux (y creo que en windows tambien) con la ultima version (de supongo la zlib)...

podrias probar tocando en el fuente files.c donde esta la funcion file_read el bloque de zlib y cambiarlo por esto?

#ifndef NO_ZLIB
    if ( fp->type == F_GZFILE )
    {
        int result = gzread( fp->gz, buffer, len ) ;
        fp->error = ( result < len );
        int gerr=0;
        char * err = gzerror( fp->gz, &gerr);
printf( "%s:%d (%s) %d %d %d %d %s\n", __FILE__, __LINE__, __FUNCTION__, result, len, fp->error, gerr, err ); fflush( stdout );
        if ( result < 0 ) result = 0;
        return result ;
    }
#endif

y decirme, que te retorna en los casos que falla, a mi me da "XXXX: incorrect data check"

te adjunto uno de los fpg que me da error (algunos otros fpg van bien)

desde ya, gracias.
Imagino que el error te lo da tras un load_fpg, sin más, ¿no?.

He tenido dos problemas distintos:
* En la Wii directamente no funcionaba cargar recursos comprimidos en gzip
* En Android el problema es que los recursos se leen de un fichero comprimidos en zip (el apk) con una capa de abstracción y el código de lectura de ficheros asume que lo que te da la primera capa de abstracción -la que lee del APK- es un FILE * al recurso cuando en realidad en un FILE * al gzip y claro, las rutinas de lectura de recursos no lo entienden.

Imagino que el problema se parece más al primero, ¿no?
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 11, 2012, 10:27:39 AM
el primero claro, pero como si algo hubiese cambiado en la gzip o un bug anterior o un bug actual, el archivo si lo quiero abrir con gzip del sistema da error, ahora si lo abro con doublecmd (un clon de totalcmd para linux, lo abre y el fpg esta en perfecto estado, obtengo el descomprimido sin problemas)
Title: Re:Avances, Diario de...
Post by: josebita on September 11, 2012, 10:15:25 PM
Quote from: SplinterGU on September 11, 2012, 10:27:39 AM
el primero claro, pero como si algo hubiese cambiado en la gzip o un bug anterior o un bug actual, el archivo si lo quiero abrir con gzip del sistema da error, ahora si lo abro con doublecmd (un clon de totalcmd para linux, lo abre y el fpg esta en perfecto estado, obtengo el descomprimido sin problemas)
Voy a intentar probarlo, pero necesitaré tiempo: estoy saturado de cosas que hacer. Si ves que se me pasa, dame un toque porque quizás sea que se me haya olvidado.
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 11, 2012, 11:07:16 PM
no importa, mientras, a comerla, a recomprimir los fpg o descomprimirlos... sino hay que empaquetar con otra libz y hacer un wrapper para usarla...

un tema.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 01, 2012, 12:19:33 AM
se agregan nuevas funciones para manejo de rgb y paleta (paleta solo find_color)... en realidad son las mismas de siempre, pero ahora se les puede decir sobre que mapa o paleta trabajar... estas funciones son (se agregan a las ya existentes):

rgb(file,map,r,g,b)
rgba(file,map,r,g,b,a)
get_rgb(file,map,color,&r,&g,&b)
get_rgba(file,map,color,&r,&g,&b,&a)
rgb_get(file,map,color,&r,&g,&b)
rgba_get(file,map,color,&r,&g,&b,&a)
find_color(file,map,r,g,b)
color_find(file,map,r,g,b)
find_color(pal,r,g,b)
color_find(pal,r,g,b)

ahora las funciones *rgb* tambien trabajan con 8 bits, asi que no es necesaria la funcion find_color o color_find (aunque es un poquito mas rapida)

tambien se mantiene por compatibilidad, que si el mapa es de 16bits y el color encontrado es 0, retorna 1

internamente, he tocado, cambiado de nombre varias funciones y tambien he eliminado algunas otras... todo en pro al mantenimiento del codigo.

aquellos que tiran de los fuentes, cualquier sugerencia o comportamiento extraño con feedback sera bien recibido...

saludos.
Title: Re:Avances, Diario de...
Post by: KeoH on October 01, 2012, 11:27:23 PM
Splinter .. no entiendo el funcionamiento de algunas de esas funciones. Supongo que las color_find lo q hacen es devolver true/false si encuentran en un mapa un color dado .. pero las de get_rgb?? o las de rgb al que le pasas un mapa? para q? si se supone q rgb (y rgba) te devolvian un codigo de color. No se como se usarian, explicanos un pequeño ejemplo (sin codigo ni nada), solo para entender el funcionamiento / utilidad. Gracias.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 02, 2012, 01:26:14 AM
no, color_find es como el rgb, pero para 8bits y busca el color mas aproximado dentro de la paleta.

rgb dados los componentes rgb devuelve el color asociado

get_rgb, dado el color, devuelve los componentes.

por que un mapa? porque dependendiendo del mapa es el rgb dado, no es lo mismo, un rgb de un mapa de 32 que de uno de 16, o que uno de 8 (que es el color mas proximo al color que se pide)

siempre fue un problema trabajar con los rgb si se mezclan mapas o si los mapas no tienen la misma profundidad que el escritorio y ni que decir si trabajamos con paletas diferentes a la del sistema.

seguramente no se entendio nada, pero ahi fue la explicacion.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 05, 2012, 03:19:18 AM
nueva release con todos estos ultimos cambios... y tambien se corrigieron todos los paquetes de todas las plataformas que se venian generando mal...

desinstalar todas las versiones anteriores... (manualmente si es necesario) y reinstalar de cero esta nueva.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 07, 2012, 06:41:36 AM
DEBUG

- new debug log format
- new debug levels
- debug console now allow several SHOW
- new debug console commands
- add new instructions for define/activate debug level:
  TRACE(debug_level)
     0 - disable
     1 - only show source lines
     2 - source lines + opcodes
     3 - source lines + opcodes + stack dump
- disable stdout buffering

Title: Re:Avances, Diario de...
Post by: Transdiv on October 07, 2012, 09:14:49 AM
Splint, la ultima version para Windows es esta http://www.bennugd.org/downloads/bgd-1.0.0-r298-win32.exe o toca compilarla desde el repositorio?

Salu2
TD
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 07, 2012, 12:25:22 PM
es la ultima sin los cambios de hoy...
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 08, 2012, 05:14:22 AM
Oh, me olvide...

- reduccion del stack de procesos de 16k a 4kb...

incluso creo que es muy grande...
Title: Re:Avances, Diario de...
Post by: KeoH on October 08, 2012, 12:05:35 PM
Quote from: SplinterGU on October 08, 2012, 05:14:22 AM
Oh, me olvide...

- reduccion del stack de procesos de 16k a 4kb...

incluso creo que es muy grande...

Y eso q es ? xDDD
Title: Re:Avances, Diario de...
Post by: FreeYourMind on October 08, 2012, 12:06:23 PM
menor numero de procesos posibles me imagino
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 08, 2012, 04:25:19 PM
no, no son numeros de proceso, sino stack... es un area de datos donde se guardan los parametros de entrada y salida a las funciones, en el caso de bennugd, cada proceso tiene un stack.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 12, 2012, 04:24:46 AM
en un rato subo fix de un bug que introduje en la ultima version... que producia un memory leak con funciones que hacian uso de rgb/rgba
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 13, 2012, 01:49:45 AM
actualizo nuevamente la version windows, faltaba la libpng15-15.dll, no hace falta bajar de nuevo el paquete solo agregar la libreria, pero si quieren bajar el paquete nuevamente y ya esta.
Title: Re:Avances, Diario de...
Post by: blostec on October 20, 2012, 06:02:34 PM
Descargada la última versión rc300, muchas gracias Juan por seguir mejorando este magnífico lenguaje. Karma up!
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 20, 2012, 06:23:00 PM
de nada!
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 21, 2012, 06:32:48 AM
- a instance only can receive a signal is not DEAD or KILLED (fix)
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 03:29:10 AM

- add env var VIDEO_FULLSCREEN
- add support set_video with width=0 and height=0

por favor, joseba, prueba con estos nuevos fuentes, a ver si se soluciona el problema de la version android.

le puse soporte de 0,0, y unos cuantos chequeos mas en consecuencia.

lo de 0,0, tambien funciona en SDL1.2, tambien esta depth, para meter, pero tengo que pensar un poquito como meterlo bien, ya que no soportamos 24bits y eso puede ser un problema... la otra opcion es pensar en darle soporte 24bits... (que le tengo ganas desde hace tiempo).
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 09:31:14 PM
Estoy añadiendo tus cambios a mi rama, a ver si mejora el asunto.
Una cosa: ya que estás tocando cosas de la paleta, ¿podrías incluir los parches de DCelso para BGR?. Son necesarios para que el modo de 32 bits funciones en iOS y en Mac, además de en la PSP.

Mil gracias.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 09:53:02 PM
tengo que revisarlos, creo que no los inclui porque se podia hacer de otra forma.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 10:19:11 PM
corregido el paquete para wiz de la r300, faltaba la iconv.
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 10:52:47 PM
Quote from: SplinterGU on October 30, 2012, 09:53:02 PM
tengo que revisarlos, creo que no los inclui porque se podia hacer de otra forma.
Ok, si lo haces avisa porque me resulta útil.
La próxima versión del código que suba irá compilada contra la versión monolítica oficial.
Una vez eso funcione pasaré a utilizar la versión modular en Android, si no aparecen problemas.
Title: Re:Avances, Diario de...
Post by: panreyes on October 30, 2012, 10:54:22 PM
Me gustaría saber de qué estáis hablando xD
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 11:00:34 PM
Quote from: PiXeL on October 30, 2012, 10:54:22 PM
Me gustaría saber de qué estáis hablando xD
Los parches BGR es porque en iOS, Mac y PSP los colores se representan al revés que en las plataformas "normales". Es decir, en PC el color FF0000 es rojo puro mientras que en iOS es azul puro.

Splinter, te voy anotando algunas cosas que voy viendo (iré actualizando la lista según vaya sacando cosas):
Title: Re:Avances, Diario de...
Post by: panreyes on October 30, 2012, 11:03:51 PM
Quote from: josebita on October 30, 2012, 11:00:34 PM
Quote from: PiXeL on October 30, 2012, 10:54:22 PM
Me gustaría saber de qué estáis hablando xD
Los parches BGR es porque en iOS, Mac y PSP los colores se representan al revés que en las plataformas "normales". Es decir, en PC el color FF0000 es rojo puro mientras que en iOS es azul puro.


Eso ya lo sabía. Lo que no sé de qué habláis es lo de set_video y demás. Además decís que eso ayudará al port de Android, ¿por? ¿No es lo mismo que scale_mode?
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 11:05:35 PM
Quote from: PiXeL on October 30, 2012, 11:03:51 PM
Quote from: josebita on October 30, 2012, 11:00:34 PM
Quote from: PiXeL on October 30, 2012, 10:54:22 PM
Me gustaría saber de qué estáis hablando xD
Los parches BGR es porque en iOS, Mac y PSP los colores se representan al revés que en las plataformas "normales". Es decir, en PC el color FF0000 es rojo puro mientras que en iOS es azul puro.


Eso ya lo sabía. Lo que no sé de qué habláis es lo de set_video y demás. Además decís que eso ayudará al port de Android, ¿por? ¿No es lo mismo que scale_mode?
Puede ser que el problema de que sólo aparezca una banda negra (en lugar de dos) y de que la posición del mouse esté mal porque no estoy poniendo bien ciertas variables internas al hacer set_mode con 0x0...
Title: Re:Avances, Diario de...
Post by: panreyes on October 30, 2012, 11:12:01 PM
Pues definitivamente no tengo ni idea de qué estáis hablando xD


Eso no me ha ocurrido aún, por suerte. Supongo que será porque siempre lo escalo todo.
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 11:15:55 PM
Quote from: PiXeL on October 30, 2012, 11:12:01 PM
Pues definitivamente no tengo ni idea de qué estáis hablando xD


Eso no me ha ocurrido aún, por suerte. Supongo que será porque siempre lo escalo todo.
Le pasa a Javis con el Monkey vs Robots. Ocurre cuando se usa SRA_PRESERVE.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 11:28:42 PM
Quote from: josebita on October 30, 2012, 11:00:34 PM
Quote from: PiXeL on October 30, 2012, 10:54:22 PM
Me gustaría saber de qué estáis hablando xD
Los parches BGR es porque en iOS, Mac y PSP los colores se representan al revés que en las plataformas "normales". Es decir, en PC el color FF0000 es rojo puro mientras que en iOS es azul puro.

Splinter, te voy anotando algunas cosas que voy viendo (iré actualizando la lista según vaya sacando cosas):

       
  • librender/g_instance.h: No incluye la cabecera bgddl.h ni g_bitmap.h necesaria dado que las declaraciones de las funciones usan INSTANCE.

gracias, lo vere.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 11:30:00 PM
por lo que vi, javis usa, scale_resolution y el set_mode ambos a 0, y creo que eso ademas de lo otro anda mal.

por eso en el codigo de ahora puse unos cuantos cambios mas.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 30, 2012, 11:46:28 PM
listo, joseba, ya los agregue...

ahora realmente no puedo meterme con el tema de los RGB-BGR
Title: Re:Avances, Diario de...
Post by: josebita on October 30, 2012, 11:50:25 PM
Quote from: SplinterGU on October 30, 2012, 11:46:28 PM
listo, joseba, ya los agregue...

ahora realmente no puedo meterme con el tema de los RGB-BGR
Ok, gracias.

He añadido alguna cosa más a la lista, pero casi te aviso cuando la lista esté completa.
Title: Re:Avances, Diario de...
Post by: JaViS on October 31, 2012, 12:32:55 AM
Splinter, si te sirve para debuguear, te paso el codigo del Monkey vs Robots.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 02:47:25 AM
Quote from: JaViS on October 31, 2012, 12:32:55 AM
Splinter, si te sirve para debuguear, te paso el codigo del Monkey vs Robots.

en principio no hace falta... te lo agradezco, pero mantenlo bajo llave.

igual el problema esta en el port de android (y supongo que en iOS tambien) ya que en PC funciona de maravillas.

gracias.
Title: Re:Avances, Diario de...
Post by: gecko on October 31, 2012, 02:55:57 AM
vale venir a recordarte por aca la version sin instalador para linux? o quedaria mal que lo haga? :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 03:32:27 AM
cual es el problema con el instalador actual? no recuerdo.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 03:35:05 AM
tail -n +165 bgd-1.0.0-r300-installer.sh > bgd-1.0.0-r300-installer.tar.gz

pero me encantaria saber cual es el problema con el instalador actual? no pisa archivos del sistema, y tiene todo organizadito en una carpeta propia...
Title: Re:Avances, Diario de...
Post by: gecko on October 31, 2012, 03:37:49 AM
con eso consigo sacarle el instalador?! :O :O

eeee no, problema creo que ninguno. solamente que para hacer versiones "portables" de los juegos como con windows sería mas facil tener un paquete ya listo, sin instalador.
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 03:50:12 AM
bueno, tambien lo puedes copiar de la carpeta de instalacion...

pero vale, ahora recuerdo, si, con eso le quitas el instalador.

el instalador no es mas que un tar.gz con un script delante.
Title: Re:Avances, Diario de...
Post by: gecko on October 31, 2012, 05:57:53 PM
Quote from: SplinterGU on October 07, 2012, 06:41:36 AM
DEBUG

- new debug log format
- new debug levels
- debug console now allow several SHOW
- new debug console commands
- add new instructions for define/activate debug level:
  TRACE(debug_level)
     0 - disable
     1 - only show source lines
     2 - source lines + opcodes
     3 - source lines + opcodes + stack dump
- disable stdout buffering



Perdon por el volver a un tema viejo. pero te acordás cuales son esos comandos nuevos?

Otra cosa... puedo hacer que la consola de debug (dentro de bennu) imprima info en un txt o en la consola del sistema?

Es que la lista de procesos no me entra completa en 320x240.

Gracias!
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 08:54:50 PM
usa los cursores para scrolear la consola.

tienes f1 para el help dentro de la consola y ver los nuevos comandos.

no, no se puede sacar la salida a la consola o a un archivo .txt... no por el momento.
Title: Re:Avances, Diario de...
Post by: gecko on October 31, 2012, 09:28:08 PM
Quote from: SplinterGU on October 31, 2012, 08:54:50 PM
usa los cursores para scrolear la consola.
tienes f1 para el help dentro de la consola y ver los nuevos comandos.

buenisimo, muuuchas graciasss!
CTRL + cursores para mover, no lo sabia! :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 31, 2012, 10:52:57 PM
de nada...

tienes F1 para el help, y luego a medida que vas presionando las teclas SHIFT, CONTROL o ALT la barra de abajo va cambiando para mostrarte la combinaciones de teclas posibles (teclas de funcion) que puedes usar.
Title: Re:Avances, Diario de...
Post by: JaViS on November 01, 2012, 02:22:22 AM
perdon yo tambien por la pregunta, pero, como se sacaba la consola?

Title: Re:Avances, Diario de...
Post by: SplinterGU on November 01, 2012, 02:29:12 AM
alt+c

necesitas compilar con debug y con el modulo de debug.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 18, 2012, 01:37:50 AM
- se corrije problema con default: al inicio de la linea (sin identar)
- se corrije problema de centrado de pantalla cuando se usa scale_resolution + keep_aspectratio + 16bits (en vertical)
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 18, 2012, 05:51:17 AM
- avoid create maps with w < 1 || h < 1
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 21, 2012, 10:16:56 PM
- default video mode is actual desktop resolution

r307 released!
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 21, 2012, 10:20:11 PM
perdona que te diga pero si he leido bien menuda cagada, o sea si no seteas el video te va salir una ventana que ocupa toda tu area del desktop...
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 21, 2012, 10:33:00 PM
si, y que problema tienes con eso? siempre deberias hacer un set_mode, no es bueno asumir una resolucion default.

necesito si o si hacerlo asi, para que el modo de video 0,0 funcione luego... sino, no funciona.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 21, 2012, 10:42:24 PM
si por defecto sigue teniendo fullscreen_mode = false en realidad no afecta nada, afectaria si el fullscreen pasa a estar a true por defecto...
y para que quieres el set_mode 0,0 ?
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 21, 2012, 10:49:28 PM
si, por defecto full_screen esta a false...

se necesita para poder usar resolucion nativa de tu escritorio, o en dispositivos tu resolucion actual... para pasarlo a fullscreen con toda la resolucion, solo deberias hacer set_mode(0,0) con full_screen activado, y listo.
Title: Re:Avances, Diario de...
Post by: KeoH on November 22, 2012, 09:09:38 AM
Entonces esto dejaria casi inutiles las funciones del mod_wm que sacaban el tamaño del escritorio nop? xD
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 22, 2012, 12:40:23 PM
en absoluto, esas siguen funcionando lo mas bien.
Title: Re:Avances, Diario de...
Post by: KeoH on November 22, 2012, 01:07:45 PM
Si .. funcionar funciona ... pero no aportan nada xD no se si me explico.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 22, 2012, 01:34:05 PM
como que no?

no en todas las plataformas puedes hacer uno de las funciones de ventana/escritorio, porque en algunos no tienes ni escritorio o simplemente no esta implementado, con esto lo haces a nivel SDL... pero eso no quita que quieras usar estas funciones sin ir a modo completo o definir la resolucion desde un script usando las variables de enviroment directamente y evitar que se ponga en 0,0.

que no le veamos utilidad no significa que no la tenga.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 22, 2012, 08:17:39 PM
- se corrige crash usando png de 8 bits, grayscale...

es una correccion temporal, porque hay un codigo que creo puso DCelso, que no se porque lo puso, ya que sin ese codigo funciona todo igual (lo que funcionaba, y tambien funciona lo que crasheaba por ese codigo entre otros cambios, que era asumir que todos los grayscale eran de 1bpp)... pero imagino que por algo lo puso... le mande un mail a ver que me responde.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 24, 2012, 09:12:28 AM
Hola.

Veo que usando scale_resolution_orientation (por ejemplo con valor 1 para girar la pantalla hacia la izquierda) y si uso desúes un filtro scale_mode = SCALE_HQ2X la pantalla vuelve a su orientación original y si deshabilito el filtro usando scale_mode = SCALE_NONE la variable scale_resolution_orientation  que tenia a 1 vuelve afectar la pantalla. Esto es un bug o si usas el filtro la orientación de pantalla no funciona ?

Gracias.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 24, 2012, 03:12:48 PM
me parece que esto ya lo preguntaste, si no lo hiciste tu, igual ya se explico muchas veces que los filtros no funcionan con el scale_resolution.

no es un bug, es una limitacion.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 24, 2012, 04:02:01 PM
Si, tienes rázon ahora me acuerdo xD La diferencia es que la otra vez no estaba rotando la pantalla y se me olvido por eso xD
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 24, 2012, 04:06:39 PM
jeje... ya me parecia raro...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 24, 2012, 04:09:15 PM
Por cierto y si no usaramos scale_resolution y tuvieramos una variable llamada por ejemplo screen_orientation en lugar de scale_resolution_orientation (que funciona con el scale), no podriamos rotar la imagen y poder tambien aplicarle filtros ?
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 24, 2012, 04:23:37 PM
Quote from: FreeYourMind on November 24, 2012, 04:09:15 PM
Por cierto y si no usaramos scale_resolution y tuvieramos una variable llamada por ejemplo screen_orientation en lugar de scale_resolution_orientation (que funciona con el scale), no podriamos rotar la imagen y poder tambien aplicarle filtros ?

recuerdame cuales son los motivos por lo que los filtros con el escalado no estan implementado... y obtendras tu respuesta.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 24, 2012, 06:40:45 PM
no lo se, me imagino por los calculos que le haces a la imagen
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 24, 2012, 08:07:21 PM
basicamente
Title: Re:Avances, Diario de...
Post by: DCelso on November 24, 2012, 08:24:31 PM
splinter, no veo ningún correo tuyo,¿ a donde me lo mandaste?
Yo no hice ningún código para los png de 1 bit, o al menos no recuerdo, lo que sí que hicimos una vez fue dar soporte para unos  png de 8 bits que traían transparencia y no funcionaban antes del parche,
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 24, 2012, 09:01:27 PM
si, pero si no me equivoco, ahi tambien incluiste para bitmaps en escala de grises que eran de 1 bit... te digo porque me parece que en el codigo decia DCelso...

pero bueno, si tu no has sido, no pasa nada... ya nos enteraremos si algo falla...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 08:44:35 AM
Buenas, por fin he decidido pasarme de la r270 a la r307, de momento estoy probando si todo funciona igual, pero ya me he llevado una pequeña sorpresa.

Creo que por los cambios del set_mode(0, 0); que has hecho, ahora al iniciar el juego y al crear la ventana crea 2 tamaños de ventana en lugar de una, primero saca una pantalla a maxima resolucion permitida y despues la ajusta a la que tienes definida en el juego, lo que es incomodo y no queda bien.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 05:04:33 PM
siempre fue asi free... siempre se crea la ventana inicial y luego se ajusta a la que tu haces, por eso lo primero que debes hacer es tomar tu el control...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 05:36:22 PM
con la anterior version no ocurre, o si ocurre la primera ventana no se queda tanto tiempo y puede que ni siempre la llegues a ver (yo no la veia ya te digo), te lo digo en serio.

y lo curioso es que el printscreen no la consigue pillar (se ve pero la captura ya te pone la ventana ajustada), pero se queda un par de segundos visible...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 05:45:00 PM
bueno, me rectifico, si sale, pero es de 320x240 (creo) con lo cual no asusta al usuario, pero ahora te sale una ventana gigante y eso no mola xD

Hay forma de tomar yo el control como dices ? como se hace ? porque yo hago el scale al principio..
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 06:34:28 PM
Quote from: FreeYourMind on November 25, 2012, 05:45:00 PM
bueno, me rectifico, si sale, pero es de 320x240 (creo) con lo cual no asusta al usuario, pero ahora te sale una ventana gigante y eso no mola xD

Hay forma de tomar yo el control como dices ? como se hace ? porque yo hago el scale al principio..

claro, sale en 320x240, pero siempre salia...

si, claro que puedes... puedes poner la primer orden el set_mode y con eso sera menor el tiempo... aunque si es aplicacion ventana seguro quedara feo.
otra opcion es usar las variables de enviroment VIDEO_HEIGHT, VIDEO_WIDTH y VIDEO_DEPTH y listo...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 06:42:03 PM
puedes poner ejemplo de esto ultimo ?

estoy haciendo un set normal en ventana
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 07:47:32 PM
script, debes hacer un script para lanzar tu juego u otro programa que lance tu programa... podria ser un programa hecho en bennugd sin modulo de video, solo con el modulo system... que setee las variables y lance a tu programa...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 08:49:08 PM
ejemplo por favor
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:00:40 PM
setenv(...)
exec(...)

ejemplo, o quieres que te haga el codigo?
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:01:33 PM
diablos, no tengo agregada setenv!
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:05:46 PM
en serio, yo creo que a veces me preguntas solo por molestar... porque no me puedes decir que no sabes hacer un script, ya hablamos 800 veces de lo mismo, y te he dicho 800 veces que te leas un curso de operador basico de pc (y tu has sugerido 800 veces a otros hacer diversos cursos):

bat


set VIDEO_WIDTH=800
set VIDEO_HEIGHT=600
set VIDEO_DEPTH=32
bgdi mijuego


sh


VIDEO_WIDTH=800
VIDEO_HEIGHT=600
VIDEO_DEPTH=32
bgdi mijuego
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:14:16 PM
no funciona en un bat... tienes razón no se hacer que tu script funcione, eso es cierto...
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:17:03 PM
jajaja, como que no funciona?

que error te da?

PD: Prueba ahora
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:21:15 PM
lol, te puedo decir que se me ocurrio antes de leerte ponerle el set y lo hice funcionar, pero hay algo raro, he puesto:

set VIDEO_WITDH=320
set VIDEO_HEIGHT=240
set VIDEO_DEPTH=16

y el width no me sale a 320, parece que sale 4 o 5 veces mas! en cambio el height si funciona bien...

flipo, jamas pensé que se pudieran setear variables internas de un programa antes de llamarlo...
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:23:32 PM
error de tipeo, perdon, ya lo corregi...

es width
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:24:27 PM
me apuesto a que tienes un error en bennu que el width en lugar de pillar el valor que le pasas, obtiene el width de tu desktop!

edito, ahahhahaha, pues claro, si no lo reconoce es normal que haga la chapuza para el width que iba hacer de igual modo xDD
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:27:25 PM
sobre lo de setear valores en el script pensaba que sólo se podia en linux, ahora entiendo porque le cambiabas tan a gusto el os_id antes de llamar el dcb
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:29:05 PM
funciona perfecto, ya te explique que estaba mal escrito...
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:30:11 PM
Quote from: FreeYourMind on November 25, 2012, 09:27:25 PM
sobre lo de setear valores en el script pensaba que sólo se podia en linux, ahora entiendo porque le cambiabas tan a gusto el os_id antes de llamar el dcb

y eso que lo explique cientos de veces... :D

no todas las variables se pueden cambiar... solo algunas que yo puse...

me alegra que lo hayas entendido al fin... :D
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:42:48 PM
oye, lo podia ver en tu codigo, pero como haces que se puedan setear externamente ? public export o algo al definirlas ?

Se me ha ocurrido que seria genial poder definirlas tambien en el prg, variables que pudieran ser seteadas tambien externamente para nuestro juego.
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:44:54 PM
no, no puedes...

hombre, usa getenv para obtener variables de entorno desde tu prg.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:51:12 PM
que se puediera acceder a las del prg seria brutal (sólo a las que queremos que así sea logicamente, sino todos ponian vidas infinitas)
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 09:54:25 PM
en fin...

http://php.net/manual/es/function.getenv.php
http://www.cplusplus.com/reference/cstdlib/getenv/
http://c.conclase.net/librerias/?ansifun=getenv
http://pubs.opengroup.org/onlinepubs/009696799/functions/getenv.html

PD: disculpa mi falta de paciencia...
PD2: tu creas/defines la variable de entorno que quieras en la linea de comandos o un script y luego desde tu prg la obtienes y la asignas a la variable local/global/privada que quieras... eso si, no puedes setear una variable desde una consola o un script y pretender obtenerlo desde otra consola o script... son variables de entorno, se definen en el entorno que estes... si estas en una consola tu entorno es tu consola, si estas en un script tu entorno es el script, si quieres que sea global, debes tocar otras cosas, como variables de entorno en propiedades de windows. (en unix puede ser en el .profile o tambien hay otros metodos)

por favor, lee algo de operacion basica de pc, no te lo tomes como un insulto o algo malo, uno no nace sabiendo... pero esto de las variables de enviroment es algo demasiado basico...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 09:59:53 PM
no me habré explicado bien.... enfin no te molesto más....


PD: por cierto estaba mirando eso que pones del getenv, porque queria hacer unos experimentos mañana con este tema en el curro, auqnue no es lo mismo que la pregunta que te hacia ...
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 10:17:37 PM
entiendo que lo que preguntaste (o mejor dicho, entendiste que hacia esto) era directamente modificar desde entorno variables del prg... eso no esta permitido...

puedes tomar desde tu prg variables de entorno y asignarlas a las variables que tu quieras o directamente usar los valores sin asignarlos a ningun lado.

PD: y por eso toda la explicacion y links que te puse.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 10:20:22 PM
por cierto tienes un error en el moddesc.exe, le cambiaste los nombres a los modulos no se porque, le pusiste libmod a todos los mod, y ahora el moddesc no te saca las fuciones de los modulos si no los renombras de nuevo
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 10:23:49 PM
es cierto, no esta actualizado... gracias
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 25, 2012, 10:27:02 PM
si puedes que considere cualquier nombre terminado en .dll o .so (y si no es un modulo de bennu que lo ingnoré como ya hacia antes)
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 10:39:06 PM
creo tener en claro lo que debe hacer... gracias... ;)
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 25, 2012, 11:54:52 PM
Quote from: FreeYourMind on November 25, 2012, 10:20:22 PM
por cierto tienes un error en el moddesc.exe, le cambiaste los nombres a los modulos no se porque, le pusiste libmod a todos los mod, y ahora el moddesc no te saca las fuciones de los modulos si no los renombras de nuevo

ARRRGGG!!! Diablos he caido!!!

funciona a la perfeccion, y he perdido 2 horas revisando, tenia mi version linux de moddesc a 64bits (se estaba generando en 64bits) y no funcionaba por eso...

hombre, moddesc funciona perfecto...

no tienes que poner lib delante del nombre del modulo, solamente el nombre del modulo.

por ejemplo,

moddesc mod_say
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on November 26, 2012, 12:22:08 AM
interesante, que otras variables se pueden setear?
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 26, 2012, 12:41:02 AM
ya fueron descriptas en este hilo...

Quote
- Now you can overwrite scale_resolution, scale_resolution_aspectratio and scale_resolution_orientation from enviroment vars
- if OS_ID enviroment var is defined BennuGD use it as global OS_ID
- libvideo, add VIDEO_WIDTH, VIDEO_HEIGHT, VIDEO_DEPTH environment vars to change initial video mode
Title: Re:Avances, Diario de...
Post by: Rein (K´)ah Al-Ghul on November 26, 2012, 12:56:10 AM
gracias
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 26, 2012, 06:19:36 AM
funcionará el tuyo, el de windows no...


@echo off
echo BENNU FUNCTIONS > function-list.txt
echo --------------- >> function-list.txt
for %%i in (lib*.dll) do echo %%i && moddesc %%i >> function-list.txt && echo ------------------------------------------------------- >> function-list.txt
for %%i in (mod*.dll) do echo %%i && moddesc %%i >> function-list.txt && echo -------------------------------------------------------
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 26, 2012, 03:55:15 PM
que parte de no ponerle lib delante del nombre del modulo no entiendes? con ese for le estas poniendo lib delante.

vamos que he sido claro cuando lo dije.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on November 26, 2012, 04:52:27 PM
y tus modulos no tienen lib delante ? mira pruebalo si quieres, voy a pasar de reportar cosas que veo
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 26, 2012, 10:52:22 PM
a ver free... no se trata que dejes de reportar... se trata que ya dije que no puedes poner moddesc libmod_video sino que tienes que poner moddesc mod_video... lo que haces con el for (que lo supieras si me hicieras caso una vez y vieras un curso basico de scripting o al menos comandos DOS) es obtener la lista de archivos del directorio en cuestion y los archivos son lib*... (y ahora vuelvo al principio) que como dije, no puedes hacer moddesc libmod_video (por ejemplo), tienes que hacer moddesc mod_video... o quitas el lib de los resultados devueltos por el for (que no se como se haria en command de windows, pero sí usando msys o algun bash) te va a funcionar ese for.
Title: Re:Avances, Diario de...
Post by: alex on November 27, 2012, 05:33:42 PM
en linux creo que todas las librerias tienen que llevar prefijo lib* , pero aunque se llamen por ej libmod_video.so libsound.so libSDL.so, su nombre realmente seria sin lib* (en ej anteriores seria mod_video.so sound.so SDL.so), por eso no se podria llamar por el moddesc como dices Free, porque su nombre realmente es sin lib* , el prefijo lib* es simplemente para mejor clasificacion y porque el sistema no las encontraria si pones sin lib* .
Title: Re:Avances, Diario de...
Post by: SplinterGU on November 27, 2012, 05:39:10 PM
alex, antes en linux la version windows era sin lib delante, para los modulos, pero tenia que crear unos links simbolicos para remediar el problema... y eso le daba algunos problemas a josebita, asi que decidi eliminar esos links y crear directamente los modulos como libmod_*... pero el modulo (a nivel logico e interno) sigue siendo sin lib delante.
Title: Re:Avances, Diario de...
Post by: panreyes on December 01, 2012, 12:05:25 AM
Tengo un bug:


Esta línea:
cd(directorio_actual);


Provoca este fallo:
error: Incorrect number of parameters. Function: CD MinParams: 0. ( token error: "(" ).
Title: Re:Avances, Diario de...
Post by: SplinterGU on December 01, 2012, 12:16:35 AM
claro...

es correcto...

cd es directorio actual... sin parametros...
Title: Re:Avances, Diario de...
Post by: panreyes on December 01, 2012, 12:26:51 AM
Durante muchos años no ha sido así. CD se podía utilizar para recuperar el directorio actual o para cambiar de directorio:
http://wiki.bennugd.org/index.php?title=Cd


Y estoy hablando de código de Josebita del año 2003 xD
Title: Re:Avances, Diario de...
Post by: josebita on December 01, 2012, 12:34:36 AM
Cámbialo por chdir. Si no me equivoco debería funcionar.
Title: Re:Avances, Diario de...
Post by: panreyes on December 01, 2012, 12:36:58 AM
Lo he hecho. Ahora estoy peleándome para conseguir exportar a Android correctamente... FUUU xD
Title: Re:Avances, Diario de...
Post by: SplinterGU on December 01, 2012, 01:13:09 AM
chdir es para cambiar de directorio.
Title: Re:Avances, Diario de...
Post by: josebita on December 01, 2012, 01:24:58 AM
Sí, claro. cd te da tu directorio y chdir cambia. Si no recuerdo mal siempre se ha desaconsejado utilizar CD para cambiar de directorio.
Si lo usé, quizás no debería haberlo hecho...
Title: Re:Avances, Diario de...
Post by: SplinterGU on December 01, 2012, 01:38:45 AM
cd no cambia, eso pasa... solo retorna...

quizas deberia tambien dar soporte para que cambie...
Title: Re:Avances, Diario de...
Post by: SplinterGU on December 01, 2012, 01:57:08 AM
para la proxima version se incluye

CD(dir) como alias de CHDIR(dir)

esta nueva CD(...) no retorna el path actual... para el path actual hay que llamar a CD() sin parametros
Title: Re:Avances, Diario de...
Post by: KeoH on June 28, 2013, 08:12:46 PM
Splinter .. esto esta muy parado jajaja
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 28, 2013, 09:27:14 PM
muy cierto!
Title: Re:Avances, Diario de...
Post by: JaViS on June 28, 2013, 10:35:37 PM
Mientras que funcione lo que hay, me basta y me sobra jaja
Title: Re:Avances, Diario de...
Post by: DCelso on June 30, 2013, 09:58:46 AM
Quote from: PiXeL on December 01, 2012, 12:26:51 AM
Durante muchos años no ha sido así. CD se podía utilizar para recuperar el directorio actual o para cambiar de directorio:
http://wiki.bennugd.org/index.php?title=Cd (http://wiki.bennugd.org/index.php?title=Cd)


Y estoy hablando de código de Josebita del año 2003 xD
Esto en fenix era así, no se si bennu cambió la lógica alguna vez (que parece que no), pero CD venía de Current Directory, y ChDir de Change Directory. Por lo que nunca CD pudo cambiar de directorio.

Quote from: i:func.c

....
static int
fxi_cd(INSTANCE * my, int * params) {

    char *d = dir_current() ;
    int r = string_new(d) ;
    string_use(r) ;
    if (d)
        free(d) ;
    return r ;

}

static int
fxi_chdir(INSTANCE * my, int * params) {


    const char *d = string_get(params[0]) ;
    int r = dir_change(d) ;

    return r ;

}
...

Title: Re:Avances, Diario de...
Post by: DCelso on June 30, 2013, 10:00:35 AM
por cierto, ¿como va lo del fallo del blitter?
¿Se volvió a atrás en el código para dejarlo como antes? eso que propuso SpliterGu de hacer, para que funcionase lo que funcionaba hasta ahora,  hasta que se reconstruyera del todo otra vez esta parte.
Title: Re:Avances, Diario de...
Post by: panreyes on June 30, 2013, 11:12:43 AM

No sé si estoy 100% bien enterado, pero informo de lo que sé:

El fallo del blitter sigue estando ahí. SplinterGU tiene información del código concreto que provocaba que se colgase, pero aún no se han solucionado algunas imperfecciones de renderizado.
Y si no recuerdo mal, Splinter revirtió los binarios de la página web a una versión estable de hace un año.
Title: Re:Avances, Diario de...
Post by: FreeYourMind on June 30, 2013, 01:14:52 PM
Si supieramos a partir de que version se estropeo nos facilitaria mucho las cosas la verdad xD
Title: Re:Avances, Diario de...
Post by: DCelso on June 30, 2013, 07:44:45 PM
Yo antes de irme, ya se detectó en qué versión estaba el cambio que producía que algunos juegos dejasen de funcionar, y splintergu quedó en revertirlos en el trunk de svn hasta que tuviera más tiempo para rehacer esa parte. Lo que no sé es si llegó a hacerlo, y eso es lo que preguntaba ;)-

OFFTOPIC: Perdonadme que no esté tan activo como antes en "esta nuestra comunidad", uff estoy liadisimo en el curro y el poco tiempo que saco lo dedico a dota 2, un juegazo.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 30, 2013, 08:28:47 PM
el problema que revertir soluciona aparentemente el crash, pero sigue dibujando mal.

la version que estuvimos trabajando con prg tiene tambien un dibujado imperfecto, pero es mejor que la del trunk, asi que tengo que limpiar esta version un poco, probarla un poco mas y subirla... pero sigue siendo imperfecta, aunque en principio no crashea.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 30, 2013, 08:33:01 PM
Quote from: DCelso on June 30, 2013, 09:58:46 AM
Quote from: PiXeL on December 01, 2012, 12:26:51 AM
Durante muchos años no ha sido así. CD se podía utilizar para recuperar el directorio actual o para cambiar de directorio:
http://wiki.bennugd.org/index.php?title=Cd (http://wiki.bennugd.org/index.php?title=Cd)


Y estoy hablando de código de Josebita del año 2003 xD
Esto en fenix era así, no se si bennu cambió la lógica alguna vez (que parece que no), pero CD venía de Current Directory, y ChDir de Change Directory. Por lo que nunca CD pudo cambiar de directorio.

Quote from: i:func.c

....
static int
fxi_cd(INSTANCE * my, int * params) {

    char *d = dir_current() ;
    int r = string_new(d) ;
    string_use(r) ;
    if (d)
        free(d) ;
    return r ;

}

static int
fxi_chdir(INSTANCE * my, int * params) {


    const char *d = string_get(params[0]) ;
    int r = dir_change(d) ;

    return r ;

}
...



DCelso, estan ambas

cd(dir)
y
cd()

una hace dir change, y la otra retorna el current.
Title: Re:Avances, Diario de...
Post by: panreyes on July 01, 2013, 12:32:11 AM
Si quieres que te testée una versión nueva, ya sabes que tengo una buena pila de proyectos para ello :)
Title: Re:Avances, Diario de...
Post by: DCelso on July 02, 2013, 12:59:44 PM
Quote from: SplinterGU on June 30, 2013, 08:33:01 PM
Quote from: DCelso on June 30, 2013, 09:58:46 AM
Quote from: PiXeL on December 01, 2012, 12:26:51 AM
Durante muchos años no ha sido así. CD se podía utilizar para recuperar el directorio actual o para cambiar de directorio:
http://wiki.bennugd.org/index.php?title=Cd (http://wiki.bennugd.org/index.php?title=Cd)


Y estoy hablando de código de Josebita del año 2003 xD
Esto en fenix era así, no se si bennu cambió la lógica alguna vez (que parece que no), pero CD venía de Current Directory, y ChDir de Change Directory. Por lo que nunca CD pudo cambiar de directorio.

Quote from: i:func.c

....
static int
fxi_cd(INSTANCE * my, int * params) {

    char *d = dir_current() ;
    int r = string_new(d) ;
    string_use(r) ;
    if (d)
        free(d) ;
    return r ;

}

static int
fxi_chdir(INSTANCE * my, int * params) {


    const char *d = string_get(params[0]) ;
    int r = dir_change(d) ;

    return r ;

}
...



DCelso, estan ambas

cd(dir)
y
cd()

una hace dir change, y la otra retorna el current.
Ahora sí, :D, pero antes no. ;).

Umn, me interesa eso del nuevo cambio, cuando subas a svn avisa plis, a ver si eso soluciona el problema de psp
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 21, 2013, 03:48:21 AM
he agregado un patch temporal para evitar los crash, no es final, porque aun sigue dibujando mal, si se usa size y rotaciones.

me ha costado hacer el commit, porque sourceforge migro, e hizo un tremendo lio con los repositorios, en un momento perdi todo lo que tenia, por suerte solo se habian borrado los fuentes sin cambios.

mmm... posiblemente me he olvidado agregar nuevos fuentes, asi que pido que si alguno intenta compilar, me avise como le va.
Title: Re:Avances, Diario de...
Post by: BoMbErLiNk on August 31, 2014, 06:22:02 PM
Splinter, desde las versiones de 2011 hasta la última estable se tocaron las funciones load y save ?

Me he encontrado con algo extraño, en el offset 44 posición 8 se escribe el valor 193 (C1) que no esta en ninguna parte del código, luego amplie la struct y sospechosamente volvio a aparecer otro 193, pero en otro lado, esta vez en el offset 448.

Nose si es solo coincidencia, no lo hace de primeras ni mucho menos, por lo que es muy difícil de trazar esto.
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 01, 2014, 04:06:30 AM
Quote from: BoMbErLiNk on August 31, 2014, 06:22:02 PM
Splinter, desde las versiones de 2011 hasta la última estable se tocaron las funciones load y save ?

Me he encontrado con algo extraño, en el offset 44 posición 8 se escribe el valor 193 (C1) que no esta en ninguna parte del código, luego amplie la struct y sospechosamente volvio a aparecer otro 193, pero en otro lado, esta vez en el offset 448.

Nose si es solo coincidencia, no lo hace de primeras ni mucho menos, por lo que es muy difícil de trazar esto.

hola, podrias ser un poco mas especifico? save/load de que? fpg? map? estructura de datos? que estructura de datos?
Title: Re:Avances, Diario de...
Post by: BoMbErLiNk on September 01, 2014, 09:33:09 AM
Si, estructura de datos, conectate cuando puedas y te comento con más detalle.  ;)
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 01, 2014, 11:46:09 AM
ok, por la noche me conecto.
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 17, 2014, 03:20:34 AM
Hola,

Me estoy leyendo el hilo porque estoy buscando algo que creo esta implementado pero no lo encuentro en el codigo y estoy navegando por este hilo para ver la noticia de cuando lo implemente (si es que lo hice).

Y estoy viendo las respuesta en general que he dado, mas bien la incorrecta forma de hacerlo... puf, que insoportable he sido... imagino que el foro esta repleto de lo mismo...

Asi que siento necesidad de pedir disculpas a todos los afectados por todos los modos inadecuados en que he respondido algunas veces...

Por lo general vivo revolucionado, y nervioso, y no me doy cuenta que descargo ese nerviosismo en mis respuestas o la forma de hacerlo... asi que si alguna vez respondo de forma inadecuada, por favor, haganmelo saber...

Muchas gracias a todos.

SplinterGU
Title: Re:Avances, Diario de...
Post by: panreyes on September 18, 2014, 12:07:15 AM
Quote from: SplinterGU on September 17, 2014, 03:20:34 AM
Y estoy viendo las respuesta en general que he dado, mas bien la incorrecta forma de hacerlo... puf, que insoportable he sido... imagino que el foro esta repleto de lo mismo...

Asi que siento necesidad de pedir disculpas a todos los afectados por todos los modos inadecuados en que he respondido algunas veces...

Por lo general vivo revolucionado, y nervioso, y no me doy cuenta que descargo ese nerviosismo en mis respuestas o la forma de hacerlo... asi que si alguna vez respondo de forma inadecuada, por favor, haganmelo saber...


No sé si seré uno de esos afectados, pero no te preocupes por el pasado. Simplemente, intenta vivir más relajado :)


Te lo digo yo, que también he tenido en ocasiones mis "arranques" y en ocasiones es mejor desconectar, que pase un poco el tiempo y mirarlo todo con perspectiva.


Un saludo y mucho ánimo!
Title: Re:Avances, Diario de...
Post by: SplinterGU on September 18, 2014, 02:39:21 AM
:)

simplemente me dio una mala espina releerme... je, no se si lo habre leido a la apurada o que... ni me acuerdo de por que cada contestacion, pero no me gusto leerla... vi que quizas podia causar malestar...

gracias por tu respuesta...

la idea es siempre ir mejorando... y bueno, ese es el plan...

y a darle a bennugd 2... :D
Title: Re:Avances, Diario de...
Post by: KeoH on October 03, 2014, 02:23:51 PM
Eres nuestro Linus Torvalds particular jajaja  :-*
Title: Re:Avances, Diario de...
Post by: SplinterGU on October 04, 2014, 01:58:37 AM
no sera mucho? gracias por la confianza... :)
Title: Re:Avances, Diario de...
Post by: FreeYourMind on May 03, 2015, 11:30:42 AM
Hola.
Hace tiempo splinter hablaba de errores en el blitter o algo, cosa que nunca se me quedo clara ni en que versiones esto se miró.

No se si esta relacionado con los cambios hechos a posteriori para arreglar el tema, pero he encontrado un error usando scale_y.

En la consola GCW Zero hay dos ports, el oficial compilado de la ultima version del repo (r325) y una que saque yo mas vieja y que es la que uso en mis juegos en windows al compilar (r270).

Pues bien usando la r325 cuando cambias el tamaño de un grafico con size_y, se nota un pequeño error grafico en la parte inferior del grafico al modificarse, como una raya que se percibe en toda la area horizontal del grafico.

Esto con la r270 no ocurre, no se a partir de que version esto puede fallar.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 04, 2015, 11:49:28 AM
hola, el tema que no falla ahi ese scale_y que estas usando, pero luego falla en otros valores...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on May 04, 2015, 11:58:14 AM
Lo unico que quiero saber es a partir de que revision exacta esto ocurre ? gracias
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 13, 2016, 08:29:07 PM
meti un nuevo commit de un bug que introduje experimentando con el blitter que hacia que se inviertan las rotaciones y se me escapo un commit, por suerte tenia un .bak que restaure... :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 30, 2016, 02:35:57 PM
ayer retome despues de siglos sin tocar bennugd y me dedique a meterle soporte a graficos mas grandes que el tamaño maximo de una textura... ya funciona, con soporte de escalado y rotacion...

no se cuanto tiempo, porque no puede darle el ritmo que le daba antes, pero un par de modificaciones mas y creo que puedo sacar alguna preview... al momento tengo binarios linux, que son los que uso de prueba.
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 30, 2016, 05:39:41 PM
quisiera saber quien esta dispuesto a probar bennugd2 (solo version linux al momento), asi me va diciendo que cosas faltan, como va funcionando, y depurando de todo un poco.

basicamente esta version es con acceleracion por GPU, se quitaron algunas cosas y se agrego alguna que otra mas...
Title: Re:Avances, Diario de...
Post by: SplinterGU on April 30, 2016, 05:44:02 PM
quiero agregar, esta es una version muy beta, porque estoy decidido a sacar bennugd2 en 64bits... no se si mantener las 2, o solo 64bits, o dejar una version 32bits con agregado de datos 64bits...

pero primero quiero tener el producto funcional y despues sacar 64bits... con los nuevos tipos de datos y demas.
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on April 30, 2016, 10:26:57 PM
excelentes noticias...   ;D

si hay version windows la probamos con gusto..
Title: Re:Avances, Diario de...
Post by: JaViS on April 30, 2016, 11:32:50 PM
Por supuesto que suena mas que interesante, pero mas arriba mencionas que le agregaste algunas cosas y le sacaste otras, podrias especificar que podemos esperar, para saber que podemos probar?
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 01, 2016, 03:54:36 AM
tendria que armar una lista de cosas...
Title: Re:Avances, Diario de...
Post by: JaViS on May 02, 2016, 01:28:17 PM
Quote from: SplinterGU on May 01, 2016, 03:54:36 AM
tendria que armar una lista de cosas...


Y dale viteh
Title: Re:Avances, Diario de...
Post by: Drumpi on May 03, 2016, 12:12:16 PM
A mi me gustaría poder ayudarte, pero entre que estoy a plena máquina con el editor de tiles, que nunca conseguí hacer funcionar Bennu en mi Kubuntu, y que ando con una versión desfasada (la 12.04), no sé hasta qué punto podría ayudar ^^U Ya me falta tiempo para mis cosas.
Quizás con una versión "portable" (ya sabes que a mi los instaladores me dan repelús :P) pueda darle alguna pasada con el Echo, SBTime (la fase de los modo7 con mapas gigantes podría servir para alguna prueba) y alguna chorradilla que tengo por ahí, y si falla, buscar cual es la función problemática, pero poco más.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 03, 2016, 12:32:22 PM
hola drumpi,
actualmente no tengo instaladores, y estoy con ubuntu (kde), pero la 16.04LTS.
por otro lado bennugd2 no va a tener modo 7.
ahora mismo estoy reescribiendo todo, va, haciendo pruebas, tenia todo el motor, pero convirtiendo todos los graficos a texturas de 32bits... estoy intentando soportar texturas de varias profundidades, pero parece que si no uso 32bits, pierdo el colorkey, por lo que no tengo zonas transparentes... no estoy seguro si es una limitacion de SDL2/opengl, o algo estoy haciendo mal...
por el momento estoy probando e investigando, a ver si me puedo evitar hacer algunas conversiones... por otro lado, no se si este metodo, evito conversiones, pero pierdo luego en performance en convertir mapas en operaciones mas frecuentes...
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on May 03, 2016, 11:23:22 PM
excelente trabajo splinter..!!!

hay un ejemplo de modo 7 super completo usando todos las bpp (8/16/32)
haber si alguien se anima a portarlo a bennu... y tendriamos un modo7 decente... y con 32bpp

https://github.com/gustavosbarreto/mario-kart

esta en allegro que creo que se parece a SDL la api

;D


Title: Re:Avances, Diario de...
Post by: blostec on May 07, 2016, 10:00:33 AM
Grande SplinterGU, excelente noticia que sigas con Bennugd2. Cuando tengas versión Windows estaré encantado de testearla. Ahora que la he retomado, habrá versión Wiz?  ;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 07, 2016, 05:11:56 PM
Gracias a ambos.

Bueno, al final me puse a reescribir todo (previo backup) porque me volvi loco para meterle transparencias por GPU a los graficos de 16 bits (texturas 565), y resulta que tras tanto probar e investigar, me di cuenta que el modo 565, no permite colorkey, el menos en mi GPU y a traves de SDL... asi que no me quedo otra que recuperar el backup y seguir trabajando con la conversion de texturas a 32bits...

y estos dias estuve sobrecargado de problemas y trabajo, asi que no pude seguir con esto... mientras iba escribiendo este mensaje, se me vinieron un monton de ideas a la cabeza sobre este tema, que creo podre cerrar en breve, al menos esta parte del uso de memoria y conversion inteligente (automatica) de profundidad de mapas y/o conversion a texturas segun corresponda.
Title: Re:Avances, Diario de...
Post by: blostec on May 09, 2016, 10:27:12 AM

Hola Juan, me gustaría hacerte una sugerencia a ver que te parece.

Sabiendo que ahora estas en pleno proceso de reescritura de buena parte de BennuGD2 y lógicamente a corto plazo no habrá una release, creo que seria interesante que publicaras la versión definitiva de BennuGD 1.0. Me explico, yo sigo usando la última release que publicaste la r307 (22-11-2012), pero he visto que en el repositorio esta la r330. Dado el nuevo rumbo que supone BennuGD2 y los cambios que tendrá respecto a la actual versión, creo que seria interesante disponer de la release final de BennuGD 1.0, que a su vez cuando salga la 2.0 serviría a modo de legacy.


Como he dicho es solo una sugerencia, por mi parte si he de seguir usando la r307 no hay problema.
Saludos!
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 09, 2016, 11:40:55 AM
podria ser, aunque no se que tan estable es el repositorio
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 15, 2016, 08:38:10 PM
sigo trabajando... bueno... comento algunos cambios..

ahora fade es:

fade( porcentaje, tiempo milisegundos )
fade_on( milisegundos )
fade_off( milisegundos )

asi como existe modulacion de alpha, se agrega modulacion de color.

ahora alpha no se pasa mas por medio de los flags, porque en algunos eran por flags y en otros casos habian variables locales, se normalizo.

ahora se puede especificar el file del background en los scrolls, tambien se eliminan las funciones *put que no especifican el file destino.

las rgb* ahora son 32 bits exclusivamente, asi como las get/put pixels.

esto lo tenia guardo pero lo voy a tirar, bennugd2 soporta sprites sheets como librerias de mapas, el unico limite es el tamaño de la textura maxima.

se eliminan las set_color globales, ahora se definen por variables de modulacion componentes de color, lo mismo el alpha, salvo para textos creados por medio de write*, esos se les permite modificar por text.

scroll sobre mapas es accelerado y permite cualquier tamaño de graph e back (segun memoria, claro esta), lo cual significa que se pueden rotar los scrolls y hacerles zoom, desde GPU.

no se, me estoy olvidando un monton de cosas... pero bueno, voy a tener que crear algun documento, creo que pronto podre sacar una version alpha o beta...
Title: Re:Avances, Diario de...
Post by: JaViS on May 16, 2016, 12:38:18 AM
TODO muy interesante :)
Title: Re:Avances, Diario de...
Post by: Drumpi on May 16, 2016, 11:09:23 AM
Mola mola mola :D
Va a haber cosas que echaré de menos en Bennu2 (al menos, mientras no se implementen), pero da igual, para eso tenemos Bennu1 :D
Todo lo que sea mejorar, es bienvenido :)

A ver ahora cómo lo portamos a la lavadora LOL

PD: Parece que vuelve a haber actividad en el foro. Por cada avance que publica uno, provoca que otro publique el suyo :P
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 16, 2016, 12:42:10 PM
gracias!

drumpi, que cosas vas extrañar? (a ver si estan o no implementadas, porque al final implemente mas cosas de las que pensaba)

PD: por otro lado, esto no es una rivalidad, por favor, no intenten generar rivalidad donde no hay con esos comentarios... aca no hay rivalidad de nada, a mi me alegra mucho (y me enorgullece) que exista PixTudio y cualquier otro fork de BennuGD...
Title: Re:Avances, Diario de...
Post by: panreyes on May 16, 2016, 12:52:44 PM
Rivalidad ninguna, este es el mejor ambiente posible :)

De hecho, como parten de una base parecida, tanto PixTudio como BennuGD2 pueden aprovechar mejoras que implemente uno u otro.

Por otro lado, tengo planes de dar soporte también a BennuGD (1 y 2) en PixTudio Project Manager
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 16, 2016, 02:35:54 PM
Gracias PiXeL, eso seria genial!
Title: Re:Avances, Diario de...
Post by: AmakaSt on May 16, 2016, 08:08:00 PM
Quote from: PiXeL on May 16, 2016, 12:52:44 PM
Rivalidad ninguna, este es el mejor ambiente posible :)

De hecho, como parten de una base parecida, tanto PixTudio como BennuGD2 pueden aprovechar mejoras que implemente uno u otro.

Por otro lado, tengo planes de dar soporte también a BennuGD (1 y 2) en PixTudio Project Manager

Eso es bueno, yo con Div GO tampoco veo que haya rivalidad con ningún div-like, esto nos beneficia a todos.  :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 16, 2016, 10:58:13 PM
asi es AmakaSt
Title: Re:Avances, Diario de...
Post by: Drumpi on May 16, 2016, 11:46:05 PM
¿Rivalidad? Creo que me has entendido mal :D
Me refería a que, por ejemplo, por cada cosa que publico del editor de mapa de tiles, aparece Momia con algo de gameplay de su demo de Spiderman, tu de Bennu2, Josebita o Pixel de PixTudio, Amaka de DivGo o Ulthar con su creador de aventuras, y eso genera que otro hable de su respectivo proyecto, y otro post y otro :D :D :D

¿Que qué voy a echar de menos? Todavía no hay nada seguro, pero para empezar tanto BennuGD2 como Pixtudio se van a centrar en los 32bits de color, y aun tengo aparcado FenixLand, que iba a ser un juego en el que quería usar la paleta de color para provocar transiciones suaves entre el día y la noche, algo imposible en 16 o 32 bits sin recurrir a complejos efectos de iluminación y cambios de gráficos.
O los cambios de color en el prota en función del poder que esté usando.
Por no hablar de los juegos que sigo haciendo para GP2X y Wiz, para los que no hay SDL2 portado (aunque estén en desuso, me las sigo llevando de vacaciones, y siempre cae una partidita a algún juego mío o a algo que haya hecho alguien y no tengo en las otras).

Pero digo que no es nada seguro porque debería centrarme ya en producir cosas para PC, y según los planes, la próxima revisión del Echo va a incluir efectos que sólo se podrán ejecutar en la potencia extra de un ordenador (la Wiz se me queda pequeña, si no consigo arreglar el último motor de scroll tileado).
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 16, 2016, 11:51:26 PM
es bueno aclarar... gracias...

ahora la transcision de dia a noche la vas a poder hacer mucho mas simple ahora, con la modulacion de colores. cambios de color algo se puede hacer.

con respecto a todo lugar donde no esta portado sdl2, pues ahi si lo extrañaras... al menos por el momento, luego quizas se requiera solo opengl...
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on May 17, 2016, 12:21:22 AM
exacto algunas plataformas no soportan SDL2 asi que toca dejar

alguna version aparte(deprecated/unsupported) SDL1 para el que quiera tomarla y portarla a la plataforma X



;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 18, 2016, 04:55:53 AM
bien, me he vuelto loco hoy con la screen_get(), pensaba que no capturaba por mas que intente mil codigos diferentes... y finalmente era que me habia olvidado que ahora los cpoints no son necesarios definirlos a nivel codigo C, colo lo era en bennugd y fenix, donde se les ponia un centro X e Y con un valor alto, ahora simplemente se centran al medio si no existen cpoints, los cpoints son cpoints y no valores inventados. asi que estaba dibujando el grafico fuera de pantalla. ( hasta que me di cuenta.. :D )

en fin, ya hay screen_get()! pero es infinitamente lento el get del render de video, de un proceso de 1600fps, si estoy capturando constantemente pasa a 135fps, esta bien que tengo una intel y que me sobran fps, pero igual la caida de rendimiento es terrible. tengo que agregar que la operacion esta usando la menor cantidad de operaciones posibles, y capturando solo cuando se pide de pantalla... estuve cureoseando un poco el codigo de SDL, lo que toca de opengl, y la verdad que parece que SDL hace una cantidad tremenda de conversiones sobre los datos graficos... no se si son realmente necesarias todas, pero bueno, las hace...

en fin, creo que mañana me pondre a trabajar en el cross para windows, a ver si puedo generar un binario para testear...

espero no asustarlos como quedo el lenguage, de todo lo que recorte, el nombre de funciones compatibles que elimine, y el cambio de algunas funciones... por ejemplo, todas las que eran *TEXT*, pasan a ser WRITE_*, salvo TEXT_WIDTH y TEXT_HEIGHT.

tampoco se si tome la mejor decision, pero al menos estan (casi todas) agrupadas por categoria.

otra duda que tengo es si meter las screen_put, screen_xput, etc... creo que no son necesarias, pueden hacerse un proceso "fondo" para eso, cuando se necesite...

en fin, mientras sigo avanzando...
Title: Re:Avances, Diario de...
Post by: Drumpi on May 18, 2016, 12:15:44 PM
Hasta donde yo sé, las SCREEN_PUT, PUT, etc estaban por dos razones (tu que te has leido el código deberías saberlo mejor que yo):
- Las operaciones sobre el fondo de pantalla son más rápidas que sobre los graphs. No me preguntes cómo, pero creo que era algo sobre dibujar sobre el render frente dibujar sobre una SDL_surface y posteriormente las funciones de render.
- Para los novatos, PUT_SCREEN es tremendamente claro: cojo un gráfico y lo pongo de fondo de pantalla. Más que MAP_PUT, que tienes que saber que el fondo es el file 0 - graph 0.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 18, 2016, 01:59:25 PM
es 1 proceso, no hace mucha diferencia, porque solo es cuando se necesita...

pero tampoco complica mucho agregarlo... asi que lo voy a agregar.

las map_put, solo deje 2, map_put y map_xput (con mas funcionalidad de la que ya existia)
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 26, 2016, 03:03:49 PM
nueva estructura de archivos bennugd (librerias/modulos)

bajo nivel:

libbggfx
libbginput
libbgload
libsdlhandler

usuarios:
libmod_gfx
libmod_input
libmod_misc
libmod_sound

el background ahora se maneja por variables, tipo GRAPH, y tiene todas las caracteristicas de los mismos, escalado, rotacion, modulacion de color, mirror, etc.

ahora estoy trabajando en las colisiones, las colisiones pixel perfect desaparecen... ahora van a se podra definir en cada proceso el tipo de colision, si circular o rectangular, con lo que se comprobaran colisiones de formas circulares contra formas rectangulares, rectangulares contra rectangulares y circulares contra circulares, tambien se tendra en cuenta rotaciones y escalados (que venia faltando en la rectangular)
Title: Re:Avances, Diario de...
Post by: Drumpi on May 26, 2016, 04:45:09 PM
¿Y por qué desaparecen las colisiones pixel perfect?
Title: Re:Avances, Diario de...
Post by: JaViS on May 26, 2016, 05:12:42 PM
Quote from: SplinterGU on May 26, 2016, 03:03:49 PM

ahora estoy trabajando en las colisiones, las colisiones pixel perfect desaparecen... ahora van a se podra definir en cada proceso el tipo de colision, si circular o rectangular, con lo que se comprobaran colisiones de formas circulares contra formas rectangulares, rectangulares contra rectangulares y circulares contra circulares, tambien se tendra en cuenta rotaciones y escalados (que venia faltando en la rectangular)


Seguro que hay una buena razon para esto, pero no puedo evitar lamentar la perdida de una de las mejores features de BennuGD y DIV en general.


Quisiera pedirte que consideres la posibilidad de incluir colisiones elípticas y rectangulares. Cuadradas y Circulares a veces se quedan cortas.
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 26, 2016, 07:25:06 PM
Quote from: Drumpi on May 26, 2016, 04:45:09 PM
¿Y por qué desaparecen las colisiones pixel perfect?

porque bennugd2 es GPU, no tiene render por software, bajar texturas del render (que es donde hay rotaciones y escalado nativo) es pesadisimo, entonces no habra pixel perfect.

Quote from: JaViS on May 26, 2016, 05:12:42 PM
Quote from: SplinterGU on May 26, 2016, 03:03:49 PM

ahora estoy trabajando en las colisiones, las colisiones pixel perfect desaparecen... ahora van a se podra definir en cada proceso el tipo de colision, si circular o rectangular, con lo que se comprobaran colisiones de formas circulares contra formas rectangulares, rectangulares contra rectangulares y circulares contra circulares, tambien se tendra en cuenta rotaciones y escalados (que venia faltando en la rectangular)


Seguro que hay una buena razon para esto, pero no puedo evitar lamentar la perdida de una de las mejores features de BennuGD y DIV en general.


Quisiera pedirte que consideres la posibilidad de incluir colisiones elípticas y rectangulares. Cuadradas y Circulares a veces se quedan cortas.

elipticas se me complican las matematicas, desconozco si hay una forma matematica de hacerlo posible (considerando rotaciones y escalado), de haberla, si alguien puede aportar ayuda al respecto, sera bienvenida... con respecto a la colision box, obviamente las rectangulares estan incluidas.

La otra opcion que pienso agregar (no creo en la primera version) es multiples formas de colision por grafico, esto es 2 circulos 1 rectangulo o 5 rectangulos, etc...
Title: Re:Avances, Diario de...
Post by: Drumpi on May 26, 2016, 11:57:16 PM
Ok, no había caido en lo del espacio de memoria de GPU (la falta de costumbre ^^U).
Lo que habría que mirar, sin embargo, es que si estamos en una GPU, debería ser factible comprobar colisiones triangulares u otras formas geométricas, al fin y al cabo, se diseñaron para eso, para agilizar el cálculo de colisiones  de polígonos (es lo que se usa en los motores de físicas). Tener funciones de colisión con lineas, hexágonos (que no son más que 6 triángulos) o similares puede ser el sustituto perfecto. Tengo que buscarte un buen tutorial de físicas de colisión 2D en Unity para que los veas, Splinter, te puede dar ideas... si es que se puede llevar a cabo.

Es más, lo mismo ni siquiera tienes que hacer tú los cálculos para las box y los círculos de colisión :P
Title: Re:Avances, Diario de...
Post by: panreyes on May 27, 2016, 08:52:49 AM
Quote from: SplinterGU on May 26, 2016, 07:25:06 PM
Quote from: Drumpi on May 26, 2016, 04:45:09 PM
¿Y por qué desaparecen las colisiones pixel perfect?

porque bennugd2 es GPU, no tiene render por software, bajar texturas del render (que es donde hay rotaciones y escalado nativo) es pesadisimo, entonces no habra pixel perfect.

Creo que éste es el exacto motivo por el cual Joseba decidió tener copia de los mapas en RAM y en VRAM. Aunque, si es sólo para colisiones pixel perfect, creo que se podría guardar una copia de los fpgs en 1bpp para comprobar colisiones.

Por otro lado, ¿y map_get_pixel? ¿Funcionaría con GPU?
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 27, 2016, 11:51:11 AM
yo tambien tengo copias de los mapas en memoria, map_get_pixel trabaja sobre memoria, pero sin render por software, ya que no hay rotaciones ni escalados necesarios esta funcion, se leen directo.

por otro lado, funcionaria con gpu, pero lento.

las condiciones triangulares que plantea drumpi, me suenan ser un poco costosas en cpu, por lo poco que vi por ahi, creo que se necesitaria un mesh (malla) para eso, voy a analizar que tan factible es hacer estos calculos por GPU.
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on May 27, 2016, 01:58:13 PM
Hay librerias Boost Y PTHREAD compatibles con windows ,linux, android, macos

si deseas te colaboramos en el codigo que sea lento...  o en que te podemos ayudar seria un placer...




Title: Re:Avances, Diario de...
Post by: SplinterGU on May 27, 2016, 02:27:39 PM
pthread la uso, estoy mas pensando en opencl... pero bueno, estoy investigando sobre colisiones complejas, digamos que circulares y rectangulares (estas ultimas no rotadas) son simples, pero cuando mezclamos circulares con rectangulares y rotadas o rectangulares con rectangulares rotadas la cosa se complica un poco... tengo ideas para resolverlo de forma matematica, por medio de un par de formulas, evitando bucles y cosas apañadas, pero quiero leer un poco mas a ver si encuentro algo mejor ya hecho... pero apuntando a opencl podria hacer colisiones con poligonos irregulares... creo que hacer lo tipico en colisiones 3D sobre 2D optimizado por GPU, donde puedo procesar muchas comprobaciones en paralelo (quizas incluso el chequeo de collision contra todos los procesos en 1 solo paso) y no tener que iterar desde el proceso principal, sino hacerlo directo en el GPU... creo que el rendimiento seria asombroso... no lo se, todo es teoria por ahora...

claro que toda ayuda es agradecida... si tienen alguna experiencia en eso (opencl, o algoritmos de collision, no pixel perfect, sino en cuanto a poligonos irregulares) bienvenido sea...
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on May 27, 2016, 04:27:18 PM
 ;D


yo creo que lo mas optimo seria incluir una librería 
como box2d o chipmink que ya vienen aceleradas por hardware...
para no reinventar la rueda...






Title: Re:Avances, Diario de...
Post by: SplinterGU on May 27, 2016, 07:04:35 PM
p
Quote from: l1nk3rn3l on May 27, 2016, 04:27:18 PM
;D


yo creo que lo mas optimo seria incluir una librería 
como box2d o chipmink que ya vienen aceleradas por hardware...
para no reinventar la rueda...








podria ser tranquilamente, voy a echarle un ojo a eso... gracias!
Title: Re:Avances, Diario de...
Post by: JaViS on June 01, 2016, 01:22:07 PM
Yo se que por ahi ya cansa el topic, pero realmente estoy lamentando la perdida de soporte a graficos de 8 bits y el manejo de paletas. El pallete swap, rotation, etc es algo muy util y que ya pocos engines conservan.


No hay forma de implementarlo de alguna manera compatible con en nuevo engine?
Title: Re:Avances, Diario de...
Post by: panreyes on June 01, 2016, 01:36:49 PM
JaViS, lo más parecido a eso en OpenGL es utilizar "color tints".

http://gamedev.stackexchange.com/questions/43294/creating-a-retro-style-palette-swapping-effect-in-opengl

La otra opción sería absurda, porque requeriría actualizar todos los mapas en memoria en cada color swap que hicieras.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 01, 2016, 03:03:22 PM
Quote from: JaViS on June 01, 2016, 01:22:07 PM
Yo se que por ahi ya cansa el topic, pero realmente estoy lamentando la perdida de soporte a graficos de 8 bits y el manejo de paletas. El pallete swap, rotation, etc es algo muy util y que ya pocos engines conservan.


No hay forma de implementarlo de alguna manera compatible con en nuevo engine?

te entiendo, y lo intente, pero no se permiten texturas con colores indexadas, al menos en mi tarjeta de video... lo mismo que las transparencias en mapas de 16bits (todo quizas porque el renderer es de 32bits, no probe con renderers de otras profundidades)

ahora estoy leyendo un poco sobre librerias fisica, por ahora la decision que tengo es integrar un motor de fisica a bennugd, posiblemente chipmunk..
Title: Re:Avances, Diario de...
Post by: JaViS on June 01, 2016, 06:16:52 PM
Quote from: panreyes on June 01, 2016, 01:36:49 PM
JaViS, lo más parecido a eso en OpenGL es utilizar "color tints".

http://gamedev.stackexchange.com/questions/43294/creating-a-retro-style-palette-swapping-effect-in-opengl (http://gamedev.stackexchange.com/questions/43294/creating-a-retro-style-palette-swapping-effect-in-opengl)

La otra opción sería absurda, porque requeriría actualizar todos los mapas en memoria en cada color swap que hicieras.


ahh, o sea, haces el grafico en 50 shades of gray y despues le chantas tinturas?
Title: Re:Avances, Diario de...
Post by: panreyes on June 01, 2016, 07:05:32 PM
Es una forma...
Title: Re:Avances, Diario de...
Post by: Drumpi on June 02, 2016, 01:47:10 AM
Mmmm, o lo que dice de "paletted texture" parece interesante: crear un shader que lea un pixel del gráfico, por ejemplo, el valor del color azul (ya que cada componente es de 8 bits), y lea de una tabla de 256 posiciones un color RGBA, y se pinte en dicha posición. Si se puede aplicar un shader a un gráfico concreto, podría ser la solución.

Para los que no lo sepan: un shader es una pequeña función que se ejecuta en la tarjeta gráfica, y que sirve para aplicar efectos gráficos exclusivamente, en lo que se llama post-proceso (la fase después de hacer los cálculos con la CPU y antes de dibujar en pantalla... Lo que en BennuGD pasa justo después del frame y antes de comenzar a ejecutar de nuevo el código).

Podría servir: se carga un MAP de 8 bits en una SDL_surface o lo que use OpenGL de 32 bits, aunque sólo le estemos dando valor a la componente alpha del pixel RGBA, cuando está en la gráfica se le aplica un shader con la tabla de valores de la paleta y listo. Lo que ya no sé es cómo de difícil sería de implementar, el cómo pasar la información de la paleta al shader (no haría falta al revés, si mantenemos una copia de la paleta en RAM, eso ocupa poco y es común a los gráficos). No es óptimo en memoria, pero no nos dejan mucho margen de maniobra... a menos que se hagan auténticas locuras (que cada pixel de un mapa de la gráfica en 32bits contenga la información de 4 pixels de un .map 8bits...).

Debería irme a la cama.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 02, 2016, 01:04:30 PM
todavia no probe nada shaders
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 07, 2016, 03:32:18 PM
bien, voy a aparcar un momento el tema de las fisicas... voy a concentrarme en meter multiprocesamiento en el core (para paralelizar la ejecucion de procesos) y en bennugd 64bits, agregando tambien nuevos datos 64bits.

creo que esto es mas importante ahora que luego tener que cambiar todos los modulos que tengo escritos.

espero con la multitarea lograr aun mejor performance.
Title: Re:Avances, Diario de...
Post by: JaViS on June 07, 2016, 04:38:42 PM
Quote from: SplinterGU on June 07, 2016, 03:32:18 PM
bien, voy a aparcar un momento el tema de las fisicas... voy a concentrarme en meter multiprocesamiento en el core (para paralelizar la ejecucion de procesos) y en bennugd 64bits, agregando tambien nuevos datos 64bits.

creo que esto es mas importante ahora que luego tener que cambiar todos los modulos que tengo escritos.

espero con la multitarea lograr aun mejor performance.


Eso va a ser un cambio realmente importante :D
Title: Re:Avances, Diario de...
Post by: Drumpi on June 07, 2016, 05:10:37 PM
Pues mucho ánimo con la tarea.
Si ves que no todo se puede paralelizar, pues te centras en lo qe sí se pueda, y poco a poco se irá mejorando. Si de momento se puede paralelizar la ejecución de los procesos, dejando el render final como un único hilo, pues se hace, mejor tener un 50% de ejecución paralela y otro 50% de secuencial que todo secuencial, o todo paralelo si Bennu2 se retrasa hasta 2025 :P

Ah, y mucha suerte con los tipos de 64 bits, no queremos que pase como con Fenix 084 ;)
Desde aquí todo mi apoyo :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 07, 2016, 08:54:57 PM
gracias a ambos... espero sea un cambio importante...

Quote from: Drumpi on June 07, 2016, 05:10:37 PM
Pues mucho ánimo con la tarea.
Si ves que no todo se puede paralelizar, pues te centras en lo qe sí se pueda, y poco a poco se irá mejorando. Si de momento se puede paralelizar la ejecución de los procesos, dejando el render final como un único hilo, pues se hace, mejor tener un 50% de ejecución paralela y otro 50% de secuencial que todo secuencial, o todo paralelo si Bennu2 se retrasa hasta 2025 :P

Ah, y mucha suerte con los tipos de 64 bits, no queremos que pase como con Fenix 084 ;)
Desde aquí todo mi apoyo :)

algunas cosas se pueden paralelizar y otras no, por cuestiones logicas y otras que escapan a bennugd.

que paso con fenix 084?
Title: Re:Avances, Diario de...
Post by: Drumpi on June 08, 2016, 12:35:54 AM
Hasta donde me explicó Slainte, la versión 0.84 de Fenix sufrió grandes cambios de limpieza de código, añadieron nuevas funcionalidades, optimizaron mucho código y se hizo algo con los tipos de variables. Creo recordar que se añadieron los FLOAT como nuevo tipo, y eso provocó muchas inestabilidades y bugs, y la versión 0.84 pasó a ser conocida como la más inestable de todas (al menos, por mi parte).
Gran parte de los fallos se corrigieron en una versión 0.84 de SVN no oficial, y en una posterior 0.84b, que aunque más estable, introdujo un par de errores aparte. Aquella fue la última oficial por parte del Fenix Team, el resto ya lo sabes tu mejor que nadie porque fue la que cogiste tu.

Creo que la 0.84 fue también la que introdujo el curioso bug de la variable local que no se podía usar, porque nunca se modificaba. Se "resolvía" creando una variable local que llamábamos "antibug", que no se usaba nunca.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 08, 2016, 12:46:37 AM
por suerte, al momento, esto no esta pasando...

y al momento, hay grandes cambios estructurales...
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 13, 2016, 03:11:45 AM
bueno, news...

tras pasar varios dias tocando a fondo el core, debo decir que:

- se agregan nuevos tipos de datos: int64, qword, long (alias de int64), bool (alias de int64) y double.
- la vm ahora es 64bits.
- los binarios ahora son 64bits (aca debo comentar que luego voy a tener que darle una vuelta a todo el motor otra vez para poder generar binarios de 32bits con soporte de estos nuevos tipos de datos 64bits. Por que? Porque ahora el motor espera que los punteros sean 64bits, y en 32bits los punteros son 32bits, por lo que podria tener algun problema si no controlo adecuadamente esto.)
- pase a cmake (despues de perder unas cuantas horas peleando con autotools [autotools 10 - Splinter 0])

me queda generar la bgdtrm + bgdi + modulos (estan a medias)

quiero tambien mencionar que encontre una buena cantidad de bugs en los casteos de datos, corregi una parte (quizas todos), me falta testeo, pero hasta que no tenga el interprete no puedo probar.

toque bastante, asi que bennugd quedo un poco cambiado, no en estructura, pero hay cambios por todos lados.

ahhh, una contra a esto, es que posiblemente ahora que la vm es de 64bits, el binarios 32bits (quizas, quizas no), pierda un poquito de performance.
Title: Re:Avances, Diario de...
Post by: panreyes on June 13, 2016, 09:11:07 AM
Evolución :)

La duda que me queda es... ¿bool es alias de int64? xD

¿Bool no viene de Boolean (true|false)?
Title: Re:Avances, Diario de...
Post by: FreeYourMind on June 13, 2016, 09:21:59 AM
una cosa es lo que ocupa su definicion, otra cosa son los valores que toma
Title: Re:Avances, Diario de...
Post by: panreyes on June 13, 2016, 09:46:29 AM
Aún así, me resulta gracioso xD

Son 64 bits, de los cuales 63 no sirven para nada.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 13, 2016, 11:52:22 AM
la unidad de la vm siempre fue el tamaño de la palabra, hasta ahora fue 32bits, ahora es 64bits... por que esto? hay muchas razones para hacerlo asi, pero la principal es por performance.

puedo tranquilamente cambiar bool que sea un alias de byte, pero eso no cambia que internamente en la VM ocupe 64bits, simplemente a nivel usuario (en estructuras y cuando se usa para salvar/cargar) ocupa 1 byte, pero cuando se mueve dentro del motor ocupa 64bits (todos los datos ocupan al menos 64bits)

de hecho lo voy a cambiar.
Title: Re:Avances, Diario de...
Post by: josebita on June 13, 2016, 12:39:45 PM
¡Qué interesante!

Gracias por tenernos informados :)
Title: Re:Avances, Diario de...
Post by: Drumpi on June 13, 2016, 03:33:34 PM
¿Todas las variables ocupaban 32bits antes? ¿Y ahora 64? Pensaba que se agrupaban las variables del mismo tipo para ahorrar memoria (por ejemplo, si se declaraban 3 bytes seguidos, entre los tres ocupaban un int32)... o al menos en las structs tenía entendido que era así (creo que lo leí en el manual de DIV).

Es que si antes también ocupaban 32bits todas las variables (salvo strings, claro), me ahorro en el Echo tanto tipo diferente de datos y de tratar de tenerlos agrupados declarándolas a la vez, y las pongo todas en int y ya no tengo las pegas que tenía con el port de Wii LOL.

Me voy a ver la conferencia de M$ en el E3
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 13, 2016, 04:49:03 PM
Quote from: Drumpi on June 13, 2016, 03:33:34 PM
¿Todas las variables ocupaban 32bits antes? ¿Y ahora 64? Pensaba que se agrupaban las variables del mismo tipo para ahorrar memoria (por ejemplo, si se declaraban 3 bytes seguidos, entre los tres ocupaban un int32)... o al menos en las structs tenía entendido que era así (creo que lo leí en el manual de DIV).

Es que si antes también ocupaban 32bits todas las variables (salvo strings, claro), me ahorro en el Echo tanto tipo diferente de datos y de tratar de tenerlos agrupados declarándolas a la vez, y las pongo todas en int y ya no tengo las pegas que tenía con el port de Wii LOL.

Me voy a ver la conferencia de M$ en el E3

si no estan en structs no estan agrupadas... estan alineadas, para mejor performance.
Title: Re:Avances, Diario de...
Post by: Drumpi on June 14, 2016, 12:40:30 AM
...
OK, entonces iré revisando el código con eso en mente.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 21, 2016, 03:27:15 PM
bennugd2-64bits rulando! (por el momento linux64 solamente, tengo que ver como armar el cmake cross para compilar en principio w64)

necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.

necesito tambien ayuda con programas de ejemplos, inicialmente quiero testear el compilador, todos los tipos de datos, arrays, structs, sizes, conversiones de un tipo a otro, todos los tipos de calculos basicos (suma, resta, division, multiplicacion, modulo, incremento, decremento [pre y pos], etc) entre todos los tipos de datos, uso de punteros (lectura y escritura), salida a pantalla a traves de say es suficiente en esta parte.

si alguno se ofrece, sera muy agradecido, la idea es hacer un set de programas de test e incluirlos con el producto.
Title: Re:Avances, Diario de...
Post by: JaViS on June 21, 2016, 03:50:31 PM
Quote from: SplinterGU on June 21, 2016, 03:27:15 PM


necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.




bitbucket
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 21, 2016, 05:19:43 PM
Quote from: JaViS on June 21, 2016, 03:50:31 PM
Quote from: SplinterGU on June 21, 2016, 03:27:15 PM


necesito algun servidor git popular o serio, gratis, y que permita proyectos privados, quiero mantenerlo el proyecto en privado hasta tener una version release.




bitbucket

voy a probarlo, gracias!
Title: Re:Avances, Diario de...
Post by: darío on June 21, 2016, 06:06:57 PM
Bitbucket funciona muy bien. Si luego quieres visibilidad yo optaria por github cuando el repp ya no sea privado.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 21, 2016, 06:09:19 PM
ya subi a bitbucket sin ningun problema, muy rapido.

si, pense en github, segun entiendo lo bueno de git es que despues puedo pasarlo a otro servidor y mantengo el historial y demas.

gracias
Title: Re:Avances, Diario de...
Post by: darío on June 21, 2016, 06:21:19 PM
Yo empecé fenixlib como una carpeta dentro de Smart Fpg Editor en bitbucket... de esa carpeta hice un repositorio en Bitbucket y de ese repositorio lo pasé a github y el historial de los commits se mantuvo todo.

Y todo esto sin demasiada experiencia en git cuando lo hice, bastó informarse un poco...
Title: Re:Avances, Diario de...
Post by: gecko on June 21, 2016, 09:57:43 PM
creo que llegué tarde, pero GitLab (https://gitlab.com) ofrece repos gratis privados, ademas de un monton monton de otras cosillas (integracion continua, builds automatizados, compatibiliad con docker, hosting de pagina web del proyecto, etc, etc, etc).
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 21, 2016, 11:26:44 PM
nunca es tarde... lo revisare luego para la release final...

gracias a ambos!
Title: Re:Avances, Diario de...
Post by: master on June 28, 2016, 04:26:38 AM
Yo iba a proponer un repo en GitHub, tengo una cuenta que permite repos privados, solo tendría que darte acceso al repo.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 28, 2016, 01:26:21 PM
gracias, por ahora ya tengo un privado, y luego pasare a publico.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 04:05:29 AM
he incorporado algunas novedades, como ser declaraciones de variables privadas dentro del codigo de la funcion, o globales fuera, sin necesidad de poner global...end, ni private...end.
ahora todas las variables deben tener un tipo declarado, ya no se permiten mas declarar variables sin tipo (quizas esto lo cambie, no se).

aca pongo un ejemplo tonto


import "libmod_misc";
import "libmod_gfx";
import "libmod_sound";
import "libmod_input";

char * pchar;
char p[]="lalala";

begin

    say(pchar);
    say(p);

    int var1 = 10;

    say( var1 );

end


donde pchar y p, son variables globales, y var1, es una privada.

NOTA: Se mantiene la vieja forma global... end, private...end, pero son opcionales.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 04:06:59 AM
(por momentos tengo la sensacion que estoy destruyendo el lenguaje)
Title: Re:Avances, Diario de...
Post by: warrior_rockk on June 29, 2016, 06:48:38 AM
Me parece adecuado obligar a declarar el tipo de variable. Es una mala practica no hacerlo y puede dar lugar luego a fallos...
Title: Re:Avances, Diario de...
Post by: FreeYourMind on June 29, 2016, 07:38:45 AM
splinter no estropees bennu porfa
Title: Re:Avances, Diario de...
Post by: Drumpi on June 29, 2016, 12:21:40 PM
Hombre, es lo que hacen todos los lenguajes, y hay mucha gente que se ha acomodado a declarar variables por necesidad o porque sólo afectan a parte del código (es muy común en java crear una variable exclusivamente para un bucle for).
Pero también es verdad que es una muy buena práctica el declarar todas las variables al principio del procedimiento/proceso/función, porque así sabes que siempre te van a estar ocupando memoria mientras siga ejecutándose, y lo tienes todo bien localizado.

No veo mal el cambio mientras se mantenga el modelo habitual, para poder seguir definiendo variables locales y públicas, o poder definirlas desde otros ficheros mediante includes. Para mi es importante poder dividir las globales en diversos ficheros .h para saber que corresponden a sus respectivos ficheros .inc y mantener las cosas separadas.
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 01:12:52 PM
Quote from: SplinterGU on June 29, 2016, 04:05:29 AM
he incorporado algunas novedades, como ser declaraciones de variables privadas dentro del codigo de la funcion, o globales fuera, sin necesidad de poner global...end, ni private...end.
ahora todas las variables deben tener un tipo declarado, ya no se permiten mas declarar variables sin tipo (quizas esto lo cambie, no se).

aca pongo un ejemplo tonto


import "libmod_misc";
import "libmod_gfx";
import "libmod_sound";
import "libmod_input";

char * pchar;
char p[]="lalala";

begin

    say(pchar);
    say(p);

    int var1 = 10;

    say( var1 );

end


donde pchar y p, son variables globales, y var1, es una privada.

NOTA: Se mantiene la vieja forma global... end, private...end, pero son opcionales.




Me gusta, tiene mas sentido que la forma anterior. Ademas es mas comodo, siempre me dio PAJA tener que volver hasta la zona de declaracion para poder usar una nueva variable.


Lo que si me rompe tremebundamente las pelotas, y te lo digo asi sin tapujos y de frente, son los IMPORT. No podes hacer que se incluyan solos dependiendo de que funciones se usan?


P.D: ya que estamos modificando el lenguaje, para cuando herencia? ya escribi una vez como se podia implementar de forma basica y me ignoraron completamente, hace falta!
Title: Re:Avances, Diario de...
Post by: Drumpi on June 29, 2016, 02:21:07 PM
Herencia no sé, pero sobrecarga de funciones podría ser interesante :D :D :D

¿Concretamente qué es lo que querías de la herencia? ¿Algo relacionado con la orientación a objetos?
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 02:27:15 PM
herencia ya no se, lo de los autoimports podria ser, tendria que pensar un metodo para hacerlo prolijamente y que soporte librerias de usuario.

la otra opcion es hacer un solo core o un interprete estatico y a la mierd* con los modulos

el binario realmente no seria tan grande, creo que seria de menos de 1mb... pero seria retroceder.

por otro lado, esos imports, son todos los imports que tiene bennugd2, no hay mas, solo los inclui porque estaba probando que no me falte ninguna declaracion sin el tipo de dato especificado.

en el ejemplo, solo "libmod_misc" es necesario.

EDIT: Ah, tambien ahora se pueden escribir los numeros hexa como en C. (por ejemplo, 0x1234) (se preserva la forma anterior)
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 02:30:09 PM
Quote from: Drumpi on June 29, 2016, 02:21:07 PM
Herencia no sé, pero sobrecarga de funciones podría ser interesante :D :D :D

¿Concretamente qué es lo que querías de la herencia? ¿Algo relacionado con la orientación a objetos?


Esto fue lo que propuse hace 4 años. Creo que si se toman el tiempo en leerlo (tampoco es tan largo) y de entender los ejemplos, van a entender cuales son las claras ventajas de contar con algo como esto : http://javis.calepin.co/propuesta-de-sintaxis-para-oop-en-bennugd.html



Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 02:32:35 PM
con respecto a la herencia, no es que te haya ignorado, es que quizas es un poco complejo implementar eso desde C, y meteria demasiada carga.

igual, si tenes el link donde lo propusiste, por favor, compartilo nuevamente
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 02:38:16 PM
Quote from: SplinterGU on June 29, 2016, 02:32:35 PM
con respecto a la herencia, no es que te haya ignorado, es que quizas es un poco complejo implementar eso desde C, y meteria demasiada carga.

igual, si tenes el link donde lo propusiste, por favor, compartilo nuevamente


acabo de ponerlo un post atras: http://javis.calepin.co/propuesta-de-sintaxis-para-oop-en-bennugd.html


Yo creo que como esta bennu, implementar lo que propongo no es mucho mas. No estoy hablando de implementar objetos a nivel C, si no de implementar un par de features a los procesos de siempre, que estan haciendo falta de OOP.


Si lo pensas bien, los procesos ya son objetos, tienen un scope de codigo y variables propios, solo hay que implementar herencia y metodos.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 03:12:46 PM
si, lo vi, disculpa que postee mientras escribias.

no se si es tan simple, lo vere.
Title: Re:Avances, Diario de...
Post by: Drumpi on June 29, 2016, 03:14:26 PM
Sin leerme el código, no sé qué tan complicado sería de implementar.
Si hay que implementarlo, habría que hacerlo con todas las consecuencias, es decir, pasaríamos de un lenguaje procedural a un lenguaje procedural orientado a objetos, y es un cambio bastante fuerte. Es un cambio de paradigma.

Es que a mi se me ocurre no ser tan extremista. No le he dado tantas vueltas como Javis, y no debería decir nada sin haberlo hecho, pero creo que sería más útil tener unos procesos determinados como si fueran clases (en lugar de ser process una superclase), con sus propias variables/propiedades/atributos que serían sus variables públicas, y unas funciones exclusivamente que funcionen con ese proceso.
A ver si logro explicarme:

process string_class ()
local
    string_node pointer lista_strings;
begin
    lista_strings = null;
    loop frame; end
onexit
    id.vaciar_lista();
end

function string_class.add (string cadena)
begin
    if (lista_string == null)
        string_node nueva = alloc(sizeof string_node);
        nueva.cadena = cadena;
        nueva.sig = null;
        lista_string = nueva;
    else
        (...)
    end
end

function string_class.vaciar_lista ()
(...)
end



No sé si se entiende: creamos un proceso, donde su BEGIN es su constructor (coincido con Javis) pero hay que seguir manteniendo el proceso vivo mediante un bucle; y el onexit es el destructor.
Luego tenemos las funciones que pertenecen a ese "objeto" string_class, que pueden hacer uso de sus variables privadas y publicas (las privadas no se pueden ver desde otros procesos, las públicas sí), y que se podrían llamar mediante el ID del proceso, punto, y la función que le pertenece.
Seguiría siendo más o menos lo que se tiene, pero no llega al extremo de tener un lenguaje orientado a objetos (process no sería un superobjeto, son los propios procesos los objetos). Incluso ayudaría a entender el concepto actual de variables públicas, y probablemente ayudaría a su implementación y uso interno.

Pero eso es lo malo, que es una orientación a objetos "a medias", y eso significa que hay que aprender cómo funciona y las diferencias con otros lenguajes... y que tampoco le he dado tantas vueltas como Javis :D

Lo mismo terminamos con BennuGD2 y BennuGD2++ :D :D :D
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 03:31:47 PM
Drumpi, lo que propones es exactamento lo mismo que yo propongo, yo voy un paso mas y además agrego herencia. Pero esa es mi idea de como funcionarian los procesos con metodos.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 04:59:28 PM
no es tan simple implementar todo esto, y toda orientacion a objetos representa overhead.

ni hablar de la propuesta de TYPE, podriamos tener extends sobre extends sobre extends, infinitas veces, lo que complicaria el TYPE e implicaria no solo mantener datos extra, sino que cada vez que se usa TYPE hacer un barrido terrible en la lista de procesos, navegando por cada tipo hasta llegar al tipo BASE o SEMI-BASE, incluso se podrian mantener tablas para optimizar esto, pero a costo de consumo de memoria y performance.

clases con herencia con diferentes parametros, tambien es bastante complejo.

yo creo que si lo que quieres es ahorrar escribir private, publico o local repitiendo codigo, te conviene usar #define

el cambio propuesto no es tan simple como 1 solo paso, romperia compatibilidad con el sistema actual.

podria llegar a implementar poder poner punto en el nombre de la funcion o proceso, aunque pueda dar conflicto con las variables locales o privadas o publicas de un proceso. tambien podria intentar implementar sobrecarga de funciones, aunque la autoconversion de parametros podria generar severos conflictos.

la pregunta es, todo esto es realmente necesario?

esto es interesante, http://crypto.stanford.edu/~blynn/c/object.html

JaViS, para hacer lo que planteas, creo que seria mejor rehacer el compilador completamente, no en C sino en algun pseudo-lenguaje para hacer compiladores. Y creo que seria mucho trabajo, aun tengo muchas cosas criticas por resolver en el runtime, como ser el tema de las colisiones y/o fisica. no es que te haya ignorado completamente, porque esto mismo ya lo habia leido tiempo atras, pero me parece que son mas los problemas que un OOP traeria al lenguaje que las ventajas. incluso meter overhead al motor cuando muchas veces estamos devanandonos los sesos intentando rascar un par de frames.

quizas algo se me ocurra para acercar un poco a lo que vos queres.
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 05:24:39 PM
Yo creo que hoy en dia el problema de Bennu en performance no esta en el procesamiento, si no en el renderizado, no me imagino una implementacion de Type restando frames, realmente, pero bueno todo es relativo.


Por otro lado, si no nos ponemos de acuerdo en las ventajas del OOP medio que no hay lugar para una discusion.  Habiando usado lenguajes orientados y no orientados a objetos, creo que puedo opinar que es algo que ni se deberia discutir a esta altura, todos los lenguajes evolucionan naturalmente a la orientacion a objetos y las implementaciones son cada vez mas elegantes. Bennu es lenguaje muy interesante, porque de entrada tiene una estructura de codigo muy parecida a los objetos y que queda a medio camino, por lo cual seria hasta muy apropiado llevarlo al siguiente nivel.

Ademas, estamos discutiendo si mejorar la performance de Bennu o si aprovechar para actualizarlo y volverlo competente frente a las alternativas.

Por ahi te cuesta reconocerlo, yo se que tu opinion personal es que OOP no es necesario, -esta bien-, estrictamente hablando, se puede hacer lo mismo con o sin OOP, pero no puedo evitar pensar que pensas asi por falta de experiencia trabajando con lenguajes modernos, OOP tiene muchas ventajas practicas.


Edit: independientemente de mi opinion, sos vos el que lo esta haciendo, no hay lugar para ningun tipo de reclamo, y no quiero que te lo tomes asi, yo insisto porque creo que vale la pena, pero bueno, no creas que lo hago desde una posicion de comodo pidiendo huevadas, entiendo perfectamente el trabajo que requiere y no espero que hagas todo lo que te piden. Con que lo hayas considerado me basta, se que la sugerencia la di.
Title: Re:Avances, Diario de...
Post by: Drumpi on June 29, 2016, 08:10:38 PM
Hombre, yo entiendo la postura de Splinter, y también es verdad que hay MUCHÍSIMA gente que opina que la OOP es el peor cáncer que asola los lenguajes de programación :D
Tiene sus ventajas y sus inconvenientes, y a estas alturas podría tener más inconvenientes que ventajas, más que nada, por lo dicho: estamos cambiando el paradigma de programación, y además a algo totalmente nuevo, porque creo que no hay ningún lenguaje procedural orientado a objetos (al menos, que yo sepa, tampoco soy un experto), y menos si hablamos de la pseudoconcurrencia de los DIV-like.
Y cambiar el paradigma es cambiar el compilador y parte del intérprete, y aquí volvemos a la idea de BennuGD2 y BennuGD2++.

A mi me gusta la OOP, me parece ordenada y elegante, aunque no uso todas sus cualidades.
Pero en bennu no sé si es buena idea. Se supone que es un lenguaje sencillo para novatos, y siempre hemos tratado de mantenerlo simple. Aun me cuesta entender lo de las variables públicas, porque parecen puestas como un parche (con eso de que el tipo de variable debe declararse con el nombre del proceso y demás) y quizás sea lo más parecido a una OO del código (por eso decía lo de usarlas como objetos, pero nunca hablé de usar herencia, es en lo que no coincido con Javis).

Y hay más cosas que se deben acelerar en Bennu, aparte del renderizado, y es poder aprovechar el paralelismo de ejecución en las CPU multicore, eso le daría al menos un empujón del 25% de velocidad.

Realmente no puedo ponerme de lado de ninguno, en parte por mi cerebro simétrico, en parte porque no soy un erudito de los lenguajes, ni conozco la estructura interna de Bennu. Quizás me incline más en intentar mantener lo que tenemos y que funcione, que en darle un giro radical. Como mucho implementar objetos sólo para usar las variables privadas y públicas de los procesos, o más bien, funciones que "hereden" sólo las variables privadas y públicas de un determinado tipo de proceso, nada más (que no hereden ni código, ni tipo, ni constructores, ni destructores...).

Y oye, que si la sobrecarga es un problema, seguiré llamando a mis procesos mi_proceso1(a), mi_proceso2(a,b,c), etc, etc :D
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 08:37:57 PM
Quote from: Drumpi on June 29, 2016, 08:10:38 PMes verdad que hay MUCHÍSIMA gente que opina que la OOP es el peor cáncer que asola los lenguajes de programación :D


Quizas con C++ y Java, pero se evolucionó mucho desde entonces



Quote from: Drumpi on June 29, 2016, 08:10:38 PM
pero nunca hablé de usar herencia, es en lo que no coincido con Javis).
[/size]
Para mi es la parte mas interesante, porque es donde mas ahorras codigo.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 09:09:06 PM
Quote from: JaViS on June 29, 2016, 05:24:39 PM
Yo creo que hoy en dia el problema de Bennu en performance no esta en el procesamiento, si no en el renderizado, no me imagino una implementacion de Type restando frames, realmente, pero bueno todo es relativo.


Por otro lado, si no nos ponemos de acuerdo en las ventajas del OOP medio que no hay lugar para una discusion.  Habiando usado lenguajes orientados y no orientados a objetos, creo que puedo opinar que es algo que ni se deberia discutir a esta altura, todos los lenguajes evolucionan naturalmente a la orientacion a objetos y las implementaciones son cada vez mas elegantes. Bennu es lenguaje muy interesante, porque de entrada tiene una estructura de codigo muy parecida a los objetos y que queda a medio camino, por lo cual seria hasta muy apropiado llevarlo al siguiente nivel.

Ademas, estamos discutiendo si mejorar la performance de Bennu o si aprovechar para actualizarlo y volverlo competente frente a las alternativas.

Por ahi te cuesta reconocerlo, yo se que tu opinion personal es que OOP no es necesario, -esta bien-, estrictamente hablando, se puede hacer lo mismo con o sin OOP, pero no puedo evitar pensar que pensas asi por falta de experiencia trabajando con lenguajes modernos, OOP tiene muchas ventajas practicas.


Edit: independientemente de mi opinion, sos vos el que lo esta haciendo, no hay lugar para ningun tipo de reclamo, y no quiero que te lo tomes asi, yo insisto porque creo que vale la pena, pero bueno, no creas que lo hago desde una posicion de comodo pidiendo huevadas, entiendo perfectamente el trabajo que requiere y no espero que hagas todo lo que te piden. Con que lo hayas considerado me basta, se que la sugerencia la di.

por favor, no me malinterpretes, es claro que no me gusta la OOP, puedo argumentar muchas cosas por las que no me gustan, y en cuanto a experiencia en OOP, actualmente es lo que uso laboralmente, uso varios lenguajes OOP, que me desagradan totalmente, pero en fin... no queda otra.

por otro lado es cierto que no le veo ahora mismo la ventaja, porque se pueden hacer cosas similares pero con mas control, el tema principal es que cambia bastante el paradigma, como bien dijo drumpi, y yo creo que necesita un cambio importante en el compilador, y para meter esfuerzo en tal cambio, creo que seria mejor hacer un compilador completamente nuevo, y ahi es donde caigo en un EXTASIS PAJAL, si tengo que iniciar de cero, sin dudas debere hibernar un buen tiempo para tomar energias y ganas para iniciar algo de cero.

ahora estoy un poco entusiasmado con bennugd2, repasando todo, mejorando muchas cosas, cambiando otras e incorporando nuevas.

quizas con el motor version 2 completo, me pueda poner a experimentar estas cosas para no aburrirme.

pero quiero que no interpretes como que te ignoro o como un NO rotundo, quizas algo de lo que se plantea se pueda implementar, quizas poder implementar algo con DECLARE o algo asi, donde se pueda definir una funcion modelo con sus variables privadas y argumentos, evitando esa complejidad del TYPE (evitando ese TYPE <base> y que traiga todos los derivados), evitar los constructores y destructores, como el cambio de parametros.
lo que digo es:

DECLARE INT A(INT X)
BEGIN
   PRIVATE
        P;
   LOCAL
        N;
   PUBLIC
        M;
END

PROCESS B CLONE A
BEGIN
  ...code..
END

donde TYPE A no retornaria nada, pero TYPE B retornaria todos los procesos creados B

quizas algo de eso si se podria llegar a implementar.
PROTOTYPE
e incluso tal vez un codigo inicial en el declare, pero esto no estoy 100% que tan simple pueda resultar.
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 29, 2016, 09:18:43 PM
Quote from: Drumpi on June 29, 2016, 08:10:38 PM
Hombre, yo entiendo la postura de Splinter, y también es verdad que hay MUCHÍSIMA gente que opina que la OOP es el peor cáncer que asola los lenguajes de programación :D
Tiene sus ventajas y sus inconvenientes, y a estas alturas podría tener más inconvenientes que ventajas, más que nada, por lo dicho: estamos cambiando el paradigma de programación, y además a algo totalmente nuevo, porque creo que no hay ningún lenguaje procedural orientado a objetos (al menos, que yo sepa, tampoco soy un experto), y menos si hablamos de la pseudoconcurrencia de los DIV-like.
Y cambiar el paradigma es cambiar el compilador y parte del intérprete, y aquí volvemos a la idea de BennuGD2 y BennuGD2++.

A mi me gusta la OOP, me parece ordenada y elegante, aunque no uso todas sus cualidades.
Pero en bennu no sé si es buena idea. Se supone que es un lenguaje sencillo para novatos, y siempre hemos tratado de mantenerlo simple. Aun me cuesta entender lo de las variables públicas, porque parecen puestas como un parche (con eso de que el tipo de variable debe declararse con el nombre del proceso y demás) y quizás sea lo más parecido a una OO del código (por eso decía lo de usarlas como objetos, pero nunca hablé de usar herencia, es en lo que no coincido con Javis).

Y hay más cosas que se deben acelerar en Bennu, aparte del renderizado, y es poder aprovechar el paralelismo de ejecución en las CPU multicore, eso le daría al menos un empujón del 25% de velocidad.

Realmente no puedo ponerme de lado de ninguno, en parte por mi cerebro simétrico, en parte porque no soy un erudito de los lenguajes, ni conozco la estructura interna de Bennu. Quizás me incline más en intentar mantener lo que tenemos y que funcione, que en darle un giro radical. Como mucho implementar objetos sólo para usar las variables privadas y públicas de los procesos, o más bien, funciones que "hereden" sólo las variables privadas y públicas de un determinado tipo de proceso, nada más (que no hereden ni código, ni tipo, ni constructores, ni destructores...).

Y oye, que si la sobrecarga es un problema, seguiré llamando a mis procesos mi_proceso1(a), mi_proceso2(a,b,c), etc, etc :D

estoy repensando el tema de las publicas, para hacerlo mas simple, incluso la sintaxis del declare no me agrada mucho.
tambien por momentos tengo una terrible tentacion del lenguaje un like C, pero luego pienso que si hago eso, en lugar de programar en bennugd2 es mejor programar en C, que seria lo atractivo que me haria programar en bennu en lugar de C?
con respecto a ese 25% creo que lo alcance con pasar el motor a 64bits, probe con el motor en 64bits ese sample que se habia puesto de performance de unos 1000 cuadrados rebotando en pantalla, y en la prueba de 32bits me daba unos ~140fps, ahora en 64bits me da ~187fps.
Title: Re:Avances, Diario de...
Post by: JaViS on June 29, 2016, 10:25:55 PM
Quote from: SplinterGU on June 29, 2016, 09:18:43 PM
con respecto a ese 25% creo que lo alcance con pasar el motor a 64bits, probe con el motor en 64bits ese sample que se habia puesto de performance de unos 1000 cuadrados rebotando en pantalla, y en la prueba de 32bits me daba unos ~140fps, ahora en 64bits me da ~187fps.


Que buenas noticias :D
Title: Re:Avances, Diario de...
Post by: Drumpi on June 29, 2016, 11:55:57 PM
Anda ¿Y eso? ¿Sólo con pasarlo a 64bits? ¿Cómo es posible? ¿El compilador hace uso de instrucciones de ejecución simultánea o algo así? :D

Javis: No sé qué evoluciones ha habido. Desde luego yo programo muy cómodo en Java, no me importa su OOP (lo que no me gusta del lenguaje son las 40 capas que hay debajo, más el intérprete, mas el SO, más... o que no se tenga control alguno del uso de memoria y al final siempre se depende del recolector de basura).
Y he usado herencia y he ahorrado código, pero es algo que rara vez he necesitado programando en DIV, Fenix o Bennu, y si va a dar tantos problemas de implementación, pues no es algo que me quite el sueño, se repite código y ya está: el código de ejecución no es lo que más memoria consume.

Pero son opiniones mías, no os dejeis influir por ellas, vosotros sabeis más que yo de programación.

Javis, ¿Y por qué esa manía de escribir cosas que no se pueden leer? :D :D :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on June 30, 2016, 02:22:18 AM
en procesadores 64 bits el acceso a direcciones alineas a 64bits es mucho mas rapido que a 32bits, y segun esta prueba, parece ser bastante mas rapido...
Title: Re:Avances, Diario de...
Post by: Drumpi on July 01, 2016, 12:30:40 AM
Eso díselo a los de RARE, que usaron la N64 en modo 32 bits para ganar velocidad en algunos de sus juegos :D :D :D (verídico).
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 01, 2016, 01:10:34 AM
Quote from: Drumpi on July 01, 2016, 12:30:40 AM
Eso díselo a los de RARE, que usaron la N64 en modo 32 bits para ganar velocidad en algunos de sus juegos :D :D :D (verídico).

porque seguramente tenian muchas conversiones de 32 a 64 y viceversa, o corrian en procesadores de 32bits.
en la version 64bits que estoy cocinando, tengo todos los puntos donde se usan mucho procesamiento (runtime, funciones, bytecode bennugd, etc) a 64bits, asi mismo todas las librerias de uso general, con lo que se gana mucho de performance.
el procesador (si es de 64bits) accede mas rapido a datos en memoria alineados a 64bits.

pero bueno, digamos que este rendimiento no es solamente por lo que yo toque de codigo, tambien todas las librerias incluso la SDL ahora son 64bits.
Title: Re:Avances, Diario de...
Post by: warrior_rockk on July 01, 2016, 08:53:46 AM
Me parece muy interesante el debate sobre incorporar PPO a Bennu2 y, leyendo lo que ponéis, ambas partes tenéis razón. Considero PPO extremadamente útil para la programación y en videojuegos mas todavía, pero, implementarlo en un lenguaje que nativamente no tiene PPO, como es C, lo veo complicado. Yo buscaría soluciones intermedias.
Como bien dice Splinter, es posible implementarlo cualquier cosa de otra manera, pero el problema es la eficiencia de memoria.
Hace tiempo puse un post donde explicaba una manera de realizar "herencia" pero de variables publicas (http://forum.bennugd.org/index.php?topic=3992.msg64504#msg64504). Resumidamente, se trababa de crear un proceso ficticio con las variables publicas necesarias, y luego declarar los procesos que quieren que las hereden como ese tipo. Para Bennu2 iría un poco mas allá y permitiría poder declarar código dentro de ese proceso ficticio que se ejecutaría en los procesos de ese tipo. Una opción sería implementarlo como las rutinas locales que ya existen, un salto de código al código del proceso padre y luego continuar con el posible codigo extendido del proceso hijo. (no entender padre/hijo como la relacion de Bennu si no como clase y proceso heredado). Evidentemente el código que se ejecute de la clase, debería usar las variables del proceso que lo llama.
De esta manera podríamos definir comportamientos básicos y heredar y crear en arbol comportamientos mas complejos (clase spirte->entidad hereda de sprite->enemigo hereda de entidad->etc..) y sólo añadir el codigo que los caracteriza.




De todas maneras y como conclusión final, todo es mejorable pero ahora mismo, no me veo limitado por Bennu en cuanto a funcionalidad. Me centraría en mejorar el rendimiento y dejaría esto como opcional.
Title: Re:Avances, Diario de...
Post by: Drumpi on July 01, 2016, 12:03:19 PM
Quote from: SplinterGU on July 01, 2016, 01:10:34 AM
Quote from: Drumpi on July 01, 2016, 12:30:40 AM
Eso díselo a los de RARE, que usaron la N64 en modo 32 bits para ganar velocidad en algunos de sus juegos :D :D :D (verídico).
porque seguramente tenian muchas conversiones de 32 a 64 y viceversa, o corrian en procesadores de 32bits.

No, RARE trabajaba en exclusiva para N64 en aquella época, igual que hizo en NES, SNES y parte de la vida de GC hasta que fue comprada por M$.
Lo que pasaba en aquel entonces es que N64 usaba uno de los primeros procesadores de 64bits, y aun hay debates de si N64 era realmente una CPU de 64 bits o de 32bits (mis conclusiones, de momento, apuntan a una CPU de 32bits en cuestión de registros y demás, pero con bus de direcciones de 64 bits, pero no me hagas mucho caso).

Ahora aquí es al revés, estábamos intentando trabajar a 32bits en máquinas de 64bits, y la conversión es lo que reducía el rendimiento (aparte de todas las mejoras que traen los modos 64bits para acelerar la ejecución).

De todas formas, lo de RARE te lo decía en broma :P
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 01, 2016, 01:00:52 PM
Quote from: Drumpi on July 01, 2016, 12:03:19 PM
Quote from: SplinterGU on July 01, 2016, 01:10:34 AM
Quote from: Drumpi on July 01, 2016, 12:30:40 AM
Eso díselo a los de RARE, que usaron la N64 en modo 32 bits para ganar velocidad en algunos de sus juegos :D :D :D (verídico).
porque seguramente tenian muchas conversiones de 32 a 64 y viceversa, o corrian en procesadores de 32bits.

No, RARE trabajaba en exclusiva para N64 en aquella época, igual que hizo en NES, SNES y parte de la vida de GC hasta que fue comprada por M$.
Lo que pasaba en aquel entonces es que N64 usaba uno de los primeros procesadores de 64bits, y aun hay debates de si N64 era realmente una CPU de 64 bits o de 32bits (mis conclusiones, de momento, apuntan a una CPU de 32bits en cuestión de registros y demás, pero con bus de direcciones de 64 bits, pero no me hagas mucho caso).

Ahora aquí es al revés, estábamos intentando trabajar a 32bits en máquinas de 64bits, y la conversión es lo que reducía el rendimiento (aparte de todas las mejoras que traen los modos 64bits para acelerar la ejecución).

De todas formas, lo de RARE te lo decía en broma :P

RARE! me bloquee completamente, olvide quien era RARE, y pense que te referias a algun emulador... dios mio, que mal estoy...
Title: Re:Avances, Diario de...
Post by: Drumpi on July 01, 2016, 03:23:18 PM
Haré gala del topicazo de mi tierra ("los sevillanos son unos exageraos"), y te diré que probablemente yo esté peor que tu :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 12:37:21 AM
que les va pareciendo esta sintaxis


import "libmod_misc";

int alto = 12345;

int po()
begin
    public int va = 123;
    int b;
    while(1)
        frame;
    end
end

po pid;

begin
    string var2, var_string;
    int id1, id2, id3;
    po po1;

    po1 = po();

    say(po1.va);

    let_me_alone();
end

Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 12:40:33 AM
para los curiosos eso genera

Quote
BGDC 2.0.0 (Jul 11 2016 21:13:28)
Bennu Game Development Compiler

Copyright (c) 2006-2016 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 José Luis Cebrián Pagüe (Fenix)


---- Global variables

[0000:0007]     INT ARGC
[0008:0271]     ARRAY [33] OF STRING ARGV
[0272:0279]     INT OS_ID
[0280:0359]     STRUCT FILEINFO:
[0000:0007]      + STRING PATH
[0008:0015]      + STRING NAME
[0016:0023]      + INT DIRECTORY
[0024:0031]      + INT HIDDEN
[0032:0039]      + INT READONLY
[0040:0047]      + INT SIZE
[0048:0055]      + STRING CREATED
[0056:0063]      + STRING MODIFIED
[0064:0071]      + STRING ACCESSED
[0072:0359]      + STRING STATECHG
[0360:0487]     ARRAY [16] OF STRING REGEX_REG
[0488:0567]     ARRAY [10] OF INT TIMER
[0568:0575]     INT ALTO
[0576:0583]     INT PID

---- Local variables

[0000:0007]     INT ID
[0008:0047]     STRUCT RESERVED:
[0000:0007]      + INT PROCESS_TYPE
[0008:0015]      + INT FRAME_PERCENT
[0016:0023]      + INT STATUS
[0024:0031]      + INT SAVED_STATUS
[0032:0047]      + INT SAVED_PRIORITY
[0048:0055]     INT FATHER
[0056:0063]     INT SON
[0064:0071]     INT SMALLBRO
[0072:0079]     INT BIGBRO
[0080:0087]     INT PRIORITY
[0088:0119]     STRUCT __PROCCESS_RESERVED:
[0000:0007]      + INT TYPE_SCAN
[0008:0015]      + INT ID_SCAN
[0016:0023]      + INT CONTEXT
[0024:0119]      + QWORD SIGNAL_ACTION


---------- Process 0 (MAIN)

---- Private variables
[0000:0007]     STRING VAR2
[0008:0015]     STRING VAR_STRING
[0016:0023]     INT ID1
[0024:0031]     INT ID2
[0032:0039]     INT ID3
[0040:0047]     INT PO1

        00000000000000FF 0000000000000015                              string_cat.prg:21       

        0000000000000092 0000000000000028          PRIVATE             40

        0000000000000089 0000000000000001          CALL                PO (1)

        0000000000000048                           LETNP               

        00000000000000FF 0000000000000017                              string_cat.prg:23       

        0000000000000097 0000000000000028          GET_PRIVATE         40

        00000000000000FD 0000000000000000          GET_REMOTE_PUBLIC   0

        00000000000000C4 0000000000000000          INT2STR             0

        000000000000008C 0000000000000063          SYSPROC             SAY (99)

        00000000000000FF 0000000000000019                              string_cat.prg:25       

        000000000000008C 0000000000000058          SYSPROC             LET_ME_ALONE (88)

        0000000000000000                           END                 

22:


---------- Process 1 (PO)

---- Private variables
[0000:0007]     INT B

---- Public variables
[0000:0007]     INT VA

        0000000000000084 000000000000007B          PUSH                123


Start 1:

2:
        00000000000000FF 0000000000000009                              string_cat.prg:9         

        0000000000000084 0000000000000001          PUSH                1

        000000000000009C 0000000000000011          JFLASE              17

        00000000000000FF 000000000000000A                              string_cat.prg:10       

        0000000000000084 0000000000000064          PUSH                100

        0000000000000002                           FRAME               

        00000000000000FF 000000000000000B                              string_cat.prg:11       

        000000000000009B 0000000000000002          JUMP                2


End 1:

17:
        0000000000000000                           END                 

18:



recorte la parte final del log porque el post solo permite 20000 caracteres
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 04:01:22 AM
definitivamente voy a retrasar un poco la salida de bennugd2, adios SDL2 para los el render... voy a usar openGL... por que?

aca paso numeros

Quote

*** BennuGD2 con SDL2 ***
max texture size: 8192 x 8192
frames=197 time=11068 fps=17.79906

*** C puro con SDL2 ***
Width of graph.bmp: 27
Height of graph.bmp: 33
frames=242 time=8890 fps=27.221597

*** C puro con OpenGL ***
Width of graph.bmp: 27
Height of graph.bmp: 33
frames=360 time=7865 fps=45.772409

resultado de 10000 (10 mil) procesos con grafico de 27x33, rebotando por una ventana de 640x480 32bits.

maldito SDL2! casi duplica el costo de renderear...

demas esta explicar el motivo de por que quiero pasarlo, ni hablar que puedo de esta forma emplear con opengl trucos, aprovechando nuevas caracteristicas de bennugd para mejorar la performance de rendereado...

ademas, de que segun mis viejos test (el primer ejemplo opengl fue con ese test que hice inicialmente), podia manejar texturas de todas las profundidades (al menos las mas importantes)... (tengo que revisarlo bien, a ver si tenia algun problema o no...)
Title: Re:Avances, Diario de...
Post by: panreyes on July 12, 2016, 06:35:59 AM
Splinter, el único problema que le veo a que utilices Open GL directamente es que si luego quieres dar soporte a Vulcan, OpenGLES o DirectX, tendrás que hacerlo manualmente, ¿me equivoco?
Title: Re:Avances, Diario de...
Post by: AmakaSt on July 12, 2016, 08:40:31 AM
SDL2 no renderizaba con OpenGL y Direct3D?  ???
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 11:38:16 AM
Quote from: panreyes on July 12, 2016, 06:35:59 AM
Splinter, el único problema que le veo a que utilices Open GL directamente es que si luego quieres dar soporte a Vulcan, OpenGLES o DirectX, tendrás que hacerlo manualmente, ¿me equivoco?

si, asi es... pero eso no me da miedo... a Vulkan lo tengo en la mira...
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 11:38:40 AM
Quote from: AmakaSt on July 12, 2016, 08:40:31 AM
SDL2 no renderizaba con OpenGL y Direct3D?  ???

si, pero no muy eficientemente.

y con mucho overhead.

el tema es que la arquitectura de SDL2 impide hacer algunas optimizaciones en el uso de opengl.
Title: Re:Avances, Diario de...
Post by: Drumpi on July 12, 2016, 12:59:58 PM
Quote from: SplinterGU on July 12, 2016, 12:37:21 AM
que les va pareciendo esta sintaxis


import "libmod_misc";

int alto = 12345;

int po()
begin
    public int va = 123;
    int b;
    while(1)
        frame;
    end
end

po pid;

begin
    string var2, var_string;
    int id1, id2, id3;
    po po1;

    po1 = po();

    say(po1.va);

    let_me_alone();
end



¿Entonces ahí po() es un proceso? Lo digo porque no tiene return y usa frame ¿O finalmente no va a haber distinción entre funciones y procesos? porque a mi me ha resultado muy útil en el último proyecto el tener un proceso esperando una función que había llamado a otros procesos, por aquello de que detiene su ejecución y espera un valor (es lo más parecido a envío de mensajes entre procesos que he visto :)).
Aparte de eso, prefiero no opinar si se va a prescindir de los icónicos "process" o "function", ya sabes que a mi hay ciertos cambios que no me gustan hasta que ha pasado un tiempo y me he acostumbrado.

Respecto a OpenGL vs SDL, para el usuario final va a ser transparente, así que realmente la decisión depende de lo que te sea más cómodo. Si con OpenGL tienes más velocidad, acceso a más profundidades de mapa, más control del sistema, y no supone una pega con las librerías que quieres usar ni con portarlo a diferentes plataformas, entonces usa OpenGL.
¿Algunas de las alternativas te permite ejecutar código en la tarjeta gráfica? Lo digo por aquello que te daba problemas de modificar mapas y demás una vez estaban en la VRAM, y poder aplicar filtros de postprocesado. Y si podemos programar shaders, para modificar los maps en la RAM de la gráfica o el buffer de video justo antes del volcado para, yo que sé, aplicar efecto blur, hacer un croma, modificar los colores para los daltónicos... pues estaría genial :D
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 12, 2016, 01:15:04 PM
po() es un proceso

aparentemente siempre estuvo esa forma de declarar procesos, uno puede no poner la palabra PROCESS delante e incluso tampoco un tipo de dato al proceso

por ejemplo

po()
begin
end

es igual que

process po()
begin
end

el int que agregue es porque estoy probando el compilador

por otro lado, no se pierde PROCESS / FUNCTION, eso sigue estando

pueden probar este ejemplo en la actual bennugd


po()
begin
end

begin
po();
end

Title: Re:Avances, Diario de...
Post by: SplinterGU on July 13, 2016, 04:11:35 AM
Quote from: SplinterGU on July 12, 2016, 04:01:22 AM
definitivamente voy a retrasar un poco la salida de bennugd2, adios SDL2 para los el render... voy a usar openGL... por que?

aca paso numeros

Quote

*** BennuGD2 con SDL2 ***
max texture size: 8192 x 8192
frames=197 time=11068 fps=17.79906

*** C puro con SDL2 ***
Width of graph.bmp: 27
Height of graph.bmp: 33
frames=242 time=8890 fps=27.221597

*** C puro con OpenGL ***
Width of graph.bmp: 27
Height of graph.bmp: 33
frames=360 time=7865 fps=45.772409

resultado de 10000 (10 mil) procesos con grafico de 27x33, rebotando por una ventana de 640x480 32bits.

maldito SDL2! casi duplica el costo de renderear...

demas esta explicar el motivo de por que quiero pasarlo, ni hablar que puedo de esta forma emplear con opengl trucos, aprovechando nuevas caracteristicas de bennugd para mejorar la performance de rendereado...

ademas, de que segun mis viejos test (el primer ejemplo opengl fue con ese test que hice inicialmente), podia manejar texturas de todas las profundidades (al menos las mas importantes)... (tengo que revisarlo bien, a ver si tenia algun problema o no...)


prueba con pixstudio de esto me da


$ ./pxtp lesson6
DEPRECATION WARNING: Setting the bit depth in set_mode is no longer valid
frames=197 time=18471 fps=10.665367


me pregunto por que diablos tal diferencia? quizas los 64bits? ahora mismo usamos SDL2, pero no de la misma forma... mmm... maldicion, creo que voy a tener que intentar hacer un binario 32bits del actual bennugd2.

me gustaria ver hasta donde podemos optimizar el motor... en fin...
Title: Re:Avances, Diario de...
Post by: JaViS on July 13, 2016, 01:43:05 PM
Y solo por curiosidad.. cuales son los resultados con el Bennu actual?
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 13, 2016, 02:35:35 PM
Quote from: JaViS on July 13, 2016, 01:43:05 PM
Y solo por curiosidad.. cuales son los resultados con el Bennu actual?

buena pregunta... a ver...


BennuGD (ultima version)

frames=175 time=21539 fps=8.124797

Title: Re:Avances, Diario de...
Post by: JaViS on July 13, 2016, 02:59:47 PM
Parece que OpenGL vale la pena. Que desventaja tiene a SDL?
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 13, 2016, 03:13:34 PM
Quote from: JaViS on July 13, 2016, 02:59:47 PM
Parece que OpenGL vale la pena. Que desventaja tiene a SDL?

podria decir que la desventaja es que para soportar otra cosa que no sea opengl habria que hacer el port.

pero por otro lado hay muchas cosas que se pueden hacer usando directamente opengl que no se pueden hacer con sdl2.
Title: Re:Avances, Diario de...
Post by: JaViS on July 13, 2016, 03:26:18 PM
En es caso habria que abstraer el modulo de renderizado de modo que puedan existir uno en SDL y uno en OpenGL y que sea facil switchear desde el lenguaje
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 13, 2016, 03:42:12 PM
Quote from: JaViS on July 13, 2016, 03:26:18 PM
En es caso habria que abstraer el modulo de renderizado de modo que puedan existir uno en SDL y uno en OpenGL y que sea facil switchear desde el lenguaje

actualmente el render SDL esta fijo a openggl, asi que es lo mismo, aunque una version a otro render con SDL2 seria relativamente simple.
Title: Re:Avances, Diario de...
Post by: JaViS on July 13, 2016, 05:29:37 PM
Ah, o sea, que la capa de SDL a openGL es la lerda, yo pensaba que era todo por software
Title: Re:Avances, Diario de...
Post by: BoMbErLiNk on July 13, 2016, 06:57:04 PM
Una pregunta un poco perdida..  la nueva versión de Bennu será 2D o también hay planes de hacer algo complejo en 3D, con soporte para modelos .obj, etc?
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 13, 2016, 07:28:44 PM
Quote from: JaViS on July 13, 2016, 05:29:37 PM
Ah, o sea, que la capa de SDL a openGL es la lerda, yo pensaba que era todo por software

hay varias cosas... la capa SDL tiene una carga extra importante, y por otro lado, la forma o diseño de como se manejan las texturas y el render hacen que no se puedan usar ciertas optimizaciones GPU... que permitiran ganar un buena cantidad de frames haciendo ciertos trucos que se pueden aprovechar "indirectamente" por nuevas features bennugd.

Quote from: BoMbErLiNk on July 13, 2016, 06:57:04 PM
Una pregunta un poco perdida..  la nueva versión de Bennu será 2D o también hay planes de hacer algo complejo en 3D, con soporte para modelos .obj, etc?

no lo tengo planeado, pero si lo tengo pensado... muy probable...
Title: Re:Avances, Diario de...
Post by: Drumpi on July 14, 2016, 02:10:46 AM
Más que .obj, lo que habría que mirar sería fbx, que parece que se está convirtiendo en el estandar (Blender, Unity3D, las herramientas de adobe...).

Lo que yo no entiendo es una cosa: SDL está portado a casi cualquier cosa y usa OpenGL, sin embargo, OpenGL no está portado, y en muchos casos es incompatible con la plataforma ???
A mi me gustaría también poder cambiar a mano entre un motor u otro, de hecho, esa era la filosofía inicial de Bennu, pero nunca hubo alternativas ^^U Lo que no voy a pedir a Splinter es que se curre ambos motores cuando ni siquiera sabemos hasta qué punto se va a completar la primera beta de BennuGD2.

Por cierto ¿ya es jueves? ¡¡¡¡¡FELICIDADES, MAESE ASTILLA!!!!!
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 14, 2016, 02:55:31 AM
se va a completar, se va a completar! no llevo tanto trabajado inutilmente...

te acordaste! gracias!
Title: Re:Avances, Diario de...
Post by: Drumpi on July 15, 2016, 01:06:23 AM
Gracias, pero el mérito es del chivato que tenemos en la parte inferior del foro ^^U
Title: Re:Avances, Diario de...
Post by: SplinterGU on July 15, 2016, 02:43:02 AM
Quote from: Drumpi on July 15, 2016, 01:06:23 AM
Gracias, pero el mérito es del chivato que tenemos en la parte inferior del foro ^^U


jaja! igual fuiste el unico por estos lares... gracias!
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 07, 2017, 04:35:14 AM
r338 liberada!
Title: Re:Avances, Diario de...
Post by: Transdiv on March 08, 2017, 01:11:17 AM
Habrá un ChangeLog para saber que se Corrigió/Añadió?
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 08, 2017, 02:07:28 AM
me corrijo, era 338... diablos que no veo nada... ahora veo el changelog
Title: Re:Avances, Diario de...
Post by: SplinterGU on March 08, 2017, 02:08:49 AM
bugfixs

r336 | splintergu | 2016-10-26 15:40:26 -0300 (mié 26 de oct de 2016) | 1 línea

- fix bitmap analyze for 32 bits maps
------------------------------------------------------------------------
r337 | splintergu | 2017-03-07 00:55:20 -0300 (mar 07 de mar de 2017) | 2 líneas

- fix build linux
- fix problem with put_screen
Title: Re:Avances, Diario de...
Post by: blostec on May 28, 2017, 07:58:12 PM
Hola Splinter, acabo de bajar la r339 que aun estaba con la r335. Llevo un tiempo apartado del foro, es bueno ver que aun sigues con el desarrollo, muchas gracias por tu esfuerzo y dedicación. Saludos!
Title: Re:Avances, Diario de...
Post by: l1nk3rn3l on May 28, 2017, 08:55:31 PM
Enhorabuena gracias por las mejoras como siempre.. 

el post es de marzo pero a veces no hay tiempo para leerse todo el foro

;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on May 28, 2017, 08:57:42 PM
de nada! tampoco hice un gran anuncio.

gracias.
Title: Re:Avances, Diario de...
Post by: blostec on May 29, 2017, 08:29:50 AM
Splinter podrías poner el Changelog de la r339 para ver que los cambios. Muchas gracias, a ver si esta semana puedo dedicarle tiempo y rescatar mi viejo proyecto que ya sería hora  ;D
Title: Re:Avances, Diario de...
Post by: SplinterGU on January 06, 2018, 08:31:48 AM
bug detectado, cambios en el svn.

- fix crash with use of ternary operator in some conditions.
- add NOP mnemonic

el bug afecta a todos los productos derivados (incluso fenix) (no podemos ser menos que Intel, asi que teniamos que detectar un bug viejo)

el tema esta cuando se tiene una expresion con una suma o resta y luego un operador ternario, aca pongo unos ejemplos, y una nota cuales crashean.


   res =  ( var2 != 3 ) ? 5 : 2 ;
   res = var1 + ( ( 1 != 3 ) ? 5 : 2 );
   res = var1 * ( ( var2 != 3 ) ? 5 : 2 );
   res = ( ( var2 != 3 ) ? 5 : 2 ) + var1;
   res = var1 + ( ( var2 != 3 ) ? 5 : 2 ); // crash
   res = var1 + ( ( var2 != 3 ) ? var4 : var3 );
   res = var1 + ( ( var2 != 3 ) ? 1 : var3 );
   res = var1 + ( ( var2 != 3 ) ? var3 : 1 ); // crash
   res = var1 + ( ( var2 != 3 ) ? 1 : ( ( var2 != 3 ) ? 1 : var3 ) );


la condicion del error es cuando se cumple la condicion y el elemento else es un valor constante.

el compilador estaba haciendo una optimizacion que no correspondia.

ejemplo de test completo


PROGRAM crash;

#if __BGD__ == 2
   import "mod_misc";
#else
   import "mod_say";
#endif

PRIVATE
   int var1 = 100;
   int var2 = 1;
   int var3 = 99;
   int var4 = 66;
   int res;

BEGIN
//   res =  ( var2 != 3 ) ? 5 : 2 ;
//   res = var1 + ( ( 1 != 3 ) ? 5 : 2 );
//   res = var1 * ( ( var2 != 3 ) ? 5 : 2 );
//   res = ( ( var2 != 3 ) ? 5 : 2 ) + var1;
   res = var1 + ( ( var2 != 3 ) ? 5 : 2 ); // crash
//   res = var1 + ( ( var2 != 3 ) ? var4 : var3 );
//   res = var1 + ( ( var2 != 3 ) ? 1 : var3 );
   res = var1 + ( ( var2 != 3 ) ? var3 : 1 ); // crash
//   res = var1 + ( ( var2 != 3 ) ? 1 : ( ( var2 != 3 ) ? 1 : var3 ) );
   say(res);
end
Title: Re:Avances, Diario de...
Post by: panreyes on January 06, 2018, 04:08:26 PM
Olé, enhorabuena :)
Title: Re:Avances, Diario de...
Post by: SplinterGU on January 06, 2018, 04:13:27 PM
gracias! en el svn pueden ver el cambio para fixear PixTudio
Title: Re:Avances, Diario de...
Post by: gecko on January 06, 2018, 07:02:58 PM
que genio, buenisimo!
Title: Re:Avances, Diario de...
Post by: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?
Title: Re:Avances, Diario de...
Post by: SplinterGU on January 08, 2018, 01:09:27 AM
Quote from: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P
Title: Re:Avances, Diario de...
Post by: warrior_rockk on January 08, 2018, 07:52:43 AM
Quote from: SplinterGU on January 08, 2018, 01:09:27 AM
Quote from: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P


me too!!
¿Y el mnemónico NOP para qué está implementado? En teoría es un operando sin ninguna función, ¿cierto?
Title: Re:Avances, Diario de...
Post by: SplinterGU on January 08, 2018, 02:48:09 PM
Quote from: warrior_rockk on January 08, 2018, 07:52:43 AM
Quote from: SplinterGU on January 08, 2018, 01:09:27 AM
Quote from: Drumpi on January 08, 2018, 12:30:53 AM
Claro, como casi nadie usa esos operadores, pues al final pasan desapercibidos :D
Enhorabuena por el fix, Splinter!!

En serio ¿Alguien usa de forma frecuente los operandos ternarios? ¿Merece la pena su uso?

yo los uso mucho... :P


me too!!
¿Y el mnemónico NOP para qué está implementado? En teoría es un operando sin ninguna función, ¿cierto?

eso mismo, no hace nada...

y me sirvio para evitar el bug...
Title: Re:Avances, Diario de...
Post by: warrior_rockk on January 08, 2018, 04:31:41 PM
 ;)
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 19, 2018, 01:50:43 PM
bien, he encontrado nuevos bugs en bennugd... precisamente el interprete no ejecuta bien en orden los procesos cuando se cambian las prioridades o se eliminan procesos, en algunos casos hay procesos que se ejecutan mas de 1 vez por frame y en otros casos hay procesos que no se ejecutan en ese frame... esto ya lo tengo corregido... pero estoy trabajando en el modo debug, ya que el debugger tampoco ejecuta los procesos en el orden que lo hace en modo de ejecucion normal, no solo que no lo hace sino que tambien tiene problemas del tipo mencionado anteriormente (algunos procesos no se ejecutan por frame o se ejecutan varias veces)

el debugger esta un poco mas complejo, ya que se rompe la recursividad de las llamadas a la funcion principal del interpreter y por eso los errores... estoy intentando resolverlo, pero son tantas variantes que se complica, quizas la solucion termine en agregar nuevos callbacks y reemplazar en el modulo de debug los callbacks que usa ahora... quizas proporcionar algunos especificos para el render y los inputs... o reusar de una manera que no de problemas los que ya existen... pero posiblemente algunos nuevos tenga que agregar...
Title: Re:Avances, Diario de...
Post by: JaViS on February 19, 2018, 02:37:57 PM
Quotese ejecutan mas de 1 vez por frame


Muy interesante, es un efecto que he podido observar con la libreria de eventos que mencioné la vez pasada, pero no lo reporté como bug porque no estaba seguro de entender bien cual era el funcionamiento correcto de cambiarle la prioridad a un proceso que se ejecuta solo un frame.


En mi caso, el proceso se ejecutaba dos frames en lugar de uno.


Estoy ansioso por obtener todos estos bugfixes (incluyendo el problemina de #define que me unica TYPE con la palabra siguiente) asi puedo optimizar mi codigo.


Saludos!
Title: Re:Avances, Diario de...
Post by: SplinterGU on February 19, 2018, 03:38:25 PM
el del #define no lo tengo en lista, creo que ya estaba solucionado, proba con las ultima version oficial, a ver si se soluciona... en la pagina de descargas...