Special Process Effect: Difference between revisions
mNo edit summary |
Refactored page; described all buttons |
||
| Line 1: | Line 1: | ||
Special Process Effects | The Special Process Effects page allows for the import, export, and addition of special processes. While this page cannot edit special processes written in C using [https://github.com/SkyTemple/c-of-time c-of-time], it does not have any conflicts with the environment. Requires the [[ExtractSPCode]] patch to view, under ''Patches -> ASM -> Special Process Effects''. | ||
A special process effect is arbitrary assembly code callable via the script opcode [[List of Opcodes#0xcc - ProcessSpecial|ProcessSpecial]]. The [[ExtractSPCode]] patch extracts all special processes of the game into a new file, <code>BALANCE/process.bin</code>, and thus allows for simple importing and exporting. | |||
=== Special Process Effects Tab === | |||
A table listing out all special process IDs and their corresponding effects. | |||
* '''ID''': A number indicating special process, i.e., the first parameter of the script opcode [[List of Opcodes#0xcc - ProcessSpecial|ProcessSpecial]]. | |||
* '''Effect''': A number indicating effect, i.e., the value used to obtain arbitrary assembly code stored in the file <code>BALANCE/process.bin</code>. | |||
** Double-clicking this value allows it to be changed. Attempting to input an invalid value will revert the change. | |||
** Each value in this column corresponds directly with Effect IDs in the Effects Code Tab. | |||
Clicking the '''Go To''' button will switch the view to the Effects Code Tab, focusing on the effect on the highlighted row. | |||
Clicking the '''Add Special Process''' button will add a new valid ID for a special process, but ''not'' add an additional effect. Adding and importing a new special process effect must be added in the Effects Code Tab. | |||
=== Effects Code Tab === | |||
A section allowing for the import, export, addition, and deletion of special process effects. The ''Used By'' section only displays the special process ID mapped to the highlighted effect and cannot be edited in this view. Changing which special process maps to which effect must be done in the Special Process Effects Tab. | |||
* '''Add (+)''': Adds a new special process effect. | |||
* '''Delete (-)''': Deletes a special process effect; you may only delete an effect that is not mapped to any special process ID. | |||
* '''Effect ID''': A drop-down menu listing all special process effects. Clicking one will update the view accordingly. | |||
* '''Import Code''': Modifies the current effect from a file. The file used can be one of the following: | |||
** Assembly code written in plaintext (typically with the <code>.asm</code> extension); this will be fed into ARMIPS for compilation, and if successful, will modify the effect. | |||
** A raw binary. | |||
* '''Export Code''': Exports the current effect to a new file. ''The resulting file is a raw binary, NOT a disassembled text representation of assembly!'' Viewing a disassembly requires the use of an external tool, such as [https://github.com/NationalSecurityAgency/ghidra Ghidra], [https://github.com/capstone-engine/capstone Capstone Engine], or a simple [https://armconverter.com/?disasm "Hex to ASM" website]. | |||
* '''Clipboard Import''': A textbox field only meant for clipboard content pasting. Clipboard content pasted here will be fed into ARMIPS for compilation, and if successful, will modify the current effect in the same way the Import Code button does. | |||
* '''Effects Library''': Redirects to a [https://github.com/theCapypara/eos_move_effects GitHub repository] meant to act as a library for writing custom special process effects. Mostly deprecated, as far more information on the game's functions can be found on [https://github.com/UsernameFodder/pmdsky-debug pmdsky-debug]. | |||
* '''ASM Editor''': Redirects to a deprecated [https://asmeditor.skytemple.org/ code editor GUI] for writing custom special process effects. | |||
{{NavSkyTemple}} | {{NavSkyTemple}} | ||
Revision as of 20:46, 17 January 2026
The Special Process Effects page allows for the import, export, and addition of special processes. While this page cannot edit special processes written in C using c-of-time, it does not have any conflicts with the environment. Requires the ExtractSPCode patch to view, under Patches -> ASM -> Special Process Effects.
A special process effect is arbitrary assembly code callable via the script opcode ProcessSpecial. The ExtractSPCode patch extracts all special processes of the game into a new file, BALANCE/process.bin, and thus allows for simple importing and exporting.
Special Process Effects Tab
A table listing out all special process IDs and their corresponding effects.
- ID: A number indicating special process, i.e., the first parameter of the script opcode ProcessSpecial.
- Effect: A number indicating effect, i.e., the value used to obtain arbitrary assembly code stored in the file
BALANCE/process.bin.- Double-clicking this value allows it to be changed. Attempting to input an invalid value will revert the change.
- Each value in this column corresponds directly with Effect IDs in the Effects Code Tab.
Clicking the Go To button will switch the view to the Effects Code Tab, focusing on the effect on the highlighted row.
Clicking the Add Special Process button will add a new valid ID for a special process, but not add an additional effect. Adding and importing a new special process effect must be added in the Effects Code Tab.
Effects Code Tab
A section allowing for the import, export, addition, and deletion of special process effects. The Used By section only displays the special process ID mapped to the highlighted effect and cannot be edited in this view. Changing which special process maps to which effect must be done in the Special Process Effects Tab.
- Add (+): Adds a new special process effect.
- Delete (-): Deletes a special process effect; you may only delete an effect that is not mapped to any special process ID.
- Effect ID: A drop-down menu listing all special process effects. Clicking one will update the view accordingly.
- Import Code: Modifies the current effect from a file. The file used can be one of the following:
- Assembly code written in plaintext (typically with the
.asmextension); this will be fed into ARMIPS for compilation, and if successful, will modify the effect. - A raw binary.
- Assembly code written in plaintext (typically with the
- Export Code: Exports the current effect to a new file. The resulting file is a raw binary, NOT a disassembled text representation of assembly! Viewing a disassembly requires the use of an external tool, such as Ghidra, Capstone Engine, or a simple "Hex to ASM" website.
- Clipboard Import: A textbox field only meant for clipboard content pasting. Clipboard content pasted here will be fed into ARMIPS for compilation, and if successful, will modify the current effect in the same way the Import Code button does.
- Effects Library: Redirects to a GitHub repository meant to act as a library for writing custom special process effects. Mostly deprecated, as far more information on the game's functions can be found on pmdsky-debug.
- ASM Editor: Redirects to a deprecated code editor GUI for writing custom special process effects.