======================================================================
Mario Improvement 3                                       Version 0.12 
Copyright (C) 1999 by LincolnSoft			April 24, 1999
======================================================================
           The greatest game of all time just got better!

New in Version 0.12
===================
- Fixed a bug where if the user moved two objects to the same location,
the cursor would automatically pick up the one underneath it
- Fixed crash bug (I hope) 
- Fixed bug in scrolling - previously, under certain conditions,
objects would not be displayed onscreen.
- Sped up the editor a bit
- Reduced executable size
- Two new keys added - the "K" key jumps 16 objects ahead, and the "J"
key jumps 16 objects backward.  (For speedier object selection).

Mario Improvement 3 is a level editor for Super Mario Bros. 3 (NES).  It currently supports:

-Editing of about 1/5 of the levels in the game (total game levels: 200).  See below.
-WYSIWYG interface (keyboard only)
-All object types available in the first level

System requirements
===================
-At least a 386 (but probably something more like a 486)
-A VGA card
-DOS
-If you run it from pure DOS, you need CWSDPMI - available separately. It should work fine from Windows 9x. (A note about Windows 3.x: Not only should you have upgraded to Windows 9x by now, I don't know if it will work properly, either.)
-The Mario 3 ROM (available separately)
-A NES emulator with Mapper 4/MMC3 support (needed to run Mario 3) NESticle and FWNES should work fine for this
-A sense of creativity :)

How to use
==========
Before you use the editor, you must understand a little bit how Super Mario Bros. 3 stores its levels.  Each side-scrolling area in Super Mario Bros. 3 is stored as groups of 4-byte objects (usually consisting of things like ground, walls, etc.) and 3-byte objects (usually consisting of things like coins, blocks, and bricks).  There are only a limited number of these two object types in each level, and they are not interchangeable.  If you try to do so, the game will crash miserably when you first enter the level from the map screen.  You cannot add or take away any of these objects.   Also, the bonus areas (e.g. down the pipe you can fly up to in the first level) are stored separate from the main level, and so are the endings of levels (e.g. the ending to World 1-4), in addition to other "bonus" areas. Here is the number of available objects of each type in the first few currently editable levels:
	
			3-byte 	4-byte	
			======	======
World 1-1		80      5       
World 1-3		72	3
World 1-1 Bonus Area	12	10
World 1-2 Bonus Area	8	6

To check whether an object is 3 bytes or 4 bytes, find the upper left corner of the object.  There should be a green or pink upside-down "L". 
If it's green, that means the object is 3 bytes, and if it's pink, it's 4 bytes.

Editor Keys
===========
Arrow keys: Move cursor, scroll around level
Space bar: Use the space bar to pick up 3-byte objects - position the cursor over the upper-left corner of the object (marked by the upside-down "L").  Then while holding the space bar, press any of these keys:
	Arrow keys: Move object around 
	Period key: Increase length of object (up to 16), after that it will change to the next object.
	Comma key: Decrease length of object (down to 1), after that it 	will change to the previous object.
	"M" key: Jump 256 objects ahead.
	"N" key: Jump 256 objects backward.
	"K" key: Jump 16 objects ahead.
	"J" key: Jump 16 objects backward.
Alt key: Use the Alt key to pick up 4-byte objects - again, position the cursor over the upper-left corner of the object.  While holding it, press:
	Arrow keys: Move object around 
	Period key: Increase height of object (up to 16), after that it will change to the next object.
	Comma key: Decrease height of object (down to 1), after that it 	will change to the previous object.
	"M" key: Jump 256 objects ahead.
	"N" key: Jump 256 objects backward.
	"K" key: Jump 16 objects ahead.
	"J" key: Jump 16 objects backward.
	Apostrophe key: Increase length of object (up to 255)	
	Semicolon key: Decrease length of object (down to 0)
"W" key: Select world, then level (use up & down arrow keys to change, then press enter)

"S" key: Save level (NOTE: You MUST save on every level!)

Esc key: Exit the editor

Play with the editor and everything will become clear.

Because the different worlds in Super Mario Bros. 3 have different amounts of levels in them, some of which are not numbered, the first levels in the world are the standard numbered levels, the next batch is the non-numbered levels (e.g., the dungeons, ships, the Pyramid and Quicksand levels in World 2, Piranha Plants in World 7, etc.)  After that are all the bonus areas.  This is the only way I could think of doing it.  Here is the amount of each in each world:
	
	 Numbered Non-numbered Bonus 	
	 ======== ============ =====
World 1  6         2           8
World 2	 5         4           7
World 3  9         3           13
World 4  6         3           14
World 5  9         5           18(NOTE: The tower takes up two levels)
World 6  10	   4	       14
World 7  9         5           15 
World 8  2         9           11 

In case you discover it, World 0 is supposed to be the map screens, but they're not implemented in this version.

In addition to that, Super Mario Bros. 3 uses different "object sets". For example, the first level uses object set 1 (plains levels).  Other levels might use different ones, for example, the dungeons use one specially designed for dungeons, and the desert levels in World 2 use another one.  There are a total of 10 object sets.  Only levels that use Object Set 1 are editable in this version (others will be added soon).   Here is a listing of all the object sets:

Object Set 0 - Used for the map screens, has a totally different format than the side-scrolling levels do.
All the rest are used in side-scrolling levels:
Object Set 1 - Plains Levels, the most common set, 40 levels use it.
Object Set 2 - Hilly/Underground Levels, this set is shared by the hilly levels (e.g. World 1-2) and the underground ones (e.g. World 1-5). 
Object Set 3 - Sky Levels, not to be confused with Cloudy Levels, this is the least common set. The first level that uses it is World 1-4.
Object Set 4 - Dungeons, used (obviously) by the dungeons.  However, not all dungeons use this set (e.g. the dungeon in World 2).
Object Set 5 - Ships, used for the airships as well as the tanks in World 8.
Object Set 6 - Cloudy Levels, used mostly by levels in World 5, but also used in some bonus levels (e.g. the bonus area in World 1-3).
Object Set 7 - Desert Levels, used mostly by the levels in World 2, but some levels in World 7 also use it.
Object Set 8 - Water/Pipe Levels, shared by the underwater levels (e.g. World 3-1) and the vertically-scrolling pipe levels (e.g. World 7-1).
Object Set 9 - Giant Levels, used mostly by levels in World 4, but also some levels you might not even think of (e.g. the Piranha Plants in World 7 and the Hand Traps in World 8).
Object Set 10 - Ice Levels, only levels in World 6 use this.

You may just have to find out for yourself which levels use which, because it'd take too long to list all the levels here.  (There's 200 of them.)  Some levels might not use what you expect, so beware.  Experiment, experiment, experiment.

SMB3 Engine Limitations
=======================
There are many objects that will crash (or otherwise do weird stuff to) the game simply by using them.  If an object says "Crash" or it says "Warning: Crashes Game" for the object in the status display, don't use it.

Some objects (like some of the block platforms in the first level) extend automatically all the way to the ground.  If an object other than the "flat ground" object is underneath them, it will do unpredictable (often weird) things to the game, and sometimes crash it. It doesn't work the same way all the time so experiment.

Some objects, when the length is decreased to one, instead of being one block long, will last the whole level.  I don't know all the objects that are like this, but to give you an example, the background clouds are like this.  I'm not sure why this happens but there's no way I know of to get around it.

Some levels are used twice (mostly level endings), there's not many of them though.

If you place pipes or doors in certain locations they won't work properly.  I haven't figured out where the pointer tables are located yet (which is needed to fix this problem).  Edit these objects at your own risk.

Each level is only a certain length.  This means that when you get to the end of the level, the game will stop scrolling. If you try to place objects past this point, you'll never see them, because the game won't ever scroll far enough.	

Future Progress
===============
Listed in arbitrary order:

-Support for levels with all object sets
-Map screen support
-Enemy/sprite editing (also includes moving platforms)
-Support for the pipe levels (i.e. the kind that take you to another spot on the map) and the Hammer Brother levels, and perhaps mushroom houses
-Support for pointers (so you can change where pipes and doors lead to, among other things)
-Mouse support
-A Win95-copy GUI
-Level header support (each level has a 9-byte header that I haven't entirely figured out yet, could potentially control things like the length of the level, the level's music, the object set it uses, the palette it uses, etc.)

In the next major version I plan to include support for all of the 
object sets, so all of the levels are editable.

Contact
=======
LincolnSoft

Email:
abenintendo@hotmail.com

Mario Improvement 3 Website:
http://members.tripod.com/~abe_nintendo/

Go here to download all future versions and new levels.

If you make any levels with this program, send them to me!  I'll put them up on the Mario Improvement 3 Website.  (Make sure they're in IPS format, please don't send me the entire ROM.)  I expect lots of creative levels to be made with this program.

Do not email me asking for ROMs, as all such messages will be ignored
and deleted.  Mario Improvement 3 does not come with ROMs, and never will.

Version History
===============
Version 0.12 - April 24, 1999

New keys added
Fixed obscure scrolling/object moving bugs
Fixed crash bug
Sped up the editor
Reduced executable size 

Version 0.1 Beta 1 - April 13, 1999

This version was the first version.


Legal Stuff
===========
Mario Improvement 3 Copyright (C) 1999 by LincolnSoft.  All rights reserved.
Allegro game programming library by Shawn Hargreaves.
Nintendo Entertainment System (NES) is a registered trademark of Nintendo of America.
Super Mario Bros. 3 is a trademark of Nintendo of America.
This product includes software developed by the University of
California, Berkeley and its contributors.
This program was compiled with DJGPP, available at http://www.delorie.com/
Neither LincolnSoft nor the author are affiliated with Nintendo nor condone ROM piracy.  
This program is freeware.  When you use this software you do so at your own risk.  Neither LincolnSoft nor the author are responsible for any loss or damage resulting as a result of the use or misuse of this software.  This program may be distributed freely as long as the archive remains unchanged and ROMs are not packaged with the program.









 



 
