Repository navigation
Releases
v0.1.6
An in-between release while the menus are being rebuilt.
- Touch drag follows your finger. The player ends up where you drag, in the direction you drag, instead of losing about half of every move.
- New pause menu. Resume, volume, hitboxes, screenshot and settings on one card beside the picture; retry and quit to title ask first.
- New launchers. Desktop: title art, Play and the game folder up front. Android: Material 3 with Home, Settings, Replays and Stats on a bottom bar or side rail.
- Pausing is quicker and keeps the music where it was. Opening the menu no longer stops and restarts the sound output.
- Desktop window icon on Windows and Linux.
Fixes
- The title-screen demo starts after you leave the menu idle, as in the original.
- Practice mode no longer loses its practice state when you back out of a practice game.
- Text and fine textures stay sharp after you change the render resolution during play.
- A boss pattern that read the wrong value now plays as in the original.
See the downloads and how to install. You need your own copy of the game.
v0.1.5
Highlights
- Settings in the pause menu. F1 / Esc (Back on Android) now opens a settings sheet over the paused game:
language, scaling and filters, colour filter and brightness, music / effect volumes, input display, now-playing,
touch-button opacity. Quit to title goes through the game's own pause menu, so it saves like the original. - Sharper picture. New
render_scalesetting (1×, 2×, 3× or auto): the game is drawn at 2–3× resolution, so
rotated sprites, lasers, 3D backgrounds and text are sharp on big screens. 1× stays pixel-identical to before;
default is 1×. - Stats tab (desktop and Android): play time, runs per character and difficulty with best scores, deaths and
bombs per stage, most-failed spell cards, last 20 runs; plus a score.dat viewer with high scores, clear flags and
the capture history of all 222 spell cards. Recording can be switched off (stats); replays and demos are not
counted. - Replay browser (desktop and Android): replays with their details, sorted by date or score; watch, export or
share, delete; import by file picker or drag and drop. - Replay to video (desktop): Export video… on a replay writes an mp4 / mkv with music and sound effects at
1×–3× size (needsffmpeg), or a PNG sequence + WAV. - Gamepad remapping in the launcher: press a button to bind it, conflicts are shown, one click resets; the
d-pad always steers. - Keyboard remapping with conflict warnings and a WASD + J / K / L preset.
- Screenshots: F12 or the pause menu; saved to a folder on desktop, to the gallery on Android, downloaded on the
web. - Practice slow motion (½ / ¾; scores and replays are not saved once used), input display overlay,
now playing toast with the track name. - Discord Rich Presence (Windows, Linux; off by default): shows stage, character, difficulty and mode.
- Windows: update through the installer. The installed game downloads the new installer, checks it against
SHA256SUMSand updates itself, keeping saves and shortcuts. - Android: the launcher icon now matches the desktop one.
Install
The port contains no game data: you need your own copy of Touhou 8 ~ Imperishable Night (th08.dat, thbgm.dat).
| Platform | File |
|---|---|
| Windows 10 / 11 (x64) | th08-0.1.5-windows-nsis.exe: installer (recommended), or th08-0.1.5-windows-exe.exe: portable |
| Linux (x86-64, glibc 2.35+) | th08-0.1.5-linux-appimage.AppImage: chmod +x, then run |
| Android 8.0+ (arm64) | th08-0.1.5-android-apk.apk: installs as org.th08.port, updates 0.1.0 – 0.1.4 |
- Windows / Linux: pick your game folder in the launcher on the first start.
- Android: in the launcher, tap Import game files and pick
th08.datandthbgm.dat. From 0.1.4, Update in
the launcher installs this release. - Check a download:
sha256sum -c SHA256SUMS --ignore-missing, orgh attestation verify <file> -R kauri-off/th08-rs.
Saves, translations, updates and the rest: docs/PLAYING.md.
Known issues
- Dialogue and spell-card text uses a system Japanese font, not the original's MS Gothic pixels.
- Windows SmartScreen warns about the unsigned exe and installer on each new version.
- Difficulty names (Easy … Lunatic) in the Stats tab are not translated yet.
v0.1.4
Highlights
- Windows: no more silent crash on older Intel graphics. The game now uses DX12 by default, the most tested
graphics path on Windows. Some Vulkan drivers (for example on 6th–10th gen Intel graphics, even the latest driver)
crashed while the game started, so it closed without a window.WGPU_BACKEND=vulkan(orgl) still picks another
backend. - Android: update from the launcher. When a new release is out, Update downloads the APK, checks it against
the release'sSHA256SUMS, checks that it is newer and signed with the same key, and installs it. Saves, settings,
game files and translations stay. The first time, Android asks you to allow installs from th08. Updating from 0.1.3
still goes through the download link; from 0.1.4 on it works in the app. - Smooth on 30–50 Hz screens. On displays slower than 60 Hz the game keeps running at full speed (60 logic frames
per second) instead of slowing down. - Smaller downloads: Windows installer 9.5 → 6.1 MB, portable exe 22.3 → 19.8 MB, APK 19.4 → 17.2 MB, AppImage
10.2 → 9.2 MB, browser build 15 → 10 MB. - Android: importing the game files needs about a third less memory (fewer workers on low-RAM phones); a
translation that could not be copied because the storage was full is removed and reported instead of staying
half-installed. - Faster start: the system Japanese font is read once and loaded during the loading screen.
- Safety: a crafted compressed archive could exhaust memory (zstd decoder updated).
Install
The port contains no game data: you need your own copy of Touhou 8 ~ Imperishable Night (th08.dat, thbgm.dat).
| Platform | File |
|---|---|
| Windows 10 / 11 (x64) | th08-0.1.4-windows-nsis.exe: installer (recommended), or th08-0.1.4-windows-exe.exe: portable |
| Linux (x86-64, glibc 2.35+) | th08-0.1.4-linux-appimage.AppImage: chmod +x, then run |
| Android 8.0+ (arm64) | th08-0.1.4-android-apk.apk: installs as org.th08.port, updates 0.1.0 – 0.1.3 |
- Windows / Linux: pick your game folder in the launcher on the first start.
- Android: in the launcher, tap Import game files and pick
th08.datandthbgm.dat. - Check a download:
sha256sum -c SHA256SUMS --ignore-missing, orgh attestation verify <file> -R kauri-off/th08-rs.
Saves, translations, updates and the rest: docs/PLAYING.md.
Known issues
- Dialogue and spell-card text uses a system Japanese font, not the original's MS Gothic pixels.
- Windows SmartScreen warns about the unsigned exe and installer on each new version.
Full changelog: v0.1.3...v0.1.4
v0.1.3
Highlights
- Update check. The launcher tells you when a newer release is out, with links to the release notes and the
right download for your platform. It asks GitHub at most once a day, only from the launcher, and the
Update check setting turns it off. On Android, Obtainium can also track these releases; the AppImage can
update itself with AppImageUpdate or an AppImage manager. - Windows installer. Besides the portable exe there is now an installer: per-user, no admin rights, Start menu
shortcut and an uninstaller. Saves stay in%APPDATA%\th08either way. - Errors you can see. If the game crashes or cannot start, the launcher shows what happened on the next start
(desktop: copy the report or open its folder; Android: share it). The report islast_error.txt, and a short
logth08.logsits next to it. Failing to write a save shows a message in the game instead of failing silently. - Android:
- tapping a touch button quickly no longer gets lost;
- gamepad d-pads that report as axes (DualShock 4 and many Bluetooth pads) now work;
- no hang when the screen is resized, split or the font size or language changes;
- sound comes back after plugging or unplugging headphones or Bluetooth;
- opening the notification shade in a stage pauses the game;
- asks the display for 60 Hz (smoother on 90 / 120 Hz phones) and wakes up far less often;
- Android's own backup now covers your scores, replays and settings (and nothing else);
- pressing Home while the game loads no longer leaves a black screen.
- Browser: translations can now be downloaded and built in the browser; smoother frame pacing on 60 Hz
screens; saves are kept in persistent storage; sound starts on a tap or click too; scores are saved when the
tab is hidden. - Desktop: scores are saved when you close the window mid-run; on Linux without Vulkan the OpenGL fallback
works (WGPU_BACKEND=gl); the game no longer wakes the CPU about a thousand times a second while waiting for
the next frame. - Safer file handling. Damaged or crafted
score.dat, replays, archives and translation packs give an error
instead of crashing; an unreadablescore.datis kept asscore.dat.bad-<time>instead of being overwritten;
save imports are checked before anything is replaced. - Releases come with
SHA256SUMSand a GitHub build attestation, so you can check a download was built from
this tag.
Install
The port contains no game data: you need your own copy of Touhou 8 ~ Imperishable Night (th08.dat, thbgm.dat).
| Platform | File |
|---|---|
| Windows 10 / 11 (x64) | th08-0.1.3-windows-nsis.exe: installer (recommended), or th08-0.1.3-windows-exe.exe: portable |
| Linux (x86-64, glibc 2.35+) | th08-0.1.3-linux-appimage.AppImage: chmod +x, then run |
| Android 8.0+ (arm64) | th08-0.1.3-android-apk.apk: installs as org.th08.port, updates 0.1.0 – 0.1.2 |
- Windows / Linux: pick your game folder in the launcher on the first start.
- Android: in the launcher, tap Import game files and pick
th08.datandthbgm.dat. - Check a download:
sha256sum -c SHA256SUMS --ignore-missing, orgh attestation verify <file> -R kauri-off/th08-rs.
Saves, translations, updates and the rest: docs/PLAYING.md.
Known issues
- Dialogue and spell-card text uses a system Japanese font, not the original's MS Gothic pixels.
- Windows SmartScreen warns about the unsigned exe and installer on each new version.
- 0.1.2 and older have no update check: this is the last release you have to find yourself.
Full changelog: v0.1.2...v0.1.3
v0.1.2
Highlights
- Android: import the game files. In the launcher, tap Import game files and pick
th08.datand
thbgm.datfrom anywhere (Downloads, a USB drive, cloud storage). The app checks them against the original,
converts them into its own.pakformat in its private storage (about a minute on a phone) and can remove them
again. No file copying intoAndroid/dataand no computer needed. - Save backups. Export your scores, replays and settings to one zip, and import them on another device or
build (desktop, Android, browser). The current files are backed up before an import. - Replay controls. While a replay plays: pause, one-frame step, ¼× to 8× speed (F5–F8 on desktop, a strip on
touch screens). Replays play exactly as at 1×. - Hitbox viewer. F3, the port menu or the
hitboxessetting shows the player's hit box and graze area, every
bullet's and laser's collision shape and enemy hurt boxes, drawn over the picture without touching the game. - Android full screen and Back. The game hides the system bars; Back uses Android's new back API
(OnBackInvokedCallback). In full screen the first edge swipe shows the bars and the second one goes back. - CI: every push is now checked (fmt, clippy, tests, wasm, Android).
Install
The port contains no game data: you need your own copy of Touhou 8 ~ Imperishable Night (th08.dat, thbgm.dat).
| Platform | File |
|---|---|
| Windows 10 / 11 (x64) | th08-0.1.2-windows-exe.exe: portable, run it from any folder |
| Linux (x86-64, glibc 2.35+) | th08-0.1.2-linux-appimage.AppImage: chmod +x, then run |
| Android 8.0+ (arm64) | th08-0.1.2-android-apk.apk: installs as org.th08.port, updates 0.1.0 and 0.1.1 |
- Windows / Linux: pick your game folder in the launcher on the first start.
- Android: in the launcher, tap Import game files and pick
th08.datandthbgm.dat.
Saves, translations and the rest: docs/PLAYING.md.
Known issues
- Dialogue and spell-card text uses a system Japanese font, not the original's MS Gothic pixels.
- Uninstalling the Android app deletes its saves and replays: export a backup first.
- The browser build cannot download translations.
Full changelog: v0.1.1...v0.1.2
v0.1.1
Highlights
A fix release for settings and saves.
- Android: after the system closes the app in the background, it now resumes into the game instead of
starting over. - Safer saves: the save files and
port.cfgare written atomically, so a crash or a killed app mid-write no longer
leaves a broken file. - Window mode: the fullscreen / windowed choice is kept in
port.cfgand mirrored into the game'sth08.cfg, so
the launcher's setting sticks. - Music: a SoundFont that fails to load falls back to the WAV music from
thbgm.dat. - Cheats: with any cheat setting on,
score.datand replays are never written, and the port always says so. - Translations: when a language is installed twice, the newest pack wins; a chosen game-text language whose
pack is missing is shown as "not installed: original text". - Settings: relative paths in
port.cfgare read from its own folder; developer settings are dropped from
port.cfgwhen it is saved; an empty on/off value means off. - Releases: builds are now made and published by a manual workflow from
master.
Install
The port contains no game data: you need your own copy of Touhou 8 ~ Imperishable Night (th08.dat, thbgm.dat).
| Platform | File |
|---|---|
| Windows 10 / 11 (x64) | th08-0.1.1-windows-exe.exe: portable, run it from any folder |
| Linux (x86-64, glibc 2.35+) | th08-0.1.1-linux-appimage.AppImage: chmod +x, then run |
| Android 8.0+ (arm64) | th08-0.1.1-android-apk.apk: installs as org.th08.port, updates the previous release |
- Windows / Linux: pick your game folder in the launcher on the first start.
- Android: game-file import from the launcher arrives in 0.1.2; this release cannot load game data on Android
without developer tools.
Saves, translations and the rest: docs/PLAYING.md.
Known issues
- Dialogue and spell-card text uses a system Japanese font, not the original's MS Gothic pixels.
- Android: no game-file import yet (0.1.2).
- Uninstalling the Android app deletes its saves and replays.
- The browser build cannot download translations.
Commits
e7a5151ci(release): run by hand from master with a publish input that tags and releases66ba6d0fix(config): hermetic tool runs, cheats never write saves and are always flagged, empty bool means off,
bundled game folder not saved to port.cfg9f40339fix(config): Android resumes into the game after process death, port.cfg owns the window mode (mirrored
into th08.cfg), release channel needs an explicit key, bad soundfont falls back to WAV04e64fcfix(config): atomic save and port.cfg writes, newest pack wins, missing game_text pack shown, relative
port.cfg paths from the config dir, dev keys dropped on saveb6da4ccchore(release): 0.1.1
Full changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: https://github.com/kauri-off/th08-rs/commits/v0.1.0