GideonZ / 1541ultimate

Official GIT archive of 1541 ultimate II sources
GNU General Public License v3.0
181 stars 46 forks source link

SX-64 NTSC 1541U2+ opening menu video corruption #373

Open SX64man opened 1 year ago

SX64man commented 1 year ago

Note: this is NOT an issue or shortcoming of the 1541U2+ but more a SX-64 issue.

Some NTSC SX-64s (not sure about Pal systems) have difficulty in producing the dma delivered opening menu of the 1541U2+ and (L) variants, without garbled characters or a black or corrupt screen. However, the 1541U2+ runs perfectly on these systems and can be operated and verified through telnet into the 1541U2+

Contributory factors to the SX-64 menu corruption are thought to be most likely due to:

  1. Weak rise on phi2 due to the expansion port long cable run/connector assembly. However, I have replaced the entire assembly, including the expansion pcboard, with a complete different assembly using a shorter cable, and that did not help significantly in delivering a non-corrupt opening screen.
  2. Possible noise on the system, and in particular in the expansion port, as a result of the SX-64s switching power supply.

I have included below some scope images of my SX-64, as an aid into possibly setting up a firmware buffering solution on the 1541U2+.

Update: A hardware solution buffering phi2 at the 6510 CPU has proved completely effective (more details once hardware has been finalized and receives hardware creator approval). However, without a hardware buffer, at this time, no solution from 1541U2+ menu settings seems reliable (and may never be on some these problematic NTSC SX-64s).

On my SX-64 (YMMV) the closest best settings for the opening 1541U2+ menu are: 1541U2+ (phi2): 128ns, (phi1): 192ns, phi2 edge recovery ENABLED 1541U2+L (phi2): 140ns, (phi1): 200ns, phi2 edge recovery ENABLED

Please excuse novice at the helm of the scope in the images below, SX64man

SX64man commented 1 year ago

SX-64 Phi 2 images with corrupted 1541U2+ menu:

Phi2 channel 1 measurements (with phi0 channel 2): (https://github.com/GideonZ/1541ultimate/assets/144634808/10ba8820-d225-4f53-a171-98c46dbc0daf)

Phi2 (with channel 2 phi 0 measurements): (https://github.com/GideonZ/1541ultimate/assets/144634808/64321b96-ba4a-4fd4-9688-1f4742c8538b)

phi2 channel 1 measurement vs. RAS. 6567 pin18: (https://github.com/GideonZ/1541ultimate/assets/144634808/ab0b9e37-69ec-4759-a787-560de5ba8687)

phi 2 vs RAS channel 2 measurement: (https://github.com/GideonZ/1541ultimate/assets/144634808/902cf8f1-491c-4bda-944b-ff2d3c92d7d6)

phi2 channel 1 measurement vs. CAS 6567 pin19: (https://github.com/GideonZ/1541ultimate/assets/144634808/e4d6ff4d-4806-4603-acea-bd9d411ee1b0)

phi2 vs CAS channel 2 measurement: (https://github.com/GideonZ/1541ultimate/assets/144634808/e5e2138e-e9c1-4aec-9c1c-baf3e4e28341)

phi2 and phi0 this time with the 1541U2+L running (black screen). phi2 taken at sid6 and phi0 vic17: (https://github.com/GideonZ/1541ultimate/assets/144634808/d29bd59c-e976-4614-9b4a-b91933cf5a59)

same as above - zoomed in: (https://github.com/GideonZ/1541ultimate/assets/144634808/39e81bc9-6e06-43ea-beb2-8b8df195c0f3)

cas vs. ras: (https://github.com/GideonZ/1541ultimate/assets/144634808/2e977e3f-a543-4494-a82f-a81ca24e1ff9)

Phi2 (ch.1) with dma (ch2) invoked on 1541U2+L menu: (https://github.com/GideonZ/1541ultimate/assets/144634808/fc904678-4d8b-42ed-9b1d-e38f670c3a31)

Phi2/Phi0 before hardware buffer on 6510: (https://github.com/GideonZ/1541ultimate/assets/144634808/4f6b45fd-22b0-44ec-9ecd-492553bb3e44)

Phi2/Phi0 after installation of hardware buffer on 6510 - with successful 1541U2+ menu: (https://github.com/GideonZ/1541ultimate/assets/144634808/fd1ff691-7819-43f3-b5bf-fd6754568db1)

Phi 2 zoom after installation of hardware buffer on 6510: (https://github.com/GideonZ/1541ultimate/assets/144634808/35ebc97a-befb-4c97-89f4-0c6895ec3839)

SX64man

SX64man commented 1 year ago

Issue for me was finally resolved on my SX-64 by installing a hardware buffer of the phi_2 line at the 6510 CPU socket of the SX-64.
1541U2+L is now fully working with no menu screen corruption.

megatech1966 commented 1 year ago

Hello. I am getting a simular problem with my C128 (pal) see https://github.com/GideonZ/ultimate_releases/issues/36

retr0bill commented 12 months ago

I have the same corrupt video on my SX-64. Are we any closer to getting that hardware fix?

Thanks for all the hard work!

cybern0id commented 10 months ago

My PAL SX-64 with U1541-II (non plus version) works fine with PHI1 and PHI2 recovery set to 200ns and PHI2 edge recovery set to enable. Have very occasionally had screen corruption but this is usually fixed by cleaning both cart port slot connector and the U1541-II cart edge with de-oxit or similar. Also, my SX-64 has a ferrite ring around the internal ribbon cable - not sure if that was standard or a Commodore revision for later serial numbers? edit: I must have imagined the ferrite ring or I'm thinking of the keyboard cable strain relief.

GideonZ commented 10 months ago

@cybern0id : It is a common misunderstanding that the PHI2/PHI1 settings have anything to do with this. The PHI2/PHI1 settings determine the timing for serving cartridges. The garbled menu characters are related to the cartridge master timing, thus when the Ultimate is acting like the CPU on the address/data bus. The only parameter that has influence on this is the 'PHI2 edge recovery', which is a more general setting.

It has been shown already by Joeri (and his friends?) that the PHI2 signal in the SX-64 is very bad and that buffering it on the CPU socket will solve all the issues with the Ultimate. We are going to measure different boards using the cartridge itself to see the PHI2 behavior, to see if we can improve the edge recovery algorithm.

cybern0id commented 10 months ago

Apologies for the misconception and noise. My only defence is I assumed changing the timings helped because it fixed my issues but I also cleaned the edge connector at the same time when troubleshooting so it must have been that 🤦‍♂️

GideonZ commented 10 months ago

There is also a chance that I am wrong myself. I just wouldn't expect it to have any influence. :-) What often happens is that people make more changes at the same time and then test again. I do this all the time when debugging, which often makes me draw wrong conclusions. I have to be diligent and control myself to change only ONE thing at a time when I am looking for a root cause. Feel free to leave the cartridge in its spot, 1) disable carts, test again, and then 2) change the PHI2 timing setting back to 80 ns and see if the garbled characters return.