Wii...

Started by SplinterGU, December 20, 2008, 11:58:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


Drumpi

Crap-game entregado a las 3:39 am ;D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

panreyes

Quote from: Drumpi on November 16, 2010, 02:40:17 AM
Crap-game entregado a las 3:39 am ;D
¿Dónde? Y qué tiene que ver? xD

Drumpi

En el hilo del concurso.
Y que yo también programo hasta las 3:30 am ;D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

Beta 3 lanzada. Entre otras cosas, incluye soporte correcto para la Balance Board:
http://bennugd-wii.blogspot.com/2011/01/beta-3-released.html

FreeYourMind

Tumbababa, bedeleee, bedeleee.

josebita

Bueno, estoy cambiando la arquitectura del port un poco para que no necesite modificar el código fuente de los módulos en absoluto (es mucho más fácil de mantener así). No es exactamente igual a la de DCelso pero sí que me he basado un poco en ella.
Ya hay un par de módulos integrados de la nueva forma y pronto iré añadiendo más.

SplinterGU

podes explicar lo que hiciste?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

josebas, si ves el código último del monolítico de psp que te pasé verás que lo hice lo más sencillo del mundo simulando completamente a la loadlib original, es más hize el makefile para wii y todo pero no llegué a usarlo :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

josebita

#714
Quote from: DCelso on February 02, 2011, 12:29:34 AM
josebas, si ves el código último del monolítico de psp que te pasé verás que lo hice lo más sencillo del mundo simulando completamente a la loadlib original, es más hize el makefile para wii y todo pero no llegué a usarlo :D.
Sí, lo he visto, pero me da un montón de errores de importación contra el código del último SVN. ¿Contra qué revisión lo aplico?.

En cuanto a lo que he hecho, no le he hecho cambios al core sobre lo que ya tenía, me explico:

  • En core/include/loadlib.h tengo dos secciones: La normal de la versión oficial y la monolítica. La monolítica lo que hace es redefinir el tipo dlibhandle basicamente como un entero que es el índice que ocupa el módulo en el array de símbolos exportados. El resto de funciones de la loadlib.h las he adaptado en la parte monolítica (la de abajo) para que  trabajen de esa forma.
  • Tengo un fichero core/includes/monolithic_includes.h con dos arrays que definen los nombres de los módulos y los símbolos que exportan. Como comenté, son dos arrays distintos porque el primero (basic_symbols symbol_list) incluye símbolos que usan el bgdc y el bgdrtm. El segundo (extra_symbols symbol_list_runtime) incluye símbolos que sólo usa el bgdrtm.
  • He hecho un pequeño cambio -casi estético- a la extensión de las librerías. En caso de compilar la versión monolítica, la extensión que se usa es ".fakelib" en todas las plataformas.
Poco más. Aún están definidas cosas como lo de CONDITIONALLY_STATIC, pero eso es de la versión anterior y en cuanto acabe, no hará falta.

En cuanto a los módulos, pongo el ejemplo del mod_say, por simpleza:

  • Dejo todos los ficheros del módulo tal y como están y añado un fichero mod_say_symbols.h con los __bgdexport necesarios para el bgdc (esto hace falta porque no quiero compilar los módulos dentro del bgdc; complicaría mucho las cosas) y las declaraciones como extern de los símbolos que se usan en el bgdrtm. Como podeis ver, a pesar de que para el bgdc y el bgdrtm estoy usando el functions_exports, los símbolos como tal no coinciden porque en la parte del bgdc el último campo está puesto a 0, por simplicidad en la compilación (de nuevo).
  • El mod_say_symbols.h lo incluyo desde el loadlib.h que he puesto más arriba, claro.
  • Y luego, claro, compilo todos los módulos dentro de la bgdrtm y creo una librería .a con todo eso (símplemente para poder diferenciar el bgdrtm del bgdi, este paso conceptualmente no hace falta, pero creo que realmente no hace ningún daño y me permite tener las cosas separadas).
  • Compilo el intérprete contra esa librería estática.
La verdad es que es lo más simple que se me ha ocurrido. El tema de usar los arrays de símbolos creo que simplifica las cosas.

En cuanto a tu versión, DCelso, veo que usas el bgdc_redefined.h para redefinir algunos símbolos, aunque no entiendo del todo por qué hace falta hacer eso.
El sim_load.* viene a cumplir la función del array que uso yo en monolithic_includes.h y las funciones que uso en loadlib.h.
¿Qué opinais?

DCelso

lo del redefined, es por mezclar las strings.c de bgdc y bgdrtm y el simsyslib el syslib de bgdc y bgdrtm, resulta que si no haces la redefinición dan conflictos algunas variables y no genera el código,( con esto te ahorras de camino el -DBGDC o -DBGDRTM) cosa de compilar todo a la vez.
Seguro que se podría compatibilizar para solo usar un strings.c y un syslib pero habría que ponerse a tocar mucho código original de bennu y con el redefined creas un parche transparente para evitar eso mismo.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

tienen diferentes comportamientos en el bgdi y en el bgdc, no son para nada lo mismo dichos fuentes en bgdc y en bgdrtm.

y es necesario que asi sea.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Ahora que por fin he acabado exámenes, me he puesto con la arquitectura del port. Ahora ya no necesito modificar los módulos oficiales para poder compilar el código monolítico sino sólo añadir un fichero de cabecera al módulo y modificar la parte de carga de módulos del core, de forma que el port es mucho más fácil de llevar.
Además he actualizado el código a la última versión de Bennu. En estos próximos días voy a probarlo y a asegurarme de que todo funciona bien.

SplinterGU

karma joseba!

cuenta despues como has hecho esto... creo que se va acercando mas a una version monolitica definitiva.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on February 18, 2011, 10:11:30 PM
karma joseba!

cuenta despues como has hecho esto... creo que se va acercando mas a una version monolitica definitiva.
Pensaba escribir una entrada en mi blog sobre cómo funciona la nueva arquitectura. Cuando lo haya hecho, aviso.