Code Monkey home page Code Monkey logo

gg's Introduction

gg

PkgGoDev Build Status Go Report Card

A set of command line tools and Go packages to work with Thimbleweed Park data files.

The project name "gg" was chosen, because the names of some of these formats start with those two letters, e.g. "ggpack" or "GGDictionary". They were conceived by Grumpy Gamer (Ron Gilbert). This project is not related to him or Terrible Toybox, Inc.

Command line tools

  • ggpack A tool to inspect, unpack or create "ggpack" files.
  • ggdict A tool to convert back and forth between the GGDictionary format and JSON.
  • retext A tool to replace ID placeholders like @12345 in files with texts from a text table file in TSV format.
  • nutfmt A tool to indent Squirrel script files.
  • yack A tool to run Yack dialogs.
  • ggsavegame A tool to convert savegame files to JSON format and back.

Installation

Either download binaries for your operating system from the latest release or build from source with Go:

go install github.com/fzipp/gg/cmd/ggpack@latest
go install github.com/fzipp/gg/cmd/ggdict@latest
go install github.com/fzipp/gg/cmd/retext@latest
go install github.com/fzipp/gg/cmd/nutfmt@latest
go install github.com/fzipp/gg/cmd/yack@latest
go install github.com/fzipp/gg/cmd/ggsavegame@latest

Go packages

  • ggpack Read and write ggpack files.
  • ggdict Read and write the GGDictionary format.
  • texts Replace text ID placeholders with texts.
  • yack Read and run Yack dialogs.
  • wimpy Read and write Wimpy room files.
  • savegame Read and write savegame files.

Related, but independent packages:

Related Work

Projects by other people with similar objectives:

  • NGGPack .NET based tool for reading and writing ggpack archives.
  • ggdump Python based tool for listing and extracting files from ggpack archives.
  • r2-ggpack Radare2 plugins to manipulate ggpack archives.
  • engge Experimental game engine for Thimbleweed Park by the same author as NGGPack.
  • Thimbleweed Park Explorer An explorer/viewer/dumper tool for Thimbleweed Park
  • ggpack Command line tool for inspecting ggpack files, written in Go.

License

This project is free and open source software licensed under the BSD 3-Clause License.

gg's People

Contributors

dependabot[bot] avatar frzschneide avatar fzipp avatar janfrederick00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gg's Issues

Bad ggpack when writing a new one

With Thimbleweed Park v1421.958 on MacOS Catalina v10.15.6 (19G2021)
If I dump all the resources to a directory and repack it to a new .ggpack (without modifying the files), and I replace the ThimbleweedPark.ggpack1 file, I have this error:
Boot.bnut:1: end of statement expected (; or lf)

This is my command:
./ggpack -create "resources/*" ThimbleweedPark.ggpack1

FMOD bank files come out garbled upon extraction (RtMI)

so, i tested out the latest ggpack version with the new ggpack format from RtMI and though i managed to extract every asset there is through these ggpack files there are a couple of extracted files (coming from Weird.ggpack4a through Weird.ggpack4f) ending with the *.bank extension that look like this.

MasterBank.bank
MasterBank.assets.bank
Music.bank
Talkies_en.bank

Support for Return to Monkey Island

Hello there!
Over the past few days I have implemented basic support for RtMI's .ggpack?? files into Thimbleweed Park Explorer.
(New XOR Keys 256 + 65536 bytes long).

The GGDicts contained in this the .json files and RtMI's .yak files both seem to differ from the previous formats.

It would be nice if at least the ggpack tool could support RtMI - The new XOR-algorithm can be found here

(note that the Thimbleweed park explorer does not ship the XOR-keys and instead loads them from the game's executable.)

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.