Compile
Convert BF and BMD into flowscripts and messagescripts
As previously mentioned, AtlusScriptCompiler can compile .FLOW and .MSG into .BF and .BMD respectively. Read the previous sections for more information.
1. Specifying the Input File
First, you must tell the program what file we're working with.
For compiling, this must be a .FLOW or .MSG file.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow"2. Specify that you are Compiling
Now, let's tell the program what to do with that file.
Add -Compile, separated by a space.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile2. Specifying the Library
A Flowscript Library instructs the compiler on function names and parameters.
In order to work with the input file, you have to tell the compiler which Library to use with -Library.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile -Library P5Included Libraries
Library Name
Usage
DigitalDevilSaga
-LibraryDDS
Nocturne
-LibrarySMT3
Persona3
-LibraryP3
Persona3FES
-LibraryP3FES
Persona3Portable
-LibraryP3P
Persona4
-LibraryP4
Persona4Golden
-LibraryP4G
Persona5
-LibraryP5
Persona5Royal
-LibraryP5R
PersonaQ2
-LibraryPQ2
Not all games have libraries available. Knowledge of reverse engineering game executables is required to generate a library, as you'll have to find the offsets of function signatures yourself. A sample script for P3/P4 (PS2) can be seen here.
3. Specifying Output Format
You should also choose an Output Type with -OutFormat.
This determine the version and endianness of the generated BF or BMD.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile -Library P5 -OutFormat V3BEOutput Types
Output Type
Usage
Persona 5 BF
-OutFormatV3BE
Persona 5 (PS3) BMD
-OutFormatV1BE
Persona 5 (PS4) & Persona 3/4 (PS2) BF/BMD
-OutFormatV1
4. Specifying Encoding
An Encoding can be specified using -Encoding.
It lets the compiler know what set of characters to use.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile -Library P5 -OutFormat V3BE -Encoding P5Encodings
Game Name
Usage
Persona 5
-EncodingP5
Persona 4
-EncodingP4
Persona 3 (FES)
-EncodingP3
PersonaQ(2) or any game using Shift-JIS/CP932
-EncodingSJ
5. Specifying the Output File
Finally, you can name the Output File using -Out.
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile -Library P5 -OutFormat V3BE -Encoding P5 -Out "C:\Path\To\field.bf"At this point, you can press Enterto begin compiling.
But, there are a few optional commands which might be useful to you.
6. Hooking
Hooking can be handy when you're compiling a .FLOW and only want to replace specific procedures in an imported .BF.
Enable Hooking by adding the-Hook argument.
When compiling your .FLOW into .BF, this redirects existing procedures in an imported .BF file to replacement procedures with a matching names that end in _hook_().
C:\Users\Username>"C:\Path\To\AtlusScriptCompiler.exe" "C:\Path\To\field.bf.flow" -Compile -Library P5 -OutFormat V3BE -Encoding P5 -Out "C:\Path\To\field.bf" -HookSetup
Decompile the
.BFthat you're referencing in the.FLOWyou're compiling.Open the
.FLOWand copy the procedure you want to edit.Paste it into your
.FLOWthat references the.BF, and add_hookto the procedure name.Edit the procedure however you'd like.
Import the original
.BFfile.Compile your new
.FLOWwith the-Hookargument.
Conclusion
Now that you know how to (de)compile with AtlusScriptCompiler, you're ready to read, edit, and create scripts. If you haven't already, read on to see how to use the GUI to make (de)compiling even easier:
Run via GUILast updated
Was this helpful?