Search the Community
Showing results for tags 'Help'.
-
Hello, I decided to perhaps try my hand at translation after reading several untranslated VNs. I added the "tl project" and "recruiting" tags, since I hope to turn this into a project. I've tried using various xp3 tools and even GARbro, but there seems to be some encryption I can't figure out. Games made by the same developer before and after this game released do have encryption schemes in GARbro. Could someone lend me a hand at extracting the scripts? Thank you! Oh, and here's a download link for my xp3 file: https://drive.google.com/file/d/1HSQwMDiMJj96CAAMZCGEQ3SCspKPuARu/view?usp=sharing
-
Hi, I'm new to VN. My friend was the one introduce me to vn (katawa,majikoi,muv-luv etc) and I understand that not all visual novel are translated (princess lover,shuffle essence+,kimi ga nozomu eien and this vn about fencing) -removed- Oh, and don't worry about not understanding Japanese's lang, I have VNR (just in case). Thank you.
-
Hey there, I am planning to create a new visual novel project and I need volunteers to do the art~ You won't be getting paid, but will be given credits for your art. The visual novel I'm planning to make has a dark story to it~ So I need somebody who can draw with that sort of dark style~ Email me at [email protected] and send me your sample artwork. I will reply to your email ~ *The visual novel I'm creating will not be for commercial purposes, and will not involve any sort of payment. Thank you very much. EXAMPLE ART: (for reference) ~
-
Um, hello... I'm new here. I really need someone good to help hack and get data on this game called Round Around the World (RAtW). I have the files needed all here, but I can't seem to decode the encryption. It would be nice if someone could help decrypt the text as I'm trying to translate the game for everyone to play!
- 4 replies
-
- help
- discussion
-
(and 1 more)
Tagged with:
-
So I've been trying to do a localization for Yosuga No Sora (VN), and the archive type this game uses is .noa. My main goal right now is to edit the image files inside (which are .eri files), repack the files into a noa archive and get it to work. I've found out about noa32 and attempted to unpack->repack the noa files with it, but once I create a new archive and replace the original file, the game doesn't read any of the data inside the archive (ex: When I make a new noa archive with image data, the parts where it's supposed to show those images just turn up blank) I've even tried to simply unpack the archive then repack it without modifying anything, but the same problem occurs. The only hint I have as of now is that the newly created noa archive(with no modification of content) is 10mbs smaller than the original (265mb -> 255mb), so I can only assume that something goes missing in the process of unpacking or repacking. Any help would be greatly appreciated, I'm seriously at a complete loss for what to do at this point. Ps: I'm currently doing this under japanese locale settings, and my operating system is windows 10.
-
So I'm trying to repack PAK files that I took apart using Crass. The game is 堕淫フォーカス~パック~, from Heat-Soft / Eroro /2009 The only 2 real tools i've found with potential chances are ACpack32 and Filepack32, but I can't seem to get ACpack to work from some reason and Filepack32 is as far as I can tell, extinct from the internet (all links are rapidshare = dead) . The other tool I've tried is createSRPak, but the files made though it are unreadable by the game. I posted a similar question on the Data Extraction thread, and as of now the only leads i've got are the Crass code Nanashi3 got me: #include <windows.h> #include <tchar.h> #include <crass_types.h> #include <acui.h> #include <cui.h> #include <package.h> #include <resource.h> #include <cui_error.h> #include <utility.h> #include <stdio.h> /* 接口数据结构: 表示cui插件的一般信息 */ struct acui_information IPAC_cui_information = { NULL, /* copyright */ NULL, /* system */ _T(".PAK .WST"), /* package */ _T("1.0.3"), /* revision */ _T("痴汉公贼"), /* author */ _T("2009-3-29 23:09"), /* date */ NULL, /* notion */ ACUI_ATTRIBUTE_LEVEL_UNSTABLE }; /* 所有的封包特定的数据结构都要放在这个#pragma段里 */ #pragma pack (1) typedef struct { s8 magic[4]; /* "IPAC" */ u16 index_entries; u16 unknown; } PAK_header_t; typedef struct { s8 name[32]; u32 unknown; u32 offset; u32 length; } PAK_entry_t; typedef struct { s8 magic[4]; /* "IEL1" */ u32 length; } iel1_header_t; /* 20 bytes header 1024 bytes palette width * height * 3 dib data width * height alpha */ typedef struct { s8 magic[4]; /* "IES2" */ u32 unknown; /* "IES2" */ u32 width; u32 height; u32 bits_count; u32 reserved[3]; } ies2_header_t; struct key { s32 low; s32 high; }; typedef struct { s8 magic[4]; /* "WST2" */ u32 reserved[2]; u16 adpcm_fmt_parameter[14]; } wst_header_t; #pragma pack () static void *my_malloc(DWORD len) { return malloc(len); } static inline unsigned char getbit_le(unsigned char byte, unsigned int pos) { return !!(byte & (1 << pos)); } static DWORD lzss_decompress(unsigned char *uncompr, DWORD uncomprlen, unsigned char *compr, DWORD comprlen) { unsigned int act_uncomprlen = 0; /* compr中的当前字节中的下一个扫描位的位置 */ unsigned int curbit = 0; /* compr中的当前扫描字节 */ unsigned int curbyte = 0; unsigned int nCurWindowByte = 0xfee; unsigned int win_size = 4096; BYTE win[4096]; memset(win, ' ', nCurWindowByte); while (1) { /* 如果为0, 表示接下来的1个字节原样输出 */ BYTE flag; if (curbyte >= comprlen) break; flag = compr[curbyte++]; for (curbit = 0; curbit < 8; curbit++) { if (getbit_le(flag, curbit)) { unsigned char data; if (curbyte >= comprlen) goto out; if (act_uncomprlen >= uncomprlen) goto out; data = compr[curbyte++]; uncompr[act_uncomprlen++] = data; /* 输出的1字节放入滑动窗口 */ win[nCurWindowByte++] = data; nCurWindowByte &= win_size - 1; } else { unsigned int copy_bytes, win_offset; unsigned int i; if (curbyte >= comprlen) goto out; win_offset = compr[curbyte++]; if (curbyte >= comprlen) goto out; copy_bytes = compr[curbyte++]; win_offset |= (copy_bytes >> 4) << 8; copy_bytes &= 0x0f; copy_bytes += 3; for (i = 0; i < copy_bytes; i++) { unsigned char data; if (act_uncomprlen >= uncomprlen) goto out; data = win[(win_offset + i) & (win_size - 1)]; uncompr[act_uncomprlen++] = data; /* 输出的1字节放入滑动窗口 */ win[nCurWindowByte++] = data; nCurWindowByte &= win_size - 1; } } } } out: return act_uncomprlen; } static int ipac_decompress_iel1(iel1_header_t *iel1, DWORD iel1_len, BYTE **ret_buf, DWORD *ret_len) { BYTE *uncompr, *compr; DWORD uncomprLen, comprLen, actlen; uncomprLen = iel1->length; uncompr = (BYTE *)malloc(uncomprLen); if (!uncompr) return -1; compr = (BYTE *)(iel1 + 1); comprLen = iel1_len - sizeof(*iel1); actlen = lzss_decompress(uncompr, uncomprLen, compr, comprLen); if (actlen != uncomprLen) { free(uncompr); return -1; } *ret_buf = uncompr; *ret_len = actlen; return 0; } /********************* WST *********************/ /* 封包匹配回调函数 */ static int IPAC_WST_match(struct package *pkg) { s8 magic[4]; if (pkg->pio->open(pkg, IO_READONLY)) return -CUI_EOPEN; if (pkg->pio->read(pkg, magic, sizeof(magic))) { pkg->pio->close(pkg); return -CUI_EREAD; } if (memcmp(magic, "WST2", 4)) { pkg->pio->close(pkg); return -CUI_EMATCH; } return 0; } /* 封包资源提取函数 */ static int IPAC_WST_extract_resource(struct package *pkg, struct package_resource *pkg_res) { BYTE *wst_buf; u32 wst_buf_len; if (pkg->pio->seek(pkg, 0, IO_SEEK_SET)) return -CUI_ESEEK; if (pkg->pio->length_of(pkg, &wst_buf_len)) return -CUI_ELEN; wst_buf = (BYTE *)malloc(wst_buf_len); if (!wst_buf) return -CUI_EMEM; if (pkg->pio->read(pkg, wst_buf, wst_buf_len)) { free(wst_buf); return -CUI_EREAD; } pkg_res->raw_data = wst_buf; pkg_res->raw_data_length = wst_buf_len; return 0; } /* 资源保存函数 */ static int IPAC_WST_save_resource(struct resource *res, struct package_resource *pkg_res) { WAVEFORMATEX wav_header; DWORD riff_chunk_len, fmt_chunk_len, data_chunk_len; char *riff = "RIFF"; char *id = "WAVE"; char *fmt_chunk_id = "fmt "; char *data_chunk_id = "data"; char *hack_info = "Hacked By 痴汉公贼"; WORD adpcm_para[16]; BYTE *data_chunk; wst_header_t *wst2; BYTE *wst_buf = (BYTE *)pkg_res->raw_data; DWORD wst_buf_len = pkg_res->raw_data_length; if (res->rio->create(res)) return -CUI_ECREATE; wst2 = (wst_header_t *)wst_buf; /* 这个应该是还原为ADCM以后的结果 */ /* 00441E00 01 00 02 00 44 AC 00 00 10 B1 02 00 04 00 10 00 ....D?..?..... */ wav_header.wFormatTag = 2; /* ADPCM */ wav_header.nChannels = 2; wav_header.nSamplesPerSec = 0xac44; wav_header.nAvgBytesPerSec = 0xac44; /* ADPCM是4:1压缩,因此ac44的4倍就是0x2b110了 */ wav_header.nBlockAlign = 0x800; wav_header.wBitsPerSample = 4; wav_header.cbSize = 32; adpcm_para[0] = 0x07f4; adpcm_para[1] = 0x0007; memcpy(&adpcm_para[2], wst2->adpcm_fmt_parameter, sizeof(wst2->adpcm_fmt_parameter)); data_chunk = (BYTE *)(wst2 + 1); data_chunk_len = wst_buf_len - sizeof(*wst2); data_chunk_len &= ~(wav_header.nBlockAlign - 1); fmt_chunk_len = 16 + 2 + wav_header.cbSize; riff_chunk_len = 4 + (8 + fmt_chunk_len) + (8 + data_chunk_len); if (res->rio->write(res, (char *)riff, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, &riff_chunk_len, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, id, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, fmt_chunk_id, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, &fmt_chunk_len, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, &wav_header, sizeof(wav_header))) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, adpcm_para, sizeof(adpcm_para))) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, data_chunk_id, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, &data_chunk_len, 4)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, data_chunk, data_chunk_len)) { res->rio->close(res); return -CUI_EWRITE; } if (res->rio->write(res, hack_info, strlen(hack_info))) { res->rio->close(res); return -CUI_EWRITE; } res->rio->close(res); return 0; } /* 封包资源释放函数 */ static void IPAC_WST_release_resource(struct package *pkg, struct package_resource *pkg_res) { if (pkg_res->raw_data) { free(pkg_res->raw_data); pkg_res->raw_data = NULL; } } /* 封包卸载函数 */ static void IPAC_WST_release(struct package *pkg, struct package_directory *pkg_dir) { pkg->pio->close(pkg); } /* 封包处理回调函数集合 */ static cui_ext_operation IPAC_WST_operation = { IPAC_WST_match, /* match */ NULL, /* extract_directory */ NULL, /* parse_resource_info */ IPAC_WST_extract_resource, /* extract_resource */ IPAC_WST_save_resource, /* save_resource */ IPAC_WST_release_resource, /* release_resource */ IPAC_WST_release /* release */ }; /********************* PAK *********************/ /* 封包匹配回调函数 */ static int IPAC_PAK_match(struct package *pkg) { s8 magic[4]; if (pkg->pio->open(pkg, IO_READONLY)) return -CUI_EOPEN; if (pkg->pio->read(pkg, magic, sizeof(magic))) { pkg->pio->close(pkg); return -CUI_EREAD; } if (memcmp(magic, "IPAC", 4)) { pkg->pio->close(pkg); return -CUI_EMATCH; } return 0; } /* 封包索引目录提取函数 */ static int IPAC_PAK_extract_directory(struct package *pkg, struct package_directory *pkg_dir) { PAK_header_t PAK_header; PAK_entry_t *index_buffer; unsigned int index_buffer_length; if (pkg->pio->seek(pkg, 0, IO_SEEK_SET)) return -CUI_ESEEK; if (pkg->pio->read(pkg, &PAK_header, sizeof(PAK_header))) return -CUI_EREAD; pkg_dir->index_entries = PAK_header.index_entries; index_buffer_length = pkg_dir->index_entries * sizeof(PAK_entry_t); index_buffer = (PAK_entry_t *)malloc(index_buffer_length); if (!index_buffer) return -CUI_EMEM; if (pkg->pio->read(pkg, index_buffer, index_buffer_length)) { free(index_buffer); return -CUI_EREAD; } pkg_dir->directory = index_buffer; pkg_dir->directory_length = index_buffer_length; pkg_dir->index_entry_length = sizeof(PAK_entry_t); return 0; } /* 封包索引项解析函数 */ static int IPAC_PAK_parse_resource_info(struct package *pkg, struct package_resource *pkg_res) { PAK_entry_t *PAK_entry; PAK_entry = (PAK_entry_t *)pkg_res->actual_index_entry; strcpy(pkg_res->name, PAK_entry->name); pkg_res->name_length = -1; /* -1表示名称以NULL结尾 */ pkg_res->raw_data_length = PAK_entry->length; pkg_res->actual_data_length = 0; /* 数据都是明文 */ pkg_res->offset = PAK_entry->offset; return 0; } /* 封包资源提取函数 */ static int IPAC_PAK_extract_resource(struct package *pkg, struct package_resource *pkg_res) { BYTE *compr, *uncompr, *actbuf; DWORD uncomprlen, comprlen, actlen; comprlen = pkg_res->raw_data_length; compr = (BYTE *)malloc(comprlen); if (!compr) return -CUI_EMEM; if (pkg->pio->readvec(pkg, compr, comprlen, pkg_res->offset, IO_SEEK_SET)) { free(compr); return -CUI_EREADVEC; } if (pkg_res->flags & PKG_RES_FLAG_RAW) { pkg_res->raw_data = compr; return 0; } if (!memcmp(compr, "IEL1", 4)) { if (ipac_decompress_iel1((iel1_header_t *)compr, comprlen, &uncompr, &uncomprlen)) { free(compr); return -CUI_EUNCOMPR; } free(compr); compr = NULL; actbuf = uncompr; actlen = uncomprlen; } else { uncompr = NULL; uncomprlen = 0; actbuf = compr; actlen = comprlen; } if (!memcmp(actbuf, "IES2", 4)) { ies2_header_t *ies2 = (ies2_header_t *)actbuf; BYTE *save_buf; DWORD save_len; if (ies2->bits_count == 24) { BYTE *rgba; actlen = ies2->width * ies2->height * 4; rgba = (BYTE *)malloc(actlen); if (!rgba) { free(actbuf); free(compr); return -CUI_EMEM; } BYTE *rgb = actbuf + 0x420; BYTE *p_alpha = rgb + ies2->width * ies2->height * 3; BYTE *p_rgba = rgba; for (unsigned int y = 0; y < ies2->height; y++) { for (unsigned int x = 0; x < ies2->width; x++) { BYTE alpha = *p_alpha++; p_rgba[0] = (rgb[0] * alpha + 0xff * ~alpha) / 255; p_rgba[1] = (rgb[1] * alpha + 0xff * ~alpha) / 255; p_rgba[2] = (rgb[2] * alpha + 0xff * ~alpha) / 255; p_rgba[3] = alpha; rgb += 3; p_rgba += 4; } } if (MyBuildBMPFile(rgba, actlen, NULL, 0, ies2->width, 0 - ies2->height, 32, &save_buf, &save_len, my_malloc)) { free(rgba); free(actbuf); free(compr); return -CUI_EMEM; } free(rgba); } else { if (MyBuildBMPFile(actbuf + 0x420, actlen - 0x420, (BYTE *)(ies2 + 1), 0x400, ies2->width, 0 - ies2->height, ies2->bits_count, &save_buf, &save_len, my_malloc)) { free(actbuf); free(compr); return -CUI_EMEM; } } free(actbuf); uncompr = save_buf; uncomprlen = save_len; pkg_res->replace_extension = _T(".IES2.bmp"); pkg_res->flags |= PKG_RES_FLAG_REEXT; // } else if (!lstrcmpi(pkg->extension, _T(".IES"))) { } else if (strstr(pkg_res->name, ".IES")) { BYTE *save_buf; DWORD save_len; #if 0 // if (MyBuildBMPFile(actbuf + 0x420, actlen - 0x420, actbuf + 0x20, 0x400, *(DWORD *)actbuf, if (MyBuildBMPFile(actbuf + 0x414, actlen - 0x414, NULL, 0, *(DWORD *)actbuf, 0 - *(DWORD *)(actbuf + 4), *(DWORD *)(actbuf + 8), &save_buf, &save_len, my_malloc)) { free(actbuf); return -CUI_EMEM; } #else if (!memcmp(actbuf, "BM", 2)) { pkg_res->raw_data = compr; pkg_res->raw_data_length = comprlen; pkg_res->actual_data = actbuf; pkg_res->actual_data_length = actlen; return 0; } else if (*(DWORD *)(actbuf + 8) == 24) { DWORD width = *(DWORD *)actbuf; DWORD height = *(DWORD *)(actbuf + 4); BYTE *rgba; actlen = width * height * 4; rgba = (BYTE *)malloc(actlen); if (!rgba) { free(actbuf); free(compr); return -CUI_EMEM; } BYTE *rgb = actbuf + 0x414; BYTE *p_alpha = rgb + width * height * 3; BYTE *p_rgba = rgba; for (unsigned int y = 0; y < height; y++) { for (unsigned int x = 0; x < width; x++) { BYTE alpha = *p_alpha++; p_rgba[0] = (rgb[0] * alpha + 0xff * ~alpha) / 255; p_rgba[1] = (rgb[1] * alpha + 0xff * ~alpha) / 255; p_rgba[2] = (rgb[2] * alpha + 0xff * ~alpha) / 255; p_rgba[3] = alpha; rgb += 3; p_rgba += 4; } } if (MyBuildBMPFile(rgba, actlen, NULL, 0, width, 0 - height, 32, &save_buf, &save_len, my_malloc)) { free(rgba); free(actbuf); free(compr); return -CUI_EMEM; } free(rgba); } else { if (MyBuildBMPFile(actbuf + 0x414, actlen - 0x414, NULL, 0, *(DWORD *)actbuf, 0 - *(DWORD *)(actbuf + 4), *(DWORD *)(actbuf + 8), &save_buf, &save_len, my_malloc)) { free(actbuf); free(compr); return -CUI_EMEM; } } #endif free(actbuf); uncompr = save_buf; uncomprlen = save_len; pkg_res->replace_extension = _T(".IES.bmp"); pkg_res->flags |= PKG_RES_FLAG_REEXT; } pkg_res->raw_data = compr; pkg_res->raw_data_length = comprlen; pkg_res->actual_data = uncompr; pkg_res->actual_data_length = uncomprlen; return 0; } /* 资源保存函数 */ static int IPAC_PAK_save_resource(struct resource *res, struct package_resource *pkg_res) { if (res->rio->create(res)) return -CUI_ECREATE; if (pkg_res->actual_data && pkg_res->actual_data_length) { if (res->rio->write(res, pkg_res->actual_data, pkg_res->actual_data_length)) { res->rio->close(res); return -CUI_EWRITE; } } else if (pkg_res->raw_data && pkg_res->raw_data_length) { if (res->rio->write(res, pkg_res->raw_data, pkg_res->raw_data_length)) { res->rio->close(res); return -CUI_EWRITE; } } res->rio->close(res); return 0; } /* 封包资源释放函数 */ static void IPAC_PAK_release_resource(struct package *pkg, struct package_resource *pkg_res) { if (pkg_res->actual_data) { free(pkg_res->actual_data); pkg_res->actual_data = NULL; } if (pkg_res->raw_data) { free(pkg_res->raw_data); pkg_res->raw_data = NULL; } } /* 封包卸载函数 */ static void IPAC_PAK_release(struct package *pkg, struct package_directory *pkg_dir) { if (pkg_dir->directory) { free(pkg_dir->directory); pkg_dir->directory = NULL; } pkg->pio->close(pkg); } /* 封包处理回调函数集合 */ static cui_ext_operation IPAC_PAK_operation = { IPAC_PAK_match, /* match */ IPAC_PAK_extract_directory, /* extract_directory */ IPAC_PAK_parse_resource_info, /* parse_resource_info */ IPAC_PAK_extract_resource, /* extract_resource */ IPAC_PAK_save_resource, /* save_resource */ IPAC_PAK_release_resource, /* release_resource */ IPAC_PAK_release /* release */ }; /* 接口函数: 向cui_core注册支持的封包类型 */ int CALLBACK IPAC_register_cui(struct cui_register_callback *callback) { /* 注册cui插件支持的扩展名、资源放入扩展名、处理回调函数和封包属性 */ if (callback->add_extension(callback->cui, _T(".PAK"), NULL, NULL, &IPAC_PAK_operation, CUI_EXT_FLAG_PKG | CUI_EXT_FLAG_DIR)) return -1; if (callback->add_extension(callback->cui, _T(".WST"), _T(".wav"), NULL, &IPAC_WST_operation, CUI_EXT_FLAG_PKG)) return -1; return 0; } For starters, If anyone happens to have a copy of Filepack32.exe please re-upload it to someplace. Edit: I got adpack32 to work, and it doesn't support this specific type of PAK. I'm really lost now. If anyone has suggestions or tips I would appreciate it greatly, these PAK and Noa archives have been driving me crazy for a few days now.
-
Hello, I've recently started to translate Toradora! Portable in French ( https://forums.fuwanovel.net/topic/22082-recruiting-toradora-portable-french-translation/ ) and I need to know how to pack the .so files of the translation into the game. The only thing we found is this compiler on Github : https://github.com/xyzz/taiga-aisaka but we don't have any idea on how to use it ! If someone does please contact me on Discord : 123321mario#1337 or on this forum ! If you know something else on this game that can help us, please let us know !
-
So after some time, I was able to extract WAR files from the Visual Novel I am interested in, and I was wondering if anyone knew how to extract the S25 files and OGV files. Not only does Google not know what these file types are, I don't know what they are, and no leads on this matter. Would really greatly appreciate it if someone can give me some information on this. Thank you! Edit: The game is Gensou no Idea ~Oratorio Phantasm Historia~ And after some research and thanks from Moogy from tlwiki, I was able to find out the S25 and OGV files aren't meant to be extracted but decompiled. So if my understandings are correct, the s25 and ogv files are; BGs, voices, CGs, characters, and script files, etc just in the form of s25 and ogv. tl;dr: if anyone knows how to decompile or view s25 and ogv files, or has a tool for it, it would be very much appreciated if you can help me. Thank you Ame for letting me know to include the game title!
-
help Encrypted Kirikiri game won't read patch?
kudaratan posted a topic in Fan Translation Discussion
Hello, I'm trying to make a patch of a game called Hatsukare Ecchi, but for some reason, I can't seem to make a patch it will read. When I use any programme other than KrkrExtract it ignores the file, but when I do use it, I get this error: What should I do? Any help is appreciated, thank you! (Sorry if the answer is somewhere on here, I tried looking it up and couldn't find anything. ^^;;) -
First off, I'm new to this forum, but i can't seem to solve my problems so I'm desperately making an account to try and solve all this. i apologize if i posted in the wrong forum. I'm attempting to translate "Torikago no Marriage" also known as Birdcage Marriage or 鳥籠のマリアージュ. The game was developed by Kalmia8. is listed to use the KiriKiri2 engine. VNDB page: https://vndb.org/v13849 First off: I am translating the .png images i have extracted from the game's data.xp3 with a nekopara bms script (http://aluigi.altervista.org/papers/bms/others/nekopara.bms), krkrextract is an absolute nightmare to work with and this script worked just fine. all the images extract as png. no fancy files to work with. but when repacking (i have tried this with krkrextract, it worked that one time, as well as the old xp3-tools) i thought xp3-tools didn't work due to how old it was, so i tried krkrextract and...? hooray! the same error. something about startup.tjs not being found. and who would have known...? there isn't a startup.tjs in data.xp3, neither is it anywhere else. Second off: People say that all the text is stored in scenario.xp3 with all the ks files... well guess what? this game doesn't even have a scenario.xp3! not even a single one of the files in any xp3 for the game has a damn ks file. and this is the same case for "Kami-sama nante yondenai!" which is also a game by Kalmia8, however, Fashioning Little Miss Lonesome, a game which was actually localized, did have all the files i'm missing. good to note that the games still ran with scripts so they are somewhere Third off: I heard that the missing tjs file error can be solved by removing the checks for the files, which could ultimately solve my problem regarding the missing non-existent file. but it involves editing a ks file. guess who doesn't have the ks file? other things to note, when the .xp3.sig files for the xp3 files are removed from the folder (as well as the tpm, which i heard was part of the protection), the game still runs. nothing stopped the game from running until i removed the original data.xp3 which didn't prompt an error for startup.tjs, only my modified data.xp3 prompted the error to show. I tried listing as much information as I can about the problem. I really hope someone can come over to this post and bless me with some help. this is driving me insane.
-
Hi guys! newbie here. Please correct me if i did something wrong with this post. But I need help and guide. I want to port P/A Potential Ability to Ren'py so I can play it to Android and especially at the same time practicing Ren'py or Visual Novel in general. I extracted all data needed but my problem is I can't get the CG's because they are in .rct format while the sprites in .tga but a black silhouette. Also if someone can translate the scripts in the scenarios. It will be a great help and greatfully thanked the person. I'm learning Japanese but it is still poor it maybe can cause of an accurate translations. And also I'm planning to port most of Sei Shoujo games. PLEASE HELP ME! >.<
- 9 replies
-
- help
- tl project
-
(and 1 more)
Tagged with:
-
I am part of a group of translation that has taken Sakura Hatsuyuki translation into Spanish. Recently, a user of this forum helped to provide us with the necessary tool to encrypt and decrypt the scripts. But we've run into a problem, Siglusengine supports the maximum number of 168 (56 * 3) characters for dialogue and 174 (58 * 3) characters for the story. We have tried in various ways, but came to the conclusion that the script only serves to insert the text of each line in place on the * .SS. It does not allow us to add lines or change commands. Every time we spent the maximum number of characters, the program issues a warning of "message overflow" (in Japanese), automatically separating it into two dialogues. The error looks like this: We need some way to be able to add new lines since the translation is extensive, and there are fundamental parts (of history) where you can not summarize. As an option, we need to know if there is any way to stop firing siglusengine warning. That would be enough. We would be grateful if someone could help with this problem. First of all, Thanks.
-
Somebody could help me? I'm looking for a tool to repackage .pak files from the novel visual "discipline" The only tool I found is no longer available due to rapidshare closing (FILEPACK32.exe)
-
Hi, my name is Gezoz and before this account I was an avid lurker within this forum. Now I want to do something than lurking. I've started to try and translate "Tsujidou-san no Virgin Road" since I enjoy what Minato carnival/Minato soft makes. Anyways onto the problem I was having, I was attempting to replace the menu buttons with the English ones by extracting all arc files, (arc0.dat, arc1.dat, arc2.dat, arc3.dat). I used asmodean's exwhaledat_v2 progam to extract all of them and used arc_unpacker to convert the TLG files into PNG files. After I was done with the PNG files I converted them back into TLG using krkrtpc.exe. From there I placed the TLG files back into the sys folder where they came from and attempted to pack the folders back into the ".dat" file format with rr-'s whale-tools. This is where I got stuck because I was able to pack one folder at a time but I didn't know how to pack all the folders back into ".dat". I don't know much about coding or hacking so this was the best I could do. Soon I will put up a recruitment topic in the Translation sub-topic for Translation and other things, but for now I want to know how to repack it so I can test out if the menu will work. Thank you for reading and any help would be very much appreciated.
-
Hi, so, using Wayback machine and downloading source code of both ONScripter-EN and PONScripter (from Uncle Mion site) I tried compiling them with no result. I'm on Windows, I first tried with Visual Studio, but it didn't work (SDL.h missing) and then with MinWG (g++ -o onscripter onscripter.ccp) but there was the same error (missing SDL.h). I tried putting SDL.h and all the files that the error sign said, but well there was no improvement. I even tried with the original ONScripter, but the error remained. How should I compile it? And, if there is no way to compile it, as last resort, how could I edit the exe with an hex editor? I read about someone who did it. Thanks for all the help.
-
Hey guys, im trying to translate the game Kono Oozora ni, Tsubasa wo Hirogete but obviously got some problems with it. So, here's what i've already done : 1. I've extracted RIO.arc and got files i needed (there were 161 files) 2. Then i used a special japanese tool that decrypts and converts files to .txt and i noticed only 100 of them , why's that?? Where are the rest of them? And how to make the game read changed files? For example i've finished the translation but these .txt file should become .ws2 back. Also , how do I make the game change the font so the text in the game can be cyrillic? Will be grateful for your help!!
-
I'm currently working on translating a mid-2000's eroge that was built on the kirikiri (KAG3) engine. The translation has actually been going well, with almost no problems getting the word wrapping, system file tweaks, and other minor adjustments taken care of, so I'm not in need of assistance for those items. My current problem lies more on the extra curricular side of this project. Roughly a year after the eroge was released, the creator released several flash minigames associated with the VN as a separate bundle altogether. As such, I thought it would be fun to port them into the main VN, and have them selectable from the main menu. There is some precedent for this, as the game already makes use of .swf files for cutscenes, CG viewing, and the saving menu. Decompiling the .swf files and translating them has been relatively easy, and I've successfully integrated them to the extent that the minigames can be opened and closed within the VN itself. However, for whatever reason, keystrokes will not register correctly when the .swf is loaded through the VN. Mouse clicking and the general operations of the flash file still work smoothly, but keyboard characters are only recognized if typed a split second after clicking the mouse (otherwise, this leads to the flash file acting like nothing was typed at all). So in order to use the keyboard for progressing through the .swf, I have to rapidly tap my mouse clicker for my typing to register. The flash file works correctly as a standalone .swf, so I can only assume there's some setting within kirikiri that is causing this issue. It doesn't help that documentation on using flash with the engine is severely lacking, as the developers of the engine only note that keyboard problems with flash may occur. I figured it wouldn't hurt to look for someone with experience in the engine, to see whether this side project to the translation is a pointless endeavor, or feasible with further tweaking.
-
Hello everyone! I want to do translation of Nekopara Nintendo Switch Edition, so i need some help. Game archives are like "_info.psb.m" and "_body.bin" format. I managed to extract them with exm2lib, but i have one problem now. Is there any way to pack them back to "_info.psb.m" and "_body.bin" format? I can't load them without this. Please someone help me.
-
Hello everyone, I am very new to Visual Novel Reader but there is a visual novel I have wanted to play for years and I finally got my hands on a copy. I know there are plenty of others out there who would enjoy it as well and so, seeing as I'm consulting my Japanese dictionary every two seconds anyway, I thought I'd use the 'subtitle' feature in VNR to translate it for people. However I'm not sure how to get it to work properly. Everything is working fine up until the first choice, then it's like the text forgets it needs to branch out and either doesn't appear, or appears at the wrong place. Am I doing something wrong? And is it easier to do the translation via VNR's soft subs? Or would making an entire English patch be better? But I'm very new and not technical at all so while I could do the translation, I have no idea where to even begin with patching it and making sure everything goes in the right place. Please help! :3 animeXalchemist
-
Hey! I'm looking to extract basically everything from Sakura no Uta (script/assets/UI stuff) and I'm running into some trouble. The two main problems I'm running into are (a) ExtractData is telling me that the .arc files don't exist and (b) I have straight-up no idea what I'm doing. Would anyone mind giving me some pointers?
-
Is anybody still have Genrin no Kishougun 2 eng patch by nekohen ? Im sick to death, can't find it anywhere .... If you can told or give me link, ill be great of help ....