Four bits-per-pixel format is generally a palettized format. The frame buffer itself can be implemented either as two pixels packed into each byte, or as one pixel per byte. Memory for format can be arranged like this:
If you choose to implement just one pixel per byte, the driver should represent the display mode as eight bits per pixel with a 16 color palette. the relevant bits in each byte should be the low-order nibble, while the high-order nibble should always be zero. See Five or Six Bits-Per-Pixel Format for more information on formats in which single pixels do not fill entire bytes. For best results, you can use the standard Windows CE 16 color palette: