Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
Grand Theft Auto: Liberty City Stories · LCS Recomp
PORTSNATIVE

Grand Theft Auto: Liberty City Stories · LCS Recomp

PORT NATIVOACCIÓN / AVENTURAWINDOWSLINUXALPHA

Grand Theft Auto: Liberty City Stories · LCS Recomp

Grand Theft Auto: Liberty City Stories

OrigenPlayStation Portable

TecnologíaRecompilación Estática (C/C++ nativo)

Disponible paraWindows, Linux

Ver proyecto oficial

Sobre 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: LCS Recomp

LCS Recompgithub.com/elmasas/lcs-recomp
Windows
Linux
Actual
reLCSgitea.com/initdream/relcs
Windows
Linux
›
GTA: Liberty City Stories (PS Vita)github.com/fauxrougee/GTALCS-psvita-port
Por confirmar
›
PSPRecomp · Liberty City Storiesgithub.com/codepdbh/PSPRecomp-LCS-Android
Android
›

Información oficial del proyecto

README original del autor (en inglés)Abrir en GitHub ↗

LCS Recomp

GTA: Liberty City Stories PC port, built on PSPRecomp. Game files not included.

Setup

Requires the US v1.05 release (ULUS-10041).

Place your decrypted EBOOT.ELF and the disc's PSP_GAME folder in game/ for the release, or in lcs/game/ when building from source.

Build

Requires Visual Studio 2022 and LLVM (clang-cl).

lcs\BUILD_LCS.bat

Play

lcs\PLAY_LCS.bat

Settings are in lcs/config/LCSNative.ini.

Display.ResolutionMode is the window (PSP, Scale, Custom, or Desktop). Rendering.InternalResolutionMode is the GE render target, with the same four choices. Desktop uses the monitor on Windows and on Linux. Rendering.TextureLodBias shifts texture mip selection; negative values keep textures sharper at a distance.

Mouse and keyboard

Edit [Controls] in lcs/config/LCSNative.ini, then restart. A binding is one or more names separated by commas. None clears it. Shift, Ctrl, and Alt set both sides. The accepted names are commented in that file. F10 opens host settings. F11 toggles fullscreen. Moving the mouse looks around. A controller button takes the same action names.

BindingDefaultAction
MoveForwardWOn foot, move forward. In a vehicle, accelerate.
MoveBackSOn foot, move back. In a vehicle, brake.
MoveLeftAMove or steer left.
MoveRightDMove or steer right.
WalkLeft AltShorter steps.
SprintSpaceRun on foot. Not sent in a vehicle.
JumpLeft Shift, Right ShiftJump. In a vehicle the game reads this as the brake.
AttackLeft mouse buttonAttack or fire.
AimRight mouse buttonAim on foot. Not sent in a vehicle.
CenterCameraH, middle mouse buttonPut the camera behind you. Also picks up a weapon.
EnterVehicleF, EnterEnter or exit a vehicle.
WeaponPreviousQ, Left, wheel upPrevious weapon. In a vehicle, previous radio station.
WeaponNextE, Right, wheel downNext weapon. In a vehicle, next radio station.
UpUpToggle a special mission. In a vehicle, also pitches up.
DownDownD-pad down. In a vehicle, horn and pitch down.
PauseEscapePause.
CameraVChange camera.
HandbrakeSpaceHandbrake in a vehicle.

Controller names follow the Xbox layout. On a PlayStation pad, A is Cross, B is Circle, X is Square, and Y is Triangle. LeftStick and RightStick are Move or Camera. A trigger does not send its buttons in a vehicle; accelerate and brake still apply.

ButtonDefaultAction
A / CrossSprintRun. Also sent in a vehicle.
B / CircleAttackAttack or fire.
X / SquareJumpIn a vehicle the game reads this as the brake.
Y / TriangleEnterVehicleEnter or exit a vehicle.
LB / L1CenterCameraPuts the camera behind you. Also picks up a weapon.
RB / R1AimAim. In a vehicle, the handbrake.
LT / L2MoveBack, CenterCameraBrake. On foot, also centers the camera.
RT / R2MoveForward, AimAccelerate. On foot, also aims.
D-pad leftWeaponPreviousPrevious weapon. In a vehicle, the previous radio station.
D-pad rightWeaponNextNext weapon. In a vehicle, the next radio station.
D-pad upUpSpecial mission.
D-pad downDownHorn in a vehicle.
StartPausePause.
Back / ShareCameraChange camera.
Left stickMoveMovement. LeftStick swaps this with the camera.
Right stickCameraCamera.
Left stick clickDownHorn in a vehicle.
Right stick clickNonePadRightStickClick.

Linux

The native build uses Vulkan for the GE and SDL2 for the window and audio. It needs glslangValidator, plus the Vulkan, SDL2, and FFmpeg development packages. The Linux build also compiles a small tool that packs lcs/host/font5x7.txt into the F10 menu font. The Windows build does not run that step.

lcs/scripts/build_linux.sh
lcs/scripts/play_linux.sh

That build compiles lcs/host/vulkan/ge.vert and ge.frag to SPIR-V with glslangValidator. Editing either shader rebuilds it into LCSNative.

lcs/config/LCSNative.ini is shared with Windows, so the checked-in setting stays Backend=DirectX12. On Linux that value selects the Vulkan GE. Backend=Vulkan selects it explicitly, and any other backend name keeps the software rasterizer. LCS_VULKAN_VALIDATION=1 turns on the Khronos validation layer and prints its warnings and errors.

Docker

You also can utilize Docker to build the Linux version.

cd docker
./build.sh

Available options:

        archlinux       compile the source code on Arch Linux
        debian          compile the source code on Debian

Usage: ./build.sh <option>

That way you will get a pre-confugred build environment which also utilzes ccache for faster building times.

License

MIT, see LICENSE. Third-party notices: lcs/THIRD_PARTY.md.

Unattended engine stress test

Build first (see Linux), then run a ten-minute test without keyboard or controller input:

python3 lcs/scripts/stress_test.py --seconds 600

The runner loads a disposable copy of your existing saves, copies your settings, checks that the original save contents stay unchanged, and kills the process if it exceeds the deadline. It leaves logs in out/stress/<timestamp>/. Your current render settings are used; this is suitable for exercising increased draw distance, population, and resolution without editing the configuration.

The native controller and save-protection tests are built with the project and run through CTest:

ninja -C out/lcs-linux
ctest --test-dir out/lcs-linux -R lcs_stress

The character runs, turns, jumps, and sweeps the camera. Position samples detect obstacles and trigger backing up and turning. Add --driving to attempt to enter nearby vehicles and drive; that run only succeeds if driving movement is actually observed. This is exploration, so it does not guarantee a particular route or mission completion. Game menus suspend movement and receive cancel pulses to escape incidental save prompts. The test fails if gameplay cannot start within 120 seconds, movement stays blocked for 60 seconds, or gameplay is unavailable for 120 seconds.

Test mode rejects all guest file writes, write-capable file opens, and save or delete operations. Existing saves can still be read. The runner adds isolation as a second protection. It never asks the game to save.

Artifacts include runtime.log, movement.csv, summary.json, and runner.json (with peak resident memory and the save comparison). Movement success requires at least five moving samples and ten game units of travel, plus a normal timed stop. Presentation interval statistics include startup/loading and are not GPU render timings. PPM screenshots are captured every 15 seconds with software or GPU readback presentation; direct Vulkan/DX12 swapchain presentation has no CPU pixels and does not produce these screenshots.

You can also use the native options on Linux or Windows:

LCSNative --game <game-root> --stress-test --max-seconds 600 --stress-output <new-output-directory>
LCSNative --game <game-root> --stress-driving --max-seconds 1800 --stress-output <new-output-directory>

--direct <directory> writes state.json (position, facing, camera, arrived) about five times a second and reads command.txt. One line is hold, shot, goto X Y [RADIUS], stick AX AY BUTTONS, forward, run, back, left, right, or enter. On foot, goto steers from the camera. In a vehicle it steers from the vehicle heading. shot may precede another command. A new shot line saves shot-N.ppm and latest.ppm from a CPU frame. A direct Vulkan or DX12 swapchain has no CPU pixels, so that request writes shot-unavailable.txt instead. Standing still for a photograph does not trip the 60 second stall failure. The startup menu pulses still run until gameplay is ready.

The optional arrival radius defaults to two game units; narrower doorway routes can use a smaller value. Nearby foot targets use walking speed. Direct state includes vehicle_model, plus a separate bike_near, bike_x, bike_y, bike_z, and bike_model target so a nearby car does not replace a garage bike. vehicle_pitch reports the driven vehicle's pitch in radians. drive STEERING THROTTLE BRAKE [PITCH] accepts independent 0–255 pressures, allowing steady throttle instead of alternating full acceleration and braking. Pitch defaults to 128 (neutral); 255 leans back without applying the brake. For a burnout turn, use drive 255 255 255 to steer right with both pressures held.

Native test mode blocks saving, but only the Python runner copies saves and configuration. Native runs default to 600 seconds if no duration is supplied. Exit code 0 means the run completed and movement was verified; 2 means incomplete coverage, startup/recovery failure, or an abnormal engine stop.

Manual QA

The safehouse bike scenario is opt-in. It is never run on startup or by CTest:

python3 lcs/scripts/qa_safehouse_bike.py --record

No keyboard input is needed. See the manual QA guide for the bike loop, stunts, recording prerequisites, and reports.

Leer guía oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Acción / Aventura
Estado
alpha
Plataforma de origen
PlayStation Portable
Tecnología
Recompilación Estática (C/C++ nativo)
Versión
—
Actualización
7 oct 2026

Plataformas de destino 2

Windows
Linux
Ver en GitHub
Publicidad