summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-11 10:21:44 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-11 10:21:44 -0400
commit1ebb2b84a202b345435356381fb0dea9a5d7033d (patch)
tree03e516633460829b053e10ff911c403e3bbda40b
parent19c16e2f94dda9fe354692f6e449b271e845ad22 (diff)
Use CpuCopy and CpuFill macros
-rwxr-xr-xasm/field_effect.s34
-rwxr-xr-xsrc/field_effect.c22
2 files changed, 15 insertions, 41 deletions
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 9f8f50afc..c513d479c 100755
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -6,40 +6,6 @@
.text
- thumb_func_start sub_808843C
-sub_808843C: @ 808843C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08088470 @ =0x06000140
- adds r2, r0, r1
- movs r1, 0
- ldr r5, _08088474 @ =gFieldMoveStreaksTilemap
- movs r0, 0xF0
- lsls r0, 8
- adds r4, r0, 0
- ldr r3, _08088478 @ =0x0000013f
-_08088452:
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- orrs r0, r4
- strh r0, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- cmp r1, r3
- bls _08088452
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088470: .4byte 0x06000140
-_08088474: .4byte gFieldMoveStreaksTilemap
-_08088478: .4byte 0x0000013f
- thumb_func_end sub_808843C
-
thumb_func_start sub_808847C
sub_808847C: @ 808847C
push {lr}
diff --git a/src/field_effect.c b/src/field_effect.c
index 5719245e5..f9645613b 100755
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -2017,6 +2017,7 @@ extern const void (*gUnknown_0839F3AC[7])(struct Task *);
extern const void (*gUnknown_0839F3C8[7])(struct Task *);
extern const u32 gFieldMoveStreaksTiles[];
extern const u16 gFieldMoveStreaksPalette[16];
+extern const u16 gFieldMoveStreaksTilemap[0x140];
void sub_80883DC(void);
void sub_808843C(u16);
void sub_8088890(struct Sprite *);
@@ -2073,14 +2074,12 @@ void sub_8088150(struct Task *task)
void sub_80881C0(struct Task *task)
{
- u32 zero;
u16 offset;
u16 delta;
offset = ((REG_BG0CNT >> 2) << 14);
delta = ((REG_BG0CNT >> 8) << 11);
- CpuSet(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x100);
- zero = 0;
- CpuSet(&zero, (void *)(VRAM + delta), 0x5000200);
+ CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200);
+ CpuFill32(0, (void *)(VRAM + delta), 0x800);
LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20);
sub_808843C(delta);
task->data[0]++;
@@ -2282,11 +2281,9 @@ void sub_80882E4(struct Task *task)
void sub_8088338(struct Task *task)
{
- u32 zero;
u16 bg0cnt;
bg0cnt = (REG_BG0CNT >> 8) << 11;
- zero = 0;
- CpuSet(&zero, (void *)VRAM + bg0cnt, 0x5000200);
+ CpuFill32(0, (void *)VRAM + bg0cnt, 0x800);
task->data[1] = 0xf1;
task->data[2] = 0xa1;
task->data[3] = task->data[11];
@@ -2320,3 +2317,14 @@ void sub_80883DC(void)
REG_BG0HOFS = task->data[5];
REG_BG0VOFS = task->data[6];
}
+
+void sub_808843C(u16 offs)
+{
+ u16 i;
+ u16 *dest;
+ dest = (u16 *)(VRAM + 0x140 + offs);
+ for (i=0; i<0x140; i++, dest++)
+ {
+ *dest = gFieldMoveStreaksTilemap[i] | 0xf000;
+ }
+}