shooking / ZoomPedalFun

A collection of tips and tricks for Zoom B1On, B1XFour and G1XFour pedals.
Creative Commons Zero v1.0 Universal
66 stars 3 forks source link

ZSF - Unknown 'model' in GCE-3 FW. #17

Open mungewell opened 2 years ago

mungewell commented 2 years ago

It appears that the ZSF contains the model name, same number as patch file I think. Below are the ones that GL lets you select...

https://github.com/mungewell/zoom-zt2/blob/master/decode_zsp.py#L23

ModelEnum = Enum(Byte,
    G5N     = 0x00,
    G3N     = 0x02,
    G3XN    = 0x03,
    B3N     = 0x04,
    G1FOUR  = 0x0C,
    G1XFOUR = 0x0D,
    B1FOUR  = 0x0E,
    B1XFOUR = 0x0F,
    A1FOUR  = 0x15,
    A1XFOUR = 0x16,
)

However if you extract the ZSP blobs from the GCE-3 FW, there is another/unknown model (20 = 0x14).

GCE-3_v1.20_Win_E/unzipped/.rsrc/1041/BIN/extract_ZD2/ZSPF$ grep -H model *.dump
10440710.ZSPF.dump:        model = (enum) (unknown) 20
10461190.ZSPF.dump:        model = (enum) (unknown) 20
10481670.ZSPF.dump:        model = (enum) G5N 0
6623238.ZSPF.dump:        model = (enum) G3N 2
6643718.ZSPF.dump:        model = (enum) G3XN 3
6664198.ZSPF.dump:        model = (enum) B3N 4
6717446.ZSPF.dump:        model = (enum) G1FOUR 12
6762502.ZSPF.dump:        model = (enum) G1XFOUR 13
6930438.ZSPF.dump:        model = (enum) B1FOUR 14
6950918.ZSPF.dump:        model = (enum) B1XFOUR 15
6971398.ZSPF.dump:        model = (enum) A1FOUR 21
6995974.ZSPF.dump:        model = (enum) A1XFOUR 22
7020550.ZSPF.dump:        model = (enum) G5N 0
7131142.ZSPF.dump:        model = (enum) (unknown) 20
7151622.ZSPF.dump:        model = (enum) G5N 0
7172102.ZSPF.dump:        model = (enum) G3N 2
7192582.ZSPF.dump:        model = (enum) G3N 2
7213062.ZSPF.dump:        model = (enum) (unknown) 20
mungewell commented 2 years ago

Hmm...

$ grep '"model' AllZDL6\(2\).lst 
   "models":[  
         "modelId":"0x6E000000",
         "modelName":"G5n",
         "modelId":"0x6E000200",
         "modelName":"G3n",
         "modelId":"0x6E000300",
         "modelName":"G3Xn",
         "modelId":"0x6E000400",
         "modelName":"B3n",
         "modelId":"0x6E000C00",
         "modelName":"G1 FOUR",
         "modelId":"0x6E000D00",
         "modelName":"G1X FOUR",
         "modelId":"0x6E000E00",
         "modelName":"B1 FOUR",
         "modelId":"0x6E000F00",
         "modelName":"B1X FOUR",
         "modelId":"0x6E001100",
         "modelName":"A1 FOUR",
         "modelId":"0x6E001200",
         "modelName":"A1X FOUR",
         "modelId":"0x6E001400",
         "modelName":"UNSEL",
         "modelId":"0x6E001500",
         "modelName":"A1 D",
         "modelId":"0x6E001600",
         "modelName":"A1X D",
         "modelId":"0x6E001300",
         "modelName":"G11",
         "modelId":"0x6E001700",
         "modelName":"H8"
shooking commented 2 years ago

I posted the how to change models here. https://github.com/shooking/ZoomPedalFun/tree/main/GCE-3/InitialModeChangingExperiments#readme

I just haven't created the button to allow changing. Also i posted the hard reset / wipe on the wiki. Use with caution - sometimes one needs to reinstall the firmware after it.

mungewell commented 2 years ago

Those are some pretty big logs, is it possible to summarize/annotate the steps? Looks like a large part might be sending the patches to the unit.

I'd like to understand if the model.zsf is sent from GL, or whether it (only) uses the ones embedded in the FW.

shooking commented 2 years ago

It is indeed the patches too. Thats what happens when a model is loaded. Each is a sysex sentence. I sometimes subst what i think the verbs and nouns are - hence my EditorOn.sh etc.

The GL checks with the mother ship if there are updates and does store most of the files both separately and in the FW. Which one it uses - if i had a Mac i might be able to find out.