mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 23:17:03 -05:00
Match ResetSprites
This commit is contained in:
parent
20ad405a46
commit
7f4732f714
126
asm/sprite.s
126
asm/sprite.s
|
|
@ -5,132 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start ResetSprites
|
||||
ResetSprites:
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
ldr r1, _08004E68
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
ldr r1, _08004E6C
|
||||
ldr r0, _08004E70
|
||||
str r0, [r1]
|
||||
ldr r1, _08004E74
|
||||
ldr r0, _08004E78
|
||||
str r0, [r1]
|
||||
ldr r0, _08004E7C
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x8
|
||||
adds r5, r0, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xF0
|
||||
_08004DB0:
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
str r1, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
adds r1, 0x8
|
||||
subs r3, 0x10
|
||||
cmp r3, 0
|
||||
bge _08004DB0
|
||||
cmp r4, 0
|
||||
beq _08004E50
|
||||
movs r2, 0
|
||||
ldr r1, _08004E80
|
||||
ldr r0, _08004E84
|
||||
movs r3, 0x7F
|
||||
_08004E42:
|
||||
str r2, [r0]
|
||||
str r1, [r0, 0x4]
|
||||
adds r1, 0x8
|
||||
adds r0, 0x8
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _08004E42
|
||||
_08004E50:
|
||||
movs r1, 0x80
|
||||
lsls r1, 4
|
||||
adds r0, r5, r1
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
ldr r2, _08004E88
|
||||
adds r0, r5, r2
|
||||
str r1, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08004E68: .4byte gSpriteCount
|
||||
_08004E6C: .4byte gCharMemCursor
|
||||
_08004E70: .4byte 0x06010000
|
||||
_08004E74: .4byte gUnknown_203B074
|
||||
_08004E78: .4byte gUnknown_20266B0
|
||||
_08004E7C: .4byte gUnknown_20256A0
|
||||
_08004E80: .4byte gUnknown_20262A8
|
||||
_08004E84: .4byte gUnknown_2025EA8
|
||||
_08004E88: .4byte 0x00000804
|
||||
thumb_func_end ResetSprites
|
||||
|
||||
thumb_func_start sub_8004E8C
|
||||
sub_8004E8C:
|
||||
ldr r1, _08004EA4
|
||||
|
|
|
|||
|
|
@ -1,11 +1,25 @@
|
|||
#ifndef GUARD_SPRITE_H
|
||||
#define GUARD_SPRITE_H
|
||||
|
||||
// size: 0x8
|
||||
struct UnkSpriteLink
|
||||
{
|
||||
struct UnkSpriteLink *unk0;
|
||||
struct UnkSpriteLink *unk4;
|
||||
};
|
||||
// size: 0x808
|
||||
struct SpriteList
|
||||
{
|
||||
struct UnkSpriteLink sprites[16][16];
|
||||
u32 unk800;
|
||||
u32 unk804;
|
||||
};
|
||||
|
||||
void InitSprites(void);
|
||||
void ResetSprites(bool8);
|
||||
|
||||
// sprite.s
|
||||
extern void BlinkSavingIcon(void);
|
||||
extern void ResetSprites(bool32);
|
||||
extern void SetSavingIconCoords(u32);
|
||||
|
||||
#endif // GUARD_SPRITE_H
|
||||
107
src/sprite.c
107
src/sprite.c
|
|
@ -1,8 +1,115 @@
|
|||
#include "global.h"
|
||||
#include "sprite.h"
|
||||
|
||||
extern struct SpriteList gUnknown_20256A0;
|
||||
extern struct UnkSpriteLink gUnknown_2025EA8[128];
|
||||
extern struct UnkSpriteLink gUnknown_20262A8[128];
|
||||
extern u32 gSpriteCount; /* 20266A8 */
|
||||
extern u32 gUnknown_20266B0;
|
||||
extern u32 *gCharMemCursor; /* 2026E30 */
|
||||
extern u32 *gUnknown_203B074;
|
||||
|
||||
void InitSprites(void)
|
||||
{
|
||||
ResetSprites(TRUE);
|
||||
SetSavingIconCoords(0);
|
||||
}
|
||||
|
||||
void ResetSprites(bool8 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct UnkSpriteLink *a;
|
||||
struct UnkSpriteLink *b;
|
||||
struct UnkSpriteLink *c;
|
||||
|
||||
gSpriteCount = 0;
|
||||
gCharMemCursor = (u32*)0x6010000;
|
||||
gUnknown_203B074 = &gUnknown_20266B0;
|
||||
|
||||
a = &gUnknown_20256A0.sprites[0][0];
|
||||
b = a + 1;
|
||||
|
||||
// 16 loops, very smart
|
||||
for (i = 0; i < 0x100; i += 0x10) {
|
||||
c = NULL;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
a->unk0 = b;
|
||||
a->unk4 = c;
|
||||
a++;
|
||||
b++;
|
||||
}
|
||||
|
||||
if (a0) {
|
||||
c = NULL;
|
||||
b = &gUnknown_20262A8[0];
|
||||
a = &gUnknown_2025EA8[0];
|
||||
for (i = 0; i < 128; i++) {
|
||||
a->unk0 = c;
|
||||
a->unk4 = b;
|
||||
b++;
|
||||
a++;
|
||||
}
|
||||
}
|
||||
|
||||
gUnknown_20256A0.unk800 = 0;
|
||||
gUnknown_20256A0.unk804 = 0;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user