posts: add diagram for shared Guix profiles and store
[software/elephly-net.git] / posts / 2013-10-31-wavedrum-data-comparison.markdown
1 ---
2 title: Firmware comparison between Wavedrums Original, Black and Oriental
3 tags: DIY,electronics,music,hacking,wavedrum
4 ---
5
6 Since
7 [my first post on hacking the Wavedrum](/posts/2013-08-11-hacking-the-wavedrum.html)
8 two fellow musicians have sent me copies of the contents of their
9 Wavedrum instruments, so I now have the data for the original silver
10 issue, the black re-issue and the Oriental.
11
12 The differences between the data from the silver and the data from the
13 black Wavedrum are very few. Of the files sent to me only five
14 differ: `USER.BIN`, `CALIB.BIN`, `WD2_PROG.BIN`, `SYSTEM/VERSION.INF`,
15 and `SYSTEM/WDX_M100.BIN`. `USER.BIN` contains only the mapping of
16 programmes to slots and banks, which have been altered by the
17 respective owners of the two instruments, so it can safely be ignored.
18 Likewise, `WD2_PROG.BIN` contains custom user programmes and hence is
19 of no interest.
20
21 `CALIB.BIN` contains as of yet unknown calibration information, just
22 like the similarly named `CALIB.BOR` on my Wavedrum Oriental. The
23 contents of `CALIB.BIN` from the original Wavedrum are identical to
24 those of the matching file on the Oriental. The only difference
25 that the Black has over the other two is a single digit. This is from
26 the Oriental:
27
28 01 00 00 75 00 00 00 00 02 00 00 00 00 00 00 00
29
30 And this is from the Black:
31
32 01 00 00 75 00 00 00 00 01 00 00 00 00 00 00 00
33
34 Not very exciting.
35
36 `SYSTEM/VERSION.INF` contains the hardware/software versions. Here
37 are the contents of the Original, followed by the Black and the
38 Oriental:
39
40 01 20 01 10 01 20 00 00 00 00 00 00 00 00 00 00
41 01 32 01 10 01 32 00 00 57 44 58 5F 00 00 00 00
42 02 02 01 10 02 02 00 00 57 44 4f 52 00 00 00 00
43
44 Again, these are in decimal notation and are in this format: firmware
45 version (two bytes), sub-version (two bytes), data version
46 (two-bytes), two empty bytes, four bytes for an optional identifier
47 followed by four empty bytes.
48
49 |Type | Firmware version | Sub-version | Data version | Identifier |
50 |--------:|------------------|--------------|----------------|--------------|
51 |Original | 1.20 | 1.10 | 1.20 | none |
52 |Black | 1.32 | 1.10 | 1.32 | WDX_ |
53 |Oriental | 2.02 | 1.10 | 2.02 | WDOR |
54
55 Looking at the version numbers above it becomes apparent that the
56 sounds themselves are not covered by these numbers as the sounds on
57 the Black are no different from those on the Original, yet the data
58 version differs.
59
60 The file `SYSTEM/WDX_M100.BIN` must be the firmware on both the
61 Original and the Black Wavedrum, serving the same purpose as
62 `SYSTEM/WDORM202.BIN` on the Oriental. There are quite a few changes
63 even between version 1.20 and 1.32, but I haven't yet taken the time
64 to analyse them. It is interesting to note, though, that every
65 firmware file is /exactly/ one megabyte long, independent of the
66 Wavedrum type. This is due to padding which in the Original firmware
67 begins at offset 0xC967C, in the Black firmware at offset 0xC9C68, and
68 in the Oriental firmware at offset 0xDCB64
69
70 More to follow.
71
72 Read [more posts about the Wavedrum here](http://elephly.net/tags/wavedrum.html).