Skip to content

wxarmstrong/PopLua-Disassembler

Repository files navigation

PopLua-Disassembler

C++ Disassembler for PopCap's custom Lua format

The purpose of this program is to help reverse-engineer the compiled LUC files that appear in the main.pak files of PopCap's games.

PopCap developed a custom form of Lua, and as such these files can't be run through a standard Lua disassembler/decompiler. Most significantly, the bytecode contains multiple opcodes specific to "PopLua", as it is referred to internally.

This was originally intended simply to display the disassembled operations, but I will now be working towards producing a decompiled .lua file which approximates the original source code.

The operand types for each opcode are not completely correct yet. For opcodes based on standard Lua, I set their operand types to their expected values. For opcodes unique to PopLua, I've tried to approximate what they are based on trial-and-error. At some point it will be possible to disassemble the .exe file to learn more about the game's Lua interpreter, at which point I will know with absolute certainty.

About

Disassembler for PopCap Games' custom Lua format

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages