Git Product home page Git Product logo

yacpktool's Introduction

Yet Another CPK Tool

This application is for the reading, extracting, packing, patching of CRIWARE's CPK format.
It is designed in mind to be used by both those who don't need to understand using the command prompt-- they just want to extract or repack-- and by those who need some more technical options. As such, this tool can be used in either a simple drag-n-drop means or via the command prompt for more options and information.
For more information, I strongly advise reading the real README contained in the YACT folder.

Status

I have provided compiled releases of this tool under Releases.
If you just want a link to the latest compiled build, then click here.

Requirements

  • Visual Studio 2017
  • .NET Framework 4.6

Building

  • Clone or download this git
  • Open Solution in Visual Studio
  • Build Solution

yacpktool's People

Contributors

brolijah avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

yacpktool's Issues

Simple extract ignores "-d"?

I wanted to dig into Metal Gear Rising to hopefuly replace the XBox key legend with the PlayStation one instead. But before doing so I need to extract it first, so after reading the help prompt, I attempted this:

PS E:\CPKTool> .\YACpkTool.exe -X -d "E:\MGR Modding\out" -i "C:\Program Files (x86)\Steam\steamapps\common\METAL GEAR RISING REVENGEANCE\GameData\data000.cpk"
100% extracted...
Status = Complete

Process finished (hopefully) without issues!

But, my output did not end up in E:\MGR Modding\out, but in the CPK's directory instead.

Process finished (hopefully) without issues!
PS E:\CPKTool> dir "C:\Program Files (x86)\Steam\steamapps\common\METAL GEAR RISING REVENGEANCE\GameData"


    Verzeichnis: C:\Program Files (x86)\Steam\steamapps\common\METAL GEAR RISING REVENGEANCE\GameData


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        23.02.2023     20:27                data000 <-----------
d-----        22.02.2023     20:43                movie
d-----        22.02.2023     20:43                movie_ui
d-----        22.02.2023     20:43                sound
-a----        22.02.2023     20:10      778408832 data000.cpk
-a----        22.02.2023     20:10     1102187240 data001.cpk
-a----        22.02.2023     20:10        3153568 data002.cpk
-a----        22.02.2023     20:10        3404488 data003.cpk
-a----        22.02.2023     20:10        7322496 data004.cpk
-a----        22.02.2023     20:10       22784600 data005.cpk
-a----        22.02.2023     20:10       24545800 data006.cpk
-a----        22.02.2023     20:10        4264104 data104.cpk
-a----        22.02.2023     20:10        3445024 data105.cpk
-a----        22.02.2023     20:10      104629360 data106.cpk
-a----        22.02.2023     20:10      368776960 data107.cpk
-a----        22.02.2023     20:10      323043032 data108.cpk
-a----        22.02.2023     20:10        2801664 shader.dat
-a----        22.02.2023     20:43          61440 shader2.dat
-a----        22.02.2023     20:10         266240 shadereff.dat

I don't mind having to stitch those together later, but I feel like this might be a bug, so I wanted to let you know. Also,m the command line used came directly from the README within the YACT subfolder.

Thanks and kind regards,
Ingwie

Please Help.

Unhandled Exception: System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.IO.Path.Combine(String path1, String path2)
at CriCpkMaker.CBinary.AnalyzeCpkFileSub(CFileData filedata, _criheap_struct* heap)
at CriCpkMaker.CBinary.AnalyzeCpkFile(CFileData filedata, String fpath)
at CriCpkMaker.CpkMaker.AnalyzeCpkFile(String fpath)
at YACpkTool.Program.Main(String[] args)

This happens when I extract a cpk file.

[Request] Patch from CSV

Regenerate the .cpk everytime when you patch many files is a true shit :V
Please, allow 'batch patch'.

[Request] File Name Encoding

Some few games use SJIS (like persona 5) as the file name encoding of the .cpk, this means we can't repack the cpk

image

Add option to pack/replace files as ID numbers instead of filenames

There is a cpk file which contains files that have no filenames stored inside the cpk file, and instead, are stored as ID numbers.
As a result, when unpacking the files, they're shown as ID#####.
When repacking into a new cpk file, the files inside it are stored as filenames rather than ID numbers, and as a result, the game has trouble reading files inside the cpk file.

The game in question is Style Savvy: Styling Star (Nintendo 3DS), and the file I used is character_motion.cpk, which contain skeletal animations for the character models.

Download file here: https://www.dropbox.com/s/gqpagh7fa311fo7/character_motion.cpk?dl=1

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.