Skip to content

P0234 (TH01 Anniversary Edition)

Compare
Choose a tag to compare
@nmlgc nmlgc released this 05 Mar 13:21
· 374 commits to master since this release

First release of the TH01 東方靈異伝 ~ The Highly Responsive to Prayers Anniversary Edition: a bugfixed and optimized version of the original game with smoother rendering and less flicker. All improvements are purely visual; gameplay remains unmodified compared to ZUN's original release.

Notable changes

  • Interlaced pellet rendering was removed from the Stage 15 and 20 boss fights, effectively doubling their perceived frame rate. During these stages, the original game separated all active pellets into two halves which it rendered on alternate frames, resulting in a noticeably choppy game performance. This was likely done to work around the enormous amount of wasted CPU cycles in the original pellet rendering code, and to reduce tearing due to the game being single-buffered. By optimizing the renderer, this build solves the root problem, and easily manages twice the number of pellets without flickering.

  • Flickering from pellets that overlap other sprites has been significantly reduced, and is now limited to a correct 8×8 rectangle instead of using a 16×8 or even 32×8 rectangle depending on the pellet position.

  • The Sariel fight features two animations that are not displayed in the original game because of type confusion bugs:

    • The spawn cross circle in the red bird pattern was supposed to smoothly fly off the playfield, but suddenly vanishes after spawning all bird eggs.
    • The "swaying leaves" pattern in her second form contains an unused splash animation once the sparks hit the top of the playfield and turn into leaves. The intended delay between these two states remains in the original game, lending further proof to this being a bug.

    Both animations were restored in this build. See https://rec98.nmlgc.net/blog/2022-01-31 for comparison videos.

  • The game now stores its main code in a single binary instead of splitting it up into three executables (OP.EXE, REIIDEN.EXE, and FUUIN.EXE). After removing a bit of bloat, the new ANNIV.EXE ended up even smaller than the original REIIDEN.EXE.

Setup

Drop ANNIV.EXE into the directory of an existing TH01 installation, and run this file from the DOS prompt to play the game.

If you run the game from an .HDI image, use image editing tools like DiskExplorer to modify your installation. In this case, you can also copy the included AUTOEXEC.BAT to automatically boot into the Anniversary Edition, showing the ZUN Soft logo before the main menu.

To simplify distribution and reduce clutter in the game directory, ANNIV.EXE performs advanced witchcraft to automatically launch MDRV98.COM if necessary, without needing a batch file. Doing this is technically impossible and prone to hypothetical failure, and thus only recommended for development. Repacks should create a custom version of the original GAME.BAT that replaces the call to OP.EXE with ANNIV.EXE.

Command-line options

ANNIV.EXE preserves all command-line features of the original three executables:

  • The test and debug modes can be entered with anniv t, and anniv d, respectively.
  • The original hidden ending preview feature has also been retained, and is available via anniv fuuin t1 and anniv fuuin t. Requires an externally launched MDRV98, just like the original binary.

Troubleshooting

  • If you're playing on Neko Project and seeing more flickering than in the original game, make sure you've checked the Screen → Disp vsync option.

Source code: https://github.com/nmlgc/ReC98/tree/anniversary
Summary blog post: https://rec98.nmlgc.net/blog/2023-03-05