BREAKTHROUGH: Discovered that WINETRICKS_FORCE=1 enables reliable speechsdk
installation in wine64+WOW64, eliminating the need for wine32 bottle.
**Wine Architecture:**
- Removed wine32 bottle creation completely (deleted 58 lines)
- Disabled check_wine32() call - no more PlayOnLinux wine32 downloads
- All games now use unified wine64 bottle with WOW64 for 32-bit apps
- Updated architecture selection to always default to wine64
**SAPI Support:**
- wine64 bottle now includes speechsdk via WINETRICKS_FORCE=1
- Microsoft Mike configured as default SAPI voice in wine64
- Both wine32 and wine64 bottle creation use WINETRICKS_FORCE=1
- Updated bottle.sh to recognize 'sapi' dependency (alongside legacy 'speechsdk')
**Game Migration (57 games):**
- Migrated all 51 BG Enterprise games to wine64
- Migrated 3 Bokurano Daibouken games to wine64
- Migrated Swamp, Dreamland, Mist World to wine64
- Migrated 8 SAPI-dependent games to wine64:
* Bloodshed - TESTED, confirmed working
* Dog Who Hates Toast - TESTED, confirmed working (VB6+SAPI validated)
* Skateboarder Pro - TESTED, confirmed working
* Lunimals, VIP Mud, Oh Shit, Entombed, Three D velocity
**Files Modified:**
- audiogame-manager.sh: Removed wine32 creation, added wine64 speechsdk
- .includes/bottle.sh: Simplified architecture logic, always wine64
- CLAUDE.md: Updated documentation to reflect wine32 elimination
- 57 game installers: Changed WINEARCH from win32 to win64
✅ Bloodshed: wine64 SAPI works perfectly
✅ Dog Who Hates Toast: wine64 VB6+SAPI confirmed working
✅ Skateboarder Pro: wine64 NVDA works perfectly
- WOW64 allows wine64 to run 32-bit apps efficiently
- nvdaControllerClient DLL update logic preserved for 32-bit apps
- Uses 'file' command to detect PE32 vs PE32+ and apply correct DLL version
- Clipboard translator for Bokurano games works with wine64 (requires reinstall)
- Simplified architecture: one bottle instead of two
- Eliminated wine32 download/management overhead
- All games benefit from modern wine64 improvements
- SAPI now works reliably via WINETRICKS_FORCE=1
🚀 Wine32 completely eliminated. All games use wine64.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
There is a technical limitation where pypresence is trying to enumerate
the available pipes in \\?\pipe\ but this is crashing because Wine doesn't
properly support enumerating the \\?\pipe\ namespace. This causes pypresence
to crash when trying to discover Discord IPC pipes.
Preserve explicitly set WINEARCH variables instead of unsetting them
in wine environment functions. This ensures that installers setting
WINEARCH="win32" are properly respected for architecture selection.
Changes:
- Remove unset WINEARCH from get_bottle() and set_wine_env()
- Add comments explaining WINEARCH preservation
- Update debug messages to show current WINEARCH value