< Projects | Liberty | File Formats Husqvarna Viking SHV - EXE Menu Sometimes Pfaff, Husqvarna, or Viking files come as an EXE program: a self extracting ZIP compressed file; for Designer I software. The instructions by Husqvarna say design is in Menu 1, position 1. Once decompressed, with the likes of Ark or WINE, a directory tree is produced, for example: File_name/ MENU_SEL.PHV MENU_01/ MENU_01.MHV DES01_01.SHV MENU_02/ MENU_02.MHV MENU_03/ MENU_03.MHV MENU_04/ MENU_04.MHV The file MENU_SEL.PHV appears to contain a software notice, the name of the pattern (sixteen times), menu labels for four menus (each repeated sixteen times: I assume intended for different languages), some four row table (looks like weights for each bit: 120, 82, 44 and 6), and finally a 4 bit per pixel pixmap (8 bit line count, 8 bit pixels/line, lines x (pixels/2 round up) bytes). In subdirectory MENU_01, the file MENU_01.MHV appears to contain a software notice, menu label repeated sixteen times, some values (of unknown purpose 0x77 119, 0xFB 251/-5, and 6), list of 36 bytes, and a 4 bit per pixel pixmap. The important file is DES01_01.SHV, this contains stitches, the stitches appear to be the same format as VP3. Offset Size Type Description 0 86 ASCII Signature = "Embroidery..." software notice 0x56 86 1 Byte N1 length of string 0x57 87 N1 ASCII Name of pattern (appears limited to 12 characters) 0x57+N1 After the header is an 16 colour image, there are two forms 8 bit sizes and 16 bit sizes. The 16 bit sizes are flagged with three bytes: 0xFF 0xFF 0x01. Big-endian is used for 2 and 4 byte numbers. Offset Size Type Description 0 3 Byte 0xFF 0xFF 0x01 3 2 Count Height, lines in the pixel-map (unsigned big-endian) 5 2 Count Width, pixels in a line, two pixels are packed in a byte, odd count leaves empty nibble in last byte of line 7 2 Count Unknown width/2 round down 9 2 Count Unknown height/2 round down 11 2 Count Unknown width/2 round down 13 2 Count Unknown height/2 round down Offset Size Type Description 0 1 Count Height, lines in the pixel-map 1 1 Count Width, pixels in a line, two pixels are packed in a byte, odd count leaves an empty nibble in last byte of each line 2 1 Count Unknown width/2 round down 3 1 Count Unknown height/2 round down 4 1 Count Unknown width/2 round down 5 1 Count Unknown height/2 round down Followed by the bytes of the pixel-map. Now the stitches, follow a summary and colour table. Offset Size Type Description 0 1 Count Colour count, number of rows in colour table 1 1 Signed Unknown = -60 or 196 or bit-set [1100 0100] 2 1 Count Unknown = 40, may be weight in km/kg 3 1 Byte Unknown = 0x00 4 1 Byte Unknown 5 2 Byte Unknown = 0 0 7 2 Signed Right extent in 0.1 mm 9 2 Signed Top extent in 0.1 mm 11 2 Signed Left extent in 0.1 mm 13 2 Signed Bottom extent in 0.1 mm 15 4 Count total stitch count Each colour table row appears: Offset Size Type Description 0 4 Count stitch count, related to number of stitches of this thread 4 1 Byte Unknown, seems to be HUS format colour index 5 3 Byte Unknown = 0x02 00 00, this could be colour name string 8 2 BCD Thread part-number 10 2 Signed Start X in 0.1 mm 12 2 Signed Start Y in 0.1 mm The stitches are pairs (dx, dy) of signed 8 bit offsets (from previous current position) with an escape code. When dx is 0x80 -128, dy gives the command. Code Description 0x80 0x01 Start 16 bit jump stitch 0x80 0x02 End 16 bit jump stitch, enables stitches to be rewound 0x80 0x03 Unknown, may be deleted stitch 0x80 0xA0 Start 8 bit jump stitch 0x80 0x00 End 8 bit jump stitch The jump stitch, going forward, Start then relative X displacement, relative Y displacement, End. When rewinding or backing up, the End will be seen, then Y displacement, X displacement, and Start. ← JEF Format ↑ Index of Formats ↑ Viking Pfaff → Retrieved from "https://community.kde.org/index.php?title=Projects/Liberty/File_Formats/Husqvarna_Viking_SHV&oldid=29651" This page was last edited on 21 January 2013, at 13:19. Content is available under Creative Commons License SA 4.0 unless otherwise noted.