Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Leo's Fortune Vita: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
|title=Leo's Fortune Vita
|title=Leo's Fortune Vita
|image=LeosFortuneVita.png
|image=LeosFortuneVita.png
|description=Port of Leo's Fortune for PSVita.
|description=Port of Leo's Fortune for PS Vita.
|author=stoicpingu
|author=stoicpingu
|lastupdated=2026/05/06
|lastupdated=2026/05/06
Line 19: Line 19:
|image_alt=Leo's Fortune Vita
|image_alt=Leo's Fortune Vita
}}
}}
'''Leo's Fortune''' is a PS Vita port of the Android release of the award-winning platform adventure game Leo's Fortune. It is a loader based on the Android SO Loader by TheFloW and the soloader-boilerplate by Volodymyr Atamanenko. The loader provides a tailored, minimalistic Android-like environment to run the official ARMv7 game executable on the PS Vita.
Loader of the Leo's Fortune Android release that allows to run it on the PS Vita.
 
Leo's Fortune is described as a platform adventure game where you hunt down the cunning thief who stole Leo's gold, with beautifully hand-crafted levels bringing the story of Leo to life across a journey full of challenges.


== Installation ==
== Installation ==
=== Requirements ===
=== Requirements ===
* libshacccg.suprx
* kubridge.skprx
* Android game files


Before installing the game, the following must be in place:
=== Instructions ===
 
* Install [[Kubridge Vita|Kubridge]] and [[FdFix Vita|FdFix]] by copying <code>kubridge.skprx</code> and <code>fd_fix.skprx</code> to your taiHEN plugins folder (usually <code>ur0:tai</code>) and adding two entries to your <code>config.txt</code> under <code>*KERNEL</code>:
* Install [[Kubridge Vita|Kubridge]] and [[FdFix Vita|FdFix]] by copying <code>kubridge.skprx</code> and <code>fd_fix.skprx</code> to your taiHEN plugins folder (usually <code>ur0:tai</code>) and adding two entries to your <code>config.txt</code> under <code>*KERNEL</code>:
 
<pre> *KERNEL
*KERNEL
  ur0:tai/kubridge.skprx
  ur0:tai/kubridge.skprx
  ur0:tai/fd_fix.skprx
  ur0:tai/fd_fix.skprx</pre>
 
* Note: Do not install <code>fd_fix.skprx</code> if you are using the rePatch plugin.
:'''Note:''' Do not install <code>fd_fix.skprx</code> if you are using the rePatch plugin.
 
* Make sure you have <code>libshacccg.suprx</code> in the <code>ur0:/data/</code> folder on your console. If you don't, follow [https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx this guide] to extract it.
* Make sure you have <code>libshacccg.suprx</code> in the <code>ur0:/data/</code> folder on your console. If you don't, follow [https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx this guide] to extract it.
 
* Legally obtain your copy of Leo's Fortune for Android. You will need both the <code>.apk</code> and the matching expansion file (<code>main.<ver>.<package>.obb</code>). The loader is built against version 1.0.5 - that is the last release that ships an ARMv7 binary. Newer versions on the Play Store are 64-bit only and will not work.
=== Game Files ===
* Open the <code>.apk</code> with any zip explorer (such as [https://www.7-zip.org/ 7-Zip]) and copy the following files into <code>ux0:data/leosfortune/</code>:
# Legally obtain your copy of Leo's Fortune for Android. You will need both the <code>.apk</code> and the matching expansion file (<code>main.<ver>.<package>.obb</code>). The loader is built against version 1.0.5 - that is the last release that ships an ARMv7 binary. Newer versions on the Play Store are 64-bit only and will not work.
** <code>lib/armeabi-v7a/libLeos_fortune.so</code> > <code>ux0:data/leosfortune/libLeos_fortune.so</code>
# Open the <code>.apk</code> with any zip explorer (such as [https://www.7-zip.org/ 7-Zip]) and copy the following files into <code>ux0:data/leosfortune/</code>:
** <code>assets/pak0.pak.jet</code> > <code>ux0:data/leosfortune/pak0.pak.jet</code>
#* <code>lib/armeabi-v7a/libLeos_fortune.so</code> <code>ux0:data/leosfortune/libLeos_fortune.so</code>
* Copy the OBB expansion file and rename it to <code>main.obb</code>:
#* <code>assets/pak0.pak.jet</code> <code>ux0:data/leosfortune/pak0.pak.jet</code>
** <code>main.<version>.<package>.obb</code> > <code>ux0:data/leosfortune/main.obb</code>
# Copy the OBB expansion file and rename it to <code>main.obb</code>:
* Install <code>leosfortune.vpk</code> from the [https://github.com/stoicpingu/leos-fortune-vita/releases Releases].
#* <code>main.<version>.<package>.obb</code> <code>ux0:data/leosfortune/main.obb</code>
# Install <code>leosfortune.vpk</code> from the [https://github.com/stoicpingu/leos-fortune-vita/releases Releases page].


The final layout under <code>ux0:data/leosfortune/</code> should look like this:
The final layout under <code>ux0:data/leosfortune/</code> should look like this:
  ux0:data/leosfortune/
  ux0:data/leosfortune/
  ├── libLeos_fortune.so
  ├── libLeos_fortune.so
Line 55: Line 49:


=== Getting the ARMv7 Build (v1.0.5) ===
=== Getting the ARMv7 Build (v1.0.5) ===
The Play Store will normally serve the 64-bit-only build, which the Vita loader cannot run. Aurora Store's device-spoofing feature can be used to force-download the older ARMv7 build.
The Play Store will normally serve the 64-bit-only build, which the Vita loader cannot run. Aurora Store's device-spoofing feature can be used to force-download the older ARMv7 build.


Line 63: Line 56:


'''Steps:'''
'''Steps:'''
* Purchase Leo's Fortune on the Google Play Store using your normal Google account.
* Install Aurora Store onto your Android device.
* Launch Aurora Store, accept the recommended settings, and log in using the same Google Account used to buy the game.
* Open the side menu in Aurora Store and select '''Spoof Manager'''. Pick an ARMv7 device from the list (the Realme 5 Pro profile works well).
* Log out of your Google Account in Aurora Store, then log back in so the spoof takes effect.
* Search for "Leo's Fortune" in Aurora Store and install it. Because an ARMv7 device was spoofed, Google will serve version 1.0.5 with the 32-bit <code>libLeos_fortune.so</code>.
* Install an APK extractor to pull both the <code>.apk</code> and the matching OBB from your device.
* Rename the <code>.apk</code> extension to <code>.zip</code>, open it, and extract <code>lib/armeabi-v7a/libLeos_fortune.so</code> and <code>assets/pak0.pak.jet</code>.
* Copy those two files plus the OBB (renamed to <code>main.obb</code>) to your Vita as described above.


# Purchase Leo's Fortune on the Google Play Store using your normal Google account.
=== Optional: Customize Language ===
# Install Aurora Store onto your Android device.
Leo's Fortune normally follows the Vita's system language. To force a specific locale, place a one-line text file at <code>ux0:data/leosfortune/language.txt</code> containing one of:
# Launch Aurora Store, accept the recommended settings, and log in using the same Google Account used to buy the game.
 
# Open the side menu in Aurora Store and select '''Spoof Manager'''. Pick an ARMv7 device from the list (the Realme 5 Pro profile works well).
en_US  ja_JP  de_DE  es_ES  fr_FR  it_IT  ko_KR  pt_BR  ru_RU  zh_CN  zh_TW
# Log out of your Google Account in Aurora Store, then log back in so the spoof takes effect.
 
# Search for ''Leo's Fortune'' in Aurora Store and install it. Because an ARMv7 device was spoofed, Google will serve version 1.0.5 with the 32-bit <code>libLeos_fortune.so</code>.
The short form (e.g. <code>fr</code>, <code>de</code>, <code>ja</code>) also works. Delete the file to fall back to the system language.
# Install an APK extractor to pull both the <code>.apk</code> and the matching OBB from your device.
 
# Rename the <code>.apk</code> extension to <code>.zip</code>, open it, and extract <code>lib/armeabi-v7a/libLeos_fortune.so</code> and <code>assets/pak0.pak.jet</code>.
=== Optional: Customize Controls ===
# Copy those two files plus the OBB (renamed to <code>main.obb</code>) to your Vita as described above.
You can rebind any Vita button by placing a <code>controls.txt</code> file at <code>ux0:data/leosfortune/controls.txt</code>.  


== Controls ==
Format:
<pre># Comments start with #
# vita_button = action
 
cross    = jump
square  = dive
triangle = none
circle  = none
l        = none
r        = none
start    = pause
select  = pause</pre>
 
'''Vita buttons:''' <code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>, <code>cross</code>, <code>circle</code>, <code>square</code>, <code>triangle</code>, <code>l</code>, <code>r</code>, <code>start</code>, <code>select</code>.
 
'''Actions:'''
{| class="wikitable"
{| class="wikitable"
|-
|-
! Button !! Action
! Action
|-
! Notes
| Left Joystick / D-Pad Left/Right / D-Pad Up/Down || Move Leo
|-
|-
| Cross || Jump / Confirm
| <code>jump</code> (alias <code>a</code>)
| Android <code>BUTTON_A</code> — Leo's jump / confirm
|-
|-
| Square || Dive
| <code>dive</code> (alias <code>x</code>)
| Android <code>BUTTON_X</code> — Leo's dive
|-
|-
| Start || Pause
| <code>b</code>, <code>y</code>, <code>l1</code>, <code>r1</code>
| Other Android face / shoulder buttons (no in-game action, but can be hooked)
|-
|-
| Select || Pause
| <code>start</code>, <code>back</code>, <code>menu</code>
| Standard Android system buttons
|-
|-
| Circle || Unused in-game (rebindable)
| <code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>
| D-pad keycodes — useful for mapping a face button to a direction
|-
|-
| Triangle || Unused in-game (rebindable)
| <code>pause</code>
| Opens the pause menu (calls <code>nativeBackPressed</code> directly)
|-
|-
| L / R || Unused in-game (rebindable)
| <code>none</code>
| Disables the button entirely
|}
|}


Touch input is fully forwarded to the engine - the entire game (gameplay and menus) can be played with the Vita's front touch panel, exactly as on the original Android release.
== Controls ==
Left Analog/D-Pad - Move Leo


=== Optional: Customize Language ===
Cross - Jump, Confirm


Leo's Fortune normally follows the Vita's system language. To force a specific locale, place a one-line text file at <code>ux0:data/leosfortune/language.txt</code> containing one of:
Square - Dive


en_US  ja_JP  de_DE  es_ES  fr_FR  it_IT  ko_KR  pt_BR  ru_RU  zh_CN  zh_TW
Start/Select - Pause


The short form (e.g. <code>fr</code>, <code>de</code>, <code>ja</code>) also works. Delete the file to fall back to the system language.
Circle - Unused in-game (rebindable)


=== Optional: Customize Controls ===
Triangle - Unused in-game (rebindable)


You can rebind any Vita button by placing a <code>controls.txt</code> file at <code>ux0:data/leosfortune/controls.txt</code>. The file is read once at startup; if it is missing or malformed, the defaults apply.
L/R - Unused in-game (rebindable)


==Media==
The entire game (gameplay and menus) can be played with the Vita's front touch panel, exactly as on the original Android release.
'''Leo's Fortune - Launch Trailer''' ([https://www.youtube.com/watch?v=uXX98NbdhR0 Leo's Fortune]) <br>
<youtube width=""640"">uXX98NbdhR0</youtube>


==Screenshots==
==Screenshots==
Line 123: Line 145:
https://dlhb.gamebrew.org/vitahomebrews/images/LeosFortuneVita-04.png
https://dlhb.gamebrew.org/vitahomebrews/images/LeosFortuneVita-04.png


=== Known Issues ===
==Media==
* '''Frame drops in some areas.''' The framerate dips from 60 to ~40 fps in a few "tunnel" sections.
'''Leo's Fortune - Launch Trailer''' ([https://www.youtube.com/watch?v=uXX98NbdhR0 Leo's Fortune]) <br>
* '''Do not tap "Login with Google"''' on the title screen - it will freeze the game. Online accounts and cloud saves are not wired up on the Vita port.
<youtube width="640">uXX98NbdhR0</youtube>
* '''Slow boot.''' Initial startup can take up to ~2 minutes.
 
* '''Original achievements not implemented.'''
== Known issues ==
* Frame drops in some areas. The framerate dips from 60 to ~40 fps in a few "tunnel" sections.
* Do not tap "Login with Google" on the title screen - it will freeze the game. Online accounts and cloud saves are not wired up on the Vita port.
* Slow boot. Initial startup can take up to ~2 minutes.
* Original achievements not implemented.


==Changelog==  
==Changelog==  
Line 143: Line 169:


== External links ==
== External links ==
* Github - https://github.com/stoicpingu/leos-fortune-vita
* GitHub - https://github.com/stoicpingu/leos-fortune-vita
* VitaDB - https://www.rinnegatamante.eu/vitadb/#/info/1396
* VitaDB - https://www.rinnegatamante.eu/vitadb/#/info/1396
[[Category:Mobile game ports on Vita]]
[[Category:Vita game ports]]

Latest revision as of 03:48, 14 May 2026

Leo's Fortune Vita
General
Authorstoicpingu
TypePlatform
Version1.0
LicenseMIT License
Last Updated2026/05/06
Links
Download
Website
Source

Loader of the Leo's Fortune Android release that allows to run it on the PS Vita.

Installation

Requirements

  • libshacccg.suprx
  • kubridge.skprx
  • Android game files

Instructions

  • Install Kubridge and FdFix by copying kubridge.skprx and fd_fix.skprx to your taiHEN plugins folder (usually ur0:tai) and adding two entries to your config.txt under *KERNEL:
 *KERNEL
 ur0:tai/kubridge.skprx
 ur0:tai/fd_fix.skprx
  • Note: Do not install fd_fix.skprx if you are using the rePatch plugin.
  • Make sure you have libshacccg.suprx in the ur0:/data/ folder on your console. If you don't, follow this guide to extract it.
  • Legally obtain your copy of Leo's Fortune for Android. You will need both the .apk and the matching expansion file (main.<ver>.<package>.obb). The loader is built against version 1.0.5 - that is the last release that ships an ARMv7 binary. Newer versions on the Play Store are 64-bit only and will not work.
  • Open the .apk with any zip explorer (such as 7-Zip) and copy the following files into ux0:data/leosfortune/:
    • lib/armeabi-v7a/libLeos_fortune.so > ux0:data/leosfortune/libLeos_fortune.so
    • assets/pak0.pak.jet > ux0:data/leosfortune/pak0.pak.jet
  • Copy the OBB expansion file and rename it to main.obb:
    • main.<version>.<package>.obb > ux0:data/leosfortune/main.obb
  • Install leosfortune.vpk from the Releases.

The final layout under ux0:data/leosfortune/ should look like this:

ux0:data/leosfortune/
├── libLeos_fortune.so
├── pak0.pak.jet
└── main.obb

Getting the ARMv7 Build (v1.0.5)

The Play Store will normally serve the 64-bit-only build, which the Vita loader cannot run. Aurora Store's device-spoofing feature can be used to force-download the older ARMv7 build.

You will need:

Steps:

  • Purchase Leo's Fortune on the Google Play Store using your normal Google account.
  • Install Aurora Store onto your Android device.
  • Launch Aurora Store, accept the recommended settings, and log in using the same Google Account used to buy the game.
  • Open the side menu in Aurora Store and select Spoof Manager. Pick an ARMv7 device from the list (the Realme 5 Pro profile works well).
  • Log out of your Google Account in Aurora Store, then log back in so the spoof takes effect.
  • Search for "Leo's Fortune" in Aurora Store and install it. Because an ARMv7 device was spoofed, Google will serve version 1.0.5 with the 32-bit libLeos_fortune.so.
  • Install an APK extractor to pull both the .apk and the matching OBB from your device.
  • Rename the .apk extension to .zip, open it, and extract lib/armeabi-v7a/libLeos_fortune.so and assets/pak0.pak.jet.
  • Copy those two files plus the OBB (renamed to main.obb) to your Vita as described above.

Optional: Customize Language

Leo's Fortune normally follows the Vita's system language. To force a specific locale, place a one-line text file at ux0:data/leosfortune/language.txt containing one of:

en_US  ja_JP  de_DE  es_ES  fr_FR  it_IT  ko_KR  pt_BR  ru_RU  zh_CN  zh_TW

The short form (e.g. fr, de, ja) also works. Delete the file to fall back to the system language.

Optional: Customize Controls

You can rebind any Vita button by placing a controls.txt file at ux0:data/leosfortune/controls.txt.

Format:

# Comments start with #
# vita_button = action

cross    = jump
square   = dive
triangle = none
circle   = none
l        = none
r        = none
start    = pause
select   = pause

Vita buttons: updownleftrightcrosscirclesquaretrianglelrstartselect.

Actions:

Action Notes
jump (alias a) Android BUTTON_A — Leo's jump / confirm
dive (alias x) Android BUTTON_X — Leo's dive
byl1r1 Other Android face / shoulder buttons (no in-game action, but can be hooked)
startbackmenu Standard Android system buttons
updownleftright D-pad keycodes — useful for mapping a face button to a direction
pause Opens the pause menu (calls nativeBackPressed directly)
none Disables the button entirely

Controls

Left Analog/D-Pad - Move Leo

Cross - Jump, Confirm

Square - Dive

Start/Select - Pause

Circle - Unused in-game (rebindable)

Triangle - Unused in-game (rebindable)

L/R - Unused in-game (rebindable)

The entire game (gameplay and menus) can be played with the Vita's front touch panel, exactly as on the original Android release.

Screenshots

LeosFortuneVita-01.png

LeosFortuneVita-02.png

LeosFortuneVita-03.png

LeosFortuneVita-04.png

Media

Leo's Fortune - Launch Trailer (Leo's Fortune)

Known issues

  • Frame drops in some areas. The framerate dips from 60 to ~40 fps in a few "tunnel" sections.
  • Do not tap "Login with Google" on the title screen - it will freeze the game. Online accounts and cloud saves are not wired up on the Vita port.
  • Slow boot. Initial startup can take up to ~2 minutes.
  • Original achievements not implemented.

Changelog

v1.0

  • First Release.

Credits

External links

Advertising: