Using PCD8544 with color oled and display buffer advice for gaming library

I’m in the process of updating a gaming library that allows anyone to easily build and play color 16-bit games.

I’m getting pretty close but the original library uses pcd8544 drivers for the Nokia 5110. I don’t know anything much about it but I do know it also works with a Nokia color screen of the same size. It looks to me like it’s setting some address for some const byte or something needed by the buffer.

I only have one command in the new library that was transferred from the original library that uses the pcd544. And that would be the update buffer function.

I’m wondering if I can use this command with my new library?

Also the buffer is to 512bytes for the monochrome screen and I know I will need to a lot more memory for color but how much. My MCU is a teensy 3.2 with 256kflash and a 32-bit processor. There’s no way I can go all 32 bits but I can do 16 bits fine.

So how much memory can I lot to the frame buffer. I saw somewhere where I needed to double it by could easily triple it. Any advice on what to do about that.

here is the update function

void Display::update(void) {
	frameCount ++;
    uint8_t col, maxcol, p;

    for (p = 0; p < 6; p++) {

        command(PCD8544_SETYADDR | p);

        // start at the beginning of the row
        col = 0;
        maxcol = LCDWIDTH_NOROT - 1;

        command(PCD8544_SETXADDR | col);

        digitalWrite(_wr, HIGH);
        if (_cs > 0)
            digitalWrite(_cs, LOW);
        for (; col <= maxcol; col++) {
            SPI.transfer(_displayBuffer[(LCDWIDTH_NOROT * p) + col]);
        }

        if (_cs > 0)
            digitalWrite(_cs, HIGH);

    }

    command(PCD8544_SETYADDR); // no idea why this is necessary but it is to finish the last byte?
}