{"id":16666616,"url":"https://github.com/karashiiro/photonblue","last_synced_at":"2025-04-05T02:25:25.031Z","repository":{"id":45586155,"uuid":"513799904","full_name":"karashiiro/PhotonBlue","owner":"karashiiro","description":"(WIP) Hardware-accelerated library for fast index and lookup operations on PSO2's game data.","archived":false,"fork":false,"pushed_at":"2023-03-23T06:11:40.000Z","size":5876,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T10:45:29.908Z","etag":null,"topics":["csharp","pso2","pso2ngs"],"latest_commit_sha":null,"homepage":"https://karashiiro.github.io/PhotonBlue/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karashiiro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-07-14T07:20:12.000Z","updated_at":"2023-05-15T20:36:51.000Z","dependencies_parsed_at":"2024-12-18T07:34:58.565Z","dependency_job_id":null,"html_url":"https://github.com/karashiiro/PhotonBlue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karashiiro%2FPhotonBlue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karashiiro%2FPhotonBlue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karashiiro%2FPhotonBlue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karashiiro%2FPhotonBlue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karashiiro","download_url":"https://codeload.github.com/karashiiro/PhotonBlue/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247277868,"owners_count":20912614,"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":["csharp","pso2","pso2ngs"],"created_at":"2024-10-12T11:11:34.494Z","updated_at":"2025-04-05T02:25:24.578Z","avatar_url":"https://github.com/karashiiro.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Photon Blue\nHardware-accelerated library for fast index and lookup operations on PSO2's game data. Visit the [documentation website](https://karashiiro.moe/PhotonBlue/) (WIP) for usage information.\n\n## System requirements\n* Windows x64\n* .NET 6 Runtime\n* DirectX 12\n\n## Performance\n(TODO: Benchmarks)\n\nPerformance is generally limited by your disk read capacity. Data can only be read at a certain rate that is specific to the disk.\nThis read rate is shared *by all active processes*. You can view this in Task Manager, under the \"Performance\" tab. If your installation disk's\nusage is at 100%, Photon Blue will not be able to read data any faster. Repeated indexing runs may be substantially faster than the first run\nafter a boot; this is because file data may be cached in memory by the operating system, allowing it to be read without making requests to the disk.\n\nFile processing work is spread across the CPU and the GPU, with the CPU handling most of the light processing steps, and the GPU handling file decryption.\nBecause of this, on HDDs, most of the indexing time is spent waiting for more data to be available.\n\nTo accelerate read performance, use an SSD or some faster storage medium. If you have an HDD, defragmenting it may provide a very small performance boost\n(not taking into account caching, as noted above). Game data may also be spread across multiple drives using symlinks, allowing\nload to be distributed across them. Given that NGS is significantly smaller than the old PSO2, it may be a good idea to store that on an SSD, symlinking\nthe `win32reboot` folder back into `pso2_bin/data`.\n\n## Acknowledgements\nPhoton Blue copies/builds on prior work in both the PSO2 and FFXIV development communities,\namong other knowledge bases.\n\n* A bunch of structural features are blatantly ripped-off of [Lumina](https://github.com/NotAdam/Lumina).\n* NIFL file structure information is adapted from NIFLnew.\n* ICE file structure information is referenced from [ZamboniLib](https://github.com/Shadowth117/ZamboniLib).\n* PRS implementation is adapted from [ZamboniLib](https://github.com/Shadowth117/ZamboniLib).\n* Additional PRS information is copied and/or referenced from [playegs/prs](https://github.com/playegs/prs) and [HybridEidolon/rust-ages-prs](https://github.com/HybridEidolon/rust-ages-prs).\n* LZ77 algorithm information is referenced from [MSDN](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-wusp/fb98aa28-5cd7-407f-8869-a6cef1ff1ccb).\n* LZSS algorithm information is referenced from [Wikipedia](https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski).\n* Blowfish key extraction and usage is copied from [ZamboniLib](https://github.com/Shadowth117/ZamboniLib).\n* Blowfish implementation is adapted from [XIVLauncher](https://github.com/goatcorp/FFXIVQuickLauncher).\n* CRC32 implementation is copied from [XIVLauncher](https://github.com/goatcorp/FFXIVQuickLauncher).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarashiiro%2Fphotonblue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarashiiro%2Fphotonblue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarashiiro%2Fphotonblue/lists"}