-------------------- Zelda Expansion Hack -------------------- Anyone who has hacked Zelda knows that it's very difficult to gain any additional tiles and screens. This hack blows those limitations out of the water by providing the following resources: Frees 60 overworld tiles Adds 40 new overworld block definitions Adds up to 96 overworld column combos Adds 4 additional overworld screens Frees 48 dungeon tiles (plus 3 shared with the overworld) Doubles the number of available dungeon blocks from 8 to 16 Adds up to 96 dungeon column combos Adds 17 new dungeon room templates What does that all mean? It means that your Zelda hacks can have more graphical variety. Add new enemies, rivers, mazes, lakes, forests, rock outcroppings, etc. Full source code is included to easily modify the available data and cherry pick the features you want. Freed tiles are clearly marked so they can be easily modified. Includes logic to decide which of the new tiles are solid and which are walkable. Several sample columns have been included which can be used in your hack or be replaced as needed. Although the hack makes the column and block space available, it's still up to you as the hacker to understand how the data is stored and how to create new columns and screens. It is recommended that you read the document Understanding Zelda 1 Screens, Columns, and Blocks (included in the download) before attempting to use this hack. Test Patches ------------ The test folder contains two test patches. The test patch add_test_columns.ips adds several test columns to the start screen which can be useful when developing new blocks, particularly the arbitrary 4-tile version. The rem_test_columns.ips patch removes these test columns once done testing. You can apply the former patch, make your desired changes to the relevant blocks, and then apply the latter patch to restore the original columns. Compatibility ------------- It is recommended that you use Zelda Map Generator when working with this hack. This hack is mostly compatible with ZeldaTech. It will look glitchy since it doesn't know how to handle the additional blocks, columns, and screens, but it functions correctly when saving. -------------- Technical Info -------------- It is highly recommended that you work with the source code provided in this hack to make changes easily. The code logic does not need to be edited, only the relevant data does. The following is a high level description of how the various data and code changes work. The hack rearranges the overworld column groups so that each group contains the maximum of 16 columns. This frees up 6 entire groups of 16 columns, for a total of 96 more columns. These 6 column groups are repointed to free space so that you can add new columns easily. You can also repoint any of the groups if you need more space than what's provided out of the box. Column compression is disabled for the new overworld column groups in order to provide more blocks. Removing compression frees up a single bit in each byte of the column definitions, thereby allowing block indices to go beyond the vanilla maximum of 0x3F. This change effectively doubles the number of possible blocks. Similar changes are made for the dungeons in order to increase the number of available columns and double the number of useable blocks. Additional screens are made available by modifying the dungeon room template pointer based on the template id. The number of walkable and unwalkable tiles for both the overworld and dungeons can be modified by changing the variables WalkableStartTileOverworld and/or WalkableStartTileDungeons which are found in overworld_expansion.asm. Adding Overworld Columns ------------------------ While you don't need to be concerned about compression when adding new overworld columns, you still have to mark the beginning of each column with the start-of-column bitmask. Here's a basic column example: 9B 1B 0E 0E 0E 0E 0E 0E 0E 1A 1B This is an uncompressed column with the bitmask for start-of-column added to the first byte (0x1B + 0x80 = 0x9B). Compiling --------- On Windows open a Command Prompt and navigate to the src directory provided in zip file. Run the following command to recompile the patch: snarfblasm zelda_expansion.asm