Skip to content

mblsha/binja-scumm6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCUMM6 Architecture for Binary Ninja

This plugin aims to provide a comprehensive view to how SCUMM6-based games work internally.

descumm-tool can already decompile single SCUMM6 scripts, but it doesn't show related scripts, nor the shared memory access.

Before opening the files, the .000 + .001 files from the game need to be converted to the .bsc6 format that de-xors them, squashes them together and extracts all the strings to a separate section.

$ python converter/cli.py DOTTDEMO.000 DOTTDEMO.001 -o dottdemo.bsc6

Running tests

$ ptw --afterrun ./run_mypy.sh --beforerun reset

Limitations

  • Array reads/writes aren't properly (need to create a separate segment for them, and do lifting)
  • Message Parts (newlines, waits, etc) aren't currently shown in talk_actor() calls.

Peculiarities

Binary Ninja doesn't normally support state in Architectures, but we need it in order to properly mark function calls and some other stuff.

In order to decoded text strings outside of Disassembler view we need to extract them to a separate segment, otherwise they'd be considered part of the decoded instructions, and the text won't be visible.

About

SCUMM6 Architecture for Binary Ninja

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published