I've successfully flashed Marlin 1.1.9 onto a Melzi v3.5 board (the stock board for my Monoprice Maker Select v2 (v2.1?, a white-labelled Wanhao i3 Duplicator).
Initially after the flash succeeded the LCD displayed was "garbled". The right side, in particular, had lots of pixels out of place. I was able to resolve this by experimenting with some delay variables. Prior to the flash the LCD was 100 % working; to my knowledge no damage happened while I had the machine apart.
Here's my changes to Configuration.h
from Marlin 1.1.9, excluding anything to do with X/Y/Z/E, etc (irrelevant stuff).
#define MOTHERBOARD BOARD_MELZI
#define SDSUPPORT
#define REVERSE_ENCODER_DIRECTION
//
// LCD for Melzi Card with Graphical LCD
//
#define LCD_FOR_MELZI
// Increase delays to fix garbled LCD
#define ST7920_DELAY_1 DELAY_NS(0)
#define ST7920_DELAY_2 DELAY_NS(100)
#define ST7920_DELAY_3 DELAY_NS(200)
The display is much better, however there are about 4x rows of pixels through center of the display running left to right that mostly don't display. There are little sections--perhaps 20x pixels (maybe 3%) that do appear to be displaying.
Here's a photo of the problem:
Are there any other typical culprits? Based on what I've read it sounds like this is a recent(ish) issue with Marlin, and perhaps would be solved with an older version or a different firmware.
Here's a photo, if you look closely you can see the 'dead' rows, with about 6x pixels work
PS. While troubleshooting I added shielding to the LCD's ribbon cable (foil wrapping the cable, grounded, and wrapped with electrical tape). It didn't help, but I left it on.