V2RetroComputing / analog

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

Video-7/AppleColor RGB Mode support #7

Closed inexorabletash closed 1 year ago

inexorabletash commented 1 year ago

The doc site is down (?) so I can't verify, but per Adrian's video there's a screenshot of https://a2desktop.com/ showing DHGR color fringing.

As an active developer on that, I wanted to pop by and comment that even going back to the original 1980s releases by VersionSoft, the MouseDesk a.k.a. Apple II DeskTop software supports the Video-7/AppleColor RGB/Le Chat Mauve Feline DHGR mode controls. The modes are activated by loading a bit into 80COL and then turning AN3 off/on to shift the bit into a 2-bit register.

There's also weird Mode 3 (shift in 0 then 1), where the otherwise unused high bits of each DHGR byte set the output to monochrome (0) or color (1). This is detailed in the Video-7 RGB manual or Apple's "Extended 80-Column Text/AppleColor Adaptor Card" manual - they all follow the same protocol.

MouseDesk/Desktop and a few other software titles will automatically switch the system into monochrome mode using the above sequence. I've added support to ensure that A2Desktop restores color mode on exit, and the image preview capability lets you toggle modes by hitting the spacebar.

It would be awesome if the ∀2 Retro Computing Analog VGA Card could support at least the mono/color control switch. My apologies if this support is already present - again, the site appears down.

inexorabletash commented 1 year ago

Peeking at the source, I see $C021 is hooked up to emulate the IIgs's MONOCOLOR switch, which is nice. (IIe software won't be using that, though. So Video-7-compatible support would be appreciated!)

Also the IIgs is quirky. MONOCOLOR only affects the machine's composite output. The RGB port's output of DHGR can be switched to B&W using bit 5 of NEWVIDEO ($C029). So good IIgs software should twiddle both because who know what kind of monitor the user has. For your project's VGA output, you'll probably have to decide how to handle the two switches being out of sync. (I don't know which was more common for developers to think about for the strange DHGR-on-IIgs case, but I suspect NEWVIDEO.)

dkgrizzly commented 1 year ago

Thanks, I'll look into adding this.

inexorabletash commented 1 year ago

Cool! You may want to make it a config option though - there is the occasional piece of software that triggers a mode switch accidentally, since the hardware was not terribly common back in the day and so testing was limited.

misterblack1 commented 1 year ago

Oh this sounds really cool. I was unaware the MouseDesk used that Video7 bit like that.

dkgrizzly commented 1 year ago

Working on implementing the Video 7 stuff, I have some of the features implemented, I'll probably hold off on most of the other DHGR modes. One thing I want to do differently from them is 80 column F/B mode as well. I might make this it's own config option as for enabling it or not. The monochrome DHGR mode, F/B 40-column text, and F/B 80-column text (using page 2 & aux page 2 for the colors) are implemented now and will be pushed by this weekend. image This is a fun work-in-progress as I was implementing the 40-column F/B text mode before reading through the video-7 manual.

dkgrizzly commented 1 year ago

I was about to write an update about how F/B hires has been kicking my butt today. But I have gotten it down to all but the mixed B&W/RGB mode implemented. 560test fbmixed 160x192test colortext

dkgrizzly commented 1 year ago

https://github.com/V2RetroComputing/analog/releases/tag/20230502 has been released with the Video-7 feature. Mixed B&W/RGB remains to be implemented.

inexorabletash commented 1 year ago

Awesome! I just added myself to the waitlist on Tindie. I hope this proved to be a fun project.

The Video-7 demos should validate everything, but if you try out A2Desktop again it'd make a good test too: