GTA: SA Vita
This is a wrapper/port of Grand Theft Auto: San Andreas Android for the PS Vita with lots of custom patches such as:
- Fixed camera controls for flying vehicles (including the Hydra jet).
- Fixed broken facial expressions.
- Fixed cheats hash key table.
- Removed specular lighting on pedestrians.
- Added PS2-like rendering.
The port works by loading the official Android ARMv7 executable in memory, resolving its imports with native functions and patching it in order to properly run.
Changelog
v1.4
- Updated openal for better performance. Thanks to isage.
- Fixed crash when selecting japanese/russian language. Thanks to adjutantt.
- Improved control scheme. Thanks to XirXes and darthbellic.
v1.3
- Added ability to remap controls with
ux0:data/gtasa/controls.txt
. Thanks to PoisonPoisonPoison. - Added default vita-enhanced controls schema by darthbellic.
- Added support for co-op rampage missions when using PS3 scripts. See
Tips and Tricks
for instructions. - Added option to enable high detail player textures.
- Switched to OpenAL-SDL for better performance.
v1.2
- Fixed memory leak in vitaGL leading to corrupted textures.
- Added ability to map L2/R2 to the front touchpad on the top. Thanks to adjutantt.
v1.1
- Changed to Xbox 360 buttons mapping (while keeping PS3 icons).
- Fixes fighting moves
- Allows switching target using L2/R2.
- Changes bunny hop from double X to L1.
- Fixed rain and classic shadows rendering.
- Improved loading speed. Thanks to Graphene.
- Fixed thread scheduling. Thanks to Graphene.
- Fixed crash on exit.
- Removed redundant mobile controls menu entries.
v1.0
- Initial release.
Setup Instructions (For End Users)
(If you have already installed the game and want to update to a newer release, you can simply install GTASA.vpk on your PS Vita).
In order to properly install the game, you'll have to follow these steps precisely:
- Install kubridge and FdFix by copying
kubridge.skprx
andfd_fix.skprx
to your taiHEN plugins folder (usuallyux0:tai
) and adding two entries to yourconfig.txt
under*KERNEL
:
*KERNEL
ux0:tai/kubridge.skprx
ux0:tai/fd_fix.skprx
Note Don't install fd_fix.skprx if you're using repatch plugin
- Optional: Install PSVshell to overclock your device to 500Mhz.
- Install
libshacccg.suprx
, if you don't have it already, by following this guide. - Obtain your copy of Grand Theft Auto: San Andreas v2.00 legally (
com.rockstargames.gtasager
is not supported!) for Android in form of an.apk
file and one or more.obb
files (usuallymain.8.com.rockstargames.gtasa.obb
andpatch.8.com.rockstargames.gtasa.obb
located inside the/sdcard/android/obb/com.rockstargames.gtasa/
) folder. You can get all the required files directly from your phone or by using an apk extractor you can find in the play store. The apk can be extracted with whatever Zip extractor you prefer (eg: WinZip, WinRar, etc...) since apk is basically a zip file. You can rename.apk
to.zip
to open them with your default zip extractor. - Open the apk with your zip explorer, extract the
assets
folder from your.apk
file toux0:data
and rename it togtasa
. The result would beux0:data/gtasa/
- Still in the apk, extract the file
libGTASA.so
from thelib/armeabi-v7a
folder toux0:data/gtasa
. - Open the
main.8.com.rockstargames.gtasa.obb
with your zip explorer (.obb
files are zip files just like.apk
files so just rename the.obb
to.zip
) and extract the contents toux0:data/gtasa
. - Same as before, open the
patch.8.com.rockstargames.gtasa.obb
with the zip explorer and extract the contents inside the zip toux0:data/gtasa
. - Download the gamefiles.zip and extract the contents to
ux0:data/gtasa
(if it ask about overwriting files, say yes). - Optional: For a more authentic console experience, copy the file
ux0:data/gtasa/data/360Default1280x720.cfg
toux0:data/gtasa/
and rename it from360Default1280x720.cfg
toAdjustable.cfg
. This file is a leftover from the Xbox 360 version and provides you the console HUD (e.g. radar on bottom left). - Install GTASA.vpk on your PS Vita.
If you have followed the steps correctly, this is how your ux0:data/gtasa
folder should look like.
Configurator App
After fully installing the port, you'll be able to configure it with the Configurator app.
The Configurator app will allow users to enable or disable a set of optimizations, patches and renderer alterations to best match users taste.
You can launch the Configurator app by clicking on the Configuration
button located on the LiveArea section of the port as shown in the following screenshot.
Tips and Tricks
- In order to reduce occasional stutters in-game, delete both
ux0:data/gtasa/scache_small_low.txt
andux0:data/gtasa/scache_small.txt
, then create a copy of theux0:data/gtasa/scache.txt
file to have two version of it. (for examplescache(1).txt
so in the end you end up with bothscache.txt
andscache(1).txt
inside theux0:data/gtasa/
folder), then renamescache.txt
toscache_small.txt
andscache(1).txt
toscache_small_low.txt
. This will however make the loading screen longer since it needs to compile more shaders ahead.- If the folder
ux0:data/gtasa/cache
contains much more than 300 files, it's recommended to delete the folder and have it rebuilt.
- If the folder
- You can input PC cheats by pressing L+SELECT to open the on-screen keyboard. See CHEATS.md for available and unavailable cheats (you can input cheat codes in lowercase as well as uppercase).
- The L2/R2 buttons are mapped to the rear touchpad on the top and the L3/R3 buttons are mapped to the front touchpad on the bottom. With v1.2 and higher, you can map L2/R2 to the front touchpad on the top.
- You can open the map by holding START and then releasing.
- In order to save storage on your Memory Card, you can safely delete all files in sub-folders of
ux0:data/gtasa/texdb
which end with:.dxt.dat
,.dxt.tmb
,dxt.toc
.etc.dat
,.etc.tmb
,etc.toc
- To get local freeroam coop and rampages working you will need to replace the main scripts with those of the PS3 version:
- Keep in mind that saves made with the old files will be incompatible with a game using the new files and vice-versa.
- Obtain
mainPS3.scm
andscriptps3.img
from the/PS3_GAME/USRDIR/PS3Data.obb -> /data/script
folder of a PS3 copy. In order to extract the.obb
file rename it to.zip
and use your favorite archive extractor. - Rename the files to
mainV1.scm
andscriptv1.img
and copy them to bothux0:data/gtasa/data/
andux0:data/gtasa/data/script/
replacing both original files in both directories each time. - To use the multiplayer functionality navigate to a corresponding marker (a list can be found here Marker locations ). You will have to have another controller connected via Bluetooth and set up as controller number 2 (you can configure that via the qick menu, accessible by holding the PS-Button on that controller once connected).
- On a PSVita (as opposed to on a PSTV) you will also need to use MiniVitaTV to connect the controller in the first place.
- There is a bug which causes invisible peds when you load a save straight after launching. To avoid that issue, start a new game and then load your save.
- To have the cut songs back you'll need to extract the
STREAMS
audio files with saat 1.10 by alci SAAT 1.10 by alcy from your downgraded steam/rockstar launcher version or from the disc version that has the cut songs:- Use the command prompt on the directory you extract saat 1.10 by alci to, for example:
cmd D/saat/
,then use the commandsaat_stream.exe -e <stream_file(s)> <target_dir>
, for example:saat_stream.exe -e BEATS newfolder
. - It'll export them as
track_001.ogg
,track_002.ogg
...etc, you'll need to use a good audio editing/converter program that can convert.ogg
to.mp3
like sound forge 9.0 is what was used here to convert them or a better one if you have it. - With 56kbps and 22050hz mono highest quality convert them from
.ogg
to.mp3
and make sure you uncheck the id3 settings so the tracks wouldn't have any id3 tags on them. - Then after the conversion compress the converted
.mp3
files into.zip
files compression set to store with 7z or rar. - After that rename the file extension from
.zip
to.osw
for each one of them but leave their original name untouched. - You need also saaf by nick7 build 239 SAAF by nick7 build 239 to use it to open each
.osw
file, it'll create an.osw.idx
file. - After creating the
.osw.idx
files for each one of them just copy all of the.osw
with their.osw.idx
files to theSTREAMS
folder on your vita inux0:data/gtasa/audio/STREAMS
and overwrite if asked. - And you should be able to enjoy the game with all the songs on the latest build.
- Use the command prompt on the directory you extract saat 1.10 by alci to, for example:
Build Instructions (For Developers)
In order to build the loader, you'll need a vitasdk build fully compiled with softfp usage.
You can find a precompiled version here: Linux / Windows.
Additionally, you'll need these libraries to be compiled as well with -mfloat-abi=softfp
added to their CFLAGS:
-
-
Apply mpg123.patch using
patch -Np0 -i mpg123.patch
. -
autoreconf -fi CFLAGS="-DPSP2 -mfloat-abi=softfp" ./configure --host=arm-vita-eabi --prefix=$VITASDK/arm-vita-eabi --disable-shared --enable-static --enable-fifo=no --enable-ipv6=no --enable-network=no --enable-int-quality=no --with-cpu=neon --with-default-audio=dummy --with-optimization=3 make install
-
-
-
cd build cmake -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-mfloat-abi=softfp .. && make install
-
-
-
make install
-
-
-
make install
-
-
-
make install
-
-
-
mkdir build && cd build cmake .. && make install
-
-
-
make HAVE_SBRK=1 SOFTFP_ABI=1 SHARED_RENDERTARGETS=1 NO_DEBUG=1 install
-
Finally, in the folder of gtasa_vita
, install SceLibc stubs using:
make -C libc_bridge install
After all these requirements are met, you can compile the loader with the following commands:
mkdir build && cd build
cmake .. && make
Credits
- Rinnegatamante for porting the renderer using vitaGL, providing the companion app and making various improvements to the port.
- aap for porting PS2-rendering aka skygfx.
- Freakler for providing LiveArea assets.
- frangarcj, fgsfds and Bythos for graphics-related stuff.
- CBPS/SonicMastr for PIB, which was used on earlier stages of development.
- isage for the native audio backend for OpenAL-Soft.
- JonathanERC and gtagmodding for the Cheat List