From 734f66b2b6aa81a7575885755a574b316228e74f Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:34:19 +0530 Subject: [PATCH 1/9] Update index.md --- text/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/index.md b/text/index.md index fee197b..2ab0966 100644 --- a/text/index.md +++ b/text/index.md @@ -5,4 +5,4 @@ nav_order: 8 has_children: true --- -In the following sections will eventually be information on editing text I hope. \ No newline at end of file +The following sections cover editing text assets and other similar assets for Persona games: From ae3955b133297804162d88d9dff0f2ee9d92acec Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:37:59 +0530 Subject: [PATCH 2/9] Create index.md --- text/Persona-3-Reload-Text-Editing/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 text/Persona-3-Reload-Text-Editing/index.md diff --git a/text/Persona-3-Reload-Text-Editing/index.md b/text/Persona-3-Reload-Text-Editing/index.md new file mode 100644 index 0000000..646c3ae --- /dev/null +++ b/text/Persona-3-Reload-Text-Editing/index.md @@ -0,0 +1,10 @@ +--- +title: P3RE Text Editing +layout: page +parent: Text +nav_order: 1 +has_children: true +games: ['P3RE'] +--- + +In this section we'll cover various methods for editing different types of assets related to the text in Persona 3 Reload. From 0e4dec318ab92f0a5c3d90b9d1513917dfba8588 Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:38:47 +0530 Subject: [PATCH 3/9] Update _config.yml --- _config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 9a5a983..c4fc53c 100644 --- a/_config.yml +++ b/_config.yml @@ -36,6 +36,10 @@ games: full_name: Persona 3 Portable platform: PC + - short_name: P3RE + full_name: Persona 3 Reload + platform: PC + - short_name: P4G full_name: Persona 4 Golden platform: PC @@ -50,4 +54,4 @@ games: - short_name: P3F full_name: Persona 3 FES - platform: PS2 \ No newline at end of file + platform: PS2 From 1aa2cdd73535c7bb094a8d82cbf1d8de26e79a46 Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:58:34 +0530 Subject: [PATCH 4/9] Update index.md PSA: I18n will be dropping support for Ruby < 3.2 in the next major release (April 2025), due to Ruby's end of life for 3.1 and below (https://endoflife.date/ruby). --- contributing/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing/index.md b/contributing/index.md index d762b3e..f86f68c 100644 --- a/contributing/index.md +++ b/contributing/index.md @@ -55,7 +55,7 @@ bundle exec jekyll serve If all went well you can now go to [http://127.0.0.1:4000/persona-modding-docs/](http://127.0.0.1:4000/persona-modding-docs/) in your browser to see the site running locally. {: .info } -> If you get an error that the `ffi` gem could not be found locally, double check that you're using Ruby **3.1.x** by running `ruby -v`. If you're on a newer version please downgrade to 3.1. +> If you get an error that the `ffi` gem could not be found locally, double check that you're using Ruby **3.2.x** by running `ruby -v`. If you're on a newer version please downgrade to 3.1. Whenever you change a file from now on, the site will automatically update to reflect the changes although you will have to reload the page. @@ -297,4 +297,4 @@ After you do so you'll be taken to a page where you need to enter some details a The final thing to do is wait, the pr will be manually reviewed by someone (probably me, AnimatedSwine) and if everything's good it'll be merged into main for everyone to see. -If there are problems you may be asked to make changes, if this happens just do the same as before: make changes locally, commit, and push the changes and your pr will automatically update to include them. \ No newline at end of file +If there are problems you may be asked to make changes, if this happens just do the same as before: make changes locally, commit, and push the changes and your pr will automatically update to include them. From 6e985cbc50eaedcbdf0c4a37ae77136e0fff81bd Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 19:00:10 +0530 Subject: [PATCH 5/9] Update index.md --- contributing/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contributing/index.md b/contributing/index.md index f86f68c..689d646 100644 --- a/contributing/index.md +++ b/contributing/index.md @@ -29,12 +29,12 @@ Now you've cloned your fork to your computer! You can see the files by clicking ## Running Locally Before you start making changes it's a good idea to run the site locally, then you can see exactly how your changes will look as you make them. -This site is generated using [Jekyll](https://jekyllrb.com/) which uses [Ruby](https://www.ruby-lang.org/en/) so first you'll need to install Ruby **3.1.x**. For a comprehensive guide check out [Ruby's installation documentation](https://www.ruby-lang.org/en/documentation/installation/). +This site is generated using [Jekyll](https://jekyllrb.com/) which uses [Ruby](https://www.ruby-lang.org/en/) so first you'll need to install Ruby **3.2.x**. For a comprehensive guide check out [Ruby's installation documentation](https://www.ruby-lang.org/en/documentation/installation/). {: .info } > For Windows users the easiest way to do so is using [Ruby Installer](https://rubyinstaller.org/downloads/) > -> Download the latest **Ruby+Devkit 3.1** file and run it (as of writing **Ruby+Devkit 3.1.4-1**) +> Download the latest **Ruby+Devkit** file and run it (as of writing **Ruby+Devkit 3.3.6-2**) Once you've installed Ruby open up a terminal in the folder you cloned your fork to. Then to install Jekyll and this site's dependencies run the following two commands: @@ -55,7 +55,7 @@ bundle exec jekyll serve If all went well you can now go to [http://127.0.0.1:4000/persona-modding-docs/](http://127.0.0.1:4000/persona-modding-docs/) in your browser to see the site running locally. {: .info } -> If you get an error that the `ffi` gem could not be found locally, double check that you're using Ruby **3.2.x** by running `ruby -v`. If you're on a newer version please downgrade to 3.1. +> If you get an error that the `ffi` gem could not be found locally, double check that you're using Ruby **3.2.x** by running `ruby -v`. If you're on a newer version please downgrade to 3.2. Whenever you change a file from now on, the site will automatically update to reflect the changes although you will have to reload the page. From dace5055101a43926d44186ed22264bed2644f40 Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 19:34:36 +0530 Subject: [PATCH 6/9] Update index.md --- text/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/index.md b/text/index.md index 2ab0966..8dd11f1 100644 --- a/text/index.md +++ b/text/index.md @@ -5,4 +5,4 @@ nav_order: 8 has_children: true --- -The following sections cover editing text assets and other similar assets for Persona games: +The following sections cover editing text assets and other similar assets for Persona games. From a19bdc6be3085bb964af0f3420179d14d5dfcd3a Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Thu, 5 Dec 2024 19:35:15 +0530 Subject: [PATCH 7/9] Update index.md --- text/Persona-3-Reload-Text-Editing/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/Persona-3-Reload-Text-Editing/index.md b/text/Persona-3-Reload-Text-Editing/index.md index 646c3ae..bd2ceca 100644 --- a/text/Persona-3-Reload-Text-Editing/index.md +++ b/text/Persona-3-Reload-Text-Editing/index.md @@ -1,5 +1,5 @@ --- -title: P3RE Text Editing +title: Persona 3 Reload Text layout: page parent: Text nav_order: 1 From 01391ce9626dd61f3482affe7651440d730206dd Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT Date: Thu, 5 Dec 2024 19:35:36 +0530 Subject: [PATCH 8/9] Done --- Gemfile.lock | 53 ++++++++++++++++++++++++++++------------------------ _config.yml | 2 +- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d353491..cd866d3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,23 +1,28 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + bigdecimal (3.1.8) colorator (1.1.0) - concurrent-ruby (1.2.2) + concurrent-ruby (1.3.4) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.15.5) - ffi (1.15.5-x64-mingw-ucrt) + ffi (1.17.0-x64-mingw-ucrt) + ffi (1.17.0-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (3.23.4-x64-mingw-ucrt) - google-protobuf (3.23.4-x86_64-linux) + google-protobuf (4.29.1-x64-mingw-ucrt) + bigdecimal + rake (>= 13) + google-protobuf (4.29.1-x86_64-linux) + bigdecimal + rake (>= 13) http_parser.rb (0.8.0) - i18n (1.14.1) + i18n (1.14.6) concurrent-ruby (~> 1.0) - jekyll (4.3.2) + jekyll (4.3.4) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -37,7 +42,7 @@ GEM sass-embedded (~> 1.54) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) - jekyll-tabs (1.1.1) + jekyll-tabs (1.2.1) jekyll (>= 3.0, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) @@ -45,33 +50,33 @@ GEM jekyll (>= 3.8.5) jekyll-seo-tag (>= 2.0) rake (>= 12.3.1) - kramdown (2.4.0) - rexml + kramdown (2.5.1) + rexml (>= 3.3.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) - listen (3.8.0) + listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (5.0.3) - rake (13.0.6) + public_suffix (6.0.1) + rake (13.2.1) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.2.5) - rouge (4.1.2) + rexml (3.3.9) + rouge (4.5.1) safe_yaml (1.0.5) - sass-embedded (1.64.1-x64-mingw-ucrt) - google-protobuf (~> 3.23) - sass-embedded (1.64.1-x86_64-linux-gnu) - google-protobuf (~> 3.23) + sass-embedded (1.82.0-x64-mingw-ucrt) + google-protobuf (~> 4.28) + sass-embedded (1.82.0-x86_64-linux-gnu) + google-protobuf (~> 4.28) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - unicode-display_width (2.4.2) - webrick (1.8.1) + unicode-display_width (2.6.0) + webrick (1.9.1) PLATFORMS x64-mingw-ucrt diff --git a/_config.yml b/_config.yml index c4fc53c..fe9e605 100644 --- a/_config.yml +++ b/_config.yml @@ -36,7 +36,7 @@ games: full_name: Persona 3 Portable platform: PC - - short_name: P3RE +- short_name: P3RE full_name: Persona 3 Reload platform: PC From 1f4c372617616451d534263d819e72cb7884d288 Mon Sep 17 00:00:00 2001 From: TheBestAstroNOT <139786546+TheBestAstroNOT@users.noreply.github.com> Date: Sun, 15 Dec 2024 14:27:00 +0530 Subject: [PATCH 9/9] Added Decompilation of Flowscripts --- .../p3re-pc/AtlusScriptGuiGameSetting.png | Bin 0 -> 38283 bytes .../images/flowscript/p3re-pc/UASSetting.png | Bin 0 -> 15359 bytes flowscript/p3re-pc/decompilation.md | 70 ++++++++++++++++++ flowscript/p3re-pc/index.md | 10 +++ .../index.md | 2 +- 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 assets/images/flowscript/p3re-pc/AtlusScriptGuiGameSetting.png create mode 100644 assets/images/flowscript/p3re-pc/UASSetting.png create mode 100644 flowscript/p3re-pc/decompilation.md create mode 100644 flowscript/p3re-pc/index.md rename text/{Persona-3-Reload-Text-Editing => p3re-pc}/index.md (87%) diff --git a/assets/images/flowscript/p3re-pc/AtlusScriptGuiGameSetting.png b/assets/images/flowscript/p3re-pc/AtlusScriptGuiGameSetting.png new file mode 100644 index 0000000000000000000000000000000000000000..efdd107c9be010fd3d7ef09416419105b52ead5a GIT binary patch literal 38283 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±{vWlcEO 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 CbaX5L literal 0 HcmV?d00001 diff --git a/flowscript/p3re-pc/decompilation.md b/flowscript/p3re-pc/decompilation.md new file mode 100644 index 0000000..0f93c22 --- /dev/null +++ b/flowscript/p3re-pc/decompilation.md @@ -0,0 +1,70 @@ +--- +title: Decompiling Flowscripts +layout: page +parent: P3RE Flowscript Editing +grand_parent: Flowscript +nav_order: 1 +games: ['P3RE'] +--- + +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+ +## Introduction + +Flowscripts are responsible for handling logic during gameplay in almost all Persona games and several other Atlus entries. For example, enemy AI, setting and checking flags for displaying dialog, starting scripted battles etc. They are stored in BF_*.uasset files. + +## Pre-requisites + +There are a couple of options you can go with to decompile flowscripts but generally you should install FModel so you can find flowscripts in your game files if needed: +1. [**FModel**](https://github.com/4sval/FModel/releases/latest) is the go-to tool for viewing and extracting files from Persona 3 Reload. Select Unreal Engine 4.27 and make sure to enter the AES key / decryption key in Directory > AES: 0x92BADFE2921B376069D3DE8541696D230BA06B5E4320084DD34A26D117D2FFEE + +2. [**Unreal Atlus Script**](https://gamebanana.com/mods/501844) is a mod you can install for the game which can dump all BMDs and BFs which are currently loaded ingame. It's a great tool to use if you know how to trigger the flowscripts. It is also the best way to add modified flowscripts to the game but that will be covered in the Compilation section. + +3. [**Atlus Script GUI**](https://github.com/ShrineFox/AtlusScriptGUI) is an alternative to Atlus Script Tools. Although it uses atlus script tools to decompile the scripts it has a user friendly GUI which you can use to decompile the scripts you find via Fmodel. This is the easiest way to decompile flowscripts. + +4. [**Atlus Script Tools Cli**](https://github.com/tge-was-taken/Atlus-Script-Tools) is the tool you should use if you have experience working in command prompt/powershell and need to decompile BF files that you find via Fmodel. + +## Decompiling FlowScripts + +### Using the Unreal Atlus Script Mod + +1. After installing the mod, open Reloaded-II and navigate to your mods list for P3RE. + +2. Now select the Unreal Atlus Script mod and click on configure mod + +3. Then set Dump BFs to decompile, Decompile BF Endianess to Both and click on save. + +4. Close the configuration window and launch the game. The mod will now dump any loaded BFs to the dump folder inside the Unreal Atlus Script mod folder. To navigate to it's mod folder select the mod and click on Open Folder. + +![]({%link assets/images/flowscript/p3re-pc/UASSetting.png %}) + +### Using Atlus Script GUI + +1. After installing Atlus Script GUI (Must be a newer version than v3.5). Launch the app and on the top right corner click on game and then select Persona 3 Reload from the list. + +2. Now drag any BF_*.uasset file over the "Drag a .BF or .BMD to decompile" box. + +![]({%link assets/images/flowscript/p3re-pc/AtlusScriptGuiGameSetting.png %}) + +### Using Atlus Script Tools Cli +After installing Atlus Script Tools (It is recommended that you add the program to your systems PATH so it can be accessed from any folder but not required.) use the following command to decompile a BF_*.uasset file. + +{: .warning } +>Flowscripts can be decompiled using 2 different Outformats V4BE and V4. To figure out which one you need to try any one of them and if you get any errors during decompilation try the other outformat. + +V4 Outformat Command: +``` +AtlusScriptCompiler -Decompile -Library P3RE -Encoding UTF-8 -OutFormat V4 +``` + +V4BE Outformat Command: +``` +AtlusScriptCompiler -Decompile -Library P3RE -Encoding UTF-8 -OutFormat V4BE +``` \ No newline at end of file diff --git a/flowscript/p3re-pc/index.md b/flowscript/p3re-pc/index.md new file mode 100644 index 0000000..16c18f2 --- /dev/null +++ b/flowscript/p3re-pc/index.md @@ -0,0 +1,10 @@ +--- +title: P3RE Flowscript Editing +layout: page +parent: Flowscript +nav_order: 1 +has_children: true +games: ['P3RE'] +--- + +In this section we'll cover various methods for editing different types of assets related to the text in Persona 3 Reload. \ No newline at end of file diff --git a/text/Persona-3-Reload-Text-Editing/index.md b/text/p3re-pc/index.md similarity index 87% rename from text/Persona-3-Reload-Text-Editing/index.md rename to text/p3re-pc/index.md index bd2ceca..646c3ae 100644 --- a/text/Persona-3-Reload-Text-Editing/index.md +++ b/text/p3re-pc/index.md @@ -1,5 +1,5 @@ --- -title: Persona 3 Reload Text +title: P3RE Text Editing layout: page parent: Text nav_order: 1