Aclaraciones Previas - Este metodo es compatible con los firmwares existentes en jailbreak mode. - Este metodo no representa un potencial riesgo de brick para la playstation 3. - En cualquier caso es obligatorio y o aconsejable usar un firm emulado desde un dispositivo USB para ir testeando los resultados y no tener problemas de "semibricks".
- Es aconsejable hacer una copia de seguridad de los archivos QRC originales. - Es aconsejable no editar ningun archivo que no se haya mencionado en el TUTORIAL.
Tenga en cuenta que en las extracciones de los archivos QRC tambien hay otros de configuracion que no deberian ser editados por usuarios inexpertos. Si usted no cumple esta norma es su problema.
- El autor de este TUTORIAL en ningun caso sera responsable de "posibles" por el mal uso del metodo descrito. - El lenguaje usado en este TUTORIAL puede no ser el correcto para los "gurus" en el codigo. Pido disculpas por ello.
Introduccion Personalizar los Iconos base del Xmb
Todos, a estas alturas alguna vez hemos cambiado los iconos del xmb y sabemos que se puede hacer desde un Theme o incluso editando los archivos RCO, sitos en dev_flash/vsh/resource. Editar los archivos .rco es un tanto tedioso, pues los iconos se reparten entre decenas de rco's..xd Pero existe otra opcion.
Los Iconos "base" que carga la ps3 de inicio, lo hace desde icontex.qrc, situado en: dev_flash/vsh/resource/qgl/ Estos iconos estan en formato DDS - Normal Map, que como algunos ya sabeis es un formato 3D. Normal Mal FAQ
Personalizar los colores de los Iconos base del xmb Normalmente los iconos suelen tener el mismo color el seleccionado en el Xmb. Si queremos personalizar dicha opcion, solo debemos editar widgets_other_amb.bmp, archivo incluido en icons.qrc, tambien en dev_flash/vsh/resource/qgl.
Personalizar los colores base del xmb Los layers de los colores del xmb se encuentran dentro de Lines.qrc y Para la extraccion y personalizacion se sigue similar metodo que Icontex.qrc
Herramientas necesarias: - Editor Hexadecimal - Icontex.pos Lines.pos (plantillas de posiciones de los offsets) Adjuntos al final del post - SimplyZip - Photoshop + DDS Nvidia Plugin - PaiNt Shop Pro + DDS Nvidia Plugin - JaiCrab Usb Firmware - Comgenies Awesome File manager o Ftp server
Prueba de Carga en la Ps3 Usb Firm Loader
Para probar lo modificado se deberia hacer desde un USB Firmware, en mi caso JaIcraB Usb Firm.
Cita de JaiCraB
Este programa permite simular la dev_flash desde un USB. Permitiendo así un Custom Firmware. Podremos modificar los ficheros de nuestra nueva dev_flash (USB) a nuestro antojo, sin correr el riesgo de tirar la PS3 a la basura. Es una versión beta, seguramente encontraréis fallos.
Recordar que no sufre ningún riesgo la consola. Todo lo que se cambie de la nueva dev_flash realmente lo estaréis haciendo en el USB.
Requisitos: - Syscall PEEK and POKE
Instalación: - Copiar con el "FTP server" todo el contenido de la /dev_flash al USB(en la raiz). - Copiar el JaiC_USB_FIRM_LOADER.pkg también en la raiz del USB. - Instalar el paquete.
Uso: - Introducir el USB en la PS3. - Ejecutar USB FIRM LOADER. Después de unos segundos volvera al XMB. - El nuevo firmare esta cargado.
Veréis que cualquier cosa que hagáis el USB se pondrá en marcha. Ideal para modificar RCO , intercambiar modulos , lo que imaginéis.
IMPORTANTE! No actualicéis estando en modo Firmware Live. Eso reiniciaría el sistema volviendo a poner la dev_flash original y os actualizara! No UPDATE FROM USB FIRMWARE LOADER!
Habilitar permisos de escritura en la flash Una vez que el archivo esta listo para su carga desde la ps3, y poder insertarlo en la dev_flash original lo haremos con la ayuda de Alejandro Flash Writer Enabler, el cual monta un "espejo" de la flash.
Alejandro es un homebrew que permite montar la dev_flash y darle permisos de escritura,lo que hace este homebrew es desmontar y montar en la nueva dev_alejandro..pudiendo editar sus archivos (nuevos modulos,sonido inicial,video inicial,etc) desde cualquier gestor o ftp,dejando persistencia en los archivos(opciones de los debug por ejemplo)
Escribir archivos en dev_flash Una vez que disponemos de lo anterior descrito, es necesario disponer de alguna aplicacion para la gestion de los archivos y su posterior copiado. Siempre que queramos escribir algo en la flash, debemos hacerlo en el directorio dev_flash/vsh/resource/qgl, generado por la aplicacion Alejandro Flash Writer Enabler.
Podemos usar cualquier aplicacion via FTP o Congenie's Awesome File Manager, que es mi caso.
Siguiendo la ruta de archivos de la imagen superior, hacemos una copia para su posterior extraccion y o edicion Los archivos .qgl al igual que los archivos .raf, pueden ser descompilados con P3textractor.
Hecha la extraccion, veremos que todos los archivos estan en formato .GIM, tan solo nos quedaria renombrar a .DDS.
Edicion con Photoshop
Una vez que tenemos hecha la extraccion, es hora de la edicion, en este caso con Photoshop. Ya sabeis que necesitais obligatoriamente el plugin de Ndivia; Arriba teneis el enlace de descarga.
Como ejplo vamos a crear el icono "folder"
- Cargamos el DDS original, creamos una Capa nueva y le damos relleno.
- Para el icono nada mejor que utilizar la opcion " Custom Shapes" o "Formas". Existen miles de ellas y gratuitas, y aqui teneis unas cuantas :Deviant Art
Nota En todo caso tambien es posible utilizar Iconos de otros themes, pero siempre teniendo en cuenta que el tamaño no exceda del original una vez comprimidos via SimplyZip.
- El Siguiente paso seria darle un relleno blanco y voltear la imagen verticalmente :
- Ahora vamos a la opcion "canales" y eliminamos la capa "alpha0"
- En este paso crearemos una nueva capa"alpha0" para nuestro icono y la seleccionamos.
- Con Alpha0 seleccionada, volvemos a "Capas". En este punto debemos seleccionar nuestro icono (ctrl + forma), para despues darle relleno. Ahora ya tenemos nuestra capa "alpha0".
- Es el momento de darle un formato "Normal Map". Esto es en Filtro/ Ndivia Tools
- En esta ventana podeis observar las opciones las cuales he utilizado yo.
- El siguiente paso y ultimo con Photoshop, os muestro las opciones de guardado. 8.8.8.8 ARGB 32 bpp - Unsigned / Generate map bits 8
En esta imagen podeis ver todos los iconos ya editados listos para el siguiente paso.
En este punto damos por finalizada la edicion para empezar a compilar los iconos.
Aunque la extraccion la hemos hecho con p3textractor, se podria pensar que con p3tcompiler podriamos volver a compilar los archivos .qrc; Lamentablemente esto no es asi, y deberemos hacerlo hexadecimalmente, con todo el trabajo que conlleva, pero que con paciencia es factible.
Como apunto, el siguiente paso es comprimir los iconos.dds con formato zlib, y para ello necesitais SimplyZip. En la parte de Introduccion teneis el enlace de descarga. Es un software freeware.
Con estas imagenes sobran palabras:
Importante Compresion zlib
Teneis que aseguraros de que despues de la compresion de los iconos custom, su tamaño no supere el tamaño de los iconos originales, ya que si no se respeta esta norma Icontex.qrc no funcionara En el siguiente paso entendereis de lo que hablo.[/box]
Como hebeis podido leer en el aviso, es el momento de cerciorarnos de que los iconos no superen en tamaño a los originales, ya que por el contrario no podriamos incrustarlos de nuevo en Icontex.
Compilacion Mediante un editor hexadecimal empezaremos a compilar; En mi caso, he utilizado Winhex
Nota: Para que sea mas facil este proceso, aqui os dejo la tabla deposiciones (bookmark): Icontex.pos(Adjunto)
- Ejecutamos un editor hexadecimal y seleccionamos Icontex.qcr y el primer icono; 1n.dds.zlp Con la ayuda de los offsets, buscamos el inicio del bloque de dicho icono:
- Ahora buscamos el final del bloque:
- Rellenamos el bloque de 00.
- Seleccionamos 1n.dds.zlp y copiamos todo Normal
- Seleccionamos Icontex y escribimos desde el 1 bit del bloque a editar:
En este punto ya tenemos nuestro primer icono custom insertado... Para la insercion de los demas iconos debemos seguir el mismo patron de edicion.
Para la extraccion usaremos de nuevo p3textractor, pero esta vez deberemos editar lines.qrc con el editor hexadecimal, reemplazando el caracter / con _
Seleccionamos el bloque: 00009601 - 00014816 y en la opcion "Busqueda", se remarca "reemplazar Texto" y "Reemplazar solo en bloque": / con _
Ahora tan solo ejecutamos p3textractor lines.qrc
Efectuada la extraccion, es el momento de la edicion de los dds, que en el siguiento paso se explica.
Edicion con Photoshop
Lines.qrc se encarga de aplicar los colores al xmb, y se compone de 24 layers; 12 para el dia y 12 para la noche. Cada layer (dia+noche) es para un mes del año, por lo tanto las tonalidades van cambiando a medida que van pasando los dias y meses. Esto lo comento para que lo tengais en cuenta de cara a la edicion. El tamaño de estos es de 64px 32px.
En este caso solo tenemos que crear un archivo nuevo 64 px 32 px y guardar bajo los parametros 8.8.8.8 ARGB 32 bpp - Unsigned / Generate map bits 5. Esta vez no necesitamos tocar la capa alpha para nada pues nos interesa mostrar todo el area de mascara.
Nota: Para aplicar mejor los colores, al abrir un archivo nuevo lo podeis hacer sobredimensionado, pero una vez editado no olvidar guardar bajo su tamaño original.
Como podeis observar, la medida solo permite integrar degradados nuevos, pero no imagenes, pues estas aparecerian superpixeladas en pantalla. En todo caso podeis hacer pruebas hasta que encontreis lo que mas os guste. Yo personalmente he cambiado tonalidades y he incluido efectos, los cuales cambian el entorno xmb totalmente, pero siempre siguiendo la misma linea, exceptuando 1 caso para el ejplo. >:D
En todo caso todo es ir probando.
Con esta explicacion creo que quedan claras las posibilidades de edicion que se nos plantean. La idea es darle una vuelta de tuerca mas a nuestras maquinas xd
Como ya he apuntado anteriormente, en lines.qrc las imagenes no estan comprimidas, si no que es todo el bloque el que esta comprimido con lo cual no ahorra mucho trabajo. De momento se compila y al final se comprime solo una vez como lo hariamos con Coldboot.raf.
Tal como hicimos en la extraccion manual, en vez de extraer, sobreescribiremos. Si recordais, en la cadena de texto buscabamos DDS; Pues repetimos el proceso de nuevo.
- Esto es: Busqueda - Encontrar Texto : DDS
Nota: En todo caso aqui teneis la tabla de posiciones (bookmark): (Adunto)
- Marcar Inicio de bloque:
- F3 y Marcar Final de bloque:
- Relleno de ceros en: Edicion - Relleno de bloque 00
- Y por ultimo copiamos nuestro layer y lo sobreescribimos:
Bien, este seria el sistema para ir sobreescribiendo los demas dds's, solo es cuestion de paciencia.
Compresion zlib Una vez tengamos los colores custom integrados guardamos y lo comprimimos con Simplyzip.
Ahora lo abrimos con el editor hexadecimal, copiamos normal y lo sobreescribimos en el archivo Lines.qrc. Nota Antes de sobrescribir hay que hacer un relleno de ceros y asi evitamos mezclar codigo en Lines.qrc, aunque normalmente el archivo resultante puede ser mayor que el original; No hay problema!
III Parte - Personalizar el color de los iconos base del Xmb
Extraccion de icons.qrc
Icons.qrc, esta comprimdo en formato zlib, con lo cual debemos usar el editor hexadecimal de nuevo. Deberemos eliminar los 16 primeros bits del bloque para dejar al descubierto la cabezera zlib, y asi poder descomprimirlo con Simplyzip.
Hecho esto ejecutamos Simplyzip y hacemos la descompresion:
En este caso solo nos interesa un archivo, que es una imagen en formato bmp, la cual incluye los colores de los iconos, y que en principio van acordes a los colores del xmb, es decir, cuando el color de la main cambia, el icono lo hace tambien con el mismo tono.
Tambien es posible extraer todo el contenido de dicho archivo con p3textractor, cambiando valores en la cadena de texto con el editor hexadecimal;/ por_. En winhex: busqueda / reemplazar texto
En todo caso dicha imagen se encuentra en los offsets: 00042288 - 00042835 (modo decimal) La extraemos, y la renombramos a widgets_other_amb.bmp, mas que nada por ser su nombre original
Edicion con Photoshop
Abrimos widgets_other_amb.bmp con photoshop y nos encontramos con que esta imagen BMP es de 16px 12px, y ademas esta indexada.
Abrimos nuevo documento y le damos un tamaño mayor para poder trabajar con ella, por ejplo 160px 120px. Le aplicamos el color o degradado que deseemos y redimensionamos de nuevo a 16px 12px.
Al guardar elegimos la opcion: Imagen/ Modo/ Color Indexado.
Compresion zlib y compilacion
Compilacion Ahora es el momento de insertar los colores personalizados de nuevo en icons.qrc. Para ello seleccionamos el bloque - 00042288 - 00042835 (modo decimal)
- Y lo rellenamos de ceros:
- Abrimos nuestros colores personalizados y copiamos todo:
- Ahora tenemos que escribir lo copiado en el archivo qrc, desde portapaeles.
Habreis notado que la nueva imagen insertada es menor, de ahi la necesidad de rellenar el bloque con ceros, ya que asi evitamos que el codigo se mezcle, dando como resultado un qrc nulo.
De la misma manera es imprescindible que tampoco sobrepase el tamaño del original, por igual razon.
Compresion Zlib Ejecutamos Simplyzip y comprimimos el archivo editado.
- Ejecutamos el editor hexadecimal y seleccionamos el archivo comprimido y copiamos todo normal.
- Abrimos el archivo original icons.qrc y seleccionamos el bloque desde los valores 78DA hasta el final para luego escribir lo copiado anteriormente mediante portapapeles.
Muy buen tutorial muy completo y profecional gracias por compartirlo lo voy a poner en practica de hecho soy de los que me gusta personalizar al maximo mis dispositivos y en hora buena otra forma mas de dejar el XMB como me guste.
Lee bien mi amigo que lo ha dicho, dejado ademas bien claro y cito :
"Antes de comenzar, tengo que comentar que este Tutorial esta realizado por mi a dia de 29 Mayo de 2011 para SceneSpain. Esto lo comento para que no hayan malos entendidos de cara a posibles acusaciones de plagio, ya que en alguna web ha aparecido algun manual al respecto, y que lo pintan como gran descubrimiento, cuando y como apunto este metodo lleva en la red algun tiempo; Noticia Dicho esto he decidido compartir, este, aqui en EOL. "
Entras al enlace que deja donde dice "Noticia" por eso lo ha resaltado en rojo.