From 7f90b8de58744a8a2f65f7e7f72c5d07fb94742a Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Sat, 9 Apr 2022 01:51:35 -0700 Subject: [PATCH] MusyX: Correct global variable locations, and move synth_dbtab to C --- asm/Runtime/runtime.s | 4 +- asm/musyx/creverb.s | 2 +- asm/musyx/hardware.s | 4 +- asm/musyx/hw_dspctrl.s | 28 +- asm/musyx/hw_volconv.s | 20 +- asm/musyx/snd_midictrl.s | 54 +- asm/musyx/synth_ac.s | 274 ++++++- asm/musyx/synth_adsr.s | 16 +- asm/musyx/synthdata.s | 1062 --------------------------- asm/musyx/synthmacros.s | 521 ++++++++++++- {src => include}/musyx/dsp_import.h | 0 include/musyx/synth_dbtab.h | 17 + obj_files.mk | 1 + src/musyx/dsp_import.c | 2 +- src/musyx/synth_dbtab.c | 112 +++ 15 files changed, 966 insertions(+), 1151 deletions(-) rename {src => include}/musyx/dsp_import.h (100%) create mode 100644 include/musyx/synth_dbtab.h create mode 100644 src/musyx/synth_dbtab.c diff --git a/asm/Runtime/runtime.s b/asm/Runtime/runtime.s index 9eaad443..9ee2f3c5 100644 --- a/asm/Runtime/runtime.s +++ b/asm/Runtime/runtime.s @@ -137,8 +137,8 @@ func_80389A58: _savegpr_20: /* 80389A60 003869C0 92 8B FF D0 */ stw r20, -0x30(r11) -.global func_80389A64 -func_80389A64: +.global _savegpr_21 +_savegpr_21: /* 80389A64 003869C4 92 AB FF D4 */ stw r21, -0x2c(r11) .global _savegpr_22 diff --git a/asm/musyx/creverb.s b/asm/musyx/creverb.s index b3fb89ea..ca58f0e1 100644 --- a/asm/musyx/creverb.s +++ b/asm/musyx/creverb.s @@ -101,7 +101,7 @@ ReverbSTDCreate: /* 803B5280 003B21E0 DB 21 00 40 */ stfd f25, 0x40(r1) /* 803B5284 003B21E4 F3 21 00 48 */ psq_st f25, 72(r1), 0, qr0 /* 803B5288 003B21E8 39 61 00 40 */ addi r11, r1, 0x40 -/* 803B528C 003B21EC 4B FD 47 D9 */ bl func_80389A64 +/* 803B528C 003B21EC 4B FD 47 D9 */ bl _savegpr_21 /* 803B5290 003B21F0 FF 20 08 90 */ fmr f25, f1 /* 803B5294 003B21F4 C0 C2 D6 90 */ lfs f6, lbl_805AF3B0@sda21(r2) /* 803B5298 003B21F8 FF 80 10 90 */ fmr f28, f2 diff --git a/asm/musyx/hardware.s b/asm/musyx/hardware.s index 20e9bfd0..388f9d85 100644 --- a/asm/musyx/hardware.s +++ b/asm/musyx/hardware.s @@ -540,9 +540,9 @@ lbl_803B347C: /* 803B34E4 003B0444 40 81 00 08 */ ble lbl_803B34EC /* 803B34E8 003B0448 38 80 03 FF */ li r4, 0x3ff lbl_803B34EC: -/* 803B34EC 003B044C 3C 60 80 3F */ lis r3, lbl_803F39A4@ha +/* 803B34EC 003B044C 3C 60 80 3F */ lis r3, dspScale2IndexTab@ha /* 803B34F0 003B0450 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13) -/* 803B34F4 003B0454 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803B34F4 003B0454 38 63 39 A4 */ addi r3, r3, dspScale2IndexTab@l /* 803B34F8 003B0458 7C 83 20 AE */ lbzx r4, r3, r4 /* 803B34FC 003B045C 7C 60 FA 14 */ add r3, r0, r31 /* 803B3500 003B0460 20 04 00 C1 */ subfic r0, r4, 0xc1 diff --git a/asm/musyx/hw_dspctrl.s b/asm/musyx/hw_dspctrl.s index 60e77af2..44f9ffd0 100644 --- a/asm/musyx/hw_dspctrl.s +++ b/asm/musyx/hw_dspctrl.s @@ -60,15 +60,19 @@ salMessageCallback: .section .data, "wa" -.global lbl_803F3FA8 -lbl_803F3FA8: +.global dspSRCCycles +dspSRCCycles: # ROM: 0x3F0FA8 - .4byte 0x0BAE0BAE - .4byte 0x045B0CE4 - .4byte 0x0CE4045B - .4byte 0x0E740E74 - .4byte 0x045B0000 - .4byte 0 + .2byte 0x0BAE + .2byte 0x0BAE + .2byte 0x045B + .2byte 0x0CE4 + .2byte 0x0CE4 + .2byte 0x045B + .2byte 0x0E74 + .2byte 0x0E74 + .2byte 0x045B + .balign 8 .section .rodata @@ -2567,17 +2571,17 @@ lbl_803ACFF4: lbl_803AD034: /* 803AD034 003A9F94 1C 84 00 06 */ mulli r4, r4, 6 /* 803AD038 003A9F98 A0 13 00 08 */ lhz r0, 8(r19) -/* 803AD03C 003A9F9C 3C 60 80 3F */ lis r3, lbl_803F3FA8@ha +/* 803AD03C 003A9F9C 3C 60 80 3F */ lis r3, dspSRCCycles@ha /* 803AD040 003A9FA0 54 00 08 3C */ slwi r0, r0, 1 -/* 803AD044 003A9FA4 38 63 3F A8 */ addi r3, r3, lbl_803F3FA8@l +/* 803AD044 003A9FA4 38 63 3F A8 */ addi r3, r3, dspSRCCycles@l /* 803AD048 003A9FA8 7C 63 22 14 */ add r3, r3, r4 /* 803AD04C 003A9FAC 7C 03 02 2E */ lhzx r0, r3, r0 /* 803AD050 003A9FB0 7E F7 02 14 */ add r23, r23, r0 /* 803AD054 003A9FB4 48 00 00 20 */ b lbl_803AD074 lbl_803AD058: /* 803AD058 003A9FB8 A0 93 00 08 */ lhz r4, 8(r19) -/* 803AD05C 003A9FBC 3C 60 80 3F */ lis r3, lbl_803F3FA8@ha -/* 803AD060 003A9FC0 38 03 3F A8 */ addi r0, r3, lbl_803F3FA8@l +/* 803AD05C 003A9FBC 3C 60 80 3F */ lis r3, dspSRCCycles@ha +/* 803AD060 003A9FC0 38 03 3F A8 */ addi r0, r3, dspSRCCycles@l /* 803AD064 003A9FC4 54 83 08 3C */ slwi r3, r4, 1 /* 803AD068 003A9FC8 7C 60 1A 14 */ add r3, r0, r3 /* 803AD06C 003A9FCC A0 03 00 0C */ lhz r0, 0xc(r3) diff --git a/asm/musyx/hw_volconv.s b/asm/musyx/hw_volconv.s index 1a97eee7..83eddc65 100644 --- a/asm/musyx/hw_volconv.s +++ b/asm/musyx/hw_volconv.s @@ -54,8 +54,8 @@ lbl_805AF320: .section .data, "wa" -.global lbl_803F3FC0 -lbl_803F3FC0: +.global musyx_vol_tab +musyx_vol_tab: # ROM: 0x3F0FC0 .4byte 0 .4byte 0x380000FD @@ -186,10 +186,12 @@ lbl_803F3FC0: .4byte 0x3F7B3DF3 .4byte 0x3F800000 .4byte 0x3F800000 +pan_tab: .4byte 0 .4byte 0x3F3538EF .4byte 0x3F800000 .4byte 0x3F800000 +pan_tab_dpl2: .4byte 0x3F133333 .4byte 0x3F3538EF .4byte 0x3F800000 @@ -229,18 +231,18 @@ salCalcVolume: /* 803AE174 003AB0D4 DA 81 00 50 */ stfd f20, 0x50(r1) /* 803AE178 003AB0D8 F2 81 00 58 */ psq_st f20, 88(r1), 0, qr0 /* 803AE17C 003AB0DC 39 61 00 50 */ addi r11, r1, 0x50 -/* 803AE180 003AB0E0 4B FD B8 E5 */ bl func_80389A64 +/* 803AE180 003AB0E0 4B FD B8 E5 */ bl _savegpr_21 /* 803AE184 003AB0E4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 803AE188 003AB0E8 3C 60 80 3F */ lis r3, lbl_803F3DA4@ha -/* 803AE18C 003AB0EC 3B E3 3D A4 */ addi r31, r3, lbl_803F3DA4@l +/* 803AE188 003AB0E8 3C 60 80 3F */ lis r3, dspDLSVolTab@ha +/* 803AE18C 003AB0EC 3B E3 3D A4 */ addi r31, r3, dspDLSVolTab@l /* 803AE190 003AB0F0 FE C0 08 90 */ fmr f22, f1 -/* 803AE194 003AB0F4 3C 60 80 3F */ lis r3, lbl_803F3FC0@ha +/* 803AE194 003AB0F4 3C 60 80 3F */ lis r3, musyx_vol_tab@ha /* 803AE198 003AB0F8 FF E0 10 90 */ fmr f31, f2 /* 803AE19C 003AB0FC FE A0 18 90 */ fmr f21, f3 /* 803AE1A0 003AB100 7C 99 23 78 */ mr r25, r4 /* 803AE1A4 003AB104 7C FA 3B 78 */ mr r26, r7 /* 803AE1A8 003AB108 7D 1B 43 78 */ mr r27, r8 -/* 803AE1AC 003AB10C 3B C3 3F C0 */ addi r30, r3, lbl_803F3FC0@l +/* 803AE1AC 003AB10C 3B C3 3F C0 */ addi r30, r3, musyx_vol_tab@l /* 803AE1B0 003AB110 40 82 00 08 */ bne lbl_803AE1B8 /* 803AE1B4 003AB114 3B FE 00 00 */ addi r31, r30, 0 lbl_803AE1B8: @@ -501,7 +503,7 @@ lbl_803AE58C: /* 803AE5A0 003AB500 C0 02 D5 D4 */ lfs f0, lbl_805AF2F4@sda21(r2) /* 803AE5A4 003AB504 90 61 00 1C */ stw r3, 0x1c(r1) /* 803AE5A8 003AB508 54 64 10 3A */ slwi r4, r3, 2 -/* 803AE5AC 003AB50C 3B 7E 02 04 */ addi r27, r30, 0x204 +/* 803AE5AC 003AB50C 3B 7E 02 04 */ addi r27, r30, pan_tab - musyx_vol_tab /* 803AE5B0 003AB510 56 F7 10 3A */ slwi r23, r23, 2 /* 803AE5B4 003AB514 90 01 00 18 */ stw r0, 0x18(r1) /* 803AE5B8 003AB518 7C 7F 22 14 */ add r3, r31, r4 @@ -532,7 +534,7 @@ lbl_803AE58C: /* 803AE61C 003AB57C ED 4B 02 B2 */ fmuls f10, f11, f10 /* 803AE620 003AB580 57 A0 10 3A */ slwi r0, r29, 2 /* 803AE624 003AB584 EC D8 01 72 */ fmuls f6, f24, f5 -/* 803AE628 003AB588 38 7E 02 14 */ addi r3, r30, 0x214 +/* 803AE628 003AB588 38 7E 02 14 */ addi r3, r30, pan_tab_dpl2 - musyx_vol_tab /* 803AE62C 003AB58C EC BB 00 F2 */ fmuls f5, f27, f3 /* 803AE630 003AB590 57 84 10 3A */ slwi r4, r28, 2 /* 803AE634 003AB594 EC 6A 48 2A */ fadds f3, f10, f9 diff --git a/asm/musyx/snd_midictrl.s b/asm/musyx/snd_midictrl.s index e84655cf..029f9f51 100644 --- a/asm/musyx/snd_midictrl.s +++ b/asm/musyx/snd_midictrl.s @@ -37,28 +37,28 @@ lbl_803F41F8: lbl_803F4208: # ROM: 0x3F1208 - .4byte 0x803B2A78 - .4byte 0x803B2A80 - .4byte 0x803B2A88 - .4byte 0x803B2A90 - .4byte 0x803B2A98 - .4byte 0x803B2AA0 - .4byte 0x803B2AA8 - .4byte 0x803B2AB0 - .4byte 0x803B2AB8 + .4byte lbl_803B2A78 + .4byte lbl_803B2A80 + .4byte lbl_803B2A88 + .4byte lbl_803B2A90 + .4byte lbl_803B2A98 + .4byte lbl_803B2AA0 + .4byte lbl_803B2AA8 + .4byte lbl_803B2AB0 + .4byte lbl_803B2AB8 lbl_803F422C: # ROM: 0x3F122C - .4byte 0x803B2AF8 - .4byte 0x803B2B00 - .4byte 0x803B2B08 - .4byte 0x803B2B10 - .4byte 0x803B2B18 - .4byte 0x803B2B20 - .4byte 0x803B2B28 - .4byte 0x803B2B30 - .4byte 0x803B2B38 + .4byte lbl_803B2AF8 + .4byte lbl_803B2B00 + .4byte lbl_803B2B08 + .4byte lbl_803B2B10 + .4byte lbl_803B2B18 + .4byte lbl_803B2B20 + .4byte lbl_803B2B28 + .4byte lbl_803B2B30 + .4byte lbl_803B2B38 lbl_803F4250: @@ -2062,22 +2062,31 @@ inpTranslateExCtrl: /* 803B2A6C 003AF9CC 7C 04 00 2E */ lwzx r0, r4, r0 /* 803B2A70 003AF9D0 7C 09 03 A6 */ mtctr r0 /* 803B2A74 003AF9D4 4E 80 04 20 */ bctr +lbl_803B2A78: /* 803B2A78 003AF9D8 38 60 00 80 */ li r3, 0x80 /* 803B2A7C 003AF9DC 4E 80 00 20 */ blr +lbl_803B2A80: /* 803B2A80 003AF9E0 38 60 00 82 */ li r3, 0x82 /* 803B2A84 003AF9E4 4E 80 00 20 */ blr +lbl_803B2A88: /* 803B2A88 003AF9E8 38 60 00 A0 */ li r3, 0xa0 /* 803B2A8C 003AF9EC 4E 80 00 20 */ blr +lbl_803B2A90: /* 803B2A90 003AF9F0 38 60 00 A1 */ li r3, 0xa1 /* 803B2A94 003AF9F4 4E 80 00 20 */ blr +lbl_803B2A98: /* 803B2A98 003AF9F8 38 60 00 83 */ li r3, 0x83 /* 803B2A9C 003AF9FC 4E 80 00 20 */ blr +lbl_803B2AA0: /* 803B2AA0 003AFA00 38 60 00 84 */ li r3, 0x84 /* 803B2AA4 003AFA04 4E 80 00 20 */ blr +lbl_803B2AA8: /* 803B2AA8 003AFA08 38 60 00 A2 */ li r3, 0xa2 /* 803B2AAC 003AFA0C 4E 80 00 20 */ blr +lbl_803B2AB0: /* 803B2AB0 003AFA10 38 60 00 A3 */ li r3, 0xa3 /* 803B2AB4 003AFA14 4E 80 00 20 */ blr +lbl_803B2AB8: /* 803B2AB8 003AFA18 38 60 00 A4 */ li r3, 0xa4 /* 803B2ABC 003AFA1C 4E 80 00 20 */ blr @@ -2097,22 +2106,31 @@ inpGetExCtrl: /* 803B2AEC 003AFA4C 7C 05 00 2E */ lwzx r0, r5, r0 /* 803B2AF0 003AFA50 7C 09 03 A6 */ mtctr r0 /* 803B2AF4 003AFA54 4E 80 04 20 */ bctr +lbl_803B2AF8: /* 803B2AF8 003AFA58 38 C0 00 80 */ li r6, 0x80 /* 803B2AFC 003AFA5C 48 00 00 40 */ b lbl_803B2B3C +lbl_803B2B00: /* 803B2B00 003AFA60 38 C0 00 82 */ li r6, 0x82 /* 803B2B04 003AFA64 48 00 00 38 */ b lbl_803B2B3C +lbl_803B2B08: /* 803B2B08 003AFA68 38 C0 00 A0 */ li r6, 0xa0 /* 803B2B0C 003AFA6C 48 00 00 30 */ b lbl_803B2B3C +lbl_803B2B10: /* 803B2B10 003AFA70 38 C0 00 A1 */ li r6, 0xa1 /* 803B2B14 003AFA74 48 00 00 28 */ b lbl_803B2B3C +lbl_803B2B18: /* 803B2B18 003AFA78 38 C0 00 83 */ li r6, 0x83 /* 803B2B1C 003AFA7C 48 00 00 20 */ b lbl_803B2B3C +lbl_803B2B20: /* 803B2B20 003AFA80 38 C0 00 84 */ li r6, 0x84 /* 803B2B24 003AFA84 48 00 00 18 */ b lbl_803B2B3C +lbl_803B2B28: /* 803B2B28 003AFA88 38 C0 00 A2 */ li r6, 0xa2 /* 803B2B2C 003AFA8C 48 00 00 10 */ b lbl_803B2B3C +lbl_803B2B30: /* 803B2B30 003AFA90 38 C0 00 A3 */ li r6, 0xa3 /* 803B2B34 003AFA94 48 00 00 08 */ b lbl_803B2B3C +lbl_803B2B38: /* 803B2B38 003AFA98 38 C0 00 A4 */ li r6, 0xa4 lbl_803B2B3C: /* 803B2B3C 003AFA9C 54 C0 06 3E */ clrlwi r0, r6, 0x18 diff --git a/asm/musyx/synth_ac.s b/asm/musyx/synth_ac.s index a67b7fae..b16faeba 100644 --- a/asm/musyx/synth_ac.s +++ b/asm/musyx/synth_ac.s @@ -1,5 +1,271 @@ .include "macros.inc" +.section .data + +.global toneup_map +toneup_map: + # ROM: 0x3F0420 + .4byte 0x3F800000 + .4byte 0x3F879C80 + .4byte 0x3F8FACD8 + .4byte 0x3F9837F0 + .4byte 0x3FA14518 + .4byte 0x3FAADC08 + .4byte 0x3FB504F8 + .4byte 0x3FBFC888 + .4byte 0x3FCB2FF8 + .4byte 0x3FD74500 + .4byte 0x3FE411F8 + .4byte 0x3FF1A1C0 + .4byte 0x40000004 + .4byte 0x40079C80 + .4byte 0x400FACD8 + .4byte 0x401837F4 + .4byte 0x4021451C + .4byte 0x402ADC0C + .4byte 0x403504F8 + .4byte 0x403FC88C + .4byte 0x404B2FFC + .4byte 0x40574504 + .4byte 0x406411F8 + .4byte 0x4071A1C4 + .4byte 0x40800004 + .4byte 0x40879C80 + .4byte 0x408FACDA + .4byte 0x409837F4 + .4byte 0x40A1451C + .4byte 0x40AADC0E + .4byte 0x40B504F8 + .4byte 0x40BFC88C + .4byte 0x40CB2FFC + .4byte 0x40D74504 + .4byte 0x40E411F8 + .4byte 0x40F1A1C6 + .4byte 0x41000004 + .4byte 0x41079C81 + .4byte 0x410FACDB + .4byte 0x411837F5 + .4byte 0x4121451D + .4byte 0x412ADC0E + .4byte 0x413504F9 + .4byte 0x413FC88D + .4byte 0x414B2FFC + .4byte 0x41574504 + .4byte 0x416411F8 + .4byte 0x4171A1C7 + .4byte 0x41800004 + .4byte 0x41879C81 + .4byte 0x418FACDB + .4byte 0x419837F5 + .4byte 0x41A1451D + .4byte 0x41AADC0E + .4byte 0x41B504F9 + .4byte 0x41BFC88D + .4byte 0x41CB2FFC + .4byte 0x41D74504 + .4byte 0x41E411F8 + .4byte 0x41F1A1C7 + .4byte 0x42000004 + .4byte 0x42079C81 + .4byte 0x420FACDB + .4byte 0x421837F5 + .4byte 0x4221451D + .4byte 0x422ADC0E + .4byte 0x423504F9 + .4byte 0x423FC88D + .4byte 0x424B2FFC + .4byte 0x42574504 + .4byte 0x426411F8 + .4byte 0x4271A1C7 + .4byte 0x42800004 + .4byte 0x42879C81 + .4byte 0x428FACDB + .4byte 0x429837F5 + .4byte 0x42A1451D + .4byte 0x42AADC0E + .4byte 0x42B504F9 + .4byte 0x42BFC88D + .4byte 0x42CB2FFC + .4byte 0x42D74504 + .4byte 0x42E411F8 + .4byte 0x42F1A1C7 + .4byte 0x43000004 + .4byte 0x43079C81 + .4byte 0x430FACDB + .4byte 0x431837F5 + .4byte 0x4321451D + .4byte 0x432ADC0E + .4byte 0x433504F9 + .4byte 0x433FC88D + .4byte 0x434B2FFC + .4byte 0x43574504 + .4byte 0x436411F8 + .4byte 0x4371A1C7 + .4byte 0x43800004 + .4byte 0x43879C81 + .4byte 0x438FACDB + .4byte 0x439837F5 + .4byte 0x43A1451D + .4byte 0x43AADC0E + .4byte 0x43B504F9 + .4byte 0x43BFC88D + .4byte 0x43CB2FFC + .4byte 0x43D74504 + .4byte 0x43E411F8 + .4byte 0x43F1A1C7 + .4byte 0x44000004 + .4byte 0x44079C81 + .4byte 0x440FACDB + .4byte 0x441837F5 + .4byte 0x4421451D + .4byte 0x442ADC0E + .4byte 0x443504F9 + .4byte 0x443FC88D + .4byte 0x444B2FFC + .4byte 0x44574504 + .4byte 0x446411F8 + .4byte 0x4471A1C7 + .4byte 0x44800004 + .4byte 0x44879C81 + .4byte 0x448FACDB + .4byte 0x449837F5 + .4byte 0x44A1451D + .4byte 0x44AADC0E + .4byte 0x44B504F9 + .4byte 0x44BFC88D + +.global tonedown_tab +tonedown_tab: + # ROM: 0x3F0620 + .4byte 0x3F800000 + .4byte 0x3F71A1C0 + .4byte 0x3F6411F0 + .4byte 0x3F574500 + .4byte 0x3F4B2FF0 + .4byte 0x3F3FC880 + .4byte 0x3F3504F0 + .4byte 0x3F2ADC00 + .4byte 0x3F214510 + .4byte 0x3F1837F0 + .4byte 0x3F0FACD0 + .4byte 0x3F079C80 + .4byte 0x3F000000 + .4byte 0x3EF1A1C0 + .4byte 0x3EE411E0 + .4byte 0x3ED74500 + .4byte 0x3ECB3000 + .4byte 0x3EBFC880 + .4byte 0x3EB504E0 + .4byte 0x3EAADC00 + .4byte 0x3EA14520 + .4byte 0x3E9837E0 + .4byte 0x3E8FACE0 + .4byte 0x3E879C80 + .4byte 0x3E800000 + .4byte 0x3E71A1C0 + .4byte 0x3E641200 + .4byte 0x3E574500 + .4byte 0x3E4B3000 + .4byte 0x3E3FC880 + .4byte 0x3E350500 + .4byte 0x3E2ADC00 + .4byte 0x3E214500 + .4byte 0x3E183800 + .4byte 0x3E0FACC0 + .4byte 0x3E079C80 + .4byte 0x3E000000 + .4byte 0x3DF1A180 + .4byte 0x3DE41200 + .4byte 0x3DD74500 + .4byte 0x3DCB3000 + .4byte 0x3DBFC880 + .4byte 0x3DB50500 + .4byte 0x3DAADC00 + .4byte 0x3DA14500 + .4byte 0x3D983800 + .4byte 0x3D8FAD00 + .4byte 0x3D879C80 + .4byte 0x3D800000 + .4byte 0x3D71A200 + .4byte 0x3D641200 + .4byte 0x3D574500 + .4byte 0x3D4B3000 + .4byte 0x3D3FC900 + .4byte 0x3D350500 + .4byte 0x3D2ADC00 + .4byte 0x3D214500 + .4byte 0x3D183800 + .4byte 0x3D0FAD00 + .4byte 0x3D079C00 + .4byte 0x3D000000 + .4byte 0x3CF1A200 + .4byte 0x3CE41200 + .4byte 0x3CD74400 + .4byte 0x3CCB3000 + .4byte 0x3CBFC800 + .4byte 0x3CB50400 + .4byte 0x3CAADC00 + .4byte 0x3CA14600 + .4byte 0x3C983800 + .4byte 0x3C8FAC00 + .4byte 0x3C879C00 + .4byte 0x3C800000 + .4byte 0x3C71A000 + .4byte 0x3C641000 + .4byte 0x3C574400 + .4byte 0x3C4B3000 + .4byte 0x3C3FC800 + .4byte 0x3C350400 + .4byte 0x3C2ADC00 + .4byte 0x3C214400 + .4byte 0x3C183800 + .4byte 0x3C0FAC00 + .4byte 0x3C079C00 + .4byte 0x3C000000 + .4byte 0x3BF1A000 + .4byte 0x3BE41000 + .4byte 0x3BD74800 + .4byte 0x3BCB3000 + .4byte 0x3BBFC800 + .4byte 0x3BB50800 + .4byte 0x3BAAE000 + .4byte 0x3BA14800 + .4byte 0x3B983800 + .4byte 0x3B8FB000 + .4byte 0x3B87A000 + .4byte 0x3B800000 + .4byte 0x3B71A000 + .4byte 0x3B641000 + .4byte 0x3B574000 + .4byte 0x3B4B3000 + .4byte 0x3B3FD000 + .4byte 0x3B350000 + .4byte 0x3B2AE000 + .4byte 0x3B214000 + .4byte 0x3B183000 + .4byte 0x3B0FB000 + .4byte 0x3B07A000 + .4byte 0x3B000000 + .4byte 0x3AF1A000 + .4byte 0x3AE42000 + .4byte 0x3AD74000 + .4byte 0x3ACB2000 + .4byte 0x3ABFC000 + .4byte 0x3AB50000 + .4byte 0x3AAAE000 + .4byte 0x3AA14000 + .4byte 0x3A984000 + .4byte 0x3A8FA000 + .4byte 0x3A87A000 + .4byte 0x3A800000 + .4byte 0x3A71C000 + .4byte 0x3A640000 + .4byte 0x3A574000 + .4byte 0x3A4B4000 + .4byte 0x3A3FC000 + .4byte 0x3A350000 + .4byte 0x3A2AC000 + .section .sdata2 .global lbl_805AF2B0 lbl_805AF2B0: @@ -66,16 +332,16 @@ lbl_803A914C: /* 803A917C 003A60DC EC 20 08 28 */ fsubs f1, f0, f1 /* 803A9180 003A60E0 40 80 00 1C */ bge lbl_803A919C /* 803A9184 003A60E4 7C 06 28 50 */ subf r0, r6, r5 -/* 803A9188 003A60E8 3C 60 80 3F */ lis r3, lbl_803F3420@ha +/* 803A9188 003A60E8 3C 60 80 3F */ lis r3, toneup_map@ha /* 803A918C 003A60EC 54 00 10 3A */ slwi r0, r0, 2 -/* 803A9190 003A60F0 38 63 34 20 */ addi r3, r3, lbl_803F3420@l +/* 803A9190 003A60F0 38 63 34 20 */ addi r3, r3, toneup_map@l /* 803A9194 003A60F4 7C 03 04 2E */ lfsx f0, r3, r0 /* 803A9198 003A60F8 48 00 00 18 */ b lbl_803A91B0 lbl_803A919C: /* 803A919C 003A60FC 7C 05 30 50 */ subf r0, r5, r6 -/* 803A91A0 003A6100 3C 60 80 3F */ lis r3, lbl_803F3620@ha +/* 803A91A0 003A6100 3C 60 80 3F */ lis r3, tonedown_tab@ha /* 803A91A4 003A6104 54 00 10 3A */ slwi r0, r0, 2 -/* 803A91A8 003A6108 38 63 36 20 */ addi r3, r3, lbl_803F3620@l +/* 803A91A8 003A6108 38 63 36 20 */ addi r3, r3, tonedown_tab@l /* 803A91AC 003A610C 7C 03 04 2E */ lfsx f0, r3, r0 lbl_803A91B0: /* 803A91B0 003A6110 EC 01 00 32 */ fmuls f0, f1, f0 diff --git a/asm/musyx/synth_adsr.s b/asm/musyx/synth_adsr.s index 34cd8cf8..89343850 100644 --- a/asm/musyx/synth_adsr.s +++ b/asm/musyx/synth_adsr.s @@ -208,9 +208,9 @@ lbl_803A9460: /* 803A9464 003A63C4 28 04 00 00 */ cmplwi r4, 0 /* 803A9468 003A63C8 41 82 00 58 */ beq lbl_803A94C0 /* 803A946C 003A63CC 38 A0 00 03 */ li r5, 3 -/* 803A9470 003A63D0 3C 80 80 3F */ lis r4, lbl_803F3820@ha +/* 803A9470 003A63D0 3C 80 80 3F */ lis r4, dspAttenuationTab@ha /* 803A9474 003A63D4 98 A3 00 01 */ stb r5, 1(r3) -/* 803A9478 003A63D8 38 A4 38 20 */ addi r5, r4, lbl_803F3820@l +/* 803A9478 003A63D8 38 A4 38 20 */ addi r5, r4, dspAttenuationTab@l /* 803A947C 003A63DC 38 80 00 00 */ li r4, 0 /* 803A9480 003A63E0 A0 C3 00 1C */ lhz r6, 0x1c(r3) /* 803A9484 003A63E4 54 C6 80 1E */ slwi r6, r6, 0x10 @@ -289,8 +289,8 @@ lbl_803A956C: /* 803A957C 003A64DC 28 00 00 01 */ cmplwi r0, 1 /* 803A9580 003A64E0 40 82 00 24 */ bne lbl_803A95A4 /* 803A9584 003A64E4 80 1F 00 08 */ lwz r0, 8(r31) -/* 803A9588 003A64E8 3C 60 80 3F */ lis r3, lbl_803F39A4@ha -/* 803A958C 003A64EC 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803A9588 003A64E8 3C 60 80 3F */ lis r3, dspScale2IndexTab@ha +/* 803A958C 003A64EC 38 63 39 A4 */ addi r3, r3, dspScale2IndexTab@l /* 803A9590 003A64F0 7C 00 AE 70 */ srawi r0, r0, 0x15 /* 803A9594 003A64F4 7C 03 00 AE */ lbzx r0, r3, r0 /* 803A9598 003A64F8 20 00 00 C1 */ subfic r0, r0, 0xc1 @@ -389,8 +389,8 @@ lbl_803A96D0: /* 803A96E0 003A6640 28 00 00 01 */ cmplwi r0, 1 /* 803A96E4 003A6644 40 82 00 24 */ bne lbl_803A9708 /* 803A96E8 003A6648 80 1F 00 08 */ lwz r0, 8(r31) -/* 803A96EC 003A664C 3C 60 80 3F */ lis r3, lbl_803F39A4@ha -/* 803A96F0 003A6650 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803A96EC 003A664C 3C 60 80 3F */ lis r3, dspScale2IndexTab@ha +/* 803A96F0 003A6650 38 63 39 A4 */ addi r3, r3, dspScale2IndexTab@l /* 803A96F4 003A6654 7C 00 AE 70 */ srawi r0, r0, 0x15 /* 803A96F8 003A6658 7C 03 00 AE */ lbzx r0, r3, r0 /* 803A96FC 003A665C 20 00 00 C1 */ subfic r0, r0, 0xc1 @@ -510,9 +510,9 @@ lbl_803A9860: /* 803A9890 003A67F0 48 00 00 48 */ b lbl_803A98D8 lbl_803A9894: /* 803A9894 003A67F4 81 03 00 0C */ lwz r8, 0xc(r3) -/* 803A9898 003A67F8 3C C0 80 3F */ lis r6, lbl_803F3820@ha +/* 803A9898 003A67F8 3C C0 80 3F */ lis r6, dspAttenuationTab@ha /* 803A989C 003A67FC 80 E3 00 10 */ lwz r7, 0x10(r3) -/* 803A98A0 003A6800 38 C6 38 20 */ addi r6, r6, lbl_803F3820@l +/* 803A98A0 003A6800 38 C6 38 20 */ addi r6, r6, dspAttenuationTab@l /* 803A98A4 003A6804 7C E8 3A 14 */ add r7, r8, r7 /* 803A98A8 003A6808 90 E3 00 0C */ stw r7, 0xc(r3) /* 803A98AC 003A680C 80 E3 00 0C */ lwz r7, 0xc(r3) diff --git a/asm/musyx/synthdata.s b/asm/musyx/synthdata.s index 4efcdeac..c799e660 100644 --- a/asm/musyx/synthdata.s +++ b/asm/musyx/synthdata.s @@ -69,1068 +69,6 @@ dataCurveNum: dataSmpSDirNum: .skip 0x6 -.section .data, "wa" -.global lbl_803F2FD8 -lbl_803F2FD8: - # ROM: 0x3EFFD8 - .4byte 0x100010F3 - .4byte 0x11F51307 - .4byte 0x1428155B - .4byte 0x16A017F9 - .4byte 0x19661AE8 - .4byte 0x1C821E34 - .4byte 0x20000000 - -.global lbl_803F2FF4 -lbl_803F2FF4: - # ROM: 0x3EFFF4 - .4byte 0 - .4byte 0x0000000A - .4byte 0x00000014 - .4byte 0x0000001E - .4byte 0x00000028 - .4byte 0x00000032 - .4byte 0x0000003C - .4byte 0x00000046 - .4byte 0x00000050 - .4byte 0x0000005A - .4byte 0x00000064 - .4byte 0x0000006E - .4byte 0x0000006E - .4byte 0x00000078 - .4byte 0x00000082 - .4byte 0x0000008C - .4byte 0x00000096 - .4byte 0x000000A0 - .4byte 0x000000AA - .4byte 0x000000BE - .4byte 0x000000C8 - .4byte 0x000000DC - .4byte 0x000000E6 - .4byte 0x000000FA - .4byte 0x0000010E - .4byte 0x00000122 - .4byte 0x00000136 - .4byte 0x0000014A - .4byte 0x0000015E - .4byte 0x0000017C - .4byte 0x0000019A - .4byte 0x000001B8 - .4byte 0x000001D6 - .4byte 0x000001F4 - .4byte 0x0000021C - .4byte 0x00000244 - .4byte 0x0000026C - .4byte 0x00000294 - .4byte 0x000002C6 - .4byte 0x000002F8 - .4byte 0x00000334 - .4byte 0x00000370 - .4byte 0x000003AC - .4byte 0x000003E8 - .4byte 0x000003E8 - .4byte 0x0000044C - .4byte 0x000004B0 - .4byte 0x00000514 - .4byte 0x00000578 - .4byte 0x000005DC - .4byte 0x00000640 - .4byte 0x000006A4 - .4byte 0x00000708 - .4byte 0x000007D0 - .4byte 0x00000834 - .4byte 0x000008FC - .4byte 0x00000960 - .4byte 0x00000A28 - .4byte 0x00000AF0 - .4byte 0x00000BB8 - .4byte 0x00000C80 - .4byte 0x00000DAC - .4byte 0x00000E74 - .4byte 0x00000FA0 - .4byte 0x000010CC - .4byte 0x000011F8 - .4byte 0x00001324 - .4byte 0x000014B4 - .4byte 0x00001644 - .4byte 0x000017D4 - .4byte 0x00001964 - .4byte 0x00001B58 - .4byte 0x00001D4C - .4byte 0x00001FA4 - .4byte 0x00002198 - .4byte 0x00002454 - .4byte 0x000026AC - .4byte 0x00002710 - .4byte 0x00002AF8 - .4byte 0x00002EE0 - .4byte 0x000032C8 - .4byte 0x000036B0 - .4byte 0x00003A98 - .4byte 0x00003E80 - .4byte 0x00004268 - .4byte 0x00004650 - .4byte 0x00004A38 - .4byte 0x00005208 - .4byte 0x000055F0 - .4byte 0x00005DC0 - .4byte 0x00006590 - .4byte 0x00006D60 - .4byte 0x00007530 - .4byte 0x00007D00 - .4byte 0x000084D0 - .4byte 0x00009088 - .4byte 0x00009858 - .4byte 0x0000A410 - .4byte 0x0000AFC8 - .4byte 0x0000BF68 - .4byte 0x0000C350 - .4byte 0x0000D6D8 - .4byte 0x0000EA60 - .4byte 0x0000FDE8 - .4byte 0x00011170 - .4byte 0x000124F8 - .4byte 0x00013880 - .4byte 0x00014C08 - .4byte 0x00015F90 - .4byte 0x00017318 - .4byte 0x000186A0 - .4byte 0x00019A28 - .4byte 0x0001ADB0 - .4byte 0x0001C138 - .4byte 0x0001D4C0 - .4byte 0x0001E848 - .4byte 0x0001FBD0 - .4byte 0x00020F58 - .4byte 0x000222E0 - .4byte 0x00023668 - .4byte 0x000249F0 - .4byte 0x00025D78 - .4byte 0x00027100 - .4byte 0x00028488 - .4byte 0x00029810 - .4byte 0x0002AB98 - .4byte 0x0002BF20 - .4byte 0 - .4byte 0 - -.global lbl_803F31F8 -lbl_803F31F8: - # ROM: 0x3F01F8 - .4byte 0x00000001 - .4byte 0 - .4byte 0x00000002 - .4byte 0 - .4byte 0x00000004 - .4byte 0 - .4byte 0x00000008 - .4byte 0 - -.global lbl_803F3218 -lbl_803F3218: - # ROM: 0x3F0218 - .4byte 0x80000001 - .4byte 0x80000002 - .4byte 0x80000004 - .4byte 0x80000008 - -.global lbl_803F3228 -lbl_803F3228: - # ROM: 0x3F0228 - .4byte 0x00000010 - .4byte 0 - .4byte 0x00000020 - .4byte 0 - .4byte 0x00000040 - .4byte 0 - .4byte 0x00000080 - .4byte 0 - -.global lbl_803F3248 -lbl_803F3248: - # ROM: 0x3F0248 - .4byte 0x80000010 - .4byte 0x80000020 - .4byte 0x80000040 - .4byte 0x80000080 - -.global lbl_803F3258 -lbl_803F3258: - # ROM: 0x3F0258 - .4byte 0x803A5E98 - .4byte 0x803A5EB0 - .4byte 0x803A5EC8 - .4byte 0x803A5F00 - .4byte 0x803A5F3C - .4byte 0x803A5F50 - .4byte 0x803A5F60 - .4byte 0x803A5FA8 - .4byte 0x803A5FC4 - .4byte 0x803A5FD4 - .4byte 0x803A6050 - .4byte 0x803A60A0 - .4byte 0x803A60F0 - .4byte 0x803A6100 - .4byte 0x803A6110 - .4byte 0x803A6120 - .4byte 0x803A6130 - .4byte 0x803A6140 - .4byte 0x803A6150 - .4byte 0x803A6168 - .4byte 0x803A61A8 - .4byte 0x803A61B8 - .4byte 0x803A61C8 - .4byte 0x803A61D8 - .4byte 0x803A61E8 - .4byte 0x803A61FC - .4byte 0x803A6250 - .4byte 0x803A62D0 - .4byte 0x803A62E0 - .4byte 0x803A62F0 - .4byte 0x803A6358 - .4byte 0x803A63C0 - .4byte 0x803A63F8 - .4byte 0x803A6408 - .4byte 0x803A6464 - .4byte 0x803A64E8 - .4byte 0x803A6504 - .4byte 0x803A6558 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A656C - .4byte 0x803A65E4 - .4byte 0x803A6628 - .4byte 0x803A6638 - .4byte 0x803A66A8 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A66B8 - .4byte 0x803A6724 - .4byte 0x803A674C - .4byte 0x803A6764 - .4byte 0x803A677C - .4byte 0x803A6794 - .4byte 0x803A67A8 - .4byte 0x803A67B8 - .4byte 0x803A67F8 - .4byte 0x803A6824 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6878 - .4byte 0x803A6888 - .4byte 0x803A6898 - .4byte 0x803A68A8 - .4byte 0x803A68B8 - .4byte 0x803A68C8 - .4byte 0x803A68D8 - .4byte 0x803A68E8 - .4byte 0x803A68F8 - .4byte 0x803A6908 - .4byte 0x803A6918 - .4byte 0x803A6928 - .4byte 0x803A6938 - .4byte 0x803A6948 - .4byte 0x803A6958 - .4byte 0x803A6B04 - .4byte 0x803A6968 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A69B8 - .4byte 0x803A69E4 - .4byte 0x803A69F4 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6A28 - .4byte 0x803A6A3C - .4byte 0x803A6A50 - .4byte 0x803A6A64 - .4byte 0x803A6A78 - .4byte 0x803A6A8C - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6B04 - .4byte 0x803A6AE0 - .4byte 0x803A6AF4 - -.global lbl_803F3420 -lbl_803F3420: - # ROM: 0x3F0420 - .4byte 0x3F800000 - .4byte 0x3F879C80 - .4byte 0x3F8FACD8 - .4byte 0x3F9837F0 - .4byte 0x3FA14518 - .4byte 0x3FAADC08 - .4byte 0x3FB504F8 - .4byte 0x3FBFC888 - .4byte 0x3FCB2FF8 - .4byte 0x3FD74500 - .4byte 0x3FE411F8 - .4byte 0x3FF1A1C0 - .4byte 0x40000004 - .4byte 0x40079C80 - .4byte 0x400FACD8 - .4byte 0x401837F4 - .4byte 0x4021451C - .4byte 0x402ADC0C - .4byte 0x403504F8 - .4byte 0x403FC88C - .4byte 0x404B2FFC - .4byte 0x40574504 - .4byte 0x406411F8 - .4byte 0x4071A1C4 - .4byte 0x40800004 - .4byte 0x40879C80 - .4byte 0x408FACDA - .4byte 0x409837F4 - .4byte 0x40A1451C - .4byte 0x40AADC0E - .4byte 0x40B504F8 - .4byte 0x40BFC88C - .4byte 0x40CB2FFC - .4byte 0x40D74504 - .4byte 0x40E411F8 - .4byte 0x40F1A1C6 - .4byte 0x41000004 - .4byte 0x41079C81 - .4byte 0x410FACDB - .4byte 0x411837F5 - .4byte 0x4121451D - .4byte 0x412ADC0E - .4byte 0x413504F9 - .4byte 0x413FC88D - .4byte 0x414B2FFC - .4byte 0x41574504 - .4byte 0x416411F8 - .4byte 0x4171A1C7 - .4byte 0x41800004 - .4byte 0x41879C81 - .4byte 0x418FACDB - .4byte 0x419837F5 - .4byte 0x41A1451D - .4byte 0x41AADC0E - .4byte 0x41B504F9 - .4byte 0x41BFC88D - .4byte 0x41CB2FFC - .4byte 0x41D74504 - .4byte 0x41E411F8 - .4byte 0x41F1A1C7 - .4byte 0x42000004 - .4byte 0x42079C81 - .4byte 0x420FACDB - .4byte 0x421837F5 - .4byte 0x4221451D - .4byte 0x422ADC0E - .4byte 0x423504F9 - .4byte 0x423FC88D - .4byte 0x424B2FFC - .4byte 0x42574504 - .4byte 0x426411F8 - .4byte 0x4271A1C7 - .4byte 0x42800004 - .4byte 0x42879C81 - .4byte 0x428FACDB - .4byte 0x429837F5 - .4byte 0x42A1451D - .4byte 0x42AADC0E - .4byte 0x42B504F9 - .4byte 0x42BFC88D - .4byte 0x42CB2FFC - .4byte 0x42D74504 - .4byte 0x42E411F8 - .4byte 0x42F1A1C7 - .4byte 0x43000004 - .4byte 0x43079C81 - .4byte 0x430FACDB - .4byte 0x431837F5 - .4byte 0x4321451D - .4byte 0x432ADC0E - .4byte 0x433504F9 - .4byte 0x433FC88D - .4byte 0x434B2FFC - .4byte 0x43574504 - .4byte 0x436411F8 - .4byte 0x4371A1C7 - .4byte 0x43800004 - .4byte 0x43879C81 - .4byte 0x438FACDB - .4byte 0x439837F5 - .4byte 0x43A1451D - .4byte 0x43AADC0E - .4byte 0x43B504F9 - .4byte 0x43BFC88D - .4byte 0x43CB2FFC - .4byte 0x43D74504 - .4byte 0x43E411F8 - .4byte 0x43F1A1C7 - .4byte 0x44000004 - .4byte 0x44079C81 - .4byte 0x440FACDB - .4byte 0x441837F5 - .4byte 0x4421451D - .4byte 0x442ADC0E - .4byte 0x443504F9 - .4byte 0x443FC88D - .4byte 0x444B2FFC - .4byte 0x44574504 - .4byte 0x446411F8 - .4byte 0x4471A1C7 - .4byte 0x44800004 - .4byte 0x44879C81 - .4byte 0x448FACDB - .4byte 0x449837F5 - .4byte 0x44A1451D - .4byte 0x44AADC0E - .4byte 0x44B504F9 - .4byte 0x44BFC88D - -.global lbl_803F3620 -lbl_803F3620: - # ROM: 0x3F0620 - .4byte 0x3F800000 - .4byte 0x3F71A1C0 - .4byte 0x3F6411F0 - .4byte 0x3F574500 - .4byte 0x3F4B2FF0 - .4byte 0x3F3FC880 - .4byte 0x3F3504F0 - .4byte 0x3F2ADC00 - .4byte 0x3F214510 - .4byte 0x3F1837F0 - .4byte 0x3F0FACD0 - .4byte 0x3F079C80 - .4byte 0x3F000000 - .4byte 0x3EF1A1C0 - .4byte 0x3EE411E0 - .4byte 0x3ED74500 - .4byte 0x3ECB3000 - .4byte 0x3EBFC880 - .4byte 0x3EB504E0 - .4byte 0x3EAADC00 - .4byte 0x3EA14520 - .4byte 0x3E9837E0 - .4byte 0x3E8FACE0 - .4byte 0x3E879C80 - .4byte 0x3E800000 - .4byte 0x3E71A1C0 - .4byte 0x3E641200 - .4byte 0x3E574500 - .4byte 0x3E4B3000 - .4byte 0x3E3FC880 - .4byte 0x3E350500 - .4byte 0x3E2ADC00 - .4byte 0x3E214500 - .4byte 0x3E183800 - .4byte 0x3E0FACC0 - .4byte 0x3E079C80 - .4byte 0x3E000000 - .4byte 0x3DF1A180 - .4byte 0x3DE41200 - .4byte 0x3DD74500 - .4byte 0x3DCB3000 - .4byte 0x3DBFC880 - .4byte 0x3DB50500 - .4byte 0x3DAADC00 - .4byte 0x3DA14500 - .4byte 0x3D983800 - .4byte 0x3D8FAD00 - .4byte 0x3D879C80 - .4byte 0x3D800000 - .4byte 0x3D71A200 - .4byte 0x3D641200 - .4byte 0x3D574500 - .4byte 0x3D4B3000 - .4byte 0x3D3FC900 - .4byte 0x3D350500 - .4byte 0x3D2ADC00 - .4byte 0x3D214500 - .4byte 0x3D183800 - .4byte 0x3D0FAD00 - .4byte 0x3D079C00 - .4byte 0x3D000000 - .4byte 0x3CF1A200 - .4byte 0x3CE41200 - .4byte 0x3CD74400 - .4byte 0x3CCB3000 - .4byte 0x3CBFC800 - .4byte 0x3CB50400 - .4byte 0x3CAADC00 - .4byte 0x3CA14600 - .4byte 0x3C983800 - .4byte 0x3C8FAC00 - .4byte 0x3C879C00 - .4byte 0x3C800000 - .4byte 0x3C71A000 - .4byte 0x3C641000 - .4byte 0x3C574400 - .4byte 0x3C4B3000 - .4byte 0x3C3FC800 - .4byte 0x3C350400 - .4byte 0x3C2ADC00 - .4byte 0x3C214400 - .4byte 0x3C183800 - .4byte 0x3C0FAC00 - .4byte 0x3C079C00 - .4byte 0x3C000000 - .4byte 0x3BF1A000 - .4byte 0x3BE41000 - .4byte 0x3BD74800 - .4byte 0x3BCB3000 - .4byte 0x3BBFC800 - .4byte 0x3BB50800 - .4byte 0x3BAAE000 - .4byte 0x3BA14800 - .4byte 0x3B983800 - .4byte 0x3B8FB000 - .4byte 0x3B87A000 - .4byte 0x3B800000 - .4byte 0x3B71A000 - .4byte 0x3B641000 - .4byte 0x3B574000 - .4byte 0x3B4B3000 - .4byte 0x3B3FD000 - .4byte 0x3B350000 - .4byte 0x3B2AE000 - .4byte 0x3B214000 - .4byte 0x3B183000 - .4byte 0x3B0FB000 - .4byte 0x3B07A000 - .4byte 0x3B000000 - .4byte 0x3AF1A000 - .4byte 0x3AE42000 - .4byte 0x3AD74000 - .4byte 0x3ACB2000 - .4byte 0x3ABFC000 - .4byte 0x3AB50000 - .4byte 0x3AAAE000 - .4byte 0x3AA14000 - .4byte 0x3A984000 - .4byte 0x3A8FA000 - .4byte 0x3A87A000 - .4byte 0x3A800000 - .4byte 0x3A71C000 - .4byte 0x3A640000 - .4byte 0x3A574000 - .4byte 0x3A4B4000 - .4byte 0x3A3FC000 - .4byte 0x3A350000 - .4byte 0x3A2AC000 - -.global lbl_803F3820 -lbl_803F3820: - # ROM: 0x3F0820 - .4byte 0x7FFF78D6 - .4byte 0x72136BB1 - .4byte 0x65AB5FFB - .4byte 0x5A9D558B - .4byte 0x50C24C3E - .4byte 0x47FA43F3 - .4byte 0x40263C8F - .4byte 0x392C35F9 - .4byte 0x32F4301B - .4byte 0x2D6A2ADF - .4byte 0x28792636 - .4byte 0x2412220E - .4byte 0x20261E5A - .4byte 0x1CA71B0D - .4byte 0x1989181C - .4byte 0x16C2157C - .4byte 0x14491326 - .4byte 0x12141111 - .4byte 0x101D0F36 - .4byte 0x0E5C0D8E - .4byte 0x0CCC0C15 - .4byte 0x0B680AC5 - .4byte 0x0A2A0999 - .4byte 0x090F088D - .4byte 0x0813079F - .4byte 0x073206CB - .4byte 0x066A060E - .4byte 0x05B70565 - .4byte 0x051804CF - .4byte 0x048A0449 - .4byte 0x040C03D2 - .4byte 0x039B0367 - .4byte 0x03370309 - .4byte 0x02DD02B4 - .4byte 0x028D0269 - .4byte 0x02460226 - .4byte 0x020701EA - .4byte 0x01CE01B4 - .4byte 0x019C0185 - .4byte 0x016F015B - .4byte 0x01470135 - .4byte 0x01240113 - .4byte 0x010400F5 - .4byte 0x00E700DA - .4byte 0x00CE00C3 - .4byte 0x00B800AD - .4byte 0x00A4009B - .4byte 0x0092008A - .4byte 0x0082007B - .4byte 0x0074006D - .4byte 0x00670061 - .4byte 0x005C0057 - .4byte 0x0052004D - .4byte 0x00490045 - .4byte 0x0041003D - .4byte 0x003A0037 - .4byte 0x00330031 - .4byte 0x002E002B - .4byte 0x00290026 - .4byte 0x00240022 - .4byte 0x0020001E - .4byte 0x001D001B - .4byte 0x001A0018 - .4byte 0x00170015 - .4byte 0x00140013 - .4byte 0x00120011 - .4byte 0x0010000F - .4byte 0x000E000D - .4byte 0x000D000C - .4byte 0x000B000A - .4byte 0x000A0009 - .4byte 0x00090008 - .4byte 0x00080007 - .4byte 0x00070006 - .4byte 0x00060006 - .4byte 0x00050005 - .4byte 0x00050004 - .4byte 0x00040004 - .4byte 0x00040003 - .4byte 0x00030003 - .4byte 0x00030003 - .4byte 0x00020002 - .4byte 0x00020002 - .4byte 0x00020002 - .4byte 0x00020001 - .4byte 0x00010001 - .4byte 0x00010001 - .4byte 0x00010001 - .4byte 0x00010001 - .4byte 0x00010001 - .4byte 0x00010000 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - -.global lbl_803F39A4 -lbl_803F39A4: - # ROM: 0x3F09A4 - .4byte 0xC1786C65 - .4byte 0x605C5957 - .4byte 0x5452504F - .4byte 0x4D4C4B49 - .4byte 0x48474645 - .4byte 0x44444342 - .4byte 0x4140403F - .4byte 0x3F3E3D3D - .4byte 0x3C3C3B3B - .4byte 0x3A3A3939 - .4byte 0x38383737 - .4byte 0x37363636 - .4byte 0x35353434 - .4byte 0x34333333 - .4byte 0x32323232 - .4byte 0x31313130 - .4byte 0x3030302F - .4byte 0x2F2F2F2E - .4byte 0x2E2E2E2D - .4byte 0x2D2D2D2C - .4byte 0x2C2C2C2C - .4byte 0x2B2B2B2B - .4byte 0x2B2A2A2A - .4byte 0x2A2A2929 - .4byte 0x29292929 - .4byte 0x28282828 - .4byte 0x28282727 - .4byte 0x27272727 - .4byte 0x26262626 - .4byte 0x26262625 - .4byte 0x25252525 - .4byte 0x25252424 - .4byte 0x24242424 - .4byte 0x24232323 - .4byte 0x23232323 - .4byte 0x23222222 - .4byte 0x22222222 - .4byte 0x22212121 - .4byte 0x21212121 - .4byte 0x21212020 - .4byte 0x20202020 - .4byte 0x2020201F - .4byte 0x1F1F1F1F - .4byte 0x1F1F1F1F - .4byte 0x1F1E1E1E - .4byte 0x1E1E1E1E - .4byte 0x1E1E1E1E - .4byte 0x1D1D1D1D - .4byte 0x1D1D1D1D - .4byte 0x1D1D1D1C - .4byte 0x1C1C1C1C - .4byte 0x1C1C1C1C - .4byte 0x1C1C1C1B - .4byte 0x1B1B1B1B - .4byte 0x1B1B1B1B - .4byte 0x1B1B1B1A - .4byte 0x1A1A1A1A - .4byte 0x1A1A1A1A - .4byte 0x1A1A1A1A - .4byte 0x19191919 - .4byte 0x19191919 - .4byte 0x19191919 - .4byte 0x19191818 - .4byte 0x18181818 - .4byte 0x18181818 - .4byte 0x18181818 - .4byte 0x18171717 - .4byte 0x17171717 - .4byte 0x17171717 - .4byte 0x17171717 - .4byte 0x17161616 - .4byte 0x16161616 - .4byte 0x16161616 - .4byte 0x16161616 - .4byte 0x16151515 - .4byte 0x15151515 - .4byte 0x15151515 - .4byte 0x15151515 - .4byte 0x15151514 - .4byte 0x14141414 - .4byte 0x14141414 - .4byte 0x14141414 - .4byte 0x14141414 - .4byte 0x14141313 - .4byte 0x13131313 - .4byte 0x13131313 - .4byte 0x13131313 - .4byte 0x13131313 - .4byte 0x13121212 - .4byte 0x12121212 - .4byte 0x12121212 - .4byte 0x12121212 - .4byte 0x12121212 - .4byte 0x12121111 - .4byte 0x11111111 - .4byte 0x11111111 - .4byte 0x11111111 - .4byte 0x11111111 - .4byte 0x11111111 - .4byte 0x10101010 - .4byte 0x10101010 - .4byte 0x10101010 - .4byte 0x10101010 - .4byte 0x10101010 - .4byte 0x10101010 - .4byte 0x0F0F0F0F - .4byte 0x0F0F0F0F - .4byte 0x0F0F0F0F - .4byte 0x0F0F0F0F - .4byte 0x0F0F0F0F - .4byte 0x0F0F0F0F - .4byte 0x0F0E0E0E - .4byte 0x0E0E0E0E - .4byte 0x0E0E0E0E - .4byte 0x0E0E0E0E - .4byte 0x0E0E0E0E - .4byte 0x0E0E0E0E - .4byte 0x0E0E0E0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0D - .4byte 0x0D0D0D0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0C0C0C0C - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0B0B0B0B - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A0A0A0A - .4byte 0x0A090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x09090909 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08080808 - .4byte 0x08070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x07070707 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060606 - .4byte 0x06060505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050505 - .4byte 0x05050404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04040404 - .4byte 0x04030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030303 - .4byte 0x03030302 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020202 - .4byte 0x02020201 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010101 - .4byte 0x01010100 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - -.global lbl_803F3DA4 -lbl_803F3DA4: - # ROM: 0x3F0DA4 - .4byte 0 - .4byte 0x388205FF - .4byte 0x398205FF - .4byte 0x3A1246BF - .4byte 0x3A8205FF - .4byte 0x3ACB295F - .4byte 0x3B1246BF - .4byte 0x3B47192F - .4byte 0x3B8205FF - .4byte 0x3BA48F97 - .4byte 0x3BCB295F - .4byte 0x3BF5D356 - .4byte 0x3C1246BF - .4byte 0x3C2BABEB - .4byte 0x3C47192F - .4byte 0x3C648E8A - .4byte 0x3C8205FF - .4byte 0x3C92C8C5 - .4byte 0x3CA48F97 - .4byte 0x3CB75A75 - .4byte 0x3CCB295F - .4byte 0x3CDFFC54 - .4byte 0x3CF5D356 - .4byte 0x3D065732 - .4byte 0x3D1246BF - .4byte 0x3D1EB852 - .4byte 0x3D2BABEB - .4byte 0x3D39218A - .4byte 0x3D47192F - .4byte 0x3D5592DA - .4byte 0x3D648E8A - .4byte 0x3D740C41 - .4byte 0x3D8205FF - .4byte 0x3D8A46E1 - .4byte 0x3D92C8C5 - .4byte 0x3D9B8BAC - .4byte 0x3DA48F97 - .4byte 0x3DADD484 - .4byte 0x3DB75A75 - .4byte 0x3DC12168 - .4byte 0x3DCB295F - .4byte 0x3DD57258 - .4byte 0x3DDFFC54 - .4byte 0x3DEAC754 - .4byte 0x3DF5D356 - .4byte 0x3E00902E - .4byte 0x3E065732 - .4byte 0x3E0C3EB8 - .4byte 0x3E1246BF - .4byte 0x3E186F48 - .4byte 0x3E1EB852 - .4byte 0x3E2521DE - .4byte 0x3E2BABEB - .4byte 0x3E32567A - .4byte 0x3E39218A - .4byte 0x3E400D1B - .4byte 0x3E47192F - .4byte 0x3E4E45C3 - .4byte 0x3E5592DA - .4byte 0x3E5D0071 - .4byte 0x3E648E8A - .4byte 0x3E6C3D25 - .4byte 0x3E740C41 - .4byte 0x3E7BFBDF - .4byte 0x3E820621 - .4byte 0x3E861E71 - .4byte 0x3E8A4702 - .4byte 0x3E8E7FD4 - .4byte 0x3E92C8E7 - .4byte 0x3E97223A - .4byte 0x3E9B8BCE - .4byte 0x3EA005A3 - .4byte 0x3EA48FB8 - .4byte 0x3EA92A0F - .4byte 0x3EADD4A6 - .4byte 0x3EB28F7E - .4byte 0x3EB75A96 - .4byte 0x3EBC35F0 - .4byte 0x3EC1218A - .4byte 0x3EC61D65 - .4byte 0x3ECB2980 - .4byte 0x3ED045DD - .4byte 0x3ED5727A - .4byte 0x3EDAAF57 - .4byte 0x3EDFFC76 - .4byte 0x3EE559D5 - .4byte 0x3EEAC775 - .4byte 0x3EF04556 - .4byte 0x3EF5D378 - .4byte 0x3EFB71DA - .4byte 0x3F00903F - .4byte 0x3F036FB1 - .4byte 0x3F065743 - .4byte 0x3F0946F6 - .4byte 0x3F0C3EC9 - .4byte 0x3F0F3EBC - .4byte 0x3F1246D0 - .4byte 0x3F155704 - .4byte 0x3F186F58 - .4byte 0x3F1B8FCD - .4byte 0x3F1EB863 - .4byte 0x3F21E918 - .4byte 0x3F2521EE - .4byte 0x3F2862E5 - .4byte 0x3F2BABFC - .4byte 0x3F2EFD33 - .4byte 0x3F32568A - .4byte 0x3F35B802 - .4byte 0x3F39219B - .4byte 0x3F3C9353 - .4byte 0x3F400D3D - .4byte 0x3F438F36 - .4byte 0x3F471950 - .4byte 0x3F4AAB8A - .4byte 0x3F4E45E5 - .4byte 0x3F51E860 - .4byte 0x3F5592FB - .4byte 0x3F5945B7 - .4byte 0x3F5D0093 - .4byte 0x3F60C38F - .4byte 0x3F648EAC - .4byte 0x3F6861E9 - .4byte 0x3F6C3D47 - .4byte 0x3F7020C5 - .4byte 0x3F740C63 - .4byte 0x3F780022 - .4byte 0x3F7BFC01 - .4byte 0x3F800000 - .4byte 0x3F800000 - - .section .text, "ax" .global dataInsertKeymap diff --git a/asm/musyx/synthmacros.s b/asm/musyx/synthmacros.s index 0e73222a..d4b84229 100644 --- a/asm/musyx/synthmacros.s +++ b/asm/musyx/synthmacros.s @@ -17,6 +17,302 @@ macActiveMacroRoot: DebugMacroSteps: .skip 0x8 +.section .data, "wa" +"kf$395": + # ROM: 0x3EFFD8 + .4byte 0x100010F3 + .4byte 0x11F51307 + .4byte 0x1428155B + .4byte 0x16A017F9 + .4byte 0x19661AE8 + .4byte 0x1C821E34 + .4byte 0x20000000 + +midi2TimeTab: + # ROM: 0x3EFFF4 + .4byte 0 + .4byte 0x0000000A + .4byte 0x00000014 + .4byte 0x0000001E + .4byte 0x00000028 + .4byte 0x00000032 + .4byte 0x0000003C + .4byte 0x00000046 + .4byte 0x00000050 + .4byte 0x0000005A + .4byte 0x00000064 + .4byte 0x0000006E + .4byte 0x0000006E + .4byte 0x00000078 + .4byte 0x00000082 + .4byte 0x0000008C + .4byte 0x00000096 + .4byte 0x000000A0 + .4byte 0x000000AA + .4byte 0x000000BE + .4byte 0x000000C8 + .4byte 0x000000DC + .4byte 0x000000E6 + .4byte 0x000000FA + .4byte 0x0000010E + .4byte 0x00000122 + .4byte 0x00000136 + .4byte 0x0000014A + .4byte 0x0000015E + .4byte 0x0000017C + .4byte 0x0000019A + .4byte 0x000001B8 + .4byte 0x000001D6 + .4byte 0x000001F4 + .4byte 0x0000021C + .4byte 0x00000244 + .4byte 0x0000026C + .4byte 0x00000294 + .4byte 0x000002C6 + .4byte 0x000002F8 + .4byte 0x00000334 + .4byte 0x00000370 + .4byte 0x000003AC + .4byte 0x000003E8 + .4byte 0x000003E8 + .4byte 0x0000044C + .4byte 0x000004B0 + .4byte 0x00000514 + .4byte 0x00000578 + .4byte 0x000005DC + .4byte 0x00000640 + .4byte 0x000006A4 + .4byte 0x00000708 + .4byte 0x000007D0 + .4byte 0x00000834 + .4byte 0x000008FC + .4byte 0x00000960 + .4byte 0x00000A28 + .4byte 0x00000AF0 + .4byte 0x00000BB8 + .4byte 0x00000C80 + .4byte 0x00000DAC + .4byte 0x00000E74 + .4byte 0x00000FA0 + .4byte 0x000010CC + .4byte 0x000011F8 + .4byte 0x00001324 + .4byte 0x000014B4 + .4byte 0x00001644 + .4byte 0x000017D4 + .4byte 0x00001964 + .4byte 0x00001B58 + .4byte 0x00001D4C + .4byte 0x00001FA4 + .4byte 0x00002198 + .4byte 0x00002454 + .4byte 0x000026AC + .4byte 0x00002710 + .4byte 0x00002AF8 + .4byte 0x00002EE0 + .4byte 0x000032C8 + .4byte 0x000036B0 + .4byte 0x00003A98 + .4byte 0x00003E80 + .4byte 0x00004268 + .4byte 0x00004650 + .4byte 0x00004A38 + .4byte 0x00005208 + .4byte 0x000055F0 + .4byte 0x00005DC0 + .4byte 0x00006590 + .4byte 0x00006D60 + .4byte 0x00007530 + .4byte 0x00007D00 + .4byte 0x000084D0 + .4byte 0x00009088 + .4byte 0x00009858 + .4byte 0x0000A410 + .4byte 0x0000AFC8 + .4byte 0x0000BF68 + .4byte 0x0000C350 + .4byte 0x0000D6D8 + .4byte 0x0000EA60 + .4byte 0x0000FDE8 + .4byte 0x00011170 + .4byte 0x000124F8 + .4byte 0x00013880 + .4byte 0x00014C08 + .4byte 0x00015F90 + .4byte 0x00017318 + .4byte 0x000186A0 + .4byte 0x00019A28 + .4byte 0x0001ADB0 + .4byte 0x0001C138 + .4byte 0x0001D4C0 + .4byte 0x0001E848 + .4byte 0x0001FBD0 + .4byte 0x00020F58 + .4byte 0x000222E0 + .4byte 0x00023668 + .4byte 0x000249F0 + .4byte 0x00025D78 + .4byte 0x00027100 + .4byte 0x00028488 + .4byte 0x00029810 + .4byte 0x0002AB98 + .4byte 0x0002BF20 + .4byte 0 + .4byte 0 + +"mask$603": + # ROM: 0x3F01F8 + .4byte 0x00000001 + .4byte 0 + .4byte 0x00000002 + .4byte 0 + .4byte 0x00000004 + .4byte 0 + .4byte 0x00000008 + .4byte 0 + +"dirty$604": + # ROM: 0x3F0218 + .4byte 0x80000001 + .4byte 0x80000002 + .4byte 0x80000004 + .4byte 0x80000008 + +"mask$608": + # ROM: 0x3F0228 + .4byte 0x00000010 + .4byte 0 + .4byte 0x00000020 + .4byte 0 + .4byte 0x00000040 + .4byte 0 + .4byte 0x00000080 + .4byte 0 + +"dirty$609": + # ROM: 0x3F0248 + .4byte 0x80000010 + .4byte 0x80000020 + .4byte 0x80000040 + .4byte 0x80000080 + +"@848": + # ROM: 0x3F0258 + .4byte lbl_803A5E98 + .4byte lbl_803A5EB0 + .4byte lbl_803A5EC8 + .4byte lbl_803A5F00 + .4byte lbl_803A5F3C + .4byte lbl_803A5F50 + .4byte lbl_803A5F60 + .4byte lbl_803A5FA8 + .4byte lbl_803A5FC4 + .4byte lbl_803A5FD4 + .4byte lbl_803A6050 + .4byte lbl_803A60A0 + .4byte lbl_803A60F0 + .4byte lbl_803A6100 + .4byte lbl_803A6110 + .4byte lbl_803A6120 + .4byte lbl_803A6130 + .4byte lbl_803A6140 + .4byte lbl_803A6150 + .4byte lbl_803A6168 + .4byte lbl_803A61A8 + .4byte lbl_803A61B8 + .4byte lbl_803A61C8 + .4byte lbl_803A61D8 + .4byte lbl_803A61E8 + .4byte lbl_803A61FC + .4byte lbl_803A6250 + .4byte lbl_803A62D0 + .4byte lbl_803A62E0 + .4byte lbl_803A62F0 + .4byte lbl_803A6358 + .4byte lbl_803A63C0 + .4byte lbl_803A63F8 + .4byte lbl_803A6408 + .4byte lbl_803A6464 + .4byte lbl_803A64E8 + .4byte lbl_803A6504 + .4byte lbl_803A6558 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A656C + .4byte lbl_803A65E4 + .4byte lbl_803A6628 + .4byte lbl_803A6638 + .4byte lbl_803A66A8 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A66B8 + .4byte lbl_803A6724 + .4byte lbl_803A674C + .4byte lbl_803A6764 + .4byte lbl_803A677C + .4byte lbl_803A6794 + .4byte lbl_803A67A8 + .4byte lbl_803A67B8 + .4byte lbl_803A67F8 + .4byte lbl_803A6824 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6878 + .4byte lbl_803A6888 + .4byte lbl_803A6898 + .4byte lbl_803A68A8 + .4byte lbl_803A68B8 + .4byte lbl_803A68C8 + .4byte lbl_803A68D8 + .4byte lbl_803A68E8 + .4byte lbl_803A68F8 + .4byte lbl_803A6908 + .4byte lbl_803A6918 + .4byte lbl_803A6928 + .4byte lbl_803A6938 + .4byte lbl_803A6948 + .4byte lbl_803A6958 + .4byte lbl_803A6B04 + .4byte lbl_803A6968 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A69B8 + .4byte lbl_803A69E4 + .4byte lbl_803A69F4 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6A28 + .4byte lbl_803A6A3C + .4byte lbl_803A6A50 + .4byte lbl_803A6A64 + .4byte lbl_803A6A78 + .4byte lbl_803A6A8C + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6B04 + .4byte lbl_803A6AE0 + .4byte lbl_803A6AF4 + .section .sdata2 .global lbl_805AF288 lbl_805AF288: @@ -872,11 +1168,11 @@ lbl_803A3500: /* 803A3514 003A0474 42 00 FF EC */ bdnz lbl_803A3500 lbl_803A3518: /* 803A3518 003A0478 38 00 00 01 */ li r0, 1 -/* 803A351C 003A047C 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A351C 003A047C 3C 80 80 3F */ lis r4, "kf$395"@ha /* 803A3520 003A0480 7C 00 50 30 */ slw r0, r0, r10 /* 803A3524 003A0484 39 20 00 0B */ li r9, 0xb /* 803A3528 003A0488 7D 06 03 96 */ divwu r8, r6, r0 -/* 803A352C 003A048C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A352C 003A048C 38 84 2F D8 */ addi r4, r4, "kf$395"@l /* 803A3530 003A0490 38 84 00 16 */ addi r4, r4, 0x16 lbl_803A3534: /* 803A3534 003A0494 A0 04 00 00 */ lhz r0, 0(r4) @@ -888,10 +1184,10 @@ lbl_803A3534: lbl_803A354C: /* 803A354C 003A04AC 1C 0A 00 0C */ mulli r0, r10, 0xc /* 803A3550 003A04B0 54 A6 46 3E */ srwi r6, r5, 0x18 -/* 803A3554 003A04B4 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A3554 003A04B4 3C 80 80 3F */ lis r4, "kf$395"@ha /* 803A3558 003A04B8 55 27 08 3C */ slwi r7, r9, 1 /* 803A355C 003A04BC 7C 00 4A 14 */ add r0, r0, r9 -/* 803A3560 003A04C0 38 A4 2F D8 */ addi r5, r4, lbl_803F2FD8@l +/* 803A3560 003A04C0 38 A4 2F D8 */ addi r5, r4, "kf$395"@l /* 803A3564 003A04C4 7C 06 02 14 */ add r0, r6, r0 /* 803A3568 003A04C8 B0 03 01 2C */ sth r0, 0x12c(r3) /* 803A356C 003A04CC 7C 85 3A 14 */ add r4, r5, r7 @@ -920,11 +1216,11 @@ lbl_803A35AC: /* 803A35C0 003A0520 42 00 FF EC */ bdnz lbl_803A35AC lbl_803A35C4: /* 803A35C4 003A0524 38 00 00 01 */ li r0, 1 -/* 803A35C8 003A0528 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A35C8 003A0528 3C 80 80 3F */ lis r4, "kf$395"@ha /* 803A35CC 003A052C 7C 00 40 30 */ slw r0, r0, r8 /* 803A35D0 003A0530 38 E0 00 0B */ li r7, 0xb /* 803A35D4 003A0534 7C C6 03 96 */ divwu r6, r6, r0 -/* 803A35D8 003A0538 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A35D8 003A0538 38 84 2F D8 */ addi r4, r4, "kf$395"@l /* 803A35DC 003A053C 38 84 00 16 */ addi r4, r4, 0x16 lbl_803A35E0: /* 803A35E0 003A0540 A0 04 00 00 */ lhz r0, 0(r4) @@ -945,10 +1241,10 @@ lbl_803A35F8: /* 803A3618 003A0578 4E 80 00 20 */ blr lbl_803A361C: /* 803A361C 003A057C 7C 04 00 50 */ subf r0, r4, r0 -/* 803A3620 003A0580 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A3620 003A0580 3C 80 80 3F */ lis r4, "kf$395"@ha /* 803A3624 003A0584 B0 03 01 2C */ sth r0, 0x12c(r3) /* 803A3628 003A0588 54 E0 08 3C */ slwi r0, r7, 1 -/* 803A362C 003A058C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A362C 003A058C 38 84 2F D8 */ addi r4, r4, "kf$395"@l /* 803A3630 003A0590 7C A4 02 2E */ lhzx r5, r4, r0 /* 803A3634 003A0594 7C 84 02 14 */ add r4, r4, r0 /* 803A3638 003A0598 A0 04 00 02 */ lhz r0, 2(r4) @@ -1000,8 +1296,8 @@ mcmdSetADSR: /* 803A36E4 003A0644 48 00 01 A4 */ b lbl_803A3888 lbl_803A36E8: /* 803A36E8 003A0648 A1 03 00 08 */ lhz r8, 8(r3) -/* 803A36EC 003A064C 3C 80 80 3F */ lis r4, lbl_803F3DA4@ha -/* 803A36F0 003A0650 38 E4 3D A4 */ addi r7, r4, lbl_803F3DA4@l +/* 803A36EC 003A064C 3C 80 80 3F */ lis r4, dspDLSVolTab@ha +/* 803A36F0 003A0650 38 E4 3D A4 */ addi r7, r4, dspDLSVolTab@l /* 803A36F4 003A0654 88 83 00 01 */ lbz r4, 1(r3) /* 803A36F8 003A0658 7D 06 46 70 */ srawi r6, r8, 8 /* 803A36FC 003A065C 88 03 00 00 */ lbz r0, 0(r3) @@ -1133,18 +1429,18 @@ mcmdSetADSRFromCtrl: /* 803A38D8 003A0838 88 BE 01 22 */ lbz r5, 0x122(r30) /* 803A38DC 003A083C 54 03 46 3E */ srwi r3, r0, 0x18 /* 803A38E0 003A0840 48 00 E0 2D */ bl inpGetMidiCtrl -/* 803A38E4 003A0844 3C A0 80 3F */ lis r5, lbl_803F3DA4@ha +/* 803A38E4 003A0844 3C A0 80 3F */ lis r5, dspDLSVolTab@ha /* 803A38E8 003A0848 54 66 DD 7A */ rlwinm r6, r3, 0x1b, 0x15, 0x1d -/* 803A38EC 003A084C 38 65 3D A4 */ addi r3, r5, lbl_803F3DA4@l +/* 803A38EC 003A084C 38 65 3D A4 */ addi r3, r5, dspDLSVolTab@l /* 803A38F0 003A0850 80 1F 00 00 */ lwz r0, 0(r31) /* 803A38F4 003A0854 7F E3 34 2E */ lfsx f31, r3, r6 /* 803A38F8 003A0858 88 9E 01 21 */ lbz r4, 0x121(r30) /* 803A38FC 003A085C 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f /* 803A3900 003A0860 88 BE 01 22 */ lbz r5, 0x122(r30) /* 803A3904 003A0864 48 00 E0 09 */ bl inpGetMidiCtrl -/* 803A3908 003A0868 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A3908 003A0868 3C 80 80 3F */ lis r4, midi2TimeTab@ha /* 803A390C 003A086C 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d -/* 803A3910 003A0870 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A3910 003A0870 38 64 2F F4 */ addi r3, r4, midi2TimeTab@l /* 803A3914 003A0874 7C 03 00 2E */ lwzx r0, r3, r0 /* 803A3918 003A0878 90 01 00 08 */ stw r0, 8(r1) /* 803A391C 003A087C 80 1F 00 00 */ lwz r0, 0(r31) @@ -1152,16 +1448,16 @@ mcmdSetADSRFromCtrl: /* 803A3924 003A0884 88 BE 01 22 */ lbz r5, 0x122(r30) /* 803A3928 003A0888 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f /* 803A392C 003A088C 48 00 DF E1 */ bl inpGetMidiCtrl -/* 803A3930 003A0890 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A3930 003A0890 3C 80 80 3F */ lis r4, midi2TimeTab@ha /* 803A3934 003A0894 C0 02 D5 88 */ lfs f0, lbl_805AF2A8@sda21(r2) /* 803A3938 003A0898 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d -/* 803A393C 003A089C 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A393C 003A089C 38 64 2F F4 */ addi r3, r4, midi2TimeTab@l /* 803A3940 003A08A0 EC 20 07 F2 */ fmuls f1, f0, f31 /* 803A3944 003A08A4 7C 03 00 2E */ lwzx r0, r3, r0 /* 803A3948 003A08A8 90 01 00 0C */ stw r0, 0xc(r1) /* 803A394C 003A08AC 4B FE 60 09 */ bl __cvt_fp2unsigned -/* 803A3950 003A08B0 3C 80 80 3F */ lis r4, lbl_803F39A4@ha -/* 803A3954 003A08B4 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l +/* 803A3950 003A08B0 3C 80 80 3F */ lis r4, dspScale2IndexTab@ha +/* 803A3954 003A08B4 38 84 39 A4 */ addi r4, r4, dspScale2IndexTab@l /* 803A3958 003A08B8 7C 04 18 AE */ lbzx r0, r4, r3 /* 803A395C 003A08BC 20 00 00 C1 */ subfic r0, r0, 0xc1 /* 803A3960 003A08C0 B0 01 00 10 */ sth r0, 0x10(r1) @@ -1170,11 +1466,11 @@ mcmdSetADSRFromCtrl: /* 803A396C 003A08CC 88 BE 01 22 */ lbz r5, 0x122(r30) /* 803A3970 003A08D0 54 03 06 3E */ clrlwi r3, r0, 0x18 /* 803A3974 003A08D4 48 00 DF 99 */ bl inpGetMidiCtrl -/* 803A3978 003A08D8 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A3978 003A08D8 3C 80 80 3F */ lis r4, midi2TimeTab@ha /* 803A397C 003A08DC 3C 00 80 00 */ lis r0, 0x8000 /* 803A3980 003A08E0 54 65 DD 7A */ rlwinm r5, r3, 0x1b, 0x15, 0x1d /* 803A3984 003A08E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 803A3988 003A08E8 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A3988 003A08E8 38 64 2F F4 */ addi r3, r4, midi2TimeTab@l /* 803A398C 003A08EC 38 81 00 08 */ addi r4, r1, 8 /* 803A3990 003A08F0 7C 63 28 2E */ lwzx r3, r3, r5 /* 803A3994 003A08F4 38 A0 00 02 */ li r5, 2 @@ -1344,9 +1640,9 @@ lbl_803A3BD8: /* 803A3C08 003A0B68 40 81 00 08 */ ble lbl_803A3C10 /* 803A3C0C 003A0B6C 38 00 03 FF */ li r0, 0x3ff lbl_803A3C10: -/* 803A3C10 003A0B70 3C 80 80 3F */ lis r4, lbl_803F39A4@ha +/* 803A3C10 003A0B70 3C 80 80 3F */ lis r4, dspScale2IndexTab@ha /* 803A3C14 003A0B74 38 7F 01 DC */ addi r3, r31, 0x1dc -/* 803A3C18 003A0B78 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l +/* 803A3C18 003A0B78 38 84 39 A4 */ addi r4, r4, dspScale2IndexTab@l /* 803A3C1C 003A0B7C 7C 04 00 AE */ lbzx r0, r4, r0 /* 803A3C20 003A0B80 20 00 00 C1 */ subfic r0, r0, 0xc1 /* 803A3C24 003A0B84 B0 1F 01 F8 */ sth r0, 0x1f8(r31) @@ -2764,11 +3060,11 @@ lbl_803A4FBC: mcmdAuxAFXSelect: /* 803A4FFC 003A1F5C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803A5000 003A1F60 7C 08 02 A6 */ mflr r0 -/* 803A5004 003A1F64 3C A0 80 3F */ lis r5, lbl_803F31F8@ha -/* 803A5008 003A1F68 3D 60 80 3F */ lis r11, lbl_803F3218@ha +/* 803A5004 003A1F64 3C A0 80 3F */ lis r5, "mask$603"@ha +/* 803A5008 003A1F68 3D 60 80 3F */ lis r11, "dirty$604"@ha /* 803A500C 003A1F6C 90 01 00 24 */ stw r0, 0x24(r1) -/* 803A5010 003A1F70 38 A5 31 F8 */ addi r5, r5, lbl_803F31F8@l -/* 803A5014 003A1F74 39 6B 32 18 */ addi r11, r11, lbl_803F3218@l +/* 803A5010 003A1F70 38 A5 31 F8 */ addi r5, r5, "mask$603"@l +/* 803A5014 003A1F74 39 6B 32 18 */ addi r11, r11, "dirty$604"@l /* 803A5018 003A1F78 93 E1 00 1C */ stw r31, 0x1c(r1) /* 803A501C 003A1F7C 93 C1 00 18 */ stw r30, 0x18(r1) /* 803A5020 003A1F80 7C 7E 1B 78 */ mr r30, r3 @@ -2868,11 +3164,11 @@ lbl_803A5158: mcmdAuxBFXSelect: /* 803A5178 003A20D8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803A517C 003A20DC 7C 08 02 A6 */ mflr r0 -/* 803A5180 003A20E0 3C A0 80 3F */ lis r5, lbl_803F3228@ha -/* 803A5184 003A20E4 3D 60 80 3F */ lis r11, lbl_803F3248@ha +/* 803A5180 003A20E0 3C A0 80 3F */ lis r5, "mask$608"@ha +/* 803A5184 003A20E4 3D 60 80 3F */ lis r11, "dirty$609"@ha /* 803A5188 003A20E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 803A518C 003A20EC 38 A5 32 28 */ addi r5, r5, lbl_803F3228@l -/* 803A5190 003A20F0 39 6B 32 48 */ addi r11, r11, lbl_803F3248@l +/* 803A518C 003A20EC 38 A5 32 28 */ addi r5, r5, "mask$608"@l +/* 803A5190 003A20F0 39 6B 32 48 */ addi r11, r11, "dirty$609"@l /* 803A5194 003A20F4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 803A5198 003A20F8 93 C1 00 18 */ stw r30, 0x18(r1) /* 803A519C 003A20FC 7C 7E 1B 78 */ mr r30, r3 @@ -3803,24 +4099,30 @@ lbl_803A5E38: /* 803A5E74 003A2DD4 57 40 06 7E */ clrlwi r0, r26, 0x19 /* 803A5E78 003A2DD8 28 00 00 71 */ cmplwi r0, 0x71 /* 803A5E7C 003A2DDC 41 81 0C 88 */ bgt lbl_803A6B04 -/* 803A5E80 003A2DE0 3C 60 80 3F */ lis r3, lbl_803F3258@ha +/* 803A5E80 003A2DE0 3C 60 80 3F */ lis r3, "@848"@ha /* 803A5E84 003A2DE4 54 00 10 3A */ slwi r0, r0, 2 -/* 803A5E88 003A2DE8 38 63 32 58 */ addi r3, r3, lbl_803F3258@l +/* 803A5E88 003A2DE8 38 63 32 58 */ addi r3, r3, "@848"@l /* 803A5E8C 003A2DEC 7C 03 00 2E */ lwzx r0, r3, r0 /* 803A5E90 003A2DF0 7C 09 03 A6 */ mtctr r0 /* 803A5E94 003A2DF4 4E 80 04 20 */ bctr +.global lbl_803A5E98 +lbl_803A5E98: /* 803A5E98 003A2DF8 7F E3 FB 78 */ mr r3, r31 /* 803A5E9C 003A2DFC 48 00 18 A5 */ bl vidRemoveVoiceReferences /* 803A5EA0 003A2E00 7F E3 FB 78 */ mr r3, r31 /* 803A5EA4 003A2E04 48 00 24 01 */ bl voiceFree /* 803A5EA8 003A2E08 3B C0 00 01 */ li r30, 1 /* 803A5EAC 003A2E0C 48 00 0C 58 */ b lbl_803A6B04 +.global lbl_803A5EB0 +lbl_803A5EB0: /* 803A5EB0 003A2E10 7F E3 FB 78 */ mr r3, r31 /* 803A5EB4 003A2E14 48 00 18 8D */ bl vidRemoveVoiceReferences /* 803A5EB8 003A2E18 7F E3 FB 78 */ mr r3, r31 /* 803A5EBC 003A2E1C 48 00 23 E9 */ bl voiceFree /* 803A5EC0 003A2E20 3B C0 00 01 */ li r30, 1 /* 803A5EC4 003A2E24 48 00 0C 40 */ b lbl_803A6B04 +.global lbl_803A5EC8 +lbl_803A5EC8: /* 803A5EC8 003A2E28 A0 7F 01 2C */ lhz r3, 0x12c(r31) /* 803A5ECC 003A2E2C 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f /* 803A5ED0 003A2E30 7C 03 00 00 */ cmpw r3, r0 @@ -3835,6 +4137,8 @@ lbl_803A5E38: /* 803A5EF4 003A2E54 7C 03 02 14 */ add r0, r3, r0 /* 803A5EF8 003A2E58 90 1F 00 38 */ stw r0, 0x38(r31) /* 803A5EFC 003A2E5C 48 00 0C 08 */ b lbl_803A6B04 +.global lbl_803A5F00 +lbl_803A5F00: /* 803A5F00 003A2E60 80 7F 01 54 */ lwz r3, 0x154(r31) /* 803A5F04 003A2E64 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f /* 803A5F08 003A2E68 54 63 86 3E */ rlwinm r3, r3, 0x10, 0x18, 0x1f @@ -3850,15 +4154,21 @@ lbl_803A5E38: /* 803A5F30 003A2E90 7C 03 02 14 */ add r0, r3, r0 /* 803A5F34 003A2E94 90 1F 00 38 */ stw r0, 0x38(r31) /* 803A5F38 003A2E98 48 00 0B CC */ b lbl_803A6B04 +.global lbl_803A5F3C +lbl_803A5F3C: /* 803A5F3C 003A2E9C 7F E3 FB 78 */ mr r3, r31 /* 803A5F40 003A2EA0 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A5F44 003A2EA4 4B FF CA 81 */ bl mcmdWait /* 803A5F48 003A2EA8 7C 7E 1B 78 */ mr r30, r3 /* 803A5F4C 003A2EAC 48 00 0B B8 */ b lbl_803A6B04 +.global lbl_803A5F50 +lbl_803A5F50: /* 803A5F50 003A2EB0 7F E3 FB 78 */ mr r3, r31 /* 803A5F54 003A2EB4 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A5F58 003A2EB8 4B FF CE 2D */ bl mcmdLoop /* 803A5F5C 003A2EBC 48 00 0B A8 */ b lbl_803A6B04 +.global lbl_803A5F60 +lbl_803A5F60: /* 803A5F60 003A2EC0 57 43 84 3E */ srwi r3, r26, 0x10 /* 803A5F64 003A2EC4 4B FF C5 99 */ bl dataGetMacro /* 803A5F68 003A2EC8 28 03 00 00 */ cmplwi r3, 0 @@ -3879,6 +4189,8 @@ lbl_803A5F8C: lbl_803A5FA0: /* 803A5FA0 003A2F00 7C 9E 23 78 */ mr r30, r4 /* 803A5FA4 003A2F04 48 00 0B 60 */ b lbl_803A6B04 +.global lbl_803A5FA8 +lbl_803A5FA8: /* 803A5FA8 003A2F08 38 00 00 01 */ li r0, 1 /* 803A5FAC 003A2F0C 7F E3 FB 78 */ mr r3, r31 /* 803A5FB0 003A2F10 98 1C 00 06 */ stb r0, 6(r28) @@ -3886,10 +4198,14 @@ lbl_803A5FA0: /* 803A5FB8 003A2F18 4B FF CA 0D */ bl mcmdWait /* 803A5FBC 003A2F1C 7C 7E 1B 78 */ mr r30, r3 /* 803A5FC0 003A2F20 48 00 0B 44 */ b lbl_803A6B04 +.global lbl_803A5FC4 +lbl_803A5FC4: /* 803A5FC4 003A2F24 7F E3 FB 78 */ mr r3, r31 /* 803A5FC8 003A2F28 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A5FCC 003A2F2C 4B FF CF 0D */ bl mcmdPlayMacro /* 803A5FD0 003A2F30 48 00 0B 34 */ b lbl_803A6B04 +.global lbl_803A5FD4 +lbl_803A5FD4: /* 803A5FD4 003A2F34 88 9F 01 2F */ lbz r4, 0x12f(r31) /* 803A5FD8 003A2F38 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f /* 803A5FDC 003A2F3C 3B 60 00 00 */ li r27, 0 @@ -3924,6 +4240,8 @@ lbl_803A6040: /* 803A6044 003A2FA4 7C 1B 00 40 */ cmplw r27, r0 /* 803A6048 003A2FA8 41 80 FF B0 */ blt lbl_803A5FF8 /* 803A604C 003A2FAC 48 00 0A B8 */ b lbl_803A6B04 +.global lbl_803A6050 +lbl_803A6050: /* 803A6050 003A2FB0 88 1F 01 21 */ lbz r0, 0x121(r31) /* 803A6054 003A2FB4 28 00 00 FF */ cmplwi r0, 0xff /* 803A6058 003A2FB8 41 82 0A AC */ beq lbl_803A6B04 @@ -3944,6 +4262,8 @@ lbl_803A6040: /* 803A6094 003A2FF4 7C 03 02 14 */ add r0, r3, r0 /* 803A6098 003A2FF8 90 1F 00 38 */ stw r0, 0x38(r31) /* 803A609C 003A2FFC 48 00 0A 68 */ b lbl_803A6B04 +.global lbl_803A60A0 +lbl_803A60A0: /* 803A60A0 003A3000 A0 9F 01 2C */ lhz r4, 0x12c(r31) /* 803A60A4 003A3004 57 45 86 3E */ rlwinm r5, r26, 0x10, 0x18, 0x1f /* 803A60A8 003A3008 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f @@ -3966,36 +4286,52 @@ lbl_803A60E4: /* 803A60E4 003A3044 90 1F 01 80 */ stw r0, 0x180(r31) /* 803A60E8 003A3048 90 1F 01 70 */ stw r0, 0x170(r31) /* 803A60EC 003A304C 48 00 0A 18 */ b lbl_803A6B04 +.global lbl_803A60F0 +lbl_803A60F0: /* 803A60F0 003A3050 7F E3 FB 78 */ mr r3, r31 /* 803A60F4 003A3054 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A60F8 003A3058 4B FF D5 5D */ bl mcmdSetADSR /* 803A60FC 003A305C 48 00 0A 08 */ b lbl_803A6B04 +.global lbl_803A6100 +lbl_803A6100: /* 803A6100 003A3060 7F E3 FB 78 */ mr r3, r31 /* 803A6104 003A3064 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6108 003A3068 4B FF DC 85 */ bl mcmdScaleVolume /* 803A610C 003A306C 48 00 09 F8 */ b lbl_803A6B04 +.global lbl_803A6110 +lbl_803A6110: /* 803A6110 003A3070 7F E3 FB 78 */ mr r3, r31 /* 803A6114 003A3074 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6118 003A3078 4B FF DB 3D */ bl macSetPanning /* 803A611C 003A307C 48 00 09 E8 */ b lbl_803A6B04 +.global lbl_803A6120 +lbl_803A6120: /* 803A6120 003A3080 7F E3 FB 78 */ mr r3, r31 /* 803A6124 003A3084 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6128 003A3088 4B FF DD 99 */ bl mcmdEnvelope /* 803A612C 003A308C 48 00 09 D8 */ b lbl_803A6B04 +.global lbl_803A6130 +lbl_803A6130: /* 803A6130 003A3090 7F E3 FB 78 */ mr r3, r31 /* 803A6134 003A3094 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6138 003A3098 4B FF D0 05 */ bl mcmdStartSample /* 803A613C 003A309C 48 00 09 C8 */ b lbl_803A6B04 +.global lbl_803A6140 +lbl_803A6140: /* 803A6140 003A30A0 80 1F 00 F4 */ lwz r0, 0xf4(r31) /* 803A6144 003A30A4 54 03 06 3E */ clrlwi r3, r0, 0x18 /* 803A6148 003A30A8 48 00 D2 45 */ bl hwBreak /* 803A614C 003A30AC 48 00 09 B8 */ b lbl_803A6B04 +.global lbl_803A6150 +lbl_803A6150: /* 803A6150 003A30B0 80 1F 01 18 */ lwz r0, 0x118(r31) /* 803A6154 003A30B4 7F E3 FB 78 */ mr r3, r31 /* 803A6158 003A30B8 60 00 00 80 */ ori r0, r0, 0x80 /* 803A615C 003A30BC 90 1F 01 18 */ stw r0, 0x118(r31) /* 803A6160 003A30C0 4B FF 49 81 */ bl synthkeystateupdate /* 803A6164 003A30C4 48 00 09 A0 */ b lbl_803A6B04 +.global lbl_803A6168 +lbl_803A6168: /* 803A6168 003A30C8 48 00 CC 39 */ bl sndRand /* 803A616C 003A30CC 80 8D AE E0 */ lwz r4, "cstep$1643"@sda21(r13) /* 803A6170 003A30D0 54 63 06 3E */ clrlwi r3, r3, 0x18 @@ -4012,27 +4348,39 @@ lbl_803A60E4: /* 803A619C 003A30FC 7C 03 02 14 */ add r0, r3, r0 /* 803A61A0 003A3100 90 1F 00 38 */ stw r0, 0x38(r31) /* 803A61A4 003A3104 48 00 09 60 */ b lbl_803A6B04 +.global lbl_803A61A8 +lbl_803A61A8: /* 803A61A8 003A3108 7F E3 FB 78 */ mr r3, r31 /* 803A61AC 003A310C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A61B0 003A3110 4B FF DE 41 */ bl mcmdFadeIn /* 803A61B4 003A3114 48 00 09 50 */ b lbl_803A6B04 +.global lbl_803A61B8 +lbl_803A61B8: /* 803A61B8 003A3118 7F E3 FB 78 */ mr r3, r31 /* 803A61BC 003A311C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A61C0 003A3120 4B FF DB 31 */ bl mcmdSetPanning /* 803A61C4 003A3124 48 00 09 40 */ b lbl_803A6B04 +.global lbl_803A61C8 +lbl_803A61C8: /* 803A61C8 003A3128 7F E3 FB 78 */ mr r3, r31 /* 803A61CC 003A312C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A61D0 003A3130 4B FF D6 DD */ bl mcmdSetADSRFromCtrl /* 803A61D4 003A3134 48 00 09 30 */ b lbl_803A6B04 +.global lbl_803A61D8 +lbl_803A61D8: /* 803A61D8 003A3138 7F E3 FB 78 */ mr r3, r31 /* 803A61DC 003A313C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A61E0 003A3140 4B FF DF 4D */ bl mcmdRandomKey /* 803A61E4 003A3144 48 00 09 20 */ b lbl_803A6B04 +.global lbl_803A61E8 +lbl_803A61E8: /* 803A61E8 003A3148 7F E3 FB 78 */ mr r3, r31 /* 803A61EC 003A314C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A61F0 003A3150 4B FF CE 75 */ bl mcmdAddKey /* 803A61F4 003A3154 7C 7E 1B 78 */ mr r30, r3 /* 803A61F8 003A3158 48 00 09 0C */ b lbl_803A6B04 +.global lbl_803A61FC +lbl_803A61FC: /* 803A61FC 003A315C 57 40 C6 7E */ rlwinm r0, r26, 0x18, 0x19, 0x1f /* 803A6200 003A3160 7F E3 FB 78 */ mr r3, r31 /* 803A6204 003A3164 B0 1F 01 2C */ sth r0, 0x12c(r31) @@ -4055,6 +4403,8 @@ lbl_803A6234: /* 803A6244 003A31A4 4B FF C7 81 */ bl mcmdWait /* 803A6248 003A31A8 7C 7E 1B 78 */ mr r30, r3 /* 803A624C 003A31AC 48 00 08 B8 */ b lbl_803A6B04 +.global lbl_803A6250 +lbl_803A6250: /* 803A6250 003A31B0 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f /* 803A6254 003A31B4 88 7F 01 30 */ lbz r3, 0x130(r31) /* 803A6258 003A31B8 7C 00 07 74 */ extsb r0, r0 @@ -4090,14 +4440,20 @@ lbl_803A62B4: /* 803A62C4 003A3224 4B FF C7 01 */ bl mcmdWait /* 803A62C8 003A3228 7C 7E 1B 78 */ mr r30, r3 /* 803A62CC 003A322C 48 00 08 38 */ b lbl_803A6B04 +.global lbl_803A62D0 +lbl_803A62D0: /* 803A62D0 003A3230 7F E3 FB 78 */ mr r3, r31 /* 803A62D4 003A3234 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A62D8 003A3238 4B FF F0 1D */ bl mcmdPortamento /* 803A62DC 003A323C 48 00 08 28 */ b lbl_803A6B04 +.global lbl_803A62E0 +lbl_803A62E0: /* 803A62E0 003A3240 7F E3 FB 78 */ mr r3, r31 /* 803A62E4 003A3244 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A62E8 003A3248 4B FF D0 51 */ bl mcmdVibrato /* 803A62EC 003A324C 48 00 08 18 */ b lbl_803A6B04 +.global lbl_803A62F0 +lbl_803A62F0: /* 803A62F0 003A3250 38 00 00 00 */ li r0, 0 /* 803A62F4 003A3254 90 1F 01 A0 */ stw r0, 0x1a0(r31) /* 803A62F8 003A3258 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13) @@ -4126,6 +4482,8 @@ lbl_803A6334: /* 803A634C 003A32AC 4B FF C6 79 */ bl mcmdWait /* 803A6350 003A32B0 7C 7E 1B 78 */ mr r30, r3 /* 803A6354 003A32B4 48 00 07 B0 */ b lbl_803A6B04 +.global lbl_803A6358 +lbl_803A6358: /* 803A6358 003A32B8 38 00 00 00 */ li r0, 0 /* 803A635C 003A32BC 90 1F 01 A4 */ stw r0, 0x1a4(r31) /* 803A6360 003A32C0 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13) @@ -4154,6 +4512,8 @@ lbl_803A639C: /* 803A63B4 003A3314 4B FF C6 11 */ bl mcmdWait /* 803A63B8 003A3318 7C 7E 1B 78 */ mr r30, r3 /* 803A63BC 003A331C 48 00 07 48 */ b lbl_803A6B04 +.global lbl_803A63C0 +lbl_803A63C0: /* 803A63C0 003A3320 57 40 C2 3E */ srwi r0, r26, 8 /* 803A63C4 003A3324 90 1F 01 28 */ stw r0, 0x128(r31) /* 803A63C8 003A3328 80 1C 00 04 */ lwz r0, 4(r28) @@ -4168,10 +4528,14 @@ lbl_803A639C: /* 803A63EC 003A334C 7F E3 FB 78 */ mr r3, r31 /* 803A63F0 003A3350 4B FF D0 C5 */ bl DoSetPitch /* 803A63F4 003A3354 48 00 07 10 */ b lbl_803A6B04 +.global lbl_803A63F8 +lbl_803A63F8: /* 803A63F8 003A3358 7F E3 FB 78 */ mr r3, r31 /* 803A63FC 003A335C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6400 003A3360 4B FF D5 D9 */ bl mcmdSetPitchADSR /* 803A6404 003A3364 48 00 07 00 */ b lbl_803A6B04 +.global lbl_803A6408 +lbl_803A6408: /* 803A6408 003A3368 57 40 46 3F */ rlwinm. r0, r26, 8, 0x18, 0x1f /* 803A640C 003A336C 57 43 C4 3E */ rlwinm r3, r26, 0x18, 0x10, 0x1f /* 803A6410 003A3370 40 82 00 1C */ bne lbl_803A642C @@ -4198,6 +4562,8 @@ lbl_803A6454: /* 803A6458 003A33B8 60 00 10 00 */ ori r0, r0, 0x1000 /* 803A645C 003A33BC 90 1F 01 14 */ stw r0, 0x114(r31) /* 803A6460 003A33C0 48 00 06 A4 */ b lbl_803A6B04 +.global lbl_803A6464 +lbl_803A6464: /* 803A6464 003A33C4 57 40 C2 3E */ srwi r0, r26, 8 /* 803A6468 003A33C8 7C 00 07 74 */ extsb r0, r0 /* 803A646C 003A33CC 54 00 40 2E */ slwi r0, r0, 8 @@ -4232,6 +4598,8 @@ lbl_803A64B4: /* 803A64DC 003A343C 7C 00 20 50 */ subf r0, r0, r4 /* 803A64E0 003A3440 B0 1F 01 50 */ sth r0, 0x150(r31) /* 803A64E4 003A3444 48 00 06 20 */ b lbl_803A6B04 +.global lbl_803A64E8 +lbl_803A64E8: /* 803A64E8 003A3448 57 40 C4 3E */ rlwinm r0, r26, 0x18, 0x10, 0x1f /* 803A64EC 003A344C C0 02 D5 8C */ lfs f0, lbl_805AF2AC@sda21(r2) /* 803A64F0 003A3450 B0 1F 01 6C */ sth r0, 0x16c(r31) @@ -4239,6 +4607,8 @@ lbl_803A64B4: /* 803A64F8 003A3458 B0 1F 01 6E */ sth r0, 0x16e(r31) /* 803A64FC 003A345C D0 1F 01 68 */ stfs f0, 0x168(r31) /* 803A6500 003A3460 48 00 06 04 */ b lbl_803A6B04 +.global lbl_803A6504 +lbl_803A6504: /* 803A6504 003A3464 88 1F 00 8C */ lbz r0, 0x8c(r31) /* 803A6508 003A3468 28 00 00 00 */ cmplwi r0, 0 /* 803A650C 003A346C 41 82 05 F8 */ beq lbl_803A6B04 @@ -4260,11 +4630,15 @@ lbl_803A64B4: /* 803A654C 003A34AC 38 03 FF FF */ addi r0, r3, -1 /* 803A6550 003A34B0 98 1F 00 8C */ stb r0, 0x8c(r31) /* 803A6554 003A34B4 48 00 05 B0 */ b lbl_803A6B04 +.global lbl_803A6558 +lbl_803A6558: /* 803A6558 003A34B8 7F E3 FB 78 */ mr r3, r31 /* 803A655C 003A34BC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6560 003A34C0 4B FF C7 55 */ bl mcmdGosub /* 803A6564 003A34C4 7C 7E 1B 78 */ mr r30, r3 /* 803A6568 003A34C8 48 00 05 9C */ b lbl_803A6B04 +.global lbl_803A656C +lbl_803A656C: /* 803A656C 003A34CC 57 43 84 3E */ srwi r3, r26, 0x10 /* 803A6570 003A34D0 4B FF BF 8D */ bl dataGetMacro /* 803A6574 003A34D4 28 03 00 00 */ cmplwi r3, 0 @@ -4295,6 +4669,8 @@ lbl_803A64B4: /* 803A65D8 003A3538 60 80 04 00 */ ori r0, r4, 0x400 /* 803A65DC 003A353C 90 1F 01 14 */ stw r0, 0x114(r31) /* 803A65E0 003A3540 48 00 05 24 */ b lbl_803A6B04 +.global lbl_803A65E4 +lbl_803A65E4: /* 803A65E4 003A3544 57 43 D5 BA */ rlwinm r3, r26, 0x1a, 0x16, 0x1d /* 803A65E8 003A3548 38 80 00 00 */ li r4, 0 /* 803A65EC 003A354C 38 03 00 50 */ addi r0, r3, 0x50 @@ -4314,10 +4690,14 @@ lbl_803A6610: /* 803A661C 003A357C 38 00 00 00 */ li r0, 0 /* 803A6620 003A3580 98 1F 00 68 */ stb r0, 0x68(r31) /* 803A6624 003A3584 48 00 04 E0 */ b lbl_803A6B04 +.global lbl_803A6628 +lbl_803A6628: /* 803A6628 003A3588 7F E3 FB 78 */ mr r3, r31 /* 803A662C 003A358C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6630 003A3590 4B FF F1 FD */ bl mcmdSendMessage /* 803A6634 003A3594 48 00 04 D0 */ b lbl_803A6B04 +.global lbl_803A6638 +lbl_803A6638: /* 803A6638 003A3598 88 1F 03 EC */ lbz r0, 0x3ec(r31) /* 803A663C 003A359C 38 A0 00 00 */ li r5, 0 /* 803A6640 003A35A0 28 00 00 00 */ cmplwi r0, 0 @@ -4348,10 +4728,14 @@ lbl_803A6690: /* 803A669C 003A35FC 7C 60 22 14 */ add r3, r0, r4 /* 803A66A0 003A3600 90 A3 FF C0 */ stw r5, -0x40(r3) /* 803A66A4 003A3604 48 00 04 60 */ b lbl_803A6B04 +.global lbl_803A66A8 +lbl_803A66A8: /* 803A66A8 003A3608 7F E3 FB 78 */ mr r3, r31 /* 803A66AC 003A360C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A66B0 003A3610 4B FF F3 C1 */ bl mcmdGetVID /* 803A66B4 003A3614 48 00 04 50 */ b lbl_803A6B04 +.global lbl_803A66B8 +lbl_803A66B8: /* 803A66B8 003A3618 80 7F 01 10 */ lwz r3, 0x110(r31) /* 803A66BC 003A361C 57 40 84 3E */ srwi r0, r26, 0x10 /* 803A66C0 003A3620 7C 00 07 34 */ extsh r0, r0 @@ -4382,6 +4766,8 @@ lbl_803A6704: /* 803A6718 003A3678 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 /* 803A671C 003A367C 48 00 CA A9 */ bl hwSetPriority /* 803A6720 003A3680 48 00 03 E4 */ b lbl_803A6B04 +.global lbl_803A6724 +lbl_803A6724: /* 803A6724 003A3684 57 40 F8 60 */ rlwinm r0, r26, 0x1f, 1, 0x10 /* 803A6728 003A3688 90 1F 01 10 */ stw r0, 0x110(r31) /* 803A672C 003A368C 80 1F 01 10 */ lwz r0, 0x110(r31) @@ -4392,33 +4778,45 @@ lbl_803A6704: /* 803A6740 003A36A0 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 /* 803A6744 003A36A4 48 00 CA 81 */ bl hwSetPriority /* 803A6748 003A36A8 48 00 03 BC */ b lbl_803A6B04 +.global lbl_803A674C +lbl_803A674C: /* 803A674C 003A36AC 3C 60 80 55 */ lis r3, synthGlobalVariable@ha /* 803A6750 003A36B0 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f /* 803A6754 003A36B4 57 40 D5 BA */ rlwinm r0, r26, 0x1a, 0x16, 0x1d /* 803A6758 003A36B8 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l /* 803A675C 003A36BC 7C 83 01 2E */ stwx r4, r3, r0 /* 803A6760 003A36C0 48 00 03 A4 */ b lbl_803A6B04 +.global lbl_803A6764 +lbl_803A6764: /* 803A6764 003A36C4 57 40 86 3E */ rlwinm r0, r26, 0x10, 0x18, 0x1f /* 803A6768 003A36C8 98 1F 01 D6 */ stb r0, 0x1d6(r31) /* 803A676C 003A36CC 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13) /* 803A6770 003A36D0 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f /* 803A6774 003A36D4 98 1F 01 D7 */ stb r0, 0x1d7(r31) /* 803A6778 003A36D8 48 00 03 8C */ b lbl_803A6B04 +.global lbl_803A677C +lbl_803A677C: /* 803A677C 003A36DC 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f /* 803A6780 003A36E0 98 1F 01 90 */ stb r0, 0x190(r31) /* 803A6784 003A36E4 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13) /* 803A6788 003A36E8 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f /* 803A678C 003A36EC 98 1F 01 91 */ stb r0, 0x191(r31) /* 803A6790 003A36F0 48 00 03 74 */ b lbl_803A6B04 +.global lbl_803A6794 +lbl_803A6794: /* 803A6794 003A36F4 80 9F 01 18 */ lwz r4, 0x118(r31) /* 803A6798 003A36F8 3C 00 00 01 */ lis r0, 1 /* 803A679C 003A36FC 7C 80 03 78 */ or r0, r4, r0 /* 803A67A0 003A3700 90 1F 01 18 */ stw r0, 0x118(r31) /* 803A67A4 003A3704 48 00 03 60 */ b lbl_803A6B04 +.global lbl_803A67A8 +lbl_803A67A8: /* 803A67A8 003A3708 7F E3 FB 78 */ mr r3, r31 /* 803A67AC 003A370C 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f /* 803A67B0 003A3710 48 00 14 49 */ bl voiceSetPriority /* 803A67B4 003A3714 48 00 03 50 */ b lbl_803A6B04 +.global lbl_803A67B8 +lbl_803A67B8: /* 803A67B8 003A3718 57 40 84 3E */ srwi r0, r26, 0x10 /* 803A67BC 003A371C 88 9F 01 0C */ lbz r4, 0x10c(r31) /* 803A67C0 003A3720 7C 00 07 34 */ extsh r0, r0 @@ -4437,6 +4835,8 @@ lbl_803A67EC: /* 803A67EC 003A374C 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 803A67F0 003A3750 48 00 14 09 */ bl voiceSetPriority /* 803A67F4 003A3754 48 00 03 10 */ b lbl_803A6B04 +.global lbl_803A67F8 +lbl_803A67F8: /* 803A67F8 003A3758 80 7C 00 04 */ lwz r3, 4(r28) /* 803A67FC 003A375C 28 03 00 00 */ cmplwi r3, 0 /* 803A6800 003A3760 41 82 00 18 */ beq lbl_803A6818 @@ -4449,6 +4849,8 @@ lbl_803A6818: /* 803A6818 003A3778 38 00 00 00 */ li r0, 0 /* 803A681C 003A377C B0 1F 01 0E */ sth r0, 0x10e(r31) /* 803A6820 003A3780 48 00 02 E4 */ b lbl_803A6B04 +.global lbl_803A6824 +lbl_803A6824: /* 803A6824 003A3784 80 9F 01 54 */ lwz r4, 0x154(r31) /* 803A6828 003A3788 57 45 84 3E */ srwi r5, r26, 0x10 /* 803A682C 003A378C 80 7C 00 04 */ lwz r3, 4(r28) @@ -4471,66 +4873,98 @@ lbl_803A6854: /* 803A686C 003A37CC 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 /* 803A6870 003A37D0 48 00 C9 55 */ bl hwSetPriority /* 803A6874 003A37D4 48 00 02 90 */ b lbl_803A6B04 +.global lbl_803A6878 +lbl_803A6878: /* 803A6878 003A37D8 7F E3 FB 78 */ mr r3, r31 /* 803A687C 003A37DC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6880 003A37E0 4B FF DA 49 */ bl mcmdVolumeSelect /* 803A6884 003A37E4 48 00 02 80 */ b lbl_803A6B04 +.global lbl_803A6888 +lbl_803A6888: /* 803A6888 003A37E8 7F E3 FB 78 */ mr r3, r31 /* 803A688C 003A37EC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6890 003A37F0 4B FF DB 3D */ bl mcmdPanningSelect /* 803A6894 003A37F4 48 00 02 70 */ b lbl_803A6B04 +.global lbl_803A6898 +lbl_803A6898: /* 803A6898 003A37F8 7F E3 FB 78 */ mr r3, r31 /* 803A689C 003A37FC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68A0 003A3800 4B FF DC 31 */ bl mcmdPitchWheelSelect /* 803A68A4 003A3804 48 00 02 60 */ b lbl_803A6B04 +.global lbl_803A68A8 +lbl_803A68A8: /* 803A68A8 003A3808 7F E3 FB 78 */ mr r3, r31 /* 803A68AC 003A380C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68B0 003A3810 4B FF DD 25 */ bl mcmdModWheelSelect /* 803A68B4 003A3814 48 00 02 50 */ b lbl_803A6B04 +.global lbl_803A68B8 +lbl_803A68B8: /* 803A68B8 003A3818 7F E3 FB 78 */ mr r3, r31 /* 803A68BC 003A381C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68C0 003A3820 4B FF DE 19 */ bl mcmdPedalSelect /* 803A68C4 003A3824 48 00 02 40 */ b lbl_803A6B04 +.global lbl_803A68C8 +lbl_803A68C8: /* 803A68C8 003A3828 7F E3 FB 78 */ mr r3, r31 /* 803A68CC 003A382C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68D0 003A3830 4B FF DF 0D */ bl mcmdPortamentoSelect /* 803A68D4 003A3834 48 00 02 30 */ b lbl_803A6B04 +.global lbl_803A68D8 +lbl_803A68D8: /* 803A68D8 003A3838 7F E3 FB 78 */ mr r3, r31 /* 803A68DC 003A383C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68E0 003A3840 4B FF E0 01 */ bl mcmdReverbSelect /* 803A68E4 003A3844 48 00 02 20 */ b lbl_803A6B04 +.global lbl_803A68E8 +lbl_803A68E8: /* 803A68E8 003A3848 7F E3 FB 78 */ mr r3, r31 /* 803A68EC 003A384C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A68F0 003A3850 4B FF E4 01 */ bl mcmdSurroundingPanningSelect /* 803A68F4 003A3854 48 00 02 10 */ b lbl_803A6B04 +.global lbl_803A68F8 +lbl_803A68F8: /* 803A68F8 003A3858 7F E3 FB 78 */ mr r3, r31 /* 803A68FC 003A385C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6900 003A3860 4B FF E4 F5 */ bl mcmdDopplerSelect /* 803A6904 003A3864 48 00 02 00 */ b lbl_803A6B04 +.global lbl_803A6908 +lbl_803A6908: /* 803A6908 003A3868 7F E3 FB 78 */ mr r3, r31 /* 803A690C 003A386C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6910 003A3870 4B FF E5 E9 */ bl mcmdTremoloSelect /* 803A6914 003A3874 48 00 01 F0 */ b lbl_803A6B04 +.global lbl_803A6918 +lbl_803A6918: /* 803A6918 003A3878 7F E3 FB 78 */ mr r3, r31 /* 803A691C 003A387C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6920 003A3880 4B FF E0 C5 */ bl mcmdPreAuxASelect /* 803A6924 003A3884 48 00 01 E0 */ b lbl_803A6B04 +.global lbl_803A6928 +lbl_803A6928: /* 803A6928 003A3888 7F E3 FB 78 */ mr r3, r31 /* 803A692C 003A388C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6930 003A3890 4B FF E1 B9 */ bl mcmdPreAuxBSelect /* 803A6934 003A3894 48 00 01 D0 */ b lbl_803A6B04 +.global lbl_803A6938 +lbl_803A6938: /* 803A6938 003A3898 7F E3 FB 78 */ mr r3, r31 /* 803A693C 003A389C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6940 003A38A0 4B FF E2 AD */ bl mcmdPostAuxBSelect /* 803A6944 003A38A4 48 00 01 C0 */ b lbl_803A6B04 +.global lbl_803A6948 +lbl_803A6948: /* 803A6948 003A38A8 7F E3 FB 78 */ mr r3, r31 /* 803A694C 003A38AC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6950 003A38B0 4B FF E6 AD */ bl mcmdAuxAFXSelect /* 803A6954 003A38B4 48 00 01 B0 */ b lbl_803A6B04 +.global lbl_803A6958 +lbl_803A6958: /* 803A6958 003A38B8 7F E3 FB 78 */ mr r3, r31 /* 803A695C 003A38BC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6960 003A38C0 4B FF E8 19 */ bl mcmdAuxBFXSelect /* 803A6964 003A38C4 48 00 01 A0 */ b lbl_803A6B04 +.global lbl_803A6968 +lbl_803A6968: /* 803A6968 003A38C8 57 40 84 3E */ srwi r0, r26, 0x10 /* 803A696C 003A38CC 38 61 00 08 */ addi r3, r1, 8 /* 803A6970 003A38D0 90 01 00 08 */ stw r0, 8(r1) @@ -4552,6 +4986,8 @@ lbl_803A69AC: /* 803A69AC 003A390C 80 01 00 08 */ lwz r0, 8(r1) /* 803A69B0 003A3910 90 19 01 C0 */ stw r0, 0x1c0(r25) /* 803A69B4 003A3914 48 00 01 50 */ b lbl_803A6B04 +.global lbl_803A69B8 +lbl_803A69B8: /* 803A69B8 003A3918 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f /* 803A69BC 003A391C 7C 03 00 D0 */ neg r0, r3 /* 803A69C0 003A3920 7C 00 1B 78 */ or r0, r0, r3 @@ -4563,10 +4999,14 @@ lbl_803A69AC: /* 803A69D8 003A3938 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f /* 803A69DC 003A393C 98 1F 01 93 */ stb r0, 0x193(r31) /* 803A69E0 003A3940 48 00 01 24 */ b lbl_803A6B04 +.global lbl_803A69E4 +lbl_803A69E4: /* 803A69E4 003A3944 7F E3 FB 78 */ mr r3, r31 /* 803A69E8 003A3948 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A69EC 003A394C 4B FF F1 05 */ bl mcmdSetKeyGroup /* 803A69F0 003A3950 48 00 01 14 */ b lbl_803A6B04 +.global lbl_803A69F4 +lbl_803A69F4: /* 803A69F4 003A3954 80 1F 00 F4 */ lwz r0, 0xf4(r31) /* 803A69F8 003A3958 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f /* 803A69FC 003A395C 54 03 06 3E */ clrlwi r3, r0, 0x18 @@ -4580,31 +5020,43 @@ lbl_803A69AC: /* 803A6A1C 003A397C 60 00 08 00 */ ori r0, r0, 0x800 /* 803A6A20 003A3980 90 1F 01 14 */ stw r0, 0x114(r31) /* 803A6A24 003A3984 48 00 00 E0 */ b lbl_803A6B04 +.global lbl_803A6A28 +lbl_803A6A28: /* 803A6A28 003A3988 7F E3 FB 78 */ mr r3, r31 /* 803A6A2C 003A398C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6A30 003A3990 38 A0 00 00 */ li r5, 0 /* 803A6A34 003A3994 4B FF EA 8D */ bl mcmdVarCalculation /* 803A6A38 003A3998 48 00 00 CC */ b lbl_803A6B04 +.global lbl_803A6A3C +lbl_803A6A3C: /* 803A6A3C 003A399C 7F E3 FB 78 */ mr r3, r31 /* 803A6A40 003A39A0 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6A44 003A39A4 38 A0 00 01 */ li r5, 1 /* 803A6A48 003A39A8 4B FF EA 79 */ bl mcmdVarCalculation /* 803A6A4C 003A39AC 48 00 00 B8 */ b lbl_803A6B04 +.global lbl_803A6A50 +lbl_803A6A50: /* 803A6A50 003A39B0 7F E3 FB 78 */ mr r3, r31 /* 803A6A54 003A39B4 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6A58 003A39B8 38 A0 00 02 */ li r5, 2 /* 803A6A5C 003A39BC 4B FF EA 65 */ bl mcmdVarCalculation /* 803A6A60 003A39C0 48 00 00 A4 */ b lbl_803A6B04 +.global lbl_803A6A64 +lbl_803A6A64: /* 803A6A64 003A39C4 7F E3 FB 78 */ mr r3, r31 /* 803A6A68 003A39C8 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6A6C 003A39CC 38 A0 00 03 */ li r5, 3 /* 803A6A70 003A39D0 4B FF EA 51 */ bl mcmdVarCalculation /* 803A6A74 003A39D4 48 00 00 90 */ b lbl_803A6B04 +.global lbl_803A6A78 +lbl_803A6A78: /* 803A6A78 003A39D8 7F E3 FB 78 */ mr r3, r31 /* 803A6A7C 003A39DC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6A80 003A39E0 38 A0 00 04 */ li r5, 4 /* 803A6A84 003A39E4 4B FF EA 3D */ bl mcmdVarCalculation /* 803A6A88 003A39E8 48 00 00 7C */ b lbl_803A6B04 +.global lbl_803A6A8C +lbl_803A6A8C: /* 803A6A8C 003A39EC 80 7C 00 04 */ lwz r3, 4(r28) /* 803A6A90 003A39F0 57 40 C6 3F */ rlwinm. r0, r26, 0x18, 0x18, 0x1f /* 803A6A94 003A39F4 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f @@ -4628,15 +5080,20 @@ lbl_803A6AC8: /* 803A6AD4 003A3A34 7C 60 22 14 */ add r3, r0, r4 /* 803A6AD8 003A3A38 90 A3 FF C0 */ stw r5, -0x40(r3) /* 803A6ADC 003A3A3C 48 00 00 28 */ b lbl_803A6B04 +.global lbl_803A6AE0 +lbl_803A6AE0: /* 803A6AE0 003A3A40 7F E3 FB 78 */ mr r3, r31 /* 803A6AE4 003A3A44 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6AE8 003A3A48 38 A0 00 00 */ li r5, 0 /* 803A6AEC 003A3A4C 4B FF EB F5 */ bl mcmdIfVarCompare /* 803A6AF0 003A3A50 48 00 00 14 */ b lbl_803A6B04 +.global lbl_803A6AF4 +lbl_803A6AF4: /* 803A6AF4 003A3A54 7F E3 FB 78 */ mr r3, r31 /* 803A6AF8 003A3A58 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21 /* 803A6AFC 003A3A5C 38 A0 00 01 */ li r5, 1 /* 803A6B00 003A3A60 4B FF EB E1 */ bl mcmdIfVarCompare +.global lbl_803A6B04 lbl_803A6B04: /* 803A6B04 003A3A64 28 1E 00 00 */ cmplwi r30, 0 /* 803A6B08 003A3A68 41 82 F3 30 */ beq lbl_803A5E38 diff --git a/src/musyx/dsp_import.h b/include/musyx/dsp_import.h similarity index 100% rename from src/musyx/dsp_import.h rename to include/musyx/dsp_import.h diff --git a/include/musyx/synth_dbtab.h b/include/musyx/synth_dbtab.h new file mode 100644 index 00000000..26289f78 --- /dev/null +++ b/include/musyx/synth_dbtab.h @@ -0,0 +1,17 @@ +#ifndef MUSYX_DSP_IMPORT_H +#define MUSYX_DSP_IMPORT_H + +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +extern u16 dspAttenuationTab[194]; +extern u8 dspScale2IndexTab[1024]; +extern float dspDLSVolTab[129]; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/obj_files.mk b/obj_files.mk index c2eded46..468c8ad4 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -168,6 +168,7 @@ MUSYX_FILES :=\ $(BUILD_DIR)/asm/musyx/synth_ac.o\ $(BUILD_DIR)/asm/musyx/synth_adsr.o\ $(BUILD_DIR)/asm/musyx/synth_vsamples.o\ + $(BUILD_DIR)/src/musyx/synth_dbtab.o\ $(BUILD_DIR)/asm/musyx/s_data.o\ $(BUILD_DIR)/asm/musyx/hw_dspctrl.o\ $(BUILD_DIR)/asm/musyx/hw_volconv.o\ diff --git a/src/musyx/dsp_import.c b/src/musyx/dsp_import.c index 80b65b85..329a660a 100644 --- a/src/musyx/dsp_import.c +++ b/src/musyx/dsp_import.c @@ -1,4 +1,4 @@ -#include "src/musyx/dsp_import.h" +#include "musyx/dsp_import.h" #ifdef __cplusplus extern "C" { diff --git a/src/musyx/synth_dbtab.c b/src/musyx/synth_dbtab.c new file mode 100644 index 00000000..0141e0f6 --- /dev/null +++ b/src/musyx/synth_dbtab.c @@ -0,0 +1,112 @@ +#include "musyx/synth_dbtab.h" + +#ifdef __cplusplus +extern "C" { +#endif + +u16 dspAttenuationTab[194] = { + 0x7FFF, 0x78D6, 0x7213, 0x6BB1, 0x65AB, 0x5FFB, 0x5A9D, 0x558B, 0x50C2, 0x4C3E, 0x47FA, 0x43F3, 0x4026, 0x3C8F, 0x392C, 0x35F9, + 0x32F4, 0x301B, 0x2D6A, 0x2ADF, 0x2879, 0x2636, 0x2412, 0x220E, 0x2026, 0x1E5A, 0x1CA7, 0x1B0D, 0x1989, 0x181C, 0x16C2, 0x157C, + 0x1449, 0x1326, 0x1214, 0x1111, 0x101D, 0x0F36, 0x0E5C, 0x0D8E, 0x0CCC, 0x0C15, 0x0B68, 0x0AC5, 0x0A2A, 0x0999, 0x090F, 0x088D, + 0x0813, 0x079F, 0x0732, 0x06CB, 0x066A, 0x060E, 0x05B7, 0x0565, 0x0518, 0x04CF, 0x048A, 0x0449, 0x040C, 0x03D2, 0x039B, 0x0367, + 0x0337, 0x0309, 0x02DD, 0x02B4, 0x028D, 0x0269, 0x0246, 0x0226, 0x0207, 0x01EA, 0x01CE, 0x01B4, 0x019C, 0x0185, 0x016F, 0x015B, + 0x0147, 0x0135, 0x0124, 0x0113, 0x0104, 0x00F5, 0x00E7, 0x00DA, 0x00CE, 0x00C3, 0x00B8, 0x00AD, 0x00A4, 0x009B, 0x0092, 0x008A, + 0x0082, 0x007B, 0x0074, 0x006D, 0x0067, 0x0061, 0x005C, 0x0057, 0x0052, 0x004D, 0x0049, 0x0045, 0x0041, 0x003D, 0x003A, 0x0037, + 0x0033, 0x0031, 0x002E, 0x002B, 0x0029, 0x0026, 0x0024, 0x0022, 0x0020, 0x001E, 0x001D, 0x001B, 0x001A, 0x0018, 0x0017, 0x0015, + 0x0014, 0x0013, 0x0012, 0x0011, 0x0010, 0x000F, 0x000E, 0x000D, 0x000D, 0x000C, 0x000B, 0x000A, 0x000A, 0x0009, 0x0009, 0x0008, + 0x0008, 0x0007, 0x0007, 0x0006, 0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0004, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, +}; + +u8 dspScale2IndexTab[1024] = { + 0xC1, 0x78, 0x6C, 0x65, 0x60, 0x5C, 0x59, 0x57, 0x54, 0x52, 0x50, 0x4F, 0x4D, 0x4C, 0x4B, 0x49, + 0x48, 0x47, 0x46, 0x45, 0x44, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3F, 0x3F, 0x3E, 0x3D, 0x3D, + 0x3C, 0x3C, 0x3B, 0x3B, 0x3A, 0x3A, 0x39, 0x39, 0x38, 0x38, 0x37, 0x37, 0x37, 0x36, 0x36, 0x36, + 0x35, 0x35, 0x34, 0x34, 0x34, 0x33, 0x33, 0x33, 0x32, 0x32, 0x32, 0x32, 0x31, 0x31, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x2F, 0x2F, 0x2F, 0x2F, 0x2E, 0x2E, 0x2E, 0x2E, 0x2D, 0x2D, 0x2D, 0x2D, 0x2C, + 0x2C, 0x2C, 0x2C, 0x2C, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x29, 0x29, + 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x24, 0x24, + 0x24, 0x24, 0x24, 0x24, 0x24, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x1F, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1D, 0x1D, 0x1D, 0x1D, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1C, 0x1C, 0x1C, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1A, + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x19, 0x19, 0x19, 0x19, + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, + 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x13, 0x13, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, + 0x13, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E, 0x0E, 0x0E, + 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, + 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, + 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, + 0x0D, 0x0D, 0x0D, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, + 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +float dspDLSVolTab[129] = { + 0.000000, 0.000062, 0.000248, 0.000558, 0.000992, 0.001550, 0.002232, 0.003038, + 0.003968, 0.005022, 0.006200, 0.007502, 0.008928, 0.010478, 0.012152, 0.013950, + 0.015872, 0.017918, 0.020088, 0.022382, 0.024800, 0.027342, 0.030008, 0.032798, + 0.035712, 0.038750, 0.041912, 0.045198, 0.048608, 0.052142, 0.055800, 0.059582, + 0.063488, 0.067518, 0.071672, 0.075950, 0.080352, 0.084878, 0.089528, 0.094302, + 0.099200, 0.104222, 0.109368, 0.114638, 0.120032, 0.125550, 0.131192, 0.136958, + 0.142848, 0.148862, 0.155000, 0.161262, 0.167648, 0.174158, 0.180792, 0.187550, + 0.194432, 0.201438, 0.208568, 0.215822, 0.223200, 0.230702, 0.238328, 0.246078, + 0.253953, 0.261951, 0.270073, 0.278319, 0.286689, 0.295183, 0.303801, 0.312543, + 0.321409, 0.330399, 0.339513, 0.348751, 0.358113, 0.367599, 0.377209, 0.386943, + 0.396801, 0.406783, 0.416889, 0.427119, 0.437473, 0.447951, 0.458553, 0.469279, + 0.480129, 0.491103, 0.502201, 0.513423, 0.524769, 0.536239, 0.547833, 0.559551, + 0.571393, 0.583359, 0.595449, 0.607663, 0.620001, 0.632463, 0.645049, 0.657759, + 0.670593, 0.683551, 0.696633, 0.709839, 0.723169, 0.736623, 0.750202, 0.763904, + 0.777730, 0.791680, 0.805754, 0.819952, 0.834274, 0.848720, 0.863290, 0.877984, + 0.892802, 0.907744, 0.922810, 0.938000, 0.953314, 0.968752, 0.984314, 1.000000, + 1.000000, +}; + +#ifdef __cplusplus +} +#endif