An unofficial, native iOS-to-PS Vita wrapper port of Zenonia 5: Wheel of Destiny (originally developed by Gamevil). There is no ELF of the game here: this port ships its own Mach-O loader that maps the official ARMv7 executable (Zenonia5, armv7 slice of the 1.1.3 IPA) into PS Vita RAM and replaces the Apple frameworks it uses (Foundation, UIKit, CoreGraphics/CoreText, AudioToolbox, AVFoundation, OpenAL, SystemConfiguration, StoreKit) with native implementations on top of vitaGL, FreeType, libvorbis and the Vita system libraries. The game's online server no longer exists, so the login it needs is answered by a small server emulator built into the loader.
| Name |
Version |
Released |
Hits |
DL Link |
QR |
| zenonia5ios.vpk |
v0.1 |
11/12/26 |
2 |
Download |
QR |
# Zenonia 5: Wheel of Destiny (PS Vita) โ Beta Release v0.1
First public build of the native iOS โ PS Vita port of *Zenonia 5: Wheel of Destiny* (iOS 1.1.3). A custom Mach-O loader runs the original ARMv7 executable; on physical hardware the game boots to the title screen, logs in to an emulated server with a default player ID, reaches the main menu and is playable in-game.
## ๐ฆ Release Package Contents
1. **`zenonia5ios.vpk`** (`PSVZ5I001`, version `01.00`): the Mach-O loader with its Foundation / UIKit / CoreGraphics / CoreText / AudioToolbox / AVFoundation / OpenAL replacements, vitaGL presentation, FreeType text with a merged Latin + Korean `font.ttf`, the built-in server emulator and a Zenonia 5 LiveArea (banner, background and startup logo).
2. **`rebase.bin`**: relocation table of 33,785 absolute 32-bit pointers for the 1.1.3 `Zenonia5` executable (armv7 slice).
3. **`binds.bin`**: 2,889 import slots that point into Apple frameworks, resolved by the loader at startup.
4. **`controls.txt`**: button โ touch mapping for the in-game HUD.
No game code or assets are included.
---
## ๐ ๏ธ What are `rebase.bin` and `binds.bin`?
The loader maps the executable at `MACHO_SLIDE = 0x98000000` above its link address, so every absolute pointer in the code's literal pools and in `__DATA` has to be moved by hand.
- **`rebase.bin`**: `'RBS1'`, `u32 count`, then `count ร u32 vmaddr` of words that hold an absolute address (`+ MACHO_SLIDE`).
- **`binds.bin`**: `'BND1'`, `u32 count`, then `count ร {u32 vmaddr, u32 addend, u8 lazy, char name[]}` for each slot bound to an external symbol.
Both are generated by `tools/ios_prep.py` (Objective-C metadata, `__cfstring`, `__mod_init_func`, a recursive ARM/Thumb disassembly with capstone, and data heuristics); `tools/stage_data.sh` runs the whole pipeline.
---
## ๐ Player Installation Guide
1. **Requirements**: Enso 3.60/3.65, `kubridge.skprx` in `ur0:tai/config.txt` (`*KERNEL`), `libshacccg.suprx` in `ur0:data/` (ShaRKBR33D).
2. **Game files**: your own decrypted *Zenonia 5* 1.1.3 IPA. Run `tools/stage_data.sh path/to/Zenonia5.app` (Python 3 + capstone, ffmpeg) to build `ux0_data/zenonia5ios/` and copy it to `ux0:data/zenonia5ios/`, together with `controls.txt`.
3. **Install** `zenonia5ios.vpk` with VitaShell.
---
## ๐ฎ Controls
| Input | Action |
| :---: | :--- |
| **Touch screen** | Game touch controls |
| **Left stick / D-Pad** | Move (drags the on-screen joystick) |
| **Cross (โ)** | Attack |
| **Square / Triangle / Circle / R** | Skills |
| **Start** | Pause |
| **Select / L** | Skip (red button, top right) |
| **L + R** | Show / hide the touch joystick, attack and skill buttons |
---
## ๐ Changelog (v0.1)
- **Loader**: armv7 slice loaded with 33,785 rebases and 2,889 binds; 116 ObjC classes, 217 initializers; Darwin `stat` with the 64-bit-inode layout (the save size was read as 0 โ `new[-1]`).
- **Online**: Gamevil Live and the IAP notice disabled with ObjC method overrides (port of `tools/iphone/z5nolive.m`); Reachability reports Wi-Fi and BSD sockets go to a server emulator that answers the login (`SC_CONNECT`) with player ID `1000001` / nickname `jugador01`, so no "create ID" popup.
- **Screen**: `UIScreenMode` 640ร1136 makes the game pick its iPhone 5 layout โ full screen, no cropped HUD, accurate touch.
- **Text**: NanumGothic had no รก รฉ รญ รณ รบ รฑ โ merged the Latin glyphs of DejaVu Sans into `font.ttf`; trailing spaces now count in `sizeWithFont:` (words were glued together).
- **Audio**: `AVAudioPlayer` implemented (VOICE ports, high-priority thread on its own core, `.ogg` decoded from RAM); `NSString pathComponents` / `pathWithComponents:` for sound paths.
- **Loading**: fast path for `CGContextDrawImage` (UI sheets went from ~2 s to a fraction each; title โ menu ~19 s โ ~6 s); the 1 s connection wait per login cut to 0.125 s.
- **Fixes**: `UIImage imageWithData:`, XML plists (particles), `NSCAssert` handler, watchdog no longer kills long loads.
---
## โ ๏ธ Known Issues
- Going from the title to the menu still takes several seconds (save re-encryption on every login).
- Busy fights drop to about 21โ24 FPS (game cap is 30 FPS).
- PvP, rankings, mail, gacha and shop get empty answers from the emulated server.
- Not yet confirmed on console in this build: hidden touch HUD (L + R), shorter connection wait, music decoded from RAM.
Installation and build instructions: see [README.md](README.md).
| Name |
Version |
Released |
Hits |
DL Link |
QR |