Purpose
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:
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, dungeon graphics, 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
/documents/845/ (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
/utilities/1556/ when working with this hack.
This hack is mostly compatible with
/utilities/187/. 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
More technical info on how to use the patch is available in README.txt.
Suggestions and corrections can be sent to
http://www.romhacking.net/forum/index.php?action=pm;sa=send;u=81057.
--------------------
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
Database match: Legend of Zelda, The (USA)
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: DAB79C84934F9AA5DB4E7DAD390E5D0C12443FA2
File CRC32: D7AE93DF
ROM SHA-1: A12D74C73A0481599A5D832361D168F4737BBCF6
ROM CRC32: 3FE272FB