Anuncios Google

[C] Lanzar un homebrew al iniciar.

Esa es mi pregunta.

Por ejemplo, que al apagar por completo la PSP, y al volver a encenderla pulsando L (por ejemplo) lanzara un homebrew en LUA o C, me da lo mismo.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de dj51_Shura

Coge este código

te lo dejo:

/* BrightControlerXMB source file
This plugin has been made by dj51_Shura.
Without DeViaNTe I CANNOT made this. So much thanks to him!
Este plugin fue hecho por dj51_Shura.
Sin DeViaNTe yo NO PODRíA haberlo creado. Así que muchas gracias por todo,
especialmente por decirme mis errores y a qué se debían.
*/
 
/* CONTROLS
    Analogic Pad up = Upgrade screen bright level 5%
	Analogic Pad down = Downgrade screen bright level 5%
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
*/
 
#include <pspsdk.h> // Librería PSPSDK Utility
#include <pspkernel.h> // Librería básica para el funcionamiento
#include <pspthreadman.h> // Librería que no sé para lo que sirve, pero que DeViaNTe me ha dicho que hace falta (XD)
#include <pspdebug.h> // Librería Debug Utility
#include <pspctrl.h> // Librería de manejo de los controles
#include <pspdisplay.h> // Librería de manejo de algunas funciones de la pantalla
#include <pspdisplay_kernel.h> // Librería de manejo avanzado de algunas funciones de la pantalla
 
PSP_MODULE_INFO("BC", 0x1000, 1, 0); // Kernel powered + ejecución 'infinita'
PSP_MAIN_THREAD_ATTR(0); // Main Thread attribute: Kernel mode
 
#define PRIORIDAD 0x30 // Prioridad a la hora de re-ejecutar el thread desde el 'module_start'
#define MODOTHREAD 0x1000 // Modo Kernel a la hora de re-ejecutar el thread desde el 'module_start'
 
int main_thread(SceSize argc, void* argp) {
	SceCtrlData pad; // Asignamos la lectura de los controles a la variable 'pad'
	int brillo; // Creamos una variable vacía 'brillo'
	sceDisplayGetBrightness(&brillo,0); // Asignamos el nivel de brillo actual a la variable 'brillo'
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG); // Establecemos el modo de los controles
	while(1) {
		sceCtrlPeekBufferPositive(&pad, 1); // Asignamos la lectura de los controles a la variable 'pad'
			if(pad.Ly < 60) { // Si el 'AnalogicPad.Y' tiene un valor negativo (pad analógico hacia abajo) ...
				if(brillo <= 95){ // Si el nivel de brillo es menor o igual que 95 ...
				brillo = brillo + 5; // La varible 'brillo' será igual al valor actual de 'brillo' + 5 ...
				sceDisplaySetBrightness(brillo,0); // Establecemos el nivel de brillo de la pantalla según la variable 'brillo'
				}
			}
			if(pad.Ly > 220) { // Si el 'AnalogicPad.Y' tiene un valor negativo (pad analógico hacia abajo) ...
				if(brillo >= 10){ // Si el nivel de brillo es mayor o igual que 5 ...
				brillo = brillo - 5; // La varible 'brillo' será igual al valor actual de 'brillo' - 5 ...
				sceDisplaySetBrightness(brillo,0); // Establecemos el nivel de brillo de la pantalla según la variable 'brillo'
				}
			}
			sceDisplaySetBrightness(brillo,0); /*
			Esta linea en el bucle infinito sirve para que, aunque apaguemos la pantalla mantiendo la tecla
			'SCREEN', al volver a encenderla, vuelva a estar con el brillo que la dejamos. Sin esto,
			si apagásemos la pantalla, al encenderla de nuevo pulsando 'SCREEN' el brillo se setearía
			a uno de los niveles por defecto (el mínimo, según mis testeos).
			*/
			sceKernelDelayThread(150000); // Esto evitará el crasheo (freezeo) de la PSP ...
	}
	return 0; // Devolvemos 0 para cerrar el thread
}
 
int module_start(SceSize args, void *argp) {
	int thid = sceKernelCreateThread("BC", main_thread, PRIORIDAD, MODOTHREAD, 0, NULL); // Creamos un thread y lo asignamos a la variable 'thid'
	return sceKernelStartThread(thid, args, argp); // Devolvemos el inicio del thread asignado antes a 'thid'
}

de mi plugin BrightControlerXMB, además del Makefile:

TARGET = BrightControlerXMB
OBJS = main.o
 
INCDIR = 
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
LIBDIR =
LDFLAGS =
 
LIBS =
 
USE_KERNEL_LIBC = 1
USE_KERNEL_LIBS = 1
 
BUILD_PRX = 1
 
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build_prx.mak

adaptándolos a lo que quieres hacer, es decir, incluyendo la librería psploadexec.h y viendo las diferentes funciones que tiene, aquí: http://psp.jim.sh/pspsdk-doc/

Un saludo

PD: no te doy el código ya hecho... pero sí una base. Lo que tienes que hacer es borrar lo que sobre, y añadir que 'si se está pulsando L' cargue un EBOOT.


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Pues la verdad es que no

Pues la verdad es que no se.

Tendria que ser con algun plugin o modificando la flas0

Imagen de dj51_Shura

Con un plugin

y la librería psploadexec.h y opcionalmente psploadexec_kernel.h

Tocando la flash0 obtendrías un brick, además de que con un plugin es mucho más sencillo


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.