{"id":25216639,"url":"https://github.com/nekomimiofficial/initial-d-vfs-tools","last_synced_at":"2025-10-15T03:32:11.615Z","repository":{"id":272132606,"uuid":"914368275","full_name":"NekoMimiOfficial/Initial-D-VFS-tools","owner":"NekoMimiOfficial","description":"Virtual FileSystem extraction and packing tools for Initial D street stage","archived":false,"fork":false,"pushed_at":"2025-03-17T11:03:39.000Z","size":250,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T12:24:54.444Z","etag":null,"topics":["initial-d","reverse-engineering","virtual-filesystem"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NekoMimiOfficial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT","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}},"created_at":"2025-01-09T13:11:58.000Z","updated_at":"2025-03-09T23:31:53.000Z","dependencies_parsed_at":"2025-01-20T20:25:17.235Z","dependency_job_id":"8a5a8f69-232e-45e6-9b19-a823a5497bad","html_url":"https://github.com/NekoMimiOfficial/Initial-D-VFS-tools","commit_stats":null,"previous_names":["nekomimiofficial/initial-d-street-eng-patcher","nekomimiofficial/initial-d-vfs-tools"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekoMimiOfficial%2FInitial-D-VFS-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekoMimiOfficial%2FInitial-D-VFS-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekoMimiOfficial%2FInitial-D-VFS-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekoMimiOfficial%2FInitial-D-VFS-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NekoMimiOfficial","download_url":"https://codeload.github.com/NekoMimiOfficial/Initial-D-VFS-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312061,"owners_count":20918344,"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":["initial-d","reverse-engineering","virtual-filesystem"],"created_at":"2025-02-10T19:31:03.744Z","updated_at":"2025-10-15T03:32:11.611Z","avatar_url":"https://github.com/NekoMimiOfficial.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Initial D VFS tools, Based on street stage for the PSP  \nthis is a tool to extract and repack the virtual filesystem for initial D on the PSP and possibly other initial D titles  \n  \nthis tool supports unpacking the VFS including XBB and ANA files  \npacking custom files is almost complete and does exist however until the polynomial is cracked the crc will be mismatched and the game wont start  \n\n\u003e [!IMPORTANT]\n\u003e This project is in a big rewrite phase, please wait till both this and [the headers](https://github.com/NekoMimiOfficial/Initial-D-VFS-Headers) are completed  \n\u003e Most instructions will be changed and some external (in house) libraries will be needed  \n\u003e If no progress is being done here perhaps it's at the headers repo  \n\n\u003e [!NOTE]\n\u003e This project is soon to be rewritten, when so it will be Debian only compatible  \n\u003e Meaning it will work on only Debian based Linux distributions  \n\n# running  \nall params could be found in the `--help` option  \nto extract files from an XBB/ANA file:  \n`idss-tools -e FILE -o OUTPUT_DIR`  \n\nto pack an XBB file:  \n`Not implemented (flag -p)`  \n\nto pack an ANA file:  \n`Not implemented (flag -p)`  \n\n# Installation  \nThe tools are currently made only for debian based distros (yet you can try to manually compile each step and dependency)  \nYou can install the project by adding the following apt repository with the following commands:  \n```sh\nwget -O- https://nekomimi.tilde.team/nekomimiofficial.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nekomimiofficial-archive-keyring.gpg\necho \"deb [signed-by=/usr/share/keyrings/nekomimiofficial-archive-keyring.gpg] https://nekomimi.tilde.team/ stable main\" | sudo tee /etc/apt/sources.list.d/nekomimiofficial.list\nsudo apt update\nsudo apt install idss-tools\n```\n\n# building  \nYou'll need the following build deps:  \n- cmake  \n- python3  \n- dpkg-dev  \n\nAnd you'll need the following libraries:\n- NekoMimi++ [here](https://github.com/NekoMimiOfficial/NekoMimi-plus-plus)  \n- IDSS VFS Headers [here](https://github.com/NekoMimiOfficial/Initial-D-VFS-Headers)   \n\n```sh\n./build.sh\n```\ndue to the many issues we are facing with windows and msvc this project will need to be built in WSL if you're planning to build it on windows  \nThe files will be found in the `build/` directory  \ndebug flag can be turned on inside the `src/utils.cpp` file  \n  \n# story  \nOnce apon a time there was... *A princess!* the young viewers would shout out, no young ones, once apon a time there was a piece of ~wood~ hex data  \nthat hex data was Sega's attempt at obfuscating the Initial D street stage files so that no one could dream of patching them to english, or so you'd think but rather it was a mesure to insure that data would load correctly from a spinning universal media disc due to its unreliability similar to Lego Island  \nHowever noble it may be to provide such a nice way to reliably read data it also made unpacking it a horror story  \nOur story isn't as such but rather a nightmare that all started with \"Oi Akira I'll create you a patcher, how hard could it be?\" and soon the story begins to spiral downwards to hell and beyond, what? you thought this was a cheerful story?, too naive my young ones, no such story exists in real life  \nAh yes, now where were we?, the hex data of course, following Sega's attempt to thrash away any force to patch this game a team stood up sharpening their keyboards and ~drawing tablets~ phones to make a clever comeback  \nNeko, the protagonist of this story creates a repository on GitHub and pushes the first commit with a readme and a license, then they decend to the depths of obfuscation hell and on the first glance of the data it looked kind of hard to notice but there were a handful of strings, Filenames!  \nThese filenames were a sign of relief but not so much for the unknowing cat who only affirmed the fact that the files arent encrypted  \nafter ~years~ days of *anal-yzing* and becoming an enterpreneur with a sick POS (Piece Of Software) joke, Neko found a nice discovery all of which it decided to write in a guide for hex data analyzation for other crackers to use, pointers!, but!, those pointers where in big endian (definitely a way of making discoveries hard on crackers)  \nAlas we had end and start and filename pointers, but there remained a 32bit data blob after each of these pointers, the way it looked seemed like a hash but what hash? Neko was puzzled  \nSoon after Neko learned it was almost impossible they decided to search the interwebs in frustration, then behold the holy grail!, someone has already attempted to document this weird filesystem produced by Sega, and in their findings they wrote that it may very well be a crc32  \nThis brought joy to Neko as it solved most problems facing the completion of this project, afterall, it had the data and the filename, that much is more than enough for the extraction and indeed it was as in 3 more days the first build of this project emerged that allowed for file extraction  \nHowever not satisfied, the cat wanted more, the entire reason this project started was to patch the game to english, and it shant stop here  \nAll was left was to calculate the crc32, so an efficient and powerful bruteforce tool was created that managed to complete over 25 thousand hashes per second!!!  \nIt was a marvelous tool and so begun the journey to crack the polynomial  \nThe evil enemy standing in face of this project's completion, Neko and its friend MJ spun up their cores and went on fighting to find the hostage polynomial  \nIn the end they emerged *dead* and had to find a different route...  \nWell... with the power of reincarnation they stood up again and sought to try a different path, sadly we may not know how it went exactly as we'll have to wait for the next story...  \nSearching for \"The End.\" my young readers? oh are you so wrong!  \nThe story will never end here as I said it goes on beyond hell, the hellish task of creating appealing patched textures and patching the non texture parts of the game still remains on our noble swordsmen, they might have won the battle, but not the war...  \nwhat comes next is up to them, and we end *this* story here, wishing that our swordsmen return safe winning their war.  \n  \n# credit  \nalthough I decided to rediscover things myself but this repo helped me a lot  \nhttps://github.com/derplayer/Initial-D-PSP-Tools/wiki/Reserve-engineering-Writeup  \n\n# links  \nNeko's links are found at [neko's github profile](https://github.com/NekoMimiOfficial/NekoMimiOfficial)  \nMain IDSS ENG patch project server: [link](http://discord.gg/W9fgesMaau)  \nMain Lab where Neko is found: [link](https://discord.gg/KFwKPmXJAP)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekomimiofficial%2Finitial-d-vfs-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnekomimiofficial%2Finitial-d-vfs-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekomimiofficial%2Finitial-d-vfs-tools/lists"}