Repository navigation
0.10.0
This release adds ghosts to TIME ATTACK (Issue #41).
- Race your best run: in TIME ATTACK a see-through, pale-blue copy of a recorded run plays alongside you. When it reaches the goal its time is shown.
- TIME ATTACK > GHOST sets OFF, BEST or LAST. BEST is the stage's fastest ghost, whichever characters ran it; LAST is the stage's last finished run.
- It is on (BEST) by default on Windows, Linux and macOS.
- It is off on Android and iOS, because a ghost runs a second copy of the game and may slow a phone.
- How runs are kept: every finished run is kept as the stage's last run, and as the best for its two characters when it is faster. Runs with cheats on are not kept.
- Sharing: ghosts are small files (about 140 KB) in
Ghosts/in your data folder. Copy them to share a run; a copied file is picked up as long as its name starts with the stage's<place>_<level>_. - Your run stays exact: the ghost runs on its own and never changes your game. Your pictures and the machine's state are identical with and without it.
- Same version only: a ghost from another ROM, ROM patch set or game version is passed over, like a save state. A ghost that doesn't end at its recorded time is set aside.
- Details: docs/GHOSTS.md.
Validation:
- Windows: all 66 CTest cases pass. A new test records a finished run as a ghost, then races it with a different run and different characters. It checks that:
- the ghost ends in sync at its recorded time;
- it is drawn only inside its own box;
- every frame's picture and machine state are identical with and without the ghost;
- lockstep holds;
- a ghost with changed inputs is reported as out of sync.
- Lockstep: all 33 sweep runs with random input are bit-identical.
- Frame rate: racing a ghost for 50 seconds held 59.9 frames per second on the development PC.
- macOS (M1): all 63 CTest cases pass and lockstep is bit-identical on arm64.
- Linux: all 63 Linux CTest cases pass.
- Packages: the packaged Windows and Linux builds pass the startup tests.
- Android: the APKs have not been tested on a device for this release.
Downloads: the Windows x64 zip, the Linux x64 tar.gz, the macOS arm64 zip, the iOS .ipa, and two Android APKs: arm64-v8a/x86_64 (the usual one) and armeabi-v7a (32-bit ARM). Both APKs use version code 33 and the same signing certificate as 0.9.0, so they update in place.
You must supply your own Knuckles' Chaotix (Japan, USA) ROM. No ROM image or game assets are included.