lostkefin/README.md
2025-04-09 00:12:30 -04:00

5.1 KiB

Ys V: Lost Kefin - Kingdom of Sand (PS2) English Translation

Currently using Sam Farron's translation from his Translation Series with permission

If you want to help with the translation please contact me! (Knowing Japanese is not needed)

Current Progress

I am replacing the usage of armips with acbde for script extraction and insertion. Currently I have raw dumps only as I need to figure out all the control codes to get a full pointer dump

Building

  • Use Apache3 to extract the contents of the game's .iso file
  • Copy the contents to the extracted and translated folders
  • Run build.bat or manually run the commands

Hacking Notes

  • The game uses SHIFT-JIS encoding for its text
  • The game's base pointer is $FFF80
  • Extracted .bin files with _anm in the filename are animation files with indexed 8BPP graphics and have the header NAXA5010
  • Extracted .HGB files are texture files with 32BPP RGBA graphics
  • Music files are .hd (header), .bd (header), and .sq (sequence) files
  • See my notes file for more terribly organized notes

Extracting the DATA.BIN Files

extract.py extracts all the files from DATA.BIN and its folders into a DATA folder but does not extract the files into their correct folders yet, a logfile.txt is also created for fixing issues with the script

Font info

The game uses Shift-JIS encoding but I decided to make table files so I can include control codes
font.py extracts the fontmap from SLPM_663.60 to create a quick font.tbl table file. Use kefin.tbl for corrected values and control codes In SLPM_663.60 the font is located at $1A3E90 as 4BPP graphics, its palette is stored at $25E4C0, and the fontmap is at $1A31F0

Script Info

  • Script files (named stageXX.bin) have the first $2000 bytes as a pointer table
  • Each pointer first as an "index" number (4 bytes, little-endian) then the pointer value to the file (4 bytes, little-endian)
  • Pointer value are calculated as pointer + $2000
  • Changing the pointer seems to cause the game to freeze Before running script.py copy the script files (as extracted from DATA.BIN) to the scripts folder. script.py will extract the pointer information for each file into a separate text file. The python script will also include info for control codes.
    Before running dump.bat make sure perl is installed. On Windows I recommend isnstalling Strawberry perl
    The script can be dumped from DATA.BIN and into scripts after running dump.bat. Currently it is a raw dump because I have not figured out all the control codes, using a pointer dump will cause the scripts to be under-dumped.

To do

  • Figure out all the control codes properly
  • Update the extraction script to extract DATA0.BIN, DATA1.BIN, and SLPM_663.60
  • Continue inserting the English script

Game Manual Translation

In the manual folder are scans for the game's manual. They were originally from landofys.narod.ru which is now landofys.com.ru(http://landofys.com.ru/) was scanned by Dragon.

Links to Stuff

  • Translation of opening cutscene by mziab (I did not use this translation)
  • Hacking attempt by Hectavus with only SLPM_663.60 being translated
  • Cheatcodes by luc-ita
  • Guide and walkthrough by VoidZankantou
  • Guide addendum by uncle5555 (South Tower enterance requirements)
  • Review the game by Kurt Kalata (includes review for original SFC game)
  • Original game website from Taito

Credits