Skip to content
A heavily WIP toolchain for working with scripts used in various game developed by Atlus.
C# C++ SWIG Python ANTLR C Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documents Random cleanup Oct 18, 2017
Mods/Persona 5/Fix Scripting Printing Functions Add files for the PUT/PUTF/PUTS fix Feb 7, 2018
Scripts
Source Add P3P library Feb 11, 2020
.gitattributes Add .gitignore and .gitattributes. Apr 27, 2017
.gitignore Add .gitignore and .gitattributes. Apr 27, 2017
LICENSE.txt Add GNU GPL v3 license May 23, 2017
README.md Update README.md Nov 22, 2018

README.md

AtlusScriptToolchain

WIP set of tools developed for handling Atlus' script formats including

  • flow script files (.bf)
  • message script files (.bmd)

All of the code is written in C# and licensed under the GNU GPL.

Latest build:

Overview of repository structure

Source

  • This is the source code directory of the project. This is where the main solution and its projects are.

AtlusScriptLibrary

  • This is the main class library of the project. All of the core functionality will be implemented here, with the other programs serving as a front-end.

AtlusScriptCompiler

  • The commandline frontend for the script compiler. This application is used for
    • Compiling & decompiling flow scripts from/to the uncompiled format (.flow) or from/to compiled format (.bf)
    • Compiling & decompiling flow bytecode code from/to the uncompiled format (.asm) or from/to the compiled format (.bf)
    • Compiling & decompiling message scripts from/to the uncompiled format (.msg) or from/to the compiled format (.bmd)
    • Compiling & decompiling message bytecode from/to the uncompiled format (.asm) or from/to the compiled format (.bmd)

AtlusScriptEvaluator

  • This application is used for
    • Evaluating compiled or uncompiled flow scripts (.bf & .flow) and providing statistics
    • Evaluating compiled or uncompiled message scripts (.bf & .flow) and providing statistics

Utilities

  • This is where misc utility programs using the library will be stored. Also serves as a reference for anyone wanting to use the library.

AtlusMessageScriptExtractor

  • This application is can batch extract the text from message scripts from within various binary files. Use this is if you want a quick dump of the text from a game.

AtlusFlowScriptExtractor

  • Similar to the previous program, it can batch extract scripts from within various binary files. Use this is if you want a quick reference of all the scripts used in a game.

AtlusFlowScriptInterpreter

  • WIP interpreter for flow scripts. Not suitable for use yet.

packages

  • Nuget packages.

Documents

  • This directory contains all kinds of documents to serve as documentation for the file formats, and other things such as reversed engineered game code.

Scripts

  • This is where any misc. scripts will be stored, for the sake of keeping everything safe from being lost. ¯_(ツ)_/¯

Build

  • Not visible on the repo but this is where all of the binaries will compile to.

What's finished?

Finished

  • Reading and writing of flow & message script files.
  • Simplified representation of both flow & message script files.

Somewhere inbetween

  • Decompilation and compilation of message scripts. They're both missing an implementation of function aliases, but besides that they work.
  • Compilation of flow scripts. The compiler is currently able to compile some decently complex scripts, but some things still need to be worked on.

Unfinished

  • AtlusScriptEvaluator
    • Evaluating compiled or uncompiled flow scripts (.bf & .flow) and providing statistics such as syntax errors or stack over or underflows.
    • Evaluating compiled or uncompiled message scripts (.bmd & .msg) and providing statistics. Not sure what kind of statistics would really work here though.
You can’t perform that action at this time.