| |||
Views: 88,436,850 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-19-24 06:41 PM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 3 guests | 2 bots |
Main - ROM Hacking - Zelda II ASM Hacks | New thread | New reply |
Trax |
| ||
Yellow Stalfos Level: 71 Posts: 849/1145 EXP: 3034145 Next: 132969 Since: 07-06-07 From: Québec Last post: 3620 days Last view: 2872 days |
I made a video of some of the tweaks and ASM Hacks I could pull off with Zelda II: The Adventure of Link. I master the ROM's structure quite well, and I managed to make enemies a lot more challenging. Some modifications are simple variable tweaks, while some others involve ASM code written from scratch. If you think the original Zelda II is hard, then this kind of enemy hack will be considered extremely difficult to handle. You must compare this video to the original game to really see the differences in how enemies move and attack...
My main objective is to make the enemies less predictable, by adding or reinforcing the randomization factor... Details of the tweaks: Myu: moves faster, its routines are mixed with those of Bit/Bot. Bit: moves faster. Bot: jumps higher and farther, both X/Y velocities are randomized. Moa: its routine is hard to tweak coherently, so I just made it to not freeze when it's hit. Ache: moves faster overall and goes down earlier when closing in. Acheman: this one has code written from scratch. Moves faster since Ache and Acheman share some code. Shoots three fireballs, either high or low, at random. Attack delays are shortened. Bubble generator: each bubble has its speed randomized. Rock generator: in the video, speed was simply increased, but I could randomize just as easily as with the raising bubbles generator. Red Deeler: move faster overall, horizontally and up/down its rope. Blue Deeler: same as Red Deeler, and jumps higher and farther on ground, randomized. Bago Bago: speed increase, generated at a higher rate, and 100% chance to shoot a rock at Link when flying up. Red Octorok: jumps at random heights, and the walking Octorok moves faster. Orange Moblin: moves faster, higher and randomized X/Y velocities of spears. Red Moblin: this was more tricky because there's a lot of shared code. Keeps a greater distance from Link. Blue Moblin: just a mix of Red and Orange Moblin. Orange Daira: moves faster when approaching Link and attacks at a higher rate. Red Daira: moves faster and axes are thrown at higher velocity. Goriya: this one is another tricky routine. Boomerangs move faster, fly farther, and come back faster. Lowder: move faster overall, and reaction time to turn around is shortened a lot. Moby generator: instead of going straight down, it moves diagonally first. Speed increased. Megmet: jumping height increased and randomized, X velocity increased. Geldarm: stays shrinked for a much shorter time and restretches faster. Dumb Moblin: generation rate increased, speed increased and randomized. There are many things that need improvement or adustments, but I think the potential is quite interesting overall. The routines are mixed between similar enemies, so it makes it hard to modify a single enemy. Modifying one enemy can cause unwanted changes to another... Another problem arises with enemies that span over more than one world. These enemies' routines (Myu, Bit/Bot, Ache, Moa, Deeler, Octorok, Bago Bago) are stored in Bank 7, which is loaded permanently during gameplay. However, Bank 7 is tightly packed: no more than 75 unused bytes. This means you have to create code in multiple banks for the same enemy. Not doing so will cause the game to crash when one of these enemies appear on screen... Comments and ideas are welcome... |
MathOnNapkins |
| ||
Super Koopa Level: 62 Posts: 688/842 EXP: 1934479 Next: 50207 Since: 02-19-07 From: durff Last post: 4481 days Last view: 4005 days |
If the enemies were like this in the original release of the game I probably would have put my fist through the cartridge.
(Oh and *ahem* nice work.) ____________________ Zelda Hacking Forum hobbies: delectatio morosa |
Mariofan0 |
| ||
Koopa Level: 25 Posts: 86/104 EXP: 83090 Next: 6530 Since: 07-01-07 From: Around And Back Last post: 5396 days Last view: 5185 days |
Posted by MathOnNapkins I Would have to agree with MathOnNapkins on that one. Yea pretty decent work it really puts the Hard in Hard Core so... I hope you removed the HP meter for testing purposes... because that is Hard. ____________________ Currently Working On A Website Project Called Club Chaotic Looking For Supporters For My Website Project Club Chaotic. Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself. |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 426/994 EXP: 2436844 Next: 25007 Since: 09-30-07 Last post: 1928 days Last view: 950 days |
It looks interesting but Zelda II should be made to be easier, not harder. I think it is hard enough as it is. But, I'm sure people who are truly masters of the game and want a harder, more challenging game, would welcome this with open arms. ____________________ My YouTube Channel |
MathOnNapkins |
| ||
Super Koopa Level: 62 Posts: 689/842 EXP: 1934479 Next: 50207 Since: 02-19-07 From: durff Last post: 4481 days Last view: 4005 days |
Oh, and you were asking for ideas Trax, so how about this? Depending on how large the sprite routines are, you might be able to execute them from RAM. That is, if you have any space in RAM available at all. I'm not all that familiar with NES hacking but I thought that the NES has like... 2K of RAM, and the possibility for more RAM with certain mappers in the $6000 region, iirc. Of course, a mapper hack is no trivial undertaking, from what I've heard.
I can't imagine all the RAM in the game is used, anyway. That's the critical factor I guess. ____________________ Zelda Hacking Forum hobbies: delectatio morosa |
Mariofan0 |
| ||
Koopa Level: 25 Posts: 87/104 EXP: 83090 Next: 6530 Since: 07-01-07 From: Around And Back Last post: 5396 days Last view: 5185 days |
Posted by RetroRain I agree with you guys again its like we are on the same page here... Weird... anyways I might play it but just to sorta fool around or something I was never overly good with the game so... Kept dieing consistently... (Game over this and game over that, My Grandmother plays this game better than me.) ____________________ Currently Working On A Website Project Called Club Chaotic Looking For Supporters For My Website Project Club Chaotic. Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself. |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 427/994 EXP: 2436844 Next: 25007 Since: 09-30-07 Last post: 1928 days Last view: 950 days |
Here is a great ASM hack that to my knowledge, hasn't been done yet:
When you get Game Over and Continue, you start at the entrance to the area or dungeon where you died, rather than start all the way at the beginning of the game. Now THIS I found very annoying in Zelda II. The only time this worked is when you reached the Great Palace. It should be done for the other dungeons as well. What's the point of travelling to the dungeon again from the very beginning? And, this would make the game less frustrating, easier, and more likely keep the player interested in continuing. When I got Game Over and had to start from the beginning of the game again, I would turn the power off and play again some other time. However, if I started in the dungeon where I died, then I'd be more likely to play some more. ____________________ My YouTube Channel |
Mariofan0 |
| ||
Koopa Level: 25 Posts: 88/104 EXP: 83090 Next: 6530 Since: 07-01-07 From: Around And Back Last post: 5396 days Last view: 5185 days |
Yea That and being unable to enter the dungeons again after you beat it... and If you missed an important Item... Your Screwed... ____________________ Currently Working On A Website Project Called Club Chaotic Looking For Supporters For My Website Project Club Chaotic. Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself. |
RetroRain |
| ||
Fuzz Ball Level: 66 Posts: 428/994 EXP: 2436844 Next: 25007 Since: 09-30-07 Last post: 1928 days Last view: 950 days |
Posted by Mariofan0That should be relatively easy to fix. There is most likely an address that is flipped from 0 to 1 whenever you beat a dungeon. Zero = Not Beaten. One = Beaten. You would simply NOP out the code that does this, and you could re-enter the dungeon as many times as you want. ____________________ My YouTube Channel |
Marzen |
| |||
Giant Koopa I might be alive, but chances are that's not the case. Level: 73 Posts: 555/1273 EXP: 3418754 Next: 67114 Since: 10-15-08 From: Lulzerland Last post: 4581 days Last view: 4487 days |
|
DiscoPeach |
| ||
Octoballoon Level: 31 Posts: 142/175 EXP: 177044 Next: 8319 Since: 04-15-08 From: Puerto Rico Last post: 4547 days Last view: 4528 days |
I remember the controller I broke because of this game. That was an immediate twirl it around once in order to get sufficient inertia and centrifugal force to maximize the punishment on the controller as it hit the floor.
All I have to say is thank God emulators have save states. Dude, your enemy ASM hacks are insane in the fucking membrane. Brilliant! That mod's gonna be harder than taking a shit without squating. ____________________ MathOnNapkins' Zelda 3 (ALttP) Hacking Forum on Arc-Nova: http://arc-nova.org/forum/index.php?board=7.0 |
Trax |
| ||
Yellow Stalfos Level: 71 Posts: 850/1145 EXP: 3034145 Next: 132969 Since: 07-06-07 From: Québec Last post: 3620 days Last view: 2872 days |
Games I'm most familiar with tend to become too easy over time, although I can recognize that Zelda II is relatively hard if you compare to the games of its time, or the other games of the Zelda series. That said, it's a natural tendency to create a hack relative to one's own skills. Of course, there are elements in the video that I find a bit too hard myself. That's one of the things that gets easily underestimated in the hacking ROM world. When you make many things harder in the same game, the difficulty accumulates and you end up with something annoying instead of truly challenging and fun...
I plan to make these tweaks a part of a future hack, although it's not cast into concrete, far from it. I'll probably trade off speed for randomization, for example. I think one thing that annoyed many players in Zelda II was repetitiveness. By making enemies more random, it adds to the fun factor... I plan to make random encounters more random as well. For example, if you hit a demon on grass in the overworld, the area you end up in scrolling side view will be chosen at random from a few possible areas of that type. Basically, you have 7 possible terrain types where you can get random fights: desert, grass, forest, swamp, graveyard, road and lava. Each of these have 4 different areas throughout Hyrule: northwest, southwest, northeast and southeast. And each area have two modes: weak and strong. This means 56 different areas for the entire game. Looks pretty good from afar, but when you've been through your 17th encounter in the same swamp, you get tired of it. If you can randomize from, say, 4 possible areas for each region, type and mode, you crank up to 224 possible encounters. Looks much better... RetroRain, if you want the game to become easier, then you could just use the same variables as I did, and use them to slow down enemies and such... MathOnNapkins, the idea of using the Cartridge RAM is a nice one, indeed. That would definitely remove the problem of enemies seen in multiple worlds. Cartridge RAM is 0x2000 bytes, located between 0x6000 and 0x7FFF. The Cartridge RAM structure is weird, the unused space is not simply set to 00 or FF, I know there are already many things there, like enemy bits and attributes, and some code as well. But finding unused spots should be fairly easy to do... RetroRain, I agree completely with you, the continue feature of this game was a failure, in my opinion. I guess it would not be that hard to correct. And by using a byte of the Cartridge RAM, the last place visited could even be saved between resets. By the way, the game is not broken if you forget something important in a temple. For a temple to turn into stone, you need to get the item in it and place the crystal. I'm not sure exactly what would be the point in going back to a temple when it's finished. Except maybe to get a key there... The code for temple turning into stone is located at 0x479B in the ROM (add 0x10 because of the header) for West Hyrule (and probably the same relative offset for East Hyrule), and it simply checks if you have the corresponding item (Candle, Glove, etc.) and the corresponding crystal placed. Every time the overworld map is loaded, the routine is called to change the data as required. If you want to avoid this check altogether and always have the possibility to revisit palaces, it's simple: go to 0x479B, and change A2 for 60. Done! You can also turn palaces into anything you want. Go to 0x47BF and replace 0B by anything between 00 and 0F. Done! |
Jigglysaint |
| ||
Red Paragoomba Level: 20 Posts: 46/62 EXP: 38519 Next: 3920 Since: 04-04-07 Last post: 4610 days Last view: 2348 days |
I would rather see the temple stone thing used to alter the landscape, rather than make areas un-visitable. I mean you could have each crystal control a specific gate that when you place the crystal, opens an area that has items and stuff. In fact there would be some great ASM hacks that could be added that could expand the gameplay somewhat. Perhaps the stones could work in reverse, being stoned untill you get the palace key, then it shows up when you find it. |
Trax |
| ||
Yellow Stalfos Level: 71 Posts: 852/1145 EXP: 3034145 Next: 132969 Since: 07-06-07 From: Québec Last post: 3620 days Last view: 2872 days |
That's right, and the great thing with it is that there is unused space right after the routine that controls how the overworld is modified... |
Main - ROM Hacking - Zelda II ASM Hacks | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 102, rows: 136/136, time: 0.017 seconds. |