[Plugin]Power Management Plugin 0.1

Hola amigos, el otro dia empece con esto del desarrollo de plugins por aquello de aprender más e intentar hacer algo util, os dejo con mi desarrollo, Power Management Plugin (Powermgr).

Se incluyen tambien los sources para todos aquellos interesados en aprender a desarrollar un plugin

Este plugin esta diseñado y programado para optimizar el uso de la energía en
la PSP mientras estamos en el XMB.

Este plugin dispone de 4 funciones que paso a describiros a continuacion.

-Music Mode: Para activar este modo hay que pulsar L+R, este hace un
underclock hasta los 60Mhz de CPU y 30 de Bus, adecuado para escuchar
musica en Mp3, ATRAC o cualquier formato soportado a la vez que ahorramos
bateria.Pulsando L+R de nuevo volveremos a la frecuencia que tuvieramos establecida para el XMB.

-ToggleIdle: Este modo desactiva el autoapagado de la consola (no de la pantalla)
este modo se puede activar/desactivar mediante R+START, util cuando estamos viendo
fotos de cualquier índole (si, tambien porno xD)

-PowerLock: Pulsando R+NOTA MUSICAL bloqueamos el interruptor de apagado para prevenir
un apagado accidental por cualquier circunstancia. Si movemos el interruptor, cuando
desactivemos este modo, la consola se apagará automáticamente.

-Apagado vía software: Pulsando R+SELECT apagaremos totalmente la consola sin necesidad
de acudir al interruptor, esto ya lo hizo Test30 con su fastpower, aunque sinceramente podría
haber hecho más...

Se aceptan sugerencias para nuevos plugins, nuevas funciones para este plugin y modificaciones para
el mismo.

Algunos pequeños bugs que he de solventar en sucesivas versiones es que la consola puede bloquearse si
se activa alguno de los modos sobre un icono de MemoryStick, aseguraos de ejecutar las funciones en la
raiz del XMB para evitar problemas, no se si ésto es un problema de mi código o es algo inherente a todos
los plugins.
3r Ch4mp1 escribió: util cuando estamos viendo
fotos de cualquier índole (si, tambien porno xD)


Jajaja,muchas gracias por el plugin [risita]
Se podria hacer un plugin para graduar los canales RGB de la imagen? y tambien del brillo y contraste (como un monitor de PC). Es que tengo varias PSP y cada una tiene un tono distinto :O

ED: Gracias por el plugin.
Gracias por la sugerencia, probaré a ver, lo del brillo supongo que se moverá en torno a los 4 niveles que hay disponibles que se regulan con un boton, lo de los canales RGB investigaré por el PSPSDK, aunque lo dudo, creo que eso deberian echarle un ojo programadores algo más expertos.

De todos modos, apuntado.
lo probare, aunque quizas me espere cuando ya le hayas quitado los bug.

Ahorita estoy con el scep aunque antes estaba con el fastpower v3.
DIOS!!!!! [flipa]
Pedazo de plugin!!!!!!
Esto si que es de agradecer [plas]

A mi parcer esto es un 5 estrellas.
gracias por el plugin tio
No hay de que, solo espero sugerencias y si hay algun bug para repararlo. Por cierto con lo del underclock no se si lo dije pero hay que apretar al tiempo los dos gatillos, no uno y luego el otro, ademas se nota porque hace como un extraño el xmb, y luego se ve que va mas lento.
No se si esto ya exista (si es asi diganme porfa [+risas] )


Pero estaria bien un plugin o para el 0.2 de este.


Q pudieras manejar la musica con la pantalla apagada, es decir, q en el XMB te fueras a musica,apagaras la pantalla y ya te hicieras garras sin q esta se encienda cada vez q presiones algun boton del psp [tomaaa]


Tu sabes; cambiar de cancion,subirle el volumen,pause etc etc.


Como ya dije antes desconozco si ya existe algo parecido.


salu2 y Gracias por el plugin.
Bueno, siguiendo vuestras sugerencias y las que me han hecho en otros lados intentaré implementar la funcion de que el underclocking se realice automaticamente y de que la pantalla pueda permanecer apagada aunque presionemos otro boton.

Ya sabeis que esto se hará siempre y cuando mis conocimientos y el pspsdk lo permitan, con lo cual, tampoco os garantizo nada.
Gracias xla aplicacion,funciona de perlas.[ginyo]

Estaria bien hacer un plugin para el adhoc de PSX. [chulito] ,aunque esto seria mucho pedir jejeje. X-D

Saludos
pochi escribió:aunque esto seria mucho pedir jejeje. X-D


Pues si...
Hola,

La verdad que por ahora no he programado nada para PSP, asi que no se si lo que te comento será factible.

Se trata de meter un modo sleep, que pasados X minutos la consola se apague, como con las teles.

Supongamos, que por combinación de teclas se puedan elegir diversos modos, 15 min, 30 min, 1h, 2h.... o incluso que podemos elegir nosotros uno a nuestro gusto (37 minutos jejeje)

No se si se podrá, de todas maneras miraré las fuentes a ver si veo un camino para que lo puedas hacer.

Gracias ;)
Supongo que lo que dices es si la consola está inactiva, porque si por ejemplo estás jugando puede ser una autentica putada, claro que tambien se puede usar para combatir a niños excesivamente viciados.

Si la consola está inactiva, el propio firmware te ofrece la opcion del autoapagado (de hecho uno de los modos de mi plugin lo impide), si no lo habias encontrado busca en el menu de ahorro de energia.

Si lo que dices se trata de un 'timer' de apagado, supongo que si podria hacerse, no veo una complicacion excesiva.

Gracias por la sugerencia!
3r Ch4mp1 escribió:Bueno, siguiendo vuestras sugerencias y las que me han hecho en otros lados intentaré implementar la funcion de que el underclocking se realice automaticamente y de que la pantalla pueda permanecer apagada aunque presionemos otro boton.

Ya sabeis que esto se hará siempre y cuando mis conocimientos y el pspsdk lo permitan, con lo cual, tampoco os garantizo nada.



A q bien men. [oki]


Q bueno q tomaras en cuenta mi sugerencia.


Estare al pendiente de tu aporte.


De nuevo Gracias por el plugin.


[bye]
garitoman escribió:Hola,

La verdad que por ahora no he programado nada para PSP, asi que no se si lo que te comento será factible.

Se trata de meter un modo sleep, que pasados X minutos la consola se apague, como con las teles.

Supongamos, que por combinación de teclas se puedan elegir diversos modos, 15 min, 30 min, 1h, 2h.... o incluso que podemos elegir nosotros uno a nuestro gusto (37 minutos jejeje)

No se si se podrá, de todas maneras miraré las fuentes a ver si veo un camino para que lo puedas hacer.

Gracias ;)


buenisima idea, me parece. Yo le pedi al creador del scep que lo imlementara pero na.

Yo creo que ha de ser dificil.
Gracias amigo por tu plugin, asi que este ahora sustituye a mi SCEP jejeje [jaja]
Hola,

No, no me refería a cuando estuviera inactiva, me refiero en funcionamiento normal.
Yo la uso como reproductor de Mp3 y a veces me quedo dormido, con lo que mato la batería. Si le pongo que al cuarto de hora se apague, eso que me ahorro.
Y jugando, pues lo mismo, ¿cuantas veces os ha pasado lo de "juego media hora y me piro que he quedado"? Y te das cuanta a la hora que has plantado a los colegas/parienta jejejej


Se me ha ocurrido un añadido para el music mode, ¿podría apagar la pantalla? Tipo el LightMP3, que si das a start apaga la pantalla para ahorrar batería.
Si estamos en Music Mode, que nos de la opción de que el botón de brillo apague del todo la pantalla, como un quinto nivel de brillo, o que guarde el nivel que tengamos y lo apague con una pulsación, y vuelva al nivel que teníamos con otra.
De esta forma se ahorra más batería incluso que bajando la velocidad.

No se que te parecerá ni si será muy complicado.

Por cierto, gracias por las fuentes, ayer les eché un vistazo y he aprendido bastante de la estructura, C ya sabía, ahora a repasar, que has hecho que me pique el gusanillo de nuevo jejejjej

Hasta Otra ;)
garitoman escribió:Hola,

No, no me refería a cuando estuviera inactiva, me refiero en funcionamiento normal.
Yo la uso como reproductor de Mp3 y a veces me quedo dormido, con lo que mato la batería. Si le pongo que al cuarto de hora se apague, eso que me ahorro.
Y jugando, pues lo mismo, ¿cuantas veces os ha pasado lo de "juego media hora y me piro que he quedado"? Y te das cuanta a la hora que has plantado a los colegas/parienta jejejej


Se me ha ocurrido un añadido para el music mode, ¿podría apagar la pantalla? Tipo el LightMP3, que si das a start apaga la pantalla para ahorrar batería.
Si estamos en Music Mode, que nos de la opción de que el botón de brillo apague del todo la pantalla, como un quinto nivel de brillo, o que guarde el nivel que tengamos y lo apague con una pulsación, y vuelva al nivel que teníamos con otra.
De esta forma se ahorra más batería incluso que bajando la velocidad.

No se que te parecerá ni si será muy complicado.

Por cierto, gracias por las fuentes, ayer les eché un vistazo y he aprendido bastante de la estructura, C ya sabía, ahora a repasar, que has hecho que me pique el gusanillo de nuevo jejejjej

Hasta Otra ;)


Si sabes C porque no lo intentas tu mismo¿?

En el .c o cpp si es C++ puedes ver como se hace un plugin y el makefile es añadir BUILD_PRX=1 y PRX_EXPORTS=exports.exp y listo.
Coolj escribió:
Si sabes C porque no lo intentas tu mismo¿?

En el .c o cpp si es C++ puedes ver como se hace un plugin y el makefile es añadir BUILD_PRX=1 y PRX_EXPORTS=exports.exp y listo.


Por tiempo tio, sencillamente no saco ni un segundo. Es más solo entro al foro los ratos que el curro me lo permite...

No dudes que en cuanto saque un rato lo intentaré ;)
Si, intentaré lo del apagado de la pantalla, aunque esta se puede apagar manualmente no es necesario ningun "quinto nivel de brillo" simplemente ten pulsado el boton del brillo.

Lo que si intentaré y que ya varias personas me han pedido es que la pantalla una vez apagada no se vuelva a encender hasta que no digamos lo contrario, manteniendo la funcionalidad en el resto de botones.

Las novedades que haya las ire poniendo por aqui y tambien en mi blog para desarrollos

Y por ultimo, gracias a todos por la buena acogida que esta teniendo un desarrollo tan simple.
_atem escribió:Pero estaria bien un plugin o para el 0.2 de este.

Q pudieras manejar la musica con la pantalla apagada, es decir, q en el XMB te fueras a musica,apagaras la pantalla y ya te hicieras garras sin q esta se encienda cada vez q presiones algun boton del psp [tomaaa]

Tu sabes; cambiar de cancion,subirle el volumen,pause etc etc.

Como ya dije antes desconozco si ya existe algo parecido.

salu2 y Gracias por el plugin.


Tus peticiones han sido oidas y el modo Black Screen Mode ha sido implementado y saldrá en la version 0.2 con alguna cosa mas.

Por lo demás, me retiro a seguir trabajando en el plugin.
Muy bueno, pero podias haber metido los comentarios en Español xDDDDDD [buuuaaaa]

K soy Noob en cpp :(
Siento que los comentarios estén en inglés, he intentado documentar el código lo mejor posible y con la intencion de que puedan llegar a la más gente posible, ya que normalmente cuando se programa se suele tener un cierto nivel de inglés, o al menos es recomendable.

De todos modos gracias por interesarte en leer el código.
3r Ch4mp1 escribió:Siento que los comentarios estén en inglés, he intentado documentar el código lo mejor posible y con la intencion de que puedan llegar a la más gente posible, ya que normalmente cuando se programa se suele tener un cierto nivel de inglés, o al menos es recomendable.

De todos modos gracias por interesarte en leer el código.


Si tienes razon, seria un poko egoista xD Haber si google me ayuda a traducir xDDD

Un saludo ;)
Es un inglés técnico no muy complicado, de todas formas si quieres te puedo echar una mano, la duda que tengas la posteas aquí o si quieres mandarme un mp.

Gracias por el curro 3r Ch4mp1 ;)
Una pregunta, de donde sacas todo para hacer el plugin? (Aparte de tus conocimientos xD)

Haber si me explico, si quiero hacer un plugin para añadir tal opción/funcion, o lo k sea, donde puedo documentarme ?? :S
Pues tirando de la documentacion del PSPSDK donde vienen definidas y explicadas todas las funciones a dios gracias, no como en el de ps2 que vienen 3 mal contadas y casi sin documentar.

Esa documentacion la puedes obtener compilando el PSPSDK y haciendo un make doxygen-doc.

O simplemente google por pspsdk api o similar, suele haber alguna copia de referencia por internet.

Suerte en tu empresa, tambien deberias leer un poco

este documento muy util a la hora de desarrollar un prx

Lo dicho, buena suerte, aprender un lenguaje no es tarea facil, yo este año aprendí java y con un poco mas de esfuerzo aprendi bastante C++ ya que ambos son muy parecidos, con ello puedes matar dos pajaros de un tiro
3r Ch4mp1 escribió:Pues tirando de la documentacion del PSPSDK donde vienen definidas y explicadas todas las funciones a dios gracias, no como en el de ps2 que vienen 3 mal contadas y casi sin documentar.

Esa documentacion la puedes obtener compilando el PSPSDK y haciendo un make doxygen-doc.

O simplemente google por pspsdk api o similar, suele haber alguna copia de referencia por internet.

Suerte en tu empresa, tambien deberias leer un poco

este documento muy util a la hora de desarrollar un prx

Lo dicho, buena suerte, aprender un lenguaje no es tarea facil, yo este año aprendí java y con un poco mas de esfuerzo aprendi bastante C++ ya que ambos son muy parecidos, con ello puedes matar dos pajaros de un tiro


Es lo que intento, estoy aprendiendo JScript & Cpp pero sou muy novato aún, y en vacaciones pues como que hago menos aun xD
Gracias por la ayuda, seguire documentandome :P

Y el nick lo cogi por coger, no tiene nada k ver con empresa xD [jaja] En todo caso en un futuro aun lejano [idea]

Lo dicho, gracias!
buen curro tio!!!! las cosillas para el ahorro de la bateria mientras escuchas musica me interesa muchisimo, tanto que la consola se ponga a 60 Mhz como la pantalla negra... asi conseguir optimizar la bateria mientras escuchas musica, que teniendo un 20% te dure muchooooooo xDDD me parece bastante bien tu curro!!

saludos!

edito:te has llevado unas estrellitas por tu curro jeje
Zekisoft escribió:Es lo que intento, estoy aprendiendo JScript & Cpp pero sou muy novato aún, y en vacaciones pues como que hago menos aun xD


Mira, por experiencia te puedo asegurar que un lenguaje no se aprende asi como asi, yo antes tambien lo intenté, me enteré aunque mas bien de poco, y en este primer año de la carrera de informatica mis conocimientos aumentaron una barbaridad, aprendi todo un lenguaje (java) en 3 meses y gracias a esa base pude comprender el C++

Desde aqui aprovecho para saludar a los que han sido mis profes de programacion Angel y Javi, una gente de puta madre y que eran uno mas entre nosotros.
3r Ch4mp1 escribió:
Mira, por experiencia te puedo asegurar que un lenguaje no se aprende asi como asi, yo antes tambien lo intenté, me enteré aunque mas bien de poco, y en este primer año de la carrera de informatica mis conocimientos aumentaron una barbaridad, aprendi todo un lenguaje (java) en 3 meses y gracias a esa base pude comprender el C++

Desde aqui aprovecho para saludar a los que han sido mis profes de programacion Angel y Javi, una gente de puta madre y que eran uno mas entre nosotros.


Ya se que es dificil, yo este ultimo trimestre del curso lo he dado unicamente de C++ , y aparte en mi tiempo de aburrimiento me dedico a seguir leyendo y haciendo pruebas de C++ y Jscript .. scripts de MsgPlusLive! Etc..
Coolj escribió:Por si te interesa Zekisoft:

http://psp.jim.sh/pspsdk-doc/main.html


Muchas Gracias! [tadoramo] [tadoramo] [oki]
3r Ch4mp1 escribió:Pues tirando de la documentacion del PSPSDK donde vienen definidas y explicadas todas las funciones a dios gracias, no como en el de ps2 que vienen 3 mal contadas y casi sin documentar.

Esa documentacion la puedes obtener compilando el PSPSDK y haciendo un make doxygen-doc.

O simplemente google por pspsdk api o similar, suele haber alguna copia de referencia por internet.

Suerte en tu empresa, tambien deberias leer un poco

este documento muy util a la hora de desarrollar un prx

Lo dicho, buena suerte, aprender un lenguaje no es tarea facil, yo este año aprendí java y con un poco mas de esfuerzo aprendi bastante C++ ya que ambos son muy parecidos, con ello puedes matar dos pajaros de un tiro


Llevo un rato leyendo este doc, es bastante completo/complicado jejejej entre que tengo la programación y el inglés oxidados me llevará un rato acabar de entenderlo, si es que lo consigo...

Por otro lado la documentación del pspsdk online (gracias Coolj) está bastante bien, a ver si consigo hacer algo. Aunque sea una mini aplicación que pasados 10 segundos me apague la consola. Si consigo esto hoy me doy con una canto en los dientes, ya que hasta septiembre voy a estar offline y hoy es mi único día libre.

Hasta Otra y Gracias por todo ;)
Si necesitais ayuda,preguntad aqui o si quereis agregarme al msn decidmelo y os doy mi msn. [sonrisa]
Bueno, continuo el hilo para deciros (no se si lo dije antes) que la version 0.2 está bastante próxima, e incluirá un nuevo modo, el BlackScreen Mode que mantiene la pantalla apagada por ejemplo para oir música pero los controles totalmente funcionales.

Si me repito lo siento, será que me hago viejo xDD y como CoolJ os digo lo mismo, pedid ayuda cuando querais, eso si, no me pidais como enseñaros a programar ni cosas básicas, si no habeis desarrollado para PSP, empezad haciendo EBOOTS, no plugins para los CF.
Hola,

Al final me ha resultado imposible hacer nada...
Estoy perdiendo demasiado tiempo en crear el puto entorno de programación. He leido mil tutos, que si con el PSPDev compilado para win32 y la toolchain de Kal vale, que cygwin tarda un huevo que si voy con lo que te doy.... jejeje

Al final he dejado esta mañana el cygwin descargando paquetes, ahora estoy en el curro, asi que poco puedo hacer para probar si puedo compilar de una vez...

En cuanto al PSPlink (que comentabamos en otro hilo) me parece acojonante, el tyranid es la p*lla. Lo usaré en cuanto me deje compilar jejejej.

Por cierto, tengo unas dudas que espero que no os parezcan demasiado absurdas:

Para hacer el timer de apagado, necesito una interrupción temporal, ya que paso de estar chequeando el timer continuamente, es una carga para la CPU absurda totalmente.

A ver que camino os parece mejor:

*Usar sceKernelAlarm--> de X microsegundos y a partir del su interrupción contar segundos o minutos. (creo que este es el mejor camino)

*Generar un vTimer que también va en microseg pero... de los que desconozco si generan alguna interrupción al desbordar.

*Tirar del interrupt_manager y sus PSP_SYSTIMER(X) de los que sólo he encontrado que si los chequeas, siempre están a 0 :-(

En cuanto pueda realmente hacer pruebas haré una función que cuente segundos y otra minutos. Con eso tendremos via libre para el "sleep mode" y alguna cosilla que se me va ocurriendo [sati]

Mil Gracias y Hasta Otra ;)

PD: Yo abriría el hilo en Desarrollo, pero en cuanto ya pueda compilar y mis dudas se resuelvan contra la PSP, no contra el foro :-P
El otro dia consultando el api del pspsdk descubri que hay una funcion para consultar el reloj del sistema, creo que deberia llamarse a esa instruccion en cada iteracion y comparar el valor de minutos en la estructura que devuelve con el valor inicial que hemos ajustado.

Aunque así a bote pronto veo que cuando el reloj pase a la siguiente hora podría haber problemas, aunque bueno es una idea que me ha venido así al vuelo antes de escribir este post y supongo que no habrá una mayor complicación a la hora de solventar ese pequeño contratiempo.

Además la llamada a esa instruccioón en cada iteración no creo que suponga un uso excesivo de recursos del sistema...

PD: Las funciones a las que me refiero estan en el archivo de cabecera psprtc.h
Hola,

Si, existen las funciones miticas de C, el timestamp, el reloj epoch, que te marca los segundos desde el 1 de enero de 1970. También tienes otra que te dice los segundos desde las 12 de la noche.

Estas funciones me servirian, pero quiero hacer algo más depurado, y que no dependa de que el usuario cambie la fecha o la hora del sistema, algo poco habitual, pero que petaría la función. Además de que consumiría recursos sólo verificando dichos valores.

Parece ser que puedo usar una interrupción que se genera cada 1/60 segundos la PSP_VBLANK_INT.
La putada es que en la documentación que he leido (por ahora) no me dice a que función salta, sino que tengo que usar "QueryIntrHandlerInfo" para saber si está habilitada, o sea que me ahorro la parte en la que el user podría crujir el programa, pero sigo teniendo que usar las iteraciones para ver si ha saltado a esa interrupción.

Tengo que seguir aprendiendo, ya que no se si el sdk está preparado para que salte a interrupciones (o eventos) o simplemente hay que chequear valores, flags...

No se, gracias ;)

EDITO: Por el momento dejo todo esto en "stand by", me piro de viaje hasta el 26, asi que a ver si lo tengo para septiembre finiquitado...
Creo que la funcion adecuada a utilizar es int sceRtcGetCurrentClockLocalTime (pspTime *time)

Y se guardan los datos que queremos en una estructura del tipo pspTime que contiene la hora actual, los minutos, segundos, dia, mes, etc y que se podria usar para tomar el minuto actual e ir comparando con el que tomamos la primera vez que llamamos a la funcion.
Tio te felicito, este plugin es la poya.

Un saludo
Por cierto, alguien sabe como depurar un prx que me mande un PM porque con el psplink gdb e insight solo cosigo depurar los elfs de los eboots, los de los PRX me cuelgan el depurador. Gracias por adelantado a quien lo sepa
Hola,

Ya he vuelto de las vacaciones jejjej

Gracias 3r Ch4mp1 esa función ya la conocia, pero el tema es que le afecta que el usuario cambie la hora del sistema.

Busco algo más a bajo nivel, incluso en ensamblador, para hacer temporizaciones exactas (1 segundo o 1 minuto). Para no desvirtuar el hilo de tu genial plugin abriré uno en desarrollo, a ver si alguien sabe como poder hacer lo que deseo.

Por cierto, mil gracias por la versión 0.2, ya he leido el código y es muy útil para mi, para seguir aprendiendo.

Gracias de nuevo y a seguir con el curro ;)
si le añadieses un modo para resetear la consola, sería el plugin 10 [oki]
muy buen plugin!
una sugerencia, seria bueno algun plugin que solo tenga la opcion ToggleIdle, que su uncia funcion sea bloquear el interruptor, porque ami ya m a pasad varnias veces que bloqueo mi psp con el hold y cuando lo desbloqueo se apaga }:/ no creo k sea el uniko jajaja :p
seria bueno eso no??
jajaja lo intente hacer yo mismo, pero no pude, porque no pude logarra armar el prx jeje
gracias

pd: buen plugin amigo
47 respuestas