I figured it's time for another one of my theory posts. Keep in mind, my last post like this turned into the Real-Time World Edit code. Here it goes.

AC:WW uses a series of bytes that read either 00 or 01 to decide if an item on the world map is buried. Why not apply the same idea to save the current position of all of your trees, or all of your flowers, or a rock maze? Before I go into detail, I'd like to answer the question as to how this would be helpful? Like I said above, you could create and destroy massive mazes with the press of an activator. You could save your town from being destroyed by visitors by simply saving the position of your trees and re-creating them after your visitors leave. The same goes for flowers.

Now, what would we need to make this happen? 4,096 bytes of free ram, to be exact. Luckily for us, the DS version of AC has plenty of free ram. 256 free lines in a debugger is easy to spot. What would we need to do? Write an ASM routine to search through the world map for a given hex (0xF1FF for example). When it finds it, it'll change the 00 to a 01 at that slot's corresponding spot in the free ram. How would we do this? By creating an equation that would take the address of each slot on the world map and correspond it to one of the free bytes of ram. It will be in a series, so we can also write the opposite of this equation to go through the series of bytes and find any that are set to 01. When it finds one, it'll change that free byte's address back to the actual map slot address and place the item there. Complicated, but it's definitely possible. Much easier than the RTWE, accomplished by Toenailed.

So, who's up for the challenge?

EDIT: We can use 0x022BF200 to 0x022C1200. Starting at the first slot, it's 0x021E3124 + DC0DCh to get to the first byte we're using. Really we just need to write an ASM routine to subtract 1h from the number we're adding (DC0DC) each time it runs through the loop. This will get you to each of the free ram slots. For example:

0x021E3124 -World Slot 1
+DC0DC
__________
0x022BF200 -Free Slot 1

Then

0x021E3126 -World Slot 2
+DC0DB
__________
0x022BF201 -Free Slot 2