Using AtlusScriptCompiler, you can turn .flow files into .bf files, or .msg files into .bmd files. Anything else referenced in a .flow (bf/bmd/flow/msg) also becomes part of a resulting .bf file.
You can download the latest AtlusScriptCompiler here.
Using Commandline ArgumentsOnce you have extracted the program to a folder, simply clicking on the exe causes a console window to quickly open and close. That's normal.
Normally, to use AtlusScriptCompiler you have to use commandline arguments. If you have never used the Windows command prompt before, don't worry. It's quite simple:
You can open the command prompt one of several ways:
Note that you can also drag the EXE onto the command prompt window to automatically fill in the path.
If you used one of the latter two methods of opening the command prompt, if the folder contains AtlusScriptCompiler.exe, all you have to type is "AtlusScriptCompiler.exe".
Press enter, and the program will print information to the console without immediately closing.
You can press up on the keyboard to copy what you previously typed in order to make changes.
Supplying the Input FileWhether the file you want to compile is a .msg or .flow, if you supply the path immediately after "AtlusScriptCompiler.exe" (followed by a space) it will be used as the input file.
If your input is a .bf or .bmd, you may be looking for instructions on decompiling instead.
Supplying the Compile CommandFollow up the command so far with another space and then "-Compile" in order to tell the program what to do with the input file.
Supplying the Output FormatOnce again, separate this next part from the previous with a space and type one of the following:
For example so far, your command should look something like this:
Supplying the LibraryFor AtlusScriptCompiler to successfully resolve .flow to .bf, a library must exist that defines the game's functions and their parameters. In order to create a library, function signatures must be dumped from the game using a script like this one.
The script will fail to compile if the appropriate library isn't present.
At the time of writing, there is no library for Persona 3 Portable.
Supplying the EncodingFor AtlusScriptCompiler to successfully compile to either .bf or .bmd, encoding must be specified.
Specifying the Output FileWhile the command so far is enough to output a file, it would be automatically named after the input. For instance, field.bf.flow would generate field.bf.flow.bf.
If you would rather name it something else like field2.bf, or replace field.bf, try something like the following:
Once again, remember to wrap paths to files in quotation marks in case they contain spaces.
Other CommandsWhen you run the program without specifying any commandline arguments, you will be shown a list of additional commands to use.
For information on how to use the "-Hook" command, see this page.
Using the GUI FrontendThere is an unofficial GUI for AtlusScriptCompiler that allows you to simply drag and drop files to compile or decompile them.
You can get it from here. Just extract the contents of the .zip to the folder containing AtlusScriptCompiler.exe on your computer and run it.
Be sure to set the proper game in the dropdown first. If no output file is produced, check the "AtlusScriptCompiler.log" file in the same directory.
Resolving ErrorsIf a script has failed to compile, an error message should be shown. It will usually try to show the exact line number where the error occured so you can fix it, along with a description of what's wrong.
For a more visual guide on using AtlusScriptCompiler, see the video: