Dungeon Editor idea

View previous topic View next topic Go down

Dungeon Editor idea

Post by Puzzledude on Mon 8 Jul 2013 - 13:26

Hello, all Asm programers. As you might know (or not) I've decoded all the data we need regarding dungeons. So it is quite strange, that we are having so much trouble with indoor bugs.
 
So I had an idea about the Editor, which will be able to edit all indoors only. This way we could construct all indoor rooms easily and bug-free in a separate rom, and then easy merge it with the main rom (overworld, monologue and all the other edits).
--------------------------------
 
Primary pointers for room data are at
1. 8746, 01 80 1F --> F8001  
2. 874C, 00 80 1F --> F8000  
3. 883F, 01 80 1F --> F8001  
4. 8845, 00 80 1F --> F8000  
 
All other pointers are at F8000. This can remain, but this new editor would have all pointers rearanged to point to fixed addresses (no bugs possible this way). This would start at 2MB, so 200600, 200C00, 201200. 600 in hex is plenty enough for one room. The first Megabyte is the actual game, while the second is left for expansion of the code (such as new Asm etc), while the third would be new dungeon data.
 
All indoor objects use 3 bytes only. Exception are the very first 2 bytes, which are floor1+2 values. Then 2 bytes to define x and y for the objects, as well as size, followed by object type.
 
X, Y, S (x, y, size are defined like so):
 
x, y, s---hex code (2 bytes)
00-00-0---00-00
00-00-1---00-01
00-00-2---00-02
00-00-3---00-03
00-00-4---01-00
etc
00-00-F---03-03
 
01-00-0---04-00
etc
02-00-0---08-00
etc
08-00-0---20-00
etc
20-00-0---80-00
etc
3E-00-0---F8-00 (max)
 
these are all possibilities of X and S, if Y is 0.
Last byte always loops from 00-03, if Y is 0.
 
Then the code repeats for Y is 1, last byte loops from 04-07 etc.
 
Looping
 
Y---loop
00--00-03
01--04-07
02--08-0B
etc
3E--F8-FB (max)
 
This was all for standard resizable items, there are two other types more (different, since they have only one size).
----------------------------------
 
I also decoded indoor sprites (couldn't find a way to reposition the data though), items, pushable blocks, torches, room header properties, even chest definitions, indoor damage pits messages. The dungeon entrance properties have also been looked into partially, since they are also needed.
 
I just thought of this idea, since I have a feeling I could construct rooms, just by manipulating the actual code in hex, and it would be easier for everyone, if the program would do it for us. Such a dungeon Editor would heavily attract beginners, will not produce bugs, would not tuch any other code and its code could be easily merged with other file by copying the third MB into it, as well as the fixed pointer section at F8000.
 
We would never have to calculate a pointer, since they would all be precalculated and fixed (this brings the possibility for bugs to zero, since no global shifts would occur - this is what bugs HM and could also be a problem for any program, even BM). Imagine, you have to calculate pointers for 300 rooms, and rearange 300 data banks, just because one element in room 1 was deleted or added.
 
While I can decode any hex code of the indoors, I have no skills to write a program.
 
 
What do you think of this idea?

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Dungeon Editor idea

Post by SePH on Mon 8 Jul 2013 - 17:42

I think this is a good idea, but like yourself I'm sadly unable to create a program at all. I have no idea why nobody though of this before, but a dungeons *only* editor for Zelda 3 could probably reduce the number of errors produced by a more complex editor like HM by a large margin.

SePH
    
    

Since : 2012-06-19

Back to top Go down

The author of this message was banned from the forum - See the message

Re: Dungeon Editor idea

Post by Potentialing on Tue 9 Jul 2013 - 2:35

If you could write the same thing for the recent discovery of music, then transferring music between roms should be simple as well!
avatar
Potentialing
Rank: Hardhat Beetle
Rank: Hardhat Beetle

Since : 2013-07-05

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum