Como propietario de la neproshivaemoy 3008 versión de la PSP, que no podía aceptar el hecho de que el 80% (si no más) nuevos juegos que no se iniciará.
Comencé a estudiar el código descargaron descompilado de juegos para las incoherencias.
En primer lugar, me fui por el camino equivocado, considerando que en los nuevos juegos usando la API de funciones del nuevo firmware, cuando se llama a que el PSP se bloquea. Después de pasar unos días para estudiar, me di cuenta de que las diferencias fundamentales entre los gestores de arranque no.
Entonces comencé a prestar atención a cada detalle y vi que casi el comienzo de la función de SysMemUserForUser_91DE343C. La búsqueda de su información, por desgracia descubrimos que la función de núcleo o en la KFOR indocumentados, o cualquier otro lugar. Continuando con las excavaciones que vi esto:
08e2c290:[3c020505]: lui $v0, 0x0505 <=> li $v0, 0x05050000 08e2c290: [3c020505]: lui $ v0, 0x0505 <=> li $ v0, 0x05050000
08e2c294:[afb3000c]: sw $s3, 12($sp) 08e2c294: [afb3000c]: sw $ s3, 12 ($ sp)
08e2c298:[00809821]: addu $s3, $a0, $zr <=> move $s3, $a0 08e2c298: [00809821]: Addu zr $ a0, $ $ s3, <=> Mover $ s3, $ a0
08e2c29c:[34440010]: ori $a0, $v0, 16 08e2c29c: [34440010]: ori $ a0, $ v0, 16
08e2c2a0:[afb20008]: sw $s2, 8($sp) 08e2c2a0: [afb20008]: sw $ s2, 8 ($ sp)
08e2c2a4:[00a09021]: addu $s2, $a1, $zr <=> move $s2, $a1 08e2c2a4: [00a09021]: Addu zr $ A1, $ $ s2, <=> mover $ s2, $ A1
08e2c2a8:[afb10004]: sw $s1, 4($sp) 08e2c2a8: [afb10004]: sw $ s1, 4 ($ sp)
08e2c2ac:[afb00000]: sw $s0, 0($sp) 08e2c2ac: [afb00000]: sw $ s0, 0 ($ sp)
08e2c2b0:[3c100000]: lui $s0, 0x0000 <=> li $s0, 0x00000000 08e2c2b0: [3c100000]: lui $ s0, 0x0000 <=> li $ s0, 0x00000000
08e2c2b4:[afbf0010]: sw $ra, 16($sp) 08e2c2b4: [afbf0010]: sw $ ra, 16 ($ sp)
08e2c2b8:[0e397784]: jal 0x08E5DE10 [SysMemUserForUser_91DE343C] 08e2c2b8: [0e397784]: 0x08E5DE10 jal [SysMemUserForUser_91DE343C]
Uso jpcsp emulador depurador 0.3.1105 vi que el valor del registro $ v0, que registró el número de 505H en 8e2c290 pasó a SysMemUserForUser_91DE343C en 8e2c2b8. En realidad, resulta que la función se llama el núcleo SysMemUserForUser_91DE343C (0x0505 ,...), lo que sugiere, por analogía con la llamada a la función
//
@param sdkversion - The sdkversion to set / / @ Sdkversion Param - El sdkversion para establecer
// (eg: 0x02070110 in applicationc compiled for firmware 2.71) / / (Por ejemplo: 0x02070110 en applicationc compilado para 2.71 de firmware)
int sceKernelSetCompiledSdkVersion(int sdkversion); sceKernelSetCompiledSdkVersion int (sdkversion int);
lo que sugiere que el número de 0x0505 puede significar que la versión de firmware 5.50.
Sin pensarlo dos veces, corregido este valor a 0x0500, que se ejecutó correctamente este juego en 5,03 MHU.
Se pasaron dos días para poner a prueba la teoría y las pruebas de todos los juegos en 5.0m33 firmware-6 y 5.03MHU (Mi amigo Mercyful probado en 5.0m33-6, fue probado en 5.03MHU). Los resultados fueron impresionantes - en 5,0 el 98% de los juegos (2% fue a un juegos de unos pocos, más un pequeño margen).
Para los que no están familiarizados con la instrucción de ensamblador MIPS para proponer un pequeño parche de parche rápido y universal para cualquier juego, incluyendo (espero), todavía inédita:
1. Eliminar de la imagen del juego EBOOT.BIN cargador;
2. Dekriptuyte con juego Decryptor por Yoshihiro v2 o PRXDecryptor 2,3;
3. Aplique el parche.
4. Pack de arranque de nuevo en la imagen.
5. Vuelva a escribir la imagen en la PSP y el juego.
Descargar Parche: del apego o dump.ru
P.S. La referencia al parche es una lista de todos los juegos de prueba.
UPDATE: Para los que editar el archivo manualmente, por favor, tenga en cuenta que hay juegos en los que estos controles no están solos. Sólo sé que nadie revisó en DIRT2, Bloons Minis y Knigts muertos. Por lo tanto, los parches parche durante tanto tiempo, en busca de controles adicionales.