Skip to content
N0zoM1z0Public

About

Source reconstruction of 東方妖々夢 ~ Perfect Cherry Blossom 1.00b

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation

東方妖々夢 ~ Perfect Cherry Blossom

Agent workflow: follow the highest-priority requirements in AGENTS.md. Use affected exact checks and searchable Markdown knowledge; ordinary notes do not require full CI or replay.

This project builds on some100/th07's source reconstruction of the original Japanese TH07 1.00b. Our work adapts it to our toolchain and repository architecture and adds exact matching corrections for EclManager::RunEcl, EnemyManager::EnemyManager, EnemyManager::RegisterChain, GameWindow::Render, BulletManager::AddedCallback, Ending::ReadEndFileParameter, MainMenu::OnUpdatePreInput and ResultScreen::RegisterChain.

Original Japanese TH07 1.00b title screen

TH07 authored exact byte progress

The reviewed authored scope currently has 686 / 686 exact functions and 380,493 / 380,493 exact bytes (100.0000%). Prebuilt SDK/CRT library code, SDK inline routines, compiler-generated wrappers, alignment and embedded SDK data are excluded from that denominator. Comparison includes complete compiler extents and trailing switch tables; relocation fields are independently resolved and compared without masking.

Measurement Exact functions Exact coverage bytes
Unmodified some100 reference, 694 named functions 686 / 694 345,019 / 381,170 (90.5158%)
Maintained linked build, same named scope 694 / 694 381,170 / 381,170 (100.0000%)
Reviewed authored functions in that product 686 / 686 380,493 / 380,493 (100.0000%)

Every accepted function now replays from one maintained linked product. The four prior COFF-only supplements have been recovered in that product. The first two rows include eight SDK/compiler routines. Authored acceptance includes the explicitly approved 32-byte x87 primitive under the narrowly bound source policy. No authored routine remains in config/remaining.csv. Cold compilation/linking, PE entry binding and source-global relocation replay are verified. The constructor emission profile adds one PE export; original icon resources are omitted. Whole-executable identity and runtime playability remain unverified. Oracle v3 additionally validates complete EH capsule aliases across native/LTCG units. See the oracle and measurement limits.

Target

Provide your own original executable as resources/th07.exe. Original game binaries, data, toolchains, reference clones, PDBs and analysis databases are excluded from this repository.

Property Required value
Version Original Japanese 1.00b
File size 650,752 bytes
SHA-256 35467eaf8dc7fc85f024f16fb2037255f151cefda33cf4867bc9122aaa2e80ca
Image base / entry point 0x00400000 / 0x0047EA7D
python3 scripts/verify-target.py

Headless setup and replay

Linux prerequisites: Python 3.11+, Git, Wine with 32-bit support, taskset, nice and flock. Every analysis and Wine invocation is headless. Ghidra uses one CPU and at most 2 GiB heap; compilers share one serial process lock.

python3 -m pip install -r requirements.txt
python3 scripts/bootstrap-tools.py
python3 scripts/ghidra.py initialize
python3 scripts/ghidra.py check
python3 scripts/build-whole.py
python3 scripts/replay-exact-units.py
python3 scripts/verify-linked-product.py --require-all-exact

Bootstrap pins are in config/tools.lock.toml. Existing tools can be reused with --msvc700 PATH --dx8sdk PATH --ghidra-home PATH --jdk-home PATH. Shared toolchains are left intact; the frontend wrapper and legacy layout are prepared locally. Wine's prefix lives outside the checkout. The baseline is separately reproducible:

python3 scripts/build-reference.py
python3 scripts/reference-oracle.py

Public CI validates accounting, source provenance and synthetic positive/negative oracle controls without proprietary inputs. Local exact replay requires the original target and private build artifacts. Rebuild and compare one accepted function with python3 scripts/replay-exact-units.py --unit f_00410520 --rebuild.

Preview obsolete diagnostics before cleaning them:

python3 scripts/clean-build.py
python3 scripts/clean-build.py --apply

The cleaner preserves the maintained/reference builds, paired PDBs, canonical reports, tools and original target. See artifact retention.

Documentation

Credits and license

The some100/th07 source and Japanese localization table are pinned at 4878bf0. Thank you to its contributors for the reconstruction. Its CC0 dedication is preserved in docs/LICENSE-some100.txt; original and maintained file hashes are tracked in config/*source-provenance.json. Matching notes record accepted evidence and preserved experiments. Oracle v3 also proves complete EH capsule aliases; the initial v1 reference snapshot remains archived.

GensokyoClub/th06 and GensokyoClub/th08 provided engine and VC7 workflow references. The pinned var_order frontend shim is credited to EstexNT. Existing codec notices and Mark Nelson's LZSS notice remain in their source; see also third_party/README.md.

Repository-authored tools and documentation use the MIT License. Imported source retains its applicable notices and license. Touhou Project and its game assets belong to their respective rights holders.

About

Source reconstruction of 東方妖々夢 ~ Perfect Cherry Blossom 1.00b

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages