Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MS-plus ZIC format #84

Open
mungewell opened this issue Sep 15, 2024 · 7 comments
Open

MS-plus ZIC format #84

mungewell opened this issue Sep 15, 2024 · 7 comments

Comments

@mungewell
Copy link
Owner

figure out as much as we can about the 'ZIC' format.

Note: If ZIC is not uploaded with effect, the effect is a blank icon in the librarian - but is still selectable

@mungewell
Copy link
Owner Author

Dumping a random ICON

$ hexdump -C HALL5G.ZIC | head
00000000  5a 42 4d 50 18 00 00 00  48 00 61 00 66 00 80 00  |ZBMP....H.a.f...|
00000010  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  fc fe ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff 7f  |................|
00000040  3f 1f 1f 1f 1f 1f 3f 7f  ff ff ff ff ff ff ff ff  |?.....?.........|
00000050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000060  ff ff ff ff ff ff fe fc  ff ff ff ff ff ff ff ff  |................|
00000070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000080  ff ff ff ff ff ff ff f0  e0 c0 c0 c0 c0 c0 e0 f0  |................|
00000090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

$ ls -la HALL5G.ZIC 
-rw-rw-r-- 1 simon simon 2600 Sep  1 11:07 HALL5G.ZIC

0x61 = 97
0x66 = 102
97 * 102 = 9894, assuming 2bits per pixel this would occupy 2732.5 bytes
98 * 103 = 10094, assuming 2bits per pixel this would occupy 2523.5 bytes

@mungewell
Copy link
Owner Author

So it looks like the Icon is stripped in the same way (as icons within the ZD2), ie 8bit wide stripes layed along side each other.

But also looks to contain two (or more); small and large perhaps?

$ dd bs=16 skip=2 if=HALL5G.ZIC of=temp.bin
160+1 records in
160+1 records out
2568 bytes (2.6 kB, 2.5 KiB) copied, 0.00378844 s, 678 kB/s
simon@the-void:~/zoom-zt2-sdw-github/zoom_fx_ms-plus/ms-60b$ python3 convert_zic.py

convert_zic.py.txt
icon

@mungewell
Copy link
Owner Author

        #img2 = destripe(img, 35)
        img2 = destripe(img, 25)

icon

@mungewell
Copy link
Owner Author

convert_zic.py.txt
icon_small
icon_big

@mungewell
Copy link
Owner Author

Some unknowns; offset 0x0010 - perhaps 'invert'

./EXCITER.ZIC
00000000  5a 42 4d 50 18 00 00 00  48 00 61 00 66 00 80 00  |ZBMP....H.a.f...|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

convert_zic.py.txt
icon_small
icon_big

Not sure about offset 0x0004, only different here

./IR.ZIC
00000000  5a 42 4d 50 08 00 00 00  4a 00 61 00 00 00 00 00  |ZBMP....J.a.....|
00000010  fc fe 07 03 03 03 03 03  03 03 03 03 03 03 03 03  |................|

@mungewell
Copy link
Owner Author

D'oh the 0x00000018 or 0x00000008 are the length of the segment describing the image properties. And it looks like the IR.ZIC file only contains the 'small' icon.
icon_0

I improved code and push it here:
https://github.com/mungewell/zoom-zt2/blob/master/convert_zic.py

There's enough information to go in reverse (PNG -> ZIC), but I was too lazy to code it ;-)

$ find . -name "*.ZIC" -exec bash -c "python3 convert_zic.py -p icons/{} {}" \;
Converting: ./B_OCTAVE.ZIC
Writing: icons/./B_OCTAVE.ZIC_0.png
Writing: icons/./B_OCTAVE.ZIC_1.png
Converting: ./LINPRE.ZIC
Writing: icons/./LINPRE.ZIC_0.png
Writing: icons/./LINPRE.ZIC_1.png
Converting: ./SOLPRE.ZIC
Writing: icons/./SOLPRE.ZIC_0.png
Writing: icons/./SOLPRE.ZIC_1.png
Converting: ./DUAL_CMP.ZIC
Writing: icons/./DUAL_CMP.ZIC_0.png
Writing: icons/./DUAL_CMP.ZIC_1.png
Converting: ./SUPERCHO.ZIC
Writing: icons/./SUPERCHO.ZIC_0.png
Writing: icons/./SUPERCHO.ZIC_1.png
...

@mungewell
Copy link
Owner Author

OK I did code it; you can extract Icons to PNG, edit them in Gimp (or the like) and push them back into the ZIC with '-r' / '--reverse' flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant