1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sine
@ s16 sine(s16 t, s16 amplitude)
sine: @ 806F534
lsls r1, 16
asrs r1, 16
ldr r2, =gUnknown_08329F40
lsls r0, 16
asrs r0, 15
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
muls r0, r1
lsls r0, 8
asrs r0, 16
bx lr
.pool
thumb_func_end sine
thumb_func_start cosine
@ s16 cosine(s16 t, s16 amplitude)
cosine: @ 806F550
lsls r1, 16
asrs r1, 16
ldr r2, =gUnknown_08329F40
lsls r0, 16
asrs r0, 15
adds r0, 0x80
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
muls r0, r1
lsls r0, 8
asrs r0, 16
bx lr
.pool
thumb_func_end cosine
thumb_func_start sine2
@ s16 sine2(u16 angle)
sine2: @ 806F570
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r5, 0
movs r1, 0xB4
bl __umodsi3
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0xB4
bl __udivsi3
movs r1, 0x1
ands r0, r1
ldr r1, =gUnknown_0832A1C0
lsls r4, 1
adds r4, r1
ldrh r1, [r4]
cmp r0, 0
bne _0806F5A8
lsls r0, r1, 16
b _0806F5AC
.pool
_0806F5A8:
lsls r0, r1, 16
negs r0, r0
_0806F5AC:
asrs r0, 16
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sine2
thumb_func_start cosine2
@ s16 cosine2(u16 angle)
cosine2: @ 806F5B4
push {lr}
lsls r0, 16
movs r1, 0xB4
lsls r1, 15
adds r0, r1
lsrs r0, 16
bl sine2
lsls r0, 16
asrs r0, 16
pop {r1}
bx r1
thumb_func_end cosine2
.align 2, 0 @ Don't pad with nop.
|