There are dual supply bidirectional translators like TI
TXS0108E and
TXB0108 you can use, with the B side at 5V, and A side at 3.3V.
I do prefer unidirectional/controlled-direction translators like 74LVC8T245 and variants, though. The direction auto-sensing typically causes small differences in the low level signal output, and some microcontrollers can glitch on that –– but it depends on the microcontroller logic levels and input circuitry, and is not a common problem. The unidirectional (TI TXU0
n0
m) and direction-controlled ('1T45, '2T45, '245, '8T245) don't have that. For single data lines, I
always keep some 74LVC1T45 in SOT23-6/SOT26-6/SC-74 at hand, because they're small and capable, but in a pinch hand-solderable and dead-buggable due to the 0.95mm pitch. (As in, you can solder it directly to wires, put some heatshrink on, and not have any kind of a board for a single data line, just a heatshrink bulge where the wires meet.)
I'm guessing that even though the lcd panel width is now 64px wider that the panel itself is being sent those pixels, but is just ignoring them?
I do believe so, because in the
SSD1963 datasheet (PDF), the SET_LCD_MODE command (page 46) is separate from the SET_HORI_PERIOD command (page 47), and the latter sets the display horizontal timings. (Similarly, SET_VERT_PERIOD (page 49) sets the display vertical timings.) In other words, that SET_LCD_MODE sets the SSD1963 framebuffer properties, and SET_HORI/VERT_PERIOD the timings.
Note that when reading/drawing a cursor or similar, you should use the SET_PARTIAL_AREA command, so you only need to handle the affected rectangular area within the framebuffer in a single continuous transfer.