From 2c2ded837d521446697135f4d5d6588cf6fc5a73 Mon Sep 17 00:00:00 2001 From: XProger Date: Sun, 14 Nov 2021 15:51:03 +0300 Subject: [PATCH] #370 minor fix --- src/fixed/draw.h | 4 +++- src/platform/3do/unpackMesh.s | 44 +++++++++++++++++------------------ 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/fixed/draw.h b/src/fixed/draw.h index f7e2292..954e510 100644 --- a/src/fixed/draw.h +++ b/src/fixed/draw.h @@ -218,10 +218,10 @@ void drawMesh(int32 meshIndex) vIntensity = (uint16*)ptr; ptr += vCount * sizeof(uint16); } -#endif if (MAX_VERTICES - gVerticesCount < vCount) return; +#endif if (MAX_FACES - gFacesCount < mesh->rCount + mesh->tCount + mesh->crCount + mesh->ctCount) return; @@ -757,8 +757,10 @@ void drawRoom(const Room* room, Camera* camera) const RoomInfo* info = room->info; const RoomData& data = room->data; +#ifndef __3DO__ if (MAX_VERTICES - gVerticesCount < info->verticesCount) return; +#endif if (MAX_FACES - gFacesCount < info->quadsCount + info->trianglesCount) return; diff --git a/src/platform/3do/unpackMesh.s b/src/platform/3do/unpackMesh.s index e18e446..08f3f38 100644 --- a/src/platform/3do/unpackMesh.s +++ b/src/platform/3do/unpackMesh.s @@ -10,13 +10,13 @@ unpackMesh_asm__FPC10MeshVertexl vertices RN r0 vptr RN r5 vCount RN r1 -cx RN r2 -cy RN r3 -cz RN r4 +cx RN r8 +cy RN r9 +cz RN r10 last RN lr -n0 RN r6 -n1 RN r8 -n2 RN r10 +n0 RN r3 +n1 RN r5 +n2 RN r7 res RN r1 DOT3_F16 EQU 0x5000C @@ -24,22 +24,22 @@ DOT3_F16 EQU 0x5000C add last, vertices, vCount, lsl #2 add last, last, vCount, lsl #1 mov vptr, vertices ; save vertices ptr - ldr r2, =matrixPtr - ldr r8, [r2] ; &m.e00 - add r2, r8, #36 ; &m.e03 + ldr r4, =matrixPtr + ldr r7, [r4] ; &m.e00 + add r4, r7, #36 ; &m.e03 - mov r0, r2 - add r1, r8, #24 ; &m.e02 + mov r0, r4 + add r1, r7, #24 ; &m.e02 swi DOT3_F16 mov cz, r0, asr #10 - mov r0, r2 - add r1, r8, #12 ; &m.e01 + mov r0, r4 + add r1, r7, #12 ; &m.e01 swi DOT3_F16 mov cy, r0, asr #10 - mov r0, r2 - mov r1, r8 ; &m.e00 + mov r0, r4 + mov r1, r7 ; &m.e00 swi DOT3_F16 mov cx, r0, asr #10 @@ -49,19 +49,19 @@ DOT3_F16 EQU 0x5000C loop ldmia vertices!, {n0, n1, n2} ; load two encoded vertices cmp vertices, last - add r5, cx, n0, asr #16 + add r2, cx, n0, asr #16 ; x mov n0, n0, lsl #16 - add r6, cy, n0, asr #16 + add r3, cy, n0, asr #16 ; y - add r7, cz, n1, asr #16 + add r4, cz, n1, asr #16 ; z mov n1, n1, lsl #16 - add r8, cx, n1, asr #16 + add r5, cx, n1, asr #16 ; x - add r9, cy, n2, asr #16 + add r6, cy, n2, asr #16 ; y mov n2, n2, lsl #16 - add r10, cz, n2, asr #16 + add r7, cz, n2, asr #16 ; z - stmia res!, {r5, r6, r7, r8, r9, r10} + stmia res!, {r2, r3, r4, r5, r6, r7} blt loop ldmfd sp!, {r4-r10, pc}