From 205f55486134aeb7cd791138d8f3e2e884398ef8 Mon Sep 17 00:00:00 2001 From: gered Date: Wed, 24 Mar 2021 18:07:24 -0400 Subject: [PATCH] add markdown doc files for the remaining tools --- README.md | 11 +++++++++++ bindat_to_gcdl.md | 13 +++++++++++++ gci_extract.md | 36 ++++++++++++++++++++++++++++++++++++ gen_qst_header.md | 25 +++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 README.md create mode 100644 bindat_to_gcdl.md create mode 100644 gci_extract.md create mode 100644 gen_qst_header.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..be3883a --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# PSO Ep I & II Gamecube Tools + +A small collection of tools, intended to assist with my own efforts in investigating how download/offline quests need +to be prepared in order to work correctly and tools to automate that process. + +## Tools + +* [bindat_to_gcdl](bindat_to_gcdl.md): Turns a set of .bin/.dat files into a Gamecube-compatible offline/download quest .qst file. +* [decrypt_packets](decrypt_packets.md): Decrypts server/client packet capture. +* [gci_extract](gci_extract.md): Extracts quest .bin/.dat files **only** from specially prepared Gamecube memory card dumps in .gci format. This is a highly specific tool that is **not** usable on any arbitrary .gci file! +* [gen_qst_header](gen_qst_header.md): Generates nicer .qst header files than what [qst_tool](https://github.com/Sylverant/pso_tools/tree/master/qst_tool) does. Can be then fed into qst_tool. diff --git a/bindat_to_gcdl.md b/bindat_to_gcdl.md new file mode 100644 index 0000000..4c2ae53 --- /dev/null +++ b/bindat_to_gcdl.md @@ -0,0 +1,13 @@ +# PSO Ep 1 & 2 (Gamecube) Quest .bin/.dat to Download .qst Tool + +This tool takes a set of `.bin` and `.dat` files for a Gamecube quest and turns it into a `.qst` file that can be +served up by a PSO server to Gamecube clients as "download quests" which can then be played by Gamecube users directly +from a memory card. + +## Usage + +Given two files, `quest.bin` and `quest.dat`, a download quest file, `download.qst`, could be created using: + +```text +bindat_to_gcdl quest.bin quest.dat download.qst +``` diff --git a/gci_extract.md b/gci_extract.md new file mode 100644 index 0000000..dd8e04b --- /dev/null +++ b/gci_extract.md @@ -0,0 +1,36 @@ +# PSO Ep 1 & 2 (Gamecube) Unencrypted PRS-compressed .gci Quest Extractor + +This is a specialized tool written **specifically** to extract quest `.bin` and `.dat` files from `.gci` dumps of +Gamecube memory card quest files that were saved using a special Action Replay code which included an embedded +decryption key in the save file and then were manually decrypted with that decryption key. + +Put another way, this tool will **only** work on `.gci` files found on [this gc-forever.com forum thread](https://www.gc-forever.com/forums/viewtopic.php?f=38&t=2050&start=75). +And only if they are indicated to be "unencrypted PRS compressed quests" and **not** "encrypted quests w/ embedded +decryption key". + +**You cannot use this tool to extract quests from any arbitrary `.gci` file you have on your Gamecube memory cards!** + +(Maybe one day someone will reverse-engineer the method in which the Gamecube client derives the encryption key +from the player's serial number and access key. But until then, it is not possible for this tool to work with any +arbitrary `.gci` file.) + +## Usage + +Quest files on a Gamecube memory card are split into two files per quest. One file contains the quest `.bin` data, and +the other contains the quest `.dat` data. Therefore, two `.gci` files need to be provided to this tool. + +Special care should be taken to ensure that the two `.gci` files you provide are a matching pair **and** that they are +provided in the right order! **The file containing the `.bin` data should be specified first.** + +```text +gci_extract 8P-GPOE-PSO______NNN.gci 8P-GPOE-PSO______NNN+1.gci +``` + +This will read out the data, parse and validate the quest information and save the raw (compressed) `.bin` and `.dat` +file using a filename automatically derived from the quest's ID number. + +Or, you can provide your own `.bin` and `.dat` filenames if you wish: + +```text +gci_extract 8P-GPOE-PSO______NNN.gci 8P-GPOE-PSO______NNN+1.gci myquest.bin myquest.dat +``` diff --git a/gen_qst_header.md b/gen_qst_header.md new file mode 100644 index 0000000..39f3fad --- /dev/null +++ b/gen_qst_header.md @@ -0,0 +1,25 @@ +# PSO Ep 1 & 2 (Gamecube) .qst Header Generator Tool + +This is a simple tool that can generate quest `.qst` file headers for a given set of `.bin` and `.dat` files. This tool +was written to complement Sylverant's [qst_tool](https://github.com/Sylverant/pso_tools/tree/master/qst_tool) which +has primitive support for automatically generating a `.qst` file header if one is not provided. + +**This tool is NOT required if you are using the "bindat_to_gcdl" tool also included in this repository. That tool +automatically generates the necessary header information in an identical manner to how this tool does.** + +## Usage + +Given two quest `.bin` and `.dat` files ... + +``` +gen_qst_header quest.bin quest.dat +``` + +Will result in the `.bin` file's header information being saved to a file called `quest.bin.hdr` and the `.dat` file's +header information being saved to a file called `quest.dat.hdr`. + +This can then be used with "qst_tool" to generate a `.qst` file if you wish: + +``` +qst_tool -m gc quest.bin quest.dat quest.bin.hdr quest.dat.hdr +```