summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-06-29 14:16:31 +0300
committerTal Hayon <talhayon1@gmail.com>2022-06-29 14:16:31 +0300
commiteb2cf39bcf574f075853963a37bf0bfd2e89faed (patch)
treee8fbbf488b5d5033fc7503f2baf3120ef8da51f1
parent430bcd5493f71c0576aa92f4e7722e74c892d9d2 (diff)
Match sub_080ADDD8
-rw-r--r--asm/non_matching/vram/sub_080ADDD8.inc39
-rw-r--r--src/vram.c11
2 files changed, 6 insertions, 44 deletions
diff --git a/asm/non_matching/vram/sub_080ADDD8.inc b/asm/non_matching/vram/sub_080ADDD8.inc
deleted file mode 100644
index 24959b7c..00000000
--- a/asm/non_matching/vram/sub_080ADDD8.inc
+++ /dev/null
@@ -1,39 +0,0 @@
- .syntax unified
- push {lr}
- adds r2, r1, #0
- lsls r1, r0, #1
- adds r1, r1, r0
- lsls r1, r1, #2
- ldr r0, _080ADDFC @ =gUnk_02024494
- adds r3, r1, r0
- ldr r0, _080ADE00 @ =0x00FFFFFC
- ands r0, r2
- ldr r1, _080ADE04 @ =gGlobalGfxAndPalettes
- adds r0, r0, r1
- str r0, [r3, #8]
- movs r0, #1
- ands r0, r2
- cmp r0, #0
- beq _080ADE0C
- ldr r0, _080ADE08 @ =0x0000FFFF
- b _080ADE14
- .align 2, 0
-_080ADDFC: .4byte gUnk_02024494
-_080ADE00: .4byte 0x00FFFFFC
-_080ADE04: .4byte gGlobalGfxAndPalettes
-_080ADE08: .4byte 0x0000FFFF
-_080ADE0C:
- movs r0, #0xfe
- lsls r0, r0, #0x17
- ands r0, r2
- lsrs r0, r0, #0x14
-_080ADE14:
- strh r0, [r3, #6]
- ldrb r0, [r3]
- movs r1, #0xf
- ands r1, r0
- movs r0, #0x30
- orrs r1, r0
- strb r1, [r3]
- pop {pc}
- .syntax divided
diff --git a/src/vram.c b/src/vram.c
index 916a90e7..77a4f325 100644
--- a/src/vram.c
+++ b/src/vram.c
@@ -64,18 +64,19 @@ void sub_080ADD70(void) {
}
}
-NONMATCH("asm/non_matching/vram/sub_080ADDD8.inc", void sub_080ADDD8(u32 index, u32 paletteIndex)) {
+void sub_080ADDD8(u32 index, u32 paletteIndex) {
GfxSlot* slot = &gGFXSlots.slots[index];
+ u32 temp;
slot->palettePointer = gGlobalGfxAndPalettes + (paletteIndex & 0xfffffc);
if ((paletteIndex & 1) != 0) {
- slot->paletteIndex = 0xffff;
+ temp = 0xffff;
} else {
- // TODO some cast here?
- slot->paletteIndex = ((paletteIndex)&0x7f00) >> 4;
+ // @ TODO probably a bitfield
+ temp = ((paletteIndex)&0x7f000000) >> 0x14;
}
+ slot->paletteIndex = temp;
slot->vramStatus = GFX_VRAM_3;
}
-END_NONMATCH
void sub_080ADE24(void) {
u32 index;