mirror of https://github.com/zeldaret/tmc.git
commit
5904ea3319
|
@ -33,7 +33,7 @@ _08000136:
|
||||||
pop {r4, pc}
|
pop {r4, pc}
|
||||||
_08000138:
|
_08000138:
|
||||||
_08000138: .4byte gUnk_030056F1
|
_08000138: .4byte gUnk_030056F1
|
||||||
_0800013C: .4byte sub_0807D280
|
_0800013C: .4byte sub_0807D280 @ layer 1, 2, 3?
|
||||||
_08000140: .4byte sub_0807D46C
|
_08000140: .4byte sub_0807D46C
|
||||||
_08000144: .4byte sub_0807D6D8
|
_08000144: .4byte sub_0807D6D8
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ sub_08000152: @ 0x08000152
|
||||||
lsrs r2, r2, #2
|
lsrs r2, r2, #2
|
||||||
|
|
||||||
non_word_aligned_thumb_func_start SetTile
|
non_word_aligned_thumb_func_start SetTile
|
||||||
SetTile: @ 0x0800015E
|
SetTile: @ r0 = tile type, r1, = tile position, r2 = layer
|
||||||
push {r4, r5, r6, r7, lr}
|
push {r4-r7, lr}
|
||||||
lsls r3, r2, #3
|
lsls r3, r2, #3
|
||||||
ldr r4, _08000208 @ =gUnk_08000228
|
ldr r4, _08000208 @ =gUnk_08000228
|
||||||
ldr r5, [r4, r3]
|
ldr r5, [r4, r3]
|
||||||
|
@ -75,7 +75,7 @@ SetTile: @ 0x0800015E
|
||||||
ldrb r0, [r3, r4]
|
ldrb r0, [r3, r4]
|
||||||
lsrs r2, r2, #2
|
lsrs r2, r2, #2
|
||||||
bl sub_08000148
|
bl sub_08000148
|
||||||
pop {r0, r1}
|
pop {r0, r1} @ tilepos, layer
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
bl DeleteLoadedTileEntity
|
bl DeleteLoadedTileEntity
|
||||||
adds r0, r7, #0
|
adds r0, r7, #0
|
||||||
|
@ -170,8 +170,8 @@ gUnk_08000278::
|
||||||
@ call 0x80B19CC
|
@ call 0x80B19CC
|
||||||
@ ========
|
@ ========
|
||||||
@ Unused? Doesn't seem to be called by anything in Ghidra.
|
@ Unused? Doesn't seem to be called by anything in Ghidra.
|
||||||
thumb_func_start sub_08000288
|
thumb_func_start GetTileAtEntityPos
|
||||||
sub_08000288: @ 0x08000288
|
GetTileAtEntityPos: @ 0x08000288
|
||||||
ldr r3, _080002F4 @ =gUnk_03005740
|
ldr r3, _080002F4 @ =gUnk_03005740
|
||||||
bx r3
|
bx r3
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ sub_08016B30: @ 0x08016B30
|
||||||
thumb_func_start sub_08016B34
|
thumb_func_start sub_08016B34
|
||||||
sub_08016B34: @ 0x08016B34
|
sub_08016B34: @ 0x08016B34
|
||||||
ldr r1, _08016B54 @ =0x03007FFC
|
ldr r1, _08016B54 @ =0x03007FFC
|
||||||
ldr r0, _08016B58 @ =gUnk_03005D90
|
ldr r0, _08016B58 @ =IntrMain
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
ldr r1, _08016B5C @ =0x04000004
|
ldr r1, _08016B5C @ =0x04000004
|
||||||
ldr r2, _08016B60 @ =0x00005028
|
ldr r2, _08016B60 @ =0x00005028
|
||||||
|
@ -29,7 +29,7 @@ sub_08016B34: @ 0x08016B34
|
||||||
bx lr
|
bx lr
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08016B54: .4byte 0x03007FFC
|
_08016B54: .4byte 0x03007FFC
|
||||||
_08016B58: .4byte gUnk_03005D90
|
_08016B58: .4byte IntrMain
|
||||||
_08016B5C: .4byte 0x04000004
|
_08016B5C: .4byte 0x04000004
|
||||||
_08016B60: .4byte 0x00005028
|
_08016B60: .4byte 0x00005028
|
||||||
_08016B64: .4byte 0x04000200
|
_08016B64: .4byte 0x04000200
|
||||||
|
|
33
asm/crt0.s
33
asm/crt0.s
|
@ -1,32 +1,31 @@
|
||||||
.include "asm/macros.inc"
|
.include "asm/macros.inc"
|
||||||
.include "constants/constants.inc"
|
.include "constants/constants.inc"
|
||||||
|
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
arm_func_start __start
|
arm_func_start __start
|
||||||
__start: @ 0x08000000
|
__start:
|
||||||
b _080000C0
|
b start_vector
|
||||||
_08000004:
|
|
||||||
|
header:
|
||||||
.include "asm/rom_header.inc"
|
.include "asm/rom_header.inc"
|
||||||
_080000C0:
|
|
||||||
|
start_vector:
|
||||||
mov r0, #0x12
|
mov r0, #0x12
|
||||||
msr cpsr_fc, r0
|
msr cpsr_fc, r0
|
||||||
ldr sp, _080000F4 @ =gUnk_03007FA0
|
ldr sp, sp_irq
|
||||||
mov r0, #0x1f
|
mov r0, #0x1f
|
||||||
msr cpsr_fc, r0
|
msr cpsr_fc, r0
|
||||||
ldr sp, _080000F8 @ =gUnk_03007F00
|
ldr sp, sp_usr
|
||||||
ldr r1, _080000FC @ =0x03007FFC
|
ldr r1, INTR_VECTOR_BUF
|
||||||
ldr r0, _08000100 @ =gUnk_03005D90
|
ldr r0, intr_main
|
||||||
str r0, [r1]
|
str r0, [r1]
|
||||||
ldr r1, _08000104 @ =MainLoop
|
ldr r1, =AgbMain
|
||||||
mov lr, pc
|
mov lr, pc
|
||||||
bx r1
|
bx r1
|
||||||
_080000F0:
|
_080000F0:
|
||||||
b _080000C0
|
b start_vector
|
||||||
_080000F4: .4byte gUnk_03007FA0
|
sp_irq: .4byte gUnk_03007FA0
|
||||||
_080000F8: .4byte gUnk_03007F00
|
sp_usr: .4byte gUnk_03007F00
|
||||||
_080000FC: .4byte 0x03007FFC
|
INTR_VECTOR_BUF: .4byte 0x03007FFC
|
||||||
_08000100: .4byte gUnk_03005D90
|
intr_main: .4byte IntrMain
|
||||||
_08000104: .4byte MainLoop
|
|
||||||
|
|
17
asm/intr.s
17
asm/intr.s
|
@ -49,16 +49,17 @@ _080B19C0: .4byte gRoomControls
|
||||||
_080B19C4: .4byte 0x80000020
|
_080B19C4: .4byte 0x80000020
|
||||||
_080B19C8: .4byte 0x040000D4
|
_080B19C8: .4byte 0x040000D4
|
||||||
|
|
||||||
arm_func_start sub_080B19CC
|
@ r0 = entity*
|
||||||
sub_080B19CC: @ 0x080B19CC
|
arm_func_start _GetTileAtEntityPos
|
||||||
ldrb r2, [r0, #0x38]
|
_GetTileAtEntityPos: @ 0x080B19CC
|
||||||
ldrh r1, [r0, #0x32]
|
ldrb r2, [r0, #0x38] @ obj layer
|
||||||
ldrh r0, [r0, #0x2e]
|
ldrh r1, [r0, #0x32] @ obj y
|
||||||
|
ldrh r0, [r0, #0x2e] @ obj x
|
||||||
ldr ip, _080B1C10 @ =gRoomControls
|
ldr ip, _080B1C10 @ =gRoomControls
|
||||||
ldrh r3, [ip, #6]
|
ldrh r3, [ip, #6]
|
||||||
sub r0, r0, r3
|
sub r0, r0, r3 @ obj x - room x
|
||||||
ldrh r3, [ip, #8]
|
ldrh r3, [ip, #8]
|
||||||
sub r1, r1, r3
|
sub r1, r1, r3 @ obj y - room y
|
||||||
lsl r0, r0, #0x16
|
lsl r0, r0, #0x16
|
||||||
lsr r0, r0, #0x1a
|
lsr r0, r0, #0x1a
|
||||||
lsl r1, r1, #0x16
|
lsl r1, r1, #0x16
|
||||||
|
@ -102,7 +103,7 @@ _080B1A64:
|
||||||
ldr r1, [r2]
|
ldr r1, [r2]
|
||||||
lsl r0, r0, #1
|
lsl r0, r0, #1
|
||||||
ldrh r0, [r1, r0]
|
ldrh r0, [r1, r0]
|
||||||
cmp r0, #0x4000
|
cmp r0, #0x4000 @ return tile index is OOB
|
||||||
bxhs lr
|
bxhs lr
|
||||||
ldr r1, [r2, #4]
|
ldr r1, [r2, #4]
|
||||||
lsl r0, r0, #1
|
lsl r0, r0, #1
|
||||||
|
|
|
@ -258,7 +258,7 @@ SECTIONS {
|
||||||
. = 0x00005D24; gUnk_03005D24 = .;
|
. = 0x00005D24; gUnk_03005D24 = .;
|
||||||
. = 0x00005D58; gUnk_03005D58 = .;
|
. = 0x00005D58; gUnk_03005D58 = .;
|
||||||
. = 0x00005D5C; gUnk_03005D5C = .;
|
. = 0x00005D5C; gUnk_03005D5C = .;
|
||||||
. = 0x00005D90; gUnk_03005D90 = .;
|
. = 0x00005D90; IntrMain = .;
|
||||||
. = 0x00005E60; gUnk_03005E60 = .;
|
. = 0x00005E60; gUnk_03005E60 = .;
|
||||||
. = 0x00005E98; gUnk_03005E98 = .;
|
. = 0x00005E98; gUnk_03005E98 = .;
|
||||||
. = 0x00005F24; _EntUpdate = .;
|
. = 0x00005F24; _EntUpdate = .;
|
||||||
|
|
|
@ -24,7 +24,7 @@ static void (*const sScreenHandlers[])(void) = {
|
||||||
|
|
||||||
static void sub_080560B8(void);
|
static void sub_080560B8(void);
|
||||||
|
|
||||||
void MainLoop(void) {
|
void AgbMain(void) {
|
||||||
int var0;
|
int var0;
|
||||||
|
|
||||||
sub_08055F70();
|
sub_08055F70();
|
||||||
|
|
Loading…
Reference in New Issue