From 516943f1d5260edd5d75f5f33a857b89bb937727 Mon Sep 17 00:00:00 2001 From: Will Toohey Date: Sun, 3 Nov 2024 14:10:37 +1000 Subject: [PATCH] Add "quickstart" to MOD_README.txt, improve main README --- README.md | 75 +++++++++++++++++++++++++++++++++++++--- data_mods/MOD_README.txt | 38 ++++++++++++++++++++ 2 files changed, 109 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 72259ad..2f4e65a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,29 @@ images and automatically repack them into the game-specific format. This allows rapid development of texture mods, as the unergonomic texture packing process can be completely bypassed. +# Supported games + +Game support is based on AVS version, not any particular game, and LayeredFS +supports almost all in-use AVS versions. However, these are games that LayeredFS +should work on: +- Beatmania IIDX (9th Style (untested) to latest release) +- Sound Voltex (all versions) +- DDR (X (untested) to latest release) +- pop'n music (15, ADVENTURE (untested) to latest release) +- jubeat (all versions) +- GFDM (v4 to XG3) +- GITADORA (all versions) +- MÚSECA +- DANCERUSH +- REFLEC BEAT +- BeatStream +- Nostalgia +- Bombergirl + +If you find a game that doesn't work, please open an issue! + # Installation + The DLLs go next to the other game DLLs. Pick the right DLL for your game - if 32 bit fails to load, try 64 bit. The `data_mods` folder goes next to the data folder. @@ -30,9 +52,54 @@ If you don't really care, you can copy all the injector DLLs into the game folder, it won't break anything. For more control, load ifs_hook.dll using your launcher/injector of choice -(eg: add `-k ifs_hook.dll` to the commandline) +(eg: add `-k ifs_hook.dll` to the spice commandline, or `-K ifs_hook.dll` to +the bemanitools commandline) + +## GFDM: an extra note + +As discovered in [this issue](https://github.com/mon/ifs_layeredfs/issues/5), +GFDM tools are currently very basic and don't perform some important path +remapping. While the game looks in `/data`, layeredfs can only see `/bin`. To +fix this, hex-edit `boot.dll`, and change `2E 2E 2F 00` -> `2E 2F 00 00`, then +move all the modules out of `bin` into the main game folder. + +# Where to put mod files / how textures work / edge cases + +Here are some examples of the correct path to use for your mod: + +### IFS files + +`data/graphics/ver04/logo_j.ifs` +- To replace repacked IFS: `data_mods/example/graphics/ver04/logo_j.ifs` +- To replace individual texture "warning": + - `data_mods/example/graphics/ver04/logo_j_ifs/tex/warning.png` + - *or* + - `data_mods/example/graphics/ver04/logo_j_ifs/warning.png` + +### Jubeat or Gitadora .bin textures + +`data/d3/model/tex_l44fo_continue.bin` +- To replace repacked .bin: `data_mods/example/d3/model/tex_l44fo_continue.bin` +- To replace individual texture "CTN_T0000": `data_mods/example/d3/model/tex_l44fo_continue/CTN_T0000.png` + +### XML files + +`data/others/music_db.xml` +- To replace the entire file: `data_mods/example/others/music_db.xml` +- To append to the file: `data_mods/example/others/music_db.merged.xml` + +### Games with a `data2` folder (Beatstream/Nostalgia) + +`data/graphic/information.ifs` +- It's the same as normal! `data_mods/example/graphic/information.ifs` + +`data2/graphic/information.ifs` +- It needs an extra subfolder: `data_mods/example/data2/graphic/information.ifs` + +See [MOD_README.txt](data_mods/MOD_README.txt) for more details. # Flags + If you can't work out to enable a flag, the release .zip contains DLLs that have certain useful combos pre-enabled. They can be found in the `special_builds` folder. @@ -53,16 +120,15 @@ folder. Use a custom, separate logfile instead of the game's log. ``` -# Where to put mod files / how textures work / edge cases -See [MOD_README.txt](data_mods/MOD_README.txt) in the `data_mods` folder. - # Logs + Info is logged to to the game's logging system. However, if something breaks before LayeredFS gets a chance to set this up, it will create `ifs_hook.log` with details. If something breaks, send the game log and ifs_hook.log (if it exists) to mon. # Building + This code has grown organically and is some of the worst C that I have ever distributed. The code itself is more or less fine, but the organisation leaves a lot to be desired. There are many vestigal remains of past AVS experiments. @@ -77,6 +143,7 @@ As long as you have Meson and mingw-w64 installed, it should be as simple as running `build.sh`. # Contributing + I encourage pull requests, but might take a while to properly test them prior to merge. If you can show your PR works with SDVX/IIDX < 24/IIDX >= 25, I will probably accept it. diff --git a/data_mods/MOD_README.txt b/data_mods/MOD_README.txt index d6148a6..41b2965 100644 --- a/data_mods/MOD_README.txt +++ b/data_mods/MOD_README.txt @@ -1,5 +1,43 @@ IFS LayeredFS will search every directory in this folder for modded files to use. +============= QUICKSTART EXAMPLES ============= + +a.k.a. "I don't want to read all this": +Example mod paths: + +IFS files: +data/graphics/ver04/logo_j.ifs + To replace repacked IFS: + data_mods/example/graphics/ver04/logo_j.ifs + To replace individual texture "warning": + data_mods/example/graphics/ver04/logo_j_ifs/tex/warning.png + or + data_mods/example/graphics/ver04/logo_j_ifs/warning.png + +Jubeat or Gitadora .bin textures: +data/d3/model/tex_l44fo_continue.bin + To replace repacked .bin: + data_mods/example/d3/model/tex_l44fo_continue.bin + To replace individual texture "CTN_T0000" + data_mods/example/d3/model/tex_l44fo_continue/CTN_T0000.png + +XML files: +data/others/music_db.xml + To replace the entire file: + data_mods/example/others/music_db.xml + To append to the file: + data_mods/example/others/music_db.merged.xml + +Games with a `data2` folder (Beatstream/Nostalgia) +data/graphic/information.ifs + It's the same! + data_mods/example/graphic/information.ifs +data2/graphic/information.ifs + It needs an extra subfolder: + data_mods/example/data2/graphic/information.ifs + +============= Detailed description ============= + Search order Alphabetical via mod folder name The first folder with a matching mod will be used for that file