From 2fb2fa01d1a0c5984caa28bbf5f454a7817154b2 Mon Sep 17 00:00:00 2001 From: ui <41072636+iHeq@users.noreply.github.com> Date: Tue, 13 May 2025 11:39:24 +0200 Subject: [PATCH 1/3] Update main.cpp --- Minori/Minori/fuckpaz/main.cpp | 80 +++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 21 deletions(-) diff --git a/Minori/Minori/fuckpaz/main.cpp b/Minori/Minori/fuckpaz/main.cpp index e1f1205..b736a02 100644 --- a/Minori/Minori/fuckpaz/main.cpp +++ b/Minori/Minori/fuckpaz/main.cpp @@ -1,14 +1,14 @@ // exef2paz, v1.22r5 2014/02/02 -// coded by asmodean8pvc09vr11 +// coded by asmodean仌夵憿8pvc09vr11 -// modified by modified by Fuyin 2016/2/28 +// modified by 福音 modified by Fuyin 2016/2/28 //Fix a repack bug. -//Add a new game support(ǰԊ). -//Add a new game support(ιǥ`). -//Add a new game support(ȥΥ饤). 2017/4/1 -//Add a new game support(ȥΥ饤󣺥ͥ). 2018/2/1 -//Add two game support(ǰԊڥH and ιǥ`ߤ֥å). 2018/9/8 -//Add a new game support(դΪˤϡ). 2019/1/28 +//Add a new game support(ソレヨリノ前奏詩). +//Add a new game support(罪ノ光ランデヴー). +//Add a new game support(トリノライン). 2017/4/1 +//Add a new game support(トリノライン:ジェネシス). 2018/2/1 +//Add two game support(ソレヨリノ前奏詩 アペンドH and 罪ノ光ランデヴー みかんブロッサム). 2018/9/8 +//Add a new game support(その日の獣には、). 2019/1/28 //Add a new game support(ef - the first tale (en)). 2021/11/02 //Add a new game support(ef - the latter tale (en NNL)). 2021/11/02 @@ -18,6 +18,7 @@ //Add a new game support(ef - the latter tale (en steam)). 2021/11/03 //Add a new game support(ef - the first tale (en steam)). 2021/11/07 //Add a new game support(Trinoline: Genesis (en steam)). 2022/01/21 +//Add a new game src and st support (Haru no Ashioto) 2025/05/13 // This tool extracts and rebuilds data from *.paz archives used by minori. @@ -52,6 +53,21 @@ struct game_info_t { }; static const game_info_t GAME_INFO[] = { + { "Haru no Ashioto", + 0, + { + { "scr", + { 0x96, 0x17, 0xf4, 0x71, 0x31, 0xfb, 0x6f, 0xca, 0x04, 0x29, 0x2b, 0xfe, 0x6e, 0x19, 0x15, 0x56, 0x63, 0x7b, 0x6b, 0x29, 0xb5, 0x6d, 0x1f, 0xaa, 0x92, 0xf0, 0x80, 0x04, 0x4f, 0x9d, 0x17, 0xa9, }, + { 0x63, 0x94, 0xcf, 0xe6, 0xb7, 0xb6, 0x5a, 0xbc, 0x1d, 0x14, 0xcf, 0xeb, 0x1d, 0xa6, 0x98, 0x4f, 0xf8, 0x41, 0x8b, 0x6f, 0xe7, 0xc3, 0x57, 0x54, 0xa4, 0x91, 0x22, 0x97, 0x2b, 0x43, 0x70, 0xbe, } + }, + { "st", + { 0x53, 0xf3, 0x29, 0x72, 0x46, 0x6c, 0x05, 0x4b, 0xbb, 0x57, 0xae, 0x59, 0xb7, 0x31, 0xf9, 0x2e, 0x56, 0x33, 0x8c, 0xe7, 0x13, 0x84, 0x43, 0x02, 0x44, 0xae, 0xd2, 0x70, 0xe4, 0x4f, 0xac, 0xeb, }, + { 0x95, 0x11, 0x24, 0x8a, 0xe5, 0xdb, 0xd2, 0x93, 0xd1, 0x49, 0x39, 0x90, 0x88, 0x5a, 0xa6, 0xa5, 0x71, 0x69, 0x5b, 0x20, 0x6e, 0x5f, 0xed, 0x52, 0x63, 0x26, 0xeb, 0x9e, 0xf2, 0x61, 0xc0, 0xcf, } + }, + { "", { 0 }, { 0 } }, + }, + { "", "", "", "" }, + }, { "ef - the first tale (jp)", 1, { @@ -1202,7 +1218,7 @@ int main(int argc, char** argv) { if (argc < 3) { - fprintf(stderr, "exef2paz v1.22r7 by asmodean8pvc09vr11modified&ImKota\n\n"); + fprintf(stderr, "exef2paz v1.22r7 by asmodean」ヲクトヤ・pvc09vr11」ヲmodifiedク」メ・ImKota\n\n"); fprintf(stderr, "usage: %s [output.paz]\n\n", argv[0]); for (unsigned long i = 0; i < GAME_COUNT; i++) { @@ -1265,13 +1281,20 @@ int main(int argc, char** argv) } } - PAZHDR hdr; - read(fd, &hdr, sizeof(hdr)); - + PAZHDR hdr = { 0 }; + if (game_info.version > 0) { + read(fd, &hdr, sizeof(hdr)); + } + else { + read(fd, &hdr.toc_len, sizeof(&hdr.toc_len)); + } + char simple_key = hdr.toc_len >> 24; - lseek(fd, 0, SEEK_SET); - read_unobfuscate(fd, simple_key, &hdr, sizeof(hdr)); + if (game_info.version > 0) { + lseek(fd, 0, SEEK_SET); + read_unobfuscate(fd, simple_key, &hdr, sizeof(hdr)); + } Blowfish bf; @@ -1286,8 +1309,15 @@ int main(int argc, char** argv) out_fd = as::open_or_die(out_filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY); - write_obfuscate(out_fd, simple_key, &hdr, sizeof(hdr)); - write_obfuscate(out_fd, simple_key, toc_buff, hdr.toc_len); + if (game_info.version > 0) { + write_obfuscate(out_fd, simple_key, &hdr, sizeof(hdr)); + } + else { + write(out_fd, &hdr.toc_len, sizeof(&hdr.toc_len)); + } + + write_obfuscate(out_fd, simple_key, toc_buff, hdr.toc_len); + } PAZHDR2* hdr2 = (PAZHDR2*)toc_buff; @@ -1407,6 +1437,7 @@ int main(int argc, char** argv) if (do_rebuild) { write_obfuscate(out_fd, simple_key, buff, len); + } else { @@ -1439,12 +1470,19 @@ int main(int argc, char** argv) if (do_rebuild) { - bf.Set_Key(keys.toc_key, sizeof(keys.toc_key)); - bf.Encrypt(toc_buff, hdr.toc_len); + bf.Set_Key(keys.toc_key, sizeof(keys.toc_key)); + bf.Encrypt(toc_buff, hdr.toc_len); + + lseek(out_fd, 0, SEEK_SET); + + if (game_info.version > 0) { + write_obfuscate(out_fd, simple_key, &hdr, sizeof(hdr)); + } + else { + write(out_fd, &hdr.toc_len, sizeof(&hdr.toc_len)); + } - lseek(out_fd, 0, SEEK_SET); - write_obfuscate(out_fd, simple_key, &hdr, sizeof(hdr)); - write_obfuscate(out_fd, simple_key, toc_buff, hdr.toc_len); + write_obfuscate(out_fd, simple_key, toc_buff, hdr.toc_len); close(out_fd); } From 7ff442775a4813bc5a7413198ddce6f7b45052f1 Mon Sep 17 00:00:00 2001 From: ui <41072636+iHeq@users.noreply.github.com> Date: Tue, 13 May 2025 13:53:31 +0200 Subject: [PATCH 2/3] Update main.cpp --- Minori/Minori/fuckpaz/main.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Minori/Minori/fuckpaz/main.cpp b/Minori/Minori/fuckpaz/main.cpp index b736a02..f60c563 100644 --- a/Minori/Minori/fuckpaz/main.cpp +++ b/Minori/Minori/fuckpaz/main.cpp @@ -18,7 +18,7 @@ //Add a new game support(ef - the latter tale (en steam)). 2021/11/03 //Add a new game support(ef - the first tale (en steam)). 2021/11/07 //Add a new game support(Trinoline: Genesis (en steam)). 2022/01/21 -//Add a new game src and st support (Haru no Ashioto) 2025/05/13 +//Add a new game src support(Haru no Ashioto) 2025/02/13 // This tool extracts and rebuilds data from *.paz archives used by minori. @@ -56,6 +56,30 @@ static const game_info_t GAME_INFO[] = { { "Haru no Ashioto", 0, { + { "bg", + { 0xc2, 0x9d, 0x47, 0xc9, 0x37, 0xc1, 0x91, 0x07, 0x69, 0xa4, 0xc1, 0x2e, 0x09, 0xbf, 0xb9, 0xab, 0xa2, 0x07, 0xeb, 0x37, 0xd7, 0x1e, 0xbf, 0xab, 0xed, 0xcb, 0x35, 0x15, 0x89, 0xa8, 0xcc, 0x0b, }, + { 0xba, 0x1a, 0xa2, 0x3f, 0x39, 0x86, 0xdc, 0x54, 0xf0, 0xc2, 0x48, 0xf0, 0xba, 0xca, 0x41, 0x13, 0x6a, 0xb5, 0xd4, 0xa7, 0x0e, 0xe7, 0x21, 0x58, 0x75, 0x87, 0x03, 0xa5, 0xee, 0x34, 0xf3, 0x37, } + }, + { "bgm", + { 0xa5, 0x10, 0x9c, 0xbd, 0x81, 0x6f, 0xe8, 0xe5, 0x27, 0x65, 0x8d, 0x9d, 0x44, 0x79, 0x49, 0xbf, 0x1f, 0x6c, 0x2a, 0x2f, 0xd6, 0x6d, 0xf3, 0xb3, 0xea, 0x8c, 0xc1, 0x05, 0xfe, 0x71, 0xee, 0x27, }, + { 0xdc, 0x4e, 0x36, 0xf7, 0xb9, 0x12, 0x18, 0x03, 0xba, 0xe0, 0x7f, 0x9e, 0xb7, 0xbf, 0xa2, 0x34, 0x3e, 0x93, 0x29, 0xda, 0xdb, 0x4c, 0x91, 0x29, 0x96, 0x5d, 0xd1, 0x4d, 0xbe, 0x6f, 0x3e, 0x59, } + }, + { "mov", + { 0xd6, 0x96, 0xba, 0x55, 0xde, 0xe2, 0xec, 0xbb, 0xfc, 0xe0, 0x2a, 0x98, 0xda, 0x22, 0x0e, 0x32, 0x7a, 0x34, 0x41, 0x9b, 0x78, 0xd1, 0xe4, 0x84, 0x90, 0x57, 0x2e, 0x52, 0x5f, 0x79, 0x56, 0x74, }, + { 0 } + }, + { "sys", + { 0x89, 0x5a, 0xdb, 0xae, 0x9f, 0x3b, 0x0d, 0xd5, 0x3a, 0x82, 0x32, 0xbe, 0xb5, 0xaf, 0x13, 0x1f, 0xc0, 0x3f, 0x8b, 0x7a, 0xa8, 0xde, 0xe9, 0xef, 0xd9, 0xd9, 0x96, 0x56, 0xa1, 0xd2, 0xf8, 0x8a, }, + { 0x36, 0xb7, 0x95, 0x07, 0xfb, 0xf5, 0x7c, 0xb8, 0xff, 0xe8, 0xe1, 0x0a, 0xc6, 0x96, 0x07, 0x45, 0x4d, 0x9e, 0x63, 0x1c, 0x48, 0x6b, 0xfe, 0x83, 0xae, 0xad, 0x1b, 0xc0, 0x77, 0x0a, 0x1a, 0xc5, } + }, + { "voice", + { 0xe5, 0x57, 0xac, 0xdd, 0x2c, 0x46, 0xd6, 0xbb, 0xc1, 0x40, 0x00, 0x36, 0xa5, 0xd0, 0xda, 0x4c, 0xb3, 0xf9, 0xa8, 0x46, 0xde, 0x6f, 0xa0, 0x8d, 0xba, 0x08, 0x93, 0xbf, 0x3e, 0x6d, 0xd0, 0x02, }, + { 0xc8, 0x15, 0x46, 0x99, 0x61, 0x74, 0xe8, 0xb5, 0x42, 0x6f, 0x56, 0x8d, 0x98, 0x14, 0xb9, 0xb0, 0x85, 0x88, 0xee, 0x9a, 0x67, 0x40, 0xe8, 0x86, 0x5c, 0x74, 0x4f, 0x84, 0x06, 0xd1, 0x6d, 0xcb, } + }, + { "se", + { 0x8b, 0x6f, 0x4b, 0x50, 0xe0, 0x02, 0x17, 0x98, 0x48, 0x54, 0xc9, 0xca, 0x17, 0xf3, 0x07, 0x08, 0xbc, 0x26, 0x45, 0xff, 0xfe, 0x26, 0x30, 0xbd, 0x86, 0x8b, 0x4d, 0xc3, 0x9e, 0x05, 0xdd, 0x5c, }, + { 0x38, 0x4c, 0x05, 0x2d, 0x32, 0x5a, 0x2b, 0x0c, 0xd8, 0xd7, 0xa3, 0x16, 0xab, 0xd5, 0x8b, 0xfb, 0x61, 0xbd, 0xf3, 0x9d, 0x2c, 0x89, 0x42, 0xda, 0x3f, 0x34, 0xd4, 0xa5, 0x8f, 0x6f, 0xe8, 0x5c, } + }, { "scr", { 0x96, 0x17, 0xf4, 0x71, 0x31, 0xfb, 0x6f, 0xca, 0x04, 0x29, 0x2b, 0xfe, 0x6e, 0x19, 0x15, 0x56, 0x63, 0x7b, 0x6b, 0x29, 0xb5, 0x6d, 0x1f, 0xaa, 0x92, 0xf0, 0x80, 0x04, 0x4f, 0x9d, 0x17, 0xa9, }, { 0x63, 0x94, 0xcf, 0xe6, 0xb7, 0xb6, 0x5a, 0xbc, 0x1d, 0x14, 0xcf, 0xeb, 0x1d, 0xa6, 0x98, 0x4f, 0xf8, 0x41, 0x8b, 0x6f, 0xe7, 0xc3, 0x57, 0x54, 0xa4, 0x91, 0x22, 0x97, 0x2b, 0x43, 0x70, 0xbe, } From 074f4accbbb5a609f9f7d2de965591ffabc25cad Mon Sep 17 00:00:00 2001 From: ui <41072636+iHeq@users.noreply.github.com> Date: Tue, 13 May 2025 13:54:04 +0200 Subject: [PATCH 3/3] Update main.cpp --- Minori/Minori/fuckpaz/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Minori/Minori/fuckpaz/main.cpp b/Minori/Minori/fuckpaz/main.cpp index f60c563..4fab074 100644 --- a/Minori/Minori/fuckpaz/main.cpp +++ b/Minori/Minori/fuckpaz/main.cpp @@ -18,7 +18,7 @@ //Add a new game support(ef - the latter tale (en steam)). 2021/11/03 //Add a new game support(ef - the first tale (en steam)). 2021/11/07 //Add a new game support(Trinoline: Genesis (en steam)). 2022/01/21 -//Add a new game src support(Haru no Ashioto) 2025/02/13 +//Add a new game support(Haru no Ashioto) 2025/02/13 // This tool extracts and rebuilds data from *.paz archives used by minori.