What's new

rcboosted

Enthusiast
Joined
Jan 17, 2021
Messages
207
Reaction score
93
Location
Los Angeles
So I think I broke my MV1B while recapping, I lost all sound afterwards, not sure how, maybe excessive heat? There's no sound out of op amp, DAC or pin 31 on 2610, everything else still works. I've been trying to get it working while parts slowly trickle in. My current working theory is that the NEO-SDR-T chip is bad, or partially working. If I need a replacement chip for that, am I pretty much SOL? Might as well use this as parts board?

My troubleshooting efforts so far have been, swapping slot board with another MV1B. It appears the slot board is ok, since there's sound using the slot board from bad MV1B on good MV1B. I socketed and replaced the 2610 just to rule it out since it arrived anyways. no change as expected. If DAC or op amp is bad, there should still be sound coming from pin 31 (tap point C in stereo mod) on 2610 right? Since the 2610 works in a good MV1B, it must not be enabled by something upstream. I checked the following traces, and continuity is good on all of them:

Z80 D0~D7 → YM2610 D0~D7
Z80 A0/A1 → YM2610 A0/A1
Z80 A2~A4 → NEO-D0 SDA2~SDA4 (NEO-SDR-T equivalent)
Z80 IORQ (20) → NEO-D0 IORQ (37)
Z80 RD (21), WR (22) → NEO-D0 SDRD (35), SDWR (36)
NEO-D0 2610RD (48 ), 2610WR (47), 2610CS (49) → YM2610 RD (59), WR (58 ), CS (57)

I probed the 2610 around while it is running and compared to the good MV1B, these are the ones that are different:

YM2610good boardbad board
WRrapid pulse highslower steady pulse high
RDrapid pulse highslower steady pulse high
CSrapid pulse highslower steady pulse high
PA8-11high, pulse on music8 fastest 11 slowest8 stuck high 9-11 stuck low
PAD0-7scratchy on music with fast pulseNothing, or very low signal

Z80 WR and RD to NEO-SDR-T is behaving the same between good and bad board. This leads me to believe the Z80 is ok? While the WR, RD and CS comes from NEO-SDR-T, so that must be the bad chip. Wiki says NEO-SDR-T is also used for joystick I/O, which works. Even if I can find a replacement, that looks like a pain to desolder without hot air.

Anyone got a vendor for NEO-SDR-T or a spare one? lol. Not sure where to go next. I guess I can replace the Z80 just to make sure since they are available.
 
Last edited:
Anyone? Are my troubleshooting efforts even close? I know these mv1b boards are almost a dime a dozen, but that's not what I'm after since I have working boards already.
 
With those boards it's usually the Z80 that fails and I'd replace it before the custom. The YM2610 is fine, you know that.
You can probe the Z80's data and address lines... But they're under the cartridge that you must run to test the sound.
If you want to be really thorough you can open a cartridge and check if the M1 ROM is being accessed by the Z80 or use the slot's solder points from the back for the same purpose.

I'd replace the Z80 first. But that's me.
 
I was under the impression that the Z80 goes through the custom chip to get to 2610. But I will try replacing the Z80 first, I have it on order anyways. Thank you for your suggestion for the M1 ROM test, I have carts I can test with, so I'll check that out too. That will tell me more if it's Z80.
 
Get some foam or whatever that's non conductive to isolate the two cartridge PCBs from each other. Mind that the slot connectors can be temperamental regarding the connection angle.
Or just remove the top plastic of the cartridge shell and keep everything else in place. Never tried it, but I'm guessing it should work well.
 
I just got my burner 2 days ago, but the M1 chip is still in the mail. The diagnostic bios shows everything else ok. Maybe I will take one of the game I have and reprogram the M1 for Z80 test. I can always revert it after if I do it correctly. :)
 
I just got my burner 2 days ago, but the M1 chip is still in the mail. The diagnostic bios shows everything else ok. Maybe I will take one of the game I have and reprogram the M1 for Z80 test. I can always revert it after if I do it correctly. :)
the diagnostic bios without the diagnostic cannot be used to test audio. the audio test can be done only if you use both diag bios and cart. if you changed both ym2610 and z80 the faulty component could be also the audio ram.
 
Last edited:
the diagnostic bios without the diagnostic cart tests all aut not the audio. the audio test can be done only if you use both diag bios and cart. my. if you changed both ym2610 and z80 the faulty component could be also the audio ram.
So I did reprogram one of my cart for Z80 test. I came out with this consistently:

Z80 DEAD / ERRORED / COMM. ISSUE
EXPECTED: C3
ACTUAL: 50

note that I did have to hold both B and D on the MV1B during power up to test Z80. If I held B as per directions, it skips Z80, if I held D, it errors, asks me to hold B and hit start to continue, then I hold B and hit just start, not both start and select, it will do some test, but I don't think that's valid. Because that fails my MV1C and both my MV1B with Z80<->68k Comm. Error (data), 2 of them have audio without issue normally.

I guess now I wait for Z80 to arrive and replace that. Can't find a NEO-SDR-T anyways. It all a learning process in the end. Currently also fixing a MV2 that just arrived. :)
 
There's some trickery you have to do to get the Z80 test working in the MV1B (and MV1C). Check the site if in doubt.
In any case, once you have the Z80 just replace it.
You will need a hot air station to remove it properly and some finesse to solder the new one.
I remain convinced it should do the trick though. Good luck!
 
So I did reprogram one of my cart for Z80 test. I came out with this consistently:

Z80 DEAD / ERRORED / COMM. ISSUE
EXPECTED: C3
ACTUAL: 50

note that I did have to hold both B and D on the MV1B during power up to test Z80. If I held B as per directions, it skips Z80, if I held D, it errors, asks me to hold B and hit start to continue, then I hold B and hit just start, not both start and select, it will do some test, but I don't think that's valid. Because that fails my MV1C and both my MV1B with Z80<->68k Comm. Error (data), 2 of them have audio without issue normally.

I guess now I wait for Z80 to arrive and replace that. Can't find a NEO-SDR-T anyways. It all a learning process in the end. Currently also fixing a MV2 that just arrived. :)

D + B is needed on MV1B/C (and AES) because they don't have an onboard SM1 rom. The addition of holding down the B lets the diag sp1 know it doesn't need to do the sm1 -> diag m1 swap.

Its possible 0x50 is a legit error code coming from the diag m1. There can be some weird timing issues that happens between the diag sp1/m1. Under normal conditions the diag m1 code sends 0xc3 to the 68k at the beginning of its execution, then starts running its own tests. If one of those tests fail it will then send the error code to the 68k. When the diag sp1 is at the point of doing its z80 comm test it will look for that 0xc3 byte, but its possible that byte was clobbered by the m1 error code.

0x50 diag m1 error code corresponds to YM2610 I/O ERROR.

Its also possible the 0x50 is jibberish. I would suggest trying the test multiple times and see if the ACTUAL value changes to something other then 0x50.
 
D + B is needed on MV1B/C (and AES) because they don't have an onboard SM1 rom. The addition of holding down the B lets the diag sp1 know it doesn't need to do the sm1 -> diag m1 swap.

Its possible 0x50 is a legit error code coming from the diag m1. There can be some weird timing issues that happens between the diag sp1/m1. Under normal conditions the diag m1 code sends 0xc3 to the 68k at the beginning of its execution, then starts running its own tests. If one of those tests fail it will then send the error code to the 68k. When the diag sp1 is at the point of doing its z80 comm test it will look for that 0xc3 byte, but its possible that byte was clobbered by the m1 error code.

0x50 diag m1 error code corresponds to YM2610 I/O ERROR.

Its also possible the 0x50 is jibberish. I would suggest trying the test multiple times and see if the ACTUAL value changes to something other then 0x50.

Thank you for chiming in ack. I think the D+B is just a vague direction from years ago, it should say hold D+B, instead of just hold B. I'm using smkdan's original 0.19 version. Does the new decompiled version offer better timing for Z80 test? I see "SP1+M1: Make 68k <=> Z80 communication test less finicky about timings" in the change log. But I don't know where to download the binary and I don't know how to compile from source.

So I did more tests, 20 in a row and I got consistent ACTUAL: 50 So it's probably not a temporary thing. Since I did socket the 2610, I tested 2 other 2610 from different vendors, all with the same results. As with previous tests I did, swapping the slot board around points to something on the MV1B main board being the issue. ie. socketed slot board with known good MV1B main board = pass, known good slot board with bad MV1B main board = fail.

I haven't tested the pins while the board is running, since that's a bit tricky. But z80 won't be here for a few weeks, I'll see if I can set that up.
 
Thank you for chiming in ack. I think the D+B is just a vague direction from years ago, it should say hold D+B, instead of just hold B. I'm using smkdan's original 0.19 version. Does the new decompiled version offer better timing for Z80 test? I see "SP1+M1: Make 68k <=> Z80 communication test less finicky about timings" in the change log. But I don't know where to download the binary and I don't know how to compile from source

In theory it should do better, but I haven't done much fault testing on MV1B/C boards. Here is a semi-recent build

https://www.mvs-scans.com/misc/19a00-98f9aad.zip


So I did more tests, 20 in a row and I got consistent ACTUAL: 50 So it's probably not a temporary thing. Since I did socket the 2610, I tested 2 other 2610 from different vendors, all with the same results. As with previous tests I did, swapping the slot board around points to something on the MV1B main board being the issue. ie. socketed slot board with known good MV1B main board = pass, known good slot board with bad MV1B main board = fail.

There are a couple other traces you can check between the z80 and YM2610 that aren't in your original post

Z80 PIN 16 (INT) <=> YM2610 PIN 56
Z80 PIN 26 (RST) <=> YM2610 PIN 33
 
In theory it should do better, but I haven't done much fault testing on MV1B/C boards. Here is a semi-recent build

https://www.mvs-scans.com/misc/19a00-98f9aad.zip

There are a couple other traces you can check between the z80 and YM2610 that aren't in your original post

Z80 PIN 16 (INT) <=> YM2610 PIN 56
Z80 PIN 26 (RST) <=> YM2610 PIN 33

Oooh, I'm so glad I socketed the M1! Thank you for sharing your new binaries, I burned these and ran more tests.

It seems there are 2 ways to run the Z80 tests. One is where I held B+D then power up or soft reset, this seems to be called the M1 from your text. I get the same expect and actual but updated messaging:

Z80 -> 68k COMM ISSUE (HELLO)
EXPECTED: C3
ACTUAL: 50

The other test is where I held down D, then it says for MV1B/C hold B and hit start, this is called SS3 M1. From here, I get 2 different results, if I cold start (power off then on) with D, then B, then start, I get:

Z80 -> 68k COMM ISSUE (HELLO)
EXPECTED: C3
ACTUAL: FE

But if I just soft restart then D, hit start while holding B, I get:

Z80 -> 68k COMM ISSUE (HELLO)
EXPECTED: C3
ACTUAL: FC

So there is a timing/initialization difference here.

The INT and RST continuity checked out ok.

As for your updated diagnostic bios, the SMPTE color bars is a great addition! I was going to create a monitor test cart just for these bars, now I don't have to. And being able to abort WRAM/BRAM test is very nice!
 

Attachments

  • IMG_20210403_215113276_HDR.jpg
    IMG_20210403_215113276_HDR.jpg
    140.8 KB · Views: 103
  • IMG_20210403_215211513_HDR.jpg
    IMG_20210403_215211513_HDR.jpg
    140.5 KB · Views: 137
  • IMG_20210403_215725296_HDR.jpg
    IMG_20210403_215725296_HDR.jpg
    146 KB · Views: 119
The [SS3] ones will be invalid. When you boot with only D the diag sp1 expects to be talking to the SM1 rom. It will ask the SM1 to prepare for a slot switch, which will fail since the MV1B/C don't have an SM1 rom. This results in the "Z80 SLOT SWITCH IGNORED (SM1) ... PRESS START TO CONTINUE" message. Pressing start will force a slot switch. The [SS#] in the top right indicates the diag sp1 did a slot switch to slot 3.

I'm curious if you boot without holding down any buttons does the [M1] show up in the top right?

I have a few parts boards that I can pull a z80 from and send one to you if you are interested. It would be untested, but in theory should be working ok.
 
I forced a YM2610 IO fault on my MV1B and the bios properly displays the error

IMG_0607.jpg


I reviewed the code related to this. When the diag sp1 gets an error_code from the diag m1, it will send the error_code back to the diag m1 and the diag m1 is suppose to acknowledge the error_code by sending !error_code back. If the !error_code is received the diag sp1 will print the diag m1's error_code/message as you see above, otherwise it will not print it like in your messages. So its likely the 0x50 is just jibberish from a broken z80, sorry for the run around.
 
The [SS3] ones will be invalid. When you boot with only D the diag sp1 expects to be talking to the SM1 rom. It will ask the SM1 to prepare for a slot switch, which will fail since the MV1B/C don't have an SM1 rom. This results in the "Z80 SLOT SWITCH IGNORED (SM1) ... PRESS START TO CONTINUE" message. Pressing start will force a slot switch. The [SS#] in the top right indicates the diag sp1 did a slot switch to slot 3.

I'm curious if you boot without holding down any buttons does the [M1] show up in the top right?

I have a few parts boards that I can pull a z80 from and send one to you if you are interested. It would be untested, but in theory should be working ok.

ooooh, the SS3 indicates the slot, so it's kind of like the stick movements to test different slots? I doubled checked just now without holding any buttons, it does not show M1. If you can pull a Z80 from your parts board, it would certainly be faster than from China! I would really appreciate it if you could do that. I'll PM you.

I forced a YM2610 IO fault on my MV1B and the bios properly displays the error

IMG_0607.jpg


I reviewed the code related to this. When the diag sp1 gets an error_code from the diag m1, it will send the error_code back to the diag m1 and the diag m1 is suppose to acknowledge the error_code by sending !error_code back. If the !error_code is received the diag sp1 will print the diag m1's error_code/message as you see above, otherwise it will not print it like in your messages. So its likely the 0x50 is just jibberish from a broken z80, sorry for the run around.

Thank you for checking the code on the error messaging. So my sp1 didn't get the !error_code back from diag m1 due to Z80 being bad. I'm curios, does the NEO-SDR-T play a role in any of the communications? No worries about the tests, I'd be happy to run more test scenarios if you think it can contribute to the diag rom development. More fault cases.
 
Back
Top