[PSPSDK] Problema con codigo de plugin

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por ~Rdavid~ »

No se puede hacer un homebrew que cargue el prx y después firmarlo?
Imagen

Avatar de Usuario
AzagraMac
Enteradillo
Enteradillo
Mensajes: 32
Registrado: 09 Jul 2010, 19:28
PSN ID: Azagra_Mac
Twitter: AzagraMac
Ubicación: Madrid
Contactar:

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por AzagraMac »

~Rdavid~ escribió:No se puede hacer un homebrew que cargue el prx y después firmarlo?

A eso me refiero, el problema esque si los plugins necesitan acceso al Kernel.. no se puede hacer nada.

Si total_noob liberara el exploit de acceso al kernel... :mrgreen: :mrgreen: :mrgreen: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba: :baba:

* PlayStation 3 128Gb SSD Firmware 4.82
* PSNetwork: Azagra_Mac

asmb
Novato
Novato
Mensajes: 10
Registrado: 30 Ago 2010, 05:22

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por asmb »

bueno este es otro codigo para mostrar un menu que tampoco funciona

main.c
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <pspdebug.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <psploadexec_kernel.h>
#include <psppower.h>
#include <pspdisplay_kernel.h>
#include "blit.h"

PSP_MODULE_INFO("Demo", 0x1000, 1, 0);
PSP_MAIN_THREAD_ATTR(0);

#define S_OFF 0
#define S_ON 1

int pMenu = 1;
int showMenu = S_OFF;

int ColorM1 = 0xFF0000;
int ColorM2 = 0xFFFFFF;
int ColorM3 = 0xFFFFFF;
int ColorM4 = 0xFFFFFF;
int ColorM5 = 0xFFFFFF;
int ColorM6 = 0xFFFFFF;

SceCtrlData pad, lastpad;

int main_thread(SceSize argc, void* argp)
{
    while(1)
   {
            sceCtrlReadBufferPositive(&pad, 1);
         if(pad.Buttons != lastpad.Buttons)
             {
                lastpad = pad;
               if ((pad.Buttons & PSP_CTRL_LTRIGGER) && (showMenu == S_OFF))
                   {
                      showMenu = S_ON;
                  }
               else if ((pad.Buttons & PSP_CTRL_LTRIGGER) && (showMenu == S_ON))
                  {
                     showMenu = S_OFF;
                  }
                 else if ((pad.Buttons & PSP_CTRL_DOWN) && (showMenu == S_ON))
                    {
                       pMenu = pMenu + 1;
                       if (pMenu > 6)
                           {
                             pMenu = 1;
                          }
                    }
                 else if ((pad.Buttons & PSP_CTRL_UP) && (showMenu == S_ON))
                    {
                       pMenu = pMenu - 1;
                       if (pMenu < 1)
                          {
                             pMenu = 6;
                          }
                    }               
             }                                               
          if (showMenu == S_ON)
             {
               if (pMenu == 1)
                   {
                      ColorM1 = 0x00FFFF;
                     ColorM2 = 0xFFFFFF;
                     ColorM3 = 0xFFFFFF;
                     ColorM4 = 0xFFFFFF;
                     ColorM5 = 0xFFFFFF;
                     ColorM6 = 0xFFFFFF;
                  }
               else if (pMenu == 2)
                   {
                      ColorM1 = 0xFFFFFF;
                     ColorM2 = 0x00FFFF;
                     ColorM3 = 0xFFFFFF;
                     ColorM4 = 0xFFFFFF;
                     ColorM5 = 0xFFFFFF;
                     ColorM6 = 0xFFFFFF;
                  }
               else if (pMenu == 3)
                   {
                      ColorM1 = 0xFFFFFF;
                     ColorM2 = 0xFFFFFF;
                     ColorM3 = 0x00FFFF;
                     ColorM4 = 0xFFFFFF;
                     ColorM5 = 0xFFFFFF;
                     ColorM6 = 0xFFFFFF;
                  }
               else if (pMenu == 4)
                   {
                      ColorM1 = 0xFFFFFF;
                     ColorM2 = 0xFFFFFF;
                     ColorM3 = 0xFFFFFF;
                     ColorM4 = 0x00FFFF;
                     ColorM5 = 0xFFFFFF;
                     ColorM6 = 0xFFFFFF;
                  }
               else if (pMenu == 5)
                   {
                      ColorM1 = 0xFFFFFF;
                     ColorM2 = 0xFFFFFF;
                     ColorM3 = 0xFFFFFF;
                     ColorM4 = 0xFFFFFF;
                     ColorM5 = 0x00FFFF;
                     ColorM6 = 0xFFFFFF;
                  }
               else if (pMenu == 6)
                   {
                      ColorM1 = 0xFFFFFF;
                     ColorM2 = 0xFFFFFF;
                     ColorM3 = 0xFFFFFF;
                     ColorM4 = 0xFFFFFF;
                     ColorM5 = 0xFFFFFF;
                     ColorM6 = 0x00FFFF;
                  }
            }
           sceKernelDelayThreadCB(50000);
        }
    return 0;
}
int print(SceSize argc, void* argp)
{
   while(1)
      {
          if (showMenu == S_ON)
             {                  
               blit_setup();
               blit_set_color(0xFFFFFF, 0x000000);
                blit_string(1, 1, "                         ");
               blit_set_color(ColorM1, 0x000000);
               blit_string(1, 2, "Alan");
               blit_set_color(ColorM2, 0x000000);
               blit_string(1, 3, "Samuel");
               blit_set_color(ColorM3, 0x000000);
               blit_string(1, 4, "Medina");
               blit_set_color(ColorM4, 0x000000);
               blit_string(1, 5, " Apagar PSP              ");
               blit_set_color(ColorM5, 0x000000);
               blit_string(1, 6, " Reiniciar PSP           ");
               blit_set_color(ColorM6, 0x000000);
               blit_string(1, 7, " Ayuda ->                ");
               blit_set_color(0xFFFFFF, 0x000000);
               blit_string(1, 8, "                         ");               
            }                  
         sceKernelDelayThreadCB(200);
      }
   return 0;
}
int module_start(SceSize args, void *argp)
{
    int thid = sceKernelCreateThread("Demo", main_thread, 0x30, 0x1000, 0, NULL);
   if(thid >= 0) sceKernelStartThread(thid, args, argp);
   int print_id = sceKernelCreateThread("print", print, 1, 0x1000, 0, NULL);
    if(print_id >= 0) sceKernelStartThread(print_id, args, argp);
   return 0;
}


este es el error que me da

error
Spoiler:

Código: Seleccionar todo

alan@alan-desktop:~/Escritorio/Demo/1/plugin_asmb$ make
psp-gcc -I/usr/local/pspdev/psp/sdk/include/libc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c -o main.o main.c
psp-gcc -I/usr/local/pspdev/psp/sdk/include/libc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c -o blit.o blit.c
blit.c: En la función ‘blit_setup’:
blit.c:47: aviso: el paso del argumento 4 de ‘sceDisplayGetFrameBuf’ crea un entero desde un puntero sin una conversión
psp-gcc -I/usr/local/pspdev/psp/sdk/include/libc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150  -L. -L/usr/local/pspdev/psp/sdk/lib -Wl,-q,-T/usr/local/pspdev/psp/sdk/lib/linkfile.prx -mno-crt0 -nostartfiles   main.o blit.o -lpsppower -lpspdisplay_driver -lpspkernel -lpspdebug -lpspdisplay_driver -lpspctrl_driver -lpspsdk  -lpspkernel -o Demo.elf
psp-fixup-imports Demo.elf
psp-prxgen Demo.elf Demo.prx


blit.c
Spoiler:

Código: Seleccionar todo

/*
    PSP VSH 24bpp text bliter
*/
#include "common.h"
#include <pspdisplay.h>

#define ALPHA_BLEND 1

extern unsigned char msx[];

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
static int pwidth, pheight, bufferwidth, pixelformat;
static unsigned int* vram32;

static u32 fcolor = 0x00ffffff;
static u32 bcolor = 0xff000000;

#if ALPHA_BLEND
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
static u32 adjust_alpha(u32 col)
{
    u32 alpha = col>>24;
    u8 mul;
    u32 c1,c2;

    if(alpha==0)    return col;
    if(alpha==0xff) return col;

    c1 = col & 0x00ff00ff;
    c2 = col & 0x0000ff00;
    mul = (u8)(255-alpha);
    c1 = ((c1*mul)>>8)&0x00ff00ff;
    c2 = ((c2*mul)>>8)&0x0000ff00;
    return (alpha<<24)|c1|c2;
}
#endif

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//int blit_setup(int sx,int sy,const char *msg,int fg_col,int bg_col)
int blit_setup(void)
{
    int unk;
    sceDisplayGetMode(&unk, &pwidth, &pheight);
    sceDisplayGetFrameBuf((void*)&vram32, &bufferwidth, &pixelformat, &unk);
    if( (bufferwidth==0) || (pixelformat!=3)) return -1;

    fcolor = 0x00ffffff;
    bcolor = 0xff000000;

    return 0;
}

/////////////////////////////////////////////////////////////////////////////
// blit text
/////////////////////////////////////////////////////////////////////////////
void blit_set_color(int fg_col,int bg_col)
{
    fcolor = fg_col;
    bcolor = bg_col;
}

/////////////////////////////////////////////////////////////////////////////
// blit text
/////////////////////////////////////////////////////////////////////////////
int blit_string(int sx,int sy,const char *msg)
{
    int x,y,p;
    int offset;
    char code;
    unsigned char font;
    u32 fg_col,bg_col;

#if ALPHA_BLEND
    u32 col,c1,c2;
    u32 alpha;

    fg_col = adjust_alpha(fcolor);
    bg_col = adjust_alpha(bcolor);
#else
    fg_col = fcolor;
    bg_col = bcolor;
#endif

//Kprintf("MODE %d WIDTH %d\n",pixelformat,bufferwidth);
    if( (bufferwidth==0) || (pixelformat!=3)) return -1;

    for(x=0;msg[x] && x<(pwidth/8);x++)
    {
        code = msg[x] & 0x7f; // 7bit ANK
        for(y=0;y<8;y++)
        {
            offset = (sy+y)*bufferwidth + sx+x*8;
            font = y>=7 ? 0x00 : msx[ code*8 + y ];
            for(p=0;p<8;p++)
            {
#if ALPHA_BLEND
                col = (font & 0x80) ? fg_col : bg_col;
                alpha = col>>24;
                if(alpha==0) vram32[offset] = col;
                else if(alpha!=0xff)
                {
                    c2 = vram32[offset];
                    c1 = c2 & 0x00ff00ff;
                    c2 = c2 & 0x0000ff00;
                    c1 = ((c1*alpha)>>8)&0x00ff00ff;
                    c2 = ((c2*alpha)>>8)&0x0000ff00;
                    vram32[offset] = (col&0xffffff) + c1 + c2;
                }
#else
                vram32[offset] = (font & 0x80) ? fg_col : bg_col;
#endif
                font <<= 1;
                offset++;
            }
        }
    }
    return x;
}

int blit_string_ctr(int sy,const char *msg)
{
    int sx = 480/2-strlen(msg)*(8/2);
    return blit_string(sx,sy,msg);
}

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por m0skit0 »

AzagraMac escribió:Todos los plugins corren en modo Kernel? ninguno en modo User?

Sí. No. :lol:

AzagraMac escribió:Que consejo podrias darme, tengo mucho interesas en la scene, auqnue tengo conocimientos de programacion en C, me falta algo. De hay que te preguntaba como fueron tus inicios, por donde empezaste, jeje.

"Ahí" ;)
Yo empecé comprándome una PSP y descubriendo que no era liberable. El resto es mero interés y conocimiento.

~Rdavid~ escribió:No se puede hacer un homebrew que cargue el prx y después firmarlo?

Mí no entender. Si es un homebrew que carga el PRX, ya no es un plugin...

AzagraMac escribió:Si total_noob liberara el exploit de acceso al kernel...

Aún así no sirve de nada, puesto que para los firmwares en los que funciona dicho exploit kernel ya hay HENs y por tanto ya puedes correr los plugins.

asmb escribió:este es el error que me da

Yo no veo ningún error, ilumíname.
Imagen

asmb
Novato
Novato
Mensajes: 10
Registrado: 30 Ago 2010, 05:22

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por asmb »

disculpa m0skit0 si no había respondido pero esque con los estudios uno no tiene tiempo de nada
pero en fin no eran errores sino avisos que no tenían importancia.
También quisiera pedirles un favor si podrían probar este plugin en en fase alpha y mostrar en que firmware lo probaron y que les parecio.
El plugin se activa con Gatillo L ,para seleccionar se usa pad derecha y para salir pad izquierda,para ocultar otra vez Gatillo L
espero les agrade.
Gracias :D :D :D
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por m0skit0 »

Si quieres que la gente pruebe tu plugin, te aconsejo que lo publiques en el foro de homebrews, porque por estos rincones visita poca gente.
Imagen

asmb
Novato
Novato
Mensajes: 10
Registrado: 30 Ago 2010, 05:22

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por asmb »

a ok esta bien gracias

-- Doble Post --

m0skit0 me preguntaba si me podrías ayudar con el código del plugin pues no funciona ni en 6.20 tn ni en 5.50 Gen y tampoco en m33
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [PSPSDK] Problema con codigo de plugin

Mensaje por m0skit0 »

Lo siento pero no, hace meses que ni toco la PSP, y de desarrollo ni hablemos.
Imagen

Responder