Monster Archive Bad News Rules Newsletters Journals Useful Stuff
Monster Island Map Editor

Monster Island Map Editor

DOS based Mapper

Screen Shot

The Edit MI program was the first mapper I ever used. Despite being in DOS, looking pretty basic and relying on you knowing the codes for everything it is more than efficient, is able to cope with additional creatures, plants and locations and is capable of merging two map files together.

Download (139 KB)


Files required to run this program:

You should run the program with this exe file.
A menu file required by editmi.exe
The setup parameters, like page size, printer port and database name. These can be overwritten by command-line parameters.
The graphics data loaded to the printer by editmi.exe.
Fonts used by the program while printing (necessary only for HP printers).
Your database, containing the current mapping. It is recommended to make a backup of it at least once a week. Note: You may create your own database, or rename the existing one.
Your creatures list, required by the Reference Sheet. Write one Creature# followed by its name per line. Use _'s instead of spaces in Creature names.
The same as miname.dat, but in this list you can put what should be printed on the Reference Sheet as "Plants & other stuffs". Use _'s instead of spaces. Do not remove anything just add to it.
The program looks up from this file which abbreviatons you are allowed to use in a square's three plant field. Write one three-letter abbr. per line. You may write up to 40 entries. The final entry have to be a '*'. Do not remove anything just add to it.
The program looks up from this file which abbreviatons you are allowed to use as terrain identifiers and structure identifiers. First line: the number of terrain types. Then follows the list of two-letter abbr.'s for terrain types. After a semicolon, you can write the explaining text used by the Reference Sheet. After the last terrain line comes the number of structures, and the list of them, with the same syntax as the terrains. Do not change the order of items.
The list of structure names and other remarks of your choice. Each line contains a unique number between 1-999 and after a space a text (max. 30 characters) follows. When on your printed map one or more square has a number preceded by a !, the text with that number from STRUCTS.DAT will be listed on the bottom of the page. This feature is particulary useful when you want to see Far Structure names on your map.
You may put here any text you want to be printed on the Reference Sheet. Do not write more than 50 characters per line.

You may modify the last five files with a text editor as you like, but take care of the syntax. Note that there's a graphic icon attached to each terrain and structure, so adding to terrain.dat requires new icons, too. You may modify this directly in the MI.FNT (terrain char codes are from 33 and structure char codes from 50) or MIEPS.FNT (terrain char codes are from 33 and structure codes from 161) but this is not recommended. Contact the programmer to help in this.


To run this program you need at least an IBM PC 286/AT or better (running MS DOS), with an EGA, VGA or SVA color monitor. (Actually, you can use the program with a monochrome monitor too, but the map editing is less easy in this case.) To be able to print, you will need a HP LaserJet II, IIP, III, IIIP, IV (or a better HP) or an EPSON FX 850/1050 compatible (any matrix printer will do which understands ESP /P printer language). I tested the HP printing only on III, IIIP, and IV, but I used only standard commands so it is supposed to run on all HPs. The program prints to the port LPT2, but you can change this by running the program with 'EDITMI LPT1' (Or, if you edit a database different from MIMAP.DAT, 'EDITMI <database name> LPT1'). Printing requires A4 size papers (210mm x 297mm) or LETTER size papers (8.5" x 11"). (See SETUP.TXT for more details.)


You run the program by typing 'EDITMI'. You can use your own database, created by GENMIDAT.EXE (see later). In this case, you have to give the name of the database as a parameter to EDITMI. Example: EDITMI MYMIMAP.DAT

There's a file called SETUP.TXT. If you don't want to type in the command-line parameters (like dbase name and LPT1) every time you use the program, you can instead put them into the SETUP.TXT. After this, the program will read its parameters from this file (but you can still override this with command-line parameters). Possible selections: PORT: LPT1 or LPT2. PAGE: A4 or LETTER (necessary only in case of laser printers). DBAS: Any database file name. PRTR: HP or EPSON. In case of EPSON, you may define the map size by giving width and height in squares, like: PRTR: EPSON 10 10. Thus you can print on A3 size paper or any other size if the printer allows this. The default size is 15x21 (A4). There's also a special feature of SETUP which allows you to define different coordinate systems. See the end of this documentation, 'USING SETUP'.

After running the program with 'EDITMI', the program asks if it should load the fonts to the printer. You have to answer 'y' only the first time you run the program, or if you switched off the printer meanwhile or printed with some other program. Also, if you do not have a printer at all answer 'n'.


After starting up, the program will show a 13x6 squares part of your map. On the bottom line, with gray you can see the coordinates of the upper-left corner and with green the actual coordinates of your cursor. You can move the cursor with the arrow keys. You can jump to the edges of the screen with the Home, End, PgUp, PgDn keys. You can flip to the next 13x6 page (one overlapping column/row remains visible from the previous page) with pressing together the SHIFT and any of the arrow keys on the numeric keypad. You can jump directly to a specific position by pressing ALT G. The X and Y coordinates you write will be the upper-left corner. You have to confirm the set values by pressing F1 or TAB.


You can modify a given square by pressing ENTER. You enter a micro-menu, which have six two- and three-letter entries. You can move between these with the arrow keys. The first field is the terrain type. You can choose from the abbreviations defined in TERRAIN.DAT. Note that I used capital letters. The field below that is for the structure of the square. Use there any of the structure abbr.'s defined in TERRAIN.DAT. You can put only one structure onto one square. The bottom-left entry is for signing if this square was SCOUTED (somebody moved through it, preferably with H, or Weapon practiced there, or Quested there - these orders help you find plants and creatures which you might overlook if you cross the square with the T order) or not. To make a square scout-marked, put a '*' to it. The three entries to the right can be used freely as 'plants and other stuffs'. This included Creatures. To write a Creature here, just enter it's Creature#. To write a plant here, if you know the plant's id, write a * and the plant#. Example: *33 will mean strawbin bush. Or you can write any of the three-letter abbreviations defined in PLANTS.DAT. On the printed map 'plants and other stuffs' differ from creature#'s in that they're written with italic letters. You can also write structure numbers (and names), more details at the end of the doc, at 'NEW FEATURES OF VERSION 1.3'.

To delete any field just use backspace.

When you are finished, press F1 or TAB. If you made an invalid entry (like using not-defined terrain, structure or plant names) that field will appear as blank.

To clear a whole square press ALT C.


To print a Reference Sheet, press ALT R. To print a 26x30 squares part of your map, press ALT P. The upper-left square will be the editor's current upper-left square.


To finish editing, press the F1 key. You will return to DOS. Note: the modifications you made to the current page are saved to the database whenever you change page and when you leave the program by pressing F1. Thus, when you modified one square it will be not immediately saved. However, it will be saved later anyway, so you don't have to worry about this except in case of a power cut.


My database, MIMAP.DAT is 300x400 square, and contains my mappings. But it is possible that you are on a different location than me, or you have a larger map which outgrown mine. In this case it is necessary to create a new database. To do this, run the GENMIDAT.EXE program. The first parameter is the filename of the new database. Use a valid DOS name. Do not use an existing file name. As a second and third parameter, you have to give the width and height of the database in squares. You must specify at least 13x6 (but I suppose you'll give at least 200x100). There's no upper limit (or there is, but it's somewhere about 30000x30000).




When two players are using their own databases, but are on the same territory it it necessary to merge their maps periodically. The COPYMAP.EXE program will do this. Also, it is useful when you realize you are going out of your map, and you want to make your database bigger. The first two parameters of this command are map database names. The first is the source database, which remains untouched during the process. The second is the destination database, which will be updated during comparison with the source database. You define, after the first two parameter, the following: (x,y) upper-left coordinate of the block you want to copy from the source database. (x,y) upper-left coordinate in the destination database where you want to copy the map block. Width and Height of the block you want to copy. You can't copy blocks which would stick out from any of the databases.

Squares in the dest. dbase are not overwritten directly from the corresponding source dbase. If the terrain or structure differs, the program issues a warning, by giving the coordinates of the error in the dest. dbase, and the original terrain/structure remains in the dest. dbase. If only one of the two squares have terrain type/structure, it will be written into the resulting square. All plants and other stuff which can be found on the same square in source or dest. will be put to the dest. square. If together on both squares are more than three different things, only the first three will be put to the dest. square, and the program issues a warning. If any of the two squares are scouted then the result will be scouted.

You may give one more optional paramater, 'over', at the end of the parameter list. With this, the source block will directly overwrite the destination block.

Before use, make a backup of the destination database to avoid irreversible mistakes. If there're many error messages, it's quite possible that you have not checked up your (x0,y0) and (x1,y1) coordinates correctly.

Examples of use:

1. You take your database, MAP1.DAT to your friend, who uses MAP2.DAT. Both of you use 200x200 squares databases, the square (0,0) is the same on both maps. You issue

COPYMAP MAP1.DAT MAP2.DAT 0 0 0 0 200 200

Everything in MAP1.DAT which didn't exist in MAP2.DAT will be now in MAP2.DAT. If there wasn't any error, you may copy for yourself MAP2.DAT:


and both of you have the common update.

2. You just reached coordinate 200E and want to expand your 200x200 database into a 400x400. First, you create a new database:


Then copy the old version into this:


NEWMAP.DAT will continue the whole MIMAP.DAT in it's left-middle and have many new empty squares. You may rename NEWMAP.DAT to MIMAP.DAT

3. You detected an error in your map block (60,40,90,60) [upper-left, bottom-right]. You ask a friend who has a trustable map, and try to locate the error. Your friend's (0,0) is 10 westward and 50 northward from yours.


If there're too many errors, you can simply delete the damaged part by creating an empty 30x20 database, and copying it into yours:

COPYMAP BLOCK YOURMAP.DAT 0 0 60 40 30 20 over

Then copy your friend's database.

To use COPYMAP succesfully, without trouble, you have to be very careful. Make always a backup before use, and check the result of the update with EDITMI. It is a good idea to make a batch file to avoid always typing lots of parameters.


You may use SETUP.TXT instead of command-line parameters. You can set here the printer port (LPT1 or LPT2) the paper type (A4 or LEGAL) the printer type (HP for HP Laserjet series or EPSON for matrix printers), the name of your database and the origo of you coordinate system. If you write 0 0 then then upper-left corner will be (0,0) otherwise if you write X Y the origo will be X squares right and Y squares down from the upper-left corner. If you specify DOWN after X Y, the vertical coordinates will increase downwards, if UP, it'll inc. upwards. COPYMAP and SEEKMAP also uses this origo when searching/displaying error messages.

Note: You can write more than one XY: line in SETUP.TXT. Write a name at the end of each line, indicating the group's name which is using this coordinate system. In the map editor, you can switch between different coordinate systems by pressing ALT+K. One group name can be max. 7 characters.

Example (of SETUP.TXT lines):

XY: 120 39 UP KLN
XY: 25 30 DOWN WKK
XY: 102 283 UP MLF
XY: 25 30 DOWN

If you use more XY: lines, it is a good idea to write a "default" line - without group name - as a last XY definition, because COPYMAP and SEEKMAP always uses the last XY definiton of SETUP.TXT.


1. FAR STRUCTURE NAMES. Now you can put Far Structure names and other remarks on your map. Put a number between 1-999 into your square of your choice, and precede it with a !. Write into STRUCTS.DAT (see more detail at the beginning of the DOC file) the number and the text you want to be printed on the bottom of the map each time you print that square. You can have up to 20 remark text on any map sheet. Note that the number I used are not necessarily the same as the structure's id number. If you replace a number, don't forget to replace it in STRUCTS.DAT, too.

Note: STRUCTS.DAT must be updated when you merge your map with another which contains a new structure number.

2. TERRAIN HOT KEYS. When assigning a terrain type to an empty square, you don't have to enter the mini-editor. Instead, just press the corresponding key defined in TERRAIN.DAT, as the fourth character of the line. For example, to make an empty square LOW HILLS just press the 'L' key after you moved the cursor to the required position. Note that SPACE can be used to clear the terrain type of a given square. Thus you can replace an existing terrain type with another using two keys, SPACE and a terrain key.

3. SEEKMAP.EXE. Now you can search for a certain map data. Give in the first parameter what you're looking for. If Creatures, then give the Creature#, if plants, give *number/name (for example *33 for strawbins or zin for zinki bushes), if structures, give the struct. abbr. (for example TR for temple ruins). If you look for a specific Far Structure, defined in STRUCTS.DAT, you can give the !number. SEEKMAP uses the same coordinates and database which is given in SETUP.TXT, but you can give a different database name as a second command-line parameter. All information is listed onto the screen and into the file SEARCH.LST.



searches for the !700 structure in MIMAP.DAT


searches for all coconut trees in your database


As I've seen, some people have problem with the printing. I'd like to help in this.

Make sure you set the printer port correctly (ie. LPT1 or LPT2) in SETUP.TXT.

1. HP Laserjet. If you have a HP laserjet printer, write into SETUP.TXT PRTR: HP (but this is the default value), the paper size PAGE: A4 or LEGAL. The graphic icons are defined by creating a font set, which is in MI.FNT. When the program starts, and you press Y, this file and the font sets (*.HUP) are loaded into the printer's memory. The program prints with a resolution of 300 dpi, if smaller or greater resolution is set the printing might fail.

2. EPSON compatibles. If you set in SETUP.TXT the printer PRTR: EPSON, the printing functions will use the standard ESC/P sequences to print the map and reference sheet. These are understood by the EPSON FX 850/1050, and I suppose by many compatibles. If you try to print your map, and it fails, maybe your printer is not in EPSON emulation mode. Please refer to your manual how to do this. If you have the EPSON emulation switched on, and the map is still not correct, then the program wasn't able to load the user-defined font set (MIEPS.FNT) to the printer. On some printers, there's a DIP switch which must be set to allow redefining of the user font set. Refer to your manual how to do this.

If your printer is not HP compatible, nor ESC/P compatible, and you're unable to print your map, I can suggest one thing: send me a photocopy of your printer manual, and I'll see what can be done.


If you have any question regarding the software package described here, contact me on the address above. Don't be afraid, this is a shareware program, you are permitted to use it freely. However, never sell it for money. In exchange for the help provided by my program, I'd appreciate if you could send me regularly any new and interesting information you gained while playing Monster Island. This includes blurbs, tricks and your map database. Please send 3 1/2" or 5 1/4" disk. I'll send it back to you, with the update I have. Thank you for reading this doc file and good luck.

Valid XHTML 1.0! Valid CSS!