diff --git a/libctru/source/gpu/gpu.c b/libctru/source/gpu/gpu.c index 5a1c978..11703cb 100644 --- a/libctru/source/gpu/gpu.c +++ b/libctru/source/gpu/gpu.c @@ -468,6 +468,8 @@ void GPU_DrawArray(GPU_Primitive_t primitive, u32 n) //set primitive type GPUCMD_AddSingleParam(0x0002025E, primitive); GPUCMD_AddSingleParam(0x0002025F, 0x00000001); + //index buffer address register should be cleared (except bit 31) before drawing + GPUCMD_AddSingleParam(0x000F0227, 0x80000000); //pass number of vertices GPUCMD_AddSingleParam(0x000F0228, n); diff --git a/libctru/source/gpu/shdr.c b/libctru/source/gpu/shdr.c index 566520d..f79fbcd 100644 --- a/libctru/source/gpu/shdr.c +++ b/libctru/source/gpu/shdr.c @@ -53,6 +53,7 @@ DVLB_s* SHDR_ParseSHBIN(u32* shbinData, u32 shbinSize) goto exit; clean1: free(ret); + ret=NULL; exit: return ret; }