## Link to GitHub Issue, if one exists
n/a
## Description of change
Add a "Linux" variant of spicecfg/spice/spice64.exe - currently these
are the same as Windows binaries but built without dependency on
WinSCard, which makes it easier to run on WINE.
Split dist archive into two, move api and extras into the new extras
zip.
## Testing
I only checked to see that Linux variants run fine on Windows, and
checked with dumpbin to confirm that the dependency on winscard DLL is
removed. No official support will be provided for Linux builds.
## Link to GitHub Issue, if one exists
n/a
## Description of change
Add CMake option to disable SCard functionality. Needed by some builds
of WINE, where distributor opted to not enable scard functionality for
whatever reason
## Testing
Building with `cmake -DWITH_SCARD=OFF` does not link against winscard
Building without this option at all links against winscard
## Link to GitHub Issue, if one exists
#388
## Description of change
Instead of setting flags in `signal` and logging when we crash, create a
class for logging deferred semi-fatal messages, and dump them to the log
immediately before crashing or shutting down.
## Testing
Tested each failure case by injection.
## Description of change
When the game library fails to load, recursively iterate its import
table to narrow down the missing library.
If the dependency is a commonly missing one, give the user a hint on
where to find it.
## Testing
System with an AMD GPU and LDJ-010 IIDX:
```
[2025/10/01 00:32:41] M:dependencies: bm2dx.dll
[2025/10/01 00:32:41] M:dependencies: |-- nvEncodeAPI64.dll
[2025/10/01 00:32:41] W:dependencies: | |-- [!] NVIDIA Graphics Driver
[2025/10/01 00:32:41] W:dependencies: | |-- For non-NVIDIA GPUs, copy the stub file from the spice2x release .zip.
[2025/10/01 00:32:41] F:libutils: DLL failed to load - this is a common error. Please carefully read ALL of the following steps for a fix:
```
Same system, but with SDVX:
```
[2025/10/01 00:33:53] M:dependencies: soundvoltex.dll
[2025/10/01 00:33:53] M:dependencies: |-- nvcuda.dll
[2025/10/01 00:33:53] W:dependencies: | |-- [!] NVIDIA Graphics Driver
[2025/10/01 00:33:53] W:dependencies: | |-- For non-NVIDIA GPUs, copy the stub file from the spice2x release .zip.
[2025/10/01 00:33:53] M:dependencies: |-- nvcuvid.dll
[2025/10/01 00:33:53] W:dependencies: | |-- [!] NVIDIA Graphics Driver
[2025/10/01 00:33:53] W:dependencies: | |-- For non-NVIDIA GPUs, copy the stub file from the spice2x release .zip.
[2025/10/01 00:33:53] F:libutils: DLL failed to load - this is a common error. Please carefully read ALL of the following steps for a fix:
```
Contrived example of a missing dependency of a dependency:
```
[2025/10/01 00:30:59] M:dependencies: bm2dx.dll
[2025/10/01 00:30:59] M:dependencies: |-- libaio.dll
[2025/10/01 00:30:59] W:dependencies: | |-- [!] The library could not be loaded. (126)
[2025/10/01 00:30:59] M:dependencies: |-- libaio-iob.dll
[2025/10/01 00:30:59] M:dependencies: | |-- libaio.dll
[2025/10/01 00:30:59] M:dependencies: |-- libaio-iob2_video.dll
[2025/10/01 00:30:59] M:dependencies: | |-- libaio.dll
[2025/10/01 00:30:59] M:dependencies: | |-- libaio-iob.dll
[2025/10/01 00:30:59] F:libutils: DLL failed to load - this is a common error. Please carefully read ALL of the following steps for a fix:
```
Another example of a missing file, but with 32-bit IIDX 24:
```
[2025/10/01 00:42:13] M:dependencies: bm2dx.dll
[2025/10/01 00:42:13] M:dependencies: |-- libafp-win32.dll
[2025/10/01 00:42:13] W:dependencies: | |-- [!] The library could not be loaded. (126)
[2025/10/01 00:42:13] M:dependencies: |-- libafputils-win32.dll
[2025/10/01 00:42:13] M:dependencies: | |-- libafp-win32.dll
[2025/10/01 00:42:13] F:libutils: DLL failed to load - this is a common error. Please carefully read ALL of the following steps for a fix:
```
---------
Co-authored-by: aixxe <me@aixxe.net>
## Link to GitHub Issue, if one exists
n/a
## Description of change
Adds support for Polaris Chord
## Testing
Tested with XIF:J:A:A:2024122300. IO/ICCA works, game successfully
connects to server and is playable.
## Link to GitHub Issue, if one exists
n/a
## Description of change
Add a stub for `cpusbxpkm.dll`. The stub doesn't work, it's only enough
to allow the game to load; but that is irrelevant since spice hooks the
printer at runtime.
## Testing
Observed the game boot, and was able to print out the test image from
test menu. Will do more testing on a real server.
## Link to GitHub Issue, if one exists
Fixes#280
## Description of change
Introduce a variant of 32bit spice.exe that is large address aware.
## Compiling
👍
## Testing
Minimal testing has been done to see if the LAA variant can boot
existing 32 bit games.
## Link to GitHub Issue, if one exists
n/a
## Description of change
Update ImGui to `v1.91.4`. We can't update to `v1.91.5` or newer just
yet because impl_spice depends on the old IO model of ImGui which got
removed in `v1.91.5`.
We also can't update the DX9 renderer right now, because at some point
overlay breaks in TDJ (and only in TDJ...)
Enable the new debug logging functionality in ImGui. Add a button in
overlay to toggle debug log window.
Fix some minor bugs spotted by the new ImGui debug log: mismatched API
calls, font loading issues.
## Compiling
👍
## Testing
In progress.
## Link to GitHub Issue, if one exists
n/a
## Description of change
Functionally, no change.
Move ImGui library files around so that they mirror how they are
structured in imgui releases. This will make it easier to migrate to a
future version of ImGui.
Add a handful of static asserts to check that we have the necessary
features enabled / disabled in imgui header.
## Compiling
👍
## Testing
Tested 32-bit overlay, 64-bit overlay, TDJ, and UFC overlays, and
spicecfg.
Interesting finds during ImGui testing (not part of this PR, but for
future reference when upgrading imgui version):
* Updating dx9 backend to the newest causes TDJ to stop rendering the
overlay completely (fine in UFC or any other game)
* Omitting `IMGUI_USE_BGRA_PACKED_COLOR` causes spicecfg software
renderer to use the wrong color (RGB format parsing error probably)
* At some point - v1.90? the `About` and `Licenses` buttons in spicecfg
stop responding after an upgrade, maybe our improper usage of MenuItem?
* Using the docking branch of ImGui is not required but we should just
stick to it for multi-viewport functionality which we may want to use
later.
## Link to GitHub Issue, if one exists
n/a
## Description of change
Adds Mahjong Fight Girl Support
## Compiling
+
## Testing
Tested with VFG:J:E:A:2024100800 in HG mode with VFG IO. No
modifications made to data, other than avs-config.xml and
ea3-config.xml. B and C modes don't work because of serial touchscreen.
UKS mode doesn't work because of IO.
## Link to GitHub Issue, if one exists
Fixes#263
## Description of change
Add "scenes" to screen resize.
* UI changes - F11 menu now has a "scene switcher" for `Scene 1/2/3/4`.
Clean up other UI bits.
* Add hotkeys for `Screen Resize Scene 1`, `Screen Resize 2`, and so on.
* Detect hot key and trigger resizes.
* Add additional objects to screen_resize.json for saving and loading
the new scene settings.
* Existing screen resize data is backwards compatible (can be
loaded/saved to JSON), and is treated as `Scene 1`.
* Add API endpoint for `Resize`, allow toggling resize on/off, switching
active scene
* Add Python wrapper. Did not bother with the other wrappers (Dart, C++,
etc)...
## Compiling
🥇
## Testing
Still testing, but seems to work fine for TDJ.