support .bin/.bind files in ep3 maps directories
This commit is contained in:
@@ -95,10 +95,10 @@ Because newserv gives all players 1000000 meseta, there is no reward for winning
|
||||
|
||||
Episode 3 state and game data is stored in the system/ep3 directory. The files in there are:
|
||||
* card-definitions.mnr: Compressed card definition list, sent to Episode 3 clients at connect time. Card stats and abilities can be changed by editing this file.
|
||||
* card-definitions.mnrd: Decompressed version of the above. (If present, newserv will use this instead of the compressed version.)
|
||||
* card-definitions.mnrd: Decompressed version of the above. If present, newserv will use this instead of the compressed version, since this is easier to edit.
|
||||
* card-text.mnr: Compressed card text archive. Generally only used for debugging.
|
||||
* com-decks.json: COM decks used in tournaments. The default decks in this file come from logs from Sega's servers, so the file doesn't include every COM deck Sega ever made - the rest are probably lost to time.
|
||||
* maps-free/ and maps-quest/: Online free battle and quest maps (.mnm/.mnmd files). Free battle and quest files have exactly the same format; the only difference between the files in these directories is which section of the menu they appear in on the client.
|
||||
* maps-free/ and maps-quest/: Online free battle and quest maps (.mnm/.bin/.mnmd/.bind files). Free battle and quest files have exactly the same format; the only difference between the files in these directories is which section of the menu they will appear in on the client.
|
||||
* tournament-state.json: State of all active tournaments. This file is automatically written when any tournament changes state for any reason (e.g. a tournament is created/started/deleted or a match is resolved).
|
||||
|
||||
## Usage
|
||||
@@ -136,24 +136,25 @@ For example, the GameCube version of Lost HEAT SWORD is in two files named `q058
|
||||
|
||||
There are multiple PSO quest formats out there; newserv supports most of them. It can also decode any known format to standard .bin/.dat format. Specifically:
|
||||
|
||||
| Format | Extension | Supported online? | Offline decode option |
|
||||
|---------------------------|-----------------------|-------------------|-----------------------|
|
||||
| Compressed | .bin and .dat | Yes | None (1) |
|
||||
| Compressed Ep3 | .bin or .mnm | Download only | None (1) |
|
||||
| Uncompressed | .bind and .datd | Yes | compress-data (2) |
|
||||
| Uncompressed Ep3 | .bind or .mnmd | Download only | compress-data (2) |
|
||||
| Unencrypted GCI | .bin.gci and .dat.gci | Yes | decode-gci |
|
||||
| Encrypted GCI with key | .bin.gci and .dat.gci | Yes | decode-gci |
|
||||
| Encrypted GCI without key | .bin.gci and .dat.gci | No | decode-gci (3) |
|
||||
| Ep3 GCI | .bin.gci or .mnm.gci | Download only | decode-gci |
|
||||
| Encrypted DLQ | .bin.dlq and .dat.dlq | Yes | decode-dlq |
|
||||
| Ep3 DLQ | .bin.dlq or .mnm.dlq | Download only | decode-dlq |
|
||||
| QST | .qst | Yes | decode-qst |
|
||||
| Format | Extension | Supported online? | Decode action |
|
||||
|---------------------------|-----------------------|-------------------|-------------------|
|
||||
| Compressed | .bin and .dat | Yes | None (1) |
|
||||
| Compressed Ep3 | .bin or .mnm | Yes (4) | None (1) |
|
||||
| Uncompressed | .bind and .datd | Yes | compress-data (2) |
|
||||
| Uncompressed Ep3 | .bind or .mnmd | Yes (4) | compress-data (2) |
|
||||
| Unencrypted GCI | .bin.gci and .dat.gci | Yes | decode-gci |
|
||||
| Encrypted GCI with key | .bin.gci and .dat.gci | Yes | decode-gci |
|
||||
| Encrypted GCI without key | .bin.gci and .dat.gci | No | decode-gci (3) |
|
||||
| Ep3 GCI | .bin.gci or .mnm.gci | Download only | decode-gci |
|
||||
| Encrypted DLQ | .bin.dlq and .dat.dlq | Yes | decode-dlq |
|
||||
| Ep3 DLQ | .bin.dlq or .mnm.dlq | Download only | decode-dlq |
|
||||
| QST | .qst | Yes | decode-qst |
|
||||
|
||||
*Notes:*
|
||||
1. *This is the default format. You can convert these to uncompressed format like this: `newserv decompress-prs FILENAME.bin FILENAME.bind`*
|
||||
2. *Similar to (1), to compress an uncompressed quest file: `newserv compress-prs FILENAME.bind FILENAME.bin`*
|
||||
3. *If you know the encryption seed (serial number), pass it in as a hex string with the `--seed=` option. If you don't know the encryption seed, newserv will find it for you, which will likely take a long time.*
|
||||
4. *Episode 3 online quests don't go in the system/quests directory; they instead go in the system/ep3/maps-free or system/ep3/maps-quest directory. If you want an Episode 3 quest to be available for both online play and for downloading, the file must exist in both system/quests and in one of the system/ep3 directories.*
|
||||
|
||||
Episode 3 download quests consist only of a .bin file - there is no corresponding .dat file. Episode 3 download quest files may be named with the .mnm extension instead of .bin, since the format is the same as the standard map files (in system/ep3/). These files can be encoded in any of the formats described above, except .qst. There are no encrypted Episode 3 GCI formats because the game doesn't encrypt quests saved to the memory card, unlike Episodes 1&2.
|
||||
|
||||
|
||||
@@ -1422,9 +1422,9 @@ DataIndex::DataIndex(const string& directory, uint32_t behavior_flags)
|
||||
try {
|
||||
shared_ptr<MapEntry> entry;
|
||||
|
||||
if (ends_with(filename, ".mnmd")) {
|
||||
if (ends_with(filename, ".mnmd") || ends_with(filename, ".bind")) {
|
||||
entry.reset(new MapEntry(load_object_file<MapDefinition>(dir + "/" + filename), is_quest));
|
||||
} else if (ends_with(filename, ".mnm")) {
|
||||
} else if (ends_with(filename, ".mnm") || ends_with(filename, ".bin")) {
|
||||
entry.reset(new MapEntry(load_file(dir + "/" + filename), is_quest));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user