diff --git a/src/wiiu/Graphics_WiiU.c b/src/wiiu/Graphics_WiiU.c index 4f0da4e01..42006c299 100644 --- a/src/wiiu/Graphics_WiiU.c +++ b/src/wiiu/Graphics_WiiU.c @@ -372,7 +372,12 @@ static GfxResourceID Gfx_AllocStaticVb(VertexFormat fmt, int count) { buf->elemSize = strideSizes[fmt]; buf->elemCount = count; - if (GX2RCreateBuffer(buf)) return buf; + // TODO calculate directly, avoid GX2R + uint32_t align = GX2RGetBufferAlignment(buf->flags); + uint32_t size = GX2RGetBufferAllocationSize(buf); + + buf->buffer = MEMAllocFromDefaultHeapEx(size, align); + if (buf->buffer) return buf; // Something went wrong ?? TODO Mem_Free(buf); return NULL; @@ -382,25 +387,24 @@ void Gfx_DeleteVb(GfxResourceID* vb) { GX2RBuffer* buf = *vb; if (!buf) return; - GX2RDestroyBufferEx(buf, 0); - Mem_Free(buf); + MEMFreeToDefaultHeap(buf->buffer); + Mem_Free(buf); *vb = NULL; } void Gfx_BindVb(GfxResourceID vb) { GX2RBuffer* buf = (GX2RBuffer*)vb; - GX2RSetAttributeBuffer(buf, 0, buf->elemSize, 0); - //GX2SetAttribBuffer(0, + GX2SetAttribBuffer(0, buf->elemSize * buf->elemCount, buf->elemSize, buf->buffer); } void* Gfx_LockVb(GfxResourceID vb, VertexFormat fmt, int count) { GX2RBuffer* buf = (GX2RBuffer*)vb; - return GX2RLockBufferEx(buf, 0); + return buf->buffer; } void Gfx_UnlockVb(GfxResourceID vb) { GX2RBuffer* buf = (GX2RBuffer*)vb; - GX2RUnlockBufferEx(buf, 0); + GX2Invalidate(GX2_INVALIDATE_MODE_CPU_ATTRIBUTE_BUFFER, buf->buffer, buf->elemSize * buf->elemCount); } diff --git a/src/xbox/Window_Xbox.c b/src/xbox/Window_Xbox.c index 038d31377..3018b961d 100644 --- a/src/xbox/Window_Xbox.c +++ b/src/xbox/Window_Xbox.c @@ -192,7 +192,7 @@ static void HandleButtons(int port, xid_gamepad_in* gp) { Gamepad_SetButton(port, CCPAD_DOWN, mods & XINPUT_GAMEPAD_DPAD_DOWN); } -#define AXIS_SCALE 8192.0f +#define AXIS_SCALE 4096.0f static void HandleJoystick(int port, int axis, int x, int y, float delta) { if (Math_AbsI(x) <= 6144) x = 0; if (Math_AbsI(y) <= 6144) y = 0;