summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-05-16 02:10:57 -0400
committeryenatch <yenatch@gmail.com>2013-05-16 02:10:57 -0400
commit5870b2cb61a21920849dfd4407bb0d6bb5ce6598 (patch)
treefb2f15917cf06cbcdb597af413c5e639a6e92bf9
parent8d770cd80da45dd7902d5489a34d9386aff5cae7 (diff)
Crystal: Generalized 20x20 connection data
-rw-r--r--GSC/connections.mdwn49
1 files changed, 43 insertions, 6 deletions
diff --git a/GSC/connections.mdwn b/GSC/connections.mdwn
index 3c50abb..19338db 100644
--- a/GSC/connections.mdwn
+++ b/GSC/connections.mdwn
@@ -55,12 +55,49 @@ Here's a handy cheat sheet for common addresses used when making connections. No
<tr><td>bottom right block</td><td>...</td><td>$c800 + (2 * (3 * w)) + (2 * (3 * h)) + (w * h) + 36 - 1</td></tr>
</table>
-# 20x20 map simplifications
-For all 20x20 maps:
+# 20x20 map simplifications
-* north connection strip is at top left of the top 3xw
-* west connection strip is at top left of left hx3
-* east connection strip is at top left of right hx3
-* south connection strip is at top left of bottom 3x
+Flush 20x20 maps can be connected to achieve a seamless overworld.
+Take caution to make applicable corners use the same blocks as the opposite diagonal map's border tile.
+
+## North
+ ; NORTH to Example
+ db GROUP_EXAMPLE, MAP_EXAMPLE
+ dw Example_BlockData + EXAMPLE_WIDTH * (EXAMPLE_HEIGHT - 3) ; strip pointer
+ dw OverworldMap + 3 ; strip destination
+ db EXAMPLE_WIDTH ; strip length
+ db EXAMPLE_WIDTH ; connected map width
+ db EXAMPLE_HEIGHT * 2 - 1, 0 ; y, x offset
+ dw OverworldMap + (EXAMPLE_WIDTH + 6) * (EXAMPLE_HEIGHT) + 1 ; window
+
+## South
+ ; SOUTH to Example
+ db GROUP_EXAMPLE, MAP_EXAMPLE
+ dw Example_BlockData ; strip destination
+ dw OverworldMap + (EXAMPLE_WIDTH + 6) * (EXAMPLE_HEIGHT + 3) + 3 ; strip location
+ db EXAMPLE_WIDTH ; strip length
+ db EXAMPLE_WIDTH ; connected map width
+ db 0, 0 ; y, x offset
+ dw OverworldMap + EXAMPLE_WIDTH + 6 + 1 ; window
+
+## West
+ ; WEST to Example
+ db GROUP_EXAMPLE, MAP_EXAMPLE
+ dw Example_BlockData + EXAMPLE_WIDTH - 3 ; strip pointer
+ dw OverworldMap + (EXAMPLE_WIDTH + 6) * 3 ; strip destination
+ db EXAMPLE_HEIGHT ; strip length
+ db EXAMPLE_WIDTH ; connected map width
+ db 0, EXAMPLE_WIDTH * 2 - 1 ; y, x offset
+ dw OverworldMap + EXAMPLE_WIDTH * 2 + 6 ; window
+
+## East
+ ; EAST to Example
+ db GROUP_EXAMPLE, MAP_EXAMPLE
+ dw Example_BlockData ; strip pointer
+ dw OverworldMap + (EXAMPLE_WIDTH + 6) * 4 - 3 ; strip destination
+ db EXAMPLE_HEIGHT ; strip length
+ db EXAMPLE_WIDTH ; connected map width
+ db 0, 0 ; y, x offset
+ dw OverworldMap + EXAMPLE_WIDTH + 6 + 1