V2RetroComputing / analog

∀2 Analog VGA card for the Apple II computer line
MIT License
125 stars 18 forks source link

Issues on my II+ with the latest firmware (corruption) #17

Open misterblack1 opened 1 year ago

misterblack1 commented 1 year ago

David, looks like the latest May 2 firmware has some issues on my Apple II+. I tried both the 4ns and 8ns Wifi version after doing preloader (what's the difference between 4 and 8?)

It always boots up with garbage at startup -- but sometimes it's completely corrupted -- watch the video below and I demonstrate. Usually after a cold power-up it is completely corrupted and takes a few power cycles to get it working.

https://youtu.be/ypGwAG6RufI

I may also be doing something wrong, but the font selection isn't working -- it just always uses the default font. I also tried the colors (from the config program) to no avail. Perhaps I'm doing something wrong?

dkgrizzly commented 1 year ago

The 4ns version overclocks the RP2040 to 252MHz instead of the 126MHz that is used for the 8ns version. This should be safe with no extra cooling needed on most units, very few RP2040 chips may be unstable at the faster speed.

As for the startup being missed, I am guessing the current arrangement for loading the firmware into RAM is too slow for stock II+ and unenhanced IIes. I'll have to go back and change some things to try and resolve that.

I started copying the firmware to RAM because of how the RP2040 does writes to flash can crash the whole chip if anything else touches flash (such as running code or reading data). I moved all the code to RAM and load it in two sections. At first I tried copying it all in one go using the stock copy_to_ram link script, but that caused the behavior you are seeing now on the test systems I have here. I thought the two-step copy had fixed it for all systems but apparently not.

I may go back to leaving the system libs in flash and only copying the critical functions over, and see if the code that disables the video output during flash operations is enough to prevent the crashes I was seeing previously when uploading fonts or configs.

The missing writes shown in your video I have very rarely seen before where the bus monitoring does not sync up without either several resets or a power cycle. I will have to look at tweaks to the cycle times in the PIO code.

For now I'm retagging that release as experimental due to the issues reported.

misterblack1 commented 1 year ago

Ok great I'll go back to the old version -- your old firmware also missed the initial writes sometimes on the II+ - but it would just show the V2 splash screen instead until something wrote to the screen like the ProDOS splash screen or hitting control reset. It never got corrupted and missed writes.

Any reason to prefer the 4ns version over the 8ns one on the 8-bit machines? (Non IIgs)

I also noticed other issues with fonts and high-res mode. (I emailed you about it.) It's all probably stuff you know about...

dkgrizzly commented 1 year ago

The 4ns version has more margin for responding to the Apple II's reads and writes. It also gives enough time to implement the 80 column terminal emulation on the RP2040, and the attempts at better DHGR rendering I'm trying to do.