mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			431 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			431 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| 	.include "asm/macros.inc"
 | |
| 	.include "constants/constants.inc"
 | |
| 
 | |
| 	.syntax unified
 | |
| 
 | |
| 	.text
 | |
| 
 | |
| 	thumb_func_start sub_08000108
 | |
| sub_08000108: @ 0x08000108
 | |
| 	push {r4, lr}
 | |
| 	ldr r0, _080001E8 @ =gUnk_02000070
 | |
| 	ldrb r1, [r0]
 | |
| 	lsls r1, r1, #2
 | |
| 	beq _08000136
 | |
| 	add r4, pc, #0x20
 | |
| 	ldr r4, [r4, r1]
 | |
| 	ldr r0, _080001EC @ =gUnk_02025EB0
 | |
| 	ldr r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08000126
 | |
| 	ldr r0, _080001F0 @ =gUnk_02019EE0
 | |
| 	ldr r1, _080001F4 @ =gUnk_02021F70
 | |
| 	bl _call_via_r4
 | |
| _08000126:
 | |
| 	ldr r0, _080001F8 @ =gUnk_0200B650
 | |
| 	ldr r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08000136
 | |
| 	ldr r0, _080001FC @ =gMapDataTopSpecial
 | |
| 	ldr r1, _08000200 @ =gUnk_020344F0
 | |
| 	bl _call_via_r4
 | |
| _08000136:
 | |
| 	pop {r4, pc}
 | |
| _08000138:
 | |
| _08000138: .4byte gUnk_030056F1
 | |
| _0800013C: .4byte sub_0807D280
 | |
| _08000140: .4byte sub_0807D46C
 | |
| _08000144: .4byte sub_0807D6D8
 | |
| 
 | |
| 	thumb_func_start sub_08000148
 | |
| sub_08000148: @ 0x08000148
 | |
| 	lsls r2, r2, #2
 | |
| 	ldr r3, _08000204 @ =gUnk_08000248
 | |
| 	ldr r2, [r3, r2]
 | |
| 	strb r0, [r2, r1]
 | |
| 	bx lr
 | |
| 
 | |
| 	non_word_aligned_thumb_func_start sub_08000152
 | |
| sub_08000152: @ 0x08000152
 | |
| 	lsls r2, r2, #2
 | |
| 	add r3, pc, #0x68
 | |
| 	ldr r3, [r3, r2]
 | |
| 	lsls r0, r0, #1
 | |
| 	ldrh r0, [r3, r0]
 | |
| 	lsrs r2, r2, #2
 | |
| 
 | |
| 	non_word_aligned_thumb_func_start SetTile
 | |
| SetTile: @ 0x0800015E
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	lsls r3, r2, #3
 | |
| 	ldr r4, _08000208 @ =gUnk_08000228
 | |
| 	ldr r5, [r4, r3]
 | |
| 	lsls r6, r1, #1
 | |
| 	ldrh r7, [r5, r6]
 | |
| 	strh r0, [r5, r6]
 | |
| 	ldr r6, _0800020C @ =0x00004000
 | |
| 	cmp r0, r6
 | |
| 	blo _0800019A
 | |
| 	push {r1, r2}
 | |
| 	subs r4, r0, r6
 | |
| 	ldr r3, _08000210 @ =gUnk_080B7910
 | |
| 	ldrb r0, [r3, r4]
 | |
| 	bl sub_080001D0
 | |
| 	ldr r3, _08000214 @ =gUnk_080B79A7
 | |
| 	ldrb r0, [r3, r4]
 | |
| 	lsrs r2, r2, #2
 | |
| 	bl sub_08000148
 | |
| 	pop {r0, r1}
 | |
| 	push {r0, r1}
 | |
| 	bl DeleteLoadedTileEntity
 | |
| 	adds r0, r7, #0
 | |
| 	pop {r1, r2}
 | |
| 	bl sub_0801AF48
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| _0800019A:
 | |
| 	adds r3, #4
 | |
| 	ldr r4, [r4, r3]
 | |
| 	lsls r0, r0, #1
 | |
| 	ldrh r4, [r4, r0]
 | |
| 	push {r1, r2}
 | |
| 	ldr r3, _08000218 @ =gUnk_080B37A0
 | |
| 	ldrb r0, [r3, r4]
 | |
| 	bl sub_080001D0
 | |
| 	ldr r3, _0800021C @ =gUnk_080B3E80
 | |
| 	ldrb r0, [r3, r4]
 | |
| 	lsrs r2, r2, #2
 | |
| 	bl sub_08000148
 | |
| 	pop {r0, r1}
 | |
| 	bl DeleteLoadedTileEntity
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080001C0: .4byte gUnk_0202BEB4
 | |
| _080001C4: .4byte gUnk_0202BEB4
 | |
| _080001C8: .4byte gUnk_02011654
 | |
| _080001CC: .4byte gUnk_0202BEB4
 | |
| 
 | |
| 	thumb_func_start sub_080001D0
 | |
| sub_080001D0: @ 0x080001D0
 | |
| 	lsls r2, r2, #2
 | |
| 	ldr r3, _08000220 @ =gUnk_08000278
 | |
| 	ldr r3, [r3, r2]
 | |
| 	strb r0, [r3, r1]
 | |
| 	bx lr
 | |
| 
 | |
| 	non_word_aligned_thumb_func_start sub_080001DA
 | |
| sub_080001DA: @ 0x080001DA
 | |
| 	lsls r1, r1, #3
 | |
| 	ldr r2, _08000224 @ =gUnk_08000228
 | |
| 	ldr r1, [r2, r1]
 | |
| 	lsls r0, r0, #1
 | |
| 	ldrh r0, [r1, r0]
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _080001E8: .4byte gUnk_02000070
 | |
| _080001EC: .4byte gUnk_02025EB0
 | |
| _080001F0: .4byte gUnk_02019EE0
 | |
| _080001F4: .4byte gUnk_02021F70
 | |
| _080001F8: .4byte gUnk_0200B650
 | |
| _080001FC: .4byte gMapDataTopSpecial
 | |
| _08000200: .4byte gUnk_020344F0
 | |
| _08000204: .4byte gUnk_08000248
 | |
| _08000208: .4byte gUnk_08000228
 | |
| _0800020C: .4byte 0x00004000
 | |
| _08000210: .4byte gUnk_080B7910
 | |
| _08000214: .4byte gUnk_080B79A7
 | |
| _08000218: .4byte gUnk_080B37A0
 | |
| _0800021C: .4byte gUnk_080B3E80
 | |
| _08000220: .4byte gUnk_08000278
 | |
| _08000224: .4byte gUnk_08000228
 | |
| gUnk_08000228::
 | |
| 	.4byte gMapDataBottom
 | |
| gUnk_0800022C::
 | |
| 	.4byte gMetatileTypesBottom
 | |
| 	.4byte gMapDataBottom
 | |
| 	.4byte gMetatileTypesBottom
 | |
| 	.4byte gMapDataTop
 | |
| 	.4byte gMetatileTypesTop
 | |
| 	.4byte gMapDataBottom
 | |
| 	.4byte gMetatileTypesBottom
 | |
| gUnk_08000248::
 | |
| 	.4byte gUnk_02027EB4
 | |
| 	.4byte gUnk_02027EB4
 | |
| 	.4byte gUnk_0200D654
 | |
| 	.4byte gUnk_02027EB4
 | |
| gUnk_08000258::
 | |
| 	.4byte gUnk_02028EB4
 | |
| 	.4byte gMetatileTypesBottom
 | |
| 	.4byte gUnk_02028EB4
 | |
| 	.4byte gMetatileTypesBottom
 | |
| 	.4byte gUnk_0200E654
 | |
| 	.4byte gMetatileTypesTop
 | |
| 	.4byte gUnk_02028EB4
 | |
| 	.4byte gMetatileTypesBottom
 | |
| gUnk_08000278::
 | |
| 	.4byte gUnk_02030EB4
 | |
| 	.4byte gUnk_02030EB4
 | |
| 	.4byte gUnk_02016654
 | |
| 	.4byte gUnk_02030EB4
 | |
| 
 | |
| @ call 0x80B19CC
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_08000288
 | |
| sub_08000288: @ 0x08000288
 | |
| 	ldr r3, _080002F4 @ =gUnk_03005740
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x80B19D8
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_0800028C
 | |
| sub_0800028C: @ 0x0800028C
 | |
| 	ldr r3, _080002F8 @ =gUnk_0300574C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x80B19EC
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_08000290
 | |
| sub_08000290: @ 0x08000290
 | |
| 	ldr r3, _080002FC @ =gUnk_03005760
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x80B19FC
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_08000294
 | |
| sub_08000294: @ 0x08000294
 | |
| 	ldr r3, _08000300 @ =gUnk_03005770
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x80B1A04
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_08000298
 | |
| sub_08000298: @ 0x08000298
 | |
| 	ldr r3, _08000304 @ =gUnk_03005778
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x80B1A0C
 | |
| @ r0: entity*
 | |
| @ r1: s32
 | |
| @ r2: s32
 | |
| 	thumb_func_start sub_0800029C
 | |
| sub_0800029C: @ 0x0800029C
 | |
| 	ldr r3, _08000308 @ =gUnk_03005780
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A28
 | |
| @ r0: entity
 | |
| @ return: u32 (tileType)
 | |
| 	thumb_func_start GetTileTypeByEntity
 | |
| GetTileTypeByEntity: @ 0x080002A0
 | |
| 	ldr r3, _0800030C @ =gUnk_0300579C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A34
 | |
| @ r0: s32 (xPos)
 | |
| @ r1: s32 (yPos)
 | |
| @ r2: u32 (layer)
 | |
| @ return: u32 (tileType)
 | |
| 	thumb_func_start GetTileTypeByPos
 | |
| GetTileTypeByPos: @ 0x080002A4
 | |
| 	ldr r3, _08000310 @ =gUnk_030057A8
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A48
 | |
| @ r0: s32 (xPos)
 | |
| @ r1: s32 (yPos)
 | |
| @ r2: u32 (layer)
 | |
| 	thumb_func_start sub_080002A8
 | |
| sub_080002A8: @ 0x080002A8
 | |
| 	ldr r3, _08000314 @ =gUnk_030057BC
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A58
 | |
| @ r0: s32 (xPos)
 | |
| @ r1: s32 (yPos)
 | |
| @ r2: u32 (layer)
 | |
| 	thumb_func_start sub_080002AC
 | |
| sub_080002AC: @ 0x080002AC
 | |
| 	ldr r3, _08000318 @ =gUnk_030057CC
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A60
 | |
| @ r0: u32 (tileIndex)
 | |
| @ r1: u32 (layer)
 | |
| @ return: u32 (tileType)
 | |
| 	thumb_func_start GetTileType
 | |
| GetTileType: @ 0x080002B0
 | |
| 	ldr r3, _0800031C @ =gUnk_030057D4
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1A8C
 | |
| @ r0: Entity*
 | |
| @ r1: u32
 | |
| @ r2: u32
 | |
| 	thumb_func_start sub_080002B4
 | |
| sub_080002B4: @ 0x080002B4
 | |
| 	ldr r3, _08000320 @ =gUnk_03005800
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AA8
 | |
| @ r0:
 | |
| @ r1:
 | |
| @ r2:
 | |
| @ return: 
 | |
| @ ========
 | |
| @ Called every frame a pot is thrown, every frame the screen is sliding in a transition, and once when entering stairs.
 | |
| 	thumb_func_start sub_080002B8
 | |
| sub_080002B8: @ 0x080002B8
 | |
| 	ldr r3, _08000324 @ =gUnk_0300581C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AB4
 | |
| @ r0: s32 (xPos)
 | |
| @ r1: s32 (yPos)
 | |
| @ r2: u32 (layer)
 | |
| 	thumb_func_start sub_080002BC
 | |
| sub_080002BC: @ 0x080002BC
 | |
| 	ldr r3, _08000328 @ =gUnk_03005828
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AC8
 | |
| @ r0: u32
 | |
| @ r1: u32
 | |
| @ r2: u32
 | |
| @ return: ???
 | |
| 	thumb_func_start sub_080002C0
 | |
| sub_080002C0: @ 0x080002C0
 | |
| 	ldr r3, _0800032C @ =gUnk_0300583C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AD8
 | |
| @ r0: Entity*
 | |
| @ r1: s32 (xOffset)
 | |
| @ r2: s32 (yOffset)
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_080002C4
 | |
| sub_080002C4: @ 0x080002C4
 | |
| 	ldr r3, _08000330 @ =gUnk_0300584C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AE0
 | |
| @ r0: u32 (tileIndex)
 | |
| @ r1: u32 (layer)
 | |
| 	thumb_func_start sub_080002C8
 | |
| sub_080002C8: @ 0x080002C8
 | |
| 	ldr r3, _08000334 @ =gUnk_03005854
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1AF0
 | |
| @ r0: Entity*
 | |
| @ r1: ???
 | |
| @ r2: ???
 | |
| 	thumb_func_start sub_080002CC
 | |
| sub_080002CC: @ 0x080002CC
 | |
| 	ldr r3, _08000338 @ =gUnk_03005864
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B0C
 | |
| @ r0: Entity*
 | |
| 	thumb_func_start sub_080002D0
 | |
| sub_080002D0: @ 0x080002D0
 | |
| 	ldr r3, _0800033C @ =gUnk_03005880
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B18
 | |
| @ r0: s32 (xPos)
 | |
| @ r1: s32 (yPos)
 | |
| @ r2: u32 (layer)
 | |
| 	thumb_func_start sub_080002D4
 | |
| sub_080002D4: @ 0x080002D4
 | |
| 	ldr r3, _08000340 @ =gUnk_0300588C
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B2C
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_080002D8
 | |
| sub_080002D8: @ 0x080002D8
 | |
| 	ldr r3, _08000344 @ =gUnk_030058A0
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B3C
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_080002DC
 | |
| sub_080002DC: @ 0x080002DC
 | |
| 	ldr r3, _08000348 @ =gUnk_030058B0
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B44
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_080002E0
 | |
| sub_080002E0: @ 0x080002E0
 | |
| 	ldr r3, _0800034C @ =gUnk_030058B8
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B54
 | |
| @ r0: u32 (tileIndex)
 | |
| 	thumb_func_start sub_080002E4
 | |
| sub_080002E4: @ 0x080002E4
 | |
| 	ldr r3, _08000350 @ =gUnk_030058C8
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B68
 | |
| @ ========
 | |
| @ Unused? Doesn't seem to be called by anything in Ghidra.
 | |
| 	thumb_func_start sub_080002E8
 | |
| sub_080002E8: @ 0x080002E8
 | |
| 	ldr r3, _08000354 @ =gUnk_030058DC
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1B84
 | |
| @ r0: u32 (tileIndex)
 | |
| @ r1: u32 (layer)
 | |
| 	thumb_func_start sub_080002EC
 | |
| sub_080002EC: @ 0x080002EC
 | |
| 	ldr r3, _08000358 @ =gUnk_030058F8
 | |
| 	bx r3
 | |
| 
 | |
| @ call 0x080B1BA4
 | |
| @ r0: u32 (tileIndex)
 | |
| @ r1: u32 (layer)
 | |
| @ r2: ???
 | |
| 	thumb_func_start sub_080002F0
 | |
| sub_080002F0: @ 0x080002F0
 | |
| 	ldr r3, _0800035C @ =gUnk_03005918
 | |
| 	bx r3
 | |
| 
 | |
| _080002F4: .4byte gUnk_03005740
 | |
| _080002F8: .4byte gUnk_0300574C
 | |
| _080002FC: .4byte gUnk_03005760
 | |
| _08000300: .4byte gUnk_03005770
 | |
| _08000304: .4byte gUnk_03005778
 | |
| _08000308: .4byte gUnk_03005780
 | |
| _0800030C: .4byte gUnk_0300579C
 | |
| _08000310: .4byte gUnk_030057A8
 | |
| _08000314: .4byte gUnk_030057BC
 | |
| _08000318: .4byte gUnk_030057CC
 | |
| _0800031C: .4byte gUnk_030057D4
 | |
| _08000320: .4byte gUnk_03005800
 | |
| _08000324: .4byte gUnk_0300581C
 | |
| _08000328: .4byte gUnk_03005828
 | |
| _0800032C: .4byte gUnk_0300583C
 | |
| _08000330: .4byte gUnk_0300584C
 | |
| _08000334: .4byte gUnk_03005854
 | |
| _08000338: .4byte gUnk_03005864
 | |
| _0800033C: .4byte gUnk_03005880
 | |
| _08000340: .4byte gUnk_0300588C
 | |
| _08000344: .4byte gUnk_030058A0
 | |
| _08000348: .4byte gUnk_030058B0
 | |
| _0800034C: .4byte gUnk_030058B8
 | |
| _08000350: .4byte gUnk_030058C8
 | |
| _08000354: .4byte gUnk_030058DC
 | |
| _08000358: .4byte gUnk_030058F8
 | |
| _0800035C: .4byte gUnk_03005918
 |