Bennu Game Development

Foros en Español => Plataformas => Wii (homebrew) => Topic started by: josebita on March 31, 2010, 01:24:12 PM

Title: OS_WII
Post by: josebita on March 31, 2010, 01:24:12 PM
Splinter, me gustaría pedirte que ahora que el port a la Wii está cerca de acabarse me reservaras un valor para OS_WII para OS_ID. El valor que te venga bien.
Title: Re: OS_WII
Post by: FreeYourMind on March 31, 2010, 01:35:59 PM
Mola, que ponga tambien para la Dingoo, ya que hace tiempo se ha sacado un alpha port, y porque no, que ponga otro para Pandora por si acaso :)
Title: Re: OS_WII
Post by: Windgate on March 31, 2010, 01:39:37 PM
Eso eso, antes de que se le pase el arroz a la Wii tiene que estar Bennu preparado cohone xD
Title: Re: OS_WII
Post by: josebita on March 31, 2010, 02:29:53 PM
Hoy subiré una versión con el scroll integrado.
En cuanto haga eso y arregle el único bug conocido (http://code.google.com/p/bennugd-wii/issues/detail?id=2), yo diría que está casi todo lo que usa la mayor parte de la gente (tampoco he integrado el teclado aún, pero eso es cuestión de un ratito y tampoco es tan importante para la Wii).

La lista de módulos que están y no están la podeis ver aquí (http://code.google.com/p/bennugd-wii/wiki/Status).

PD: En lo del bug, me está echando una mano mi hermano, que sabe más de esto que yo, así que supongo que será cuestión de días que esté arreglado (si no le surge nada urgente).
Title: Re: OS_WII
Post by: josebita on March 31, 2010, 02:52:15 PM
Quizás fuera buena idea separar los valores de las plataformas soportadas oficialmente de las que no lo son (OS_ID> 100 u OS_ID<0 para las que no lo sean, o algo así). Es sólo una idea.
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 02:53:54 PM
esta version tambien sera portable o es especifica para wii?
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 02:55:52 PM
eso es, usa valores por arriba de 1000 y documentalo en la wiki en una seccion valores os_id no oficiales, o algo parecido, y ahi que se vayan acumulando... luego puede ser incluidos o no en la version oficial.
Title: Re: OS_WII
Post by: josebita on March 31, 2010, 04:30:22 PM
Ok, he actualizado la página del wiki (http://wiki.bennugd.org/index.php?title=OS_codes) y me he quedado con el OS_WII=1000.

En cuanto a cómo de compatible es el código, ahora mismo no los es todo lo que debería. Cuando saque las primeras RC con todas las funcionalidades dentro (y ya digo que no queda (http://code.google.com/p/bennugd-wii/wiki/Status) tanto) me pongo con acercar tanto como me sea posible el código del port al original.

[Edito] Cuando digo que el código no es compatible, me refiero a que el código C no creo que pueda volverse a integrar dentro de Bennu upstream sin algunos cambios. Los juegos hechos con el bennu normal deberían funcionar a la perfección (salvo bugs propios del port) en la versión portada.
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 05:37:24 PM
y como mantendrias actualizada la version, lo pensaste?

o seria un fork de bennu?
Title: Re: OS_WII
Post by: FreeYourMind on March 31, 2010, 05:49:49 PM
Eso de codigos no oficiales no tiene el menor sentido, que, despues te pones un codigo oficial para wii distinto a ese :)
Y que es de los códigos oficiales para sistemas en que aún no hay bennu ?

Si eso es tan sencillo de definir, no se para que hicisteis la ñapa esta, los definias en 2 minutos y listo (aunque todavia no estuvieran en el código oficial)  :D

Encima lo actualizais en la Wiki pero no se dice si es un código oficial o no, vamos, si fuera una wiki no oficial igual tendria sentido...
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 06:05:22 PM
la idea es que se diferencie en la wiki y que en el caso de incluirlo oficialmente se use el mismo codigo, siempre y cuando las funcionalidades de una version y la otra sean iguales, si la rama oficial tiene un comportamiento diferente para una plataforma que su version no oficial, entonces es correcto que se le asigne un codigo diferente...
Title: Re: OS_WII
Post by: FreeYourMind on March 31, 2010, 06:20:03 PM
No acabo de convencerme.

Imagina esto, yo programo un juego ahora mismo (dcb) que detecta 3 sistemas distintos, y segun cada uno el juego tiene caracteristicas distintas, ahora mismo seria para:

Windows
Linux
Wii

Yo todo contento con el port de Wii, tengo rulando el juego a la perfeccion, el cual ya no vuelvo a tocar, he decidido no hacer mas versiones, le he puesto el codigo 1000 para saber que es wii, port que me lo detecta porque tiene ese valor.

Imagina, que tu decides en la proxima version dar soporte a wii y le pones otro codigo, la gente usará tu runtime de wii porque es mas reciente y el otro el autor ya ha dejado de continuarlo, entonce mi juego con tu port me va decir que no conoce el SO, y yo tengo una funcion que prohibe que el juego se ejecute en SO no admitidos.
O sea la gente ya no podrá jugarlo con el ultimo runtime para wii.....
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 06:35:04 PM
1) quien dijo que yo usare otro codigo? yo no confirme nada... por algo digo que hay que incluirlo en el wiki... si alguien hace un port y no es ordenado y no informa o no actualiza el wiki es otro problema...

2) si tu juego ya esta cerrado, nadie tiene porque usar para ese juego otro runtime...

3) si tu juego ya esta cerrado, y es necesario cambiar de runtime porque el viejo runtime ya no funciona en el equipo debido a algun update nuevo o lo que sea... pues nada, pasa como en todos los operativos, cuando un operativo tiene un upgrade importante a veces es necesario recompilar, le guste o no a quien sea...
Title: Re: OS_WII
Post by: FreeYourMind on March 31, 2010, 06:51:12 PM
Bueno, eso no es lo que ocurre con el port de Bennu en la Wiz, y el otro dia dijiste justamente lo contrario, por el tema de los sen, cos...

Tampoco entiendo la confusión por un código que tan sólo pretende identificar un SO, las funcionalidades o caracteristicas como has dicho, dependen de las versiones de Bennu, no de la maquina, que como sabes las consolas son de caracter cerrado que no varia (si funciona en una funciona en todas), aunque infelizmente cada dia se parecen mas a un pc, en que es necesario actualizar el firmware constantemente....
Title: Re: OS_WII
Post by: SplinterGU on March 31, 2010, 07:34:31 PM
eso no es del todo correcto... por ejemplo, con el nuevo firmware de wiz, muchos programas dejaron de funcionar... tambien por ejemplo, para hacerlo mas comun, en pc, muchos programas de una version de windows no funcionan en otra version de windows...

lo que dije el otro dia es diferente, porque aca cambias funciones sobre el comportamiento del codigo que se esta trabajando... y eso si esta en desarrollo, pero si tu juego esta cerrado es otra cosa, siempre que algo esta cerrado conviene distribuirlo con las librerias (runtime) con que fue creado, eso es una norma general en cualquier lenguaje... incluso si te fijas la mayoria de los programas (no bennu) te piden determinadas versiones de librerias, tanto en windows como en linux...

pero te repito, lo del seno y coseno es otra cosa diferente, son funciones que modifican la funcionalidad, lo otro es una simple constante...
Title: Re: OS_WII
Post by: josebita on March 31, 2010, 10:09:31 PM
Quote from: SplinterGU on March 31, 2010, 05:37:24 PM
y como mantendrias actualizada la version, lo pensaste?

o seria un fork de bennu?

Pues la verdad es que desde el principio mi idea era hacer el port de la versión 1.0 y luego... pues ya veré. No tengo un "plan" de qué hacer después, sinceramente. También depende un poco de hacia dónde lleves Bennu y de lo fácil/dificil que sea adoptar los cambios a la Wii.

Me da la impresión de que cuando limpie el código todo será mucho más fácil, eso sí.

Y en cuanto a lo del código, lo ideal es que quien use Bennu no haga algo del estilo:
if(OS_ID == 0)
cosas
end;

Sino más bien algo como:
if(OS_ID == OS_WIN32)
cosas
end;
Por lo que el código será válido allá donde el dcb no lo sea (es decir, que la incompatibilidad en ppio. se resolvería con recompilar). El problema no es tanto cuánto valga la constante, pero siempre viene bien tener algo de orden.
Además algún valor le tenía que dar :)
Title: Re: OS_WII
Post by: DCelso on April 05, 2010, 01:34:14 PM
Splinter, propongo el añadir ya los os para los que se están haciendo ya ports, como  wii,psp,haiku, etc. Por ejemplo 9,10,11 respectivamente.
Simplemente habría que decidir el número del commons_def.
Por ejemplo para wii sería algo así a tocar en el core.
Quote from: commons_def.h
#define OS_WIN32                0
#define OS_LINUX                1
#define OS_BEOS                 2
#define OS_MACOS                3
#define OS_GP32                 4
#define OS_DC                   5
#define OS_BSD                  6
#define OS_GP2X                 7
#define OS_GP2X_WIZ             8
#define OS_WII             9

Quote from: miscs.c
/* os versions */
#ifdef _WIN32
#define _OS_ID          OS_WIN32
#endif
#ifdef TARGET_LINUX
#define _OS_ID          OS_LINUX
#endif
#ifdef TARGET_BEOS
#define _OS_ID          OS_BEOS
#endif
#ifdef TARGET_MAC
#define _OS_ID          OS_MACOS
#endif
#ifdef TARGET_GP32
#define _OS_ID          OS_GP32
#endif
#ifdef TARGET_DC
#define _OS_ID          OS_DC
#endif
#ifdef TARGET_BSD
#define _OS_ID          OS_BSD
#endif
#ifdef TARGET_GP2X
#ifdef _OS_ID
#undef _OS_ID
#endif
#define _OS_ID          OS_GP2X
#endif
#ifdef TARGET_GP2X_WIZ
#ifdef _OS_ID
#undef _OS_ID
#endif
#define _OS_ID          OS_GP2X_WIZ
#endif
#ifdef TARGET_WII
#define _OS_ID          OS_WII
#endif


Quote from: main_core.c
constants_def[] =
{
    { "STATUS_DEAD"     , TYPE_DWORD, STATUS_DEAD         },
    { "STATUS_KILLED"   , TYPE_DWORD, STATUS_KILLED       },
    { "STATUS_RUNNING"  , TYPE_DWORD, STATUS_RUNNING      },
    { "STATUS_SLEEPING" , TYPE_DWORD, STATUS_SLEEPING     },
    { "STATUS_FROZEN"   , TYPE_DWORD, STATUS_FROZEN       },
    { "STATUS_WAITING"  , TYPE_DWORD, STATUS_WAITING_MASK },

    { "NULL"            , TYPE_DWORD, 0                   },

    { "FALSE"           , TYPE_DWORD, 0                   },
    { "TRUE"            , TYPE_DWORD, !0                  },

    { "OS_WIN32"        , TYPE_DWORD, OS_WIN32            },
    { "OS_LINUX"        , TYPE_DWORD, OS_LINUX            },
    { "OS_BEOS"         , TYPE_DWORD, OS_BEOS             },
    { "OS_MACOS"        , TYPE_DWORD, OS_MACOS            },
    { "OS_GP32"         , TYPE_DWORD, OS_GP32             },
    { "OS_DC"           , TYPE_DWORD, OS_DC               },
    { "OS_BSD"          , TYPE_DWORD, OS_BSD              },
    { "OS_GP2X"         , TYPE_DWORD, OS_GP2X             },
    { "OS_GP2X_WIZ"     , TYPE_DWORD, OS_GP2X_WIZ         },
   { "OS_WII"     , TYPE_DWORD, OS_WII         },

    { "MIN_INT"         , TYPE_INT  , -2147483647L - 1    },
    { "MAX_INT"         , TYPE_INT  , 2147483647L         },
    { "MIN_DWORD"       , TYPE_DWORD, 0                   },
    { "MAX_DWORD"       , TYPE_DWORD, 0xffffffff          },

    { "MIN_SHORT"       , TYPE_SHORT, -32768              },
    { "MAX_SHORT"       , TYPE_SHORT, 32767               },
    { "MIN_WORD"        , TYPE_WORD , 0                   },
    { "MAX_WORD"        , TYPE_WORD , 0xffff              },

    { "MIN_SBYTE"       , TYPE_SBYTE, -128                },
    { "MAX_SBYTE"       , TYPE_SBYTE, 127                 },
    { "MIN_BYTE"        , TYPE_BYTE , 0                   },
    { "MAX_BYTE"        , TYPE_BYTE , 0xff                },

    { "MIN_CHAR"        , TYPE_BYTE , 0                   },
    { "MAX_CHAR"        , TYPE_BYTE , 0xff                },

    { NULL              , 0         , 0                   }
} ;


Title: Re: OS_WII
Post by: FreeYourMind on April 05, 2010, 01:59:10 PM
Quote from: DCelso on April 05, 2010, 01:34:14 PM
Splinter, propongo el añadir ya los os para los que se están haciendo ya ports, como  wii,psp,haiku, etc. Por ejemplo 9,10,11 respectivamente.
Simplemente habría que decidir el número del commons_def.
Por ejemplo para wii sería algo así a tocar en el core.
Quote from: commons_def.h
#define OS_WIN32                0
#define OS_LINUX                1
#define OS_BEOS                 2
#define OS_MACOS                3
#define OS_GP32                 4
#define OS_DC                   5
#define OS_BSD                  6
#define OS_GP2X                 7
#define OS_GP2X_WIZ             8
#define OS_WII             9

Quote from: miscs.c
/* os versions */
#ifdef _WIN32
#define _OS_ID          OS_WIN32
#endif
#ifdef TARGET_LINUX
#define _OS_ID          OS_LINUX
#endif
#ifdef TARGET_BEOS
#define _OS_ID          OS_BEOS
#endif
#ifdef TARGET_MAC
#define _OS_ID          OS_MACOS
#endif
#ifdef TARGET_GP32
#define _OS_ID          OS_GP32
#endif
#ifdef TARGET_DC
#define _OS_ID          OS_DC
#endif
#ifdef TARGET_BSD
#define _OS_ID          OS_BSD
#endif
#ifdef TARGET_GP2X
#ifdef _OS_ID
#undef _OS_ID
#endif
#define _OS_ID          OS_GP2X
#endif
#ifdef TARGET_GP2X_WIZ
#ifdef _OS_ID
#undef _OS_ID
#endif
#define _OS_ID          OS_GP2X_WIZ
#endif
#ifdef TARGET_WII
#define _OS_ID          OS_WII
#endif


Quote from: main_core.c
constants_def[] =
{
    { "STATUS_DEAD"     , TYPE_DWORD, STATUS_DEAD         },
    { "STATUS_KILLED"   , TYPE_DWORD, STATUS_KILLED       },
    { "STATUS_RUNNING"  , TYPE_DWORD, STATUS_RUNNING      },
    { "STATUS_SLEEPING" , TYPE_DWORD, STATUS_SLEEPING     },
    { "STATUS_FROZEN"   , TYPE_DWORD, STATUS_FROZEN       },
    { "STATUS_WAITING"  , TYPE_DWORD, STATUS_WAITING_MASK },

    { "NULL"            , TYPE_DWORD, 0                   },

    { "FALSE"           , TYPE_DWORD, 0                   },
    { "TRUE"            , TYPE_DWORD, !0                  },

    { "OS_WIN32"        , TYPE_DWORD, OS_WIN32            },
    { "OS_LINUX"        , TYPE_DWORD, OS_LINUX            },
    { "OS_BEOS"         , TYPE_DWORD, OS_BEOS             },
    { "OS_MACOS"        , TYPE_DWORD, OS_MACOS            },
    { "OS_GP32"         , TYPE_DWORD, OS_GP32             },
    { "OS_DC"           , TYPE_DWORD, OS_DC               },
    { "OS_BSD"          , TYPE_DWORD, OS_BSD              },
    { "OS_GP2X"         , TYPE_DWORD, OS_GP2X             },
    { "OS_GP2X_WIZ"     , TYPE_DWORD, OS_GP2X_WIZ         },
   { "OS_WII"     , TYPE_DWORD, OS_WII         },

    { "MIN_INT"         , TYPE_INT  , -2147483647L - 1    },
    { "MAX_INT"         , TYPE_INT  , 2147483647L         },
    { "MIN_DWORD"       , TYPE_DWORD, 0                   },
    { "MAX_DWORD"       , TYPE_DWORD, 0xffffffff          },

    { "MIN_SHORT"       , TYPE_SHORT, -32768              },
    { "MAX_SHORT"       , TYPE_SHORT, 32767               },
    { "MIN_WORD"        , TYPE_WORD , 0                   },
    { "MAX_WORD"        , TYPE_WORD , 0xffff              },

    { "MIN_SBYTE"       , TYPE_SBYTE, -128                },
    { "MAX_SBYTE"       , TYPE_SBYTE, 127                 },
    { "MIN_BYTE"        , TYPE_BYTE , 0                   },
    { "MAX_BYTE"        , TYPE_BYTE , 0xff                },

    { "MIN_CHAR"        , TYPE_BYTE , 0                   },
    { "MAX_CHAR"        , TYPE_BYTE , 0xff                },

    { NULL              , 0         , 0                   }
} ;




Teh has perdido capitulos anteriores  ;D
Ponle más bien un 1000 para el código de Wii (decision que no comparto, pero alla ellos  :D)
Title: Re: OS_WII
Post by: DCelso on April 05, 2010, 04:45:40 PM
que va, según entendí es un valor temporal a usar hasta que splinter lo integre oficialmente en bennu. Es un valor para no machacar valores anteriores y tener un identificador único para cada sistema. Yo lo que proponía era darle ya un valor oficial.
Además el valor en el soporte oficial será transparente para el usuario ya que el usuario debe de usar siempre el nombre de la constante, es decir lo importante es llamarlo OS_WII siempre. Si modificaramos el código fuente y cambiaramos todos los valores por otros de manera que no se repitiese ninguno no afectaría a los programas "prg" de los usuarios ya que ellos no deberían de usar los números sino el nombre de las constantes.
Title: Re: OS_WII
Post by: Drumpi on April 06, 2010, 12:25:50 AM
Lo que me recuerda... tengo que mirar el valor de la constante target en el port de GP2X, creo que no lo modifiqué ^^U
Bueno, como tengo que mirar el meter el SDK oficial con las librerías aceleradas de Paeryn en Linux, entonces (menos mal que los scripts no alteran de forma indefinida las variables del sistema y podré trabajar con dos cross-compilers sin miedo).