PSPRecomp · Liberty City Stories
Grand Theft Auto: Liberty City Stories
OrigenPlayStation Portable
TecnologíaRecompilación Estática (C/C++ nativo)
Disponible paraAndroid
Ver proyecto oficialSobre el proyecto
Grand Theft Auto: Liberty City Stories es el decimoprimer juego de la serie Grand Theft Auto, desarrollado por Rockstar North en colaboración con Rockstar Leeds y distribuido por Rockstar Games. El juego se creó principalmente para el sistema PlayStation Portable (PSP), PlayStation 2 (PS2) lanzada en 2006. Por las grandes ventas del mismo también se lanzó para dispositivos iOS, Android y Fire OS el 17 de diciembre de 2015, 11 de febrero de 2016 y 11 de marzo de 2016, respectivamente.
4 versiones de Grand Theft Auto: Liberty City Stories
Estás viendo: PSPRecomp · Liberty City Stories
Información oficial del proyecto
Estado actual (beta 0.3.0): el juego se juega en Android con render por GPU (Vulkan), en pantalla completa widescreen, con audio completo (incluidas las voces de las cinemáticas), cámara libre y guardado de estado. Ahora también en celulares de gama baja (modo 30 FPS y resolución de PSP) y en Android de 32 bits. Todavía hay detalles pendientes (ver Problemas conocidos).
El proyecto
PSPRecomp traduce el código Allegrex de la PSP a C++ nativo. Este repositorio añade el perfil de VCS, los servicios de plataforma para Android y Windows, y la app Android. El código del juego se recompila; los datos del juego se leen de una copia propia del usuario.
Liberty City Stories (en desarrollo)
<p align="center"> <img src="assets/ICONOLCS.png" alt="Icono de LCS Android" width="160" /> </p>GTA: Liberty City Stories (PSP, USA, ULUS10041) también corre en Android con este mismo código: comparte el motor de VCS, así que usa los mismos servicios de PSP, el render Vulkan, el audio, los controles, el guardado de estado y los ajustes. Es una app aparte, LCS Android (com.psprecomp.lcs), que se instala junto a la de VCS.
- Los datos van en Almacenamiento interno/LCS, con la misma estructura que VCS:
LCS/PSP_GAME/…y el ejecutable descifrado enLCS/PSP_GAME/SYSDIR/EBOOT_DECRYPTED.ELF. - El ejecutable descifrado se obtiene de tu propia copia con PPSSPP (volcado del EBOOT descifrado). Detalles en profiles/lcs.
- Estado: arranca, dibuja por GPU, tiene audio y corre la intro. Aún sin modo 60 FPS, joystick de cámara ni Project2DFX, y sin multijugador (responde "sin red").
- Compilar:
gradlew assembleLcsDebug(yassembleVcsDebugpara VCS).
Instalación en Android
1. Requisitos
- Android 8.0 o superior, procesador ARM y soporte Vulkan (probado en un Samsung Galaxy S25 Ultra).
- Hay dos APK:
arm64para casi todos los celulares, yarmv7(32 bits) solo para los que tienen Android de 32 bits (si el de 64 bits no se instala, usa este). El de 32 bits rinde menos. - Tu propia copia de GTA: Vice City Stories para PSP (USA, ULUS10160), preparada con setup_vcs.ps1. Ese paso extrae los datos y genera el ELF descifrado.
2. Copia los datos del juego a la carpeta VCS
Los datos van en una carpeta llamada exactamente VCS (en mayúsculas) en la raíz del almacenamiento interno del teléfono, es decir, /storage/emulated/0/VCS. Dentro tiene que quedar la carpeta PSP_GAME del juego:
Almacenamiento interno/
└── VCS/
└── PSP_GAME/
├── SYSDIR/
│ └── EBOOT_DECRYPTED.ELF
└── USRDIR/
└── RUNDATA/ … (resto de los datos del juego)
Puedes copiarla con un explorador de archivos, por USB o con ADB:
adb shell mkdir -p /storage/emulated/0/VCS
adb push --sync profiles\vcs\game\PSP_GAME /storage/emulated/0/VCS/
Si la app no encuentra VCS/PSP_GAME/SYSDIR/EBOOT_DECRYPTED.ELF, lo avisa en pantalla al abrirla.
3. Instala y abre la app
- Descarga el APK desde Releases e instálalo.
- Al abrirla por primera vez, concede el permiso "Acceso a todos los archivos"; sin él no puede leer la carpeta
VCS. Luego vuelve a abrir la app. - La primera carga tarda un poco más.
Guardado de estado (botón 💾 junto a START)
Guarda el juego completo en el instante exacto —misión, cinemática, posición— y lo recupera después. Es independiente de las partidas del propio juego.
- Hay 3 ranuras; cada una muestra la fecha y hora de lo guardado.
- Toca una ranura para Guardar aquí / Sobrescribir o Cargar.
- También está en ⚙ → Guardado de estado….
- Los estados se guardan dentro de la app (
files/savestates) y se pierden al desinstalarla.
Ajustes (botón ⚙ en pantalla)
- Guardado de estado: las mismas ranuras que el botón 💾.
- Sensibilidad de cámara: de Baja a Máxima; se aplica al instante al arrastre, al joystick derecho y al stick del mando.
- Resolución interna: PSP original (272 líneas, gama baja), Rendimiento (544), HD, Full HD o nativa de la pantalla. Se aplica al reiniciar la app.
- Velocidad (FPS): 30 FPS, la velocidad original de la PSP y la mitad de trabajo (recomendado en gama baja), o 60 FPS, más fluido. Se aplica al reiniciar la app.
Celulares de gama baja (procesadores como Helio G85, Snapdragon 6xx/7xx, o menos de 4 GB de RAM): la primera vez que se abre, la app lo detecta y empieza sola en resolución PSP original y 30 FPS. Se puede cambiar desde ⚙.
- Editar posición de controles: arrastra cada grupo de botones y ajusta su tamaño con − / +.
- Restablecer controles: vuelve al diseño original.
La configuración avanzada vive en VCSNative.ini, dentro de los archivos privados de la app.
Controles
- Táctil: joystick flotante (aparece donde apoyas el pulgar), cruceta, △ ○ ✕ □, L, R, SELECT y START.
- Cámara táctil: joystick derecho (el del ojo 👁, a la izquierda de △ ○ ✕ □) para girar la cámara; también se puede mirar arrastrando el dedo por cualquier zona libre de la pantalla.
- Mando Bluetooth/USB: A = ✕, B = ○, X = □, Y = △, L1/L2 = L, R1/R2 = R, Start, Select, cruceta, stick izquierdo y stick derecho para la cámara.
- Teclado y ratón: WASD para moverse (Alt para caminar), Espacio, Shift, F/Enter, Q/E, H, flechas, Esc (pausa) y Tab. El primer clic captura el ratón y desde entonces mueve la cámara, como en PC; clic izquierdo dispara, clic derecho apunta y el botón central mira atrás.
Al usar un mando, un teclado o un ratón, los controles táctiles se ocultan; vuelven al tocar la pantalla.
El radar está arriba a la izquierda, donde no lo tapa el pulgar. Si el botón L te lo tapa, muévelo con ⚙ → Editar posición de controles.
Problemas conocidos
- En resoluciones altas el juego no siempre llega a velocidad completa. Si va lento, baja la resolución y pon 30 FPS desde ⚙.
- En celulares muy modestos (Helio G85 y similares) puede no llegar a velocidad completa ni en el modo de gama baja.
- En algunos puntos (el icono de guardado del juego, el final de algunas misiones) la pantalla puede quedarse en negro. Se está investigando; mientras tanto, usa el guardado de estado antes de esos momentos para no perder avance.
- Los videos de introducción se saltan (pantalla negra): falta el decodificador de video para Android.
- El APK beta está firmado con una clave de depuración.
Compilar
Android
Requisitos: Android SDK, NDK 28.2.13676358, CMake 3.22.1, Java compatible con Gradle 8.11.1 y un dispositivo ARM64 autorizado para ADB. Desde PowerShell, en la raíz del repositorio:
./build_android.ps1
./run_android.ps1
Consulta Vulkan en Android y el análisis de portabilidad para los detalles técnicos.
Windows
Requisitos: Visual Studio 2022 con C++, Windows SDK, CMake y los archivos de una copia propia del juego.
./build_vcs.ps1
./run_vcs.ps1
La preparación local está en setup_vcs.ps1 y prepare_game.ps1.
Datos y distribución
El repositorio y los APK de Releases contienen solo el programa, sin ningún dato del juego. No subas ISOs, EBOOTs, ELF descifrados, partidas ni recursos comerciales: cada usuario debe aportar sus propios archivos.
El framework PSPRecomp usa licencia MIT. Las licencias y avisos adicionales del perfil están en THIRD_PARTY.md. Proyecto comunitario no oficial, sin afiliación con Rockstar Games ni Sony Interactive Entertainment.
