Author
|
Topic: Zelda Automap & Other Hacks (Read 1 times)
|
snarfblam
Guest
|
|
« on: July 23, 2011, 07: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: 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, 04:34:44 pm by snarfblam »
|
|
|
|
Tito Santana
Guest
|
|
« Reply #1 on: July 23, 2011, 08: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
Guest
|
|
« Reply #2 on: July 24, 2011, 01: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.
|
|
|
|
Jorpho
Guest
|
|
« Reply #3 on: July 24, 2011, 03:23:03 pm » |
|
So it's an actual hack and not a LUA script like that thing for Metroid?
|
|
|
|
Jigglysaint
Guest
|
|
« Reply #4 on: July 27, 2011, 03: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
Guest
|
|
« Reply #5 on: July 27, 2011, 07: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 )
|
|
|
|
snarfblam
Guest
|
|
« Reply #6 on: August 07, 2011, 02: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, 01:02:54 pm by snarfblam »
|
|
|
|
Jigglysaint
Guest
|
|
« Reply #7 on: August 07, 2011, 02:56:21 pm » |
|
Actually, those maps that change the cave palletes ARE the caves.
|
|
|
|
snarfblam
Guest
|
|
« Reply #8 on: August 07, 2011, 03: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: Like so: The caves will look like this: 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, 03:20:18 pm by snarfblam »
|
|
|
|
Jigglysaint
Guest
|
|
« Reply #9 on: August 07, 2011, 05: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
Guest
|
|
« Reply #10 on: August 07, 2011, 06: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
Guest
|
|
« Reply #11 on: August 08, 2011, 06: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
Guest
|
|
« Reply #12 on: August 09, 2011, 02: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, 02:42:21 pm by never-obsolete »
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #13 on: August 09, 2011, 02: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?
|
|
|
|
snarfblam
Guest
|
|
« Reply #14 on: August 09, 2011, 04: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.
|
|
|
|
|