Bokasm: Difference between revisions
Created page with "{{Project | Type=Tool | ShortDescription=Tools for extracting MFT files and (de)compiling bytecode of Boktai ROMs. | TargetROM=Boktai 1/2/3 (U and J) | Author=User:Raphi | License=[https://spdx.org/licenses/MIT.html MIT] | ReleasedAt=2024-01-02 | Dependencies=Python 3 | Homepage=https://git.sr.ht/~raphi/bokasm | Download=https://git.sr.ht/~raphi/bokasm/archive/master.tar.gz }} = Usage = Extract all MFT files from a ROM: # This will extract everything int..." |
Replace obsolete bokasm tool with BokMagic |
||
Line 10: | Line 10: | ||
| Download=https://git.sr.ht/~raphi/bokasm/archive/master.tar.gz | | Download=https://git.sr.ht/~raphi/bokasm/archive/master.tar.gz | ||
}} | }} | ||
= Note = | |||
Bokasm is obsolete and has been superseded by [[BokMagic]]. | |||
= Usage = | = Usage = |
Latest revision as of 07:11, 4 May 2025
Bokasm
Description | Tools for extracting MFT files and (de)compiling bytecode of Boktai ROMs. |
---|---|
Target ROM | Boktai 1/2/3 (U and J) |
Author | Raphi |
License | MIT |
Dependencies | Python 3 |
Released at | 2024-01-02 |
Homepage | https://git.sr.ht/~raphi/bokasm |
Download | https://git.sr.ht/~raphi/bokasm/archive/master.tar.gz |
Note
Bokasm is obsolete and has been superseded by BokMagic.
Usage
Extract all MFT files from a ROM:
# This will extract everything into a GAMEID_data/ (in this case U3IJ_data) directory: python3 -m bokasm.extract boktai_1_j.gba # Add extra information to the disassembly: python3 -m bokasm.extract boktai_1_j.gba --verbose --hexdump
Disassemble a single script:
python3 -m bokasm.disasm boktai_1_j.gba 0xe68e36
Assembling a single script:
# Create "script.bin" from "script.asm": python3 -m bokasm.asm script.asm # Assemble from stdin to stdout: printf "return\ni32 0x777\nend" | python3 -m bokasm.asm | xxd
Injecting a modified script into a ROM. If you know what's good for you, the modified script should be the same size or smaller as the original script when assembled. Otherwise you'll corrupt the following script(s).
$EDITOR U3IE_data/scripts/1234.asm # Create output.gba from original.gba python3 -m tools.splice \ --input path/to/original.gba \ path/to/output.gba \ U3IE_data \ # Script ID to inject. You can also specify multiple IDs. 1234