Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: DCelso on October 21, 2016, 07:27:46 AM

Title: ¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: DCelso on October 21, 2016, 07:27:46 AM
Hola,
Una pregunta.
¿Sería posible desde el código cambiar la ejecución a otro dcb?
algo como

begin
newdcb = dcb_open("minuevoarchivo.dcb");
goto(newdcb);
end


Lo digo porque en windows, linux no hay problema de usar exec y lanzar "bgdi nombredcb"
pero en consolas en las que el intérprete es el programa en memoria no existe esa posiblidad.
por ejemplo en dreamcast, wii, android.





Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: Ryo Suzuki on October 21, 2016, 08:30:06 AM
Pues es algo que tenía intención de preguntar ya que me interesa bastante.

Por ejemplo para hacer una compilación de varios juegos hechos en BennuGD y lanzarlos desde una especie de menú.

También por tema RAM, comodidad y demás sería bueno si se hace un proyecto muy largo y complicado cambiar de .dcb en un momento determinado.

Si no fuera posible así de forma convencional, en Dreamcast creo que se podría hacer de una manera al menos teoricamente. Sería tener albergado otro binario (1st_read.bin) en otra carpeta junto a su correspondiente main.dcb y obligarle a ejecutar ese binario mediante KOS. Supongo que se podría hacer mediante mod_dream forzándole a abrir y lanzar ese binario que estararía lanzando otro .dcb.

Supongo que en Wii y en otras máquinas se podría conseguir algo así, ya que Bennu tiene que estar corriendo bajo otra capa de lenguaje y siempre se podría recurrir a ella para hacer uso de algún comando que nos interesara...
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: DCelso on October 21, 2016, 08:49:50 AM
Sería lo suyo.
el main.dcd sería el enlace principal y desde él abririamos  cualquier otro .dcb

Tipo como los emuladores hacen con las roms.

Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: panreyes on October 21, 2016, 10:25:09 AM
DCelso. Nosotros en PiXJuegos teníamos un launcher que resolvía eso con cierto apaño.

Si no recuerdo mal, era un bat que recogía la salida del launcher y lanzaba el ejecutable devuelto por el launcher.

Por si quieres revisarlo:
https://github.com/panreyes/pixjuegos/tree/master/arcade
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: SplinterGU on October 21, 2016, 04:19:23 PM
en android se deberia poder hacer el exec... no se como esta el port...

con respecto a hacer un "run" dcb por ahora no existe, pero lo anoto...
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: panreyes on October 21, 2016, 04:53:03 PM
Vale, perdón xD
No me había leído bien el primer mensaje. Actualmente no se puede hacer nada ya que "exec" en Android sólo sirve para abrir una web.

Habría que modificar la función openUrl en Java para que pudiera lanzar otras aplicaciones. Creo que sería fácilmente posible modificando el siguiente archivo:
android\src\org\pixtudio\samplegame\MyGame.java
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: SplinterGU on October 21, 2016, 07:28:35 PM
Quote from: panreyes on October 21, 2016, 04:53:03 PM
Vale, perdón xD
No me había leído bien el primer mensaje. Actualmente no se puede hacer nada ya que "exec" en Android sólo sirve para abrir una web.

Habría que modificar la función openUrl en Java para que pudiera lanzar otras aplicaciones. Creo que sería fácilmente posible modificando el siguiente archivo:
android\src\org\pixtudio\samplegame\MyGame.java

pero eso es asi, porque se hizo asi la implementacion de bennugd en android?
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: panreyes on October 21, 2016, 07:54:21 PM
Porque me venía a mí bien para abrir webs y mandar high scores xD
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: DCelso on October 21, 2016, 08:59:32 PM
Quote from: panreyes on October 21, 2016, 04:53:03 PM
Vale, perdón xD
No me había leído bien el primer mensaje. Actualmente no se puede hacer nada ya que "exec" en Android sólo sirve para abrir una web.

Habría que modificar la función openUrl en Java para que pudiera lanzar otras aplicaciones. Creo que sería fácilmente posible modificando el siguiente archivo:
android\src\org\pixtudio\samplegame\MyGame.java

Molaría mucho, habrá que investigar esta vía entonces.

Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: SplinterGU on October 22, 2016, 12:22:25 AM
Quote from: panreyes on October 21, 2016, 07:54:21 PM
Porque me venía a mí bien para abrir webs y mandar high scores xD

se puede sobrecargar la funcion o en base a si lo que le pasas es una url o un file, que el exec haga una ejecucion de pagina o una ejecucion de binarios. por ejemplo, un "http://www.bennugd.org/" es sin dudas una pagina, ahora un "bgdi blablah" es la ejecucion de un programa.
Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: DCelso on October 22, 2016, 10:46:42 AM
Si, eso puede ser una solución temporal para android.

Pero si bgdi la integra, mejor que mejor, ya valdría para cualquier plataforma  ;)

Title: Re:¿Se puede ejecutar un dcb desde el código sin usar bgdi?
Post by: SplinterGU on October 23, 2016, 05:11:52 PM
es un poco dificil, porque el tema es estar seguro de desacargar todo recurso reservado, y si bien seria pesado descargar todo lo que reserva bennugd, el problema esta en que no hay control en lo que reserva el usuario (quizas deberia meter un control a las alocaciones y liberaciones, pero esto añadiria otro problema, la reduccion de performance)