mirror of https://github.com/zeldaret/tmc.git
Decompile graphics group loading function
This commit is contained in:
parent
37d1781f51
commit
4c0217a782
|
|
@ -89,7 +89,7 @@ sub_0806D0B0: @ 0x0806D0B0
|
||||||
movs r1, #0
|
movs r1, #0
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
movs r0, #0x30
|
movs r0, #0x30
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
bl sub_0806D110
|
bl sub_0806D110
|
||||||
ldr r5, _0806D0EC @ =gUnk_02002F00
|
ldr r5, _0806D0EC @ =gUnk_02002F00
|
||||||
movs r1, #0x80
|
movs r1, #0x80
|
||||||
|
|
|
||||||
|
|
@ -358,7 +358,7 @@ sub_08019698: @ 0x08019698
|
||||||
strh r0, [r1, #0x32]
|
strh r0, [r1, #0x32]
|
||||||
_08019700:
|
_08019700:
|
||||||
movs r0, #0x11
|
movs r0, #0x11
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
bl sub_080AD90C
|
bl sub_080AD90C
|
||||||
bl sub_080AD9B0
|
bl sub_080AD9B0
|
||||||
bl sub_080AD918
|
bl sub_080AD918
|
||||||
|
|
@ -3793,7 +3793,7 @@ sub_0801B0EC: @ 0x0801B0EC
|
||||||
adds r4, r0, #0
|
adds r4, r0, #0
|
||||||
_0801B0F0:
|
_0801B0F0:
|
||||||
ldr r1, [r4, #4]
|
ldr r1, [r4, #4]
|
||||||
ldr r0, _0801B110 @ =gGlobalPalettes
|
ldr r0, _0801B110 @ =gGlobalGfxAndPalettes
|
||||||
adds r5, r1, r0
|
adds r5, r1, r0
|
||||||
ldrb r2, [r4, #2]
|
ldrb r2, [r4, #2]
|
||||||
ldrh r3, [r4]
|
ldrh r3, [r4]
|
||||||
|
|
@ -3808,7 +3808,7 @@ _0801B0F0:
|
||||||
bl LoadPalettes
|
bl LoadPalettes
|
||||||
b _0801B122
|
b _0801B122
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801B110: .4byte gGlobalPalettes
|
_0801B110: .4byte gGlobalGfxAndPalettes
|
||||||
_0801B114:
|
_0801B114:
|
||||||
movs r0, #0xc0
|
movs r0, #0xc0
|
||||||
lsls r0, r0, #0x13
|
lsls r0, r0, #0x13
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ _0801C398:
|
||||||
movs r0, #0xc
|
movs r0, #0xc
|
||||||
bl LoadPaletteGroup
|
bl LoadPaletteGroup
|
||||||
movs r0, #0x10
|
movs r0, #0x10
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r4, _0801C478 @ =gUnk_02034CB0
|
ldr r4, _0801C478 @ =gUnk_02034CB0
|
||||||
movs r1, #0x80
|
movs r1, #0x80
|
||||||
lsls r1, r1, #4
|
lsls r1, r1, #4
|
||||||
|
|
|
||||||
|
|
@ -497,7 +497,7 @@ _0801D31C:
|
||||||
ands r2, r1
|
ands r2, r1
|
||||||
ldr r1, _0801D344 @ =0x00FFFFFF
|
ldr r1, _0801D344 @ =0x00FFFFFF
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
ldr r1, _0801D348 @ =gGlobalPalettes
|
ldr r1, _0801D348 @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
adds r1, r4, #0
|
adds r1, r4, #0
|
||||||
bl LoadPalettes
|
bl LoadPalettes
|
||||||
|
|
@ -506,7 +506,7 @@ _0801D33C:
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801D340: .4byte gUnk_08133368
|
_0801D340: .4byte gUnk_08133368
|
||||||
_0801D344: .4byte 0x00FFFFFF
|
_0801D344: .4byte 0x00FFFFFF
|
||||||
_0801D348: .4byte gGlobalPalettes
|
_0801D348: .4byte gGlobalGfxAndPalettes
|
||||||
|
|
||||||
thumb_func_start sub_0801D34C
|
thumb_func_start sub_0801D34C
|
||||||
sub_0801D34C: @ 0x0801D34C
|
sub_0801D34C: @ 0x0801D34C
|
||||||
|
|
|
||||||
|
|
@ -5,142 +5,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_0801D79C
|
|
||||||
sub_0801D79C: @ 0x0801D79C
|
|
||||||
ldr r3, _0801D7B4 @ =gPaletteBuffer
|
|
||||||
lsls r2, r0, #1
|
|
||||||
adds r2, r2, r3
|
|
||||||
strh r1, [r2]
|
|
||||||
ldr r2, _0801D7B8 @ =gUsedPalettes
|
|
||||||
lsrs r0, r0, #4
|
|
||||||
movs r1, #1
|
|
||||||
lsls r1, r0
|
|
||||||
ldr r0, [r2]
|
|
||||||
orrs r0, r1
|
|
||||||
str r0, [r2]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0801D7B4: .4byte gPaletteBuffer
|
|
||||||
_0801D7B8: .4byte gUsedPalettes
|
|
||||||
|
|
||||||
thumb_func_start sub_0801D7BC
|
|
||||||
sub_0801D7BC: @ 0x0801D7BC
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, #0
|
|
||||||
cmp r1, #0
|
|
||||||
beq _0801D7D4
|
|
||||||
ldr r1, _0801D7CC @ =gScreen
|
|
||||||
ldr r0, _0801D7D0 @ =0x0000E0FF
|
|
||||||
b _0801D7D8
|
|
||||||
.align 2, 0
|
|
||||||
_0801D7CC: .4byte gScreen
|
|
||||||
_0801D7D0: .4byte 0x0000E0FF
|
|
||||||
_0801D7D4:
|
|
||||||
ldr r1, _0801D7E4 @ =gScreen
|
|
||||||
ldr r0, _0801D7E8 @ =0x0000FFFF
|
|
||||||
_0801D7D8:
|
|
||||||
strh r0, [r1, #6]
|
|
||||||
movs r0, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
bl sub_0801D79C
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0801D7E4: .4byte gScreen
|
|
||||||
_0801D7E8: .4byte 0x0000FFFF
|
|
||||||
|
|
||||||
thumb_func_start sub_0801D7EC
|
|
||||||
sub_0801D7EC: @ 0x0801D7EC
|
|
||||||
push {r4, r5, r6, lr}
|
|
||||||
ldr r1, _0801D814 @ =gUnk_08100AA8
|
|
||||||
lsls r0, r0, #2
|
|
||||||
adds r0, r0, r1
|
|
||||||
ldr r4, [r0]
|
|
||||||
movs r6, #0x80
|
|
||||||
lsls r6, r6, #0x12
|
|
||||||
ldr r5, _0801D818 @ =0x040000D4
|
|
||||||
_0801D7FC:
|
|
||||||
movs r2, #0
|
|
||||||
ldrb r1, [r4, #3]
|
|
||||||
movs r0, #0xf
|
|
||||||
ands r1, r0
|
|
||||||
cmp r1, #0xd
|
|
||||||
beq _0801D894
|
|
||||||
cmp r1, #0xd
|
|
||||||
bhi _0801D81C
|
|
||||||
cmp r1, #7
|
|
||||||
beq _0801D842
|
|
||||||
b _0801D836
|
|
||||||
.align 2, 0
|
|
||||||
_0801D814: .4byte gUnk_08100AA8
|
|
||||||
_0801D818: .4byte 0x040000D4
|
|
||||||
_0801D81C:
|
|
||||||
cmp r1, #0xe
|
|
||||||
beq _0801D826
|
|
||||||
cmp r1, #0xf
|
|
||||||
beq _0801D82E
|
|
||||||
b _0801D836
|
|
||||||
_0801D826:
|
|
||||||
ldrb r0, [r6, #7]
|
|
||||||
cmp r0, #1
|
|
||||||
bls _0801D83E
|
|
||||||
b _0801D842
|
|
||||||
_0801D82E:
|
|
||||||
ldrb r0, [r6, #7]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _0801D83E
|
|
||||||
b _0801D842
|
|
||||||
_0801D836:
|
|
||||||
ldrb r0, [r6, #7]
|
|
||||||
cmp r1, r0
|
|
||||||
bne _0801D83E
|
|
||||||
movs r2, #1
|
|
||||||
_0801D83E:
|
|
||||||
cmp r2, #0
|
|
||||||
beq _0801D888
|
|
||||||
_0801D842:
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, _0801D868 @ =0x00FFFFFF
|
|
||||||
ands r0, r1
|
|
||||||
ldr r1, _0801D86C @ =gGlobalPalettes
|
|
||||||
adds r2, r0, r1
|
|
||||||
ldr r1, [r4, #4]
|
|
||||||
ldr r0, [r4, #8]
|
|
||||||
movs r3, #0x80
|
|
||||||
lsls r3, r3, #0x18
|
|
||||||
cmp r0, #0
|
|
||||||
bge _0801D87C
|
|
||||||
ldr r0, _0801D870 @ =0x05FFFFFF
|
|
||||||
cmp r1, r0
|
|
||||||
bls _0801D874
|
|
||||||
adds r0, r2, #0
|
|
||||||
bl LZ77UnCompVram
|
|
||||||
b _0801D888
|
|
||||||
.align 2, 0
|
|
||||||
_0801D868: .4byte 0x00FFFFFF
|
|
||||||
_0801D86C: .4byte gGlobalPalettes
|
|
||||||
_0801D870: .4byte 0x05FFFFFF
|
|
||||||
_0801D874:
|
|
||||||
adds r0, r2, #0
|
|
||||||
bl LZ77UnCompWram
|
|
||||||
b _0801D888
|
|
||||||
_0801D87C:
|
|
||||||
str r2, [r5]
|
|
||||||
str r1, [r5, #4]
|
|
||||||
lsrs r0, r0, #1
|
|
||||||
orrs r0, r3
|
|
||||||
str r0, [r5, #8]
|
|
||||||
ldr r0, [r5, #8]
|
|
||||||
_0801D888:
|
|
||||||
ldrb r1, [r4, #3]
|
|
||||||
movs r0, #0x80
|
|
||||||
ands r1, r0
|
|
||||||
adds r4, #0xc
|
|
||||||
cmp r1, #0
|
|
||||||
bne _0801D7FC
|
|
||||||
_0801D894:
|
|
||||||
pop {r4, r5, r6, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_0801D898
|
thumb_func_start sub_0801D898
|
||||||
sub_0801D898: @ 0x0801D898
|
sub_0801D898: @ 0x0801D898
|
||||||
push {r4, r5, r6, r7, lr}
|
push {r4, r5, r6, r7, lr}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ _0804ABA4:
|
||||||
ldrb r0, [r4]
|
ldrb r0, [r4]
|
||||||
bl LoadPaletteGroup
|
bl LoadPaletteGroup
|
||||||
ldrb r0, [r4, #1]
|
ldrb r0, [r4, #1]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _0804AC10 @ =gUnk_02017700
|
ldr r0, _0804AC10 @ =gUnk_02017700
|
||||||
movs r2, #0x90
|
movs r2, #0x90
|
||||||
lsls r2, r2, #2
|
lsls r2, r2, #2
|
||||||
|
|
|
||||||
|
|
@ -321,7 +321,7 @@ _080503A4: .4byte gScreen
|
||||||
thumb_func_start sub_080503A8
|
thumb_func_start sub_080503A8
|
||||||
sub_080503A8: @ 0x080503A8
|
sub_080503A8: @ 0x080503A8
|
||||||
push {lr}
|
push {lr}
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r1, _080503B8 @ =gScreen
|
ldr r1, _080503B8 @ =gScreen
|
||||||
movs r0, #1
|
movs r0, #1
|
||||||
strh r0, [r1, #0x1a]
|
strh r0, [r1, #0x1a]
|
||||||
|
|
@ -676,7 +676,7 @@ _080506AA:
|
||||||
lsls r0, r0, #1
|
lsls r0, r0, #1
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
ldrh r4, [r0]
|
ldrh r4, [r0]
|
||||||
ldr r0, _080506F8 @ =gGlobalPalettes
|
ldr r0, _080506F8 @ =gGlobalGfxAndPalettes
|
||||||
adds r4, r4, r0
|
adds r4, r4, r0
|
||||||
ldr r1, _080506FC @ =0x00011AA0
|
ldr r1, _080506FC @ =0x00011AA0
|
||||||
adds r0, r4, r1
|
adds r0, r4, r1
|
||||||
|
|
@ -704,7 +704,7 @@ _080506EE:
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080506F0: .4byte gUnk_02019EE0
|
_080506F0: .4byte gUnk_02019EE0
|
||||||
_080506F4: .4byte gUnk_080FC8DE
|
_080506F4: .4byte gUnk_080FC8DE
|
||||||
_080506F8: .4byte gGlobalPalettes
|
_080506F8: .4byte gGlobalGfxAndPalettes
|
||||||
_080506FC: .4byte 0x00011AA0
|
_080506FC: .4byte 0x00011AA0
|
||||||
_08050700: .4byte 0x00011BA0
|
_08050700: .4byte 0x00011BA0
|
||||||
_08050704: .4byte 0x00011CA0
|
_08050704: .4byte 0x00011CA0
|
||||||
|
|
@ -3844,7 +3844,7 @@ sub_08052010: @ 0x08052010
|
||||||
movs r1, #0
|
movs r1, #0
|
||||||
bl sub_0801D79C
|
bl sub_0801D79C
|
||||||
movs r0, #4
|
movs r0, #4
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
movs r0, #0xc0
|
movs r0, #0xc0
|
||||||
lsls r0, r0, #0x13
|
lsls r0, r0, #0x13
|
||||||
movs r1, #0x20
|
movs r1, #0x20
|
||||||
|
|
|
||||||
|
|
@ -1582,15 +1582,15 @@ sub_08053320: @ 0x08053320
|
||||||
lsls r1, r1, #5
|
lsls r1, r1, #5
|
||||||
bl _DmaZero
|
bl _DmaZero
|
||||||
movs r0, #0x10
|
movs r0, #0x10
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
movs r0, #0x17
|
movs r0, #0x17
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _0805338C @ =gRoomControls
|
ldr r0, _0805338C @ =gRoomControls
|
||||||
ldrb r0, [r0, #4]
|
ldrb r0, [r0, #4]
|
||||||
cmp r0, #4
|
cmp r0, #4
|
||||||
bne _08053362
|
bne _08053362
|
||||||
movs r0, #0x1a
|
movs r0, #0x1a
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
_08053362:
|
_08053362:
|
||||||
bl sub_08053390
|
bl sub_08053390
|
||||||
movs r0, #0xb
|
movs r0, #0xb
|
||||||
|
|
@ -1619,13 +1619,13 @@ sub_08053390: @ 0x08053390
|
||||||
movs r1, #0x18
|
movs r1, #0x18
|
||||||
_080533A0:
|
_080533A0:
|
||||||
adds r0, r1, #0
|
adds r0, r1, #0
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
movs r0, #0xa
|
movs r0, #0xa
|
||||||
bl GetInventoryValue
|
bl GetInventoryValue
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080533B6
|
beq _080533B6
|
||||||
movs r0, #0x1d
|
movs r0, #0x1d
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
_080533B6:
|
_080533B6:
|
||||||
movs r0, #0xc
|
movs r0, #0xc
|
||||||
bl GetInventoryValue
|
bl GetInventoryValue
|
||||||
|
|
@ -1635,7 +1635,7 @@ _080533B6:
|
||||||
movs r1, #0x1c
|
movs r1, #0x1c
|
||||||
_080533C4:
|
_080533C4:
|
||||||
adds r0, r1, #0
|
adds r0, r1, #0
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
pop {pc}
|
pop {pc}
|
||||||
|
|
||||||
thumb_func_start sub_080533CC
|
thumb_func_start sub_080533CC
|
||||||
|
|
@ -2218,7 +2218,7 @@ sub_08053800: @ 0x08053800
|
||||||
bl LoadPaletteGroup
|
bl LoadPaletteGroup
|
||||||
adds r0, r5, #0
|
adds r0, r5, #0
|
||||||
adds r0, #0x3a
|
adds r0, #0x3a
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _08053888 @ =gUnk_02021F30
|
ldr r0, _08053888 @ =gUnk_02021F30
|
||||||
movs r1, #0x80
|
movs r1, #0x80
|
||||||
lsls r1, r1, #4
|
lsls r1, r1, #4
|
||||||
|
|
|
||||||
|
|
@ -1169,7 +1169,7 @@ sub_08055184: @ 0x08055184
|
||||||
adds r4, r4, r0
|
adds r4, r4, r0
|
||||||
movs r1, #0
|
movs r1, #0
|
||||||
ldrsh r0, [r4, r1]
|
ldrsh r0, [r4, r1]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r2, _08055214 @ =gScreen
|
ldr r2, _08055214 @ =gScreen
|
||||||
ldrh r0, [r4, #2]
|
ldrh r0, [r4, #2]
|
||||||
movs r6, #0
|
movs r6, #0
|
||||||
|
|
@ -1713,7 +1713,7 @@ sub_080555B8: @ 0x080555B8
|
||||||
ldrb r1, [r4, #3]
|
ldrb r1, [r4, #3]
|
||||||
bl sub_0804B0E8
|
bl sub_0804B0E8
|
||||||
movs r0, #0x11
|
movs r0, #0x11
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldrb r0, [r5, #4]
|
ldrb r0, [r5, #4]
|
||||||
movs r1, #0
|
movs r1, #0
|
||||||
movs r2, #0
|
movs r2, #0
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ sub_080A36F8: @ 0x080A36F8
|
||||||
ldrb r0, [r4]
|
ldrb r0, [r4]
|
||||||
bl LoadPaletteGroup
|
bl LoadPaletteGroup
|
||||||
ldrb r0, [r4, #1]
|
ldrb r0, [r4, #1]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _080A3760 @ =gUnk_02021F30
|
ldr r0, _080A3760 @ =gUnk_02021F30
|
||||||
movs r1, #0x80
|
movs r1, #0x80
|
||||||
lsls r1, r1, #4
|
lsls r1, r1, #4
|
||||||
|
|
@ -708,7 +708,7 @@ _080A39C8:
|
||||||
movs r1, #0
|
movs r1, #0
|
||||||
bl sub_0801D79C
|
bl sub_0801D79C
|
||||||
movs r0, #4
|
movs r0, #4
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
movs r0, #0xc0
|
movs r0, #0xc0
|
||||||
lsls r0, r0, #0x13
|
lsls r0, r0, #0x13
|
||||||
movs r1, #0x20
|
movs r1, #0x20
|
||||||
|
|
|
||||||
|
|
@ -1021,7 +1021,7 @@ sub_080A4418: @ 0x080A4418
|
||||||
ands r2, r1
|
ands r2, r1
|
||||||
mvns r0, r2
|
mvns r0, r2
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
ldr r1, _080A444C @ =gGlobalPalettes
|
ldr r1, _080A444C @ =gGlobalGfxAndPalettes
|
||||||
adds r1, r0, r1
|
adds r1, r0, r1
|
||||||
cmp r2, #0
|
cmp r2, #0
|
||||||
beq _080A4450
|
beq _080A4450
|
||||||
|
|
@ -1032,7 +1032,7 @@ sub_080A4418: @ 0x080A4418
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080A4444: .4byte 0x06010000
|
_080A4444: .4byte 0x06010000
|
||||||
_080A4448: .4byte gUnk_080CA06C
|
_080A4448: .4byte gUnk_080CA06C
|
||||||
_080A444C: .4byte gGlobalPalettes
|
_080A444C: .4byte gGlobalGfxAndPalettes
|
||||||
_080A4450:
|
_080A4450:
|
||||||
ldr r0, _080A4460 @ =0x040000D4
|
ldr r0, _080A4460 @ =0x040000D4
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
|
|
@ -2198,7 +2198,7 @@ _080A4D54:
|
||||||
_080A4D66:
|
_080A4D66:
|
||||||
adds r0, r1, #0
|
adds r0, r1, #0
|
||||||
adds r0, #0x56
|
adds r0, #0x56
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r1, _080A4D80 @ =gScreen
|
ldr r1, _080A4D80 @ =gScreen
|
||||||
movs r0, #0
|
movs r0, #0
|
||||||
strh r0, [r1, #0x2e]
|
strh r0, [r1, #0x2e]
|
||||||
|
|
@ -2308,7 +2308,7 @@ _080A4E4A:
|
||||||
ldrb r0, [r4, #1]
|
ldrb r0, [r4, #1]
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080A4E54
|
beq _080A4E54
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
_080A4E54:
|
_080A4E54:
|
||||||
pop {r4, r5, pc}
|
pop {r4, r5, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
|
||||||
|
|
@ -893,7 +893,7 @@ sub_080A5C44: @ 0x080A5C44
|
||||||
ldrb r0, [r1, #3]
|
ldrb r0, [r1, #3]
|
||||||
bl sub_080A5CFC
|
bl sub_080A5CFC
|
||||||
movs r0, #0x81
|
movs r0, #0x81
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r4, _080A5C90 @ =gArea
|
ldr r4, _080A5C90 @ =gArea
|
||||||
ldrb r0, [r4, #3]
|
ldrb r0, [r4, #3]
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
|
|
@ -1683,7 +1683,7 @@ sub_080A6290: @ 0x080A6290
|
||||||
ldr r0, _080A62CC @ =gUnk_08128DD4
|
ldr r0, _080A62CC @ =gUnk_08128DD4
|
||||||
str r0, [r4, #0xc]
|
str r0, [r4, #0xc]
|
||||||
movs r0, #0x81
|
movs r0, #0x81
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r1, _080A62D0 @ =gScreen
|
ldr r1, _080A62D0 @ =gScreen
|
||||||
ldr r0, _080A62D4 @ =0x0000FFFC
|
ldr r0, _080A62D4 @ =0x0000FFFC
|
||||||
strh r0, [r1, #0x18]
|
strh r0, [r1, #0x18]
|
||||||
|
|
@ -2374,7 +2374,7 @@ _080A6802:
|
||||||
adds r5, #0x72
|
adds r5, #0x72
|
||||||
_080A6822:
|
_080A6822:
|
||||||
adds r0, r5, #0
|
adds r0, r5, #0
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
lsls r1, r4, #3
|
lsls r1, r4, #3
|
||||||
ldr r0, _080A68B0 @ =gUnk_08128E94
|
ldr r0, _080A68B0 @ =gUnk_08128E94
|
||||||
adds r4, r1, r0
|
adds r4, r1, r0
|
||||||
|
|
|
||||||
|
|
@ -660,7 +660,7 @@ sub_080ADDD8: @ 0x080ADDD8
|
||||||
adds r3, r1, r0
|
adds r3, r1, r0
|
||||||
ldr r0, _080ADE00 @ =0x00FFFFFC
|
ldr r0, _080ADE00 @ =0x00FFFFFC
|
||||||
ands r0, r2
|
ands r0, r2
|
||||||
ldr r1, _080ADE04 @ =gGlobalPalettes
|
ldr r1, _080ADE04 @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
str r0, [r3, #8]
|
str r0, [r3, #8]
|
||||||
movs r0, #1
|
movs r0, #1
|
||||||
|
|
@ -672,7 +672,7 @@ sub_080ADDD8: @ 0x080ADDD8
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080ADDFC: .4byte gUnk_02024494
|
_080ADDFC: .4byte gUnk_02024494
|
||||||
_080ADE00: .4byte 0x00FFFFFC
|
_080ADE00: .4byte 0x00FFFFFC
|
||||||
_080ADE04: .4byte gGlobalPalettes
|
_080ADE04: .4byte gGlobalGfxAndPalettes
|
||||||
_080ADE08: .4byte 0x0000FFFF
|
_080ADE08: .4byte 0x0000FFFF
|
||||||
_080ADE0C:
|
_080ADE0C:
|
||||||
movs r0, #0xfe
|
movs r0, #0xfe
|
||||||
|
|
|
||||||
|
|
@ -330,7 +330,7 @@ _080597F4:
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
blt _08059838
|
blt _08059838
|
||||||
adds r0, #0x2b
|
adds r0, #0x2b
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
b _08059838
|
b _08059838
|
||||||
_08059800:
|
_08059800:
|
||||||
ldr r4, _0805981C @ =gUnk_02001A40
|
ldr r4, _0805981C @ =gUnk_02001A40
|
||||||
|
|
|
||||||
|
|
@ -378,7 +378,7 @@ _08059CE8:
|
||||||
_08059CEC:
|
_08059CEC:
|
||||||
adds r6, r1, r0
|
adds r6, r1, r0
|
||||||
ldr r0, [r6]
|
ldr r0, [r6]
|
||||||
ldr r4, _08059D14 @ =gGlobalPalettes
|
ldr r4, _08059D14 @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r4
|
adds r0, r0, r4
|
||||||
ldr r1, [r6, #4]
|
ldr r1, [r6, #4]
|
||||||
movs r5, #0x80
|
movs r5, #0x80
|
||||||
|
|
@ -393,7 +393,7 @@ _08059CEC:
|
||||||
pop {r4, r5, r6, pc}
|
pop {r4, r5, r6, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08059D10: .4byte gUnk_08108468
|
_08059D10: .4byte gUnk_08108468
|
||||||
_08059D14: .4byte gGlobalPalettes
|
_08059D14: .4byte gGlobalGfxAndPalettes
|
||||||
|
|
||||||
thumb_func_start sub_08059D18
|
thumb_func_start sub_08059D18
|
||||||
sub_08059D18: @ 0x08059D18
|
sub_08059D18: @ 0x08059D18
|
||||||
|
|
|
||||||
|
|
@ -1139,7 +1139,7 @@ sub_0805AADC: @ 0x0805AADC
|
||||||
lsls r0, r0, #1
|
lsls r0, r0, #1
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
ldrh r0, [r0]
|
ldrh r0, [r0]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0805AAEC: .4byte gUnk_08108648
|
_0805AAEC: .4byte gUnk_08108648
|
||||||
|
|
|
||||||
|
|
@ -418,7 +418,7 @@ sub_0805B328: @ 0x0805B328
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
ldr r0, [r0, #0xc]
|
ldr r0, [r0, #0xc]
|
||||||
ldr r0, [r0]
|
ldr r0, [r0]
|
||||||
ldr r1, _0805B378 @ =gGlobalPalettes
|
ldr r1, _0805B378 @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
ldr r1, _0805B37C @ =0x0600F000
|
ldr r1, _0805B37C @ =0x0600F000
|
||||||
movs r4, #0x80
|
movs r4, #0x80
|
||||||
|
|
@ -445,7 +445,7 @@ _0805B372:
|
||||||
pop {r4, pc}
|
pop {r4, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0805B374: .4byte gUnk_08108764
|
_0805B374: .4byte gUnk_08108764
|
||||||
_0805B378: .4byte gGlobalPalettes
|
_0805B378: .4byte gGlobalGfxAndPalettes
|
||||||
_0805B37C: .4byte 0x0600F000
|
_0805B37C: .4byte 0x0600F000
|
||||||
_0805B380: .4byte gScreen
|
_0805B380: .4byte gScreen
|
||||||
_0805B384: .4byte 0x00001E07
|
_0805B384: .4byte 0x00001E07
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ sub_0805B4D0: @ 0x0805B4D0
|
||||||
ldr r0, _0805B528 @ =gUnk_08108C5C
|
ldr r0, _0805B528 @ =gUnk_08108C5C
|
||||||
adds r0, r5, r0
|
adds r0, r5, r0
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r4, _0805B52C @ =gScreen
|
ldr r4, _0805B52C @ =gScreen
|
||||||
ldr r0, _0805B530 @ =0x00001E07
|
ldr r0, _0805B530 @ =0x00001E07
|
||||||
strh r0, [r4, #0x2c]
|
strh r0, [r4, #0x2c]
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ sub_080575C8: @ 0x080575C8
|
||||||
lsls r0, r0, #0x13
|
lsls r0, r0, #0x13
|
||||||
strh r5, [r0]
|
strh r5, [r0]
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _08057668 @ =gRoomVars
|
ldr r0, _08057668 @ =gRoomVars
|
||||||
strb r4, [r0, #0x10]
|
strb r4, [r0, #0x10]
|
||||||
ldr r3, _0805766C @ =gRoomControls
|
ldr r3, _0805766C @ =gRoomControls
|
||||||
|
|
@ -183,7 +183,7 @@ sub_080576A0: @ 0x080576A0
|
||||||
adds r4, r0, #0
|
adds r4, r0, #0
|
||||||
ldr r0, _080576BC @ =gRoomVars
|
ldr r0, _080576BC @ =gRoomVars
|
||||||
ldrb r0, [r0, #0x10]
|
ldrb r0, [r0, #0x10]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
movs r0, #0
|
movs r0, #0
|
||||||
str r0, [r4, #0x38]
|
str r0, [r4, #0x38]
|
||||||
str r0, [r4, #0x3c]
|
str r0, [r4, #0x3c]
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ _0805D46C: .4byte gScreen
|
||||||
sub_0805D470: @ 0x0805D470
|
sub_0805D470: @ 0x0805D470
|
||||||
push {lr}
|
push {lr}
|
||||||
movs r0, #0x4c
|
movs r0, #0x4c
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r2, _0805D4A0 @ =gScreen
|
ldr r2, _0805D4A0 @ =gScreen
|
||||||
ldr r0, _0805D4A4 @ =0x00001E07
|
ldr r0, _0805D4A4 @ =0x00001E07
|
||||||
strh r0, [r2, #0x2c]
|
strh r0, [r2, #0x2c]
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ _0805D842:
|
||||||
ldr r0, _0805D854 @ =gUnk_08108D74
|
ldr r0, _0805D854 @ =gUnk_08108D74
|
||||||
adds r0, r1, r0
|
adds r0, r1, r0
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r1, _0805D858 @ =gScreen
|
ldr r1, _0805D858 @ =gScreen
|
||||||
ldr r0, _0805D85C @ =0x00001E04
|
ldr r0, _0805D85C @ =0x00001E04
|
||||||
strh r0, [r1, #0x2c]
|
strh r0, [r1, #0x2c]
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ _08057DD6:
|
||||||
movs r0, #1
|
movs r0, #1
|
||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
ldr r0, [r2]
|
ldr r0, [r2]
|
||||||
ldr r1, _08057DFC @ =gGlobalPalettes
|
ldr r1, _08057DFC @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r1
|
adds r0, r0, r1
|
||||||
ldr r1, [r2, #4]
|
ldr r1, [r2, #4]
|
||||||
movs r2, #0x80
|
movs r2, #0x80
|
||||||
|
|
@ -89,13 +89,13 @@ _08057DD6:
|
||||||
b _08057E24
|
b _08057E24
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08057DF8: .4byte gUnk_02034490
|
_08057DF8: .4byte gUnk_02034490
|
||||||
_08057DFC: .4byte gGlobalPalettes
|
_08057DFC: .4byte gGlobalGfxAndPalettes
|
||||||
_08057E00: .4byte gUnk_081081E4
|
_08057E00: .4byte gUnk_081081E4
|
||||||
_08057E04:
|
_08057E04:
|
||||||
lsls r1, r1, #3
|
lsls r1, r1, #3
|
||||||
adds r1, r1, r2
|
adds r1, r1, r2
|
||||||
ldr r0, [r1]
|
ldr r0, [r1]
|
||||||
ldr r2, _08057E1C @ =gGlobalPalettes
|
ldr r2, _08057E1C @ =gGlobalGfxAndPalettes
|
||||||
adds r0, r0, r2
|
adds r0, r0, r2
|
||||||
ldr r1, [r1, #4]
|
ldr r1, [r1, #4]
|
||||||
movs r2, #0x80
|
movs r2, #0x80
|
||||||
|
|
@ -103,7 +103,7 @@ _08057E04:
|
||||||
bl LoadAssetAsync
|
bl LoadAssetAsync
|
||||||
b _08057E24
|
b _08057E24
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08057E1C: .4byte gGlobalPalettes
|
_08057E1C: .4byte gGlobalGfxAndPalettes
|
||||||
_08057E20:
|
_08057E20:
|
||||||
ldr r0, _08057E2C @ =gUnk_02034490
|
ldr r0, _08057E2C @ =gUnk_02034490
|
||||||
strb r3, [r0]
|
strb r3, [r0]
|
||||||
|
|
@ -175,7 +175,7 @@ sub_08057E7C: @ 0x08057E7C
|
||||||
adds r1, r1, r0
|
adds r1, r1, r0
|
||||||
movs r3, #0
|
movs r3, #0
|
||||||
ldr r2, _08057EC0 @ =0x040000D4
|
ldr r2, _08057EC0 @ =0x040000D4
|
||||||
ldr r6, _08057EC4 @ =gGlobalPalettes
|
ldr r6, _08057EC4 @ =gGlobalGfxAndPalettes
|
||||||
ldr r5, _08057EC8 @ =0x84000400
|
ldr r5, _08057EC8 @ =0x84000400
|
||||||
_08057E9C:
|
_08057E9C:
|
||||||
ldr r0, [r1]
|
ldr r0, [r1]
|
||||||
|
|
@ -197,6 +197,6 @@ _08057EB6:
|
||||||
_08057EB8: .4byte gUnk_081081E4
|
_08057EB8: .4byte gUnk_081081E4
|
||||||
_08057EBC: .4byte gUnk_081080A4
|
_08057EBC: .4byte gUnk_081080A4
|
||||||
_08057EC0: .4byte 0x040000D4
|
_08057EC0: .4byte 0x040000D4
|
||||||
_08057EC4: .4byte gGlobalPalettes
|
_08057EC4: .4byte gGlobalGfxAndPalettes
|
||||||
_08057EC8: .4byte 0x84000400
|
_08057EC8: .4byte 0x84000400
|
||||||
_08057ECC: .4byte gRoomVars
|
_08057ECC: .4byte gRoomVars
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ sub_08057EFC: @ 0x08057EFC
|
||||||
adds r4, r0, #0
|
adds r4, r0, #0
|
||||||
ldr r0, _08057F1C @ =gRoomVars
|
ldr r0, _08057F1C @ =gRoomVars
|
||||||
ldrb r0, [r0, #0x10]
|
ldrb r0, [r0, #0x10]
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
bl sub_08058034
|
bl sub_08058034
|
||||||
movs r0, #0
|
movs r0, #0
|
||||||
str r0, [r4, #0x3c]
|
str r0, [r4, #0x3c]
|
||||||
|
|
@ -267,7 +267,7 @@ sub_080580B0: @ 0x080580B0
|
||||||
lsls r0, r0, #0x13
|
lsls r0, r0, #0x13
|
||||||
strh r1, [r0]
|
strh r1, [r0]
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r0, _080581B4 @ =gRoomVars
|
ldr r0, _080581B4 @ =gRoomVars
|
||||||
strb r4, [r0, #0x10]
|
strb r4, [r0, #0x10]
|
||||||
bl sub_08058034
|
bl sub_08058034
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ sub_08058324: @ 0x08058324
|
||||||
bl LoadPaletteGroup
|
bl LoadPaletteGroup
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
adds r0, #0x36
|
adds r0, #0x36
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
bl sub_080582D0
|
bl sub_080582D0
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_08058244
|
bl sub_08058244
|
||||||
|
|
|
||||||
|
|
@ -661,7 +661,7 @@ sub_08058D34: @ 0x08058D34
|
||||||
orrs r0, r1
|
orrs r0, r1
|
||||||
str r0, [r2]
|
str r0, [r2]
|
||||||
movs r0, #0x16
|
movs r0, #0x16
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
ldr r1, _08058DB4 @ =gScreen
|
ldr r1, _08058DB4 @ =gScreen
|
||||||
ldrh r0, [r1]
|
ldrh r0, [r1]
|
||||||
movs r3, #0
|
movs r3, #0
|
||||||
|
|
@ -697,7 +697,7 @@ sub_08058D34: @ 0x08058D34
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _08058DA8
|
beq _08058DA8
|
||||||
movs r0, #0x4a
|
movs r0, #0x4a
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
_08058DA8:
|
_08058DA8:
|
||||||
pop {r4, pc}
|
pop {r4, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ sub_0808BB30: @ 0x0808BB30
|
||||||
cmp r1, #0
|
cmp r1, #0
|
||||||
beq _0808BB4C
|
beq _0808BB4C
|
||||||
movs r0, #0x4a
|
movs r0, #0x4a
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
bl DeleteThisEntity
|
bl DeleteThisEntity
|
||||||
b _0808BBD4
|
b _0808BBD4
|
||||||
_0808BB4C:
|
_0808BB4C:
|
||||||
|
|
@ -229,7 +229,7 @@ _0808BCCA:
|
||||||
beq _0808BCFE
|
beq _0808BCFE
|
||||||
strb r6, [r5, #0xf]
|
strb r6, [r5, #0xf]
|
||||||
movs r0, #0x4a
|
movs r0, #0x4a
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
b _0808BCFE
|
b _0808BCFE
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0808BCDC: .4byte 0x0000FFFE
|
_0808BCDC: .4byte 0x0000FFFE
|
||||||
|
|
@ -246,7 +246,7 @@ _0808BCE4:
|
||||||
beq _0808BCFE
|
beq _0808BCFE
|
||||||
strb r4, [r5, #0xf]
|
strb r4, [r5, #0xf]
|
||||||
movs r0, #0x49
|
movs r0, #0x49
|
||||||
bl sub_0801D7EC
|
bl LoadGfxGroup
|
||||||
_0808BCFE:
|
_0808BCFE:
|
||||||
pop {r4, r5, r6, pc}
|
pop {r4, r5, r6, pc}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10327,7 +10327,7 @@ gUnk_085A0464:: @ 085A0464
|
||||||
gUnk_085A0806:: @ 085A0806
|
gUnk_085A0806:: @ 085A0806
|
||||||
.incbin "baserom.gba", 0x5A0806, 0x000267A
|
.incbin "baserom.gba", 0x5A0806, 0x000267A
|
||||||
|
|
||||||
gGlobalPalettes:: @ 085A2E80
|
gGlobalGfxAndPalettes:: @ 085A2E80
|
||||||
.incbin "baserom.gba", 0x5A2E80, 0x0001382
|
.incbin "baserom.gba", 0x5A2E80, 0x0001382
|
||||||
|
|
||||||
gUnk_085A4202:: @ 085A4202
|
gUnk_085A4202:: @ 085A4202
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ extern void sub_0805ADD8(u32);
|
||||||
extern void sub_0804F578(void);
|
extern void sub_0804F578(void);
|
||||||
extern void sub_08059994(void);
|
extern void sub_08059994(void);
|
||||||
extern u32 sub_080AD84C();
|
extern u32 sub_080AD84C();
|
||||||
extern void sub_0801D7EC(u32);
|
extern void LoadGfxGroup(u32);
|
||||||
extern s32 sub_0801CFA8(u32);
|
extern s32 sub_0801CFA8(u32);
|
||||||
extern void sub_080A3210();
|
extern void sub_080A3210();
|
||||||
extern void sub_080AD6AC();
|
extern void sub_080AD6AC();
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u16 lcdControl2;
|
u16 lcdControl2;
|
||||||
u16 unk2;
|
u16 unk2;
|
||||||
u32 unk;
|
u16 unk4;
|
||||||
|
u16 unk6;
|
||||||
u16 lcdControl1;
|
u16 lcdControl1;
|
||||||
} LcdControls;
|
} LcdControls;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -321,6 +321,7 @@ SECTIONS {
|
||||||
asm/sub_0801D66C.o(.text);
|
asm/sub_0801D66C.o(.text);
|
||||||
src/input.o(.text);
|
src/input.o(.text);
|
||||||
src/code_0801D714.o(.text);
|
src/code_0801D714.o(.text);
|
||||||
|
src/code_0801D79C.o(.text);
|
||||||
asm/code_0801D79C.o(.text);
|
asm/code_0801D79C.o(.text);
|
||||||
/* enemies */
|
/* enemies */
|
||||||
src/enemy/octorok.o(.text);
|
src/enemy/octorok.o(.text);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
extern void LoadPalettes(const u8*, int, int);
|
extern void LoadPalettes(const u8*, int, int);
|
||||||
|
|
||||||
extern u32 gUsedPalettes;
|
extern u32 gUsedPalettes;
|
||||||
extern u16 gPaletteBuffer[][16];
|
extern u16 gPaletteBuffer[];
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u16 paletteId;
|
u16 paletteId;
|
||||||
|
|
@ -12,17 +12,17 @@ typedef struct {
|
||||||
} PaletteGroup;
|
} PaletteGroup;
|
||||||
|
|
||||||
extern const PaletteGroup* gPaletteGroups[];
|
extern const PaletteGroup* gPaletteGroups[];
|
||||||
extern const u8 gGlobalPalettes[][32];
|
extern const u8 gGlobalGfxAndPalettes[];
|
||||||
|
|
||||||
void LoadPaletteGroup(u32 arg0) {
|
void LoadPaletteGroup(u32 group) {
|
||||||
const PaletteGroup* paletteGroup = gPaletteGroups[arg0];
|
const PaletteGroup* paletteGroup = gPaletteGroups[group];
|
||||||
while (1) {
|
while (1) {
|
||||||
u32 destPaletteNum = paletteGroup->destPaletteNum;
|
u32 destPaletteNum = paletteGroup->destPaletteNum;
|
||||||
u32 numPalettes = paletteGroup->numPalettes & 0xF;
|
u32 numPalettes = paletteGroup->numPalettes & 0xF;
|
||||||
if (numPalettes == 0) {
|
if (numPalettes == 0) {
|
||||||
numPalettes = 16;
|
numPalettes = 16;
|
||||||
}
|
}
|
||||||
LoadPalettes(gGlobalPalettes[paletteGroup->paletteId], destPaletteNum, numPalettes);
|
LoadPalettes(&gGlobalGfxAndPalettes[paletteGroup->paletteId * 32], destPaletteNum, numPalettes);
|
||||||
if ((paletteGroup->numPalettes & 0x80) == 0) {
|
if ((paletteGroup->numPalettes & 0x80) == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -38,6 +38,6 @@ void LoadPalettes(const u8* src, int destPaletteNum, int numPalettes) {
|
||||||
usedPalettesMask |= (usedPalettesMask << 1);
|
usedPalettesMask |= (usedPalettesMask << 1);
|
||||||
}
|
}
|
||||||
gUsedPalettes |= usedPalettesMask;
|
gUsedPalettes |= usedPalettesMask;
|
||||||
dest = gPaletteBuffer[destPaletteNum];
|
dest = &gPaletteBuffer[destPaletteNum * 16];
|
||||||
DmaCopy32(3, src, dest, size);
|
DmaCopy32(3, src, dest, size);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "screen.h"
|
||||||
|
#include "structures.h"
|
||||||
|
|
||||||
|
extern u16 gPaletteBuffer[];
|
||||||
|
extern u32 gUsedPalettes;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
union {
|
||||||
|
int raw;
|
||||||
|
struct {
|
||||||
|
u8 filler0[0x3];
|
||||||
|
u8 unk3;
|
||||||
|
} bytes;
|
||||||
|
} unk0;
|
||||||
|
u32 dest;
|
||||||
|
u32 unk8;
|
||||||
|
} GfxItem;
|
||||||
|
|
||||||
|
extern const GfxItem* gUnk_08100AA8[];
|
||||||
|
extern const u8 gGlobalGfxAndPalettes[];
|
||||||
|
|
||||||
|
void sub_0801D79C(u32 colorIndex, u32 color) {
|
||||||
|
gPaletteBuffer[colorIndex] = color;
|
||||||
|
gUsedPalettes |= 1 << (colorIndex / 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0801D7BC(u32 color, u32 arg1) {
|
||||||
|
if (arg1) {
|
||||||
|
gScreen.lcd.unk6 = 0xE0FF;
|
||||||
|
} else {
|
||||||
|
gScreen.lcd.unk6 = 0xFFFF;
|
||||||
|
}
|
||||||
|
sub_0801D79C(0, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadGfxGroup(u32 group) {
|
||||||
|
u32 terminator;
|
||||||
|
u32 dmaCtrl;
|
||||||
|
int gfxOffset;
|
||||||
|
const u8* src;
|
||||||
|
u32 dest;
|
||||||
|
int size;
|
||||||
|
const GfxItem* gfxItem = gUnk_08100AA8[group];
|
||||||
|
while (1) {
|
||||||
|
u32 loadGfx = FALSE;
|
||||||
|
u32 ctrl = gfxItem->unk0.bytes.unk3;
|
||||||
|
ctrl &= 0xF;
|
||||||
|
switch (ctrl) {
|
||||||
|
case 0x7:
|
||||||
|
loadGfx = TRUE;
|
||||||
|
break;
|
||||||
|
case 0xD:
|
||||||
|
return;
|
||||||
|
case 0xE:
|
||||||
|
if (((struct_02000000 *)0x2000000)->gameLanguage > 1) {
|
||||||
|
loadGfx = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0xF:
|
||||||
|
if (((struct_02000000 *)0x2000000)->gameLanguage != 0) {
|
||||||
|
loadGfx = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (ctrl == ((struct_02000000 *)0x2000000)->gameLanguage) {
|
||||||
|
loadGfx = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loadGfx) {
|
||||||
|
gfxOffset = gfxItem->unk0.raw & 0xFFFFFF;
|
||||||
|
src = &gGlobalGfxAndPalettes[gfxOffset];
|
||||||
|
dest = gfxItem->dest;
|
||||||
|
size = gfxItem->unk8;
|
||||||
|
dmaCtrl = 0x80000000;
|
||||||
|
if (size < 0) {
|
||||||
|
if (dest >= VRAM) {
|
||||||
|
LZ77UnCompVram(src, (void*)dest);
|
||||||
|
} else {
|
||||||
|
LZ77UnCompWram(src, (void*)dest);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
DmaSet(3, src, dest, dmaCtrl | ((u32)size >> 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
terminator = gfxItem->unk0.bytes.unk3;
|
||||||
|
terminator &= 0x80;
|
||||||
|
gfxItem++;
|
||||||
|
if (!terminator) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -64,22 +64,22 @@ void HandleIntroScreen(void)
|
||||||
static void sub_080AD3F4(void)
|
static void sub_080AD3F4(void)
|
||||||
{
|
{
|
||||||
u32 iVar1;
|
u32 iVar1;
|
||||||
u32 uVar2;
|
u32 paletteGroup;
|
||||||
|
|
||||||
iVar1 = sub_080AD84C();
|
iVar1 = sub_080AD84C();
|
||||||
if (gMenu.menuType == 0) {
|
if (gMenu.menuType == 0) {
|
||||||
sub_0801DA90(1);
|
sub_0801DA90(1);
|
||||||
gMenu.menuType = 1;
|
gMenu.menuType = 1;
|
||||||
gMenu.transitionTimer = 120;
|
gMenu.transitionTimer = 120;
|
||||||
sub_0801D7EC(0x10);
|
LoadGfxGroup(16);
|
||||||
sub_0801D7EC(1);
|
LoadGfxGroup(1);
|
||||||
if (((struct_02000000 *)0x2000000)->gameLanguage == 0) {
|
if (((struct_02000000 *)0x2000000)->gameLanguage == 0) {
|
||||||
uVar2 = 1;
|
paletteGroup = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uVar2 = 2;
|
paletteGroup = 2;
|
||||||
}
|
}
|
||||||
LoadPaletteGroup(uVar2);
|
LoadPaletteGroup(paletteGroup);
|
||||||
gScreen.lcd.lcdControl2 |= 0x400;
|
gScreen.lcd.lcdControl2 |= 0x400;
|
||||||
gScreen.bg2.bg0xOffset = 1;
|
gScreen.bg2.bg0xOffset = 1;
|
||||||
DoFade(6, 8);
|
DoFade(6, 8);
|
||||||
|
|
@ -107,7 +107,7 @@ extern u8 gUnk_02024490;
|
||||||
static void sub_080AD474(void)
|
static void sub_080AD474(void)
|
||||||
{
|
{
|
||||||
int iVar2;
|
int iVar2;
|
||||||
u32 uVar3;
|
u32 paletteGroup;
|
||||||
|
|
||||||
gMenu.field_0x12++;
|
gMenu.field_0x12++;
|
||||||
switch (gMenu.menuType) {
|
switch (gMenu.menuType) {
|
||||||
|
|
@ -120,14 +120,14 @@ static void sub_080AD474(void)
|
||||||
sub_0801CFA8(0);
|
sub_0801CFA8(0);
|
||||||
sub_080ADD30();
|
sub_080ADD30();
|
||||||
gUnk_02024490 = 1;
|
gUnk_02024490 = 1;
|
||||||
sub_0801D7EC(2);
|
LoadGfxGroup(2);
|
||||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||||
uVar3 = 3;
|
paletteGroup = 3;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uVar3 = 4;
|
paletteGroup = 4;
|
||||||
}
|
}
|
||||||
LoadPaletteGroup(uVar3);
|
LoadPaletteGroup(paletteGroup);
|
||||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||||
gScreen.controls.windowOutsideControl = 0x844;
|
gScreen.controls.windowOutsideControl = 0x844;
|
||||||
gScreen.controls.mosaicSize = 0x909;
|
gScreen.controls.mosaicSize = 0x909;
|
||||||
|
|
@ -192,7 +192,7 @@ static void sub_080AD474(void)
|
||||||
}
|
}
|
||||||
if (gMenu.field_0x4 != ((struct_02000000*)0x2000000)->gameLanguage) {
|
if (gMenu.field_0x4 != ((struct_02000000*)0x2000000)->gameLanguage) {
|
||||||
gMenu.field_0x4 = ((struct_02000000*)0x2000000)->gameLanguage;
|
gMenu.field_0x4 = ((struct_02000000*)0x2000000)->gameLanguage;
|
||||||
sub_0801D7EC(3);
|
LoadGfxGroup(3);
|
||||||
}
|
}
|
||||||
sub_080AD89C();
|
sub_080AD89C();
|
||||||
sub_0805E5C0();
|
sub_0805E5C0();
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
#include "readKeyInput.h"
|
#include "readKeyInput.h"
|
||||||
|
|
||||||
extern void sub_0804FF84(u32);
|
extern void sub_0804FF84(u32);
|
||||||
extern u32 gPaletteBuffer;
|
extern u16 gPaletteBuffer[];
|
||||||
extern void VBlankInterruptWait(void);
|
extern void VBlankInterruptWait(void);
|
||||||
extern void DisableInterruptsAndDMA(void);
|
extern void DisableInterruptsAndDMA(void);
|
||||||
extern void sub_0801D66C(void*, u8*, int);
|
extern void sub_0801D66C(void*, u8*, int);
|
||||||
|
|
@ -34,7 +34,7 @@ void MainLoop(void) {
|
||||||
sub_08056208();
|
sub_08056208();
|
||||||
gUnk_02000010.field_0x4 = 193;
|
gUnk_02000010.field_0x4 = 193;
|
||||||
sub_0804FFE4();
|
sub_0804FFE4();
|
||||||
DmaSet(3, 0x5000000U, &gPaletteBuffer, 0x84000080U);
|
DmaSet(3, 0x5000000U, gPaletteBuffer, 0x84000080U);
|
||||||
sub_0804FF84(1);
|
sub_0804FF84(1);
|
||||||
sub_08056418();
|
sub_08056418();
|
||||||
sub_080ADD30();
|
sub_080ADD30();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
extern void sub_0801D7EC(u32);
|
extern void LoadGfxGroup(u32);
|
||||||
extern void sub_08056250(void);
|
extern void sub_08056250(void);
|
||||||
extern void sub_080570B8(Entity*);
|
extern void sub_080570B8(Entity*);
|
||||||
void sub_080570F8(void);
|
void sub_080570F8(void);
|
||||||
|
|
@ -23,7 +23,7 @@ void Manager1(Entity *this)
|
||||||
bVar1 = gUnk_08107C40[((u8*)&this->field_0x20)[1]];
|
bVar1 = gUnk_08107C40[((u8*)&this->field_0x20)[1]];
|
||||||
if ((bVar1 != 0) && (*(u8 *)&this->field_0x20 != bVar1)) {
|
if ((bVar1 != 0) && (*(u8 *)&this->field_0x20 != bVar1)) {
|
||||||
((u8*)&this->field_0x20)[0] = bVar1;
|
((u8*)&this->field_0x20)[0] = bVar1;
|
||||||
sub_0801D7EC(bVar1);
|
LoadGfxGroup(bVar1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ void sub_080570B8(Entity *this)
|
||||||
{
|
{
|
||||||
u8 *pbVar1;
|
u8 *pbVar1;
|
||||||
|
|
||||||
sub_0801D7EC(((u8 *)&this->field_0x20)[0]);
|
LoadGfxGroup(((u8 *)&this->field_0x20)[0]);
|
||||||
this->height.WORD = 0;
|
this->height.WORD = 0;
|
||||||
pbVar1 = ((u8 *)&this->field_0x20 + 1);
|
pbVar1 = ((u8 *)&this->field_0x20 + 1);
|
||||||
if (*pbVar1 == 3) {
|
if (*pbVar1 == 3) {
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ typedef struct {
|
||||||
extern void (*const gUnk_08121C64[])(Entity*);
|
extern void (*const gUnk_08121C64[])(Entity*);
|
||||||
extern void (*const gUnk_08121CCC[])(Entity*);
|
extern void (*const gUnk_08121CCC[])(Entity*);
|
||||||
extern const int gUnk_08133368[];
|
extern const int gUnk_08133368[];
|
||||||
extern const u8 gGlobalPalettes[];
|
extern const u8 gGlobalGfxAndPalettes[];
|
||||||
extern const struct_08121CD4 gUnk_08121CD4[][4];
|
extern const struct_08121CD4 gUnk_08121CD4[][4];
|
||||||
extern const u8 gUnk_08121D10[];
|
extern const u8 gUnk_08121D10[];
|
||||||
extern const u8 gUnk_08121D38[][8];
|
extern const u8 gUnk_08121D38[][8];
|
||||||
|
|
@ -88,7 +88,7 @@ void sub_0808E818(Entity* this) {
|
||||||
this->field_0x70.BYTES.byte0 = 4;
|
this->field_0x70.BYTES.byte0 = 4;
|
||||||
this->animationState = 2;
|
this->animationState = 2;
|
||||||
var1 = gUnk_08133368[sub_0807A094(1) - 22] & 0xFFFFFF;
|
var1 = gUnk_08133368[sub_0807A094(1) - 22] & 0xFFFFFF;
|
||||||
LoadPalettes(&gGlobalPalettes[var1], 31, 1);
|
LoadPalettes(&gGlobalGfxAndPalettes[var1], 31, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gUnk_02032EC0.transitionType == 0) {
|
if (gUnk_02032EC0.transitionType == 0) {
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ void sub_080A3BD0(void)
|
||||||
gMenu.unk2a = 0;
|
gMenu.unk2a = 0;
|
||||||
sub_080A4D34();
|
sub_080A4D34();
|
||||||
LoadPaletteGroup(0xcb);
|
LoadPaletteGroup(0xcb);
|
||||||
sub_0801D7EC(0x75);
|
LoadGfxGroup(0x75);
|
||||||
|
|
||||||
iVar1 = sub_080A4494();
|
iVar1 = sub_080A4494();
|
||||||
iVar2 = iVar1 + 7;
|
iVar2 = iVar1 + 7;
|
||||||
|
|
@ -44,7 +44,7 @@ void sub_080A3BD0(void)
|
||||||
iVar1 = max(iVar1, 0);
|
iVar1 = max(iVar1, 0);
|
||||||
iVar1 = min(iVar1, 6);
|
iVar1 = min(iVar1, 6);
|
||||||
|
|
||||||
sub_0801D7EC(iVar1 + 0x76);
|
LoadGfxGroup(iVar1 + 0x76);
|
||||||
gScreen.lcd.lcdControl2 |= 0x1e00;
|
gScreen.lcd.lcdControl2 |= 0x1e00;
|
||||||
gScreen.bg1.unk = 0x1c01;
|
gScreen.bg1.unk = 0x1c01;
|
||||||
gScreen.bg2.unk = 0x1d02;
|
gScreen.bg2.unk = 0x1d02;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue