Jump to content

Search the Community

Showing results for tags 'Help'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Visual Novels Discussion
    • Visual Novel Talk
    • Recommendations
    • Walkthroughs
    • Game Technical FAQs & Solutions
  • Development Boards
    • Creative Corner
    • Fan Translation Discussion
    • Translation Projects
    • Original Projects
    • Vtuber Programs & Assets
  • Fuwanovel Community
    • Introduce Yourself
    • Members' Lounge
    • Partners & updates
    • Community Coordination and Feedback
  • Other Discussion
    • Anime/Manga Talk
    • General Discussion
    • Gaming Talk
    • The Coliseum of Chatter

Blogs

  • AwesomeCurry Blog
  • The Geek Clinic
  • Anime of the Season
  • Fixings that Aid Men in Performing Better Physically
  • NookGaming Reviews
  • Fabulous on Fuwa
  • Yumi's Corner
  • Phase 10
  • Distractedly Undistracted ~comment te dire ADHD~
  • Project Recruitment
  • Learn Japanese with Eroge: Random Eroge Review
  • The Wonderful World of Slank
  • (NSFW) [18+] Live Now! The Co-Op "Season of Monster Girls" Lewd Mega Bundle!
  • Zero's Talk
  • 13 Common Online Visual Novel Fan Term Definitions
  • Black Heaven
  • Klarkihime Reviews and News
  • Visual Novel Video Essays
  • Hatsumira -from the future undying- Review
  • KuroKairin's Content Wrap-Up
  • OmOneko DevBlog
  • Riku's VN blog   
  • Disearnestly Disearnest
  • Towards The End Sky
  • fgf
  • tay pls
  • Novel21's Blog
  • Ronin Visual Novel Discussions
  • FinalChaos' Blog
  • KagariSoft Blog
  • The Azure Library
  • Moeblog
  • Anime Heaven
  • An Introduction to Ethical Hacking
  • Nemesis' Eroge (エロゲー) Reviews
  • Clephas' VN home
  • Mon Chérie, Ma Chérie
  • An islander's distorted tastes
  • Lino Does Stuff Too You Know
  • Testing 25060
  • Mr Poltroon's Random Codswallop
  • The Ramblings of a Recluse
  • .farside Supplement
  • Anime Was A Mistake
  • Saya no Uta Review
  • Mana
  • denpaarchivist's corner
  • fun2novel's Funtime Hour
  • Glamorous Palestinian Female Escorts
  • fun2novel's Spoiler Hour
  • Glamorous Palestinian Female Escorts
  • Forgotten Visual Novels
  • On A Rainy Day
  • super's VN experiences
  • Satsuki's Bombard Zone
  • Abogado Trafico Greensville Va
  • In The Clouds
  • RCL's Blog
  • Sirus' Blog
  • Sanahtlig's Corner
  • GFL-Redux (GFL porting project)
  • hikki-ota-neet
  • Rooke's ramblings
  • The ECLIPSED
  • Petallush Women's Best Sellers
  • Thoughts of a Rookie
  • anigatari
  • solidbatman vs. Metal Gear Solid
  • WHAT ARE THE MAIN BENEFITS OF PARTYING AT A LUXURY NIGHTCLUB?
  • Lovin' my Vita Loca
  • Unwonted Studios
  • Soloist
  • Random knowledges
  • Rapscallions' Quarter
  • B L O G B O Y S
  • Suika's Space
  • Kitty's Ramblings
  • YandereGirl Blogging & VN Reviews
  • Decay's musings
  • Fuwalegends ~ As told by Fidget Queen
  • starlessn1ght's random stuff
  • Chronopolis' VN Blog
  • firecat's Blog
  • Godline Games
  • AKISEKAI's Blog
  • Shikomizue's Random Game Reviews
  • Zealty
  • Rains' VN and Anime Weather Report
  • Black Rabbit's Coffee Shop
  • The Bookshelf
  • re:Edit
  • MekaMeka Time
  • Seems Legit
  • FuwaReviews Team
  • The Month In Reviews
  • 'What's a tsundere?'
  • solidbatman's Gaming Blog
  • Kaguya does touhou
  • The Better Than Bad It's Good Blog
  • Random stories of Clephas
  • Imgur reviews
  • Zalor's Seminar
  • Dergonu's blog
  • CeruleanGamer's Blogs on Visual Novels with Gameplay!
  • Arc's VN Talk
  • Divided by Rei
  • The Utterly Hopeless Blog
  • Holy Church of Incoherence (Fuwa Branch)
  • Jitaku Keibiin: No Longer Human
  • Pretty Cure on Fuwanovel
  • Forgetful Fuwa
  • John Smith's blog
  • Vn ramblings
  • Dank Mango's
  • Aizen's Rambling Corner
  • The Freditorial
  • Keaton's Terrible Blog
  • Gunpla Blog
  • Reviews and Rants
  • Uncensored and honest reviews
  • Li-Fei's Indie VN Musings
  • Some random blog
  • I am an artist of backgrounds
  • Reading Ginharu Very Slowly
  • Daily Musings
  • The VN dev sector
  • Alei Translation's Blog
  • sm's Random VN Rants
  • Social Justice with Sana-chan
  • Tyrviews
  • Endless Days, Sleepless Nights
  • SJWs leave us gamers & otakus alone & leave what we love alone
  • Vndbreview
  • Daydreamer's Thoughts & Reviews
  • Non chan's moe corner
  • EVN Chronicles
  • Maggie's journal
  • Nobody Cares: The Blog
  • Ranzo's Rancid Ramblings
  • Akshay Attempts Reviews
  • VNs, Streamers, and Exercise!
  • Chuuni Philosophy
  • Mitch and Gaming
  • Discount Nfl Jerseys - Youth Basketball Jerseys Cheap
  • Weiterfechten's Clockworks
  • Anti-Blonde Blog
  • That feeling when someone doesn't mod "le Watakushi"
  • Phantom Visual Novel Reviews
  • Maggie's fics
  • The Kyonyuu Kingdom
  • Word Line Divergence
  • Ramaladni's Gift
  • Review of VNs that I have a physical copy of, including pictures of the physical copy
  • Banter with Asonn.
  • A Closer Look
  • Learning How To Learn Series
  • Kuu's Words Manufactory
  • DivinityCure's Logs
  • onoramblings
  • Bad VN gossip blog
  • Monthly physical visual novel news
  • Lemurian Ruins
  • VN Thoughts
  • Exploring Visual Novels [Pixels, Polygons, Prose VN Feed]
  • Orglings of an Alpacaman
  • A compilation of quality VN from 2000 to 2018
  • Visual Novel Game Reviews
  • HentaiReviews.moe
  • Kickstarters and delays for physical releases
  • Former Spammer's Ramblings
  • Infinity Hole
  • Tsujidou San virgin road
  • Critically Subjective
  • About self satisfaction while playing VN's
  • Mind Of Jardic
  • Sparteh's Philosophy corner - Visual Novel Reviews and Thoughts
  • EVN Chronicles' V-tube Corner

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Interests


Projects


Japanese language


Development skill


X.com


Reddit


TikTok


Instagram


Threads


Steam


YouTube


Facebook


Fediverse


GitHub


Visual Novel Database (VNDB)


My Anime List (MAL)


Anime News Network (ANN)


Anilist


Kitsu


Discord


Skype


Public E-Mail


Website

  1. I have just edited some scripts, and images out from the .dat file modify them, and create a patch.dat or patch8.dat file, and I opened it. It doesn't work, can you tell why?, I was wondering if this is the same method as Kirikiri, and I dunno what Source Engine is the game "Niizuma Lovely x Cation". It might soon I will be creating a translation project for the Hibiki Work's VN.
  2. I am trying to edit some images in kirikiri file for translation, I just successfully convert the .tlg to any image like .bmp .png and .jpeg/.jpg, but after editing I don't know how to convert it back, I try to search on google but nothing shows, so If anything you can help just post in the comment, I'm trying to Translate the game PRETTY X CATION, tnx in advance
  3. Hello all. As of right now I'm in the process of creating a fan translation patch for Clover Day's! I've run into a bit of an issue though as I'm new to the translating gig. So here's what I have. I can read and write japanese just fine, so there's no issue there. However, extracting the text to replace with the english alphabet is becoming a problem. Clover day's files consist of .xp3's primarily. I've used Garbro to extract a scenario file which I believe should hold the actual text. Opening this with notepad++ reveals a wall of (what appears to be) encrypted or compressed text. SO I gave up on using Garbro and went along to try out krkrextractor. Then I followed the intstructions of making sure the krkr exe and dll file are in the game directory, however the krkr main menu doesn't open. SO, in the end I'm back to square one. I can't extract anything to edit and repack. Any advice? *also tried xp3tools but dear christ cmd absolutely hates me.... invalid syntax and unaccessible folders for days....
  4. 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.
  5. Hey guys, So after seeing how big Tasogare no Sinsemilla is, I decided that it may be better to train in the mountains with much, much shorter VNs first. I want to see if I can tackle Summer Surprise, which runs on the Artemis Engine. I'm able to extract the resources and edit the scripts, but how do I repackage it into the root.pfs.xx archive? I've looked around, and there aren't very many resources for the Artemis Engine, and GARbro doesn't create those archives. Thanks for any help and advice you can provide!
  6. 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
  7. 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) ~
  8. Ok this project was started in December 2017. I just wanna know if it is completed or is it abandoned?
  9. 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 !
  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.
  11. 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.
  12. 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. ^^;;)
  13. 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.
  14. Hello, Im starting a new fan TL project. The engine is siglus engine, I used siglus extract to unpack the scene.cpk file which resulted in two types of files: .ss and .txt. My question is, what to do next? I tried editing the txt and repacking but that won't work. Please help. Edit: since we talked about a lot of tools, might as well reperpouse this thread to general siglus engine related questions.
  15. 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! >.<
  16. Hello, I'm attempting to translate some Tanuki Soft games, the game I'm testing right now is Shoukoujo. So far I've been able to extract all the files using Garbro and since the game reads files from folders inside the installation folder without needing to repackage them I've also been able to insert edited images. The problem I'm having is with the .bcs script files, I took a look at the script files from Hatsukoi by Rune and I noticed they seem to share the same engine, both games use .bcs script files and if I open the files on a hex editor they seem to have the same header. Given how Hatsukoi has a fan translation where the .bcs files were converted to plain text saved as .csv, I believe doing the same for the script files of Tanuki Soft games would allow me to translate them. My question is if there's anyone who can point me to where I could learn how to decrypt the .bcs files into plain text, maybe a way to reverse engineer the encryption given I have the original and decrypted files from the Hatsukoi patch, I would also like to know if there's anyone here from the Hatsukoi translation team, or anyone that knows what tools they could have used, that could maybe help me out. Thanks.
  17. vndb link Data extraction thread and Script Extraction Thread does not help at all. I do not understand why those threads were pinned. If anyone can help, it would be appreciated. The main archive is data.dat, so I assume the scripts are within that archive.
  18. There doesn't seem to be a kirikiri2 option in ITH, so i went for kirikiri1... but there was nothing being clipboarded. The others only clipboard broken parts of the line from the original VN. Has anything like this happen to anyone before? #ReadingWithFurigana
  19. 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.
  20. I'm currently translating the Lune game Youkoso! Sukebe Elf no Mori He. While I have the translation part covered, I don't know the first thing about creating the patch. If anyone can tell me what to do, I would be grateful.
  21. 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.
  22. Hello.. A friend of mine extracted SCRIPT .DAT files from COLLAR X MALICE English psvita game. Now, i want to convert it to text files. i tried to use hkki (i researched a bit and they said it works with stcm2l header otomate games particularly). But it seems i cant even make it work (since all of the information i got here are from old posts, i get so confuse). Is there any other way other than hkki? Hope someone could help me.thank you!
  23. 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.
×
×
  • Create New...