private void generateTables() {
        int shift = 0;

    /* Apanhei pra conseguir escrever as fórmulas certas xD */
        for (int v_tile = 0; v_tile < 30; v_tile++) {
            for (int h_tile = 0; h_tile < 32; h_tile++) {
                int tile_pos = (v_tile * 32) + h_tile;
                int h_pos = (h_tile >> 2);
                int v_pos = (v_tile >> 2);

                attributeAddr[tile_pos] = h_pos + (v_pos * 8);

                if (((v_tile >> 1) & 1) != 0) {
                    if (((h_tile >> 1) & 1) != 0)
                        shift = 6;
                    else
                        shift = 4;
                } else {
                    if (((h_tile >> 1) & 1) != 0)
                        shift = 2;
                    else
                        shift = 0;
                }

                attributeBit[tile_pos] = shift;
            }
        }
    }