diff --git a/Makefile b/Makefile index fdfe77898..d459b9054 100644 --- a/Makefile +++ b/Makefile @@ -461,7 +461,9 @@ else ifeq ($(COMPILER), gcc) $(C_O_FILES): OPT_LVL := $(GCC_OPT_LVL) - CFLAGS := $(C_DEFINES) -DAVOID_UB=1 $(INCLUDES) \ + C_DEFINES += -DAVOID_UB + + CFLAGS := $(C_DEFINES) $(INCLUDES) \ -EB \ -march=vr4300 \ -mabi=32 \ diff --git a/src/lib/modelasm.s b/src/lib/modelasm.s index c4e006d83..e6649100c 100644 --- a/src/lib/modelasm.s +++ b/src/lib/modelasm.s @@ -818,7 +818,11 @@ glabel modelasm00018680 beqz $a1, .L000194a0 lw $t0, 0x4($gp) lhu $t2, 0x0($a2) +#ifdef AVOID_UB + beqz $t2, .L0001946c +#else beqz $a2, .L0001946c +#endif lhu $t1, 0x0($t0) mtc1 $zero, $f29 lwc1 $f30, 0x7e0($sp) diff --git a/src/lib/modelasm_c.c b/src/lib/modelasm_c.c index d0e9f3f82..c6a92477e 100644 --- a/src/lib/modelasm_c.c +++ b/src/lib/modelasm_c.c @@ -453,7 +453,12 @@ bool modelasm00018680(struct modelrenderdata *renderdata, struct model *model) if (model) { t1 = node->rodata->chrinfo.animpart; - if (anim) { +#ifdef AVOID_UB + if (anim->animnum) +#else + if (anim) +#endif + { if (f30 != 0.0f) { if (anim->flip) { t2ptr8 = skeleton->things[t1];