I did work a lot on this project, mainly to minimize the number of modifications needed on the slot.
After many tries (I won't give all the details here, it would be too long) I managed to reduce the modification in the slot to 4 lifted pins and 8 wires to solder, then 3 pins and 6 wires to solder and finally 2 lifted pins and 4 wires to solder!
1) How it works?
Basically we have to deal with 2 NEO-ZMC2 chips (or 1 ZMC2 and 1 PRO-CT0 for older slots) so the idea was to use the one in the AES cartridge for decoding and make the second one on the MVS board "transparent". However in order to reduce the amount of modifications in the slot I've split functionalities between the 2 chips.
So the chip in the AES cartridge does the decoding EXCEPT the A/B pixels swapping. Horizontal mirroring via the H signal is maintained.
The chip on the MVS board does the A/B pixels swapping only.
2) The trick
Yes there's a trick. Signals GAD0 to GAD3 and GBD0 to GBD3 from the AES cartridge are wired as follow:
- GAD0: CR0
- GAD1: CR8
- GAD2: CR16
- GAD3: CR24
- GBD0: CR1
- GBD1: CR9
- GBD2: CR17
- GBD3: CR25
All the other CR signals are left unconnected. LOAD and H signals come from the MVS board. EVEN is grounded (A/B pixels swapping disabled).
The trick is to trigger CR signals 4 times on the MVS side during a normal 3Mhz cycle. The ZMC2 in the AES cartridge will just provide pixel data in a serial way always on the same CR pins on the MVS side. Therefore we need to reset the data latch on the MVS side each time new pixels are decoded.
First cycle: CR0/CR8/CR16/CR24/CR1/CR9/CR17/CR25 are decoded and available through CR0/CR8/CR16/CR24/CR1/CR9/CR17/CR25 on the MVS side
Second cycle: CR2/CR10/CR18/CR26/CR3/CR11/CR19/CR27 are decoded and available through CR0/CR8/CR16/CR24/CR1/CR9/CR17/CR25 on the MVS side
Third cycle: CR4/CR12/CR20/CR28/CR5/CR13/CR21/CR29 are decoded and available through CR0/CR8/CR16/CR24/CR1/CR9/CR17/CR25 on the MVS side
Fourth cycle: CR6/CR14/CR22/CR30/CR7/CR15/CR23/CR31 are decoded and available through CR0/CR8/CR16/CR24/CR1/CR9/CR17/CR25 on the MVS side
I've just used the 12M signal as the LOAD signals on the MVS side and it works almost perfectly (see 4)Drawbacks).
View attachment 34562
3) Schematics:
I used a 74LS157 to redirect signals either in their original configuration or modified for the converter. The selection signal I used is SLOTCS which goes low when the slot is selected. Thus you can use the adapter in any slot. When adapter is removed, simply use a termination connector (connects pads to pins in the MVS just as the original wiring).
4) Drawbacks:
Unfortunately this isn't 100% perfect. There are few graphic glitches which, I think, are due to the fact I simply used the 12M signal to feed the LOAD on the MVS. I will make more tries to see if I can fix it (delaying the signals by 1/4 of a cycle, etc.).
Still I'm happy with the result as it needs few modifications on the slot (2 pins lifted, 4 wires to solder).