Repository navigation
Releases: ggdrn/METEOR-VII-VITA
Release list
FINAL FANTASY VII for PS Vita — v1.0
An unofficial port of the Android version of FINAL FANTASY VII to PlayStation Vita.
The original ARMv7 game library runs on the Vita through a compatibility layer,
with rendering provided by vitaGL.
Highlights
- Optional 16:9 widescreen for fields, battles and the world map. Switch
between 4:3 and 16:9 in the port menu. Menus and movies retain their original
aspect ratio. - Widescreen adjustments for field backgrounds, world map terrain, sky and
clouds, battle viewports, HUD alignment and dialog windows. - Native optimizations for field rendering, the world map, battles and 3D
minigames, including texture caching and GPU palette rendering. - Frame pacing and performance improvements for the submarine, chocobo racing,
roller coaster, snowboard and G-bike minigames. - Physical Vita controls, PlayStation button prompts and right-stick camera
rotation on the world map. - A port menu with gameplay settings and optional cheats: movement speed,
automatic dialog advance, language selection, EXP/gil multipliers, infinite
HP/MP and materia selection. - Audio, movie presentation and minigame input fixes from earlier releases.
- Developer tools are hidden from the standard port menu.
Requirements
- A PS Vita capable of running homebrew.
kubridge.skprxinstalled and enabled in the*KERNELsection of your taiHEN
configuration.libshacccg.suprxinur0:data/orur0:data/external/.- Your own legally purchased Android copy of FINAL FANTASY VII, version 1.0.29.
- Approximately 2.1 GB of free space for the game data, plus space for the port.
Installation
-
Install
ff7_vita_v1.0.vpkwith VitaShell. -
Copy the following files from your Android installation to the Vita:
ux0:data/ffvii-vita/base.apk ux0:data/ffvii-vita/main.30.com.square_enix.android_googleplay.FFVII.obb -
Keep the APK and OBB intact; the port reads them directly.
-
Launch FINAL FANTASY VII from LiveArea.
If you already use an earlier version, install the VPK over it and keep your
existing game data. Back up ux0:data/ffvii-vita/save/ before updating.
See the installation guide
for details.
Port menu
Hold L + R and press Start. Use L/R to switch tabs, Up/Down to
select an item, Left/Right to change it, Cross to confirm and Circle
to close the menu.
The standard menu contains Cheats and Gameplay.
In Gameplay, choose SCREEN to toggle 4:3/16:9. Language choices are
English, French, German, Spanish and Japanese; language changes apply after
restarting the game. Gameplay and cheat settings are stored in cheats.txt.
For bug reports, include the port version, location, selected screen mode,
steps to reproduce and ux0:data/ffvii-vita/logs.txt plus logs_anterior.txt.
Credits
The VPK contains the port only. Game data must be supplied by the user.
FINAL FANTASY VII © SQUARE ENIX. This project is not affiliated with or endorsed
by Square Enix.
FINAL FANTASY VII — PS Vita v0.09.00
Install ff7_vita_v0.09.00.vpk over any previous version. Game data stays in
ux0:data/ffvii-vita/ (DATA.md); no game data is included.
New: port menu
Hold L + R and press Start. L / R switch tabs; the bottom of the menu
explains the selected item. Choices are saved in cheats.txt.
- Cheats: infinite HP/MP; battle EXP and gil x2/x3/x4; add any materia (picked
by color) or summon, at level 1 or max. - Gameplay: faster walking/running in fields and on foot on the world map
(x2/x3/x4, nothing else speeds up); automatic dialog skip (questions are left to
you); dialog language (English, French, German, Spanish, Japanese, applied at the
next start); back to the title to load another save. - Debug: shortcuts to every 3D minigame and to the world map on the buggy,
submarine or Highwind; scene markers; profiler and A/B switches for reports.
Performance
- Minigames: steady 30 fps in the submarine, roller coaster and
chocobo race; snowboard capped at a steady 30 fps; faster G-bike.
Most of their drawing and math now runs as native code checked against the
original. - Animated palettes: paletted textures go to the GPU as indexes + palette
instead of being converted on the CPU every time a palette changes (Chocobo
Square 15 → 30 fps, chocobo ranch faster). Repeated conversions are cached. - Fields: native vertex lighting and background tile lists, faster triangle
submission for every 3D scene. - World map: triangle and projection code faster again (no calls back into
the game library in the hot loops). - Battles: native vertex color scaling (~12% of the game thread).
Fixes
- Button prompts show the right PS symbols: ✕ confirms, ○ cancels.
- First menu sound and save/load sounds are no longer missing.
- 448-line FMVs (e.g. the G-bike intro) fill the screen without distortion.
- Submarine: Square and the on-screen L2/R2 and R1+R2 buttons work.
- Less audio stutter when minigames stop and restart sounds.
Switches
New in ux0:data/ffvii-vita/:
| File | Effect |
|---|---|
natives_off.txt |
every native replacement off (tells a port bug from the game) |
vcolor_off.txt, tri_off.txt, tri2_off.txt, math_off.txt, light_off.txt, texture_off.txt |
one native module off |
snowboard_60fps.txt, coaster_60fps.txt |
leave that minigame uncapped |
submarine_limiter_off.txt, chocobo_limiter_off.txt |
keep the game's own limiter |
Known issues
- Leaving the profiler on into a battle can crash the game; record short profiles.
When reporting a problem, send logs.txt and logs_anterior.txt.
FINAL FANTASY VII — PS Vita v0.6
Install ff7_vita_v0.6.vpk over any previous version. Game data stays where it was
(ux0:data/ffvii-vita/, see DATA.md); no game data is included.
Performance
- World map native renderer. The four hottest routines of the world map renderer
(0x75F0AD,0x75F263,0x68DAE1,0x75F68C) were replaced with native ARM
implementations that produce identical results. Together they accounted for ~57% of
the game thread on the world map. Frame rate went from 19–23 fps (v0.5) to a steady
30 fps. - Faster paletted texture conversion. Fields that recreate palettised textures every
frame had separate conversion and GL sync costs of ~22% of the game thread. The
conversion loop is now split by destination format (one table lookup and one write per
pixel); GL texture names are pre-generated on the render thread soglGenTextures
never stalls waiting for the queue.
Controls
- Right analog stick rotates the world map camera. Deflect right to rotate
right, left to rotate left — same speed as holding L/R. The buttons still work
as before. The stick has no effect outside the world map.
Changes
- Field screen zoom corrected. The zoom introduced in v0.2 was tracking 464 of 480
lines; it now follows the actual drawing area the game sets (448 lines by default),
filling 777×544 without distortion.field_stretch_on.txtstretches to the full
960×544 instead. - Battle mode zoom. The same zoom now applies to battles, removing the black strip
under the command menu. The zoom uses 472 lines so that all submenus remain visible. - Profiler fixed. With
profile_on.txt, the console no longer resets on boot. The
sampler now runs on core 0 at higher priority (exact instruction-level samples),
activates 20 s after boot (after all startup patches finish), and coordinates safely
with the stack-patching pass. - Continuous profiling mode.
profile_all.txtsamples every 20 ms while the game
thread is running, instead of only during slow frames. Useful for scenes like the
world map that sleep briefly each frame. - World map game mode. When loading a save directly on the world map, the screen
zoom now activates correctly (the game mode was not read until the first field screen
in earlier versions).
Switches
Creating one of these empty files in ux0:data/ffvii-vita/ controls optional behaviour:
| File | Effect |
|---|---|
stack_off.txt |
stack accesses through the original translation |
stack_check.txt |
checks every stack access and logs any outside the stack (slower) |
music_async_off.txt |
music read on the game thread, as before |
field_zoom_off.txt |
field and battle screens with the bottom strip, as before |
field_stretch_on.txt |
stretch field and battle to the full 960×544 (distorted) |
glbatch_off.txt |
render thread woken on every draw, as before |
world_off.txt |
all world map native routines disabled |
world_tri_off.txt |
world map triangle renderer native routine disabled only |
selftest_on.txt |
runs the native code self-tests on boot |
profile_on.txt |
spike profiler: writes profile.bin for slow frames |
profile_all.txt |
continuous profiler: samples every 20 ms while running |
When reporting a problem, send logs.txt and logs_anterior.txt from
ux0:data/ffvii-vita/.
METEOR VII — PS Vita v0.5
Install ff7_vita_v0.5.vpk over any previous version. Game data stays where it was
(ux0:data/ffvii-vita/, see DATA.md); no game data is included.
Performance
- x86 stack accesses without address translation. Half of all memory accesses of
the recompiled game code went to the x86 stack through a page-table lookup. The stack
is now mapped so that each of those 333,453 accesses is a single instruction. In the
heaviest Sector 7 scene the game thread went from 96% busy at 28–29 fps (v0.2) to
74–76% busy at a steady 30 fps. - Fewer render thread wake-ups: from ~4,000 to ~600 kernel calls per second in busy
scenes. - Music loads in the background. Area and battle tracks that were not cached froze
the game for 170–600 ms while being read; now the game keeps running and the music
starts once it is loaded. - Self-tests of the native code no longer run on every boot.
Changes
- Field screens fill the whole height. The empty strip the game leaves under field
screens (16 of 480 lines) is no longer shown: the picture is scaled by 3.4%, without
distortion. Battles, menus, movies and the world map are unchanged. - Saves have their own folder:
ux0:data/ffvii-vita/save/(save00.ff7–save09.ff7).
Saves from earlier versions are copied there on the first run; the originals stay in
Documents/. - The floating Escape button in battles was removed. Hold L + R to run away, as in
the original game. - New LiveArea artwork.
Switches
Creating one of these empty files in ux0:data/ffvii-vita/ turns a change off, for
comparisons or if something goes wrong:
| File | Effect |
|---|---|
stack_off.txt |
stack accesses through the original translation |
stack_check.txt |
checks every stack access and logs any outside the stack (slower) |
music_async_off.txt |
music read on the game thread, as before |
field_zoom_off.txt |
field screens with the bottom strip, as before |
glbatch_off.txt |
render thread woken on every draw, as before |
selftest_on.txt |
runs the native code self-tests |
profile_on.txt |
writes profile.bin for performance analysis |
When reporting a problem, send logs.txt and logs_anterior.txt from the same folder.
METEOR - VII for PS Vita v0.2
Loader that runs the Android version of FINAL FANTASY VII (v1.0.29) natively on the PS Vita.
What's new in v0.2:
- Much better performance: the heaviest Sector 7 areas went from ~18 fps to ~29 fps (the field target is 30 fps).
- GL rendering moved to a separate thread; native replacements for the hottest game routines (vertex lighting, triangle renderer, x86 address translation).
- Fixed graphical glitches in the opening movies.
No game data is included. You need your own copy of the game from Google Play. See docs/DATA.md for installation.
Requires kubridge.skprx and libshacccg.suprx.