summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/rom3.s6
-rw-r--r--asm/rom5.s116
-rw-r--r--asm/rom_8040EB4.s4
-rw-r--r--data/data2.s8
-rw-r--r--data/sine_degree_table.s183
-rw-r--r--data/sine_table.s323
6 files changed, 573 insertions, 67 deletions
diff --git a/asm/rom3.s b/asm/rom3.s
index d0604fed6..976d7599e 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -110243,7 +110243,7 @@ sine: @ 8040DEC
asrs r0, 16
bx lr
.align 2, 0
-_08040E04: .4byte gUnknown_08208344
+_08040E04: .4byte gSineTable
thumb_func_end sine
thumb_func_start cosine
@@ -110262,7 +110262,7 @@ cosine: @ 8040E08
asrs r0, 16
bx lr
.align 2, 0
-_08040E24: .4byte gUnknown_08208344
+_08040E24: .4byte gSineTable
thumb_func_end cosine
thumb_func_start sine2
@@ -110291,7 +110291,7 @@ sine2: @ 8040E28
lsls r0, r1, 16
b _08040E64
.align 2, 0
-_08040E5C: .4byte gUnknown_082085C4
+_08040E5C: .4byte gSineDegreeTable
_08040E60:
lsls r0, r1, 16
negs r0, r0
diff --git a/asm/rom5.s b/asm/rom5.s
index f04ff84fe..b215b7a45 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -5785,7 +5785,7 @@ _0807DB08:
strh r0, [r4]
b _0807DB54
.align 2, 0
-_0807DB10: .4byte gUnknown_08208344
+_0807DB10: .4byte gSineTable
_0807DB14: .4byte 0x0000073c
_0807DB18: .4byte 0x0000073e
_0807DB1C:
@@ -8261,7 +8261,7 @@ _0807EDAC:
subs r0, r1
b _0807EDD8
.align 2, 0
-_0807EDC0: .4byte gUnknown_08208344
+_0807EDC0: .4byte gSineTable
_0807EDC4: .4byte 0x030024d0
_0807EDC8: .4byte 0x000001ff
_0807EDCC: .4byte 0xffffff00
@@ -10710,7 +10710,7 @@ sub_8080064: @ 8080064
.align 2, 0
_080800C8: .4byte gUnknown_08396FC4
_080800CC: .4byte 0x00000704
-_080800D0: .4byte gUnknown_08208344
+_080800D0: .4byte gSineTable
_080800D4: .4byte 0x00000712
_080800D8: .4byte 0x030024d0
_080800DC: .4byte 0x0000070e
@@ -11142,7 +11142,7 @@ _08080426:
pop {r0}
bx r0
.align 2, 0
-_0808042C: .4byte gUnknown_08208344
+_0808042C: .4byte gSineTable
thumb_func_end sub_80803BC
thumb_func_start sub_8080430
@@ -30636,7 +30636,7 @@ _08089924:
pop {r0}
bx r0
.align 2, 0
-_08089940: .4byte gUnknown_08208344
+_08089940: .4byte gSineTable
thumb_func_end sub_80898FC
thumb_func_start sub_8089944
@@ -41213,7 +41213,7 @@ _0808EE94:
strh r0, [r4, 0x2E]
b _0808EEF8
.align 2, 0
-_0808EEE4: .4byte gUnknown_08208344
+_0808EEE4: .4byte gSineTable
_0808EEE8: .4byte 0x0000ffff
_0808EEEC:
adds r2, r4, 0
@@ -41422,7 +41422,7 @@ _0808F040:
ands r0, r1
b _0808F082
.align 2, 0
-_0808F078: .4byte gUnknown_08208344
+_0808F078: .4byte gSineTable
_0808F07C:
ldrb r0, [r2]
movs r1, 0x4
@@ -41548,7 +41548,7 @@ _0808F158:
bx r0
.align 2, 0
_0808F160: .4byte 0x0000062c
-_0808F164: .4byte gUnknown_08208344
+_0808F164: .4byte gSineTable
thumb_func_end sub_808F0B4
thumb_func_start sub_808F168
@@ -41624,7 +41624,7 @@ _0808F1E4:
.align 2, 0
_0808F1F0: .4byte 0x0000064a
_0808F1F4: .4byte 0x00000652
-_0808F1F8: .4byte gUnknown_08208344
+_0808F1F8: .4byte gSineTable
_0808F1FC:
adds r0, r3, 0
adds r0, 0x3E
@@ -49370,7 +49370,7 @@ _08093066:
strh r0, [r4, 0x32]
b _08093084
.align 2, 0
-_08093074: .4byte gUnknown_08208344
+_08093074: .4byte gSineTable
_08093078:
adds r0, r4, 0
adds r0, 0x3E
@@ -62499,7 +62499,7 @@ _08099800:
.align 2, 0
_08099808: .4byte 0x000010c8
_0809980C: .4byte 0x00001034
-_08099810: .4byte gUnknown_08208344
+_08099810: .4byte gSineTable
_08099814: .4byte sub_80999C4
_08099818: .4byte SpriteCallbackDummy
thumb_func_end sub_809971C
@@ -166961,7 +166961,7 @@ sub_80CC580: @ 80CC580
ble _080CC5F0
b _080CC5EA
.align 2, 0
-_080CC5D4: .4byte gUnknown_08208344
+_080CC5D4: .4byte gSineTable
_080CC5D8:
movs r1, 0x24
ldrsh r0, [r4, r1]
@@ -171731,7 +171731,7 @@ _080CE9FA:
pop {r0}
bx r0
.align 2, 0
-_080CEA00: .4byte gUnknown_08208344
+_080CEA00: .4byte gSineTable
thumb_func_end sub_80CE974
thumb_func_start sub_80CEA04
@@ -172753,7 +172753,7 @@ _080CF1C0:
pop {r0}
bx r0
.align 2, 0
-_080CF1C4: .4byte gUnknown_08208344
+_080CF1C4: .4byte gSineTable
thumb_func_end sub_80CF158
thumb_func_start sub_80CF1C8
@@ -183870,7 +183870,7 @@ _080D4786:
pop {r0}
bx r0
.align 2, 0
-_080D47B8: .4byte gUnknown_08208344
+_080D47B8: .4byte gSineTable
_080D47BC: .4byte gSpriteTemplate_83D9378
_080D47C0: .4byte 0x02020004
_080D47C4: .4byte sub_80D47D0
@@ -187638,7 +187638,7 @@ _080D6442:
pop {r0}
bx r0
.align 2, 0
-_080D647C: .4byte gUnknown_08208344
+_080D647C: .4byte gSineTable
_080D6480: .4byte 0x03004b00
_080D6484: .4byte 0x030027f0
_080D6488: .4byte sub_80DA48C
@@ -192299,7 +192299,7 @@ _080D8896:
subs r0, 0x8
b _080D88C8
.align 2, 0
-_080D88C0: .4byte gUnknown_08208344
+_080D88C0: .4byte gSineTable
_080D88C4:
ldrh r0, [r4, 0x38]
adds r0, 0x8
@@ -192380,7 +192380,7 @@ _080D893A:
bl obj_translate_based_on_private_1_2_3_4
b _080D8AD0
.align 2, 0
-_080D8964: .4byte gUnknown_08208344
+_080D8964: .4byte gSineTable
_080D8968:
adds r0, r4, 0
bl sub_8078B5C
@@ -192430,7 +192430,7 @@ _080D8968:
asrs r1, 24
b _080D89DC
.align 2, 0
-_080D89C8: .4byte gUnknown_08208344
+_080D89C8: .4byte gSineTable
_080D89CC: .4byte 0x03001770
_080D89D0: .4byte 0x0000043d
_080D89D4:
@@ -196183,7 +196183,7 @@ _080DA678:
pop {r0}
bx r0
.align 2, 0
-_080DA6E4: .4byte gUnknown_08208344
+_080DA6E4: .4byte gSineTable
_080DA6E8: .4byte 0x030027f0
_080DA6EC: .4byte sub_80DA6F0
thumb_func_end sub_80DA4D8
@@ -196993,7 +196993,7 @@ _080DAC52:
strh r0, [r2, 0x2]
b _080DACFE
.align 2, 0
-_080DACE0: .4byte gUnknown_08208344
+_080DACE0: .4byte gSineTable
_080DACE4: .4byte 0x030027f0
_080DACE8:
mov r1, r12
@@ -197261,7 +197261,7 @@ _080DAEF2:
bx r0
.align 2, 0
_080DAEFC: .4byte 0x0202f7c9
-_080DAF00: .4byte gUnknown_08208344
+_080DAF00: .4byte gSineTable
_080DAF04: .4byte 0x030027f0
_080DAF08: .4byte sub_80DAF0C
thumb_func_end sub_80DAD84
@@ -200070,7 +200070,7 @@ _080DC448:
adds r0, r3, r0
b _080DC484
.align 2, 0
-_080DC470: .4byte gUnknown_08208344
+_080DC470: .4byte gSineTable
_080DC474: .4byte 0x03004de0
_080DC478:
cmp r3, 0
@@ -200329,7 +200329,7 @@ _080DC626:
bne _080DC6F8
b _080DC6DA
.align 2, 0
-_080DC674: .4byte gUnknown_08208344
+_080DC674: .4byte gSineTable
_080DC678:
ldrh r0, [r4, 0xA]
subs r0, 0x4
@@ -200368,7 +200368,7 @@ _080DC678:
bne _080DC6F8
b _080DC6DA
.align 2, 0
-_080DC6C4: .4byte gUnknown_08208344
+_080DC6C4: .4byte gSineTable
_080DC6C8:
movs r0, 0x26
ldrsh r1, [r4, r0]
@@ -204458,7 +204458,7 @@ _080DE698:
bx r0
.align 2, 0
_080DE6A0: .4byte 0x03004b20
-_080DE6A4: .4byte gUnknown_08208344
+_080DE6A4: .4byte gSineTable
_080DE6A8: .4byte 0x04000052
_080DE6AC: .4byte sub_80DE6B0
thumb_func_end sub_80DE61C
@@ -207067,7 +207067,7 @@ _080DFB06:
bx r0
.align 2, 0
_080DFB1C: .4byte 0x03004de0
-_080DFB20: .4byte gUnknown_08208344
+_080DFB20: .4byte gSineTable
_080DFB24: .4byte 0x03004dc0
thumb_func_end sub_80DFAB0
@@ -210150,7 +210150,7 @@ _080E137E:
ldr r1, _080E13A4
b _080E13AA
.align 2, 0
-_080E13A0: .4byte gUnknown_08208344
+_080E13A0: .4byte gSineTable
_080E13A4: .4byte 0x030041b4
_080E13A8:
ldr r1, _080E13CC
@@ -225056,7 +225056,7 @@ sub_80E85F8: @ 80E85F8
strh r0, [r5, 0x38]
b _080E863A
.align 2, 0
-_080E8620: .4byte gUnknown_08208344
+_080E8620: .4byte gSineTable
_080E8624:
ldr r1, _080E8688
movs r2, 0x30
@@ -225109,7 +225109,7 @@ _080E863A:
beq _080E869E
b _080E871A
.align 2, 0
-_080E8688: .4byte gUnknown_08208344
+_080E8688: .4byte gSineTable
_080E868C: .4byte 0x04000052
_080E8690: .4byte gUnknown_083DB694
_080E8694:
@@ -244420,7 +244420,7 @@ _080F2040: .4byte 0x00000311
_080F2044: .4byte 0x04000044
_080F2048: .4byte 0x00006dad
_080F204C: .4byte 0x04000054
-_080F2050: .4byte gUnknown_08208344
+_080F2050: .4byte gSineTable
_080F2054: .4byte 0x00000312
_080F2058:
cmp r0, 0x2
@@ -251411,7 +251411,7 @@ _080F5658:
bx r0
.align 2, 0
_080F5674: .4byte gUnknown_083E4890
-_080F5678: .4byte gUnknown_08208344
+_080F5678: .4byte gSineTable
thumb_func_end sub_80F55AC
thumb_func_start sub_80F567C
@@ -263432,7 +263432,7 @@ sub_80FB170: @ 80FB170
bx r0
.align 2, 0
_080FB230: .4byte 0x020388cc
-_080FB234: .4byte gUnknown_08208344
+_080FB234: .4byte gSineTable
thumb_func_end sub_80FB170
thumb_func_start sub_80FB238
@@ -309438,7 +309438,7 @@ _0811115C:
b _0811126C
.align 2, 0
_081111C0: .4byte 0x0000061c
-_081111C4: .4byte gUnknown_08208344
+_081111C4: .4byte gSineTable
_081111C8: .4byte 0x0000061a
_081111CC: .4byte 0x04000052
_081111D0: .4byte 0x00000616
@@ -327792,7 +327792,7 @@ _0811A6BE:
.align 2, 0
_0811A6CC: .4byte 0xffff0000
_0811A6D0: .4byte 0x0000ffff
-_0811A6D4: .4byte gUnknown_08208344
+_0811A6D4: .4byte gSineTable
thumb_func_end sub_811A534
thumb_func_start sub_811A6D8
@@ -366036,7 +366036,7 @@ sub_812CD64: @ 812CD64
bl move_anim_8072740
b _0812CDC2
.align 2, 0
-_0812CDAC: .4byte gUnknown_08208344
+_0812CDAC: .4byte gSineTable
_0812CDB0:
lsls r0, r1, 16
asrs r0, 16
@@ -371251,7 +371251,7 @@ _0812F636:
.align 2, 0
_0812F660: .4byte 0x03004dc0
_0812F664: .4byte 0x03004de0
-_0812F668: .4byte gUnknown_08208344
+_0812F668: .4byte gSineTable
_0812F66C: .4byte 0xffff0000
_0812F670:
ldrh r0, [r6, 0x10]
@@ -374086,7 +374086,7 @@ _08130BBC:
_08130BF4:
b _08130CEA
.align 2, 0
-_08130BF8: .4byte gUnknown_08208344
+_08130BF8: .4byte gSineTable
_08130BFC:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -374128,7 +374128,7 @@ _08130C0E:
bne _08130D18
b _08130CEE
.align 2, 0
-_08130C48: .4byte gUnknown_08208344
+_08130C48: .4byte gSineTable
_08130C4C:
ldrh r2, [r4, 0x30]
adds r2, 0x1
@@ -374175,7 +374175,7 @@ _08130C98:
bne _08130D18
b _08130CEA
.align 2, 0
-_08130CA4: .4byte gUnknown_08208344
+_08130CA4: .4byte gSineTable
_08130CA8: .4byte 0x000003ff
_08130CAC: .4byte 0xfffffc00
_08130CB0:
@@ -375440,7 +375440,7 @@ _0813161C:
strh r5, [r4, 0x26]
b _081316B0
.align 2, 0
-_08131658: .4byte gUnknown_08208344
+_08131658: .4byte gSineTable
_0813165C:
ldrh r1, [r4, 0x30]
adds r1, 0x6
@@ -375464,7 +375464,7 @@ _0813165C:
strh r3, [r4, 0x26]
b _081316B0
.align 2, 0
-_08131688: .4byte gUnknown_08208344
+_08131688: .4byte gSineTable
_0813168C:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -376999,7 +376999,7 @@ _08132242:
b _081322FC
.align 2, 0
_081322B4: .4byte 0x02020004
-_081322B8: .4byte gUnknown_08208344
+_081322B8: .4byte gSineTable
_081322BC:
ldrh r0, [r4, 0x1E]
adds r0, 0x8
@@ -377040,7 +377040,7 @@ _081322FC:
b _08132312
.align 2, 0
_08132304: .4byte 0x02020004
-_08132308: .4byte gUnknown_08208344
+_08132308: .4byte gSineTable
_0813230C:
adds r0, r2, 0
bl move_anim_task_del
@@ -399082,7 +399082,7 @@ _0813D352:
pop {r0}
bx r0
.align 2, 0
-_0813D364: .4byte gUnknown_08208344
+_0813D364: .4byte gSineTable
thumb_func_end sub_813D220
thumb_func_start sub_813D368
@@ -399161,7 +399161,7 @@ _0813D3F6:
strh r0, [r4, 0x26]
b _0813D408
.align 2, 0
-_0813D3FC: .4byte gUnknown_08208344
+_0813D3FC: .4byte gSineTable
_0813D400:
movs r0, 0
strh r0, [r4, 0x36]
@@ -399227,7 +399227,7 @@ _0813D468:
strh r0, [r1, 0x26]
b _0813D478
.align 2, 0
-_0813D470: .4byte gUnknown_08208344
+_0813D470: .4byte gSineTable
_0813D474:
ldr r0, _0813D480
str r0, [r1, 0x1C]
@@ -400130,7 +400130,7 @@ _0813DB40:
adds r0, 0x8
b _0813DB68
.align 2, 0
-_0813DB60: .4byte gUnknown_08208344
+_0813DB60: .4byte gSineTable
_0813DB64:
adds r0, r1, 0
adds r0, 0x20
@@ -401275,7 +401275,7 @@ _0813E3EE:
bl SetOamMatrix
b _0813E4AC
.align 2, 0
-_0813E418: .4byte gUnknown_08208344
+_0813E418: .4byte gSineTable
_0813E41C:
ldrb r1, [r4, 0x1]
movs r0, 0x4
@@ -401356,7 +401356,7 @@ _0813E4AC:
pop {r0}
bx r0
.align 2, 0
-_0813E4B4: .4byte gUnknown_08208344
+_0813E4B4: .4byte gSineTable
thumb_func_end sub_813E30C
thumb_func_start sub_813E4B8
@@ -401460,7 +401460,7 @@ _0813E574:
pop {r0}
bx r0
.align 2, 0
-_0813E57C: .4byte gUnknown_08208344
+_0813E57C: .4byte gSineTable
thumb_func_end sub_813E4B8
thumb_func_start sub_813E580
@@ -401629,7 +401629,7 @@ _0813E6B2:
bx r0
.align 2, 0
_0813E6B8: .4byte 0x02020004
-_0813E6BC: .4byte gUnknown_08208344
+_0813E6BC: .4byte gSineTable
thumb_func_end sub_813E5E0
thumb_func_start sub_813E6C0
@@ -401935,7 +401935,7 @@ _0813E8DC:
b _0813E922
.align 2, 0
_0813E904: .4byte 0x02020004
-_0813E908: .4byte gUnknown_08208344
+_0813E908: .4byte gSineTable
_0813E90C: .4byte 0x000001ff
_0813E910:
movs r2, 0x2E
@@ -402116,7 +402116,7 @@ _0813EA50:
bx r0
.align 2, 0
_0813EA58: .4byte 0x02020004
-_0813EA5C: .4byte gUnknown_08208344
+_0813EA5C: .4byte gSineTable
thumb_func_end GetCurrentTrainerHillMapId
thumb_func_start sub_813EA60
@@ -402401,7 +402401,7 @@ _0813EC80:
bx r0
.align 2, 0
_0813EC88: .4byte 0x02020004
-_0813EC8C: .4byte gUnknown_08208344
+_0813EC8C: .4byte gSineTable
thumb_func_end sub_813EBBC
thumb_func_start sub_813EC90
@@ -402552,7 +402552,7 @@ _0813EDA0:
.align 2, 0
_0813EDB0: .4byte 0x02020004
_0813EDB4: .4byte gSpriteTemplate_840B1B0
-_0813EDB8: .4byte gUnknown_08208344
+_0813EDB8: .4byte gSineTable
thumb_func_end sub_813EC90
thumb_func_start sub_813EDBC
@@ -402684,7 +402684,7 @@ _0813EE7A:
pop {r0}
bx r0
.align 2, 0
-_0813EEB0: .4byte gUnknown_08208344
+_0813EEB0: .4byte gSineTable
thumb_func_end sub_813EDFC
thumb_func_start sub_813EEB4
@@ -412010,7 +412010,7 @@ _081438BA:
pop {r0}
bx r0
.align 2, 0
-_081438C0: .4byte gUnknown_08208344
+_081438C0: .4byte gSineTable
thumb_func_end sub_814386C
thumb_func_start sub_81438C4
diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s
index 73c65e18c..9a0a998c2 100644
--- a/asm/rom_8040EB4.s
+++ b/asm/rom_8040EB4.s
@@ -13119,7 +13119,7 @@ _08047530:
b _0804755A
.align 2, 0
_08047544: .4byte 0x02020004
-_08047548: .4byte gUnknown_08208344
+_08047548: .4byte gSineTable
_0804754C:
ldrh r0, [r4, 0x38]
strh r0, [r5, 0x20]
@@ -32696,7 +32696,7 @@ _08051628:
pop {r0}
bx r0
.align 2, 0
-_08051638: .4byte gUnknown_08208344
+_08051638: .4byte gSineTable
_0805163C: .4byte 0x02020004
_08051640: .4byte 0x03004854
_08051644: .4byte gSpriteTemplate_82164FC
diff --git a/data/data2.s b/data/data2.s
index daf2743f5..d66b59b3a 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -1759,11 +1759,11 @@ gUnknown_0820831A:: @ 820831A
gUnknown_08208337:: @ 8208337
.string "ニドラン♀$", 13
-gUnknown_08208344:: @ 8208344
- .incbin "baserom.gba", 0x00208344, 0x280
+@ 8208344
+ .include "data/sine_table.s"
-gUnknown_082085C4:: @ 82085C4
- .incbin "baserom.gba", 0x002085c4, 0x168
+@ 82085C4
+ .include "data/sine_degree_table.s"
gUnknown_0820872C:: @ 820872C
.incbin "baserom.gba", 0x0020872c, 0x80
diff --git a/data/sine_degree_table.s b/data/sine_degree_table.s
new file mode 100644
index 000000000..a9cf05b62
--- /dev/null
+++ b/data/sine_degree_table.s
@@ -0,0 +1,183 @@
+@ values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179°
+ .align 1
+gSineDegreeTable:: @ 82085C4
+ .2byte 0x0000 @ sin(0°) = 0
+ .2byte 0x0047 @ sin(1°) = 0.017333984375
+ .2byte 0x008F @ sin(2°) = 0.034912109375
+ .2byte 0x00D6 @ sin(3°) = 0.05224609375
+ .2byte 0x011E @ sin(4°) = 0.06982421875
+ .2byte 0x0165 @ sin(5°) = 0.087158203125
+ .2byte 0x01AC @ sin(6°) = 0.1044921875
+ .2byte 0x01F3 @ sin(7°) = 0.121826171875
+ .2byte 0x023A @ sin(8°) = 0.13916015625
+ .2byte 0x0281 @ sin(9°) = 0.156494140625
+ .2byte 0x02C7 @ sin(10°) = 0.173583984375
+ .2byte 0x030E @ sin(11°) = 0.19091796875
+ .2byte 0x0354 @ sin(12°) = 0.2080078125
+ .2byte 0x0399 @ sin(13°) = 0.224853515625
+ .2byte 0x03DF @ sin(14°) = 0.241943359375
+ .2byte 0x0424 @ sin(15°) = 0.2587890625
+ .2byte 0x0469 @ sin(16°) = 0.275634765625
+ .2byte 0x04AE @ sin(17°) = 0.29248046875
+ .2byte 0x04F2 @ sin(18°) = 0.30908203125
+ .2byte 0x0536 @ sin(19°) = 0.32568359375
+ .2byte 0x0579 @ sin(20°) = 0.342041015625
+ .2byte 0x05BC @ sin(21°) = 0.3583984375
+ .2byte 0x05FE @ sin(22°) = 0.37451171875
+ .2byte 0x0640 @ sin(23°) = 0.390625
+ .2byte 0x0682 @ sin(24°) = 0.40673828125
+ .2byte 0x06C3 @ sin(25°) = 0.422607421875
+ .2byte 0x0704 @ sin(26°) = 0.4384765625
+ .2byte 0x0744 @ sin(27°) = 0.4541015625
+ .2byte 0x0783 @ sin(28°) = 0.469482421875
+ .2byte 0x07C2 @ sin(29°) = 0.48486328125
+ .2byte 0x0800 @ sin(30°) = 0.5
+ .2byte 0x083E @ sin(31°) = 0.51513671875
+ .2byte 0x087B @ sin(32°) = 0.530029296875
+ .2byte 0x08B7 @ sin(33°) = 0.544677734375
+ .2byte 0x08F2 @ sin(34°) = 0.55908203125
+ .2byte 0x092D @ sin(35°) = 0.573486328125
+ .2byte 0x0968 @ sin(36°) = 0.587890625
+ .2byte 0x09A1 @ sin(37°) = 0.601806640625
+ .2byte 0x09DA @ sin(38°) = 0.61572265625
+ .2byte 0x0A12 @ sin(39°) = 0.62939453125
+ .2byte 0x0A49 @ sin(40°) = 0.642822265625
+ .2byte 0x0A7F @ sin(41°) = 0.656005859375
+ .2byte 0x0AB5 @ sin(42°) = 0.669189453125
+ .2byte 0x0AE9 @ sin(43°) = 0.681884765625
+ .2byte 0x0B1D @ sin(44°) = 0.694580078125
+ .2byte 0x0B50 @ sin(45°) = 0.70703125
+ .2byte 0x0B82 @ sin(46°) = 0.71923828125
+ .2byte 0x0BB4 @ sin(47°) = 0.7314453125
+ .2byte 0x0BE4 @ sin(48°) = 0.7431640625
+ .2byte 0x0C13 @ sin(49°) = 0.754638671875
+ .2byte 0x0C42 @ sin(50°) = 0.76611328125
+ .2byte 0x0C6F @ sin(51°) = 0.777099609375
+ .2byte 0x0C9C @ sin(52°) = 0.7880859375
+ .2byte 0x0CC7 @ sin(53°) = 0.798583984375
+ .2byte 0x0CF2 @ sin(54°) = 0.80908203125
+ .2byte 0x0D1B @ sin(55°) = 0.819091796875
+ .2byte 0x0D44 @ sin(56°) = 0.8291015625
+ .2byte 0x0D6B @ sin(57°) = 0.838623046875
+ .2byte 0x0D92 @ sin(58°) = 0.84814453125
+ .2byte 0x0DB7 @ sin(59°) = 0.857177734375
+ .2byte 0x0DDB @ sin(60°) = 0.865966796875
+ .2byte 0x0DFE @ sin(61°) = 0.87451171875
+ .2byte 0x0E21 @ sin(62°) = 0.883056640625
+ .2byte 0x0E42 @ sin(63°) = 0.89111328125
+ .2byte 0x0E61 @ sin(64°) = 0.898681640625
+ .2byte 0x0E80 @ sin(65°) = 0.90625
+ .2byte 0x0E9E @ sin(66°) = 0.91357421875
+ .2byte 0x0EBA @ sin(67°) = 0.92041015625
+ .2byte 0x0ED6 @ sin(68°) = 0.92724609375
+ .2byte 0x0EF0 @ sin(69°) = 0.93359375
+ .2byte 0x0F09 @ sin(70°) = 0.939697265625
+ .2byte 0x0F21 @ sin(71°) = 0.945556640625
+ .2byte 0x0F38 @ sin(72°) = 0.951171875
+ .2byte 0x0F4D @ sin(73°) = 0.956298828125
+ .2byte 0x0F61 @ sin(74°) = 0.961181640625
+ .2byte 0x0F74 @ sin(75°) = 0.9658203125
+ .2byte 0x0F86 @ sin(76°) = 0.97021484375
+ .2byte 0x0F97 @ sin(77°) = 0.974365234375
+ .2byte 0x0FA6 @ sin(78°) = 0.97802734375
+ .2byte 0x0FB5 @ sin(79°) = 0.981689453125
+ .2byte 0x0FC2 @ sin(80°) = 0.98486328125
+ .2byte 0x0FCE @ sin(81°) = 0.98779296875
+ .2byte 0x0FD8 @ sin(82°) = 0.990234375
+ .2byte 0x0FE1 @ sin(83°) = 0.992431640625
+ .2byte 0x0FE9 @ sin(84°) = 0.994384765625
+ .2byte 0x0FF0 @ sin(85°) = 0.99609375
+ .2byte 0x0FF6 @ sin(86°) = 0.99755859375
+ .2byte 0x0FFA @ sin(87°) = 0.99853515625
+ .2byte 0x0FFD @ sin(88°) = 0.999267578125
+ .2byte 0x0FFF @ sin(89°) = 0.999755859375
+ .2byte 0x1000 @ sin(90°) = 1
+ .2byte 0x0FFF @ sin(91°) = 0.999755859375
+ .2byte 0x0FFD @ sin(92°) = 0.999267578125
+ .2byte 0x0FFA @ sin(93°) = 0.99853515625
+ .2byte 0x0FF6 @ sin(94°) = 0.99755859375
+ .2byte 0x0FF0 @ sin(95°) = 0.99609375
+ .2byte 0x0FE9 @ sin(96°) = 0.994384765625
+ .2byte 0x0FE1 @ sin(97°) = 0.992431640625
+ .2byte 0x0FD8 @ sin(98°) = 0.990234375
+ .2byte 0x0FCE @ sin(99°) = 0.98779296875
+ .2byte 0x0FC2 @ sin(100°) = 0.98486328125
+ .2byte 0x0FB5 @ sin(101°) = 0.981689453125
+ .2byte 0x0FA6 @ sin(102°) = 0.97802734375
+ .2byte 0x0F97 @ sin(103°) = 0.974365234375
+ .2byte 0x0F86 @ sin(104°) = 0.97021484375
+ .2byte 0x0F74 @ sin(105°) = 0.9658203125
+ .2byte 0x0F61 @ sin(106°) = 0.961181640625
+ .2byte 0x0F4D @ sin(107°) = 0.956298828125
+ .2byte 0x0F38 @ sin(108°) = 0.951171875
+ .2byte 0x0F21 @ sin(109°) = 0.945556640625
+ .2byte 0x0F09 @ sin(110°) = 0.939697265625
+ .2byte 0x0EF0 @ sin(111°) = 0.93359375
+ .2byte 0x0ED6 @ sin(112°) = 0.92724609375
+ .2byte 0x0EBA @ sin(113°) = 0.92041015625
+ .2byte 0x0E9E @ sin(114°) = 0.91357421875
+ .2byte 0x0E80 @ sin(115°) = 0.90625
+ .2byte 0x0E61 @ sin(116°) = 0.898681640625
+ .2byte 0x0E42 @ sin(117°) = 0.89111328125
+ .2byte 0x0E21 @ sin(118°) = 0.883056640625
+ .2byte 0x0DFE @ sin(119°) = 0.87451171875
+ .2byte 0x0DDB @ sin(120°) = 0.865966796875
+ .2byte 0x0DB7 @ sin(121°) = 0.857177734375
+ .2byte 0x0D92 @ sin(122°) = 0.84814453125
+ .2byte 0x0D6B @ sin(123°) = 0.838623046875
+ .2byte 0x0D44 @ sin(124°) = 0.8291015625
+ .2byte 0x0D1B @ sin(125°) = 0.819091796875
+ .2byte 0x0CF2 @ sin(126°) = 0.80908203125
+ .2byte 0x0CC7 @ sin(127°) = 0.798583984375
+ .2byte 0x0C9C @ sin(128°) = 0.7880859375
+ .2byte 0x0C6F @ sin(129°) = 0.777099609375
+ .2byte 0x0C42 @ sin(130°) = 0.76611328125
+ .2byte 0x0C13 @ sin(131°) = 0.754638671875
+ .2byte 0x0BE4 @ sin(132°) = 0.7431640625
+ .2byte 0x0BB4 @ sin(133°) = 0.7314453125
+ .2byte 0x0B82 @ sin(134°) = 0.71923828125
+ .2byte 0x0B50 @ sin(135°) = 0.70703125
+ .2byte 0x0B1D @ sin(136°) = 0.694580078125
+ .2byte 0x0AE9 @ sin(137°) = 0.681884765625
+ .2byte 0x0AB5 @ sin(138°) = 0.669189453125
+ .2byte 0x0A7F @ sin(139°) = 0.656005859375
+ .2byte 0x0A49 @ sin(140°) = 0.642822265625
+ .2byte 0x0A12 @ sin(141°) = 0.62939453125
+ .2byte 0x09DA @ sin(142°) = 0.61572265625
+ .2byte 0x09A1 @ sin(143°) = 0.601806640625
+ .2byte 0x0968 @ sin(144°) = 0.587890625
+ .2byte 0x092D @ sin(145°) = 0.573486328125
+ .2byte 0x08F2 @ sin(146°) = 0.55908203125
+ .2byte 0x08B7 @ sin(147°) = 0.544677734375
+ .2byte 0x087B @ sin(148°) = 0.530029296875
+ .2byte 0x083E @ sin(149°) = 0.51513671875
+ .2byte 0x0800 @ sin(150°) = 0.5
+ .2byte 0x07C2 @ sin(151°) = 0.48486328125
+ .2byte 0x0783 @ sin(152°) = 0.469482421875
+ .2byte 0x0744 @ sin(153°) = 0.4541015625
+ .2byte 0x0704 @ sin(154°) = 0.4384765625
+ .2byte 0x06C3 @ sin(155°) = 0.422607421875
+ .2byte 0x0682 @ sin(156°) = 0.40673828125
+ .2byte 0x0640 @ sin(157°) = 0.390625
+ .2byte 0x05FE @ sin(158°) = 0.37451171875
+ .2byte 0x05BC @ sin(159°) = 0.3583984375
+ .2byte 0x0579 @ sin(160°) = 0.342041015625
+ .2byte 0x0536 @ sin(161°) = 0.32568359375
+ .2byte 0x04F2 @ sin(162°) = 0.30908203125
+ .2byte 0x04AE @ sin(163°) = 0.29248046875
+ .2byte 0x0469 @ sin(164°) = 0.275634765625
+ .2byte 0x0424 @ sin(165°) = 0.2587890625
+ .2byte 0x03DF @ sin(166°) = 0.241943359375
+ .2byte 0x0399 @ sin(167°) = 0.224853515625
+ .2byte 0x0354 @ sin(168°) = 0.2080078125
+ .2byte 0x030E @ sin(169°) = 0.19091796875
+ .2byte 0x02C7 @ sin(170°) = 0.173583984375
+ .2byte 0x0281 @ sin(171°) = 0.156494140625
+ .2byte 0x023A @ sin(172°) = 0.13916015625
+ .2byte 0x01F3 @ sin(173°) = 0.121826171875
+ .2byte 0x01AC @ sin(174°) = 0.1044921875
+ .2byte 0x0165 @ sin(175°) = 0.087158203125
+ .2byte 0x011E @ sin(176°) = 0.06982421875
+ .2byte 0x00D6 @ sin(177°) = 0.05224609375
+ .2byte 0x008F @ sin(178°) = 0.034912109375
+ .2byte 0x0047 @ sin(179°) = 0.017333984375
diff --git a/data/sine_table.s b/data/sine_table.s
new file mode 100644
index 000000000..fd1a5da72
--- /dev/null
+++ b/data/sine_table.s
@@ -0,0 +1,323 @@
+@ values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319
+ .align 1
+gSineTable:: @ 8208344
+ .2byte 0x0000 @ sin(0*(π/128)) = 0
+ .2byte 0x0006 @ sin(1*(π/128)) = 0.0234375
+ .2byte 0x000C @ sin(2*(π/128)) = 0.046875
+ .2byte 0x0012 @ sin(3*(π/128)) = 0.0703125
+ .2byte 0x0019 @ sin(4*(π/128)) = 0.09765625
+ .2byte 0x001F @ sin(5*(π/128)) = 0.12109375
+ .2byte 0x0025 @ sin(6*(π/128)) = 0.14453125
+ .2byte 0x002B @ sin(7*(π/128)) = 0.16796875
+ .2byte 0x0031 @ sin(8*(π/128)) = 0.19140625
+ .2byte 0x0038 @ sin(9*(π/128)) = 0.21875
+ .2byte 0x003E @ sin(10*(π/128)) = 0.2421875
+ .2byte 0x0044 @ sin(11*(π/128)) = 0.265625
+ .2byte 0x004A @ sin(12*(π/128)) = 0.2890625
+ .2byte 0x0050 @ sin(13*(π/128)) = 0.3125
+ .2byte 0x0056 @ sin(14*(π/128)) = 0.3359375
+ .2byte 0x005C @ sin(15*(π/128)) = 0.359375
+ .2byte 0x0061 @ sin(16*(π/128)) = 0.37890625
+ .2byte 0x0067 @ sin(17*(π/128)) = 0.40234375
+ .2byte 0x006D @ sin(18*(π/128)) = 0.42578125
+ .2byte 0x0073 @ sin(19*(π/128)) = 0.44921875
+ .2byte 0x0078 @ sin(20*(π/128)) = 0.46875
+ .2byte 0x007E @ sin(21*(π/128)) = 0.4921875
+ .2byte 0x0083 @ sin(22*(π/128)) = 0.51171875
+ .2byte 0x0088 @ sin(23*(π/128)) = 0.53125
+ .2byte 0x008E @ sin(24*(π/128)) = 0.5546875
+ .2byte 0x0093 @ sin(25*(π/128)) = 0.57421875
+ .2byte 0x0098 @ sin(26*(π/128)) = 0.59375
+ .2byte 0x009D @ sin(27*(π/128)) = 0.61328125
+ .2byte 0x00A2 @ sin(28*(π/128)) = 0.6328125
+ .2byte 0x00A7 @ sin(29*(π/128)) = 0.65234375
+ .2byte 0x00AB @ sin(30*(π/128)) = 0.66796875
+ .2byte 0x00B0 @ sin(31*(π/128)) = 0.6875
+ .2byte 0x00B5 @ sin(32*(π/128)) = 0.70703125
+ .2byte 0x00B9 @ sin(33*(π/128)) = 0.72265625
+ .2byte 0x00BD @ sin(34*(π/128)) = 0.73828125
+ .2byte 0x00C1 @ sin(35*(π/128)) = 0.75390625
+ .2byte 0x00C5 @ sin(36*(π/128)) = 0.76953125
+ .2byte 0x00C9 @ sin(37*(π/128)) = 0.78515625
+ .2byte 0x00CD @ sin(38*(π/128)) = 0.80078125
+ .2byte 0x00D1 @ sin(39*(π/128)) = 0.81640625
+ .2byte 0x00D4 @ sin(40*(π/128)) = 0.828125
+ .2byte 0x00D8 @ sin(41*(π/128)) = 0.84375
+ .2byte 0x00DB @ sin(42*(π/128)) = 0.85546875
+ .2byte 0x00DE @ sin(43*(π/128)) = 0.8671875
+ .2byte 0x00E1 @ sin(44*(π/128)) = 0.87890625
+ .2byte 0x00E4 @ sin(45*(π/128)) = 0.890625
+ .2byte 0x00E7 @ sin(46*(π/128)) = 0.90234375
+ .2byte 0x00EA @ sin(47*(π/128)) = 0.9140625
+ .2byte 0x00EC @ sin(48*(π/128)) = 0.921875
+ .2byte 0x00EE @ sin(49*(π/128)) = 0.9296875
+ .2byte 0x00F1 @ sin(50*(π/128)) = 0.94140625
+ .2byte 0x00F3 @ sin(51*(π/128)) = 0.94921875
+ .2byte 0x00F4 @ sin(52*(π/128)) = 0.953125
+ .2byte 0x00F6 @ sin(53*(π/128)) = 0.9609375
+ .2byte 0x00F8 @ sin(54*(π/128)) = 0.96875
+ .2byte 0x00F9 @ sin(55*(π/128)) = 0.97265625
+ .2byte 0x00FB @ sin(56*(π/128)) = 0.98046875
+ .2byte 0x00FC @ sin(57*(π/128)) = 0.984375
+ .2byte 0x00FD @ sin(58*(π/128)) = 0.98828125
+ .2byte 0x00FE @ sin(59*(π/128)) = 0.9921875
+ .2byte 0x00FE @ sin(60*(π/128)) = 0.9921875
+ .2byte 0x00FF @ sin(61*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(62*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(63*(π/128)) = 0.99609375
+ .2byte 0x0100 @ sin(64*(π/128)) = 1
+ .2byte 0x00FF @ sin(65*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(66*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(67*(π/128)) = 0.99609375
+ .2byte 0x00FE @ sin(68*(π/128)) = 0.9921875
+ .2byte 0x00FE @ sin(69*(π/128)) = 0.9921875
+ .2byte 0x00FD @ sin(70*(π/128)) = 0.98828125
+ .2byte 0x00FC @ sin(71*(π/128)) = 0.984375
+ .2byte 0x00FB @ sin(72*(π/128)) = 0.98046875
+ .2byte 0x00F9 @ sin(73*(π/128)) = 0.97265625
+ .2byte 0x00F8 @ sin(74*(π/128)) = 0.96875
+ .2byte 0x00F6 @ sin(75*(π/128)) = 0.9609375
+ .2byte 0x00F4 @ sin(76*(π/128)) = 0.953125
+ .2byte 0x00F3 @ sin(77*(π/128)) = 0.94921875
+ .2byte 0x00F1 @ sin(78*(π/128)) = 0.94140625
+ .2byte 0x00EE @ sin(79*(π/128)) = 0.9296875
+ .2byte 0x00EC @ sin(80*(π/128)) = 0.921875
+ .2byte 0x00EA @ sin(81*(π/128)) = 0.9140625
+ .2byte 0x00E7 @ sin(82*(π/128)) = 0.90234375
+ .2byte 0x00E4 @ sin(83*(π/128)) = 0.890625
+ .2byte 0x00E1 @ sin(84*(π/128)) = 0.87890625
+ .2byte 0x00DE @ sin(85*(π/128)) = 0.8671875
+ .2byte 0x00DB @ sin(86*(π/128)) = 0.85546875
+ .2byte 0x00D8 @ sin(87*(π/128)) = 0.84375
+ .2byte 0x00D4 @ sin(88*(π/128)) = 0.828125
+ .2byte 0x00D1 @ sin(89*(π/128)) = 0.81640625
+ .2byte 0x00CD @ sin(90*(π/128)) = 0.80078125
+ .2byte 0x00C9 @ sin(91*(π/128)) = 0.78515625
+ .2byte 0x00C5 @ sin(92*(π/128)) = 0.76953125
+ .2byte 0x00C1 @ sin(93*(π/128)) = 0.75390625
+ .2byte 0x00BD @ sin(94*(π/128)) = 0.73828125
+ .2byte 0x00B9 @ sin(95*(π/128)) = 0.72265625
+ .2byte 0x00B5 @ sin(96*(π/128)) = 0.70703125
+ .2byte 0x00B0 @ sin(97*(π/128)) = 0.6875
+ .2byte 0x00AB @ sin(98*(π/128)) = 0.66796875
+ .2byte 0x00A7 @ sin(99*(π/128)) = 0.65234375
+ .2byte 0x00A2 @ sin(100*(π/128)) = 0.6328125
+ .2byte 0x009D @ sin(101*(π/128)) = 0.61328125
+ .2byte 0x0098 @ sin(102*(π/128)) = 0.59375
+ .2byte 0x0093 @ sin(103*(π/128)) = 0.57421875
+ .2byte 0x008E @ sin(104*(π/128)) = 0.5546875
+ .2byte 0x0088 @ sin(105*(π/128)) = 0.53125
+ .2byte 0x0083 @ sin(106*(π/128)) = 0.51171875
+ .2byte 0x007E @ sin(107*(π/128)) = 0.4921875
+ .2byte 0x0078 @ sin(108*(π/128)) = 0.46875
+ .2byte 0x0073 @ sin(109*(π/128)) = 0.44921875
+ .2byte 0x006D @ sin(110*(π/128)) = 0.42578125
+ .2byte 0x0067 @ sin(111*(π/128)) = 0.40234375
+ .2byte 0x0061 @ sin(112*(π/128)) = 0.37890625
+ .2byte 0x005C @ sin(113*(π/128)) = 0.359375
+ .2byte 0x0056 @ sin(114*(π/128)) = 0.3359375
+ .2byte 0x0050 @ sin(115*(π/128)) = 0.3125
+ .2byte 0x004A @ sin(116*(π/128)) = 0.2890625
+ .2byte 0x0044 @ sin(117*(π/128)) = 0.265625
+ .2byte 0x003E @ sin(118*(π/128)) = 0.2421875
+ .2byte 0x0038 @ sin(119*(π/128)) = 0.21875
+ .2byte 0x0031 @ sin(120*(π/128)) = 0.19140625
+ .2byte 0x002B @ sin(121*(π/128)) = 0.16796875
+ .2byte 0x0025 @ sin(122*(π/128)) = 0.14453125
+ .2byte 0x001F @ sin(123*(π/128)) = 0.12109375
+ .2byte 0x0019 @ sin(124*(π/128)) = 0.09765625
+ .2byte 0x0012 @ sin(125*(π/128)) = 0.0703125
+ .2byte 0x000C @ sin(126*(π/128)) = 0.046875
+ .2byte 0x0006 @ sin(127*(π/128)) = 0.0234375
+ .2byte 0x0000 @ sin(128*(π/128)) = 0
+ .2byte 0xFFFA @ sin(129*(π/128)) = -0.0234375
+ .2byte 0xFFF4 @ sin(130*(π/128)) = -0.046875
+ .2byte 0xFFEE @ sin(131*(π/128)) = -0.0703125
+ .2byte 0xFFE7 @ sin(132*(π/128)) = -0.09765625
+ .2byte 0xFFE1 @ sin(133*(π/128)) = -0.12109375
+ .2byte 0xFFDB @ sin(134*(π/128)) = -0.14453125
+ .2byte 0xFFD5 @ sin(135*(π/128)) = -0.16796875
+ .2byte 0xFFCF @ sin(136*(π/128)) = -0.19140625
+ .2byte 0xFFC8 @ sin(137*(π/128)) = -0.21875
+ .2byte 0xFFC2 @ sin(138*(π/128)) = -0.2421875
+ .2byte 0xFFBC @ sin(139*(π/128)) = -0.265625
+ .2byte 0xFFB6 @ sin(140*(π/128)) = -0.2890625
+ .2byte 0xFFB0 @ sin(141*(π/128)) = -0.3125
+ .2byte 0xFFAA @ sin(142*(π/128)) = -0.3359375
+ .2byte 0xFFA4 @ sin(143*(π/128)) = -0.359375
+ .2byte 0xFF9F @ sin(144*(π/128)) = -0.37890625
+ .2byte 0xFF99 @ sin(145*(π/128)) = -0.40234375
+ .2byte 0xFF93 @ sin(146*(π/128)) = -0.42578125
+ .2byte 0xFF8D @ sin(147*(π/128)) = -0.44921875
+ .2byte 0xFF88 @ sin(148*(π/128)) = -0.46875
+ .2byte 0xFF82 @ sin(149*(π/128)) = -0.4921875
+ .2byte 0xFF7D @ sin(150*(π/128)) = -0.51171875
+ .2byte 0xFF78 @ sin(151*(π/128)) = -0.53125
+ .2byte 0xFF72 @ sin(152*(π/128)) = -0.5546875
+ .2byte 0xFF6D @ sin(153*(π/128)) = -0.57421875
+ .2byte 0xFF68 @ sin(154*(π/128)) = -0.59375
+ .2byte 0xFF63 @ sin(155*(π/128)) = -0.61328125
+ .2byte 0xFF5E @ sin(156*(π/128)) = -0.6328125
+ .2byte 0xFF59 @ sin(157*(π/128)) = -0.65234375
+ .2byte 0xFF55 @ sin(158*(π/128)) = -0.66796875
+ .2byte 0xFF50 @ sin(159*(π/128)) = -0.6875
+ .2byte 0xFF4B @ sin(160*(π/128)) = -0.70703125
+ .2byte 0xFF47 @ sin(161*(π/128)) = -0.72265625
+ .2byte 0xFF43 @ sin(162*(π/128)) = -0.73828125
+ .2byte 0xFF3F @ sin(163*(π/128)) = -0.75390625
+ .2byte 0xFF3B @ sin(164*(π/128)) = -0.76953125
+ .2byte 0xFF37 @ sin(165*(π/128)) = -0.78515625
+ .2byte 0xFF33 @ sin(166*(π/128)) = -0.80078125
+ .2byte 0xFF2F @ sin(167*(π/128)) = -0.81640625
+ .2byte 0xFF2C @ sin(168*(π/128)) = -0.828125
+ .2byte 0xFF28 @ sin(169*(π/128)) = -0.84375
+ .2byte 0xFF25 @ sin(170*(π/128)) = -0.85546875
+ .2byte 0xFF22 @ sin(171*(π/128)) = -0.8671875
+ .2byte 0xFF1F @ sin(172*(π/128)) = -0.87890625
+ .2byte 0xFF1C @ sin(173*(π/128)) = -0.890625
+ .2byte 0xFF19 @ sin(174*(π/128)) = -0.90234375
+ .2byte 0xFF16 @ sin(175*(π/128)) = -0.9140625
+ .2byte 0xFF14 @ sin(176*(π/128)) = -0.921875
+ .2byte 0xFF12 @ sin(177*(π/128)) = -0.9296875
+ .2byte 0xFF0F @ sin(178*(π/128)) = -0.94140625
+ .2byte 0xFF0D @ sin(179*(π/128)) = -0.94921875
+ .2byte 0xFF0C @ sin(180*(π/128)) = -0.953125
+ .2byte 0xFF0A @ sin(181*(π/128)) = -0.9609375
+ .2byte 0xFF08 @ sin(182*(π/128)) = -0.96875
+ .2byte 0xFF07 @ sin(183*(π/128)) = -0.97265625
+ .2byte 0xFF05 @ sin(184*(π/128)) = -0.98046875
+ .2byte 0xFF04 @ sin(185*(π/128)) = -0.984375
+ .2byte 0xFF03 @ sin(186*(π/128)) = -0.98828125
+ .2byte 0xFF02 @ sin(187*(π/128)) = -0.9921875
+ .2byte 0xFF02 @ sin(188*(π/128)) = -0.9921875
+ .2byte 0xFF01 @ sin(189*(π/128)) = -0.99609375
+ .2byte 0xFF01 @ sin(190*(π/128)) = -0.99609375
+ .2byte 0xFF01 @ sin(191*(π/128)) = -0.99609375
+ .2byte 0xFF00 @ sin(192*(π/128)) = -1
+ .2byte 0xFF01 @ sin(193*(π/128)) = -0.99609375
+ .2byte 0xFF01 @ sin(194*(π/128)) = -0.99609375
+ .2byte 0xFF01 @ sin(195*(π/128)) = -0.99609375
+ .2byte 0xFF02 @ sin(196*(π/128)) = -0.9921875
+ .2byte 0xFF02 @ sin(197*(π/128)) = -0.9921875
+ .2byte 0xFF03 @ sin(198*(π/128)) = -0.98828125
+ .2byte 0xFF04 @ sin(199*(π/128)) = -0.984375
+ .2byte 0xFF05 @ sin(200*(π/128)) = -0.98046875
+ .2byte 0xFF07 @ sin(201*(π/128)) = -0.97265625
+ .2byte 0xFF08 @ sin(202*(π/128)) = -0.96875
+ .2byte 0xFF0A @ sin(203*(π/128)) = -0.9609375
+ .2byte 0xFF0C @ sin(204*(π/128)) = -0.953125
+ .2byte 0xFF0D @ sin(205*(π/128)) = -0.94921875
+ .2byte 0xFF0F @ sin(206*(π/128)) = -0.94140625
+ .2byte 0xFF12 @ sin(207*(π/128)) = -0.9296875
+ .2byte 0xFF14 @ sin(208*(π/128)) = -0.921875
+ .2byte 0xFF16 @ sin(209*(π/128)) = -0.9140625
+ .2byte 0xFF19 @ sin(210*(π/128)) = -0.90234375
+ .2byte 0xFF1C @ sin(211*(π/128)) = -0.890625
+ .2byte 0xFF1F @ sin(212*(π/128)) = -0.87890625
+ .2byte 0xFF22 @ sin(213*(π/128)) = -0.8671875
+ .2byte 0xFF25 @ sin(214*(π/128)) = -0.85546875
+ .2byte 0xFF28 @ sin(215*(π/128)) = -0.84375
+ .2byte 0xFF2C @ sin(216*(π/128)) = -0.828125
+ .2byte 0xFF2F @ sin(217*(π/128)) = -0.81640625
+ .2byte 0xFF33 @ sin(218*(π/128)) = -0.80078125
+ .2byte 0xFF37 @ sin(219*(π/128)) = -0.78515625
+ .2byte 0xFF3B @ sin(220*(π/128)) = -0.76953125
+ .2byte 0xFF3F @ sin(221*(π/128)) = -0.75390625
+ .2byte 0xFF43 @ sin(222*(π/128)) = -0.73828125
+ .2byte 0xFF47 @ sin(223*(π/128)) = -0.72265625
+ .2byte 0xFF4B @ sin(224*(π/128)) = -0.70703125
+ .2byte 0xFF50 @ sin(225*(π/128)) = -0.6875
+ .2byte 0xFF55 @ sin(226*(π/128)) = -0.66796875
+ .2byte 0xFF59 @ sin(227*(π/128)) = -0.65234375
+ .2byte 0xFF5E @ sin(228*(π/128)) = -0.6328125
+ .2byte 0xFF63 @ sin(229*(π/128)) = -0.61328125
+ .2byte 0xFF68 @ sin(230*(π/128)) = -0.59375
+ .2byte 0xFF6D @ sin(231*(π/128)) = -0.57421875
+ .2byte 0xFF72 @ sin(232*(π/128)) = -0.5546875
+ .2byte 0xFF78 @ sin(233*(π/128)) = -0.53125
+ .2byte 0xFF7D @ sin(234*(π/128)) = -0.51171875
+ .2byte 0xFF82 @ sin(235*(π/128)) = -0.4921875
+ .2byte 0xFF88 @ sin(236*(π/128)) = -0.46875
+ .2byte 0xFF8D @ sin(237*(π/128)) = -0.44921875
+ .2byte 0xFF93 @ sin(238*(π/128)) = -0.42578125
+ .2byte 0xFF99 @ sin(239*(π/128)) = -0.40234375
+ .2byte 0xFF9F @ sin(240*(π/128)) = -0.37890625
+ .2byte 0xFFA4 @ sin(241*(π/128)) = -0.359375
+ .2byte 0xFFAA @ sin(242*(π/128)) = -0.3359375
+ .2byte 0xFFB0 @ sin(243*(π/128)) = -0.3125
+ .2byte 0xFFB6 @ sin(244*(π/128)) = -0.2890625
+ .2byte 0xFFBC @ sin(245*(π/128)) = -0.265625
+ .2byte 0xFFC2 @ sin(246*(π/128)) = -0.2421875
+ .2byte 0xFFC8 @ sin(247*(π/128)) = -0.21875
+ .2byte 0xFFCF @ sin(248*(π/128)) = -0.19140625
+ .2byte 0xFFD5 @ sin(249*(π/128)) = -0.16796875
+ .2byte 0xFFDB @ sin(250*(π/128)) = -0.14453125
+ .2byte 0xFFE1 @ sin(251*(π/128)) = -0.12109375
+ .2byte 0xFFE7 @ sin(252*(π/128)) = -0.09765625
+ .2byte 0xFFEE @ sin(253*(π/128)) = -0.0703125
+ .2byte 0xFFF4 @ sin(254*(π/128)) = -0.046875
+ .2byte 0xFFFA @ sin(255*(π/128)) = -0.0234375
+ .2byte 0x0000 @ sin(256*(π/128)) = 0
+ .2byte 0x0006 @ sin(257*(π/128)) = 0.0234375
+ .2byte 0x000C @ sin(258*(π/128)) = 0.046875
+ .2byte 0x0012 @ sin(259*(π/128)) = 0.0703125
+ .2byte 0x0019 @ sin(260*(π/128)) = 0.09765625
+ .2byte 0x001F @ sin(261*(π/128)) = 0.12109375
+ .2byte 0x0025 @ sin(262*(π/128)) = 0.14453125
+ .2byte 0x002B @ sin(263*(π/128)) = 0.16796875
+ .2byte 0x0031 @ sin(264*(π/128)) = 0.19140625
+ .2byte 0x0038 @ sin(265*(π/128)) = 0.21875
+ .2byte 0x003E @ sin(266*(π/128)) = 0.2421875
+ .2byte 0x0044 @ sin(267*(π/128)) = 0.265625
+ .2byte 0x004A @ sin(268*(π/128)) = 0.2890625
+ .2byte 0x0050 @ sin(269*(π/128)) = 0.3125
+ .2byte 0x0056 @ sin(270*(π/128)) = 0.3359375
+ .2byte 0x005C @ sin(271*(π/128)) = 0.359375
+ .2byte 0x0061 @ sin(272*(π/128)) = 0.37890625
+ .2byte 0x0067 @ sin(273*(π/128)) = 0.40234375
+ .2byte 0x006D @ sin(274*(π/128)) = 0.42578125
+ .2byte 0x0073 @ sin(275*(π/128)) = 0.44921875
+ .2byte 0x0078 @ sin(276*(π/128)) = 0.46875
+ .2byte 0x007E @ sin(277*(π/128)) = 0.4921875
+ .2byte 0x0083 @ sin(278*(π/128)) = 0.51171875
+ .2byte 0x0088 @ sin(279*(π/128)) = 0.53125
+ .2byte 0x008E @ sin(280*(π/128)) = 0.5546875
+ .2byte 0x0093 @ sin(281*(π/128)) = 0.57421875
+ .2byte 0x0098 @ sin(282*(π/128)) = 0.59375
+ .2byte 0x009D @ sin(283*(π/128)) = 0.61328125
+ .2byte 0x00A2 @ sin(284*(π/128)) = 0.6328125
+ .2byte 0x00A7 @ sin(285*(π/128)) = 0.65234375
+ .2byte 0x00AB @ sin(286*(π/128)) = 0.66796875
+ .2byte 0x00B0 @ sin(287*(π/128)) = 0.6875
+ .2byte 0x00B5 @ sin(288*(π/128)) = 0.70703125
+ .2byte 0x00B9 @ sin(289*(π/128)) = 0.72265625
+ .2byte 0x00BD @ sin(290*(π/128)) = 0.73828125
+ .2byte 0x00C1 @ sin(291*(π/128)) = 0.75390625
+ .2byte 0x00C5 @ sin(292*(π/128)) = 0.76953125
+ .2byte 0x00C9 @ sin(293*(π/128)) = 0.78515625
+ .2byte 0x00CD @ sin(294*(π/128)) = 0.80078125
+ .2byte 0x00D1 @ sin(295*(π/128)) = 0.81640625
+ .2byte 0x00D4 @ sin(296*(π/128)) = 0.828125
+ .2byte 0x00D8 @ sin(297*(π/128)) = 0.84375
+ .2byte 0x00DB @ sin(298*(π/128)) = 0.85546875
+ .2byte 0x00DE @ sin(299*(π/128)) = 0.8671875
+ .2byte 0x00E1 @ sin(300*(π/128)) = 0.87890625
+ .2byte 0x00E4 @ sin(301*(π/128)) = 0.890625
+ .2byte 0x00E7 @ sin(302*(π/128)) = 0.90234375
+ .2byte 0x00EA @ sin(303*(π/128)) = 0.9140625
+ .2byte 0x00EC @ sin(304*(π/128)) = 0.921875
+ .2byte 0x00EE @ sin(305*(π/128)) = 0.9296875
+ .2byte 0x00F1 @ sin(306*(π/128)) = 0.94140625
+ .2byte 0x00F3 @ sin(307*(π/128)) = 0.94921875
+ .2byte 0x00F4 @ sin(308*(π/128)) = 0.953125
+ .2byte 0x00F6 @ sin(309*(π/128)) = 0.9609375
+ .2byte 0x00F8 @ sin(310*(π/128)) = 0.96875
+ .2byte 0x00F9 @ sin(311*(π/128)) = 0.97265625
+ .2byte 0x00FB @ sin(312*(π/128)) = 0.98046875
+ .2byte 0x00FC @ sin(313*(π/128)) = 0.984375
+ .2byte 0x00FD @ sin(314*(π/128)) = 0.98828125
+ .2byte 0x00FE @ sin(315*(π/128)) = 0.9921875
+ .2byte 0x00FE @ sin(316*(π/128)) = 0.9921875
+ .2byte 0x00FF @ sin(317*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(318*(π/128)) = 0.99609375
+ .2byte 0x00FF @ sin(319*(π/128)) = 0.99609375