Code Monkey home page Code Monkey logo

warchive-tools's Introduction

WArchive-Tools

A set of tools designed to extract and (eventually) repack archives from The Legend of Zelda: The Wind Waker (and other Nintendo games from the GCN). Mostly a port of existing compression/decompression and archive extracting tools wrapped up into one bundle for easy use.

This is a simple CLI wrapper around the archive tools library written for Wind Editor. The current release supports unpacking both compressed (yaz0) and decompressed RARC archives. Packing will come in the future once Wind Editor is at the point where it requires repacking.

usage: Drag and drop one or more folders or files onto the exe. The exe will recursively unpack any RARC or Yaz0 encoded files within the specified folder, as well as any loose archives dropped onto it. Results will be placed in an "archives_extracted" folder located at the common root of all items dropped onto the folder.

WArcExtract.exe "C:/arc1.arc" "C:/My Archives" "C:/compressedArc.rarc"

Optional Arguments:

-help (Displays Help Text)

-verbose (Extra debug printouts/status updates of progress)

-printFS (displays a ascii tree of the archive contents (but also dumps contents))

warchive-tools's People

Contributors

hallcristobal avatar lordned avatar sage-of-mirrors avatar wooferzfg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

warchive-tools's Issues

Document File Formats on Wiki

...and remove the few comments from the tools, ie:
RARC::FileEntry
///

Padding byte. Included here for the sake of documentation.

// Non actual struct items

etc.

Document the format thoroughly on the wiki, make the code simpler and cleaner.

Use Polymorphism for Encoding/Decoding?

This one is more 'good programming practices' than 'directly needed by the project'. Instead of having switch statements everywhere and unique function names for every encoding/decoding thing, perhaps we should use polymorphism and interfaces to do decoding.

Pros:
More flexible and easier to support more formats in the future.

Cons:
Raises code complexity.

Example:
IFileDecompressor decompressor = new Yay0Decompressor();
RARC archive = new RARC();
archive.ReadFile(decompressor.Decompress(fileStream));

Where there would also be implementations of Yaz0Decompressor, and UncompressedDecompressor.

I'm going to table this one as it sounds like unneeded complexity in retrospect.

Add support for Repacking Archives

Library currently only unpacks archives, and decompresses if required. Repacking archives should be supported with optional compression (uncompressed, yay0, yaz0).

Is "RARC" just "Refactored Archive"?

Based on other changes in Wind Waker (CAMR -> RCAM, PATH -> RPAT) and a few in Twilight Princess, it seems that Nintendo has the habit of sticking an "R" on the front for a similar/new version of the format. Perhaps this stands for Refactored?

If so, can we stop calling them "RARC" and just call them "Archive"?

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.