Project Tools

Last Updated 5/24/2015

Below is a list of helpful programs and scripts that have been developed for some of our projects. Many of these may be specific to certain formats or games, yet the processes involved could likely be modified and applied to other projects.

.MASTER data.lst updater (v2.0)
What is used for: Checks the file-size of new edited files against the file-size data that exists within the data.lst file and updates it.
Notes:
Comments on how to use are on pastebin. Works for every Falcom PSP game! Hooray!

With this, there will be no need to worry about keeping data.lst updated with file sizes... because this will update all data.lst file sizes for you in one shot! And what's more, it will work with most Falcom PSP games- Nayuta, Zero, Ao, and Ys vs Sora. I don't think it will work with Zwei!! PSP.

The major update is to add a feature that updates the file list with new LBAs.
There's a minor bugfix too: data.lst is located in USRDIR and the program was falsely reporting it as missing.
Developed by Flame.



Zero no Kiseki

Fill in Later


 




Nayuta no Kiseki

1) Dumps

Nayuta Dumps

This contains most of the stuff. This is a short guide for how to edit the dumps:


item.tbl

Items (of all types), arts and achievement (trophy?) descriptions

eboot: Random stuff in the eboot

Summary: Tells you what script file goes with what area

Script info:
1) Tells you about the effect of opcodes in the script dump
2) Translations of character and place names

Index:
Scene index. Scenes are listed in chronological "game" order.
Script: What script file is this scene
Start: What address in the .bin file does the script start
End: What address does the last opcode in this scene start
How to use:
1) Find the scene you want
2) Copy the start address
3) Go to the tab with the script file
4) CTRL+F, CTRL+V
5) Bam, there you are at the start of the scene
-----------------------

So let's say for example you had that problem with Nayuta's line in Meteor Workshop (Ada's weapon shop).
1) Go to "Summary" tab.
2) Find that mp_0111 is the file corresponding to Ada's shop.
3) Go to "0111" tab.
4) Search for that line
5) Modify line


Notes: Flame wrote some Google Apps Script code. To run this code, load up the Nayuta Dumps sheet and then access the .tsv menu (which is a custom menu created by the script). These functions copy files to your Google Drive. You can always delete them later if you decide you no longer want them. If you want the code, you can get it using the appropriate Google tools. Just Google Google Apps Script to find out more, if you're interested.

Nayuta .arb data
Notes: .arb file data (in \USRDIR\map) This is a short guide for how to edit the .arb data:


A) Open \map\mp_0000\mp_0000.arb in your hex editor
Aa)Switch to "SHIFT-JIS" view
Ab)See that location name (Remnant Island)
Ac)See that character names are there too

1) Falcom trick out \pack\map\mp_0000.mpp
1a)The two lines that apply to mp_0000.arb
2) Edit mp_0000.arb as you'd like (location and character names)
3) Edit data.lst with the new size of your mp_0000.arb
4) Insert everything and test


.arb copier

What is used for:
(copies all of the *.arb into *.orig in the root of \map)
Notes:
Python 2 - With IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script. Drop into \USRDIR\map and run. Copies all .arb in the sub-folders to .orig in the \USRDIR\map folder. I'm not aware you can do this from the command line.
Developed by Flame.



2) Insertion Tools

.arb inserter
What is used for: (replaces strings in .arb)
Notes:
Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Item insert
What is used for: Inserting Items into Nayuta no Kiseki
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Eboot insert
What is used for: Inserting edits made to the Eboot
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Eboot sourcefile
What is used for: Inserting Items into Nayuta no Kiseki
Notes: (example- based on Nayuta Dumps)
Developed by Flame.

Script insert (v1.3)
What is used for: Inserting the Script into Nayuta no Kiseki
Notes: Python 2 - Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

.tbb inserter
What is used for: Inserting the .tbb files into Nayuta no Kiseki
Notes: Python 2 - Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script. (works on decompressed files)
Developed by Flame.

.tbb fake compressor
What is used for: Compressing .tbb files
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script. (works on decompressed files)
These tools "may" update data.lst for you.
Developed by Flame.



3) Graphic Editing Tools


ITP

ITPCNV
What is used for: A decompressor/compressor for ITP image files.
Notes: Developed by Japanese developer named pokanchan. A very useful tool for editing ITP files which are a popular format that Nihon Falcom uses in many of their newer games for PSP and PC. It takes some practice and guidance using it however, especially if the graphic you are working with has multiple transparency colors. It is advised that you familiarize yourself with this discussion thread below if you plan to use it.
Discussion Thread: Working with ITP Files and BMP Files with Transparency

ITP .bat Scripts
What is used for: Helpful Batch script for unpacking many ITP files at once and a .bat with common command used to recompress a new ITP file.
Developed by Xalphenos.

Nayuta data.lst Updater
What is used for: Checks the file-size of new edited ITP files against the file-size data that exists within the data.lst file and updates it.
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

BMP color analyzer
What is used for: Detects a range of White and Black / Dark to Light colors inside a .bmp file and determines how the Alpha transparency values are assigned to each and displays an output of this information. 000 being completely transparent, and 255 being completely opaque.
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
This may work for any 256-color BMP file at all.
Developed by Flame.

Transparency fixer v2 (Also known as znk_bmp_pre-conversion_tool)
What is used for: IDs the transparent color(s) and fixes any discrepancies that may have occured with that transparency color from exporting via a separate graphics program.
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script. Place an original copy of the .bmp file that was created from the original ITP file after running the conversion tool ITPCNV. Rename the extension of this file to ".orig". Example: title01.bmp to title01.orig. Then place the edited .bmp file in the same directory. The script will reference the transparency color from the .orig file.
Developed by Flame.

Transparency fixer v3
What is used for: IDs the transparent color. Then, changes transparency to FF (Opaque) for all colors except that one.
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script. Place an original copy of the .bmp file that was created from the original ITP file after running the conversion tool ITPCNV. Rename the extension of this file to ".orig". Example: title01.bmp to title01.orig. Then place the edited .bmp file in the same directory. The script will reference the transparency color from the .orig file.
Developed by Flame.

CompileTools v.6

What is used for: A unpacker/packer, decompressor/compressor command line program for many file formats. As of current version listed above, this will work with the following file extensions: .cnx, .gmp, .bmp, .mlk, .fld, and it3.
Notes: Based on PuyoTools this program started off as a CNX decompressor/compressor for Wander Wonder, a Compile game. The CNX file format was planned for PuyoTools but at the time of writing is not included in the original program. This project evolved from that and has become a planned Swiss Army Knife Tool for many formats that we plan to work with.
Developed by M_bot.

How to use it:
Double-click CompileTools.CLI.exe (not the other one) and type a command.


IT3

Example:
1. run command: unpack title0.it3 to access ITP files needed for editing
2. use itpcnv on title00.itp to get a editable bmp called title00.bmp
3. edit the title00.bmp using your preferred process
4. use itpcnv on title00.bmp
5. place new edited itp file, title00.itp inside the unpacked directory, replacing the existing file.
5. run command: pack it3 unpacked/title0.it3.index
6. new title0.it3 will be in packed/



4. Dumping Tools:
(Dumping tools probably aren't needed anymore. Just use the "Nayuta Dumps" dump.)

.arb dumper
What is used for: (makes up a string list)
Notes:
Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Item dump
What is used for: Dumping the Items List/Script
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Eboot dump
What is used for: Dumping the Eboot
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Script dump v1,5
What is used for: Dumping the Script
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

.tbb decompressor
What is used for: Decompressing the .tbb files
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

tbb extractor
What is used for: Extracting the tbb files
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.


 



Wander Wonder

Wander Wonder .FLD Unpack v1
What is used for:
Unpacking files inside a .FLD archive.
Notes: There is no user input. Drop it in the folder with wander.fld, and it will try to perform its function (either pack or unpack). There's no error handling either. Any error will be unhandled. The most likely error is file not found, I think. You must run the unpacker before the packer. The reason is that the unpacker creates two meta data files that are needed by the packer.
Developed by Xalphenos/Flame.

Wander Wonder .FLD Pack v1
What is used for: Packing files into a .FLD archive.
Notes: There is no user input. Drop it in the folder with wander.fld, and it will try to perform its function (either pack or unpack). There's no error handling either. Any error will be unhandled. The most likely error is file not found, I think. You must run the unpacker before the packer. The reason is that the unpacker creates two meta data files that are needed by the packer.
Developed by Xalphenos/Flame.

Wander Wonder Item Dump v1
What is used for: Dumping the Items List/Script
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Wander Wonder .SQ Dump v1.1
What is used for: Dumping .SQ Files
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.

How to use it:
FILENAME should be the .sq file without an extension.
python script.py FILENAME

The first script is OPDEMO00. It kinda sorta works at least with this file.
I need to figure out "box terminator codes" for the various script files. For OPDEMO00, the terminator is 401458 (appears right after text blocks). If you switch to a different script file, you will find it has changed. It always starts with 4014, the last # is different. The various nulls in the script I think are being used to four-byte align certain opcodes. The 40145800 is not one of those that's aligned- it always appears right after the text.
Developed by Flame.

Wander Wonder .SQ Inserter v1.1
What is used for: Inserting .SQ Files
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.

It is looking for SCRIPTNAME.orig which is the original script file, bit flipped, and renamed to .orig
It's also looking for SCRIPTNAME.csv which is the exported .TSV from Google Sheets, but converted back to S-JIS format.
If it finds both of those things, it will give you SCRIPTNAME.sq in the same folder, which is the bit-flipped version, and SCRIPTNAME.sq in a sub-folder, which is the unflipped version, ready for inserting.
Developed by Flame.

Wander Wonder S-JIS encoder
What is used for: Convert from UTF-8 TSV to S-JIS TSV. (Results are saved in *.CSV.)
Notes: Python 2 - Run with Command Line (python script.py filename) or IDLE using by adding the "sys.argv.append('filename')" as the second last line of the script.
Developed by Flame.

Wander Wonder .SQ NOT Tool
What is used for: Dumping .SQ Files
Notes: The program will run every *.sq file in it's root directory through a bitwise NOT. Written poorly in VB.net *It does not preserve the original file.*
Developed by Xalphenos.

CompileTools v.6
What is used for: A unpacker/packer, decompressor/compressor command line program for many file formats. As of current version listed above, this will work with the following file extensions: .cnx, .gmp, .bmp, .mlk, .fld, and it3.
Notes: Based on PuyoTools this program started off as a CNX decompressor/compressor for Wander Wonder, a Compile game. The CNX file format was planned for PuyoTools but at the time of writing is not included in the original program. This project evolved from that and has become a planned Swiss Army Knife Tool for many formats that we plan to work with.
Developed by M_bot.

How to use it:
Double-click CompileTools.CLI.exe (not the other one) and type a command.


CNX

compress [filename.gmp]
decompress [filename.cnx]
pack - I have one but its disabled right now. Its easier to use Flame's
unpack [-r] [filename.fld] The -r is for recursive
convert gmp bmp [filename.gmp]
convert bmp gmp [filename.bmp]

MLK

unpack -d wander.mlk
The -d option is to unpack so you can decompress while unpacking

 


OTHER USEFUL TOOLS (Not developed here)

FALCNVRT
What is used for: A "Massive Swiss Army Knife Tool" for working with many Falcom PC game formats.
Developed by Pokanchan.

ITxCNV
What is used for: A series of tools designed to work with the following extensions ITP, ITI, ITM, and IT3(decompression only).
Developed by Pokanchan.

.dds graphic files Tutorial and Tools at YsUtopia.net
What is used for: .DDS files are fairly common graphic formats used in early Falcom PC games.
Developed by NightWolve.