Skip to content

Commit df20821

Browse files
authored
Match func_8008F550, MachineSelect_BackgroundDraw and func_i7_80146E28 (#89)
1 parent cfa904e commit df20821

File tree

4 files changed

+80
-129
lines changed

4 files changed

+80
-129
lines changed

src/game/1B0E0.c

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5618,8 +5618,6 @@ void func_8008EC98(Racer* arg0) {
56185618
}
56195619
}
56205620

5621-
#ifdef NON_MATCHING
5622-
// https://decomp.me/scratch/fHjsj stack
56235621
void func_8008F550(Racer* arg0) {
56245622
f32 var_fa1;
56255623
f32 temp_fv1;
@@ -5738,13 +5736,19 @@ void func_8008F550(Racer* arg0) {
57385736
arg0->unk_0C.unk_40 = sp5C;
57395737

57405738
arg0->unk_0C.unk_28.x *= temp_fv1;
5741-
arg0->unk_0C.unk_34.x = arg0->unk_0C.unk_44.x = arg0->unk_0C.unk_28.x + arg0->unk_0C.unk_1C.x;
5739+
temp_fv0 = arg0->unk_0C.unk_28.x + arg0->unk_0C.unk_1C.x;
5740+
arg0->unk_0C.unk_44.x = temp_fv0;
5741+
arg0->unk_0C.unk_34.x = temp_fv0;
57425742

57435743
arg0->unk_0C.unk_28.y *= temp_fv1;
5744-
arg0->unk_0C.unk_34.y = arg0->unk_0C.unk_44.y = arg0->unk_0C.unk_28.y + arg0->unk_0C.unk_1C.y;
5744+
temp_fv0 = arg0->unk_0C.unk_28.y + arg0->unk_0C.unk_1C.y;
5745+
arg0->unk_0C.unk_44.y = temp_fv0;
5746+
arg0->unk_0C.unk_34.y = temp_fv0;
57455747

57465748
arg0->unk_0C.unk_28.z *= temp_fv1;
5747-
arg0->unk_0C.unk_34.z = arg0->unk_0C.unk_44.z = arg0->unk_0C.unk_28.z + arg0->unk_0C.unk_1C.z;
5749+
temp_fv0 = arg0->unk_0C.unk_28.z + arg0->unk_0C.unk_1C.z;
5750+
arg0->unk_0C.unk_44.z = temp_fv0;
5751+
arg0->unk_0C.unk_34.z = temp_fv0;
57485752

57495753
arg0->unk_A0 = 0.0f;
57505754

@@ -5754,8 +5758,7 @@ void func_8008F550(Racer* arg0) {
57545758
arg0->velocity.x -= (var_fa1 * arg0->unk_19C.x);
57555759
arg0->velocity.y -= (var_fa1 * arg0->unk_19C.y);
57565760
arg0->velocity.z -= (var_fa1 * arg0->unk_19C.z);
5757-
// FAKE: lowers stack
5758-
if (1) {}
5761+
57595762
if ((arg0->id < gNumPlayers) && (D_800E5FD0 != 0)) {
57605763
func_800BB3C4(arg0->id, var_fa1);
57615764
}
@@ -5784,13 +5787,6 @@ void func_8008F550(Racer* arg0) {
57845787
}
57855788
}
57865789
}
5787-
#else
5788-
#ifdef VERSION_JP
5789-
#pragma GLOBAL_ASM("asm/jp/rev0/nonmatchings/game/1B0E0/func_8008F550.s")
5790-
#else
5791-
#pragma GLOBAL_ASM("asm/us/rev0/nonmatchings/game/1B0E0/func_8008F550.s")
5792-
#endif
5793-
#endif
57945790

57955791
void func_8008FC80(Racer* arg0) {
57965792
f32 var_fv0;

src/overlays/ovl_i4/machine.c

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,29 +1511,34 @@ void MachineSettings_OkInit(Object* okObj) {
15111511

15121512
#define PACK_5551(r, g, b, a) (((((r) << 11) | ((g) << 6)) | ((b) << 1)) | (a))
15131513

1514-
#ifdef NON_MATCHING
1515-
// loop unroll issue
15161514
Gfx* MachineSelect_BackgroundDraw(Gfx* gfx) {
15171515
s32 color;
15181516
s32 i;
1517+
s32 r, g, b;
1518+
s32 temp_a1;
1519+
s32 temp_t1 = 224;
1520+
s32 rmul2 = 0;
1521+
s32 gmul2 = 0;
1522+
s32 bmul2 = 0;
1523+
s32 rmul = 10;
1524+
s32 gmul = 0;
1525+
s32 bmul = 60;
15191526

15201527
gDPSetCycleType(gfx++, G_CYC_FILL);
15211528

1522-
for (i = 0; i < 0xE0; i++) {
1523-
color = PACK_5551((i * 10) / 1792, (i * 0) / 1792, (i * 60) / 1792, 1);
1529+
for (i = 0; i < 224; i++) {
1530+
s32 temp_t6 = 224;
1531+
temp_a1 = temp_t6 - i;
1532+
r = ((((rmul2 * temp_a1) + (rmul * i)) / temp_t1) >> 3);
1533+
g = ((((gmul2 * temp_a1) + (gmul * i)) / temp_t1) >> 3);
1534+
b = ((((bmul2 * temp_a1) + (bmul * i)) / temp_t1) >> 3);
1535+
15241536
gDPPipeSync(gfx++);
1525-
gDPSetFillColor(gfx++, color << 0x10 | color);
1537+
gDPSetFillColor(gfx++, PACK_5551(r, g, b, 1) << 0x10 | PACK_5551(r, g, b, 1));
15261538
gDPFillRectangle(gfx++, 12, i + 8, 307, i + 8);
15271539
}
15281540
return gfx;
15291541
}
1530-
#else
1531-
#ifdef VERSION_JP
1532-
#pragma GLOBAL_ASM("asm/jp/rev0/nonmatchings/overlays/ovl_i4/machine/MachineSelect_BackgroundDraw.s")
1533-
#else
1534-
#pragma GLOBAL_ASM("asm/us/rev0/nonmatchings/overlays/ovl_i4/machine/MachineSelect_BackgroundDraw.s")
1535-
#endif
1536-
#endif
15371542

15381543
Gfx* MachineSelect_HeaderDraw(Gfx* gfx, Object* headerObj) {
15391544
gDPSetPrimColor(gfx++, 0, 0, 250, 250, 0, 255);

src/overlays/ovl_i6/options_menu.c

Lines changed: 48 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -544,44 +544,26 @@ Gfx* func_i6_8011D168(Gfx* gfx, s32 arg1, s32 arg2) {
544544
extern GfxPool* gGfxPool;
545545
extern s32 D_800DCCFC;
546546

547-
#ifdef NON_EQUIVALENT
547+
#ifdef NON_MATCHING
548548
void func_i6_8011D394(void) {
549549
s32 i;
550550
s32 j;
551-
MtxF mtxF;
552-
f32 sp80;
551+
s32 k;
553552
Vtx* vtx;
554-
f32 temp_fs0;
555-
f32 temp_fs0_2;
556-
f32 temp_fs1;
557-
f32 temp_fs2;
558-
f32 temp_fs2_2;
559-
f32 temp_fs3;
560-
f32 temp_fs4;
561-
f32 temp_fs5;
562-
f32 temp_ft0;
563-
f32 temp_ft5;
564-
f32 temp_ft5_2;
565-
f32* var_t1;
566-
f32* var_t2;
567-
f32* var_t3;
568-
f32* var_t4;
569-
s16* temp_t8;
570-
s16* temp_v0;
571-
s16* temp_v0_2;
572-
s16* var_ra;
573-
s16* var_s5;
553+
s32 temp_a2;
574554
s32 temp_a3;
575-
s32 temp_ft2;
576-
s32 temp_lo;
577-
s32 temp_t0;
578-
s32 var_a0;
579-
s32 var_a3;
580-
s32 var_s2;
581-
s32 var_s4;
582-
s32 var_v1;
583-
void* temp_v0_3;
584-
s32 temp;
555+
s32 var_s0;
556+
s32 var_s1;
557+
f32 temp_fv0;
558+
f32 temp_fv1;
559+
f32 sp28[4];
560+
f32 sp38[4];
561+
f32 sp48[4];
562+
f32 sp58[4];
563+
s32 x;
564+
s32 y;
565+
s32 s;
566+
s32 t;
585567

586568
switch (D_i6_801247A8) {
587569
case 0:
@@ -593,16 +575,16 @@ void func_i6_8011D394(void) {
593575
}
594576
break;
595577
case 2:
596-
temp_a3 = (11 - ((D_i6_801247AA * 11) / 120));
597-
temp = (16 - ((D_i6_801247AA * 16) / 120));
578+
temp_a2 = (11 - ((D_i6_801247AA * 11) / 120));
579+
temp_a3 = (16 - ((D_i6_801247AA * 16) / 120));
598580
for (i = 0; i < 16; i++) {
599581

600-
if (i < temp) {
582+
if (i < temp_a3) {
601583
continue;
602584
}
603-
// unrolls
585+
604586
for (j = 0; j < 11; j++) {
605-
if (j < temp_a3) {
587+
if (j < temp_a2) {
606588
continue;
607589
}
608590
D_i6_80124620[i * 11 + j] -= 5;
@@ -621,61 +603,37 @@ void func_i6_8011D394(void) {
621603
D_i6_80124618 = D_i6_8011FB18[D_800DCCFC];
622604
func_8006D2E0(gGfxPool->unk_2B248, NULL, 1.0f, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f);
623605
vtx = D_i6_80124618;
624-
var_s5 = D_i6_80124620;
625-
626-
for (var_s4 = 0; var_s4 < 240; var_s4 += 16) {
627-
628-
var_ra = var_s5;
629-
630-
for (var_s2 = 0; var_s2 < 320; var_s2 += 32) {
631-
// temp_fs2 = var_s4 - 0.5f;
632-
// temp_fs1 = var_s4 - 2.0f;
633-
// temp_fs0 = var_s2 - 0.5f;
634-
// temp_ft5 = var_s2 - 2.0f;
635-
mtxF.m[0][1] = var_s4 - 0.5f;
636-
mtxF.m[2][1] = var_s4 - 2.0f;
637-
mtxF.m[0][0] = var_s4 - 0.5f;
638-
mtxF.m[2][0] = var_s4 - 2.0f;
639-
mtxF.m[1][2] = var_s2 - 0.5f;
640-
mtxF.m[1][0] = var_s2 - 0.5f;
641-
mtxF.m[3][2] = var_s2 - 2.0f;
642-
mtxF.m[3][0] = var_s2 - 2.0f;
643-
// temp_fs0 += 0x20;
644-
// temp_fs2 += 0x10;
645-
// temp_ft5 += 0x20;
646-
// temp_fs1 += 0x10;
647-
mtxF.m[1][3] = var_s2 - 0.5f + 0x20;
648-
mtxF.m[1][1] = var_s2 - 0.5f + 0x20;
649-
mtxF.m[0][3] = var_s4 - 0.5f + 0x10;
650-
mtxF.m[0][2] = var_s4 - 0.5f + 0x10;
651-
mtxF.m[3][3] = var_s2 - 2.0f + 0x20;
652-
mtxF.m[3][1] = var_s2 - 2.0f + 0x20;
653-
mtxF.m[2][3] = var_s4 - 2.0f + 0x10;
654-
mtxF.m[2][2] = var_s4 - 2.0f + 0x10;
655-
656-
var_t1 = &mtxF.m[3][0];
657-
var_t2 = &mtxF.m[2][0];
658-
var_t3 = &mtxF.m[1][0];
659-
var_t4 = &mtxF.m[0][0];
660-
661-
for (var_a3 = 0; var_a3 < 4; var_a3++) {
662-
s32 x, y, s, t;
663-
x = (s32) *var_t1;
664-
y = (s32) *var_t2;
665-
s = (s32) (*var_t3 * 32.0f);
666-
t = (s32) (*var_t4 * 32.0f);
667-
temp_lo = (var_a3 >> 1) * 11 * ((var_a3 % 2U) + 1);
668-
temp_t8 = &var_ra[var_a3 % 2U];
669-
SET_VTX(vtx, x, y, 0, s, t, 255, 255, 255, temp_t8[temp_lo])
606+
607+
var_s0 = 32;
608+
var_s1 = 16;
609+
610+
for (i = 0; i < 15; i++) {
611+
612+
for (j = 0; j < 10; j++) {
613+
temp_fv0 = i * var_s1;
614+
temp_fv1 = j * var_s0;
615+
616+
sp48[0] = sp48[2] = temp_fv1 - 0.5f;
617+
sp48[1] = sp48[3] = sp48[0] + var_s0;
618+
619+
sp58[0] = sp58[1] = temp_fv0 - 0.5f;
620+
sp58[2] = sp58[3] = sp58[0] + var_s1;
621+
622+
sp28[0] = sp28[2] = (temp_fv1 + 0.0f) - 2.0f;
623+
sp28[1] = sp28[3] = sp28[0] + var_s0;
624+
625+
sp38[0] = sp38[1] = (temp_fv0 + 0.0f) - 2.0f;
626+
sp38[2] = sp38[3] = sp38[0] + var_s1;
627+
628+
for (k = 0; k < 4; k++) {
629+
x = sp28[k];
630+
y = sp38[k];
631+
s = sp48[k] * 32.0f;
632+
t = sp58[k] * 32.0f;
633+
SET_VTX(vtx, x, y, 0, s, t, 255, 255, 255, D_i6_80124620[i * 11 + j + (k & 1) + ((k >> 1) * 11)]);
670634
vtx++;
671-
var_t1++;
672-
var_t2++;
673-
var_t3++;
674-
var_t4++;
675635
}
676-
var_ra++;
677636
}
678-
var_s5 += 0x16;
679637
}
680638
}
681639
#else

src/overlays/ovl_i7/ending.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,9 +1782,9 @@ void func_i7_80146920(void) {
17821782
}
17831783
}
17841784

1785-
#ifdef NON_MATCHING
17861785
Gfx* func_i7_80146E28(Gfx* gfx) {
17871786
s32 i;
1787+
unk_8014BEC8* var_a3;
17881788

17891789
gSPClearGeometryMode(gfx++, 0xFFFFFFFF);
17901790
gSPSetGeometryMode(gfx++, G_ZBUFFER | G_SHADE | G_CLIPPING);
@@ -1798,14 +1798,13 @@ Gfx* func_i7_80146E28(Gfx* gfx) {
17981798
gDPSetTextureConvert(gfx++, G_TC_FILT);
17991799

18001800
gDPPipeSync(gfx++);
1801-
// gDPSetRenderMode(gfx++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
18021801
gDPSetRenderMode(gfx++, (G_RM_AA_ZB_OPA_SURF) & ~Z_CMP, (G_RM_AA_ZB_OPA_SURF2) & ~Z_CMP);
18031802
gDPSetCombineMode(gfx++, G_CC_SHADE, G_CC_SHADE);
18041803
gDPSetDepthSource(gfx++, G_ZS_PRIM);
18051804
gDPSetPrimDepth(gfx++, 0x7FC0, 0);
18061805

1807-
for (i = 0; i < 3; i++) {
1808-
if (!(D_i7_8014BEC8[i].unk_02 & 2)) {
1806+
for (i = 0, var_a3 = D_i7_8014BEC8; i < 3; i++, var_a3++) {
1807+
if (!(var_a3->unk_02 & 2)) {
18091808
continue;
18101809
}
18111810
gSPMatrix(gfx++, &D_i7_8014BDF0->unk_C0[i], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1822,8 +1821,8 @@ Gfx* func_i7_80146E28(Gfx* gfx) {
18221821
gDPSetRenderMode(gfx++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
18231822
gDPSetCombineMode(gfx++, G_CC_DECALRGBA, G_CC_DECALRGBA);
18241823

1825-
for (i = 0; i < 3; i++) {
1826-
if (!(D_i7_8014BEC8[i].unk_02 & 1)) {
1824+
for (i = 0, var_a3 = D_i7_8014BEC8; i < 3; i++, var_a3++) {
1825+
if (!(var_a3->unk_02 & 1)) {
18271826
continue;
18281827
}
18291828
gSPMatrix(gfx++, &D_i7_8014BDF0->unk_00[i], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1832,13 +1831,6 @@ Gfx* func_i7_80146E28(Gfx* gfx) {
18321831

18331832
return gfx;
18341833
}
1835-
#else
1836-
#ifdef VERSION_JP
1837-
#pragma GLOBAL_ASM("asm/jp/rev0/nonmatchings/overlays/ovl_i7/ending/func_i7_80146E28.s")
1838-
#else
1839-
#pragma GLOBAL_ASM("asm/us/rev0/nonmatchings/overlays/ovl_i7/ending/func_i7_80146E28.s")
1840-
#endif
1841-
#endif
18421834

18431835
extern s32 gTotalRacers;
18441836

0 commit comments

Comments
 (0)