gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Beginners > Desperate Background Help!!!!!!!!

#107116 - JJGamer123456 - Thu Oct 26, 2006 8:21 pm

I JUST DON'T GET IT!!!!!!!!!!!!!
Every time I put an image in pcx2sprite, it will give me a header with 0xXXXX with 4 numbers, but when I make a map with a map editor like GBA Map Editor, Mappy, or the map editor from HAM, I get a header with 0xXXX with 3 numbers or 0xXX with 2 numbers. It looks different. And when I try to look at it on an emulater, the map is right ,but the tile place ment is all wrong. I don't know if it was me or if it's the map editors, but I need one of you people to show me how you make Backgroud maps. If you can teach me through e-mail or this messageboard, that would be great, though I like to talk using chatrooms. In short, I need a tutor or teacher who can teach me the way of making backgrounds. HELP!!!!!!!!!!! [/url]

#107230 - tepples - Fri Oct 27, 2006 9:52 pm

JJGamer123456 wrote:
I JUST DON'T GET IT!!!!!!!!!!!!!
Every time I put an image in pcx2sprite, it will give me a header with 0xXXXX with 4 numbers, but when I make a map with a map editor like GBA Map Editor, Mappy, or the map editor from HAM, I get a header with 0xXXX with 3 numbers or 0xXX with 2 numbers. It looks different. And when I try to look at it on an emulater, the map is right ,but the tile place ment is all wrong.

What do you mean by "all wrong"? Please find web space, post pictures of the incorrect result to your web space, and link them here. Otherwise, it is likely that nobody knows how to help you.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#107235 - JJGamer123456 - Fri Oct 27, 2006 10:13 pm

how do you make a web space

#107242 - tepples - Fri Oct 27, 2006 11:05 pm

http://imageshack.us/ provides web space for images
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#107923 - JJGamer123456 - Fri Nov 03, 2006 5:22 am

Here is the map I want to make:

http://img154.imageshack.us/img154/6751/landscrnqt6.png

Here is what I have now (I take this image in Virtual boy):

http://img246.imageshack.us/img246/544/maptk5.png

Here is the Tileset picture:

http://img99.imageshack.us/img99/8342/landep5.png

Here is the main code:

Code:
//////////////////////////////////////////////////////////////////////////
// File:    ch6a.cpp                                               //
// Description: A program that displays a 128x128 background map   //
// Author:   gbajunkie                     //
// Date:    24th April 2002                                         //
//////////////////////////////////////////////////////////////////////////
#include<math.h>    //sign and cos stuff
#include"gba.h"         //GBA register definitions
#include"dispcnt.h"     //REG_DISPCNT register #defines
#include"keypad.h"      //button registers
#include"bg.h"          //background definitions

//my graphics data produced by pcx2sprite program
#include"tiles.h"

//data produced by map editor
#include"Land2.h"



//Rotation variables (don't worry about them here) done in later chapter
/**********************************************************************************/
FIXED angle = 0;
FIXED zoom = 1<<8;  //zoom is a fixed point number

FIXED SIN[360];       //Look-Up Tabless for sign and cosign
FIXED COS[360];

char RotIndexCounter = 0;  //global to keep track of rotation indexes used
/**********************************************************************************/

//declare an instance of the background structure
Bg bg3;

//wait for the screen to stop drawing
void WaitForVsync()
{
   while((volatile u16)REG_VCOUNT != 160){}
}

///Test for key presses
void GetInput()
{
   if(!(*KEYS & KEY_UP))
   {
      bg3.y_scroll++;
   }
   if(!(*KEYS & KEY_DOWN))
   {
      bg3.y_scroll--;
   }
   if(!(*KEYS & KEY_LEFT))
   {
      bg3.x_scroll++;
   }
   if(!(*KEYS & KEY_RIGHT))
   {
      bg3.x_scroll--;
   }
   if(!(*KEYS & KEY_L))
   {
       angle--;
      if(angle<0)
         angle = 359;
   }
   if(!(*KEYS & KEY_R))
   {
       angle++;
      if(angle > 359)
         angle = 0;
   }
   if(!(*KEYS & KEY_A))
   {
       zoom--;
   }
   if(!(*KEYS & KEY_B))
   {
       zoom++;
   }
}

///main entry point from the boot.asm startup file
int main()
{
   int index = 0;  //generic loop variables
   u16 loop;
   u16* temp;      //temporary storage pointer

   //compute my Look up tables (Rotation stuff again)
   for(loop = 0; loop < 360; loop++)
   {
      SIN[loop] = (FIXED)(sin(RADIAN(loop)) * 256);  //sin and cos are computed and cast to fixed                     //fixed
      COS[loop] = (FIXED)(cos(RADIAN(loop)) * 256);
   }

   //set mode 2 and enable sprites and 1d mapping
   SetMode(MODE_1 | OBJ_ENABLE | OBJ_MAP_1D);

   //Let us set up the backgroud two structure and enable the background

   bg3.number = 3;            //background number 0-3
   bg3.charBaseBlock = 0;                  //tile data position (right at the start of the available memory on 16Kb boundary)
   bg3.screenBaseBlock = 28;      //map data position on 2Kb boundary
   bg3.colorMode = BG_COLOR_256;           //256-colour background
   bg3.size = ROTBG_SIZE_256x256;          //size of map
   bg3.mosaic = 0;                         //not enabled
   bg3.x_scroll = 120;         //scrolling variables
   bg3.y_scroll = 80;

   //Point to correct tile and map data, update the Background and Display registers accordingly
        EnableBackground(&bg3);



   for(loop = 0; loop < 256; loop++)
      BGPaletteMem[loop] = tilesPalette[loop];     //load the background palette into memory

   for(loop = 0; loop < tiles_WIDTH * tiles_HEIGHT /2; loop++)  //load tile image data
      bg3.tileData[loop] = tilesData[loop];

   //load the map image data
   temp = (u16*)Land2Data;
   for(loop = 0; loop < 32*32/2; loop++) //16x16 tiles /2 because 16 bit copy
      bg3.mapData[loop] = temp[loop];

   //Main Game loop
   while(1)
   {
      GetInput();    //check for input
      RotateBackground(&bg3,angle,119,79,zoom);    //rotates background if required (don't worry about this)
        WaitForVsync();               //waits for the screen to stop drawing
      UpdateBackground(&bg3); //make sure registers are updated if anything changes e.g. scrolling
   }
   return(0);
}



The tile data and pallet:
Code:
/**********************************************\
*       tiles.h                                   *
*          by dovotos pcx->gba program         *
/**********************************************/
#define  tiles_WIDTH   480
#define  tiles_HEIGHT  256


const u16 tilesData[] = {
                    0xFBF9, 0xFBFB, 0xFBF8, 0xF8FB, 0xFBFB, 0xF8F8, 0xFBF9, 0xC8F8, 0xF8FB, 0xC8C8,
                    0xF9C8, 0xC8C8, 0xC8FB, 0xCBC8, 0xC8CA, 0xEDCB, 0xC8F9, 0xE9ED, 0xE9ED, 0xE9E9,
                    0xCAFB, 0xE9ED, 0xE9E9, 0xE9E9, 0xF9FB, 0xEBED, 0xE9E9, 0xE9E9, 0xF9F9, 0xE9E9,
                    0xEBEB, 0xEBEB, 0xFBF8, 0xF9F9, 0xFBFB, 0xF9F9, 0xF9C8, 0xC8C8, 0xF8F9, 0xFBFB,
                    0xC8CB, 0xC8CA, 0xC8C8, 0xFBF8, 0xE9ED, 0xEDED, 0xC8CA, 0xFBC8, 0xEDED, 0xEBE9,
                    0xEDE9, 0xFBC8, 0xE9E9, 0xEBE9, 0xEDE9, 0xF9CA, 0xEBE9, 0xEBEB, 0xEDEB, 0xFBF9,
                    0xE9EB, 0xEBE9, 0xEBED, 0xFBFB, 0xFBF9, 0xFBFB, 0xFBF8, 0xF8FB, 0xFBFB, 0xF8F8,
//...................................................................
0x0C43, 0x0000, 0x0000, 0x00A1, 0x0101, 0x0141, 0x0181, 0x01A2, 0x01E4, 0x0205,
                    0x0646, 0x0668, 0x06AA, 0x0ACB, 0x0B0D, 0x459F,};


And here is the map code:

Code:
//======================================================================
//   Land2, a 32x32 regular map, in map-block layout
//
//   Exported by Cearn's Mirach v0.3a
//   (comments, kudos, flames to "daytshen@hotmail.com")
//======================================================================

#include "Land2.h"

const int Land2Width= 32;
const int Land2Height= 32;
const int Land2Size= 512;

const unsigned int Land2Data[512]=
{
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01870186,0x01890188,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01c301c2,0x01c501c4,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01ff01fe,0x02010200,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x023b023a,0x023d023c,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,

   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,
   0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1,0x01b101b1
};


*btw the is a header that talks about the functions

I hope you can see that the tile data code and the map code is very different.

Is that enough infomation to help me? If there is something you need, the please respond. How in the world did you learn how to make backgrounds? what map editors did you use?

#107975 - thegamefreak0134 - Fri Nov 03, 2006 6:36 pm

I see your problem. Mainly, you are only copying half of the map in your for loop. Try opening both images you provided (the expected map and the one youre getting) and flipping back and forth between them to see what I mean. You need to double the amount that your map copying routine copies to make this work.

Also, it appears that for some reason your tiles are off a bit somewhere. Perhaps (and I cannot remember the addresses of the top of my head so I cannot check the code) you are copying the tileset to the wrong place, or your map is being exported with values starting at one instead of zero, or something to that effect. I can see that you are using Mirach, which is Cearns program, so perhaps you should ask him.

Dont lose heart, you are doing a lot right, I can see. You just need to work out one or two bugs. Mapping is tricky business, especially with this kind of hardware.

-gamefreak

EDIT: I just saw that when you load your map data, you for loop only goes until \"32x32 /2\". Take the /2 out and it should fix your map not loading all the way.
_________________
What if the hokey-pokey really is what it's all about?

[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]

#107992 - JJGamer123456 - Fri Nov 03, 2006 9:27 pm

I think I messed up my entire map.
First I try to delete the the /2 on the loop and when I tried to run it on VBA, The whole thing is green(I think it is the grass tile).When I try to copy and paste the code above back to Visual HAM, the same thing happen. Should I try making another map all together?

And what do you mean about the flipping back and forth and about the tiles being in the wrong place?

btw the code was from gbajunkie

#108005 - Cearn - Sat Nov 04, 2006 12:35 am

Quote:
The whole thing is green(I think it is the grass tile).When I try to copy and paste the code above back to Visual HAM, the same thing happen

That's funny, because the whole thing should be magenta. You're using bg 3 in video mode 1. Mode 1 has no bg 3. And even if it had, the map itself is a regular background, while the code was originally intended for an affine bg, which never works well.

Try this :
Code:
#include <string.h>     // for memcpy

#include <mydefines.h>

#include "tiles.h"
#include "land2.h"

#define BG_MOSAIC       0x0040  //!< Enable Mosaic
#define _BG_4BPP             0  //!< 4bpp (16 color) bg (no effect on affine bg)
#define BG_8BPP         0x0080  //!< 8bpp (256 color) bg (no effect on affine bg)
#define BG_WRAP         0x2000  //!< Wrap around edges of affine bgs
#define _BG_REG_32x32        0  //!< reg bg, 32x32 (256x256 px)
#define BG_REG_64x32    0x4000  //!< reg bg, 64x32 (512x256 px)
#define BG_REG_32x64    0x8000  //!< reg bg, 32x64 (256x512 px)
#define BG_REG_64x64    0xC000  //!< reg bg, 64x64 (512x512 px)
#define _BG_AFF_16x16        0  //!< affine bg, 16x16 (128x128 px)
#define BG_AFF_32x32    0x4000  //!< affine bg, 32x32 (256x256 px)
#define BG_AFF_64x64    0x8000  //!< affine bg, 64x64 (512x512 px)
#define BG_AFF_128x128  0xC000  //!< affine bg, 128x128 (1024x1024 px)

#define BG_PRIO(n)      ((n)<<0)
#define BG_CBB(n)       ((n)<<2)
#define BG_SBB(n)       ((n)<<8)


#define CharMem(cbb, chr) ((u16*)(0x06000000+(cbb)*0x4000+(chr)*32))
#define ScreenMem(sbb, n) ((u16*)(0x06000000+(sbb)*0x0800+(  n)* 2))


int main()
{
    // Load palette
    memcpy(BGPalettMem, tilesPalette, 256*2);

    // Load tiles into CBB 0
    memcpy(CharMem(0,0), tilesData, tiles_WIDTH * tiles_HEIGHT);

    // Load map into SBB 31 (Land2Size == number of words, ergo *4)
    memcpy(ScreenMem(31,0), Land2Data, Land2Size*4);

    // set up BG0 for a 8bpp 32x32t map, using using charblock 0 and screenblock 31
    REG_BG0CNT= BG_CBB(0) | BG_SBB(31) | BG_8BPP | _BG_REG_32x32;
    REG_DISPCNT= MODE_0 | BG0_ENABLE;

    while(1);
    return 0;
}


This is essentially all you need to do; the rest of the code you had was just extra for affine bgs, which you're not working with. This should produce a green field with one headstone (the map only has one headstone apparently, not four).

Two other points:
The tile data is too big. 480x256 means 1920 tiles, which is too much to be accessed by any one background. It's actually worse than that, you have 1920 8bpp tiles for 0x1E000 bytes, which fills almost the whole of VRAM. Take out the tiles you don't need first.
When trying something new, do not use uniform data, because it makes it impossible to see what is happening. Likewise, do not use too complex data, because it's too hard to read. Easily recognizable (but asymmetric) patterns work best. Always have something on the edges, as that's where things will are likely to go wrong first.

#108879 - JJGamer123456 - Sun Nov 12, 2006 5:01 pm

Quote:
When trying something new, do not use uniform data, because it makes it impossible to see what is happening. Likewise, do not use too complex data, because it's too hard to read. Easily recognizable (but asymmetric) patterns work best. Always have something on the edges, as that's where things will are likely to go wrong first.


What does all that mean? And should I use a different map editor,I mean, what map editor did you all used in your games. Should I still use pcx2sprite to convert grapics into tiles.

#108882 - JJGamer123456 - Sun Nov 12, 2006 5:07 pm

Quote:
When trying something new, do not use uniform data, because it makes it impossible to see what is happening. Likewise, do not use too complex data, because it's too hard to read. Easily recognizable (but asymmetric) patterns work best. Always have something on the edges, as that's where things will are likely to go wrong first.


What does all that mean? And should I use a different map editor,I mean, what map editor did you all used in your games. Should I still use pcx2sprite to convert grapics into tiles.

#109284 - JJGamer123456 - Thu Nov 16, 2006 9:57 pm

THANK YOU, THANK YOU!
Your code really works.

You were right about my tileset being to big. I think that was my problem.

so thanks.

I hope we can get together,Cearn , so you can help me with other things.