Anatomy of the Client Boot Sequence
Understanding why a black screen occurs requires examining the client's internal startup sequence (as implemented in boot.js and rogue.js):
- WASM Download (~15 MB Brotli): The page fetches
wenilla_bg.wasm. Because the decompressed WebAssembly binary expands to over 86 MB in memory, high-latency connections may take 10 to 30 seconds to stream the file. During this phase, an unstyled canvas remains black. - WebGPU Adapter Request: The script executes
navigator.gpu.requestAdapter(). If your graphics card or driver rejects this call (or if software rendering is forced), the client panics internally with "Unable to find a GPU!" and aborts before drawing a single polygon. - Catalog Data Prefetch: The client initiates parallel fetch requests for core interface data files (stored under
/data/, such as DBC class files and Lua glue scripts). If a network timeout occurs during this prefetch, the client stalls. - Canvas Initialization & Focus: The engine binds to
<canvas id="benilla">and callsfocus(). Once initialized, the first frame is submitted via WebGPU.
Cause 1: Cloudflare 4-Hour Stale Cache Mismatch
This is the most common reason a player who previously ran the game successfully suddenly encounters a black screen the following day.
The Upstream Cloudflare Caching Factor
As noted in the developer's source comments: "Cloudflare stretches the .js files' cache to four hours whatever nginx says, and a cached old wenilla.js under a new wasm fails to start ('Import requires a callable')."
When developer Aethus deploys a new patch, your browser might retain the old JavaScript glue file while downloading the new WebAssembly binary. To force your browser to synchronize all assets:
- Open the tab showing the black game canvas.
- Press F12 to open Developer Tools.
- Right-click the browser's Reload / Refresh button in the top toolbar.
- Select "Empty Cache and Hard Reload".
- Wait for the complete 15 MB stream to finalize.
Cause 2: AudioContext Suspension & Canvas Focus Lock
Chromium and WebKit browsers enforce strict anti-autoplay policies. If an application attempts to instantiate a Web Audio context before an explicit user interaction (click, tap, or keydown), the browser forcibly freezes the audio mixer in a suspended state.
Furthermore, the game's keyboard listener is anchored directly to the <canvas id="benilla"> element. If you launched the game and immediately clicked away to another tab or monitor, the canvas loses focus. You may think the game has frozen on the character select screen when in reality your keystrokes are simply not reaching the canvas.
The 1-Click Fix
Left-click anywhere directly inside the center of the game window. The client automatically registers the gesture, executes resume() across all audio contexts, and refocuses the input canvas.
Cause 3: WebGPU Adapter Rejection & Driver Panic
If your browser supports WebGPU in theory, but your graphics driver is outdated or has blacklisted your specific GPU vendor ID, the call to navigator.gpu.requestDevice() will reject with an uncaught promise error.
To diagnose whether this is causing your black screen:
- Press Ctrl+Shift+I (or Cmd+Option+I on Mac) to open Developer Tools.
- Switch to the Console tab and look for red error messages.
- If you see "The game failed to start in this browser (Unable to find a GPU!)", your GPU driver crashed during adapter acquisition.
- Update your graphics card drivers to the latest official release (NVIDIA Game Ready Driver, AMD Adrenalin, or Intel Arc/Graphics drivers).
- Check our WebGPU Setup Guide to verify graphics settings.