Casio RZ-1 PCM Sound ROM Hacking

Although the RZ-1’s claim to fame is that it’s a PCM-based drum machine with additional sampling capabilities, it is still quite limited by sample time and the (arguably) low quality of its stock drum sounds. Although the four sample pads can be filled with custom sounds as an augmentation, the RZ-1 remains hampered by the tendency to rely primarily on those samples instead of the permanent drums.

An illustration of just how much can be squeezed from the stock sounds combined with custom samples.

The solution to this is to replace both PCM ROMs with EPROMs filled with custom sounds. Typically, this takes the form of Oberheim DMX, Linndrum, and Roland 808/909 drum hits (being such classic machines) but the choices are limited only by the length of the sample that is being replaced. The RIMSHOT sound in particular is difficult to replace as the original sound is very, very short, so any substitute needs to be tailored to fit that very tight and limiting constraint.

Desoldering the original HN613256P CM5/CM6 (Digital Percussion) ROMs from the RZ-1 motherboard is necessary, but if replaced with a DIP28 socket then any future ROM changes become a relatively quick and painless process.

Standard 27C256 EPROMs are pin compatible to the original chips, so no further modifications are needed. Simply burn custom PCM data to two 27C256 EPROMs and fit them in the sockets.

Each ROM chip holds 1.49s of sounds and can be opened as raw PCM data: signed 8-bit, mono, 20,000 Hz. Endianness does not apply to 8-bit PCM.

ROM A is CM5 which contains: Toms 1~3, Kick, Snare, Rimshot, Closed Hi-Hat, Open Hi-Hat, and Metronome Click (in that order).

ROM B is CM6 which contains: Clap, Ride, Cowbell, and Crash (in that order).

Audacity is highly recommended for altering the ROMs as raw PCM data as it can easily resample to the needed 20 kHz rate (down from the typical 44.1 kHz) and is also capable of on-the-fly playback of 20,000 Hz material on 44.1/48 kHz systems, i.e. anything modern.

Note: Each drum hit MUST be replaced by a sound of exactly the same amount of samples. The total sample length of each drum and also the entire ROM must not be altered, period. It is better to work in terms of sample points rather than lengths of time as “minute:second:millisecond” selection does not offer the required precision.


Tom 1 (0 samples in, 3791 end = 3791 length)
Tom 2 (3791 samples in, 7635 end = 3844 length)
Tom 3 (7635 samples in, 11722 end = 4087 length)
Kick (11722 samples in, 13349 end = 1627 length)
Snare (13349 samples in, 16573 end = 3224 length)
Rimshot (16573 samples in, 17876 end = 1303 length)
Closed Hi-Hat (17876 samples in, 19099 end = 1223 length)
Open Hi-Hat (19099 samples in, 31108 end = 12009 length)
Metronome Click (31108 samples in, 31615 end = 507 length)
Empty (31615 samples in, 32768 end = 1153 length)


Clap (0 samples in, 2511 end = 2511 length)
Ride (2511 samples in, 16446 end = 13935 length)
Cowbell (16446 samples in, 18397 end = 1951 length)
Crash (18397 samples in, 32768 end = 14371 length)

The stock ROMs have been ripped and made available for download and burning convenience, and templates for altering them have been provided. 44.1 kHz WAV files of the original sounds are also included for those wishing to use the Casio RZ-1 sounds in a sampler. Other sample packs of the RZ-1 exist, but these are extracted straight from the ROM and thereby bypass the RZ-1’s converters (and its hiss and hum filled limitations).

It’s readily apparent that the RZ-1 toms all have a soft white noise / hiss running through them, but the ROMs prove that this is not due to the converters or other circuitry, and that the noise is inherent to the actual PCM data itself. It can also be noted that there is a slight delay before Tom 1 is triggered, so it is possible to tighten up the sound slightly by moving the proceeding silence to the tail end of Tom 1.

An additional observation is that the overall signal level of the samples could be raised with moderate use of Waves L2 or another limiter, as the stock sounds use a relatively wide dynamic range and could be significantly compressed or clipped for a more modern sound.

For further sound improvement, the article on sideloading custom samples via the MT port should be seen. This strategy offers multiple benefits as compared to sampling through the analog input jack.

The combination of both of these techniques will have the Casio RZ-1 sounding better than it ever has before.

The ultra-advanced sound hacker can go a step further and alter the program ROM with custom sample lengths so that sounds which are longer than the equivalent stock drums can be used instead, although obviously the total available space remains the same — for one sound to be longer then another must be shorter by the exact same amount. However, tightening up the toms and open hi-hat in particular will provide extra space for rimshot replacement or extended 808 kicks, etc. Anyone wishing to pursue this high-degree of customization is advised to contact R-Massive directly, as it requires replacing the OS (system/program) ROM with one patched in a very specific manner.

An augmentation to standard sound ROM hacking is EPROM bank switching. This method provides selection of four different kits on-the-fly instead having to physically swap out chips over-and-over.

909, DMX, RZ-1, and 808 kits without repeatedly opening up the machine?

27C010 EPROM Four Bank Selection Hack

Additional Materials Needed:

Two SPDT sub-miniature switches (or the electrical equivalent of your choice)
Two 27C010 EPROMS

Also, if your RZ-1 does not already have sound ROM sockets fitted, 32-pin sockets are highly recommended. Please reference the end of this article for clarification.

Note: The Casio RZ-1 uses two separate chips to store its sounds, so all steps have to be applied to both sound ROM A and sound ROM B.

Four 27C256 banks will fit on one 27C010, so choose four standard sized (27C256 type, 32K file size) RZ-1 sound ROM binaries which are designed for sound ROM A. Join those ROMs together into one file using a hex editor or the Windows command-line, such as:

copy /b 808_A.ROM + 909_A.ROM + DMX_A.ROM + RZ1_A.ROM 27C010_A.ROM

Do the same for the sound ROM B binaries (which should obviously be selected to match sound ROM A). The resulting ROM files should be written to the blank 27C010 EPROMs with an appropriate hardware programmer.

Note: Make sure the ROMs are joined in the same order for both sound ROM A and sound ROM B, or one half of the drum kit will not match the other half! Also, make sure to label which 27C010 is for ROM A and ROM B as the chip positions cannot be swapped.

Next, carefully and gently bend out pin 3 of both 27C010 chips to approximately a 45 degree angle. WARNING: DO NOT BREAK THE PINS OFF!!!!

The 27C010 is a 32-pin chip and the original 27C256 is only 28 pins, so the new chips will not fit without a degree of surgery.

Pins 1, 2, 31, and 32 are going to overhang the socket** and not be connected to anything on the PCB. Pin 3 of the 27C010 is bent out so it will “miss” pin 1 of the socket. The rest of the chip should be fit normally into the socket. In other words, square up the end of the chip without a notch with the end of the socket without a notch; the notched end of the 27C010 will be dangling four pins beyond the notched end of the socket.

On the top-side of 27C010, bridge Pin 30, 31, and 32 and then jump a wire across to Pin 1. Make sure to do this across the top portion of the pins instead of the bottom because pin 30 needs to still fit in the socket. Pin 30 gets +5V from the socket and will thereby supply it to the overhanging pins to which it is now connected.

Again, this procedure must be done for both ROM A and ROM B 27C010 chips.

Pins 2 and 3 are where the magic happens; these are the extra two address pins that will enable access to four banks total instead of only one.

All that is needed to control the address pins are two SPDT toggle switches. The middle leg of one switch will go to Pin 3 (A15) and the middle leg of the other switch goes to Pin 2 (A16). Connect one leg of each switch to ground, and the other leg of the switch to +5V. But, to make this reliable and electrically sound, it is highly recommended to add pull up/down resistors before soldering the switch wires to +5V and ground. To do so, place a resistor at the end of all four switch wires which will be connected to +5V or ground. Connect the resistors to the end of the wire which is furthers from the switch itself. To clarify: Two resistors are needed per switch — one for +5V line and one for ground. Do not add a resistor to the middle leg, as that is connected to an address line. The resistor value should be 10K or lower, so 4.7k or 330 ohm are also easy to find choices.

The switches are shared between sound ROMs A and B, so wire ROM B in the exact same manner. Special attention is required, however, to make sure Pin 2 for ROM A and ROM B are going to the same pin of the same switch, and Pin 3 for both ROM A and ROM B are connected to the respective switch. In other words, when flipping a switch, both ROM A and ROM B should toggle the same address (either A15 or A16) at the same time — when ROM A A15 goes low, ROM B A15 should go low as well, and when ROM A A15 goes high, ROM B A15 should go high. A16 should behave likewise. If A15/A16 for ROM A are opposite in respect to ROM B then the RZ-1 will switch to mismatched kits.

As the switches control the various states of on/off, there are four unique combinations:

S1 S2

0   0   bank 1
0   1   bank 2
1   0   bank 3
1   1   bank 4

Switch placement is left to the discretion of the mod installer, but a suggestion is to drill two small mounting holes on the front left-side of the black metal base. This will prevent accidental physical exposure to the switches due to the overhang of the top chassis.


Clearly, if reprogramming the sounds is desired then desoldering the switches from Pins 2 and 3 will be necessary, as well as the jumpers between Pins 1, 2, 31, and 32. Pin 3 will also need to be unbent so it’s inline with the rest of the pins again — not terribly graceful. Which leads to…

** an unaltered RZ-1 will not actually have a socket, but the PCB only has 28 holes, so the point remains. The above technique should be used if the RZ-1 has already been fitted with 28-pin sockets, or if one is planning on fitting 28-pin sockets during the mod, however, if your RZ-1 has not already been modded then 32-pin sockets are advisable.

Ideally, to make the 27C010 hack a “permanent” install, one would use a 32-pin socket (instead of 28-pin) and bend out pins 1, 2, 3 and 30, 31, and 32 before soldering it to the PCB. On the socket, connect pins 1, 30, 31, and 32 together and then jump a wire to the former pin 28 hole on the PCB (where pin 30 of the 27C010 would have lined up if it was not bent out).

Now the switches for pins 2 and 3 can be permanently attached to the 32-pin socket instead of directly to the 27C010 chip which makes reprogramming much easier.

A semi-permanent method would be to install 28-pin sockets on the mainboard, but use a machined 32-pin socket as a caddy. The 32-pin socket will fit into the 28-pin socket with the 32-pin socket modified and installed with the same method as directly above.

Bookmark the permalink.