Skip to content

Releases: nmlgc/ReC98

P0239 (TH01 Anniversary Edition)

02 May 03:50
Compare
Choose a tag to compare

(Refer to the initial release of this fork for a description of what this fork is about, and how to run this binary.)

Just a minor release, featuring ½ of a push worth of small bug fixes:

  • ANNIV.EXE now runs ZUNSOFT.COM together with MDRV98 if the latter isn't resident at startup time. With the ZUN Soft logo animation included, ANNIV.EXE is now fully independent of GAME.BAT.

  • The optional AUTOEXEC.BAT is now correctly encoded in Shift-JIS instead of accidentally being UTF-8. This fixes the mojibake in its final ECHO line seen in the previous two releases.

  • The stage selection debug feature (anniv s) now works reliably. ZUN's original code forgot to initialize the internal debug flag for the s mode, which caused game s to only work if a specific byte in conventional DOS RAM was written to before starting the game. This happens on a certain widely circulated .HDI copy of TH01 that boots MS-DOS 3.30C, which might be the whole reason why game s is widely documented to trigger a stage selection to begin with.

  • All bugs in the 1×1 particle system during the Mima fight have been fixed:

    • They are now rendered with basically no flickering, and only rip barely visible 1×1 holes into the sprites they overlap.
    • The original game had an off-by-one error that disabled the very first particle after spawning the 41st one on the 80th frame of the fight, leaving it on the screen until another sprite overlaps it.
      See https://rec98.nmlgc.net/blog/2021-10-09 for a recording of the original bug.
  • The score popups for flipped cards are now displayed without flickering.

  • The flashing ドカーン image in the 地獄/Jigoku Bad Ending is now displayed without tearing. Both of the images in this effect are now shown for two frames each, matching the intention of ZUN's code. With some new image display optimizations, the whole animation is now also way more likely to complete within ZUN's defined amount of frames, slightly speeding up this ending compared to the original game.
    See https://rec98.nmlgc.net/blog/2022-06-17 for a documentation of the original bug.

  • The bomb value shown in the lowest line of the in-game debug mode output is now right-aligned together with the rest of the values. This ensures that the game always writes a consistent number of characters to TRAM, regardless of the magnitude of the bomb value, preventing the seemingly wrong timer values that appeared in the original game whenever the value of the bomb variable changed to a lower number of digits.


Source code: https://github.com/nmlgc/ReC98/tree/anniversary
Full changelog compared to the previous release: c7bdc1a...P0239
Previous release: https://github.com/nmlgc/ReC98/releases/tag/P0234-1
Summary blog post: https://rec98.nmlgc.net/blog/2023-05-01

P0234-1 (TH01 Anniversary Edition)

14 Mar 00:36
Compare
Choose a tag to compare

(Refer to the initial release of this fork for a description of what this fork is about, and how to run this binary.)

Small fix for a (non-ZUN) bug introduced in P0234. When defeating Sariel's first form, a previously undocumented ZUN quirk causes all pellets in a delay cloud state to be carried over to the second form. Being unaware of this quirk, I didn't keep it in mind when rewriting the pellet rendering code, which accidentally ended up rendering such pellets as white streaks across their trajectory once their delay cloud animation finished:

2023-03-14-TH01-Sariel-delay-cloud-carry-P0234.webm

This issue is fixed in this build. Thanks to mu021 for reporting!


Source code: https://github.com/nmlgc/ReC98/tree/anniversary
Full changelog compared to the previous release: P0234...P0234-1
Previous release: https://github.com/nmlgc/ReC98/releases/tag/P0234
Summary blog post: https://rec98.nmlgc.net/blog/2023-03-14

P0234 (TH01 Anniversary Edition)

05 Mar 13:21
Compare
Choose a tag to compare

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