The Scorpius Mapper Version 2.0 ©1992 By Mark Sheeky. All example files are also copyrighted. This program is Public Domain. Remeber The Scorpius Mapper ? It was used to design maps for games using blocks to put together levels. I used it to design the levels for Arazmax as well as other games. After Arazmax, I started work on a new game, and when it came to designing the levels I hit a wall. Because the mapper had no graphical imports, and because of size restrictions, most of the maps had 'bugs' in. Then mapper version 2 was born..... Incidentally, the new game is still waiting for maps. I took so much time in developing the mapper, that I got fed up with it. It's called turbo racer, and might be released in the future, if I get round to those maps. This mapper features full graphical imports and exports, configuration files, variable tile sizes (16,24 or 32 pixels square) and a map size of up to 65536 tiles square (that's 4294 MEGABYTES!!!!!!). If in future games I use this mapper a lot, I might include an import facility, so that you can play your own designed levels. Firstly, the big bad news... This mapper was designed originally for my use only, and because I counldn't be arsed to include IFF imports, only raw files are supported. All is not lost however, I have inclued some sample files on the disk so that the mapper is useable without a converter. If you want to import your own graphics, you don't need to spend a fortune on commercial products. The converter I use is a licenceware disk from PD Soft (disk number L17). The disk title is 'The RSI extras disk 1' and is just the converter reccomended for use with the mapper. You had better phone PD Soft with reference to availability and price (I think they're £3.50 each). Call them on (0702) 466933. If you do use the disk, remove the title page bit from the startup-sequence, otherwise it won't work! If you want to use the program without a converter (without graphic imports), see the section at the end entitled 'USING THE MAPPER WITHOUT GRAPHIC IMPORTS'. About the examples. If you want to experiment with some of the included examples, just read the EXAMPLES section near the end. INSTRUCTIONS. ABOUT THE MAPS. This mapper is used to design maps for games. The maps used in games like Gauntlet or Pacman are ideal examples of what can be produced on the mapper. Nearly every game that uses a scrolling play area (Sim City or Zool for example) would have to be mapped. The map is created in squares (usually 16 pixels by 16), and each square is given a number. In the mapper, these squares are referred to as TILES. For example, a pacman maze might have a tile for a vertical wall, a tile for a corner, a much used tile for a dot, another for a power pill etc... The graphics for the tiles would be loaded into the mapper and drawn in the mapping area (possibly scrolling it) until a level was complete. The map would then be saved in a raw format which details all of the codes for the tiles starting from the top right corner to the bottom left. File formats are detailed in the FILES panel bit. CONTROLS. The Mapper is primarily mouse controlled. Unlike the other mapper, there are practically no keyboard equivalents. One Keyboard control that is not available using the mouse is the SPACEBAR. This toggles dots on or off. Default is off. The Current status of dots is saved in the config file. For more information on what dots do, see the DRAWING A MAP section, near the end. Clicking. Click with the left mouse button to use an icon. A beep will sound. If the icon is one that causes a number to move up or down, only one number will be added or taken away (no matter how long you hold the button down). The left button while drawing stamps down the current tile. Using the right button while on number affecting icons makes the number go up or down at an accelerating rate. This means any number from 0-65535 can be selected fairly quickly. On the drawing area, the right button does the same as the left. Text input. You will be asked to type in filenames when neccesary. The text input routines are complete crap, but don't let that put you off. Letters A-Z and space are all that is checked for. This means that any file that is to be loaded into the mapper MUST have a name consisting of only UPPER CASE LETTERS WITH NO NUMBERS, clear ? All filenames have a 16 letter limit. Press return to end text input. THE SCREEN. The top 208 pixels is the drawing area. Maps are designed here. There is a border to the 'canvas' though. Ther border is 8 pixels wide on the top and bottom edges, and 16 pixels wide on the left and right edges. The borders are there because 16, 24 or 32 pixel tiles can fit on the canvas without having halves of blocks on the edges (work it out, the canvas is 288 x 192 pixels). At the bottom of the screen are the menu panels. There are four panels - MAIN, GFX (graphics), FILES, and SETUP. Numbers in the panels are usually in hex. All hex numbers have a $ in front. The panels will be discussed in detail now. MAIN This is the main panel. From here all other panels can be accessed, which tile is printed can be chosen, the area can be scrolled and cleared. On the left hand side is a space that contains the picture of the current tile. The hex number next to it is its number, and the arrows below that let you advance to the next tile or look at the previous. The tile here is the tile printed when you click on the canvas. If there are no graphics imported, the space will be blank. The X and Y in the centre show the co-ordinates of the pointer in tiles. 0,0 is the top left hand tile and the bottom tile depends on the size of the map. The coords ar global. This means that if you scroll a tile to the right, the top tile will be 1,0. The cluster of arrows to the right are used for scrolling. The scrolling is fairly slow, but sufficient. Click with the right mouse button to scroll continuously. The four icons on the far right allow access to the other panels. The exception is the CLR icon. This clears the current map from memory. No other information is cleared from memory (sizes or graphics etc..) only the map data. A confirmation message appears, press C to confirm. SETUP Map information is set up here. Ususally this panel will be accessed only once and never revisited. All of the information here is saved in a configuration file (see FILES panel). Map width and height are entered here. The smallest map available is 1x1 (useless!!!!). A size of 0x0 is not allowed. The maximum size depends on the memory available. Theoretically this is $ffff x $ffff which is 4 billion bytes!! (anyone got an expansion handy!) The number of tiles is the next big number. This can range from $0-$7fff. Zero IS inclusive here though, because tile number zero can exist. Inputting a value of 1 reserves enough memory for two tiles (numbers zero and one). The word BYTE or WORD appears next to this number. If you have less than 256 tiles then the information can fit into a byte. If not, however, a word (2 bytes long) is neccesary. This also doubles the amount of memory the map uses (because you need 2 bytes per 'cell'). If you have less than 256 tiles, but still want to use a word of space, just put a value of $100 in here. You will need enough memory for 257 tiles, but graphic information on all tiles except imported ones will not be saved in a config file (no point in saving blank spaces). The number here is designed only as a maximum, or if the number is known. Most graphic operations manipulate only graphics that have been loaded in, not all the tiles relating to this number. Underneath this number is a size number. This indicates how big in pixels the tile will be. The number is either 16,24 or 32 pixels. The height of tiles is the same as width. This number also affects how much memory will have to be used, because enough space for the graphics must be reserved. A 32x32 tile takes up as much memory as 4 16x16 tiles. Clicking on ok will do 3 things... FREE CURRENLY RESERVED MEMORY. Map memory is always freed. Graphics memory is olny freed if the numbers in the 'size' and 'number' slots are different than when you entered the setup panel. This enables users to change the size of maps without losing the graphics. This is essential if you want to use a config file that has the wrong size settings. If you want to have the same number and size of tiles as before, but still want the memory freed, just put the change the number to 0, click ok, re-renter the setup panel, change the number back to the value you want, and click on ok again. RESERVE NEW MEMORY GIVEN THE SETTINGS ON THE SETUP PANEL. If the screen flashes red, memory could not be reserved. Old memory would still be freed though. RETURN TO THE MAIN PANEL. Only if memory could be reserved. Clicking on cancel will cause the program to revert to the settings present when you entered the setup panel, and return to the main panel. GFX (Graphics) This screen is concerned with the import and export of graphics only. The 32 colour palette can be changed here also. On the left are the palette change facilities. The current colour number is shown in hex and decimal, and can be moved up or down using the + or - icons as usual. The RGB components are shown below this. No messing about with slow sliders here, just click on the value you want for red, green and blue and that's it. The current digit (0-F) is shown inversed. The current colour is that big block that is next to it. The load/save icons are for graphic access. This takes quite a lot of work to get the hang of, but once it's in, the graphics can be saved out in a configuration file, so you'll never have to do it again. Graphic import. You'll need that IFF/raw converter I metioned earlier to import graphics. Here's how you do it, step by step. 1. Draw your tiles in DPaint. Use 32 colour mode only. 2. Put them in stacks of eight with low numbers on top. Put tile zero on top, tile one directly underneath etc... You should make a stack of eight, so tile eight will be at the top of a new stack. If you're using a tile size of 16, stacks should measure 16 pixels by 128 pixels. Stacks of 32 should be 32 by 256. If you have 10 tiles, put the first eight in a stack, and put the next two on top of another. The last stack should have 6 blank spaces beneath that act as null tiles. When importing, only ten tiles need to be set in the setup menu. 3. Note down the colour numbers in the palette. This is a boring bit. Write down the colour numbers (RGB values) of each colour you used in drawing the tiles. Colours you didn't use can just be put down as black. 4. Load up your object converter. 5. Draw a box around the first stack (sizes as above). If your using the RSI extras converter, like I am. Only sizes 16 and 32 are allowed. This is because it saves out at word boundaries only. All frames should be the same size. If you have seven tiles or less in the last stack, the frame you draw should still be as deep as eight tiles. 6. Save the frame in raw-norm format. As a filename, use an uppercase, letters only name (like TILESA). 7. Do the same for each stack. Use a different filename (TILESB, TILESC etc..). 8. Load the mapper and enter the GFX panel. 9. Set the palette as the same as you wrote down before (remember A is 10 and F is 15, because DPaint doesn't use hex no's) 10. Click on load raw, and type your first filename (eg. TILESA). 11. Click on it again and type you second file name. Keep doing this until all filenames are used. Graphic data will automatically be put on the end of data already imported. If you reserve enough memory for 5 tiles in the setpu menu, then try to import 8, only the first five will show. The mapper won't guru if you import graphics into an already full graphical memory. When you enter the main panel, your tiles should be there. Save the config file as indicated in the FILES panel section. This means you won't have to do it all again. Graphic Export. Tiles are exported in a different format from when imported. First plane 1 of tile 0 is exported, then plane 1, plane 2, plane 3, plane 4 and plane 5. Then Tile 1 etc.. Only tiles that have been imported are exported. The number of tiles specified in the setup panel is not used during export. Clicking on the main icon takes you back to the main panel. FILES File related actions are contrlled from here. Whenever a file is saved, and the filename exists, then the data is APPENDED TO THE END. This applies to all files (even files like config files that don't need it). The types of file are as follows.... --Raw. This is the data that makes up the map, saved as a binary file. No other data is saved apart from what is in the map. The tile number in the top left hand corner is saved first, followed by the tile to it's right etc... The size of the file can be worked out as follows - Width of map * Height of map * x Where x is 1 for a byte size tile or 2 for a word. Raw files can be loaded. If this happens, the settings in the setup menu decide how big it is. WARNING - memory is not re-reserved when loading raw files. If you try to load in a file bigger than the settings allow, reserved memory will be overfilled, and a guru may result (it all depends on luck). --Ascii. The data is saved as in a raw file, but with an important difference. The file is an ascii text file full of dc.b statements designed for inserting into assemblers. I tested it on Devpac 2, and it worked great. Here's waht it saves. A tab,"dc.b ", and then 12 byte values per line in hex, preceded by a $, and separated by commas. The line ends in a linefeed (ascii-10). Note that even when a tile is a word long, instead of a byte, dc.b is still used. On the amiga this doesn't matter (it does on a few other processors). --Format. This is like a raw file, but also has a header which contains some information that the mapper uses. The header contains 74 bytes as follows- Tilesin - The number of tiles that have graphics - 2 bytes. Numtiles - The number of tiles on the setup panel - 2 bytes. Mapwid - Map width. As on setup panel - 2 bytes. Maphgt - Map height. - 2 bytes. Tilesize - 16,24 or 32. - 1 byte. Dots - either 0 for off or 192 for on. - 1 byte. Palette - All palette colours. - 64 bytes. --Config. This contains some important information. The header as mentioned above is saved, followed by all of the graphic data. If you were designing a game, level sizes would usually stay the same, as would graphics (level to level), so each game would have it's own config file. Config files and map information. The memory that holds the map data is sometimes left intact when a config file is loaded, and sometimes it is freed and re-reserved using the values in the config file. Each action is useful. For example, if you are finished with the current values, and wish to design another level for a game, you'll want new graphics and new map sizes. The map that's currently being used would be unwanted. On the other hand, you might want to load in a new graphics set for the current map, without losing it. To load in a new config file, and erase the old map. Just clear the map using the 'clr' icon on the main panel before loding the config file. This tells the mapper to free the old map memory, and reserve some new, depending on the values in the config file. To avoid losing the map. Just have a map on screen. The presence of a map is detected by either clicking on the canvas with a tile, or loading in a map. Click on the main icon to return you to the main panel. DRAWING A MAP Select your tile number on the main panel, and click on the canvas to draw. Use the arrows to scroll. Dots. Drawing on an invisible grid isn't easy. Switching dots on (spacebar) puts a little 2x2 pixel dot in the top left hand corner of each tile. This makes the invisible grid more visible. Note that dots are not saved with graphics! Dot status (on/off) is saved in the config file. EXAMPLES Some examples are included on the disk so you can see what the mapper can do. Load the config file "CONFIGA" using the files panel. If you go to the main panel, you can cycle through the tiles that have just been loaded in. Load the raw file "MAPA". This is a cityscape made using the tiles. If you now load in another config file, the map won't be erased. This means you can load in a new palette or graphics set for this map. Load the config file "CONFIGB", and you'll see the city at dusk. You can alter the palette using the gfx panel, or scroll around the display using the arrows on the main panel. Some raw graphics files for the tiles are also included. They are called "TILESA" and TILESB". Load them using steps 10 and 11 on the import graphics bit. USING THE MAPPER WITHOUT GRAPHIC IMPORTS If you have no IFF/RAW converter, and still wish to use the mapper, it can emulate the mapper v1 by using numbered squares instead of pictures. 1. Load the config file 'NUMTILES' using the files panel. 2. Enter the setup panel. 3. Enter the map size you require without changing the number of tiles. 4. Click on ok. If the screen flashes red, the map is too big (not enough memory). CONTACTING ME If you need any help with the mapper, or have any suggestions for the next update, you can contact me here.. Mark Sheeky 29 Tynedale Avenue CREWE Cheshire CW2 7NY Phone me on (0270) 650691