Please enable JavaScript to display the menu.
Reverse Engineering YM2203C expansion card for Fujitsu FM-7

ysflight.com

Compatible with Fujitsu Original YM2203C card for Fujitsu Micro 7 -> [Download Schematic and  PCB]

Works with:

I don't remember if FM-77L4 comes with YM2203C chip.  FM-77L2, AV1/2, AV20/40, AV20EX/AV40EX, AV40SX models come with on-board YM2203C, therefore you cannot add this expansion card.

 

I am running a project to re-manufacture YM2203C expansion card for Fujitsu FM-7, following RS232C serial communication card.  FM-7 has two expansion slots.  Typical final configuration of FM-7 was Mini Floppy-Disk Interface card and YM2203C expansion card.


I am not clear about if I had YM2203C card when I was using FM-7 back in mid 1980s.  I think I at least had access to YM2203C expansion card, but I am not sure if I just borrowed or I owned it.  I soon owned FM77AV, which had YM2203C on board.  Did I really paid out of pocket to buy YM2203C card?  I might have bought it cheap from my then programming master.  I also remember when I bought Thexder I didn't have YM2203C card.  I heard a PSG part only, and felt very odd.  Where was the melody part?  Later I bought FM77AV and finally I heard the melody-part of the BGM.  I'm pretty sure many of the Japanese 8-bit users first heard Moon Light Sonata by Beethoven from the end-title of Thexder.  When I heard about Silpheed PC Sound of Game Arts, I ordered it at the speed of sound.

Majority of the FM-7 game titles that made use of YM2203C expansion card were floppy-disk based.  Therefore it may not be too useful for you unless you have a floppy-disk interface card and working disk drive.  (You can run some titles with Disk BIOS Redirector and RS232C serial communication card.)  But, YM2203C expansion card also comes with two MSX-joystick ports.  Some tape-based titles supported input from MSX joystick via YM2203C expansion card.  Fujitsu FM-7 is notorious for not being able to sense key-release event.  Therefore FM-7 users learned to press '5' key in the num pad to stop a player character.  But, it might be confusing to the younger-generation gamers.  It might be an obstacle when you run a demo in whatever retro-gaming event.  But, if the title supports joystick, there is no such issue.  Two joystick ports alone could be valuable.

I'll also try to develop joystick-supporting patches for some older titles.  I'll upload when I am successful.  After teaching programming nearly 10 years, I had to read code from students to answer questions.  Some students write clean code, some don't.  My reverse-engineering skill was trained by those who didn't write clean code.  Reading well-written assembly is probably easier than reading badly-written C++ code.  With the powerful debugger of FM-7 emulator, I think I have a good chance of succeeding it for many titles.

Unlike RS232C serial communication card, I didn't have access to the schematic.  But, luckily I was able to win a unit by Yahoo auction for about $80.  I started checking connections with my tester.  Schematic of FM77AV hardware helped finding many connections.  Some parts, especially near operational amplifier were different.  I was able to verify correctness of some pins from the experience in RS232C serial communication card, but some parts, especially analog part, were new.  I couldn't confirm the correctness.  I would make a prototype on the breadboard after checking pin connections.

Below is the current work in progress.

2019/04/16

I finished final exhaustive connection test of the pins.  I believe the following schematic is correct.  The next step is to build a prototype on my breadboard.  I will omit the earphone jack part.  My prototype will have only RCA line-out and two joystick connectors.

2019/05/13

Success!

[Download Schematic and  PCB]

YM2203C card has more parts of more varieties compared to RS232C card.  Although I first tried to verify the schematic by prototyping on a breadboard, I realized as soon as I started placing parts on a breadboad that there were too many parts to put on a single breadboard.


ICs filled up the breadboard before placing resistors and capacitors.

I decided to skip prototyping and ordered PCBs.  PCB design was a lot more complex than RS232C card (as expected.)  This time I first drew power lines, using front side (parts side) mainly vertical, and reverse side (soldering side) horizontal, and then drew data lines.  It went somewhat smoothly considering the complexity.  It was so addictive to find optimal wiring.  It was just like "A-Train" by Artdink.  Finding optimal wiring was similar to finding optimal rail-track placements in the game.  I often forgot time optimizing the wiring.

I have exhaustively tested connections.  It should be correct.  But, did I really find all the connections?  I had to firmly push on the pin with the tester probe, or I could have missed a connection.  While testing connections, some capacitor probably has been charged, ending up with activating some transistors in the cirtuit and giving a fake connection.  In such a case, I had to leave my tester for a minute and then the fake connection was gone.  This world is made probablistic.  No matter how carefully you study, there is no 100%.

I ordered PCBs from OSHPark.  It arrived.  I soldered parts on the board.  I'm using a Weller soldering iron that my wife bought me as a birthday present this January.  I was using a cheap soldering iron of Radio Shack brand.  If my old iron is Mig-15, my new one feels like F-15E.  It is so much easier to solder parts on the board.

When I was in high school I was bowling 8 games every Sunday.  Good bowlers suggested to buy my own ball.  I didn't.  I didn't have a transportation because I was riding a bicycle.  That was one reason.  But, I was also thinking it was a cheating to get good score with a better equipment.  Now I use my own ball drilled to fit my hand and understand why they were suggesting me to buy my own.  The ball that fits my hand gave me a lot more feedback than a ball with loose holes.  I learned a lot from my own ball.  I wish I took their suggestions then.  I could be a better bowler today.  Same for the soldering.  Better equipment will not just make things easier, but also teach you to do things better.

So I made a board and tried to put it in my newly repaired FM-7.  It first didn't go in.  The capacitors at the lower right corner were too tall.  Luckly I had a room for bending it 45 degrees, and then the board went all the way in.


The first test is to power it on.  If the I/O address-decoder part is wrong, and mapped to an address used by other critical device, the system may not boot.

With deep breath, I powered on my FM-7, and saw the F-BASIC 3.0 prompt.  The first test passed.

Then started Disk BASIC via RS232C and installed F-BASIC extension called HGPLAY, and then typed:

PLAYHG "C"

I heared a soft tone of YM2203C from my earphone!  Success!

Next I started Thexder from RS232C.  I confirmed its BGM from YM2203C.  Also confirmed that the joystick is readable via YM2203C chip.  It was a 100% success.

Now I re-designed the PCB so that the capacitors are placed away from the bottom edge.  I'll test it as soon as the PCB arrives.


 

Comments are welcome.  Send E-Mail to: 

Back to http://www.ysflight.com