Bennupack Dreamcast DEVKIT 2017
https://sourceforge.net/projects/coldev/files/Dreamcast/
yay mil gracias señor!
que diferencias hay entre este y el anterior?
+ el ide esta mas completo
+ los ejemplos estan revisados, hay nuevos creo
+ nueva herramienta para crear discos cdi (creo que ya la tienes)
¿Se han actualizado los binarios de Bennu? Me gustaría ver si ahora consigo que funcione el Echo en DC con los últimos cambios, porque cuando lo intenté la vez pasada no hubo forma.
A ver si se pasa por aquí @Ryo_Suzuki y me dice qué tal va la cosa en la consola física.
Unas horas estudiando los ejemplos de bennu3D y ya me siento de nuevo en mi area, ya puedo renderizar 3D, asignar texturas, reproducir animaciones sin embargo mi pipeline (o depronto el plugin que uso para exportar mis .MD2) no es compatible, ya entiendo como funcionan los sistemas de particulas......estoy muy impresionado con el trabajo de uds.
(https://preview.ibb.co/gXEyYF/01.jpg) (https://ibb.co/f0dQDF)
Muy buen trabajo con los ejemplos y el código muy bien comentado.
Alguien me puede confirmar si bennu3D se puede compilar para dreamcast?
Siguiendo el mismo procedimiento con el que compile para dreamcast mi juego 2D ahora no logro que funcione mi escenario de prueba 3D en el dreamcast......
(https://preview.ibb.co/d2vNSa/123.jpg) (https://ibb.co/eZWwna)
Pense que era un problema al incluir un escenario en un ZIP pero elimine el zip y lo reemplace con un .obj con collisiones y funciona en el pc pero no en el dreamcast.
reply in other post
http://forum.bennugd.org/index.php?topic=4529.msg71392#new (http://forum.bennugd.org/index.php?topic=4529.msg71392#new)
oh..... con yeti3D funciona a muy bajos fps.
Voy a hacer algunas pruebas antes de darme por vencido.
Quote from: Drumpi on April 17, 2017, 07:30:19 PM
¿Se han actualizado los binarios de Bennu? Me gustaría ver si ahora consigo que funcione el Echo en DC con los últimos cambios, porque cuando lo intenté la vez pasada no hubo forma.
A ver si se pasa por aquí @Ryo_Suzuki y me dice qué tal va la cosa en la consola física.
Creo que los binarios no están actualizados a la última versión del KOS, SDL, etc...
Al menos lo que he probado no parece ganar en rendimiento.
Que se agradece que l1nk3rn3l siga actualizando, no se me malinterprete...
Quote from: Ryo Suzuki on June 11, 2017, 11:12:35 PM
Quote from: Drumpi on April 17, 2017, 07:30:19 PM
¿Se han actualizado los binarios de Bennu? Me gustaría ver si ahora consigo que funcione el Echo en DC con los últimos cambios, porque cuando lo intenté la vez pasada no hubo forma.
A ver si se pasa por aquí @Ryo_Suzuki y me dice qué tal va la cosa en la consola física.
Creo que los binarios no están actualizados a la última versión del KOS, SDL, etc...
Al menos lo que he probado no parece ganar en rendimiento.
Que se agradece que l1nk3rn3l siga actualizando, no se me malinterprete...
toda sugerencia es bienvenida, no se han actualizado los binarios , porque...
+ no hemos tenido tiempo
+ se hara cuando empecemos a portar el nuevo motor 3d a DC (posiblemente el mismo bennu3d castrado de algunas cosas )
+ cuando terminemos la nueva documentacion de bennu y el auto completado en el editor (notepad++)
;D
Actualmente se esta trabajando y tenemos prioridad en :
+ terminar el motor 3d (Cartagena 3D)
+ animacion por esqueletos 2D
+ soporte completo de tiles (tmx)
+ terminar la monetizacion en bennu (Abmods y video rewards)
+ port html5
¡Muchas felicidades excelente trabajo!, este es mi más reciente post después de 8 años de ausencia aproximadamente, debido a un problema personal (accidente de automovil), lamentablemente tuve que dejar de hacer muchas cosas, incluso trabajar, pero ya estoy recuperado y listo para continuar con las cosas que disfrutaba hacer, en aquel entonces dejé varios proyectos inconclusos, bueno ni modo aveces asi es la vida, pero vaya que estoy asombrado, hoy entro al foro y veo la gran cantidad de ports de BennuGD, ¡Wow asombroso!, no cabe duda, esta comunidad se ha hecho cada vez mejor, estoy super entusiasmado con este port de DreamCast, esto es oro puro, jejejeje para un viejo amante de las DreamCast, jejeje.
Muchas felicidades a los chicos de Colombian Developers, su BennuPack para DreamCast esta super completo, creo que hoy no podré dormir, voy a trastear los ejemplos, por suerte tengo algunos CD-R y hasta fui a sacar mi vieja y empolvada consola, por suerte aun prende, jejeje despues de tantos años.
en el año 2005 hice un sencillo juego de naves, usando el port 084 de Fenix, haber si lo puedo pasar a Bennu, un miembro de DC-Iberia subió un video a Youtube hace algunos años:
https://www.youtube.com/watch?v=GpraR71CRqI (https://www.youtube.com/watch?v=GpraR71CRqI)
Trataré de pasarlo al port de Bennu-DC, si me atoro pediré ayuda, jejeje.
Nuevamente muchas felicidades a todos, durante estos 8 años veo que todos se han superado increiblemente, espero pasarme más seguido por los foros y continuar aprendiendo de todos ustedes.
Saludos!!!!
;D ;D ;D ;D ;D ;D
¡Una disculpa, lo habia olvidado! jejejeje ¡KARMA por el BennuPack de DC!
:'( después de tantos años, esto es nostalgico, jejeje disculpas.
folken me alegro que te hayas recuperado y estés otra vez por aqui.
Está muy bien tu juego. No lo conocía, la verdad.
Estoy casi seguro que conseguirás pasarlo a BennuGD de Dreamcast. Si te puedo echar una mano no dudes en pedir consejo, aunque soy novato llevo ya más de un año "peleando" con cosas de Bennu para la DC.
Un saludo!
Nos alegra que te recuperaras , Muchas bendiciones
;D
Hola muchas gracias por su interés en mi sencillo videojuego, ya logré correrlo en mi consola Dreamcast, jejeje estoy muy feliz, gracias por el port de Dreamcast que ustedes tienen.
hoy solo me dio tiempo de probarlo en la consola y subir un video a Youtube, donde se puede apreciar desde insertar el CD-R y jugarlo, jejeje, mi hijo pequeño le gusto mucho y me ayudó a probarlo.
en unos días tendre lista una web donde se podrá descargar en formato cdi listo para usar y jugar en una consola, también subiré los códigos fuentes para compartirlo con la comunidad de bennuGD.
Les comparto algunas pantallas y el video de esta primera prueba corriendo en una Dreamcast.
https://www.youtube.com/watch?v=uaG9B07kI9A (https://www.youtube.com/watch?v=uaG9B07kI9A)
Espero les guste el video, en unos tres días subiré una web y podrán descargar todo, el cdi y todos los fuentes para compartir.
(https://imagizer.imageshack.us/v2/318x238q90/924/uqOJnE.png)
(https://imagizer.imageshack.us/v2/317x239q90/923/AuWLGb.png)
(https://imagizer.imageshack.us/v2/316x237q90/923/5hTuCw.png)
(https://imagizer.imageshack.us/v2/314x234q90/924/qxwcGo.png)
(https://imagizer.imageshack.us/v2/614x345q90/923/lQGL8E.png)
(https://imagizer.imageshack.us/v2/635x345q90/924/8LGMfR.png)
Saludos!!!!
Nota: en el emulador NullDC corre muy lento, pero en la consola física corre como diablo, jejeje muy bien.
l1nk3rn3l, te quiero informar de un importante bug que he descubierto.
No se pueden descargar recursos de la RAM en el port de Dreamcast. Es decir en cuanto intentamos un Unload wav, map_del, unload_fpg, etc... o cualquier cosa para eliminar recursos de la memoria no lo hace.
Esto es bastante importante creo yo ya que solo contamos con unos 10 megas de RAM reales y si no podemos andar cargando y descargando assets la cosa se complica bastante...
Lo acabo de comprobar tanto en tu versión como la de Indiket (que partía de la tuya) no funciona. Con el mod_mem se ve claramente que no libera ese espacio de la ram cuando descargamos algo. A ver si puedes echarle un ojo, creo que es muy importante.
Gracias, un saludo.
Hola, yo también sufri lo mismo ahora que pasé mi juego al port, tuve problemas con el unload_fpg(), no lograba liberar los ficheros, al hacer un nuevo load_fpg(), hace cosas raras como mezclarlos o mostrar el fpg anterior, lo que yo tuve que hacer fue cargar todos mis fpg de un solo golpe en el begin-end de la sección PROGRAM.
Un dato curioso el unload_wav() si me funciona puedo cargar y descargar archivos wav a mi gusto, solo de esa manera logré ponerle diferentes sonidos de fondo a los 10 niveles de mi juego.
Referente a la función delete_text(variable), me borraba todos los textos, sin importar que le pasara el nombre de la variable a borrar de la pantalla.
Saludos! :)
No hemos vuelto a mirar el port DC, como todos andamos ocupados en labores...
Si ya habiamos notado ese problema .. y se deriva directamente del port de la SDL que segun recuerdo
la ram se fragmenta tanto que ya no se puede alojar mas... por eso es que los dos port que mencionas
tienen el mismo problema..
La solución que se encontro en ese entonces (y no se implemento ) fue:
1. usar modulos compartidos (mod_....dll) en dreamcast al estilo del port fenix de los rusos..
2. la mas facil .. implementar una llamada a una funcion "ejecutar_dcb()" y reiniciar los recursos de DC (INIT MALLOCSTATS)
3. La otra es investigar por que malloc y free no funcionan correctamente en DC .. y se llevaria mas tiempo en eso...
y posiblemente sea que bennu este compilandose en una version debug , como lo dice en el manual
que malloc de la version debug nunca libera memoria (4.6 Memory Allocation System) Pag.17
http://www.sega-dc.de/dateien/programmierung/kos.pdf (http://www.sega-dc.de/dateien/programmierung/kos.pdf)
4. Ponerme de acuerdo con splinter para crear un recolector de basura para bennu, y gestionar la memoria
como lo hace java, lua o c#, pero eso deberia hacerlo el sistema operativo automaticamente en este caso KOS o el WinCE...
Toca revisar
Gracias por responder l1nk, se ve que hay que revisar varios puntos respecto a liberar memoria en la DC, usando el kos, jejeje por mientras seguiré pasando mis juegos al port, tal y como se encuentra ahora, con unos sencillos trucos aun me funciona bien, como cargar de un solo golpe todos los FPG que requiere mi juego y cargar por demanda los WAV, esa parte me funciona bien.
Como lo mostré en el video de Youtube, mi juego logró correr en consola física DC sin ningún problema, mi hijo y yo lo jugamos varias horas y nunca se colgó o tronó, en resumen funcionó bien y a una excelente velocidad.
Como lo prometí ya esta lista la web para descargar mi juego, también está el código fuente de Bennu por si alguien quiere ampliarlo, modificarlo o trastearle, jejeje...
http://cowboy.totalh.net (http://cowboy.totalh.net)
¿Oye L1nk crees que te pueda servir mi juego para agregarlo a tu BennuPack de Dreamcast? , me sentiría feliz si lo agregan.
Saludos!!! ;D ;D ;D
;D
Bien arreglemos el port lo subiremos en el proximo pack de DC con tu juego +
Recuerda que hay un pack similar para PSP y PS2 para facilmente portar el juego...
https://sourceforge.net/projects/coldev/files
si quieres algo mas complejo como correr el juego en navegador pues...
tienes el port de bennu de Chrome aqui algunos juegos bennu corriendo en chrome
http://coldev.webs.com/
Y si deseas espacio ilimitado para subir proyectos tienes :
https://sourceforge.net/
https://github.com/
Estas paginas te permiten crear aparte una pagina web si lo deseas...
algo parecido a esto como en sourceforge que estamos montando.. https://coldev.sourceforge.io/
Gracias l1nk por la info, ahora mismo le pongo las manos encima al port de PS2, creo recordar tener una guardada, es de las primeras, no es la slim, voy a probar y si tengo dudas los molestaré preguntando.
Hola ya encontré mi vieja PS2, es de las grandotas, una pregunta ¿a cuantas X debo quemar el ISO?, por ejemplo en Dreamcast lo escribo a 16X para que la consola pueda leerlo.
¿En PS2 cuantas X?
¿Puedo quemarlo en DVD o tiene que ser un CD-R?
¿Puedo quemar la ISO con cualquier software o tiene que ser con UltraISO solamente?
Voy a pasar el Cowboy-Bebop al port, continuaré con más preguntas en la sección referente a PS2, haber si pudieras sacarme de estas dudas.
Saludos ;D
Funciona en ambos cd y dvd .. como siempre debe grabarse a baja velocidad ...
lo menos que aguante tu dvr .. y grabarse en cualquier software , que soporte iso..
creo que tambien funciona en memoria USB... usando ulaunch mira los ejemplos.. este metodo ahorra tiempo..
y como siempre es mejor probarlo en emulador .. y cuando este listo lo probas en hardware real...
http://forum.bennugd.org/index.php?board=73.0 (http://forum.bennugd.org/index.php?board=73.0)
Quote from: l1nk3rn3l on August 23, 2017, 02:40:34 PM
2. la mas facil .. implementar una llamada a una funcion "ejecutar_dcb()" y reiniciar los recursos de DC (INIT MALLOCSTATS)
Eso sería genial. No solo para evitar este problema, también se podrían lanzar diferentes .dcb y crear recopilatorios.
Quote from: l1nk3rn3l on August 23, 2017, 02:40:34 PM
3. La otra es investigar por que malloc y free no funcionan correctamente en DC .. y se llevaria mas tiempo en eso...
y posiblemente sea que bennu este compilandose en una version debug , como lo dice en el manual
que malloc de la version debug nunca libera memoria (4.6 Memory Allocation System) Pag.1
Eso descartado. Lo hemos probado a compilar sin debug y sucede lo mismo.
Quote from: l1nk3rn3l on August 23, 2017, 02:40:34 PM
4. Ponerme de acuerdo con splinter para crear un recolector de basura para bennu, y gestionar la memoria
como lo hace java, lua o c#, pero eso deberia hacerlo el sistema operativo automaticamente en este caso KOS o el WinCE...
Sí, el KOS en este caso. Pero en BennuGD de PC sí que se libera bien la memoria, ¿verdad?
Quote from: l1nk3rn3l on August 23, 2017, 08:51:23 PM
Bien arreglemos el port lo subiremos en el proximo pack de DC con tu juego +
Bien, sería fantástico. Es necesario realmente poder liberar memoria de manera óptima porque de lo contrario estamos muy condicionados con la poca disponible en Dreamcast una vez que arranca BennuGD.
Realmente he estado haciendo pruebas y algo sí que hace con los Map unload y demás. No la libera, o sea la memoria no sube pero algo hace porque si no lo hago y lo meto en un bucle de prueba baja rápidamente. Es como si la reubicase como puede o algo así, pero limpiarla por desgracia, no la limpia...
Como bien lo dices amigo Ryo sería genial poder liberar memoria con el unload_fpg(), l1nk comenta que el port de la DC aun está en desarrollo, me gustaría ayudar pero nunca le he trasteado al KOS ni a OpenGL :'( , jejeje solo me queda esperar.
Aun con las limitaciones actuales en el portDC, agradezco el esfuerzo de todos ustedes por crearlo, estoy muy contento de poder usarlo en mis proyectos.
Cuando pasé el "Cowboy-Bebop" también me las encontre dificiles, llegó un momento en que no iniciaba el juego, debido a que había superado la RAM disponible de la DC, así que tuve que cancelar 8 pantallas donde se narraba el final del juego, originalmente eran 10 pantallas al terminar el juego pero tuve que reducirlo a 8.
Pueden verlo en el código fuente, ya si más adelante se hace la mejora en el portDC, los que gusten pueden hacerle el cambio al código del "Cowboy-Bebop".
Saludos!!!! ;D
Interesante lo que comentas, eso querría decir que el Fénix de Dreamcast sí que liberaba la RAM.
Estuve hablando con Chui que fue el autor y a pesar de que hace ya muchos años a él le suena que si que hacia el free bien en Fenix de la Dreamcast. Así que quizás mirando a su port de Fenix, a su source podría darnos una pista de cómo lo hace:
http://chui.dcemu.co.uk/fenix.html#Downloads
De todas formas folken, creo que quizás tenga una solución para que tu Cowboy Bebop te entre en la RAM de la DC sin tener que quitarle contenido, en breve te mando un privado.
A ver si pudieramos solventarlo. Pudiendo descargar y cargar la ram la cosa cambiaría mucho...
Bennu lo deberia hacer de forma similar ya que es un fork de fenix, pero como ha tenido cambios a lo mejor falla por algun motivo que habria quie comparar en el src de ambos
Como bien lo dice Free habría que aventarse un clavado en el source del port de fenix para ver como lo hace chui, gracias Ryo por los links, ya los bajé, haber si puedo ayudar un poco, aunque por ahora estoy muy metido con mi juego usando el Yeti3D para PS2 y la DC.
;D
Sí, yo le estuve echando un ojo también.
No sé si van por aquí los tiros pero en Fenix de Chui:
void free_map (MAP * map)
{
if (map->depth == 8 && map->palette) free (map->palette) ;
if (map->n_flags & F_NCPOINTS) free (map->cpoints) ;
free (map->data) ;
free (map) ;
}
Y en BennuGD:
void bitmap_destroy( GRAPH * map )
{
if ( !map ) return ;
if ( map->cpoints ) free( map->cpoints ) ;
if ( map->code > 999 ) bit_clr( map_code_bmp, map->code - 1000 );
if ( map->data && !( map->info_flags & GI_EXTERNAL_DATA ) ) free( map->data ) ;
if ( map->format )
{
if ( map->format->palette ) pal_destroy( map->format->palette ) ;
free ( map->format );
}
free( map ) ;
}
Ni dea, a mí todo esto se me escapa!
El nuevo dreamcast incluira esto... todavia en pruebas...
+ SDL 1.2.15
+ PNG 1.6.32
+ MIKMOD 3.3.11.1
+ Zlib 1.2.11
+ arreglos de memoria
+ se arreglo la funcion exec("program.bin"); mod_sys
+ mejoras internas
+ nueva libreria fake sdl mixer del (Author: arcadenea, https://github.com/arcadenea/fake_mixer)
+ arregladas las funciones del modulo mod_mem, (mem_total and mem_available)
+ bootdreams 2.0 (win10 arreglos) exclusivo del pack
Por el momento seguimos en la optimizacion de la memoria...
segun los test de malloc
+ cuando liberas memoria el sistema operativo KOS siempre te dice que te queda la misma
memoria libre, segun veo eso en otros sistemas operativos es normal ese comportamiento .. (queda un remanente fantasma)
+ la DC tiene 16MB de RAM (incluyendo bennu y kos cargados queda en 12 MB libres)
entonces en el test alojamos 5MB 10 veces usando malloc y free y los resultados son que si libera memoria , aunque siempre
dice que queda 7MB siempre .. mirad pantallazos
(https://image.ibb.co/hVbxMR/mem_alloc.jpg)
+ si el DC se pone rebelde ahora se arreglo la funcion de bennu... exec("externo.bin") donde
puedes ejecutar un programa externo, (para resolver mas los limites de memoria) para juegos grandes...
+ y las mejoras citadas al comienzo
Excelente trabajo L1nk, ;D esas mejoras permitirán portar más juego en la DC, eres todo un maestro de Bennu y C avanzado, te ofresco mi respeto y admiración.
Saludos ! :D
Quote from: l1nk3rn3l on October 16, 2017, 05:54:57 PM
El nuevo dreamcast incluira esto... todavia en pruebas...
+ SDL 1.2.15
+ PNG 1.6.32
+ MIKMOD 3.3.11.1
+ Zlib 1.2.11
+ arreglos de memoria
+ se arreglo la funcion exec("program.bin"); mod_sys
+ mejoras internas
+ nueva libreria fake sdl mixer del (Author: arcadenea, https://github.com/arcadenea/fake_mixer)
+ arregladas las funciones del modulo mod_mem, (mem_total and mem_available)
+ bootdreams 2.0 (win10 arreglos) exclusivo del pack
Por el momento seguimos en la optimizacion de la memoria...
segun los test de malloc
+ cuando liberas memoria el sistema operativo KOS siempre te dice que te queda la misma
memoria libre, segun veo eso en otros sistemas operativos es normal ese comportamiento .. (queda un remanente fantasma)
+ la DC tiene 16MB de RAM (incluyendo bennu y kos cargados queda en 12 MB libres)
entonces en el test alojamos 5MB 10 veces usando malloc y free y los resultados son que si libera memoria , aunque siempre
dice que queda 7MB siempre .. mirad pantallazos
(https://image.ibb.co/hVbxMR/mem_alloc.jpg)
+ si el DC se pone rebelde ahora se arreglo la funcion de bennu... exec("externo.bin") donde
puedes ejecutar un programa externo, (para resolver mas los limites de memoria) para juegos grandes...
+ y las mejoras citadas al comienzo
l1nk, no se que funcion estas usando para saber la memoria libre, pero quizas no esta dando la memoria libre, sino el bloque (contiguo) mas largo disponible... pensa que puedes no ser el unico alocando y liberando memoria, y entre tu alloc y free, puede quizas existir otro alloc de otra parte del codigo, y ahi se genera una fragmentacion...
proba allocar todo lo que te dice que tenes libre, hace luego el testeo de memoria, luego libera y luego testea otra vez la memoria disponible...
algo asi como (pseudocodigo)
mem = malloc(12000);
if ( !mem ) say ("no se ha podido hacer el malloc"); end
say("memoria libre antes del free: " + memorialibre());
free( mem );
say("memoria libre despues del free: " + memorialibre());
mem = malloc(12000);
if ( !mem ) say ("no se ha podido hacer el malloc"); end
say("memoria libre antes del free: " + memorialibre());
free( mem );
say("memoria libre despues del free: " + memorialibre());
Qué gran trabajo l1nk3rn3l!!
A ver si se consigue que se pueda liberar la RAM, finalmente.
También la posibilidad de "saltar" cargando otro file puede ser muy bueno, no solo para eso sino para la posibilidad de hacer algo parecido a un menú que ejecute varios homebrew de BennuGD diferentes desde la DC.
Lo que no entiendo muy bien, dices .bin. ¿Sería otro 1st_read.bin? Yo pensaba que cargarías otro .dcb diferente. No me queda claro...
Ánimo! Lo esperamos!
Sé que esto es algo viejo, pero quiero aportar mi granito de arena.
Lo mismo ya lo sabeis, pero existen SO que no liberan la memoria, como Android. Estos SO consideran que la memoria vacía es memoria desaprovechada, por lo que lo qe hacen es marcar esa zona de memoria como "aprovechable", no como "libre", y siguen consumiendo la memoria libre con nuevos programas. Es cuando se quedan sin memoria cuando hacen uso de esa memoria "aprovechable". ¿Por qué se hace así? Porque si en algún momento necesitamos volver a ejecutar el programa, o usar algo que habíamos cargado recientemente... ¡ya está en memoria!, no hace falta volverlo a cargar, y eso, con los CDs como almacenamiento masivo, es mucho tiempo de ahorro.
Puede que la medición de memoria libre sólo tenga en cuente la memoria sin usar, y no la memoria marcada como "aprovechable". De ahí que siga marcando la misma cantidad siempre, pero que no se registre ningún cambio a la hora de (volver a) cargar un fichero a memoria.
Que pena con los que postearon , no sabia que habia una actualizacion del post,
El foro deberia tener al comienzo los post mas recientes y despues todo el temario como esta,
asi seria mas facil chekar cuales post son nuevos , Bueno lo que me comenta el Maestro Splinter
la respuesta es parecida a la del colega Drumpi (la zona no esta ocupada , pero no se reporta como libre)
De todas maneras en la practica puede ser fragmentacion , ya que algunos sistemas operativos viejos
no tenian un gestor de memoria como los kernel actuales...
Bueno para no profundizar aquí esta la respuesta que me dieron la gente de dreamcast
http://dcemulation.org/phpBB/viewtopic.php?f=29&t=104419&sid=3009e7224861beae8c5e5e5f7dddab95 (http://dcemulation.org/phpBB/viewtopic.php?f=29&t=104419&sid=3009e7224861beae8c5e5e5f7dddab95)
El Port de dreamcast no se ha tocado , ya que otros proyectos como BennuPhoton requerían mas atención, ya que no existían,
El problema sigue estando ahí y entiendo lo que comentáis de que cuando has cargado algo y luego lo liberas de memoria de cara a mostrar la memoria libre no conste aunque en teoría sí sea utilizable.
La historia viene que debe haber algún bug o algo porque en la práctica no es utilizable esa memoria "aprovechable", ya que si intentas cargar algo digamos encima de esa memoria ya no puede y se cuelga. Realmente solo podemos usar la RAM que tenemos al principio e independientemente de que intentemos liberar assets luego y aunque no constase numéricamente como RAM libre de nuevo es que en realidad no puedes cargar nada más así que la RAM solo puede usarse una sola vez.
Esto limita muchísimo las posibilidades de hacer algo, ya que nos quedan algo así como 10 megas de RAM y estamos "condenados" a solo poder usar eso.
Espero que se pueda solucionar tarde o temprano, porque creo que es muy importante. A las malas que se pudiera lanzar otro .dcb o algo por el estilo para poder modular los proyectos al estar condicionados por una RAM no liberable.
A ver si puedes echarle un ojo l1nk3rn3l. Gracias y un saludo!
P.D: Esto debe ser alguna cosa del port de BennuGD a Dreamcast porque en KOS no sucede...
Buenas a todos.
Perdón por revivir este post pero alguien ha encontrado solución al tema de liberar la memoria de la dreamcast?
Me acabo de topar con el problema y me ha bloqueado el desarrollo al completo :-/
segun estuve viendo con alguien hace un tiempo, creo recordar que el tema de la DC es que realmente no posee funciones de free/alloc nativas manejadas por el sistema... la aplicacion hace uso de la memoria a su gusto... y parece que la implementacion que se esta usando (ajena a bennugd) o no esta completa o tiene algun bug...
pero puede que me equivoque...
Quote from: SplinterGU on May 09, 2018, 02:28:27 AM
segun estuve viendo con alguien hace un tiempo, creo recordar que el tema de la DC es que realmente no posee funciones de free/alloc nativas manejadas por el sistema... la aplicacion hace uso de la memoria a su gusto... y parece que la implementacion que se esta usando (ajena a bennugd) o no esta completa o tiene algun bug...
pero puede que me equivoque...
Pues vaya, que problema!
Por lo que dices Splinter, según comentas ¿Esto pasaría en cualquier lenguaje orientado a Dreamcast? Según comenta
Ryo en un post anterior, esto en KOS no pasa.
¿Se les ocurre alguna posible solución para poder proseguir? Se podría rescribir de alguna manera la memoria para poder seguir trabajando? Me acabo de ver muy limitado para poder trabajar la verdad, aunque entiendo que esto es solo mi problema :D
La verdad es que no se me ocurre nada ahora mismo, porque por ejemplo los FPG en ningún momento tengo acceso a la posición de memoria, solo su ID para usarlo posteriormente. Si ruviera acceso a su posición en memoria podría sobrescribirla..
Me parece haber leido que el problema era que la memoria quedaba muy fragmentada tras cagar y descargar recursos en DC, si ese es el problema, quizas se podria probar cargar los recursos necesarios despues de descargar absolutamente todo de memoria. De modo que se ordenen los datos en ram y te permita acceder al espacio necesario
Quote from: JaViS on May 09, 2018, 02:16:24 PM
Me parece haber leido que el problema era que la memoria quedaba muy fragmentada tras cagar y descargar recursos en DC, si ese es el problema, quizas se podria probar cargar los recursos necesarios despues de descargar absolutamente todo de memoria. De modo que se ordenen los datos en ram y te permita acceder al espacio necesario
A nivel de código en BennuGD, el problema es que las funciones para descargar elementos de memoria (como el caso de UNLOAD_FPG() ), no funcionan, por lo que a través de esta vía no se pueden descargar todos los elementos de la RAM ¿Existe otra vía para descargar la RAM?
ah bueno, si ya eso no funciona, no se me ocurre como solucionar ese problema.
por ahi podes optimizar el tamaño de tus recursos. Las imagenes se pueden reducir mucho en tamaño bajando la cantidad de colores, a los sonidos se les puede bajar el bitrate, etc
Si cierto es
Poder se podría, pero pienso que limita mucho el desarrollo de algo de nivel medio/alto en bennuGD, tendrías que estar siempre limitado a usar elementos de muy baja calidad para reducir la carga en memoria...una pena la verdad.
Voy a intentar optar por la vía de trabajar a 8bits de color para intentar reducir la carga en ram en ese sentido, pero se me va de las manos el proyecto que estoy desarrollando.
En caso de que aún así no pueda, tendré que intentar migrar todo a KOS..
Me he quedado muy apenado la verdad :'-(
Gracias por las respuestas
me corrijo, me confundi con n64... perdon...
igual no me hagan caso...
No te desanimes tanto, tomalo como un desafío, pensá en la magia que tenían que hacer en ese tiempo para portar un arcade a esa consola.
La optimizacion de los recursos es una tarea divertida y te vas a sorprender de la calidad que podes conseguir comprimiendo de forma inteligente.
Quote from: JaViS on May 09, 2018, 07:51:03 PM
No te desanimes tanto, tomalo como un desafío, pensá en la magia que tenían que hacer en ese tiempo para portar un arcade a esa consola.
La optimizacion de los recursos es una tarea divertida y te vas a sorprender de la calidad que podes conseguir comprimiendo de forma inteligente.
Si pudiera reducir el tamaño de las imagenes para trabajar con paletas de 8 bits en el FpGEit estaría genial, pero hasta dia de hoy no he sido capaz de hacerlo.
Ahi podría reducir considerablemente la ram
Hola gente. Me presento. Mi nombre es Gabriel. Soy de Argentina. Estuve siguiendolos en silencio por algunos meses mientras aprendia a desarrollar en este lenguaje. Me tope con bennu cuando descubri que se puede portar el juego a dreamcast. Estoy desarrollando un juego de naves y me tope con este problema de la memoria en dreamcast. Saben si hubo o habra algun avance? Hoy en dia mi fichero de sprites ya tiene 13 megas y no me levanta mas el juego en el emulador. Tendria q dividir el fichero en varios archivos y cargarlos y descargarlos en memoria segun lo necesite pero bueno... Aqui estamls con ese tema. Les mando un abrazo grande!
Bienvenido :)
La respuesta te la has dado tú mismo "Tendria q dividir el fichero en varios archivos y cargarlos y descargarlos en memoria segun lo necesite" :)
Cuando trabajas con tan poca memoria RAM, no te queda otra que optimizar, cargar y descargar continuamente. ¡Suerte!
Claro. Pero no estaria funcionando la liberacion de memoria en dreamcast (al menos hasta la version q rengo yo jeje)
Ah, vale, pues me he pasado de listo xD
Ahí no tengo ni idea. Yo hace años usé Fénix y no tenía ese problema, pero con BennuGD lo desconozco
Parece que esta pendiente de fix
Ok. Seguimos a la espera de novedades jeje. Abrazo!
Hola amigos,
empecé a estudiar bennugd para intentar hacer un juego para dreamcast. hice un archivo .cdi que funciona en el emulador nullDC, pero muy lento. ¿es normal?
otro problema: tengo pocos gráficos en un FPG con formato 32 bits y el emulador no funciona cuando carga todos los gráficos en el FPG. los gráficos no llegan a 1MB. cuando apago los gráficos, el juego funciona bien, pero lento, como he dicho.
se tiene errores en el texto, perdoname, porque yo he estudiado poco de español, pero compreendo leer, porque yo hablo portugues. :)
Quote from: nemezes on December 15, 2018, 02:36:21 PM
funciona en el emulador nullDC, pero muy lento. ¿es normal?
Básicamente si, es normal que vaya lento, yo también estudie bennuGD por algún tiempo y logre hacer un duck hunt para el dreamcast pero también era muy lento y en otras pruebas mucho mas simples que hice también iba super lento así que me di por vencido.
La parte buena de haber fallado con BenuGD es que me decidí a hacer mi propio engine 3D para el dreamcast y ya esta casi terminado, hasta el momento tenemos renderizado de modelos 3D, asignación de texturas, sistema de clipping, colisiones, editor de niveles y animaciones por interpolacion pero estamos por terminar el sistema de animaciones por joints, todo funciona al 100% en emuladores y en consolas.
Cordial saludo.
Es muy dificil y hay muchos errores ocurriendo con mi juego, voy portar lo juego apenas para PC.
Gracias por la informacion juguefre.
Mira... En mi experiencia la lentitud se presenta cuamdo hay un scroll. Quizas mover una imagen muy grande genera el problema. En mi caso quite la imagen que usaba de scroll y el juego va rapidisimo. Si podes probalo!
Sí, lo del scroll y las optimizaciones se nota.
No va tan lento el port de DC. Y el tema de RAM ya parece funcionar por las pruebas que he estado haciendo, echadle un ojo a esto:
http://forum.bennugd.org/index.php/topic,4810.0.html
Más que nada para quien se aventure a usar el port de Dreamcast que no le eche atras el tema de la limitación de RAM, ya no es así.
Si tenéis alguna duda y puedo ayudaros...