Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Colly

Pages: [1]
Misc. Tools / [FFXV PC] Cindy, Text Editor
« on: 2019-01-01 20:32:55 »

I have finally released the first version of my text editor for Final Fantasy XV — Cindy!

This application was done specially for Polish unofficial translation of FFXV. Now I'm releasing it for other guys who wants to translate FFXV.
Please read instructions first!

Link to the application: Cindy, Text Editor for FFXV, v1.1


Misc. Tools / [FFXV PC] Hammerhead, EARC archiver
« on: 2018-03-07 22:02:47 »

I have made a tool to extract and import back files to FFXV PC:
Hammerhead 1.4

Tested on playable demo version of the game.

I'm getting a lot of private messages about translating PSX version of the game, so I wrote very short tutorial. I assumed that you have PC version translated into your language (Portuguese, Basque, Hungarian etc.). Tutorial is based on the English PAL version of the game.

1. Extract .IMG file from disc.

2. Extract files from the .IMG:
Disc 1, offset 121155584: dopub_1

3. Name this file with extension, for example .c, as it's compressed.

4. Use lzs.exe to decompress this file. Make a bat file with correct data, for example:
[lzs.exe -d dopub_1.c]

5. Lzs.exe will make the "dopub_1.DEC" file. Open it in hexeditor.

6. At the 0x1C offset you will see a pointer. In this example it's 800E51B4. Subtract 800E1000. The result is 41B4. It's a start of MSD file.

7. Replace this MSD file with translated one from PC version. Notice! Not all the files are exactly the same in PC and PSX.

8. There are offsets on 0x20, 0x24, 0x28, 0x2C. If your translated file is bigger than the original one, you have to add the difference to these offsets. Remember, that all pointers on PSX has to be divisible by 4! So, if your MSD file is longer than the original by 6 bytes, move pointers by 8.

9. Save the file.

10. Compress the file by lzs.exe.

11. Insert file into .IMG.

12. Insert IMG to the BIN.

13. One file of Dollet Pub is translated ;)

FF8 Tools / [PSX/PC] kernel.bin editor - Carbuncle (0.9)
« on: 2012-09-09 21:36:35 »

I made an editor for FF8 kernel.bin file. It's very simple application. Works with English version of the file (PC and PSX, it's the same).
In next version I'll implement editing namedic.bin, now it has to be edited manually or by another application.

Carbuncle, version 0.9



English kernel with English char table; char table can be edited

Polish kernel.bin loaded with Polish table; editing "Potion"

Click "Edit"...

... and Save

Little help for variables

Screenshot in-game with changed Potion's name


I made the second version of Hardcore Patch for FF8. It has 3 difficulty levels:

1. Ruby Medium
2. Ultima Hard
3. Omega Extreme

Application works on batch files, so if you use Vista or 7, you have to do it on admin account.

FF8 Hardcore Patch for PC.
FF8 Hardcore Patch for Steam.
FF8 Hardcore Patch for PSX - PPF files, only for PAL English version of the game (SLES-02080).

Edit: Corrected broken links.
Edit#2: Again corrected.
Edit#3: Added installer for Steam.


I want to translate intro of FF8. I converted STR to AVI, changed frames and create STR file again by Movie Converter. But STR format especially for FF8 has some variations, most important are:
- Each frame has 10 sectors; first two sectors are for audio, the rest (8 sectors) are for video
- Header for audio sectors are different, but I want audio sectors leave as is, because I don't translate sound ;)
- Header for video sectors are different, this header contains only 8 bytes
- The rest of sector: 2048 - 8 = 2040 bytes are frame data, so one frame has 8*2040 => 16320 bytes for frame data without header.

The most difficult variation is the last listed above. Because after the video header, in the standard STR file, there are 2016 bytes for frame data. Anyone know, how can I change these 2016 bytes to 2040? Or maybe I do something wrong?

If you want translate Final Fantasy VIII into your language, you just read the most correct topic ;) Below you find all links to the tools and minitutorial for this.

In Final Fantasy VIII you can translate:
I. Dialogues
II. Menu
III. Kernel (magic names, item names, descriptions, battle system messages)
IV. Battle dialogues
V. Texts from the world map
VI. Card game
VII. Backgrounds & LZS
VIII. Textures from the battle (for example "Timber Maniacs" inside battles in Timber)
IX. Textures from the magic (Scan, The End)
X. Descriptions from the Scan
XI. Draw points
XII. Compiling

I. Dialogues

I.1. Garden

First of all, you must have Garden from Qhimm. This program can decompile (extract) all files from the game. I don't have original file, I have only version with Polish menu. You can find this program (compiled) here: Garden by Qhimm.

Small translation:
Otwórz Projekt -> Open Project
Dekompiluj pliki -> Decompile files
Kompiluj pliki -> Compile files
Wyjście -> Quit
Widok -> View
Pasek Narzedzi -> Toolbar
Pasek Statusu -> Status bar
Pomoc -> Help
O Garden -> About Garden

To extract all files from the game, you must choose Dekompiluj pliki. After this process, you'll get GPR project file, which have 1209 KB... but it must have 1409 KB, if you want reinsert dialogue files back to the game. Correct GPR file you have in archive with Garden.

Dialogue files have MSD extension. You can edit them by Garden, but this program don't have functions such as Copy and Paste and you'll have to a lot of time, if you want translate all files by this program. Besides, Garden will crash if you'll try open empty MSD file (0 KB). So, better do this by my editor...

I.2. Moomba

You can find this program here: Moomba by Colly.
You will have to unpack this program into folder with GPR file. Thanks for this, Moomba finds MSD files. On the left you have list of dialogue files. Choose one of them and click [LOAD]. After editing file, click [SAVE].
Warning! Before clicking [SAVE], better copy all text from the file to clipboard. Sometimes program crashes, I don't know why (I create this program few years ago, so I don't remember how it works exactly).

I.3. Compiling dialogues into the game

You can do this by Garden. Please choose Kompiluj pliki (Compile, F5 key) and choose only field file.

II. Game Menu

II.1. FF8msg.exe.

You can edit menu by a M4v3R program, ff8msg.exe. BUT, if you want translate all in the menu correctly, you have to know "pointers" and how hexeditor works.
Menu has many sections, and you have to open mngrp.bin file by hexeditor and find all sections. The first sections starts at offset 24, the rest start offsets you have to find alone.
Tutorials, SeeD test questions and other texts after half of the mngrp.bin you have to translate alone, by hexeditor, and change pointers manually.

II.2. Hexeditor & tables.

I use Translhextion, you can find it here: Translhextion.
You have to thingy table for this, you can all find here: Thingy tables for FF8.

II.3. Textures from the menu.

Mngrp.bin file has almost all texts from the menu, but NOT ALL. Open the rest files from the menu.fs and look into it by Translhextion. Some of these files are textures, and fonts. You can edit them by...

II.4. Omega.

It's next program wrote by M4v3R (yes, we all should send big thanks to him) :) You can find it here: Omega by M4v3R. Bitmaps extracted by this program, better edit (save) by MS Paint, Photoshop can break these files.

III. Main

III.1. Kernel.bin has 25 sections (for magic names, item names, etc.). Every section has 2 subsections - one for pointers, and one for text.

Inside pointer subsection, very often there is "interval" between correct pointers, which has some other data (I don't know what this data is). So I create this table (click to view it).

Texts inside kernel.bin use DTE, but only in descriptions for items, etc., not in the names.

You can edit this ONLY by hexeditor, there is no other program you can edit this file correctly.

I created an application to do it, Carbuncle: Link to the forum, Carbuncle, version 0.9

III.2. Inside main.fs you have namedic.bin file - look into it, and edit by hexeditor.

IV. Battle dialogues.

Files for enemies (inside these you can find dialogues) are located in battle.fs archive. This is the files with names c0mXXX.dat (from c0m001.dat to c0m143.dat).
When you'll open this file (by hexeditor), look on the 0x1C, go into address from this offset, go down, and you'll see texts (don't forget turn on thingy table). This dialogues has the same structure as MSD files, so you can edit them by Moomba, but you'll have to change arena.cpg file for it and you'll have to, of course, extract this dialogue part to the new file.

Warning! If text lines will be too long, inside FF8 it will be corrupted.

V. Texts from the world map.

When you open Moomba, scroll the list to the end. :) Better create backup of the wmsetus.obj file.

VI. Card game.

VI.1. Text.

All of them is stored inside FF8.exe file. Open by hexeditor and find texts from the card game. You can search it for example by word "Rules". Edit - it has the same structure as MSD files (pointers + text).

VI.2. Texture.

If you want change textures from the game, search TIM file inside FF8.exe. Download TIMViewer or PSicture, and you get it easily.

But editing this file isn't easy. It's multipalette TIM. How I edit them? Here is the answer:

- I open TIM in PSicture, chose proper palette for some part of TIM (for example for "SAME!" in cardmes.tim) and save as BMP.
- I open this BMP in Gimp with TIM plugin, change mode to indexed and save as TIM with proper number of bits (4 in example).
- I open this saved TIM in Photoshop with TIM plugin, select and copy this proper place ("SAME!"). I open new document, paste from clipboard, and edit this normally in RGB mode.
- I open saved one-palette TIM in hexeditor and I change this palette into proper from original.
- I open this TIM with proper palette in GIMP, in Photoshop I select what I edited and use function "Copy Merged". I paste this into TIM in GIMP and after save, this is only one part in this file in proper colors. So...
- I create a copy of this TIM, open in Translhextion, in program preferences change bytes in line into bytes in width of this TIM, change font size into "5". After that, I delete header&palette, and I see only RAW image in Translhextion ;). Then I copy only proper lines of bytes into original, multipalette file, into proper place. The rest of graphic is untouched, so this works good :)

It looks great - you can see that here:

VII. Backgrounds.

Do you want edit background, such as this?

You can do it by programs and bats created by Czech translation group (Kruci), you can find they homepage here:

Programs you can find here: FF8 background editing and here: LZS graphics editing... and we have to send big thanks to Kruci ;)

VIII. Textures from the battle.

Scan unpacked files from battle.fs by TIMViewer or PSicture. Edit them such as card game texture or by GIMP/Photoshop plugins, if TIM is single-palette.

IX. Textures from the magic.

Just do the same as in the VIII point, but change battle.fs into magic.fs ;)

X. Descriptions from the Scan magic.

Open hexeditor and load FF8.exe. Find these texts, edit, and save. ;)

XI. Draw points.

Please look at the previous point.

XII. Compiling.

All modified files (except dialogues) you can insert into the game by FF8 Archive Commander by M4v3R. You can find it here: FF8 Archive Commander by M4v3R.

All that things works for sure. Effects you can see here: Final Fantasy VIII in Polish


I want to convert Polish translation of FF8 from PC version into PSX version. I found battle files (easy), kernel.bin, mngrp.bin (and graphics in menu), texts linked with the world map (Obel Lake, etc.), texts from FF8.exe file (cards, draw points, monster names, etc.) and dialog (MSD) files + *.map and some other files for all locations in the game.

I also want find in the PSX version:
- font file - in the PC version this is "sysfnt.tex" for low resolution and "sysfld00.tex" and "sysfld01.tex" for high resolution - I think in the PSX version this can be in the TIM format and LZSS compressed, and, of course, only low resolution version;
- MIM files - these files are not in the dialog archives;
- TIMs for card game
- TIMs for battlefields
- TIMs for magic (this is probably in the packed archives for magic, I didn't search that yet)

Does anyone know, where is stored some data from the list above?

And also, I have to change pointer to kernel.bin (Polish version is too long, a little ;) ). This file has start at offset 0x5000 in the FF8disc1.img. Anyone know, where is pointer to this?

Releases / [FF8] Battle Hardcore Patch - one problem
« on: 2009-03-06 13:57:56 »

I create Hardcore Patch for FF8 and I have one problem. Anybody knows, where is stored data about max possible level of monster (for Ifrit, Ultimecia, etc.)?

Hi! :)

I have two questions:

1. Where in battle files is stored information about max monster level? Ifrit has max level 6, Cerberus 30, Ultimecia 65, but I can't find it in files c0mxxx.dat :?

2. Somebody knows, where is stored information about locations, where the monster exists?

Please help :)


FF8 Tools / [PSX/PC] Dialog/Text Editor - Moomba (0.21)
« on: 2005-06-09 11:18:14 »

I just released first version of my editor for Final Fantasy VIII.
It can edit now all MSD files (dialogs), and wmsetus.obj (texts on World map). To work, program needs a folder [ff8] (you can decompile it by Qhimm's Garden), necessary files are all MSD and wmsetus.obj. This folder must be in the same folder, where you unpack Moomba.exe .

If you have another language version, in file arena.cpg you can edit file list :wink: .

Here it is:

Moomba Editor - ver. 0.21

EDIT: There is 1 warning - if you edit a wmsetus.obj file, you must be careful - program hasn't a secure for overwrite "things" after text section. I'll create it on next version.

Troubleshooting / Creating editor to FF8 - some problems
« on: 2005-04-14 13:51:15 »

I write a programme for edit text's in FF8. I want write editor to edit MSD files, texts on World Map, Battle, Area names and Menu (or maybe kernel.bin). MSD files and World Map is done, the rest is still at work. But I have a problem - I work on English version of FF8.

1. Kernel.bin has a very difficult structure, and I don't know whether structure is the same on other languages. I want check the 'breaks' on all pointers sections in kernel.bin from another language. The same problem I have with wmsetXX.obj (XX means lang. version) and mngrp.bin (in Menu).
Does anyone have it and can send me this?

2. I have incomplete Char Table for FF8. I mean that letters, which I don't have on my keyboard. Does anyone know fonts value of all fonts between 'z' and '[' ? (for example 'ó => char(243)' ) (or how fast can I get this)

Thanks for all posts! :)

Is there a way to get a 3D model of FF8 world map?
Anyone know on which file is this model? Any idea?

PS. My last topic is empty :-? . I hope this topic will get answer :)

Now I try translate texts in kernel.bin. Sometimes I must write a few bytes more than original english text, so I must know, where are the pointers to all text' section.

So I search... and I can't find base to all of this :( .

First: from 04h to E0h (end at E1h) - there is pointers. I divide this onto 2 groups:
A - from 04h to 7Ch - these pointers has an adress to another pointers' sections, which are have adresses to texts.
B - from 80h to E0h - these pointers show adresses to texts' sections, who is analogical to pointers' sections.

04h shows pointers' section to texts' section which adress is on 80h;
08h - 84h;
0Ch - 88h, etc.

First pointer on A group is E4 00. So there is starting first pointer section. And here problem begins...

At E4h I see FF FF FF ........ - It's not the pointers to texts.
So I must search. At 80h I have 08 4E. Following to this adress I see first text - Attack. I start calculate and I see - second pointer is 7 bytes after first (Attack with equipped weapon). First is always 00 00, so second will be 07 00. Next text is Magic - its 32 bytes after beginning so the pointer of this will be 20 00. Next pointer must be 26 00.
So I have first 4 pointers: 00 00, 07 00, 20 00, 26 00. I moved onto the E4h and I start search.
At ECh I have 00 00 and 07 00 - first two pointers. Next I see FF A0 54 00 - it's not the pointers. At F4h I have 20 00 26 00 - so it's the pointers.
So there is: 4 bytes of pointers, jump 4 bytes forward and next 4 bytes of pointers. And that's it to the end of this section.

Second section - I try similarly - but it's not the same :-?

Text is start on 5188h and the section of pointers is on 21Ch. Let's see on 5188h:
First four pointers are 00 00, 05 00, 1B 00 and 20 00.

At 21Ch - I must search 00 00 05 00...
Yes - I see it on 258h. 4 bytes and lot's non-interesting stuff :weep: . Next pointers on 294h so its 56 bytes full of something. I read 1B 00 20 00 and again jump 56 bytes... (to 36 00 3D 00) and this 'jumps' to the end of section.

At another section I have even 132 bytes between this pointers and at every section value of this jump has different. Why? When I can check how many bytes I must jump? There is some rule to check this?
Please help me (and sorry about my English) :roll:

Scripting and Reverse Engineering / FF8 - fonts' width
« on: 2004-09-12 12:21:38 »
Hi, I have a question:

When and how can I change fonts' width?
When I change in sysfld00.tex (or 01) ">" on something with smaller width (for example "s"), in game I have "s" with a some space after :( . How can I change this?

PS: Sorry, my english is bad :-?

Pages: [1]