Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

recuerda realizar backup en un medio externo (web,cd,etc)

;D

TYCO

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.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

#139
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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

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.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

blostec

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!  ;)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

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.

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

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.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2