VOGONS


Looking for IBM Music Feature Card owners

Topic actions

Reply 20 of 67, by kdehl

User metadata
Rank Newbie
Rank
Newbie
scg wrote on 2022-10-08, 09:45:
scg wrote on 2022-09-17, 19:50:

In this photo, it looks like a wire is connected to pin 2 of the RA1.
RA1-2_2.jpg

I'm assuming that pin pin 2 of the RA1 is connected to pin 13 U5. This doesn't make sense, however I can't explain the wire I've marked red in the picture above.
Can anyone check if this is true?

Hi sgc! How's it going with this board? Did you manage to resolve this last issue?

David

Reply 22 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie
kdehl wrote on 2023-05-03, 12:04:

Hi sgc! How's it going with this board? Did you manage to resolve this last issue?

Recently a video was released on the LGR Youtube channel about the IMFC: https://youtu.be/lyIBfjsTZcQ. The screenshot from this video clearly shows that the RA1.2 pin is used.
According to my layout, the only place the wire from this pin can go is the ISA AEN line. No matter how hard I tried, I could not get another option. Therefore, I decided to stop at this option and ordered a test board from the factory. As soon as the board comes, I'll try to build that.

Attachments

  • imfc_video1.png
    Filename
    imfc_video1.png
    File size
    550.55 KiB
    Views
    1930 views
    File license
    Public domain

Reply 26 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie
Physikant wrote on 2023-06-17, 22:34:

Is there some github or something of this project? I would like to try to assemble one myself, even if there are some flaws in this version 😀

You can find the KiCad project here: http://svn.stdio.ru/svn/trunk/imfc_clone/hardware/
I have already assembled the board completely. Once the card even played in games Space Quest 3 and Silpheed.
However, as soon as I wanted to capture it on video, device stopped working. Now I understand the issue with the help of a logic analyzer. It looks like software bugs and the drivers don't want to run on relatively fast machines.

Reply 27 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie

Here's what the music map looks like now.

To Physikant: for some reason, I do not have the permissions to respond on private messages, so I will answer your questions here.

Physikant wrote on 2023-06-17, 22:34:

a) How on earth did you figure out the layout of the top sub layer (In1.Cu)? The grounding seems wild to me! Are you sure about this?

No, not sure. Of course, I couldn't see the inner layers in the photos. The result of my work is a reconstruction based on speculation.
Key Ideas:
- The board has four grounds: Digital, Analogue, DAC and Chassis
- The corresponding circuit is connected only to its ground
- The grounds are connected to each other only through one point
Based on the available photos and these rules, I tried to layout the ground. Perhaps a little wrong. I also found one mistake in element ZD1.

Physikant wrote on 2023-06-17, 22:34:

b) It seems that while your card closely resembles the revision C of the IMFC, the fix in the layout around C26 is from the rev D. Did you find other differences between the two revs (besides the switch to a mask rom)?

This project is not a copy of a specific revision of the board, but an attempt to reconstruct the device itself.
The good quality photographs available were barely enough to reconstruct the circuit. The connection of a large part of the wires had to be thought out based on the programming documentation. Therefore, it turned out to be impossible to copy the board 100%. Especially to compare revisions.

Physikant wrote on 2023-06-17, 22:34:

c) You wrote that the card doesen't work as intended but you think that it is dependent on the speed of the PC. How do you know?

I recorded the exchange protocol of the card with the software using a logic analyzer, and did not find any problems with the card. But in the driver disassembler from Sierra, I found a delay function based on empty loops:

; --------------- S U B R O U T I N E ---------------------------------------
org 08a2h
sub_8A2 proc near
push di
xor di, di
loc_8A5:
inc di
cmp di, 0FFFFh
jb short loc_8A5
pop di
retn
sub_8A2 endp

I slightly corrected this function, and you can see the result in the video:
https://youtu.be/1_qK44evF64

Physikant wrote on 2023-06-17, 22:34:

d) Do you have a bill of materials of this? Some things (the inductors, the weird through-hole-resistor-like-looking-capacitors, the strange quarz X2 ...) are really hard to find/identify...

List of materials can be generated by KiСAD
Most of the chips I found in China through Aliexpress.
https://aliexpress.com/item/1005004092483956. … 000028989544302
https://aliexpress.com/item/1005002950408166. … 000022926378221
https://aliexpress.com/item/33035440006.html? … _id=67317630057
https://aliexpress.com/item/1005003975946293. … .60f34aa62ZuTTU
https://aliexpress.com/item/1005005673420951. … .63b54aa6LtrqZD

I was looking for parts for a long time, about a year. Most of them are used ones.
Some of the parts (inductors and EMI filters) I have left from donor boards for the previous project: https://www.youtube.com/playlist?list=PLklwb3 … 8eE7-xB7FL3q01e

Attachments

Last edited by scg on 2023-07-02, 19:32. Edited 2 times in total.

Reply 28 of 67, by Physikant

User metadata
Rank Newbie
Rank
Newbie

Thanks for the reply!
Did you already correct the error on ZD1 in your schematic/board? What was the error?
Interesting find with the delay loop. So they already knew this problem.
Where did you find the 11.8MHz crystal? They seem impossible to find ...
Oh, and where is this 3 pin filter capacitor needed that you linked in the previous post?

Reply 29 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie
Physikant wrote on 2023-07-02, 18:44:

Did you already correct the error on ZD1 in your schematic/board? What was the error?

Yes, I fixed it, but I haven't committed it yet. GND was connected to the wrong layer.

Physikant wrote on 2023-07-02, 18:44:

Interesting find with the delay loop. So they already knew this problem.

Unfortunately, the problem remains. The fix helped only when starting the game under Windows. Under DOS, games still freeze. I will investigate further. I'll try to connect the logic analyzer directly to the ISA bus.
At the moment, the music card is still in the process of debugging.

Physikant wrote on 2023-07-02, 18:44:

Where did you find the 11.8MHz crystal? They seem impossible to find ...

Oddly enough, I found it at a local radio shop. I did not find such crystals on the Internet.

Physikant wrote on 2023-07-02, 18:44:

Oh, and where is this 3 pin filter capacitor needed that you linked in the previous post?

L7, L10, L11

Reply 30 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie

It turned out that the device was in conflict with the Sound Blaster! The Blaster does not use all address lines for decoding, so it began to occupy the bus along with the IMFC, and prevented it from working. There were no software problems with the drivers, it turns out.
It's alive!
https://youtu.be/Qtrv1dVRlp8?si=iWqK-Klu9iQlyCnD

Reply 32 of 67, by Tiido

User metadata
Rank l33t
Rank
l33t

awesome ~

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 33 of 67, by Pierre32

User metadata
Rank Oldbie
Rank
Oldbie

Well done mate, it's beautiful!

Also, kicking myself that I didn't have that sweet IMFCDISK demo on my list of FB-01 tests. One more reason to drag it back out again.

Reply 34 of 67, by Scali

User metadata
Rank l33t
Rank
l33t
scg wrote on 2023-08-18, 18:42:

It turned out that the device was in conflict with the Sound Blaster! The Blaster does not use all address lines for decoding, so it began to occupy the bus along with the IMFC, and prevented it from working. There were no software problems with the drivers, it turns out.
It's alive!
https://youtu.be/Qtrv1dVRlp8?si=iWqK-Klu9iQlyCnD

Ah yea, I had the exact same issue when I had both a GameBlaster clone and an IMFC in the same machine!
Anyway, great work, it seems it runs the software just fine now!

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

Reply 35 of 67, by carlostex

User metadata
Rank l33t
Rank
l33t

Too bad there was never an AIL driver for this card, I really like the OPP sound chip. The only thing that sucks about this card design is that the Yamaha 2164 registers aren’t exposed directly on the ISA BUS so everything has through MIDI

Reply 36 of 67, by Tronix

User metadata
Rank Member
Rank
Member

I am the second lucky owner of the board from scg, thanks to him for the work done on creating a replica.
I assembled my board from the parts I have available, so it does not look very similar to the Yamaha original 😀
However, it works great just like scg's board.

P1140149.jpg
Filename
P1140149.jpg
File size
648.75 KiB
Views
1328 views
File license
Public domain
P1140151.jpg
Filename
P1140151.jpg
File size
942.96 KiB
Views
1328 views
File license
Public domain
P1140152.jpg
Filename
P1140152.jpg
File size
943.73 KiB
Views
1328 views
File license
Public domain
carlostex wrote on 2023-08-18, 21:51:

Too bad there was never an AIL driver for this card

Yes, but the situation can be improved. For example, using a modified version of SoftMPU for IMFC. As a rule, any games that use AIL work with the SoftMPU, even those that use the protected mode of the processor and the DOS 4GW extender. For example Warcraft 2, Heroes 2. And I even tried to experiment a little with it. The main problem is to create a conversion table from the General Midi instruments to the IMFC instruments available in the ROM banks, someething like this:

struct GM_to_mfc_t
{
int bank;
int instr;
};

struct GM_to_mfc_t GM_to_mfc[128] = {
// Piano
{4, 1}, //1. Acoustic Grand Piano -> 4/1:Uprt Piano
{4, 2}, //2. Bright Acoustic Piano -> 4/2:SoftPiano
{4, 12}, //3. Electric Grand Piano -> 4/12:El Grand 2
{4, 13}, //4. Honky-tonk Piano -> 4/13:Honkey 1
{4, 21}, //5. Electric Piano 1 -> 4/21:ElecPiano1
{4, 22}, //6. Electric Piano 2 -> 4/22:ElecPiano2
{3, 26}, //7. Harpsichord -> 3/26:Harpsichrd
{3, 25}, //8. Clavi -> 3/25:Clavichord
// Chromatic Percussion
{4, 47}, //9. Celesta -> 4/47:Celeste
{3, 20}, //10. Glockenspiel -> 3/20:Glockenspl
{6, 33}, //11. Music Box -> 6/33:Xylophone2 (?)

I created this table very approximately, focusing on the text matches of the names of the instruments, sometimes a little by ear, and sometimes using random 😀
Another table is needed for the 10 (or 9 from zero) General Midi drum channel. I also sketched it partly by ear, partly from random.
So, this is result: https://www.youtube.com/watch?v=0F6IBEr9z0Y (Sorry for quality)

Yes, I certainly hear that the music is very strange, and I think this is due to hastily and not neatly compiled conversion tables. Perhaps if you make a more accurate comparison of instruments, focusing on the MT-32, and not on General MIDI, then the music will sound better.
If suddenly someone is interested, then I posted the source codes of the experimental version of SoftMPU as well as the DOSMID player here: https://github.com/Tronix286/IMFC

https://github.com/Tronix286/

Reply 37 of 67, by Pierre32

User metadata
Rank Oldbie
Rank
Oldbie
Tronix wrote on 2023-08-19, 19:14:
I am the second lucky owner of the board from scg, thanks to him for the work done on creating a replica. I assembled my board […]
Show full quote

I am the second lucky owner of the board from scg, thanks to him for the work done on creating a replica.
I assembled my board from the parts I have available, so it does not look very similar to the Yamaha original 😀
However, it works great just like scg's board.
P1140149.jpg
P1140151.jpg
P1140152.jpg

Nice!

Tronix wrote on 2023-08-19, 19:14:
Yes, but the situation can be improved. For example, using a modified version of SoftMPU for IMFC. As a rule, any games that use […]
Show full quote

Yes, but the situation can be improved. For example, using a modified version of SoftMPU for IMFC. As a rule, any games that use AIL work with the SoftMPU, even those that use the protected mode of the processor and the DOS 4GW extender. For example Warcraft 2, Heroes 2. And I even tried to experiment a little with it. The main problem is to create a conversion table from the General Midi instruments to the IMFC instruments available in the ROM banks, someething like this:

struct GM_to_mfc_t
{
int bank;
int instr;
};

struct GM_to_mfc_t GM_to_mfc[128] = {
// Piano
{4, 1}, //1. Acoustic Grand Piano -> 4/1:Uprt Piano
{4, 2}, //2. Bright Acoustic Piano -> 4/2:SoftPiano
{4, 12}, //3. Electric Grand Piano -> 4/12:El Grand 2
{4, 13}, //4. Honky-tonk Piano -> 4/13:Honkey 1
{4, 21}, //5. Electric Piano 1 -> 4/21:ElecPiano1
{4, 22}, //6. Electric Piano 2 -> 4/22:ElecPiano2
{3, 26}, //7. Harpsichord -> 3/26:Harpsichrd
{3, 25}, //8. Clavi -> 3/25:Clavichord
// Chromatic Percussion
{4, 47}, //9. Celesta -> 4/47:Celeste
{3, 20}, //10. Glockenspiel -> 3/20:Glockenspl
{6, 33}, //11. Music Box -> 6/33:Xylophone2 (?)

I created this table very approximately, focusing on the text matches of the names of the instruments, sometimes a little by ear, and sometimes using random 😀
Another table is needed for the 10 (or 9 from zero) General Midi drum channel. I also sketched it partly by ear, partly from random.
So, this is result: https://www.youtube.com/watch?v=0F6IBEr9z0Y (Sorry for quality)

Yes, I certainly hear that the music is very strange, and I think this is due to hastily and not neatly compiled conversion tables. Perhaps if you make a more accurate comparison of instruments, focusing on the MT-32, and not on General MIDI, then the music will sound better.
If suddenly someone is interested, then I posted the source codes of the experimental version of SoftMPU as well as the DOSMID player here: https://github.com/Tronix286/IMFC

Um... NICE! This is really exciting stuff.

Reply 38 of 67, by scg

User metadata
Rank Newbie
Rank
Newbie
keropi wrote on 2023-08-18, 18:54:

from what I can see it works fine?

If there are no failures in a week, then it will be possible to say that it works. 😀
In addition, Tronix has a second assembled copy of the board, and it has been in working order for a long time.
It remains only to check the external MIDI port. Unfortunately, I don't have any MIDI devices, so I'll have to use a simple loopback test.
I'll deal with this soon.