⚽ [TUTORIAL PS2] Análisis Hexadecimal del Executable SLPM-66595 (WE10JL)
? Introducción y Propósito
¡Saludos a toda la comunidad de Pro Evolution Soccer y Winning Eleven!
El ejecutable principal de PlayStation 2 (SLPM_665.95 para Winning Eleven 10 J.League) contiene las tablas de direcciones, comportamientos de IA, mapeos de memoria, límites de texturas y asignación de slots de kits/licencias.
En esta guía técnica documentamos el análisis hexadecimal del serial SLPM-66595 para realizar modificaciones avanzadas directamente sobre el ejecutable sin depender únicamente de parches estáticos en Option File.
?️ Herramientas Requeridas
- Hex Editor (HxD, Ghidra o IDA Pro para análisis ELF)
- PCSX2 Emulator (con la consola de depuración/Memory Viewer habilitada)
- PS2 ELF Tool / ps2dis (disassembler para arquitectura MIPS R5900)
- ISO Original de WE10 (SLPM_665.95)
? Arquitectura del Executable y Direccionamiento EE (Emotion Engine)
El archivo `SLPM_665.95` se carga en la memoria RAM del Emotion Engine a partir del offset base de memoria `0x00100000`.
Código:
Archivo ELF en Disco -> Dirección Memoria RAM (EE)
Offset de Archivo (Raw Hex) -> Address en PCSX2 / PS2
-------------------------------------------------------------
0x00000000 -> Header ELF
Offsets de Datos/Tablas -> 0x00100000 + OffsetConceptos Clave:
- Little Endian: Toda la estructura de enteros de 16 y 32 bits en la consola PS2 utiliza formato Little Endian (los bytes leídos de derecha a izquierda).
- Punteros Absolutos: Las llamadas a subrutinas y tablas de referencias de textos o gráficos AFS usan punteros absolutos ajustados a la RAM.
? Modificaciones Clave en SLPM-66595
1. Modificación de Comportamiento / Dificultad de la IA
Para ajustar la respuesta de reacción de los jugadores controlados por la CPU en modos de juego avanzados:
1. Abre `SLPM_665.95` en HxD.
2. Localiza las rutinas de cálculo de retardos de frame (frame delay counters).
3. Al modificar los condicionales de comparación en assembly MIPS (`beq`, `bne`), se incrementa la agresividad y anticipación defensiva.
2. Expansión y Mapeo de Slots de Kits / Parches
1. Ubica la tabla de asignación de kits licenciados vs no licenciados dentro del rango de memoria del ejecutable.
2. Cada equipo cuenta con un byte de bandera (`0x00` = Genérico / `0x01` = Licenciado).
3. Cambiar este flag permite vincular carpetas/slots de kits con texturas de mayor resolución directas del AFS.
3. Parcheo de Cadenas de Texto Menú y Red
1. Buscar bloques de texto en codificación Shift-JIS / ASCII dentro del sector de datos.
2. Respeta el delimitador nulo `0x00` al sustituir caracteres traducidos para no desplazar las direcciones absolutas de las siguientes variables.
? Script de Automatización (Python ELF Offset Calculator)
Script rápido para calcular la equivalencia entre la dirección de memoria en PCSX2 Debugger y el offset real en el archivo `SLPM_665.95`:
Código:
def ram_to_file_offset(ram_address):
base_ram = 0x00100000
if ram_address < base_ram:
return "Dirección fuera del rango base de carga EE"
file_offset = ram_address - base_ram
return f"RAM Address: 0x{ram_address:08X} -> File Offset: 0x{file_offset:08X}"
# Ejemplo de uso al encontrar una dirección en el buscador de PCSX2:
# print(ram_to_file_offset(0x002B4A10))? Cambiar WE10JL (SLPM_665.95) Serial PlayStation 2
Para cambiar el serial en esta ISO de PlayStation 2, lo que uno hace siempre es fijarse en el archivo SLPM_665.95. Si observamos en formato hexadecimal ese archivo y buscamos la cadena del título en japonés:
![[Imagen: WE10JL-(SLPM-665-95)-Serial-ORIGINAL.png]](https://i.postimg.cc/5tfnzRfQ/WE10JL-(SLPM-665-95)-Serial-ORIGINAL.png)
El texto literal "Jリーグ" en formato Hexadecimal equivale a los siguientes bytes
J = 4A
リ = 83 8A
ー = 83 41
グ = 83 4F
Después de mucho buscar observamos que el título "Jリーグ ウイニングイレブン10 + 欧州リーグ '06 -'07" no está grabado en los archivos del juego.
Que se hace en este caso? Cambiar el serial via PCSX o ISO
Cambio del Nombre vía Emulador PCSX2
La Base de Datos Interna de PCSX2 (GameIndex.yaml): Cuando abres una ISO, PCSX2 lee el ejecutable interno (SLPM_665.95). Al detectar ese ID, ignora los textos del disco y consulta su propia base de datos interna. Hay 3 métodos para modificarlo:
Método Modificar el GameIndex de PCSX2
![[Imagen: WE10JL-(SLPM-665-95)-Serial-PCSX2.png]](https://i.postimg.cc/bJxy5rK5/WE10JL-(SLPM-665-95)-Serial-PCSX2.png)
Abre la carpeta de PCSX2 y ve a resources/GameIndex.yaml. Busca el Serial SLPM-665.95. Si no existe, agrégalo respetando la sintaxis:
Cita:SLPM-66595:
name: "WE10JL Mod - Tu Nombre Aqui"
Guarda el archivo y reinicia el emulador.
Cambiar la ID del Ejecutable (HEX Puro para desvincular de GameDB)
Esta parte es la más interesante y parecida al editar el HEXA del SLPM_665.95. Si quieres que la ISO sea "autónoma" y que PCSX2 obligatoriamente tome el nombre de la ISO porque no encuentra la ID en su base de datos:
Abre el ejecutable SLPM_665.95 con Hex Workshop.
Renombra la cadena SLPM_665.95 dentro del ejecutable y en el archivo SYSTEM.CNF de la ISO por una ID ficticia (ejemplo: SLPM_999.99).
Al no encontrar SLPM_999.99 en la GameDB, PCSX2 se verá forzado a leer la etiqueta del volumen ISO 9660 que editaste previamente.
Cambiar la EXTRUCTURA de la ISO El Mas Fácil y Devertido para mi, no requiere de edicion hexa, solo cambiar el nombre del ejecutable y el archivo SYSTEM.CNF de la ISO por el nuevo nombre
![[Imagen: WE10JL-(SLPM-665-95)-Serial-CAMBIADO-FOLDER.png]](https://i.postimg.cc/Y0FsRLZy/WE10JL-(SLPM-665-95)-Serial-CAMBIADO-FOLDER.png)
Este seria el Resultado en el Emulador
![[Imagen: WE10JL-(SLPM-665-95)-Serial-CAMBIADO.png]](https://i.postimg.cc/0ynHVsWV/WE10JL-(SLPM-665-95)-Serial-CAMBIADO.png)
Referencia:
https://we10jl.blogspot.com/2026/08/we10...ion-2.html
? Recomendaciones e Indicaciones Finales
- Efectúa siempre comprobaciones del Checksum CRC32 o conserva tu backup original de `SLPM_665.95`.
- Si un cambio hexadecimal genera que el juego se congelé en el logotipo de Konami o en la pantalla de "Cargando datos...", comprueba que no hayas modificado un puntero de alineación de 4/16 bytes.
- ¡Sigamos compartiendo información técnica para preservar los clásicos de PS2!
=2Documento redactado para la comunidad de edición retro PES/WE | WE11WORLD

