Closed thammer closed 2 months ago
You might want to try itnrheu the MS70CDR decoder?
https://github.com/shooking/ZoomPedalFun/tree/8572bf1d436a25324c77bcc3b88f4867ba20c1e6/MS70CDR
Likely.the ID might be different but very likely the sysex is very similar
F0 52 00 6E 45 <bank-MSB2> <bank-LSB2> <program2> <datalen2> <data-packed7bit> <data-checksum5> F7
datalen2:[50 06]:0x50+0x06*128=848
data-checksum5:[3A 68 4B 45 0F]:0x3a+0x68*128 + 0x4b*128*128 + 0x45*128*128*128 + 0x0f*128*128*128*128=0xf8b2f43a
Apparently, the patch is based on the "027:Cosmic Sans" preset, but the effects are different.
@thammer Since you're exploring the MS-50G+, could you select the preset "027" and dump out the patch parameters by using the following SysEx and post the output here?
F0 52 00 6E 64 02 00 07 00 F7
Yeah. That patch was created by me. It was the first patch I created, so it was based on the original preset 027 and instead of saving it to a new preset, I accidently wrote over the old one.
Anyway, here's the sysex output after sending "F0 52 00 6E 64 02 00 07 00 F7" to the pedal. Oddly enough, the device ID is the same for the MS-50G+ and the G1Four, "6E".
Hexadecimal:
F0 52 00 6E 64 01 00 00 00 00 31 00 00 00 00 00 00 00 00 00 00 00 01 00 4F 6E 4F 66 66 00 00 00 00 00 00 01 00 00 52 69 6E 67 4D 6F 64 00 00 00 00 01
01 00 52 69 6E 67 4D 6F 64 00 00 00 00 02 00 00 33 36 00 00 00 00 00 00 00 00 00 02 01 00 46 52 45 51 00 00 00 00 00 00 00 03 00 00 31 30 00 00 00 00
00 00 00 00 00 03 01 00 54 6F 6E 65 00 00 00 00 00 00 00 04 00 00 30 00 00 00 00 00 00 00 00 00 00 04 01 00 42 41 4C 00 00 00 00 00 00 00 00 05 00 00
39 30 00 00 00 00 00 00 00 00 00 05 01 00 56 4F 4C 00 00 00 00 00 00 00 01 00 00 00 31 00 00 00 00 00 00 00 00 00 01 00 01 00 4F 6E 4F 66 66 00 00 00
00 00 01 01 00 00 41 75 74 6F 50 61 6E 00 00 00 01 01 01 00 41 75 74 6F 50 61 6E 00 00 00 01 02 00 00 19 78 35 00 00 00 00 00 00 00 01 02 01 00 52 61
74 65 00 00 00 00 00 00 01 03 00 00 32 34 00 00 00 00 00 00 00 00 01 03 01 00 57 69 64 74 68 00 00 00 00 00 01 04 00 00 30 00 00 00 00 00 00 00 00 00
01 04 01 00 43 6C 69 70 00 00 00 00 00 00 01 05 00 00 38 30 00 00 00 00 00 00 00 00 01 05 01 00 56 4F 4C 00 00 00 00 00 00 00 02 00 00 00 31 00 00 00
00 00 00 00 00 00 02 00 01 00 4F 6E 4F 66 66 00 00 00 00 00 02 01 00 00 44 75 61 6C 44 65 6C 61 79 00 02 01 01 00 44 75 61 6C 44 65 6C 61 79 00 02 02
00 00 19 2E 00 00 00 00 00 00 00 00 02 02 01 00 54 69 6D 65 41 00 00 00 00 00 02 03 00 00 18 2E 00 00 00 00 00 00 00 00 02 03 01 00 54 69 6D 65 42 00
00 00 00 00 02 04 00 00 42 50 4D 20 53 59 4E 43 00 00 02 04 01 00 4D 6F 64 65 00 00 00 00 00 00 02 05 00 00 35 36 00 00 00 00 00 00 00 00 02 05 01 00
42 41 4C 00 00 00 00 00 00 00 02 06 00 00 33 32 00 00 00 00 00 00 00 00 02 06 01 00 52 45 50 20 41 00 00 00 00 00 02 07 00 00 33 34 00 00 00 00 00 00
00 00 02 07 01 00 52 45 50 20 42 00 00 00 00 00 02 08 00 00 32 33 00 00 00 00 00 00 00 00 02 08 01 00 44 6C 79 4D 78 00 00 00 00 00 02 09 00 00 53 54
2D 31 30 00 00 00 00 00 02 09 01 00 44 65 70 74 68 00 00 00 00 00 03 00 00 00 30 00 00 00 00 00 00 00 00 00 03 00 01 00 4F 6E 4F 66 66 00 00 00 00 00
03 01 00 00 31 31 37 36 20 4C 4D 54 00 00 03 01 01 00 31 31 37 36 20 4C 4D 54 00 00 03 02 00 00 33 35 00 00 00 00 00 00 00 00 03 02 01 00 49 6E 70 75
74 00 00 00 00 00 03 03 00 00 34 3A 31 00 00 00 00 00 00 00 03 03 01 00 52 61 74 69 6F 00 00 00 00 00 03 04 00 00 32 30 00 00 00 00 00 00 00 00 03 04
01 00 52 45 4C 00 00 00 00 00 00 00 03 05 00 00 31 36 00 00 00 00 00 00 00 00 03 05 01 00 4F 75 74 70 75 74 00 00 00 00 04 00 00 00 31 00 00 00 00 00
00 00 00 00 04 00 01 00 4F 6E 4F 66 66 00 00 00 00 00 04 01 00 00 42 72 67 68 74 48 61 6C 6C 00 04 01 01 00 42 72 67 68 74 48 61 6C 6C 00 04 02 00 00
39 31 00 00 00 00 00 00 00 00 04 02 01 00 50 72 65 20 44 4C 59 00 00 00 04 03 00 00 33 30 00 00 00 00 00 00 00 00 04 03 01 00 44 65 63 61 79 00 00 00
00 00 04 04 00 00 31 30 00 00 00 00 00 00 00 00 04 04 01 00 54 6F 6E 65 00 00 00 00 00 00 04 05 00 00 37 31 00 00 00 00 00 00 00 00 04 05 01 00 4D 69
78 00 00 00 00 00 00 00 05 00 00 00 30 00 00 00 00 00 00 00 00 00 05 00 01 00 4F 6E 4F 66 66 00 00 00 00 00 05 01 00 00 41 6E 61 6C 6F 67 44 6C 79 00
05 01 01 00 41 6E 61 6C 6F 67 44 6C 79 00 05 02 00 00 39 34 30 00 00 00 00 00 00 00 05 02 01 00 54 69 6D 65 00 00 00 00 00 00 05 03 00 00 4C 4F 4E 47
00 00 00 00 00 00 05 03 01 00 4D 6F 64 65 00 00 00 00 00 00 05 04 00 00 32 38 00 00 00 00 00 00 00 00 05 04 01 00 52 65 70 65 61 74 00 00 00 00 05 05
00 00 34 30 00 00 00 00 00 00 00 00 05 05 01 00 4D 69 78 00 00 00 00 00 00 00 F7
Printable ASCII (and apostrophes where not printable):
'R'nd''''' 1''''''''' ''''OnOff' ''''''''Ri ngMod'''''
''RingMod' ''''''36'' '''''''''' FREQ'''''' ''''10''''
''''''''To ne'''''''' ''0''''''' ''''''BAL' ''''''''''
90'''''''' ''''VOL''' ''''''''1' '''''''''' ''OnOff'''
''''''Auto Pan''''''' AutoPan''' '''''x5''' ''''''''Ra
te'''''''' ''24'''''' ''''''Widt h''''''''' 0'''''''''
''''Clip'' ''''''''80 '''''''''' ''VOL''''' ''''''1'''
'''''''''' OnOff''''' ''''DualDe lay'''''Du alDelay'''
'''.'''''' ''''''Time A''''''''' '.'''''''' ''''TimeB'
''''''''BP M SYNC'''' ''Mode'''' ''''''56'' ''''''''''
BAL''''''' ''''32'''' ''''''''RE P A''''''' ''34''''''
''''''REP B''''''''' 23'''''''' ''''DlyMx' ''''''''ST
-10''''''' ''Depth''' ''''''0''' '''''''''' OnOff'''''
''''1176 L MT''''''11 76 LMT'''' ''35'''''' ''''''Inpu
t''''''''' 4:1''''''' ''''Ratio' ''''''''20 ''''''''''
''REL''''' ''''''16'' '''''''''' Output'''' ''''1'''''
''''''''On Off''''''' ''BrghtHal l'''''Brgh tHall'''''
91'''''''' ''''Pre DL Y'''''''30 '''''''''' ''Decay'''
''''''10'' '''''''''' Tone'''''' ''''71'''' ''''''''Mi
x''''''''' ''0''''''' ''''''OnOf f''''''''' AnalogDly'
''''Analog Dly'''''94 0''''''''' ''Time'''' ''''''LONG
'''''''''' Mode'''''' ''''28'''' ''''''''Re peat''''''
''40'''''' ''''''Mix' '''''''
So two things to report, the packet data is 7bit packed and needs to be unpacked....
$ python3 ms_plus_patch.py
length 848
00000000: 50 54 43 46 CC 01 00 00 02 00 00 00 06 00 00 00 PTCF............
00000010: 00 00 04 00 00 00 00 00 00 00 57 46 20 53 70 61 ..........WF Spa
00000020: 63 65 20 20 20 00 00 08 10 00 00 07 50 00 00 08 ce .......P...
00000030: 20 00 00 08 70 00 00 09 20 00 00 08 54 58 4A 31 ...p... ...TXJ1
00000040: 54 00 00 00 83 49 81 5B 83 67 83 8F 83 45 82 F0 T....I.[.g...E..
00000050: 8E 67 97 70 82 B5 82 BD 31 30 94 4E 91 E3 8C E3 .g.p....10.N....
00000060: 8A FA 83 41 83 81 83 8A 83 4A 82 CC 83 74 83 40 ...A.....J...t.@
00000070: 83 93 83 4E 82 C9 93 4B 82 B5 82 BD 83 4A 83 62 ...N...K.....J.b
00000080: 83 65 83 42 83 93 83 4F 83 54 83 45 83 93 83 68 .e.B...O.T.E...h
00000090: 82 C5 82 B7 81 42 00 00 54 58 45 31 44 00 00 00 .....B..TXE1D...
000000A0: 43 75 74 74 69 6E 67 20 73 6F 75 6E 64 20 73 75 Cutting sound su
000000B0: 69 74 61 62 6C 65 20 66 6F 72 20 6C 61 74 65 20 itable for late
000000C0: 31 30 27 73 20 41 6D 65 72 69 63 61 6E 20 66 75 10's American fu
000000D0: 6E 6B 20 77 69 74 68 20 61 75 74 6F 2D 77 61 68 nk with auto-wah
000000E0: 2E 00 00 00 45 44 54 42 90 00 00 00 41 00 00 90 ....EDTB....A...
000000F0: EC 08 00 07 A0 00 00 00 00 00 00 00 00 00 00 00 ................
00000100: 00 00 00 00 21 00 00 0E 12 60 00 00 40 01 00 00 ....!....`..@...
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 A1 00 00 D0 ................
00000120: 47 00 00 00 A0 00 08 88 5C F4 00 00 00 00 00 00 G.......\.......
00000130: 00 00 00 00 41 00 00 10 22 00 40 0C 74 01 00 00 ....A...".@.t...
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 E1 00 00 92 ................
00000150: 16 74 80 02 10 01 00 00 00 00 00 00 00 00 00 00 .t..............
00000160: 00 00 00 00 40 00 00 D0 08 00 00 07 A0 00 00 00 ....@...........
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 50 52 4D 32 ............PRM2
00000180: 20 00 00 00 00 00 00 00 00 00 00 00 00 80 0C 42 ..............B
00000190: 86 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001A0: 00 00 00 05 4E 41 4D 45 20 00 00 00 57 46 20 53 ....NAME ...WF S
000001B0: 70 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 pace
000001C0: 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 ........
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
None
Checksum error 0x71f165e8
Unfortunately my decoder script glitches on this, but I can looks to see why later...
Correction; --summary
glitches, but --dump
works OK.
$ python3 decode_preset.py -d temp.zptc
Container:
p = Container:
l = 460
v = 2
length = 460
version = 2
fx_count = 6
targets = Container:
...
Wow! That's very useful. I'll have a go at doing the 7-bit to 8-bit conversion in the web app.
In the mean time, I managed to accidentally send the sysex command to enter firmware update mode to the pedal, and now the pedal won't boot regularly. It's just a black screen, blinking red light, presumably waiting for firmware.
It does show up as a MIDI device when I connect it to my computer, but I'm afraid to start sending MIDI messages to it in fear of bricking it permanently.
I have tried holding down all the buttons while powering up, but it still ends up in the same state.
Have you encountered anything like this before? Any suggestions on how to tell the pedal to not wait for firmware anymore?
Ah - this is the newer 50G ... so the sysex seems to be quite different to the original and more like the G1XFour?
...I managed to accidentally send the sysex command to enter firmware update mode
Which command did you send?
...I managed to accidentally send the sysex command to enter firmware update mode
Which command did you send?
I don't think we should document that in a public post, at least not until we can document how to fix it at the same time. Currently my pedal is for all practical purposes bricked. If you email me at h@mmer.no, I'll let you know the command in private.
On the G1Four the FW upload process has a display on the screen, it seems unbelievable that the newer MS+ pedals would not have similar display. In seems that you may have discovered a factory mode, or perhaps triggered something very special... :-( The fact that it's not totally dead (ie has USB Midi) is somewhat hopeful.
I (and a user in Russia) had an issue where our pedals 'forgot' what they were (device ID 0x00). But I had a legit FW uploader EXE, and I was able to patch it to be valid for the 0x00
device. Can you confirm the response to 'SysEx Inquiry'?
I also had a glitch when uploading random ZD2's from the Voice line, but that was my 'old' pedal with a broken screen so I don't know if it had anything on it. Randomly poking around of the SPI EEPROM at boot time time recovered that - I figure I must have cause a checksum error, and had it do a global reset....
I really don't know what to suggest. :-(
Figured out/remembered that mido
automatically strips the header/footer from SysEx. The checksum works, is the same as G1Four.
ms_plus_patch.py.txt
I've also pushed a change so that --summary
doesn't glitch. We will need to figure out the format of the PPRM
block for version 2 patches.
...It's just a black screen, blinking red light, presumably waiting for firmware. It does show up as a MIDI device when I connect it to my computer
Hard to say exactly in what state the pedal is now. The fact that it does not show up as a MIDI device may mean that the boot process has not completed (or has errors).
The fw update mode usually is not persistent, that is the pedal can reboot to normal state from it; of course, before initiating the actual update. If update is underway, for sure the pedal must not be disturbed.
For MS-50G+ the fw update mode is not documented ... yet. Factory reset just restores the presets.
Did you try to power it up without attaching to USB? Does it visually complete booting? Can you access the Main menu?
Thanks for the input on getting my pedal back to normal operations. I haven't been able to get it back yet, so I'm posting some more info here in the hope that we'll be able to figure this out eventually.
Here's what happened, in detail:
So that's the current state: No matter what I do, the screen is black and the red LED is blinking slowly. It shows up as a MIDI device when connected to a computer, but otherwise does not work.
Bummer this is... Just a wild idea, did you try sending audio signal through? This is to check if the pedal did complete the booting?
None of us has yet seen the fw update prompt on the MS-50G+, so it's hard to speculate. From previous models, the fw update mode is usually exclusive from normal mode (default) -- user needs to trigger it on power-on. If you triggered the "Ready to receive the firmware" by sending a SysEx from the normal mode, then this implementation is different.
A good thing is that the pedal is being responding to MIDI. We can try to query it to determine which mode it is in. It's unlikely that you could erase the firmware, since the pedal needs to receive the new one first (verify it, wipe the current module, and then apply). But something is out of order.
The pedal does not output any audio when I send audio into it. How can I query the mode?
Yay! I managed to get the pedal back to working mode again :-D.
So, what I have painfully discovered by careless experimentation is this:
I cannot guarantee that this will work for everyone and that it's a reliable method.
Congrats!
As for the SysEx, the 01
command on the original MS-50G used to respond SysEx with 00 0B
status in normal mode, and 00 00
status in fw update mode.
@thammer Now that you're back on the roll. You may dump out the following SysEx -- all of that are info commands (banks, model info, settings, DSP details), nothing of the sorts you painfully "discovered".
F0 52 00 6e 44 00 00 00 00 F7
F0 52 00 6e 48 00 00 00 00 F7
F0 52 00 6e 55 00 00 00 00 F7
F0 52 00 6e 64 0a 00 00 00 F7
F0 52 00 6e 64 11 F7
F0 52 00 6e 64 18 00 00 64 00 F7
We'll try to compare the output to other models, like B2 FOUR and G1 FOUR. Also, which OS are you on?
The version screen displays the following: System: 1.10 Preset: 1.00 Boot: 1.00 Checksum: EE8E
I mean the PC OS
Here are the 6-byte commands that the MS-50G+ responded to. I added a comment behind those I know what means.
F0 52 00 6E 01 F7 -> F0 52 00 6E 00 0B F7 # Enters firmware update mode
F0 52 00 6E 03 F7 -> F0 52 00 6E 00 01 F7
F0 52 00 6E 04 F7 -> F0 52 00 6E 00 00 F7 # Exits firmware update mode
F0 52 00 6E 05 F7 -> F0 52 00 6E 00 00 F7
F0 52 00 6E 07 F7 -> F0 52 00 6E 06 64 00 50 06 F7
F0 52 00 6E 09 F7 -> F0 52 00 6E 00 01 F7
F0 52 00 6E 12 F7 -> F0 52 00 6E 00 00 F7
F0 52 00 6E 28 F7 -> F0 52 00 6E 00 01 F7
F0 52 00 6E 33 F7 -> B0 00 00, B0 20 02, C0 06 # Set/Get current bank and program number
F0 52 00 6E 44 F7 -> F0 52 00 6E 43 64 00 50 06 64 00 0A 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 45 F7 -> F0 52 00 6E 00 01 F7
F0 52 00 6E 46 F7 -> F0 52 00 6E 00 01 F7
F0 52 00 6E 48 F7 -> F0 52 00 6E 47 02 00 00 00 00 00 00 10 00 00 00 00 00 00 00 06 F7
F0 52 00 6E 50 F7 -> F0 52 00 6E 00 00 F7 # Parameter edit enable
F0 52 00 6E 51 F7 -> F0 52 00 6E 00 00 F7 # Parameter edit disable
F0 52 00 6E 52 F7 -> F0 52 00 6E 00 00 F7 # PC mode on
F0 52 00 6E 53 F7 -> F0 52 00 6E 00 00 F7 # PC mode off
F0 52 00 6E 55 F7 -> F0 52 00 6E 54 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 F7
F0 52 00 6E 56 F7 -> F0 52 00 6E 00 0D F7
F0 52 00 6E 57 F7 -> F0 52 00 6E 00 00 F7
F0 52 00 6E 5B F7 -> F0 52 00 6E 00 00 F7 # Factory reset. WARNING: Wipes all user patches!
I mean the PC OS
Haha :-D. I'm on Windows 11 Pro 21H2.
@thammer Now that you're back on the roll. You may dump out the following SysEx -- all of that are info commands (banks, model info, settings, DSP details), nothing of the sorts you painfully "discovered".
F0 52 00 6e 44 00 00 00 00 F7 F0 52 00 6e 48 00 00 00 00 F7 F0 52 00 6e 55 00 00 00 00 F7 F0 52 00 6e 64 0a 00 00 00 F7 F0 52 00 6e 64 11 F7 F0 52 00 6e 64 18 00 00 64 00 F7
We'll try to compare the output to other models, like B2 FOUR and G1 FOUR. Also, which OS are you on?
Here are the sysex messages I sent -> what I got back from the MS-50G+:
F0 52 00 6e 44 00 00 00 00 F7 -> F0 52 00 6E 43 64 00 50 06 64 00 0A 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
F0 52 00 6e 48 00 00 00 00 F7 -> F0 52 00 6E 47 02 00 00 00 00 00 00 10 00 00 00 00 00 00 00 06 F7
F0 52 00 6e 55 00 00 00 00 F7 -> F0 52 00 6E 54 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 F7
F0 52 00 6e 64 0a 00 00 00 F7 -> F0 52 00 6E 64 09 78 00 00 00 0A 00 00 01 00 32 0F 00 07 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 32 32 32 64 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
F0 52 00 6e 64 11 F7 -> F0 52 00 6E 64 10 0E 02 04 01 00 F7
F0 52 00 6e 64 18 00 00 64 00 F7 -> F0 52 00 6E 64 19 01 00 00 09 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
...
F0 52 00 6e 64 11 F7 -> F0 52 00 6E 64 10 0E 02 04 01 00 F7
MS-50G+ has the same DSP load scaling factor: 270, just as the B2 FOUR.
...I'm on Windows 11 Pro 21H2.
Do you have Python3 installed? It's easier to use it for scripting and analysis. Though you can adapt the scripts for JS, if you're more comfy with it.
We can try to list the contents of the pedal's internal filesystem.
Just a warning for your SysEx explorations, some SysEx commands may just erase/format the internal flash, so you'd loose the contents as it's not part of firmware. So, the blind indexing of SysEx is not pragmatic, at least it should be postponed until the stored files could be backed up.
On the top of my list of what I want to figure out is:
Regarding item 2, I'm pretty sure its the second parameter number that specifies this, but I haven't been able to figure out how to specify the effect.
To set a parameter for an effect in a slot, I do
F0 52 00 6E 64 20 00 <effect slot> <param number> <LSB> <MSB> 00 00 00 F7
To set the effect in slot 0 to nothing (delete effect), I do
F0 52 00 6E 64 20 00 00 01 00 00 00 00 00 F7
In other words, I set parameter number 1 to zero. I have tried sending some random numbers as LSB and MSB, but the pedal keeps telling me "? Missing effect not found". So there's some effect numbering scheme I haven't figured out (numbers XX and YY below).
F0 52 00 6E 64 20 00 00 01 XX YY 00 00 00 F7
Get Current Patch (Edit Buffer) SysEx: 64 13
With effect slots, it's trickier as some effects may be "wide" (taking 2 units/slots).
@thammer Glad you're back, it's a big relief when you confirm you haven't destroyed your $$$ pedal ;-)
1). Current patch. Command in the command line python script.
$ python3 zoomzt2.py --help
usage: zoomzt2 [-h] [-d] [-s] [-b BUILD] [-A ADD] [-v VER] [-i ID] [-D DELETE] [-N] [-t TOGGLE] [-w] [-R] [-S]
[-I | -U | --install-only | --uninstall-only] [-a] [-p PATCHDOWN | -P PATCHUP | -c] [--old-patch] [-M MIDISKIP]
FILE [FILE ...]
...
ZPTC:
Process ZPTC patch file
-p PATCHDOWN, --patchdown PATCHDOWN
download specific zptc
-P PATCHUP, --patchup PATCHUP
upload specific zptc
-c, --curdown download current zptc
2). Setting invididual parameters is possible via SysEx. https://github.com/mungewell/zoom-zt2?tab=readme-ov-file#effects-settings
EDIT - remember that SysEx is limited to 7bit values, so Effect IDs must be altered before sending....
@thammer All the Effects have an ID, 32bits with the high 8 being the effect group.
All the ones that we know are listed: https://github.com/mungewell/zoom-zt2/blob/master/zoom_fx_AllZDL7/master.txt
There is a script which can 'decode_effect.py'...
$ python3 decode_effect.py -s ZNR.ZD2
0x01000040 : ZNR (v1.50, 4.35%), ZNR.ZD2
EDIT you can also get a list of Effects installed on your pedal if you request the FLST_SEQ.ZT2
file (the original purpose of this project)...
Get Current Patch (Edit Buffer) SysEx:
64 13
With effect slots, it's trickier as some effects may be "wide" (taking 2 units/slots).
Wonderful. That worked :-).
F0 52 00 6E 64 13 F7 -> <985 byte long buffer with the current patch>
I'm able to run the python scripts in this repo.
BTW we also have another way (which @shooking discovered), where pedal sends a textual description of what's on the screen - rather than patch data.
$ head decode_screens.py
#!/usr/bin/python
#
# Script decode 'screen data' from Zoom G1Four
# (c) Simon Wood, 10 Dec 2020
#
# read with:
# $ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 00 09 00 F7' -r temp.bin -t 2
#
To list the files on the internal filesystem:
*.*
files; it should return info for the First file: SysEx: 60 25 00 00 2a 2e 2a 00
7a 7f 7f 7f 0f
):
SysEx: 60 26 00 00 2a 2e 2a 00
SysEx: 60 27
Dump it out here, we'll decode the output. The output contains file name and size.
P.S. The SysEx commands above are read-only. Please, easy (read not) on trying out other '60' SysEx commands for now.
I changed midiname to "ZOOM MS Plus Series" in zoomzt2.py and was able to connect to the pedal (it changed mode to PC mode).
But I get a million CRC errors:
PS C:\source\zoom-zt2> python zoomzt2.py -R FLST_SEQ.ZT2
Checksum error 0x0
Checksum error 0x0
<repeated until I got bored and pressed CTRL-C>
BTW we also have another way (which @shooking discovered), where pedal sends a textual description of what's on the screen - rather than patch data.
$ head decode_screens.py #!/usr/bin/python # # Script decode 'screen data' from Zoom G1Four # (c) Simon Wood, 10 Dec 2020 # # read with: # $ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 00 09 00 F7' -r temp.bin -t 2 #
That works fine on the MS-50G+ as well.
To list the files on the internal filesystem:
- First send SysEx for listing file info for All
*.*
files; it should return info for the First file:SysEx: 60 25 00 00 2a 2e 2a 00
- Then LOOP to get info for each Next file, until it returns "File Not Found" status (
7a 7f 7f 7f 0f
):SysEx: 60 26 00 00 2a 2e 2a 00
- End the file list mode:
SysEx: 60 27
Dump it out here, we'll decode the output. The output contains file name and size.
P.S. The SysEx commands above are read-only. Please, easy (read not) on trying out other '60' SysEx commands for now.
Here's what I got - 201 files. I never got that end of file message thet you mentioned. The last message I got was "F0 52 00 6E 60 03 00 00 00 00 00 F7", and then the pedal stopped replying to further Next File commands.
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 37 48 45 56 4E 5F 4C 54 2E 5A 44 32 66 00 00 1C 2C 05 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 37 48 45 56 4E 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 37 48 45 56 4E 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 43 4F 53 49 4D 2E 5A 44 32 00 00 66 00 00 1E 4B 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 43 4F 53 49 4D 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 49 52 35 47 2E 5A 44 32 00 00 00 66 00 00 75 76 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 49 52 35 47 2E 5A 49 43 00 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 4E 41 32 33 34 43 48 2E 5A 44 32 66 00 00 31 26 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 4E 41 32 33 34 43 48 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 4E 44 4C 59 5F 4D 2E 5A 44 32 00 66 00 00 1C 08 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 4E 44 4C 59 5F 4D 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 55 54 4F 50 41 4E 2E 5A 44 32 00 66 00 00 7D 70 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 55 54 4F 50 41 4E 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 55 54 4F 57 41 48 2E 5A 44 32 00 66 00 00 22 7D 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 41 55 54 4F 57 41 48 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 31 5F 4C 54 2E 5A 44 32 66 00 00 22 65 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 31 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 31 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 33 5F 4C 54 2E 5A 44 32 66 00 00 39 65 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 33 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 4D 4B 33 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 54 48 52 54 54 4C 2E 5A 44 32 66 00 00 41 62 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 47 54 48 52 54 54 4C 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 4C 41 43 4B 4F 50 54 2E 5A 44 32 66 00 00 37 42 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 4C 41 43 4B 4F 50 54 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 4F 4D 42 45 52 2E 5A 44 32 00 00 66 00 00 38 71 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 4F 4D 42 45 52 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 50 4D 5F 4D 44 4C 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 52 47 54 48 41 4C 4C 2E 5A 44 32 66 00 00 07 0A 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 52 47 54 48 41 4C 4C 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 52 47 54 52 4F 4F 4D 2E 5A 44 32 66 00 00 05 0A 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 42 52 47 54 52 4F 4F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 4C 4F 4E 45 43 48 4F 2E 5A 44 32 66 00 00 54 78 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 4C 4F 4E 45 43 48 4F 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 4F 4D 50 2E 5A 44 32 00 00 00 00 66 00 00 4E 68 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 4F 4D 50 2E 5A 49 43 00 00 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 52 4E 54 52 49 35 47 2E 5A 44 32 66 00 00 5E 21 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 43 52 4E 54 52 49 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 45 4C 41 59 5F 4D 2E 5A 44 32 00 66 00 00 41 06 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 45 4C 41 59 5F 4D 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 45 54 55 4E 45 35 47 2E 5A 44 32 66 00 00 01 78 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 45 54 55 4E 45 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 49 53 54 31 5F 35 47 2E 5A 44 32 66 00 00 60 44 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 49 53 54 31 5F 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 49 53 54 50 4C 35 47 2E 5A 44 32 66 00 00 11 31 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 49 53 54 50 4C 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 55 41 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 21 0E 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 55 41 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 59 4E 44 52 49 56 45 2E 5A 44 32 66 00 00 36 0B 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 59 4E 44 52 49 56 45 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 5A 5F 44 52 56 4C 54 2E 5A 44 32 66 00 00 0E 54 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 5A 5F 44 52 56 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 44 5A 5F 44 52 56 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 41 52 4C 59 52 45 46 2E 5A 44 32 66 00 00 53 16 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 41 52 4C 59 52 45 46 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 47 46 4C 54 52 31 55 2E 5A 44 32 66 00 00 71 70 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 47 46 4C 54 52 31 55 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 50 53 54 4D 50 35 47 2E 5A 44 32 66 00 00 6E 06 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 45 50 53 54 4D 50 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 42 4D 41 4E 4C 54 2E 5A 44 32 66 00 00 62 68 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 42 4D 41 4E 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 42 4D 41 4E 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 44 4C 58 52 4C 54 2E 5A 44 32 66 00 00 2E 72 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 44 4C 58 52 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 44 4C 58 52 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 4D 53 54 52 4C 54 2E 5A 44 32 66 00 00 7B 5F 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 4D 53 54 52 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 4D 53 54 52 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 5F 54 57 52 4C 54 2E 5A 44 32 66 00 00 50 4D 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 5F 54 57 52 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 44 5F 54 57 52 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 4C 54 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 33 09 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 4C 54 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 45 4D 49 4E 4F 53 2E 5A 44 32 00 66 00 00 3E 28 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 45 4D 49 4E 4F 53 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 4F 4C 44 5F 44 52 56 2E 5A 44 32 66 00 00 29 0C 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 4F 4C 44 5F 44 52 56 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 52 41 59 43 4F 4D 50 2E 5A 44 32 66 00 00 64 11 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 52 41 59 43 4F 4D 50 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 54 47 45 51 37 35 47 2E 5A 44 32 66 00 00 11 0A 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 47 54 47 45 51 37 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 41 4C 4C 35 47 2E 5A 44 32 00 00 66 00 00 13 0C 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 41 4C 4C 35 47 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 4C 44 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 37 0C 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 4C 44 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 4F 54 53 50 49 43 45 2E 5A 44 32 66 00 00 6F 45 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 4F 54 53 50 49 43 45 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 50 53 2E 5A 44 32 00 00 00 00 00 66 00 00 75 7A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 50 53 2E 5A 49 43 00 00 00 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 57 31 30 30 5F 4C 54 2E 5A 44 32 66 00 00 7F 32 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 57 31 30 30 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 48 57 31 30 30 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4B 4B 46 4C 4E 47 31 55 2E 5A 44 32 66 00 00 55 2E 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4B 4B 46 4C 4E 47 31 55 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4B 52 4D 50 53 5F 4C 54 2E 5A 44 32 66 00 00 16 07 05 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4B 52 4D 50 53 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4B 52 4D 50 53 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 49 4E 45 53 45 4C 2E 5A 44 32 00 66 00 00 59 46 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 49 4E 45 53 45 4C 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4D 54 31 31 37 36 2E 5A 44 32 00 66 00 00 02 56 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4D 54 31 31 37 36 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4F 4F 50 52 4F 4C 4C 2E 5A 44 32 66 00 00 20 61 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4F 4F 50 52 4F 4C 4C 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4F 57 50 41 53 53 46 2E 5A 44 32 66 00 00 58 05 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4C 4F 57 50 41 53 53 46 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 41 43 48 33 30 4C 54 2E 5A 44 32 66 00 00 04 19 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 41 43 48 33 30 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 41 43 48 33 30 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 4F 44 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 59 02 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 4F 44 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 31 39 35 39 4C 54 2E 5A 44 32 66 00 00 52 7D 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 31 39 35 39 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 31 39 35 39 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 34 35 4F 53 4C 54 2E 5A 44 32 66 00 00 5E 04 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 34 35 4F 53 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 34 35 4F 53 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 38 30 30 5F 4C 54 2E 5A 44 32 66 00 00 3E 3A 03 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 38 30 30 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 53 38 30 30 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 55 44 44 59 5F 4C 54 2E 5A 44 32 66 00 00 1A 07 06 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 55 44 44 59 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4D 55 44 44 59 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4E 59 43 5F 4D 55 46 46 2E 5A 44 32 66 00 00 20 08 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4E 59 43 5F 4D 55 46 46 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4E 5F 47 41 54 45 2E 5A 44 32 00 00 66 00 00 09 3C 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4E 5F 47 41 54 45 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 43 54 41 56 45 35 47 2E 5A 44 32 66 00 00 65 5E 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 43 54 41 56 45 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 43 54 46 55 5A 5A 2E 5A 44 32 00 66 00 00 04 6D 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 43 54 46 55 5A 5A 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 52 47 31 32 30 4C 54 2E 5A 44 32 66 00 00 3D 63 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 52 47 31 32 30 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 4F 52 47 31 32 30 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 41 52 41 45 51 35 47 2E 5A 44 32 66 00 00 64 78 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 41 52 41 45 51 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 48 41 53 45 52 2E 5A 44 32 00 00 66 00 00 6B 7B 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 48 41 53 45 52 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 49 54 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 60 05 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 49 54 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4C 59 4C 49 47 48 54 2E 5A 44 32 66 00 00 25 04 06 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4C 59 4C 49 47 48 54 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4C 59 4F 43 54 2E 5A 44 32 00 00 66 00 00 52 6F 05 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4C 59 4F 43 54 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4F 4C 45 58 5F 4C 54 2E 5A 44 32 66 00 00 07 14 06 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4F 4C 45 58 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 4F 4C 45 58 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 50 5F 44 4C 59 5F 4D 2E 5A 44 32 66 00 00 0F 05 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 50 50 5F 44 4C 59 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 41 43 4B 43 4F 4D 50 2E 5A 44 32 66 00 00 24 08 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 41 43 4B 43 4F 4D 50 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 41 5A 4F 52 44 52 56 2E 5A 44 32 66 00 00 13 0F 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 41 5A 4F 52 44 52 56 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 43 42 53 54 35 47 2E 5A 44 32 00 66 00 00 64 30 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 43 42 53 54 35 47 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 43 54 4F 52 47 4C 54 2E 5A 44 32 66 00 00 4D 50 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 43 54 4F 52 47 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 43 54 4F 52 47 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 45 44 43 52 35 47 2E 5A 44 32 00 66 00 00 77 33 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 45 44 43 52 35 47 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 45 44 4C 4D 5F 4C 54 2E 5A 44 32 66 00 00 25 7B 04 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 45 44 4C 4D 5F 4C 54 2E 5A 49 43 66 00 00 0D 1A 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 45 44 4C 4D 5F 4C 54 2E 5A 49 52 66 00 00 00 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 49 4E 47 4D 4F 44 2E 5A 44 32 00 66 00 00 64 73 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 49 4E 47 4D 4F 44 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 4F 4F 4D 35 47 2E 5A 44 32 00 00 66 00 00 7D 0B 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 4F 4F 4D 35 47 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 56 52 53 44 4C 5F 4D 2E 5A 44 32 66 00 00 17 05 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 52 56 52 53 44 4C 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 45 51 46 4C 54 52 2E 5A 44 32 00 66 00 00 5A 19 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 45 51 46 4C 54 52 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 41 50 42 4B 44 2E 5A 44 32 00 66 00 00 5E 12 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 41 50 42 4B 44 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 49 43 45 52 2E 5A 44 32 00 00 66 00 00 31 7B 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 49 43 45 52 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 57 41 54 4B 2E 5A 44 32 00 00 66 00 00 36 51 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4C 57 41 54 4B 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4F 46 54 45 43 35 47 2E 5A 44 32 66 00 00 3D 4B 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 4F 46 54 45 43 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 50 52 49 4E 47 35 47 2E 5A 44 32 66 00 00 5D 0C 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 50 52 49 4E 47 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 51 55 45 41 4B 35 47 2E 5A 44 32 66 00 00 55 40 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 51 55 45 41 4B 35 47 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 45 50 35 47 2E 5A 44 32 00 00 66 00 00 67 73 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 45 50 35 47 2E 5A 49 43 00 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 45 52 45 4F 43 48 2E 5A 44 32 66 00 00 11 75 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 45 52 45 4F 43 48 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 4F 4E 45 50 48 41 2E 5A 44 32 66 00 00 7E 2C 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 54 4F 4E 45 50 48 41 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 55 50 45 52 43 48 4F 2E 5A 44 32 66 00 00 21 02 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 55 50 45 52 43 48 4F 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 57 45 45 54 44 52 56 2E 5A 44 32 66 00 00 1C 15 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 57 45 45 54 44 52 56 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 57 45 4C 4C 56 49 42 2E 5A 44 32 66 00 00 12 09 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 53 57 45 4C 4C 56 49 42 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 41 50 45 43 48 5F 4D 2E 5A 44 32 66 00 00 68 04 01 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 41 50 45 43 48 5F 4D 2E 5A 49 43 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 42 5F 4D 4B 31 35 2E 5A 44 32 00 66 00 00 38 49 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 42 5F 4D 4B 31 35 2E 5A 49 43 00 66 00 00 28 14 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 48 45 56 49 42 45 2E 5A 44 32 00 66 00 00 6D 6C 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 48 45 56 49 42 45 2E 5A 49 43 00 66 00 00 0E 15 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 54 50 45 43 33 5F 4D 2E 5A 44 32 00 66 00 00 47 44 02 00 00 00 00 00 00 00 F7
F0 52 00 6E 60 03 00 00 00 00 00 F7
But I get a million CRC errors:
Huh, maybe a bug in the code... you could try disabling the check and just add the block regardless.. https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L401
It might be that the pedal sends a longer data packet and that length
is not correctly interpreted.
Attached is the list of MS-50G+ files ms-50gplus-files.txt
TOTAL: 202 files, 3545637 bytes
Some details:
extension | description |
---|---|
.ZD2 | effect module |
.ZIC | effect icon (Zoom ICon format) |
.ZIR | IR data (Zoom format) |
.ZT2 | effect module sequence list (FLST_SEQ.ZT2 ) |
Interestingly, there is no FLST_SEQ.ZT2
in the list.
EDIT: Added FLST_SEQ.ZT2
-- need to request explicitly by name
Where's the ZT2?
$ cat files.txt | cut -f 1 | cut -d '.' -f 2 | sort | uniq
ZD2
ZIC
ZIR
...Interestingly, there is no FLST_SEQ.ZT2 in the list.
@thammer Can you try to get info for it explicitly, by naming it in the File Info SysEx?
SysEx: 60 25 00 00 46 4c 53 54 5f 53 45 51 2e 5a 54 32 00
Then File Info end:
SysEx: 60 27
But I get a million CRC errors:
Huh, maybe a bug in the code... you could try disabling the check and just add the block regardless.. https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L401
It might be that the pedal sends a longer data packet and that
length
is not correctly interpreted.
I disabled the CRC check and added some debug output. Oddly enough I had to run the script twice to make it work. The first run it will return lots of short data buffers (length 4) and never complete. But every other run it will return this:
PS C:\source\zoom-zt2> python zoomzt2.py -R output.txt -d
Downloading file
Counter: 0 length: 512
Counter: 1 length: 512
Counter: 2 length: 512
Counter: 3 length: 512
Counter: 4 length: 512
Counter: 5 length: 512
Counter: 6 length: 512
Counter: 7 length: 512
Counter: 8 length: 512
Counter: 9 length: 512
Counter: 10 length: 512
Counter: 11 length: 512
Counter: 12 length: 512
Counter: 13 length: 512
Counter: 14 length: 512
Counter: 15 length: 512
Counter: 16 length: 512
Counter: 17 length: 512
Counter: 18 length: 512
Counter: 19 length: 512
Counter: 20 length: 512
Counter: 21 length: 512
Counter: 22 length: 512
Counter: 23 length: 512
Counter: 24 length: 36
Counter: 25 length: 0
ListContainer:
Container:
name = u'BLANK.ZD2' (total 9)
ListContainer:
Container:
group = 1
groupname = (enum) DYNAMICS 1
effects = ListContainer:
Container:
effect = u'COMP.ZD2' (total 8)
version = u'1.10' (total 4)
installed = 1
id = 16777232
group = 1
Container:
effect = u'RACKCOMP.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 16777248
group = 1
Container:
effect = u'GRAYCOMP.ZD2' (total 12)
version = u'1.20' (total 4)
installed = 1
id = 16777264
group = 1
Container:
effect = u'BLACKOPT.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 16777296
group = 1
Container:
effect = u'LMT1176.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 16777312
group = 1
Container:
effect = u'ZNR.ZD2' (total 7)
version = u'1.10' (total 4)
installed = 1
id = 16777328
group = 1
Container:
effect = u'N_GATE.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 16777344
group = 1
Container:
effect = u'SLWATK.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 16777360
group = 1
group_end = 1
Container:
group = 2
groupname = (enum) FILTER 2
effects = ListContainer:
Container:
effect = u'AUTOWAH.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 33554448
group = 2
Container:
effect = u'LOWPASSF.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 33554480
group = 2
Container:
effect = u'EGFLTR1U.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 33554512
group = 2
Container:
effect = u'SEQFLTR.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 33554544
group = 2
Container:
effect = u'STEP5G.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 33554576
group = 2
Container:
effect = u'GTGEQ75G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 33554608
group = 2
Container:
effect = u'PARAEQ5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 33554640
group = 2
group_end = 2
Container:
group = 3
groupname = (enum) DRIVE 3
effects = ListContainer:
Container:
effect = u'EPSTMP5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331664
group = 3
Container:
effect = u'RCBST5G.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331680
group = 3
Container:
effect = u'TS_DRIVE.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331696
group = 3
Container:
effect = u'GOLD_DRV.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331712
group = 3
Container:
effect = u'SWEETDRV.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331728
group = 3
Container:
effect = u'ZEN_DRV.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331744
group = 3
Container:
effect = u'DYNDRIVE.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331776
group = 3
Container:
effect = u'DISTPL5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331792
group = 3
Container:
effect = u'DIST1_5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331808
group = 3
Container:
effect = u'SQUEAK5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331824
group = 3
Container:
effect = u'REDCR5G.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331840
group = 3
Container:
effect = u'VIOLTD5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331856
group = 3
Container:
effect = u'TB_MK15.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331872
group = 3
Container:
effect = u'OCTFUZZ.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331888
group = 3
Container:
effect = u'NYC_MUFF.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331904
group = 3
Container:
effect = u'WAVSHPR.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 50331920
group = 3
Container:
effect = u'RAZORDRV.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331936
group = 3
Container:
effect = u'BGTHRTTL.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 50331968
group = 3
Container:
effect = u'ACOSIM.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 50332064
group = 3
group_end = 3
Container:
group = 4
groupname = (enum) AMP 4
effects = ListContainer:
Container:
effect = u'MS45OSLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108881
group = 4
Container:
effect = u'MS1959LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108897
group = 4
Container:
effect = u'MS800_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108913
group = 4
Container:
effect = u'FDBMANLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108929
group = 4
Container:
effect = u'FD_TWRLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108945
group = 4
Container:
effect = u'FDDLXRLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108961
group = 4
Container:
effect = u'FDMSTRLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108977
group = 4
Container:
effect = u'UK30A_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67108993
group = 4
Container:
effect = u'BGMK1_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109009
group = 4
Container:
effect = u'BGMK3_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109025
group = 4
Container:
effect = u'RCTORGLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109041
group = 4
Container:
effect = u'XTSBL_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109057
group = 4
Container:
effect = u'HW100_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109073
group = 4
Container:
effect = u'ORG120LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109089
group = 4
Container:
effect = u'DZ_DRVLT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109105
group = 4
Container:
effect = u'MACH30LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109121
group = 4
Container:
effect = u'KRMPS_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109137
group = 4
Container:
effect = u'REDLM_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109153
group = 4
Container:
effect = u'VELVT_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109169
group = 4
Container:
effect = u'MUDDY_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109185
group = 4
Container:
effect = u'7HEVN_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109201
group = 4
Container:
effect = u'POLEX_LT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 67109217
group = 4
group_end = 4
Container:
group = 6
groupname = (enum) MODULATION 6
effects = ListContainer:
Container:
effect = u'CLONECHO.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663328
group = 6
Container:
effect = u'SUPERCHO.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663344
group = 6
Container:
effect = u'CRNTRI5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663360
group = 6
Container:
effect = u'ANA234CH.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663376
group = 6
Container:
effect = u'STEREOCH.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663392
group = 6
Container:
effect = u'DETUNE5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663424
group = 6
Container:
effect = u'TREMOLO.ZD2' (total 11)
version = u'1.00' (total 4)
installed = 1
id = 100663440
group = 6
Container:
effect = u'PHASER.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 100663456
group = 6
Container:
effect = u'STONEPHA.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663472
group = 6
Container:
effect = u'WRPPHASE.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663488
group = 6
Container:
effect = u'THEVIBE.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 100663520
group = 6
Container:
effect = u'VINFLNG5.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663536
group = 6
Container:
effect = u'KKFLNG1U.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663552
group = 6
Container:
effect = u'VIBRATO.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 100663568
group = 6
Container:
effect = u'SWELLVIB.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663584
group = 6
Container:
effect = u'OCTAVE5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 100663600
group = 6
Container:
effect = u'PLYOCT.ZD2' (total 10)
version = u'1.00' (total 4)
installed = 1
id = 100663632
group = 6
Container:
effect = u'HPS.ZD2' (total 7)
version = u'1.10' (total 4)
installed = 1
id = 100663648
group = 6
Container:
effect = u'PLYLIGHT.ZD2' (total 12)
version = u'1.00' (total 4)
installed = 1
id = 100663665
group = 6
Container:
effect = u'GEMINOS.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 100663680
group = 6
Container:
effect = u'RINGMOD.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 100663696
group = 6
Container:
effect = u'SLICER.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 100663712
group = 6
group_end = 6
Container:
group = 7
groupname = (enum) SFX 7
effects = ListContainer:
Container:
effect = u'AUTOPAN.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 117440528
group = 7
Container:
effect = u'LOOPROLL.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 117440544
group = 7
Container:
effect = u'HOTSPICE.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 117440560
group = 7
Container:
effect = u'BOMBER.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 117440576
group = 7
Container:
effect = u'LINESEL.ZD2' (total 11)
version = u'1.00' (total 4)
installed = 1
id = 117444352
group = 7
Container:
effect = u'BPM_MDL.ZD2' (total 11)
version = u'1.00' (total 4)
installed = 1
id = 117444592
group = 7
group_end = 7
Container:
group = 8
groupname = (enum) DELAY 8
effects = ListContainer:
Container:
effect = u'DELAY_M.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 134217744
group = 8
Container:
effect = u'ANDLY_M.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 134217760
group = 8
Container:
effect = u'TAPECH_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217776
group = 8
Container:
effect = u'TPEC3_M.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 134217792
group = 8
Container:
effect = u'DUADLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217808
group = 8
Container:
effect = u'SOFTEC5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217824
group = 8
Container:
effect = u'SLAPBKD.ZD2' (total 11)
version = u'1.10' (total 4)
installed = 1
id = 134217840
group = 8
Container:
effect = u'PP_DLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217856
group = 8
Container:
effect = u'RVRSDL_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217872
group = 8
Container:
effect = u'MODDLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217888
group = 8
Container:
effect = u'FLTDLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217904
group = 8
Container:
effect = u'PITDLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134217920
group = 8
Container:
effect = u'HLDDLY_M.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 134218000
group = 8
group_end = 8
Container:
group = 9
groupname = (enum) REVERB 9
effects = ListContainer:
Container:
effect = u'ROOM5G.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 150994960
group = 9
Container:
effect = u'BRGTROOM.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 150994976
group = 9
Container:
effect = u'SPRING5G.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 150994992
group = 9
Container:
effect = u'HALL5G.ZD2' (total 10)
version = u'1.10' (total 4)
installed = 1
id = 150995040
group = 9
Container:
effect = u'BRGTHALL.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 150995056
group = 9
Container:
effect = u'AIR5G.ZD2' (total 9)
version = u'1.10' (total 4)
installed = 1
id = 150995136
group = 9
Container:
effect = u'EARLYREF.ZD2' (total 12)
version = u'1.10' (total 4)
installed = 1
id = 150995152
group = 9
group_end = 9
PS C:\source\zoom-zt2>
...Interestingly, there is no FLST_SEQ.ZT2 in the list.
@thammer Can you try to get info for it explicitly, by naming it in the File Info SysEx?
SysEx: 60 25 00 00 46 4c 53 54 5f 53 45 51 2e 5a 54 32 00
Then File Info end:
SysEx: 60 27
Here's what I sent -> what I received:
F0 52 00 6E 60 25 00 00 46 4c 53 54 5f 53 45 51 2e 5a 54 32 00 F7 -> F0 52 00 6E 60 04 25 00 00 17 00 00 00 00 00 46 4C 53 54 5F 53 45 51 2E 5A 54 32 00 00 00 24 60 00 00 00 00 00 00 00 00 F7
F0 52 00 6E 00 00 F7 -> F0 52 00 6E 60 03 00 00 00 00 00 F7
But every other run it will return this:
That's pretty AWESOME! If you wanted a more readable table use --summary
rather than --dump
.
I don't see any installed=0
as we had on the G1Four, so perhaps Zoom has no plans for letting the user upload more - not that would make any difference to US... ;-)
@thammer All the Effects have an ID, 32bits with the high 8 being the effect group.
All the ones that we know are listed: https://github.com/mungewell/zoom-zt2/blob/master/zoom_fx_AllZDL7/master.txt
There is a script which can 'decode_effect.py'...
$ python3 decode_effect.py -s ZNR.ZD2 0x01000040 : ZNR (v1.50, 4.35%), ZNR.ZD2
EDIT you can also get a list of Effects installed on your pedal if you request the
FLST_SEQ.ZT2
file (the original purpose of this project)...
I assume I should be able to take one of the effect IDs we have identified above and select it for a specific slot using this command
F0 52 00 6E 64 20 00 <effect slot> 01 <LSB> <MSB> 00 00 00 F7
But I haven't yet understood how to get from the 32 bit Effect ID to a 14 bit LSB + MSB in the message above.
I'm able to list and download files using zoomzt2-gui.py :-).
But I haven't yet understood how to get from the 32 bit Effect ID to a 14 bit LSB + MSB in the message above.
The pedal will actually accept 5x 7-bit 'bytes', ie those extra 0x00
at the end of the packet....
I thought I had something scripted, but don't find it. Basically it would be the same as used for the CRC32 checksum upload.
packet.append(crc & 0x7f)
packet.append((crc >> 7) & 0x7f)
packet.append((crc >> 14) & 0x7f)
packet.append((crc >> 21) & 0x7f)
packet.append((crc >> 28) & 0x0f)
I think that a huge applause is needed for @thammer, he's confirmed what we suspected and has opened a new chapter...
I'd also like to ask what he wants to do. Originally he had started a project page of his own. I'd offer my support to that, if he feels that it is more on task with what he wants. I imagine that the general public want a PC/Apple app to control their pedals, and a smaller population what to experiment with uploading new effects.
...I'm able to list and download files using zoomzt2-gui.py
@thammer Great! Can you pull and attach here the FLST_SEQ.ZT2
(it's binary)? It seems to be different from the older models.
...I'm able to list and download files using zoomzt2-gui.py
@thammer Great! Can you pull and attach here the
FLST_SEQ.ZT2
(it's binary)? It seems to be different from the older models.
Here you go. FLST_SEQ.zip
Hi.
This is the sysex data for a patch from the MS-50G+ pedal. The actual patch data probably starts at offset 10 or 11 in this buffer.
The sysex message is what the MS-50G+ sends out if you change a parameter and wait for 3 seconds. It was captured using this tool: https://www.waveformer.net/zoom-explorer/
It'd be great if you could run it through your scripts and see if anything interesting pops up.
Let me know if you want the data on another format.
Cheers, Thomas
Hexadecimal format:
ASCII view of the same patch with non-printable characters replaced with apostrophe: