logo
 drop

Main

Community

Submissions

Help

86266673 visitors

Author Topic: Zelda Automap & Other Hacks  (Read 7487 times)

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Zelda Automap & Other Hacks
« on: July 23, 2011, 08:58:32 pm »
Update:

Download: Automap 0.2 (zipped IPS). Or try the old version.



I've just about finished with a hack to add an auto-map to the overworld in The Legend of Zelda (tracks which screens you've visited). Look at this video.

I'd love to get some help testing, if anyone is interested. I'm gonna test myself, of course, but I always seem to overlook something, so help is nice. I want to put the game through its paces and make sure the map does what it's supposed to do when, for example:
  • You Maintain/use multiple saves
  • You continue/save/retry or load/delete/beat the game
  • You change locations on map via recorder/"Take any road you want" stairway
  • You enter and exit caves and play levels

A few people have made suggestions such as showing how screens connect on the map or making different parts of the world different colors. I can't think of any way to do this without drawing the tiles on the fly, which is more work than I am interested in. When I'm done, I'm planning on sharing the code along side the patch so others can extend it if they see fit.

I'm also interested in input on the appearance of the map. So look at this thing:

Spoiler:

My favorite one is the first one, but I want everyone's opinions and suggestions. With the palette the map is using, I'm limited to gray, white, and blue. It's presumably possible for me to make the map use one of the other palettes, but I haven't looked too far into that.
« Last Edit: August 29, 2011, 05:34:44 pm by snarfblam »

Tito Santana

  • Newbie
  • *
  • Posts: 24
    • View Profile
Re: Legend of Zelda Automap
« Reply #1 on: July 23, 2011, 09:12:50 pm »
I was actually thinking about playing the original Zelda again so I'd be happy to help test.

As for which map, I think I like the first one the best as well.

Nightcrawler

  • Hero Member
  • *****
  • Posts: 5824
    • View Profile
    • Nightcrawler's Translation Corporation
Re: Legend of Zelda Automap
« Reply #2 on: July 24, 2011, 02:55:43 pm »
Nice work. What did you end up having to do to get the feature working? That's a feature that really should have been part of the original game.
TransCorp - Over 15 years of community dedication.
Dual Orb 2, Wozz, Emerald Dragon, Tenshi No Uta, Herakles IV SFC/SNES Translations

Jorpho

  • Hero Member
  • *****
  • Posts: 2627
  • Location: Canada
  • The cat screams with the voice of a man.
    • View Profile
Re: Legend of Zelda Automap
« Reply #3 on: July 24, 2011, 04:23:03 pm »
So it's an actual hack and not a LUA script like that thing for Metroid?
This depresses me. I feel like a goldfish right now...

Jigglysaint

  • Sr. Member
  • ****
  • Posts: 289
  • Corruptomancer
    • View Profile
    • Stuff Jigglysaint has done(like discover the Crocomire in MZM)
Re: Legend of Zelda Automap
« Reply #4 on: July 27, 2011, 04:09:33 pm »
I wonder, what are you using to keep the screens active?  This game contains flags that are similar to how flags are stored in the Oracle games and Link's Awakening.  There's a flag for which screen has been visited, though I'm unsure if it's overworld active or not.

A while back I actually created a hack that changed the secrets around quite a bit.  In this hack I made, you could select which one of your weapons could trigger the secret, what tile appears when you trigger it, and what tile is drawn when you re-enter.  I also made the whistle be screen dependent, and not hard coded with few locations.  I think both these hacks would go hand in hand together.  In fact, if there was a way to clear up how the game actually stores the enemies killed as bits in the room flags, that could ad in a whole bunch of flags that could used to create more things.  I am thinking lock blocks for dungeons, being able to set secrets manually instead of specific macros(the game actually checks for the tile ID and sets the secret, which is actually a sprite, then if triggered, replaces all of the same Id on screen).

Perhaps I should start fresh, knowing alot more about ASM than I did before, and create an entirely new system that is way more flexable and ripe for expansion.

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Legend of Zelda Automap
« Reply #5 on: July 27, 2011, 08:52:20 pm »
Nice work. What did you end up having to do to get the feature working? That's a feature that really should have been part of the original game.
It was surprisingly straightforward. There's more than enough free ROM space as well as save-RAM. I'm working on some other modifications that sound as if they would be simpler, but are turning out to be much more difficult (for example, making the subscreen open and close faster sounded so simple, but it's glitches galore).

So it's an actual hack and not a LUA script like that thing for Metroid?
Yup. There are two Metroid mods that provided a map. Parasyte hacked in a map that somewhat resembled Super Metroid's corner map. It was a 3x3 grid that simply showed whether there were any adjacent screens. Wasn't mind blowing, but it would presumably run on real hardware. MDBtroid had the LUA map that was more akin to Super Metroid's map in the pause screen.

Jigglysaint, I added my own map data using free save-RAM. I'm guessing that there's a bit field for every map (overworld, levels 1-6, levels 7-9), but that it would be used to track visited screens in levels and revealed secrets in the overworld. That's just a guess, though.

Worth mentioning: there are a number of random bits in the overworld data that, if they are changed, adversely affect the game (for example, there are two screens where changing the screen palettes affects which palettes are used in caves). I wonder what issues might crop up if you redo the whole map system. Also, there are plenty of simple hacks that could expand what options you have for screens. For example, it would be very easy to re-point the lists for which screens have armos-staircases, whistle stairs, etc., to give you virtually free reign. One thing I could never figure out is how the raft screens are managed. If I were more adept at ASM-hacking when I made Zelda Tech, I would have provided the user an option to "enhance" the game to provide more of these liberties.


Tito Santana, I'll PM you a link to the IPS. If you know anyone else who might be interested, you can share the link (just don't post it publicly). If anyone else wants to test, whether it's a full play-through or something less, please PM me. (Please  ;D)

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Legend of Zelda Automap
« Reply #6 on: August 07, 2011, 03:21:58 pm »
By popular request, the automap now has an actual map of the overworld.



Download: Automap 0.1. Or try the old version.
« Last Edit: August 13, 2011, 02:02:54 pm by snarfblam »

Jigglysaint

  • Sr. Member
  • ****
  • Posts: 289
  • Corruptomancer
    • View Profile
    • Stuff Jigglysaint has done(like discover the Crocomire in MZM)
Re: Legend of Zelda Automap
« Reply #7 on: August 07, 2011, 03:56:21 pm »
Actually, those maps that change the cave palletes ARE the caves.

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Legend of Zelda Automap
« Reply #8 on: August 07, 2011, 04:14:31 pm »
Note sure exactly what you mean, there. This is what I was talking about:

If you change the borders in this screen:
Spoiler:

Like so:
Spoiler:

The caves will look like this:
Spoiler:

I thought there was one screen whose border affected caves and another whose center affected caves, but it turns out that it's both the border and center of this one screen affects caves.
« Last Edit: August 07, 2011, 04:20:18 pm by snarfblam »

Jigglysaint

  • Sr. Member
  • ****
  • Posts: 289
  • Corruptomancer
    • View Profile
    • Stuff Jigglysaint has done(like discover the Crocomire in MZM)
Re: Legend of Zelda Automap
« Reply #9 on: August 07, 2011, 06:34:14 pm »
That boarder palette isn't actually used in the game if I recall.  In fact I think the only ones used are the green, brown, and grey palettes.

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Legend of Zelda Automap
« Reply #10 on: August 07, 2011, 07:33:56 pm »
My original point is that modifying overworld data has strange and unexpected consequences. I said that because you discussed re-doing the game's overworld data. My concern is that a overhaul in this department could cause numerous unforeseen problems.

Jigglysaint

  • Sr. Member
  • ****
  • Posts: 289
  • Corruptomancer
    • View Profile
    • Stuff Jigglysaint has done(like discover the Crocomire in MZM)
Re: Legend of Zelda Automap
« Reply #11 on: August 08, 2011, 07:51:33 pm »
Not exactly.  For one thing, I meant an overhaul of the system that determines which trees are burnable, where they are location, what tile they turn into and what to use to make them change.  I found that the game looks for the presence of a specific tile ID, places a specific sprite depending on what ID it is, and that sprite then looks for the triggering weapon to activate the change.

I figure that optimally, you could create additional fields that control these things.  Let's say that you wanted to make this work for both overworld and dungeons, both quests.  You would need 256 bytes for the overworld(128 screens per quest), 256 bytes for quest one dungeons, and another for quest 2 dungeons.  Basically, 3 pages, and that is per effect field.  One field for selecting which weapon or item triggers the secret(as an index), one field for yx location of sprite(and location of tile to replace after you come back), and one field for the tile type to replace.  I only did this for the overworld, but I think it could be possible to use space in other parts of the rom for these data fields.  The end result would be a better secrets engine that would allow for things such as lock blocks or obstacles that could be passed using arrows.  Perhaps a specific sprite that when triggered, opens a shutter or makes stairs appear.

never-obsolete

  • Newbie
  • *
  • Posts: 27
  • Location: AZ
    • View Profile
Re: Legend of Zelda Automap
« Reply #12 on: August 09, 2011, 03:37:01 pm »
I like the automap. I have a couple of friends who won't play this or Metroid because they get lost too easily.


If you are interested in an overhauled map system, I have most of it worked out:



I removed that column based system it had. Every screen is unique, and can have its own tileset. Each screen can also have its own unique shop/cave. Backgrounds can be animated. Most of the kinks to work out are in the dungeons. Things like fixing the trapdoors, removing the hardcoded outer walls, replacing the graphics with those from LA.

I was also digging into the enemies, and hacking it so you can list each enemy that you want on a screen.


I could send you the source. Either way, I'm still gonna work on this from time to time, so no worries.  :)





« Last Edit: August 09, 2011, 03:42:21 pm by never-obsolete »

Nightcrawler

  • Hero Member
  • *****
  • Posts: 5824
    • View Profile
    • Nightcrawler's Translation Corporation
Re: Legend of Zelda Automap
« Reply #13 on: August 09, 2011, 03:56:56 pm »
Hey, that hack you're working on looks really cool, never-obsolete. An overhaul like that would renew interest in Zelda for me. Is there anywhere else to get information on the project?
TransCorp - Over 15 years of community dedication.
Dual Orb 2, Wozz, Emerald Dragon, Tenshi No Uta, Herakles IV SFC/SNES Translations

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Legend of Zelda Automap
« Reply #14 on: August 09, 2011, 05:35:36 pm »
never-obsolete, awesome work! Hmm... if you're looking for help I'd love to lend a hand (ASM, disassembly, level/overworld editor or anything else you need a hand with). I think the auto-map would complement your hack very nicely. I'll be posting the code for it soon anyways.

This project would be a very nice addition to MoN's new (sub)community, Zelda Construction.

Jigglysaint

  • Sr. Member
  • ****
  • Posts: 289
  • Corruptomancer
    • View Profile
    • Stuff Jigglysaint has done(like discover the Crocomire in MZM)
Re: Legend of Zelda Automap
« Reply #15 on: August 09, 2011, 08:09:46 pm »
Hmm, well if space is no object, then just imagine the possiblities.  I don't think it will be hard getting rid of the walls in the dungeon.  The hard part is re-creating the overhangs and other door mechanics.  Of course why not just scrap ovehang instead and make them like Link's Awakening doors?  Of course by that point you might as well just edit Link's Awakening, since the Z80 is pretty powerful enough in terms of data manipulation.

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Zelda Automap & Other Hacks
« Reply #16 on: August 09, 2011, 09:33:42 pm »
Tossing another hack on the pile, this one a bit simpler.



Damage is shown in increments of 1/8 hearts instead of 1/2 hearts.

http://www.youtube.com/watch?v=_L2zprWO6ek

never-obsolete

  • Newbie
  • *
  • Posts: 27
  • Location: AZ
    • View Profile
Re: Zelda Automap & Other Hacks
« Reply #17 on: August 10, 2011, 01:12:30 pm »
I have a website, but it has not been updated in a long time.



@snarfblam
If you have the time, for sure. I have a generic map editor that I ended up using for this. I'll pm you later with some more details.


@Jigglysaint
I ended up removing the overhangs. I also remembered that the whistle/lake secret needs to be fixed.

I chose this over Link's Awakening because: 1. nostalgia and 2. I like to play games on their original platform and I have a PowerPak.

snarfblam

  • Submission Reviewer
  • Sr. Member
  • *****
  • Posts: 470
  • Location: Unknown
    • View Profile
    • snarfblam
Re: Zelda Automap & Other Hacks
« Reply #18 on: August 18, 2011, 10:01:25 pm »
Well... I've put up the code for my auto-map hack. The bad news is that as-is, it requires my own assembler, snarfblASM, to assemble, mostly due to my extensive dependence on a non-standard directive. The biggest issue here (aside from the fact that you can't use your assembler of choice) is that the assembler has yet to be released.  :-\

Spoiler:
I've been looking for opportunities to test and improve my assembler. This was a good opportunity on both counts.

snarfblASM is part of a suite of NES-hacking-oriented tools I've been working on. I've added a .PATCH directive that can specify a location in the ROM that any following code can be inserted. Any number of .PATCHes can be used in a file, allowing related code to be placed together in an ASM file even if the pieces of code must be inserted at separate offsets. snarfblASM will output a .IPS file that can be applied to the ROM in question.

If anybody knows of any other assemblers with similar features, or has thoughts on it or suggestions about alternative approaches, I'd love to hear about it.

http://snarfblam.com/words/?p=260

PolishedTurd

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
Re: Zelda Automap & Other Hacks
« Reply #19 on: August 21, 2011, 02:03:55 am »
Wow, the automap looks great.

This would be wonderful to have for Solar Jetman. Awhile ago, I envisioned a map generator that would produce maps programmatically for SJ, which you could then explore. An automap would make that kind of game more fun to play. Would it be possible to do this for Zelda, or is the map structure too complex?

When would you release your assembler? With SuiteNES?

@never-obsolete: Your hack looks fantastic. Please keep at it, and let me know if you need play testers.