REDIVIVUS

Proposals / #1622

Mac D2GFX_PreSetupBeforeCreatingWindow: BOOL __cdecl (hInstance, eRenderedMode, bWindowed, bDontUseCompression)

checked · by KierTaylor · submitted 2026-11-08

There are four cdecl stack args (plain RET, so caller cleanup on Mac, not stdcall). [EBP+0x14] goes first to 0x001322b7 (the compression switch). Then D2GFX_Initialize 0x002b4975 is called with [ESP]=[EBP+8] (instance), [ESP+4]=WndProc (ESI+0x35 = 0x0004a0b5), [ESP+8]=[EBP+0xc] (renderer mode) and [ESP+0xc]=[EBP+0x10] (windowed). Its EAX is returned unchanged. The roles and order match Windows twin 0x004fa520 BOOL (HINSTANCE hInstance, eD2RendererMode eRenderedMode, BOOL bWindowed, BOOL bDontUseCompression). HINSTANCE is typed void* on Mac.

Changes 1, applied together

  1. Set prototype mac 0x0004a074

    signatureundefined D2GFX_PreSetupBeforeCreatingWindow(void)→BOOL D2GFX_PreSetupBeforeCreatingWindow(void* hInstance, eD2RendererMode eRenderedMode, BOOL bWindowed, BOOL bDontUseCompression)
    conventionunknown→__cdecl