summaryrefslogtreecommitdiff
path: root/posts/2013-10-31-wavedrum-data-comparison.markdown
blob: 6c6320c09c2146f0a25c24cdf08ac41913932885 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
---
title: Firmware comparison between Wavedrums Original, Black and Oriental
tags: DIY,electronics,music,hacking,wavedrum
---

Since
[my first post on hacking the Wavedrum](/posts/2013-08-11-hacking-the-wavedrum.html)
two fellow musicians have sent me copies of the contents of their
Wavedrum instruments, so I now have the data for the original silver
issue, the black re-issue and the Oriental.

The differences between the data from the silver and the data from the
black Wavedrum are very few.  Of the files sent to me only five
differ: `USER.BIN`, `CALIB.BIN`, `WD2_PROG.BIN`, `SYSTEM/VERSION.INF`,
and `SYSTEM/WDX_M100.BIN`.  `USER.BIN` contains only the mapping of
programmes to slots and banks, which have been altered by the
respective owners of the two instruments, so it can safely be ignored.
Likewise, `WD2_PROG.BIN` contains custom user programmes and hence is
of no interest.

`CALIB.BIN` contains as of yet unknown calibration information, just
like the similarly named `CALIB.BOR` on my Wavedrum Oriental.  The
contents of `CALIB.BIN` from the original Wavedrum are identical to
those of the matching file on the Oriental.  The only difference
that the Black has over the other two is a single digit.  This is from
the Oriental:

    01 00 00 75 00 00 00 00  02 00 00 00 00 00 00 00

And this is from the Black:

    01 00 00 75 00 00 00 00  01 00 00 00 00 00 00 00

Not very exciting.

`SYSTEM/VERSION.INF` contains the hardware/software versions.  Here
are the contents of the Original, followed by the Black and the
Oriental:

    01 20 01 10 01 20 00 00  00 00 00 00 00 00 00 00
    01 32 01 10 01 32 00 00  57 44 58 5F 00 00 00 00
    02 02 01 10 02 02 00 00  57 44 4f 52 00 00 00 00

Again, these are in decimal notation and are in this format: firmware
version (two bytes), sub-version (two bytes), data version
(two-bytes), two empty bytes, four bytes for an optional identifier
followed by four empty bytes.

|Type     | Firmware version | Sub-version  |  Data version  | Identifier   |
|--------:|------------------|--------------|----------------|--------------|
|Original | 1.20             | 1.10         | 1.20           | none         |
|Black    | 1.32             | 1.10         | 1.32           | WDX_         |
|Oriental | 2.02             | 1.10         | 2.02           | WDOR         |

Looking at the version numbers above it becomes apparent that the
sounds themselves are not covered by these numbers as the sounds on
the Black are no different from those on the Original, yet the data
version differs.

The file `SYSTEM/WDX_M100.BIN` must be the firmware on both the
Original and the Black Wavedrum, serving the same purpose as
`SYSTEM/WDORM202.BIN` on the Oriental.  There are quite a few changes
even between version 1.20 and 1.32, but I haven't yet taken the time
to analyse them.  It is interesting to note, though, that every
firmware file is /exactly/ one megabyte long, independent of the
Wavedrum type.  This is due to padding which in the Original firmware
begins at offset 0xC967C, in the Black firmware at offset 0xC9C68, and
in the Oriental firmware at offset 0xDCB64

More to follow.

Read [more posts about the Wavedrum here](http://elephly.net/tags/wavedrum.html).