Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport SDL 2-dependent new input/sound/platform features to Windows 98 #53

Open
nmlgc opened this issue Sep 4, 2023 · 2 comments
Open
Assignees
Labels
Enhancement New feature or request Vintage Only necessary to keep the game working on the old Windows 9x systems that it originally targeted.

Comments

@nmlgc
Copy link
Owner

nmlgc commented Sep 4, 2023

SDL 2 doesn't work on Windows 98 by default, which means that the i586 builds are going to miss out on the following features:

Making these work on Windows 98 could be done in two ways:

  1. Get SDL 2 running on Windows 98 after all, forking it if necessary. More expensive, but would benefit every SDL 2 game. Bonus points for getting SDL 2 to run without KernelEx.
  2. Backport all features to the original DirectInput and DirectSound backends. Cheaper, but will only cover Shuusou Gyoku.

It's up to the backers to decide which strategy I go with.

@nmlgc nmlgc added Enhancement New feature or request Vintage Only necessary to keep the game working on the old Windows 9x systems that it originally targeted. labels Sep 4, 2023
@nmlgc
Copy link
Owner Author

nmlgc commented Dec 21, 2023

Turns out that miniaudio has two disadvantages when it comes to the features needed for #9:

  1. It doesn't provide APIs for accessing FLAC or Ogg metadata, even though its vendored libraries have the code for it.
  2. Its fader is linear rather than logarithmic, with no way to customize it.

With 1) forcing me to separately include the same libraries anyway, I've moved FLAC/Vorbis decoding and fading to the platform-independent game layer, using an adapted version of thcrap's BGM streaming code. miniaudio now only receives the raw audio stream, which means that we only ended up using it for features that DirectSound also supports.

Thus, it would make slightly more sense to go for 2) in the case of sound. Then, we not only get FLAC/Vorbis BGM modding on Windows 98, but even the modern SDL Windows build could ditch miniaudio and go back to DirectSound, reducing binary size and release build link times.

@nmlgc nmlgc changed the title Backport new input and sound layer features to Windows 98 Backport new input/sound/platform features to Windows 98 Feb 28, 2024
@nmlgc nmlgc changed the title Backport new input/sound/platform features to Windows 98 Backport SDL 2-dependent new input/sound/platform features to Windows 98 Feb 28, 2024
nmlgc added a commit that referenced this issue Mar 9, 2024
This delivery will introduce `std::filesystem` and `std::jthread` to
core parts of game code. The Visual Studio CRT implements these with
Win32 API functions that aren't available on Windows 98, even with the
most available KernelEx version. Let's drop this build until someone
actually funds #53 and #58, since I'm going to be unable to test it.

Part of P0270, funded by Ember2528.
@nmlgc nmlgc self-assigned this Mar 11, 2024
@nmlgc
Copy link
Owner Author

nmlgc commented Mar 11, 2024

Option 1 (porting SDL 2 to Windows 98) has received €62.50 in microtransaction funding from M0003.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request Vintage Only necessary to keep the game working on the old Windows 9x systems that it originally targeted.
Projects
None yet
Development

No branches or pull requests

1 participant