Jump to content

kiraio

Members
  • Posts

    9
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    kiraio got a reaction from Zakamutt in [Tool] Light.vnTools - Game Resources Unpacker & Repacker for Light.vn based game   
    Thanks for explaining. I did some google translating, but get confused with it's poetic like language.
     
    Welp, I found it by coincidence 😂. I tried to extract it and the password input just popped up, so I just slap it with the current key and.... work! LOL
  2. Yes
    kiraio reacted to Zakamutt in [Tool] Light.vnTools - Game Resources Unpacker & Repacker for Light.vn based game   
    It's a "narrative game creation engine" that "inherits light.vn's functions" but as far as I can tell,  the github page says that "there is no download because the beta version is still under construction" and the beta is expected to be out "in 2017". Well, it's 2023 and the text isn't updated, damn son. So basically you have the order wrong, light.vn came first and the soul engine... may not actually exist. The terms used to describe it by the creator get kind of near spiritual which is, uhh, I follow the guy on twitter and he seems into buddhist-y stuff so maybe that makes sense lol.

    Anyway, I don't think this himawari (and also kodoku no yurikago, which is by the same developer and seemed to use the same zip password actually) used soul engine, they just call "light.vn" their engine. It's likely just a different version using a different encryption scheme. That said, it's possible the light.vn dev and the himawari dev were in contact and the himawari dev used an indev version of the engine with different features.
  3. Thanks
    kiraio got a reaction from Zakamutt in [Tool] Light.vnTools - Game Resources Unpacker & Repacker for Light.vn based game   
    Hi, it uses the same encryption key as Light.vnTools. In this case, it isn't the contents of the `vndat` file that are encrypted with xor cipher, but the `vndat` file itself that are password protected.
    Try to rename `vndat` file as `zip` and extract it. It will prompt you the password. Use this key: d6c5fKI3GgBWpZF3Tz6ia3kF0
    Anyway, thanks for reporting. I'll update the tool soon
  4. Love
    kiraio got a reaction from Zakamutt in [Tool] Light.vnTools - Game Resources Unpacker & Repacker for Light.vn based game   
    I didn't think it's the right board to post this. So, guide me Senpai!
     
    Hi, guys! I want to share you a tool to unpack and repack VN game resources made with Light.vn game engine called Light.vnTools.
    This tool is a C# port of https://github.com/morkt/GARbro/issues/440#issuecomment-1091453877. The tool usages is on the project README.
     
    As far as I see, there's not much VN game made with this engine. But, this game engine is a good choice to develop a modern VN game aside from it's performance.
  5. Like
    kiraio got a reaction from MrPalloncini in A complete guide to unpack and repack Yu-Ris engine files   
    Thanks, man. I haven't encountered any VN with YU-Ris engine though, but I certain this guide will be useful in the future.
  6. Love
    kiraio reacted to MrPalloncini in A complete guide to unpack and repack Yu-Ris engine files   
    Introduction
    I wanted to make this guide since i couldn't find some complete guide to mod any VN on yuris engine. The main reason is that i played euphoria and i wanted to mod it.
    All the examples you are going to find are my years of reverse engineering and online documentation on euphoria (Mangagamer) version of yuris (v474).
    How Yu-Ris engine works
    Yuris is an interpreter that uses code C-like, is often used with ERIS, which is the VN interactive engine part of the interpreter.
    The engine use its own file format called "YPF" for archives and "YBN" for scripts. The contents of the YPF file are usually assets since the archive can contain all kind of media, except videos.
    The engine can be configured to use debug mode, as well as a log mode if activated.
    Usually is used with some assets protection, using the ypf format, the algorithm should change with major version of the SDK. It also offer a XOR encryption protection for the scripts files.
    The engine uses SHIFT-JIS text encoding, to be compatible with Windows versions since 98 to today. This of course causes some issues with the text since the OS will use ASCII standard to read it.
    Unpacking YPF files
    Unpacking YPF files is quite simple since is a standard Zlib compression, however tools may be incompatible depending on the engine version.
    You can easily unpack those files by using yu-ris text replacer, arc_conv or GARbro.
    GARbro has a really simple UI to use and can extract each archive by guessing the key or using a list of known keys for each game you want to unpack.
    arc_conv is quite simple to use too, just double click the exe and pick the file, it should extract the ypf file into a folder in the same directory.
    Yuris text replacer will extract the files automatically without any input from the user, this however might be incompatible with some later games, since the app is not developed anymore and the project is not opensource.
    Unpacking Video files in YPF format
    Video files aren't really compressed or encoded, so renaming the YPF file with an MPG extension will works. (Example: OP.ypf -> OP.mpg)
    The encoding of the video itself is very specific and while it can be opened with a standard player, creating a new one for the game can be a pain, so i suggest to use sdk tools for repacking.
    Unpacking YBN files
    This is the part where all gets tricky, the game tries to protect all of the scripts assets with an XOR encryption. To find the text you must before unpack it from the YPF, usually is bn.ypf.
    Then, you have to find the encryption key, which is only an XOR key, meaning that all the 0 in the file is a letter of the key. For This reason, you should pick up a file with most NULL chars in it, so you can find the key more easily.

    As you can see, the file patter use so often x.0s chars, when the dot is an escape character so you must save the key in HEX format, in this case the key for euphoria is: 0x30731b78.
    You can also use this site: https://wiremask.eu/tools/xor-cracker/ to crack the file with some analysis by uploading it.
    Now that we have the key, we must find a good file to start our unpacking. I suggest to use an hex editor with a bitwise xor functionality with in, the only tool i found is Hex Editor Neo, but is a pay program, however there is a trial version, so if you can find a free one, let me know!
    We can now import some files to start our cracking, i suggest to import some files in the middle that should contain text, in my case i used the file yst00140.ybn.

    As you can see, we have some text that is used in the game itself, be aware that some file just use the text to instruct the engine and those files will be not exportable (yet).
    Now that we just know the key and the file to unpack, we can use ExtYbn to extract the plain text on the file.
    extybn is a ybn extractor, that can guess op-codes and extract the text with the given key, the app however must be compiled from Golang in a standard executable: https://github.com/regomne/chinesize/tree/master/yuris/extYbn
    I will give you the precompiled application.
    Now we should start the executable with the command line and use this argument: extYbn -e -ybn yst00140.ybn -output-opcode -key 0x30731b78

    This will give us the op-codes, which are useful to extract the text without issues that we may have.
    We now can unpack those files correctly using the following command: extYbn.exe -e -ybn yst00140.ybn -json unpacked.json -txt unpacked.txt -key 0x30731b78 -op-msg 95 op-call 29
    the following commands are explained in the help file, but i will give you a summary.
    -e: puts the program in extract mode -ybn: choose the input ybn file -json: will create a json file with all the offsets (required for repacking) -txt: will create a txt file with all the text inside -key: will specify the key in hex format -op-msg/call: will specify the op codes to extract the text We now should have the txt file, remember to use a compatible encoding (default one should be good) and use the syntax the engine will expect.
    To repack the file, the command is almost identical with some key difference: extYbn.exe -p -ybn yst00140.ybn  -txt unpacked.txt -new-ybn modded.ybn -key 0x30731b78 -op-msg 95 op-call 29
    in this case we removed the json file, which will be imported automatically, the -p mode to pack the file and the -new-bin command with the new filename.
    You can also verify the file by manually decrypting in the hex editor like before. However yu-ris is quite sensitive with the text, so your new text may crash the game. Be sure to have repacked well with the right encoding and byte space.
    Repack YPF files
    To repack the archives, i suggest you to use the official sdk, you might need to get used to it, but i'ts quite simple and you can find the manuals in the official site, they are in japanese but you can use translate with that url.
    The sdk should match the game version, however the only important thing is that the sdk must use the same repacking algorithm of the game. I'll leave the sdk for euphoria, but is possible to get it from the official site with an http request.
    Inside the engine folder, you should find a subfolder called system, then the YsPac folder. Inside that folder, there is the YPF packer that we are going to use.
    First we must drop the extracted folder inside the application and select it. Then we must click the top left menu bar, then click the second parameter. This will export the file.

    That's it, the file should now be exported as a YPF file.
     
    Feel free to contribute and improve this guide, if you have any issues let me know.
     
    Yu-Ris SDK link: https://mega.nz/file/FQBgxJib#Yirgo01FPfDQu8Mte2b3dGMSxZx2UPyjIDDMhZZ2mU0
    extYbn link: https://mega.nz/file/FQBgxJib#Yirgo01FPfDQu8Mte2b3dGMSxZx2UPyjIDDMhZZ2mU0
  7. Like
    kiraio reacted to Eclipsed in Translation Projects - Thread Guidelines   
    TL Thread Guidelines
     
    How should I Format the Thread?
    No specific formatting style; just follow these Minimum Formatting Guidelines to include a proper thread title, project introduction, and progress: 
     
    Thread Title
    Your thread title should be of this type: VN/Project Title + (Latest Update)*
    *(Latest Update) is optional, use it for your most recent released update ie. (Common Route Patch Released)
    If for any reason you feel the need to make the title follow any different standard, contact a mod and explain your reasons. Exceptions/changes can be made.
     
    Project Introduction
    Introduce your project team, the project you are working on, and any relevant info such as the Visual Novel's name, a VNDB link (if available), your website, recruiting status, etc.
     
    Progress
    Outline the current progress made in your project.
    Keep this up-to-date. You should have this section even if you haven't made any progress yet.
     
    Beyond the Minimum Formatting, you can also take a look at this sample guide of a typical thread's contents:
      Where does my Thread go?
    If you are looking to start a TL project or already have one underway, you can simply make a thread following the already detailed guidelines in the Translation Projects forum.
    If you are currently recruiting members, consider making a thread recruiting over in the Recruitment subforum.
    Note that this is separate from your main project thread where you give updates and people comment.
    Once work on the project has finished and the project is complete, it'll be moved to the Released subforum.
    Finally, be aware that inactive projects will be moved to the Archives. A project is considered inactive if it goes without any updates for over a year. Additionally, recruitment threads will be removed from the Recruitment subforum after 6 months of no updates on the main thread.
    Do not worry too much if you end up making your thread in the wrong section. A staff member is likely to move it to the correct place.
    I'm Recruiting - What should I do to get more People?
    If your project is recruiting here are some various things you could try:
    Add [Recruiting] and prefix it to your thread title.
    If you are currently recruiting members, consider making a thread recruiting over in the Recruitment subforum.
    Take advantage of the forum's development blogs! More info how to access dev blogs here.
    You could check various external places and websites: {/r/visualnovels; Aarinfantasy; LemmaSoft}
    Make your own Website/Thread and have it linked to VNDB. People who come across said game will all be redirected towards your efforts.
    You could try to look through our Fan Translator Skills Registration thread in order to find the right people.
    For more PR methods, check this thread, where you can learn how to make Recruitment Blog Posts or how to promote your Project. 
    Check this thread for member suggestions!
      
    Additional Rules & Posting Guidelines
    Posts which violate the general Forum Rules will be moderated as usual.
    However, this board will be more strictly moderated than the other boards.
     
    Translating Already Licensed Products
    If the product you are looking to translate has already been licensed by a publisher, that means they have paid for the right to create and publish a translation for said product. In this situation, creating fan projects that are in direct competition with publishers who have paid for the right to legally create a translation is simply bad sport and may create legal conflicts. For this reason, such projects will not be allowed to be hosted or advertised on Fuwanovel.
    This is in direct opposition to projects that aim only to modify an already published translation. Such projects, as long as they require that the published translation be bought, are not in competition with publishers, and therefore allowed.

    Multiple Short Projects
    If you are promoting multiple short (<2 hours) projects in the same series (such as episodic or chapter-based projects), they should all be covered in a single thread, so as to not dilute and fragment visibility, views, and discussion.
    Payment options
    Any form of payment options for patches is NOT allowed. taking payment for patches is illegal and a conflict on copyright law.
    Hiding Posts
    Due to the nature of the board, irrelevant chatter is discouraged. However, support, feedback, and relevant discussion is very much welcome in their respective threads.
     
    Posts which WILL be hidden include:
    Off-topic chatter* Excessively harsh criticism** *Posts that do not in any way involve or are relevant to the project team, their project, or the product they are working on.
    **Keep the criticism constructive. Criticism that begins to berate, belittle, or outright harass a project's efforts will be hidden.
     
    Posts which WON'T be hidden include:
    Feedback "Good luck!" posts. "I'm looking forward to this!" posts. "Thank you very much!" posts. Questions regarding the translation, the team, or the progress. Discussion regarding the translation or the team. Discussion about the game in question (In the eventuality of a final release, these will be split into a new topic for discussion over in VN Talk forums). If a post of yours is hidden and you wish to contest, please PM a moderator for further inquiry.
    Do NOT contest moderation decisions publicly - these posts will be hidden. Keep it to PMs.
  8. Thanks
    kiraio reacted to Porygon2 in Kirikir/KAG .sig files   
    The Kirikiri 2 games that give you an error message for missing .sig files use the sigcheck plugin to verify archive files with a signature. The system uses public key cryptography which means that only the public key can be found in the game's files, which can be used to check the signatures, but new signatures for the same public key can not be generated since that would require the private key.
    Most game I've seen use this handle the actual work in script/release.ks where you'll find the public key and code that does the actual verification, so you have the option to either
    Remove the signature check by uncommenting/removing the invocation of the check method to disable signature checks altogether, or Generate your own public/private key pair, replace the original public key in release.ks with yours and generate new .sig files with your private key You can then add your modified version of release.ks to to your patch.xp3 archive and if you did everything correctly, you'll be able to run the game without any error messages (and optionally with custom file signature verification).
  9. Like
    kiraio reacted to wildpawz in patch.xp3 won't read - old Kirikiri game   
    Thank you so much!! Your suggestion was a lifesaver!!
    I used kirikiri to repackage instead of GARbro, and it worked like a charm! (Note: I tried also with KrkrDEV_232r2EN but the .xp3 didn't read - I think the program may be a bit too modern for this game, mayhaps.)
    For anyone else having this issue with old games:
    I downloaded kirikiri2-archive-3 and extracted the rar kr2_218. Then, in the kirikiri2 folder, I opened krkrrel.exe and chose the file to turn into a .xp3. (note: for multiple files to be turned into one .xp3, I made a folder with the .ks and images and whatnot and sealed it into a .rar, and converted that. It worked for me.)
    Also, in the same kr2_218, I went into the graphconv folder and opened the .exe. Any images I needed modified (usually TLGs), I'd extract as .JPEGs from GARbro and then turn them back to .TLGs using this program once I edited them, so the game could read them again.
    I don't know how I never thought to do this, but you pointing it out saved SO much time. Thank you!!!!!!!
×
×
  • Create New...