Commit History

  1. refactor: DDDisplayWrapper vtable uses extern "fastcall" instead of inline asm⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    368f9b1
  2. feat: port DDDisplay::FlushRender to Rust⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    f8a02c3
  3. fix: enable crash detection for headful replay tests⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    0c779ff
  4. feat: port DDDisplay::GetDimensions to Rust, hook via vtable_replace⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    e8a34a7
  5. refactor: typed BitGrid variants with alloc constructors⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    dd5434f
  6. refactor: unify BitGrid to display::bitgrid, clean up naming⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    893074e

  1. feat: type BitGrid display-layer vtable (0x664144, 8 pixel ops)⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    8e9f44c
  2. feat: map DisplayGfx internal fields and expose DisplayBase dimensions⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    eccd564
  3. feat: type DDDisplayWrapper and CompatRenderer structs and vtables⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    547a858
  4. feat: type all 35 DDDisplay vtable slots, add stack traces to traps⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    4467217
  5. refactor: rename openwa-wormkit crate to openwa-dll, output openwa.dll⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    e5f8547
  6. style: cargo fmt, add automatic cargo fmt hook⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    1b797a7
  7. feat: port DDGame__LoadFonts and DDGameWrapper__LoadFontExtension to Rust⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    f870fda
  8. feat: port CTaskTeam__CreateWeatherFilter to Rust, extract wa_lcg⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    113d28e
  9. refactor: fix CTaskCloud vtable (12→7 slots), add constructor and addresses⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    e98f3c6
  10. refactor: call load_wav directly instead of through vtable⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    985fb50
  11. feat: port DSSound_LoadEffectWAVs to Rust, rename DDGame__LoadFonts⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    487fa54
  12. feat: port Music streaming audio system to pure Rust⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    c2c06b0
  13. feat: add headful replay testing to Rust test runner⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    1b50411

  1. refactor: replace raw pointer arithmetic with typed struct access⁠

    paavohtl +1: Claude Opus 4.6
    c7778ea
  2. fix: use openwa-config registry lookup in replay-test.ps1⁠

    paavohtl +1: Claude Opus 4.6
    1d0cd99
  3. feat: add openwa-config crate with WA installation locator⁠

    paavohtl +1: Claude Sonnet 4.6
    9233b4e

  1. feat: port WavPlayer and speech/fanfare functions to pure Rust⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    410a66e
  2. refactor: replace GetTeamConfigName asm bridge with Rust lookup table⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    d2ae910
  3. chore: replace multiple shotgun / longbow replays with much longer combined replay

    0c065d7
  4. refactor: split audio modules and widen streaming sound function signatures⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    d5d9269
  5. docs: split CLAUDE.md into focused per-crate files and skills⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    095235d
  6. refactor: use typed Sprite/PaletteContext/SpriteFrame in sprite hook impls⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    14c0aff
  7. docs: document ECX preservation requirement for thiscall hook trampolines⁠

    paavohtl +1: Claude Opus 4.6
    6124d55
  8. fix: preserve ECX in usercall trampoline for thiscall MapColor hook⁠

    paavohtl +1: Claude Opus 4.6
    6eccc99
  9. fix: bounds-check palette cache instead of relying on overflow⁠

    paavohtl +1: Claude Opus 4.6
    eb1677d
  10. feat: port PaletteContext__MapColor to Rust with global hook⁠

    paavohtl +1: Claude Opus 4.6
    c60058c
  11. chore: remove unused gfx_handler.rs⁠

    7cc32c4
  12. chore: run cargo fmt⁠

    paavohtl +1: Claude Opus 4.6
    fc8be48
  13. fix: add bounds validation for frame metadata regions in parse_spr_header⁠

    paavohtl +1: Claude Opus 4.6
    3aa5d47
  14. feat: add ConstructSprite and ProcessSprite hook replacements⁠

    paavohtl +1: Claude Sonnet 4.6
    0f02b41
  15. feat: add ParsedSprite type with owned .spr parser⁠

    paavohtl +1: Claude Sonnet 4.6
    95a1173
  16. feat: add .spr header parser with SprHeader and parse_spr_header()⁠

    paavohtl +1: Claude Sonnet 4.6
    ca71a43
  17. feat: add PALETTE_CONTEXT_MAP_COLOR and DISPLAYGFX_VTABLE addresses

    f6c761a
  18. docs: add sprite parser implementation plan⁠

    paavohtl +1: Claude Opus 4.6
    c84e63a
  19. docs: add sprite parser design spec⁠

    paavohtl +1: Claude Opus 4.6
    095fbfc

  1. chore: run cargo fmt

    c5e46f1
  2. chore: Add new DDGame & GameInfo fields based on game state init functions

    5ec61be

  1. docs: update CLAUDE.md for core/wormkit split and SoundId unification⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    c359816
  2. feat: port streaming sound chain to Rust, unify SoundId/SoundSlot⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    aab6d6e
  3. refactor: extract game logic from wormkit/replacements to openwa-core⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    a553079
  4. chore: fix compiler warnings

    323dedb
  5. refactor: replace validation module with registry-driven startup checks⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    78a42eb
  6. docs: update CLAUDE.md with trace-desync, module split, env vars⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    2b5bc3c
  7. chore: remove openwa-harness crate⁠

    paavohtl +1: Claude Opus 4.6 (1M context)
    eedf656