• Please review our updated Terms and Rules here

Roland D-20 decoding the mysterious floppy format.

The only empty formatted floppy I spared did of course have a bad sector.
Will provide a clean image soon.
In the mean time, I believe the data to be close to or in Roland MRC file format (.sng), as that is what was used with their MC-300 / MC-500 / MC-50 sequencers and later workstations (all up till the '00) where a continuation of it (Super-MRC).
Don`t see much reason for them to do a whole separate technology just for this synth alone.
I also believe that Roland intentionally used incompatible floppy formats to avoid loss of interest in the MC series, although the D-20 is a very dumbed down sequencer in comparison.
The problem is conversion, usually paid tools are available (a DOS program that is still sold today), but the MC series also had a program to run on the sequencer to convert between SMF (Standard MIDI file) and MRC.
Luckily, I have someone lending me an MC-500 sequencer.
Exiting times indeed!
 
Well, back again after a rather long wait for the drive belt to arrive via the far east.
A certain eBay seller from Germany who is the only one selling the belt in Europe was not cooperative
and reminded me of a certain Seinfeld episode regarding soup.

To avoid any further monopoly I'll share the specs of the belt that works perfectly in my drive:
The Roland D-20 floppy drive belt is 1.2mm square and has a 240mm circumference (usually sold on aliexpress as 120mm measured folded)

On to business:
I've made a proper dump of a blank format (included) and it looks identical to the image produced by FluxEngine.
FluxEngine's filesystem format is also fully functional in the D-20 when formatted with a properly calibrated drive!
So no more misaligned drives.

One thing potentially not ironed out yet is the handling of deleted files.
I've created a floppy with two files, deleted them and created a new one.
This shows up in the browser as an empty file with a weird file name, and the newly saved file.

I've also verified some filename extensions:

.111 = All (All three icons bellow)
.222 = Song (Sequencer, Note icon)
.333 = Sound (Patch, Sine icon)
.444 = Rhythm (Hi-hat icon)

Next on the agenda is rewriting the files from the dumped floppies on a calibrated drive to verify file integrity etc.
After that, the process of making empty state saves of the various functions to start with the data conversion,
and transferring known content to have something to compare with.
 

Attachments

  • Roland D-20 blank formated.zip
    651.1 KB · Views: 5
That's good news. Thanks for the flux image --- it's been added to my test suite.

I'm not surprised the deleted file isn't been handled properly; if you have a hex editor, could you read an image and let me know the contents of the sector at 0x1d400? That's got the directory in it.
 
That's good news. Thanks for the flux image --- it's been added to my test suite.

I'm not surprised the deleted file isn't been handled properly; if you have a hex editor, could you read an image and let me know the contents of the sector at 0x1d400? That's got the directory in it.
Thought it'd be easier if you got the image.
 

Attachments

  • rolandd20.zip
    7.8 KB · Views: 2
Found a very unfortunate bug: When writing files back to a floppy, the whole file is not written.
It starts writing, then stops quickly and status is "finished".
Also, files exported with special characters (underscore f.ex.) won't be accepted back when imported.
If there is an easy way around it without renaming?

I'm running the last version you made specially for testing, has the code been moved into main release?
 
It's all been pushed into the main release.

Re filenames: the code is supposed to check for that. It's possible the version you have doesn't have that in it yet. Try again with the latest release? https://github.com/davidgiven/fluxengine/releases/tag/dev

Also, that disk image with the deleted file: was that deleted with the Roland itself or with FluxEngine? The directory looks weirdly corrupt.
 
The two files where deleted on the Roland. It could theoretically be a bug in the Roland sequencer firmware as it is currently running 1.00. 1.03 is the latest for my board revision (old) but it hasn’t been available on the interwebs yet (an eBay user is selling the eproms, but I’d rather reuse the old ones)
 
I've now verified with the latest build that writing files with fluxengine is not working.
Say I add two files, then commit, only the last added file is shown in the D20, and when loading I get an error code 9 which is basically saying the whole file hasn't been written.
 
I have a Roland D-20. I actually used it with my C64 and Amiga for Midi back in the 80's, along with a Casio CZ-101. I looked at the Roland disks when I first created SuperCard Pro. The "FDC" in the D-20 is actually a masked gate array (series 110). I believe this gate array was also used with the Brother P1 as well. The disk drive is controlled via the gate array (very much like how the 1541 works) and the encoding/decoding is fully handled in software via the main CPU... you will find that nothing else 'works' while the disk is being accessed as the CPU is fully dedicated to the drive. Jeff (HxC) supports, or was going to support this format. I gave him some disk images circa 2013 to look at.
 
I have a Roland D-20. I actually used it with my C64 and Amiga for Midi back in the 80's, along with a Casio CZ-101. I looked at the Roland disks when I first created SuperCard Pro. The "FDC" in the D-20 is actually a masked gate array (series 110). I believe this gate array was also used with the Brother P1 as well. The disk drive is controlled via the gate array (very much like how the 1541 works) and the encoding/decoding is fully handled in software via the main CPU... you will find that nothing else 'works' while the disk is being accessed as the CPU is fully dedicated to the drive. Jeff (HxC) supports, or was going to support this format. I gave him some disk images circa 2013 to look at.
Thanks for chiming in!
I believe you found your way to the "cutting edge" of D-20 floppy possibilities.
As far as I know, HxC has no support for the D-20, only FluxEngine has support for the format and partially the filesystem.
The big catch is the badly aligned drives in the D-20, resulting in floppies unreadable with the usual archiving setup.

It should theoretically be able to replace the D-20 drive with a Gotek or such, but there is only four phase control (like Apple Disk ][ ) and no DIR / STEP.

There should also be a solution to control the D-20 drive directly to archive whole disk images, but the easiest solution now is to create a formated floppy in FluxEngine with a good aligned drive and do the transfer of files locally on the D-20.

In the future I hope to see a tool that can convert between the sequencer data and MIDI, but I’m far from a coder.
I do have a dump of a known .mid recorded back on the D-20 sequencer.
Shouldn’t be that hard to see the conversion if someone with coding and MIDI skills steps up for the challenge.
 
It's all been pushed into the main release.

Re filenames: the code is supposed to check for that. It's possible the version you have doesn't have that in it yet. Try again with the latest release? https://github.com/davidgiven/fluxengine/releases/tag/dev

Also, that disk image with the deleted file: was that deleted with the Roland itself or with FluxEngine? The directory looks weirdly corrupt.
I also struggle with writing decoded images back to a floppy. "cannot open input file".
So:
Issues with writing files via the browser, only the last file is detected, and the D-20 claims the file is incomplete.
Cannot write images (.img).

Is there a way to write the flux dumps back?
 
Back
Top