Comment on page
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.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"
You can simply drag
AtlusScriptCompiler.exe
and then field.bf.flow
onto the command prompt window.
This will automatically wrap each paths in quotes, which keeps arguments separate in case your paths contain spaces.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" -Compile
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 P5
Library Name | Usage |
DigitalDevilSaga | -Library DDS |
Nocturne | -Library SMT3 |
Persona3 | -Library P3 |
Persona3FES | -Library P3FES |
Persona3Portable | -Library P3P |
Persona4 | -Library P4 |
Persona4Golden | -Library P4G |
Persona5 | -Library P5 |
Persona5Royal | -Library P5R |
PersonaQ2 | -Library PQ2 |
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.
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 V3BE
Output Type | Usage |
Persona 5
BF | -OutFormat V3BE |
Persona 5 (PS3)
BMD | -OutFormat V1BE |
Persona 5 (PS4) &
Persona 3/4 (PS2)
BF/BMD | -OutFormat V1 |
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 P5
Game Name | Usage |
Persona 5 | -Encoding P5 |
Persona 4 | -Encoding P4 |
Persona 3 (FES) | -Encoding P3 |
PersonaQ(2)
or any game using
Shift-JIS/CP932 | -Encoding SJ |
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"
If
-Out
is not specified, it will default to the input filename and folder, but with the output filetype appended. In this case, that would be C:\Path\To\field.bf.flow.bf
.At this point, you can press
Enter
to begin compiling.
But, there are a few optional commands which might be useful to you.Hooking can be handy when you're compiling a
.FLOW
and only want to replace specific procedures in an imported .BF
.AtlusScriptCompiler is not perfect, so it doesn't hurt to be proactive.
With hooks, we can avoid potential compiler issues when recompiling an entire
.BF
script.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" -Hook
- 1.
- 2.Open the
.FLOW
and copy the procedure you want to edit. - 3.Paste it into your
.FLOW
that references the.BF
, and add_hook
to the procedure name. - 4.Edit the procedure however you'd like.
- 5.
- 6.Compile your new
.FLOW
with the-Hook
argument.
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:
Last modified 2yr ago