meta tiles?
meta tiles?
ok so i heard something about meta tiles but it's not completely clear to me: are meta tiles groups of 8x8 tiles. i want to use 16x16 tiles , are meta tiles the solution then? and if so, how do they work on the ds? because the ds expects 8x8 tiles if i'm right?
Re: meta tiles?
well, you pretty much said the awnser yourself.
the ds hardware needs the tiles to be 8*8 pixels, so if you want tiles of 16*16 pixels, you would create a 16*16 metatile that is made up from 4 8*8 'normal' tiles.
as for using them, I'm pretty sure that programs like grit has options for converting metatiles.
the ds hardware needs the tiles to be 8*8 pixels, so if you want tiles of 16*16 pixels, you would create a 16*16 metatile that is made up from 4 8*8 'normal' tiles.
as for using them, I'm pretty sure that programs like grit has options for converting metatiles.
Re: meta tiles?
ok i will test that option and look into the files that i will get.
edit: ok so i tested the functions and looked into the .c file of the output this is what i get:
"normal 8x8 tiles"
meta tiles
meta map
and a palette,
but now if i want to load this background how should i do that? because the ds expect 8x8 tiles and no 16x16 so i load the 8x8 tiles into memory and then?
edit: ok so i tested the functions and looked into the .c file of the output this is what i get:
"normal 8x8 tiles"
meta tiles
meta map
and a palette,
but now if i want to load this background how should i do that? because the ds expect 8x8 tiles and no 16x16 so i load the 8x8 tiles into memory and then?
Last edited by Tomdev on Tue Jun 01, 2010 4:58 pm, edited 1 time in total.
Re: meta tiles?
I'm having the same problem, my tiles are 16x16 - I'll change the size, but I'm trying to do it with this dimensions first -, so in grit I left this options:
# Tile format
-gt
# Set the bit depth to 16
-gB8
# Set the transparent color to 00FFFF (rrggbb hex)
-gT 00FFFF
# Add Map
-m
-Mh4
-Mw4
and in the code I'm doing this:
But I'm getting some really extrange results, first of all, the 00FFFF color is not transparent, and the images are wrong . If you fond the answer, please let me know ... Not even google was able to help me :S
http://mmabj.blogsome.com/images/bug2.jpg
# Tile format
-gt
# Set the bit depth to 16
-gB8
# Set the transparent color to 00FFFF (rrggbb hex)
-gT 00FFFF
# Add Map
-m
-Mh4
-Mw4
and in the code I'm doing this:
Code: Select all
bgTiles32x32 = initBg(true, 0, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
dmaCopy(tilesPal, BG_PALETTE, tilesPalLen);
dmaCopy(tilesMetaTiles, bgGetGfxPtr(bgTiles32x32), tilesMetaTilesLen);
*(bgGetMapPtr(bgTiles32x32) + 0) = 0;
*(bgGetMapPtr(bgTiles32x32) + 1) = 1;
*(bgGetMapPtr(bgTiles32x32) + 2) = 2;
*(bgGetMapPtr(bgTiles32x32) + 3) = 3;
*(bgGetMapPtr(bgTiles32x32) + 4) = 4;
*(bgGetMapPtr(bgTiles32x32) + 5) = 5;
*(bgGetMapPtr(bgTiles32x32) + 6) = 6;
*(bgGetMapPtr(bgTiles32x32) + 7) = 7;
*(bgGetMapPtr(bgTiles32x32) + 8) = 8;
*(bgGetMapPtr(bgTiles32x32) + 9) = 9;
*(bgGetMapPtr(bgTiles32x32) + 10) = 10;
*(bgGetMapPtr(bgTiles32x32) + 11) = 11;
*(bgGetMapPtr(bgTiles32x32) + 12) = 12;
*(bgGetMapPtr(bgTiles32x32) + 13) = 13;
*(bgGetMapPtr(bgTiles32x32) + 14) = 14;
*(bgGetMapPtr(bgTiles32x32) + 15) = 15;
http://mmabj.blogsome.com/images/bug2.jpg
Re: meta tiles?
you're converting to 32x32 metatiles with grit:
change that to, this should work:
Didn't look too well at your code, so maybe you're using code for 32x32 tiles? if your interested, I have an old lib, with metatiled functions(only 16x16) which can load tiles dynamically(for scrolling) and animate meta tiled bg's. just say if you want it, but be warned, it's not well coded
Tomdev
Code: Select all
-Mh4 // 4*8=32
-Mw4 // the same
Code: Select all
-Mh2
-Mw2
Tomdev
Re: meta tiles?
Ok, maybe I did not explained the problem clear :S.
Let's take a look at a handmade example, I have this tiles:
If I use this code with the tiles8x8 it works as I want :
Output:
|RED |GREEN|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |...........................|CIAN
..................
|CIAN|CIAN |CIAN |...........................|CIAN
but when I use this code for the tiles16x16, it does not work as I want :
Output:
|RED |RED |RED |RED |GREEN|GREN|GREN|GREN|BLUE|BLUE|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |.....................................................................................................|CIAN
..................
|CIAN|CIAN |CIAN |.....................................................................................................|CIAN
As you can see, instead of a 2x2 8*8 (16*16) tile, they're normal 8*8 tiles.
Please help, I hope that by understanding this I'll be able to do the same with my png tiles.
UPDATE:
Hi Tomdev, I would really appreciate the code
Let's take a look at a handmade example, I have this tiles:
Code: Select all
u8 tiles16x16[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
};
u8 tiles8x8[] = {
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3
};
Code: Select all
bgTiles32x32 = initBg(true, 0, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
u16* mapMemory = (u16*)BG_MAP_RAM(0);
dmaCopy(palette, BG_PALETTE, sizeof(palette));
dmaCopy(tiles8x8, bgGetGfxPtr(bgTiles32x32), sizeof(tiles8x8));
for(tile = 0; tile < 32 * 32; tile += 1)
mapMemory[tile] = BG_PALETTE[0];
*(BG_MAP_RAM(0) + 0) = 0;
*(BG_MAP_RAM(0) + 1) = 1;
*(BG_MAP_RAM(0) + 2) = 2;
//0 is red, 1 is green and 2 is blue
|RED |GREEN|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |...........................|CIAN
..................
|CIAN|CIAN |CIAN |...........................|CIAN
but when I use this code for the tiles16x16, it does not work as I want :
Code: Select all
bgTiles32x32 = initBg(true, 0, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
u16* mapMemory = (u16*)BG_MAP_RAM(0);
dmaCopy(palette, BG_PALETTE, sizeof(palette));
dmaCopy(tiles16x16, bgGetGfxPtr(bgTiles32x32), sizeof(tiles16x16));
//BG_PALETTE[n] = RGB15(R, G, B);
for(tile = 0; tile < 32 * 32; tile += 1)
mapMemory[tile] = BG_PALETTE[0];
*(BG_MAP_RAM(0) + 0) = 0;
*(BG_MAP_RAM(0) + 1) = 1;
*(BG_MAP_RAM(0) + 2) = 2;
*(BG_MAP_RAM(0) + 3) = 3;
*(BG_MAP_RAM(0) + 4) = 4;
*(BG_MAP_RAM(0) + 5) = 5;
*(BG_MAP_RAM(0) + 6) = 6;
*(BG_MAP_RAM(0) + 7) = 7;
*(BG_MAP_RAM(0) + 8) = 8;
*(BG_MAP_RAM(0) + 9) = 9;
*(BG_MAP_RAM(0) + 10) = 10;
*(BG_MAP_RAM(0) + 11) = 11;
//Tiles 0 - 3 are red, 4 - 7 are green and 9 - 11 are blue
|RED |RED |RED |RED |GREEN|GREN|GREN|GREN|BLUE|BLUE|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |.....................................................................................................|CIAN
..................
|CIAN|CIAN |CIAN |.....................................................................................................|CIAN
As you can see, instead of a 2x2 8*8 (16*16) tile, they're normal 8*8 tiles.
Please help, I hope that by understanding this I'll be able to do the same with my png tiles.
UPDATE:
Hi Tomdev, I would really appreciate the code
Re: meta tiles?
Ok, so, if in the 16x16 I do this:
Output:
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |..................................................|CIAN
..................
|CIAN|CIAN |CIAN |..................................................|CIAN
it works as I want, is that the only way to do it??
it's like this now:
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
..................
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|
v
24 tiles in Y
but it shouldn't it be something like this?:
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
...............
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|
v
12 tiles in Y
UPDATE:
:S, so, now I made a map :S
and copy the map:
But it's drawing the same as before
Output:
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN ->32XTiles
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN->32XTiles
|CIAN|CIAN |CIAN |..................................................|CIAN->32XTiles
..................->32XTiles
|CIAN|CIAN |CIAN |..................................................|CIAN->32XTiles
|
v
24Ytiles
So, I'm starting to think it's the only way to do it , this is the result I want
Output:
|RED |GREEN|BLUE|CIAN|CIAN|CIAN|....|CIAN->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
..................->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
|
v
12Ytiles
So the map should be something like:
Code: Select all
*(BG_MAP_RAM(0) + 0) = 0;
*(BG_MAP_RAM(0) + 1) = 1;
*(BG_MAP_RAM(0) + 1 * 32) = 2;
*(BG_MAP_RAM(0) + 1 * 32 + 1) = 3;
*(BG_MAP_RAM(0) + 2) = 4;
*(BG_MAP_RAM(0) + 3) = 5;
*(BG_MAP_RAM(0) + 32 + 2) = 6;
*(BG_MAP_RAM(0) + 32 + 3) = 7;
*(BG_MAP_RAM(0) + 4) = 8;
*(BG_MAP_RAM(0) + 5) = 9;
*(BG_MAP_RAM(0) + 32 + 4) = 10;
*(BG_MAP_RAM(0) + 32 + 5) = 11;
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN
|CIAN|CIAN |CIAN |..................................................|CIAN
..................
|CIAN|CIAN |CIAN |..................................................|CIAN
it works as I want, is that the only way to do it??
it's like this now:
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
..................
|8*8|8*8|8*8|8*8|8*8|8*8|....|8*8| -> 32 tiles in X
|
v
24 tiles in Y
but it shouldn't it be something like this?:
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
...............
|16*16|16*16|16*16|16*16|16*16|16*16|....|16*16| -> 16 tiles in X
|
v
12 tiles in Y
UPDATE:
:S, so, now I made a map :S
Code: Select all
u16 map64x64[] = {
0, 1, 4, 5, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2, 3, 6, 7, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};
u16 palette[] = {
RGB15(0, 31, 31),
RGB15(31, 0, 0),
RGB15(0, 31, 0),
RGB15(0, 0, 31)
};
Code: Select all
bgTiles32x32 = initBg(true, 0, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
dmaCopy(palette, BG_PALETTE, sizeof(palette));
dmaCopy(map64x64, (u16*)BG_BMP_RAM(0), sizeof(map64x64));
dmaCopy(tiles16x16, bgGetGfxPtr(bgTiles32x32), sizeof(tiles16x16));
Output:
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN ->32XTiles
|RED |RED |GREEN|GREN|BLUE|BLUE|CIAN|CIAN|CIAN|....|CIAN->32XTiles
|CIAN|CIAN |CIAN |..................................................|CIAN->32XTiles
..................->32XTiles
|CIAN|CIAN |CIAN |..................................................|CIAN->32XTiles
|
v
24Ytiles
So, I'm starting to think it's the only way to do it , this is the result I want
Output:
|RED |GREEN|BLUE|CIAN|CIAN|CIAN|....|CIAN->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
..................->16XTiles
|CIAN|CIAN |CIAN |...........................|CIAN->16XTiles
|
v
12Ytiles
So the map should be something like:
Code: Select all
u16 map64x64[] = {
0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
Re: meta tiles?
i think your code is a bit weird for me(but then only for me, you can see me as a silly person ) but okay it's not so fair, I got help from cearn(really smart person) so here's the link to my lib(contains some sprite functions, but where you're looking for is the metabg.c and .h file):
http://sites.google.com/site/tomdevsndshomebrew/
these functions work correctly, can dynamically load meta tiles(only 16x16 easy to modify) in vram when needed). as for the animating functions, they work but there was something wrong IIRC(but you won't need that if i'm right)
if you don't get something from the code ask me, and if you don't know how to use the functions, there are examples too
Tomdev
ps: handwriting tilesets and maps cost much time, I just use mappy, export the maps to text files and made an easy program which converted the text files to binary and compressed them for me:)->the lazy way
http://sites.google.com/site/tomdevsndshomebrew/
these functions work correctly, can dynamically load meta tiles(only 16x16 easy to modify) in vram when needed). as for the animating functions, they work but there was something wrong IIRC(but you won't need that if i'm right)
if you don't get something from the code ask me, and if you don't know how to use the functions, there are examples too
Tomdev
ps: handwriting tilesets and maps cost much time, I just use mappy, export the maps to text files and made an easy program which converted the text files to binary and compressed them for me:)->the lazy way
Re: meta tiles?
Ok, so, I need to do the math in order to make it work, so I'm going to take a look at the functions, thanks a lot, anyway, I was able to do it myself, but did not like it :S.
I'm going to see if there's a better way, but the thread can be closed now .
Code: Select all
u8 tiles16x16[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
};
u8 tiles8x8[] = {
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3
};
u16 map32x24[] = {
0, 1, 4, 5, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2, 3, 6, 7, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};
u16 map16x12[] = {
0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
u16 palette[] = {
RGB15(0, 31, 31),
RGB15(31, 0, 0),
RGB15(0, 31, 0),
RGB15(0, 0, 31)
};
u8 tileContainer[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
....
bgTiles32x32 = initBg(true, 0, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
u8* tileMemory = (u8*)BG_TILE_RAM(1);
u16* mapMemory = (u16*)BG_MAP_RAM(0);
int tile;
int i;
dmaCopy(palette, BG_PALETTE, sizeof(palette));
for(i = 0; i <= 255; i++) tileContainer[i] = tiles16x16[i];
swiCopy(tileContainer, tileMemory, 128);
for(i = 0; i <= 255; i++) tileContainer[i] = tiles16x16[i + 256];
swiCopy(tileContainer, tileMemory + 256, 128);
for(i = 0; i <= 255; i++) tileContainer[i] = tiles16x16[i + 512];
swiCopy(tileContainer, tileMemory + 512, 128);
for(tile = 0; tile < 32 * 24; tile += 2){
if(tile % 32 == 0 && tile != 0) tile += 32;
int tmp = rand() % 11;
mapMemory[tile] = tmp;
mapMemory[tile + 1] = tmp;
mapMemory[tile + 32] = tmp;
mapMemory[tile + 32 + 1] = tmp;
}
Re: meta tiles? [closed]
And this works for 64x64 tiles
Code: Select all
int tile;
int tmp;
for(tile = 0; tile < 32 * 24; tile += 4){
tmp = 1;
if(tile % 32 == 0 && tile != 0) tile += 96;
while(tmp != 0 && tmp != 16) tmp = rand() % 17;
*(BG_MAP_RAM(0) + tile) = tmp;
*(BG_MAP_RAM(0) + tile + 1) = tmp + 1;
*(BG_MAP_RAM(0) + tile + 2) = tmp + 2;
*(BG_MAP_RAM(0) + tile + 3) = tmp + 3;
*(BG_MAP_RAM(0) + tile + 32) = tmp + 4;
*(BG_MAP_RAM(0) + tile + 33) = tmp + 5;
*(BG_MAP_RAM(0) + tile + 34) = tmp + 6;
*(BG_MAP_RAM(0) + tile + 35) = tmp + 7;
*(BG_MAP_RAM(0) + tile + 64) = tmp + 8;
*(BG_MAP_RAM(0) + tile + 65) = tmp + 9;
*(BG_MAP_RAM(0) + tile + 66) = tmp + 10;
*(BG_MAP_RAM(0) + tile + 67) = tmp + 11;
*(BG_MAP_RAM(0) + tile + 96) = tmp + 12;
*(BG_MAP_RAM(0) + tile + 97) = tmp + 13;
*(BG_MAP_RAM(0) + tile + 98) = tmp + 14;
*(BG_MAP_RAM(0) + tile + 99) = tmp + 15;
}
Who is online
Users browsing this forum: Google [Bot] and 0 guests