BennuGD PSP

Started by DCelso, January 12, 2011, 12:01:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

DCelso, vi el parche, y no se porque dije que se carga todo el codigo PSP (bueno, en algun que otro caso si...), quiero preguntarte algunas cosas que veo...

por que esto? que bugs encontraste que hiciste esto?


Index: core/bgdc/src/c_code.c
===================================================================
--- core/bgdc/src/c_code.c   (revision 277)
+++ core/bgdc/src/c_code.c   (working copy)
@@ -1718,6 +1718,7 @@
                 return res ;
             }
             compile_error( MSG_NUMBER_REQUIRED ) ;
+            res.type.chunk[0].type=0;
             return res ;
         }
         else if ( token.code == identifier_bnot ) /* "BNOT" or "~" */
@@ -1741,6 +1742,7 @@
                 return res ;
             }
             compile_error( MSG_NUMBER_REQUIRED ) ;
+            res.type.chunk[0].type=0;
             return res ;
         }


y esto?


Index: core/bgdrtm/src/sysprocs.c
===================================================================
--- core/bgdrtm/src/sysprocs.c   (revision 286)
+++ core/bgdrtm/src/sysprocs.c   (working copy)
@@ -231,6 +231,10 @@
     unsigned int n ;
     DCB_VAR rvar ;
     void * rdata = NULL ;
+   
+    rvar.Type.BaseType[0]=0;
+    rvar.Type.Members=0;
+    rvar.Type.Count[0]=0;

     token_ptr = varfixup->var ;


y este otro?


static int moddir_cd( INSTANCE * my, int * params )
{
+#ifndef TARGET_PSP
     char * d = dir_current() ;
     int r = string_new( d ) ;
     string_use( r ) ;
     if ( d ) free( d ) ;
     return r ;
+#else
+   char current_dir[PATH_MAX];
+   getcwd(current_dir,PATH_MAX);
+    int r = string_new( current_dir ) ;
+    string_use( r ) ;
+    return r ;
+#endif
}


despues veo que cuando cargas los fpg haces un swap (cosa que deberia hacerse automaticamente con en la fileread... si no lo hace me da la impresion que el codigo de deteccion de byteorder no esta soportando PSP, quizas ese sea la madre de los problemas)... y luego cuando usas el fpg volves a hacer otro swap de bytes... lo mire muy por arriba, pero me parece que algo raro hay.

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

DCelso

Los dos primeros trozos de codigo son de asignaciones a cero. El compilador de c de psp se quejaba de que no estaban iniciados y que podrian ser usados sin estarlo. Entonces los puse a cero para evitar ser usados con datos espureos. Crei que podrian venir por ahi los cuelgues. Pero nada nal principio parecia arreglarlo parecia mas estable pero se seguia colgando. Asi que quizas seqn innecesarias esas asignqciones a cero pero tampoco estan de mas.
Luego el parche tercero era porque usas asignacion dinamica para el string y crei que por qhi tqmvien podria haber problemas de direccionqmiento y o memoria asi que lo puse en cadenq estatica por si.arreglaba algo.
Pero tampoco arreglo nada. Asi que tqmpoco es unbparche. Necesario.
Lo de lo del swap automatico. Que me dices Eso pinta muy bien. Casi fijo que es el problema de los cuwlgues
Monstruos Diabólicos

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

SplinterGU

en todo caso, inicialos al inicio... el compilador da warnings en esos, pero por las condiciones que estan antes, deberian estar seteados para los casos donde se necesitan... el problema es que si los seteas antes del return, podes estar pisando (seguro lo esta haciendo) algun seteo de estos en un if que si corresponde...

despues de cambiar esto, tendrias que recompilar tus dcb, ya que esto afecta a los dcb (casos de fuentes bgdc).

PD: ahora que miro el parche, si va tras un compile_error, entonces olvidarse de todo eso, el compile_error aborta la ejecucion de la aplicacion.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Por cierto, OS_PSP es 1001 según ese parche, ¿no?


Lo he añadido al wiki, que faltaba.

Abash

Hay posibilidad de actualizar el interprete o el proyecto esta abandonado?
Hace tiempo baje una demo de un tetris.
Funcionar funciona bien tal como esta si uso los archivos que trae, pero si compilo el prg, deja de funcionar y la psp se bloquea.

Por cierto. Gracias a todos aquellos que siguen trabajando en actualizaciones y mejoras en el lenguaje despues de tanto tiempo.

danielt3

Eu posso tentar recompilar o port para PSP e verificar se está funcionando. Poderia enviar o demo do tetris para testar?

Quote from: Abash on March 14, 2017, 12:27:56 PM
Hay posibilidad de actualizar el interprete o el proyecto esta abandonado?
Hace tiempo baje una demo de un tetris.
Funcionar funciona bien tal como esta si uso los archivos que trae, pero si compilo el prg, deja de funcionar y la psp se bloquea.

Por cierto. Gracias a todos aquellos que siguen trabajando en actualizaciones y mejoras en el lenguaje despues de tanto tiempo.
---

Daniel

FreeYourMind

El port de PSP tiene algunos errores conocidos, problemas de color, lo llebaba DCElso pero esta descontinuado, lo ideal seria poder portar la ultima version.

Otro problema que tenia el port era los tiempos de ejecución y carga eran muy lentos.

Abash

Daniel te dejo el juego como adjunto. Te lo subo desde el telefono movil y no se si me lo subira bien.
El EBOOT no es el original que venia con el juego. Es otro que no se de donde lo saque.
Ni el original ni otros 3 que e intentado usar me funcionaban.
La PSP quedaba bloqueada.
En la PSP Slim que tengo funciona. Tarda un poco en cargar el juego.

alicesimu

Quote from: Abash on March 14, 2017, 04:49:30 PMDaniel te dejo el juego como adjunto. Te lo subo desde el telefono movil y no se si me lo subira bien.
El EBOOT no es el original que venia con el juego. Es otro que no se de donde lo saque.
Ni el original ni otros 3 que e intentado usar me funcionaban.
La PSP quedaba bloqueada.
En la PSP Slim que tengo funciona. Tarda un poco en cargar el juego.

No hay manera de cargarlo en la consola real :( ,
que CFW estas usando? yo uso el ultimo CFW 6.61 PRO-C2, en una PSP 3000

Realmente hay que llamarlo "game.dcb" ?? no es "EBOOT.dcb"???