Skip to content

v1.4.2 - build from this one (licensing, ini and extraction fixes)

Choose a tag to compare

@springah springah released this 08 Aug 03:24
· 16 commits to main since this release

Source release. No renderer or game-logic changes, so the v1.4.1 bundles remain current for players until these fixes are packaged. This is the tag to build from — v1.4.1 predates the macOS/Deck packaging fixes and the licensing files.

No game data is distributed — no disc image, no game executable, no media/, no audio. You supply all of it from a copy you own; see docs/DUMPING.md for the checksums to verify your dump against. The two game-derived files in this repository — the title screenshot and the application icon — are there for identification and are named in NOTICE.md, which also states what the licence does not cover.

Two bugs worth a rebuild

The in-game settings overlay no longer destroys futari.ini. The SDK defaults its own cvar file to <exe>/futari.ini — the same file the game reads and the player edits — and F4's "Save to config" rewrote it as a flat cvar list with a truncating write. [Storage] went with it, and because user_data_path is not a cvar, saves silently relocated to Documents\futari on the next launch. RUN.txt tells the player to press F4. The SDK now gets its own futari_cvars.ini.

extract_iso.py no longer reports a truncated extraction as success. The write loop broke on a short read, then logged the size from the directory table rather than the bytes written, and exited 0. A split or aborted rip produced empty files, a green log, and a confusing codegen failure hours later — the likeliest support case in this project, arriving disguised as a codegen bug. It now names each truncated file, exits non-zero, and rejects directory entries whose names would write outside the output directory.

Quoted paths in futari.ini also work now (user_data_path = "D:\Futari Saves"), matching the SDK's own parser for that file.

Licensing

THIRD-PARTY-NOTICES.txt is new, generated by scripts/gen_third_party_notices.sh and shipped inside bundles. The runtime statically links FFmpeg and libmspack, both LGPL-2.1, which obliges a written offer of source and relinkable objects — there was none — and ~20 permissive components had no notice either. A bundle's entire legal content was two lines of RUN.txt. macOS bundles now also carry MoltenVK's Apache-2.0 licence, and the build fails rather than omitting it.

NOTICE.md previously granted BSD-3 over all of src/, which included the game's own artwork in src/futari.ico. The icon is now carved out explicitly, and the claim that this repository contains "no game code, data, or assets, and never will" has been replaced with what is actually true, everywhere it appeared.

Other

Visual Studio Build Tools is named in the README prerequisites — clang-cl targets the MSVC ABI, so a clean Windows box with only LLVM fails on vcruntime.h, which was the first wall for anyone building this from scratch. The shell scripts have their executable bit. PORTS.md records what a bundle may contain, with the licence rule alongside it.

Building

GitHub's generated source archives do not include submodules, so clone the tag instead:

git clone -c core.symlinks=true --recurse-submodules -b v1.4.2 https://github.com/springah/futari_recomp

Mushihimesama Futari and all of its content are the property of Cave Interactive Co., Ltd. This project is not affiliated with or endorsed by Cave.