keirf / flashfloppy-osd

On Screen Display and keyboard controller for FlashFloppy
The Unlicense
57 stars 15 forks source link

Vga, SPI1, display enable, double height and auto sync #23

Closed penfold42 closed 4 years ago

penfold42 commented 4 years ago

This builds on the previous PR #22 Not sure if your workflow or where you got to with the previous PR

Add option for display output enable

Add option for double height display

Add autodetection of sync frequency

Defaults are unchanged - 15kHZ timing, spi2, dispctl_tristate

Support VGA timing and support for faster SPI1 bus

config menu for spi bus and pixel clock Amiga keys

WASD to move up/down/left/right OSD offsets keypad ( ) for VGA/15kHz timing keypad + - for sync polarity Added SAVE+RESET to config menu

default to this if SPI has changed Factory default now does a reset

keirf commented 4 years ago

What is the default treatment of SPI and frequency when switching between VGA and 15khz? Is it no change (ie May get a too wide OSD box when switching to vga) or do you auto double frequency or something?

penfold42 commented 4 years ago

I leave the SPI bus alone but change SPI frequency and sync polarity

/ PAL/NTSC / config.display_timing = DISP_15KHZ; config.polarity = FALSE;

/ VGA / config.display_timing = DISP_VGA; config.polarity = TRUE;

keirf commented 4 years ago

Is text width (spi freq) configurable?

penfold42 commented 4 years ago

Yes - that’s what the vga and 15kHz modes do.

With SPI2 they select 18MHz and 9MHz pixel clocks With SPI1 they select 36MHz and 9MHz pixel clocks

Any finer grain controls would need either horrible changes to the PLL or the use of an external oscillator and SPI slave mode and some nasty jitter fixing