Empty all dungeon rooms

View previous topic View next topic Go down

Empty all dungeon rooms

Post by SunGodPortal on Mon 16 Feb 2015 - 4:39

I have a few questions concerning Hyrule Magic and the indoor areas of the game.

1) In HM there is the option "Empty all dungeon rooms". The compendium says it is a bad idea to use this. When i used it and then tested the ROM Link never woke up in the opening scene. What causes this?

2) Does anyone know what the "Bad Error" messages refer to when using the aforementioned option? It provides a little description for each one but I have absolutely no idea what it is refering to.

I tried it out because I'd like to find a way to remove as much of the original indoors setups as possible without then destoying things like: the game's ability to start, boss battles and pendant/crystal drops, the battle with Ganon and the triforce room. After I get more practice editing dungeons I'd like to build nearly all of my indoor areas from scratch. So...

3) Is there a way to remove everything from every room and leave those things I mentioned intact so as to be much more conservative about the changes made to them? Just to clarify, I'm talking about clearing every room except Link's, boss rooms, Ganon's room and the triforce room. Going through every room in the dungeon editor and clicking "1" and then "remove all", "2" and then "remove all", etc... a couple hundred times is insane, but "Empty all dungeon rooms" appears to break the game.

I don't know how everyone else has gone about creating their dungeons but i would really only prefer to edit the original rooms for a sort of Zelda III "remix" idea I'm contemplating on the side. For my main hack I would prefer to work with a clean canvas.
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Empty all dungeon rooms

Post by Puzzledude on Mon 16 Feb 2015 - 8:58

1) In HM there is the option "Empty all dungeon rooms". The compendium says it is a bad idea to use this. When i used it and then tested the ROM Link never woke up in the opening scene. What causes this?
Do Not choose "empty all rooms". This option does Not empty all rooms, it just puts all pointers for rooms to point to one single empty room, while all the code for filled rooms is still on place. Once you would start filling the rooms again, you would severely affect the rom, which will have no place to expand, causing game breaking glitches. (Which makes Hyrule Magic a poor editor unfortunately). Also: don't use the "remove all exits"= braks the "exit"/entrance from Ganon to Triforce shrine (which can only be reverted to normal using hex).


2) Does anyone know what the "Bad Error" messages refer to when using the aforementioned option? It provides a little description for each one but I have absolutely no idea what it is refering to. I tried it out because I'd like to find a way to remove as much of the original indoors setups as possible without then destoying things like: the game's ability to start, boss battles and pendant/crystal drops, the battle with Ganon and the triforce room. After I get more practice editing dungeons I'd like to build nearly all of my indoor areas from scratch. So...
Bad error is a message of a pushable block getting out of the screen or the object out of screen, or item glitch (multiple red dots respawning).


3) Is there a way to remove everything from every room and leave those things I mentioned intact so as to be much more conservative about the changes made to them? Just to clarify, I'm talking about clearing every room except Link's, boss rooms, Ganon's room and the triforce room. Going through every room in the dungeon editor and clicking "1" and then "remove all", "2" and then "remove all", etc... a couple hundred times is insane, but "Empty all dungeon rooms" appears to break the game.

I don't know how everyone else has gone about creating their dungeons but i would really only prefer to edit the original rooms for a sort of Zelda III "remix" idea I'm contemplating on the side. For my main hack I would prefer to work with a clean canvas.
Even if you make this method: "1" and then "remove all", "2" and then "remove all", etc... it will still glitch the game. HM can not handle all rooms being emptied and filled again, since this requires severe changes to the dungeon data code.

With the current poor tools available it is actually not recommended for you to use Alttp as a template (the game is filled up and HM is unable to make radical edits).

What I'm using is the hex-gluing advanced method. Leave the original dungeons as they are. Make several roms, construct each dungeon in a gfx and otherwise compatible files. Each dungeon in one file (then HM has enough space to work). Then the main rom is opened in hex with precalculated pointers for BG data, sprites, items etc (since I decoded all in hex a while back).

Data is inserted using XaserLe's program Room header expander. This allows for the mixed data (needed to work in HM) to be realocated into hex data (not compatible with HM, but easy to find in hex). Then I traverse the data into precalculated addresses with precalculated pointers for all rooms for BG, sprites, items etc. Finally replace the pointers, so they no longer point to old dungeons (still in), but to new dungeons.

But thus the rom is locked for HM editing. So it needs to have all overworlds done (separately obviusly) as well as houses and caves.

This is somewhat an andvance method, but that's what I'm using in Gates of Time hack.

Otherwise HM is capable of small edits by rather double clicking the BG item and changing it to something else (can not glitch this way, since the code string is not shifted).

For instance Puzzledude's Quest hack was done with HM and original Alttp rom and as you can see, it barely "survived" the editing (if you analize the rom in HM or hex). This is the best what can be done with Alttp template and HM alone.

For an extensive hack you will unfortunately need more advanced methods, which include the understanding of the actual code in hex (mainly for indoors), since the overwolds is basically a "drawing" method and is tended to not glitch (just don't use the overworld items or transport whirlpools).


Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Empty all dungeon rooms

Post by SunGodPortal on Mon 16 Feb 2015 - 19:26

With the current poor tools available it is actually not recommended for you to use Alttp as a template (the game is filled up and HM is unable to make radical edits).

This is very sad news but I will persevere.

Make several roms, construct each dungeon in a gfx and otherwise compatible files.

I get the first part but I'm not sure what you're refering to by "gfx and otherwise compatible files". Could you please clarify?

So if I'm understanding this correctly the best method would be to work on each dungeon in a seperate ROM, have an expanded ROM for the dungeons to be placed into when finished (at the end of the original game data) while leaving the original data intact and then change pointers so the game loads dungeon data from the new locations? Did I get that right?

(just don't use the overworld items or transport whirlpools)

Could you explain what you mean specifically by "use" here. It's a very vague term.


Last edited by SunGodPortal on Mon 16 Feb 2015 - 22:29; edited 4 times in total (Reason for editing : since no one had replied yet I updated it as needed)
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Empty all dungeon rooms

Post by Puzzledude on Tue 17 Feb 2015 - 5:04

""Make several roms, construct each dungeon in a gfx and otherwise compatible files.""

I get the first part but I'm not sure what you're refering to by "gfx and otherwise compatible files". Could you please clarify?
This means, that all the files were initially copy/pasted from the Main file (and thus have the same gfx and the dungeon items). You can namely edit the dungeon items: for instance element 0C0 is filled with certain tiles of gfx to form a "roof". If you change this to a tall torch for instance, the files are no longer compatible, so you can not hex-transfer: since what is a torch in one file, would then be a roof of walls in the other.


So if I'm understanding this correctly the best method would be to work on each dungeon in a seperate ROM, have an expanded ROM for the dungeons to be placed into when finished (at the end of the original game data) while leaving the original data intact and then change pointers so the game loads dungeon data from the new locations? Did I get that right?
Yes. The new indoor data is usually shifted by 1MB, and the game is thus 2MB big. But this is somewhat advanced method, not really recomended for the first attempt of trying to mod this game. With HM you should be able to edit original dungeons quite a lot and change their gameplay. You also should be able to fill new sections, that original authors left empty. To start editing from empty rooms will require much more knowledge and effort (due to poor editors available). For instance, my 5 dungeons for the Conker hack, were all constructed in separate Alttp files.


""Just don't use the overworld items or transport whirlpools.""

Could you explain what you mean specifically by "use" here. It's a very vague term.
It means don't have them in the game whatsoever, or remove them completely. Having them in the game, might cause problems.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Empty all dungeon rooms

Post by SunGodPortal on Tue 17 Feb 2015 - 6:45

This means, that all the files were initially copy/pasted from the Main file (and thus have the same gfx and the dungeon items). You can namely edit the dungeon items: for instance element 0C0 is filled with certain tiles of gfx to form a "roof". If you change this to a tall torch for instance, the files are no longer compatible, so you can not hex-transfer: since what is a torch in one file, would then be a roof of walls in the other.

Ooooookay. I believe either the choice of words or the way the sentence was structured was what threw me off here. I kept reading it again and again and I had no idea what you meant but now it makes perfect sense. Smile

Yes. The new indoor data is usually shifted by 1MB, and the game is thus 2MB big. But this is somewhat advanced method, not really recomended for the first attempt of trying to mod this game. With HM you should be able to edit original dungeons quite a lot and change their gameplay.

Even though it may be beyond my grasp for the time being, I'd still like to attempt to learn more about how this can be done. If possible I'd like to avoid having a game as broken as Bruce Campbell vs Ganon. Any suggested reading?

It means don't have them in the game whatsoever, or remove them completely. Having them in the game, might cause problems.

I'm not too concerned about the whirlpools, but are you saying that I can't hide any goodies under the bushes?
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Empty all dungeon rooms

Post by Puzzledude on Tue 17 Feb 2015 - 7:09

"I'm not too concerned about the whirlpools, but are you saying that I can't hide any goodies under the bushes?"

Unfortunately yes.


-------
"Even though it may be beyond my grasp for the time being, I'd still like to attempt to learn more about how this can be done. If possible I'd like to avoid having a game as broken as Bruce Campbell vs Ganon. Any suggested reading?"

This info is vital to know first (so you can understand the indoor data)
[You must be registered and logged in to see this link.]

General hex addresses info (partially recomended)
[You must be registered and logged in to see this link.]


Mandatory info on pointers and addresses
[You must be registered and logged in to see this link.]
this calculation is actually done automatically with address calculator.

Necessary program called RT (room transfer), coded by XaserLe.
[You must be registered and logged in to see this link.]

Main goal of the program: bring the data to easy-viewable locations to be trasfered later. If you run any Alttp rom through it and go to the end of the file in hex, you will see, what I mean.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Empty all dungeon rooms

Post by SunGodPortal on Thu 19 Feb 2015 - 21:08

I think I have one or two more questions regarding this subject. Otherwise I am satisfied with the information presented to me.

When I empty a room of all things is HM overwriting the original information with let's say "blank" information or does it have it's own weird way of handling this? If I then go back and add stuff to the room does it then place any new data where the old data was located or again does it have it's own method?

If these questions seem strange I'm just trying to learn more about how this program works to hopefully prevent any more headaches than are necessary. I'm trying to take preventative measures against something important being overwritten because of how little space there is inside the ROM. I figured one of you guys might know the answer to this.
avatar
SunGodPortal
                             
                             

Since : 2015-01-26

Back to top Go down

Re: Empty all dungeon rooms

Post by Puzzledude on Fri 20 Feb 2015 - 2:36

When I empty a room of all things is HM overwriting the original information with let's say "blank" information or does it have it's own weird way of handling this? If I then go back and add stuff to the room does it then place any new data where the old data was located or again does it have it's own method?
If you emtpy the room in HM by using the bg1, bg2, bg3 layer and then "remove all" and then save, the data will actually be erased. Which means, that there is now more space. For every such action HM will recalculate the pointers and realocate the data for all 295 rooms.

Despite the fact, that it now has more room, which is positive, the program might make a "mistake" if you for instance empty 50 rooms like that; and it simply makes a false calcultion. However, if you always take the data away, this might happen in less cases, if compared to when you add data. When adding, the same thing happens: each change+save realocates all pointers and data for all rooms, since the program wants to have the data for one room right after another down to the byte (and the placement of rooms in mixed).

Puzzledude
   
   

Since : 2012-06-20

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