Skip to content

Releases: ggdrn/METEOR-VII-VITA

FINAL FANTASY VII for PS Vita — v1.0

Choose a tag to compare

@ggdrn ggdrn released this 30 Oct 01:45

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.skprx installed and enabled in the *KERNEL section of your taiHEN
    configuration.
  • libshacccg.suprx in ur0:data/ or ur0: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

  1. Install ff7_vita_v1.0.vpk with VitaShell.

  2. 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
    
  3. Keep the APK and OBB intact; the port reads them directly.

  4. 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

Choose a tag to compare

@ggdrn ggdrn released this 26 Oct 04:07

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

Pre-release

Choose a tag to compare

@ggdrn ggdrn released this 20 Oct 16:09

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 so glGenTextures
    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.txt stretches 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.txt samples 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

Pre-release

Choose a tag to compare

@ggdrn ggdrn released this 18 Oct 16:37

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

Pre-release

Choose a tag to compare

@ggdrn ggdrn released this 14 Oct 03:32
56eb4b6

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.