Fix your OCM

Fix your OCM

by KdL on 19-08-2020, 17:37
Topic: Hardware
Languages:

Thanks to the help of HRA! KdL have finally fixed a new hardware bug affecting all 1chipMSX, Zemmix Neo, SX-1, SM-X and related machines produced to date.

In the last few months MRC power user KdL had received some reports from ToughkidCST and Marcel Delorme explaining the presence of anomalies with the combination of some external cartridges.
Two days ago KdL had discovered how to reactivate those cartridges but only today he had confirmation of this discovery from the investigations of HRA!

BUSDIR_n patch is not for Minime OCM as this machine only got one cartrisge slot.

THE ISSUE:

  • In OCM machines we have a short circuit between pin-10 (BUSDIR_n) of the two external slots that continues towards the FPGA. This type of connection confuses some cartridges.
  • While the Panasonic FS-A1GT and Canon V-20 service manuals confirmed that the BUSDIR signal is not used.

THE FIX:

  • Pin-10 (BUSDIR_n) of the external slots must be isolated.

HOW TO DO:

  • Method 1 - Cut the track that connects pin-10 of Slot-1 and Slot-2 leaving unchanged the connection to the FPGA already internally isolated by the firmware.
  • Method 2 - Desolder pin-10 of slot-2 from the PCB and insulate it with the sheath of an electric wire and a drop of hot glue.
  • Method 3 - Place non conducting tape over pin 10 of those cartridges that are not working properly, such as MoonSound and Darky. Check this example.

We hope you enjoy this new solution and have fun with your devices.

Comments (42)

By msd

Paragon (1397)

msd's picture

20-08-2020, 12:40

Finally. Don't need to use a slot-expander any more Wink

By gdx

Prophet (3684)

gdx's picture

20-08-2020, 13:11

I noticed the same problem on some slot expanders.

PS: I do not recommend the method 3.

By msd

Paragon (1397)

msd's picture

20-08-2020, 13:50

@gdx, why not?

By Robosoft

Expert (79)

Robosoft's picture

20-08-2020, 13:52

Thanx!
Maybe this explaines why my Nowind doesn’t work on my OCM.

By msd

Paragon (1397)

msd's picture

20-08-2020, 14:00

@robotsoft. If you had an error, can't find the nowind it is possible.. but there are more failures possible of course Wink

By Robosoft

Expert (79)

Robosoft's picture

20-08-2020, 14:18

The OCM doesn’t boot at all with Nowind inserted.
The nowind works fine in my Turbo-r and even in my Sony HBF500P.

By Parn

Hero (603)

Parn's picture

20-08-2020, 14:28

If that electrical tape gets loose inside the cartridge slot... Let's say it's not good. I don't think it's a good idea to suggest that course of action.

By msd

Paragon (1397)

msd's picture

20-08-2020, 14:40

electrical tape? it is just an isolator, if it gets lose in your slot you need to remove it, that is it Tongue

By msd

Paragon (1397)

msd's picture

20-08-2020, 14:51

I see the post could be .. place non conducting tape over pin 10 .

By gdx

Prophet (3684)

gdx's picture

20-08-2020, 15:13

msd@ To avoid having a tape stuck in the slot contacts.

By Meits

Scribe (5942)

Meits's picture

20-08-2020, 15:15

How does the moonsound not work in unmodified state?

Edit: I thought I had it working in the past, but checking the video it was ocm with dalsori 1. It plays, be it very unstable in tempo.

By hamlet

Scribe (3189)

hamlet's picture

20-08-2020, 15:37

msd wrote:

I see the post could be .. place non conducting tape over pin 10 .

Thanks, I'd fixed it.

By Briqunullus

Master (147)

Briqunullus's picture

20-08-2020, 15:49

The unfixed sentence can still be read a few lines up. Method 3 is also mentioned with 'the fix'. oO

By hamlet

Scribe (3189)

hamlet's picture

20-08-2020, 15:56

That seems to be a c&paster. Fixed. Thx.

By ToriHino

Hero (562)

ToriHino's picture

20-08-2020, 17:50

gdx wrote:

I noticed the same problem on some slot expanders.

PS: I do not recommend the method 3.

You mean also when used on a 'regular' MSX?

I see strange behavior when combining my slotexpander with GR8NET in the other primary slot. Combined with f.e. the MFR it works fine, so until now i suspected the GR8NET. Can this be the same problem?

By gdx

Prophet (3684)

gdx's picture

20-08-2020, 18:26

Real MSX or not, problem is same when BUSDIR of all slot are short circuited on the slot expanders, but fortunately it does not seem common.

By ducasp

Champion (353)

ducasp's picture

20-08-2020, 18:31

Is that really an issue with the devices? If I'm not mistaken busdir should be Z (high impedance) or gnd, so having them all connected wouldn't be a problem, isn't that a problem on the cartridges not putting the output at high impedance when not asserting busdir?

By gdx

Prophet (3684)

gdx's picture

20-08-2020, 19:38

Normally, when the busdir is not used by the MSX, it is not connected.
If you link the busdir of two slot and insert two cartridges that take in account the busdir signal, they may not work properly because you have connected two outputs together, and it can cause the MSX to crash.

If you isolate the pin on the cartridge, it will no longer work on MSXs that need the busdir signal.

By raymond

Champion (447)

raymond's picture

20-08-2020, 20:09

Is this to solve the same problem as mentioned here: Hardware issues on Zemmix and others

By ducasp

Champion (353)

ducasp's picture

20-08-2020, 22:40

gdx wrote:

Normally, when the busdir is not used by the MSX, it is not connected.
If you link the busdir of two slot and insert two cartridges that take in account the busdir signal, they may not work properly because you have connected two outputs together, and it can cause the MSX to crash.

If you isolate the pin on the cartridge, it will no longer work on MSXs that need the busdir signal.

I've confused WAIT and BUSDIR, WAIT is the one that is tri-state, BUSDIR is not, I see that Gradiente Expert also has busdir interconnected in its two slots, so this error might not be exclusive to the OCM and its clones... oO

So, if using only one slot at a time you probably should not suffer the issue, correct?

By OeiOeiVogeltje

Paragon (1365)

OeiOeiVogeltje's picture

20-08-2020, 23:03

could someone post a photo of this fix?

By lovemsxfan

Supporter (7)

lovemsxfan's picture

21-08-2020, 10:09

If I don't use the cartridge by inserting it in slot 1 or slot 2, is there no need to fix it?

By KdL

Paragon (1325)

KdL's picture

21-08-2020, 11:38

Hi everyone. Don't get confused. This fix is ​​not necessary if there are no problems with the cartridges or if you are using a single slot at a time. It also does not affect the previously published fix, this is a new fix.

By AxelF

Champion (359)

AxelF's picture

21-08-2020, 11:39

Does this patch also apply when using the Rookie Drive NX ?

By KdL

Paragon (1325)

KdL's picture

21-08-2020, 12:12

If the cartridge works fine on its own and only stalls when combined with other cartridges, this patch will fix the problem. Therefore I recommend that you try method 3 temporarily and apply method 1 when you are sure that method 3 worked.

By msd

Paragon (1397)

msd's picture

21-08-2020, 12:20

@meits. Only inserting opl4 cartridge itself should work fine on the ocm. Only problems should occur when you insert another cartridge.

Just another thought on the BUSDIR. I think this signal was intended to take over control of the whole bus. Defining who is master on the bus. So the question is why does the opl4 / gfx9000 even check for busdir. They will never be bus master. It could be a mistake in the GAL/PAL chip on these cartridges. I'm not 100% sure

By Omega

Master (223)

Omega's picture

21-08-2020, 13:10

msd: the busdir signal has nothing to do with bus mastering. It's intended for those MSXs that have a buffered databus on the cartridge slots. i.e. through a 74LS245. That is a bidirectional transceiver, and one pin controls which direction the signals can go. Normally it goes toward the MSX (for reading ROMs etc), but if you want to write a byte to a cartridge (I/O port) the direction has to be reversed. This is why it's implementation is required on MSX cartridges that need to be written to (sound cartridges, memory mappers etc). Buffered databus is not required in the MSX standard, on those MSXs that don't have the buffers the BUSDIR signal is simply not connected.
So:
- Cartridges that implement I/O must implement BUSDIR
- MSX hosts implementation of bus buffers and BUSDIR is optional

By msd

Paragon (1397)

msd's picture

21-08-2020, 13:13

@omega. that makes it clear.. I said I was not sure Tongue thanks

By ducasp

Champion (353)

ducasp's picture

21-08-2020, 13:34

Omega wrote:

msd: the busdir signal has nothing to do with bus mastering. It's intended for those MSXs that have a buffered databus on the cartridge slots. i.e. through a 74LS245. That is a bidirectional transceiver, and one pin controls which direction the signals can go. Normally it goes toward the MSX (for reading ROMs etc), but if you want to write a byte to a cartridge (I/O port) the direction has to be reversed. This is why it's implementation is required on MSX cartridges that need to be written to (sound cartridges, memory mappers etc). Buffered databus is not required in the MSX standard, on those MSXs that don't have the buffers the BUSDIR signal is simply not connected.
So:
- Cartridges that implement I/O must implement BUSDIR
- MSX hosts implementation of bus buffers and BUSDIR is optional

Yeah, problem is that I/O addresses do not relate to a slot, so there is no slot select and there is no way to each buffer know if the IO read will be from it or another slot sharing the same bi directional buffer.

But MSD question still is valid, on a system that busdir is not needed, it should not be an issue to have a collision of signals that are not being read by anyone, my SM-X has an OPL4 and a 9990 from tecnobytes and I use both at the same time to play life on earth. My guess is that for some chips the power drained during the collision is causing erratic behavior, and perhaps of the design buffered busdir there is less chance of such collisions causing an issue Tongue

By Grauw

Ascended (9285)

Grauw's picture

21-08-2020, 13:48

I think also slot expanders always contain a buffer and thus rely on BUSDIR.

By msd

Paragon (1397)

msd's picture

21-08-2020, 14:18

Correct" slot expanders always contain a buffer a" .. That is why a slotexpander can fix some issues.. For example a novaxis scsi interface only work with a slot expander in a nms 8245.

By gdx

Prophet (3684)

gdx's picture

21-08-2020, 15:15

msd wrote:

Correct" slot expanders always contain a buffer a" ..

Yes, if it is well designed, but it is not always the case. Many people reduce the cost as much as possible and sometimes too much. Tinned contacts is one other example.

By HRA!

Master (223)

HRA!'s picture

21-08-2020, 17:02

By syn

Paragon (1972)

syn's picture

23-08-2020, 11:42

Quote:

Thanks to the help of HRA! KdL have finally fixed a new hardware bug affecting all 1chipMSX,

i thought this does not affect an originai 1ChipMSX?

By ducasp

Champion (353)

ducasp's picture

23-08-2020, 14:12

syn wrote:
Quote:

Thanks to the help of HRA! KdL have finally fixed a new hardware bug affecting all 1chipMSX,

i thought this does not affect an originai 1ChipMSX?

Seems one chip msx also has busdir of each slot connected to the same fpga pin, so, short circuiting busdir of both slots

By KdL

Paragon (1325)

KdL's picture

24-08-2020, 03:32

Yes, this hardware patch is also for the original 1chipMSX.

By Grauw

Ascended (9285)

Grauw's picture

24-08-2020, 17:16

syn wrote:
Quote:

Thanks to the help of HRA! KdL have finally fixed a new hardware bug affecting all 1chipMSX,

i thought this does not affect an originai 1ChipMSX?

You’re thinking of another problem.

By gflorez

Rookie (27)

gflorez's picture

25-08-2020, 04:10

Ok, I understand, these two /BusDir signals can't be joined in any case.

But.... Maybe the definitive solution would be to install an additional 74LS245 only for the /BusDir from slot 2. (Slot 1 uses the one inside the FPGA)

The LS245 is used to protect the Z80 Data Bus from noisy expansions. I have experienced that some, like the V9990 cartridge, need the buffer, but others not, like SE-ONE, Moonsound clone or Philips Music module.

By KdL

Paragon (1325)

KdL's picture

25-08-2020, 12:56

It can be done in various ways. But the problem remains upstream, as manufacturers will continue to copy errors from existing PCBs. Unfortunately, in fact, there is this practice of copying parts of existing boards without thinking or having a clear idea of ​​what you are building, so it's very common in homebrew machines to find redundant lacks and flaws.

By KdL

Paragon (1325)

KdL's picture

26-08-2020, 06:48

This patch only affects OCM machines with two or more slots.
Minime is not affected by this issue because it only has one slot.

By KdL

Paragon (1325)

KdL's picture

26-09-2020, 18:02

By OeiOeiVogeltje

Paragon (1365)

OeiOeiVogeltje's picture

27-09-2020, 11:39

thanks!