Skip to content

PurpleWave local JBWAPI tweaks - #3

Open
dgant wants to merge 5 commits into
developfrom
codex/portable-native-loading
Open

dgant wants to merge 5 commits into
developfrom
codex/portable-native-loading

Conversation

@dgant

@dgant dgant commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Stash of my local changes. Not intended to be upstreamed.

Agent wrote:

Port the remaining PurpleWave connection and map-access extensions onto JavaBWAPI/JBWAPI develop at 0507796. The fork's develop branch now contains the rebased connection-readiness work, including optional adjacent JNA DLL loading and the ordinary JNA fallback. No custom native cache is included.

This branch preserves unchecked visibility/exploration/creep queries and explicit bwapi.serverProcessId selection, moves null-mapping diagnostics into the upstream Windows connector, and rejects nonpositive process IDs when no automatic server is available. New regression tests cover process selection, missing servers, and live map data.

Validation:

  • Windows Java 8u171 x86: 58 JBWAPI tests, zero failures/errors, one intentionally skipped non-Windows-only test (bundledWindowsLibrariesAreIgnoredOnOtherPlatforms); that test passes in Linux CI.

  • PurpleWave compiled successfully with JNA 5.18.1 and the upstream configuration builder/POSIX dependencies.

  • A complete SC-Docker game against Stardust on Fighting Spirit (seed 1101) ended normally, with no crash or game/realtime timeout; both replays were recorded. PurpleWave lost the game.

  • Combined integration with the query-cache and walkability branches: 74 JBWAPI tests, zero failures/errors, the same single skip, plus another complete game.

  • The PurpleWave integration follow-up repairs stale strategy expectations and test fixtures; the proxy strategy, Carrier reserve, Dark Templar defense, and gathering checks now pass against the tested combined bot.

The tested code was rebased once more solely to include the measured timing comment requested in upstream PR JavaBWAPI#97; the runtime implementation is unchanged.

dgant added 5 commits November 2, 2026 12:25
Defer frame buffers and metrics until after the BWAPI handshake, and use a focused Windows shared-memory mapping interface.

Automatically load an architecture-named JNA DLL beside the bot JAR after verifying it against the embedded binary. Preserve explicit JNA settings and ordinary loading when no matching bundle is available, without a custom native cache.

Package portable Windows DLLs beside the JAR and cover native loading, startup ordering, mapping behavior, and Windows Java 8 x86 in tests and CI.
@dgant dgant changed the title Port PurpleWave connection and map access extensions to modern JBWAPI PurpleWave JBWAPI Fork Nov 3, 2026
@dgant dgant changed the title PurpleWave JBWAPI Fork PurpleWave local JBWAPI tweaks Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant