{"id":19410163,"url":"https://github.com/yurisizuku/galgamereverse","last_synced_at":"2025-05-16T09:06:01.762Z","repository":{"id":41062724,"uuid":"235558109","full_name":"YuriSizuku/GalgameReverse","owner":"YuriSizuku","description":"Reverse Projects for Galgame","archived":false,"fork":false,"pushed_at":"2025-04-01T15:14:06.000Z","size":8440,"stargazers_count":319,"open_issues_count":1,"forks_count":25,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-12T06:05:41.068Z","etag":null,"topics":["galgame","localization","psp","psv","reverse","switch","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YuriSizuku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-22T11:21:13.000Z","updated_at":"2025-04-09T04:11:02.000Z","dependencies_parsed_at":"2023-01-29T17:01:24.857Z","dependency_job_id":"3903f4ee-73a3-4a0f-b6ff-481d3de81574","html_url":"https://github.com/YuriSizuku/GalgameReverse","commit_stats":{"total_commits":134,"total_committers":8,"mean_commits":16.75,"dds":0.5074626865671642,"last_synced_commit":"448cc33385f8de6d30b98ba62598c3c3dc398cb0"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YuriSizuku%2FGalgameReverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YuriSizuku%2FGalgameReverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YuriSizuku%2FGalgameReverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YuriSizuku%2FGalgameReverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YuriSizuku","download_url":"https://codeload.github.com/YuriSizuku/GalgameReverse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501558,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["galgame","localization","psp","psv","reverse","switch","windows"],"created_at":"2024-11-10T12:14:59.834Z","updated_at":"2025-05-16T09:05:56.754Z","avatar_url":"https://github.com/YuriSizuku.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GalgameReverse\r\n\r\n🍀 Reverse Projects for Galgame.  \r\n\r\nReverse util tools are moved to [ReverseTool](https://github.com/YuriSizuku/ReverseTool)  \r\nLocalization util tools are moved to [Localization](https://github.com/YuriSizuku/LocalizationTool)  \r\n\r\n## 1. Console galgame  \r\n\r\n* `psptm2.py`, encode or decode `tm2` format, support swizzle // 231218 added  \r\n\r\n### koei\r\n\r\n\u003e 金色のコルダ (psp)\r\n\r\n* `corda_cdar.py`, parse cdvdar (type v2) structure  \r\n(comming soon ...)  \r\n* `corda_eboot.py`, patch the eboot for chs support, extend the fontmap and font glphy memory  \r\n* `corda_font.py`, parse 4bpp 16X16 font  \r\n(in processing ...)  \r\n* `corda_eventdat.py`, parse event text, export and import  \r\n\r\n\u003e 遙かなる時空の中で (psp)\r\n\r\n* `haruka_cdar.py`, parse cdvdar (type v4) structure  \r\n\r\n### konami\r\n\r\n\u003e ときめきメモリアル Girl's Side: 3rd Story (psp)\r\n\r\n* `gs3_evsc.py`, parse EVSC opcode, export or import text  \r\n\r\n### kid\r\n\r\n\u003e 想いのかけら －Close to－ (psp) // 240112 added  \r\n\r\n* `kid_psp_bip.py`, decode or encode bip file (implement by pytcc lzss)\r\n\r\n### prototype\r\n\r\n\u003e Air (psv)  \r\n\u003e Clannad (psv)  \r\n\u003e ヴァルプルガの詩(psv)  \r\n\r\n* `prot_psv_dat.py`, dat picture（RGBA8888, RGB888, delta encoding,color panel） decode and encode  \r\n* `port_psv_psbtext.py`, extract and import the text to PSV `air`, can be longer than origin  \r\n* `prot_psv_4bppfnt.py`, for building the psv air 4bpp font  \r\n\r\n\u003e Flowers (psv)\r\n\r\n* `flowers_psv_text.py`, map flowers pc translation text  \r\n* `flowers1-2_psv_pak.py`, `flowers3_psv_pak.py`, `flowers4_psv_pak.py` export or import *.pak  \r\n\r\n\u003e Island (psv)\r\n\r\n* `island_psv_pak.py`, export or import *.pak\r\n\r\n### eldia\r\n\r\n\u003e 神田アリスも推理スル (switch)\r\n\r\n* `kanda_switch_rs4.py`, parse rs4 file for importing text  \r\n* `kanda_switch_fontmap.c`, build the ConvertGb2312ToUtf16 arm64 binray code to support gb2312  \r\n* `kanda_switch_fontmap.py`, make the fontmap to gb2312 and patch sjis char check  \r\n\r\n### hobibox\r\n\r\n\u003e Narcissus ナルキッソス～もしも明日があるなら (psp)\r\n\r\n* `narcissus_psp_lzss.py`, parse lzss structure with header  \r\n* `narcissus_psp_sn.py`, export or import sn.bin (after decompress)  \r\n* `narcissus_psp_sntext.py`, export or import sn.bin (after extract) text  \r\n* `narcissus_psp_2bppfont.py`, parse font.bin and make 2bpp font  \r\n* `narcissus_psp_lbg.py`, extract and rebuild lbg texture  \r\n\r\n### gss (takuyo)\r\n\r\n* `gss_arc.cs`, for `月影の鎖 -錯乱パラノイア` PSP, PSV see, my [pull request](https://github.com/morkt/GARbro/pull/435) in my forked GARBRO  \r\n\r\n\u003e 月影の鎖 -錯乱パラノイア (psp, psv)\r\n\r\n### cycrose\r\n\r\n\u003e 薔薇ノ木ニ薔薇ノ花咲ク (psp)\r\n\r\n* `baranoki_psp_zp.py`, ``baranoki_psp_pk``, support `*.zp`, `*.pk` file for `薔薇ノ木ニ薔薇ノ花咲ク`  \r\n* `baranoki_psp_vmc.py`, `baranoki_psp_pktext.py`, text support  \r\n* `baranoki_psp_fontfnt.py`, `baranoki_psp_fontp.py`, tile font support  \r\n* `baranoki_psp_boot.py`, rebuild the boot for fixing size buffer  \r\n\r\n### nippon1  \r\n\r\n* `ykcmp.py`, an implementation in python to parse ykcmp compression.  \r\n\r\n\u003e 夜廻3 (switch)\r\n\r\n* `yomawari3_switch_nltx.py`, deal with switch swizzle texture in nltx file.\r\n\r\n\u003e 神々の悪戯 (psp)\r\n\r\n(comming soon ...)  \r\n\r\n* `kamigami_psp_nispack.py`, export or import nispack  \r\n* `kamigami_psp_story.py`, export or import text in story.dat  \r\n* `kamigami_psp_font.py`, analyze the multi page font  \r\n* `kamigami_psp_txp.py`, export or import txp picture  \r\n\r\n### if (idea factory)\r\n\r\n\u003e Jewelic Nightmare (psp)\r\n\r\n(comming soon ...)  \r\n\r\n* `jewelic_psp_uf.py`,  building the UF tile font,  for`Jewelic Nightmare (ジュエリック・ナイトメア)`  \r\n* `jewelic_psp_stcm2l.py`,  converting the `ftext` (by [bintext.py](https://github.com/YuriSizuku/ReverseUtil/blob/master/script/bintext.py)) to STCM2Ltool format (made by [STCM2L_import.py](https://github.com/Yggdrasill-Moe/Helheim/blob/master/%E5%8D%81%E9%AC%BC%E4%B9%8B%E7%BB%8A/STCM2L_import.py)),  for`Jewelic Nightmare (ジュエリック・ナイトメア)`  \r\n\r\n### entergram  \r\n\r\n\u003e 9 Nine (switch)  // 231211 added\r\n\r\n* `9nine_switch_fnt.py`, extract and insert glphys for fnt font\r\n\r\n## 2. PC galgame\r\n\r\n### majiro\r\n\r\n* `majiro_arc.py`, export and build majiro `*.arc` file\r\n* `majiro_mjo.py`,  decrypt `*.mjo` file,  `MajiroObjX1.000` to `MajiroObjV1.000`\r\n* `majiro_mjiltext.py`, export and import text from `*.mjil` file by `mjotool2`\r\n\r\n\u003e そらいろ // 230815 added  \r\n\u003e ルリのかさね ～いもうと物語り // 230822 added  \r\n\u003e Winter Polaris\r\n\r\n* `winterpolaris_hook.js`, dump `mjo` and analyze `majiro` in `winter polaris` game  \r\n* `winterpolaris_patch.c`, Majirov3 dynamic hook framework code example  \r\n\r\n### azsystem\r\n\r\n\u003e ラムネ\r\n\r\n* `lamune_hook.js`, decrypt the `*.asb` and `*.tbl` files  \r\n* `lamune_patch.c`, semi-dynamic framework for chs localization\r\n* `lamune_asbtext.py`, export or import text to `*.asb` files\r\n\r\n### systemnnn\r\n\r\n* `systemnnn_patch.c`, patch sjis check, change font, redirect files, repalce `dwq` with png\r\n* `systemnnn_spt.py`, parser `spt` opcode, export and import text\r\n\r\n\u003e 倭人異聞録～あさき、ゆめみし～\r\n\r\n### advhd (willplus)\r\n\r\n* `advhd_patch.c`, gbk support and overide arc file  \r\n* `advhd_arcv1.py`, willplus advhd v1 arc pack or unpack  \r\n* `advhd_arcv2.py`, willplus advhd v2 arc pack or unpack  \r\n* `advhd_wsc.py`, willplus advhd v1 wsc text export or import  \r\n* `advhd_ws2.py`, willplus advhd v2 ws2 text export or import  \r\n* `advhd_pna.py`, willplus advhd pna export and import  \r\n\r\n\u003e あやかしごはん (advhd v1)  \r\n\u003e Blackish House (advhd v2)  \r\n\u003e 華は短し、踊れよ乙女 (advhd v2)  \r\n\r\n### yuris  \r\n\r\n* `yuris_patch.c`, universe yuris patch, tested by 3M_Marionettes  \r\n\r\n\u003e 越えざるは红い花 remaster\r\n\r\n* `akaihana_yurispatch.c`, yuris gbk support  \r\n\r\n\u003e 3M_Marionettes\r\n\r\n### ffa\r\n\r\n\u003e 天巫女姫\r\n\r\n* `amanomiko_patch.c`, add new lzss support and gbk support\r\n* `amanomiko_lzss.py`, parse lzss compress file with header\r\n* `amanomiko_SO4.py`, export or import text in so4 files\r\n* `amanomiko_PT1.py`, parse PT1 image file rgb24 format\r\n\r\n### nvl  \r\n\r\n\u003e 我和她的世界末日  \r\n\r\n* `nvl_asar.py`, to decrypt the `game.asar` made by nvlcloud  \r\n\r\n### criware\r\n\r\n* `xtx_font.py`, `xtx` font decode and encode  \r\n\r\n\u003e 祝姫\r\n\r\n* `iwaihime_sn.c`,  decode `sn.bin`\r\n* `iwaihime_patch.c`,  redirect files and fonts\r\n* `iwaihime_font.py`, make xtx font by mapping sjis encoding to gbk glphys\r\n\r\n### hibiki\r\n\r\n\u003e Natrual Vacation\r\n\r\n* `hibiki_text_ks.py`, export and import game text for ftext format\r\n* `hibiki_rename_picture.py`, rename all the picture name to crc32, to avoid sjis file name problem\r\n\r\n### livemaker\r\n\r\n\u003e アイするキミの居場所\r\n\r\n* `aikimi_loader.c`, a loader to dynamic inject DLL to the game\r\n* `aikimi_patch.c`, patch the game dynamic to support `GBK` text\r\n\r\n### bruns\r\n\r\n\u003e 解体挿入新書\r\n\r\n* `bruns_decrypt.c` , decrypt  `EENZ` file,  `解体挿入新書` tested  \r\n\r\n### ig (innocent gray)\r\n\r\n* `redirect_ig.c`, redirect the files to `xxx_chs` for separate CHSPATCH, tested in `天ノ少女`　`Innocent Gray`  \r\n\r\n\u003e 天ノ少女\r\n\r\n### exhibit\r\n\r\n\u003e 空色の風琴\r\n\r\n* `sorairo_patch.c`, support for gbk enconding text in dll\r\n\r\n### hunex\r\n\r\n* `hunex_hlzs.py`, decode hlzs format file\r\n* `hunex_hpb.py`, extract hpb(hph) format file\r\n\r\n\u003e 明治東亰恋伽 // 241012 added\r\n\r\n* `meikoi_dump.js`, invoke il2cpp func to dump script_dialog to text\r\n* `meikoi_dump.c`, invoke il2cpp func to dump hpb(hph) to unityfs\r\n\r\n### qt\r\n\r\n* `qfile_dump.cpp`, use QFile and QDir to dump qres files\r\n\r\n\u003e 叙事曲1：难忘的回忆 // 250211 added  \r\n\u003e 叙事曲2：星空下的诺言 // 250211 added  \r\n\r\n## 3. Cross galgame\r\n\r\n### onscripter\r\n\r\n* `extract_nt3.c`,  extract *.nt3 script  \r\n* `nscript_patch.c`, support gbk, redirect `*.dat`, `*.arc` file\r\n\r\n### krkr\r\n\r\n* `krkr_text.py` , batch convert text encoding\r\n* `krkr_xp3.py`, pack or unpack krkr2 xp3 files (support xp3filter)\r\n* `krkr_hxv4_dumpkey.js`, dump hxv4 cx keys used for garbro  \r\n* `krkr_hxv4_dumphash.cpp`, dynamic batch hxv4 hash calculator for filelist and dirlist  \r\n* `krkr_hxv4_patch.cpp`, redirect `arc:\\\\.\\xxx`  (hxv4) to unencrypted `patch.xp3\u003exxx` (previous cx) for localization, as well as font  \r\n\r\n\u003e つばさの丘の姫王\r\n\r\n* `sdhime_xp3enc.cpp`,  make encrypted xp3 files  \r\n* `sdhime_patch.c`, chs localization support\r\n\r\n\u003e D.C.5 Plus Happiness ～ダ・カーポ5～プラスハピネス // added on 250210\r\n\r\n### artemis\r\n\r\n* `artemis_pf8.py`,  pf8 format archive pack and unpack  \r\n\r\n### tyrano\r\n\r\n* `tyrano_extractexe.c` extract tyrano build-in exe files  \r\n\r\n\u003e Q-bit_キグルミキノコ (android)  \r\n\r\n* `qbit_text.py` export and import text for translation\r\n\r\n### renpy\r\n\r\n\u003e 苍空的彼端 // 250203 added\r\n\r\n* `skyblue_wjz.py` extract `*.blend` rpa file with sig `WJZ-4.9`\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurisizuku%2Fgalgamereverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyurisizuku%2Fgalgamereverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurisizuku%2Fgalgamereverse/lists"}