1 /* 1 2 * Information about the Yamaha YRW801 wavetab 3 * 4 * Copyright (c) 2003 by Clemens Ladisch <clem 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary 8 * modification, are permitted provided that t 9 * are met: 10 * 1. Redistributions of source code must reta 11 * notice, this list of conditions, and the 12 * without modification. 13 * 2. The name of the author may not be used t 14 * derived from this software without speci 15 * 16 * Alternatively, this software may be distrib 17 * terms of the GNU General Public License as 18 * Foundation; either version 2 of the License 19 * version. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDIN 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND F 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHO 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PRO 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILI 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF AD 31 * SUCH DAMAGE. 32 */ 33 34 #include "opl4_local.h" 35 36 int snd_yrw801_detect(struct snd_opl4 *opl4) 37 { 38 char buf[15]; 39 40 snd_opl4_read_memory(opl4, buf, 0x0012 41 if (memcmp(buf, "CopyrightYAMAHA", 15) 42 return -ENODEV; 43 snd_opl4_read_memory(opl4, buf, 0x1fff 44 if (buf[0] != 0x01) 45 return -ENODEV; 46 snd_printdd("YRW801 ROM version %02x.% 47 return 0; 48 } 49 50 /* 51 * The instrument definitions are stored stati 52 * OPL4 is always coupled with a YRW801. Dynam 53 * required if downloading sample data to exte 54 * by this driver. 55 */ 56 57 static const struct opl4_region regions_00[] = 58 {0x14, 0x27, {0x12c,7474,100, 0,0,0x00 59 {0x28, 0x2d, {0x12d,6816,100, 0,0,0x00 60 {0x2e, 0x33, {0x12e,5899,100, 0,0,0x00 61 {0x34, 0x39, {0x12f,5290,100, 0,0,0x00 62 {0x3a, 0x3f, {0x130,4260,100, 0,0,0x0a 63 {0x40, 0x45, {0x131,3625,100, 0,0,0x0a 64 {0x46, 0x4b, {0x132,3116,100, 0,0,0x04 65 {0x4c, 0x52, {0x133,2081,100, 0,0,0x03 66 {0x53, 0x58, {0x134,1444,100, 0,0,0x07 67 {0x59, 0x6d, {0x135,1915,100, 0,0,0x00 68 }; 69 static const struct opl4_region regions_01[] = 70 {0x14, 0x2d, {0x12c,7474,100, 0,0,0x00 71 {0x2e, 0x33, {0x12d,6816,100, 0,0,0x00 72 {0x34, 0x39, {0x12e,5899,100, 0,0,0x00 73 {0x3a, 0x3f, {0x12f,5290,100, 0,0,0x00 74 {0x40, 0x45, {0x130,4260,100, 0,0,0x0a 75 {0x46, 0x4b, {0x131,3625,100, 0,0,0x0a 76 {0x4c, 0x52, {0x132,3116,100, 0,0,0x04 77 {0x53, 0x58, {0x133,2081,100, 0,0,0x07 78 {0x59, 0x5e, {0x134,1444,100, 0,0,0x0a 79 {0x5f, 0x6d, {0x135,1915,100, 0,0,0x00 80 }; 81 static const struct opl4_region regions_02[] = 82 {0x14, 0x2d, {0x12c,7476,100, 1,0,0x00 83 {0x2e, 0x33, {0x12d,6818,100, 1,0,0x00 84 {0x34, 0x39, {0x12e,5901,100, 1,0,0x00 85 {0x3a, 0x3f, {0x12f,5292,100, 1,0,0x00 86 {0x40, 0x45, {0x130,4262,100, 1,0,0x00 87 {0x46, 0x4b, {0x131,3627,100, 1,0,0x00 88 {0x4c, 0x52, {0x132,3118,100, 1,0,0x00 89 {0x53, 0x58, {0x133,2083,100, 1,0,0x00 90 {0x59, 0x5e, {0x134,1446,100, 1,0,0x00 91 {0x5f, 0x6d, {0x135,1917,100, 1,0,0x00 92 {0x00, 0x7f, {0x06c,6375,100,-1,0,0x00 93 }; 94 static const struct opl4_region regions_03[] = 95 {0x14, 0x27, {0x12c,7474,100, 0,0,0x00 96 {0x28, 0x2d, {0x12d,6816,100, 0,0,0x00 97 {0x2e, 0x33, {0x12e,5899,100, 0,0,0x00 98 {0x34, 0x39, {0x12f,5290,100, 0,0,0x00 99 {0x3a, 0x3f, {0x130,4260,100, 0,0,0x0a 100 {0x40, 0x45, {0x131,3625,100, 0,0,0x0a 101 {0x46, 0x4b, {0x132,3116,100, 0,0,0x04 102 {0x4c, 0x52, {0x133,2081,100, 0,0,0x03 103 {0x53, 0x58, {0x134,1444,100, 0,0,0x07 104 {0x59, 0x6d, {0x135,1915,100, 0,0,0x00 105 {0x14, 0x27, {0x12c,7486,100, 0,0,0x00 106 {0x28, 0x2d, {0x12d,6803,100, 0,0,0x00 107 {0x2e, 0x33, {0x12e,5912,100, 0,0,0x00 108 {0x34, 0x39, {0x12f,5275,100, 0,0,0x00 109 {0x3a, 0x3f, {0x130,4274,100, 0,0,0x0a 110 {0x40, 0x45, {0x131,3611,100, 0,0,0x0a 111 {0x46, 0x4b, {0x132,3129,100, 0,0,0x04 112 {0x4c, 0x52, {0x133,2074,100, 0,0,0x07 113 {0x53, 0x58, {0x134,1457,100, 0,0,0x01 114 {0x59, 0x6d, {0x135,1903,100, 0,0,0x00 115 }; 116 static const struct opl4_region regions_04[] = 117 {0x15, 0x6c, {0x00b,6570,100, 0,0,0x00 118 {0x00, 0x7f, {0x06c,6375,100, 0,2,0x00 119 }; 120 static const struct opl4_region regions_05[] = 121 {0x14, 0x27, {0x12c,7476,100, 0,3,0x00 122 {0x28, 0x2d, {0x12d,6818,100, 0,3,0x00 123 {0x2e, 0x33, {0x12e,5901,100, 0,3,0x00 124 {0x34, 0x39, {0x12f,5292,100, 0,3,0x00 125 {0x3a, 0x3f, {0x130,4262,100, 0,3,0x0a 126 {0x40, 0x45, {0x131,3627,100, 0,3,0x0a 127 {0x46, 0x4b, {0x132,3118,100, 0,3,0x04 128 {0x4c, 0x52, {0x133,2083,100, 0,3,0x03 129 {0x53, 0x58, {0x134,1446,100, 0,3,0x07 130 {0x59, 0x6d, {0x135,1917,100, 0,3,0x00 131 {0x14, 0x2d, {0x12c,7472,100, 0,0,0x00 132 {0x2e, 0x33, {0x12d,6814,100, 0,0,0x00 133 {0x34, 0x39, {0x12e,5897,100, 0,0,0x00 134 {0x3a, 0x3f, {0x12f,5288,100, 0,0,0x00 135 {0x40, 0x45, {0x130,4258,100, 0,0,0x0a 136 {0x46, 0x4b, {0x131,3623,100, 0,0,0x0a 137 {0x4c, 0x52, {0x132,3114,100, 0,0,0x04 138 {0x53, 0x58, {0x133,2079,100, 0,0,0x07 139 {0x59, 0x5e, {0x134,1442,100, 0,0,0x0a 140 {0x5f, 0x6d, {0x135,1913,100, 0,0,0x00 141 }; 142 static const struct opl4_region regions_06[] = 143 {0x15, 0x39, {0x080,5158,100, 0,0,0x00 144 {0x3a, 0x3f, {0x081,4408,100, 0,0,0x00 145 {0x40, 0x45, {0x082,3622,100, 0,0,0x00 146 {0x46, 0x4d, {0x083,2843,100, 0,0,0x00 147 {0x4e, 0x6c, {0x084,1307,100, 0,0,0x00 148 }; 149 static const struct opl4_region regions_07[] = 150 {0x15, 0x51, {0x027,5009,100, 0,0,0x00 151 {0x52, 0x6c, {0x028,3495,100, 0,0,0x00 152 }; 153 static const struct opl4_region regions_08[] = 154 {0x15, 0x6c, {0x02b,3267,100, 0,0,0x00 155 }; 156 static const struct opl4_region regions_09[] = 157 {0x15, 0x78, {0x0f3, 285,100, 0,0,0x00 158 }; 159 static const struct opl4_region regions_0a[] = 160 {0x15, 0x6c, {0x0f3,3362,100, 0,0,0x00 161 {0x15, 0x6c, {0x101,4773,100, 0,0,0x00 162 }; 163 static const struct opl4_region regions_0b[] = 164 {0x15, 0x6c, {0x101,4778,100, 0,0,0x00 165 }; 166 static const struct opl4_region regions_0c[] = 167 {0x15, 0x3f, {0x0f4,4778,100, 0,0,0x00 168 {0x40, 0x4c, {0x0f5,3217,100, 0,0,0x00 169 {0x4d, 0x5a, {0x0f5,3217,100, 0,0,0x00 170 {0x5b, 0x7f, {0x0f5,3218,100, 0,0,0x00 171 }; 172 static const struct opl4_region regions_0d[] = 173 {0x00, 0x7f, {0x136,1729,100, 0,0,0x00 174 }; 175 static const struct opl4_region regions_0e[] = 176 {0x01, 0x7f, {0x0ff,3999,100, 0,1,0x00 177 }; 178 static const struct opl4_region regions_0f[] = 179 {0x00, 0x7f, {0x03f,4236,100, 0,1,0x00 180 {0x00, 0x7f, {0x040,4236,100, 0,2,0x0e 181 }; 182 static const struct opl4_region regions_10[] = 183 {0x01, 0x7f, {0x08e,4394,100, 0,2,0x14 184 }; 185 static const struct opl4_region regions_11[] = 186 {0x15, 0x3b, {0x08c,6062,100, 0,3,0x00 187 {0x3c, 0x6c, {0x08d,2984,100, 0,3,0x00 188 }; 189 static const struct opl4_region regions_12[] = 190 {0x15, 0x30, {0x128,6574,100, 0,1,0x00 191 {0x31, 0x3c, {0x129,5040,100, 0,1,0x00 192 {0x3d, 0x48, {0x12a,3498,100, 0,1,0x00 193 {0x49, 0x54, {0x12b,1957,100, 0,1,0x00 194 {0x55, 0x6c, {0x127, 423,100, 0,1,0x00 195 }; 196 static const struct opl4_region regions_13[] = 197 {0x15, 0x29, {0x087,7466,100, 0,1,0x00 198 {0x2a, 0x30, {0x088,6456,100, 0,1,0x00 199 {0x31, 0x38, {0x089,5428,100, 0,1,0x00 200 {0x39, 0x41, {0x08a,4408,100, 0,1,0x00 201 {0x42, 0x6c, {0x08b,3406,100, 0,1,0x00 202 }; 203 static const struct opl4_region regions_14[] = 204 {0x00, 0x53, {0x0ac,5570,100, 0,0,0x06 205 {0x54, 0x7f, {0x0ad,2497,100, 0,0,0x00 206 }; 207 static const struct opl4_region regions_15[] = 208 {0x15, 0x4c, {0x006,4261,100, 0,2,0x00 209 {0x4d, 0x6c, {0x007,1530,100, 0,2,0x00 210 {0x15, 0x6c, {0x070,4391,100, 0,3,0x00 211 }; 212 static const struct opl4_region regions_16[] = 213 {0x15, 0x6c, {0x070,4408,100, 0,0,0x00 214 }; 215 static const struct opl4_region regions_17[] = 216 {0x00, 0x53, {0x0ac,5573,100, 0,0,0x00 217 {0x54, 0x7f, {0x0ad,2500,100, 0,0,0x00 218 {0x15, 0x6c, {0x041,8479,100, 0,2,0x00 219 }; 220 static const struct opl4_region regions_18[] = 221 {0x15, 0x2f, {0x0b3,6964,100, 0,0,0x05 222 {0x30, 0x36, {0x0b7,5567,100, 0,0,0x0c 223 {0x37, 0x3c, {0x0b5,4653,100, 0,0,0x00 224 {0x3d, 0x43, {0x0b4,3892,100, 0,0,0x00 225 {0x44, 0x60, {0x0b6,2723,100, 0,0,0x00 226 }; 227 static const struct opl4_region regions_19[] = 228 {0x15, 0x31, {0x00c,6937,100, 0,0,0x00 229 {0x32, 0x38, {0x00d,5410,100, 0,0,0x00 230 {0x39, 0x47, {0x00e,4379,100, 0,0,0x00 231 {0x48, 0x6c, {0x00f,2843,100, 0,0,0x00 232 }; 233 static const struct opl4_region regions_1a[] = 234 {0x15, 0x31, {0x05a,6832,100, 0,0,0x00 235 {0x32, 0x3f, {0x05b,4897,100, 0,0,0x00 236 {0x40, 0x6c, {0x05c,3218,100, 0,0,0x00 237 }; 238 static const struct opl4_region regions_1b[] = 239 {0x15, 0x2c, {0x061,7053,100, 0,1,0x00 240 {0x2d, 0x31, {0x060,6434,100, 0,1,0x00 241 {0x32, 0x38, {0x063,5764,100, 0,1,0x00 242 {0x39, 0x3f, {0x062,4627,100, 0,1,0x00 243 {0x40, 0x44, {0x065,3963,100, 0,1,0x00 244 {0x45, 0x4b, {0x064,3313,100, 0,1,0x00 245 {0x4c, 0x54, {0x066,2462,100, 0,1,0x00 246 {0x55, 0x6c, {0x067,1307,100, 0,1,0x00 247 }; 248 static const struct opl4_region regions_1c[] = 249 {0x01, 0x7f, {0x068,4408,100, 0,0,0x00 250 }; 251 static const struct opl4_region regions_1d[] = 252 {0x00, 0x40, {0x0a5,6589,100, 0,1,0x00 253 {0x41, 0x7f, {0x0a6,5428,100, 0,1,0x00 254 }; 255 static const struct opl4_region regions_1e[] = 256 {0x15, 0x2a, {0x051,6928,100, 0,1,0x00 257 {0x2b, 0x2e, {0x052,6433,100, 0,1,0x00 258 {0x2f, 0x32, {0x053,5944,100, 0,1,0x00 259 {0x33, 0x36, {0x054,5391,100, 0,1,0x00 260 {0x37, 0x3a, {0x055,4897,100, 0,1,0x00 261 {0x3b, 0x3e, {0x056,4408,100, 0,1,0x00 262 {0x3f, 0x42, {0x057,3892,100, 0,1,0x00 263 {0x43, 0x46, {0x058,3361,100, 0,1,0x00 264 {0x47, 0x6c, {0x059,2784,100, 0,1,0x00 265 }; 266 static const struct opl4_region regions_1f[] = 267 {0x15, 0x44, {0x05e,5499,100, 0,0,0x00 268 {0x45, 0x49, {0x05d,4850,100, 0,0,0x00 269 {0x4a, 0x6c, {0x05f,4259,100, 0,0,0x00 270 }; 271 static const struct opl4_region regions_20[] = 272 {0x15, 0x30, {0x004,8053,100, 0,0,0x00 273 {0x31, 0x6c, {0x005,4754,100, 0,0,0x00 274 }; 275 static const struct opl4_region regions_21[] = 276 {0x01, 0x20, {0x04a,8762,100, 0,0,0x00 277 {0x21, 0x25, {0x04b,8114,100, 0,0,0x00 278 {0x26, 0x2a, {0x04c,7475,100, 0,0,0x00 279 {0x2b, 0x7f, {0x04d,6841,100, 0,0,0x00 280 }; 281 static const struct opl4_region regions_22[] = 282 {0x15, 0x23, {0x04f,7954,100, 0,0,0x00 283 {0x24, 0x2a, {0x050,7318,100, 0,0,0x05 284 {0x2b, 0x2f, {0x06b,6654,100, 0,0,0x00 285 {0x30, 0x47, {0x069,6031,100, 0,0,0x00 286 {0x48, 0x6c, {0x06a,5393,100, 0,0,0x00 287 }; 288 static const struct opl4_region regions_23[] = 289 {0x01, 0x7f, {0x04e,5297,100, 0,0,0x00 290 }; 291 static const struct opl4_region regions_24[] = 292 {0x15, 0x6c, {0x0a3,7606,100, 0,1,0x00 293 }; 294 static const struct opl4_region regions_25[] = 295 {0x01, 0x7f, {0x0a2,6694,100, 0,0,0x00 296 }; 297 static const struct opl4_region regions_26[] = 298 {0x15, 0x6c, {0x0be,7466,100, 0,1,0x00 299 }; 300 static const struct opl4_region regions_27[] = 301 {0x00, 0x7f, {0x117,8103,100, 0,1,0x00 302 }; 303 static const struct opl4_region regions_28[] = 304 {0x15, 0x3a, {0x105,5158,100, 0,3,0x00 305 {0x3b, 0x3f, {0x102,4754,100, 0,3,0x00 306 {0x40, 0x41, {0x106,4132,100, 0,3,0x00 307 {0x42, 0x44, {0x107,4033,100, 0,3,0x00 308 {0x45, 0x47, {0x108,3580,100, 0,3,0x00 309 {0x48, 0x4a, {0x10a,2957,100, 0,3,0x00 310 {0x4b, 0x4c, {0x10b,2724,100, 0,3,0x00 311 {0x4d, 0x4e, {0x10c,2530,100, 0,3,0x00 312 {0x4f, 0x51, {0x10d,2166,100, 0,3,0x00 313 {0x52, 0x6c, {0x109,1825,100, 0,3,0x00 314 }; 315 static const struct opl4_region regions_29[] = 316 {0x15, 0x32, {0x103,5780,100, 0,3,0x00 317 {0x33, 0x35, {0x104,5534,100, 0,3,0x00 318 {0x36, 0x38, {0x105,5158,100, 0,3,0x00 319 {0x39, 0x3d, {0x102,4754,100, 0,3,0x00 320 {0x3e, 0x3f, {0x106,4132,100, 0,3,0x00 321 {0x40, 0x42, {0x107,4033,100, 0,3,0x00 322 {0x43, 0x45, {0x108,3580,100, 0,3,0x00 323 {0x46, 0x48, {0x10a,2957,100, 0,3,0x00 324 {0x49, 0x4a, {0x10b,2724,100, 0,3,0x00 325 {0x4b, 0x4c, {0x10c,2530,100, 0,3,0x00 326 {0x4d, 0x4f, {0x10d,2166,100, 0,3,0x00 327 {0x50, 0x6c, {0x109,1825,100, 0,3,0x00 328 }; 329 static const struct opl4_region regions_2a[] = 330 {0x15, 0x2d, {0x112,6545,100, 0,3,0x00 331 {0x2e, 0x37, {0x113,5764,100, 0,3,0x00 332 {0x38, 0x3e, {0x115,4378,100, 0,3,0x00 333 {0x3f, 0x44, {0x116,3998,100, 0,3,0x00 334 {0x45, 0x6c, {0x114,3218,100, 0,3,0x00 335 }; 336 static const struct opl4_region regions_2b[] = 337 {0x15, 0x29, {0x110,7713,100, 0,1,0x00 338 {0x2a, 0x6c, {0x111,6162,100, 0,1,0x00 339 }; 340 static const struct opl4_region regions_2c[] = 341 {0x15, 0x3b, {0x0b0,4810,100, 0,0,0x0a 342 {0x3c, 0x41, {0x035,4035,100, 0,0,0x05 343 {0x42, 0x47, {0x033,3129,100, 0,0,0x05 344 {0x48, 0x52, {0x034,2625,100, 0,0,0x05 345 {0x53, 0x6c, {0x0af, 936,100, 0,0,0x00 346 }; 347 static const struct opl4_region regions_2d[] = 348 {0x15, 0x32, {0x0b8,6186,100, 0,0,0x00 349 {0x33, 0x3b, {0x0b9,5031,100, 0,0,0x00 350 {0x3c, 0x42, {0x0bb,4146,100, 0,0,0x00 351 {0x43, 0x48, {0x0ba,3245,100, 0,0,0x00 352 {0x49, 0x6c, {0x0bc,2352,100, 0,0,0x00 353 }; 354 static const struct opl4_region regions_2e[] = 355 {0x15, 0x46, {0x07e,3740,100, 0,1,0x00 356 {0x47, 0x6c, {0x07f,2319,100, 0,1,0x00 357 }; 358 static const struct opl4_region regions_2f[] = 359 {0x15, 0x6c, {0x100,6570,100, 0,0,0x00 360 }; 361 static const struct opl4_region regions_30[] = 362 {0x15, 0x3b, {0x13c,4806,100, 0,0,0x00 363 {0x3c, 0x41, {0x13e,4035,100, 0,0,0x00 364 {0x42, 0x47, {0x13d,3122,100, 0,0,0x00 365 {0x48, 0x52, {0x13f,2629,100, 0,0,0x00 366 {0x53, 0x6c, {0x140, 950,100, 0,0,0x00 367 }; 368 static const struct opl4_region regions_31[] = 369 {0x15, 0x3b, {0x0b0,4810,100, 0,1,0x0a 370 {0x3c, 0x41, {0x035,4035,100, 0,1,0x05 371 {0x42, 0x47, {0x033,3129,100, 0,1,0x05 372 {0x48, 0x52, {0x034,2625,100, 0,1,0x05 373 {0x53, 0x6c, {0x0af, 936,100, 0,1,0x00 374 }; 375 static const struct opl4_region regions_32[] = 376 {0x05, 0x71, {0x002,6045,100,-2,0,0x00 377 {0x15, 0x6c, {0x0ae,3261,100, 2,0,0x00 378 }; 379 static const struct opl4_region regions_33[] = 380 {0x15, 0x6c, {0x002,4513,100, 5,1,0x00 381 {0x15, 0x6c, {0x002,4501,100,-5,1,0x00 382 }; 383 static const struct opl4_region regions_34[] = 384 {0x15, 0x3a, {0x018,5010,100, 0,2,0x00 385 {0x3b, 0x40, {0x019,4370,100, 0,2,0x00 386 {0x41, 0x47, {0x01a,3478,100, 0,2,0x00 387 {0x48, 0x6c, {0x01b,2197,100, 0,2,0x00 388 }; 389 static const struct opl4_region regions_35[] = 390 {0x15, 0x6c, {0x029,3596,100, 0,0,0x00 391 }; 392 static const struct opl4_region regions_36[] = 393 {0x15, 0x6c, {0x02a,3482,100, 0,1,0x00 394 }; 395 static const struct opl4_region regions_37[] = 396 {0x15, 0x6c, {0x049,4394,100, 0,0,0x00 397 }; 398 static const struct opl4_region regions_38[] = 399 {0x15, 0x3c, {0x0f6,4706,100, 0,2,0x00 400 {0x3d, 0x43, {0x0f8,3894,100, 0,2,0x00 401 {0x44, 0x48, {0x0f7,3118,100, 0,2,0x00 402 {0x49, 0x4e, {0x0fa,2322,100, 0,2,0x00 403 {0x4f, 0x55, {0x0f9,1634,100, 0,2,0x00 404 {0x56, 0x6c, {0x0fb, 786,100, 0,2,0x00 405 }; 406 static const struct opl4_region regions_39[] = 407 {0x15, 0x3a, {0x0f0,5053,100, 0,1,0x00 408 {0x3b, 0x3f, {0x0f1,4290,100, 0,1,0x00 409 {0x40, 0x6c, {0x0f2,3580,100, 0,1,0x00 410 }; 411 static const struct opl4_region regions_3a[] = 412 {0x15, 0x2d, {0x085,7096,100, 0,1,0x00 413 {0x2e, 0x6c, {0x086,6014,100, 0,1,0x00 414 }; 415 static const struct opl4_region regions_3b[] = 416 {0x15, 0x45, {0x0b1,4135,100, 0,0,0x00 417 {0x46, 0x6c, {0x0b2,2599,100, 0,0,0x00 418 }; 419 static const struct opl4_region regions_3c[] = 420 {0x15, 0x49, {0x07c,3624,100, 0,2,0x00 421 {0x4a, 0x6c, {0x07d,2664,100, 0,2,0x00 422 }; 423 static const struct opl4_region regions_3d[] = 424 {0x15, 0x42, {0x0fc,4375,100, 0,0,0x00 425 {0x43, 0x6c, {0x0fd,2854,100, 0,0,0x00 426 }; 427 static const struct opl4_region regions_3e[] = 428 {0x01, 0x27, {0x0d3,9094,100,-1,0,0x00 429 {0x28, 0x2d, {0x0da,8335,100,-1,0,0x00 430 {0x2e, 0x33, {0x0d4,7558,100,-1,0,0x00 431 {0x34, 0x39, {0x0db,6785,100,-1,0,0x00 432 {0x3a, 0x3f, {0x0d5,6042,100,-1,0,0x00 433 {0x40, 0x45, {0x0dc,5257,100,-1,0,0x00 434 {0x46, 0x4b, {0x0d6,4493,100,-1,0,0x00 435 {0x4c, 0x51, {0x0dd,3741,100,-1,0,0x00 436 {0x52, 0x57, {0x0d7,3012,100,-1,0,0x00 437 {0x58, 0x5d, {0x0de,2167,100,-1,0,0x00 438 {0x5e, 0x63, {0x0d8,1421,100,-1,0,0x00 439 {0x64, 0x7f, {0x0d9,-115,100,-1,0,0x00 440 {0x01, 0x27, {0x118,9103,100, 1,1,0x00 441 {0x28, 0x2d, {0x119,8340,100, 1,1,0x00 442 {0x2e, 0x33, {0x11a,7565,100, 1,1,0x00 443 {0x34, 0x39, {0x11b,6804,100, 1,1,0x00 444 {0x3a, 0x3f, {0x11c,6042,100, 1,1,0x00 445 {0x40, 0x45, {0x11d,5277,100, 1,1,0x00 446 {0x46, 0x4b, {0x11e,4520,100, 1,1,0x00 447 {0x4c, 0x51, {0x11f,3741,100, 1,1,0x00 448 {0x52, 0x57, {0x120,3012,100, 1,1,0x00 449 {0x58, 0x5d, {0x121,2166,100, 1,1,0x00 450 {0x5e, 0x64, {0x122,1421,100, 1,1,0x00 451 {0x65, 0x7f, {0x123,-115,100, 1,1,0x00 452 }; 453 static const struct opl4_region regions_3f[] = 454 {0x01, 0x27, {0x118,9113,100, 3,6,0x00 455 {0x28, 0x2d, {0x119,8350,100, 3,6,0x00 456 {0x2e, 0x33, {0x11a,7575,100, 3,6,0x00 457 {0x34, 0x39, {0x11b,6814,100, 3,6,0x00 458 {0x3a, 0x3f, {0x11c,6052,100, 3,6,0x00 459 {0x40, 0x45, {0x11d,5287,100, 3,6,0x00 460 {0x46, 0x4b, {0x11e,4530,100, 3,6,0x00 461 {0x4c, 0x51, {0x11f,3751,100, 3,6,0x00 462 {0x52, 0x57, {0x120,3022,100, 3,6,0x00 463 {0x58, 0x5d, {0x121,2176,100, 3,6,0x00 464 {0x5e, 0x64, {0x122,1431,100, 3,6,0x00 465 {0x65, 0x7f, {0x123,-105,100, 3,6,0x00 466 {0x00, 0x7f, {0x124,4034,100,-3,2,0x00 467 }; 468 static const struct opl4_region regions_40[] = 469 {0x15, 0x3f, {0x0e3,4228,100, 0,1,0x00 470 {0x40, 0x45, {0x0e4,3495,100, 0,1,0x00 471 {0x46, 0x4b, {0x0e5,2660,100, 0,1,0x00 472 {0x4c, 0x51, {0x0e6,2002,100, 0,1,0x00 473 {0x52, 0x59, {0x0e7,1186,100, 0,1,0x00 474 {0x59, 0x6c, {0x0e8,1730,100, 0,1,0x00 475 }; 476 static const struct opl4_region regions_41[] = 477 {0x15, 0x32, {0x092,6204,100, 0,1,0x00 478 {0x33, 0x35, {0x096,5812,100, 0,1,0x00 479 {0x36, 0x3a, {0x099,5318,100, 0,1,0x00 480 {0x3b, 0x3b, {0x08f,5076,100, 0,1,0x00 481 {0x3c, 0x3e, {0x093,4706,100, 0,1,0x00 482 {0x3f, 0x41, {0x097,4321,100, 0,1,0x00 483 {0x42, 0x44, {0x09a,3893,100, 0,1,0x00 484 {0x45, 0x47, {0x090,3497,100, 0,1,0x00 485 {0x48, 0x4a, {0x094,3119,100, 0,1,0x00 486 {0x4b, 0x4d, {0x098,2726,100, 0,1,0x00 487 {0x4e, 0x50, {0x09b,2393,100, 0,1,0x00 488 {0x51, 0x53, {0x091,2088,100, 0,1,0x00 489 {0x54, 0x6c, {0x095,1732,100, 0,1,0x00 490 }; 491 static const struct opl4_region regions_42[] = 492 {0x24, 0x30, {0x0e9,6301,100, 0,1,0x00 493 {0x31, 0x34, {0x0ea,5781,100, 0,1,0x00 494 {0x35, 0x3a, {0x0eb,5053,100, 0,1,0x00 495 {0x3b, 0x41, {0x0ed,4165,100, 0,1,0x00 496 {0x42, 0x47, {0x0ec,3218,100, 0,1,0x00 497 {0x48, 0x51, {0x0ee,2462,100, 0,1,0x00 498 {0x52, 0x6c, {0x0ef,1421,100, 0,1,0x00 499 }; 500 static const struct opl4_region regions_43[] = 501 {0x15, 0x2d, {0x0df,6714,100, 0,1,0x00 502 {0x2e, 0x34, {0x0e1,5552,100, 0,1,0x00 503 {0x35, 0x39, {0x0e2,5178,100, 0,1,0x00 504 {0x3a, 0x6c, {0x0e0,4437,100, 0,1,0x00 505 }; 506 static const struct opl4_region regions_44[] = 507 {0x15, 0x3c, {0x042,4493,100, 0,1,0x00 508 {0x3d, 0x43, {0x044,3702,100, 0,1,0x00 509 {0x44, 0x49, {0x043,2956,100, 0,1,0x00 510 {0x4a, 0x4f, {0x046,2166,100, 0,1,0x00 511 {0x50, 0x55, {0x045,1420,100, 0,1,0x00 512 {0x56, 0x6c, {0x047, 630,100, 0,1,0x00 513 }; 514 static const struct opl4_region regions_45[] = 515 {0x15, 0x38, {0x03c,5098,100, 0,1,0x00 516 {0x39, 0x3e, {0x03b,4291,100, 0,1,0x00 517 {0x3f, 0x6c, {0x03d,3540,100, 0,1,0x00 518 }; 519 static const struct opl4_region regions_46[] = 520 {0x15, 0x22, {0x038,7833,100, 0,1,0x00 521 {0x23, 0x2e, {0x03a,7070,100, 0,1,0x00 522 {0x2f, 0x6c, {0x039,6302,100, 0,1,0x00 523 }; 524 static const struct opl4_region regions_47[] = 525 {0x15, 0x3b, {0x09e,5900,100, 0,1,0x00 526 {0x3c, 0x41, {0x0a0,5158,100, 0,1,0x00 527 {0x42, 0x4a, {0x09f,4260,100, 0,1,0x00 528 {0x4b, 0x6c, {0x0a1,2957,100, 0,1,0x00 529 }; 530 static const struct opl4_region regions_48[] = 531 {0x15, 0x40, {0x071,4803,100, 0,0,0x00 532 {0x41, 0x4d, {0x072,3314,100, 0,0,0x00 533 {0x4e, 0x53, {0x073,1731,100, 0,0,0x00 534 {0x54, 0x5f, {0x074,2085,100, 0,0,0x00 535 {0x60, 0x6c, {0x075,1421,100, 0,0,0x00 536 }; 537 static const struct opl4_region regions_49[] = 538 {0x15, 0x40, {0x071,4803,100, 0,0,0x00 539 {0x41, 0x4d, {0x072,3314,100, 0,0,0x00 540 {0x4e, 0x6c, {0x073,1731,100, 0,0,0x00 541 }; 542 static const struct opl4_region regions_4a[] = 543 {0x15, 0x6f, {0x0bd,4897,100, 0,0,0x00 544 }; 545 static const struct opl4_region regions_4b[] = 546 {0x15, 0x6c, {0x077,2359,100, 0,0,0x00 547 }; 548 static const struct opl4_region regions_4c[] = 549 {0x15, 0x6c, {0x077,2359,100, 0,0,0x00 550 {0x01, 0x7f, {0x125,7372,100, 0,0,0x1e 551 }; 552 static const struct opl4_region regions_4d[] = 553 {0x00, 0x7f, {0x0ab,4548,100, 0,0,0x00 554 {0x15, 0x6c, {0x076,3716,100, 0,0,0x00 555 }; 556 static const struct opl4_region regions_4e[] = 557 {0x00, 0x7f, {0x0aa,1731,100, 0,4,0x00 558 }; 559 static const struct opl4_region regions_4f[] = 560 {0x00, 0x7f, {0x0aa,1731,100, 0,1,0x00 561 }; 562 static const struct opl4_region regions_50[] = 563 {0x01, 0x2a, {0x0cc,9853,100, 3,0,0x00 564 {0x2b, 0x36, {0x0cd,6785,100, 3,0,0x00 565 {0x37, 0x42, {0x0ca,5248,100, 3,0,0x00 566 {0x43, 0x4e, {0x0cf,3713,100, 3,0,0x00 567 {0x4f, 0x5a, {0x0ce,2176,100, 3,0,0x00 568 {0x5b, 0x7f, {0x0cb, 640,100, 3,0,0x00 569 {0x01, 0x2a, {0x0cc,9844,100,-3,0,0x00 570 {0x2b, 0x36, {0x0cd,6776,100,-3,0,0x00 571 {0x37, 0x42, {0x0ca,5239,100,-3,0,0x00 572 {0x43, 0x4e, {0x0cf,3704,100,-3,0,0x00 573 {0x4f, 0x5a, {0x0ce,2167,100,-3,0,0x00 574 {0x5b, 0x7f, {0x0cb, 631,100,-3,0,0x00 575 }; 576 static const struct opl4_region regions_51[] = 577 {0x01, 0x27, {0x118,9108,100, 0,0,0x00 578 {0x28, 0x2d, {0x119,8345,100, 0,0,0x00 579 {0x2e, 0x33, {0x11a,7570,100, 0,0,0x00 580 {0x34, 0x39, {0x11b,6809,100, 0,0,0x00 581 {0x3a, 0x3f, {0x11c,6047,100, 0,0,0x00 582 {0x40, 0x45, {0x11d,5282,100, 0,0,0x00 583 {0x46, 0x4b, {0x11e,4525,100, 0,0,0x00 584 {0x4c, 0x51, {0x11f,3746,100, 0,0,0x00 585 {0x52, 0x57, {0x120,3017,100, 0,0,0x00 586 {0x58, 0x5d, {0x121,2171,100, 0,0,0x00 587 {0x5e, 0x66, {0x122,1426,100, 0,0,0x00 588 {0x67, 0x7f, {0x123,-110,100, 0,0,0x00 589 {0x01, 0x27, {0x118,9098,100, 0,0,0x00 590 {0x28, 0x2d, {0x119,8335,100, 0,0,0x00 591 {0x2e, 0x33, {0x11a,7560,100, 0,0,0x00 592 {0x34, 0x39, {0x11b,6799,100, 0,0,0x00 593 {0x3a, 0x3f, {0x11c,6037,100, 0,0,0x00 594 {0x40, 0x45, {0x11d,5272,100, 0,0,0x00 595 {0x46, 0x4b, {0x11e,4515,100, 0,0,0x00 596 {0x4c, 0x51, {0x11f,3736,100, 0,0,0x00 597 {0x52, 0x57, {0x120,3007,100, 0,0,0x00 598 {0x58, 0x5d, {0x121,2161,100, 0,0,0x00 599 {0x5e, 0x66, {0x122,1416,100, 0,0,0x00 600 {0x67, 0x7f, {0x123,-120,100, 0,0,0x00 601 }; 602 static const struct opl4_region regions_52[] = 603 {0x00, 0x7f, {0x0aa,1731,100, 0,0,0x00 604 {0x15, 0x6c, {0x076,3716,100, 0,0,0x00 605 }; 606 static const struct opl4_region regions_53[] = 607 {0x00, 0x7f, {0x13a,3665,100, 0,2,0x00 608 {0x01, 0x7f, {0x0fe,3660,100, 0,0,0x00 609 }; 610 static const struct opl4_region regions_54[] = 611 {0x00, 0x40, {0x0a5,6594,100, 0,3,0x00 612 {0x41, 0x7f, {0x0a6,5433,100, 0,3,0x00 613 {0x01, 0x27, {0x118,9098,100, 0,2,0x00 614 {0x28, 0x2d, {0x119,8335,100, 0,2,0x00 615 {0x2e, 0x33, {0x11a,7560,100, 0,2,0x00 616 {0x34, 0x39, {0x11b,6799,100, 0,2,0x00 617 {0x3a, 0x3f, {0x11c,6037,100, 0,2,0x00 618 {0x40, 0x45, {0x11d,5272,100, 0,2,0x00 619 {0x46, 0x4b, {0x11e,4515,100, 0,2,0x00 620 {0x4c, 0x51, {0x11f,3736,100, 0,2,0x00 621 {0x52, 0x57, {0x120,3007,100, 0,2,0x00 622 {0x58, 0x5d, {0x121,2161,100, 0,2,0x00 623 {0x5e, 0x66, {0x122,1416,100, 0,2,0x00 624 {0x67, 0x7f, {0x123,-120,100, 0,2,0x00 625 }; 626 static const struct opl4_region regions_55[] = 627 {0x00, 0x7f, {0x0aa,1739,100, 0,6,0x00 628 {0x15, 0x6c, {0x02a,3474,100, 0,1,0x00 629 }; 630 static const struct opl4_region regions_56[] = 631 {0x01, 0x27, {0x118,8468,100, 0,2,0x00 632 {0x28, 0x2d, {0x119,7705,100, 0,2,0x00 633 {0x2e, 0x33, {0x11a,6930,100, 0,2,0x00 634 {0x34, 0x39, {0x11b,6169,100, 0,2,0x00 635 {0x3a, 0x3f, {0x11c,5407,100, 0,2,0x00 636 {0x40, 0x45, {0x11d,4642,100, 0,2,0x00 637 {0x46, 0x4b, {0x11e,3885,100, 0,2,0x00 638 {0x4c, 0x51, {0x11f,3106,100, 0,2,0x00 639 {0x52, 0x57, {0x120,2377,100, 0,2,0x00 640 {0x58, 0x5d, {0x121,1531,100, 0,2,0x00 641 {0x5e, 0x64, {0x122, 786,100, 0,2,0x00 642 {0x65, 0x7f, {0x123,-750,100, 0,2,0x00 643 {0x05, 0x71, {0x002,4503,100, 0,1,0x00 644 }; 645 static const struct opl4_region regions_57[] = 646 {0x00, 0x7f, {0x117,8109,100, 0,1,0x00 647 {0x01, 0x27, {0x118,9097,100, 0,2,0x00 648 {0x28, 0x2d, {0x119,8334,100, 0,2,0x00 649 {0x2e, 0x33, {0x11a,7559,100, 0,2,0x00 650 {0x34, 0x39, {0x11b,6798,100, 0,2,0x00 651 {0x3a, 0x3f, {0x11c,6036,100, 0,2,0x00 652 {0x40, 0x45, {0x11d,5271,100, 0,2,0x00 653 {0x46, 0x4b, {0x11e,4514,100, 0,2,0x00 654 {0x4c, 0x51, {0x11f,3735,100, 0,2,0x00 655 {0x52, 0x57, {0x120,3006,100, 0,2,0x00 656 {0x58, 0x5d, {0x121,2160,100, 0,2,0x00 657 {0x5e, 0x66, {0x122,1415,100, 0,2,0x00 658 {0x67, 0x7f, {0x123,-121,100, 0,2,0x00 659 }; 660 static const struct opl4_region regions_58[] = 661 {0x15, 0x6c, {0x002,4501,100, 0,4,0x00 662 {0x15, 0x6c, {0x0f3,4253,100, 0,3,0x00 663 }; 664 static const struct opl4_region regions_59[] = 665 {0x15, 0x6c, {0x04e,5306,100, 2,2,0x00 666 {0x15, 0x6c, {0x029,3575,100,-2,2,0x00 667 }; 668 static const struct opl4_region regions_5a[] = 669 {0x01, 0x27, {0x118,9111,100, 0,3,0x00 670 {0x28, 0x2d, {0x119,8348,100, 0,3,0x00 671 {0x2e, 0x33, {0x11a,7573,100, 0,3,0x00 672 {0x34, 0x39, {0x11b,6812,100, 0,3,0x00 673 {0x3a, 0x3f, {0x11c,6050,100, 0,3,0x00 674 {0x40, 0x45, {0x11d,5285,100, 0,3,0x00 675 {0x46, 0x4b, {0x11e,4528,100, 0,3,0x00 676 {0x4c, 0x51, {0x11f,3749,100, 0,3,0x00 677 {0x52, 0x57, {0x120,3020,100, 0,3,0x00 678 {0x58, 0x5d, {0x121,2174,100, 0,3,0x00 679 {0x5e, 0x66, {0x122,1429,100, 0,3,0x00 680 {0x67, 0x7f, {0x123,-107,100, 0,3,0x00 681 {0x00, 0x7f, {0x124,4024,100, 0,2,0x00 682 }; 683 static const struct opl4_region regions_5b[] = 684 {0x15, 0x3a, {0x018,5010,100, 0,5,0x00 685 {0x3b, 0x40, {0x019,4370,100, 0,5,0x00 686 {0x41, 0x47, {0x01a,3478,100, 0,5,0x00 687 {0x48, 0x6c, {0x01b,2197,100, 0,5,0x00 688 {0x15, 0x6c, {0x02a,3482,100, 0,4,0x00 689 }; 690 static const struct opl4_region regions_5c[] = 691 {0x15, 0x6c, {0x101,4790,100,-1,1,0x00 692 {0x00, 0x7f, {0x0aa,1720,100, 1,1,0x00 693 }; 694 static const struct opl4_region regions_5d[] = 695 {0x15, 0x31, {0x00c,6943,100, 0,2,0x00 696 {0x32, 0x38, {0x00d,5416,100, 0,2,0x00 697 {0x39, 0x47, {0x00e,4385,100, 0,2,0x00 698 {0x48, 0x6c, {0x00f,2849,100, 0,2,0x00 699 {0x00, 0x7f, {0x03f,4224,100, 0,1,0x00 700 }; 701 static const struct opl4_region regions_5e[] = 702 {0x00, 0x7f, {0x124,4038,100, 0,2,0x00 703 {0x15, 0x6c, {0x02a,3471,100, 0,3,0x00 704 }; 705 static const struct opl4_region regions_5f[] = 706 {0x01, 0x27, {0x0d3,9100,100, 0,1,0x00 707 {0x28, 0x2d, {0x0da,8341,100, 0,1,0x00 708 {0x2e, 0x33, {0x0d4,7564,100, 0,1,0x00 709 {0x34, 0x39, {0x0db,6791,100, 0,1,0x00 710 {0x3a, 0x3f, {0x0d5,6048,100, 0,1,0x00 711 {0x40, 0x45, {0x0dc,5263,100, 0,1,0x00 712 {0x46, 0x4b, {0x0d6,4499,100, 0,1,0x00 713 {0x4c, 0x51, {0x0dd,3747,100, 0,1,0x00 714 {0x52, 0x57, {0x0d7,3018,100, 0,1,0x00 715 {0x58, 0x5d, {0x0de,2173,100, 0,1,0x00 716 {0x5e, 0x63, {0x0d8,1427,100, 0,1,0x00 717 {0x64, 0x7f, {0x0d9,-109,100, 0,1,0x00 718 {0x01, 0x27, {0x0d3,9088,100, 0,0,0x00 719 {0x28, 0x2d, {0x0da,8329,100, 0,0,0x00 720 {0x2e, 0x33, {0x0d4,7552,100, 0,0,0x00 721 {0x34, 0x39, {0x0db,6779,100, 0,0,0x00 722 {0x3a, 0x3f, {0x0d5,6036,100, 0,0,0x00 723 {0x40, 0x45, {0x0dc,5251,100, 0,0,0x00 724 {0x46, 0x4b, {0x0d6,4487,100, 0,0,0x00 725 {0x4c, 0x51, {0x0dd,3735,100, 0,0,0x00 726 {0x52, 0x57, {0x0d7,3006,100, 0,0,0x00 727 {0x58, 0x5d, {0x0de,2161,100, 0,0,0x00 728 {0x5e, 0x63, {0x0d8,1415,100, 0,0,0x00 729 {0x64, 0x7f, {0x0d9,-121,100, 0,0,0x00 730 }; 731 static const struct opl4_region regions_60[] = 732 {0x01, 0x7f, {0x04e,9345,100, 0,2,0x00 733 {0x00, 0x7f, {0x143,5586, 20, 0,2,0x00 734 }; 735 static const struct opl4_region regions_61[] = 736 {0x15, 0x6c, {0x002,4501,100, 0,2,0x00 737 {0x15, 0x6c, {0x0f3,1160,100, 0,5,0x00 738 }; 739 static const struct opl4_region regions_62[] = 740 {0x15, 0x6c, {0x0f3,1826,100, 0,3,0x00 741 {0x15, 0x2c, {0x06d,7454,100, 0,3,0x00 742 {0x2d, 0x36, {0x06e,5925,100, 0,3,0x00 743 {0x37, 0x6c, {0x06f,4403,100, 0,3,0x09 744 }; 745 static const struct opl4_region regions_63[] = 746 {0x05, 0x71, {0x002,4509,100, 0,2,0x00 747 {0x15, 0x2f, {0x0b3,6964,100, 0,2,0x05 748 {0x30, 0x36, {0x0b7,5567,100, 0,2,0x0c 749 {0x37, 0x3c, {0x0b5,4653,100, 0,2,0x00 750 {0x3d, 0x43, {0x0b4,3892,100, 0,2,0x00 751 {0x44, 0x60, {0x0b6,2723,100, 0,2,0x00 752 }; 753 static const struct opl4_region regions_64[] = 754 {0x00, 0x7f, {0x137,5285,100, 0,2,0x00 755 {0x15, 0x6c, {0x02a,3481,100, 0,1,0x00 756 }; 757 static const struct opl4_region regions_65[] = 758 {0x15, 0x6c, {0x002,4501,100,-1,2,0x00 759 {0x15, 0x6c, {0x009,9679, 20, 1,4,0x00 760 }; 761 static const struct opl4_region regions_66[] = 762 {0x15, 0x6c, {0x02a,3487,100, 0,3,0x00 763 {0x00, 0x7f, {0x124,4027,100, 0,3,0x00 764 }; 765 static const struct opl4_region regions_67[] = 766 {0x15, 0x31, {0x00c,6940,100, 0,3,0x00 767 {0x32, 0x38, {0x00d,5413,100, 0,3,0x00 768 {0x39, 0x47, {0x00e,4382,100, 0,3,0x00 769 {0x48, 0x6c, {0x00f,2846,100, 0,3,0x00 770 {0x15, 0x6c, {0x002,4498,100, 0,2,0x00 771 }; 772 static const struct opl4_region regions_68[] = 773 {0x00, 0x7f, {0x10f,4408,100, 0,2,0x00 774 }; 775 static const struct opl4_region regions_69[] = 776 {0x15, 0x34, {0x013,5685,100, 0,0,0x00 777 {0x35, 0x38, {0x014,5009,100, 0,0,0x00 778 {0x39, 0x3c, {0x012,4520,100, 0,0,0x00 779 {0x3d, 0x44, {0x015,3622,100, 0,0,0x00 780 {0x45, 0x4c, {0x017,2661,100, 0,0,0x00 781 {0x4d, 0x6d, {0x016,1632,100, 0,0,0x00 782 }; 783 static const struct opl4_region regions_6a[] = 784 {0x15, 0x6c, {0x10e,3273,100, 0,0,0x00 785 }; 786 static const struct opl4_region regions_6b[] = 787 {0x00, 0x7f, {0x0a9,4033,100, 0,0,0x00 788 }; 789 static const struct opl4_region regions_6c[] = 790 {0x00, 0x7f, {0x137,3749,100, 0,0,0x00 791 }; 792 static const struct opl4_region regions_6d[] = 793 {0x15, 0x39, {0x0a4,7683,100, 0,4,0x00 794 {0x15, 0x39, {0x0a7,7680,100, 0,1,0x00 795 {0x3a, 0x6c, {0x0a8,3697,100, 0,1,0x00 796 }; 797 static const struct opl4_region regions_6e[] = 798 {0x15, 0x3a, {0x105,5158,100, 0,1,0x00 799 {0x3b, 0x3f, {0x102,4754,100, 0,1,0x00 800 {0x40, 0x41, {0x106,4132,100, 0,1,0x00 801 {0x42, 0x44, {0x107,4033,100, 0,1,0x00 802 {0x45, 0x47, {0x108,3580,100, 0,1,0x00 803 {0x48, 0x4a, {0x10a,2957,100, 0,1,0x00 804 {0x4b, 0x4c, {0x10b,2724,100, 0,1,0x00 805 {0x4d, 0x4e, {0x10c,2530,100, 0,1,0x00 806 {0x4f, 0x51, {0x10d,2166,100, 0,1,0x00 807 {0x52, 0x6c, {0x109,1825,100, 0,1,0x00 808 }; 809 static const struct opl4_region regions_6f[] = 810 {0x15, 0x6c, {0x041,6946,100, 0,1,0x00 811 }; 812 static const struct opl4_region regions_70[] = 813 {0x15, 0x73, {0x0f3,1821,100, 0,3,0x00 814 {0x00, 0x7f, {0x137,5669,100, 0,3,0x00 815 }; 816 static const struct opl4_region regions_71[] = 817 {0x15, 0x74, {0x00b,2474,100, 0,0,0x00 818 }; 819 static const struct opl4_region regions_72[] = 820 {0x01, 0x7f, {0x0fe,3670,100, 0,0,0x00 821 {0x15, 0x6c, {0x100,9602,100, 0,0,0x00 822 }; 823 static const struct opl4_region regions_73[] = 824 {0x15, 0x6c, {0x02c,2963, 50, 0,0,0x07 825 }; 826 static const struct opl4_region regions_74[] = 827 {0x13, 0x6c, {0x03e,1194, 50, 0,0,0x00 828 }; 829 static const struct opl4_region regions_75[] = 830 {0x15, 0x6c, {0x0c7,6418, 50, 0,0,0x00 831 }; 832 static const struct opl4_region regions_76[] = 833 {0x15, 0x6c, {0x026,3898, 50, 0,0,0x00 834 }; 835 static const struct opl4_region regions_77[] = 836 {0x15, 0x6c, {0x031,4138, 50, 0,0,0x00 837 }; 838 static const struct opl4_region regions_78[] = 839 {0x15, 0x6c, {0x138,5266,100, 0,0,0x00 840 }; 841 static const struct opl4_region regions_79[] = 842 {0x01, 0x7f, {0x125,4269,100, 0,0,0x1e 843 }; 844 static const struct opl4_region regions_7a[] = 845 {0x15, 0x6c, {0x008,2965, 20,-2,0,0x00 846 {0x01, 0x7f, {0x037,4394, 20, 2,0,0x14 847 }; 848 static const struct opl4_region regions_7b[] = 849 {0x15, 0x6c, {0x009,8078, 5,-4,7,0x00 850 {0x15, 0x6c, {0x009,3583, 5, 4,5,0x00 851 }; 852 static const struct opl4_region regions_7c[] = 853 {0x15, 0x6c, {0x003,3602, 10, 0,0,0x00 854 }; 855 static const struct opl4_region regions_7d[] = 856 {0x0c, 0x7f, {0x001,2965, 10,-2,0,0x00 857 {0x01, 0x7f, {0x037,4394, 10, 2,0,0x44 858 }; 859 static const struct opl4_region regions_7e[] = 860 {0x15, 0x6c, {0x036,8273, 20,-6,7,0x00 861 {0x15, 0x6c, {0x036,8115, 5, 6,7,0x00 862 }; 863 static const struct opl4_region regions_7f[] = 864 {0x15, 0x6c, {0x139,2858, 20, 0,0,0x00 865 }; 866 static const struct opl4_region regions_drums[ 867 {0x18, 0x18, {0x0cb,6397,100, 3,0,0x00 868 {0x19, 0x19, {0x0c4,3714,100, 0,0,0x00 869 {0x1a, 0x1a, {0x0c4,3519,100, 0,0,0x00 870 {0x1b, 0x1b, {0x0c4,3586,100, 0,0,0x00 871 {0x1c, 0x1c, {0x0c4,3586,100, 0,0,0x00 872 {0x1e, 0x1e, {0x0c3,4783,100, 0,0,0x00 873 {0x1f, 0x1f, {0x0d1,4042,100, 0,0,0x00 874 {0x20, 0x20, {0x0d2,5943,100, 0,0,0x00 875 {0x21, 0x21, {0x011,3842,100, 0,0,0x00 876 {0x23, 0x23, {0x011,4098,100, 0,0,0x00 877 {0x24, 0x24, {0x011,4370,100, 0,0,0x00 878 {0x25, 0x25, {0x0d2,4404,100, 0,0,0x00 879 {0x26, 0x26, {0x0d1,4298,100, 0,0,0x00 880 {0x27, 0x27, {0x00a,4403,100,-1,0,0x00 881 {0x28, 0x28, {0x0d1,4554,100, 0,0,0x00 882 {0x29, 0x29, {0x0c8,4242,100,-4,0,0x00 883 {0x2a, 0x2a, {0x079,6160,100, 2,0,0x00 884 {0x2b, 0x2b, {0x0c8,4626,100,-3,0,0x00 885 {0x2c, 0x2c, {0x07b,6039,100, 2,0,0x00 886 {0x2d, 0x2d, {0x0c8,5394,100,-2,0,0x00 887 {0x2e, 0x2e, {0x07a,5690,100, 2,0,0x00 888 {0x2f, 0x2f, {0x0c7,5185,100, 2,0,0x00 889 {0x30, 0x30, {0x0c7,5650,100, 3,0,0x00 890 {0x31, 0x31, {0x031,4395,100, 2,0,0x00 891 {0x32, 0x32, {0x0c7,6162,100, 4,0,0x00 892 {0x33, 0x33, {0x02e,4391,100,-2,0,0x00 893 {0x34, 0x34, {0x07a,3009,100,-2,0,0x00 894 {0x35, 0x35, {0x021,4522,100,-3,0,0x00 895 {0x36, 0x36, {0x025,5163,100, 1,0,0x00 896 {0x37, 0x37, {0x031,5287,100,-1,0,0x00 897 {0x38, 0x38, {0x01d,4395,100, 2,0,0x00 898 {0x39, 0x39, {0x031,4647,100,-2,0,0x00 899 {0x3a, 0x3a, {0x09d,4426,100,-4,0,0x00 900 {0x3b, 0x3b, {0x02e,4659,100,-2,0,0x00 901 {0x3c, 0x3c, {0x01c,4769,100, 4,0,0x00 902 {0x3d, 0x3d, {0x01c,4611,100, 4,0,0x00 903 {0x3e, 0x3e, {0x01e,4402,100,-3,0,0x00 904 {0x3f, 0x3f, {0x01f,4387,100,-3,0,0x00 905 {0x40, 0x40, {0x01f,3983,100,-2,0,0x00 906 {0x41, 0x41, {0x09c,4526,100, 2,0,0x00 907 {0x42, 0x42, {0x09c,4016,100, 2,0,0x00 908 {0x43, 0x43, {0x00b,4739,100,-4,0,0x00 909 {0x44, 0x44, {0x00b,4179,100,-4,0,0x00 910 {0x45, 0x45, {0x02f,4787,100,-4,0,0x00 911 {0x46, 0x46, {0x030,4665,100,-4,0,0x00 912 {0x47, 0x47, {0x144,4519,100, 4,0,0x00 913 {0x48, 0x48, {0x144,4111,100, 4,0,0x00 914 {0x49, 0x49, {0x024,6408,100, 3,0,0x00 915 {0x4a, 0x4a, {0x024,4144,100, 3,0,0x00 916 {0x4b, 0x4b, {0x020,4001,100, 2,0,0x00 917 {0x4c, 0x4c, {0x02c,4402,100, 4,0,0x00 918 {0x4d, 0x4d, {0x02c,3612,100, 4,0,0x00 919 {0x4e, 0x4e, {0x022,4129,100,-2,0,0x00 920 {0x4f, 0x4f, {0x023,4147,100,-2,0,0x00 921 {0x50, 0x50, {0x032,4412,100,-4,0,0x00 922 {0x51, 0x51, {0x032,4385,100,-4,0,0x00 923 {0x52, 0x52, {0x02f,5935,100,-1,0,0x00 924 }; 925 926 #define REGION(num) { ARRAY_SIZE(regions ## nu 927 const struct opl4_region_ptr snd_yrw801_region 928 REGION(_00), REGION(_01), REGION(_02), 929 REGION(_04), REGION(_05), REGION(_06), 930 REGION(_08), REGION(_09), REGION(_0a), 931 REGION(_0c), REGION(_0d), REGION(_0e), 932 REGION(_10), REGION(_11), REGION(_12), 933 REGION(_14), REGION(_15), REGION(_16), 934 REGION(_18), REGION(_19), REGION(_1a), 935 REGION(_1c), REGION(_1d), REGION(_1e), 936 REGION(_20), REGION(_21), REGION(_22), 937 REGION(_24), REGION(_25), REGION(_26), 938 REGION(_28), REGION(_29), REGION(_2a), 939 REGION(_2c), REGION(_2d), REGION(_2e), 940 REGION(_30), REGION(_31), REGION(_32), 941 REGION(_34), REGION(_35), REGION(_36), 942 REGION(_38), REGION(_39), REGION(_3a), 943 REGION(_3c), REGION(_3d), REGION(_3e), 944 REGION(_40), REGION(_41), REGION(_42), 945 REGION(_44), REGION(_45), REGION(_46), 946 REGION(_48), REGION(_49), REGION(_4a), 947 REGION(_4c), REGION(_4d), REGION(_4e), 948 REGION(_50), REGION(_51), REGION(_52), 949 REGION(_54), REGION(_55), REGION(_56), 950 REGION(_58), REGION(_59), REGION(_5a), 951 REGION(_5c), REGION(_5d), REGION(_5e), 952 REGION(_60), REGION(_61), REGION(_62), 953 REGION(_64), REGION(_65), REGION(_66), 954 REGION(_68), REGION(_69), REGION(_6a), 955 REGION(_6c), REGION(_6d), REGION(_6e), 956 REGION(_70), REGION(_71), REGION(_72), 957 REGION(_74), REGION(_75), REGION(_76), 958 REGION(_78), REGION(_79), REGION(_7a), 959 REGION(_7c), REGION(_7d), REGION(_7e), 960 REGION(_drums) 961 }; 962
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.