News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_SerErris

AY-3-8912 hardware emulator replacement

Started by SerErris, 21:20, 05 September 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SerErris

Some more pics:

Mainboard with modifications and before I removed them, Mainboard with the VRetro Chip in the socket. and the back side chips with more visible detail.
You cannot view this attachment.
You cannot view this attachment.
You cannot view this attachment.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

SerErris

Here are the sound examples.

put in my AY3test.bas (the first two tracks) to be able to compare both and then the logon demo from 2017 with both versions and a version where I switch in between both. It is hard to recognize the difference. You tell me, what you hear.

Yes there is a difference and I can hear it, but I do not want to Bias you.

https://soundcloud.com/christoph-linden/sets/cpc-ay3-clone-tests?si=689a384ac2f347dc947069098a6c469c&utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing

Also it looks like there is another issue with the chip.

When I use my basic program and the program ends, it has data in the keyboard input buffer, that should not exist as I am obviously not typing anything. It is also every time the exact data coming out.

That is strange. Something to follow up with the developer.

Under Basic it is also not stable ... It delivers different results every time. By chance the recording has a pretty decent run .. but it can deliver all kind of beeps and blips.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

vRetro

Hi All,

First an introduction. I'm Charlie Ingley (vRetro Design in New Zealand: https://vretrodesign.com) and make (amongst other things - mainly ULA replacements for Sinclair machines)  the AY-3-8912 replacement. I understand that SerErris is having a few issues with the chip and I'll be working with him to understand more fully what the problem is and find a solution.  Before release, the AY3 replacement was tested extensively across both Amstrad and Sinclair variants but there will always be some unforseen situations that can prompt odd behaviour.  Testing the full capabilities of these clone devices is a difficult task and I appreciate any feedback especially if it leads to a more robust and compatible product.

Always happy to answer any questions about the things I develop.

Charlie   

genesis8

Quote from: vRetro on 23:56, 06 October 23Hi All,

First an introduction. I'm Charlie Ingley (vRetro Design in New Zealand: https://vretrodesign.com) and make (amongst other things - mainly ULA replacements for Sinclair machines)  the AY-3-8912 replacement. I understand that SerErris is having a few issues with the chip and I'll be working with him to understand more fully what the problem is and find a solution.  Before release, the AY3 replacement was tested extensively across both Amstrad and Sinclair variants but there will always be some unforseen situations that can prompt odd behaviour.  Testing the full capabilities of these clone devices is a difficult task and I appreciate any feedback especially if it leads to a more robust and compatible product.

Always happy to answer any questions about the things I develop.

Charlie 
Hi,

nice to have you here, and thanks for your help. I was just going to write about your AY replacement on my Amstrad CPC web site :-)


____________
Amstrad news site at Genesis8 Amstrad Page

SerErris

Quote from: vRetro on 23:56, 06 October 23Hi All,

First an introduction. I'm Charlie Ingley (vRetro Design in New Zealand: https://vretrodesign.com) and make (amongst other things - mainly ULA replacements for Sinclair machines)  the AY-3-8912 replacement. I understand that SerErris is having a few issues with the chip and I'll be working with him to understand more fully what the problem is and find a solution.  Before release, the AY3 replacement was tested extensively across both Amstrad and Sinclair variants but there will always be some unforseen situations that can prompt odd behaviour.  Testing the full capabilities of these clone devices is a difficult task and I appreciate any feedback especially if it leads to a more robust and compatible product.

Always happy to answer any questions about the things I develop.

Charlie 

After some great input from Charlie I desoldered another AY3 from one of my other 464s. It has the same board and pretty much the same chips. Anyhow there is not a lot between the AY3 and the 8255.

And surprise surprise, the AYC (Clone) works correctly on my CPC-B. CPC-A does print a set of characters (actually the same as you put no AY3 in the socket at all) on random ocasion and also has sound glitches.

We are still analysing of what is different between both CPCs. Both work fine with an Original AY3 and even CPC-A (the first I tested) works with both AY3s I now have. But it does not work with the AYC.

@Bryce, do you have any idea on what could cause the AY to glitch in a way that the CPC interprets the datalines the same way as it would not be socketed at all?

AFAIK the only thing that the 8255 looks at are the 8 data lines from the AY. If nothing is connected, why will it give this kind of output?
You cannot view this attachment.

That is btw. just the BASIC interpretation of the output.

I have written a Testscript that is checking the input from the keyboard and prints it in hex form.

So it is always the exact pattern .. Any idea what would cause this pattern?

You cannot view this attachment.

Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

SkulleateR

#30
Maybe it's the same issue as with the 8910 + pcb adapter in a CPC6128 ?

If you replace the 8912 with a 8910 + adapter there, you need to solder in the resistor network below the chip to get this to work :)

SerErris

I would think, that this is different

Keyboard input is working, which it would not without the pull downs
Also it works in one 464 erfectly fine, but has quirks in another
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

darkhalf

Potentially inputs have some after key press ripples on the input lines. If you monitor with a scope you may see this. Note AY8912 GE version has internal pull resistors. Perhaps the pull-ups are required to remove ripples
CPC464/GT64, CPC464 Plus/CTM640, 2 x CPC6128/CTM644

robcfg

Wouldn't it be the same that happens with AY-3-8912 and AY-3_8912A chips usually found on the Plus series machines?

That's why these machines have a resistor array by the sound chip.

SkulleateR

Quote from: robcfg on 09:03, 11 October 23Wouldn't it be the same that happens with AY-3-8912 and AY-3_8912A chips usually found on the Plus series machines?

That's why these machines have a resistor array by the sound chip.
That's what I was talking about ;) Same applies to the 8910+Adapter ... no Pull-Ups -> Garbage letters on screen ...

SerErris

Okay, the keyboard "ripple" has nothing to do with Pullups. The pullups are required to identify a key press. Key press means the line goes low. As it is disconnected without any key pressed, it can only get high with the pull up.

So without pullup it would not work at all, as the line would be floating.

However the symptom is exactly this.

So if you do not place any AY in the socket, you get the exact same strange keyboard output.

So it looks like the lines are actually floating at the point when the 8255 reads from the AY. That does not mean that any line on the data input port of the AY is floating. It just means, that the AY has not connected the line to the bus, and is floating. 

I suspecting the BC1 and BDIR lines to be not as stable. What is surprising me, that it works on one CPC and not on another, which actually have the same exact chips in both places (actually those that are relevant). 

I now put out the big weapons and check BC1 BDIR with OSC and the whole thing with a logic analyzer to understand what is going on.

From protocoll level how it should work:
As long as I do not press any character, I should get FF as the byte value for the input register of the AY, that should be output to the DataLines on requesting R14 value with BDIR = read.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

SerErris

Okay, it looks like a timing issue. The AVR is just to fast for the old timings of the CPC.

VRetro is working on a patch.

The issue is with recognizing BC1 and BDIR lines. The both go up, when you want to select a register. In my CPC BC1 goes high between 5-10 ns before BDIR which is then interpreted as READ command instead of the supposed REG SELECT.

So what should be written goes to the wrong register and if we want to read from a register, that will return whatever register has been selected before.

Next testing will be with updated (less tight) timings
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

SerErris

Finally,

lets close this out.

vRetro has update the firmware of the AY-3-Clone with more releaxed timings now and this works brilliant in all my CPCs.

So this is really a good replacement to the every shrinking amount of working AY-3s. It is also pretty much accurate. I could not hear any difference in voice or envelopes or anything alike. The only one difference is that the noise frequency is slightly brighter than the original one. But that is so close that even I knowing about it have a hard time to identify it in the changing stream.

So all in all, well done works perfectly now.

Regards
Ser
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

Rabs

Received my AY replacement. Inserted into a 6128 and works great. Can't tell any difference but only limited testing at moment. Ran a few games 'Adams  Family' etc and the sound is great. Well done @vRetro and thanks.

SerErris

That is also my experience, you cannot tell the difference. The noise frequency might be also my single AY-3 as there may be some tolerances. 

The replacement will have much lower tolerances than anything produced back in the day.

But from the sound, there is literally nothing I can make out that sounds different.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

Powered by SMFPacks Menu Editor Mod