tomcw / mb-audit

8 stars 1 forks source link

Tone test not working for first card with MB C & S/SI combo #2

Closed robjustice closed 3 years ago

robjustice commented 3 years ago

With a Mockingboard C and a Sound Speech I installed at the same time. The detection works correctly and the multi card tests pass. When mb-audit gets to the tone test, the tone test does not work for the card in the highest slot. It does work ok for the next card. If I swap the cards around, the card in the highest slot is always the one that does not work.

This work ok in AppleWin with its MB C pair, so feels like its something to do with the S/SI and MB C combo. I have another MB A, but its failing the 6522 test 10 (10:00:00) so can't test this with another combo at the moment.

tested with v0.4-beta.

Sorry, this is a bit of an edge case, but had me puzzled for awhile when trying the tone tests until I worked out what was happening.

tomcw commented 3 years ago

Hi @robjustice - I'd forgotten to set the correct card base: so for the tone tests, it was always using the card in the lowest slot! Anyway fixed here.

tomcw commented 3 years ago

btw...

I have another MB A, but its failing the 6522 test 10 (10:00:00)

This means it's failing in the Check6522Datalines test: https://github.com/tomcw/mb-audit/blob/439786aac4daa8098a3ab31c13999835be18b8fa/chip-6522.a#L205

I really need to extend the error report to describe why it's failing.

But you can probably just inspect both 6522's registers, eg: (for a card in slot-4) *C402.C403 N C482.C483

You may want to cross-reference with the test code, but depending on the loop it's either written $55,$AA,$96,$69 or $AA,$55,$69,$96. But given the error, then one (or more) values will read back incorrectly.

robjustice commented 3 years ago

I've tested v0.5-beta and its working great for the tone test with multi card. I had my headphone plugged into each card directly when testing, so that explains why I bumped into this one.

For the MB A VIA problem, that one looks like the VIA's on it are faulty. If I manually write FF into DDRB and then read back, i get DF. For DDRA writing FF and reading I get FF. This is identical for both VIAs (DDRB reads DF when FF is written). Its not affecting the card, seems to work fine with games that use it. The VIA's are soldering directly into the board, otherwise I would pop them into the other card to try. So this looks like an actual HW issue.

tomcw commented 3 years ago

That's great that the tone test is working in your multi card environment now, so I will close this issue.

re. MB A VIA / DDRB issue

Its not affecting the card, seems to work fine with games that use it.

You are lucky in that DDRB only needs bits 2,1,0 to work as outputs: it gets set to $07, and is used to set the state of the AY-3-8913 (eg. SELECT, WRITE, READ, INACTIVE). Maybe I should just warn (but not error out) if these unused top 5 bits are faulty.