Fixed Crashes
- Bank / Auction House — SSE2 CRT strlen past mimalloc page boundaries
- Loading screen — luaH_getstr cache + TextureAsync/ModelAsync regression
- Exit — SSE2 CRT memchr/strchr + WoW-internal strlen page-boundary reads
- WeakAuras — same SSE2 CRT strlen page boundary
- Reload crash — SpellPrefetch/NameplateMT/QuestAsync workers now pause during lua_State swaps
Disabled for Stability (re-enabled in v3.6.0 beta, caused crashes)
- CRT SSE2 memory/string fast paths (strlen/strcmp/memcpy/memset)
- CRT SSE2 memchr/strchr
- WoW-internal SSE2 strlen at sub_76EE30
- luaH_getstr table lookup cache
- TextureAsync hook
- ModelAsync workers
What's Active
Memory
- mimalloc CRT allocator replacement
- mimalloc Lua VM allocator replacement
- LFH heap optimization
- Frame arena (16MB per-frame scratch)
Lua VM
- 20+ Lua Phase 2 fast paths (find, match, type, math, string, tostring, tonumber, etc.)
- Adaptive 4-tier GC (normal/combat/idle/loading)
- String table pre-sizing (32K buckets)
- Lua table rehash prevention (pow2 rounding)
- string.format fast path
Frame Pacing
- PreciseSleep (RDTSC-based)
- QPC-based timer precision (GetTickCount, timeGetTime)
- QPC coalescing cache (65%+ hit rate)
- FPS cap removal (200 → 999)
Threading
- Critical section spin optimization (4000 count + TryEnter)
- Thread affinity + priority tuning (Above Normal)
- Process working set optimization
- CombatLogMT — multithreaded combat log parser
- AddonDispatcher — 4-worker addon update dispatcher
- SpellEffectMT — multithreaded spell effect renderer
- NameplateMT — multithreaded nameplate renderer
Network
- TCP_NODELAY + ACK + QoS + keepalive + buffer optimization
- Deferred socket optimization mode
File I/O
- MPQ read-ahead cache (16-slot adaptive, 64KB/256KB)
- Async MPQ I/O background worker
- MPQ/zone prefetch (2 workers)
- Sequential scan flag on CreateFile
- FlushFileBuffers skip for read-only MPQ handles
- GetFileAttributesA cache (256 slots)
- GetFileSizeEx cache (256 slots)
- SetFilePointer → SetFilePointerEx redirect
Caches (safe)
- Tooltip string cache (92%+ hit rate, LRU 1000 entries)
- GetProcAddress cache (4-way set-associative, 128 sets)
- GetEnvironmentVariableA cache (32 slots)
- GetPrivateProfileStringA cache (128 slots)
- GetModuleHandleA cache (512 slots)
ASCII Fast Paths
- CompareStringA
- MultiByteToWideChar / WideCharToMultiByte (SSE2)
- lstrlenA/W
- lstrcmp/lstrcmpiA
- OutputDebugStringA → no-op when no debugger
- IsBadReadPtr/WritePtr → VirtualQuery
Misc
- Combat log retention fix (300s → 1800s)
- Hardware cursor visibility/clipping fix
- Spell prefetch on cast
- Sound/audio prefetch
- Quest data async loading
- SavedVariables async writes
- CRASH DUMPER: minidump on unhandled exception
Known Issue
WoW may close on loading screen if entering world immediately after character select. Wait a few seconds before clicking "Enter World."
Building
build.bat (Windows, MSVC)
make (macOS cross-compile)
Target: Win32 i386 (WoW 3.3.5a build 12340)