From d0eba51a8ce33245f128ed739186031b67add1af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8B=E3=83=8B=E3=83=A3=E3=83=B3?= Date: Tue, 15 Apr 2025 12:32:47 +0000 Subject: [PATCH] Add Package format --- Package-format.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Package-format.md diff --git a/Package-format.md b/Package-format.md new file mode 100644 index 0000000..f73cde0 --- /dev/null +++ b/Package-format.md @@ -0,0 +1,86 @@ +## Package format + +### Overview +- [Package format requirements](https://rainy.patafour.zip/package/create/docs/) +- A subset of the simple BlueSteel Rainycolor format is currently supported. [Full reference (CW: vore)](https://yozora.bluesteel.737.jp.net/HarmonyPublic/SOS-Kongou/wiki/Create-Module#user-content-rainycolor-simple) + +### Standard package +``` +├───app +│ └───BepInEx +│ └───* +├───option +│ └───Axyz +│ └───* +├───icon.png +├───README.md +├───manifest.json +└───(additional nonfunctional files, such as CHANGELOG.md) +``` + +More file overrides may be supported in the future. [You can help.](https://gitea.tendokyu.moe/TeamTofuShop/segatools/issues/63) + +Arbitrary scripts are not supported by design and that will probably never change. Notably, packages with `post_load.ps1` will always be marked as unsupported. + +### segatools package + +``` +├───segatools +│ └───(mu3hook|chusanhook|mu3io|chuniio|aimeio).dll +├───icon.png +├───README.md +└───manifest.json +``` + +With a `manifest.json` looking like: + +```json +{ + "name": "mu3hook", + "version_number": "0.0.20241225", + "website_url": "https://gitea.tendokyu.moe/TeamTofuShop/segatools", + "description": "Loader for O.N.G.E.K.I.", + "dependencies": [], + "installers": [{ "identifier": "segatools", "module": "mu3hook" }] +} +``` + +Valid `module`s are: `mu3hook`, `chusanhook`, `mu3io`, `chuniio`, `amnet`, `aimeio`. `amnet` implies `aimeio` and an `aimeio.dll`. `module` can be an array, implying multiple DLLs: + +```json +{ + ... + "installers": [{ "identifier": "segatools", "module": [ "aimeio", "chuniio" ] }] +} +``` + +### Native mod + +``` +├───foo.dll +├───bar.dll +├───icon.png +├───README.md +└───manifest.json +``` + +With a `manifest.json` pointing at the filename like: + +```json +{ + "name": "SomeNativeMod", + "version_number": "1.0.0", + "website_url": "https://example.com", + "description": "Loads a DLL", + "dependencies": [], + "installers": [ + { + "identifier": "native_mod", + "dll-game": "foo.dll", + "dll-amdaemon": "bar.dll" + } + ] +} +``` + +These packages are supposed to be hooked into the game, and into amdaemon. Both DLL fields are optional, therefore it's fine to only provide a DLL for the game, or only for amdaemon. \ No newline at end of file