Skip to content

P0309

Latest
Compare
Choose a tag to compare
@nmlgc nmlgc released this 03 Apr 22:33

Optional screenshot compression and SDL 3 support!

The detailed changelog:

  • Screenshots can now be saved as either BMP or lossless WebP.
    The new Config → Graphic → Screenshots menu offers the choice between any of WebP's 10 official effort presets, as well as a built-in performance benchmark.
    • (DirectDraw-exclusive) WebP compression is currently not supported in 16-bit mode.

32-bit Shuusou Gyoku screenshot encoding times on an Intel Core i5 8400T from 2018, which is just slightly too slow to guarantee real-time encoding at -z0 without frame drops

  • Screenshot files are now placed into a screenshots/ subdirectory within the game data folder, and no longer use the 秋霜 prefix.

  • (Modern-exclusive) When switching rendering APIs in exclusive fullscreen mode, the game now stays on the same display.

  • (Modern-exclusive) If the game is quit in fullscreen mode, it now correctly remembers the display it might have been moved to.

  • (Modern-exclusive) The platform layer has been updated to SDL 3, which most notably brings

    • significantly improved render performance on all non-software renderers due to enforced draw call batching, and
    • new Vulkan and GPU backends, selectable in the Config → Graphic → API menu.
  • (Modern-exclusive) The rendering API can now be overridden in two additional ways if the API menu is inaccessible due to rendering bugs:

    • The new F7 hotkey cycles forward through the API list.
    • The SDL_RENDER_DRIVER environment variable forces the game to start with a specific API. It can have one of these values:
      • direct3d
      • direct3d11
      • direct3d12
      • opengl
      • opengles2
      • vulkan
      • gpu
      • software
  • (Modern×Windows-exclusive) If you previously selected any Direct3D API, the game will start with a different one due to SDL 3's differently ordered priority list. Make sure to recheck the API menu after updating to this build.

  • (Modern×Windows-exclusive) The Windows SDL 3 build now defaults to Direct3D 11, which is SDL 3's recommended default. This also means that 1-pixel lines now get rendered pixel-perfectly compared to pbg's original build, since all Direct3D versions share the same line rendering algorithm.

  • (Modern-exclusive) The graphics option hotkeys introduced in P0295 came with two bugs that removed on-screen text when changing the window size or the layout of the borderless fullscreen mode:

    1. Changing the size in the Music Room would remove the version banner and the MIDI device string upon switching tracks
    2. Changing the size in-game during the music title animation and then opening the menu would remove the animation
      Both of these have now been fixed.
  • The main menu now shows the ReC98 build tag in the bottom-right corner, below the game's version number.

  • Submenus with ≥10 items are now anchored to the bottom of the main menu's background image.

Troubleshooting

If the regular/modern build fails to render anything, try hitting F7 to switch to the next rendering API in the list. You can also override any previous API choice by setting the environment variable SDL_RENDER_DRIVER to one of the following:

  • direct3d
  • direct3d11
  • direct3d12
  • opengl
  • opengles2
  • vulkan
  • gpu
  • software

As of the P0256 build, D3DWindower can no longer be used with the vintage DirectDraw/Direct3D binary, but DxWnd still works. Import this configuration via File → Import, then adjust the path to your GIAN07.exe.
If that binary still runs slow on your system, or doesn't render anything at all:

  • Delete any reference to GIAN07.exe from the following registry keys:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
  • Make sure that the 32-bit mode is activated in the Config → Graphic menu.


Additional credits


Summary blog post: https://rec98.nmlgc.net/blog/2025-04-09
Full changelog compared to the previous release: P0303-2...P0309
Previous release: https://github.com/nmlgc/ssg/releases/tag/P0303