ThorstenBr / A2DVI-Firmware

Firmware project for the Apple II A2DVI digital video card
MIT License
9 stars 2 forks source link

Feature request: Use Alt-Charset input to change color mode between monochrome and color decoding #10

Open misterblack1 opened 1 day ago

misterblack1 commented 1 day ago

I often run across Apple II apps that are using graphics but were designed for monochrome displays, so being able to quickly turn off color decoding via a toggle switch would be super helpful. Not having to go into the configuration program every time would be really nice.

Another idea: Allow for auto detection of programs that work better in monochrome mode by allowing a user to specify a sequence of several bytes that could match when software gets loaded into RAM which will then flip the A2DVI into monochrome mode where it'll stay that way until the next reset.

Or perhaps use the Alt-Char input with a button attached as a "grab" or "capture"function, which will checksum whatever is on screen (like while a program is loading) to then use that as the memory for future monochrome mode switches. Perhaps with a few slots in the config program?

ThorstenBr commented 1 day ago

Some programs use a register ($C021) to switch between color/monochrome. For example, A2Desktop, uses this to enforce monochrome. But many older programs do not use this feature, and manual control is also nice, of course.

I'm think about one idea to improve the behavior for the toggle switch: US users usually don't need the language rocker switch, so for them the switch input could indeed be configured to become a color/monochrome switch.

And for European machines I could support a combination of both: the switch normally toggles just the character set. But quickly rocking the switch back and forth toggles between color/monochrome. So the switch would get additional functionality. That would be easy to add.

Automatic detection is also possible - but obviously requires more effort: both, for the implementation and for the user who wants to configure this for a specific program.