-rw-r--r-- | noncore/multimedia/opieplayer2/yuv2rgb_arm4l.S | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/yuv2rgb_arm4l.S b/noncore/multimedia/opieplayer2/yuv2rgb_arm4l.S index f4a3395..521bcaa 100644 --- a/noncore/multimedia/opieplayer2/yuv2rgb_arm4l.S +++ b/noncore/multimedia/opieplayer2/yuv2rgb_arm4l.S | |||
@@ -1,192 +1,213 @@ | |||
1 | /* | ||
2 | Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org) | ||
3 | |||
4 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
5 | of this software and associated documentation files (the "Software"), to deal | ||
6 | in the Software without restriction, including without limitation the rights | ||
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
8 | copies of the Software, and to permit persons to whom the Software is | ||
9 | furnished to do so, subject to the following conditions: | ||
10 | |||
11 | The above copyright notice and this permission notice shall be included in | ||
12 | all copies or substantial portions of the Software. | ||
13 | |||
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
17 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
18 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
20 | */ | ||
21 | |||
1 | /* WARNING : this function only works when stride_U == stride_V (I use some hacks to | 22 | /* WARNING : this function only works when stride_U == stride_V (I use some hacks to |
2 | not have to do too many computations at line's end)... | 23 | not have to do too many computations at line's end)... |
3 | 24 | ||
4 | C-like prototype : | 25 | C-like prototype : |
5 | void convert_yuv420_rgb565(AVPicture *picture, unsigned char *results, int w, int h) ; | 26 | void convert_yuv420_rgb565(AVPicture *picture, unsigned char *results, int w, int h) ; |
6 | 27 | ||
7 | */ | 28 | */ |
8 | 29 | ||
9 | #ifdef __arm__ | 30 | #ifdef __arm__ |
10 | 31 | ||
11 | .text | 32 | .text |
12 | .align | 33 | .align |
13 | 34 | ||
14 | .global convert_yuv420_rgb565 | 35 | .global convert_yuv420_rgb565 |
15 | convert_yuv420_rgb565: | 36 | convert_yuv420_rgb565: |
16 | stmdb sp!, { r4 - r12, lr } @ all callee saved regs | 37 | stmdb sp!, { r4 - r12, lr } @ all callee saved regs |
17 | ldr r7, [r0, #0] @ Y ptr | 38 | ldr r7, [r0, #0] @ Y ptr |
18 | ldr r9, [r0, #4] @ U ptr | 39 | ldr r9, [r0, #4] @ U ptr |
19 | ldr r10, [r0, #8] @ V ptr | 40 | ldr r10, [r0, #8] @ V ptr |
20 | subs r10, r10, r9 @ V ptr - U ptr | 41 | subs r10, r10, r9 @ V ptr - U ptr |
21 | ldr r8, [r0, #12] | 42 | ldr r8, [r0, #12] |
22 | add r8, r8, r7 @ Y + stride_Y | 43 | add r8, r8, r7 @ Y + stride_Y |
23 | ldr r4, [r0, #12] @ Stride_Y | 44 | ldr r4, [r0, #12] @ Stride_Y |
24 | mov r4, r4, lsl #1 | 45 | mov r4, r4, lsl #1 |
25 | sub r4, r4, r2 @ (2 * Stride_Y) - width | 46 | sub r4, r4, r2 @ (2 * Stride_Y) - width |
26 | ldr r5, [r0, #16] @ Stride_U | 47 | ldr r5, [r0, #16] @ Stride_U |
27 | sub r5, r5, r2, lsr #1 @ Stride_U - (width / 2) | 48 | sub r5, r5, r2, lsr #1 @ Stride_U - (width / 2) |
28 | ldr r6, [r0, #20] @ Stride_V | 49 | ldr r6, [r0, #20] @ Stride_V |
29 | sub r6, r6, r2, lsr #1 @ Stride_V - (width / 2) | 50 | sub r6, r6, r2, lsr #1 @ Stride_V - (width / 2) |
30 | add r0, r1, r2, lsl #1 @ RGB + 1 | 51 | add r0, r1, r2, lsl #1 @ RGB + 1 |
31 | stmdb sp!, { r0-r10 } | 52 | stmdb sp!, { r0-r10 } |
32 | @ Stack description : | 53 | @ Stack description : |
33 | @ (sp+ 0) RGB + one line | 54 | @ (sp+ 0) RGB + one line |
34 | @ (sp+ 4) RGB | 55 | @ (sp+ 4) RGB |
35 | @ (sp+ 8) width (save) | 56 | @ (sp+ 8) width (save) |
36 | @ (sp+12) height | 57 | @ (sp+12) height |
37 | @ (sp+16) (2 * stride_Y) - width | 58 | @ (sp+16) (2 * stride_Y) - width |
38 | @ (sp+20) stride_U - (width / 2) | 59 | @ (sp+20) stride_U - (width / 2) |
39 | @ (sp+24) stride_V - (width / 2) !!! UNUSED !!! | 60 | @ (sp+24) stride_V - (width / 2) !!! UNUSED !!! |
40 | @ (sp+28) Y ptr | 61 | @ (sp+28) Y ptr |
41 | @ (sp+32) Y ptr + one line | 62 | @ (sp+32) Y ptr + one line |
42 | @ (sp+36) U ptr | 63 | @ (sp+36) U ptr |
43 | @ (sp+40) V - U | 64 | @ (sp+40) V - U |
44 | mov lr, r2 @ Initialize the width counter | 65 | mov lr, r2 @ Initialize the width counter |
45 | add r0, pc, #(const_storage-.-8) @ r0 = base pointer to the constants array | 66 | add r0, pc, #(const_storage-.-8) @ r0 = base pointer to the constants array |
46 | ldr r8, [r0, #(4*4)] @ r8 = multy | 67 | ldr r8, [r0, #(4*4)] @ r8 = multy |
47 | yuv_loop: | 68 | yuv_loop: |
48 | add r0, pc, #(const_storage-.-8) @ r0 = base pointer to the constants array | 69 | add r0, pc, #(const_storage-.-8) @ r0 = base pointer to the constants array |
49 | ldr r10, [sp, #28] @ r10 = Y | 70 | ldr r10, [sp, #28] @ r10 = Y |
50 | ldr r1, [sp, #36] @ r1 = U | 71 | ldr r1, [sp, #36] @ r1 = U |
51 | ldrb r9, [r10, #0] @ r9 = *Y | 72 | ldrb r9, [r10, #0] @ r9 = *Y |
52 | ldrb r11, [r1] @ r11 = *U | 73 | ldrb r11, [r1] @ r11 = *U |
53 | add r1, r1, #1 @ r1 = U++ | 74 | add r1, r1, #1 @ r1 = U++ |
54 | ldr r2, [sp, #40] @ r2 = V - U | 75 | ldr r2, [sp, #40] @ r2 = V - U |
55 | str r1, [sp, #36] @ store U++ | 76 | str r1, [sp, #36] @ store U++ |
56 | add r2, r1, r2 @ r2 = V+1 | 77 | add r2, r1, r2 @ r2 = V+1 |
57 | ldrb r12, [r2, #-1] @ r12 = *V | 78 | ldrb r12, [r2, #-1] @ r12 = *V |
58 | sub r11, r11, #128 @ r11 = *U - 128 | 79 | sub r11, r11, #128 @ r11 = *U - 128 |
59 | sub r12, r12, #128 @ r12 = *V - 128 | 80 | sub r12, r12, #128 @ r12 = *V - 128 |
60 | ldr r1, [r0, #(4*0)] @ r1 = crv | 81 | ldr r1, [r0, #(4*0)] @ r1 = crv |
61 | mov r7, #32768 @ r7 = 32768 (for additions in MLA) | 82 | mov r7, #32768 @ r7 = 32768 (for additions in MLA) |
62 | ldr r2, [r0, #(4*3)] @ r2 = -cgv | 83 | ldr r2, [r0, #(4*3)] @ r2 = -cgv |
63 | mla r6, r1, r12, r7 @ r6 = nonyc_r = crv * (*V - 128) + 32768 | 84 | mla r6, r1, r12, r7 @ r6 = nonyc_r = crv * (*V - 128) + 32768 |
64 | ldr r3, [r0, #(4*1)] @ r3 = cbu | 85 | ldr r3, [r0, #(4*1)] @ r3 = cbu |
65 | mla r4, r2, r12, r7 @ r4 = - cgv * (*V - 128) + 32768 | 86 | mla r4, r2, r12, r7 @ r4 = - cgv * (*V - 128) + 32768 |
66 | sub r9, r9, #16 @ r9 = *Y - 16 | 87 | sub r9, r9, #16 @ r9 = *Y - 16 |
67 | mla r5, r3, r11, r7 @ r5 = nonyc_b = cbu * (*U - 128) + 32768 | 88 | mla r5, r3, r11, r7 @ r5 = nonyc_b = cbu * (*U - 128) + 32768 |
68 | ldr r0, [r0, #(4*2)] @ r0 = -cgu | 89 | ldr r0, [r0, #(4*2)] @ r0 = -cgu |
69 | mla r7, r8, r9, r6 @ r7 = (*Y - 16) * multy + nonyc_r | 90 | mla r7, r8, r9, r6 @ r7 = (*Y - 16) * multy + nonyc_r |
70 | add r10, r10, #2 @ r10 = Y + 2 | 91 | add r10, r10, #2 @ r10 = Y + 2 |
71 | mla r4, r0, r11, r4 @ r4 = nonyc_g = - cgu * (*U - 128) + r4 = - cgu * (*U - 128) - cgv * (*V - 128) + 32768 | 92 | mla r4, r0, r11, r4 @ r4 = nonyc_g = - cgu * (*U - 128) + r4 = - cgu * (*U - 128) - cgv * (*V - 128) + 32768 |
72 | add r0, pc, #(rb_clip-.-8) @ r0 contains the pointer to the R and B clipping array | 93 | add r0, pc, #(rb_clip-.-8) @ r0 contains the pointer to the R and B clipping array |
73 | mla r12, r8, r9, r5 @ r12 = (*Y - 16) * multy + nonyc_b | 94 | mla r12, r8, r9, r5 @ r12 = (*Y - 16) * multy + nonyc_b |
74 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = R composant | 95 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = R composant |
75 | mla r1, r8, r9, r4 @ r1 = (*Y - 16) * multy + nonyc_g | 96 | mla r1, r8, r9, r4 @ r1 = (*Y - 16) * multy + nonyc_g |
76 | ldrb r9, [r10, #-1] @ r9 = *(Y+1) | 97 | ldrb r9, [r10, #-1] @ r9 = *(Y+1) |
77 | str r10, [sp, #28] @ save Y + 2 | 98 | str r10, [sp, #28] @ save Y + 2 |
78 | ldrb r12, [r0, r12, asr #(16+3)] @ r12 = B composant (and the start of the RGB word) | 99 | ldrb r12, [r0, r12, asr #(16+3)] @ r12 = B composant (and the start of the RGB word) |
79 | add r11, pc, #(g_clip-.-8) @ r11 now contains the pointer to the G clipping array | 100 | add r11, pc, #(g_clip-.-8) @ r11 now contains the pointer to the G clipping array |
80 | ldrb r1, [r11, r1, asr #(16+2)] @ r1 contains the G part of the RGB triplet | 101 | ldrb r1, [r11, r1, asr #(16+2)] @ r1 contains the G part of the RGB triplet |
81 | sub r9, r9, #16 @ r9 = *(Y+1) - 16 | 102 | sub r9, r9, #16 @ r9 = *(Y+1) - 16 |
82 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet | 103 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet |
83 | add r12, r12, r7, lsl #11 @ r12 = .GB ... | 104 | add r12, r12, r7, lsl #11 @ r12 = .GB ... |
84 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet | 105 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet |
85 | add r12, r12, r1, lsl #5 @ r12 = RGB ... (ie the first pixel (half-word) is done) | 106 | add r12, r12, r1, lsl #5 @ r12 = RGB ... (ie the first pixel (half-word) is done) |
86 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet | 107 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet |
87 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = R composant | 108 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = R composant |
88 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = B composant | 109 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = B composant |
89 | ldr r1, [sp, #32] @ r1 = Ynext | 110 | ldr r1, [sp, #32] @ r1 = Ynext |
90 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant | 111 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant |
91 | ldrb r9, [r1] @ r9 = *Ynext | 112 | ldrb r9, [r1] @ r9 = *Ynext |
92 | add r12, r12, r2, lsl #(5+16) @ r12 = RGB .G. | 113 | add r12, r12, r2, lsl #(5+16) @ r12 = RGB .G. |
93 | sub r9, r9, #16 @ r9 = *Ynext - 16 | 114 | sub r9, r9, #16 @ r9 = *Ynext - 16 |
94 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet | 115 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet |
95 | add r12, r12, r7, lsl #(0+16) @ r12 = RGB .GB | 116 | add r12, r12, r7, lsl #(0+16) @ r12 = RGB .GB |
96 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet | 117 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet |
97 | add r12, r12, r10, lsl #(11+16) @ r12 = RGB RGB | 118 | add r12, r12, r10, lsl #(11+16) @ r12 = RGB RGB |
98 | ldr r3, [sp, #4] @ r3 = RGB | 119 | ldr r3, [sp, #4] @ r3 = RGB |
99 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet | 120 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet |
100 | str r12, [r3] @ store the rgb pixel at *RGB | 121 | str r12, [r3] @ store the rgb pixel at *RGB |
101 | add r3, r3, #4 @ r3 = RGB++ (ie next double-pixel) | 122 | add r3, r3, #4 @ r3 = RGB++ (ie next double-pixel) |
102 | str r3, [sp, #4] @ store the RGB pointer | 123 | str r3, [sp, #4] @ store the RGB pointer |
103 | ldrb r9, [r1, #1] @ r9 = *(Ynext+1) | 124 | ldrb r9, [r1, #1] @ r9 = *(Ynext+1) |
104 | add r1, r1, #2 @ r1 = Ynext + 2 | 125 | add r1, r1, #2 @ r1 = Ynext + 2 |
105 | sub r9, r9, #16 @ r9 = *(Ynext+1) - 16 | 126 | sub r9, r9, #16 @ r9 = *(Ynext+1) - 16 |
106 | ldrb r12, [r0, r7, asr #(16+3)] @ r12 = ..B ... | 127 | ldrb r12, [r0, r7, asr #(16+3)] @ r12 = ..B ... |
107 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = B composant | 128 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = B composant |
108 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet | 129 | mla r7, r8, r9, r5 @ r7 is the Blue part of the RGB triplet |
109 | add r12, r12, r10, lsl #11 @ r12 = R.B ... | 130 | add r12, r12, r10, lsl #11 @ r12 = R.B ... |
110 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant | 131 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant |
111 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet | 132 | mla r10, r8, r9, r6 @ r10 is the Red part of the RGB triplet |
112 | add r12, r12, r2, lsl #5 @ r12 = RGB ... | 133 | add r12, r12, r2, lsl #5 @ r12 = RGB ... |
113 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet | 134 | mla r2, r8, r9, r4 @ r2 is the Green part of the RGB triplet |
114 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = B composant | 135 | ldrb r7, [r0, r7, asr #(16+3)] @ r7 = B composant |
115 | str r1, [sp, #32] @ store the increased Ynext pointer | 136 | str r1, [sp, #32] @ store the increased Ynext pointer |
116 | add r12, r12, r7, lsl #(16+0) @ r12 = RGB ..B | 137 | add r12, r12, r7, lsl #(16+0) @ r12 = RGB ..B |
117 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = R composant | 138 | ldrb r10, [r0, r10, asr #(16+3)] @ r10 = R composant |
118 | ldr r3, [sp, #0] @ r3 = RGBnext pointer | 139 | ldr r3, [sp, #0] @ r3 = RGBnext pointer |
119 | add r12, r12, r10, lsl #(16+11) @ r12 = RGB R.B | 140 | add r12, r12, r10, lsl #(16+11) @ r12 = RGB R.B |
120 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant | 141 | ldrb r2, [r11, r2, asr #(16+2)] @ r2 = G composant |
121 | add r3, r3, #4 @ r3 = next pixel on the RGBnext line | 142 | add r3, r3, #4 @ r3 = next pixel on the RGBnext line |
122 | add r12, r12, r2, lsl #(16+5) @ r12 = RGB RGB | 143 | add r12, r12, r2, lsl #(16+5) @ r12 = RGB RGB |
123 | str r12, [r3, #-4] @ store the next pixel | 144 | str r12, [r3, #-4] @ store the next pixel |
124 | str r3, [sp, #0] @ store the increased 'next line' pixel pointer | 145 | str r3, [sp, #0] @ store the increased 'next line' pixel pointer |
125 | subs lr, lr, #2 @ decrement the line counter | 146 | subs lr, lr, #2 @ decrement the line counter |
126 | bne yuv_loop @ and restart if not at the end of the line | 147 | bne yuv_loop @ and restart if not at the end of the line |
127 | 148 | ||
128 | ldr r0, [sp, #8] @ r0 = saved width | 149 | ldr r0, [sp, #8] @ r0 = saved width |
129 | ldr r1, [sp, #0] @ r1 = RGBnext pointer | 150 | ldr r1, [sp, #0] @ r1 = RGBnext pointer |
130 | mov lr, r0 @ lr = saved width (to restart the line counter) | 151 | mov lr, r0 @ lr = saved width (to restart the line counter) |
131 | str r1, [sp, #4] @ current RGBnext pointer is next iteration RGB pointer | 152 | str r1, [sp, #4] @ current RGBnext pointer is next iteration RGB pointer |
132 | add r1, r1, r0, lsl #1 @ r1 = update RGBnext to next line | 153 | add r1, r1, r0, lsl #1 @ r1 = update RGBnext to next line |
133 | str r1, [sp, #0] @ store updated RGBnext pointer | 154 | str r1, [sp, #0] @ store updated RGBnext pointer |
134 | 155 | ||
135 | ldr r3, [sp, #16] @ r3 = (2 * stride_Y) - width | 156 | ldr r3, [sp, #16] @ r3 = (2 * stride_Y) - width |
136 | ldr r4, [sp, #28] @ r4 = Y ptr | 157 | ldr r4, [sp, #28] @ r4 = Y ptr |
137 | ldr r5, [sp, #32] @ r5 = Ynext ptr | 158 | ldr r5, [sp, #32] @ r5 = Ynext ptr |
138 | add r4, r4, r3 @ r4 = Y ptr for the next two lines | 159 | add r4, r4, r3 @ r4 = Y ptr for the next two lines |
139 | add r5, r5, r3 @ r5 = Ynext ptr for the next two lines | 160 | add r5, r5, r3 @ r5 = Ynext ptr for the next two lines |
140 | str r4, [sp, #28] @ store updated Y pointer | 161 | str r4, [sp, #28] @ store updated Y pointer |
141 | str r5, [sp, #32] @ store update Ynext pointer | 162 | str r5, [sp, #32] @ store update Ynext pointer |
142 | 163 | ||
143 | ldr r1, [sp, #20] @ r1 = stride_U - (width / 2) | 164 | ldr r1, [sp, #20] @ r1 = stride_U - (width / 2) |
144 | ldr r2, [sp, #36] @ r2 = U ptr | 165 | ldr r2, [sp, #36] @ r2 = U ptr |
145 | 166 | ||
146 | ldr r6, [sp, #12] @ get height counter | 167 | ldr r6, [sp, #12] @ get height counter |
147 | 168 | ||
148 | add r2, r2, r1 @ update U ptr | 169 | add r2, r2, r1 @ update U ptr |
149 | str r2, [sp, #36] @ store updated U ptr (and update 'V' at the same time :-) ) | 170 | str r2, [sp, #36] @ store updated U ptr (and update 'V' at the same time :-) ) |
150 | 171 | ||
151 | subs r6, r6, #2 | 172 | subs r6, r6, #2 |
152 | str r6, [sp, #12] | 173 | str r6, [sp, #12] |
153 | bne yuv_loop | 174 | bne yuv_loop |
154 | 175 | ||
155 | @ Exit cleanly :-) | 176 | @ Exit cleanly :-) |
156 | add sp, sp, #(11*4) @ remove all custom things from stack | 177 | add sp, sp, #(11*4) @ remove all custom things from stack |
157 | ldmia sp!, { r4 - r12, pc } @ restore callee saved regs and return | 178 | ldmia sp!, { r4 - r12, pc } @ restore callee saved regs and return |
158 | 179 | ||
159 | 180 | ||
160 | const_storage: | 181 | const_storage: |
161 | @ In order : crv, cbu, - cgu, - cgv, multy | 182 | @ In order : crv, cbu, - cgu, - cgv, multy |
162 | .word 0x00019895, 0x00020469, 0xffff9bb5, 0xffff2fe1, 0x00012A15 | 183 | .word 0x00019895, 0x00020469, 0xffff9bb5, 0xffff2fe1, 0x00012A15 |
163 | rb_clip_dummy: | 184 | rb_clip_dummy: |
164 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 185 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
165 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 186 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
166 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 187 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
167 | rb_clip: | 188 | rb_clip: |
168 | .byte 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f | 189 | .byte 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f |
169 | .byte 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f | 190 | .byte 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f |
170 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f | 191 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f |
171 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f | 192 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f |
172 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f | 193 | .byte 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f |
173 | g_clip_dummy: | 194 | g_clip_dummy: |
174 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 195 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
175 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 196 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
176 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 197 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
177 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 198 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
178 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 199 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
179 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 200 | .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
180 | g_clip: | 201 | g_clip: |
181 | .byte 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f | 202 | .byte 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f |
182 | .byte 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f | 203 | .byte 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f |
183 | .byte 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f | 204 | .byte 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f |
184 | .byte 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f | 205 | .byte 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f |
185 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 206 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
186 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 207 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
187 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 208 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
188 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 209 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
189 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 210 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
190 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f | 211 | .byte 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f |
191 | 212 | ||
192 | #endif | 213 | #endif |