Giter Club home page Giter Club logo

gamemaker-studio-decompiler's Introduction

原项目来源于GitLab : https://gitlab.com/PoroCYon/Altar.NET

Altar.NET

GameMaker: Studio data.win unpacker and decompiler (non-YYC, specifically made for Undertale), based on libaltar and Mirrawrs' data site (followed by my corrections/completions here and here).

Contains a lot of pointer-littered spaghetti code, because it's basically a continuation of libaltar, but in C#.

I'm not sure if this counts as 'redistribution of modified [libaltar] source', but including their notice just in case.

Building

You can build it from within Visual Studio (or MonoDevelop, or SharpDevelop, ...), or from the command-line:

[ms|x]build /m Altar.NET.sln /p:Configuration=[Debug|Release]

(NOTE: use msbuild on Windows, xbuild otherwise)
(NOTE: using the Debug configuration emits debug code, use Release for an optimized binary.)
(NOTE: the binary can be found at <repo-dir>/bin/<config>/altar.exe, it has all its dependencies merged into it. For a binary with separate DLLs for the dependencies, use the one in <repo-dir>/Altar.NET/bin/<config>/altar.exe.)

Usage

altar <verb>? [--help|-h]
altar [--version|-v]
altar <verb> <options...>

(NOTE: use ./altar if it is not added to your %PATH% yet, but resides in the current dir. Not applicable to CMD(but you shouldn't be using that).)
(NOTE: use mono altar.exe <args...> on mono (should be obvious).)

Verbs:

  • export: export parts from a data.win file. Options: -[gonsbpiformtacduwh]* --absolute --project --file --out
    • file: Path to the data.win file to export.
    • out: The output directory.
    • project: Emit a project file that can be recompiled by Altar.NET (In a later version, this is currently not implemented or anything.).
    • gonsbpiformtacduwh: Select which parts of the data.win should be exported. Run altar export --help for more info.
    • absolute: Display absolute instruction offsets in decompiled/disassembled code, instead of relative to the first instruction.

API

To read a data.win file:

using Altar;
using Altar.Decomp; // for the Disassembler and Decompiler classes

// [...]

using (var f = GMFile.GetFile(path_to_file)) // NOTE: the file's content (as a byte array) can be passed instead
{
    // using 'f' should be straightforward enough with IntelliSense/...

    // disassemble code:
    Disassembler.DisplayInstructions(f, 0); // disassembles the code with ID=0
    // decompile code:
    Decompiler.DecompileCode(f, 0);
}

gamemaker-studio-decompiler's People

Contributors

antymew avatar jeason1997 avatar porocyon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gamemaker-studio-decompiler's Issues

undertale

can I use this to decpomplie undertale into a project I can mod in the actual game maker studio if so how? thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.