mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 18:02:16 +00:00
match sub_802DF18, attempt to match sub_804AE40
This commit is contained in:
1 parent
db841c44cd
commit
a8fdb6b771
6 files changed
+46
-186
No files matched your search
Vendored
+2
-1
@@ -352,7 +352,8 @@
|
||||
"shared.h": "c",
|
||||
"mp2k_common.h": "c",
|
||||
"cgb_tables.h": "c",
|
||||
"stdint.h": "c"
|
||||
"stdint.h": "c",
|
||||
"boss_5.h": "c"
|
||||
},
|
||||
"asm-code-lens.donated": true,
|
||||
"editor.formatOnSave": true,
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
adds r0, r7, #0
|
||||
bl sub_804AE40
|
||||
ldr r5, _0804AC48 @ =sArmFuncs
|
||||
ldr r1, _0804AC4C @ =IWRAM_START + 0x3C
|
||||
ldr r1, _0804AC4C @ =0x03000000 + 0x3C
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
@@ -31,7 +31,7 @@
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl _call_via_r2
|
||||
ldr r2, _0804AC50 @ =IWRAM_START + 0x3D
|
||||
ldr r2, _0804AC50 @ =0x03000000 + 0x3D
|
||||
adds r4, r4, r2
|
||||
ldrb r0, [r4]
|
||||
lsls r0, r0, #2
|
||||
@@ -142,8 +142,8 @@ _0804ABF2:
|
||||
.align 2, 0
|
||||
_0804AC44: .4byte gCurTask
|
||||
_0804AC48: .4byte sArmFuncs
|
||||
_0804AC4C: .4byte IWRAM_START + 0x3C
|
||||
_0804AC50: .4byte IWRAM_START + 0x3D
|
||||
_0804AC4C: .4byte 0x03000000 + 0x3C
|
||||
_0804AC50: .4byte 0x03000000 + 0x3D
|
||||
_0804AC54: .4byte gPlayer
|
||||
_0804AC58: .4byte 0x0000A819
|
||||
_0804AC5C: .4byte 0x0000A84F
|
||||
|
||||
@@ -1,165 +0,0 @@
|
||||
.syntax unified
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
ldr r0, _0802DF64 @ =gBgOffsetsHBlank
|
||||
ldr r4, [r0]
|
||||
movs r7, #0
|
||||
lsls r1, r1, #0x16
|
||||
lsrs r6, r1, #0x16
|
||||
ldr r1, _0802DF68 @ =0xFFFFFEFF
|
||||
adds r0, r6, r1
|
||||
lsls r0, r0, #0x10
|
||||
movs r1, #0xff
|
||||
lsls r1, r1, #0x11
|
||||
cmp r0, r1
|
||||
bls _0802DF38
|
||||
b _0802E03A
|
||||
_0802DF38:
|
||||
ldr r3, _0802DF6C @ =0xFFFFFE00
|
||||
adds r0, r6, r3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
bhi _0802DF70
|
||||
movs r1, #0
|
||||
cmp r1, r5
|
||||
bge _0802E03A
|
||||
movs r2, #0xf0
|
||||
_0802DF4C:
|
||||
adds r4, #1
|
||||
strb r2, [r4]
|
||||
adds r4, #1
|
||||
lsls r0, r1, #0x10
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, r5
|
||||
blt _0802DF4C
|
||||
b _0802E03A
|
||||
.align 2, 0
|
||||
_0802DF64: .4byte gBgOffsetsHBlank
|
||||
_0802DF68: .4byte 0xFFFFFEFF
|
||||
_0802DF6C: .4byte 0xFFFFFE00
|
||||
_0802DF70:
|
||||
ldr r2, _0802DFAC @ =gSineTable
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
mov ip, r3
|
||||
adds r0, r6, r3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
movs r3, #0
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
asrs r3, r0, #2
|
||||
lsls r0, r6, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r1, r0, #0x16
|
||||
cmp r3, #0
|
||||
bge _0802DF98
|
||||
rsbs r3, r3, #0
|
||||
_0802DF98:
|
||||
cmp r1, #0
|
||||
bge _0802DF9E
|
||||
rsbs r1, r1, #0
|
||||
_0802DF9E:
|
||||
cmp r3, #0
|
||||
beq _0802DFB0
|
||||
adds r0, r3, #0
|
||||
bl Div
|
||||
adds r3, r0, #0
|
||||
b _0802DFB2
|
||||
.align 2, 0
|
||||
_0802DFAC: .4byte gSineTable
|
||||
_0802DFB0:
|
||||
mov r3, ip
|
||||
_0802DFB2:
|
||||
ldr r0, _0802E004 @ =0x000001FF
|
||||
cmp r6, r0
|
||||
bhi _0802E008
|
||||
movs r1, #0
|
||||
cmp r1, r5
|
||||
bge _0802DFD6
|
||||
movs r2, #0xf0
|
||||
_0802DFC0:
|
||||
adds r4, #1
|
||||
strb r2, [r4]
|
||||
adds r4, #1
|
||||
lsls r0, r1, #0x10
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, r5
|
||||
blt _0802DFC0
|
||||
_0802DFD6:
|
||||
adds r1, r5, #0
|
||||
cmp r1, #0x9f
|
||||
bgt _0802E03A
|
||||
movs r2, #0xf0
|
||||
_0802DFDE:
|
||||
adds r7, r7, r3
|
||||
lsls r0, r7, #8
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0xf0
|
||||
bhi _0802E03A
|
||||
adds r4, #1
|
||||
subs r0, r2, r0
|
||||
strb r0, [r4]
|
||||
adds r4, #1
|
||||
lsls r0, r1, #0x10
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x9f
|
||||
ble _0802DFDE
|
||||
b _0802E03A
|
||||
.align 2, 0
|
||||
_0802E004: .4byte 0x000001FF
|
||||
_0802E008:
|
||||
lsls r0, r5, #1
|
||||
adds r4, r4, r0
|
||||
adds r1, r5, #0
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0
|
||||
blt _0802E03A
|
||||
movs r2, #0xf0
|
||||
_0802E016:
|
||||
adds r7, r7, r3
|
||||
lsls r0, r7, #8
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0xf0
|
||||
bls _0802E028
|
||||
movs r3, #0
|
||||
movs r7, #0xf0
|
||||
lsls r7, r7, #8
|
||||
movs r0, #0xf0
|
||||
_0802E028:
|
||||
subs r0, r2, r0
|
||||
strb r0, [r4]
|
||||
subs r4, #2
|
||||
lsls r0, r1, #0x10
|
||||
ldr r1, _0802E040 @ =0xFFFF0000
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x10
|
||||
cmp r0, #0
|
||||
bge _0802E016
|
||||
_0802E03A:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802E040: .4byte 0xFFFF0000
|
||||
|
||||
.syntax divided
|
||||
@@ -1118,8 +1118,26 @@ NONMATCH("asm/non_matching/game/bosses/boss_8__sub_804AE40.inc", static void sub
|
||||
r4 = ((116 - boss->unk12) >> 2) + ((rand % 8u) + 30);
|
||||
}
|
||||
// _0804B096
|
||||
|
||||
#ifndef NON_MATCHING
|
||||
// Doesn't yet work :/
|
||||
asm("ldrh r0, [%3, #0x10]\n"
|
||||
"mov r1, %0\n"
|
||||
"lsl r3, r1, #0x10\n"
|
||||
"asr r3, r3, #0x10\n"
|
||||
"add r1, %1, #1\n"
|
||||
"lsl r1, r1, #0x10\n"
|
||||
"asr r1, r1, #0x10\n"
|
||||
"str r1, [sp]\n"
|
||||
"movs r1, #0x20\n"
|
||||
"str r1, [sp, #4]\n"
|
||||
"add r1, %2, #0\n"
|
||||
"movs r2, #6\n"
|
||||
"bl sub_802E784\n"
|
||||
:
|
||||
: "r"(r8), "r"(r6), "r"(r4), "r"(boss));
|
||||
#else
|
||||
sub_802E784(boss->unk10, r4, 6, r8, r6 + 1, 32);
|
||||
#endif
|
||||
|
||||
boss->fade.brightness = Q(32) - (boss->unk12 * 91);
|
||||
UpdateScreenFade(&boss->fade);
|
||||
|
||||
+21
-14
@@ -257,9 +257,7 @@ void sub_802DDC4(u8 p0, u16 p1)
|
||||
}
|
||||
}
|
||||
|
||||
// (98.53%) https://decomp.me/scratch/khvum
|
||||
// (98.53%) https://decomp.me/scratch/aNJxr
|
||||
NONMATCH("asm/non_matching/game/stage/sub_802DF18.inc", void sub_802DF18(u8 p0, u16 p1))
|
||||
void sub_802DF18(u8 p0, u16 p1)
|
||||
{
|
||||
int_vcount *bgOffsets = gBgOffsetsHBlank;
|
||||
s32 r2;
|
||||
@@ -300,20 +298,30 @@ NONMATCH("asm/non_matching/game/stage/sub_802DF18.inc", void sub_802DF18(u8 p0,
|
||||
*bgOffsets++;
|
||||
}
|
||||
|
||||
for (j = p0; j < DISPLAY_HEIGHT; j++) {
|
||||
u32 val;
|
||||
#ifndef NON_MATCHING
|
||||
i = p0;
|
||||
if (i < DISPLAY_HEIGHT) {
|
||||
do {
|
||||
#else
|
||||
for (i = p0; i < DISPLAY_HEIGHT; i++) {
|
||||
#endif
|
||||
u32 val;
|
||||
|
||||
r7 += r3;
|
||||
val = r7;
|
||||
r7 += r3;
|
||||
val = r7;
|
||||
|
||||
val = (val << 8) >> 16;
|
||||
val = (val << 8) >> 16;
|
||||
|
||||
if (val > DISPLAY_WIDTH)
|
||||
return;
|
||||
if (val > DISPLAY_WIDTH)
|
||||
return;
|
||||
|
||||
*bgOffsets++;
|
||||
*bgOffsets = DISPLAY_WIDTH - val;
|
||||
*bgOffsets++;
|
||||
*bgOffsets++;
|
||||
*bgOffsets = DISPLAY_WIDTH - val;
|
||||
*bgOffsets++;
|
||||
#ifndef NON_MATCHING
|
||||
i++;
|
||||
} while (i < DISPLAY_HEIGHT);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
bgOffsets += p0 * sizeof(u16);
|
||||
@@ -333,7 +341,6 @@ NONMATCH("asm/non_matching/game/stage/sub_802DF18.inc", void sub_802DF18(u8 p0,
|
||||
}
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_802E044(s32 p0, u16 p1)
|
||||
{
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
#include "global.h"
|
||||
#include "sprite.h"
|
||||
#include "game/bosses/boss_5.h" // sub_802E784
|
||||
|
||||
void *ewram_end = 0;
|
||||
void *iwram_end = 0;
|
||||
|
||||
Reference in new issue
Block a user