From ab521ca5f685132563d72f923b3a22536cae68bc Mon Sep 17 00:00:00 2001 From: gnaomo Date: Thu, 3 Sep 2026 12:19:13 +0200 Subject: [PATCH 1/2] Include korean releases + japanese original game release titles --- docs/asset_reference.md | 10 +++++----- src/assetmgr/asset_schema.wtf | 10 +++++----- src/core/build_config.cpp | 2 ++ src/core/build_config.h | 2 +- src/core/release.cpp | 13 ++++++++----- src/wrenchbuild/globals/mpeg_wad.cpp | 4 ++-- src/wrenchbuild/main.cpp | 4 ++-- 7 files changed, 25 insertions(+), 20 deletions(-) diff --git a/docs/asset_reference.md b/docs/asset_reference.md index 13aa6e89..b1a502bd 100644 --- a/docs/asset_reference.md +++ b/docs/asset_reference.md @@ -148,7 +148,7 @@ A build of the game. | Name | Description | Type | Required | Games | | - | - | - | - | - | | game | The game being built. Possible values: "rac", "gc", "uya", "dl". | String | Yes | RAC/GC/UYA/DL | -| region | The region. Possible values: "us", "eu", "japan". | String | Yes | RAC/GC/UYA/DL | +| region | The region. Possible values: "us", "eu", "japan", "korea". | String | Yes | RAC/GC/UYA/DL | | version | The version number, as specified in the SYSTEM.CNF file. | String | Yes | RAC/GC/UYA/DL | | ps2_logo_key | The key used to "encrypt" the PS2 logo. | Integer | No | RAC/GC/UYA/DL | @@ -354,15 +354,15 @@ FlatWad online { | text_g | The German subtitle text. | String | No | RAC/GC/UYA/DL | | text_s | The Spanish subtitle text. | String | No | RAC/GC/UYA/DL | | text_i | The Italian subtitle text. | String | No | RAC/GC/UYA/DL | -| text_j | The Japanese subtitle text. | String | No | UYA/DL | -| text_k | The Korean subtitle text. | String | No | UYA/DL | +| text_j | The Japanese subtitle text. | String | No | RAC/GC/UYA/DL | +| text_k | The Korean subtitle text. | String | No | GC/UYA/DL | | encoding_e | "raw" means the text is in the format accepted by the game, "utf8" means the text is in UTF-8 (which is not yet supported). | String | No | RAC/GC/UYA/DL | | encoding_f | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_g | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_s | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_i | See encoding_e. | String | No | RAC/GC/UYA/DL | -| encoding_j | See encoding_e. | String | No | UYA/DL | -| encoding_k | See encoding_e. | String | No | UYA/DL | +| encoding_j | See encoding_e. | String | No | RAC/GC/UYA/DL | +| encoding_k | See encoding_e. | String | No | GC/UYA/DL | *Children* diff --git a/src/assetmgr/asset_schema.wtf b/src/assetmgr/asset_schema.wtf index c7520569..b9d68cae 100644 --- a/src/assetmgr/asset_schema.wtf +++ b/src/assetmgr/asset_schema.wtf @@ -110,7 +110,7 @@ AssetType Build { games: [1 2 3 4] } StringAttribute region { - desc: "The region. Possible values: \"us\", \"eu\", \"japan\"." + desc: "The region. Possible values: \"us\", \"eu\", \"japan\, \"korea\"." required: true games: [1 2 3 4] } @@ -377,12 +377,12 @@ AssetType Subtitle { StringAttribute text_j { desc: "The Japanese subtitle text." required: false - games: [3 4] + games: [1 2 3 4] } StringAttribute text_k { desc: "The Korean subtitle text." required: false - games: [3 4] + games: [2 3 4] } StringAttribute encoding_e { desc: "\"raw\" means the text is in the format accepted by the game, \"utf8\" means the text is in UTF-8 (which is not yet supported)." @@ -393,8 +393,8 @@ AssetType Subtitle { StringAttribute encoding_g { desc: "See encoding_e." required: false games: [1 2 3 4] } StringAttribute encoding_s { desc: "See encoding_e." required: false games: [1 2 3 4] } StringAttribute encoding_i { desc: "See encoding_e." required: false games: [1 2 3 4] } - StringAttribute encoding_j { desc: "See encoding_e." required: false games: [3 4] } - StringAttribute encoding_k { desc: "See encoding_e." required: false games: [3 4] } + StringAttribute encoding_j { desc: "See encoding_e." required: false games: [1 2 3 4] } + StringAttribute encoding_k { desc: "See encoding_e." required: false games: [2 3 4] } } AssetType ElfFile { diff --git a/src/core/build_config.cpp b/src/core/build_config.cpp index e74c853b..a476a36c 100644 --- a/src/core/build_config.cpp +++ b/src/core/build_config.cpp @@ -87,6 +87,7 @@ Region region_from_string(const std::string& region) if (region == "us") return Region::US; if (region == "eu") return Region::EU; if (region == "japan") return Region::JAPAN; + if (region == "korea") return Region::KOREA; return Region::UNKNOWN; } @@ -96,6 +97,7 @@ std::string region_to_string(Region region) case Region::US: return "us"; case Region::EU: return "eu"; case Region::JAPAN: return "japan"; + case Region::KOREA: return "korea"; default: return "unknown"; } } diff --git a/src/core/build_config.h b/src/core/build_config.h index 1b21dc75..7ef9b61d 100644 --- a/src/core/build_config.h +++ b/src/core/build_config.h @@ -33,7 +33,7 @@ enum enum class Region : u8 { - UNKNOWN = 0, US = 1, EU = 2, JAPAN = 3 + UNKNOWN = 0, US = 1, EU = 2, JAPAN = 3, KOREA = 4 }; class BuildConfig diff --git a/src/core/release.cpp b/src/core/release.cpp index 2337d3ce..1a9bb4aa 100644 --- a/src/core/release.cpp +++ b/src/core/release.cpp @@ -25,29 +25,32 @@ static const Release RELEASES[] = { {"scus_971.99", Game::RAC, Region::US, "Ratchet & Clank"}, // us original/greatest hits {"scus_972.09", Game::RAC, Region::US, "Ratchet & Clank"}, // us demo 1 {"scus_972.40", Game::RAC, Region::US, "Ratchet & Clank"}, // us demo 2 - {"scps_150.56", Game::GC, Region::JAPAN, "Ratchet & Clank: Going Commando"}, // japan original + {"scps_150.56", Game::GC, Region::JAPAN, "Ratchet & Clank: Gagaga! Ginga no Commando ssu"}, // japan original {"sces_516.07", Game::GC, Region::EU, "Ratchet & Clank 2"}, // eu original/platinum {"scus_972.68", Game::GC, Region::US, "Ratchet & Clank: Going Commando"}, // us greatest hits {"scus_972.68", Game::GC, Region::US, "Ratchet & Clank: Going Commando"}, // us original {"scus_973.22", Game::GC, Region::US, "Ratchet & Clank: Going Commando"}, // us demo {"scus_973.23", Game::GC, Region::US, "Ratchet & Clank: Going Commando"}, // us retail employees demo {"scus_973.74", Game::GC, Region::US, "Ratchet & Clank: Going Commando"}, // us rac2 + jak demo + {"scka_200.11", Game::GC, Region::KOREA, "Ratchet & Clank: Gonggu Jeonsa Daebak Moli"}, // korea original {"papx_905.20", Game::UYA, Region::JAPAN, "Ratchet & Clank: Up Your Arsenal"}, // japan promotional {"sced_528.47", Game::UYA, Region::EU, "Ratchet & Clank 3"}, // eu demo {"sced_528.48", Game::UYA, Region::EU, "Ratchet & Clank 3"}, // r&c3 + sly 2 demo {"sces_524.56", Game::UYA, Region::EU, "Ratchet & Clank 3"}, // eu original/plantinum - {"scps_150.84", Game::UYA, Region::JAPAN, "Ratchet & Clank: Up Your Arsenal"}, // japan original + {"scps_150.84", Game::UYA, Region::JAPAN, "Ratchet & Clank 3: Totsugeki! Galactic Rangers"}, // japan original {"scus_973.53", Game::UYA, Region::US, "Ratchet & Clank: Up Your Arsenal"}, // us original {"scus_974.11", Game::UYA, Region::US, "Ratchet & Clank: Up Your Arsenal"}, // us demo {"scus_974.13", Game::UYA, Region::US, "Ratchet & Clank: Up Your Arsenal"}, // us beta {"tces_524.56", Game::UYA, Region::EU, "Ratchet & Clank 3"}, // eu beta trial code - {"pcpx_980.17", Game::DL, Region::JAPAN, "Ratchet & Clank 4"}, // japan demo + {"scka_200.37", Game::UYA, Region::KOREA, "Ratchet & Clank: Gonggu Jeonsa Reloaded"}, // korea original + {"pcpx_980.17", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan demo {"sced_536.60", Game::DL, Region::EU, "Ratchet: Gladiator"}, // jak x glaiator demo {"sces_532.85", Game::DL, Region::EU, "Ratchet: Gladiator"}, // eu original/platinum - {"scps_150.99", Game::DL, Region::JAPAN, "Ratchet & Clank 4"}, // japan special gift package - {"scps_151.00", Game::DL, Region::JAPAN, "Ratchet & Clank 4"}, // japan reprint + {"scps_150.99", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan special gift package + {"scps_151.00", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan reprint {"scus_974.65", Game::DL, Region::US, "Ratchet: Deadlocked"}, // us original {"scus_974.85", Game::DL, Region::US, "Ratchet: Deadlocked"}, // us demo + {"scka_200.60", Game::DL, Region::KOREA, "Ratchet & Clank: Gonggu Jeonsa Wigi Ilbal"}, // korea original {"scus_974.87", Game::DL, Region::US, "Ratchet: Deadlocked"} // us public beta }; diff --git a/src/wrenchbuild/globals/mpeg_wad.cpp b/src/wrenchbuild/globals/mpeg_wad.cpp index d364f9bb..325a5e5e 100644 --- a/src/wrenchbuild/globals/mpeg_wad.cpp +++ b/src/wrenchbuild/globals/mpeg_wad.cpp @@ -116,8 +116,8 @@ static void unpack_gc_uya_dl_mpeg_wad( } else { unpack_asset(mpeg.video_pal(), src, header.mpegs[i].video, config, FMT_BINARY_PSS); } - if (config.region() == Region::JAPAN) { - // The Japanese subtitles are in a different format, so just + if (config.region() == Region::JAPAN || config.region() == Region::KOREA) { + // The Japanese/Korean subtitles are in a different format, so just // unpack them as binaries. BinaryAsset& subtitles = mpeg.child("subtitles"); unpack_asset(subtitles, src, header.mpegs[i].subtitles, config, FMT_NO_HINT); diff --git a/src/wrenchbuild/main.cpp b/src/wrenchbuild/main.cpp index 7adde679..4842b0f6 100644 --- a/src/wrenchbuild/main.cpp +++ b/src/wrenchbuild/main.cpp @@ -726,14 +726,14 @@ static void print_usage(bool developer_subcommands) puts(" unpack -o [-g ] [-r ] [-s]"); puts(" Unpack an ISO or WAD file to produce an asset bank of source files."); puts(" If the file to be unpacked is a WAD, the game (rac, gc, uya or dl) should be"); - puts(" specified and the region (us, eu or japan) must be specified."); + puts(" specified and the region (us, eu or japan, korea) must be specified."); puts(" Optionally, files unpacked from an ISO can be placed in a subdirectory with a"); puts(" name based on the identified release of said ISO by passing -s."); puts(""); puts(" pack -a -o [-h ] [-g ] [-r ]"); puts(" Pack an asset (e.g. a build) to produce a built file (e.g. an ISO file)."); puts(" If is not a build, the game (rac, gc, uya or dl) and the region"); - puts(" (us, eu or japan) must be specified."); + puts(" (us, eu or japan, korea) must be specified."); puts(" A hint string used to specify the format of the asset can be set by"); puts(" passing -h, which is required for certain types of assets such as builds."); puts(" These strings are documented in the asset reference."); From 2eff069c32d2a8bd7ad0a2f895e2b30f350f37fb Mon Sep 17 00:00:00 2001 From: gnaomo Date: Sun, 6 Sep 2026 23:01:59 +0200 Subject: [PATCH 2/2] fix mistakes and typo --- docs/asset_reference.md | 8 ++++---- src/assetmgr/asset_schema.wtf | 8 ++++---- src/core/release.cpp | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/asset_reference.md b/docs/asset_reference.md index b1a502bd..0f637480 100644 --- a/docs/asset_reference.md +++ b/docs/asset_reference.md @@ -354,15 +354,15 @@ FlatWad online { | text_g | The German subtitle text. | String | No | RAC/GC/UYA/DL | | text_s | The Spanish subtitle text. | String | No | RAC/GC/UYA/DL | | text_i | The Italian subtitle text. | String | No | RAC/GC/UYA/DL | -| text_j | The Japanese subtitle text. | String | No | RAC/GC/UYA/DL | -| text_k | The Korean subtitle text. | String | No | GC/UYA/DL | +| text_j | The Japanese subtitle text. | String | No | UYA/DL | +| text_k | The Korean subtitle text. | String | No | UYA/DL | | encoding_e | "raw" means the text is in the format accepted by the game, "utf8" means the text is in UTF-8 (which is not yet supported). | String | No | RAC/GC/UYA/DL | | encoding_f | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_g | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_s | See encoding_e. | String | No | RAC/GC/UYA/DL | | encoding_i | See encoding_e. | String | No | RAC/GC/UYA/DL | -| encoding_j | See encoding_e. | String | No | RAC/GC/UYA/DL | -| encoding_k | See encoding_e. | String | No | GC/UYA/DL | +| encoding_j | See encoding_e. | String | No | UYA/DL | +| encoding_k | See encoding_e. | String | No | UYA/DL | *Children* diff --git a/src/assetmgr/asset_schema.wtf b/src/assetmgr/asset_schema.wtf index b9d68cae..89196f3a 100644 --- a/src/assetmgr/asset_schema.wtf +++ b/src/assetmgr/asset_schema.wtf @@ -377,12 +377,12 @@ AssetType Subtitle { StringAttribute text_j { desc: "The Japanese subtitle text." required: false - games: [1 2 3 4] + games: [3 4] } StringAttribute text_k { desc: "The Korean subtitle text." required: false - games: [2 3 4] + games: [3 4] } StringAttribute encoding_e { desc: "\"raw\" means the text is in the format accepted by the game, \"utf8\" means the text is in UTF-8 (which is not yet supported)." @@ -393,8 +393,8 @@ AssetType Subtitle { StringAttribute encoding_g { desc: "See encoding_e." required: false games: [1 2 3 4] } StringAttribute encoding_s { desc: "See encoding_e." required: false games: [1 2 3 4] } StringAttribute encoding_i { desc: "See encoding_e." required: false games: [1 2 3 4] } - StringAttribute encoding_j { desc: "See encoding_e." required: false games: [1 2 3 4] } - StringAttribute encoding_k { desc: "See encoding_e." required: false games: [2 3 4] } + StringAttribute encoding_j { desc: "See encoding_e." required: false games: [3 4] } + StringAttribute encoding_k { desc: "See encoding_e." required: false games: [3 4] } } AssetType ElfFile { diff --git a/src/core/release.cpp b/src/core/release.cpp index 1a9bb4aa..04ae0786 100644 --- a/src/core/release.cpp +++ b/src/core/release.cpp @@ -44,7 +44,7 @@ static const Release RELEASES[] = { {"tces_524.56", Game::UYA, Region::EU, "Ratchet & Clank 3"}, // eu beta trial code {"scka_200.37", Game::UYA, Region::KOREA, "Ratchet & Clank: Gonggu Jeonsa Reloaded"}, // korea original {"pcpx_980.17", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan demo - {"sced_536.60", Game::DL, Region::EU, "Ratchet: Gladiator"}, // jak x glaiator demo + {"sced_536.60", Game::DL, Region::EU, "Ratchet: Gladiator"}, // jak x gladiator demo {"sces_532.85", Game::DL, Region::EU, "Ratchet: Gladiator"}, // eu original/platinum {"scps_150.99", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan special gift package {"scps_151.00", Game::DL, Region::JAPAN, "Ratchet & Clank 4th: Giri Giri Ginga no Giga Battle"}, // japan reprint