1
The Games and other Sierra Adventure stuff / Lucasartsifier - automatically detect and patch soft locks in Sierra games
« on: Yesterday at 08:59:03 PM »
Hi everyone,
I wanted to tell you about my ongoing project, the Lucasartsifier: https://github.com/katiahayati/lucasartsifier/ . It's a tool to statically analyze decompiled SCI code, detect walking-dead states, and emit game patches to prevent those states being reached. For example, it won't let you board the cruise ship at the beginning of Leisure Suit Larry 2 until you have the sunscreen and the Grotesque Gulp. The tool uses abstract interpretation and game-state reachability analysis to do this automatically, with no game-specific code in the analyzer. Patches are ordinary loose patch files that sit alongside the original game data. Deleting them reverts the changes.
Currently it works on Leisure Suit Larry 2, King's Quest 4, King's Quest 6, and Laura Bow 2, with King's Quest 5 currently in flight. You can see a short demo on KQ4 here:
The tool uses sci-tools (augmented with a JSON AST emitter) for the decompilation; and a headless Linux port of SCI Companion for the patch compilation.
I'd love any and all feedback! I'd also particularly love any end-to-end playthroughs of the working titles. I've extensively tested the patches themselves, but haven't played any of the patched games end to end yet.
Full disclosure: I (human) do the design and testing; the code is all Claude (Fable and Opus).
I wanted to tell you about my ongoing project, the Lucasartsifier: https://github.com/katiahayati/lucasartsifier/ . It's a tool to statically analyze decompiled SCI code, detect walking-dead states, and emit game patches to prevent those states being reached. For example, it won't let you board the cruise ship at the beginning of Leisure Suit Larry 2 until you have the sunscreen and the Grotesque Gulp. The tool uses abstract interpretation and game-state reachability analysis to do this automatically, with no game-specific code in the analyzer. Patches are ordinary loose patch files that sit alongside the original game data. Deleting them reverts the changes.
Currently it works on Leisure Suit Larry 2, King's Quest 4, King's Quest 6, and Laura Bow 2, with King's Quest 5 currently in flight. You can see a short demo on KQ4 here:
The tool uses sci-tools (augmented with a JSON AST emitter) for the decompilation; and a headless Linux port of SCI Companion for the patch compilation.
I'd love any and all feedback! I'd also particularly love any end-to-end playthroughs of the working titles. I've extensively tested the patches themselves, but haven't played any of the patched games end to end yet.
Full disclosure: I (human) do the design and testing; the code is all Claude (Fable and Opus).