Repository navigation
Releases: N0zoM1z0/th08
Release list
TH08 Reconstruction v0.2.1 — Linux Runtime Refresh
TH08 Reconstruction v0.2.1 — Linux Runtime Refresh
This release supersedes v0.2.0 and refreshes the i386, x86_64, and experimental
AArch64 Linux packages after the native Windows i386 prerequisite was completed
and integrated into the portable branch.
What changed
- Integrated source-level ownership and initialization repairs recovered by the
native VC7 compile/link/play gate. These cover dialogue backgrounds, boss-name
textures, player score/graze gauge thresholds, spell backgrounds and effect
tables, randomized player-shot RNG, and player-point popup ownership. - Applied bounded
-O2optimization only to the handwritten native-layout
D3D8/D3DX8/Linux compatibility hot paths. Under the documented Xvfb/llvmpipe
benchmark, the first 1,200 FPS-check swaps improved from 13.485 to 3.442
seconds (3.92x). Reconstructed game translation units and fixed-layout i386
remain at their established optimization settings. - Added modern-only memory-safety guards found by AddressSanitizer: an LZSS
input-end check, corrected decrypted-resource lengths, and matchingdelete[]
ownership for legacy array allocations. - Included the corrected max-power item auto-collection threshold and the later
exact-source semantic/readability maintenance. - Preserved the exact reconstruction ledger at 1,106 / 1,107 accepted authored
functions; the sole authored near match remains outside the accepted ledger.
Choose a package
| Host | Package | Status |
|---|---|---|
| x86_64 / AMD64 | th08-portable-linux-x86_64.tar.gz |
Recommended; full-route tested |
| i386 / 32-bit x86 | th08-modern-linux-i386.tar.gz |
Compatibility build |
| AArch64 / ARM64 | th08-portable-linux-aarch64.tar.gz |
Experimental; real-hardware gameplay still required |
Download the archive and its matching .sha256 file. Supply a legally obtained
Japanese TH08 1.00d data directory containing th08.dat and thbgm.dat; no
original executable or game data is included in these packages.
For installation and launch instructions, see
docs/PLAY_LINUX.md.
Current reporting boundary
Issue #20 reports an invisible boss
laser but does not yet identify the platform/build, boss, stage or spell, or
provide a screenshot or replay. The target-facing laser spawn/update/draw path
is exact, so this release does not claim that unbounded report is fixed. Please
include those details when reproducing it so the problem can be localized to
shared gameplay state or a portable renderer boundary.
AArch64 remains build- and loader-verified but not gameplay-validated on real
hardware. MIDI is still a compatibility stub, and controllers are not yet a
release target.
Build and validation
- Tag:
v0.2.1-linux-64bit - Source commit:
861bec908b84fa4658382d7526e5a0075f520846 - Release preparation: PR #21
- Tagged repository validation: passed
- Tagged three-architecture package build: passed
- Canonical target: Japanese TH08 1.00d, SHA-256
330fbdbf58a710829d65277b4f312cfbb38d5448b3df523e79350b879213d924,
840,704 bytes
The tagged artifacts were downloaded after CI, checked against their published
SHA-256 files, inspected for the expected ELF machine/type and package contents,
and had their launch scripts syntax-checked before publication.
SHA-256
86553ad3492d59f8819b7e14d6c7f0d7711bd0840a0b486c82b92c8358fc4712 th08-modern-linux-i386.tar.gz
19ecce71db95ee80c8c377fc0a84d06f2cfc44eb6f399b19d0ef793676e1e530 th08-portable-linux-x86_64.tar.gz
6bf4ce5f93fd7d46020ffae1650cadab32a8433a01558a51106f9cc0da5b720b th08-portable-linux-aarch64.tar.gz
TH08 Reconstruction v0.2.0 — Native Linux 64-bit
☾「永夜已明」— native 64-bit Linux is ready
This is the first player-facing release of the native x86_64 TH08
reconstruction port. The x86_64 package is now the recommended Linux build:
it is a normal 64-bit PIE, uses native pointers and alignment, and has completed
a full human-played Lunatic route rather than only a startup smoke test.
The release also keeps an updated i386 compatibility package and provides an
experimental AArch64 package for real-hardware validation. All packages were
built by GitHub Actions from the tagged source commit and independently checked
before upload.
Choose the correct download
Download the archive and its matching .sha256 file.
| Your Linux machine | Package | Status |
|---|---|---|
Intel/AMD 64-bit (uname -m prints x86_64) |
th08-portable-linux-x86_64.tar.gz |
Recommended; full-route tested |
| 32-bit x86, or an existing i386 setup | th08-modern-linux-i386.tar.gz |
Compatibility build |
ARM64 (uname -m prints aarch64) |
th08-portable-linux-aarch64.tar.gz |
Experimental; no complete real-hardware gameplay run yet |
Most desktop and laptop users should choose x86_64.
What you need
Supply a legally obtained original Japanese TH08 1.00d data directory containing:
th08.datthbgm.dat
Those are the only original game files read by the Linux port. The original
th08.exe is neither required nor executed. The data directory must be writable
because TH08 creates configuration, score, backup, replay, screenshot, and
diagnostic files there.
No original executable, DAT archive, music, graphics, or other copyrighted game
asset is included in this release.
Quick start: x86_64 Debian, Ubuntu, or Kali Linux
Install native runtime libraries and a Japanese font:
sudo apt-get update
sudo apt-get install \
libstdc++6 libgl1 libfontconfig1 \
libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl2-ttf-2.0-0 \
fonts-vlgothicVerify, extract, and launch:
sha256sum -c th08-portable-linux-x86_64.tar.gz.sha256
tar -xzf th08-portable-linux-x86_64.tar.gz
cd th08-portable-linux-x86_64
./run-th08.sh "/path/to/original/TH08 directory"If the extracted directory is directly inside the directory containing the two
DAT files, run ./run-th08.sh ... Paths are resolved at launch and are never
hard-coded into the executable; quoted spaces and non-ASCII characters are
supported.
The complete architecture-specific installation and troubleshooting guide is
docs/PLAY_LINUX.md.
What changed since Linux Preview 1
- Added the native-layout x86_64 ELF64 PIE product.
- Added an AArch64 ELF64 PIE cross-build and loader-validation lane.
- Separated serialized 32-bit file offsets from live native pointers in stage,
ECL, player-shot, message, replay, and score loaders. - Kept the retail
score.datwire header at0x1cbytes while storing the live
native pointer separately. Original/i386 scores and Practice unlock masks now
survive the x86_64 load/save path. - Corrected native manager clears and global-owner aliases that could stall
later stage transitions. - Corrected an x86_64 boss-trail stack-layout bug that could turn boss geometry
into NaN and make Reimu or other enemy sprites disappear. - Added deterministic replay-driven render auditing for missing enemy/boss art,
invalid geometry, empty sprite data, and queued draws that never affect the
framebuffer. - Updated player documentation so x86_64 is the default download instead of an
expiring Actions artifact.
Earlier bring-up builds showed missing enemies or bosses, incomplete effects,
Stage 4-to-5 text tiling, and later-stage transition stalls. Those regressions
were not reproduced in the final x86_64 full-route and Practice validation after
the native-layout and render fixes.
Runtime verification
| Architecture | Evidence |
|---|---|
| x86_64 | Complete Sakuya/Remilia Lunatic Stages 1–6A, ending, results, and return to title under WSLg; additional Stage 4A and Stage 6B Practice runs; original/i386 score.dat unlock validation; deterministic replay render audits under Xvfb/Mesa |
| i386 | Playable native Linux product validated under WSLg and a Kali Linux x86-64 GUI VM |
| AArch64 | Cross-built using only AArch64 libraries; QEMU user-mode reaches DAT/version/logo/loading initialization; complete gameplay on real AArch64 hardware is still pending |
The packaged executables use normal retail life rules. The no-life-decrement and
frame-advance helpers used during long automated audits are external test-only
GDB patches; they are not compiled into or shipped with these binaries.
Reconstruction and build attestation
- Source tag:
v0.2.0-linux-64bit - Source commit:
a940881f97024c99ff387d2cb4c6650fb2bad97f - Release preparation: PR #8
- Tagged repository validation: passed
- Tagged three-architecture package build: passed
- Canonical target identity used for comparison: Japanese TH08 1.00d,
SHA-256330fbdbf58a710829d65277b4f312cfbb38d5448b3df523e79350b879213d924,
840,704 bytes - Authored source inventory: 1,107 / 1,107 functions present
- Strict authored ledger: 1,106 / 1,107 accepted exact functions,
459,396 / 459,757 authored bytes - Release-grade, single-job, non-reuse cold replay: 1,106 / 1,106 configured
accepted exact units passed
The playable port and exact reconstruction are separate claims. Native-layout
portability code does not claim that a 64-bit ELF matches the original 32-bit
VC7 executable.
SHA-256
5c20cd7a794b3fedd8e93e248205d6f214b6370c78f02cb9e5a164d67cffb351 th08-modern-linux-i386.tar.gz
f4d772cea1eb78616b068e3a1ec256aef67130bfd1124fb5d7b80a747e4a5b21 th08-portable-linux-x86_64.tar.gz
762d7ee1e240384b1c53ada775893f59ffabf7051bf818955a706e61647659c3 th08-portable-linux-aarch64.tar.gz
The attached .sha256 files contain the same values. Stop if
sha256sum -c reports a mismatch.
Current limitations
- AArch64 still needs a complete gameplay run on real hardware.
- MIDI output is a compatibility stub; the normal WAV BGM path is validated.
- Keyboard input is validated; controllers are not yet a release target.
- GPU, OpenGL driver, desktop compositor, and audio differences can still expose
platform-specific regressions. Preservelog.txt,modern-files.txt, and
modern-crash.txtwhen reporting an unexpected exit; never upload original
DAT archives. - Windows and macOS redistributable native packages are not part of this release.
Further technical detail is available in the
native 64-bit port guide
and the
render-audit contract.
TH08 Reconstruction v0.1.0 — Linux Preview 1
☾「永夜已明」— the authored reconstruction is complete
All 1,107 / 1,107 authored functions are present in source. Reproducible strict comparison currently accepts 1,105 / 1,107 as byte-exact against the original Japanese TH08 1.00d target.
This is the first playable native-platform preview:
- Linux i386: playable — tested under WSLg and a Kali Linux x86-64 GUI VM;
- Windows x86: in progress — no redistributable native package yet;
- macOS: in progress — native backend and packaging are pending;
- Web edition: planned — the next spell card after the desktop ports.
Linux download and play
- Download both attached files.
- Verify
th08-modern-linux-i386.tar.gzwith the attached SHA-256 file. - Extract the archive.
- Install the documented i386 SDL2/OpenGL runtime libraries.
- Run
./run-th08.sh "/path/to/original/TH08 directory".
Read the complete Linux download, installation, and troubleshooting guide.
The selected directory only needs the legally obtained original Japanese 1.00d th08.dat and thbgm.dat. The original th08.exe is not read or executed by the Linux port. No copyrighted executable or DAT archive is included in this release.
This preview includes the clean-data-directory startup fix: an initially empty score-backup directory no longer crashes in the Linux Win32 compatibility boundary.
Platform guides
Known Linux issue
During the Stage 4-to-5 transition, a dynamic text texture can tile across the outer frame and HUD. Gameplay can continue past it; the main README contains a screenshot and current details.
Attestation
- Source commit:
b8f4260 - Repository validation: passed
- Portable Linux build: passed
- Linux archive SHA-256:
68b806456bffe3f3c09def3b0617a4347003eb99b032d4509e103ebed2dbf6a5