VOGONS


IBM Music Feature Card/Yamaha FB-01

Topic actions

Reply 220 of 263, by Scali

User metadata
Rank l33t
Rank
l33t

Quick update: the -midiout option on the regular MAME version of the FB-01 is broken because it collides with the MIDI thru option they tried to add.
In the AMAME fork the thru-option is commented out, and the -midiout option now works correctly, which also means you can make it dump data via SysEx.
AMAME still has the problem that it can't work with loopMIDI though.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 222 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
awgamer wrote:

What's the setup to get it working without loopmidi?

I'm using a real MIDI interface (E-mu 0404 USB), where I've connected its MIDI out to its MIDI in.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 224 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
awgamer wrote:

You're piping mame emulating the fb01 through a real interface to dosbox? That's even more confusing.

Yes. The difference being that I now force the MIDI data to go through an actual MIDI serial cable at 31.25kbps, which I think is where the problem currently is (no flow control between Windows MIDI interfaces and the MAME emulation).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 225 of 263, by Scali

User metadata
Rank l33t
Rank
l33t

It looks like LoopBe1 doesn't suffer from the same issue that loopMIDI has:
https://www.nerds.de/en/loopbe1.html

With this virtual MIDI loopback, it looks like DOSBox and MAME are working properly.
However, it doesn't sound entirely correct... Perhaps it just filters out large SysEx message. I don't get the 'dump/received' message on the display either.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 226 of 263, by Scali

User metadata
Rank l33t
Rank
l33t

I've created an issue for this bug at the MAME GitHub: https://github.com/mamedev/mame/issues/4769
I tried looking at the code quickly, but I can't see an easy fix. The actual problem is not in the FB-01 code itself, which is just a thin template that glues various chips together. The problem is probably deeper down in the MIDI emulation.
I am not familiar with how MAME works, so I have no idea how to implement a simple delay after every write, so that you can force a bitrate of no more than 31.25 kbps.
There's a good chance that this is not enforced in the firmware at all, because there's no need to, on a physical device. It will simply never receive data faster than that, because of the MIDI specification. The other side will take care of that.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 228 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
Trembyle wrote:

Can the FB-01 emulation utilize NukedOPN2 in any way? Or is OPM/OPP just too different?

I'm not sure really. I suppose we won't know for sure until someone decaps an YM2151/YM2164 and checks the actual circuit.
You'd think that since they're all FM-synths, there should be similarities at least in the basic operators, and they use the same DAC (YM3012).
But other than that I have no idea. Currently I'm just using the YM2151 emulation from MAME. So if someone updates that with a more accurate emulator, it should be easy to rebuild the FB-01 emulator with that.
Apparently people are already working on the YM2151: https://github.com/cr1901/ym2151-decap

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 229 of 263, by Scali

User metadata
Rank l33t
Rank
l33t

Here is an early release of DOSBox with IBM Music Feature Card support, and a precompiled AMAME for the FB-01 emulation that is required:
https://www.dropbox.com/s/3bjyvb5imho6sph/DOS … x_IMFC.zip?dl=0

In order to set it up, you need to do 3 things:
1) AMAME needs two ROMs for the FB-01 emulator, which I did not include because of copyright issues. You will have to find them yourself. One is the FB-01 firmware, which should be in a file called fb01.zip. The other is the firmware for the LCD controller, which should be in a file called hd44780_a00.zip. Place those two files in the 'roms' subdirectory under AMAME.
2) DOSBox needs to be configured to output to the correct MIDI device. In this version, there is no IMFC-specific section in the dosbox.conf file yet. I am re-using the MPU-401 configuration. So set up the MPU-401 as usual: under the [midi] section, you use the midiconfig=n option, where n is the index of the MIDI output device you want to use.
3) AMAME also needs to be configured to get input from the correct MIDI device. This is done by name. Run "amame64 -listmidi" to get a list of the names of the possible MIDI in and out devices. Then use the -midiin and -midiout parameters to pass these names. I have included an FB01.bat as example, just change the names to the name of your device, and you should be up and running.

You could also use a real Yamaha FB-01 instead of AMAME of course.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 230 of 263, by bjwil1991

User metadata
Rank l33t
Rank
l33t

Whenever I try to run the fb01.bat file, it complains that a file: nec__-011_xb712c0__8709ex700__d27c256c-15.ic11 is missing.

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 231 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
bjwil1991 wrote:

Whenever I try to run the fb01.bat file, it complains that a file: nec__-011_xb712c0__8709ex700__d27c256c-15.ic11 is missing.

Did you download the two zip files I mentioned in point 1) above? And did you put them into the roms folder?
I believe that file is referring to the fb01.zip contents.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 232 of 263, by bjwil1991

User metadata
Rank l33t
Rank
l33t

Yes. Maybe I downloaded the wrong fb01 folder.

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 233 of 263, by Scali

User metadata
Rank l33t
Rank
l33t

There should be a single ROM image file in there, in my case it's called fb01.bin, and it should be 32768 bytes.
You might be able to find one on this page: http://dbwbp.com/index.php/9-misc/37-synth-eprom-dumps

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 234 of 263, by bjwil1991

User metadata
Rank l33t
Rank
l33t

I got the ROM and the corresponding files but when I run the fb01.bat file, this is what I get:

hd44780_a00.bin ROM NEEDS REDUMP
WARNING: the machine might not run correctly.
Fatal error: Device MIDI In image device load failed: Unspecified error

FB01.BAT contents

amame64 fb01 -midiin "UM-ONE | USB" -midiout "Microsoft GS Wavetable Synth | USB" -window

Did I do something wrong on here?

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 235 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
bjwil1991 wrote:

Did I do something wrong on here?

You can ignore the message about the hd44780_a00.bin re-dump.

The second message is probably because you didn't use the exact names of your devices as listed in "amame64 -listmidi"?
The " | USB" suffix is actually part of the name on my E-mu 0404 USB driver.

You don't need AMAME at all though, when you want to use a real Yamaha FB-01. Just configure DOSBox to output to your MIDI device, and connect the FB-01 to it.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 236 of 263, by bjwil1991

User metadata
Rank l33t
Rank
l33t

I updated the batch file and it doesn't complain any longer. Getting closer, however, I don't get any sound coming out. Do I need to add something to make it happy?

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 237 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
bjwil1991 wrote:

I updated the batch file and it doesn't complain any longer. Getting closer, however, I don't get any sound coming out. Do I need to add something to make it happy?

The MIDI data should be coming out of DOSBox and into AMAME's FB-01. That is somewhat difficult to verify.
On my E-mu 0404 I have MIDI in and MIDI out leds, so I can actually see of DOSBox transfers any data.
As soon as DOSBox starts, it sends a few SysEx commands to the FB-01, because an IMFC boots up with the memory protection disabled, where an FB-01 has it enabled.
So you should see something happening right away, if all is well. You can use the System Setup button on the FB-01. Press it 2 times, and it should read "#1 Protect ON".
When you then start DOSBox, it should switch to OFF.
You can also see that in my video here, at about 1:08: https://youtu.be/t7dL80QLdfM

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 238 of 263, by bjwil1991

User metadata
Rank l33t
Rank
l33t

It doesn't turn the protection off when I start DOSBox. Possibly I missed something?

Do I need to set the midiinconfig or no?

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 239 of 263, by Scali

User metadata
Rank l33t
Rank
l33t
bjwil1991 wrote:

It doesn't turn the protection off when I start DOSBox. Possibly I missed something?

How have you wired up the MIDI between DOSBox and the FB-01?
In my case, I configured DOSBox to output to the MIDI out of my E-mu 0404. I then put a MIDI cable from the MIDI out of the E-mu 0404 to its MIDI in.
Then I configure AMAME to use the E-mu 0404's MIDI in. The MIDI out isn't really relevant at this point. It would mainly be required if you want the FB-01 to dump data back to DOSBox, but that is not required for games.

Alternatively I've also used DOSBox with a real IMFC, where I connect the MIDI out of my E-mu 0404 to the MIDI in of the IMFC. That works the same as a real FB-01.

bjwil1991 wrote:

Do I need to set the midiinconfig or no?

Not afaik. That's still experimental stuff, and again is only required for reading back data from the FB-01.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/