Dynamically modify a Map
Posted: Thu Mar 31, 2022 1:06 pm
Hi.
How can modify a Map?
I want to add tiles on plan A and scroll it, but when I add a tile it disapear after scroll.
I need to modify bga Map.
How can modify a Map?
I want to add tiles on plan A and scroll it, but when I add a tile it disapear after scroll.
I need to modify bga Map.
Code: Select all
Map *bgb;
Map *bga;
ind = TILE_USERINDEX;
KLog_S1("ind", ind);
bgBaseTileIndex[BG_A] = ind;
VDP_loadTileSet(&bga_tileset, ind, CPU);
ind += bga_tileset.numTile;
KLog_S1("ind2", ind);
bgBaseTileIndex[BG_B] = ind;
VDP_loadTileSet(&bgb_tileset, ind, CPU);
ind += bgb_tileset.numTile;
//Want to modify bga MAP bellow
bga = MAP_create(&bga_map, BG_A, TILE_ATTR_FULL(0, FALSE, FALSE, FALSE, bgBaseTileIndex[BG_A]));
bgb = MAP_create(&bgb_map, BG_B, TILE_ATTR_FULL(0, FALSE, FALSE, FALSE, bgBaseTileIndex[BG_B]));
MAP_scrollTo(bga, 0, 0);
SYS_doVBlankProcess();//Needed
MAP_scrollTo(bgb, 0, 0);
//ADD 2 x 2 tile
VDP_loadTileSet(barrel_tile.tileset, ind, DMA_QUEUE);
mapA = unpackTileMap(barrel_tile.tilemap, NULL);
VDP_setTileMapEx(BG_A, mapA, TILE_ATTR_FULL(PAL2, FALSE, FALSE, FALSE, ind), 16, 16, 0, 0, 2, 2, DMA_QUEUE);
ind += barrel_tile.tileset->numTile;
MEM_free(mapA);